From 73ff27010fc67c5aec4a817585d10a382ac52bf6 Mon Sep 17 00:00:00 2001
From: 叶富雄 <yefuxiong@yeah.net>
Date: Sat, 14 Mar 2026 02:34:18 +0800
Subject: [PATCH] UI

---
 node_modules/crypto-js/format-hex.js                                           |   66 
 node_modules/canvas/src/dll_visibility.h                                       |   20 
 node_modules/canvas/build/Release/libthai-0.dll                                |    0 
 node_modules/canvas/src/CanvasGradient.h                                       |   22 
 node_modules/crypto-js/blowfish.js                                             |  471 
 node_modules/crypto-js/mode-ctr-gladman.js                                     |  116 
 node_modules/canvas/build/Release/canvas.node                                  |    0 
 node_modules/canvas/src/init.cc                                                |   94 
 node_modules/canvas/src/backend/PdfBackend.cc                                  |   53 
 node_modules/pdfh5/test.pdf                                                    |    0 
 node_modules/canvas/build/Release/libwinpthread-1.dll                          |    0 
 node_modules/crypto-js/rabbit-legacy.js                                        |  190 
 node_modules/canvas/build/Release/libcairo-gobject-2.dll                       |    0 
 node_modules/canvas/src/CanvasRenderingContext2d.h                             |  225 
 node_modules/canvas/build/Release/canvas.iobj                                  |    0 
 node_modules/canvas/build/Release/libbrotlicommon.dll                          |    0 
 node_modules/canvas/src/color.h                                                |   30 
 node_modules/canvas/src/Point.h                                                |   11 
 node_modules/canvas/build/Release/canvas.ipdb                                  |    0 
 node_modules/canvas/build/Release/libgio-2.0-0.dll                             |    0 
 node_modules/canvas/build/Release/libbz2-1.dll                                 |    0 
 node_modules/canvas/build/Release/obj/canvas/canvas.tlog/canvas.write.1u.tlog  |    0 
 node_modules/canvas/build/Release/obj/canvas/src/backend/ImageBackend.obj      |    0 
 node_modules/canvas/src/Canvas.h                                               |   96 
 node_modules/crypto-js/mode-ecb.js                                             |   40 
 node_modules/canvas/build/Release/libpcre2-8-0.dll                             |    0 
 node_modules/crypto-js/pad-iso10126.js                                         |   44 
 node_modules/canvas/build/Release/libfreetype-6.dll                            |    0 
 node_modules/canvas/src/backend/SvgBackend.cc                                  |   61 
 node_modules/crypto-js/enc-base64.js                                           |  136 
 node_modules/crypto-js/md5.js                                                  |  268 
 node_modules/pdfh5/LICENSE                                                     |   21 
 node_modules/canvas/src/PNG.h                                                  |  292 
 node_modules/canvas/build/Release/obj/canvas/canvas.tlog/CL.read.1.tlog        |    0 
 node_modules/crypto-js/index.js                                                |   18 
 node_modules/canvas/src/Backends.cc                                            |   18 
 node_modules/canvas/src/ImageData.h                                            |   27 
 node_modules/canvas/build/Release/obj/canvas/canvas.tlog/link.command.1.tlog   |    0 
 node_modules/canvas/src/CanvasPattern.cc                                       |  136 
 node_modules/crypto-js/sha384.js                                               |   83 
 node_modules/crypto-js/mode-cfb.js                                             |   80 
 node_modules/canvas/build/Release/canvas.pdb                                   |    0 
 node_modules/canvas/src/register_font.cc                                       |  408 
 node_modules/crypto-js/enc-utf8.js                                             |   18 
 node_modules/pdfh5/js/pdfh5.worker.js                                          |    0 
 node_modules/canvas/build/Release/libjpeg-8.dll                                |    0 
 node_modules/crypto-js/docs/QuickStartGuide.wiki                               |  470 
 node_modules/crypto-js/hmac-sha3.js                                            |   18 
 node_modules/canvas/src/backend/Backend.cc                                     |  112 
 node_modules/canvas/src/CanvasRenderingContext2d.cc                            | 3360 +++++
 node_modules/canvas/lib/canvas.js                                              |  113 
 node_modules/canvas/lib/pdfstream.js                                           |   35 
 node_modules/canvas/src/bmp/LICENSE.md                                         |   24 
 node_modules/canvas/Readme.md                                                  |  600 
 node_modules/crypto-js/tripledes.js                                            |  779 +
 node_modules/pdfh5/js/pinch-zoom.js                                            |  927 +
 node_modules/pdfh5/git.pdf                                                     |    0 
 node_modules/crypto-js/LICENSE                                                 |   24 
 node_modules/canvas/build/Release/libbrotlidec.dll                             |    0 
 node_modules/canvas/build/Release/obj/canvas/src/register_font.obj             |    0 
 node_modules/canvas/build/Release/libstdc++-6.dll                              |    0 
 node_modules/canvas/build/Release/canvas.exp                                   |    0 
 node_modules/canvas/src/closure.h                                              |   81 
 node_modules/canvas/build/Release/obj/canvas/src/closure.obj                   |    0 
 node_modules/crypto-js/README.md                                               |  275 
 node_modules/canvas/CHANGELOG.md                                               | 1052 +
 node_modules/canvas/build/Release/librsvg-2-2.dll                              |    0 
 node_modules/canvas/build/Release/obj/canvas/src/Image.obj                     |    0 
 node_modules/canvas/build/Release/libgmodule-2.0-0.dll                         |    0 
 node_modules/crypto-js/sha256.js                                               |  199 
 node_modules/pdfh5/js/pdfh5.js                                                 | 2164 +++
 node_modules/crypto-js/rabbit.js                                               |  192 
 node_modules/pdfh5/index.html                                                  |  232 
 node_modules/pdfh5/css/pdfh5.css                                               |  212 
 node_modules/canvas/build/Release/canvas.lib                                   |    0 
 node_modules/canvas/build/Release/obj/canvas/win_delay_load_hook.obj           |    0 
 node_modules/crypto-js/bower.json                                              |   39 
 node_modules/canvas/build/Release/obj/canvas/canvas.tlog/link.read.1.tlog      |    0 
 node_modules/canvas/build/Release/libharfbuzz-0.dll                            |    0 
 node_modules/canvas/build/Release/libfontconfig-1.dll                          |    0 
 node_modules/canvas/lib/pattern.js                                             |   17 
 node_modules/pdfh5/js/jquery-3.6.0.min.js                                      |    2 
 node_modules/pdfh5/pdf.html                                                    |  166 
 node_modules/crypto-js/crypto-js.js                                            | 6657 ++++++++++
 node_modules/canvas/src/bmp/BMPParser.h                                        |   60 
 node_modules/crypto-js/aes.js                                                  |  234 
 node_modules/canvas/browser.js                                                 |   35 
 node_modules/crypto-js/core.js                                                 |  807 +
 node_modules/crypto-js/package.json                                            |   42 
 node_modules/canvas/src/backend/PdfBackend.h                                   |   24 
 node_modules/canvas/lib/parse-font.js                                          |  101 
 node_modules/canvas/src/backend/SvgBackend.h                                   |   24 
 node_modules/canvas/package.json                                               |   72 
 node_modules/pdfh5/js/pdf-obfuscated.js                                        |    1 
 node_modules/canvas/build/Release/obj/canvas/src/Canvas.obj                    |    0 
 node_modules/canvas/build/Release/obj/canvas/src/init.obj                      |    0 
 node_modules/canvas/util/win_jpeg_lookup.js                                    |   21 
 node_modules/canvas/build/Release/libfribidi-0.dll                             |    0 
 node_modules/crypto-js/hmac-sha512.js                                          |   18 
 node_modules/canvas/build/Release/obj/canvas/src/bmp/BMPParser.obj             |    0 
 node_modules/canvas/src/ImageData.cc                                           |  146 
 node_modules/crypto-js/enc-utf16.js                                            |  149 
 node_modules/crypto-js/format-openssl.js                                       |   18 
 node_modules/canvas/build/Release/libiconv-2.dll                               |    0 
 node_modules/canvas/build/Release/libdatrie-1.dll                              |    0 
 node_modules/canvas/build/Release/obj/canvas/canvas.node.recipe                |   11 
 node_modules/crypto-js/x64-core.js                                             |  304 
 node_modules/canvas/lib/image.js                                               |   96 
 node_modules/crypto-js/cipher-core.js                                          |  895 +
 node_modules/canvas/build/Release/libpango-1.0-0.dll                           |    0 
 node_modules/crypto-js/pad-nopadding.js                                        |   30 
 node_modules/canvas/build/Release/obj/canvas/src/CanvasPattern.obj             |    0 
 node_modules/canvas/build/Release/obj/canvas/src/color.obj                     |    0 
 node_modules/canvas/index.js                                                   |   94 
 node_modules/canvas/lib/pngstream.js                                           |   42 
 node_modules/canvas/build/Release/obj/canvas/src/Backends.obj                  |    0 
 node_modules/canvas/build/Release/libpng16-16.dll                              |    0 
 node_modules/canvas/src/Canvas.cc                                              |  965 +
 node_modules/canvas/src/closure.cc                                             |   26 
 node_modules/canvas/lib/jpegstream.js                                          |   41 
 node_modules/canvas/build/Release/libffi-8.dll                                 |    0 
 node_modules/canvas/lib/DOMMatrix.js                                           |  620 
 node_modules/canvas/src/CanvasError.h                                          |   23 
 node_modules/crypto-js/enc-latin1.js                                           |   18 
 node_modules/canvas/src/backend/ImageBackend.h                                 |   26 
 node_modules/crypto-js/pad-ansix923.js                                         |   49 
 node_modules/canvas/build/Release/libpangocairo-1.0-0.dll                      |    0 
 node_modules/canvas/src/CanvasGradient.cc                                      |  123 
 node_modules/crypto-js/sha1.js                                                 |  150 
 node_modules/canvas/build/Release/obj/canvas/canvas.tlog/CL.write.1.tlog       |    0 
 node_modules/canvas/src/InstanceData.h                                         |    8 
 node_modules/canvas/build/Release/obj/canvas/src/CanvasRenderingContext2d.obj  |    0 
 node_modules/crypto-js/hmac-ripemd160.js                                       |   18 
 node_modules/canvas/build/Release/obj/canvas/canvas.tlog/CL.command.1.tlog     |    0 
 node_modules/canvas/build/Release/libintl-8.dll                                |    0 
 node_modules/canvas/src/bmp/BMPParser.cc                                       |  457 
 node_modules/canvas/src/color.cc                                               |  779 +
 node_modules/canvas/build/Release/libgdk_pixbuf-2.0-0.dll                      |    0 
 node_modules/canvas/src/Image.h                                                |  127 
 node_modules/canvas/build/Release/obj/canvas/canvas.tlog/canvas.lastbuildstate |    2 
 node_modules/canvas/build/Release/libcairo-2.dll                               |    0 
 node_modules/crypto-js/mode-ofb.js                                             |   54 
 node_modules/canvas/src/register_font.h                                        |    7 
 node_modules/canvas/util/has_lib.js                                            |  119 
 node_modules/canvas/src/Util.h                                                 |    9 
 node_modules/pdfh5/css/style.css                                               | 1242 +
 node_modules/pdfh5/README.md                                                   |  280 
 node_modules/crypto-js/sha512.js                                               |  326 
 node_modules/canvas/lib/context2d.js                                           |   14 
 node_modules/canvas/build/Release/liblzma-5.dll                                |    0 
 node_modules/pdfh5/js/jquery.qrcode.min.js                                     |   28 
 node_modules/pdfh5/js/pinch-zoom.min.js                                        |    1 
 node_modules/canvas/build/Release/libpixman-1-0.dll                            |    0 
 node_modules/canvas/build/Release/libpangoft2-1.0-0.dll                        |    0 
 node_modules/canvas/src/CanvasRenderingContext2d.cc.orig                       | 3381 +++++
 node_modules/crypto-js/hmac-md5.js                                             |   18 
 node_modules/crypto-js/pad-zeropadding.js                                      |   47 
 node_modules/canvas/build/Release/zlib1.dll                                    |    0 
 node_modules/canvas/types/index.d.ts                                           |  484 
 node_modules/crypto-js/mode-ctr.js                                             |   58 
 node_modules/canvas/src/backend/ImageBackend.cc                                |   74 
 node_modules/crypto-js/evpkdf.js                                               |  134 
 node_modules/crypto-js/sha3.js                                                 |  326 
 node_modules/pdfh5/js/pdf.js                                                   |   22 
 node_modules/crypto-js/CONTRIBUTING.md                                         |   28 
 node_modules/crypto-js/enc-hex.js                                              |   18 
 node_modules/canvas/build/Release/obj/canvas/src/backend/PdfBackend.obj        |    0 
 node_modules/canvas/types/Readme.md                                            |    3 
 node_modules/canvas/build/Release/libexpat-1.dll                               |    0 
 node_modules/canvas/build/Release/libpangowin32-1.0-0.dll                      |    0 
 node_modules/crypto-js/hmac-sha256.js                                          |   18 
 node_modules/pdfh5/pdfh5.png                                                   |    0 
 node_modules/canvas/src/Backends.h                                             |   10 
 node_modules/pdfh5/vconsole.min.js                                             |   10 
 node_modules/canvas/build/Release/libxml2-2.dll                                |    0 
 node_modules/canvas/build/Release/obj/canvas/src/backend/SvgBackend.obj        |    0 
 node_modules/canvas/binding.gyp                                                |  230 
 node_modules/crypto-js/sha224.js                                               |   80 
 node_modules/canvas/build/Release/obj/canvas/src/ImageData.obj                 |    0 
 node_modules/canvas/src/JPEGStream.h                                           |  167 
 node_modules/pdfh5/package.json                                                |   61 
 node_modules/canvas/lib/bindings.js                                            |   13 
 node_modules/canvas/build/Release/libgcc_s_seh-1.dll                           |    0 
 node_modules/canvas/build/Release/libgraphite2.dll                             |    0 
 node_modules/crypto-js/hmac-sha224.js                                          |   18 
 node_modules/crypto-js/pbkdf2.js                                               |  145 
 node_modules/canvas/changes                                                    |   19 
 node_modules/canvas/build/Release/obj/canvas/src/CanvasGradient.obj            |    0 
 node_modules/crypto-js/lib-typedarrays.js                                      |   76 
 node_modules/crypto-js/enc-base64url.js                                        |  148 
 node_modules/canvas/src/Image.cc                                               | 1434 ++
 node_modules/canvas/build/Release/libgif-7.dll                                 |    0 
 node_modules/crypto-js/hmac-sha1.js                                            |   18 
 node_modules/pdfh5/js/pdf.worker.js                                            |   22 
 node_modules/crypto-js/ripemd160.js                                            |  267 
 node_modules/canvas/build/Release/libglib-2.0-0.dll                            |    0 
 node_modules/canvas/build/Release/obj/canvas/src/backend/Backend.obj           |    0 
 node_modules/crypto-js/hmac-sha384.js                                          |   18 
 node_modules/crypto-js/hmac.js                                                 |  143 
 node_modules/.package-lock.json                                                |   12 
 node_modules/crypto-js/pad-pkcs7.js                                            |   18 
 node_modules/canvas/src/CanvasRenderingContext2d.h.orig                        |  226 
 node_modules/canvas/src/CanvasPattern.h                                        |   37 
 node_modules/crypto-js/pad-iso97971.js                                         |   40 
 node_modules/crypto-js/rc4.js                                                  |  139 
 node_modules/canvas/build/Release/obj/canvas/canvas.tlog/link.write.1.tlog     |    0 
 node_modules/canvas/src/backend/Backend.h                                      |   69 
 node_modules/canvas/build/Release/libgobject-2.0-0.dll                         |    0 
 208 files changed, 37,561 insertions(+), 0 deletions(-)

diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json
new file mode 100644
index 0000000..80097df
--- /dev/null
+++ b/node_modules/.package-lock.json
@@ -0,0 +1,12 @@
+{
+  "name": "gold",
+  "lockfileVersion": 2,
+  "requires": true,
+  "packages": {
+    "node_modules/crypto-js": {
+      "version": "4.2.0",
+      "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz",
+      "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q=="
+    }
+  }
+}
diff --git a/node_modules/canvas/CHANGELOG.md b/node_modules/canvas/CHANGELOG.md
new file mode 100644
index 0000000..cbbdb82
--- /dev/null
+++ b/node_modules/canvas/CHANGELOG.md
@@ -0,0 +1,1052 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](http://keepachangelog.com/) and this
+project adheres to [Semantic Versioning](http://semver.org/).
+
+(Unreleased)
+==================
+### Changed
+### Added
+### Fixed
+
+2.11.2
+==================
+### Fixed
+* Building on Windows in CI (and maybe other Windows configurations?) (#2216)
+
+2.11.1
+==================
+### Fixed
+* Add missing property `canvas` to the `CanvasRenderingContext2D` type
+* Fixed glyph positions getting rounded, resulting text having a slight `letter-spacing` effect
+* Fixed `ctx.font` not being restored correctly after `ctx.restore()` (#1946)
+
+2.11.0
+==================
+### Fixed
+* Replace triple-slash directive in types with own types to avoid polluting TS modules with globals ([#1656](https://github.com/Automattic/node-canvas/issues/1656))
+
+2.10.2
+==================
+### Fixed
+* Fix `Assertion failed: (object->InternalFieldCount() > 0), function Unwrap, file nan_object_wrap.h, line 32.` ([#2025](https://github.com/Automattic/node-canvas/issues/2025))
+* `textBaseline` and `textAlign` were not saved/restored by `save()`/`restore()`. ([#1936](https://github.com/Automattic/node-canvas/issues/2029))
+* Update nan to v2.17.0 to ensure Node.js v18+ support.
+### Changed
+* Improve performance and memory usage of `save()`/`restore()`.
+* `save()`/`restore()` no longer have a maximum depth (previously 64 states).
+
+2.10.1
+==================
+### Fixed
+* Fix `actualBoundingBoxLeft` and `actualBoundingBoxRight` when `textAlign='center'` or `'right'` ([#1909](https://github.com/Automattic/node-canvas/issues/1909))
+* Fix `rgba(r,g,b,0)` with alpha to 0 should parse as transparent, not opaque. ([#2110](https://github.com/Automattic/node-canvas/pull/2110))
+
+2.10.0
+==================
+### Added
+* Export `pangoVersion`
+* [`ctx.roundRect()`](https://developer.chrome.com/blog/canvas2d/#round-rect)
+### Fixed
+* `rgba(r,g,b)` with no alpha should parse as opaque, not transparent. ([#2029](https://github.com/Automattic/node-canvas/issues/2029))
+* Typo in `PngConfig.filters` types. ([#2072](https://github.com/Automattic/node-canvas/issues/2072))
+* `createPattern()` always used "repeat" mode; now supports "repeat-x" and "repeat-y". ([#2066](https://github.com/Automattic/node-canvas/issues/2066))
+* Crashes and hangs when using non-finite values in `context.arc()`. ([#2055](https://github.com/Automattic/node-canvas/issues/2055))
+* Incorrect `context.arc()` geometry logic for full ellipses. ([#1808](https://github.com/Automattic/node-canvas/issues/1808), ([#1736](https://github.com/Automattic/node-canvas/issues/1736)))
+* Added missing `deregisterAllFonts` to the Typescript declaration file ([#2096](https://github.com/Automattic/node-canvas/pull/2096))
+* Add `User-Agent` header when requesting remote images ([#2099](https://github.com/Automattic/node-canvas/issues/2099))
+
+2.9.3
+==================
+### Fixed
+* Wrong fonts used when calling `registerFont` multiple times with the same family name ([#2041](https://github.com/Automattic/node-canvas/issues/2041))
+
+2.9.2
+==================
+### Fixed
+* All exports now work when Canvas is used in ES Modules (ESM). ([#2047](https://github.com/Automattic/node-canvas/pull/2047))
+* `npm rebuild` will now re-fetch prebuilt binaries to avoid `NODE_MODULE_VERSION` mismatch errors. ([#1982](https://github.com/Automattic/node-canvas/pull/1982))
+
+2.9.1
+==================
+### Fixed
+* Stringify CanvasGradient, CanvasPattern and ImageData like browsers do. (#1639, #1646)
+* Add missing include for `toupper`.
+* Throw an error instead of crashing the process if `getImageData` or `putImageData` is called on a PDF or SVG canvas (#1853)
+* Compatibility with Typescript 4.6
+* Near-perfect font matching on Linux (#1572)
+* Fix multi-byte font path support on Windows.
+* Allow rebuild of this library
+
+2.9.0
+==================
+### Changed
+* Refactor functions to classes.
+* Changed `DOMPoint()` constructor to check for parameter nullability.
+* Changed `DOMMatrix.js` to use string literals for non-special cases.
+* Remove semicolons from Dommatrix.js.
+* Update nan to v2.15.0 to ensure Node.js v14+ support.
+* Clean up inf/nan macros and slightly speed up argument checking.
+### Added
+* Added `deregisterAllFonts` method to free up memory and reduce font conflicts.
+### Fixed
+* Support Apple M1 Homebrew install that puts canvas install library files in `/opt/homebrew/lib`
+
+2.8.0
+==================
+### Changed
+* Upgrade dtslint
+* Upgrade node-pre-gyp to 1.0.0. Note that if you are using special node-pre-gyp
+  features like `node_pre_gyp_accessKeyId`, you may need to make changes to your
+  installation procedure. See https://github.com/mapbox/node-pre-gyp/blob/master/CHANGELOG.md#100.
+* Add Node.js v16 to CI.
+* The C++ class method `nBytes()` now returns a size_t. (Because this is a C++
+  method only, this is not considered a breaking change.)
+### Added
+* Add support for  `inverse()` and `invertSelf()` to `DOMMatrix` (#1648)
+* Add support for `context.getTransform()` ([#1769](https://github.com/Automattic/node-canvas/pull/1769))
+* Add support for `context.setTransform(dommatrix)` ([#1769](https://github.com/Automattic/node-canvas/pull/1769))
+### Fixed
+* Fix `actualBoundingBoxLeft` and `actualBoundingBoxRight` returned by `measureText` to be the ink rect ([#1776](https://github.com/Automattic/node-canvas/pull/1776), fixes [#1703](https://github.com/Automattic/node-canvas/issues/1703)).
+* Fix Pango logging "expect ugly output" on Windows (#1643)
+* Fix benchmark for createPNGStream (#1672)
+* Fix dangling reference in BackendOperationNotAvailable exception (#1740)
+* Fix always-false comparison warning in Canvas.cc.
+* Fix Node.js crash when throwing from an onload or onerror handler.
+
+2.7.0
+==================
+### Changed
+* Switch CI to Github Actions. (Adds Windows and macOS builds.)
+* Switch prebuilds to GitHub actions in the Automattic/node-canvas repository.
+  Previously these were in the [node-gfx/node-canvas-prebuilt](https://github.com/node-gfx/node-canvas-prebuilt)
+  and triggered manually.
+* Speed up `fillStyle=` and `strokeStyle=`
+### Added
+* Export `rsvgVersion`.
+* CanvasPattern’s `setTransform` method is no longer missing
+### Fixed
+* Fix BMP issues. (#1497)
+* Update typings to support jpg and addPage on NodeCanvasRenderingContext2D (#1509)
+* Fix assertion failure when using Visual Studio Code debugger to inspect Image prototype (#1534)
+* Fix signed/unsigned comparison warning introduced in 2.6.0, and function cast warnings with GCC8+
+* Fix to compile without JPEG support (#1593).
+* Fix compile errors with cairo
+* Fix Image#complete if the image failed to load.
+* Upgrade node-pre-gyp to v0.15.0 to use latest version of needle to fix error when downloading prebuilds.
+* Don't throw if `fillStyle` or `strokeStyle` is set to an object, but that object is not a Gradient or Pattern. (This behavior was non-standard: invalid inputs are supposed to be ignored.)
+
+2.6.1
+==================
+### Fixed
+* Ignore `maxWidth` in `fillText` and `strokeText` if it is undefined
+* Fix crash (assertion failure) in Node.js 12.x when patterns or gradients are used
+* Fix crash (check failure) in Node.js 12.x when using RGB16_565 format. (The
+  underlying arraybuffer was incorrectly sized.)
+* Fix rendering error when applying shadow width line style (lineCap lineJoin lineDash)
+
+2.6.0
+==================
+### Changed
+* Allow larger buffers to be returned from `toBuffer('raw')`.
+### Added
+* Support for various BMP headers and color depths (#1435)
+### Fixed
+* Fix crash when changing canvas width/height while `fillStyle` or `strokeStyle`
+  was set to a `CanvasPattern` or `CanvasGradient` (#1357).
+* Fix crash when changing width/height of SVG canvases (#1380).
+* Fix crash when using `toBuffer('raw')` with large canvases (#1158).
+* Clarified meaning of byte ordering for `toBuffer('raw')` in readme. (#1416)
+* Fix package.json Typings field to point to Declaration file (#1432)
+* Properly check return value from `Set` and `Call`. (#1415)
+* Use `Get` version from `Nan` instead of `v8`. (#1415)
+
+2.5.0
+==================
+### Added
+* Support redirects when fetching images (using [simple-get](https://github.com/feross/simple-get)) (#1398)
+* Support Node.js v12
+### Fixed
+* Fix object literal & arrow function syntax usage for IE.
+
+2.4.1
+==================
+### Fixed
+* Guard JPEG width/height against maximum supported (#1385)
+* Fix electron 5 and node 12 compatibility
+* Fix encoding options (quality) parameter in `canvas.toDataURL()`
+
+2.4.0
+==================
+### Added
+* (Actually) added `resolution` option for `canvas.toBuffer("image/png")` and
+  `canvas.createPNGStream()`. This was documented since 2.0.0 but not working.
+* Add typescript definitions.
+### Fixed
+* PDF metadata (added in 2.3.0) wasn't being set with `canvas.createPDFStream()`
+* Fix custom "inspect" function deprecation warnings (#1326)
+
+2.3.1
+==================
+### Fixed
+* Fix `canvas.toBuffer()` for JPEGs (#1350)
+
+2.3.0
+==================
+### Added
+* Add support for multiple PDF page sizes
+* Add support for embedding document metadata in PDFs
+
+### Fixed
+* Don't crash when font string is invalid (bug since 2.2.0) (#1328)
+* Fix memory leak in `canvas.toBuffer()` (#1202, #1296)
+* Fix memory leak in `ctx.font=` (#1202)
+
+2.2.0
+==================
+### Added
+* BMP support
+
+### Fixed
+* Reset context on resurface (#1292)
+* Support Jest test framework (#1311)
+
+2.1.0
+==================
+### Added
+* Warn when building with old, unsupported versions of cairo or libjpeg.
+
+2.0.0
+==================
+
+**Upgrading from 1.x**
+```js
+// (1) The Canvas constructor is no longer the default export from the module.
+/* old: */
+const Canvas = require('canvas')
+const mycanvas = new Canvas(width, height)
+/* new: */
+const { createCanvas, Canvas } = require('canvas')
+const mycanvas = createCanvas(width, height)
+mycanvas instanceof Canvas // true
+
+/* old: */
+const Canvas = require('canvas')
+const myimg = new Canvas.Image()
+/* new: */
+const { Image } = require('canvas')
+const myimg = new Image()
+
+// (2) The quality argument for canvas.createJPEGStream/canvas.jpegStream now
+//     goes from 0 to 1 instead of from 0 to 100:
+canvas.createJPEGStream({ quality: 50 }) // old
+canvas.createJPEGStream({ quality: 0.5 }) // new
+
+// (3) The ZLIB compression level and PNG filter options for canvas.toBuffer are
+//     now named instead of positional arguments:
+canvas.toBuffer(undefined, 3, canvas.PNG_FILTER_NONE) // old
+canvas.toBuffer(undefined, { compressionLevel: 3, filters: canvas.PNG_FILTER_NONE }) // new
+// or specify the mime type explicitly:
+canvas.toBuffer('image/png', { compressionLevel: 3, filters: canvas.PNG_FILTER_NONE }) // new
+
+// (4) #2 also applies for canvas.pngStream, although these arguments were not
+//     documented:
+canvas.pngStream(3, canvas.PNG_FILTER_NONE) // old
+canvas.pngStream({ compressionLevel: 3, filters: canvas.PNG_FILTER_NONE }) // new
+
+// (5) canvas.syncPNGStream() and canvas.syncJPEGStream() have been removed:
+canvas.syncPNGStream() // old
+canvas.createSyncPNGStream() // old
+canvas.createPNGStream() // new
+
+canvas.syncJPEGStream() // old
+canvas.createSyncJPEGStream() // old
+canvas.createJPEGStream() // new
+
+// (6) Context2d.filter has been renamed to context2d.quality to avoid a
+//     conflict with the new standard 'filter' property.
+context.filter = 'best' // old
+context.quality = 'best' // new
+```
+
+### Breaking
+ * Drop support for Node.js <6.x
+ * Remove sync stream functions (bc53059). Note that most streams are still
+   synchronous (run in the main thread); this change just removed `syncPNGStream`
+   and `syncJPEGStream`.
+ * Pango is now *required* on all platforms (7716ae4).
+ * Make the `quality` argument for JPEG output go from 0 to 1 to match HTML spec.
+ * Make the `compressionLevel` and `filters` arguments for `canvas.toBuffer()`
+   named instead of positional. Same for `canvas.pngStream()`, although these
+   arguments were not documented.
+ * See also: *Correct some of the `globalCompositeOperator` types* under
+   **Fixed**. These changes were bug-fixes, but will break existing code relying
+   on the incorrect types.
+ * Rename `context2d.filter` to `context2d.quality` to avoid a conflict with the
+   new standard 'filter' property. Note that the standard 'filter' property is
+   not yet implemented.
+
+### Fixed
+ * Fix build with SVG support enabled (#1123)
+ * Prevent segfaults caused by loading invalid fonts (#1105)
+ * Fix memory leak in font loading
+ * Port has_lib.sh to javascript (#872)
+ * Correctly sample the edge of images when scaling (#1084)
+ * Detect CentOS libjpeg path (b180ea5)
+ * Improve measureText accuracy (2bbfec5)
+ * Fix memory leak when image callbacks reference the image (1f4b646)
+ * Fix putImageData(data, negative, negative) (2102e25)
+ * Fix SVG recognition when loading from buffer (77749e6)
+ * Re-rasterize SVG when drawing to a context and dimensions changed (79bf232)
+ * Prevent JPEG errors from crashing process (#1124)
+ * Improve handling of invalid arguments (#1129)
+ * Fix repeating patterns when drawing a canvas to itself (#1136)
+ * Prevent segfaults caused by creating a too large canvas
+ * Fix parse-font regex to allow for whitespaces.
+ * Allow assigning non-string values to fillStyle and strokeStyle
+ * Fix drawing zero-width and zero-height images.
+ * Fix DEP0005 deprecation warning
+ * Don't assume `data:` URIs assigned to `img.src` are always base64-encoded
+ * Fix formatting of color strings (e.g. `ctx.fillStyle`) on 32-bit platforms
+ * Explicitly export symbols for the C++ API
+ * Named CSS colors should match case-insensitive
+ * Correct some of the `globalCompositeOperator` types to match the spec:
+     * "hsl-hue" is now "hue"
+     * "hsl-saturation" is now "saturation"
+     * "hsl-color" is now "color"
+     * "hsl-luminosity" is now "luminosity"
+     * "darker" is now "darken"
+     * "dest" is now "destination"
+     * "add" is removed (but is the same as "lighter")
+     * "source" is now "copy"
+ * Provide better, Node.js core-style coded errors for failed sys calls. (For
+   example, provide an error with code 'ENOENT' if setting `img.src` to a path
+   that does not exist.)
+ * Support reading CMYK, YCCK JPEGs.
+ * Hide `Image.prototype.source`
+ * Fix behavior of maxWidth (#1088)
+ * Fix behavior of textAlignment with maxWidth (#1253)
+
+### Added
+ * Prebuilds (#992) with different libc versions to the prebuilt binary (#1140)
+ * Support `canvas.getContext("2d", {alpha: boolean})` and
+   `canvas.getContext("2d", {pixelFormat: "..."})`
+ * Support indexed PNG encoding.
+ * Support `currentTransform` (d6714ee)
+ * Export `CanvasGradient` (6a4c0ab)
+ * Support #RGBA , #RRGGBBAA hex colors (10a82ec)
+ * Support maxWidth arg for fill/strokeText (175b40d)
+ * Support image.naturalWidth/Height (a5915f8)
+ * Render SVG img elements when librsvg is available (1baf00e)
+ * Support ellipse method (4d4a726)
+ * Browser-compatible API (6a29a23)
+ * Support for jpeg on Windows (42e9a74)
+ * Support for backends (1a6dffe)
+ * Support for `canvas.toBuffer("image/jpeg")`
+ * Unified configuration options for `canvas.toBuffer()`, `canvas.pngStream()`
+   and `canvas.jpegStream()`
+ * ~~Added `resolution` option for `canvas.toBuffer("image/png")` and
+   `canvas.createPNGStream()`~~ this was not working
+ * Support for `canvas.toDataURI("image/jpeg")` (sync)
+ * Support for `img.src = <url>` to match browsers
+ * Support reading data URL on `img.src`
+ * Readme: add dependencies command for OpenBSD
+ * Throw error if calling jpegStream when canvas was not built with JPEG support
+ * Emit error if trying to load GIF, SVG or JPEG image when canvas was not built
+   with support for that format
+
+1.6.x (unreleased)
+==================
+### Fixed
+ * Make setLineDash able to handle full zeroed dashes (b8cf1d7)
+ * Fix reading fillStyle after setting it from gradient to color (a84b2bc)
+
+### Added
+ * Support for pattern repeat and no-repeat (#1066)
+ * Support for context globalAlpha for gradients and patterns (#1064)
+
+1.6.9 / 2017-12-20
+==================
+### Fixed
+ * Fix some instances of crashes (7c9ec58, 8b792c3)
+ * Fix node 0.x compatibility (dca33f7)
+
+1.6.8 / 2017-12-12
+==================
+### Fixed
+ * Faster, more compliant parseFont (4625efa, 37cd969)
+
+1.6.7 / 2017-09-08
+==================
+### Fixed
+ * Minimal backport of #985 (rotated text baselines) (c19edb8)
+
+1.6.6 / 2017-05-03
+==================
+### Fixed
+ * Use .node extension for requiring native module so webpack works (1b05599)
+ * Correct text baseline calculation (#1037)
+
+1.6.5 / 2017-03-18
+==================
+### Changed
+ * Parse font using parse-css-font and units-css (d316416)
+
+1.6.4 / 2017-02-26
+==================
+### Fixed
+ * Make sure Canvas#toDataURL is always async if callback is passed (8586d72)
+
+1.6.3 / 2017-02-14
+==================
+### Fixed
+ * Fix isnan() and isinf() on clang (5941e13)
+
+1.6.2 / 2016-10-30
+==================
+### Fixed
+ * Fix deprecation warnings (c264879)
+ * Bump nan (e4aea20)
+
+1.6.1 / 2016-10-23
+==================
+
+### Fixed
+ * Make has_lib.sh work on BSD OSes (1727d66)
+
+1.6.0 / 2016-10-16
+==================
+
+ * Support canvas.getBuffer('raw') (#819)
+
+1.5.0 / 2016-09-11
+==================
+
+ * Crude PDF stream implementation (#781)
+ * Update CI settings (#797)
+ * Reduce some of the install warnings (#794)
+ * Fix lineDash browser tests never finishing (#793)
+ * Add issue template (#791)
+
+1.4.0 / 2016-06-03
+==================
+
+ * Add support for evenodd fill rule (#762)
+
+1.3.17 / 2016-06-03
+===================
+
+ * Removing redundant duplicate calls (#769)
+ * Cleanup examples (#776)
+ * Fix CanvasRenderingContext2D class name (#777)
+
+1.3.16 / 2016-05-29
+===================
+
+  * Fix leak of data when streaming JPEG (#774)
+
+1.3.15 / 2016-05-09
+===================
+
+  * Fix segfault in putImageData (#750)
+
+1.3.14 / 2016-05-05
+===================
+
+  * Clamp JPEG buffer size (#739)
+
+1.3.13 / 2016-05-01
+===================
+
+  * Bumb NAN version (#759)
+
+1.3.12 / 2016-03-01
+===================
+
+  * Expose freetype version (#718)
+  * Require new in constructor (#717)
+
+1.3.11 / 2016-03-01
+===================
+
+  * Properly clamp quality in toDataURL (#728)
+  * Strict mode (#719)
+
+1.3.10 / 2016-02-07
+===================
+
+  * Fix segfault on node 0.10.x (#712)
+
+1.3.9 / 2016-01-27
+==================
+
+  * Allow to unbind onload/onerror callback handlers (#706)
+
+1.3.8 / 2016-01-22
+==================
+
+  * Cleanup build scripts and fix pangocairo detection (#701)
+
+1.3.7 / 2016-01-13
+==================
+
+  * Don't unbind onload/onerror callbacks after invoking them (#615)
+
+1.3.6 / 2016-01-06
+==================
+
+  * Allow optional arguments in `toDataURL` to be `undefined` and improve `toDataURL`'s spec compliance (#690)
+
+1.3.5 / 2015-12-07
+==================
+
+  * Add image/jpeg support to `toDataUrl` (#685)
+
+1.3.4 / 2015-11-21
+==================
+
+  * Upgrade nan to 2.1.0 (#671)
+
+1.3.3 / 2015-11-21
+==================
+
+  * Fix compilation on Visual Studio 2015 (#670)
+
+1.3.2 / 2015-11-18
+==================
+
+  * Fix incorrect Y offset and scaling for shadows (#669)
+
+1.3.1 / 2015-11-09
+==================
+
+  * Wrap std::min calls in paranthesis to prevent macro expansion on windows (#660)
+
+1.3.0 / 2015-10-26
+==================
+
+  * Expose ImageData constructor and make it more spec-compliant (#569)
+
+1.2.11 / 2015-10-20
+===================
+
+  * Implement blur on images (#648)
+
+1.2.10 / 2015-10-12
+===================
+
+  * Fix segfault in Canvas#jpegStream (#629)
+
+1.2.9 / 2015-09-14
+==================
+
+  * Upgrade to Nan 2.x with support for iojs 3.x and Node.js 4.x (#622)
+
+1.2.8 / 2015-08-30
+==================
+
+  * Clean up the tests (#612)
+  * Replace CanvasPixelArray with Uint8ClampedArray to be API-compliant (#604)
+  * Specify travis iojs versions (#611)
+
+1.2.7 / 2015-07-29
+==================
+
+  * Avoid future reserved keyword (#592)
+
+1.2.6 / 2015-07-29
+==================
+
+  * Fix the build on windows (#589)
+
+1.2.5 / 2015-07-28
+==================
+
+  * Another npm release, since 1.2.4 was botched (see #596)
+
+1.2.4 / 2015-07-23
+==================
+
+  * Point `homepage` and `repository` links to [`github.com/Automattic/node-canvas`][repo]
+  * Fix Travis builds and Cairo include paths (thanks, Linus Unnebäck!)
+
+1.2.3 / 2015-05-21
+==================
+
+  * Update TJ Holowaychuk's username in the readme
+  * Fix segmentation fault in `Image::loadFromBuffer` when buffer is empty
+  * Optimize getImageData()
+  * package: add "license" attribute
+  * package: update "nan" to v1.8.4
+  * package: append `.git` to "repository" URL
+
+1.2.2 / 2015-04-18
+==================
+
+  * Now works on io.js
+  * Fix 'drawImage' scaling (the dimensions of the region that gets clipped also needs to be scaled).
+  * Fix bug in StreamPNGSync
+
+1.2.1 / 2015-02-10
+==================
+
+  * Use non-cairo 1.12 API for shadow blur
+
+1.2.0 / 2015-01-31
+==================
+
+  * travis: drop support for node v0.6
+  * Merge pull request #507 from salzhrani/iojs
+  * io.js compatibility
+  * Merge pull request #505 from woodcoder/shadow-blur
+  * Fix issue with line width not being correct in stroked shadows.
+  * Add another shadow/transform test.
+  * Refactor setSourceRGBA to allow the context to be supplied.
+  * Simple image shadow (no blurring or handling current transforms) based on image's alpha channel.
+  * Test showing issue #133, that images don't have shadows.
+  * The +1 on the offset seems to match the browser's output better, but I can't work out why it would be needed (unless it's pixel alignment related).
+  * Make the shadow radius more accurately match the browser's, making use of sigma scale as used in SKIA: https://github.com/google/skia/blob/master/src/effects/SkBlurMask.cpp#L26.
+  * Create a new image surface to render blurred shadows to, this means that vector formats like PDF will now render blurs.
+  * Add recommended calls to flush and dirty buffer, as per http://www.cairographics.org/manual/cairo-Image-Surfaces.html#cairo-image-surface-get-data.
+  * Add PDF button to test page to easily generate PDF version of the test image.
+  * Fix to ensure shadowOffset is unaffected by the current transform.
+  * New test illustrating that canvas implementation doesn't translate the shadowOffset.
+  * Merge pull request #490 from AllYearbooks/master
+  * Merge pull request #501 from motiz88/hsl-color
+  * Code style + attribution. Also removed parseClipped() and commented out wrapInt (now wrap_int).
+  * Added visual tests for hsl() and hsla() color parsing.
+  * Fixed <number> handling in hsl/hsla color parser. parseNumber() was erroring out on numbers with long fractional parts.
+  * hsl/hsla color parsing + rebeccapurple hsl() and hsla() color values are now supported, with corresponding unit tests. Also added rebeccapurple (from CSS Color Level 4) to the named color list.
+  * float rather than int for drawImage arguments
+  * with_pango to true and use fontconfig to load fonts
+  * Merge pull request #399 from nulltask/fix/lighten
+  * Merge pull request #465 from espadrine/master
+  * Merge pull request #470 from tonylukasavage/patch-1
+  * Add one-liner MacPorts install to docs
+  * Offer SVG output.
+  * Readme update: node-gyp.
+  * Readme: fix subheading size
+  * Readme: remove Gemnasium badge, use SVG for npm badge
+  * Readme: add Travis-CI badge
+  * change operator lighter to lighten
+
+1.1.6 / 2014-08-01
+==================
+
+  * export canvas.CanvasPixelArray instead of canvas.PixelArray which is undefined
+  * Glib version test into giflib exists test
+  * Giflib 5.1
+  * install: use an even older version of giflib (v4.1.6)
+  * install: use an older version of giflib (v4.2.3)
+  * install: install `giflib`
+  * install: use more compatible sh syntax
+  * travis: attempt to run the ./install script before testintg
+  * travis: test node v0.6, v0.8, v0.10, and v0.11
+  * Distinguish between 'add' and 'lighter'
+
+1.1.5 / 2014-06-26
+==================
+
+  * Readme: remove Contributors section
+  * Readme: update copyright
+  * On Windows, copy required DLLs next to ".node" file (#442 @pandell)
+  * Duplicate "msvc_settings" for "Debug" configuration
+  * Remove unneeded #include <nan.h>
+  * Use float constants to prevent double->float conversion warning
+  * Ignore Visual C++ 2013 warnings (#441 @pandell)
+  * Add algorithm include to CanvasRenderingContext2d.cc for std::min (#435 @kkoopa)
+  * Updated NAN to 1.2.0 (#434 @kkoopa)
+
+1.1.4 / 2014-06-08
+==================
+
+  * Fix compile error with Visual C++
+  * Add support for the lineDash API
+  * Update NAN
+  * New V8 compatibility
+  * Correctly limit bounds in PutImageData to prevent segment fault
+  * Fix segfault when onload and onerror are not function
+  * Add support for Node 0.11.9
+
+1.1.3 / 2014-01-08
+==================
+
+  * Add CAIRO_FORMAT_INVALID
+  * Readjust the amount of allocated memory
+  * Fix argument index for filter parameter
+  * Make has_lib.sh work properly on Debian 64bit
+
+1.1.2 / 2013-10-31
+==================
+
+  * NAN dep upgrade, full node@<=0.11.8 compatibility
+  * Use node::MakeCallback() instead of v8::Function::Call()
+  * Improve nan location discovery
+  * Fix enabling gif/jpeg options on Ubuntu 13.04
+
+1.1.1 / 2013-10-09
+==================
+
+  * add better support for outdated versions of Cairo
+
+1.1.0 / 2013-08-01
+==================
+
+  * add png compression options
+  * add jpeg stream progressive mode option
+  * fix resource leaks on read errors
+
+1.0.4 / 2013-07-23
+==================
+
+  * 0.11.4+ compatibility using NAN
+  * fix typo in context2d for imageSmoothingEnabled
+
+1.0.3 / 2013-06-04
+==================
+
+  * add "nearest" and "bilinear" to patternQuality
+  * fix fread() retval check (items not bytes)
+  * removed unneeded private fields
+
+1.0.2 / 2013-03-22
+==================
+
+  * add Context2d#imageSmoothingEnabled=
+
+1.0.1 / 2013-02-25
+==================
+
+  * travis: test modern node versions
+  * change the node-gyp build to use pkg-config
+
+1.0.0 / 2013-01-16
+==================
+
+  * add conditional pango font support [Julian Viereck]
+  * add `Canvas#{png,jpeg}Stream()` alias of create* legacy methods
+  * add support for grayscale JPEGs
+  * fix: explicitly cast the after work callback function to "uv_after_work_cb"
+  * fix test server for express 3.x
+  * fix: call cairo_surface_finish in ~Canvas when pdf
+  * remove old 0.4.x binding support. Closes #197
+
+0.13.1 / 2012-08-20
+==================
+
+  * fix cases where GIF_LIB_VERSION is not defined
+  * fix auto-detection of optional libraries for OS X
+  * fix Context2d::SetFont for pango when setting normal weight/style
+
+0.13.0 / 2012-08-12
+==================
+
+  * add pango support [c-spencer]
+  * add pango / png / jpeg gyp auto-detection [c-spencer]
+  * add `.gifVersion` [tootallnate]
+  * add `.jpegVersion` [tootallnate]
+  * add moar gyp stuff [tootallnate]
+  * remove wscript
+  * fix `closure_destroy()` with cast for `AdjustAmountOfExternalAllocatedMemory()`
+
+0.12.1 / 2012-06-29
+==================
+
+  * fix jpeg malloc Image issue. Closes #160 [c-spencer]
+  * Improve Image mode API
+  * Add clearData method to handle reassignment of src, and clean up mime data memory handling.
+  * Improve how _data_len is managed and use to adjust memory, hide more of mime API behind cairo version conditional.
+  * Add optional mime-data tracking to Image.
+  * Refactor JPEG decoding into decodeJPEGIntoSurface
+
+0.12.0 / 2012-05-02
+==================
+
+  * Added `textDrawingMode` context property [c-spencer]
+  * Added additional TextMetrics properties [c-spencer]
+
+0.11.3 / 2012-04-25
+==================
+
+  * Fixed `Image` memory leak. Closes #150
+  * Fixed Context2d::hasShadow()
+
+0.11.2 / 2012-04-12
+==================
+
+  * Fixed: pdf memory leak, free closure and surface in ~Canvas
+
+0.11.1 / 2012-04-10
+==================
+
+  * Changed: renamed .nextPage() to .addPage()
+
+0.11.0 / 2012-04-10
+==================
+
+  * Added quick PDF support
+  * Added `Canvas#type` getter
+  * Added ./examples/pdf-images.js
+  * Added ./examples/multiple-page-pdf.js
+  * Added ./examples/small-pdf.js
+
+0.10.3 / 2012-02-27
+==================
+
+  * Fixed quadratic curve starting point for undefined path. Closes #155
+
+0.10.2 / 2012-02-06
+==================
+
+  * Fixed: Context2d setters with invalid values ignored
+  * Changed: replaced seek with `fstat()`
+
+0.10.1 / 2012-01-31
+==================
+
+  * Added _/opt/local/lib_ to wscript [obarthel]
+  * Added bounds checking to `rgba_to_string()` [obarthel]
+  * Fixed cleanup in JPEG Image loading [obarthel]
+  * Fixed missing CSS color table values [obarthel]
+
+0.10.0 / 2012-01-18
+==================
+
+  * Added `ctx.createPattern()` [slaskis]
+
+0.9.0 / 2012-01-13
+==================
+
+  * Added `createJPEGStream()` [Elijah Hamovitz]
+
+0.8.3 / 2012-01-04
+==================
+
+  * Added support for libjpeg62-dev or libjpeg8-dev [wwlinx]
+
+0.8.2 / 2011-12-14
+==================
+
+  * Fixed two memory leaks in context2d [Tharit]
+  * Fixed `make test-server`
+
+0.8.1 / 2011-10-31
+==================
+
+  * Added 0.5.x support [TooTallNate]
+  * Fixed `measureText().width`. Closes #126
+
+0.8.0 / 2011-10-28
+==================
+
+  * Added data uri support. Closes #49
+
+0.7.3 / 2011-09-14
+==================
+
+  * Added better lineTo() / moveTo() exception messages
+
+0.7.2 / 2011-08-30
+==================
+
+  * Changed: prefix some private methods with _
+
+0.7.1 / 2011-08-25
+==================
+
+  * Added better image format detection
+  * Added libpath options to waf configuration; this was necessary to correctly detect gif and jpeg support on FreeBSD
+
+0.7.0 / 2011-07-12
+==================
+
+  * Added GIF support [Brian McKinney]
+
+0.6.0 / 2011-06-04
+==================
+
+  * Added `Image#src=Buffer` support. Closes #91
+  * Added `devDependencies`
+  * Added `source-atop` test
+  * Added _image-src.js_ example
+  * Removed `V8::AdjustAmountOfExternalAllocatedMemory()` call from `toBuffer()`
+  * Fixed v8 memory hint when resizing canvas [atomizer]
+
+0.5.4 / 2011-04-20
+==================
+
+  * Added; special case of zero-width rectangle [atomizer]
+  * Fixed; do not clamp arguments to integer values [atomizer]
+  * Fixed; preserve current path during `fillRect()` and `strokeRect()` [atomizer]
+  * Fixed; `restorePath()`: clear current path before appending [atomizer]
+
+0.5.3 / 2011-04-11
+==================
+
+  * Clamp image bounds in `PixelArray::PixelArray()` [Marcello Bastea-Forte]
+
+0.5.2 / 2011-04-09
+==================
+
+  * Changed; make `PNGStream` a real `Stream` [Marcello Bastea-Forte]
+
+0.5.1 / 2011-03-16
+==================
+
+  * Fixed (kinda) `img.src=` error handling
+  * Fixed; move closure.h down for malloc ref. Closes #80
+
+0.5.0 / 2011-03-14
+==================
+
+  * Added several more operators (color-dodge, color-burn, difference, etc)
+  * Performance; no longer re-allocating `closure->data` for each png write
+  * Fixed freeing of `Context2d` states
+  * Fixed text alignment / baseline [Olaf]
+  * Fixed HandleScopes [Olaf]
+  * Fixed small misc memory leaks
+  * Fixed `Buffer` usage for node 0.4.x
+
+0.4.3 / 2011-01-11
+==================
+
+  * Fixed font family dereferencing. Closes #72
+  * Fixed; stripping of quotes from font-family before applying
+  * Fixed duplicate textAlign getter
+  * Removed sans-serif default of _Arial_
+
+0.4.2 / 2010-12-28
+==================
+
+  * Fixed font size growing issue after successive calls. Closes #70
+
+0.4.1 / 2010-12-18
+==================
+
+  * Fixed; toString() first argument of `{fill,stroke}Text()`. Closes #68
+
+0.4.0 / 2010-12-12
+==================
+
+  * Added `drawImage()` with `Canvas` instance support. Closes #67
+
+0.3.3 / 2010-11-30
+==================
+
+  * Added `CanvasRenderingContext2d#patternQuality` accessor, accepting _fast_, _good_, and _best_
+  * Fixed; pre-multiply `putImageData()` components
+  * Fixed; `PixelArray` data is not premultiplied
+
+0.3.2 / 2010-11-26
+==================
+
+  * Added --profile option to config
+  * Fixed `eio_custom` segfault(s). Closes #46
+  * Fixed two named colors. Closes #62 [thanks noonat]
+  * Fixed a few warnings
+  * Fixed; freeing data in `Image::loadJPEG()` on failure
+  * Fixed; include _jpeglib_ only when __HAVE_JPEG__
+  * Fixed; using `strstr()` instead of `strnstr()`
+
+0.3.1 / 2010-11-24
+==================
+
+  * Fixed; `Image` loading is sync until race-condition is resolved
+  * Fixed; `Image::loadJPEG()` return status based on errno
+
+0.3.0 / 2010-11-24
+==================
+
+  * Added arcTo(). Closes #11
+  * Added c color parser, _./examples/ray.js_ is now twice as fast
+  * Fixed `putImageData()` bug messing up rgba channels
+
+0.2.1 / 2010-11-19
+==================
+
+  * Added image _resize_ example
+  * Fixed canvas resizing via `{width,height}=`. Closes #57
+  * Fixed `Canvas#getContext()`, caching the CanvasRenderingContext
+  * Fixed async image loading (test server still messed)
+
+0.2.0 / 2010-11-18
+==================
+
+  * Added jpeg `Image` support (when libjpeg is available)
+  * Added _hsl_ / _hsla_ color support. [Tom Carden]
+
+0.1.0 / 2010-11-17
+==================
+
+  * Added `Image`
+  * Added `ImageData`
+  * Added `PixelArray`
+  * Added `CanvasRenderingContext2d#drawImage()`
+  * Added `CanvasRenderingContext2d#getImageData()`
+  * Added `CanvasRenderingContext2d#createImageData()`
+  * Added kraken blur benchmark example
+  * Added several new tests
+  * Fixed instanceof checks for many c++ methods
+  * Fixed test runner in firefox [Don Park]
+
+0.0.8 / 2010-11-12
+==================
+
+  * Added `CanvasRenderingContext2d#drawImage()`
+  * Fixed `free()` call missing stdlib
+  * Fixed Image#{width,height} initialization to 0
+  * Fixed; load image on non-LOADING state
+
+0.0.7 / 2010-11-12
+==================
+
+  * Fixed _lighter_ for older versions of cairo
+
+0.0.6 / 2010-11-12
+==================
+
+  * Added `Image`
+  * Added conditional support for cairo 1.10.0 operators
+
+0.0.5 / 2010-11-10
+==================
+
+  * Added custom port support to _test/server.js_
+  * Added more global composite operator support
+  * Added `Context2d#antialias=`
+  * Added _voronoi_ example
+  * Added -D__NDEBUG__ to default build
+  * Added __BUFFER_DATA__ macro for backwards compat buffer data access [Don Park]
+  * Fixed getter bug preventing patterns from being returned via `fillStyle` etc
+
+  * Fixed; __CAIRO_STATUS_NO_MEMORY___ on failed {re,m}alloc()
+  * Fixed; free `Canvas::ToBuffer()` closure data
+
+0.0.4 / 2010-11-09
+==================
+
+  * Bump to fix npm engine cache bug...
+
+0.0.3 / 2010-11-09
+==================
+
+  * Added async `toDataURL()` support
+  * Added async `toBuffer()` support
+  * Removed buffer utils
+
+0.0.2 / 2010-11-08
+==================
+
+  * Added shadow support (faster/better gaussian blur to come)
+  * Added node v0.3 support [Don Park]
+  * Added -O3 to build
+  * Removed `Canvas#savePNG()` use `Canvas#createPNGStream()`
+
+0.0.1 / 2010-11-04
+==================
+
+  * Initial release
+
+[repo]: https://github.com/Automattic/node-canvas
diff --git a/node_modules/canvas/Readme.md b/node_modules/canvas/Readme.md
new file mode 100644
index 0000000..cc945aa
--- /dev/null
+++ b/node_modules/canvas/Readme.md
@@ -0,0 +1,600 @@
+# node-canvas
+
+![Test](https://github.com/Automattic/node-canvas/workflows/Test/badge.svg)
+[![NPM version](https://badge.fury.io/js/canvas.svg)](http://badge.fury.io/js/canvas)
+
+node-canvas is a [Cairo](http://cairographics.org/)-backed Canvas implementation for [Node.js](http://nodejs.org).
+
+## Installation
+
+```bash
+$ npm install canvas
+```
+
+By default, binaries for macOS, Linux and Windows will be downloaded. If you want to build from source, use `npm install --build-from-source` and see the **Compiling** section below.
+
+The minimum version of Node.js required is **6.0.0**.
+
+### Compiling
+
+If you don't have a supported OS or processor architecture, or you use `--build-from-source`, the module will be compiled on your system. This requires several dependencies, including Cairo and Pango.
+
+For detailed installation information, see the [wiki](https://github.com/Automattic/node-canvas/wiki/_pages). One-line installation instructions for common OSes are below. Note that libgif/giflib, librsvg and libjpeg are optional and only required if you need GIF, SVG and JPEG support, respectively. Cairo v1.10.0 or later is required.
+
+OS | Command
+----- | -----
+OS X | Using [Homebrew](https://brew.sh/):<br/>`brew install pkg-config cairo pango libpng jpeg giflib librsvg pixman`
+Ubuntu | `sudo apt-get install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev`
+Fedora | `sudo yum install gcc-c++ cairo-devel pango-devel libjpeg-turbo-devel giflib-devel`
+Solaris | `pkgin install cairo pango pkg-config xproto renderproto kbproto xextproto`
+OpenBSD | `doas pkg_add cairo pango png jpeg giflib`
+Windows | See the [wiki](https://github.com/Automattic/node-canvas/wiki/Installation:-Windows)
+Others | See the [wiki](https://github.com/Automattic/node-canvas/wiki)
+
+**Mac OS X v10.11+:** If you have recently updated to Mac OS X v10.11+ and are experiencing trouble when compiling, run the following command: `xcode-select --install`. Read more about the problem [on Stack Overflow](http://stackoverflow.com/a/32929012/148072).
+If you have xcode 10.0 or higher installed, in order to build from source you need NPM 6.4.1 or higher.
+
+## Quick Example
+
+```javascript
+const { createCanvas, loadImage } = require('canvas')
+const canvas = createCanvas(200, 200)
+const ctx = canvas.getContext('2d')
+
+// Write "Awesome!"
+ctx.font = '30px Impact'
+ctx.rotate(0.1)
+ctx.fillText('Awesome!', 50, 100)
+
+// Draw line under text
+var text = ctx.measureText('Awesome!')
+ctx.strokeStyle = 'rgba(0,0,0,0.5)'
+ctx.beginPath()
+ctx.lineTo(50, 102)
+ctx.lineTo(50 + text.width, 102)
+ctx.stroke()
+
+// Draw cat with lime helmet
+loadImage('examples/images/lime-cat.jpg').then((image) => {
+  ctx.drawImage(image, 50, 0, 70, 70)
+
+  console.log('<img src="' + canvas.toDataURL() + '" />')
+})
+```
+
+## Upgrading from 1.x to 2.x
+
+See the [changelog](https://github.com/Automattic/node-canvas/blob/master/CHANGELOG.md) for a guide to upgrading from 1.x to 2.x.
+
+For version 1.x documentation, see [the v1.x branch](https://github.com/Automattic/node-canvas/tree/v1.x).
+
+## Documentation
+
+This project is an implementation of the Web Canvas API and implements that API as closely as possible. For API documentation, please visit [Mozilla Web Canvas API](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API). (See [Compatibility Status](https://github.com/Automattic/node-canvas/wiki/Compatibility-Status) for the current API compliance.) All utility methods and non-standard APIs are documented below.
+
+### Utility methods
+
+* [createCanvas()](#createcanvas)
+* [createImageData()](#createimagedata)
+* [loadImage()](#loadimage)
+* [registerFont()](#registerfont)
+
+### Non-standard APIs
+
+* [Image#src](#imagesrc)
+* [Image#dataMode](#imagedatamode)
+* [Canvas#toBuffer()](#canvastobuffer)
+* [Canvas#createPNGStream()](#canvascreatepngstream)
+* [Canvas#createJPEGStream()](#canvascreatejpegstream)
+* [Canvas#createPDFStream()](#canvascreatepdfstream)
+* [Canvas#toDataURL()](#canvastodataurl)
+* [CanvasRenderingContext2D#patternQuality](#canvasrenderingcontext2dpatternquality)
+* [CanvasRenderingContext2D#quality](#canvasrenderingcontext2dquality)
+* [CanvasRenderingContext2D#textDrawingMode](#canvasrenderingcontext2dtextdrawingmode)
+* [CanvasRenderingContext2D#globalCompositeOperation = 'saturate'](#canvasrenderingcontext2dglobalcompositeoperation--saturate)
+* [CanvasRenderingContext2D#antialias](#canvasrenderingcontext2dantialias)
+
+### createCanvas()
+
+> ```ts
+> createCanvas(width: number, height: number, type?: 'PDF'|'SVG') => Canvas
+> ```
+
+Creates a Canvas instance. This method works in both Node.js and Web browsers, where there is no Canvas constructor. (See `browser.js` for the implementation that runs in browsers.)
+
+```js
+const { createCanvas } = require('canvas')
+const mycanvas = createCanvas(200, 200)
+const myPDFcanvas = createCanvas(600, 800, 'pdf') // see "PDF Support" section
+```
+
+### createImageData()
+
+> ```ts
+> createImageData(width: number, height: number) => ImageData
+> createImageData(data: Uint8ClampedArray, width: number, height?: number) => ImageData
+> // for alternative pixel formats:
+> createImageData(data: Uint16Array, width: number, height?: number) => ImageData
+> ```
+
+Creates an ImageData instance. This method works in both Node.js and Web browsers.
+
+```js
+const { createImageData } = require('canvas')
+const width = 20, height = 20
+const arraySize = width * height * 4
+const mydata = createImageData(new Uint8ClampedArray(arraySize), width)
+```
+
+### loadImage()
+
+> ```ts
+> loadImage() => Promise<Image>
+> ```
+
+Convenience method for loading images. This method works in both Node.js and Web browsers.
+
+```js
+const { loadImage } = require('canvas')
+const myimg = loadImage('http://server.com/image.png')
+
+myimg.then(() => {
+  // do something with image
+}).catch(err => {
+  console.log('oh no!', err)
+})
+
+// or with async/await:
+const myimg = await loadImage('http://server.com/image.png')
+// do something with image
+```
+
+### registerFont()
+
+> ```ts
+> registerFont(path: string, { family: string, weight?: string, style?: string }) => void
+> ```
+
+To use a font file that is not installed as a system font, use `registerFont()` to register the font with Canvas. *This must be done before the Canvas is created.*
+
+```js
+const { registerFont, createCanvas } = require('canvas')
+registerFont('comicsans.ttf', { family: 'Comic Sans' })
+
+const canvas = createCanvas(500, 500)
+const ctx = canvas.getContext('2d')
+
+ctx.font = '12px "Comic Sans"'
+ctx.fillText('Everyone hates this font :(', 250, 10)
+```
+
+The second argument is an object with properties that resemble the CSS properties that are specified in `@font-face` rules. You must specify at least `family`. `weight`, and `style` are optional and default to `'normal'`.
+
+### Image#src
+
+> ```ts
+> img.src: string|Buffer
+> ```
+
+As in browsers, `img.src` can be set to a `data:` URI or a remote URL. In addition, node-canvas allows setting `src` to a local file path or `Buffer` instance.
+
+```javascript
+const { Image } = require('canvas')
+
+// From a buffer:
+fs.readFile('images/squid.png', (err, squid) => {
+  if (err) throw err
+  const img = new Image()
+  img.onload = () => ctx.drawImage(img, 0, 0)
+  img.onerror = err => { throw err }
+  img.src = squid
+})
+
+// From a local file path:
+const img = new Image()
+img.onload = () => ctx.drawImage(img, 0, 0)
+img.onerror = err => { throw err }
+img.src = 'images/squid.png'
+
+// From a remote URL:
+img.src = 'http://picsum.photos/200/300'
+// ... as above
+
+// From a `data:` URI:
+img.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=='
+// ... as above
+```
+
+*Note: In some cases, `img.src=` is currently synchronous. However, you should always use `img.onload` and `img.onerror`, as we intend to make `img.src=` always asynchronous as it is in browsers. See https://github.com/Automattic/node-canvas/issues/1007.*
+
+### Image#dataMode
+
+> ```ts
+> img.dataMode: number
+> ```
+
+Applies to JPEG images drawn to PDF canvases only.
+
+Setting `img.dataMode = Image.MODE_MIME` or `Image.MODE_MIME|Image.MODE_IMAGE` enables MIME data tracking of images. When MIME data is tracked, PDF canvases can embed JPEGs directly into the output, rather than re-encoding into PNG. This can drastically reduce filesize and speed up rendering.
+
+```javascript
+const { Image, createCanvas } = require('canvas')
+const canvas = createCanvas(w, h, 'pdf')
+const img = new Image()
+img.dataMode = Image.MODE_IMAGE // Only image data tracked
+img.dataMode = Image.MODE_MIME // Only mime data tracked
+img.dataMode = Image.MODE_MIME | Image.MODE_IMAGE // Both are tracked
+```
+
+If working with a non-PDF canvas, image data *must* be tracked; otherwise the output will be junk.
+
+Enabling mime data tracking has no benefits (only a slow down) unless you are generating a PDF.
+
+### Canvas#toBuffer()
+
+> ```ts
+> canvas.toBuffer((err: Error|null, result: Buffer) => void, mimeType?: string, config?: any) => void
+> canvas.toBuffer(mimeType?: string, config?: any) => Buffer
+> ```
+
+Creates a [`Buffer`](https://nodejs.org/api/buffer.html) object representing the image contained in the canvas.
+
+* **callback** If provided, the buffer will be provided in the callback instead of being returned by the function. Invoked with an error as the first argument if encoding failed, or the resulting buffer as the second argument if it succeeded. Not supported for mimeType `raw` or for PDF or SVG canvases.
+* **mimeType** A string indicating the image format. Valid options are `image/png`, `image/jpeg` (if node-canvas was built with JPEG support), `raw` (unencoded data in BGRA order on little-endian (most) systems, ARGB on big-endian systems; top-to-bottom), `application/pdf` (for PDF canvases) and `image/svg+xml` (for SVG canvases). Defaults to `image/png` for image canvases, or the corresponding type for PDF or SVG canvas.
+* **config**
+  * For `image/jpeg`, an object specifying the quality (0 to 1), if progressive compression should be used and/or if chroma subsampling should be used: `{quality: 0.75, progressive: false, chromaSubsampling: true}`. All properties are optional.
+
+  * For `image/png`, an object specifying the ZLIB compression level (between 0 and 9), the compression filter(s), the palette (indexed PNGs only), the the background palette index (indexed PNGs only) and/or the resolution (ppi): `{compressionLevel: 6, filters: canvas.PNG_ALL_FILTERS, palette: undefined, backgroundIndex: 0, resolution: undefined}`. All properties are optional.
+
+    Note that the PNG format encodes the resolution in pixels per meter, so if you specify `96`, the file will encode 3780 ppm (~96.01 ppi). The resolution is undefined by default to match common browser behavior.
+
+  * For `application/pdf`, an object specifying optional document metadata: `{title: string, author: string, subject: string, keywords: string, creator: string, creationDate: Date, modDate: Date}`. All properties are optional and default to `undefined`, except for `creationDate`, which defaults to the current date. *Adding metadata requires Cairo 1.16.0 or later.*
+
+    For a description of these properties, see page 550 of [PDF 32000-1:2008](https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/PDF32000_2008.pdf).
+
+    Note that there is no standard separator for `keywords`. A space is recommended because it is in common use by other applications, and Cairo will enclose the list of keywords in quotes if a comma or semicolon is used.
+
+**Return value**
+
+If no callback is provided, a [`Buffer`](https://nodejs.org/api/buffer.html). If a callback is provided, none.
+
+#### Examples
+
+```js
+// Default: buf contains a PNG-encoded image
+const buf = canvas.toBuffer()
+
+// PNG-encoded, zlib compression level 3 for faster compression but bigger files, no filtering
+const buf2 = canvas.toBuffer('image/png', { compressionLevel: 3, filters: canvas.PNG_FILTER_NONE })
+
+// JPEG-encoded, 50% quality
+const buf3 = canvas.toBuffer('image/jpeg', { quality: 0.5 })
+
+// Asynchronous PNG
+canvas.toBuffer((err, buf) => {
+  if (err) throw err // encoding failed
+  // buf is PNG-encoded image
+})
+
+canvas.toBuffer((err, buf) => {
+  if (err) throw err // encoding failed
+  // buf is JPEG-encoded image at 95% quality
+}, 'image/jpeg', { quality: 0.95 })
+
+// BGRA pixel values, native-endian
+const buf4 = canvas.toBuffer('raw')
+const { stride, width } = canvas
+// In memory, this is `canvas.height * canvas.stride` bytes long.
+// The top row of pixels, in BGRA order on little-endian hardware,
+// left-to-right, is:
+const topPixelsBGRALeftToRight = buf4.slice(0, width * 4)
+// And the third row is:
+const row3 = buf4.slice(2 * stride, 2 * stride + width * 4)
+
+// SVG and PDF canvases
+const myCanvas = createCanvas(w, h, 'pdf')
+myCanvas.toBuffer() // returns a buffer containing a PDF-encoded canvas
+// With optional metadata:
+myCanvas.toBuffer('application/pdf', {
+  title: 'my picture',
+  keywords: 'node.js demo cairo',
+  creationDate: new Date()
+})
+```
+
+### Canvas#createPNGStream()
+
+> ```ts
+> canvas.createPNGStream(config?: any) => ReadableStream
+> ```
+
+Creates a [`ReadableStream`](https://nodejs.org/api/stream.html#stream_class_stream_readable) that emits PNG-encoded data.
+
+* `config` An object specifying the ZLIB compression level (between 0 and 9), the compression filter(s), the palette (indexed PNGs only) and/or the background palette index (indexed PNGs only): `{compressionLevel: 6, filters: canvas.PNG_ALL_FILTERS, palette: undefined, backgroundIndex: 0, resolution: undefined}`. All properties are optional.
+
+#### Examples
+
+```javascript
+const fs = require('fs')
+const out = fs.createWriteStream(__dirname + '/test.png')
+const stream = canvas.createPNGStream()
+stream.pipe(out)
+out.on('finish', () =>  console.log('The PNG file was created.'))
+```
+
+To encode indexed PNGs from canvases with `pixelFormat: 'A8'` or `'A1'`, provide an options object:
+
+```js
+const palette = new Uint8ClampedArray([
+  //r    g    b    a
+    0,  50,  50, 255, // index 1
+   10,  90,  90, 255, // index 2
+  127, 127, 255, 255
+  // ...
+])
+canvas.createPNGStream({
+  palette: palette,
+  backgroundIndex: 0 // optional, defaults to 0
+})
+```
+
+### Canvas#createJPEGStream()
+
+> ```ts
+> canvas.createJPEGStream(config?: any) => ReadableStream
+> ```
+
+Creates a [`ReadableStream`](https://nodejs.org/api/stream.html#stream_class_stream_readable) that emits JPEG-encoded data.
+
+*Note: At the moment, `createJPEGStream()` is synchronous under the hood. That is, it runs in the main thread, not in the libuv threadpool.*
+
+* `config` an object specifying the quality (0 to 1), if progressive compression should be used and/or if chroma subsampling should be used: `{quality: 0.75, progressive: false, chromaSubsampling: true}`. All properties are optional.
+
+#### Examples
+
+```javascript
+const fs = require('fs')
+const out = fs.createWriteStream(__dirname + '/test.jpeg')
+const stream = canvas.createJPEGStream()
+stream.pipe(out)
+out.on('finish', () =>  console.log('The JPEG file was created.'))
+
+// Disable 2x2 chromaSubsampling for deeper colors and use a higher quality
+const stream = canvas.createJPEGStream({
+  quality: 0.95,
+  chromaSubsampling: false
+})
+```
+
+### Canvas#createPDFStream()
+
+> ```ts
+> canvas.createPDFStream(config?: any) => ReadableStream
+> ```
+
+* `config` an object specifying optional document metadata: `{title: string, author: string, subject: string, keywords: string, creator: string, creationDate: Date, modDate: Date}`. See `toBuffer()` for more information. *Adding metadata requires Cairo 1.16.0 or later.*
+
+Applies to PDF canvases only. Creates a [`ReadableStream`](https://nodejs.org/api/stream.html#stream_class_stream_readable) that emits the encoded PDF. `canvas.toBuffer()` also produces an encoded PDF, but `createPDFStream()` can be used to reduce memory usage.
+
+### Canvas#toDataURL()
+
+This is a standard API, but several non-standard calls are supported. The full list of supported calls is:
+
+```js
+dataUrl = canvas.toDataURL() // defaults to PNG
+dataUrl = canvas.toDataURL('image/png')
+dataUrl = canvas.toDataURL('image/jpeg')
+dataUrl = canvas.toDataURL('image/jpeg', quality) // quality from 0 to 1
+canvas.toDataURL((err, png) => { }) // defaults to PNG
+canvas.toDataURL('image/png', (err, png) => { })
+canvas.toDataURL('image/jpeg', (err, jpeg) => { }) // sync JPEG is not supported
+canvas.toDataURL('image/jpeg', {...opts}, (err, jpeg) => { }) // see Canvas#createJPEGStream for valid options
+canvas.toDataURL('image/jpeg', quality, (err, jpeg) => { }) // spec-following; quality from 0 to 1
+```
+
+### CanvasRenderingContext2D#patternQuality
+
+> ```ts
+> context.patternQuality: 'fast'|'good'|'best'|'nearest'|'bilinear'
+> ```
+
+Defaults to `'good'`. Affects pattern (gradient, image, etc.) rendering quality.
+
+### CanvasRenderingContext2D#quality
+
+> ```ts
+> context.quality: 'fast'|'good'|'best'|'nearest'|'bilinear'
+> ```
+
+Defaults to `'good'`. Like `patternQuality`, but applies to transformations affecting more than just patterns.
+
+### CanvasRenderingContext2D#textDrawingMode
+
+> ```ts
+> context.textDrawingMode: 'path'|'glyph'
+> ```
+
+Defaults to `'path'`. The effect depends on the canvas type:
+
+* **Standard (image)** `glyph` and `path` both result in rasterized text. Glyph mode is faster than `path`, but may result in lower-quality text, especially when rotated or translated.
+
+* **PDF** `glyph` will embed text instead of paths into the PDF. This is faster to encode, faster to open with PDF viewers, yields a smaller file size and makes the text selectable. The subset of the font needed to render the glyphs will be embedded in the PDF. This is usually the mode you want to use with PDF canvases.
+
+* **SVG** `glyph` does *not* cause `<text>` elements to be produced as one might expect ([cairo bug](https://gitlab.freedesktop.org/cairo/cairo/issues/253)). Rather, `glyph` will create a `<defs>` section with a `<symbol>` for each glyph, then those glyphs be reused via `<use>` elements. `path` mode creates a `<path>` element for each text string. `glyph` mode is faster and yields a smaller file size.
+
+In `glyph` mode, `ctx.strokeText()` and `ctx.fillText()` behave the same (aside from using the stroke and fill style, respectively).
+
+This property is tracked as part of the canvas state in save/restore.
+
+### CanvasRenderingContext2D#globalCompositeOperation = 'saturate'
+
+In addition to all of the standard global composite operations defined by the Canvas specification, the ['saturate'](https://www.cairographics.org/operators/#saturate) operation is also available.
+
+### CanvasRenderingContext2D#antialias
+
+> ```ts
+> context.antialias: 'default'|'none'|'gray'|'subpixel'
+> ```
+
+Sets the anti-aliasing mode.
+
+## PDF Output Support
+
+node-canvas can create PDF documents instead of images. The canvas type must be set when creating the canvas as follows:
+
+```js
+const canvas = createCanvas(200, 500, 'pdf')
+```
+
+An additional method `.addPage()` is then available to create multiple page PDFs:
+
+```js
+// On first page
+ctx.font = '22px Helvetica'
+ctx.fillText('Hello World', 50, 80)
+
+ctx.addPage()
+// Now on second page
+ctx.font = '22px Helvetica'
+ctx.fillText('Hello World 2', 50, 80)
+
+canvas.toBuffer() // returns a PDF file
+canvas.createPDFStream() // returns a ReadableStream that emits a PDF
+// With optional document metadata (requires Cairo 1.16.0):
+canvas.toBuffer('application/pdf', {
+  title: 'my picture',
+  keywords: 'node.js demo cairo',
+  creationDate: new Date()
+})
+```
+
+It is also possible to create pages with different sizes by passing `width` and `height` to the `.addPage()` method:
+
+```js
+ctx.font = '22px Helvetica'
+ctx.fillText('Hello World', 50, 80)
+ctx.addPage(400, 800)
+
+ctx.fillText('Hello World 2', 50, 80)
+```
+
+See also:
+
+* [Image#dataMode](#imagedatamode) for embedding JPEGs in PDFs
+* [Canvas#createPDFStream()](#canvascreatepdfstream) for creating PDF streams
+* [CanvasRenderingContext2D#textDrawingMode](#canvasrenderingcontext2dtextdrawingmode)
+  for embedding text instead of paths
+
+## SVG Output Support
+
+node-canvas can create SVG documents instead of images. The canvas type must be set when creating the canvas as follows:
+
+```js
+const canvas = createCanvas(200, 500, 'svg')
+// Use the normal primitives.
+fs.writeFileSync('out.svg', canvas.toBuffer())
+```
+
+## SVG Image Support
+
+If librsvg is available when node-canvas is installed, node-canvas can render SVG images to your canvas context. This currently works by rasterizing the SVG image (i.e. drawing an SVG image to an SVG canvas will not preserve the SVG data).
+
+```js
+const img = new Image()
+img.onload = () => ctx.drawImage(img, 0, 0)
+img.onerror = err => { throw err }
+img.src = './example.svg'
+```
+
+## Image pixel formats (experimental)
+
+node-canvas has experimental support for additional pixel formats, roughly following the [Canvas color space proposal](https://github.com/WICG/canvas-color-space/blob/master/CanvasColorSpaceProposal.md).
+
+```js
+const canvas = createCanvas(200, 200)
+const ctx = canvas.getContext('2d', { pixelFormat: 'A8' })
+```
+
+By default, canvases are created in the `RGBA32` format, which corresponds to the native HTML Canvas behavior. Each pixel is 32 bits. The JavaScript APIs that involve pixel data (`getImageData`, `putImageData`) store the colors in the order {red, green, blue, alpha} without alpha pre-multiplication. (The C++ API stores the colors in the order {alpha, red, green, blue} in native-[endian](https://en.wikipedia.org/wiki/Endianness) ordering, with alpha pre-multiplication.)
+
+These additional pixel formats have experimental support:
+
+* `RGB24` Like `RGBA32`, but the 8 alpha bits are always opaque. This format is always used if the `alpha` context attribute is set to false (i.e. `canvas.getContext('2d', {alpha: false})`). This format can be faster than `RGBA32` because transparency does not need to be calculated.
+* `A8` Each pixel is 8 bits. This format can either be used for creating grayscale images (treating each byte as an alpha value), or for creating indexed PNGs (treating each byte as a palette index) (see [the example using alpha values with `fillStyle`](examples/indexed-png-alpha.js) and [the example using `imageData`](examples/indexed-png-image-data.js)).
+* `RGB16_565` Each pixel is 16 bits, with red in the upper 5 bits, green in the middle 6 bits, and blue in the lower 5 bits, in native platform endianness. Some hardware devices and frame buffers use this format. Note that PNG does not support this format; when creating a PNG, the image will be converted to 24-bit RGB. This format is thus suboptimal for generating PNGs. `ImageData` instances for this mode use a `Uint16Array` instead of a `Uint8ClampedArray`.
+* `A1` Each pixel is 1 bit, and pixels are packed together into 32-bit quantities. The ordering of the bits matches the endianness of the
+  platform: on a little-endian machine, the first pixel is the least-significant bit. This format can be used for creating single-color images. *Support for this format is incomplete, see note below.*
+* `RGB30` Each pixel is 30 bits, with red in the upper 10, green in the middle 10, and blue in the lower 10. (Requires Cairo 1.12 or later.) *Support for this format is incomplete, see note below.*
+
+Notes and caveats:
+
+* Using a non-default format can affect the behavior of APIs that involve pixel data:
+
+  * `context2d.createImageData` The size of the array returned depends on the number of bit per pixel for the underlying image data format, per the above descriptions.
+  * `context2d.getImageData` The format of the array returned depends on the underlying image mode, per the above descriptions. Be aware of platform endianness, which can be determined using node.js's [`os.endianness()`](https://nodejs.org/api/os.html#os_os_endianness)
+    function.
+  * `context2d.putImageData` As above.
+
+* `A1` and `RGB30` do not yet support `getImageData` or `putImageData`. Have a use case and/or opinion on working with these formats? Open an issue and let us know! (See #935.)
+
+* `A1`, `A8`, `RGB30` and `RGB16_565` with shadow blurs may crash or not render properly.
+
+* The `ImageData(width, height)` and `ImageData(Uint8ClampedArray, width)` constructors assume 4 bytes per pixel. To create an `ImageData` instance with a different number of bytes per pixel, use `new ImageData(new Uint8ClampedArray(size), width, height)` or `new ImageData(new Uint16ClampedArray(size), width, height)`.
+
+## Testing
+
+First make sure you've built the latest version. Get all the deps you need (see [compiling](#compiling) above), and run:
+
+```
+npm install --build-from-source
+```
+
+For visual tests: `npm run test-server` and point your browser to http://localhost:4000.
+
+For unit tests: `npm run test`.
+
+## Benchmarks
+
+Benchmarks live in the `benchmarks` directory.
+
+## Examples
+
+Examples line in the `examples` directory. Most produce a png image of the same name, and others such as *live-clock.js* launch an HTTP server to be viewed in the browser.
+
+## Original Authors
+
+  - TJ Holowaychuk ([tj](http://github.com/tj))
+  - Nathan Rajlich ([TooTallNate](http://github.com/TooTallNate))
+  - Rod Vagg ([rvagg](http://github.com/rvagg))
+  - Juriy Zaytsev ([kangax](http://github.com/kangax))
+
+## License
+
+### node-canvas
+
+(The MIT License)
+
+Copyright (c) 2010 LearnBoost, and contributors &lt;dev@learnboost.com&gt;
+
+Copyright (c) 2014 Automattic, Inc and contributors &lt;dev@automattic.com&gt;
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the 'Software'), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+### BMP parser
+
+See [license](src/bmp/LICENSE.md)
diff --git a/node_modules/canvas/binding.gyp b/node_modules/canvas/binding.gyp
new file mode 100644
index 0000000..19a33e8
--- /dev/null
+++ b/node_modules/canvas/binding.gyp
@@ -0,0 +1,230 @@
+{
+  'conditions': [
+    ['OS=="win"', {
+      'variables': {
+        'GTK_Root%': 'C:/GTK',  # Set the location of GTK all-in-one bundle
+        'with_jpeg%': 'false',
+        'with_gif%': 'false',
+        'with_rsvg%': 'false',
+        'variables': { # Nest jpeg_root to evaluate it before with_jpeg
+          'jpeg_root%': '<!(node ./util/win_jpeg_lookup)'
+        },
+        'jpeg_root%': '<(jpeg_root)', # Take value of nested variable
+        'conditions': [
+          ['jpeg_root==""', {
+            'with_jpeg%': 'false'
+          }, {
+            'with_jpeg%': 'true'
+          }]
+        ]
+      }
+    }, {  # 'OS!="win"'
+      'variables': {
+        'with_jpeg%': '<!(node ./util/has_lib.js jpeg)',
+        'with_gif%': '<!(node ./util/has_lib.js gif)',
+        'with_rsvg%': '<!(node ./util/has_lib.js rsvg)'
+      }
+    }]
+  ],
+  'targets': [
+    {
+      'target_name': 'canvas-postbuild',
+      'dependencies': ['canvas'],
+      'conditions': [
+        ['OS=="win"', {
+          'copies': [{
+            'destination': '<(PRODUCT_DIR)',
+            'files': [
+              '<(GTK_Root)/bin/zlib1.dll',
+              '<(GTK_Root)/bin/libintl-8.dll',
+              '<(GTK_Root)/bin/libpng14-14.dll',
+              '<(GTK_Root)/bin/libpangocairo-1.0-0.dll',
+              '<(GTK_Root)/bin/libpango-1.0-0.dll',
+              '<(GTK_Root)/bin/libpangoft2-1.0-0.dll',
+              '<(GTK_Root)/bin/libpangowin32-1.0-0.dll',
+              '<(GTK_Root)/bin/libcairo-2.dll',
+              '<(GTK_Root)/bin/libfontconfig-1.dll',
+              '<(GTK_Root)/bin/libfreetype-6.dll',
+              '<(GTK_Root)/bin/libglib-2.0-0.dll',
+              '<(GTK_Root)/bin/libgobject-2.0-0.dll',
+              '<(GTK_Root)/bin/libgmodule-2.0-0.dll',
+              '<(GTK_Root)/bin/libgthread-2.0-0.dll',
+              '<(GTK_Root)/bin/libexpat-1.dll'
+            ]
+          }]
+        }]
+      ]
+    },
+    {
+      'target_name': 'canvas',
+      'include_dirs': ["<!(node -e \"require('nan')\")"],
+      'sources': [
+        'src/backend/Backend.cc',
+        'src/backend/ImageBackend.cc',
+        'src/backend/PdfBackend.cc',
+        'src/backend/SvgBackend.cc',
+        'src/bmp/BMPParser.cc',
+        'src/Backends.cc',
+        'src/Canvas.cc',
+        'src/CanvasGradient.cc',
+        'src/CanvasPattern.cc',
+        'src/CanvasRenderingContext2d.cc',
+        'src/closure.cc',
+        'src/color.cc',
+        'src/Image.cc',
+        'src/ImageData.cc',
+        'src/init.cc',
+        'src/register_font.cc'
+      ],
+      'conditions': [
+        ['OS=="win"', {
+          'libraries': [
+            '-l<(GTK_Root)/lib/cairo.lib',
+            '-l<(GTK_Root)/lib/libpng.lib',
+            '-l<(GTK_Root)/lib/pangocairo-1.0.lib',
+            '-l<(GTK_Root)/lib/pango-1.0.lib',
+            '-l<(GTK_Root)/lib/freetype.lib',
+            '-l<(GTK_Root)/lib/glib-2.0.lib',
+            '-l<(GTK_Root)/lib/gobject-2.0.lib'
+          ],
+          'include_dirs': [
+            '<(GTK_Root)/include',
+            '<(GTK_Root)/include/cairo',
+            '<(GTK_Root)/include/pango-1.0',
+            '<(GTK_Root)/include/glib-2.0',
+            '<(GTK_Root)/include/freetype2',
+            '<(GTK_Root)/lib/glib-2.0/include'
+          ],
+          'defines': [
+            '_USE_MATH_DEFINES',  # for M_PI
+            'NOMINMAX' # allow std::min/max to work
+          ],
+          'configurations': {
+            'Debug': {
+              'msvs_settings': {
+                'VCCLCompilerTool': {
+                  'WarningLevel': 4,
+                  'ExceptionHandling': 1,
+                  'DisableSpecificWarnings': [
+                    4100, 4611
+                  ]
+                }
+              }
+            },
+            'Release': {
+              'msvs_settings': {
+                'VCCLCompilerTool': {
+                  'WarningLevel': 4,
+                  'ExceptionHandling': 1,
+                  'DisableSpecificWarnings': [
+                    4100, 4611
+                  ]
+                }
+              }
+            }
+          }
+        }, {  # 'OS!="win"'
+          'libraries': [
+            '<!@(pkg-config pixman-1 --libs)',
+            '<!@(pkg-config cairo --libs)',
+            '<!@(pkg-config libpng --libs)',
+            '<!@(pkg-config pangocairo --libs)',
+            '<!@(pkg-config freetype2 --libs)'
+          ],
+          'include_dirs': [
+            '<!@(pkg-config cairo --cflags-only-I | sed s/-I//g)',
+            '<!@(pkg-config libpng --cflags-only-I | sed s/-I//g)',
+            '<!@(pkg-config pangocairo --cflags-only-I | sed s/-I//g)',
+            '<!@(pkg-config freetype2 --cflags-only-I | sed s/-I//g)'
+          ],
+          'cflags': ['-Wno-cast-function-type'],
+          'cflags!': ['-fno-exceptions'],
+          'cflags_cc!': ['-fno-exceptions']
+        }],
+        ['OS=="mac"', {
+          'xcode_settings': {
+            'GCC_ENABLE_CPP_EXCEPTIONS': 'YES'
+          }
+        }],
+        ['with_jpeg=="true"', {
+          'defines': [
+            'HAVE_JPEG'
+          ],
+          'conditions': [
+            ['OS=="win"', {
+              'copies': [{
+                'destination': '<(PRODUCT_DIR)',
+                'files': [
+                  '<(jpeg_root)/bin/jpeg62.dll',
+                ]
+              }],
+              'include_dirs': [
+                '<(jpeg_root)/include'
+              ],
+              'libraries': [
+                '-l<(jpeg_root)/lib/jpeg.lib',
+              ]
+            }, {
+              'include_dirs': [
+                '<!@(pkg-config libjpeg --cflags-only-I | sed s/-I//g)'
+              ],
+              'libraries': [
+                '<!@(pkg-config libjpeg --libs)'
+              ]
+            }]
+          ]
+        }],
+        ['with_gif=="true"', {
+          'defines': [
+            'HAVE_GIF'
+          ],
+          'conditions': [
+            ['OS=="win"', {
+              'libraries': [
+                '-l<(GTK_Root)/lib/gif.lib'
+              ]
+            }, {
+              'include_dirs': [
+                '/opt/homebrew/include'
+              ],
+              'libraries': [
+                '-L/opt/homebrew/lib',
+                '-lgif'
+              ]
+            }]
+          ]
+        }],
+        ['with_rsvg=="true"', {
+          'defines': [
+            'HAVE_RSVG'
+          ],
+          'conditions': [
+            ['OS=="win"', {
+              'copies': [{
+                'destination': '<(PRODUCT_DIR)',
+                'files': [
+                  '<(GTK_Root)/bin/librsvg-2-2.dll',
+                  '<(GTK_Root)/bin/libgdk_pixbuf-2.0-0.dll',
+                  '<(GTK_Root)/bin/libgio-2.0-0.dll',
+                  '<(GTK_Root)/bin/libcroco-0.6-3.dll',
+                  '<(GTK_Root)/bin/libgsf-1-114.dll',
+                  '<(GTK_Root)/bin/libxml2-2.dll'
+                ]
+              }],
+              'libraries': [
+                '-l<(GTK_Root)/lib/librsvg-2-2.lib'
+              ]
+            }, {
+              'include_dirs': [
+                '<!@(pkg-config librsvg-2.0 --cflags-only-I | sed s/-I//g)'
+              ],
+              'libraries': [
+                '<!@(pkg-config librsvg-2.0 --libs)'
+              ]
+            }]
+          ]
+        }]
+      ]
+    }
+  ]
+}
diff --git a/node_modules/canvas/browser.js b/node_modules/canvas/browser.js
new file mode 100644
index 0000000..0267a75
--- /dev/null
+++ b/node_modules/canvas/browser.js
@@ -0,0 +1,35 @@
+/* globals document, ImageData */
+
+const parseFont = require('./lib/parse-font')
+
+exports.parseFont = parseFont
+
+exports.createCanvas = function (width, height) {
+  return Object.assign(document.createElement('canvas'), { width: width, height: height })
+}
+
+exports.createImageData = function (array, width, height) {
+  // Browser implementation of ImageData looks at the number of arguments passed
+  switch (arguments.length) {
+    case 0: return new ImageData()
+    case 1: return new ImageData(array)
+    case 2: return new ImageData(array, width)
+    default: return new ImageData(array, width, height)
+  }
+}
+
+exports.loadImage = function (src, options) {
+  return new Promise(function (resolve, reject) {
+    const image = Object.assign(document.createElement('img'), options)
+
+    function cleanup () {
+      image.onload = null
+      image.onerror = null
+    }
+
+    image.onload = function () { cleanup(); resolve(image) }
+    image.onerror = function () { cleanup(); reject(new Error('Failed to load the image "' + src + '"')) }
+
+    image.src = src
+  })
+}
diff --git a/node_modules/canvas/build/Release/canvas.exp b/node_modules/canvas/build/Release/canvas.exp
new file mode 100644
index 0000000..61b5fa7
--- /dev/null
+++ b/node_modules/canvas/build/Release/canvas.exp
Binary files differ
diff --git a/node_modules/canvas/build/Release/canvas.iobj b/node_modules/canvas/build/Release/canvas.iobj
new file mode 100644
index 0000000..dff7cd1
--- /dev/null
+++ b/node_modules/canvas/build/Release/canvas.iobj
Binary files differ
diff --git a/node_modules/canvas/build/Release/canvas.ipdb b/node_modules/canvas/build/Release/canvas.ipdb
new file mode 100644
index 0000000..6f2bf29
--- /dev/null
+++ b/node_modules/canvas/build/Release/canvas.ipdb
Binary files differ
diff --git a/node_modules/canvas/build/Release/canvas.lib b/node_modules/canvas/build/Release/canvas.lib
new file mode 100644
index 0000000..55cd6a7
--- /dev/null
+++ b/node_modules/canvas/build/Release/canvas.lib
Binary files differ
diff --git a/node_modules/canvas/build/Release/canvas.node b/node_modules/canvas/build/Release/canvas.node
new file mode 100644
index 0000000..9916cf1
--- /dev/null
+++ b/node_modules/canvas/build/Release/canvas.node
Binary files differ
diff --git a/node_modules/canvas/build/Release/canvas.pdb b/node_modules/canvas/build/Release/canvas.pdb
new file mode 100644
index 0000000..fdf6a4b
--- /dev/null
+++ b/node_modules/canvas/build/Release/canvas.pdb
Binary files differ
diff --git a/node_modules/canvas/build/Release/libbrotlicommon.dll b/node_modules/canvas/build/Release/libbrotlicommon.dll
new file mode 100644
index 0000000..450cd7f
--- /dev/null
+++ b/node_modules/canvas/build/Release/libbrotlicommon.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libbrotlidec.dll b/node_modules/canvas/build/Release/libbrotlidec.dll
new file mode 100644
index 0000000..a789d54
--- /dev/null
+++ b/node_modules/canvas/build/Release/libbrotlidec.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libbz2-1.dll b/node_modules/canvas/build/Release/libbz2-1.dll
new file mode 100644
index 0000000..2a9346f
--- /dev/null
+++ b/node_modules/canvas/build/Release/libbz2-1.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libcairo-2.dll b/node_modules/canvas/build/Release/libcairo-2.dll
new file mode 100644
index 0000000..f4b4624
--- /dev/null
+++ b/node_modules/canvas/build/Release/libcairo-2.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libcairo-gobject-2.dll b/node_modules/canvas/build/Release/libcairo-gobject-2.dll
new file mode 100644
index 0000000..5dcfa93
--- /dev/null
+++ b/node_modules/canvas/build/Release/libcairo-gobject-2.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libdatrie-1.dll b/node_modules/canvas/build/Release/libdatrie-1.dll
new file mode 100644
index 0000000..f796316
--- /dev/null
+++ b/node_modules/canvas/build/Release/libdatrie-1.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libexpat-1.dll b/node_modules/canvas/build/Release/libexpat-1.dll
new file mode 100644
index 0000000..0fdae99
--- /dev/null
+++ b/node_modules/canvas/build/Release/libexpat-1.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libffi-8.dll b/node_modules/canvas/build/Release/libffi-8.dll
new file mode 100644
index 0000000..4d39987
--- /dev/null
+++ b/node_modules/canvas/build/Release/libffi-8.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libfontconfig-1.dll b/node_modules/canvas/build/Release/libfontconfig-1.dll
new file mode 100644
index 0000000..f694de6
--- /dev/null
+++ b/node_modules/canvas/build/Release/libfontconfig-1.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libfreetype-6.dll b/node_modules/canvas/build/Release/libfreetype-6.dll
new file mode 100644
index 0000000..bab2900
--- /dev/null
+++ b/node_modules/canvas/build/Release/libfreetype-6.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libfribidi-0.dll b/node_modules/canvas/build/Release/libfribidi-0.dll
new file mode 100644
index 0000000..b97d205
--- /dev/null
+++ b/node_modules/canvas/build/Release/libfribidi-0.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libgcc_s_seh-1.dll b/node_modules/canvas/build/Release/libgcc_s_seh-1.dll
new file mode 100644
index 0000000..77d962c
--- /dev/null
+++ b/node_modules/canvas/build/Release/libgcc_s_seh-1.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libgdk_pixbuf-2.0-0.dll b/node_modules/canvas/build/Release/libgdk_pixbuf-2.0-0.dll
new file mode 100644
index 0000000..66f5d8b
--- /dev/null
+++ b/node_modules/canvas/build/Release/libgdk_pixbuf-2.0-0.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libgif-7.dll b/node_modules/canvas/build/Release/libgif-7.dll
new file mode 100644
index 0000000..d87bb21
--- /dev/null
+++ b/node_modules/canvas/build/Release/libgif-7.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libgio-2.0-0.dll b/node_modules/canvas/build/Release/libgio-2.0-0.dll
new file mode 100644
index 0000000..ab58b78
--- /dev/null
+++ b/node_modules/canvas/build/Release/libgio-2.0-0.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libglib-2.0-0.dll b/node_modules/canvas/build/Release/libglib-2.0-0.dll
new file mode 100644
index 0000000..ff0379c
--- /dev/null
+++ b/node_modules/canvas/build/Release/libglib-2.0-0.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libgmodule-2.0-0.dll b/node_modules/canvas/build/Release/libgmodule-2.0-0.dll
new file mode 100644
index 0000000..ac15366
--- /dev/null
+++ b/node_modules/canvas/build/Release/libgmodule-2.0-0.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libgobject-2.0-0.dll b/node_modules/canvas/build/Release/libgobject-2.0-0.dll
new file mode 100644
index 0000000..91eaca8
--- /dev/null
+++ b/node_modules/canvas/build/Release/libgobject-2.0-0.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libgraphite2.dll b/node_modules/canvas/build/Release/libgraphite2.dll
new file mode 100644
index 0000000..83b88fa
--- /dev/null
+++ b/node_modules/canvas/build/Release/libgraphite2.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libharfbuzz-0.dll b/node_modules/canvas/build/Release/libharfbuzz-0.dll
new file mode 100644
index 0000000..6f06160
--- /dev/null
+++ b/node_modules/canvas/build/Release/libharfbuzz-0.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libiconv-2.dll b/node_modules/canvas/build/Release/libiconv-2.dll
new file mode 100644
index 0000000..10b9496
--- /dev/null
+++ b/node_modules/canvas/build/Release/libiconv-2.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libintl-8.dll b/node_modules/canvas/build/Release/libintl-8.dll
new file mode 100644
index 0000000..b63e54d
--- /dev/null
+++ b/node_modules/canvas/build/Release/libintl-8.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libjpeg-8.dll b/node_modules/canvas/build/Release/libjpeg-8.dll
new file mode 100644
index 0000000..92bcb97
--- /dev/null
+++ b/node_modules/canvas/build/Release/libjpeg-8.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/liblzma-5.dll b/node_modules/canvas/build/Release/liblzma-5.dll
new file mode 100644
index 0000000..a95ba91
--- /dev/null
+++ b/node_modules/canvas/build/Release/liblzma-5.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libpango-1.0-0.dll b/node_modules/canvas/build/Release/libpango-1.0-0.dll
new file mode 100644
index 0000000..2f2a42c
--- /dev/null
+++ b/node_modules/canvas/build/Release/libpango-1.0-0.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libpangocairo-1.0-0.dll b/node_modules/canvas/build/Release/libpangocairo-1.0-0.dll
new file mode 100644
index 0000000..8187163
--- /dev/null
+++ b/node_modules/canvas/build/Release/libpangocairo-1.0-0.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libpangoft2-1.0-0.dll b/node_modules/canvas/build/Release/libpangoft2-1.0-0.dll
new file mode 100644
index 0000000..ce8708a
--- /dev/null
+++ b/node_modules/canvas/build/Release/libpangoft2-1.0-0.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libpangowin32-1.0-0.dll b/node_modules/canvas/build/Release/libpangowin32-1.0-0.dll
new file mode 100644
index 0000000..5922e89
--- /dev/null
+++ b/node_modules/canvas/build/Release/libpangowin32-1.0-0.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libpcre2-8-0.dll b/node_modules/canvas/build/Release/libpcre2-8-0.dll
new file mode 100644
index 0000000..ddf3ead
--- /dev/null
+++ b/node_modules/canvas/build/Release/libpcre2-8-0.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libpixman-1-0.dll b/node_modules/canvas/build/Release/libpixman-1-0.dll
new file mode 100644
index 0000000..00b214b
--- /dev/null
+++ b/node_modules/canvas/build/Release/libpixman-1-0.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libpng16-16.dll b/node_modules/canvas/build/Release/libpng16-16.dll
new file mode 100644
index 0000000..24f294e
--- /dev/null
+++ b/node_modules/canvas/build/Release/libpng16-16.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/librsvg-2-2.dll b/node_modules/canvas/build/Release/librsvg-2-2.dll
new file mode 100644
index 0000000..85dab57
--- /dev/null
+++ b/node_modules/canvas/build/Release/librsvg-2-2.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libstdc++-6.dll b/node_modules/canvas/build/Release/libstdc++-6.dll
new file mode 100644
index 0000000..49518fa
--- /dev/null
+++ b/node_modules/canvas/build/Release/libstdc++-6.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libthai-0.dll b/node_modules/canvas/build/Release/libthai-0.dll
new file mode 100644
index 0000000..fe356cb
--- /dev/null
+++ b/node_modules/canvas/build/Release/libthai-0.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libwinpthread-1.dll b/node_modules/canvas/build/Release/libwinpthread-1.dll
new file mode 100644
index 0000000..858ef60
--- /dev/null
+++ b/node_modules/canvas/build/Release/libwinpthread-1.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libxml2-2.dll b/node_modules/canvas/build/Release/libxml2-2.dll
new file mode 100644
index 0000000..9fad8f2
--- /dev/null
+++ b/node_modules/canvas/build/Release/libxml2-2.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/canvas.node.recipe b/node_modules/canvas/build/Release/obj/canvas/canvas.node.recipe
new file mode 100644
index 0000000..fb13b7e
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/canvas.node.recipe
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project>
+  <ProjectOutputs>
+    <ProjectOutput>
+      <FullPath>D:\a\node-canvas\node-canvas\build\Release\canvas.node</FullPath>
+    </ProjectOutput>
+  </ProjectOutputs>
+  <ContentFiles />
+  <SatelliteDlls />
+  <NonRecipeFileRefs />
+</Project>
\ No newline at end of file
diff --git a/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/CL.command.1.tlog b/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/CL.command.1.tlog
new file mode 100644
index 0000000..ec471d4
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/CL.command.1.tlog
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/CL.read.1.tlog b/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/CL.read.1.tlog
new file mode 100644
index 0000000..10c77d0
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/CL.read.1.tlog
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/CL.write.1.tlog b/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/CL.write.1.tlog
new file mode 100644
index 0000000..2c66452
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/CL.write.1.tlog
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/canvas.lastbuildstate b/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/canvas.lastbuildstate
new file mode 100644
index 0000000..943adcc
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/canvas.lastbuildstate
@@ -0,0 +1,2 @@
+PlatformToolSet=v142:VCToolArchitecture=Native64Bit:VCToolsVersion=14.29.30133:VCServicingVersionMFC=14.29.30136:TargetPlatformVersion=10.0.22000.0:
+Release|x64|D:\a\node-canvas\node-canvas\build\|
diff --git a/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/canvas.write.1u.tlog b/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/canvas.write.1u.tlog
new file mode 100644
index 0000000..59dd971
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/canvas.write.1u.tlog
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/link.command.1.tlog b/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/link.command.1.tlog
new file mode 100644
index 0000000..337824b
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/link.command.1.tlog
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/link.read.1.tlog b/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/link.read.1.tlog
new file mode 100644
index 0000000..c33ad16
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/link.read.1.tlog
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/link.write.1.tlog b/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/link.write.1.tlog
new file mode 100644
index 0000000..0abd7e1
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/link.write.1.tlog
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/src/Backends.obj b/node_modules/canvas/build/Release/obj/canvas/src/Backends.obj
new file mode 100644
index 0000000..c2611ad
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/src/Backends.obj
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/src/Canvas.obj b/node_modules/canvas/build/Release/obj/canvas/src/Canvas.obj
new file mode 100644
index 0000000..c14a9fd
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/src/Canvas.obj
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/src/CanvasGradient.obj b/node_modules/canvas/build/Release/obj/canvas/src/CanvasGradient.obj
new file mode 100644
index 0000000..e54ab6a
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/src/CanvasGradient.obj
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/src/CanvasPattern.obj b/node_modules/canvas/build/Release/obj/canvas/src/CanvasPattern.obj
new file mode 100644
index 0000000..5af7b04
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/src/CanvasPattern.obj
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/src/CanvasRenderingContext2d.obj b/node_modules/canvas/build/Release/obj/canvas/src/CanvasRenderingContext2d.obj
new file mode 100644
index 0000000..3415f8d
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/src/CanvasRenderingContext2d.obj
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/src/Image.obj b/node_modules/canvas/build/Release/obj/canvas/src/Image.obj
new file mode 100644
index 0000000..801d5d8
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/src/Image.obj
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/src/ImageData.obj b/node_modules/canvas/build/Release/obj/canvas/src/ImageData.obj
new file mode 100644
index 0000000..9496d8c
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/src/ImageData.obj
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/src/backend/Backend.obj b/node_modules/canvas/build/Release/obj/canvas/src/backend/Backend.obj
new file mode 100644
index 0000000..796e250
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/src/backend/Backend.obj
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/src/backend/ImageBackend.obj b/node_modules/canvas/build/Release/obj/canvas/src/backend/ImageBackend.obj
new file mode 100644
index 0000000..86e2561
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/src/backend/ImageBackend.obj
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/src/backend/PdfBackend.obj b/node_modules/canvas/build/Release/obj/canvas/src/backend/PdfBackend.obj
new file mode 100644
index 0000000..dcbd3ab
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/src/backend/PdfBackend.obj
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/src/backend/SvgBackend.obj b/node_modules/canvas/build/Release/obj/canvas/src/backend/SvgBackend.obj
new file mode 100644
index 0000000..efa1e73
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/src/backend/SvgBackend.obj
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/src/bmp/BMPParser.obj b/node_modules/canvas/build/Release/obj/canvas/src/bmp/BMPParser.obj
new file mode 100644
index 0000000..c054b50
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/src/bmp/BMPParser.obj
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/src/closure.obj b/node_modules/canvas/build/Release/obj/canvas/src/closure.obj
new file mode 100644
index 0000000..e8f141a
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/src/closure.obj
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/src/color.obj b/node_modules/canvas/build/Release/obj/canvas/src/color.obj
new file mode 100644
index 0000000..708e6d8
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/src/color.obj
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/src/init.obj b/node_modules/canvas/build/Release/obj/canvas/src/init.obj
new file mode 100644
index 0000000..20f5282
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/src/init.obj
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/src/register_font.obj b/node_modules/canvas/build/Release/obj/canvas/src/register_font.obj
new file mode 100644
index 0000000..b19f36e
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/src/register_font.obj
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/win_delay_load_hook.obj b/node_modules/canvas/build/Release/obj/canvas/win_delay_load_hook.obj
new file mode 100644
index 0000000..8b57f0c
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/win_delay_load_hook.obj
Binary files differ
diff --git a/node_modules/canvas/build/Release/zlib1.dll b/node_modules/canvas/build/Release/zlib1.dll
new file mode 100644
index 0000000..1e8bd80
--- /dev/null
+++ b/node_modules/canvas/build/Release/zlib1.dll
Binary files differ
diff --git a/node_modules/canvas/changes b/node_modules/canvas/changes
new file mode 100644
index 0000000..a80b84b
--- /dev/null
+++ b/node_modules/canvas/changes
@@ -0,0 +1,19 @@
+toBuffer and other canvas methods were static and unwrapped
+the this arg. this seemed weird. they are now instance
+methods since that's how object wrap works, XXX add
+instanceof checks?
+
+node-canvas no lunger flushes microtasks when calling stream
+cbs XXX wait now that I say it that sounds wrong?
+
+we don't need CHECK_RECEIVER anymore? dbl check that?
+
+TODO: check changes from As<X> to AsX. bad assumption.
+
+dbl check try catch changes?
+
+Error is now CairoError
+
+global this in all callbacks, streamPNGSync now flushes microtasks
+
+streamPDF uses MakeCallback, not runInAsyncScope
diff --git a/node_modules/canvas/index.js b/node_modules/canvas/index.js
new file mode 100644
index 0000000..f605077
--- /dev/null
+++ b/node_modules/canvas/index.js
@@ -0,0 +1,94 @@
+const Canvas = require('./lib/canvas')
+const Image = require('./lib/image')
+const CanvasRenderingContext2D = require('./lib/context2d')
+const CanvasPattern = require('./lib/pattern')
+const parseFont = require('./lib/parse-font')
+const packageJson = require('./package.json')
+const bindings = require('./lib/bindings')
+const fs = require('fs')
+const PNGStream = require('./lib/pngstream')
+const PDFStream = require('./lib/pdfstream')
+const JPEGStream = require('./lib/jpegstream')
+const { DOMPoint, DOMMatrix } = require('./lib/DOMMatrix')
+
+function createCanvas (width, height, type) {
+  return new Canvas(width, height, type)
+}
+
+function createImageData (array, width, height) {
+  return new bindings.ImageData(array, width, height)
+}
+
+function loadImage (src) {
+  return new Promise((resolve, reject) => {
+    const image = new Image()
+
+    function cleanup () {
+      image.onload = null
+      image.onerror = null
+    }
+
+    image.onload = () => { cleanup(); resolve(image) }
+    image.onerror = (err) => { cleanup(); reject(err) }
+
+    image.src = src
+  })
+}
+
+/**
+ * Resolve paths for registerFont. Must be called *before* creating a Canvas
+ * instance.
+ * @param src {string} Path to font file.
+ * @param fontFace {{family: string, weight?: string, style?: string}} Object
+ * specifying font information. `weight` and `style` default to `"normal"`.
+ */
+function registerFont (src, fontFace) {
+  // TODO this doesn't need to be on Canvas; it should just be a static method
+  // of `bindings`.
+  return Canvas._registerFont(fs.realpathSync(src), fontFace)
+}
+
+/**
+ * Unload all fonts from pango to free up memory
+ */
+function deregisterAllFonts () {
+  return Canvas._deregisterAllFonts()
+}
+
+exports.Canvas = Canvas
+exports.Context2d = CanvasRenderingContext2D // Legacy/compat export
+exports.CanvasRenderingContext2D = CanvasRenderingContext2D
+exports.CanvasGradient = bindings.CanvasGradient
+exports.CanvasPattern = CanvasPattern
+exports.Image = Image
+exports.ImageData = bindings.ImageData
+exports.PNGStream = PNGStream
+exports.PDFStream = PDFStream
+exports.JPEGStream = JPEGStream
+exports.DOMMatrix = DOMMatrix
+exports.DOMPoint = DOMPoint
+
+exports.registerFont = registerFont
+exports.deregisterAllFonts = deregisterAllFonts
+exports.parseFont = parseFont
+
+exports.createCanvas = createCanvas
+exports.createImageData = createImageData
+exports.loadImage = loadImage
+
+exports.backends = bindings.Backends
+
+/** Library version. */
+exports.version = packageJson.version
+/** Cairo version. */
+exports.cairoVersion = bindings.cairoVersion
+/** jpeglib version. */
+exports.jpegVersion = bindings.jpegVersion
+/** gif_lib version. */
+exports.gifVersion = bindings.gifVersion ? bindings.gifVersion.replace(/[^.\d]/g, '') : undefined
+/** freetype version. */
+exports.freetypeVersion = bindings.freetypeVersion
+/** rsvg version. */
+exports.rsvgVersion = bindings.rsvgVersion
+/** pango version. */
+exports.pangoVersion = bindings.pangoVersion
diff --git a/node_modules/canvas/lib/DOMMatrix.js b/node_modules/canvas/lib/DOMMatrix.js
new file mode 100644
index 0000000..479e7e6
--- /dev/null
+++ b/node_modules/canvas/lib/DOMMatrix.js
@@ -0,0 +1,620 @@
+'use strict'
+
+const util = require('util')
+
+// DOMMatrix per https://drafts.fxtf.org/geometry/#DOMMatrix
+
+class DOMPoint {
+  constructor (x, y, z, w) {
+    if (typeof x === 'object' && x !== null) {
+      w = x.w
+      z = x.z
+      y = x.y
+      x = x.x
+    }
+    this.x = typeof x === 'number' ? x : 0
+    this.y = typeof y === 'number' ? y : 0
+    this.z = typeof z === 'number' ? z : 0
+    this.w = typeof w === 'number' ? w : 1
+  }
+}
+
+// Constants to index into _values (col-major)
+const M11 = 0; const M12 = 1; const M13 = 2; const M14 = 3
+const M21 = 4; const M22 = 5; const M23 = 6; const M24 = 7
+const M31 = 8; const M32 = 9; const M33 = 10; const M34 = 11
+const M41 = 12; const M42 = 13; const M43 = 14; const M44 = 15
+
+const DEGREE_PER_RAD = 180 / Math.PI
+const RAD_PER_DEGREE = Math.PI / 180
+
+function parseMatrix (init) {
+  let parsed = init.replace('matrix(', '')
+  parsed = parsed.split(',', 7) // 6 + 1 to handle too many params
+  if (parsed.length !== 6) throw new Error(`Failed to parse ${init}`)
+  parsed = parsed.map(parseFloat)
+  return [
+    parsed[0], parsed[1], 0, 0,
+    parsed[2], parsed[3], 0, 0,
+    0, 0, 1, 0,
+    parsed[4], parsed[5], 0, 1
+  ]
+}
+
+function parseMatrix3d (init) {
+  let parsed = init.replace('matrix3d(', '')
+  parsed = parsed.split(',', 17) // 16 + 1 to handle too many params
+  if (parsed.length !== 16) throw new Error(`Failed to parse ${init}`)
+  return parsed.map(parseFloat)
+}
+
+function parseTransform (tform) {
+  const type = tform.split('(', 1)[0]
+  switch (type) {
+    case 'matrix':
+      return parseMatrix(tform)
+    case 'matrix3d':
+      return parseMatrix3d(tform)
+    // TODO This is supposed to support any CSS transform value.
+    default:
+      throw new Error(`${type} parsing not implemented`)
+  }
+}
+
+class DOMMatrix {
+  constructor (init) {
+    this._is2D = true
+    this._values = new Float64Array([
+      1, 0, 0, 0,
+      0, 1, 0, 0,
+      0, 0, 1, 0,
+      0, 0, 0, 1
+    ])
+
+    let i
+
+    if (typeof init === 'string') { // parse CSS transformList
+      if (init === '') return // default identity matrix
+      const tforms = init.split(/\)\s+/, 20).map(parseTransform)
+      if (tforms.length === 0) return
+      init = tforms[0]
+      for (i = 1; i < tforms.length; i++) init = multiply(tforms[i], init)
+    }
+
+    i = 0
+    if (init && init.length === 6) {
+      setNumber2D(this, M11, init[i++])
+      setNumber2D(this, M12, init[i++])
+      setNumber2D(this, M21, init[i++])
+      setNumber2D(this, M22, init[i++])
+      setNumber2D(this, M41, init[i++])
+      setNumber2D(this, M42, init[i++])
+    } else if (init && init.length === 16) {
+      setNumber2D(this, M11, init[i++])
+      setNumber2D(this, M12, init[i++])
+      setNumber3D(this, M13, init[i++])
+      setNumber3D(this, M14, init[i++])
+      setNumber2D(this, M21, init[i++])
+      setNumber2D(this, M22, init[i++])
+      setNumber3D(this, M23, init[i++])
+      setNumber3D(this, M24, init[i++])
+      setNumber3D(this, M31, init[i++])
+      setNumber3D(this, M32, init[i++])
+      setNumber3D(this, M33, init[i++])
+      setNumber3D(this, M34, init[i++])
+      setNumber2D(this, M41, init[i++])
+      setNumber2D(this, M42, init[i++])
+      setNumber3D(this, M43, init[i++])
+      setNumber3D(this, M44, init[i])
+    } else if (init !== undefined) {
+      throw new TypeError('Expected string or array.')
+    }
+  }
+
+  toString () {
+    return this.is2D
+      ? `matrix(${this.a}, ${this.b}, ${this.c}, ${this.d}, ${this.e}, ${this.f})`
+      : `matrix3d(${this._values.join(', ')})`
+  }
+
+  multiply (other) {
+    return newInstance(this._values).multiplySelf(other)
+  }
+
+  multiplySelf (other) {
+    this._values = multiply(other._values, this._values)
+    if (!other.is2D) this._is2D = false
+    return this
+  }
+
+  preMultiplySelf (other) {
+    this._values = multiply(this._values, other._values)
+    if (!other.is2D) this._is2D = false
+    return this
+  }
+
+  translate (tx, ty, tz) {
+    return newInstance(this._values).translateSelf(tx, ty, tz)
+  }
+
+  translateSelf (tx, ty, tz) {
+    if (typeof tx !== 'number') tx = 0
+    if (typeof ty !== 'number') ty = 0
+    if (typeof tz !== 'number') tz = 0
+    this._values = multiply([
+      1, 0, 0, 0,
+      0, 1, 0, 0,
+      0, 0, 1, 0,
+      tx, ty, tz, 1
+    ], this._values)
+    if (tz !== 0) this._is2D = false
+    return this
+  }
+
+  scale (scaleX, scaleY, scaleZ, originX, originY, originZ) {
+    return newInstance(this._values).scaleSelf(scaleX, scaleY, scaleZ, originX, originY, originZ)
+  }
+
+  scale3d (scale, originX, originY, originZ) {
+    return newInstance(this._values).scale3dSelf(scale, originX, originY, originZ)
+  }
+
+  scale3dSelf (scale, originX, originY, originZ) {
+    return this.scaleSelf(scale, scale, scale, originX, originY, originZ)
+  }
+
+  scaleSelf (scaleX, scaleY, scaleZ, originX, originY, originZ) {
+    // Not redundant with translate's checks because we need to negate the values later.
+    if (typeof originX !== 'number') originX = 0
+    if (typeof originY !== 'number') originY = 0
+    if (typeof originZ !== 'number') originZ = 0
+    this.translateSelf(originX, originY, originZ)
+    if (typeof scaleX !== 'number') scaleX = 1
+    if (typeof scaleY !== 'number') scaleY = scaleX
+    if (typeof scaleZ !== 'number') scaleZ = 1
+    this._values = multiply([
+      scaleX, 0, 0, 0,
+      0, scaleY, 0, 0,
+      0, 0, scaleZ, 0,
+      0, 0, 0, 1
+    ], this._values)
+    this.translateSelf(-originX, -originY, -originZ)
+    if (scaleZ !== 1 || originZ !== 0) this._is2D = false
+    return this
+  }
+
+  rotateFromVector (x, y) {
+    return newInstance(this._values).rotateFromVectorSelf(x, y)
+  }
+
+  rotateFromVectorSelf (x, y) {
+    if (typeof x !== 'number') x = 0
+    if (typeof y !== 'number') y = 0
+    const theta = (x === 0 && y === 0) ? 0 : Math.atan2(y, x) * DEGREE_PER_RAD
+    return this.rotateSelf(theta)
+  }
+
+  rotate (rotX, rotY, rotZ) {
+    return newInstance(this._values).rotateSelf(rotX, rotY, rotZ)
+  }
+
+  rotateSelf (rotX, rotY, rotZ) {
+    if (rotY === undefined && rotZ === undefined) {
+      rotZ = rotX
+      rotX = rotY = 0
+    }
+    if (typeof rotY !== 'number') rotY = 0
+    if (typeof rotZ !== 'number') rotZ = 0
+    if (rotX !== 0 || rotY !== 0) this._is2D = false
+    rotX *= RAD_PER_DEGREE
+    rotY *= RAD_PER_DEGREE
+    rotZ *= RAD_PER_DEGREE
+    let c, s
+    c = Math.cos(rotZ)
+    s = Math.sin(rotZ)
+    this._values = multiply([
+      c, s, 0, 0,
+      -s, c, 0, 0,
+      0, 0, 1, 0,
+      0, 0, 0, 1
+    ], this._values)
+    c = Math.cos(rotY)
+    s = Math.sin(rotY)
+    this._values = multiply([
+      c, 0, -s, 0,
+      0, 1, 0, 0,
+      s, 0, c, 0,
+      0, 0, 0, 1
+    ], this._values)
+    c = Math.cos(rotX)
+    s = Math.sin(rotX)
+    this._values = multiply([
+      1, 0, 0, 0,
+      0, c, s, 0,
+      0, -s, c, 0,
+      0, 0, 0, 1
+    ], this._values)
+    return this
+  }
+
+  rotateAxisAngle (x, y, z, angle) {
+    return newInstance(this._values).rotateAxisAngleSelf(x, y, z, angle)
+  }
+
+  rotateAxisAngleSelf (x, y, z, angle) {
+    if (typeof x !== 'number') x = 0
+    if (typeof y !== 'number') y = 0
+    if (typeof z !== 'number') z = 0
+    // Normalize axis
+    const length = Math.sqrt(x * x + y * y + z * z)
+    if (length === 0) return this
+    if (length !== 1) {
+      x /= length
+      y /= length
+      z /= length
+    }
+    angle *= RAD_PER_DEGREE
+    const c = Math.cos(angle)
+    const s = Math.sin(angle)
+    const t = 1 - c
+    const tx = t * x
+    const ty = t * y
+    // NB: This is the generic transform. If the axis is a major axis, there are
+    // faster transforms.
+    this._values = multiply([
+      tx * x + c, tx * y + s * z, tx * z - s * y, 0,
+      tx * y - s * z, ty * y + c, ty * z + s * x, 0,
+      tx * z + s * y, ty * z - s * x, t * z * z + c, 0,
+      0, 0, 0, 1
+    ], this._values)
+    if (x !== 0 || y !== 0) this._is2D = false
+    return this
+  }
+
+  skewX (sx) {
+    return newInstance(this._values).skewXSelf(sx)
+  }
+
+  skewXSelf (sx) {
+    if (typeof sx !== 'number') return this
+    const t = Math.tan(sx * RAD_PER_DEGREE)
+    this._values = multiply([
+      1, 0, 0, 0,
+      t, 1, 0, 0,
+      0, 0, 1, 0,
+      0, 0, 0, 1
+    ], this._values)
+    return this
+  }
+
+  skewY (sy) {
+    return newInstance(this._values).skewYSelf(sy)
+  }
+
+  skewYSelf (sy) {
+    if (typeof sy !== 'number') return this
+    const t = Math.tan(sy * RAD_PER_DEGREE)
+    this._values = multiply([
+      1, t, 0, 0,
+      0, 1, 0, 0,
+      0, 0, 1, 0,
+      0, 0, 0, 1
+    ], this._values)
+    return this
+  }
+
+  flipX () {
+    return newInstance(multiply([
+      -1, 0, 0, 0,
+      0, 1, 0, 0,
+      0, 0, 1, 0,
+      0, 0, 0, 1
+    ], this._values))
+  }
+
+  flipY () {
+    return newInstance(multiply([
+      1, 0, 0, 0,
+      0, -1, 0, 0,
+      0, 0, 1, 0,
+      0, 0, 0, 1
+    ], this._values))
+  }
+
+  inverse () {
+    return newInstance(this._values).invertSelf()
+  }
+
+  invertSelf () {
+    const m = this._values
+    const inv = m.map(v => 0)
+
+    inv[0] = m[5] * m[10] * m[15] -
+            m[5] * m[11] * m[14] -
+            m[9] * m[6] * m[15] +
+            m[9] * m[7] * m[14] +
+            m[13] * m[6] * m[11] -
+            m[13] * m[7] * m[10]
+
+    inv[4] = -m[4] * m[10] * m[15] +
+            m[4] * m[11] * m[14] +
+            m[8] * m[6] * m[15] -
+            m[8] * m[7] * m[14] -
+            m[12] * m[6] * m[11] +
+            m[12] * m[7] * m[10]
+
+    inv[8] = m[4] * m[9] * m[15] -
+            m[4] * m[11] * m[13] -
+            m[8] * m[5] * m[15] +
+            m[8] * m[7] * m[13] +
+            m[12] * m[5] * m[11] -
+            m[12] * m[7] * m[9]
+
+    inv[12] = -m[4] * m[9] * m[14] +
+            m[4] * m[10] * m[13] +
+            m[8] * m[5] * m[14] -
+            m[8] * m[6] * m[13] -
+            m[12] * m[5] * m[10] +
+            m[12] * m[6] * m[9]
+
+    // If the determinant is zero, this matrix cannot be inverted, and all
+    // values should be set to NaN, with the is2D flag set to false.
+
+    const det = m[0] * inv[0] + m[1] * inv[4] + m[2] * inv[8] + m[3] * inv[12]
+
+    if (det === 0) {
+      this._values = m.map(v => NaN)
+      this._is2D = false
+      return this
+    }
+
+    inv[1] = -m[1] * m[10] * m[15] +
+            m[1] * m[11] * m[14] +
+            m[9] * m[2] * m[15] -
+            m[9] * m[3] * m[14] -
+            m[13] * m[2] * m[11] +
+            m[13] * m[3] * m[10]
+
+    inv[5] = m[0] * m[10] * m[15] -
+            m[0] * m[11] * m[14] -
+            m[8] * m[2] * m[15] +
+            m[8] * m[3] * m[14] +
+            m[12] * m[2] * m[11] -
+            m[12] * m[3] * m[10]
+
+    inv[9] = -m[0] * m[9] * m[15] +
+            m[0] * m[11] * m[13] +
+            m[8] * m[1] * m[15] -
+            m[8] * m[3] * m[13] -
+            m[12] * m[1] * m[11] +
+            m[12] * m[3] * m[9]
+
+    inv[13] = m[0] * m[9] * m[14] -
+            m[0] * m[10] * m[13] -
+            m[8] * m[1] * m[14] +
+            m[8] * m[2] * m[13] +
+            m[12] * m[1] * m[10] -
+            m[12] * m[2] * m[9]
+
+    inv[2] = m[1] * m[6] * m[15] -
+            m[1] * m[7] * m[14] -
+            m[5] * m[2] * m[15] +
+            m[5] * m[3] * m[14] +
+            m[13] * m[2] * m[7] -
+            m[13] * m[3] * m[6]
+
+    inv[6] = -m[0] * m[6] * m[15] +
+            m[0] * m[7] * m[14] +
+            m[4] * m[2] * m[15] -
+            m[4] * m[3] * m[14] -
+            m[12] * m[2] * m[7] +
+            m[12] * m[3] * m[6]
+
+    inv[10] = m[0] * m[5] * m[15] -
+            m[0] * m[7] * m[13] -
+            m[4] * m[1] * m[15] +
+            m[4] * m[3] * m[13] +
+            m[12] * m[1] * m[7] -
+            m[12] * m[3] * m[5]
+
+    inv[14] = -m[0] * m[5] * m[14] +
+            m[0] * m[6] * m[13] +
+            m[4] * m[1] * m[14] -
+            m[4] * m[2] * m[13] -
+            m[12] * m[1] * m[6] +
+            m[12] * m[2] * m[5]
+
+    inv[3] = -m[1] * m[6] * m[11] +
+            m[1] * m[7] * m[10] +
+            m[5] * m[2] * m[11] -
+            m[5] * m[3] * m[10] -
+            m[9] * m[2] * m[7] +
+            m[9] * m[3] * m[6]
+
+    inv[7] = m[0] * m[6] * m[11] -
+            m[0] * m[7] * m[10] -
+            m[4] * m[2] * m[11] +
+            m[4] * m[3] * m[10] +
+            m[8] * m[2] * m[7] -
+            m[8] * m[3] * m[6]
+
+    inv[11] = -m[0] * m[5] * m[11] +
+            m[0] * m[7] * m[9] +
+            m[4] * m[1] * m[11] -
+            m[4] * m[3] * m[9] -
+            m[8] * m[1] * m[7] +
+            m[8] * m[3] * m[5]
+
+    inv[15] = m[0] * m[5] * m[10] -
+            m[0] * m[6] * m[9] -
+            m[4] * m[1] * m[10] +
+            m[4] * m[2] * m[9] +
+            m[8] * m[1] * m[6] -
+            m[8] * m[2] * m[5]
+
+    inv.forEach((v, i) => { inv[i] = v / det })
+    this._values = inv
+    return this
+  }
+
+  setMatrixValue (transformList) {
+    const temp = new DOMMatrix(transformList)
+    this._values = temp._values
+    this._is2D = temp._is2D
+    return this
+  }
+
+  transformPoint (point) {
+    point = new DOMPoint(point)
+    const x = point.x
+    const y = point.y
+    const z = point.z
+    const w = point.w
+    const values = this._values
+    const nx = values[M11] * x + values[M21] * y + values[M31] * z + values[M41] * w
+    const ny = values[M12] * x + values[M22] * y + values[M32] * z + values[M42] * w
+    const nz = values[M13] * x + values[M23] * y + values[M33] * z + values[M43] * w
+    const nw = values[M14] * x + values[M24] * y + values[M34] * z + values[M44] * w
+    return new DOMPoint(nx, ny, nz, nw)
+  }
+
+  toFloat32Array () {
+    return Float32Array.from(this._values)
+  }
+
+  toFloat64Array () {
+    return this._values.slice(0)
+  }
+
+  static fromMatrix (init) {
+    if (!(init instanceof DOMMatrix)) throw new TypeError('Expected DOMMatrix')
+    return new DOMMatrix(init._values)
+  }
+
+  static fromFloat32Array (init) {
+    if (!(init instanceof Float32Array)) throw new TypeError('Expected Float32Array')
+    return new DOMMatrix(init)
+  }
+
+  static fromFloat64Array (init) {
+    if (!(init instanceof Float64Array)) throw new TypeError('Expected Float64Array')
+    return new DOMMatrix(init)
+  }
+
+  [util.inspect.custom || 'inspect'] (depth, options) {
+    if (depth < 0) return '[DOMMatrix]'
+
+    return `DOMMatrix [
+      a: ${this.a}
+      b: ${this.b}
+      c: ${this.c}
+      d: ${this.d}
+      e: ${this.e}
+      f: ${this.f}
+      m11: ${this.m11}
+      m12: ${this.m12}
+      m13: ${this.m13}
+      m14: ${this.m14}
+      m21: ${this.m21}
+      m22: ${this.m22}
+      m23: ${this.m23}
+      m23: ${this.m23}
+      m31: ${this.m31}
+      m32: ${this.m32}
+      m33: ${this.m33}
+      m34: ${this.m34}
+      m41: ${this.m41}
+      m42: ${this.m42}
+      m43: ${this.m43}
+      m44: ${this.m44}
+      is2D: ${this.is2D}
+      isIdentity: ${this.isIdentity} ]`
+  }
+}
+
+/**
+ * Checks that `value` is a number and sets the value.
+ */
+function setNumber2D (receiver, index, value) {
+  if (typeof value !== 'number') throw new TypeError('Expected number')
+  return (receiver._values[index] = value)
+}
+
+/**
+ * Checks that `value` is a number, sets `_is2D = false` if necessary and sets
+ * the value.
+ */
+function setNumber3D (receiver, index, value) {
+  if (typeof value !== 'number') throw new TypeError('Expected number')
+  if (index === M33 || index === M44) {
+    if (value !== 1) receiver._is2D = false
+  } else if (value !== 0) receiver._is2D = false
+  return (receiver._values[index] = value)
+}
+
+Object.defineProperties(DOMMatrix.prototype, {
+  m11: { get () { return this._values[M11] }, set (v) { return setNumber2D(this, M11, v) } },
+  m12: { get () { return this._values[M12] }, set (v) { return setNumber2D(this, M12, v) } },
+  m13: { get () { return this._values[M13] }, set (v) { return setNumber3D(this, M13, v) } },
+  m14: { get () { return this._values[M14] }, set (v) { return setNumber3D(this, M14, v) } },
+  m21: { get () { return this._values[M21] }, set (v) { return setNumber2D(this, M21, v) } },
+  m22: { get () { return this._values[M22] }, set (v) { return setNumber2D(this, M22, v) } },
+  m23: { get () { return this._values[M23] }, set (v) { return setNumber3D(this, M23, v) } },
+  m24: { get () { return this._values[M24] }, set (v) { return setNumber3D(this, M24, v) } },
+  m31: { get () { return this._values[M31] }, set (v) { return setNumber3D(this, M31, v) } },
+  m32: { get () { return this._values[M32] }, set (v) { return setNumber3D(this, M32, v) } },
+  m33: { get () { return this._values[M33] }, set (v) { return setNumber3D(this, M33, v) } },
+  m34: { get () { return this._values[M34] }, set (v) { return setNumber3D(this, M34, v) } },
+  m41: { get () { return this._values[M41] }, set (v) { return setNumber2D(this, M41, v) } },
+  m42: { get () { return this._values[M42] }, set (v) { return setNumber2D(this, M42, v) } },
+  m43: { get () { return this._values[M43] }, set (v) { return setNumber3D(this, M43, v) } },
+  m44: { get () { return this._values[M44] }, set (v) { return setNumber3D(this, M44, v) } },
+
+  a: { get () { return this.m11 }, set (v) { return (this.m11 = v) } },
+  b: { get () { return this.m12 }, set (v) { return (this.m12 = v) } },
+  c: { get () { return this.m21 }, set (v) { return (this.m21 = v) } },
+  d: { get () { return this.m22 }, set (v) { return (this.m22 = v) } },
+  e: { get () { return this.m41 }, set (v) { return (this.m41 = v) } },
+  f: { get () { return this.m42 }, set (v) { return (this.m42 = v) } },
+
+  is2D: { get () { return this._is2D } }, // read-only
+
+  isIdentity: {
+    get () {
+      const values = this._values
+      return (values[M11] === 1 && values[M12] === 0 && values[M13] === 0 && values[M14] === 0 &&
+             values[M21] === 0 && values[M22] === 1 && values[M23] === 0 && values[M24] === 0 &&
+             values[M31] === 0 && values[M32] === 0 && values[M33] === 1 && values[M34] === 0 &&
+             values[M41] === 0 && values[M42] === 0 && values[M43] === 0 && values[M44] === 1)
+    }
+  }
+})
+
+/**
+ * Instantiates a DOMMatrix, bypassing the constructor.
+ * @param {Float64Array} values Value to assign to `_values`. This is assigned
+ *   without copying (okay because all usages are followed by a  multiply).
+ */
+function newInstance (values) {
+  const instance = Object.create(DOMMatrix.prototype)
+  instance.constructor = DOMMatrix
+  instance._is2D = true
+  instance._values = values
+  return instance
+}
+
+function multiply (A, B) {
+  const dest = new Float64Array(16)
+  for (let i = 0; i < 4; i++) {
+    for (let j = 0; j < 4; j++) {
+      let sum = 0
+      for (let k = 0; k < 4; k++) {
+        sum += A[i * 4 + k] * B[k * 4 + j]
+      }
+      dest[i * 4 + j] = sum
+    }
+  }
+  return dest
+}
+
+module.exports = { DOMMatrix, DOMPoint }
diff --git a/node_modules/canvas/lib/bindings.js b/node_modules/canvas/lib/bindings.js
new file mode 100644
index 0000000..c638a58
--- /dev/null
+++ b/node_modules/canvas/lib/bindings.js
@@ -0,0 +1,13 @@
+'use strict'
+
+const bindings = require('../build/Release/canvas.node')
+
+module.exports = bindings
+
+bindings.ImageData.prototype.toString = function () {
+	return '[object ImageData]'
+}
+
+bindings.CanvasGradient.prototype.toString = function () {
+	return '[object CanvasGradient]'
+}
diff --git a/node_modules/canvas/lib/canvas.js b/node_modules/canvas/lib/canvas.js
new file mode 100644
index 0000000..03fa1a9
--- /dev/null
+++ b/node_modules/canvas/lib/canvas.js
@@ -0,0 +1,113 @@
+'use strict'
+
+/*!
+ * Canvas
+ * Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+ * MIT Licensed
+ */
+
+const bindings = require('./bindings')
+const Canvas = module.exports = bindings.Canvas
+const Context2d = require('./context2d')
+const PNGStream = require('./pngstream')
+const PDFStream = require('./pdfstream')
+const JPEGStream = require('./jpegstream')
+const FORMATS = ['image/png', 'image/jpeg']
+const util = require('util')
+
+// TODO || is for Node.js pre-v6.6.0
+Canvas.prototype[util.inspect.custom || 'inspect'] = function () {
+  return `[Canvas ${this.width}x${this.height}]`
+}
+
+Canvas.prototype.getContext = function (contextType, contextAttributes) {
+  if (contextType == '2d') {
+    const ctx = this._context2d || (this._context2d = new Context2d(this, contextAttributes))
+    this.context = ctx
+    ctx.canvas = this
+    return ctx
+  }
+}
+
+Canvas.prototype.pngStream =
+Canvas.prototype.createPNGStream = function (options) {
+  return new PNGStream(this, options)
+}
+
+Canvas.prototype.pdfStream =
+Canvas.prototype.createPDFStream = function (options) {
+  return new PDFStream(this, options)
+}
+
+Canvas.prototype.jpegStream =
+Canvas.prototype.createJPEGStream = function (options) {
+  return new JPEGStream(this, options)
+}
+
+Canvas.prototype.toDataURL = function (a1, a2, a3) {
+  // valid arg patterns (args -> [type, opts, fn]):
+  // [] -> ['image/png', null, null]
+  // [qual] -> ['image/png', null, null]
+  // [undefined] -> ['image/png', null, null]
+  // ['image/png'] -> ['image/png', null, null]
+  // ['image/png', qual] -> ['image/png', null, null]
+  // [fn] -> ['image/png', null, fn]
+  // [type, fn] -> [type, null, fn]
+  // [undefined, fn] -> ['image/png', null, fn]
+  // ['image/png', qual, fn] -> ['image/png', null, fn]
+  // ['image/jpeg', fn] -> ['image/jpeg', null, fn]
+  // ['image/jpeg', opts, fn] -> ['image/jpeg', opts, fn]
+  // ['image/jpeg', qual, fn] -> ['image/jpeg', {quality: qual}, fn]
+  // ['image/jpeg', undefined, fn] -> ['image/jpeg', null, fn]
+  // ['image/jpeg'] -> ['image/jpeg', null, fn]
+  // ['image/jpeg', opts] -> ['image/jpeg', opts, fn]
+  // ['image/jpeg', qual] -> ['image/jpeg', {quality: qual}, fn]
+
+  let type = 'image/png'
+  let opts = {}
+  let fn
+
+  if (typeof a1 === 'function') {
+    fn = a1
+  } else {
+    if (typeof a1 === 'string' && FORMATS.includes(a1.toLowerCase())) {
+      type = a1.toLowerCase()
+    }
+
+    if (typeof a2 === 'function') {
+      fn = a2
+    } else {
+      if (typeof a2 === 'object') {
+        opts = a2
+      } else if (typeof a2 === 'number') {
+        opts = { quality: Math.max(0, Math.min(1, a2)) }
+      }
+
+      if (typeof a3 === 'function') {
+        fn = a3
+      } else if (undefined !== a3) {
+        throw new TypeError(`${typeof a3} is not a function`)
+      }
+    }
+  }
+
+  if (this.width === 0 || this.height === 0) {
+    // Per spec, if the bitmap has no pixels, return this string:
+    const str = 'data:,'
+    if (fn) {
+      setTimeout(() => fn(null, str))
+      return
+    } else {
+      return str
+    }
+  }
+
+  if (fn) {
+    this.toBuffer((err, buf) => {
+      if (err) return fn(err)
+      fn(null, `data:${type};base64,${buf.toString('base64')}`)
+    }, type, opts)
+  } else {
+    return `data:${type};base64,${this.toBuffer(type, opts).toString('base64')}`
+  }
+}
diff --git a/node_modules/canvas/lib/context2d.js b/node_modules/canvas/lib/context2d.js
new file mode 100644
index 0000000..75f5063
--- /dev/null
+++ b/node_modules/canvas/lib/context2d.js
@@ -0,0 +1,14 @@
+'use strict'
+
+/*!
+ * Canvas - Context2d
+ * Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+ * MIT Licensed
+ */
+
+const bindings = require('./bindings')
+const parseFont = require('./parse-font')
+const { DOMMatrix } = require('./DOMMatrix')
+
+bindings.CanvasRenderingContext2dInit(DOMMatrix, parseFont)
+module.exports = bindings.CanvasRenderingContext2d
diff --git a/node_modules/canvas/lib/image.js b/node_modules/canvas/lib/image.js
new file mode 100644
index 0000000..4a37849
--- /dev/null
+++ b/node_modules/canvas/lib/image.js
@@ -0,0 +1,96 @@
+'use strict'
+
+/*!
+ * Canvas - Image
+ * Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+ * MIT Licensed
+ */
+
+/**
+ * Module dependencies.
+ */
+
+const bindings = require('./bindings')
+const Image = module.exports = bindings.Image
+const util = require('util')
+
+// Lazily loaded simple-get
+let get
+
+const { GetSource, SetSource } = bindings
+
+Object.defineProperty(Image.prototype, 'src', {
+  /**
+   * src setter. Valid values:
+   *  * `data:` URI
+   *  * Local file path
+   *  * HTTP or HTTPS URL
+   *  * Buffer containing image data (i.e. not a `data:` URI stored in a Buffer)
+   *
+   * @param {String|Buffer} val filename, buffer, data URI, URL
+   * @api public
+   */
+  set (val) {
+    if (typeof val === 'string') {
+      if (/^\s*data:/.test(val)) { // data: URI
+        const commaI = val.indexOf(',')
+        // 'base64' must come before the comma
+        const isBase64 = val.lastIndexOf('base64', commaI) !== -1
+        const content = val.slice(commaI + 1)
+        setSource(this, Buffer.from(content, isBase64 ? 'base64' : 'utf8'), val)
+      } else if (/^\s*https?:\/\//.test(val)) { // remote URL
+        const onerror = err => {
+          if (typeof this.onerror === 'function') {
+            this.onerror(err)
+          } else {
+            throw err
+          }
+        }
+
+        if (!get) get = require('simple-get')
+
+        get.concat({
+          url: val,
+          headers: { 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36' }
+        }, (err, res, data) => {
+          if (err) return onerror(err)
+
+          if (res.statusCode < 200 || res.statusCode >= 300) {
+            return onerror(new Error(`Server responded with ${res.statusCode}`))
+          }
+
+          setSource(this, data)
+        })
+      } else { // local file path assumed
+        setSource(this, val)
+      }
+    } else if (Buffer.isBuffer(val)) {
+      setSource(this, val)
+    }
+  },
+
+  get () {
+    // TODO https://github.com/Automattic/node-canvas/issues/118
+    return getSource(this)
+  },
+
+  configurable: true
+})
+
+// TODO || is for Node.js pre-v6.6.0
+Image.prototype[util.inspect.custom || 'inspect'] = function () {
+  return '[Image' +
+    (this.complete ? ':' + this.width + 'x' + this.height : '') +
+    (this.src ? ' ' + this.src : '') +
+    (this.complete ? ' complete' : '') +
+    ']'
+}
+
+function getSource (img) {
+  return img._originalSource || GetSource.call(img)
+}
+
+function setSource (img, src, origSrc) {
+  SetSource.call(img, src)
+  img._originalSource = origSrc
+}
diff --git a/node_modules/canvas/lib/jpegstream.js b/node_modules/canvas/lib/jpegstream.js
new file mode 100644
index 0000000..701d2f8
--- /dev/null
+++ b/node_modules/canvas/lib/jpegstream.js
@@ -0,0 +1,41 @@
+'use strict'
+
+/*!
+ * Canvas - JPEGStream
+ * Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+ * MIT Licensed
+ */
+
+const { Readable } = require('stream')
+function noop () {}
+
+class JPEGStream extends Readable {
+  constructor (canvas, options) {
+    super()
+
+    if (canvas.streamJPEGSync === undefined) {
+      throw new Error('node-canvas was built without JPEG support.')
+    }
+
+    this.options = options
+    this.canvas = canvas
+  }
+
+  _read () {
+    // For now we're not controlling the c++ code's data emission, so we only
+    // call canvas.streamJPEGSync once and let it emit data at will.
+    this._read = noop
+
+    this.canvas.streamJPEGSync(this.options, (err, chunk) => {
+      if (err) {
+        this.emit('error', err)
+      } else if (chunk) {
+        this.push(chunk)
+      } else {
+        this.push(null)
+      }
+    })
+  }
+};
+
+module.exports = JPEGStream
diff --git a/node_modules/canvas/lib/parse-font.js b/node_modules/canvas/lib/parse-font.js
new file mode 100644
index 0000000..713db50
--- /dev/null
+++ b/node_modules/canvas/lib/parse-font.js
@@ -0,0 +1,101 @@
+'use strict'
+
+/**
+ * Font RegExp helpers.
+ */
+
+const weights = 'bold|bolder|lighter|[1-9]00'
+const styles = 'italic|oblique'
+const variants = 'small-caps'
+const stretches = 'ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded'
+const units = 'px|pt|pc|in|cm|mm|%|em|ex|ch|rem|q'
+const string = '\'([^\']+)\'|"([^"]+)"|[\\w\\s-]+'
+
+// [ [ <‘font-style’> || <font-variant-css21> || <‘font-weight’> || <‘font-stretch’> ]?
+//    <‘font-size’> [ / <‘line-height’> ]? <‘font-family’> ]
+// https://drafts.csswg.org/css-fonts-3/#font-prop
+const weightRe = new RegExp(`(${weights}) +`, 'i')
+const styleRe = new RegExp(`(${styles}) +`, 'i')
+const variantRe = new RegExp(`(${variants}) +`, 'i')
+const stretchRe = new RegExp(`(${stretches}) +`, 'i')
+const sizeFamilyRe = new RegExp(
+  `([\\d\\.]+)(${units}) *((?:${string})( *, *(?:${string}))*)`)
+
+/**
+ * Cache font parsing.
+ */
+
+const cache = {}
+
+const defaultHeight = 16 // pt, common browser default
+
+/**
+ * Parse font `str`.
+ *
+ * @param {String} str
+ * @return {Object} Parsed font. `size` is in device units. `unit` is the unit
+ *   appearing in the input string.
+ * @api private
+ */
+
+module.exports = str => {
+  // Cached
+  if (cache[str]) return cache[str]
+
+  // Try for required properties first.
+  const sizeFamily = sizeFamilyRe.exec(str)
+  if (!sizeFamily) return // invalid
+
+  // Default values and required properties
+  const font = {
+    weight: 'normal',
+    style: 'normal',
+    stretch: 'normal',
+    variant: 'normal',
+    size: parseFloat(sizeFamily[1]),
+    unit: sizeFamily[2],
+    family: sizeFamily[3].replace(/["']/g, '').replace(/ *, */g, ',')
+  }
+
+  // Optional, unordered properties.
+  let weight, style, variant, stretch
+  // Stop search at `sizeFamily.index`
+  const substr = str.substring(0, sizeFamily.index)
+  if ((weight = weightRe.exec(substr))) font.weight = weight[1]
+  if ((style = styleRe.exec(substr))) font.style = style[1]
+  if ((variant = variantRe.exec(substr))) font.variant = variant[1]
+  if ((stretch = stretchRe.exec(substr))) font.stretch = stretch[1]
+
+  // Convert to device units. (`font.unit` is the original unit)
+  // TODO: ch, ex
+  switch (font.unit) {
+    case 'pt':
+      font.size /= 0.75
+      break
+    case 'pc':
+      font.size *= 16
+      break
+    case 'in':
+      font.size *= 96
+      break
+    case 'cm':
+      font.size *= 96.0 / 2.54
+      break
+    case 'mm':
+      font.size *= 96.0 / 25.4
+      break
+    case '%':
+      // TODO disabled because existing unit tests assume 100
+      // font.size *= defaultHeight / 100 / 0.75
+      break
+    case 'em':
+    case 'rem':
+      font.size *= defaultHeight / 0.75
+      break
+    case 'q':
+      font.size *= 96 / 25.4 / 4
+      break
+  }
+
+  return (cache[str] = font)
+}
diff --git a/node_modules/canvas/lib/pattern.js b/node_modules/canvas/lib/pattern.js
new file mode 100644
index 0000000..1de4976
--- /dev/null
+++ b/node_modules/canvas/lib/pattern.js
@@ -0,0 +1,17 @@
+'use strict'
+
+/*!
+ * Canvas - CanvasPattern
+ * Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+ * MIT Licensed
+ */
+
+const bindings = require('./bindings')
+const { DOMMatrix } = require('./DOMMatrix')
+
+bindings.CanvasPatternInit(DOMMatrix)
+module.exports = bindings.CanvasPattern
+
+bindings.CanvasPattern.prototype.toString = function () {
+	return '[object CanvasPattern]'
+}
diff --git a/node_modules/canvas/lib/pdfstream.js b/node_modules/canvas/lib/pdfstream.js
new file mode 100644
index 0000000..8643af7
--- /dev/null
+++ b/node_modules/canvas/lib/pdfstream.js
@@ -0,0 +1,35 @@
+'use strict'
+
+/*!
+ * Canvas - PDFStream
+ */
+
+const { Readable } = require('stream')
+function noop () {}
+
+class PDFStream extends Readable {
+  constructor (canvas, options) {
+    super()
+
+    this.canvas = canvas
+    this.options = options
+  }
+
+  _read () {
+    // For now we're not controlling the c++ code's data emission, so we only
+    // call canvas.streamPDFSync once and let it emit data at will.
+    this._read = noop
+
+    this.canvas.streamPDFSync((err, chunk, len) => {
+      if (err) {
+        this.emit('error', err)
+      } else if (len) {
+        this.push(chunk)
+      } else {
+        this.push(null)
+      }
+    }, this.options)
+  }
+}
+
+module.exports = PDFStream
diff --git a/node_modules/canvas/lib/pngstream.js b/node_modules/canvas/lib/pngstream.js
new file mode 100644
index 0000000..db8fdb4
--- /dev/null
+++ b/node_modules/canvas/lib/pngstream.js
@@ -0,0 +1,42 @@
+'use strict'
+
+/*!
+ * Canvas - PNGStream
+ * Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+ * MIT Licensed
+ */
+
+const { Readable } = require('stream')
+function noop () {}
+
+class PNGStream extends Readable {
+  constructor (canvas, options) {
+    super()
+
+    if (options &&
+      options.palette instanceof Uint8ClampedArray &&
+      options.palette.length % 4 !== 0) {
+      throw new Error('Palette length must be a multiple of 4.')
+    }
+    this.canvas = canvas
+    this.options = options || {}
+  }
+
+  _read () {
+    // For now we're not controlling the c++ code's data emission, so we only
+    // call canvas.streamPNGSync once and let it emit data at will.
+    this._read = noop
+
+    this.canvas.streamPNGSync((err, chunk, len) => {
+      if (err) {
+        this.emit('error', err)
+      } else if (len) {
+        this.push(chunk)
+      } else {
+        this.push(null)
+      }
+    }, this.options)
+  }
+}
+
+module.exports = PNGStream
diff --git a/node_modules/canvas/package.json b/node_modules/canvas/package.json
new file mode 100644
index 0000000..77e7232
--- /dev/null
+++ b/node_modules/canvas/package.json
@@ -0,0 +1,72 @@
+{
+  "name": "canvas",
+  "description": "Canvas graphics API backed by Cairo",
+  "version": "2.11.2",
+  "author": "TJ Holowaychuk <tj@learnboost.com>",
+  "main": "index.js",
+  "browser": "browser.js",
+  "contributors": [
+    "Nathan Rajlich <nathan@tootallnate.net>",
+    "Rod Vagg <r@va.gg>",
+    "Juriy Zaytsev <kangax@gmail.com>"
+  ],
+  "keywords": [
+    "canvas",
+    "graphic",
+    "graphics",
+    "pixman",
+    "cairo",
+    "image",
+    "images",
+    "pdf"
+  ],
+  "homepage": "https://github.com/Automattic/node-canvas",
+  "repository": "git://github.com/Automattic/node-canvas.git",
+  "scripts": {
+    "prebenchmark": "node-gyp build",
+    "benchmark": "node benchmarks/run.js",
+    "lint": "standard examples/*.js test/server.js test/public/*.js benchmarks/run.js lib/context2d.js util/has_lib.js browser.js index.js",
+    "test": "mocha test/*.test.js",
+    "pretest-server": "node-gyp build",
+    "test-server": "node test/server.js",
+    "generate-wpt": "node ./test/wpt/generate.js",
+    "test-wpt": "mocha test/wpt/generated/*.js",
+    "install": "node-pre-gyp install --fallback-to-build --update-binary",
+    "dtslint": "dtslint types"
+  },
+  "binary": {
+    "module_name": "canvas",
+    "module_path": "build/Release",
+    "host": "https://github.com/Automattic/node-canvas/releases/download/",
+    "remote_path": "v{version}",
+    "package_name": "{module_name}-v{version}-{node_abi}-{platform}-{libc}-{arch}.tar.gz"
+  },
+  "files": [
+    "binding.gyp",
+    "lib/",
+    "src/",
+    "util/",
+    "types/index.d.ts"
+  ],
+  "types": "types/index.d.ts",
+  "dependencies": {
+    "@mapbox/node-pre-gyp": "^1.0.0",
+    "nan": "^2.17.0",
+    "simple-get": "^3.0.3"
+  },
+  "devDependencies": {
+    "@types/node": "^10.12.18",
+    "assert-rejects": "^1.0.0",
+    "dtslint": "^4.0.7",
+    "express": "^4.16.3",
+    "js-yaml": "^4.1.0",
+    "mocha": "^5.2.0",
+    "pixelmatch": "^4.0.2",
+    "standard": "^12.0.1",
+    "typescript": "^4.2.2"
+  },
+  "engines": {
+    "node": ">=6"
+  },
+  "license": "MIT"
+}
diff --git a/node_modules/canvas/src/Backends.cc b/node_modules/canvas/src/Backends.cc
new file mode 100644
index 0000000..2256c32
--- /dev/null
+++ b/node_modules/canvas/src/Backends.cc
@@ -0,0 +1,18 @@
+#include "Backends.h"
+
+#include "backend/ImageBackend.h"
+#include "backend/PdfBackend.h"
+#include "backend/SvgBackend.h"
+
+using namespace v8;
+
+void Backends::Initialize(Local<Object> target) {
+  Nan::HandleScope scope;
+
+  Local<Object> obj = Nan::New<Object>();
+  ImageBackend::Initialize(obj);
+  PdfBackend::Initialize(obj);
+  SvgBackend::Initialize(obj);
+
+  Nan::Set(target, Nan::New<String>("Backends").ToLocalChecked(), obj).Check();
+}
diff --git a/node_modules/canvas/src/Backends.h b/node_modules/canvas/src/Backends.h
new file mode 100644
index 0000000..dbea053
--- /dev/null
+++ b/node_modules/canvas/src/Backends.h
@@ -0,0 +1,10 @@
+#pragma once
+
+#include "backend/Backend.h"
+#include <nan.h>
+#include <v8.h>
+
+class Backends : public Nan::ObjectWrap {
+  public:
+    static void Initialize(v8::Local<v8::Object> target);
+};
diff --git a/node_modules/canvas/src/Canvas.cc b/node_modules/canvas/src/Canvas.cc
new file mode 100644
index 0000000..860d5bb
--- /dev/null
+++ b/node_modules/canvas/src/Canvas.cc
@@ -0,0 +1,965 @@
+// Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+
+#include "Canvas.h"
+
+#include <algorithm> // std::min
+#include <assert.h>
+#include <cairo-pdf.h>
+#include <cairo-svg.h>
+#include "CanvasRenderingContext2d.h"
+#include "closure.h"
+#include <cstring>
+#include <cctype>
+#include <ctime>
+#include <glib.h>
+#include "PNG.h"
+#include "register_font.h"
+#include <sstream>
+#include <stdlib.h>
+#include <string>
+#include <unordered_set>
+#include "Util.h"
+#include <vector>
+#include "node_buffer.h"
+
+#ifdef HAVE_JPEG
+#include "JPEGStream.h"
+#endif
+
+#include "backend/ImageBackend.h"
+#include "backend/PdfBackend.h"
+#include "backend/SvgBackend.h"
+
+#define GENERIC_FACE_ERROR \
+  "The second argument to registerFont is required, and should be an object " \
+  "with at least a family (string) and optionally weight (string/number) " \
+  "and style (string)."
+
+#define CHECK_RECEIVER(prop) \
+  if (!Canvas::constructor.Get(info.GetIsolate())->HasInstance(info.This())) { \
+    Nan::ThrowTypeError("Method " #prop " called on incompatible receiver"); \
+    return; \
+  }
+
+using namespace v8;
+using namespace std;
+
+Nan::Persistent<FunctionTemplate> Canvas::constructor;
+
+std::vector<FontFace> font_face_list;
+
+/*
+ * Initialize Canvas.
+ */
+
+void
+Canvas::Initialize(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE target) {
+  Nan::HandleScope scope;
+
+  // Constructor
+  Local<FunctionTemplate> ctor = Nan::New<FunctionTemplate>(Canvas::New);
+  constructor.Reset(ctor);
+  ctor->InstanceTemplate()->SetInternalFieldCount(1);
+  ctor->SetClassName(Nan::New("Canvas").ToLocalChecked());
+
+  // Prototype
+  Local<ObjectTemplate> proto = ctor->PrototypeTemplate();
+  Nan::SetPrototypeMethod(ctor, "toBuffer", ToBuffer);
+  Nan::SetPrototypeMethod(ctor, "streamPNGSync", StreamPNGSync);
+  Nan::SetPrototypeMethod(ctor, "streamPDFSync", StreamPDFSync);
+#ifdef HAVE_JPEG
+  Nan::SetPrototypeMethod(ctor, "streamJPEGSync", StreamJPEGSync);
+#endif
+  Nan::SetAccessor(proto, Nan::New("type").ToLocalChecked(), GetType);
+  Nan::SetAccessor(proto, Nan::New("stride").ToLocalChecked(), GetStride);
+  Nan::SetAccessor(proto, Nan::New("width").ToLocalChecked(), GetWidth, SetWidth);
+  Nan::SetAccessor(proto, Nan::New("height").ToLocalChecked(), GetHeight, SetHeight);
+
+  Nan::SetTemplate(proto, "PNG_NO_FILTERS", Nan::New<Uint32>(PNG_NO_FILTERS));
+  Nan::SetTemplate(proto, "PNG_FILTER_NONE", Nan::New<Uint32>(PNG_FILTER_NONE));
+  Nan::SetTemplate(proto, "PNG_FILTER_SUB", Nan::New<Uint32>(PNG_FILTER_SUB));
+  Nan::SetTemplate(proto, "PNG_FILTER_UP", Nan::New<Uint32>(PNG_FILTER_UP));
+  Nan::SetTemplate(proto, "PNG_FILTER_AVG", Nan::New<Uint32>(PNG_FILTER_AVG));
+  Nan::SetTemplate(proto, "PNG_FILTER_PAETH", Nan::New<Uint32>(PNG_FILTER_PAETH));
+  Nan::SetTemplate(proto, "PNG_ALL_FILTERS", Nan::New<Uint32>(PNG_ALL_FILTERS));
+
+  // Class methods
+  Nan::SetMethod(ctor, "_registerFont", RegisterFont);
+  Nan::SetMethod(ctor, "_deregisterAllFonts", DeregisterAllFonts);
+
+  Local<Context> ctx = Nan::GetCurrentContext();
+  Nan::Set(target,
+           Nan::New("Canvas").ToLocalChecked(),
+           ctor->GetFunction(ctx).ToLocalChecked());
+}
+
+/*
+ * Initialize a Canvas with the given width and height.
+ */
+
+NAN_METHOD(Canvas::New) {
+  if (!info.IsConstructCall()) {
+    return Nan::ThrowTypeError("Class constructors cannot be invoked without 'new'");
+  }
+
+  Backend* backend = NULL;
+  if (info[0]->IsNumber()) {
+    int width = Nan::To<uint32_t>(info[0]).FromMaybe(0), height = 0;
+
+    if (info[1]->IsNumber()) height = Nan::To<uint32_t>(info[1]).FromMaybe(0);
+
+    if (info[2]->IsString()) {
+      if (0 == strcmp("pdf", *Nan::Utf8String(info[2])))
+        backend = new PdfBackend(width, height);
+      else if (0 == strcmp("svg", *Nan::Utf8String(info[2])))
+        backend = new SvgBackend(width, height);
+      else
+        backend = new ImageBackend(width, height);
+    }
+    else
+      backend = new ImageBackend(width, height);
+  }
+  else if (info[0]->IsObject()) {
+    if (Nan::New(ImageBackend::constructor)->HasInstance(info[0]) ||
+        Nan::New(PdfBackend::constructor)->HasInstance(info[0]) ||
+        Nan::New(SvgBackend::constructor)->HasInstance(info[0])) {
+      backend = Nan::ObjectWrap::Unwrap<Backend>(Nan::To<Object>(info[0]).ToLocalChecked());
+    }else{
+      return Nan::ThrowTypeError("Invalid arguments");
+    }
+  }
+  else {
+    backend = new ImageBackend(0, 0);
+  }
+
+  if (!backend->isSurfaceValid()) {
+    delete backend;
+    return Nan::ThrowError(backend->getError());
+  }
+
+  Canvas* canvas = new Canvas(backend);
+  canvas->Wrap(info.This());
+
+  backend->setCanvas(canvas);
+
+  info.GetReturnValue().Set(info.This());
+}
+
+/*
+ * Get type string.
+ */
+
+NAN_GETTER(Canvas::GetType) {
+  CHECK_RECEIVER(Canvas.GetType);
+  Canvas *canvas = Nan::ObjectWrap::Unwrap<Canvas>(info.This());
+  info.GetReturnValue().Set(Nan::New<String>(canvas->backend()->getName()).ToLocalChecked());
+}
+
+/*
+ * Get stride.
+ */
+NAN_GETTER(Canvas::GetStride) {
+  CHECK_RECEIVER(Canvas.GetStride);
+  Canvas *canvas = Nan::ObjectWrap::Unwrap<Canvas>(info.This());
+  info.GetReturnValue().Set(Nan::New<Number>(canvas->stride()));
+}
+
+/*
+ * Get width.
+ */
+
+NAN_GETTER(Canvas::GetWidth) {
+  CHECK_RECEIVER(Canvas.GetWidth);
+  Canvas *canvas = Nan::ObjectWrap::Unwrap<Canvas>(info.This());
+  info.GetReturnValue().Set(Nan::New<Number>(canvas->getWidth()));
+}
+
+/*
+ * Set width.
+ */
+
+NAN_SETTER(Canvas::SetWidth) {
+  CHECK_RECEIVER(Canvas.SetWidth);
+  if (value->IsNumber()) {
+    Canvas *canvas = Nan::ObjectWrap::Unwrap<Canvas>(info.This());
+    canvas->backend()->setWidth(Nan::To<uint32_t>(value).FromMaybe(0));
+    canvas->resurface(info.This());
+  }
+}
+
+/*
+ * Get height.
+ */
+
+NAN_GETTER(Canvas::GetHeight) {
+  CHECK_RECEIVER(Canvas.GetHeight);
+  Canvas *canvas = Nan::ObjectWrap::Unwrap<Canvas>(info.This());
+  info.GetReturnValue().Set(Nan::New<Number>(canvas->getHeight()));
+}
+
+/*
+ * Set height.
+ */
+
+NAN_SETTER(Canvas::SetHeight) {
+  CHECK_RECEIVER(Canvas.SetHeight);
+  if (value->IsNumber()) {
+    Canvas *canvas = Nan::ObjectWrap::Unwrap<Canvas>(info.This());
+    canvas->backend()->setHeight(Nan::To<uint32_t>(value).FromMaybe(0));
+    canvas->resurface(info.This());
+  }
+}
+
+/*
+ * EIO toBuffer callback.
+ */
+
+void
+Canvas::ToPngBufferAsync(uv_work_t *req) {
+  PngClosure* closure = static_cast<PngClosure*>(req->data);
+
+  closure->status = canvas_write_to_png_stream(
+    closure->canvas->surface(),
+    PngClosure::writeVec,
+    closure);
+}
+
+#ifdef HAVE_JPEG
+void
+Canvas::ToJpegBufferAsync(uv_work_t *req) {
+  JpegClosure* closure = static_cast<JpegClosure*>(req->data);
+  write_to_jpeg_buffer(closure->canvas->surface(), closure);
+}
+#endif
+
+/*
+ * EIO after toBuffer callback.
+ */
+
+void
+Canvas::ToBufferAsyncAfter(uv_work_t *req) {
+  Nan::HandleScope scope;
+  Nan::AsyncResource async("canvas:ToBufferAsyncAfter");
+  Closure* closure = static_cast<Closure*>(req->data);
+  delete req;
+
+  if (closure->status) {
+    Local<Value> argv[1] = { Canvas::Error(closure->status) };
+    closure->cb.Call(1, argv, &async);
+  } else {
+    Local<Object> buf = Nan::CopyBuffer((char*)&closure->vec[0], closure->vec.size()).ToLocalChecked();
+    Local<Value> argv[2] = { Nan::Null(), buf };
+    closure->cb.Call(sizeof argv / sizeof *argv, argv, &async);
+  }
+
+  closure->canvas->Unref();
+  delete closure;
+}
+
+static void parsePNGArgs(Local<Value> arg, PngClosure& pngargs) {
+  if (arg->IsObject()) {
+    Local<Object> obj = Nan::To<Object>(arg).ToLocalChecked();
+
+    Local<Value> cLevel = Nan::Get(obj, Nan::New("compressionLevel").ToLocalChecked()).ToLocalChecked();
+    if (cLevel->IsUint32()) {
+      uint32_t val = Nan::To<uint32_t>(cLevel).FromMaybe(0);
+      // See quote below from spec section 4.12.5.5.
+      if (val <= 9) pngargs.compressionLevel = val;
+    }
+
+    Local<Value> rez = Nan::Get(obj, Nan::New("resolution").ToLocalChecked()).ToLocalChecked();
+    if (rez->IsUint32()) {
+      uint32_t val = Nan::To<uint32_t>(rez).FromMaybe(0);
+      if (val > 0) pngargs.resolution = val;
+    }
+
+    Local<Value> filters = Nan::Get(obj, Nan::New("filters").ToLocalChecked()).ToLocalChecked();
+    if (filters->IsUint32()) pngargs.filters = Nan::To<uint32_t>(filters).FromMaybe(0);
+
+    Local<Value> palette = Nan::Get(obj, Nan::New("palette").ToLocalChecked()).ToLocalChecked();
+    if (palette->IsUint8ClampedArray()) {
+      Local<Uint8ClampedArray> palette_ta = palette.As<Uint8ClampedArray>();
+      pngargs.nPaletteColors = palette_ta->Length();
+      if (pngargs.nPaletteColors % 4 != 0) {
+        throw "Palette length must be a multiple of 4.";
+      }
+      pngargs.nPaletteColors /= 4;
+      Nan::TypedArrayContents<uint8_t> _paletteColors(palette_ta);
+      pngargs.palette = *_paletteColors;
+      // Optional background color index:
+      Local<Value> backgroundIndexVal = Nan::Get(obj, Nan::New("backgroundIndex").ToLocalChecked()).ToLocalChecked();
+      if (backgroundIndexVal->IsUint32()) {
+        pngargs.backgroundIndex = static_cast<uint8_t>(Nan::To<uint32_t>(backgroundIndexVal).FromMaybe(0));
+      }
+    }
+  }
+}
+
+#ifdef HAVE_JPEG
+static void parseJPEGArgs(Local<Value> arg, JpegClosure& jpegargs) {
+  // "If Type(quality) is not Number, or if quality is outside that range, the
+  // user agent must use its default quality value, as if the quality argument
+  // had not been given." - 4.12.5.5
+  if (arg->IsObject()) {
+    Local<Object> obj = Nan::To<Object>(arg).ToLocalChecked();
+
+    Local<Value> qual = Nan::Get(obj, Nan::New("quality").ToLocalChecked()).ToLocalChecked();
+    if (qual->IsNumber()) {
+      double quality = Nan::To<double>(qual).FromMaybe(0);
+      if (quality >= 0.0 && quality <= 1.0) {
+        jpegargs.quality = static_cast<uint32_t>(100.0 * quality);
+      }
+    }
+
+    Local<Value> chroma = Nan::Get(obj, Nan::New("chromaSubsampling").ToLocalChecked()).ToLocalChecked();
+    if (chroma->IsBoolean()) {
+      bool subsample = Nan::To<bool>(chroma).FromMaybe(0);
+      jpegargs.chromaSubsampling = subsample ? 2 : 1;
+    } else if (chroma->IsNumber()) {
+      jpegargs.chromaSubsampling = Nan::To<uint32_t>(chroma).FromMaybe(0);
+    }
+
+    Local<Value> progressive = Nan::Get(obj, Nan::New("progressive").ToLocalChecked()).ToLocalChecked();
+    if (!progressive->IsUndefined()) {
+      jpegargs.progressive = Nan::To<bool>(progressive).FromMaybe(0);
+    }
+  }
+}
+#endif
+
+#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 16, 0)
+
+static inline void setPdfMetaStr(cairo_surface_t* surf, Local<Object> opts,
+  cairo_pdf_metadata_t t, const char* pName) {
+  auto propName = Nan::New(pName).ToLocalChecked();
+  auto propValue = Nan::Get(opts, propName).ToLocalChecked();
+  if (propValue->IsString()) {
+    // (copies char data)
+    cairo_pdf_surface_set_metadata(surf, t, *Nan::Utf8String(propValue));
+  }
+}
+
+static inline void setPdfMetaDate(cairo_surface_t* surf, Local<Object> opts,
+  cairo_pdf_metadata_t t, const char* pName) {
+  auto propName = Nan::New(pName).ToLocalChecked();
+  auto propValue = Nan::Get(opts, propName).ToLocalChecked();
+  if (propValue->IsDate()) {
+    auto date = static_cast<time_t>(propValue.As<v8::Date>()->ValueOf() / 1000); // ms -> s
+    char buf[sizeof "2011-10-08T07:07:09Z"];
+    strftime(buf, sizeof buf, "%FT%TZ", gmtime(&date));
+    cairo_pdf_surface_set_metadata(surf, t, buf);
+  }
+}
+
+static void setPdfMetadata(Canvas* canvas, Local<Object> opts) {
+  cairo_surface_t* surf = canvas->surface();
+
+  setPdfMetaStr(surf, opts, CAIRO_PDF_METADATA_TITLE, "title");
+  setPdfMetaStr(surf, opts, CAIRO_PDF_METADATA_AUTHOR, "author");
+  setPdfMetaStr(surf, opts, CAIRO_PDF_METADATA_SUBJECT, "subject");
+  setPdfMetaStr(surf, opts, CAIRO_PDF_METADATA_KEYWORDS, "keywords");
+  setPdfMetaStr(surf, opts, CAIRO_PDF_METADATA_CREATOR, "creator");
+  setPdfMetaDate(surf, opts, CAIRO_PDF_METADATA_CREATE_DATE, "creationDate");
+  setPdfMetaDate(surf, opts, CAIRO_PDF_METADATA_MOD_DATE, "modDate");
+}
+
+#endif // CAIRO 16+
+
+/*
+ * Converts/encodes data to a Buffer. Async when a callback function is passed.
+
+ * PDF canvases:
+    (any) => Buffer
+    ("application/pdf", config) => Buffer
+
+ * SVG canvases:
+    (any) => Buffer
+
+ * ARGB data:
+    ("raw") => Buffer
+
+ * PNG-encoded
+    () => Buffer
+    (undefined|"image/png", {compressionLevel?: number, filter?: number}) => Buffer
+    ((err: null|Error, buffer) => any)
+    ((err: null|Error, buffer) => any, undefined|"image/png", {compressionLevel?: number, filter?: number})
+
+ * JPEG-encoded
+    ("image/jpeg") => Buffer
+    ("image/jpeg", {quality?: number, progressive?: Boolean, chromaSubsampling?: Boolean|number}) => Buffer
+    ((err: null|Error, buffer) => any, "image/jpeg")
+    ((err: null|Error, buffer) => any, "image/jpeg", {quality?: number, progressive?: Boolean, chromaSubsampling?: Boolean|number})
+ */
+
+NAN_METHOD(Canvas::ToBuffer) {
+  cairo_status_t status;
+  Canvas *canvas = Nan::ObjectWrap::Unwrap<Canvas>(info.This());
+
+  // Vector canvases, sync only
+  const std::string name = canvas->backend()->getName();
+  if (name == "pdf" || name == "svg") {
+    // mime type may be present, but it's not checked
+    PdfSvgClosure* closure;
+    if (name == "pdf") {
+      closure = static_cast<PdfBackend*>(canvas->backend())->closure();
+#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 16, 0)
+      if (info[1]->IsObject()) { // toBuffer("application/pdf", config)
+        setPdfMetadata(canvas, Nan::To<Object>(info[1]).ToLocalChecked());
+      }
+#endif // CAIRO 16+
+    } else {
+      closure = static_cast<SvgBackend*>(canvas->backend())->closure();
+    }
+
+    cairo_surface_finish(canvas->surface());
+    Local<Object> buf = Nan::CopyBuffer((char*)&closure->vec[0], closure->vec.size()).ToLocalChecked();
+    info.GetReturnValue().Set(buf);
+    return;
+  }
+
+  // Raw ARGB data -- just a memcpy()
+  if (info[0]->StrictEquals(Nan::New<String>("raw").ToLocalChecked())) {
+    cairo_surface_t *surface = canvas->surface();
+    cairo_surface_flush(surface);
+    if (canvas->nBytes() > node::Buffer::kMaxLength) {
+      Nan::ThrowError("Data exceeds maximum buffer length.");
+      return;
+    }
+    const unsigned char *data = cairo_image_surface_get_data(surface);
+    Isolate* iso = Nan::GetCurrentContext()->GetIsolate();
+    Local<Object> buf = node::Buffer::Copy(iso, reinterpret_cast<const char*>(data), canvas->nBytes()).ToLocalChecked();
+    info.GetReturnValue().Set(buf);
+    return;
+  }
+
+  // Sync PNG, default
+  if (info[0]->IsUndefined() || info[0]->StrictEquals(Nan::New<String>("image/png").ToLocalChecked())) {
+    try {
+      PngClosure closure(canvas);
+      parsePNGArgs(info[1], closure);
+      if (closure.nPaletteColors == 0xFFFFFFFF) {
+        Nan::ThrowError("Palette length must be a multiple of 4.");
+        return;
+      }
+
+      Nan::TryCatch try_catch;
+      status = canvas_write_to_png_stream(canvas->surface(), PngClosure::writeVec, &closure);
+
+      if (try_catch.HasCaught()) {
+        try_catch.ReThrow();
+      } else if (status) {
+        throw status;
+      } else {
+        // TODO it's possible to avoid this copy
+        Local<Object> buf = Nan::CopyBuffer((char *)&closure.vec[0], closure.vec.size()).ToLocalChecked();
+        info.GetReturnValue().Set(buf);
+      }
+    } catch (cairo_status_t ex) {
+      Nan::ThrowError(Canvas::Error(ex));
+    } catch (const char* ex) {
+      Nan::ThrowError(ex);
+    }
+    return;
+  }
+
+  // Async PNG
+  if (info[0]->IsFunction() &&
+    (info[1]->IsUndefined() || info[1]->StrictEquals(Nan::New<String>("image/png").ToLocalChecked()))) {
+
+    PngClosure* closure;
+    try {
+      closure = new PngClosure(canvas);
+      parsePNGArgs(info[2], *closure);
+    } catch (cairo_status_t ex) {
+      Nan::ThrowError(Canvas::Error(ex));
+      return;
+    } catch (const char* ex) {
+      Nan::ThrowError(ex);
+      return;
+    }
+
+    canvas->Ref();
+    closure->cb.Reset(info[0].As<Function>());
+
+    uv_work_t* req = new uv_work_t;
+    req->data = closure;
+    // Make sure the surface exists since we won't have an isolate context in the async block:
+    canvas->surface();
+    uv_queue_work(uv_default_loop(), req, ToPngBufferAsync, (uv_after_work_cb)ToBufferAsyncAfter);
+
+    return;
+  }
+
+#ifdef HAVE_JPEG
+  // Sync JPEG
+  Local<Value> jpegStr = Nan::New<String>("image/jpeg").ToLocalChecked();
+  if (info[0]->StrictEquals(jpegStr)) {
+    try {
+      JpegClosure closure(canvas);
+      parseJPEGArgs(info[1], closure);
+
+      Nan::TryCatch try_catch;
+      write_to_jpeg_buffer(canvas->surface(), &closure);
+
+      if (try_catch.HasCaught()) {
+        try_catch.ReThrow();
+      } else {
+        // TODO it's possible to avoid this copy.
+        Local<Object> buf = Nan::CopyBuffer((char *)&closure.vec[0], closure.vec.size()).ToLocalChecked();
+        info.GetReturnValue().Set(buf);
+      }
+    } catch (cairo_status_t ex) {
+      Nan::ThrowError(Canvas::Error(ex));
+    }
+    return;
+  }
+
+  // Async JPEG
+  if (info[0]->IsFunction() && info[1]->StrictEquals(jpegStr)) {
+    JpegClosure* closure = new JpegClosure(canvas);
+    parseJPEGArgs(info[2], *closure);
+
+    canvas->Ref();
+    closure->cb.Reset(info[0].As<Function>());
+
+    uv_work_t* req = new uv_work_t;
+    req->data = closure;
+    // Make sure the surface exists since we won't have an isolate context in the async block:
+    canvas->surface();
+    uv_queue_work(uv_default_loop(), req, ToJpegBufferAsync, (uv_after_work_cb)ToBufferAsyncAfter);
+
+    return;
+  }
+#endif
+}
+
+/*
+ * Canvas::StreamPNG callback.
+ */
+
+static cairo_status_t
+streamPNG(void *c, const uint8_t *data, unsigned len) {
+  Nan::HandleScope scope;
+  Nan::AsyncResource async("canvas:StreamPNG");
+  PngClosure* closure = (PngClosure*) c;
+  Local<Object> buf = Nan::CopyBuffer((char *)data, len).ToLocalChecked();
+  Local<Value> argv[3] = {
+      Nan::Null()
+    , buf
+    , Nan::New<Number>(len) };
+  closure->cb.Call(sizeof argv / sizeof *argv, argv, &async);
+  return CAIRO_STATUS_SUCCESS;
+}
+
+/*
+ * Stream PNG data synchronously. TODO async
+ * StreamPngSync(this, options: {palette?: Uint8ClampedArray, backgroundIndex?: uint32, compressionLevel: uint32, filters: uint32})
+ */
+
+NAN_METHOD(Canvas::StreamPNGSync) {
+  if (!info[0]->IsFunction())
+    return Nan::ThrowTypeError("callback function required");
+
+  Canvas *canvas = Nan::ObjectWrap::Unwrap<Canvas>(info.This());
+
+  PngClosure closure(canvas);
+  parsePNGArgs(info[1], closure);
+
+  closure.cb.Reset(Local<Function>::Cast(info[0]));
+
+  Nan::TryCatch try_catch;
+
+  cairo_status_t status = canvas_write_to_png_stream(canvas->surface(), streamPNG, &closure);
+
+  if (try_catch.HasCaught()) {
+    try_catch.ReThrow();
+    return;
+  } else if (status) {
+    Local<Value> argv[1] = { Canvas::Error(status) };
+    Nan::Call(closure.cb, Nan::GetCurrentContext()->Global(), sizeof argv / sizeof *argv, argv);
+  } else {
+    Local<Value> argv[3] = {
+        Nan::Null()
+      , Nan::Null()
+      , Nan::New<Uint32>(0) };
+    Nan::Call(closure.cb, Nan::GetCurrentContext()->Global(), sizeof argv / sizeof *argv, argv);
+  }
+  return;
+}
+
+
+struct PdfStreamInfo {
+  Local<Function> fn;
+  uint32_t len;
+  uint8_t* data;
+};
+
+
+/*
+ * Canvas::StreamPDF FreeCallback
+ */
+
+void stream_pdf_free(char *, void *) {}
+
+/*
+ * Canvas::StreamPDF callback.
+ */
+
+static cairo_status_t
+streamPDF(void *c, const uint8_t *data, unsigned len) {
+  Nan::HandleScope scope;
+  Nan::AsyncResource async("canvas:StreamPDF");
+  PdfStreamInfo* streaminfo = static_cast<PdfStreamInfo*>(c);
+  // TODO this is technically wrong, we're returning a pointer to the data in a
+  // vector in a class with automatic storage duration. If the canvas goes out
+  // of scope while we're in the handler, a use-after-free could happen.
+  Local<Object> buf = Nan::NewBuffer(const_cast<char *>(reinterpret_cast<const char *>(data)), len, stream_pdf_free, 0).ToLocalChecked();
+  Local<Value> argv[3] = {
+      Nan::Null()
+    , buf
+    , Nan::New<Number>(len) };
+  async.runInAsyncScope(Nan::GetCurrentContext()->Global(), streaminfo->fn, sizeof argv / sizeof *argv, argv);
+  return CAIRO_STATUS_SUCCESS;
+}
+
+
+cairo_status_t canvas_write_to_pdf_stream(cairo_surface_t *surface, cairo_write_func_t write_func, PdfStreamInfo* streaminfo) {
+  size_t whole_chunks = streaminfo->len / PAGE_SIZE;
+  size_t remainder = streaminfo->len - whole_chunks * PAGE_SIZE;
+
+  for (size_t i = 0; i < whole_chunks; ++i) {
+    write_func(streaminfo, &streaminfo->data[i * PAGE_SIZE], PAGE_SIZE);
+  }
+
+  if (remainder) {
+    write_func(streaminfo, &streaminfo->data[whole_chunks * PAGE_SIZE], remainder);
+  }
+
+  return CAIRO_STATUS_SUCCESS;
+}
+
+/*
+ * Stream PDF data synchronously.
+ */
+
+NAN_METHOD(Canvas::StreamPDFSync) {
+  if (!info[0]->IsFunction())
+    return Nan::ThrowTypeError("callback function required");
+
+  Canvas *canvas = Nan::ObjectWrap::Unwrap<Canvas>(info.Holder());
+
+  if (canvas->backend()->getName() != "pdf")
+    return Nan::ThrowTypeError("wrong canvas type");
+
+#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 16, 0)
+  if (info[1]->IsObject()) {
+    setPdfMetadata(canvas, Nan::To<Object>(info[1]).ToLocalChecked());
+  }
+#endif
+
+  cairo_surface_finish(canvas->surface());
+
+  PdfSvgClosure* closure = static_cast<PdfBackend*>(canvas->backend())->closure();
+  Local<Function> fn = info[0].As<Function>();
+  PdfStreamInfo streaminfo;
+  streaminfo.fn = fn;
+  streaminfo.data = &closure->vec[0];
+  streaminfo.len = closure->vec.size();
+
+  Nan::TryCatch try_catch;
+
+  cairo_status_t status = canvas_write_to_pdf_stream(canvas->surface(), streamPDF, &streaminfo);
+
+  if (try_catch.HasCaught()) {
+    try_catch.ReThrow();
+  } else if (status) {
+    Local<Value> error = Canvas::Error(status);
+    Nan::Call(fn, Nan::GetCurrentContext()->Global(), 1, &error);
+  } else {
+    Local<Value> argv[3] = {
+        Nan::Null()
+      , Nan::Null()
+      , Nan::New<Uint32>(0) };
+    Nan::Call(fn, Nan::GetCurrentContext()->Global(), sizeof argv / sizeof *argv, argv);
+  }
+}
+
+/*
+ * Stream JPEG data synchronously.
+ */
+
+#ifdef HAVE_JPEG
+static uint32_t getSafeBufSize(Canvas* canvas) {
+  // Don't allow the buffer size to exceed the size of the canvas (#674)
+  // TODO not sure if this is really correct, but it fixed #674
+  return (std::min)(canvas->getWidth() * canvas->getHeight() * 4, static_cast<int>(PAGE_SIZE));
+}
+
+NAN_METHOD(Canvas::StreamJPEGSync) {
+  if (!info[1]->IsFunction())
+    return Nan::ThrowTypeError("callback function required");
+
+  Canvas *canvas = Nan::ObjectWrap::Unwrap<Canvas>(info.This());
+  JpegClosure closure(canvas);
+  parseJPEGArgs(info[0], closure);
+  closure.cb.Reset(Local<Function>::Cast(info[1]));
+
+  Nan::TryCatch try_catch;
+  uint32_t bufsize = getSafeBufSize(canvas);
+  write_to_jpeg_stream(canvas->surface(), bufsize, &closure);
+
+  if (try_catch.HasCaught()) {
+    try_catch.ReThrow();
+  }
+  return;
+}
+#endif
+
+char *
+str_value(Local<Value> val, const char *fallback, bool can_be_number) {
+  if (val->IsString() || (can_be_number && val->IsNumber())) {
+    return strdup(*Nan::Utf8String(val));
+  } else if (fallback) {
+    return strdup(fallback);
+  } else {
+    return NULL;
+  }
+}
+
+NAN_METHOD(Canvas::RegisterFont) {
+  if (!info[0]->IsString()) {
+    return Nan::ThrowError("Wrong argument type");
+  } else if (!info[1]->IsObject()) {
+    return Nan::ThrowError(GENERIC_FACE_ERROR);
+  }
+
+  Nan::Utf8String filePath(info[0]);
+  PangoFontDescription *sys_desc = get_pango_font_description((unsigned char *) *filePath);
+
+  if (!sys_desc) return Nan::ThrowError("Could not parse font file");
+
+  PangoFontDescription *user_desc = pango_font_description_new();
+
+  // now check the attrs, there are many ways to be wrong
+  Local<Object> js_user_desc = Nan::To<Object>(info[1]).ToLocalChecked();
+  Local<String> family_prop = Nan::New<String>("family").ToLocalChecked();
+  Local<String> weight_prop = Nan::New<String>("weight").ToLocalChecked();
+  Local<String> style_prop = Nan::New<String>("style").ToLocalChecked();
+
+  char *family = str_value(Nan::Get(js_user_desc, family_prop).ToLocalChecked(), NULL, false);
+  char *weight = str_value(Nan::Get(js_user_desc, weight_prop).ToLocalChecked(), "normal", true);
+  char *style = str_value(Nan::Get(js_user_desc, style_prop).ToLocalChecked(), "normal", false);
+
+  if (family && weight && style) {
+    pango_font_description_set_weight(user_desc, Canvas::GetWeightFromCSSString(weight));
+    pango_font_description_set_style(user_desc, Canvas::GetStyleFromCSSString(style));
+    pango_font_description_set_family(user_desc, family);
+
+    auto found = std::find_if(font_face_list.begin(), font_face_list.end(), [&](FontFace& f) {
+      return pango_font_description_equal(f.sys_desc, sys_desc);
+    });
+
+    if (found != font_face_list.end()) {
+      pango_font_description_free(found->user_desc);
+      found->user_desc = user_desc;
+    } else if (register_font((unsigned char *) *filePath)) {
+      FontFace face;
+      face.user_desc = user_desc;
+      face.sys_desc = sys_desc;
+      strncpy((char *)face.file_path, (char *) *filePath, 1023);
+      font_face_list.push_back(face);
+    } else {
+      pango_font_description_free(user_desc);
+      Nan::ThrowError("Could not load font to the system's font host");
+    }
+  } else {
+    pango_font_description_free(user_desc);
+    Nan::ThrowError(GENERIC_FACE_ERROR);
+  }
+
+  free(family);
+  free(weight);
+  free(style);
+}
+
+NAN_METHOD(Canvas::DeregisterAllFonts) {
+  // Unload all fonts from pango to free up memory
+  bool success = true;
+
+  std::for_each(font_face_list.begin(), font_face_list.end(), [&](FontFace& f) {
+    if (!deregister_font( (unsigned char *)f.file_path )) success = false;
+    pango_font_description_free(f.user_desc);
+    pango_font_description_free(f.sys_desc);
+  });
+
+  font_face_list.clear();
+  if (!success) Nan::ThrowError("Could not deregister one or more fonts");
+}
+
+/*
+ * Initialize cairo surface.
+ */
+
+Canvas::Canvas(Backend* backend) : ObjectWrap() {
+  _backend = backend;
+}
+
+/*
+ * Destroy cairo surface.
+ */
+
+Canvas::~Canvas() {
+  if (_backend != NULL) {
+		delete _backend;
+	}
+}
+
+/*
+ * Get a PangoStyle from a CSS string (like "italic")
+ */
+
+PangoStyle
+Canvas::GetStyleFromCSSString(const char *style) {
+  PangoStyle s = PANGO_STYLE_NORMAL;
+
+  if (strlen(style) > 0) {
+    if (0 == strcmp("italic", style)) {
+      s = PANGO_STYLE_ITALIC;
+    } else if (0 == strcmp("oblique", style)) {
+      s = PANGO_STYLE_OBLIQUE;
+    }
+  }
+
+  return s;
+}
+
+/*
+ * Get a PangoWeight from a CSS string ("bold", "100", etc)
+ */
+
+PangoWeight
+Canvas::GetWeightFromCSSString(const char *weight) {
+  PangoWeight w = PANGO_WEIGHT_NORMAL;
+
+  if (strlen(weight) > 0) {
+    if (0 == strcmp("bold", weight)) {
+      w = PANGO_WEIGHT_BOLD;
+    } else if (0 == strcmp("100", weight)) {
+      w = PANGO_WEIGHT_THIN;
+    } else if (0 == strcmp("200", weight)) {
+      w = PANGO_WEIGHT_ULTRALIGHT;
+    } else if (0 == strcmp("300", weight)) {
+      w = PANGO_WEIGHT_LIGHT;
+    } else if (0 == strcmp("400", weight)) {
+      w = PANGO_WEIGHT_NORMAL;
+    } else if (0 == strcmp("500", weight)) {
+      w = PANGO_WEIGHT_MEDIUM;
+    } else if (0 == strcmp("600", weight)) {
+      w = PANGO_WEIGHT_SEMIBOLD;
+    } else if (0 == strcmp("700", weight)) {
+      w = PANGO_WEIGHT_BOLD;
+    } else if (0 == strcmp("800", weight)) {
+      w = PANGO_WEIGHT_ULTRABOLD;
+    } else if (0 == strcmp("900", weight)) {
+      w = PANGO_WEIGHT_HEAVY;
+    }
+  }
+
+  return w;
+}
+
+/*
+ * Given a user description, return a description that will select the
+ * font either from the system or @font-face
+ */
+
+PangoFontDescription *
+Canvas::ResolveFontDescription(const PangoFontDescription *desc) {
+  // One of the user-specified families could map to multiple SFNT family names
+  // if someone registered two different fonts under the same family name.
+  // https://drafts.csswg.org/css-fonts-3/#font-style-matching
+  FontFace best;
+  istringstream families(pango_font_description_get_family(desc));
+  unordered_set<string> seen_families;
+  string resolved_families;
+  bool first = true;
+
+  for (string family; getline(families, family, ','); ) {
+    string renamed_families;
+    for (auto& ff : font_face_list) {
+      string pangofamily = string(pango_font_description_get_family(ff.user_desc));
+      if (streq_casein(family, pangofamily)) {
+        const char* sys_desc_family_name = pango_font_description_get_family(ff.sys_desc);
+        bool unseen = seen_families.find(sys_desc_family_name) == seen_families.end();
+        bool better = best.user_desc == nullptr || pango_font_description_better_match(desc, best.user_desc, ff.user_desc);
+
+        // Avoid sending duplicate SFNT font names due to a bug in Pango for macOS:
+        // https://bugzilla.gnome.org/show_bug.cgi?id=762873
+        if (unseen) {
+          seen_families.insert(sys_desc_family_name);
+
+          if (better) {
+            renamed_families = string(sys_desc_family_name) + (renamed_families.size() ? "," : "") + renamed_families;
+          } else {
+            renamed_families = renamed_families + (renamed_families.size() ? "," : "") + sys_desc_family_name;
+          }
+        }
+
+        if (first && better) best = ff;
+      }
+    }
+
+    if (resolved_families.size()) resolved_families += ',';
+    resolved_families += renamed_families.size() ? renamed_families : family;
+    first = false;
+  }
+
+  PangoFontDescription* ret = pango_font_description_copy(best.sys_desc ? best.sys_desc : desc);
+  pango_font_description_set_family(ret, resolved_families.c_str());
+
+  return ret;
+}
+
+/*
+ * Re-alloc the surface, destroying the previous.
+ */
+
+void
+Canvas::resurface(Local<Object> canvas) {
+  Nan::HandleScope scope;
+  Local<Value> context;
+
+  backend()->recreateSurface();
+
+  // Reset context
+	context = Nan::Get(canvas, Nan::New<String>("context").ToLocalChecked()).ToLocalChecked();
+	if (!context->IsUndefined()) {
+		Context2d *context2d = ObjectWrap::Unwrap<Context2d>(Nan::To<Object>(context).ToLocalChecked());
+		cairo_t *prev = context2d->context();
+		context2d->setContext(createCairoContext());
+		context2d->resetState();
+		cairo_destroy(prev);
+	}
+}
+
+/**
+ * Wrapper around cairo_create()
+ * (do not call cairo_create directly, call this instead)
+ */
+cairo_t*
+Canvas::createCairoContext() {
+  cairo_t* ret = cairo_create(surface());
+  cairo_set_line_width(ret, 1); // Cairo defaults to 2
+  return ret;
+}
+
+/*
+ * Construct an Error from the given cairo status.
+ */
+
+Local<Value>
+Canvas::Error(cairo_status_t status) {
+  return Exception::Error(Nan::New<String>(cairo_status_to_string(status)).ToLocalChecked());
+}
+
+#undef CHECK_RECEIVER
diff --git a/node_modules/canvas/src/Canvas.h b/node_modules/canvas/src/Canvas.h
new file mode 100644
index 0000000..60d3b42
--- /dev/null
+++ b/node_modules/canvas/src/Canvas.h
@@ -0,0 +1,96 @@
+// Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+
+#pragma once
+
+#include "backend/Backend.h"
+#include <cairo.h>
+#include "dll_visibility.h"
+#include <nan.h>
+#include <pango/pangocairo.h>
+#include <v8.h>
+#include <vector>
+#include <cstddef>
+
+/*
+ * FontFace describes a font file in terms of one PangoFontDescription that
+ * will resolve to it and one that the user describes it as (like @font-face)
+ */
+class FontFace {
+  public:
+    PangoFontDescription *sys_desc = nullptr;
+    PangoFontDescription *user_desc = nullptr;
+    unsigned char file_path[1024];
+};
+
+enum text_baseline_t : uint8_t {
+  TEXT_BASELINE_ALPHABETIC = 0,
+  TEXT_BASELINE_TOP = 1,
+  TEXT_BASELINE_BOTTOM = 2,
+  TEXT_BASELINE_MIDDLE = 3,
+  TEXT_BASELINE_IDEOGRAPHIC = 4,
+  TEXT_BASELINE_HANGING = 5
+};
+
+enum text_align_t : int8_t {
+  TEXT_ALIGNMENT_LEFT = -1,
+  TEXT_ALIGNMENT_CENTER = 0,
+  TEXT_ALIGNMENT_RIGHT = 1,
+  // Currently same as LEFT and RIGHT without RTL support:
+  TEXT_ALIGNMENT_START = -2,
+  TEXT_ALIGNMENT_END = 2
+};
+
+enum canvas_draw_mode_t : uint8_t {
+  TEXT_DRAW_PATHS,
+  TEXT_DRAW_GLYPHS
+};
+
+/*
+ * Canvas.
+ */
+
+class Canvas: public Nan::ObjectWrap {
+  public:
+    static Nan::Persistent<v8::FunctionTemplate> constructor;
+    static void Initialize(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE target);
+    static NAN_METHOD(New);
+    static NAN_METHOD(ToBuffer);
+    static NAN_GETTER(GetType);
+    static NAN_GETTER(GetStride);
+    static NAN_GETTER(GetWidth);
+    static NAN_GETTER(GetHeight);
+    static NAN_SETTER(SetWidth);
+    static NAN_SETTER(SetHeight);
+    static NAN_METHOD(StreamPNGSync);
+    static NAN_METHOD(StreamPDFSync);
+    static NAN_METHOD(StreamJPEGSync);
+    static NAN_METHOD(RegisterFont);
+    static NAN_METHOD(DeregisterAllFonts);
+    static v8::Local<v8::Value> Error(cairo_status_t status);
+    static void ToPngBufferAsync(uv_work_t *req);
+    static void ToJpegBufferAsync(uv_work_t *req);
+    static void ToBufferAsyncAfter(uv_work_t *req);
+    static PangoWeight GetWeightFromCSSString(const char *weight);
+    static PangoStyle GetStyleFromCSSString(const char *style);
+    static PangoFontDescription *ResolveFontDescription(const PangoFontDescription *desc);
+
+    DLL_PUBLIC inline Backend* backend() { return _backend; }
+    DLL_PUBLIC inline cairo_surface_t* surface(){ return backend()->getSurface(); }
+    cairo_t* createCairoContext();
+
+    DLL_PUBLIC inline uint8_t *data(){ return cairo_image_surface_get_data(surface()); }
+    DLL_PUBLIC inline int stride(){ return cairo_image_surface_get_stride(surface()); }
+    DLL_PUBLIC inline std::size_t nBytes(){
+      return static_cast<std::size_t>(getHeight()) * stride();
+    }
+
+    DLL_PUBLIC inline int getWidth() { return backend()->getWidth(); }
+    DLL_PUBLIC inline int getHeight() { return backend()->getHeight(); }
+
+    Canvas(Backend* backend);
+    void resurface(v8::Local<v8::Object> canvas);
+
+  private:
+    ~Canvas();
+    Backend* _backend;
+};
diff --git a/node_modules/canvas/src/CanvasError.h b/node_modules/canvas/src/CanvasError.h
new file mode 100644
index 0000000..cb751e3
--- /dev/null
+++ b/node_modules/canvas/src/CanvasError.h
@@ -0,0 +1,23 @@
+#pragma once
+
+#include <string>
+
+class CanvasError {
+  public:
+    std::string message;
+    std::string syscall;
+    std::string path;
+    int cerrno = 0;
+    void set(const char* iMessage = NULL, const char* iSyscall = NULL, int iErrno = 0, const char* iPath = NULL) {
+      if (iMessage) message.assign(iMessage);
+      if (iSyscall) syscall.assign(iSyscall);
+      cerrno = iErrno;
+      if (iPath) path.assign(iPath);
+    }
+    void reset() {
+      message.clear();
+      syscall.clear();
+      path.clear();
+      cerrno = 0;
+    }
+};
diff --git a/node_modules/canvas/src/CanvasGradient.cc b/node_modules/canvas/src/CanvasGradient.cc
new file mode 100644
index 0000000..280fc2e
--- /dev/null
+++ b/node_modules/canvas/src/CanvasGradient.cc
@@ -0,0 +1,123 @@
+// Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+
+#include "CanvasGradient.h"
+
+#include "Canvas.h"
+#include "color.h"
+
+using namespace v8;
+
+Nan::Persistent<FunctionTemplate> Gradient::constructor;
+
+/*
+ * Initialize CanvasGradient.
+ */
+
+void
+Gradient::Initialize(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE target) {
+  Nan::HandleScope scope;
+
+  // Constructor
+  Local<FunctionTemplate> ctor = Nan::New<FunctionTemplate>(Gradient::New);
+  constructor.Reset(ctor);
+  ctor->InstanceTemplate()->SetInternalFieldCount(1);
+  ctor->SetClassName(Nan::New("CanvasGradient").ToLocalChecked());
+
+  // Prototype
+  Nan::SetPrototypeMethod(ctor, "addColorStop", AddColorStop);
+  Local<Context> ctx = Nan::GetCurrentContext();
+  Nan::Set(target,
+           Nan::New("CanvasGradient").ToLocalChecked(),
+           ctor->GetFunction(ctx).ToLocalChecked());
+}
+
+/*
+ * Initialize a new CanvasGradient.
+ */
+
+NAN_METHOD(Gradient::New) {
+  if (!info.IsConstructCall()) {
+    return Nan::ThrowTypeError("Class constructors cannot be invoked without 'new'");
+  }
+
+  // Linear
+  if (4 == info.Length()) {
+    Gradient *grad = new Gradient(
+        Nan::To<double>(info[0]).FromMaybe(0)
+      , Nan::To<double>(info[1]).FromMaybe(0)
+      , Nan::To<double>(info[2]).FromMaybe(0)
+      , Nan::To<double>(info[3]).FromMaybe(0));
+    grad->Wrap(info.This());
+    info.GetReturnValue().Set(info.This());
+    return;
+  }
+
+  // Radial
+  if (6 == info.Length()) {
+    Gradient *grad = new Gradient(
+        Nan::To<double>(info[0]).FromMaybe(0)
+      , Nan::To<double>(info[1]).FromMaybe(0)
+      , Nan::To<double>(info[2]).FromMaybe(0)
+      , Nan::To<double>(info[3]).FromMaybe(0)
+      , Nan::To<double>(info[4]).FromMaybe(0)
+      , Nan::To<double>(info[5]).FromMaybe(0));
+    grad->Wrap(info.This());
+    info.GetReturnValue().Set(info.This());
+    return;
+  }
+
+  return Nan::ThrowTypeError("invalid arguments");
+}
+
+/*
+ * Add color stop.
+ */
+
+NAN_METHOD(Gradient::AddColorStop) {
+  if (!info[0]->IsNumber())
+    return Nan::ThrowTypeError("offset required");
+  if (!info[1]->IsString())
+    return Nan::ThrowTypeError("color string required");
+
+  Gradient *grad = Nan::ObjectWrap::Unwrap<Gradient>(info.This());
+  short ok;
+  Nan::Utf8String str(info[1]);
+  uint32_t rgba = rgba_from_string(*str, &ok);
+
+  if (ok) {
+    rgba_t color = rgba_create(rgba);
+    cairo_pattern_add_color_stop_rgba(
+        grad->pattern()
+      , Nan::To<double>(info[0]).FromMaybe(0)
+      , color.r
+      , color.g
+      , color.b
+      , color.a);
+  } else {
+    return Nan::ThrowTypeError("parse color failed");
+  }
+}
+
+/*
+ * Initialize linear gradient.
+ */
+
+Gradient::Gradient(double x0, double y0, double x1, double y1) {
+  _pattern = cairo_pattern_create_linear(x0, y0, x1, y1);
+}
+
+/*
+ * Initialize radial gradient.
+ */
+
+Gradient::Gradient(double x0, double y0, double r0, double x1, double y1, double r1) {
+  _pattern = cairo_pattern_create_radial(x0, y0, r0, x1, y1, r1);
+}
+
+/*
+ * Destroy the pattern.
+ */
+
+Gradient::~Gradient() {
+  cairo_pattern_destroy(_pattern);
+}
diff --git a/node_modules/canvas/src/CanvasGradient.h b/node_modules/canvas/src/CanvasGradient.h
new file mode 100644
index 0000000..b6902c4
--- /dev/null
+++ b/node_modules/canvas/src/CanvasGradient.h
@@ -0,0 +1,22 @@
+// Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+
+#pragma once
+
+#include <nan.h>
+#include <v8.h>
+#include <cairo.h>
+
+class Gradient: public Nan::ObjectWrap {
+  public:
+    static Nan::Persistent<v8::FunctionTemplate> constructor;
+    static void Initialize(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE target);
+    static NAN_METHOD(New);
+    static NAN_METHOD(AddColorStop);
+    Gradient(double x0, double y0, double x1, double y1);
+    Gradient(double x0, double y0, double r0, double x1, double y1, double r1);
+    inline cairo_pattern_t *pattern(){ return _pattern; }
+
+  private:
+    ~Gradient();
+    cairo_pattern_t *_pattern;
+};
diff --git a/node_modules/canvas/src/CanvasPattern.cc b/node_modules/canvas/src/CanvasPattern.cc
new file mode 100644
index 0000000..fa3848b
--- /dev/null
+++ b/node_modules/canvas/src/CanvasPattern.cc
@@ -0,0 +1,136 @@
+// Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+
+#include "CanvasPattern.h"
+
+#include "Canvas.h"
+#include "Image.h"
+
+using namespace v8;
+
+const cairo_user_data_key_t *pattern_repeat_key;
+
+Nan::Persistent<FunctionTemplate> Pattern::constructor;
+Nan::Persistent<Function> Pattern::_DOMMatrix;
+
+/*
+ * Initialize CanvasPattern.
+ */
+
+void
+Pattern::Initialize(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE target) {
+  Nan::HandleScope scope;
+
+  // Constructor
+  Local<FunctionTemplate> ctor = Nan::New<FunctionTemplate>(Pattern::New);
+  constructor.Reset(ctor);
+  ctor->InstanceTemplate()->SetInternalFieldCount(1);
+  ctor->SetClassName(Nan::New("CanvasPattern").ToLocalChecked());
+  Nan::SetPrototypeMethod(ctor, "setTransform", SetTransform);
+
+  // Prototype
+  Local<Context> ctx = Nan::GetCurrentContext();
+  Nan::Set(target, Nan::New("CanvasPattern").ToLocalChecked(), ctor->GetFunction(ctx).ToLocalChecked());
+  Nan::Set(target, Nan::New("CanvasPatternInit").ToLocalChecked(), Nan::New<Function>(SaveExternalModules));
+}
+
+/*
+ * Save some external modules as private references.
+ */
+
+NAN_METHOD(Pattern::SaveExternalModules) {
+  _DOMMatrix.Reset(Nan::To<Function>(info[0]).ToLocalChecked());
+}
+
+/*
+ * Initialize a new CanvasPattern.
+ */
+
+NAN_METHOD(Pattern::New) {
+  if (!info.IsConstructCall()) {
+    return Nan::ThrowTypeError("Class constructors cannot be invoked without 'new'");
+  }
+
+  cairo_surface_t *surface;
+
+  Local<Object> obj = Nan::To<Object>(info[0]).ToLocalChecked();
+
+  // Image
+  if (Nan::New(Image::constructor)->HasInstance(obj)) {
+    Image *img = Nan::ObjectWrap::Unwrap<Image>(obj);
+    if (!img->isComplete()) {
+      return Nan::ThrowError("Image given has not completed loading");
+    }
+    surface = img->surface();
+
+  // Canvas
+  } else if (Nan::New(Canvas::constructor)->HasInstance(obj)) {
+    Canvas *canvas = Nan::ObjectWrap::Unwrap<Canvas>(obj);
+    surface = canvas->surface();
+  // Invalid
+  } else {
+    return Nan::ThrowTypeError("Image or Canvas expected");
+  }
+  repeat_type_t repeat = REPEAT;
+  if (0 == strcmp("no-repeat", *Nan::Utf8String(info[1]))) {
+    repeat = NO_REPEAT;
+  } else if (0 == strcmp("repeat-x", *Nan::Utf8String(info[1]))) {
+    repeat = REPEAT_X;
+  } else if (0 == strcmp("repeat-y", *Nan::Utf8String(info[1]))) {
+    repeat = REPEAT_Y;
+  }
+  Pattern *pattern = new Pattern(surface, repeat);
+  pattern->Wrap(info.This());
+  info.GetReturnValue().Set(info.This());
+}
+
+/*
+ * Set the pattern-space to user-space transform.
+ */
+NAN_METHOD(Pattern::SetTransform) {
+  Pattern *pattern = Nan::ObjectWrap::Unwrap<Pattern>(info.This());
+  Local<Context> ctx = Nan::GetCurrentContext();
+  Local<Object> mat = Nan::To<Object>(info[0]).ToLocalChecked();
+
+#if NODE_MAJOR_VERSION >= 8
+  if (!mat->InstanceOf(ctx, _DOMMatrix.Get(Isolate::GetCurrent())).ToChecked()) {
+    return Nan::ThrowTypeError("Expected DOMMatrix");
+  }
+#endif
+
+  cairo_matrix_t matrix;
+  cairo_matrix_init(&matrix,
+    Nan::To<double>(Nan::Get(mat, Nan::New("a").ToLocalChecked()).ToLocalChecked()).FromMaybe(1),
+    Nan::To<double>(Nan::Get(mat, Nan::New("b").ToLocalChecked()).ToLocalChecked()).FromMaybe(0),
+    Nan::To<double>(Nan::Get(mat, Nan::New("c").ToLocalChecked()).ToLocalChecked()).FromMaybe(0),
+    Nan::To<double>(Nan::Get(mat, Nan::New("d").ToLocalChecked()).ToLocalChecked()).FromMaybe(1),
+    Nan::To<double>(Nan::Get(mat, Nan::New("e").ToLocalChecked()).ToLocalChecked()).FromMaybe(0),
+    Nan::To<double>(Nan::Get(mat, Nan::New("f").ToLocalChecked()).ToLocalChecked()).FromMaybe(0)
+  );
+
+  cairo_matrix_invert(&matrix);
+  cairo_pattern_set_matrix(pattern->_pattern, &matrix);
+}
+
+
+/*
+ * Initialize pattern.
+ */
+
+Pattern::Pattern(cairo_surface_t *surface, repeat_type_t repeat) {
+  _pattern = cairo_pattern_create_for_surface(surface);
+  _repeat = repeat;
+  cairo_pattern_set_user_data(_pattern, pattern_repeat_key, &_repeat, NULL);
+}
+
+repeat_type_t Pattern::get_repeat_type_for_cairo_pattern(cairo_pattern_t *pattern) {
+  void *ud = cairo_pattern_get_user_data(pattern, pattern_repeat_key);
+  return *reinterpret_cast<repeat_type_t*>(ud);
+}
+
+/*
+ * Destroy the pattern.
+ */
+
+Pattern::~Pattern() {
+  cairo_pattern_destroy(_pattern);
+}
diff --git a/node_modules/canvas/src/CanvasPattern.h b/node_modules/canvas/src/CanvasPattern.h
new file mode 100644
index 0000000..29e2171
--- /dev/null
+++ b/node_modules/canvas/src/CanvasPattern.h
@@ -0,0 +1,37 @@
+// Copyright (c) 2011 LearnBoost <tj@learnboost.com>
+
+#pragma once
+
+#include <cairo.h>
+#include <nan.h>
+#include <v8.h>
+
+/*
+ * Canvas types.
+ */
+
+typedef enum {
+  NO_REPEAT,  // match CAIRO_EXTEND_NONE
+  REPEAT,  // match CAIRO_EXTEND_REPEAT
+  REPEAT_X, // needs custom processing
+  REPEAT_Y // needs custom processing
+} repeat_type_t;
+
+extern const cairo_user_data_key_t *pattern_repeat_key;
+
+class Pattern: public Nan::ObjectWrap {
+  public:
+    static Nan::Persistent<v8::FunctionTemplate> constructor;
+    static Nan::Persistent<v8::Function> _DOMMatrix;
+    static void Initialize(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE target);
+    static NAN_METHOD(New);
+    static NAN_METHOD(SaveExternalModules);
+    static NAN_METHOD(SetTransform);
+    static repeat_type_t get_repeat_type_for_cairo_pattern(cairo_pattern_t *pattern);
+    Pattern(cairo_surface_t *surface, repeat_type_t repeat);
+    inline cairo_pattern_t *pattern(){ return _pattern; }
+  private:
+    ~Pattern();
+    cairo_pattern_t *_pattern;
+    repeat_type_t _repeat;
+};
diff --git a/node_modules/canvas/src/CanvasRenderingContext2d.cc b/node_modules/canvas/src/CanvasRenderingContext2d.cc
new file mode 100644
index 0000000..b99c016
--- /dev/null
+++ b/node_modules/canvas/src/CanvasRenderingContext2d.cc
@@ -0,0 +1,3360 @@
+// Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+
+#include "CanvasRenderingContext2d.h"
+
+#include <algorithm>
+#include "backend/ImageBackend.h"
+#include <cairo-pdf.h>
+#include "Canvas.h"
+#include "CanvasGradient.h"
+#include "CanvasPattern.h"
+#include <cmath>
+#include <cstdlib>
+#include "Image.h"
+#include "ImageData.h"
+#include <limits>
+#include <map>
+#include "Point.h"
+#include <string>
+#include "Util.h"
+#include <vector>
+
+using namespace v8;
+
+Nan::Persistent<FunctionTemplate> Context2d::constructor;
+
+/*
+ * Rectangle arg assertions.
+ */
+
+#define RECT_ARGS \
+  double args[4]; \
+  if(!checkArgs(info, args, 4)) \
+    return; \
+  double x = args[0]; \
+  double y = args[1]; \
+  double width = args[2]; \
+  double height = args[3];
+
+#define CHECK_RECEIVER(prop) \
+  if (!Context2d::constructor.Get(info.GetIsolate())->HasInstance(info.This())) { \
+    Nan::ThrowTypeError("Method " #prop " called on incompatible receiver"); \
+    return; \
+  }
+
+constexpr double twoPi = M_PI * 2.;
+
+/*
+ * Simple helper macro for a rather verbose function call.
+ */
+
+#define PANGO_LAYOUT_GET_METRICS(LAYOUT) pango_context_get_metrics( \
+   pango_layout_get_context(LAYOUT), \
+   pango_layout_get_font_description(LAYOUT), \
+   pango_context_get_language(pango_layout_get_context(LAYOUT)))
+
+inline static bool checkArgs(const Nan::FunctionCallbackInfo<Value> &info, double *args, int argsNum, int offset = 0){
+  int argsEnd = offset + argsNum;
+  bool areArgsValid = true;
+
+  for (int i = offset; i < argsEnd; i++) {
+    double val = Nan::To<double>(info[i]).FromMaybe(0);
+
+    if (areArgsValid) {
+      if (!std::isfinite(val)) {
+        // We should continue the loop instead of returning immediately
+        // See https://html.spec.whatwg.org/multipage/canvas.html
+
+        areArgsValid = false;
+        continue;
+      }
+
+      args[i - offset] = val;
+    }
+  }
+
+  return areArgsValid;
+}
+
+Nan::Persistent<Function> Context2d::_DOMMatrix;
+Nan::Persistent<Function> Context2d::_parseFont;
+
+/*
+ * Initialize Context2d.
+ */
+
+void
+Context2d::Initialize(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE target) {
+  Nan::HandleScope scope;
+
+  // Constructor
+  Local<FunctionTemplate> ctor = Nan::New<FunctionTemplate>(Context2d::New);
+  constructor.Reset(ctor);
+  ctor->InstanceTemplate()->SetInternalFieldCount(1);
+  ctor->SetClassName(Nan::New("CanvasRenderingContext2D").ToLocalChecked());
+
+  // Prototype
+  Local<ObjectTemplate> proto = ctor->PrototypeTemplate();
+  Nan::SetPrototypeMethod(ctor, "drawImage", DrawImage);
+  Nan::SetPrototypeMethod(ctor, "putImageData", PutImageData);
+  Nan::SetPrototypeMethod(ctor, "getImageData", GetImageData);
+  Nan::SetPrototypeMethod(ctor, "createImageData", CreateImageData);
+  Nan::SetPrototypeMethod(ctor, "addPage", AddPage);
+  Nan::SetPrototypeMethod(ctor, "save", Save);
+  Nan::SetPrototypeMethod(ctor, "restore", Restore);
+  Nan::SetPrototypeMethod(ctor, "rotate", Rotate);
+  Nan::SetPrototypeMethod(ctor, "translate", Translate);
+  Nan::SetPrototypeMethod(ctor, "transform", Transform);
+  Nan::SetPrototypeMethod(ctor, "getTransform", GetTransform);
+  Nan::SetPrototypeMethod(ctor, "resetTransform", ResetTransform);
+  Nan::SetPrototypeMethod(ctor, "setTransform", SetTransform);
+  Nan::SetPrototypeMethod(ctor, "isPointInPath", IsPointInPath);
+  Nan::SetPrototypeMethod(ctor, "scale", Scale);
+  Nan::SetPrototypeMethod(ctor, "clip", Clip);
+  Nan::SetPrototypeMethod(ctor, "fill", Fill);
+  Nan::SetPrototypeMethod(ctor, "stroke", Stroke);
+  Nan::SetPrototypeMethod(ctor, "fillText", FillText);
+  Nan::SetPrototypeMethod(ctor, "strokeText", StrokeText);
+  Nan::SetPrototypeMethod(ctor, "fillRect", FillRect);
+  Nan::SetPrototypeMethod(ctor, "strokeRect", StrokeRect);
+  Nan::SetPrototypeMethod(ctor, "clearRect", ClearRect);
+  Nan::SetPrototypeMethod(ctor, "rect", Rect);
+  Nan::SetPrototypeMethod(ctor, "roundRect", RoundRect);
+  Nan::SetPrototypeMethod(ctor, "measureText", MeasureText);
+  Nan::SetPrototypeMethod(ctor, "moveTo", MoveTo);
+  Nan::SetPrototypeMethod(ctor, "lineTo", LineTo);
+  Nan::SetPrototypeMethod(ctor, "bezierCurveTo", BezierCurveTo);
+  Nan::SetPrototypeMethod(ctor, "quadraticCurveTo", QuadraticCurveTo);
+  Nan::SetPrototypeMethod(ctor, "beginPath", BeginPath);
+  Nan::SetPrototypeMethod(ctor, "closePath", ClosePath);
+  Nan::SetPrototypeMethod(ctor, "arc", Arc);
+  Nan::SetPrototypeMethod(ctor, "arcTo", ArcTo);
+  Nan::SetPrototypeMethod(ctor, "ellipse", Ellipse);
+  Nan::SetPrototypeMethod(ctor, "setLineDash", SetLineDash);
+  Nan::SetPrototypeMethod(ctor, "getLineDash", GetLineDash);
+  Nan::SetPrototypeMethod(ctor, "createPattern", CreatePattern);
+  Nan::SetPrototypeMethod(ctor, "createLinearGradient", CreateLinearGradient);
+  Nan::SetPrototypeMethod(ctor, "createRadialGradient", CreateRadialGradient);
+  Nan::SetAccessor(proto, Nan::New("pixelFormat").ToLocalChecked(), GetFormat);
+  Nan::SetAccessor(proto, Nan::New("patternQuality").ToLocalChecked(), GetPatternQuality, SetPatternQuality);
+  Nan::SetAccessor(proto, Nan::New("imageSmoothingEnabled").ToLocalChecked(), GetImageSmoothingEnabled, SetImageSmoothingEnabled);
+  Nan::SetAccessor(proto, Nan::New("globalCompositeOperation").ToLocalChecked(), GetGlobalCompositeOperation, SetGlobalCompositeOperation);
+  Nan::SetAccessor(proto, Nan::New("globalAlpha").ToLocalChecked(), GetGlobalAlpha, SetGlobalAlpha);
+  Nan::SetAccessor(proto, Nan::New("shadowColor").ToLocalChecked(), GetShadowColor, SetShadowColor);
+  Nan::SetAccessor(proto, Nan::New("miterLimit").ToLocalChecked(), GetMiterLimit, SetMiterLimit);
+  Nan::SetAccessor(proto, Nan::New("lineWidth").ToLocalChecked(), GetLineWidth, SetLineWidth);
+  Nan::SetAccessor(proto, Nan::New("lineCap").ToLocalChecked(), GetLineCap, SetLineCap);
+  Nan::SetAccessor(proto, Nan::New("lineJoin").ToLocalChecked(), GetLineJoin, SetLineJoin);
+  Nan::SetAccessor(proto, Nan::New("lineDashOffset").ToLocalChecked(), GetLineDashOffset, SetLineDashOffset);
+  Nan::SetAccessor(proto, Nan::New("shadowOffsetX").ToLocalChecked(), GetShadowOffsetX, SetShadowOffsetX);
+  Nan::SetAccessor(proto, Nan::New("shadowOffsetY").ToLocalChecked(), GetShadowOffsetY, SetShadowOffsetY);
+  Nan::SetAccessor(proto, Nan::New("shadowBlur").ToLocalChecked(), GetShadowBlur, SetShadowBlur);
+  Nan::SetAccessor(proto, Nan::New("antialias").ToLocalChecked(), GetAntiAlias, SetAntiAlias);
+  Nan::SetAccessor(proto, Nan::New("textDrawingMode").ToLocalChecked(), GetTextDrawingMode, SetTextDrawingMode);
+  Nan::SetAccessor(proto, Nan::New("quality").ToLocalChecked(), GetQuality, SetQuality);
+  Nan::SetAccessor(proto, Nan::New("currentTransform").ToLocalChecked(), GetCurrentTransform, SetCurrentTransform);
+  Nan::SetAccessor(proto, Nan::New("fillStyle").ToLocalChecked(), GetFillStyle, SetFillStyle);
+  Nan::SetAccessor(proto, Nan::New("strokeStyle").ToLocalChecked(), GetStrokeStyle, SetStrokeStyle);
+  Nan::SetAccessor(proto, Nan::New("font").ToLocalChecked(), GetFont, SetFont);
+  Nan::SetAccessor(proto, Nan::New("textBaseline").ToLocalChecked(), GetTextBaseline, SetTextBaseline);
+  Nan::SetAccessor(proto, Nan::New("textAlign").ToLocalChecked(), GetTextAlign, SetTextAlign);
+  Local<Context> ctx = Nan::GetCurrentContext();
+  Nan::Set(target, Nan::New("CanvasRenderingContext2d").ToLocalChecked(), ctor->GetFunction(ctx).ToLocalChecked());
+  Nan::Set(target, Nan::New("CanvasRenderingContext2dInit").ToLocalChecked(), Nan::New<Function>(SaveExternalModules));
+}
+
+/*
+ * Create a cairo context.
+ */
+
+Context2d::Context2d(Canvas *canvas) {
+  _canvas = canvas;
+  _context = canvas->createCairoContext();
+  _layout = pango_cairo_create_layout(_context);
+
+  // As of January 2023, Pango rounds glyph positions which renders text wider
+  // or narrower than the browser. See #2184 for more information
+#if PANGO_VERSION_CHECK(1, 44, 0)
+  pango_context_set_round_glyph_positions(pango_layout_get_context(_layout), FALSE);
+#endif
+
+  states.emplace();
+  state = &states.top();
+  pango_layout_set_font_description(_layout, state->fontDescription);
+}
+
+/*
+ * Destroy cairo context.
+ */
+
+Context2d::~Context2d() {
+  g_object_unref(_layout);
+  cairo_destroy(_context);
+  _resetPersistentHandles();
+}
+
+/*
+ * Reset canvas state.
+ */
+
+void Context2d::resetState() {
+  states.pop();
+  states.emplace();
+  pango_layout_set_font_description(_layout, state->fontDescription);
+  _resetPersistentHandles();
+}
+
+void Context2d::_resetPersistentHandles() {
+  _fillStyle.Reset();
+  _strokeStyle.Reset();
+}
+
+/*
+ * Save cairo / canvas state.
+ */
+
+void
+Context2d::save() {
+  cairo_save(_context);
+  states.emplace(states.top());
+  state = &states.top();
+}
+
+/*
+ * Restore cairo / canvas state.
+ */
+
+void
+Context2d::restore() {
+  if (states.size() > 1) {
+    cairo_restore(_context);
+    states.pop();
+    state = &states.top();
+    pango_layout_set_font_description(_layout, state->fontDescription);
+  }
+}
+
+/*
+ * Save flat path.
+ */
+
+void
+Context2d::savePath() {
+  _path = cairo_copy_path_flat(_context);
+  cairo_new_path(_context);
+}
+
+/*
+ * Restore flat path.
+ */
+
+void
+Context2d::restorePath() {
+  cairo_new_path(_context);
+  cairo_append_path(_context, _path);
+  cairo_path_destroy(_path);
+}
+
+/*
+ * Create temporary surface for gradient or pattern transparency
+ */
+cairo_pattern_t*
+create_transparent_gradient(cairo_pattern_t *source, float alpha) {
+  double x0;
+  double y0;
+  double x1;
+  double y1;
+  double r0;
+  double r1;
+  int count;
+  int i;
+  double offset;
+  double r;
+  double g;
+  double b;
+  double a;
+  cairo_pattern_t *newGradient;
+  cairo_pattern_type_t type = cairo_pattern_get_type(source);
+  cairo_pattern_get_color_stop_count(source, &count);
+  if (type == CAIRO_PATTERN_TYPE_LINEAR) {
+    cairo_pattern_get_linear_points (source, &x0, &y0, &x1, &y1);
+    newGradient = cairo_pattern_create_linear(x0, y0, x1, y1);
+  } else if (type == CAIRO_PATTERN_TYPE_RADIAL) {
+    cairo_pattern_get_radial_circles(source, &x0, &y0, &r0, &x1, &y1, &r1);
+    newGradient = cairo_pattern_create_radial(x0, y0, r0, x1, y1, r1);
+  } else {
+    Nan::ThrowError("Unexpected gradient type");
+    return NULL;
+  }
+  for ( i = 0; i < count; i++ ) {
+    cairo_pattern_get_color_stop_rgba(source, i, &offset, &r, &g, &b, &a);
+    cairo_pattern_add_color_stop_rgba(newGradient, offset, r, g, b, a * alpha);
+  }
+  return newGradient;
+}
+
+cairo_pattern_t*
+create_transparent_pattern(cairo_pattern_t *source, float alpha) {
+  cairo_surface_t *surface;
+  cairo_pattern_get_surface(source, &surface);
+  int width = cairo_image_surface_get_width(surface);
+  int height = cairo_image_surface_get_height(surface);
+  cairo_surface_t *mask_surface = cairo_image_surface_create(
+    CAIRO_FORMAT_ARGB32,
+    width,
+    height);
+  cairo_t *mask_context = cairo_create(mask_surface);
+  if (cairo_status(mask_context) != CAIRO_STATUS_SUCCESS) {
+    Nan::ThrowError("Failed to initialize context");
+    return NULL;
+  }
+  cairo_set_source(mask_context, source);
+  cairo_paint_with_alpha(mask_context, alpha);
+  cairo_destroy(mask_context);
+  cairo_pattern_t* newPattern = cairo_pattern_create_for_surface(mask_surface);
+  cairo_surface_destroy(mask_surface);
+  return newPattern;
+}
+
+/*
+ * Fill and apply shadow.
+ */
+
+void
+Context2d::setFillRule(v8::Local<v8::Value> value) {
+  cairo_fill_rule_t rule = CAIRO_FILL_RULE_WINDING;
+  if (value->IsString()) {
+    Nan::Utf8String str(value);
+    if (std::strcmp(*str, "evenodd") == 0) {
+      rule = CAIRO_FILL_RULE_EVEN_ODD;
+    }
+  }
+  cairo_set_fill_rule(_context, rule);
+}
+
+void
+Context2d::fill(bool preserve) {
+  cairo_pattern_t *new_pattern;
+  bool needsRestore = false;
+  if (state->fillPattern) {
+    if (state->globalAlpha < 1) {
+      new_pattern = create_transparent_pattern(state->fillPattern, state->globalAlpha);
+      if (new_pattern == NULL) {
+        // failed to allocate; Nan::ThrowError has already been called, so return from this fn.
+        return;
+      }
+      cairo_set_source(_context, new_pattern);
+      cairo_pattern_destroy(new_pattern);
+    } else {
+      cairo_pattern_set_filter(state->fillPattern, state->patternQuality);
+      cairo_set_source(_context, state->fillPattern);
+    }
+    repeat_type_t repeat = Pattern::get_repeat_type_for_cairo_pattern(state->fillPattern);
+    if (repeat == NO_REPEAT) {
+      cairo_pattern_set_extend(cairo_get_source(_context), CAIRO_EXTEND_NONE);
+    } else if (repeat == REPEAT) {
+      cairo_pattern_set_extend(cairo_get_source(_context), CAIRO_EXTEND_REPEAT);
+    } else {
+      cairo_save(_context);
+      cairo_path_t *savedPath = cairo_copy_path(_context);
+      cairo_surface_t *patternSurface = nullptr;
+      cairo_pattern_get_surface(cairo_get_source(_context), &patternSurface);
+
+      double width, height;
+      if (repeat == REPEAT_X) {
+        double x1, x2;
+        cairo_path_extents(_context, &x1, nullptr, &x2, nullptr);
+        width = x2 - x1;
+        height = cairo_image_surface_get_height(patternSurface);
+      } else {
+        double y1, y2;
+        cairo_path_extents(_context, nullptr, &y1, nullptr, &y2);
+        width = cairo_image_surface_get_width(patternSurface);
+        height = y2 - y1;
+      }
+      
+      cairo_new_path(_context);
+      cairo_rectangle(_context, 0, 0, width, height);
+      cairo_clip(_context);
+      cairo_append_path(_context, savedPath);
+      cairo_path_destroy(savedPath);
+      cairo_pattern_set_extend(cairo_get_source(_context), CAIRO_EXTEND_REPEAT);
+      needsRestore = true;
+    }
+  } else if (state->fillGradient) {
+    if (state->globalAlpha < 1) {
+      new_pattern = create_transparent_gradient(state->fillGradient, state->globalAlpha);
+      if (new_pattern == NULL) {
+        // failed to recognize gradient; Nan::ThrowError has already been called, so return from this fn.
+        return;
+      }
+      cairo_pattern_set_filter(new_pattern, state->patternQuality);
+      cairo_set_source(_context, new_pattern);
+      cairo_pattern_destroy(new_pattern);
+    } else {
+      cairo_pattern_set_filter(state->fillGradient, state->patternQuality);
+      cairo_set_source(_context, state->fillGradient);
+    }
+  } else {
+    setSourceRGBA(state->fill);
+  }
+  if (preserve) {
+    hasShadow()
+      ? shadow(cairo_fill_preserve)
+      : cairo_fill_preserve(_context);
+  } else {
+    hasShadow()
+      ? shadow(cairo_fill)
+      : cairo_fill(_context);
+  }
+  if (needsRestore) {
+    cairo_restore(_context);
+  }
+}
+
+/*
+ * Stroke and apply shadow.
+ */
+
+void
+Context2d::stroke(bool preserve) {
+  cairo_pattern_t *new_pattern;
+  if (state->strokePattern) {
+    if (state->globalAlpha < 1) {
+      new_pattern = create_transparent_pattern(state->strokePattern, state->globalAlpha);
+      if (new_pattern == NULL) {
+        // failed to allocate; Nan::ThrowError has already been called, so return from this fn.
+        return;
+      }
+      cairo_set_source(_context, new_pattern);
+      cairo_pattern_destroy(new_pattern);
+    } else {
+      cairo_pattern_set_filter(state->strokePattern, state->patternQuality);
+      cairo_set_source(_context, state->strokePattern);
+    }
+    repeat_type_t repeat = Pattern::get_repeat_type_for_cairo_pattern(state->strokePattern);
+    if (NO_REPEAT == repeat) {
+      cairo_pattern_set_extend(cairo_get_source(_context), CAIRO_EXTEND_NONE);
+    } else {
+      cairo_pattern_set_extend(cairo_get_source(_context), CAIRO_EXTEND_REPEAT);
+    }
+  } else if (state->strokeGradient) {
+    if (state->globalAlpha < 1) {
+      new_pattern = create_transparent_gradient(state->strokeGradient, state->globalAlpha);
+      if (new_pattern == NULL) {
+        // failed to recognize gradient; Nan::ThrowError has already been called, so return from this fn.
+        return;
+      }
+      cairo_pattern_set_filter(new_pattern, state->patternQuality);
+      cairo_set_source(_context, new_pattern);
+      cairo_pattern_destroy(new_pattern);
+    } else {
+      cairo_pattern_set_filter(state->strokeGradient, state->patternQuality);
+      cairo_set_source(_context, state->strokeGradient);
+    }
+  } else {
+    setSourceRGBA(state->stroke);
+  }
+
+  if (preserve) {
+    hasShadow()
+      ? shadow(cairo_stroke_preserve)
+      : cairo_stroke_preserve(_context);
+  } else {
+    hasShadow()
+      ? shadow(cairo_stroke)
+      : cairo_stroke(_context);
+  }
+}
+
+/*
+ * Apply shadow with the given draw fn.
+ */
+
+void
+Context2d::shadow(void (fn)(cairo_t *cr)) {
+  cairo_path_t *path = cairo_copy_path_flat(_context);
+  cairo_save(_context);
+
+  // shadowOffset is unaffected by current transform
+  cairo_matrix_t path_matrix;
+  cairo_get_matrix(_context, &path_matrix);
+  cairo_identity_matrix(_context);
+
+  // Apply shadow
+  cairo_push_group(_context);
+
+  // No need to invoke blur if shadowBlur is 0
+  if (state->shadowBlur) {
+    // find out extent of path
+    double x1, y1, x2, y2;
+    if (fn == cairo_fill || fn == cairo_fill_preserve) {
+      cairo_fill_extents(_context, &x1, &y1, &x2, &y2);
+    } else {
+      cairo_stroke_extents(_context, &x1, &y1, &x2, &y2);
+    }
+
+    // create new image surface that size + padding for blurring
+    double dx = x2-x1, dy = y2-y1;
+    cairo_user_to_device_distance(_context, &dx, &dy);
+    int pad = state->shadowBlur * 2;
+    cairo_surface_t *shadow_surface = cairo_image_surface_create(
+      CAIRO_FORMAT_ARGB32,
+      dx + 2 * pad,
+      dy + 2 * pad);
+    cairo_t *shadow_context = cairo_create(shadow_surface);
+
+    // transform path to the right place
+    cairo_translate(shadow_context, pad-x1, pad-y1);
+    cairo_transform(shadow_context, &path_matrix);
+
+    // set lineCap lineJoin lineDash
+    cairo_set_line_cap(shadow_context, cairo_get_line_cap(_context));
+    cairo_set_line_join(shadow_context, cairo_get_line_join(_context));
+
+    double offset;
+    int dashes = cairo_get_dash_count(_context);
+    std::vector<double> a(dashes);
+    cairo_get_dash(_context, a.data(), &offset);
+    cairo_set_dash(shadow_context, a.data(), dashes, offset);
+
+    // draw the path and blur
+    cairo_set_line_width(shadow_context, cairo_get_line_width(_context));
+    cairo_new_path(shadow_context);
+    cairo_append_path(shadow_context, path);
+    setSourceRGBA(shadow_context, state->shadow);
+    fn(shadow_context);
+    blur(shadow_surface, state->shadowBlur);
+
+    // paint to original context
+    cairo_set_source_surface(_context, shadow_surface,
+      x1 - pad + state->shadowOffsetX + 1,
+      y1 - pad + state->shadowOffsetY + 1);
+    cairo_paint(_context);
+    cairo_destroy(shadow_context);
+    cairo_surface_destroy(shadow_surface);
+  } else {
+    // Offset first, then apply path's transform
+    cairo_translate(
+        _context
+      , state->shadowOffsetX
+      , state->shadowOffsetY);
+    cairo_transform(_context, &path_matrix);
+
+    // Apply shadow
+    cairo_new_path(_context);
+    cairo_append_path(_context, path);
+    setSourceRGBA(state->shadow);
+
+    fn(_context);
+  }
+
+  // Paint the shadow
+  cairo_pop_group_to_source(_context);
+  cairo_paint(_context);
+
+  // Restore state
+  cairo_restore(_context);
+  cairo_new_path(_context);
+  cairo_append_path(_context, path);
+  fn(_context);
+
+  cairo_path_destroy(path);
+}
+
+/*
+ * Set source RGBA for the current context
+ */
+
+void
+Context2d::setSourceRGBA(rgba_t color) {
+  setSourceRGBA(_context, color);
+}
+
+/*
+ * Set source RGBA
+ */
+
+void
+Context2d::setSourceRGBA(cairo_t *ctx, rgba_t color) {
+  cairo_set_source_rgba(
+      ctx
+    , color.r
+    , color.g
+    , color.b
+    , color.a * state->globalAlpha);
+}
+
+/*
+ * Check if the context has a drawable shadow.
+ */
+
+bool
+Context2d::hasShadow() {
+  return state->shadow.a
+    && (state->shadowBlur || state->shadowOffsetX || state->shadowOffsetY);
+}
+
+/*
+ * Blur the given surface with the given radius.
+ */
+
+void
+Context2d::blur(cairo_surface_t *surface, int radius) {
+  // Steve Hanov, 2009
+  // Released into the public domain.
+  radius = radius * 0.57735f + 0.5f;
+  // get width, height
+  int width = cairo_image_surface_get_width( surface );
+  int height = cairo_image_surface_get_height( surface );
+  unsigned* precalc =
+      (unsigned*)malloc(width*height*sizeof(unsigned));
+  cairo_surface_flush( surface );
+  unsigned char* src = cairo_image_surface_get_data( surface );
+  double mul=1.f/((radius*2)*(radius*2));
+  int channel;
+
+  // The number of times to perform the averaging. According to wikipedia,
+  // three iterations is good enough to pass for a gaussian.
+  const int MAX_ITERATIONS = 3;
+  int iteration;
+
+  for ( iteration = 0; iteration < MAX_ITERATIONS; iteration++ ) {
+      for( channel = 0; channel < 4; channel++ ) {
+          int x,y;
+
+          // precomputation step.
+          unsigned char* pix = src;
+          unsigned* pre = precalc;
+
+          pix += channel;
+          for (y=0;y<height;y++) {
+              for (x=0;x<width;x++) {
+                  int tot=pix[0];
+                  if (x>0) tot+=pre[-1];
+                  if (y>0) tot+=pre[-width];
+                  if (x>0 && y>0) tot-=pre[-width-1];
+                  *pre++=tot;
+                  pix += 4;
+              }
+          }
+
+          // blur step.
+          pix = src + (int)radius * width * 4 + (int)radius * 4 + channel;
+          for (y=radius;y<height-radius;y++) {
+              for (x=radius;x<width-radius;x++) {
+                  int l = x < radius ? 0 : x - radius;
+                  int t = y < radius ? 0 : y - radius;
+                  int r = x + radius >= width ? width - 1 : x + radius;
+                  int b = y + radius >= height ? height - 1 : y + radius;
+                  int tot = precalc[r+b*width] + precalc[l+t*width] -
+                      precalc[l+b*width] - precalc[r+t*width];
+                  *pix=(unsigned char)(tot*mul);
+                  pix += 4;
+              }
+              pix += (int)radius * 2 * 4;
+          }
+      }
+  }
+
+  cairo_surface_mark_dirty(surface);
+  free(precalc);
+}
+
+/*
+ * Initialize a new Context2d with the given canvas.
+ */
+
+NAN_METHOD(Context2d::New) {
+  if (!info.IsConstructCall()) {
+    return Nan::ThrowTypeError("Class constructors cannot be invoked without 'new'");
+  }
+
+  if (!info[0]->IsObject())
+    return Nan::ThrowTypeError("Canvas expected");
+  Local<Object> obj = Nan::To<Object>(info[0]).ToLocalChecked();
+  if (!Nan::New(Canvas::constructor)->HasInstance(obj))
+    return Nan::ThrowTypeError("Canvas expected");
+  Canvas *canvas = Nan::ObjectWrap::Unwrap<Canvas>(obj);
+
+  bool isImageBackend = canvas->backend()->getName() == "image";
+  if (isImageBackend) {
+    cairo_format_t format = ImageBackend::DEFAULT_FORMAT;
+    if (info[1]->IsObject()) {
+      Local<Object> ctxAttributes = Nan::To<Object>(info[1]).ToLocalChecked();
+
+      Local<Value> pixelFormat = Nan::Get(ctxAttributes, Nan::New("pixelFormat").ToLocalChecked()).ToLocalChecked();
+      if (pixelFormat->IsString()) {
+        Nan::Utf8String utf8PixelFormat(pixelFormat);
+        if (!strcmp(*utf8PixelFormat, "RGBA32")) format = CAIRO_FORMAT_ARGB32;
+        else if (!strcmp(*utf8PixelFormat, "RGB24")) format = CAIRO_FORMAT_RGB24;
+        else if (!strcmp(*utf8PixelFormat, "A8")) format = CAIRO_FORMAT_A8;
+        else if (!strcmp(*utf8PixelFormat, "RGB16_565")) format = CAIRO_FORMAT_RGB16_565;
+        else if (!strcmp(*utf8PixelFormat, "A1")) format = CAIRO_FORMAT_A1;
+#ifdef CAIRO_FORMAT_RGB30
+        else if (!strcmp(utf8PixelFormat, "RGB30")) format = CAIRO_FORMAT_RGB30;
+#endif
+      }
+
+      // alpha: false forces use of RGB24
+      Local<Value> alpha = Nan::Get(ctxAttributes, Nan::New("alpha").ToLocalChecked()).ToLocalChecked();
+      if (alpha->IsBoolean() && !Nan::To<bool>(alpha).FromMaybe(false)) {
+        format = CAIRO_FORMAT_RGB24;
+      }
+    }
+    static_cast<ImageBackend*>(canvas->backend())->setFormat(format);
+  }
+
+  Context2d *context = new Context2d(canvas);
+
+  context->Wrap(info.This());
+  info.GetReturnValue().Set(info.This());
+}
+
+/*
+ * Save some external modules as private references.
+ */
+
+NAN_METHOD(Context2d::SaveExternalModules) {
+  _DOMMatrix.Reset(Nan::To<Function>(info[0]).ToLocalChecked());
+  _parseFont.Reset(Nan::To<Function>(info[1]).ToLocalChecked());
+}
+
+/*
+* Get format (string).
+*/
+
+NAN_GETTER(Context2d::GetFormat) {
+  CHECK_RECEIVER(Context2d.GetFormat);
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  std::string pixelFormatString;
+  switch (context->canvas()->backend()->getFormat()) {
+  case CAIRO_FORMAT_ARGB32: pixelFormatString = "RGBA32"; break;
+  case CAIRO_FORMAT_RGB24: pixelFormatString = "RGB24"; break;
+  case CAIRO_FORMAT_A8: pixelFormatString = "A8"; break;
+  case CAIRO_FORMAT_A1: pixelFormatString = "A1"; break;
+  case CAIRO_FORMAT_RGB16_565: pixelFormatString = "RGB16_565"; break;
+#ifdef CAIRO_FORMAT_RGB30
+  case CAIRO_FORMAT_RGB30: pixelFormatString = "RGB30"; break;
+#endif
+  default: return info.GetReturnValue().SetNull();
+  }
+  info.GetReturnValue().Set(Nan::New<String>(pixelFormatString).ToLocalChecked());
+}
+
+/*
+ * Create a new page.
+ */
+
+NAN_METHOD(Context2d::AddPage) {
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  if (context->canvas()->backend()->getName() != "pdf") {
+    return Nan::ThrowError("only PDF canvases support .addPage()");
+  }
+  cairo_show_page(context->context());
+  int width = Nan::To<int32_t>(info[0]).FromMaybe(0);
+  int height = Nan::To<int32_t>(info[1]).FromMaybe(0);
+  if (width < 1) width = context->canvas()->getWidth();
+  if (height < 1) height = context->canvas()->getHeight();
+  cairo_pdf_surface_set_size(context->canvas()->surface(), width, height);
+  return;
+}
+
+/*
+ * Put image data.
+ *
+ *  - imageData, dx, dy
+ *  - imageData, dx, dy, sx, sy, sw, sh
+ *
+ */
+
+NAN_METHOD(Context2d::PutImageData) {
+  if (!info[0]->IsObject())
+    return Nan::ThrowTypeError("ImageData expected");
+  Local<Object> obj = Nan::To<Object>(info[0]).ToLocalChecked();
+  if (!Nan::New(ImageData::constructor)->HasInstance(obj))
+    return Nan::ThrowTypeError("ImageData expected");
+
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  ImageData *imageData = Nan::ObjectWrap::Unwrap<ImageData>(obj);
+
+  uint8_t *src = imageData->data();
+  uint8_t *dst = context->canvas()->data();
+
+  int dstStride = context->canvas()->stride();
+  int Bpp = dstStride / context->canvas()->getWidth();
+  int srcStride = Bpp * imageData->width();
+
+  int sx = 0
+    , sy = 0
+    , sw = 0
+    , sh = 0
+    , dx = Nan::To<int32_t>(info[1]).FromMaybe(0)
+    , dy = Nan::To<int32_t>(info[2]).FromMaybe(0)
+    , rows
+    , cols;
+
+  switch (info.Length()) {
+    // imageData, dx, dy
+    case 3:
+      sw = imageData->width();
+      sh = imageData->height();
+      break;
+    // imageData, dx, dy, sx, sy, sw, sh
+    case 7:
+      sx = Nan::To<int32_t>(info[3]).FromMaybe(0);
+      sy = Nan::To<int32_t>(info[4]).FromMaybe(0);
+      sw = Nan::To<int32_t>(info[5]).FromMaybe(0);
+      sh = Nan::To<int32_t>(info[6]).FromMaybe(0);
+      // fix up negative height, width
+      if (sw < 0) sx += sw, sw = -sw;
+      if (sh < 0) sy += sh, sh = -sh;
+      // clamp the left edge
+      if (sx < 0) sw += sx, sx = 0;
+      if (sy < 0) sh += sy, sy = 0;
+      // clamp the right edge
+      if (sx + sw > imageData->width()) sw = imageData->width() - sx;
+      if (sy + sh > imageData->height()) sh = imageData->height() - sy;
+      // start destination at source offset
+      dx += sx;
+      dy += sy;
+      break;
+    default:
+      return Nan::ThrowError("invalid arguments");
+  }
+
+  // chop off outlying source data
+  if (dx < 0) sw += dx, sx -= dx, dx = 0;
+  if (dy < 0) sh += dy, sy -= dy, dy = 0;
+  // clamp width at canvas size
+  // Need to wrap std::min calls using parens to prevent macro expansion on
+  // windows. See http://stackoverflow.com/questions/5004858/stdmin-gives-error
+  cols = (std::min)(sw, context->canvas()->getWidth() - dx);
+  rows = (std::min)(sh, context->canvas()->getHeight() - dy);
+
+  if (cols <= 0 || rows <= 0) return;
+
+  switch (context->canvas()->backend()->getFormat()) {
+  case CAIRO_FORMAT_ARGB32: {
+    src += sy * srcStride + sx * 4;
+    dst += dstStride * dy + 4 * dx;
+    for (int y = 0; y < rows; ++y) {
+      uint8_t *dstRow = dst;
+      uint8_t *srcRow = src;
+      for (int x = 0; x < cols; ++x) {
+        // rgba
+        uint8_t r = *srcRow++;
+        uint8_t g = *srcRow++;
+        uint8_t b = *srcRow++;
+        uint8_t a = *srcRow++;
+
+        // argb
+        // performance optimization: fully transparent/opaque pixels can be
+        // processed more efficiently.
+        if (a == 0) {
+          *dstRow++ = 0;
+          *dstRow++ = 0;
+          *dstRow++ = 0;
+          *dstRow++ = 0;
+        } else if (a == 255) {
+          *dstRow++ = b;
+          *dstRow++ = g;
+          *dstRow++ = r;
+          *dstRow++ = a;
+        } else {
+          float alpha = (float)a / 255;
+          *dstRow++ = b * alpha;
+          *dstRow++ = g * alpha;
+          *dstRow++ = r * alpha;
+          *dstRow++ = a;
+        }
+      }
+      dst += dstStride;
+      src += srcStride;
+    }
+    break;
+  }
+  case CAIRO_FORMAT_RGB24: {
+    src += sy * srcStride + sx * 4;
+    dst += dstStride * dy + 4 * dx;
+    for (int y = 0; y < rows; ++y) {
+      uint8_t *dstRow = dst;
+      uint8_t *srcRow = src;
+      for (int x = 0; x < cols; ++x) {
+        // rgba
+        uint8_t r = *srcRow++;
+        uint8_t g = *srcRow++;
+        uint8_t b = *srcRow++;
+        srcRow++;
+
+        // argb
+        *dstRow++ = b;
+        *dstRow++ = g;
+        *dstRow++ = r;
+        *dstRow++ = 255;
+      }
+      dst += dstStride;
+      src += srcStride;
+    }
+    break;
+  }
+  case CAIRO_FORMAT_A8: {
+    src += sy * srcStride + sx;
+    dst += dstStride * dy + dx;
+    if (srcStride == dstStride && cols == dstStride) {
+      // fast path: strides are the same and doing a full-width put
+      memcpy(dst, src, cols * rows);
+    } else {
+      for (int y = 0; y < rows; ++y) {
+        memcpy(dst, src, cols);
+        dst += dstStride;
+        src += srcStride;
+      }
+    }
+    break;
+  }
+  case CAIRO_FORMAT_A1: {
+    // TODO Should this be totally packed, or maintain a stride divisible by 4?
+    Nan::ThrowError("putImageData for CANVAS_FORMAT_A1 is not yet implemented");
+    break;
+  }
+  case CAIRO_FORMAT_RGB16_565: {
+    src += sy * srcStride + sx * 2;
+    dst += dstStride * dy + 2 * dx;
+    for (int y = 0; y < rows; ++y) {
+      memcpy(dst, src, cols * 2);
+      dst += dstStride;
+      src += srcStride;
+    }
+    break;
+  }
+#ifdef CAIRO_FORMAT_RGB30
+  case CAIRO_FORMAT_RGB30: {
+    // TODO
+    Nan::ThrowError("putImageData for CANVAS_FORMAT_RGB30 is not yet implemented");
+    break;
+  }
+#endif
+  default: {
+    Nan::ThrowError("Invalid pixel format or not an image canvas");
+    return;
+  }
+  }
+
+  cairo_surface_mark_dirty_rectangle(
+      context->canvas()->surface()
+    , dx
+    , dy
+    , cols
+    , rows);
+}
+
+/*
+ * Get image data.
+ *
+ *  - sx, sy, sw, sh
+ *
+ */
+
+NAN_METHOD(Context2d::GetImageData) {
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  Canvas *canvas = context->canvas();
+
+  int sx = Nan::To<int32_t>(info[0]).FromMaybe(0);
+  int sy = Nan::To<int32_t>(info[1]).FromMaybe(0);
+  int sw = Nan::To<int32_t>(info[2]).FromMaybe(0);
+  int sh = Nan::To<int32_t>(info[3]).FromMaybe(0);
+
+  if (!sw)
+    return Nan::ThrowError("IndexSizeError: The source width is 0.");
+  if (!sh)
+    return Nan::ThrowError("IndexSizeError: The source height is 0.");
+
+  int width = canvas->getWidth();
+  int height = canvas->getHeight();
+
+  if (!width)
+    return Nan::ThrowTypeError("Canvas width is 0");
+  if (!height)
+    return Nan::ThrowTypeError("Canvas height is 0");
+
+  // WebKit and Firefox have this behavior:
+  // Flip the coordinates so the origin is top/left-most:
+  if (sw < 0) {
+    sx += sw;
+    sw = -sw;
+  }
+  if (sh < 0) {
+    sy += sh;
+    sh = -sh;
+  }
+
+  if (sx + sw > width) sw = width - sx;
+  if (sy + sh > height) sh = height - sy;
+
+  // WebKit/moz functionality. node-canvas used to return in either case.
+  if (sw <= 0) sw = 1;
+  if (sh <= 0) sh = 1;
+
+  // Non-compliant. "Pixels outside the canvas must be returned as transparent
+  // black." This instead clips the returned array to the canvas area.
+  if (sx < 0) {
+    sw += sx;
+    sx = 0;
+  }
+  if (sy < 0) {
+    sh += sy;
+    sy = 0;
+  }
+
+  int srcStride = canvas->stride();
+  int bpp = srcStride / width;
+  int size = sw * sh * bpp;
+  int dstStride = sw * bpp;
+
+  uint8_t *src = canvas->data();
+
+  Local<ArrayBuffer> buffer = ArrayBuffer::New(Isolate::GetCurrent(), size);
+  Local<TypedArray> dataArray;
+
+  if (canvas->backend()->getFormat() == CAIRO_FORMAT_RGB16_565) {
+    dataArray = Uint16Array::New(buffer, 0, size >> 1);
+  } else {
+    dataArray = Uint8ClampedArray::New(buffer, 0, size);
+  }
+
+  Nan::TypedArrayContents<uint8_t> typedArrayContents(dataArray);
+  uint8_t* dst = *typedArrayContents;
+
+  switch (canvas->backend()->getFormat()) {
+  case CAIRO_FORMAT_ARGB32: {
+    // Rearrange alpha (argb -> rgba), undo alpha pre-multiplication,
+    // and store in big-endian format
+    for (int y = 0; y < sh; ++y) {
+      uint32_t *row = (uint32_t *)(src + srcStride * (y + sy));
+      for (int x = 0; x < sw; ++x) {
+        int bx = x * 4;
+        uint32_t *pixel = row + x + sx;
+        uint8_t a = *pixel >> 24;
+        uint8_t r = *pixel >> 16;
+        uint8_t g = *pixel >> 8;
+        uint8_t b = *pixel;
+        dst[bx + 3] = a;
+
+        // Performance optimization: fully transparent/opaque pixels can be
+        // processed more efficiently.
+        if (a == 0 || a == 255) {
+          dst[bx + 0] = r;
+          dst[bx + 1] = g;
+          dst[bx + 2] = b;
+        } else {
+          // Undo alpha pre-multiplication
+          float alphaR = (float)255 / a;
+          dst[bx + 0] = (int)((float)r * alphaR);
+          dst[bx + 1] = (int)((float)g * alphaR);
+          dst[bx + 2] = (int)((float)b * alphaR);
+        }
+
+      }
+      dst += dstStride;
+    }
+    break;
+  }
+  case CAIRO_FORMAT_RGB24: {
+  // Rearrange alpha (argb -> rgba) and store in big-endian format
+    for (int y = 0; y < sh; ++y) {
+    uint32_t *row = (uint32_t *)(src + srcStride * (y + sy));
+    for (int x = 0; x < sw; ++x) {
+      int bx = x * 4;
+      uint32_t *pixel = row + x + sx;
+      uint8_t r = *pixel >> 16;
+      uint8_t g = *pixel >> 8;
+      uint8_t b = *pixel;
+
+      dst[bx + 0] = r;
+      dst[bx + 1] = g;
+      dst[bx + 2] = b;
+      dst[bx + 3] = 255;
+    }
+    dst += dstStride;
+    }
+    break;
+  }
+  case CAIRO_FORMAT_A8: {
+    for (int y = 0; y < sh; ++y) {
+      uint8_t *row = (uint8_t *)(src + srcStride * (y + sy));
+      memcpy(dst, row + sx, dstStride);
+      dst += dstStride;
+    }
+    break;
+  }
+  case CAIRO_FORMAT_A1: {
+    // TODO Should this be totally packed, or maintain a stride divisible by 4?
+    Nan::ThrowError("getImageData for CANVAS_FORMAT_A1 is not yet implemented");
+    break;
+  }
+  case CAIRO_FORMAT_RGB16_565: {
+    for (int y = 0; y < sh; ++y) {
+      uint16_t *row = (uint16_t *)(src + srcStride * (y + sy));
+      memcpy(dst, row + sx, dstStride);
+      dst += dstStride;
+    }
+    break;
+  }
+#ifdef CAIRO_FORMAT_RGB30
+  case CAIRO_FORMAT_RGB30: {
+    // TODO
+    Nan::ThrowError("getImageData for CANVAS_FORMAT_RGB30 is not yet implemented");
+    break;
+  }
+#endif
+  default: {
+    // Unlikely
+    Nan::ThrowError("Invalid pixel format or not an image canvas");
+    return;
+  }
+  }
+
+  const int argc = 3;
+  Local<Int32> swHandle = Nan::New(sw);
+  Local<Int32> shHandle = Nan::New(sh);
+  Local<Value> argv[argc] = { dataArray, swHandle, shHandle };
+
+  Local<Function> ctor = Nan::GetFunction(Nan::New(ImageData::constructor)).ToLocalChecked();
+  Local<Object> instance = Nan::NewInstance(ctor, argc, argv).ToLocalChecked();
+
+  info.GetReturnValue().Set(instance);
+}
+
+/**
+ * Create `ImageData` with the given dimensions or
+ * `ImageData` instance for dimensions.
+ */
+
+NAN_METHOD(Context2d::CreateImageData){
+  Isolate *iso = Isolate::GetCurrent();
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  Canvas *canvas = context->canvas();
+  int32_t width, height;
+
+  if (info[0]->IsObject()) {
+    Local<Object> obj = Nan::To<Object>(info[0]).ToLocalChecked();
+    width = Nan::To<int32_t>(Nan::Get(obj, Nan::New("width").ToLocalChecked()).ToLocalChecked()).FromMaybe(0);
+    height = Nan::To<int32_t>(Nan::Get(obj, Nan::New("height").ToLocalChecked()).ToLocalChecked()).FromMaybe(0);
+  } else {
+    width = Nan::To<int32_t>(info[0]).FromMaybe(0);
+    height = Nan::To<int32_t>(info[1]).FromMaybe(0);
+  }
+
+  int stride = canvas->stride();
+  double Bpp = static_cast<double>(stride) / canvas->getWidth();
+  int nBytes = static_cast<int>(Bpp * width * height + .5);
+
+  Local<ArrayBuffer> ab = ArrayBuffer::New(iso, nBytes);
+  Local<Object> arr;
+
+  if (canvas->backend()->getFormat() == CAIRO_FORMAT_RGB16_565)
+    arr = Uint16Array::New(ab, 0, nBytes / 2);
+  else
+    arr = Uint8ClampedArray::New(ab, 0, nBytes);
+
+  const int argc = 3;
+  Local<Value> argv[argc] = { arr, Nan::New(width), Nan::New(height) };
+
+  Local<Function> ctor = Nan::GetFunction(Nan::New(ImageData::constructor)).ToLocalChecked();
+  Local<Object> instance = Nan::NewInstance(ctor, argc, argv).ToLocalChecked();
+
+  info.GetReturnValue().Set(instance);
+}
+
+/*
+ * Take a transform matrix and return its components
+ * 0: angle, 1: scaleX, 2: scaleY, 3: skewX, 4: translateX, 5: translateY
+ */
+void decompose_matrix(cairo_matrix_t matrix, double *destination) {
+  double denom = pow(matrix.xx, 2) + pow(matrix.yx, 2);
+  destination[0] = atan2(matrix.yx, matrix.xx);
+  destination[1] = sqrt(denom);
+  destination[2] = (matrix.xx * matrix.yy - matrix.xy * matrix.yx) / destination[1];
+  destination[3] = atan2(matrix.xx * matrix.xy + matrix.yx * matrix.yy, denom);
+  destination[4] = matrix.x0;
+  destination[5] = matrix.y0;
+}
+
+/*
+ * Draw image src image to the destination (context).
+ *
+ *  - dx, dy
+ *  - dx, dy, dw, dh
+ *  - sx, sy, sw, sh, dx, dy, dw, dh
+ *
+ */
+
+NAN_METHOD(Context2d::DrawImage) {
+  int infoLen = info.Length();
+  if (infoLen != 3 && infoLen != 5 && infoLen != 9)
+    return Nan::ThrowTypeError("Invalid arguments");
+
+  if (!info[0]->IsObject())
+    return Nan::ThrowTypeError("The first argument must be an object");
+
+  double args[8];
+  if(!checkArgs(info, args, infoLen - 1, 1))
+    return;
+
+  double sx = 0
+    , sy = 0
+    , sw = 0
+    , sh = 0
+    , dx = 0
+    , dy = 0
+    , dw = 0
+    , dh = 0
+    , source_w = 0
+    , source_h = 0;
+
+  cairo_surface_t *surface;
+
+  Local<Object> obj = Nan::To<Object>(info[0]).ToLocalChecked();
+
+  // Image
+  if (Nan::New(Image::constructor)->HasInstance(obj)) {
+    Image *img = Nan::ObjectWrap::Unwrap<Image>(obj);
+    if (!img->isComplete()) {
+      return Nan::ThrowError("Image given has not completed loading");
+    }
+    source_w = sw = img->width;
+    source_h = sh = img->height;
+    surface = img->surface();
+
+  // Canvas
+  } else if (Nan::New(Canvas::constructor)->HasInstance(obj)) {
+    Canvas *canvas = Nan::ObjectWrap::Unwrap<Canvas>(obj);
+    source_w = sw = canvas->getWidth();
+    source_h = sh = canvas->getHeight();
+    surface = canvas->surface();
+
+  // Invalid
+  } else {
+    return Nan::ThrowTypeError("Image or Canvas expected");
+  }
+
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  cairo_t *ctx = context->context();
+
+  // Arguments
+  switch (infoLen) {
+    // img, sx, sy, sw, sh, dx, dy, dw, dh
+    case 9:
+      sx = args[0];
+      sy = args[1];
+      sw = args[2];
+      sh = args[3];
+      dx = args[4];
+      dy = args[5];
+      dw = args[6];
+      dh = args[7];
+      break;
+    // img, dx, dy, dw, dh
+    case 5:
+      dx = args[0];
+      dy = args[1];
+      dw = args[2];
+      dh = args[3];
+      break;
+    // img, dx, dy
+    case 3:
+      dx = args[0];
+      dy = args[1];
+      dw = sw;
+      dh = sh;
+      break;
+  }
+
+  if (!(sw && sh && dw && dh))
+    return;
+
+  // Start draw
+  cairo_save(ctx);
+
+  cairo_matrix_t matrix;
+  double transforms[6];
+  cairo_get_matrix(context->context(), &matrix);
+  decompose_matrix(matrix, transforms);
+  // extract the scale value from the current transform so that we know how many pixels we
+  // need for our extra canvas in the drawImage operation.
+  double current_scale_x = std::abs(transforms[1]);
+  double current_scale_y = std::abs(transforms[2]);
+  double extra_dx = 0;
+  double extra_dy = 0;
+  double fx = dw / sw * current_scale_x; // transforms[1] is scale on X
+  double fy = dh / sh * current_scale_y; // transforms[2] is scale on X
+  bool needScale = dw != sw || dh != sh;
+  bool needCut = sw != source_w || sh != source_h || sx < 0 || sy < 0;
+  bool sameCanvas = surface == context->canvas()->surface();
+  bool needsExtraSurface = sameCanvas || needCut || needScale;
+  cairo_surface_t *surfTemp = NULL;
+  cairo_t *ctxTemp = NULL;
+
+  if (needsExtraSurface) {
+    // we want to create the extra surface as small as possible.
+    // fx and fy are the total scaling we need to apply to sw, sh.
+    // from sw and sh we want to remove the part that is outside the source_w and soruce_h
+    double real_w = sw;
+    double real_h = sh;
+    double translate_x = 0;
+    double translate_y = 0;
+    // if sx or sy are negative, a part of the area represented by sw and sh is empty
+    // because there are empty pixels, so we cut it out.
+    // On the other hand if sx or sy are positive, but sw and sh extend outside the real
+    // source pixels, we cut the area in that case too.
+    if (sx < 0) {
+      extra_dx = -sx * fx;
+      real_w = sw + sx;
+    } else if (sx + sw > source_w) {
+      real_w = sw - (sx + sw - source_w);
+    }
+    if (sy < 0) {
+      extra_dy = -sy * fy;
+      real_h = sh + sy;
+    } else if (sy + sh > source_h) {
+      real_h = sh - (sy + sh - source_h);
+    }
+    // if after cutting we are still bigger than source pixels, we restrict again
+    if (real_w > source_w) {
+      real_w = source_w;
+    }
+    if (real_h > source_h) {
+      real_h = source_h;
+    }
+    // TODO: find a way to limit the surfTemp to real_w and real_h if fx and fy are bigger than 1.
+    // there are no more pixel than the one available in the source, no need to create a bigger surface.
+    surfTemp = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, round(real_w * fx), round(real_h * fy));
+    ctxTemp = cairo_create(surfTemp);
+    cairo_scale(ctxTemp, fx, fy);
+    if (sx > 0) {
+      translate_x = sx;
+    }
+    if (sy > 0) {
+      translate_y = sy;
+    }
+    cairo_set_source_surface(ctxTemp, surface, -translate_x, -translate_y);
+    cairo_pattern_set_filter(cairo_get_source(ctxTemp), context->state->imageSmoothingEnabled ? context->state->patternQuality : CAIRO_FILTER_NEAREST);
+    cairo_pattern_set_extend(cairo_get_source(ctxTemp), CAIRO_EXTEND_REFLECT);
+    cairo_paint_with_alpha(ctxTemp, 1);
+    surface = surfTemp;
+  }
+  // apply shadow if there is one
+  if (context->hasShadow()) {
+    if(context->state->shadowBlur) {
+      // we need to create a new surface in order to blur
+      int pad = context->state->shadowBlur * 2;
+      cairo_surface_t *shadow_surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, dw + 2 * pad, dh + 2 * pad);
+      cairo_t *shadow_context = cairo_create(shadow_surface);
+
+      // mask and blur
+      context->setSourceRGBA(shadow_context, context->state->shadow);
+      cairo_mask_surface(shadow_context, surface, pad, pad);
+      context->blur(shadow_surface, context->state->shadowBlur);
+
+      // paint
+      // @note: ShadowBlur looks different in each browser. This implementation matches chrome as close as possible.
+      //        The 1.4 offset comes from visual tests with Chrome. I have read the spec and part of the shadowBlur
+      //        implementation, and its not immediately clear why an offset is necessary, but without it, the result
+      //        in chrome is different.
+      cairo_set_source_surface(ctx, shadow_surface,
+        dx + context->state->shadowOffsetX - pad + 1.4,
+        dy + context->state->shadowOffsetY - pad + 1.4);
+      cairo_paint(ctx);
+      // cleanup
+      cairo_destroy(shadow_context);
+      cairo_surface_destroy(shadow_surface);
+    } else {
+      context->setSourceRGBA(context->state->shadow);
+      cairo_mask_surface(ctx, surface,
+        dx + (context->state->shadowOffsetX),
+        dy + (context->state->shadowOffsetY));
+    }
+  }
+
+  double scaled_dx = dx;
+  double scaled_dy = dy;
+
+  if (needsExtraSurface && (current_scale_x != 1 || current_scale_y != 1)) {
+    // in this case our surface contains already current_scale_x, we need to scale back
+    cairo_scale(ctx, 1 / current_scale_x, 1 / current_scale_y);
+    scaled_dx *= current_scale_x;
+    scaled_dy *= current_scale_y;
+  }
+  // Paint
+  cairo_set_source_surface(ctx, surface, scaled_dx + extra_dx, scaled_dy + extra_dy);
+  cairo_pattern_set_filter(cairo_get_source(ctx), context->state->imageSmoothingEnabled ? context->state->patternQuality : CAIRO_FILTER_NEAREST);
+  cairo_pattern_set_extend(cairo_get_source(ctx), CAIRO_EXTEND_NONE);
+  cairo_paint_with_alpha(ctx, context->state->globalAlpha);
+
+  cairo_restore(ctx);
+
+  if (needsExtraSurface) {
+    cairo_destroy(ctxTemp);
+    cairo_surface_destroy(surfTemp);
+  }
+}
+
+/*
+ * Get global alpha.
+ */
+
+NAN_GETTER(Context2d::GetGlobalAlpha) {
+  CHECK_RECEIVER(Context2d.GetGlobalAlpha);
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  info.GetReturnValue().Set(Nan::New<Number>(context->state->globalAlpha));
+}
+
+/*
+ * Set global alpha.
+ */
+
+NAN_SETTER(Context2d::SetGlobalAlpha) {
+  CHECK_RECEIVER(Context2d.SetGlobalAlpha);
+  double n = Nan::To<double>(value).FromMaybe(0);
+  if (n >= 0 && n <= 1) {
+    Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+    context->state->globalAlpha = n;
+  }
+}
+
+/*
+ * Get global composite operation.
+ */
+
+NAN_GETTER(Context2d::GetGlobalCompositeOperation) {
+  CHECK_RECEIVER(Context2d.GetGlobalCompositeOperation);
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  cairo_t *ctx = context->context();
+
+  const char *op = "source-over";
+  switch (cairo_get_operator(ctx)) {
+    // composite modes:
+    case CAIRO_OPERATOR_CLEAR: op = "clear"; break;
+    case CAIRO_OPERATOR_SOURCE: op = "copy"; break;
+    case CAIRO_OPERATOR_DEST: op = "destination"; break;
+    case CAIRO_OPERATOR_OVER: op = "source-over"; break;
+    case CAIRO_OPERATOR_DEST_OVER: op = "destination-over"; break;
+    case CAIRO_OPERATOR_IN: op = "source-in"; break;
+    case CAIRO_OPERATOR_DEST_IN: op = "destination-in"; break;
+    case CAIRO_OPERATOR_OUT: op = "source-out"; break;
+    case CAIRO_OPERATOR_DEST_OUT: op = "destination-out"; break;
+    case CAIRO_OPERATOR_ATOP: op = "source-atop"; break;
+    case CAIRO_OPERATOR_DEST_ATOP: op = "destination-atop"; break;
+    case CAIRO_OPERATOR_XOR: op = "xor"; break;
+    case CAIRO_OPERATOR_ADD: op = "lighter"; break;
+    // blend modes:
+    // Note: "source-over" and "normal" are synonyms. Chrome and FF both report
+    // "source-over" after setting gCO to "normal".
+    // case CAIRO_OPERATOR_OVER: op = "normal";
+    case CAIRO_OPERATOR_MULTIPLY: op = "multiply"; break;
+    case CAIRO_OPERATOR_SCREEN: op = "screen"; break;
+    case CAIRO_OPERATOR_OVERLAY: op = "overlay"; break;
+    case CAIRO_OPERATOR_DARKEN: op = "darken"; break;
+    case CAIRO_OPERATOR_LIGHTEN: op = "lighten"; break;
+    case CAIRO_OPERATOR_COLOR_DODGE: op = "color-dodge"; break;
+    case CAIRO_OPERATOR_COLOR_BURN: op = "color-burn"; break;
+    case CAIRO_OPERATOR_HARD_LIGHT: op = "hard-light"; break;
+    case CAIRO_OPERATOR_SOFT_LIGHT: op = "soft-light"; break;
+    case CAIRO_OPERATOR_DIFFERENCE: op = "difference"; break;
+    case CAIRO_OPERATOR_EXCLUSION: op = "exclusion"; break;
+    case CAIRO_OPERATOR_HSL_HUE: op = "hue"; break;
+    case CAIRO_OPERATOR_HSL_SATURATION: op = "saturation"; break;
+    case CAIRO_OPERATOR_HSL_COLOR: op = "color"; break;
+    case CAIRO_OPERATOR_HSL_LUMINOSITY: op = "luminosity"; break;
+    // non-standard:
+    case CAIRO_OPERATOR_SATURATE: op = "saturate"; break;
+  }
+
+  info.GetReturnValue().Set(Nan::New(op).ToLocalChecked());
+}
+
+/*
+ * Set pattern quality.
+ */
+
+NAN_SETTER(Context2d::SetPatternQuality) {
+  CHECK_RECEIVER(Context2d.SetPatternQuality);
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  Nan::Utf8String quality(Nan::To<String>(value).ToLocalChecked());
+  if (0 == strcmp("fast", *quality)) {
+    context->state->patternQuality = CAIRO_FILTER_FAST;
+  } else if (0 == strcmp("good", *quality)) {
+    context->state->patternQuality = CAIRO_FILTER_GOOD;
+  } else if (0 == strcmp("best", *quality)) {
+    context->state->patternQuality = CAIRO_FILTER_BEST;
+  } else if (0 == strcmp("nearest", *quality)) {
+    context->state->patternQuality = CAIRO_FILTER_NEAREST;
+  } else if (0 == strcmp("bilinear", *quality)) {
+    context->state->patternQuality = CAIRO_FILTER_BILINEAR;
+  }
+}
+
+/*
+ * Get pattern quality.
+ */
+
+NAN_GETTER(Context2d::GetPatternQuality) {
+  CHECK_RECEIVER(Context2d.GetPatternQuality);
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  const char *quality;
+  switch (context->state->patternQuality) {
+    case CAIRO_FILTER_FAST: quality = "fast"; break;
+    case CAIRO_FILTER_BEST: quality = "best"; break;
+    case CAIRO_FILTER_NEAREST: quality = "nearest"; break;
+    case CAIRO_FILTER_BILINEAR: quality = "bilinear"; break;
+    default: quality = "good";
+  }
+  info.GetReturnValue().Set(Nan::New(quality).ToLocalChecked());
+}
+
+/*
+ * Set ImageSmoothingEnabled value.
+ */
+
+NAN_SETTER(Context2d::SetImageSmoothingEnabled) {
+  CHECK_RECEIVER(Context2d.SetImageSmoothingEnabled);
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  context->state->imageSmoothingEnabled = Nan::To<bool>(value).FromMaybe(false);
+}
+
+/*
+ * Get pattern quality.
+ */
+
+NAN_GETTER(Context2d::GetImageSmoothingEnabled) {
+  CHECK_RECEIVER(Context2d.GetImageSmoothingEnabled);
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  info.GetReturnValue().Set(Nan::New<Boolean>(context->state->imageSmoothingEnabled));
+}
+
+/*
+ * Set global composite operation.
+ */
+
+NAN_SETTER(Context2d::SetGlobalCompositeOperation) {
+  CHECK_RECEIVER(Context2d.SetGlobalCompositeOperation);
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  cairo_t *ctx = context->context();
+  Nan::Utf8String opStr(Nan::To<String>(value).ToLocalChecked()); // Unlike CSS colors, this *is* case-sensitive
+  const std::map<std::string, cairo_operator_t> blendmodes = {
+    // composite modes:
+    {"clear", CAIRO_OPERATOR_CLEAR},
+    {"copy", CAIRO_OPERATOR_SOURCE},
+    {"destination", CAIRO_OPERATOR_DEST}, // this seems to have been omitted from the spec
+    {"source-over", CAIRO_OPERATOR_OVER},
+    {"destination-over", CAIRO_OPERATOR_DEST_OVER},
+    {"source-in", CAIRO_OPERATOR_IN},
+    {"destination-in", CAIRO_OPERATOR_DEST_IN},
+    {"source-out", CAIRO_OPERATOR_OUT},
+    {"destination-out", CAIRO_OPERATOR_DEST_OUT},
+    {"source-atop", CAIRO_OPERATOR_ATOP},
+    {"destination-atop", CAIRO_OPERATOR_DEST_ATOP},
+    {"xor", CAIRO_OPERATOR_XOR},
+    {"lighter", CAIRO_OPERATOR_ADD},
+    // blend modes:
+    {"normal", CAIRO_OPERATOR_OVER},
+    {"multiply", CAIRO_OPERATOR_MULTIPLY},
+    {"screen", CAIRO_OPERATOR_SCREEN},
+    {"overlay", CAIRO_OPERATOR_OVERLAY},
+    {"darken", CAIRO_OPERATOR_DARKEN},
+    {"lighten", CAIRO_OPERATOR_LIGHTEN},
+    {"color-dodge", CAIRO_OPERATOR_COLOR_DODGE},
+    {"color-burn", CAIRO_OPERATOR_COLOR_BURN},
+    {"hard-light", CAIRO_OPERATOR_HARD_LIGHT},
+    {"soft-light", CAIRO_OPERATOR_SOFT_LIGHT},
+    {"difference", CAIRO_OPERATOR_DIFFERENCE},
+    {"exclusion", CAIRO_OPERATOR_EXCLUSION},
+    {"hue", CAIRO_OPERATOR_HSL_HUE},
+    {"saturation", CAIRO_OPERATOR_HSL_SATURATION},
+    {"color", CAIRO_OPERATOR_HSL_COLOR},
+    {"luminosity", CAIRO_OPERATOR_HSL_LUMINOSITY},
+    // non-standard:
+    {"saturate", CAIRO_OPERATOR_SATURATE}
+  };
+  auto op = blendmodes.find(*opStr);
+  if (op != blendmodes.end()) cairo_set_operator(ctx, op->second);
+}
+
+/*
+ * Get shadow offset x.
+ */
+
+NAN_GETTER(Context2d::GetShadowOffsetX) {
+  CHECK_RECEIVER(Context2d.GetShadowOffsetX);
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  info.GetReturnValue().Set(Nan::New<Number>(context->state->shadowOffsetX));
+}
+
+/*
+ * Set shadow offset x.
+ */
+
+NAN_SETTER(Context2d::SetShadowOffsetX) {
+  CHECK_RECEIVER(Context2d.SetShadowOffsetX);
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  context->state->shadowOffsetX = Nan::To<double>(value).FromMaybe(0);
+}
+
+/*
+ * Get shadow offset y.
+ */
+
+NAN_GETTER(Context2d::GetShadowOffsetY) {
+  CHECK_RECEIVER(Context2d.GetShadowOffsetY);
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  info.GetReturnValue().Set(Nan::New<Number>(context->state->shadowOffsetY));
+}
+
+/*
+ * Set shadow offset y.
+ */
+
+NAN_SETTER(Context2d::SetShadowOffsetY) {
+  CHECK_RECEIVER(Context2d.SetShadowOffsetY);
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  context->state->shadowOffsetY = Nan::To<double>(value).FromMaybe(0);
+}
+
+/*
+ * Get shadow blur.
+ */
+
+NAN_GETTER(Context2d::GetShadowBlur) {
+  CHECK_RECEIVER(Context2d.GetShadowBlur);
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  info.GetReturnValue().Set(Nan::New<Number>(context->state->shadowBlur));
+}
+
+/*
+ * Set shadow blur.
+ */
+
+NAN_SETTER(Context2d::SetShadowBlur) {
+  CHECK_RECEIVER(Context2d.SetShadowBlur);
+  int n = Nan::To<double>(value).FromMaybe(0);
+  if (n >= 0) {
+    Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+    context->state->shadowBlur = n;
+  }
+}
+
+/*
+ * Get current antialiasing setting.
+ */
+
+NAN_GETTER(Context2d::GetAntiAlias) {
+  CHECK_RECEIVER(Context2d.GetAntiAlias);
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  const char *aa;
+  switch (cairo_get_antialias(context->context())) {
+    case CAIRO_ANTIALIAS_NONE: aa = "none"; break;
+    case CAIRO_ANTIALIAS_GRAY: aa = "gray"; break;
+    case CAIRO_ANTIALIAS_SUBPIXEL: aa = "subpixel"; break;
+    default: aa = "default";
+  }
+  info.GetReturnValue().Set(Nan::New(aa).ToLocalChecked());
+}
+
+/*
+ * Set antialiasing.
+ */
+
+NAN_SETTER(Context2d::SetAntiAlias) {
+  CHECK_RECEIVER(Context2d.SetAntiAlias);
+  Nan::Utf8String str(Nan::To<String>(value).ToLocalChecked());
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  cairo_t *ctx = context->context();
+  cairo_antialias_t a;
+  if (0 == strcmp("none", *str)) {
+    a = CAIRO_ANTIALIAS_NONE;
+  } else if (0 == strcmp("default", *str)) {
+    a = CAIRO_ANTIALIAS_DEFAULT;
+  } else if (0 == strcmp("gray", *str)) {
+    a = CAIRO_ANTIALIAS_GRAY;
+  } else if (0 == strcmp("subpixel", *str)) {
+    a = CAIRO_ANTIALIAS_SUBPIXEL;
+  } else {
+    a = cairo_get_antialias(ctx);
+  }
+  cairo_set_antialias(ctx, a);
+}
+
+/*
+ * Get text drawing mode.
+ */
+
+NAN_GETTER(Context2d::GetTextDrawingMode) {
+  CHECK_RECEIVER(Context2d.GetTextDrawingMode);
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  const char *mode;
+  if (context->state->textDrawingMode == TEXT_DRAW_PATHS) {
+    mode = "path";
+  } else if (context->state->textDrawingMode == TEXT_DRAW_GLYPHS) {
+    mode = "glyph";
+  } else {
+    mode = "unknown";
+  }
+  info.GetReturnValue().Set(Nan::New(mode).ToLocalChecked());
+}
+
+/*
+ * Set text drawing mode.
+ */
+
+NAN_SETTER(Context2d::SetTextDrawingMode) {
+  CHECK_RECEIVER(Context2d.SetTextDrawingMode);
+  Nan::Utf8String str(Nan::To<String>(value).ToLocalChecked());
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  if (0 == strcmp("path", *str)) {
+    context->state->textDrawingMode = TEXT_DRAW_PATHS;
+  } else if (0 == strcmp("glyph", *str)) {
+    context->state->textDrawingMode = TEXT_DRAW_GLYPHS;
+  }
+}
+
+/*
+ * Get filter.
+ */
+
+NAN_GETTER(Context2d::GetQuality) {
+  CHECK_RECEIVER(Context2d.GetQuality);
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  const char *filter;
+  switch (cairo_pattern_get_filter(cairo_get_source(context->context()))) {
+    case CAIRO_FILTER_FAST: filter = "fast"; break;
+    case CAIRO_FILTER_BEST: filter = "best"; break;
+    case CAIRO_FILTER_NEAREST: filter = "nearest"; break;
+    case CAIRO_FILTER_BILINEAR: filter = "bilinear"; break;
+    default: filter = "good";
+  }
+  info.GetReturnValue().Set(Nan::New(filter).ToLocalChecked());
+}
+
+/*
+ * Set filter.
+ */
+
+NAN_SETTER(Context2d::SetQuality) {
+  CHECK_RECEIVER(Context2d.SetQuality);
+  Nan::Utf8String str(Nan::To<String>(value).ToLocalChecked());
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  cairo_filter_t filter;
+  if (0 == strcmp("fast", *str)) {
+    filter = CAIRO_FILTER_FAST;
+  } else if (0 == strcmp("best", *str)) {
+    filter = CAIRO_FILTER_BEST;
+  } else if (0 == strcmp("nearest", *str)) {
+    filter = CAIRO_FILTER_NEAREST;
+  } else if (0 == strcmp("bilinear", *str)) {
+    filter = CAIRO_FILTER_BILINEAR;
+  } else {
+    filter = CAIRO_FILTER_GOOD;
+  }
+  cairo_pattern_set_filter(cairo_get_source(context->context()), filter);
+}
+
+/*
+ * Helper for get current transform matrix
+ */
+
+Local<Object>
+get_current_transform(Context2d *context) {
+  Isolate *iso = Isolate::GetCurrent();
+
+  Local<Float64Array> arr = Float64Array::New(ArrayBuffer::New(iso, 48), 0, 6);
+  Nan::TypedArrayContents<double> dest(arr);
+  cairo_matrix_t matrix;
+  cairo_get_matrix(context->context(), &matrix);
+  (*dest)[0] = matrix.xx;
+  (*dest)[1] = matrix.yx;
+  (*dest)[2] = matrix.xy;
+  (*dest)[3] = matrix.yy;
+  (*dest)[4] = matrix.x0;
+  (*dest)[5] = matrix.y0;
+
+  const int argc = 1;
+  Local<Value> argv[argc] = { arr };
+  return Nan::NewInstance(context->_DOMMatrix.Get(iso), argc, argv).ToLocalChecked();
+}
+
+/*
+ * Helper for get/set transform.
+ */
+
+void parse_matrix_from_object(cairo_matrix_t &matrix, Local<Object> mat) {
+  cairo_matrix_init(&matrix,
+    Nan::To<double>(Nan::Get(mat, Nan::New("a").ToLocalChecked()).ToLocalChecked()).FromMaybe(0),
+    Nan::To<double>(Nan::Get(mat, Nan::New("b").ToLocalChecked()).ToLocalChecked()).FromMaybe(0),
+    Nan::To<double>(Nan::Get(mat, Nan::New("c").ToLocalChecked()).ToLocalChecked()).FromMaybe(0),
+    Nan::To<double>(Nan::Get(mat, Nan::New("d").ToLocalChecked()).ToLocalChecked()).FromMaybe(0),
+    Nan::To<double>(Nan::Get(mat, Nan::New("e").ToLocalChecked()).ToLocalChecked()).FromMaybe(0),
+    Nan::To<double>(Nan::Get(mat, Nan::New("f").ToLocalChecked()).ToLocalChecked()).FromMaybe(0)
+  );
+}
+
+
+/*
+ * Get current transform.
+ */
+
+NAN_GETTER(Context2d::GetCurrentTransform) {
+  CHECK_RECEIVER(Context2d.GetCurrentTransform);
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  Local<Object> instance = get_current_transform(context);
+
+  info.GetReturnValue().Set(instance);
+}
+
+/*
+ * Set current transform.
+ */
+
+NAN_SETTER(Context2d::SetCurrentTransform) {
+  CHECK_RECEIVER(Context2d.SetCurrentTransform);
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  Local<Context> ctx = Nan::GetCurrentContext();
+  Local<Object> mat = Nan::To<Object>(value).ToLocalChecked();
+
+#if NODE_MAJOR_VERSION >= 8
+  if (!mat->InstanceOf(ctx, _DOMMatrix.Get(Isolate::GetCurrent())).ToChecked()) {
+    return Nan::ThrowTypeError("Expected DOMMatrix");
+  }
+#endif
+
+  cairo_matrix_t matrix;
+  parse_matrix_from_object(matrix, mat);
+
+  cairo_transform(context->context(), &matrix);
+}
+
+/*
+ * Get current fill style.
+ */
+
+NAN_GETTER(Context2d::GetFillStyle) {
+  CHECK_RECEIVER(Context2d.GetFillStyle);
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  Isolate *iso = Isolate::GetCurrent();
+  Local<Value> style;
+
+  if (context->_fillStyle.IsEmpty())
+    style = context->_getFillColor();
+  else
+    style = context->_fillStyle.Get(iso);
+
+  info.GetReturnValue().Set(style);
+}
+
+/*
+ * Set current fill style.
+ */
+
+NAN_SETTER(Context2d::SetFillStyle) {
+  CHECK_RECEIVER(Context2d.SetFillStyle);
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+
+  if (value->IsString()) {
+    MaybeLocal<String> mstr = Nan::To<String>(value);
+    if (mstr.IsEmpty()) return;
+    Local<String> str = mstr.ToLocalChecked();
+    context->_fillStyle.Reset();
+    context->_setFillColor(str);
+  } else if (value->IsObject()) {
+    Local<Object> obj = Nan::To<Object>(value).ToLocalChecked();
+    if (Nan::New(Gradient::constructor)->HasInstance(obj)) {
+      context->_fillStyle.Reset(value);
+      Gradient *grad = Nan::ObjectWrap::Unwrap<Gradient>(obj);
+      context->state->fillGradient = grad->pattern();
+    } else if (Nan::New(Pattern::constructor)->HasInstance(obj)) {
+      context->_fillStyle.Reset(value);
+      Pattern *pattern = Nan::ObjectWrap::Unwrap<Pattern>(obj);
+      context->state->fillPattern = pattern->pattern();
+    }
+  }
+}
+
+/*
+ * Get current stroke style.
+ */
+
+NAN_GETTER(Context2d::GetStrokeStyle) {
+  CHECK_RECEIVER(Context2d.GetStrokeStyle);
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  Local<Value> style;
+
+  if (context->_strokeStyle.IsEmpty())
+    style = context->_getStrokeColor();
+  else
+    style = context->_strokeStyle.Get(Isolate::GetCurrent());
+
+  info.GetReturnValue().Set(style);
+}
+
+/*
+ * Set current stroke style.
+ */
+
+NAN_SETTER(Context2d::SetStrokeStyle) {
+  CHECK_RECEIVER(Context2d.SetStrokeStyle);
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+
+  if (value->IsString()) {
+    MaybeLocal<String> mstr = Nan::To<String>(value);
+    if (mstr.IsEmpty()) return;
+    Local<String> str = mstr.ToLocalChecked();
+    context->_strokeStyle.Reset();
+    context->_setStrokeColor(str);
+  } else if (value->IsObject()) {
+    Local<Object> obj = Nan::To<Object>(value).ToLocalChecked();
+    if (Nan::New(Gradient::constructor)->HasInstance(obj)) {
+      context->_strokeStyle.Reset(value);
+      Gradient *grad = Nan::ObjectWrap::Unwrap<Gradient>(obj);
+      context->state->strokeGradient = grad->pattern();
+    } else if (Nan::New(Pattern::constructor)->HasInstance(obj)) {
+      context->_strokeStyle.Reset(value);
+      Pattern *pattern = Nan::ObjectWrap::Unwrap<Pattern>(obj);
+      context->state->strokePattern = pattern->pattern();
+    }
+  }
+}
+
+/*
+ * Get miter limit.
+ */
+
+NAN_GETTER(Context2d::GetMiterLimit) {
+  CHECK_RECEIVER(Context2d.GetMiterLimit);
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  info.GetReturnValue().Set(Nan::New<Number>(cairo_get_miter_limit(context->context())));
+}
+
+/*
+ * Set miter limit.
+ */
+
+NAN_SETTER(Context2d::SetMiterLimit) {
+  CHECK_RECEIVER(Context2d.SetMiterLimit);
+  double n = Nan::To<double>(value).FromMaybe(0);
+  if (n > 0) {
+    Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+    cairo_set_miter_limit(context->context(), n);
+  }
+}
+
+/*
+ * Get line width.
+ */
+
+NAN_GETTER(Context2d::GetLineWidth) {
+  CHECK_RECEIVER(Context2d.GetLineWidth);
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  info.GetReturnValue().Set(Nan::New<Number>(cairo_get_line_width(context->context())));
+}
+
+/*
+ * Set line width.
+ */
+
+NAN_SETTER(Context2d::SetLineWidth) {
+  CHECK_RECEIVER(Context2d.SetLineWidth);
+  double n = Nan::To<double>(value).FromMaybe(0);
+  if (n > 0 && n != std::numeric_limits<double>::infinity()) {
+    Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+    cairo_set_line_width(context->context(), n);
+  }
+}
+
+/*
+ * Get line join.
+ */
+
+NAN_GETTER(Context2d::GetLineJoin) {
+  CHECK_RECEIVER(Context2d.GetLineJoin);
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  const char *join;
+  switch (cairo_get_line_join(context->context())) {
+    case CAIRO_LINE_JOIN_BEVEL: join = "bevel"; break;
+    case CAIRO_LINE_JOIN_ROUND: join = "round"; break;
+    default: join = "miter";
+  }
+  info.GetReturnValue().Set(Nan::New(join).ToLocalChecked());
+}
+
+/*
+ * Set line join.
+ */
+
+NAN_SETTER(Context2d::SetLineJoin) {
+  CHECK_RECEIVER(Context2d.SetLineJoin);
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  cairo_t *ctx = context->context();
+  Nan::Utf8String type(Nan::To<String>(value).ToLocalChecked());
+  if (0 == strcmp("round", *type)) {
+    cairo_set_line_join(ctx, CAIRO_LINE_JOIN_ROUND);
+  } else if (0 == strcmp("bevel", *type)) {
+    cairo_set_line_join(ctx, CAIRO_LINE_JOIN_BEVEL);
+  } else {
+    cairo_set_line_join(ctx, CAIRO_LINE_JOIN_MITER);
+  }
+}
+
+/*
+ * Get line cap.
+ */
+
+NAN_GETTER(Context2d::GetLineCap) {
+  CHECK_RECEIVER(Context2d.GetLineCap);
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  const char *cap;
+  switch (cairo_get_line_cap(context->context())) {
+    case CAIRO_LINE_CAP_ROUND: cap = "round"; break;
+    case CAIRO_LINE_CAP_SQUARE: cap = "square"; break;
+    default: cap = "butt";
+  }
+  info.GetReturnValue().Set(Nan::New(cap).ToLocalChecked());
+}
+
+/*
+ * Set line cap.
+ */
+
+NAN_SETTER(Context2d::SetLineCap) {
+  CHECK_RECEIVER(Context2d.SetLineCap);
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  cairo_t *ctx = context->context();
+  Nan::Utf8String type(Nan::To<String>(value).ToLocalChecked());
+  if (0 == strcmp("round", *type)) {
+    cairo_set_line_cap(ctx, CAIRO_LINE_CAP_ROUND);
+  } else if (0 == strcmp("square", *type)) {
+    cairo_set_line_cap(ctx, CAIRO_LINE_CAP_SQUARE);
+  } else {
+    cairo_set_line_cap(ctx, CAIRO_LINE_CAP_BUTT);
+  }
+}
+
+/*
+ * Check if the given point is within the current path.
+ */
+
+NAN_METHOD(Context2d::IsPointInPath) {
+  if (info[0]->IsNumber() && info[1]->IsNumber()) {
+    Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+    cairo_t *ctx = context->context();
+    double x = Nan::To<double>(info[0]).FromMaybe(0)
+         , y = Nan::To<double>(info[1]).FromMaybe(0);
+    context->setFillRule(info[2]);
+    info.GetReturnValue().Set(Nan::New<Boolean>(cairo_in_fill(ctx, x, y) || cairo_in_stroke(ctx, x, y)));
+    return;
+  }
+  info.GetReturnValue().Set(Nan::False());
+}
+
+/*
+ * Set shadow color.
+ */
+
+NAN_SETTER(Context2d::SetShadowColor) {
+  CHECK_RECEIVER(Context2d.SetShadowColor);
+  short ok;
+  Nan::Utf8String str(Nan::To<String>(value).ToLocalChecked());
+  uint32_t rgba = rgba_from_string(*str, &ok);
+  if (ok) {
+    Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+    context->state->shadow = rgba_create(rgba);
+  }
+}
+
+/*
+ * Get shadow color.
+ */
+
+NAN_GETTER(Context2d::GetShadowColor) {
+  CHECK_RECEIVER(Context2d.GetShadowColor);
+  char buf[64];
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  rgba_to_string(context->state->shadow, buf, sizeof(buf));
+  info.GetReturnValue().Set(Nan::New<String>(buf).ToLocalChecked());
+}
+
+/*
+ * Set fill color, used internally for fillStyle=
+ */
+
+void Context2d::_setFillColor(Local<Value> arg) {
+  short ok;
+  Nan::Utf8String str(arg);
+  uint32_t rgba = rgba_from_string(*str, &ok);
+  if (!ok) return;
+  state->fillPattern = state->fillGradient = NULL;
+  state->fill = rgba_create(rgba);
+}
+
+/*
+ * Get fill color.
+ */
+
+Local<Value> Context2d::_getFillColor() {
+  char buf[64];
+  rgba_to_string(state->fill, buf, sizeof(buf));
+  return Nan::New<String>(buf).ToLocalChecked();
+}
+
+/*
+ * Set stroke color, used internally for strokeStyle=
+ */
+
+void Context2d::_setStrokeColor(Local<Value> arg) {
+  short ok;
+  Nan::Utf8String str(arg);
+  uint32_t rgba = rgba_from_string(*str, &ok);
+  if (!ok) return;
+  state->strokePattern = state->strokeGradient = NULL;
+  state->stroke = rgba_create(rgba);
+}
+
+/*
+ * Get stroke color.
+ */
+
+Local<Value> Context2d::_getStrokeColor() {
+  char buf[64];
+  rgba_to_string(state->stroke, buf, sizeof(buf));
+  return Nan::New<String>(buf).ToLocalChecked();
+}
+
+NAN_METHOD(Context2d::CreatePattern) {
+  Local<Value> image = info[0];
+  Local<Value> repetition = info[1];
+
+  if (!Nan::To<bool>(repetition).FromMaybe(false))
+    repetition = Nan::New("repeat").ToLocalChecked();
+
+  const int argc = 2;
+  Local<Value> argv[argc] = { image, repetition };
+
+  Local<Function> ctor = Nan::GetFunction(Nan::New(Pattern::constructor)).ToLocalChecked();
+  Local<Object> instance = Nan::NewInstance(ctor, argc, argv).ToLocalChecked();
+
+  info.GetReturnValue().Set(instance);
+}
+
+NAN_METHOD(Context2d::CreateLinearGradient) {
+  const int argc = 4;
+  Local<Value> argv[argc] = { info[0], info[1], info[2], info[3] };
+
+  Local<Function> ctor = Nan::GetFunction(Nan::New(Gradient::constructor)).ToLocalChecked();
+  Local<Object> instance = Nan::NewInstance(ctor, argc, argv).ToLocalChecked();
+
+  info.GetReturnValue().Set(instance);
+}
+
+NAN_METHOD(Context2d::CreateRadialGradient) {
+  const int argc = 6;
+  Local<Value> argv[argc] = { info[0], info[1], info[2], info[3], info[4], info[5] };
+
+  Local<Function> ctor = Nan::GetFunction(Nan::New(Gradient::constructor)).ToLocalChecked();
+  Local<Object> instance = Nan::NewInstance(ctor, argc, argv).ToLocalChecked();
+
+  info.GetReturnValue().Set(instance);
+}
+
+/*
+ * Bezier curve.
+ */
+
+NAN_METHOD(Context2d::BezierCurveTo) {
+  double args[6];
+  if(!checkArgs(info, args, 6))
+    return;
+
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  cairo_curve_to(context->context()
+    , args[0]
+    , args[1]
+    , args[2]
+    , args[3]
+    , args[4]
+    , args[5]);
+}
+
+/*
+ * Quadratic curve approximation from libsvg-cairo.
+ */
+
+NAN_METHOD(Context2d::QuadraticCurveTo) {
+  double args[4];
+  if(!checkArgs(info, args, 4))
+    return;
+
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  cairo_t *ctx = context->context();
+
+  double x, y
+    , x1 = args[0]
+    , y1 = args[1]
+    , x2 = args[2]
+    , y2 = args[3];
+
+  cairo_get_current_point(ctx, &x, &y);
+
+  if (0 == x && 0 == y) {
+    x = x1;
+    y = y1;
+  }
+
+  cairo_curve_to(ctx
+    , x  + 2.0 / 3.0 * (x1 - x),  y  + 2.0 / 3.0 * (y1 - y)
+    , x2 + 2.0 / 3.0 * (x1 - x2), y2 + 2.0 / 3.0 * (y1 - y2)
+    , x2
+    , y2);
+}
+
+/*
+ * Save state.
+ */
+
+NAN_METHOD(Context2d::Save) {
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  context->save();
+}
+
+/*
+ * Restore state.
+ */
+
+NAN_METHOD(Context2d::Restore) {
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  context->restore();
+}
+
+/*
+ * Creates a new subpath.
+ */
+
+NAN_METHOD(Context2d::BeginPath) {
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  cairo_new_path(context->context());
+}
+
+/*
+ * Marks the subpath as closed.
+ */
+
+NAN_METHOD(Context2d::ClosePath) {
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  cairo_close_path(context->context());
+}
+
+/*
+ * Rotate transformation.
+ */
+
+NAN_METHOD(Context2d::Rotate) {
+  double args[1];
+  if(!checkArgs(info, args, 1))
+    return;
+
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  cairo_rotate(context->context(), args[0]);
+}
+
+/*
+ * Modify the CTM.
+ */
+
+NAN_METHOD(Context2d::Transform) {
+  double args[6];
+  if(!checkArgs(info, args, 6))
+    return;
+
+  cairo_matrix_t matrix;
+  cairo_matrix_init(&matrix
+    , args[0]
+    , args[1]
+    , args[2]
+    , args[3]
+    , args[4]
+    , args[5]);
+
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  cairo_transform(context->context(), &matrix);
+}
+
+/*
+ * Get the CTM
+ */
+
+NAN_METHOD(Context2d::GetTransform) {
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  Local<Object> instance = get_current_transform(context);
+
+  info.GetReturnValue().Set(instance);
+}
+
+/*
+ * Reset the CTM, used internally by setTransform().
+ */
+
+NAN_METHOD(Context2d::ResetTransform) {
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  cairo_identity_matrix(context->context());
+}
+
+/*
+ * Reset transform matrix to identity, then apply the given args.
+ */
+
+NAN_METHOD(Context2d::SetTransform) {
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  if (info.Length() == 1) {
+    Local<Object> mat = Nan::To<Object>(info[0]).ToLocalChecked();
+
+    #if NODE_MAJOR_VERSION >= 8
+      Local<Context> ctx = Nan::GetCurrentContext();
+      if (!mat->InstanceOf(ctx, _DOMMatrix.Get(Isolate::GetCurrent())).ToChecked()) {
+        return Nan::ThrowTypeError("Expected DOMMatrix");
+      }
+    #endif
+
+    cairo_matrix_t matrix;
+    parse_matrix_from_object(matrix, mat);
+
+    cairo_set_matrix(context->context(), &matrix);
+  } else {
+    cairo_identity_matrix(context->context());
+    Context2d::Transform(info);
+  }
+}
+
+/*
+ * Translate transformation.
+ */
+
+NAN_METHOD(Context2d::Translate) {
+  double args[2];
+  if(!checkArgs(info, args, 2))
+    return;
+
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  cairo_translate(context->context(), args[0], args[1]);
+}
+
+/*
+ * Scale transformation.
+ */
+
+NAN_METHOD(Context2d::Scale) {
+  double args[2];
+  if(!checkArgs(info, args, 2))
+    return;
+
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  cairo_scale(context->context(), args[0], args[1]);
+}
+
+/*
+ * Use path as clipping region.
+ */
+
+NAN_METHOD(Context2d::Clip) {
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  context->setFillRule(info[0]);
+  cairo_t *ctx = context->context();
+  cairo_clip_preserve(ctx);
+}
+
+/*
+ * Fill the path.
+ */
+
+NAN_METHOD(Context2d::Fill) {
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  context->setFillRule(info[0]);
+  context->fill(true);
+}
+
+/*
+ * Stroke the path.
+ */
+
+NAN_METHOD(Context2d::Stroke) {
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  context->stroke(true);
+}
+
+/*
+ * Helper for fillText/strokeText
+ */
+
+double
+get_text_scale(PangoLayout *layout, double maxWidth) {
+
+  PangoRectangle logical_rect;
+  pango_layout_get_pixel_extents(layout, NULL, &logical_rect);
+
+  if (logical_rect.width > maxWidth) {
+    return maxWidth / logical_rect.width;
+  } else {
+    return 1.0;
+  }
+}
+
+void
+paintText(const Nan::FunctionCallbackInfo<Value> &info, bool stroke) {
+  int argsNum = info.Length() >= 4 ? 3 : 2;
+
+  if (argsNum == 3 && info[3]->IsUndefined())
+    argsNum = 2;
+
+  double args[3];
+  if(!checkArgs(info, args, argsNum, 1))
+    return;
+
+  Nan::Utf8String str(Nan::To<String>(info[0]).ToLocalChecked());
+  double x = args[0];
+  double y = args[1];
+  double scaled_by = 1;
+
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  PangoLayout *layout = context->layout();
+
+  pango_layout_set_text(layout, *str, -1);
+  pango_cairo_update_layout(context->context(), layout);
+
+  if (argsNum == 3) {
+    scaled_by = get_text_scale(layout, args[2]);
+    cairo_save(context->context());
+    cairo_scale(context->context(), scaled_by, 1);
+  }
+
+  context->savePath();
+  if (context->state->textDrawingMode == TEXT_DRAW_GLYPHS) {
+    if (stroke == true) { context->stroke(); } else { context->fill(); }
+    context->setTextPath(x / scaled_by, y);
+  } else if (context->state->textDrawingMode == TEXT_DRAW_PATHS) {
+    context->setTextPath(x / scaled_by, y);
+    if (stroke == true) { context->stroke(); } else { context->fill(); }
+  }
+  context->restorePath();
+  if (argsNum == 3) {
+    cairo_restore(context->context());
+  }
+}
+
+/*
+ * Fill text at (x, y).
+ */
+
+NAN_METHOD(Context2d::FillText) {
+  paintText(info, false);
+}
+
+/*
+ * Stroke text at (x ,y).
+ */
+
+NAN_METHOD(Context2d::StrokeText) {
+  paintText(info, true);
+}
+
+/*
+ * Gets the baseline adjustment in device pixels
+ */
+inline double getBaselineAdjustment(PangoLayout* layout, short baseline) {
+  PangoRectangle logical_rect;
+  pango_layout_line_get_extents(pango_layout_get_line(layout, 0), NULL, &logical_rect);
+
+  double scale = 1.0 / PANGO_SCALE;
+  double ascent = scale * pango_layout_get_baseline(layout);
+  double descent = scale * logical_rect.height - ascent;
+
+  switch (baseline) {
+  case TEXT_BASELINE_ALPHABETIC:
+    return ascent;
+  case TEXT_BASELINE_MIDDLE:
+    return (ascent + descent) / 2.0;
+  case TEXT_BASELINE_BOTTOM:
+    return ascent + descent;
+  default:
+    return 0;
+  }
+}
+
+/*
+ * Set text path for the string in the layout at (x, y).
+ * This function is called by paintText and won't behave correctly
+ * if is not called from there.
+ * it needs pango_layout_set_text and pango_cairo_update_layout to be called before
+ */
+
+void
+Context2d::setTextPath(double x, double y) {
+  PangoRectangle logical_rect;
+
+  switch (state->textAlignment) {
+    case TEXT_ALIGNMENT_CENTER:
+      pango_layout_get_pixel_extents(_layout, NULL, &logical_rect);
+      x -= logical_rect.width / 2;
+      break;
+    case TEXT_ALIGNMENT_END:
+    case TEXT_ALIGNMENT_RIGHT:
+      pango_layout_get_pixel_extents(_layout, NULL, &logical_rect);
+      x -= logical_rect.width;
+      break;
+  }
+
+  y -= getBaselineAdjustment(_layout, state->textBaseline);
+
+  cairo_move_to(_context, x, y);
+  if (state->textDrawingMode == TEXT_DRAW_PATHS) {
+    pango_cairo_layout_path(_context, _layout);
+  } else if (state->textDrawingMode == TEXT_DRAW_GLYPHS) {
+    pango_cairo_show_layout(_context, _layout);
+  }
+}
+
+/*
+ * Adds a point to the current subpath.
+ */
+
+NAN_METHOD(Context2d::LineTo) {
+  double args[2];
+  if(!checkArgs(info, args, 2))
+    return;
+
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  cairo_line_to(context->context(), args[0], args[1]);
+}
+
+/*
+ * Creates a new subpath at the given point.
+ */
+
+NAN_METHOD(Context2d::MoveTo) {
+  double args[2];
+  if(!checkArgs(info, args, 2))
+    return;
+
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  cairo_move_to(context->context(), args[0], args[1]);
+}
+
+/*
+ * Get font.
+ */
+
+NAN_GETTER(Context2d::GetFont) {
+  CHECK_RECEIVER(Context2d.GetFont);
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+
+  info.GetReturnValue().Set(Nan::New(context->state->font).ToLocalChecked());
+}
+
+/*
+ * Set font:
+ *   - weight
+ *   - style
+ *   - size
+ *   - unit
+ *   - family
+ */
+
+NAN_SETTER(Context2d::SetFont) {
+  CHECK_RECEIVER(Context2d.SetFont);
+  if (!value->IsString()) return;
+
+  Isolate *iso = Isolate::GetCurrent();
+  Local<Context> ctx = Nan::GetCurrentContext();
+
+  Local<String> str = Nan::To<String>(value).ToLocalChecked();
+  if (!str->Length()) return;
+
+  const int argc = 1;
+  Local<Value> argv[argc] = { value };
+
+  Local<Value> mparsed = Nan::Call(_parseFont.Get(iso), ctx->Global(), argc, argv).ToLocalChecked();
+  // parseFont returns undefined for invalid CSS font strings
+  if (mparsed->IsUndefined()) return;
+  Local<Object> font = Nan::To<Object>(mparsed).ToLocalChecked();
+
+  Nan::Utf8String weight(Nan::Get(font, Nan::New("weight").ToLocalChecked()).ToLocalChecked());
+  Nan::Utf8String style(Nan::Get(font, Nan::New("style").ToLocalChecked()).ToLocalChecked());
+  double size = Nan::To<double>(Nan::Get(font, Nan::New("size").ToLocalChecked()).ToLocalChecked()).FromMaybe(0);
+  Nan::Utf8String unit(Nan::Get(font, Nan::New("unit").ToLocalChecked()).ToLocalChecked());
+  Nan::Utf8String family(Nan::Get(font, Nan::New("family").ToLocalChecked()).ToLocalChecked());
+
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+
+  PangoFontDescription *desc = pango_font_description_copy(context->state->fontDescription);
+  pango_font_description_free(context->state->fontDescription);
+
+  pango_font_description_set_style(desc, Canvas::GetStyleFromCSSString(*style));
+  pango_font_description_set_weight(desc, Canvas::GetWeightFromCSSString(*weight));
+
+  if (strlen(*family) > 0) {
+    // See #1643 - Pango understands "sans" whereas CSS uses "sans-serif"
+    std::string s1(*family);
+    std::string s2("sans-serif");
+    if (streq_casein(s1, s2)) {
+      pango_font_description_set_family(desc, "sans");
+    } else {
+      pango_font_description_set_family(desc, *family);
+    }
+  }
+
+  PangoFontDescription *sys_desc = Canvas::ResolveFontDescription(desc);
+  pango_font_description_free(desc);
+
+  if (size > 0) pango_font_description_set_absolute_size(sys_desc, size * PANGO_SCALE);
+
+  context->state->fontDescription = sys_desc;
+  pango_layout_set_font_description(context->_layout, sys_desc);
+
+  context->state->font = *Nan::Utf8String(value);
+}
+
+/*
+ * Get text baseline.
+ */
+
+NAN_GETTER(Context2d::GetTextBaseline) {
+  CHECK_RECEIVER(Context2d.GetTextBaseline);
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  const char* baseline;
+  switch (context->state->textBaseline) {
+    default:
+    case TEXT_BASELINE_ALPHABETIC: baseline = "alphabetic"; break;
+    case TEXT_BASELINE_TOP: baseline = "top"; break;
+    case TEXT_BASELINE_BOTTOM: baseline = "bottom"; break;
+    case TEXT_BASELINE_MIDDLE: baseline = "middle"; break;
+    case TEXT_BASELINE_IDEOGRAPHIC: baseline = "ideographic"; break;
+    case TEXT_BASELINE_HANGING: baseline = "hanging"; break;
+  }
+  info.GetReturnValue().Set(Nan::New(baseline).ToLocalChecked());
+}
+
+/*
+ * Set text baseline.
+ */
+
+NAN_SETTER(Context2d::SetTextBaseline) {
+  CHECK_RECEIVER(Context2d.SetTextBaseline);
+  if (!value->IsString()) return;
+
+  Nan::Utf8String opStr(Nan::To<String>(value).ToLocalChecked());
+  const std::map<std::string, text_baseline_t> modes = {
+    {"alphabetic", TEXT_BASELINE_ALPHABETIC},
+    {"top", TEXT_BASELINE_TOP},
+    {"bottom", TEXT_BASELINE_BOTTOM},
+    {"middle", TEXT_BASELINE_MIDDLE},
+    {"ideographic", TEXT_BASELINE_IDEOGRAPHIC},
+    {"hanging", TEXT_BASELINE_HANGING}
+  };
+  auto op = modes.find(*opStr);
+  if (op == modes.end()) return;
+
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  context->state->textBaseline = op->second;
+}
+
+/*
+ * Get text align.
+ */
+
+NAN_GETTER(Context2d::GetTextAlign) {
+  CHECK_RECEIVER(Context2d.GetTextAlign);
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  const char* align;
+  switch (context->state->textAlignment) {
+    default:
+    // TODO the default is supposed to be "start"
+    case TEXT_ALIGNMENT_LEFT: align = "left"; break;
+    case TEXT_ALIGNMENT_START: align = "start"; break;
+    case TEXT_ALIGNMENT_CENTER: align = "center"; break;
+    case TEXT_ALIGNMENT_RIGHT: align = "right"; break;
+    case TEXT_ALIGNMENT_END: align = "end"; break;
+  }
+  info.GetReturnValue().Set(Nan::New(align).ToLocalChecked());
+}
+
+/*
+ * Set text align.
+ */
+
+NAN_SETTER(Context2d::SetTextAlign) {
+  CHECK_RECEIVER(Context2d.SetTextAlign);
+  if (!value->IsString()) return;
+
+  Nan::Utf8String opStr(Nan::To<String>(value).ToLocalChecked());
+  const std::map<std::string, text_align_t> modes = {
+    {"center", TEXT_ALIGNMENT_CENTER},
+    {"left", TEXT_ALIGNMENT_LEFT},
+    {"start", TEXT_ALIGNMENT_START},
+    {"right", TEXT_ALIGNMENT_RIGHT},
+    {"end", TEXT_ALIGNMENT_END}
+  };
+  auto op = modes.find(*opStr);
+  if (op == modes.end()) return;
+
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  context->state->textAlignment = op->second;
+}
+
+/*
+ * Return the given text extents.
+ * TODO: Support for:
+ * hangingBaseline, ideographicBaseline,
+ * fontBoundingBoxAscent, fontBoundingBoxDescent
+ */
+
+NAN_METHOD(Context2d::MeasureText) {
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  cairo_t *ctx = context->context();
+
+  Nan::Utf8String str(Nan::To<String>(info[0]).ToLocalChecked());
+  Local<Object> obj = Nan::New<Object>();
+
+  PangoRectangle _ink_rect, _logical_rect;
+  float_rectangle ink_rect, logical_rect;
+  PangoFontMetrics *metrics;
+  PangoLayout *layout = context->layout();
+
+  pango_layout_set_text(layout, *str, -1);
+  pango_cairo_update_layout(ctx, layout);
+
+  // Normally you could use pango_layout_get_pixel_extents and be done, or use
+  // pango_extents_to_pixels, but both of those round the pixels, so we have to
+  // divide by PANGO_SCALE manually
+  pango_layout_get_extents(layout, &_ink_rect, &_logical_rect);
+
+  float inverse_pango_scale = 1. / PANGO_SCALE;
+
+  logical_rect.x = _logical_rect.x * inverse_pango_scale;
+  logical_rect.y = _logical_rect.y * inverse_pango_scale;
+  logical_rect.width = _logical_rect.width * inverse_pango_scale;
+  logical_rect.height = _logical_rect.height * inverse_pango_scale;
+
+  ink_rect.x = _ink_rect.x * inverse_pango_scale;
+  ink_rect.y = _ink_rect.y * inverse_pango_scale;
+  ink_rect.width = _ink_rect.width * inverse_pango_scale;
+  ink_rect.height = _ink_rect.height * inverse_pango_scale;
+
+  metrics = PANGO_LAYOUT_GET_METRICS(layout);
+
+  double x_offset;
+  switch (context->state->textAlignment) {
+    case TEXT_ALIGNMENT_CENTER:
+      x_offset = logical_rect.width / 2.;
+      break;
+    case TEXT_ALIGNMENT_END:
+    case TEXT_ALIGNMENT_RIGHT:
+      x_offset = logical_rect.width;
+      break;
+    case TEXT_ALIGNMENT_START:
+    case TEXT_ALIGNMENT_LEFT:
+    default:
+      x_offset = 0.0;
+  }
+
+  cairo_matrix_t matrix;
+  cairo_get_matrix(ctx, &matrix);
+  double y_offset = getBaselineAdjustment(layout, context->state->textBaseline);
+
+  Nan::Set(obj,
+           Nan::New<String>("width").ToLocalChecked(),
+           Nan::New<Number>(logical_rect.width)).Check();
+  Nan::Set(obj,
+           Nan::New<String>("actualBoundingBoxLeft").ToLocalChecked(),
+           Nan::New<Number>(PANGO_LBEARING(ink_rect) + x_offset)).Check();
+  Nan::Set(obj,
+           Nan::New<String>("actualBoundingBoxRight").ToLocalChecked(),
+           Nan::New<Number>(PANGO_RBEARING(ink_rect) - x_offset)).Check();
+  Nan::Set(obj,
+           Nan::New<String>("actualBoundingBoxAscent").ToLocalChecked(),
+           Nan::New<Number>(y_offset + PANGO_ASCENT(ink_rect))).Check();
+  Nan::Set(obj,
+           Nan::New<String>("actualBoundingBoxDescent").ToLocalChecked(),
+           Nan::New<Number>(PANGO_DESCENT(ink_rect) - y_offset)).Check();
+  Nan::Set(obj,
+           Nan::New<String>("emHeightAscent").ToLocalChecked(),
+           Nan::New<Number>(-(PANGO_ASCENT(logical_rect) - y_offset))).Check();
+  Nan::Set(obj,
+           Nan::New<String>("emHeightDescent").ToLocalChecked(),
+           Nan::New<Number>(PANGO_DESCENT(logical_rect) - y_offset)).Check();
+  Nan::Set(obj,
+           Nan::New<String>("alphabeticBaseline").ToLocalChecked(),
+           Nan::New<Number>(-(pango_font_metrics_get_ascent(metrics) * inverse_pango_scale - y_offset))).Check();
+
+  pango_font_metrics_unref(metrics);
+
+  info.GetReturnValue().Set(obj);
+}
+
+/*
+ * Set line dash
+ * ref: http://www.w3.org/TR/2dcontext/#dom-context-2d-setlinedash
+ */
+
+NAN_METHOD(Context2d::SetLineDash) {
+  if (!info[0]->IsArray()) return;
+  Local<Array> dash = Local<Array>::Cast(info[0]);
+  uint32_t dashes = dash->Length() & 1 ? dash->Length() * 2 : dash->Length();
+  uint32_t zero_dashes = 0;
+  std::vector<double> a(dashes);
+  for (uint32_t i=0; i<dashes; i++) {
+    Local<Value> d = Nan::Get(dash, i % dash->Length()).ToLocalChecked();
+    if (!d->IsNumber()) return;
+    a[i] = Nan::To<double>(d).FromMaybe(0);
+    if (a[i] == 0) zero_dashes++;
+    if (a[i] < 0 || !std::isfinite(a[i])) return;
+  }
+
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  cairo_t *ctx = context->context();
+  double offset;
+  cairo_get_dash(ctx, NULL, &offset);
+  if (zero_dashes == dashes) {
+    std::vector<double> b(0);
+    cairo_set_dash(ctx, b.data(), 0, offset);
+  } else {
+    cairo_set_dash(ctx, a.data(), dashes, offset);
+  }
+}
+
+/*
+ * Get line dash
+ * ref: http://www.w3.org/TR/2dcontext/#dom-context-2d-setlinedash
+ */
+NAN_METHOD(Context2d::GetLineDash) {
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  cairo_t *ctx = context->context();
+  int dashes = cairo_get_dash_count(ctx);
+  std::vector<double> a(dashes);
+  cairo_get_dash(ctx, a.data(), NULL);
+
+  Local<Array> dash = Nan::New<Array>(dashes);
+  for (int i=0; i<dashes; i++) {
+    Nan::Set(dash, Nan::New<Number>(i), Nan::New<Number>(a[i])).Check();
+  }
+
+  info.GetReturnValue().Set(dash);
+}
+
+/*
+ * Set line dash offset
+ * ref: http://www.w3.org/TR/2dcontext/#dom-context-2d-setlinedash
+ */
+NAN_SETTER(Context2d::SetLineDashOffset) {
+  CHECK_RECEIVER(Context2d.SetLineDashOffset);
+  double offset = Nan::To<double>(value).FromMaybe(0);
+  if (!std::isfinite(offset)) return;
+
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  cairo_t *ctx = context->context();
+
+  int dashes = cairo_get_dash_count(ctx);
+  std::vector<double> a(dashes);
+  cairo_get_dash(ctx, a.data(), NULL);
+  cairo_set_dash(ctx, a.data(), dashes, offset);
+}
+
+/*
+ * Get line dash offset
+ * ref: http://www.w3.org/TR/2dcontext/#dom-context-2d-setlinedash
+ */
+NAN_GETTER(Context2d::GetLineDashOffset) {
+  CHECK_RECEIVER(Context2d.GetLineDashOffset);
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  cairo_t *ctx = context->context();
+  double offset;
+  cairo_get_dash(ctx, NULL, &offset);
+
+  info.GetReturnValue().Set(Nan::New<Number>(offset));
+}
+
+/*
+ * Fill the rectangle defined by x, y, width and height.
+ */
+
+NAN_METHOD(Context2d::FillRect) {
+  RECT_ARGS;
+  if (0 == width || 0 == height) return;
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  cairo_t *ctx = context->context();
+  context->savePath();
+  cairo_rectangle(ctx, x, y, width, height);
+  context->fill();
+  context->restorePath();
+}
+
+/*
+ * Stroke the rectangle defined by x, y, width and height.
+ */
+
+NAN_METHOD(Context2d::StrokeRect) {
+  RECT_ARGS;
+  if (0 == width && 0 == height) return;
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  cairo_t *ctx = context->context();
+  context->savePath();
+  cairo_rectangle(ctx, x, y, width, height);
+  context->stroke();
+  context->restorePath();
+}
+
+/*
+ * Clears all pixels defined by x, y, width and height.
+ */
+
+NAN_METHOD(Context2d::ClearRect) {
+  RECT_ARGS;
+  if (0 == width || 0 == height) return;
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  cairo_t *ctx = context->context();
+  cairo_save(ctx);
+  context->savePath();
+  cairo_rectangle(ctx, x, y, width, height);
+  cairo_set_operator(ctx, CAIRO_OPERATOR_CLEAR);
+  cairo_fill(ctx);
+  context->restorePath();
+  cairo_restore(ctx);
+}
+
+/*
+ * Adds a rectangle subpath.
+ */
+
+NAN_METHOD(Context2d::Rect) {
+  RECT_ARGS;
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  cairo_t *ctx = context->context();
+  if (width == 0) {
+    cairo_move_to(ctx, x, y);
+    cairo_line_to(ctx, x, y + height);
+  } else if (height == 0) {
+    cairo_move_to(ctx, x, y);
+    cairo_line_to(ctx, x + width, y);
+  } else {
+    cairo_rectangle(ctx, x, y, width, height);
+  }
+}
+
+// Draws an arc with two potentially different radii.
+inline static
+void elli_arc(cairo_t* ctx, double xc, double yc, double rx, double ry, double a1, double a2, bool clockwise=true) {
+  if (rx == 0. || ry == 0.) {
+    cairo_line_to(ctx, xc + rx, yc + ry);
+  } else {
+    cairo_save(ctx);
+    cairo_translate(ctx, xc, yc);
+    cairo_scale(ctx, rx, ry);
+    if (clockwise)
+      cairo_arc(ctx, 0., 0., 1., a1, a2);
+    else
+      cairo_arc_negative(ctx, 0., 0., 1., a2, a1);
+    cairo_restore(ctx);
+  }
+}
+
+inline static
+bool getRadius(Point<double>& p, const Local<Value>& v) {
+  if (v->IsObject()) { // 5.1 DOMPointInit
+    auto rx = Nan::Get(v.As<Object>(), Nan::New("x").ToLocalChecked()).ToLocalChecked();
+    auto ry = Nan::Get(v.As<Object>(), Nan::New("y").ToLocalChecked()).ToLocalChecked();
+    if (rx->IsNumber() && ry->IsNumber()) {
+      auto rxv = Nan::To<double>(rx).FromJust();
+      auto ryv = Nan::To<double>(ry).FromJust();
+      if (!std::isfinite(rxv) || !std::isfinite(ryv))
+        return true;
+      if (rxv < 0 || ryv < 0) {
+        Nan::ThrowRangeError("radii must be positive.");
+        return true;
+      }
+      p.x = rxv;
+      p.y = ryv;
+      return false;
+    }
+  } else if (v->IsNumber()) { // 5.2 unrestricted double
+    auto rv = Nan::To<double>(v).FromJust();
+    if (!std::isfinite(rv))
+      return true;
+    if (rv < 0) {
+      Nan::ThrowRangeError("radii must be positive.");
+      return true;
+    }
+    p.x = p.y = rv;
+    return false;
+  }
+  return true;
+}
+
+/**
+ * https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-roundrect
+ * x, y, w, h, [radius|[radii]]
+ */
+NAN_METHOD(Context2d::RoundRect) {
+  RECT_ARGS;
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  cairo_t *ctx = context->context();
+
+  // 4. Let normalizedRadii be an empty list
+  Point<double> normalizedRadii[4];
+  size_t nRadii = 4;
+
+  if (info[4]->IsUndefined()) {
+    for (size_t i = 0; i < 4; i++)
+      normalizedRadii[i].x = normalizedRadii[i].y = 0.;
+
+  } else if (info[4]->IsArray()) {
+    auto radiiList = info[4].As<v8::Array>();
+    nRadii = radiiList->Length();
+    if (!(nRadii >= 1 && nRadii <= 4)) {
+      Nan::ThrowRangeError("radii must be a list of one, two, three or four radii.");
+      return;
+    }
+    // 5. For each radius of radii
+    for (size_t i = 0; i < nRadii; i++) {
+      auto r = Nan::Get(radiiList, i).ToLocalChecked();
+      if (getRadius(normalizedRadii[i], r))
+        return;
+    }
+
+  } else {
+    // 2. If radii is a double, then set radii to <<radii>>
+    if (getRadius(normalizedRadii[0], info[4]))
+      return;
+    for (size_t i = 1; i < 4; i++) {
+      normalizedRadii[i].x = normalizedRadii[0].x;
+      normalizedRadii[i].y = normalizedRadii[0].y;
+    }
+  }
+
+  Point<double> upperLeft, upperRight, lowerRight, lowerLeft;
+  if (nRadii == 4) {
+    upperLeft = normalizedRadii[0];
+    upperRight = normalizedRadii[1];
+    lowerRight = normalizedRadii[2];
+    lowerLeft = normalizedRadii[3];
+  } else if (nRadii == 3) {
+    upperLeft = normalizedRadii[0];
+    upperRight = normalizedRadii[1];
+    lowerLeft = normalizedRadii[1];
+    lowerRight = normalizedRadii[2];
+  } else if (nRadii == 2) {
+    upperLeft = normalizedRadii[0];
+    lowerRight = normalizedRadii[0];
+    upperRight = normalizedRadii[1];
+    lowerLeft = normalizedRadii[1];
+  } else {
+    upperLeft = normalizedRadii[0];
+    upperRight = normalizedRadii[0];
+    lowerRight = normalizedRadii[0];
+    lowerLeft = normalizedRadii[0];
+  }
+
+  bool clockwise = true;
+  if (width < 0) {
+    clockwise = false;
+    x += width;
+    width = -width;
+    std::swap(upperLeft, upperRight);
+    std::swap(lowerLeft, lowerRight);
+  }
+
+  if (height < 0) {
+    clockwise = !clockwise;
+    y += height;
+    height = -height;
+    std::swap(upperLeft, lowerLeft);
+    std::swap(upperRight, lowerRight);
+  }
+
+  // 11. Corner curves must not overlap. Scale radii to prevent this.
+  {
+    auto top = upperLeft.x + upperRight.x;
+    auto right = upperRight.y + lowerRight.y;
+    auto bottom = lowerRight.x + lowerLeft.x;
+    auto left = upperLeft.y + lowerLeft.y;
+    auto scale = std::min({ width / top, height / right, width / bottom, height / left });
+    if (scale < 1.) {
+      upperLeft.x *= scale;
+      upperLeft.y *= scale;
+      upperRight.x *= scale;
+      upperRight.x *= scale;
+      lowerLeft.y *= scale;
+      lowerLeft.y *= scale;
+      lowerRight.y *= scale;
+      lowerRight.y *= scale;
+    }
+  }
+
+  // 12. Draw
+  cairo_move_to(ctx, x + upperLeft.x, y);
+  if (clockwise) {
+    cairo_line_to(ctx, x + width - upperRight.x, y);
+    elli_arc(ctx, x + width - upperRight.x, y + upperRight.y, upperRight.x, upperRight.y, 3. * M_PI / 2., 0.);
+    cairo_line_to(ctx, x + width, y + height - lowerRight.y);
+    elli_arc(ctx, x + width - lowerRight.x, y + height - lowerRight.y, lowerRight.x, lowerRight.y, 0, M_PI / 2.);
+    cairo_line_to(ctx, x + lowerLeft.x, y + height);
+    elli_arc(ctx, x + lowerLeft.x, y + height - lowerLeft.y, lowerLeft.x, lowerLeft.y, M_PI / 2., M_PI);
+    cairo_line_to(ctx, x, y + upperLeft.y);
+    elli_arc(ctx, x + upperLeft.x, y + upperLeft.y, upperLeft.x, upperLeft.y, M_PI, 3. * M_PI / 2.);
+  } else {
+    elli_arc(ctx, x + upperLeft.x, y + upperLeft.y, upperLeft.x, upperLeft.y, M_PI, 3. * M_PI / 2., false);
+    cairo_line_to(ctx, x, y + upperLeft.y);
+    elli_arc(ctx, x + lowerLeft.x, y + height - lowerLeft.y, lowerLeft.x, lowerLeft.y, M_PI / 2., M_PI, false);
+    cairo_line_to(ctx, x + lowerLeft.x, y + height);
+    elli_arc(ctx, x + width - lowerRight.x, y + height - lowerRight.y, lowerRight.x, lowerRight.y, 0, M_PI / 2., false);
+    cairo_line_to(ctx, x + width, y + height - lowerRight.y);
+    elli_arc(ctx, x + width - upperRight.x, y + upperRight.y, upperRight.x, upperRight.y, 3. * M_PI / 2., 0., false);
+    cairo_line_to(ctx, x + width - upperRight.x, y);
+  }
+  cairo_close_path(ctx);
+}
+
+// Adapted from https://chromium.googlesource.com/chromium/blink/+/refs/heads/main/Source/modules/canvas2d/CanvasPathMethods.cpp
+static void canonicalizeAngle(double& startAngle, double& endAngle) {
+  // Make 0 <= startAngle < 2*PI
+  double newStartAngle = std::fmod(startAngle, twoPi);
+  if (newStartAngle < 0) {
+      newStartAngle += twoPi;
+      // Check for possible catastrophic cancellation in cases where
+      // newStartAngle was a tiny negative number (c.f. crbug.com/503422)
+      if (newStartAngle >= twoPi)
+          newStartAngle -= twoPi;
+  }
+  double delta = newStartAngle - startAngle;
+  startAngle = newStartAngle;
+  endAngle = endAngle + delta;
+}
+
+// Adapted from https://chromium.googlesource.com/chromium/blink/+/refs/heads/main/Source/modules/canvas2d/CanvasPathMethods.cpp
+static double adjustEndAngle(double startAngle, double endAngle, bool counterclockwise) {
+  double newEndAngle = endAngle;
+  /* http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#dom-context-2d-arc
+  * If the counterclockwise argument is false and endAngle-startAngle is equal to or greater than 2pi, or,
+  * if the counterclockwise argument is true and startAngle-endAngle is equal to or greater than 2pi,
+  * then the arc is the whole circumference of this ellipse, and the point at startAngle along this circle's circumference,
+  * measured in radians clockwise from the ellipse's semi-major axis, acts as both the start point and the end point.
+  */
+  if (!counterclockwise && endAngle - startAngle >= twoPi)
+    newEndAngle = startAngle + twoPi;
+  else if (counterclockwise && startAngle - endAngle >= twoPi)
+    newEndAngle = startAngle - twoPi;
+  /*
+  * Otherwise, the arc is the path along the circumference of this ellipse from the start point to the end point,
+  * going anti-clockwise if the counterclockwise argument is true, and clockwise otherwise.
+  * Since the points are on the ellipse, as opposed to being simply angles from zero,
+  * the arc can never cover an angle greater than 2pi radians.
+  */
+  /* NOTE: When startAngle = 0, endAngle = 2Pi and counterclockwise = true, the spec does not indicate clearly.
+  * We draw the entire circle, because some web sites use arc(x, y, r, 0, 2*Math.PI, true) to draw circle.
+  * We preserve backward-compatibility.
+  */
+  else if (!counterclockwise && startAngle > endAngle)
+    newEndAngle = startAngle + (twoPi - std::fmod(startAngle - endAngle, twoPi));
+  else if (counterclockwise && startAngle < endAngle)
+    newEndAngle = startAngle - (twoPi - std::fmod(endAngle - startAngle, twoPi));
+  return newEndAngle;
+}
+
+/*
+ * Adds an arc at x, y with the given radii and start/end angles.
+ */
+
+NAN_METHOD(Context2d::Arc) {
+  double args[5];
+  if(!checkArgs(info, args, 5))
+    return;
+
+  auto x = args[0];
+  auto y = args[1];
+  auto radius = args[2];
+  auto startAngle = args[3];
+  auto endAngle = args[4];
+
+  if (radius < 0) {
+    Nan::ThrowRangeError("The radius provided is negative.");
+    return;
+  }
+
+  bool counterclockwise = Nan::To<bool>(info[5]).FromMaybe(false);
+
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  cairo_t *ctx = context->context();
+
+  canonicalizeAngle(startAngle, endAngle);
+  endAngle = adjustEndAngle(startAngle, endAngle, counterclockwise);
+
+  if (counterclockwise) {
+    cairo_arc_negative(ctx, x, y, radius, startAngle, endAngle);
+  } else {
+    cairo_arc(ctx, x, y, radius, startAngle, endAngle);
+  }
+}
+
+/*
+ * Adds an arcTo point (x0,y0) to (x1,y1) with the given radius.
+ *
+ * Implementation influenced by WebKit.
+ */
+
+NAN_METHOD(Context2d::ArcTo) {
+  double args[5];
+  if(!checkArgs(info, args, 5))
+    return;
+
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  cairo_t *ctx = context->context();
+
+  // Current path point
+  double x, y;
+  cairo_get_current_point(ctx, &x, &y);
+  Point<float> p0(x, y);
+
+  // Point (x0,y0)
+  Point<float> p1(args[0], args[1]);
+
+  // Point (x1,y1)
+  Point<float> p2(args[2], args[3]);
+
+  float radius = args[4];
+
+  if ((p1.x == p0.x && p1.y == p0.y)
+    || (p1.x == p2.x && p1.y == p2.y)
+    || radius == 0.f) {
+    cairo_line_to(ctx, p1.x, p1.y);
+    return;
+  }
+
+  Point<float> p1p0((p0.x - p1.x),(p0.y - p1.y));
+  Point<float> p1p2((p2.x - p1.x),(p2.y - p1.y));
+  float p1p0_length = sqrtf(p1p0.x * p1p0.x + p1p0.y * p1p0.y);
+  float p1p2_length = sqrtf(p1p2.x * p1p2.x + p1p2.y * p1p2.y);
+
+  double cos_phi = (p1p0.x * p1p2.x + p1p0.y * p1p2.y) / (p1p0_length * p1p2_length);
+  // all points on a line logic
+  if (-1 == cos_phi) {
+    cairo_line_to(ctx, p1.x, p1.y);
+    return;
+  }
+
+  if (1 == cos_phi) {
+    // add infinite far away point
+    unsigned int max_length = 65535;
+    double factor_max = max_length / p1p0_length;
+    Point<float> ep((p0.x + factor_max * p1p0.x), (p0.y + factor_max * p1p0.y));
+    cairo_line_to(ctx, ep.x, ep.y);
+    return;
+  }
+
+  float tangent = radius / tan(acos(cos_phi) / 2);
+  float factor_p1p0 = tangent / p1p0_length;
+  Point<float> t_p1p0((p1.x + factor_p1p0 * p1p0.x), (p1.y + factor_p1p0 * p1p0.y));
+
+  Point<float> orth_p1p0(p1p0.y, -p1p0.x);
+  float orth_p1p0_length = sqrt(orth_p1p0.x * orth_p1p0.x + orth_p1p0.y * orth_p1p0.y);
+  float factor_ra = radius / orth_p1p0_length;
+
+  double cos_alpha = (orth_p1p0.x * p1p2.x + orth_p1p0.y * p1p2.y) / (orth_p1p0_length * p1p2_length);
+  if (cos_alpha < 0.f)
+      orth_p1p0 = Point<float>(-orth_p1p0.x, -orth_p1p0.y);
+
+  Point<float> p((t_p1p0.x + factor_ra * orth_p1p0.x), (t_p1p0.y + factor_ra * orth_p1p0.y));
+
+  orth_p1p0 = Point<float>(-orth_p1p0.x, -orth_p1p0.y);
+  float sa = acos(orth_p1p0.x / orth_p1p0_length);
+  if (orth_p1p0.y < 0.f)
+      sa = 2 * M_PI - sa;
+
+  bool anticlockwise = false;
+
+  float factor_p1p2 = tangent / p1p2_length;
+  Point<float> t_p1p2((p1.x + factor_p1p2 * p1p2.x), (p1.y + factor_p1p2 * p1p2.y));
+  Point<float> orth_p1p2((t_p1p2.x - p.x),(t_p1p2.y - p.y));
+  float orth_p1p2_length = sqrtf(orth_p1p2.x * orth_p1p2.x + orth_p1p2.y * orth_p1p2.y);
+  float ea = acos(orth_p1p2.x / orth_p1p2_length);
+
+  if (orth_p1p2.y < 0) ea = 2 * M_PI - ea;
+  if ((sa > ea) && ((sa - ea) < M_PI)) anticlockwise = true;
+  if ((sa < ea) && ((ea - sa) > M_PI)) anticlockwise = true;
+
+  cairo_line_to(ctx, t_p1p0.x, t_p1p0.y);
+
+  if (anticlockwise && M_PI * 2 != radius) {
+    cairo_arc_negative(ctx
+      , p.x
+      , p.y
+      , radius
+      , sa
+      , ea);
+  } else {
+    cairo_arc(ctx
+      , p.x
+      , p.y
+      , radius
+      , sa
+      , ea);
+  }
+}
+
+/*
+ * Adds an ellipse to the path which is centered at (x, y) position with the
+ * radii radiusX and radiusY starting at startAngle and ending at endAngle
+ * going in the given direction by anticlockwise (defaulting to clockwise).
+ */
+
+NAN_METHOD(Context2d::Ellipse) {
+  double args[7];
+  if(!checkArgs(info, args, 7))
+    return;
+
+  double radiusX = args[2];
+  double radiusY = args[3];
+
+  if (radiusX == 0 || radiusY == 0) return;
+
+  double x = args[0];
+  double y = args[1];
+  double rotation = args[4];
+  double startAngle = args[5];
+  double endAngle = args[6];
+  bool anticlockwise = Nan::To<bool>(info[7]).FromMaybe(false);
+
+  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+  cairo_t *ctx = context->context();
+
+  // See https://www.cairographics.org/cookbook/ellipses/
+  double xRatio = radiusX / radiusY;
+
+  cairo_matrix_t save_matrix;
+  cairo_get_matrix(ctx, &save_matrix);
+  cairo_translate(ctx, x, y);
+  cairo_rotate(ctx, rotation);
+  cairo_scale(ctx, xRatio, 1.0);
+  cairo_translate(ctx, -x, -y);
+  if (anticlockwise && M_PI * 2 != args[4]) {
+    cairo_arc_negative(ctx,
+      x,
+      y,
+      radiusY,
+      startAngle,
+      endAngle);
+  } else {
+    cairo_arc(ctx,
+      x,
+      y,
+      radiusY,
+      startAngle,
+      endAngle);
+  }
+  cairo_set_matrix(ctx, &save_matrix);
+}
+
+#undef CHECK_RECEIVER
diff --git a/node_modules/canvas/src/CanvasRenderingContext2d.cc.orig b/node_modules/canvas/src/CanvasRenderingContext2d.cc.orig
new file mode 100644
index 0000000..6dbc727
--- /dev/null
+++ b/node_modules/canvas/src/CanvasRenderingContext2d.cc.orig
@@ -0,0 +1,3381 @@
+// Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+
+#include "CanvasRenderingContext2d.h"
+
+#include <algorithm>
+#include "backend/ImageBackend.h"
+#include <cairo-pdf.h>
+#include "Canvas.h"
+#include "CanvasGradient.h"
+#include "CanvasPattern.h"
+#include <cmath>
+#include <cstdlib>
+#include "Image.h"
+#include "ImageData.h"
+#include <limits>
+#include <map>
+#include "Point.h"
+#include <string>
+#include "Util.h"
+#include <vector>
+
+using namespace Napi;
+
+Napi::FunctionReference Context2d::constructor;
+
+/*
+ * Rectangle arg assertions.
+ */
+
+#define RECT_ARGS \
+  double args[4]; \
+  if(!checkArgs(info, args, 4)) \
+    return; \
+  double x = args[0]; \
+  double y = args[1]; \
+  double width = args[2]; \
+  double height = args[3];
+
+#define CHECK_RECEIVER(prop) \
+  if (!Context2d::constructor.Get(info.GetIsolate())->HasInstance(info.This())) { \
+    Napi::TypeError::New(env, "Method " #prop " called on incompatible receiver").ThrowAsJavaScriptException();
+ \
+    return; \
+  }
+
+constexpr double twoPi = M_PI * 2.;
+
+/*
+ * Simple helper macro for a rather verbose function call.
+ */
+
+#define PANGO_LAYOUT_GET_METRICS(LAYOUT) pango_context_get_metrics( \
+   pango_layout_get_context(LAYOUT), \
+   pango_layout_get_font_description(LAYOUT), \
+   pango_context_get_language(pango_layout_get_context(LAYOUT)))
+
+inline static bool checkArgs(const Napi::CallbackInfo&info, double *args, int argsNum, int offset = 0){
+  int argsEnd = offset + argsNum;
+  bool areArgsValid = true;
+
+  for (int i = offset; i < argsEnd; i++) {
+    double val = info[i].As<Napi::Number>().DoubleValue().FromMaybe(0);
+
+    if (areArgsValid) {
+      if (!std::isfinite(val)) {
+        // We should continue the loop instead of returning immediately
+        // See https://html.spec.whatwg.org/multipage/canvas.html
+
+        areArgsValid = false;
+        continue;
+      }
+
+      args[i - offset] = val;
+    }
+  }
+
+  return areArgsValid;
+}
+
+Napi::FunctionReference Context2d::_DOMMatrix;
+Napi::FunctionReference Context2d::_parseFont;
+
+/*
+ * Initialize Context2d.
+ */
+
+void
+Context2d::Initialize(Napi::Env& env, Napi::Object& target) {
+  Napi::HandleScope scope(env);
+
+  // Constructor
+  Napi::FunctionReference ctor = Napi::Function::New(env, Context2d::New);
+  constructor.Reset(ctor);
+
+  ctor->SetClassName(Napi::String::New(env, "CanvasRenderingContext2D"));
+
+  // Prototype
+  Local<ObjectTemplate> proto = ctor->PrototypeTemplate();
+  InstanceMethod("drawImage", &DrawImage),
+  InstanceMethod("putImageData", &PutImageData),
+  InstanceMethod("getImageData", &GetImageData),
+  InstanceMethod("createImageData", &CreateImageData),
+  InstanceMethod("addPage", &AddPage),
+  InstanceMethod("save", &Save),
+  InstanceMethod("restore", &Restore),
+  InstanceMethod("rotate", &Rotate),
+  InstanceMethod("translate", &Translate),
+  InstanceMethod("transform", &Transform),
+  InstanceMethod("getTransform", &GetTransform),
+  InstanceMethod("resetTransform", &ResetTransform),
+  InstanceMethod("setTransform", &SetTransform),
+  InstanceMethod("isPointInPath", &IsPointInPath),
+  InstanceMethod("scale", &Scale),
+  InstanceMethod("clip", &Clip),
+  InstanceMethod("fill", &Fill),
+  InstanceMethod("stroke", &Stroke),
+  InstanceMethod("fillText", &FillText),
+  InstanceMethod("strokeText", &StrokeText),
+  InstanceMethod("fillRect", &FillRect),
+  InstanceMethod("strokeRect", &StrokeRect),
+  InstanceMethod("clearRect", &ClearRect),
+  InstanceMethod("rect", &Rect),
+  InstanceMethod("roundRect", &RoundRect),
+  InstanceMethod("measureText", &MeasureText),
+  InstanceMethod("moveTo", &MoveTo),
+  InstanceMethod("lineTo", &LineTo),
+  InstanceMethod("bezierCurveTo", &BezierCurveTo),
+  InstanceMethod("quadraticCurveTo", &QuadraticCurveTo),
+  InstanceMethod("beginPath", &BeginPath),
+  InstanceMethod("closePath", &ClosePath),
+  InstanceMethod("arc", &Arc),
+  InstanceMethod("arcTo", &ArcTo),
+  InstanceMethod("ellipse", &Ellipse),
+  InstanceMethod("setLineDash", &SetLineDash),
+  InstanceMethod("getLineDash", &GetLineDash),
+  InstanceMethod("createPattern", &CreatePattern),
+  InstanceMethod("createLinearGradient", &CreateLinearGradient),
+  InstanceMethod("createRadialGradient", &CreateRadialGradient),
+  Napi::SetAccessor(proto, Napi::String::New(env, "pixelFormat"), GetFormat);
+  Napi::SetAccessor(proto, Napi::String::New(env, "patternQuality"), GetPatternQuality, SetPatternQuality);
+  Napi::SetAccessor(proto, Napi::String::New(env, "imageSmoothingEnabled"), GetImageSmoothingEnabled, SetImageSmoothingEnabled);
+  Napi::SetAccessor(proto, Napi::String::New(env, "globalCompositeOperation"), GetGlobalCompositeOperation, SetGlobalCompositeOperation);
+  Napi::SetAccessor(proto, Napi::String::New(env, "globalAlpha"), GetGlobalAlpha, SetGlobalAlpha);
+  Napi::SetAccessor(proto, Napi::String::New(env, "shadowColor"), GetShadowColor, SetShadowColor);
+  Napi::SetAccessor(proto, Napi::String::New(env, "miterLimit"), GetMiterLimit, SetMiterLimit);
+  Napi::SetAccessor(proto, Napi::String::New(env, "lineWidth"), GetLineWidth, SetLineWidth);
+  Napi::SetAccessor(proto, Napi::String::New(env, "lineCap"), GetLineCap, SetLineCap);
+  Napi::SetAccessor(proto, Napi::String::New(env, "lineJoin"), GetLineJoin, SetLineJoin);
+  Napi::SetAccessor(proto, Napi::String::New(env, "lineDashOffset"), GetLineDashOffset, SetLineDashOffset);
+  Napi::SetAccessor(proto, Napi::String::New(env, "shadowOffsetX"), GetShadowOffsetX, SetShadowOffsetX);
+  Napi::SetAccessor(proto, Napi::String::New(env, "shadowOffsetY"), GetShadowOffsetY, SetShadowOffsetY);
+  Napi::SetAccessor(proto, Napi::String::New(env, "shadowBlur"), GetShadowBlur, SetShadowBlur);
+  Napi::SetAccessor(proto, Napi::String::New(env, "antialias"), GetAntiAlias, SetAntiAlias);
+  Napi::SetAccessor(proto, Napi::String::New(env, "textDrawingMode"), GetTextDrawingMode, SetTextDrawingMode);
+  Napi::SetAccessor(proto, Napi::String::New(env, "quality"), GetQuality, SetQuality);
+  Napi::SetAccessor(proto, Napi::String::New(env, "currentTransform"), GetCurrentTransform, SetCurrentTransform);
+  Napi::SetAccessor(proto, Napi::String::New(env, "fillStyle"), GetFillStyle, SetFillStyle);
+  Napi::SetAccessor(proto, Napi::String::New(env, "strokeStyle"), GetStrokeStyle, SetStrokeStyle);
+  Napi::SetAccessor(proto, Napi::String::New(env, "font"), GetFont, SetFont);
+  Napi::SetAccessor(proto, Napi::String::New(env, "textBaseline"), GetTextBaseline, SetTextBaseline);
+  Napi::SetAccessor(proto, Napi::String::New(env, "textAlign"), GetTextAlign, SetTextAlign);
+  Local<Context> ctx = Napi::GetCurrentContext();
+  (target).Set(Napi::String::New(env, "CanvasRenderingContext2d"), ctor->GetFunction(ctx));
+  (target).Set(Napi::String::New(env, "CanvasRenderingContext2dInit"), Napi::Function::New(env, SaveExternalModules));
+}
+
+/*
+ * Create a cairo context.
+ */
+
+Context2d::Context2d(Canvas *canvas) {
+  _canvas = canvas;
+  _context = canvas->createCairoContext();
+  _layout = pango_cairo_create_layout(_context);
+
+  // As of January 2023, Pango rounds glyph positions which renders text wider
+  // or narrower than the browser. See #2184 for more information
+#if PANGO_VERSION_CHECK(1, 44, 0)
+  pango_context_set_round_glyph_positions(pango_layout_get_context(_layout), FALSE);
+#endif
+
+  states.emplace();
+  state = &states.top();
+  pango_layout_set_font_description(_layout, state->fontDescription);
+}
+
+/*
+ * Destroy cairo context.
+ */
+
+Context2d::~Context2d() {
+  g_object_unref(_layout);
+  cairo_destroy(_context);
+  _resetPersistentHandles();
+}
+
+/*
+ * Reset canvas state.
+ */
+
+void Context2d::resetState() {
+  states.pop();
+  states.emplace();
+  pango_layout_set_font_description(_layout, state->fontDescription);
+  _resetPersistentHandles();
+}
+
+void Context2d::_resetPersistentHandles() {
+  _fillStyle.Reset();
+  _strokeStyle.Reset();
+}
+
+/*
+ * Save cairo / canvas state.
+ */
+
+void
+Context2d::save() {
+  cairo_save(_context);
+  states.emplace(states.top());
+  state = &states.top();
+}
+
+/*
+ * Restore cairo / canvas state.
+ */
+
+void
+Context2d::restore() {
+  if (states.size() > 1) {
+    cairo_restore(_context);
+    states.pop();
+    state = &states.top();
+    pango_layout_set_font_description(_layout, state->fontDescription);
+  }
+}
+
+/*
+ * Save flat path.
+ */
+
+void
+Context2d::savePath() {
+  _path = cairo_copy_path_flat(_context);
+  cairo_new_path(_context);
+}
+
+/*
+ * Restore flat path.
+ */
+
+void
+Context2d::restorePath() {
+  cairo_new_path(_context);
+  cairo_append_path(_context, _path);
+  cairo_path_destroy(_path);
+}
+
+/*
+ * Create temporary surface for gradient or pattern transparency
+ */
+cairo_pattern_t*
+create_transparent_gradient(cairo_pattern_t *source, float alpha) {
+  double x0;
+  double y0;
+  double x1;
+  double y1;
+  double r0;
+  double r1;
+  int count;
+  int i;
+  double offset;
+  double r;
+  double g;
+  double b;
+  double a;
+  cairo_pattern_t *newGradient;
+  cairo_pattern_type_t type = cairo_pattern_get_type(source);
+  cairo_pattern_get_color_stop_count(source, &count);
+  if (type == CAIRO_PATTERN_TYPE_LINEAR) {
+    cairo_pattern_get_linear_points (source, &x0, &y0, &x1, &y1);
+    newGradient = cairo_pattern_create_linear(x0, y0, x1, y1);
+  } else if (type == CAIRO_PATTERN_TYPE_RADIAL) {
+    cairo_pattern_get_radial_circles(source, &x0, &y0, &r0, &x1, &y1, &r1);
+    newGradient = cairo_pattern_create_radial(x0, y0, r0, x1, y1, r1);
+  } else {
+    Napi::Error::New(env, "Unexpected gradient type").ThrowAsJavaScriptException();
+
+    return NULL;
+  }
+  for ( i = 0; i < count; i++ ) {
+    cairo_pattern_get_color_stop_rgba(source, i, &offset, &r, &g, &b, &a);
+    cairo_pattern_add_color_stop_rgba(newGradient, offset, r, g, b, a * alpha);
+  }
+  return newGradient;
+}
+
+cairo_pattern_t*
+create_transparent_pattern(cairo_pattern_t *source, float alpha) {
+  cairo_surface_t *surface;
+  cairo_pattern_get_surface(source, &surface);
+  int width = cairo_image_surface_get_width(surface);
+  int height = cairo_image_surface_get_height(surface);
+  cairo_surface_t *mask_surface = cairo_image_surface_create(
+    CAIRO_FORMAT_ARGB32,
+    width,
+    height);
+  cairo_t *mask_context = cairo_create(mask_surface);
+  if (cairo_status(mask_context) != CAIRO_STATUS_SUCCESS) {
+    Napi::Error::New(env, "Failed to initialize context").ThrowAsJavaScriptException();
+
+    return NULL;
+  }
+  cairo_set_source(mask_context, source);
+  cairo_paint_with_alpha(mask_context, alpha);
+  cairo_destroy(mask_context);
+  cairo_pattern_t* newPattern = cairo_pattern_create_for_surface(mask_surface);
+  cairo_surface_destroy(mask_surface);
+  return newPattern;
+}
+
+/*
+ * Fill and apply shadow.
+ */
+
+void
+Context2d::setFillRule(Napi::Value value) {
+  Napi::Env env = value.Env();
+  cairo_fill_rule_t rule = CAIRO_FILL_RULE_WINDING;
+  if (value.IsString()) {
+    std::string str = value.As<Napi::String>();
+    if (std::strcmp(*str, "evenodd") == 0) {
+      rule = CAIRO_FILL_RULE_EVEN_ODD;
+    }
+  }
+  cairo_set_fill_rule(_context, rule);
+}
+
+void
+Context2d::fill(bool preserve) {
+  cairo_pattern_t *new_pattern;
+  bool needsRestore = false;
+  if (state->fillPattern) {
+    if (state->globalAlpha < 1) {
+      new_pattern = create_transparent_pattern(state->fillPattern, state->globalAlpha);
+      if (new_pattern == NULL) {
+        // failed to allocate; Napi::ThrowError has already been called, so return from this fn.
+        return;
+      }
+      cairo_set_source(_context, new_pattern);
+      cairo_pattern_destroy(new_pattern);
+    } else {
+      cairo_pattern_set_filter(state->fillPattern, state->patternQuality);
+      cairo_set_source(_context, state->fillPattern);
+    }
+    repeat_type_t repeat = Pattern::get_repeat_type_for_cairo_pattern(state->fillPattern);
+    if (repeat == NO_REPEAT) {
+      cairo_pattern_set_extend(cairo_get_source(_context), CAIRO_EXTEND_NONE);
+    } else if (repeat == REPEAT) {
+      cairo_pattern_set_extend(cairo_get_source(_context), CAIRO_EXTEND_REPEAT);
+    } else {
+      cairo_save(_context);
+      cairo_path_t *savedPath = cairo_copy_path(_context);
+      cairo_surface_t *patternSurface = nullptr;
+      cairo_pattern_get_surface(cairo_get_source(_context), &patternSurface);
+
+      double width, height;
+      if (repeat == REPEAT_X) {
+        double x1, x2;
+        cairo_path_extents(_context, &x1, nullptr, &x2, nullptr);
+        width = x2 - x1;
+        height = cairo_image_surface_get_height(patternSurface);
+      } else {
+        double y1, y2;
+        cairo_path_extents(_context, nullptr, &y1, nullptr, &y2);
+        width = cairo_image_surface_get_width(patternSurface);
+        height = y2 - y1;
+      }
+      
+      cairo_new_path(_context);
+      cairo_rectangle(_context, 0, 0, width, height);
+      cairo_clip(_context);
+      cairo_append_path(_context, savedPath);
+      cairo_path_destroy(savedPath);
+      cairo_pattern_set_extend(cairo_get_source(_context), CAIRO_EXTEND_REPEAT);
+      needsRestore = true;
+    }
+  } else if (state->fillGradient) {
+    if (state->globalAlpha < 1) {
+      new_pattern = create_transparent_gradient(state->fillGradient, state->globalAlpha);
+      if (new_pattern == NULL) {
+        // failed to recognize gradient; Napi::ThrowError has already been called, so return from this fn.
+        return;
+      }
+      cairo_pattern_set_filter(new_pattern, state->patternQuality);
+      cairo_set_source(_context, new_pattern);
+      cairo_pattern_destroy(new_pattern);
+    } else {
+      cairo_pattern_set_filter(state->fillGradient, state->patternQuality);
+      cairo_set_source(_context, state->fillGradient);
+    }
+  } else {
+    setSourceRGBA(state->fill);
+  }
+  if (preserve) {
+    hasShadow()
+      ? shadow(cairo_fill_preserve)
+      : cairo_fill_preserve(_context);
+  } else {
+    hasShadow()
+      ? shadow(cairo_fill)
+      : cairo_fill(_context);
+  }
+  if (needsRestore) {
+    cairo_restore(_context);
+  }
+}
+
+/*
+ * Stroke and apply shadow.
+ */
+
+void
+Context2d::stroke(bool preserve) {
+  cairo_pattern_t *new_pattern;
+  if (state->strokePattern) {
+    if (state->globalAlpha < 1) {
+      new_pattern = create_transparent_pattern(state->strokePattern, state->globalAlpha);
+      if (new_pattern == NULL) {
+        // failed to allocate; Napi::ThrowError has already been called, so return from this fn.
+        return;
+      }
+      cairo_set_source(_context, new_pattern);
+      cairo_pattern_destroy(new_pattern);
+    } else {
+      cairo_pattern_set_filter(state->strokePattern, state->patternQuality);
+      cairo_set_source(_context, state->strokePattern);
+    }
+    repeat_type_t repeat = Pattern::get_repeat_type_for_cairo_pattern(state->strokePattern);
+    if (NO_REPEAT == repeat) {
+      cairo_pattern_set_extend(cairo_get_source(_context), CAIRO_EXTEND_NONE);
+    } else {
+      cairo_pattern_set_extend(cairo_get_source(_context), CAIRO_EXTEND_REPEAT);
+    }
+  } else if (state->strokeGradient) {
+    if (state->globalAlpha < 1) {
+      new_pattern = create_transparent_gradient(state->strokeGradient, state->globalAlpha);
+      if (new_pattern == NULL) {
+        // failed to recognize gradient; Napi::ThrowError has already been called, so return from this fn.
+        return;
+      }
+      cairo_pattern_set_filter(new_pattern, state->patternQuality);
+      cairo_set_source(_context, new_pattern);
+      cairo_pattern_destroy(new_pattern);
+    } else {
+      cairo_pattern_set_filter(state->strokeGradient, state->patternQuality);
+      cairo_set_source(_context, state->strokeGradient);
+    }
+  } else {
+    setSourceRGBA(state->stroke);
+  }
+
+  if (preserve) {
+    hasShadow()
+      ? shadow(cairo_stroke_preserve)
+      : cairo_stroke_preserve(_context);
+  } else {
+    hasShadow()
+      ? shadow(cairo_stroke)
+      : cairo_stroke(_context);
+  }
+}
+
+/*
+ * Apply shadow with the given draw fn.
+ */
+
+void
+Context2d::shadow(void (fn)(cairo_t *cr)) {
+  cairo_path_t *path = cairo_copy_path_flat(_context);
+  cairo_save(_context);
+
+  // shadowOffset is unaffected by current transform
+  cairo_matrix_t path_matrix;
+  cairo_get_matrix(_context, &path_matrix);
+  cairo_identity_matrix(_context);
+
+  // Apply shadow
+  cairo_push_group(_context);
+
+  // No need to invoke blur if shadowBlur is 0
+  if (state->shadowBlur) {
+    // find out extent of path
+    double x1, y1, x2, y2;
+    if (fn == cairo_fill || fn == cairo_fill_preserve) {
+      cairo_fill_extents(_context, &x1, &y1, &x2, &y2);
+    } else {
+      cairo_stroke_extents(_context, &x1, &y1, &x2, &y2);
+    }
+
+    // create new image surface that size + padding for blurring
+    double dx = x2-x1, dy = y2-y1;
+    cairo_user_to_device_distance(_context, &dx, &dy);
+    int pad = state->shadowBlur * 2;
+    cairo_surface_t *shadow_surface = cairo_image_surface_create(
+      CAIRO_FORMAT_ARGB32,
+      dx + 2 * pad,
+      dy + 2 * pad);
+    cairo_t *shadow_context = cairo_create(shadow_surface);
+
+    // transform path to the right place
+    cairo_translate(shadow_context, pad-x1, pad-y1);
+    cairo_transform(shadow_context, &path_matrix);
+
+    // set lineCap lineJoin lineDash
+    cairo_set_line_cap(shadow_context, cairo_get_line_cap(_context));
+    cairo_set_line_join(shadow_context, cairo_get_line_join(_context));
+
+    double offset;
+    int dashes = cairo_get_dash_count(_context);
+    std::vector<double> a(dashes);
+    cairo_get_dash(_context, a.data(), &offset);
+    cairo_set_dash(shadow_context, a.data(), dashes, offset);
+
+    // draw the path and blur
+    cairo_set_line_width(shadow_context, cairo_get_line_width(_context));
+    cairo_new_path(shadow_context);
+    cairo_append_path(shadow_context, path);
+    setSourceRGBA(shadow_context, state->shadow);
+    fn(shadow_context);
+    blur(shadow_surface, state->shadowBlur);
+
+    // paint to original context
+    cairo_set_source_surface(_context, shadow_surface,
+      x1 - pad + state->shadowOffsetX + 1,
+      y1 - pad + state->shadowOffsetY + 1);
+    cairo_paint(_context);
+    cairo_destroy(shadow_context);
+    cairo_surface_destroy(shadow_surface);
+  } else {
+    // Offset first, then apply path's transform
+    cairo_translate(
+        _context
+      , state->shadowOffsetX
+      , state->shadowOffsetY);
+    cairo_transform(_context, &path_matrix);
+
+    // Apply shadow
+    cairo_new_path(_context);
+    cairo_append_path(_context, path);
+    setSourceRGBA(state->shadow);
+
+    fn(_context);
+  }
+
+  // Paint the shadow
+  cairo_pop_group_to_source(_context);
+  cairo_paint(_context);
+
+  // Restore state
+  cairo_restore(_context);
+  cairo_new_path(_context);
+  cairo_append_path(_context, path);
+  fn(_context);
+
+  cairo_path_destroy(path);
+}
+
+/*
+ * Set source RGBA for the current context
+ */
+
+void
+Context2d::setSourceRGBA(rgba_t color) {
+  setSourceRGBA(_context, color);
+}
+
+/*
+ * Set source RGBA
+ */
+
+void
+Context2d::setSourceRGBA(cairo_t *ctx, rgba_t color) {
+  cairo_set_source_rgba(
+      ctx
+    , color.r
+    , color.g
+    , color.b
+    , color.a * state->globalAlpha);
+}
+
+/*
+ * Check if the context has a drawable shadow.
+ */
+
+bool
+Context2d::hasShadow() {
+  return state->shadow.a
+    && (state->shadowBlur || state->shadowOffsetX || state->shadowOffsetY);
+}
+
+/*
+ * Blur the given surface with the given radius.
+ */
+
+void
+Context2d::blur(cairo_surface_t *surface, int radius) {
+  // Steve Hanov, 2009
+  // Released into the public domain.
+  radius = radius * 0.57735f + 0.5f;
+  // get width, height
+  int width = cairo_image_surface_get_width( surface );
+  int height = cairo_image_surface_get_height( surface );
+  unsigned* precalc =
+      (unsigned*)malloc(width*height*sizeof(unsigned));
+  cairo_surface_flush( surface );
+  unsigned char* src = cairo_image_surface_get_data( surface );
+  double mul=1.f/((radius*2)*(radius*2));
+  int channel;
+
+  // The number of times to perform the averaging. According to wikipedia,
+  // three iterations is good enough to pass for a gaussian.
+  const int MAX_ITERATIONS = 3;
+  int iteration;
+
+  for ( iteration = 0; iteration < MAX_ITERATIONS; iteration++ ) {
+      for( channel = 0; channel < 4; channel++ ) {
+          int x,y;
+
+          // precomputation step.
+          unsigned char* pix = src;
+          unsigned* pre = precalc;
+
+          pix += channel;
+          for (y=0;y<height;y++) {
+              for (x=0;x<width;x++) {
+                  int tot=pix[0];
+                  if (x>0) tot+=pre[-1];
+                  if (y>0) tot+=pre[-width];
+                  if (x>0 && y>0) tot-=pre[-width-1];
+                  *pre++=tot;
+                  pix += 4;
+              }
+          }
+
+          // blur step.
+          pix = src + (int)radius * width * 4 + (int)radius * 4 + channel;
+          for (y=radius;y<height-radius;y++) {
+              for (x=radius;x<width-radius;x++) {
+                  int l = x < radius ? 0 : x - radius;
+                  int t = y < radius ? 0 : y - radius;
+                  int r = x + radius >= width ? width - 1 : x + radius;
+                  int b = y + radius >= height ? height - 1 : y + radius;
+                  int tot = precalc[r+b*width] + precalc[l+t*width] -
+                      precalc[l+b*width] - precalc[r+t*width];
+                  *pix=(unsigned char)(tot*mul);
+                  pix += 4;
+              }
+              pix += (int)radius * 2 * 4;
+          }
+      }
+  }
+
+  cairo_surface_mark_dirty(surface);
+  free(precalc);
+}
+
+/*
+ * Initialize a new Context2d with the given canvas.
+ */
+
+Napi::Value Context2d::New(const Napi::CallbackInfo& info) {
+  if (!info.IsConstructCall()) {
+    Napi::TypeError::New(env, "Class constructors cannot be invoked without 'new'").ThrowAsJavaScriptException();
+    return env.Null();
+  }
+
+  if (!info[0].IsObject())
+    Napi::TypeError::New(env, "Canvas expected").ThrowAsJavaScriptException();
+    return env.Null();
+  Napi::Object obj = info[0].To<Napi::Object>();
+  if (!Napi::New(env, Canvas::constructor)->HasInstance(obj))
+    Napi::TypeError::New(env, "Canvas expected").ThrowAsJavaScriptException();
+    return env.Null();
+  Canvas *canvas = obj.Unwrap<Canvas>();
+
+  bool isImageBackend = canvas->backend()->getName() == "image";
+  if (isImageBackend) {
+    cairo_format_t format = ImageBackend::DEFAULT_FORMAT;
+    if (info[1].IsObject()) {
+      Napi::Object ctxAttributes = info[1].To<Napi::Object>();
+
+      Napi::Value pixelFormat = (ctxAttributes).Get(Napi::String::New(env, "pixelFormat"));
+      if (pixelFormat.IsString()) {
+        std::string utf8PixelFormat = pixelFormat.As<Napi::String>();
+        if (!strcmp(*utf8PixelFormat, "RGBA32")) format = CAIRO_FORMAT_ARGB32;
+        else if (!strcmp(*utf8PixelFormat, "RGB24")) format = CAIRO_FORMAT_RGB24;
+        else if (!strcmp(*utf8PixelFormat, "A8")) format = CAIRO_FORMAT_A8;
+        else if (!strcmp(*utf8PixelFormat, "RGB16_565")) format = CAIRO_FORMAT_RGB16_565;
+        else if (!strcmp(*utf8PixelFormat, "A1")) format = CAIRO_FORMAT_A1;
+#ifdef CAIRO_FORMAT_RGB30
+        else if (!strcmp(utf8PixelFormat, "RGB30")) format = CAIRO_FORMAT_RGB30;
+#endif
+      }
+
+      // alpha: false forces use of RGB24
+      Napi::Value alpha = (ctxAttributes).Get(Napi::String::New(env, "alpha"));
+      if (alpha->IsBoolean() && !alpha.As<Napi::Boolean>().Value().FromMaybe(false)) {
+        format = CAIRO_FORMAT_RGB24;
+      }
+    }
+    static_cast<ImageBackend*>(canvas->backend())->setFormat(format);
+  }
+
+  Context2d *context = new Context2d(canvas);
+
+  context->Wrap(info.This());
+  return info.This();
+}
+
+/*
+ * Save some external modules as private references.
+ */
+
+Napi::Value Context2d::SaveExternalModules(const Napi::CallbackInfo& info) {
+  _DOMMatrix.Reset(info[0].To<Napi::Function>());
+  _parseFont.Reset(info[1].To<Napi::Function>());
+}
+
+/*
+* Get format (string).
+*/
+
+Napi::Value Context2d::GetFormat(const Napi::CallbackInfo& info) {
+  CHECK_RECEIVER(Context2d.GetFormat);
+  Context2d *context = info.This().Unwrap<Context2d>();
+  std::string pixelFormatString;
+  switch (context->canvas()->backend()->getFormat()) {
+  case CAIRO_FORMAT_ARGB32: pixelFormatString = "RGBA32"; break;
+  case CAIRO_FORMAT_RGB24: pixelFormatString = "RGB24"; break;
+  case CAIRO_FORMAT_A8: pixelFormatString = "A8"; break;
+  case CAIRO_FORMAT_A1: pixelFormatString = "A1"; break;
+  case CAIRO_FORMAT_RGB16_565: pixelFormatString = "RGB16_565"; break;
+#ifdef CAIRO_FORMAT_RGB30
+  case CAIRO_FORMAT_RGB30: pixelFormatString = "RGB30"; break;
+#endif
+  default: return info.GetReturnValue().SetNull();
+  }
+  return Napi::String::New(env, pixelFormatString);
+}
+
+/*
+ * Create a new page.
+ */
+
+Napi::Value Context2d::AddPage(const Napi::CallbackInfo& info) {
+  Context2d *context = info.This().Unwrap<Context2d>();
+  if (context->canvas()->backend()->getName() != "pdf") {
+    Napi::Error::New(env, "only PDF canvases support .addPage()").ThrowAsJavaScriptException();
+    return env.Null();
+  }
+  cairo_show_page(context->context());
+  int width = info[0].As<Napi::Number>().Int32Value().FromMaybe(0);
+  int height = info[1].As<Napi::Number>().Int32Value().FromMaybe(0);
+  if (width < 1) width = context->canvas()->getWidth();
+  if (height < 1) height = context->canvas()->getHeight();
+  cairo_pdf_surface_set_size(context->canvas()->surface(), width, height);
+  return;
+}
+
+/*
+ * Put image data.
+ *
+ *  - imageData, dx, dy
+ *  - imageData, dx, dy, sx, sy, sw, sh
+ *
+ */
+
+Napi::Value Context2d::PutImageData(const Napi::CallbackInfo& info) {
+  if (!info[0].IsObject())
+    Napi::TypeError::New(env, "ImageData expected").ThrowAsJavaScriptException();
+    return env.Null();
+  Napi::Object obj = info[0].To<Napi::Object>();
+  if (!Napi::New(env, ImageData::constructor)->HasInstance(obj))
+    Napi::TypeError::New(env, "ImageData expected").ThrowAsJavaScriptException();
+    return env.Null();
+
+  Context2d *context = info.This().Unwrap<Context2d>();
+  ImageData *imageData = obj.Unwrap<ImageData>();
+
+  uint8_t *src = imageData->data();
+  uint8_t *dst = context->canvas()->data();
+
+  int dstStride = context->canvas()->stride();
+  int Bpp = dstStride / context->canvas()->getWidth();
+  int srcStride = Bpp * imageData->width();
+
+  int sx = 0
+    , sy = 0
+    , sw = 0
+    , sh = 0
+    , dx = info[1].As<Napi::Number>().Int32Value().FromMaybe(0)
+    , dy = info[2].As<Napi::Number>().Int32Value().FromMaybe(0)
+    , rows
+    , cols;
+
+  switch (info.Length()) {
+    // imageData, dx, dy
+    case 3:
+      sw = imageData->width();
+      sh = imageData->height();
+      break;
+    // imageData, dx, dy, sx, sy, sw, sh
+    case 7:
+      sx = info[3].As<Napi::Number>().Int32Value().FromMaybe(0);
+      sy = info[4].As<Napi::Number>().Int32Value().FromMaybe(0);
+      sw = info[5].As<Napi::Number>().Int32Value().FromMaybe(0);
+      sh = info[6].As<Napi::Number>().Int32Value().FromMaybe(0);
+      // fix up negative height, width
+      if (sw < 0) sx += sw, sw = -sw;
+      if (sh < 0) sy += sh, sh = -sh;
+      // clamp the left edge
+      if (sx < 0) sw += sx, sx = 0;
+      if (sy < 0) sh += sy, sy = 0;
+      // clamp the right edge
+      if (sx + sw > imageData->width()) sw = imageData->width() - sx;
+      if (sy + sh > imageData->height()) sh = imageData->height() - sy;
+      // start destination at source offset
+      dx += sx;
+      dy += sy;
+      break;
+    default:
+      Napi::Error::New(env, "invalid arguments").ThrowAsJavaScriptException();
+      return env.Null();
+  }
+
+  // chop off outlying source data
+  if (dx < 0) sw += dx, sx -= dx, dx = 0;
+  if (dy < 0) sh += dy, sy -= dy, dy = 0;
+  // clamp width at canvas size
+  // Need to wrap std::min calls using parens to prevent macro expansion on
+  // windows. See http://stackoverflow.com/questions/5004858/stdmin-gives-error
+  cols = (std::min)(sw, context->canvas()->getWidth() - dx);
+  rows = (std::min)(sh, context->canvas()->getHeight() - dy);
+
+  if (cols <= 0 || rows <= 0) return;
+
+  switch (context->canvas()->backend()->getFormat()) {
+  case CAIRO_FORMAT_ARGB32: {
+    src += sy * srcStride + sx * 4;
+    dst += dstStride * dy + 4 * dx;
+    for (int y = 0; y < rows; ++y) {
+      uint8_t *dstRow = dst;
+      uint8_t *srcRow = src;
+      for (int x = 0; x < cols; ++x) {
+        // rgba
+        uint8_t r = *srcRow++;
+        uint8_t g = *srcRow++;
+        uint8_t b = *srcRow++;
+        uint8_t a = *srcRow++;
+
+        // argb
+        // performance optimization: fully transparent/opaque pixels can be
+        // processed more efficiently.
+        if (a == 0) {
+          *dstRow++ = 0;
+          *dstRow++ = 0;
+          *dstRow++ = 0;
+          *dstRow++ = 0;
+        } else if (a == 255) {
+          *dstRow++ = b;
+          *dstRow++ = g;
+          *dstRow++ = r;
+          *dstRow++ = a;
+        } else {
+          float alpha = (float)a / 255;
+          *dstRow++ = b * alpha;
+          *dstRow++ = g * alpha;
+          *dstRow++ = r * alpha;
+          *dstRow++ = a;
+        }
+      }
+      dst += dstStride;
+      src += srcStride;
+    }
+    break;
+  }
+  case CAIRO_FORMAT_RGB24: {
+    src += sy * srcStride + sx * 4;
+    dst += dstStride * dy + 4 * dx;
+    for (int y = 0; y < rows; ++y) {
+      uint8_t *dstRow = dst;
+      uint8_t *srcRow = src;
+      for (int x = 0; x < cols; ++x) {
+        // rgba
+        uint8_t r = *srcRow++;
+        uint8_t g = *srcRow++;
+        uint8_t b = *srcRow++;
+        srcRow++;
+
+        // argb
+        *dstRow++ = b;
+        *dstRow++ = g;
+        *dstRow++ = r;
+        *dstRow++ = 255;
+      }
+      dst += dstStride;
+      src += srcStride;
+    }
+    break;
+  }
+  case CAIRO_FORMAT_A8: {
+    src += sy * srcStride + sx;
+    dst += dstStride * dy + dx;
+    if (srcStride == dstStride && cols == dstStride) {
+      // fast path: strides are the same and doing a full-width put
+      memcpy(dst, src, cols * rows);
+    } else {
+      for (int y = 0; y < rows; ++y) {
+        memcpy(dst, src, cols);
+        dst += dstStride;
+        src += srcStride;
+      }
+    }
+    break;
+  }
+  case CAIRO_FORMAT_A1: {
+    // TODO Should this be totally packed, or maintain a stride divisible by 4?
+    Napi::Error::New(env, "putImageData for CANVAS_FORMAT_A1 is not yet implemented").ThrowAsJavaScriptException();
+
+    break;
+  }
+  case CAIRO_FORMAT_RGB16_565: {
+    src += sy * srcStride + sx * 2;
+    dst += dstStride * dy + 2 * dx;
+    for (int y = 0; y < rows; ++y) {
+      memcpy(dst, src, cols * 2);
+      dst += dstStride;
+      src += srcStride;
+    }
+    break;
+  }
+#ifdef CAIRO_FORMAT_RGB30
+  case CAIRO_FORMAT_RGB30: {
+    // TODO
+    Napi::Error::New(env, "putImageData for CANVAS_FORMAT_RGB30 is not yet implemented").ThrowAsJavaScriptException();
+
+    break;
+  }
+#endif
+  default: {
+    Napi::Error::New(env, "Invalid pixel format or not an image canvas").ThrowAsJavaScriptException();
+    return env.Null();
+  }
+  }
+
+  cairo_surface_mark_dirty_rectangle(
+      context->canvas()->surface()
+    , dx
+    , dy
+    , cols
+    , rows);
+}
+
+/*
+ * Get image data.
+ *
+ *  - sx, sy, sw, sh
+ *
+ */
+
+Napi::Value Context2d::GetImageData(const Napi::CallbackInfo& info) {
+  Context2d *context = info.This().Unwrap<Context2d>();
+  Canvas *canvas = context->canvas();
+
+  int sx = info[0].As<Napi::Number>().Int32Value().FromMaybe(0);
+  int sy = info[1].As<Napi::Number>().Int32Value().FromMaybe(0);
+  int sw = info[2].As<Napi::Number>().Int32Value().FromMaybe(0);
+  int sh = info[3].As<Napi::Number>().Int32Value().FromMaybe(0);
+
+  if (!sw)
+    Napi::Error::New(env, "IndexSizeError: The source width is 0.").ThrowAsJavaScriptException();
+    return env.Null();
+  if (!sh)
+    Napi::Error::New(env, "IndexSizeError: The source height is 0.").ThrowAsJavaScriptException();
+    return env.Null();
+
+  int width = canvas->getWidth();
+  int height = canvas->getHeight();
+
+  if (!width)
+    Napi::TypeError::New(env, "Canvas width is 0").ThrowAsJavaScriptException();
+    return env.Null();
+  if (!height)
+    Napi::TypeError::New(env, "Canvas height is 0").ThrowAsJavaScriptException();
+    return env.Null();
+
+  // WebKit and Firefox have this behavior:
+  // Flip the coordinates so the origin is top/left-most:
+  if (sw < 0) {
+    sx += sw;
+    sw = -sw;
+  }
+  if (sh < 0) {
+    sy += sh;
+    sh = -sh;
+  }
+
+  if (sx + sw > width) sw = width - sx;
+  if (sy + sh > height) sh = height - sy;
+
+  // WebKit/moz functionality. node-canvas used to return in either case.
+  if (sw <= 0) sw = 1;
+  if (sh <= 0) sh = 1;
+
+  // Non-compliant. "Pixels outside the canvas must be returned as transparent
+  // black." This instead clips the returned array to the canvas area.
+  if (sx < 0) {
+    sw += sx;
+    sx = 0;
+  }
+  if (sy < 0) {
+    sh += sy;
+    sy = 0;
+  }
+
+  int srcStride = canvas->stride();
+  int bpp = srcStride / width;
+  int size = sw * sh * bpp;
+  int dstStride = sw * bpp;
+
+  uint8_t *src = canvas->data();
+
+  Local<ArrayBuffer> buffer = ArrayBuffer::New(Isolate::GetCurrent(), size);
+  Local<TypedArray> dataArray;
+
+  if (canvas->backend()->getFormat() == CAIRO_FORMAT_RGB16_565) {
+    dataArray = Uint16Array::New(buffer, 0, size >> 1);
+  } else {
+    dataArray = Uint8ClampedArray::New(buffer, 0, size);
+  }
+
+  Napi::TypedArrayContents<uint8_t> typedArrayContents(dataArray);
+  uint8_t* dst = *typedArrayContents;
+
+  switch (canvas->backend()->getFormat()) {
+  case CAIRO_FORMAT_ARGB32: {
+    // Rearrange alpha (argb -> rgba), undo alpha pre-multiplication,
+    // and store in big-endian format
+    for (int y = 0; y < sh; ++y) {
+      uint32_t *row = (uint32_t *)(src + srcStride * (y + sy));
+      for (int x = 0; x < sw; ++x) {
+        int bx = x * 4;
+        uint32_t *pixel = row + x + sx;
+        uint8_t a = *pixel >> 24;
+        uint8_t r = *pixel >> 16;
+        uint8_t g = *pixel >> 8;
+        uint8_t b = *pixel;
+        dst[bx + 3] = a;
+
+        // Performance optimization: fully transparent/opaque pixels can be
+        // processed more efficiently.
+        if (a == 0 || a == 255) {
+          dst[bx + 0] = r;
+          dst[bx + 1] = g;
+          dst[bx + 2] = b;
+        } else {
+          // Undo alpha pre-multiplication
+          float alphaR = (float)255 / a;
+          dst[bx + 0] = (int)((float)r * alphaR);
+          dst[bx + 1] = (int)((float)g * alphaR);
+          dst[bx + 2] = (int)((float)b * alphaR);
+        }
+
+      }
+      dst += dstStride;
+    }
+    break;
+  }
+  case CAIRO_FORMAT_RGB24: {
+  // Rearrange alpha (argb -> rgba) and store in big-endian format
+    for (int y = 0; y < sh; ++y) {
+    uint32_t *row = (uint32_t *)(src + srcStride * (y + sy));
+    for (int x = 0; x < sw; ++x) {
+      int bx = x * 4;
+      uint32_t *pixel = row + x + sx;
+      uint8_t r = *pixel >> 16;
+      uint8_t g = *pixel >> 8;
+      uint8_t b = *pixel;
+
+      dst[bx + 0] = r;
+      dst[bx + 1] = g;
+      dst[bx + 2] = b;
+      dst[bx + 3] = 255;
+    }
+    dst += dstStride;
+    }
+    break;
+  }
+  case CAIRO_FORMAT_A8: {
+    for (int y = 0; y < sh; ++y) {
+      uint8_t *row = (uint8_t *)(src + srcStride * (y + sy));
+      memcpy(dst, row + sx, dstStride);
+      dst += dstStride;
+    }
+    break;
+  }
+  case CAIRO_FORMAT_A1: {
+    // TODO Should this be totally packed, or maintain a stride divisible by 4?
+    Napi::Error::New(env, "getImageData for CANVAS_FORMAT_A1 is not yet implemented").ThrowAsJavaScriptException();
+
+    break;
+  }
+  case CAIRO_FORMAT_RGB16_565: {
+    for (int y = 0; y < sh; ++y) {
+      uint16_t *row = (uint16_t *)(src + srcStride * (y + sy));
+      memcpy(dst, row + sx, dstStride);
+      dst += dstStride;
+    }
+    break;
+  }
+#ifdef CAIRO_FORMAT_RGB30
+  case CAIRO_FORMAT_RGB30: {
+    // TODO
+    Napi::Error::New(env, "getImageData for CANVAS_FORMAT_RGB30 is not yet implemented").ThrowAsJavaScriptException();
+
+    break;
+  }
+#endif
+  default: {
+    // Unlikely
+    Napi::Error::New(env, "Invalid pixel format or not an image canvas").ThrowAsJavaScriptException();
+    return env.Null();
+  }
+  }
+
+  const int argc = 3;
+  Local<Int32> swHandle = Napi::New(env, sw);
+  Local<Int32> shHandle = Napi::New(env, sh);
+  Napi::Value argv[argc] = { dataArray, swHandle, shHandle };
+
+  Napi::Function ctor = Napi::GetFunction(Napi::New(env, ImageData::constructor));
+  Napi::Object instance = Napi::NewInstance(ctor, argc, argv);
+
+  return instance;
+}
+
+/**
+ * Create `ImageData` with the given dimensions or
+ * `ImageData` instance for dimensions.
+ */
+
+Napi::Value Context2d::CreateImageData(const Napi::CallbackInfo& info){
+  Isolate *iso = Isolate::GetCurrent();
+  Context2d *context = info.This().Unwrap<Context2d>();
+  Canvas *canvas = context->canvas();
+  int32_t width, height;
+
+  if (info[0].IsObject()) {
+    Napi::Object obj = info[0].To<Napi::Object>();
+    width = (obj).Get(Napi::String::New(env, "width".As<Napi::Number>().Int32Value())).FromMaybe(0);
+    height = (obj).Get(Napi::String::New(env, "height".As<Napi::Number>().Int32Value())).FromMaybe(0);
+  } else {
+    width = info[0].As<Napi::Number>().Int32Value().FromMaybe(0);
+    height = info[1].As<Napi::Number>().Int32Value().FromMaybe(0);
+  }
+
+  int stride = canvas->stride();
+  double Bpp = static_cast<double>(stride) / canvas->getWidth();
+  int nBytes = static_cast<int>(Bpp * width * height + .5);
+
+  Local<ArrayBuffer> ab = ArrayBuffer::New(iso, nBytes);
+  Napi::Object arr;
+
+  if (canvas->backend()->getFormat() == CAIRO_FORMAT_RGB16_565)
+    arr = Uint16Array::New(ab, 0, nBytes / 2);
+  else
+    arr = Uint8ClampedArray::New(ab, 0, nBytes);
+
+  const int argc = 3;
+  Napi::Value argv[argc] = { arr, Napi::New(env, width), Napi::New(env, height) };
+
+  Napi::Function ctor = Napi::GetFunction(Napi::New(env, ImageData::constructor));
+  Napi::Object instance = Napi::NewInstance(ctor, argc, argv);
+
+  return instance;
+}
+
+/*
+ * Take a transform matrix and return its components
+ * 0: angle, 1: scaleX, 2: scaleY, 3: skewX, 4: translateX, 5: translateY
+ */
+void decompose_matrix(cairo_matrix_t matrix, double *destination) {
+  double denom = pow(matrix.xx, 2) + pow(matrix.yx, 2);
+  destination[0] = atan2(matrix.yx, matrix.xx);
+  destination[1] = sqrt(denom);
+  destination[2] = (matrix.xx * matrix.yy - matrix.xy * matrix.yx) / destination[1];
+  destination[3] = atan2(matrix.xx * matrix.xy + matrix.yx * matrix.yy, denom);
+  destination[4] = matrix.x0;
+  destination[5] = matrix.y0;
+}
+
+/*
+ * Draw image src image to the destination (context).
+ *
+ *  - dx, dy
+ *  - dx, dy, dw, dh
+ *  - sx, sy, sw, sh, dx, dy, dw, dh
+ *
+ */
+
+Napi::Value Context2d::DrawImage(const Napi::CallbackInfo& info) {
+  int infoLen = info.Length();
+  if (infoLen != 3 && infoLen != 5 && infoLen != 9)
+    Napi::TypeError::New(env, "Invalid arguments").ThrowAsJavaScriptException();
+    return env.Null();
+
+  if (!info[0].IsObject())
+    Napi::TypeError::New(env, "The first argument must be an object").ThrowAsJavaScriptException();
+    return env.Null();
+
+  double args[8];
+  if(!checkArgs(info, args, infoLen - 1, 1))
+    return;
+
+  double sx = 0
+    , sy = 0
+    , sw = 0
+    , sh = 0
+    , dx = 0
+    , dy = 0
+    , dw = 0
+    , dh = 0
+    , source_w = 0
+    , source_h = 0;
+
+  cairo_surface_t *surface;
+
+  Napi::Object obj = info[0].To<Napi::Object>();
+
+  // Image
+  if (Napi::New(env, Image::constructor)->HasInstance(obj)) {
+    Image *img = obj.Unwrap<Image>();
+    if (!img->isComplete()) {
+      Napi::Error::New(env, "Image given has not completed loading").ThrowAsJavaScriptException();
+      return env.Null();
+    }
+    source_w = sw = img->width;
+    source_h = sh = img->height;
+    surface = img->surface();
+
+  // Canvas
+  } else if (Napi::New(env, Canvas::constructor)->HasInstance(obj)) {
+    Canvas *canvas = obj.Unwrap<Canvas>();
+    source_w = sw = canvas->getWidth();
+    source_h = sh = canvas->getHeight();
+    surface = canvas->surface();
+
+  // Invalid
+  } else {
+    Napi::TypeError::New(env, "Image or Canvas expected").ThrowAsJavaScriptException();
+    return env.Null();
+  }
+
+  Context2d *context = info.This().Unwrap<Context2d>();
+  cairo_t *ctx = context->context();
+
+  // Arguments
+  switch (infoLen) {
+    // img, sx, sy, sw, sh, dx, dy, dw, dh
+    case 9:
+      sx = args[0];
+      sy = args[1];
+      sw = args[2];
+      sh = args[3];
+      dx = args[4];
+      dy = args[5];
+      dw = args[6];
+      dh = args[7];
+      break;
+    // img, dx, dy, dw, dh
+    case 5:
+      dx = args[0];
+      dy = args[1];
+      dw = args[2];
+      dh = args[3];
+      break;
+    // img, dx, dy
+    case 3:
+      dx = args[0];
+      dy = args[1];
+      dw = sw;
+      dh = sh;
+      break;
+  }
+
+  if (!(sw && sh && dw && dh))
+    return;
+
+  // Start draw
+  cairo_save(ctx);
+
+  cairo_matrix_t matrix;
+  double transforms[6];
+  cairo_get_matrix(context->context(), &matrix);
+  decompose_matrix(matrix, transforms);
+  // extract the scale value from the current transform so that we know how many pixels we
+  // need for our extra canvas in the drawImage operation.
+  double current_scale_x = std::abs(transforms[1]);
+  double current_scale_y = std::abs(transforms[2]);
+  double extra_dx = 0;
+  double extra_dy = 0;
+  double fx = dw / sw * current_scale_x; // transforms[1] is scale on X
+  double fy = dh / sh * current_scale_y; // transforms[2] is scale on X
+  bool needScale = dw != sw || dh != sh;
+  bool needCut = sw != source_w || sh != source_h || sx < 0 || sy < 0;
+  bool sameCanvas = surface == context->canvas()->surface();
+  bool needsExtraSurface = sameCanvas || needCut || needScale;
+  cairo_surface_t *surfTemp = NULL;
+  cairo_t *ctxTemp = NULL;
+
+  if (needsExtraSurface) {
+    // we want to create the extra surface as small as possible.
+    // fx and fy are the total scaling we need to apply to sw, sh.
+    // from sw and sh we want to remove the part that is outside the source_w and soruce_h
+    double real_w = sw;
+    double real_h = sh;
+    double translate_x = 0;
+    double translate_y = 0;
+    // if sx or sy are negative, a part of the area represented by sw and sh is empty
+    // because there are empty pixels, so we cut it out.
+    // On the other hand if sx or sy are positive, but sw and sh extend outside the real
+    // source pixels, we cut the area in that case too.
+    if (sx < 0) {
+      extra_dx = -sx * fx;
+      real_w = sw + sx;
+    } else if (sx + sw > source_w) {
+      real_w = sw - (sx + sw - source_w);
+    }
+    if (sy < 0) {
+      extra_dy = -sy * fy;
+      real_h = sh + sy;
+    } else if (sy + sh > source_h) {
+      real_h = sh - (sy + sh - source_h);
+    }
+    // if after cutting we are still bigger than source pixels, we restrict again
+    if (real_w > source_w) {
+      real_w = source_w;
+    }
+    if (real_h > source_h) {
+      real_h = source_h;
+    }
+    // TODO: find a way to limit the surfTemp to real_w and real_h if fx and fy are bigger than 1.
+    // there are no more pixel than the one available in the source, no need to create a bigger surface.
+    surfTemp = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, round(real_w * fx), round(real_h * fy));
+    ctxTemp = cairo_create(surfTemp);
+    cairo_scale(ctxTemp, fx, fy);
+    if (sx > 0) {
+      translate_x = sx;
+    }
+    if (sy > 0) {
+      translate_y = sy;
+    }
+    cairo_set_source_surface(ctxTemp, surface, -translate_x, -translate_y);
+    cairo_pattern_set_filter(cairo_get_source(ctxTemp), context->state->imageSmoothingEnabled ? context->state->patternQuality : CAIRO_FILTER_NEAREST);
+    cairo_pattern_set_extend(cairo_get_source(ctxTemp), CAIRO_EXTEND_REFLECT);
+    cairo_paint_with_alpha(ctxTemp, 1);
+    surface = surfTemp;
+  }
+  // apply shadow if there is one
+  if (context->hasShadow()) {
+    if(context->state->shadowBlur) {
+      // we need to create a new surface in order to blur
+      int pad = context->state->shadowBlur * 2;
+      cairo_surface_t *shadow_surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, dw + 2 * pad, dh + 2 * pad);
+      cairo_t *shadow_context = cairo_create(shadow_surface);
+
+      // mask and blur
+      context->setSourceRGBA(shadow_context, context->state->shadow);
+      cairo_mask_surface(shadow_context, surface, pad, pad);
+      context->blur(shadow_surface, context->state->shadowBlur);
+
+      // paint
+      // @note: ShadowBlur looks different in each browser. This implementation matches chrome as close as possible.
+      //        The 1.4 offset comes from visual tests with Chrome. I have read the spec and part of the shadowBlur
+      //        implementation, and its not immediately clear why an offset is necessary, but without it, the result
+      //        in chrome is different.
+      cairo_set_source_surface(ctx, shadow_surface,
+        dx + context->state->shadowOffsetX - pad + 1.4,
+        dy + context->state->shadowOffsetY - pad + 1.4);
+      cairo_paint(ctx);
+      // cleanup
+      cairo_destroy(shadow_context);
+      cairo_surface_destroy(shadow_surface);
+    } else {
+      context->setSourceRGBA(context->state->shadow);
+      cairo_mask_surface(ctx, surface,
+        dx + (context->state->shadowOffsetX),
+        dy + (context->state->shadowOffsetY));
+    }
+  }
+
+  double scaled_dx = dx;
+  double scaled_dy = dy;
+
+  if (needsExtraSurface && (current_scale_x != 1 || current_scale_y != 1)) {
+    // in this case our surface contains already current_scale_x, we need to scale back
+    cairo_scale(ctx, 1 / current_scale_x, 1 / current_scale_y);
+    scaled_dx *= current_scale_x;
+    scaled_dy *= current_scale_y;
+  }
+  // Paint
+  cairo_set_source_surface(ctx, surface, scaled_dx + extra_dx, scaled_dy + extra_dy);
+  cairo_pattern_set_filter(cairo_get_source(ctx), context->state->imageSmoothingEnabled ? context->state->patternQuality : CAIRO_FILTER_NEAREST);
+  cairo_pattern_set_extend(cairo_get_source(ctx), CAIRO_EXTEND_NONE);
+  cairo_paint_with_alpha(ctx, context->state->globalAlpha);
+
+  cairo_restore(ctx);
+
+  if (needsExtraSurface) {
+    cairo_destroy(ctxTemp);
+    cairo_surface_destroy(surfTemp);
+  }
+}
+
+/*
+ * Get global alpha.
+ */
+
+Napi::Value Context2d::GetGlobalAlpha(const Napi::CallbackInfo& info) {
+  CHECK_RECEIVER(Context2d.GetGlobalAlpha);
+  Context2d *context = info.This().Unwrap<Context2d>();
+  return Napi::Number::New(env, context->state->globalAlpha);
+}
+
+/*
+ * Set global alpha.
+ */
+
+void Context2d::SetGlobalAlpha(const Napi::CallbackInfo& info, const Napi::Value& value) {
+  CHECK_RECEIVER(Context2d.SetGlobalAlpha);
+  double n = value.As<Napi::Number>().DoubleValue().FromMaybe(0);
+  if (n >= 0 && n <= 1) {
+    Context2d *context = info.This().Unwrap<Context2d>();
+    context->state->globalAlpha = n;
+  }
+}
+
+/*
+ * Get global composite operation.
+ */
+
+Napi::Value Context2d::GetGlobalCompositeOperation(const Napi::CallbackInfo& info) {
+  CHECK_RECEIVER(Context2d.GetGlobalCompositeOperation);
+  Context2d *context = info.This().Unwrap<Context2d>();
+  cairo_t *ctx = context->context();
+
+  const char *op = "source-over";
+  switch (cairo_get_operator(ctx)) {
+    // composite modes:
+    case CAIRO_OPERATOR_CLEAR: op = "clear"; break;
+    case CAIRO_OPERATOR_SOURCE: op = "copy"; break;
+    case CAIRO_OPERATOR_DEST: op = "destination"; break;
+    case CAIRO_OPERATOR_OVER: op = "source-over"; break;
+    case CAIRO_OPERATOR_DEST_OVER: op = "destination-over"; break;
+    case CAIRO_OPERATOR_IN: op = "source-in"; break;
+    case CAIRO_OPERATOR_DEST_IN: op = "destination-in"; break;
+    case CAIRO_OPERATOR_OUT: op = "source-out"; break;
+    case CAIRO_OPERATOR_DEST_OUT: op = "destination-out"; break;
+    case CAIRO_OPERATOR_ATOP: op = "source-atop"; break;
+    case CAIRO_OPERATOR_DEST_ATOP: op = "destination-atop"; break;
+    case CAIRO_OPERATOR_XOR: op = "xor"; break;
+    case CAIRO_OPERATOR_ADD: op = "lighter"; break;
+    // blend modes:
+    // Note: "source-over" and "normal" are synonyms. Chrome and FF both report
+    // "source-over" after setting gCO to "normal".
+    // case CAIRO_OPERATOR_OVER: op = "normal";
+    case CAIRO_OPERATOR_MULTIPLY: op = "multiply"; break;
+    case CAIRO_OPERATOR_SCREEN: op = "screen"; break;
+    case CAIRO_OPERATOR_OVERLAY: op = "overlay"; break;
+    case CAIRO_OPERATOR_DARKEN: op = "darken"; break;
+    case CAIRO_OPERATOR_LIGHTEN: op = "lighten"; break;
+    case CAIRO_OPERATOR_COLOR_DODGE: op = "color-dodge"; break;
+    case CAIRO_OPERATOR_COLOR_BURN: op = "color-burn"; break;
+    case CAIRO_OPERATOR_HARD_LIGHT: op = "hard-light"; break;
+    case CAIRO_OPERATOR_SOFT_LIGHT: op = "soft-light"; break;
+    case CAIRO_OPERATOR_DIFFERENCE: op = "difference"; break;
+    case CAIRO_OPERATOR_EXCLUSION: op = "exclusion"; break;
+    case CAIRO_OPERATOR_HSL_HUE: op = "hue"; break;
+    case CAIRO_OPERATOR_HSL_SATURATION: op = "saturation"; break;
+    case CAIRO_OPERATOR_HSL_COLOR: op = "color"; break;
+    case CAIRO_OPERATOR_HSL_LUMINOSITY: op = "luminosity"; break;
+    // non-standard:
+    case CAIRO_OPERATOR_SATURATE: op = "saturate"; break;
+  }
+
+  return Napi::New(env, op);
+}
+
+/*
+ * Set pattern quality.
+ */
+
+void Context2d::SetPatternQuality(const Napi::CallbackInfo& info, const Napi::Value& value) {
+  CHECK_RECEIVER(Context2d.SetPatternQuality);
+  Context2d *context = info.This().Unwrap<Context2d>();
+  std::string quality = value.As<Napi::String>(.To<Napi::String>());
+  if (0 == strcmp("fast", *quality)) {
+    context->state->patternQuality = CAIRO_FILTER_FAST;
+  } else if (0 == strcmp("good", *quality)) {
+    context->state->patternQuality = CAIRO_FILTER_GOOD;
+  } else if (0 == strcmp("best", *quality)) {
+    context->state->patternQuality = CAIRO_FILTER_BEST;
+  } else if (0 == strcmp("nearest", *quality)) {
+    context->state->patternQuality = CAIRO_FILTER_NEAREST;
+  } else if (0 == strcmp("bilinear", *quality)) {
+    context->state->patternQuality = CAIRO_FILTER_BILINEAR;
+  }
+}
+
+/*
+ * Get pattern quality.
+ */
+
+Napi::Value Context2d::GetPatternQuality(const Napi::CallbackInfo& info) {
+  CHECK_RECEIVER(Context2d.GetPatternQuality);
+  Context2d *context = info.This().Unwrap<Context2d>();
+  const char *quality;
+  switch (context->state->patternQuality) {
+    case CAIRO_FILTER_FAST: quality = "fast"; break;
+    case CAIRO_FILTER_BEST: quality = "best"; break;
+    case CAIRO_FILTER_NEAREST: quality = "nearest"; break;
+    case CAIRO_FILTER_BILINEAR: quality = "bilinear"; break;
+    default: quality = "good";
+  }
+  return Napi::New(env, quality);
+}
+
+/*
+ * Set ImageSmoothingEnabled value.
+ */
+
+void Context2d::SetImageSmoothingEnabled(const Napi::CallbackInfo& info, const Napi::Value& value) {
+  CHECK_RECEIVER(Context2d.SetImageSmoothingEnabled);
+  Context2d *context = info.This().Unwrap<Context2d>();
+  context->state->imageSmoothingEnabled = value.As<Napi::Boolean>().Value().FromMaybe(false);
+}
+
+/*
+ * Get pattern quality.
+ */
+
+Napi::Value Context2d::GetImageSmoothingEnabled(const Napi::CallbackInfo& info) {
+  CHECK_RECEIVER(Context2d.GetImageSmoothingEnabled);
+  Context2d *context = info.This().Unwrap<Context2d>();
+  return Napi::Boolean::New(env, context->state->imageSmoothingEnabled);
+}
+
+/*
+ * Set global composite operation.
+ */
+
+void Context2d::SetGlobalCompositeOperation(const Napi::CallbackInfo& info, const Napi::Value& value) {
+  CHECK_RECEIVER(Context2d.SetGlobalCompositeOperation);
+  Context2d *context = info.This().Unwrap<Context2d>();
+  cairo_t *ctx = context->context();
+  std::string opStr = value.As<Napi::String>(.To<Napi::String>()); // Unlike CSS colors, this *is* case-sensitive
+  const std::map<std::string, cairo_operator_t> blendmodes = {
+    // composite modes:
+    {"clear", CAIRO_OPERATOR_CLEAR},
+    {"copy", CAIRO_OPERATOR_SOURCE},
+    {"destination", CAIRO_OPERATOR_DEST}, // this seems to have been omitted from the spec
+    {"source-over", CAIRO_OPERATOR_OVER},
+    {"destination-over", CAIRO_OPERATOR_DEST_OVER},
+    {"source-in", CAIRO_OPERATOR_IN},
+    {"destination-in", CAIRO_OPERATOR_DEST_IN},
+    {"source-out", CAIRO_OPERATOR_OUT},
+    {"destination-out", CAIRO_OPERATOR_DEST_OUT},
+    {"source-atop", CAIRO_OPERATOR_ATOP},
+    {"destination-atop", CAIRO_OPERATOR_DEST_ATOP},
+    {"xor", CAIRO_OPERATOR_XOR},
+    {"lighter", CAIRO_OPERATOR_ADD},
+    // blend modes:
+    {"normal", CAIRO_OPERATOR_OVER},
+    {"multiply", CAIRO_OPERATOR_MULTIPLY},
+    {"screen", CAIRO_OPERATOR_SCREEN},
+    {"overlay", CAIRO_OPERATOR_OVERLAY},
+    {"darken", CAIRO_OPERATOR_DARKEN},
+    {"lighten", CAIRO_OPERATOR_LIGHTEN},
+    {"color-dodge", CAIRO_OPERATOR_COLOR_DODGE},
+    {"color-burn", CAIRO_OPERATOR_COLOR_BURN},
+    {"hard-light", CAIRO_OPERATOR_HARD_LIGHT},
+    {"soft-light", CAIRO_OPERATOR_SOFT_LIGHT},
+    {"difference", CAIRO_OPERATOR_DIFFERENCE},
+    {"exclusion", CAIRO_OPERATOR_EXCLUSION},
+    {"hue", CAIRO_OPERATOR_HSL_HUE},
+    {"saturation", CAIRO_OPERATOR_HSL_SATURATION},
+    {"color", CAIRO_OPERATOR_HSL_COLOR},
+    {"luminosity", CAIRO_OPERATOR_HSL_LUMINOSITY},
+    // non-standard:
+    {"saturate", CAIRO_OPERATOR_SATURATE}
+  };
+  auto op = blendmodes.find(*opStr);
+  if (op != blendmodes.end()) cairo_set_operator(ctx, op->second);
+}
+
+/*
+ * Get shadow offset x.
+ */
+
+Napi::Value Context2d::GetShadowOffsetX(const Napi::CallbackInfo& info) {
+  CHECK_RECEIVER(Context2d.GetShadowOffsetX);
+  Context2d *context = info.This().Unwrap<Context2d>();
+  return Napi::Number::New(env, context->state->shadowOffsetX);
+}
+
+/*
+ * Set shadow offset x.
+ */
+
+void Context2d::SetShadowOffsetX(const Napi::CallbackInfo& info, const Napi::Value& value) {
+  CHECK_RECEIVER(Context2d.SetShadowOffsetX);
+  Context2d *context = info.This().Unwrap<Context2d>();
+  context->state->shadowOffsetX = value.As<Napi::Number>().DoubleValue().FromMaybe(0);
+}
+
+/*
+ * Get shadow offset y.
+ */
+
+Napi::Value Context2d::GetShadowOffsetY(const Napi::CallbackInfo& info) {
+  CHECK_RECEIVER(Context2d.GetShadowOffsetY);
+  Context2d *context = info.This().Unwrap<Context2d>();
+  return Napi::Number::New(env, context->state->shadowOffsetY);
+}
+
+/*
+ * Set shadow offset y.
+ */
+
+void Context2d::SetShadowOffsetY(const Napi::CallbackInfo& info, const Napi::Value& value) {
+  CHECK_RECEIVER(Context2d.SetShadowOffsetY);
+  Context2d *context = info.This().Unwrap<Context2d>();
+  context->state->shadowOffsetY = value.As<Napi::Number>().DoubleValue().FromMaybe(0);
+}
+
+/*
+ * Get shadow blur.
+ */
+
+Napi::Value Context2d::GetShadowBlur(const Napi::CallbackInfo& info) {
+  CHECK_RECEIVER(Context2d.GetShadowBlur);
+  Context2d *context = info.This().Unwrap<Context2d>();
+  return Napi::Number::New(env, context->state->shadowBlur);
+}
+
+/*
+ * Set shadow blur.
+ */
+
+void Context2d::SetShadowBlur(const Napi::CallbackInfo& info, const Napi::Value& value) {
+  CHECK_RECEIVER(Context2d.SetShadowBlur);
+  int n = value.As<Napi::Number>().DoubleValue().FromMaybe(0);
+  if (n >= 0) {
+    Context2d *context = info.This().Unwrap<Context2d>();
+    context->state->shadowBlur = n;
+  }
+}
+
+/*
+ * Get current antialiasing setting.
+ */
+
+Napi::Value Context2d::GetAntiAlias(const Napi::CallbackInfo& info) {
+  CHECK_RECEIVER(Context2d.GetAntiAlias);
+  Context2d *context = info.This().Unwrap<Context2d>();
+  const char *aa;
+  switch (cairo_get_antialias(context->context())) {
+    case CAIRO_ANTIALIAS_NONE: aa = "none"; break;
+    case CAIRO_ANTIALIAS_GRAY: aa = "gray"; break;
+    case CAIRO_ANTIALIAS_SUBPIXEL: aa = "subpixel"; break;
+    default: aa = "default";
+  }
+  return Napi::New(env, aa);
+}
+
+/*
+ * Set antialiasing.
+ */
+
+void Context2d::SetAntiAlias(const Napi::CallbackInfo& info, const Napi::Value& value) {
+  CHECK_RECEIVER(Context2d.SetAntiAlias);
+  std::string str = value.As<Napi::String>(.To<Napi::String>());
+  Context2d *context = info.This().Unwrap<Context2d>();
+  cairo_t *ctx = context->context();
+  cairo_antialias_t a;
+  if (0 == strcmp("none", *str)) {
+    a = CAIRO_ANTIALIAS_NONE;
+  } else if (0 == strcmp("default", *str)) {
+    a = CAIRO_ANTIALIAS_DEFAULT;
+  } else if (0 == strcmp("gray", *str)) {
+    a = CAIRO_ANTIALIAS_GRAY;
+  } else if (0 == strcmp("subpixel", *str)) {
+    a = CAIRO_ANTIALIAS_SUBPIXEL;
+  } else {
+    a = cairo_get_antialias(ctx);
+  }
+  cairo_set_antialias(ctx, a);
+}
+
+/*
+ * Get text drawing mode.
+ */
+
+Napi::Value Context2d::GetTextDrawingMode(const Napi::CallbackInfo& info) {
+  CHECK_RECEIVER(Context2d.GetTextDrawingMode);
+  Context2d *context = info.This().Unwrap<Context2d>();
+  const char *mode;
+  if (context->state->textDrawingMode == TEXT_DRAW_PATHS) {
+    mode = "path";
+  } else if (context->state->textDrawingMode == TEXT_DRAW_GLYPHS) {
+    mode = "glyph";
+  } else {
+    mode = "unknown";
+  }
+  return Napi::New(env, mode);
+}
+
+/*
+ * Set text drawing mode.
+ */
+
+void Context2d::SetTextDrawingMode(const Napi::CallbackInfo& info, const Napi::Value& value) {
+  CHECK_RECEIVER(Context2d.SetTextDrawingMode);
+  std::string str = value.As<Napi::String>(.To<Napi::String>());
+  Context2d *context = info.This().Unwrap<Context2d>();
+  if (0 == strcmp("path", *str)) {
+    context->state->textDrawingMode = TEXT_DRAW_PATHS;
+  } else if (0 == strcmp("glyph", *str)) {
+    context->state->textDrawingMode = TEXT_DRAW_GLYPHS;
+  }
+}
+
+/*
+ * Get filter.
+ */
+
+Napi::Value Context2d::GetQuality(const Napi::CallbackInfo& info) {
+  CHECK_RECEIVER(Context2d.GetQuality);
+  Context2d *context = info.This().Unwrap<Context2d>();
+  const char *filter;
+  switch (cairo_pattern_get_filter(cairo_get_source(context->context()))) {
+    case CAIRO_FILTER_FAST: filter = "fast"; break;
+    case CAIRO_FILTER_BEST: filter = "best"; break;
+    case CAIRO_FILTER_NEAREST: filter = "nearest"; break;
+    case CAIRO_FILTER_BILINEAR: filter = "bilinear"; break;
+    default: filter = "good";
+  }
+  return Napi::New(env, filter);
+}
+
+/*
+ * Set filter.
+ */
+
+void Context2d::SetQuality(const Napi::CallbackInfo& info, const Napi::Value& value) {
+  CHECK_RECEIVER(Context2d.SetQuality);
+  std::string str = value.As<Napi::String>(.To<Napi::String>());
+  Context2d *context = info.This().Unwrap<Context2d>();
+  cairo_filter_t filter;
+  if (0 == strcmp("fast", *str)) {
+    filter = CAIRO_FILTER_FAST;
+  } else if (0 == strcmp("best", *str)) {
+    filter = CAIRO_FILTER_BEST;
+  } else if (0 == strcmp("nearest", *str)) {
+    filter = CAIRO_FILTER_NEAREST;
+  } else if (0 == strcmp("bilinear", *str)) {
+    filter = CAIRO_FILTER_BILINEAR;
+  } else {
+    filter = CAIRO_FILTER_GOOD;
+  }
+  cairo_pattern_set_filter(cairo_get_source(context->context()), filter);
+}
+
+/*
+ * Helper for get current transform matrix
+ */
+
+Napi::Object
+get_current_transform(Context2d *context) {
+  Isolate *iso = Isolate::GetCurrent();
+
+  Local<Float64Array> arr = Float64Array::New(ArrayBuffer::New(iso, 48), 0, 6);
+  Napi::TypedArrayContents<double> dest(arr);
+  cairo_matrix_t matrix;
+  cairo_get_matrix(context->context(), &matrix);
+  (*dest)[0] = matrix.xx;
+  (*dest)[1] = matrix.yx;
+  (*dest)[2] = matrix.xy;
+  (*dest)[3] = matrix.yy;
+  (*dest)[4] = matrix.x0;
+  (*dest)[5] = matrix.y0;
+
+  const int argc = 1;
+  Napi::Value argv[argc] = { arr };
+  return Napi::NewInstance(context->_DOMMatrix.Get(iso), argc, argv);
+}
+
+/*
+ * Helper for get/set transform.
+ */
+
+void parse_matrix_from_object(cairo_matrix_t &matrix, Napi::Object mat) {
+  cairo_matrix_init(&matrix,
+    (mat).Get(Napi::String::New(env, "a".As<Napi::Number>().DoubleValue())).FromMaybe(0),
+    (mat).Get(Napi::String::New(env, "b".As<Napi::Number>().DoubleValue())).FromMaybe(0),
+    (mat).Get(Napi::String::New(env, "c".As<Napi::Number>().DoubleValue())).FromMaybe(0),
+    (mat).Get(Napi::String::New(env, "d".As<Napi::Number>().DoubleValue())).FromMaybe(0),
+    (mat).Get(Napi::String::New(env, "e".As<Napi::Number>().DoubleValue())).FromMaybe(0),
+    (mat).Get(Napi::String::New(env, "f".As<Napi::Number>().DoubleValue())).FromMaybe(0)
+  );
+}
+
+
+/*
+ * Get current transform.
+ */
+
+Napi::Value Context2d::GetCurrentTransform(const Napi::CallbackInfo& info) {
+  CHECK_RECEIVER(Context2d.GetCurrentTransform);
+  Context2d *context = info.This().Unwrap<Context2d>();
+  Napi::Object instance = get_current_transform(context);
+
+  return instance;
+}
+
+/*
+ * Set current transform.
+ */
+
+void Context2d::SetCurrentTransform(const Napi::CallbackInfo& info, const Napi::Value& value) {
+  CHECK_RECEIVER(Context2d.SetCurrentTransform);
+  Context2d *context = info.This().Unwrap<Context2d>();
+  Local<Context> ctx = Napi::GetCurrentContext();
+  Napi::Object mat = value.To<Napi::Object>();
+
+#if NODE_MAJOR_VERSION >= 8
+  if (!mat->InstanceOf(ctx, _DOMMatrix.Get(Isolate::GetCurrent())).ToChecked()) {
+    Napi::TypeError::New(env, "Expected DOMMatrix").ThrowAsJavaScriptException();
+    return env.Null();
+  }
+#endif
+
+  cairo_matrix_t matrix;
+  parse_matrix_from_object(matrix, mat);
+
+  cairo_transform(context->context(), &matrix);
+}
+
+/*
+ * Get current fill style.
+ */
+
+Napi::Value Context2d::GetFillStyle(const Napi::CallbackInfo& info) {
+  CHECK_RECEIVER(Context2d.GetFillStyle);
+  Context2d *context = info.This().Unwrap<Context2d>();
+  Isolate *iso = Isolate::GetCurrent();
+  Napi::Value style;
+
+  if (context->_fillStyle.IsEmpty())
+    style = context->_getFillColor();
+  else
+    style = context->_fillStyle.Get(iso);
+
+  return style;
+}
+
+/*
+ * Set current fill style.
+ */
+
+void Context2d::SetFillStyle(const Napi::CallbackInfo& info, const Napi::Value& value) {
+  CHECK_RECEIVER(Context2d.SetFillStyle);
+  Context2d *context = info.This().Unwrap<Context2d>();
+
+  if (value.IsString()) {
+    MaybeNapi::String mstr = value.To<Napi::String>();
+    if (mstr.IsEmpty()) return;
+    Napi::String str = mstr;
+    context->_fillStyle.Reset();
+    context->_setFillColor(str);
+  } else if (value.IsObject()) {
+    Napi::Object obj = value.To<Napi::Object>();
+    if (Napi::New(env, Gradient::constructor)->HasInstance(obj)) {
+      context->_fillStyle.Reset(value);
+      Gradient *grad = obj.Unwrap<Gradient>();
+      context->state->fillGradient = grad->pattern();
+    } else if (Napi::New(env, Pattern::constructor)->HasInstance(obj)) {
+      context->_fillStyle.Reset(value);
+      Pattern *pattern = obj.Unwrap<Pattern>();
+      context->state->fillPattern = pattern->pattern();
+    }
+  }
+}
+
+/*
+ * Get current stroke style.
+ */
+
+Napi::Value Context2d::GetStrokeStyle(const Napi::CallbackInfo& info) {
+  CHECK_RECEIVER(Context2d.GetStrokeStyle);
+  Context2d *context = info.This().Unwrap<Context2d>();
+  Napi::Value style;
+
+  if (context->_strokeStyle.IsEmpty())
+    style = context->_getStrokeColor();
+  else
+    style = context->_strokeStyle.Get(Isolate::GetCurrent());
+
+  return style;
+}
+
+/*
+ * Set current stroke style.
+ */
+
+void Context2d::SetStrokeStyle(const Napi::CallbackInfo& info, const Napi::Value& value) {
+  CHECK_RECEIVER(Context2d.SetStrokeStyle);
+  Context2d *context = info.This().Unwrap<Context2d>();
+
+  if (value.IsString()) {
+    MaybeNapi::String mstr = value.To<Napi::String>();
+    if (mstr.IsEmpty()) return;
+    Napi::String str = mstr;
+    context->_strokeStyle.Reset();
+    context->_setStrokeColor(str);
+  } else if (value.IsObject()) {
+    Napi::Object obj = value.To<Napi::Object>();
+    if (Napi::New(env, Gradient::constructor)->HasInstance(obj)) {
+      context->_strokeStyle.Reset(value);
+      Gradient *grad = obj.Unwrap<Gradient>();
+      context->state->strokeGradient = grad->pattern();
+    } else if (Napi::New(env, Pattern::constructor)->HasInstance(obj)) {
+      context->_strokeStyle.Reset(value);
+      Pattern *pattern = obj.Unwrap<Pattern>();
+      context->state->strokePattern = pattern->pattern();
+    }
+  }
+}
+
+/*
+ * Get miter limit.
+ */
+
+Napi::Value Context2d::GetMiterLimit(const Napi::CallbackInfo& info) {
+  CHECK_RECEIVER(Context2d.GetMiterLimit);
+  Context2d *context = info.This().Unwrap<Context2d>();
+  return Napi::Number::New(env, cairo_get_miter_limit(context->context()));
+}
+
+/*
+ * Set miter limit.
+ */
+
+void Context2d::SetMiterLimit(const Napi::CallbackInfo& info, const Napi::Value& value) {
+  CHECK_RECEIVER(Context2d.SetMiterLimit);
+  double n = value.As<Napi::Number>().DoubleValue().FromMaybe(0);
+  if (n > 0) {
+    Context2d *context = info.This().Unwrap<Context2d>();
+    cairo_set_miter_limit(context->context(), n);
+  }
+}
+
+/*
+ * Get line width.
+ */
+
+Napi::Value Context2d::GetLineWidth(const Napi::CallbackInfo& info) {
+  CHECK_RECEIVER(Context2d.GetLineWidth);
+  Context2d *context = info.This().Unwrap<Context2d>();
+  return Napi::Number::New(env, cairo_get_line_width(context->context()));
+}
+
+/*
+ * Set line width.
+ */
+
+void Context2d::SetLineWidth(const Napi::CallbackInfo& info, const Napi::Value& value) {
+  CHECK_RECEIVER(Context2d.SetLineWidth);
+  double n = value.As<Napi::Number>().DoubleValue().FromMaybe(0);
+  if (n > 0 && n != std::numeric_limits<double>::infinity()) {
+    Context2d *context = info.This().Unwrap<Context2d>();
+    cairo_set_line_width(context->context(), n);
+  }
+}
+
+/*
+ * Get line join.
+ */
+
+Napi::Value Context2d::GetLineJoin(const Napi::CallbackInfo& info) {
+  CHECK_RECEIVER(Context2d.GetLineJoin);
+  Context2d *context = info.This().Unwrap<Context2d>();
+  const char *join;
+  switch (cairo_get_line_join(context->context())) {
+    case CAIRO_LINE_JOIN_BEVEL: join = "bevel"; break;
+    case CAIRO_LINE_JOIN_ROUND: join = "round"; break;
+    default: join = "miter";
+  }
+  return Napi::New(env, join);
+}
+
+/*
+ * Set line join.
+ */
+
+void Context2d::SetLineJoin(const Napi::CallbackInfo& info, const Napi::Value& value) {
+  CHECK_RECEIVER(Context2d.SetLineJoin);
+  Context2d *context = info.This().Unwrap<Context2d>();
+  cairo_t *ctx = context->context();
+  std::string type = value.As<Napi::String>(.To<Napi::String>());
+  if (0 == strcmp("round", *type)) {
+    cairo_set_line_join(ctx, CAIRO_LINE_JOIN_ROUND);
+  } else if (0 == strcmp("bevel", *type)) {
+    cairo_set_line_join(ctx, CAIRO_LINE_JOIN_BEVEL);
+  } else {
+    cairo_set_line_join(ctx, CAIRO_LINE_JOIN_MITER);
+  }
+}
+
+/*
+ * Get line cap.
+ */
+
+Napi::Value Context2d::GetLineCap(const Napi::CallbackInfo& info) {
+  CHECK_RECEIVER(Context2d.GetLineCap);
+  Context2d *context = info.This().Unwrap<Context2d>();
+  const char *cap;
+  switch (cairo_get_line_cap(context->context())) {
+    case CAIRO_LINE_CAP_ROUND: cap = "round"; break;
+    case CAIRO_LINE_CAP_SQUARE: cap = "square"; break;
+    default: cap = "butt";
+  }
+  return Napi::New(env, cap);
+}
+
+/*
+ * Set line cap.
+ */
+
+void Context2d::SetLineCap(const Napi::CallbackInfo& info, const Napi::Value& value) {
+  CHECK_RECEIVER(Context2d.SetLineCap);
+  Context2d *context = info.This().Unwrap<Context2d>();
+  cairo_t *ctx = context->context();
+  std::string type = value.As<Napi::String>(.To<Napi::String>());
+  if (0 == strcmp("round", *type)) {
+    cairo_set_line_cap(ctx, CAIRO_LINE_CAP_ROUND);
+  } else if (0 == strcmp("square", *type)) {
+    cairo_set_line_cap(ctx, CAIRO_LINE_CAP_SQUARE);
+  } else {
+    cairo_set_line_cap(ctx, CAIRO_LINE_CAP_BUTT);
+  }
+}
+
+/*
+ * Check if the given point is within the current path.
+ */
+
+Napi::Value Context2d::IsPointInPath(const Napi::CallbackInfo& info) {
+  if (info[0].IsNumber() && info[1].IsNumber()) {
+    Context2d *context = info.This().Unwrap<Context2d>();
+    cairo_t *ctx = context->context();
+    double x = info[0].As<Napi::Number>().DoubleValue().FromMaybe(0)
+         , y = info[1].As<Napi::Number>().DoubleValue().FromMaybe(0);
+    context->setFillRule(info[2]);
+    return Napi::Boolean::New(env, cairo_in_fill(ctx, x, y) || cairo_in_stroke(ctx, x, y));
+    return;
+  }
+  return env.False();
+}
+
+/*
+ * Set shadow color.
+ */
+
+void Context2d::SetShadowColor(const Napi::CallbackInfo& info, const Napi::Value& value) {
+  CHECK_RECEIVER(Context2d.SetShadowColor);
+  short ok;
+  std::string str = value.As<Napi::String>(.To<Napi::String>());
+  uint32_t rgba = rgba_from_string(*str, &ok);
+  if (ok) {
+    Context2d *context = info.This().Unwrap<Context2d>();
+    context->state->shadow = rgba_create(rgba);
+  }
+}
+
+/*
+ * Get shadow color.
+ */
+
+Napi::Value Context2d::GetShadowColor(const Napi::CallbackInfo& info) {
+  CHECK_RECEIVER(Context2d.GetShadowColor);
+  char buf[64];
+  Context2d *context = info.This().Unwrap<Context2d>();
+  rgba_to_string(context->state->shadow, buf, sizeof(buf));
+  return Napi::String::New(env, buf);
+}
+
+/*
+ * Set fill color, used internally for fillStyle=
+ */
+
+void Context2d::_setFillColor(Napi::Value arg) {
+  Napi::Env env = arg.Env();
+  short ok;
+  std::string str = arg.As<Napi::String>();
+  uint32_t rgba = rgba_from_string(*str, &ok);
+  if (!ok) return;
+  state->fillPattern = state->fillGradient = NULL;
+  state->fill = rgba_create(rgba);
+}
+
+/*
+ * Get fill color.
+ */
+
+Napi::Value Context2d::_getFillColor() {
+  char buf[64];
+  rgba_to_string(state->fill, buf, sizeof(buf));
+  return Napi::String::New(env, buf);
+}
+
+/*
+ * Set stroke color, used internally for strokeStyle=
+ */
+
+void Context2d::_setStrokeColor(Napi::Value arg) {
+  Napi::Env env = arg.Env();
+  short ok;
+  std::string str = arg.As<Napi::String>();
+  uint32_t rgba = rgba_from_string(*str, &ok);
+  if (!ok) return;
+  state->strokePattern = state->strokeGradient = NULL;
+  state->stroke = rgba_create(rgba);
+}
+
+/*
+ * Get stroke color.
+ */
+
+Napi::Value Context2d::_getStrokeColor() {
+  char buf[64];
+  rgba_to_string(state->stroke, buf, sizeof(buf));
+  return Napi::String::New(env, buf);
+}
+
+Napi::Value Context2d::CreatePattern(const Napi::CallbackInfo& info) {
+  Napi::Value image = info[0];
+  Napi::Value repetition = info[1];
+
+  if (!repetition.As<Napi::Boolean>().Value().FromMaybe(false))
+    repetition = Napi::String::New(env, "repeat");
+
+  const int argc = 2;
+  Napi::Value argv[argc] = { image, repetition };
+
+  Napi::Function ctor = Napi::GetFunction(Napi::New(env, Pattern::constructor));
+  Napi::Object instance = Napi::NewInstance(ctor, argc, argv);
+
+  return instance;
+}
+
+Napi::Value Context2d::CreateLinearGradient(const Napi::CallbackInfo& info) {
+  const int argc = 4;
+  Napi::Value argv[argc] = { info[0], info[1], info[2], info[3] };
+
+  Napi::Function ctor = Napi::GetFunction(Napi::New(env, Gradient::constructor));
+  Napi::Object instance = Napi::NewInstance(ctor, argc, argv);
+
+  return instance;
+}
+
+Napi::Value Context2d::CreateRadialGradient(const Napi::CallbackInfo& info) {
+  const int argc = 6;
+  Napi::Value argv[argc] = { info[0], info[1], info[2], info[3], info[4], info[5] };
+
+  Napi::Function ctor = Napi::GetFunction(Napi::New(env, Gradient::constructor));
+  Napi::Object instance = Napi::NewInstance(ctor, argc, argv);
+
+  return instance;
+}
+
+/*
+ * Bezier curve.
+ */
+
+Napi::Value Context2d::BezierCurveTo(const Napi::CallbackInfo& info) {
+  double args[6];
+  if(!checkArgs(info, args, 6))
+    return;
+
+  Context2d *context = info.This().Unwrap<Context2d>();
+  cairo_curve_to(context->context()
+    , args[0]
+    , args[1]
+    , args[2]
+    , args[3]
+    , args[4]
+    , args[5]);
+}
+
+/*
+ * Quadratic curve approximation from libsvg-cairo.
+ */
+
+Napi::Value Context2d::QuadraticCurveTo(const Napi::CallbackInfo& info) {
+  double args[4];
+  if(!checkArgs(info, args, 4))
+    return;
+
+  Context2d *context = info.This().Unwrap<Context2d>();
+  cairo_t *ctx = context->context();
+
+  double x, y
+    , x1 = args[0]
+    , y1 = args[1]
+    , x2 = args[2]
+    , y2 = args[3];
+
+  cairo_get_current_point(ctx, &x, &y);
+
+  if (0 == x && 0 == y) {
+    x = x1;
+    y = y1;
+  }
+
+  cairo_curve_to(ctx
+    , x  + 2.0 / 3.0 * (x1 - x),  y  + 2.0 / 3.0 * (y1 - y)
+    , x2 + 2.0 / 3.0 * (x1 - x2), y2 + 2.0 / 3.0 * (y1 - y2)
+    , x2
+    , y2);
+}
+
+/*
+ * Save state.
+ */
+
+Napi::Value Context2d::Save(const Napi::CallbackInfo& info) {
+  Context2d *context = info.This().Unwrap<Context2d>();
+  context->save();
+}
+
+/*
+ * Restore state.
+ */
+
+Napi::Value Context2d::Restore(const Napi::CallbackInfo& info) {
+  Context2d *context = info.This().Unwrap<Context2d>();
+  context->restore();
+}
+
+/*
+ * Creates a new subpath.
+ */
+
+Napi::Value Context2d::BeginPath(const Napi::CallbackInfo& info) {
+  Context2d *context = info.This().Unwrap<Context2d>();
+  cairo_new_path(context->context());
+}
+
+/*
+ * Marks the subpath as closed.
+ */
+
+Napi::Value Context2d::ClosePath(const Napi::CallbackInfo& info) {
+  Context2d *context = info.This().Unwrap<Context2d>();
+  cairo_close_path(context->context());
+}
+
+/*
+ * Rotate transformation.
+ */
+
+Napi::Value Context2d::Rotate(const Napi::CallbackInfo& info) {
+  double args[1];
+  if(!checkArgs(info, args, 1))
+    return;
+
+  Context2d *context = info.This().Unwrap<Context2d>();
+  cairo_rotate(context->context(), args[0]);
+}
+
+/*
+ * Modify the CTM.
+ */
+
+Napi::Value Context2d::Transform(const Napi::CallbackInfo& info) {
+  double args[6];
+  if(!checkArgs(info, args, 6))
+    return;
+
+  cairo_matrix_t matrix;
+  cairo_matrix_init(&matrix
+    , args[0]
+    , args[1]
+    , args[2]
+    , args[3]
+    , args[4]
+    , args[5]);
+
+  Context2d *context = info.This().Unwrap<Context2d>();
+  cairo_transform(context->context(), &matrix);
+}
+
+/*
+ * Get the CTM
+ */
+
+Napi::Value Context2d::GetTransform(const Napi::CallbackInfo& info) {
+  Context2d *context = info.This().Unwrap<Context2d>();
+  Napi::Object instance = get_current_transform(context);
+
+  return instance;
+}
+
+/*
+ * Reset the CTM, used internally by setTransform().
+ */
+
+Napi::Value Context2d::ResetTransform(const Napi::CallbackInfo& info) {
+  Context2d *context = info.This().Unwrap<Context2d>();
+  cairo_identity_matrix(context->context());
+}
+
+/*
+ * Reset transform matrix to identity, then apply the given args.
+ */
+
+Napi::Value Context2d::SetTransform(const Napi::CallbackInfo& info) {
+  Context2d *context = info.This().Unwrap<Context2d>();
+  if (info.Length() == 1) {
+    Napi::Object mat = info[0].To<Napi::Object>();
+
+    #if NODE_MAJOR_VERSION >= 8
+      Local<Context> ctx = Napi::GetCurrentContext();
+      if (!mat->InstanceOf(ctx, _DOMMatrix.Get(Isolate::GetCurrent())).ToChecked()) {
+        Napi::TypeError::New(env, "Expected DOMMatrix").ThrowAsJavaScriptException();
+        return env.Null();
+      }
+    #endif
+
+    cairo_matrix_t matrix;
+    parse_matrix_from_object(matrix, mat);
+
+    cairo_set_matrix(context->context(), &matrix);
+  } else {
+    cairo_identity_matrix(context->context());
+    Context2d::Transform(info);
+  }
+}
+
+/*
+ * Translate transformation.
+ */
+
+Napi::Value Context2d::Translate(const Napi::CallbackInfo& info) {
+  double args[2];
+  if(!checkArgs(info, args, 2))
+    return;
+
+  Context2d *context = info.This().Unwrap<Context2d>();
+  cairo_translate(context->context(), args[0], args[1]);
+}
+
+/*
+ * Scale transformation.
+ */
+
+Napi::Value Context2d::Scale(const Napi::CallbackInfo& info) {
+  double args[2];
+  if(!checkArgs(info, args, 2))
+    return;
+
+  Context2d *context = info.This().Unwrap<Context2d>();
+  cairo_scale(context->context(), args[0], args[1]);
+}
+
+/*
+ * Use path as clipping region.
+ */
+
+Napi::Value Context2d::Clip(const Napi::CallbackInfo& info) {
+  Context2d *context = info.This().Unwrap<Context2d>();
+  context->setFillRule(info[0]);
+  cairo_t *ctx = context->context();
+  cairo_clip_preserve(ctx);
+}
+
+/*
+ * Fill the path.
+ */
+
+Napi::Value Context2d::Fill(const Napi::CallbackInfo& info) {
+  Context2d *context = info.This().Unwrap<Context2d>();
+  context->setFillRule(info[0]);
+  context->fill(true);
+}
+
+/*
+ * Stroke the path.
+ */
+
+Napi::Value Context2d::Stroke(const Napi::CallbackInfo& info) {
+  Context2d *context = info.This().Unwrap<Context2d>();
+  context->stroke(true);
+}
+
+/*
+ * Helper for fillText/strokeText
+ */
+
+double
+get_text_scale(PangoLayout *layout, double maxWidth) {
+
+  PangoRectangle logical_rect;
+  pango_layout_get_pixel_extents(layout, NULL, &logical_rect);
+
+  if (logical_rect.width > maxWidth) {
+    return maxWidth / logical_rect.width;
+  } else {
+    return 1.0;
+  }
+}
+
+void
+paintText(const Napi::CallbackInfo&info, bool stroke) {
+  int argsNum = info.Length() >= 4 ? 3 : 2;
+
+  if (argsNum == 3 && info[3].IsUndefined())
+    argsNum = 2;
+
+  double args[3];
+  if(!checkArgs(info, args, argsNum, 1))
+    return;
+
+  std::string str = info[0].As<Napi::String>(.To<Napi::String>());
+  double x = args[0];
+  double y = args[1];
+  double scaled_by = 1;
+
+  Context2d *context = info.This().Unwrap<Context2d>();
+  PangoLayout *layout = context->layout();
+
+  pango_layout_set_text(layout, *str, -1);
+  pango_cairo_update_layout(context->context(), layout);
+
+  if (argsNum == 3) {
+    scaled_by = get_text_scale(layout, args[2]);
+    cairo_save(context->context());
+    cairo_scale(context->context(), scaled_by, 1);
+  }
+
+  context->savePath();
+  if (context->state->textDrawingMode == TEXT_DRAW_GLYPHS) {
+    if (stroke == true) { context->stroke(); } else { context->fill(); }
+    context->setTextPath(x / scaled_by, y);
+  } else if (context->state->textDrawingMode == TEXT_DRAW_PATHS) {
+    context->setTextPath(x / scaled_by, y);
+    if (stroke == true) { context->stroke(); } else { context->fill(); }
+  }
+  context->restorePath();
+  if (argsNum == 3) {
+    cairo_restore(context->context());
+  }
+}
+
+/*
+ * Fill text at (x, y).
+ */
+
+Napi::Value Context2d::FillText(const Napi::CallbackInfo& info) {
+  paintText(info, false);
+}
+
+/*
+ * Stroke text at (x ,y).
+ */
+
+Napi::Value Context2d::StrokeText(const Napi::CallbackInfo& info) {
+  paintText(info, true);
+}
+
+/*
+ * Gets the baseline adjustment in device pixels
+ */
+inline double getBaselineAdjustment(PangoLayout* layout, short baseline) {
+  PangoRectangle logical_rect;
+  pango_layout_line_get_extents(pango_layout_get_line(layout, 0), NULL, &logical_rect);
+
+  double scale = 1.0 / PANGO_SCALE;
+  double ascent = scale * pango_layout_get_baseline(layout);
+  double descent = scale * logical_rect.height - ascent;
+
+  switch (baseline) {
+  case TEXT_BASELINE_ALPHABETIC:
+    return ascent;
+  case TEXT_BASELINE_MIDDLE:
+    return (ascent + descent) / 2.0;
+  case TEXT_BASELINE_BOTTOM:
+    return ascent + descent;
+  default:
+    return 0;
+  }
+}
+
+/*
+ * Set text path for the string in the layout at (x, y).
+ * This function is called by paintText and won't behave correctly
+ * if is not called from there.
+ * it needs pango_layout_set_text and pango_cairo_update_layout to be called before
+ */
+
+void
+Context2d::setTextPath(double x, double y) {
+  PangoRectangle logical_rect;
+
+  switch (state->textAlignment) {
+    case TEXT_ALIGNMENT_CENTER:
+      pango_layout_get_pixel_extents(_layout, NULL, &logical_rect);
+      x -= logical_rect.width / 2;
+      break;
+    case TEXT_ALIGNMENT_END:
+    case TEXT_ALIGNMENT_RIGHT:
+      pango_layout_get_pixel_extents(_layout, NULL, &logical_rect);
+      x -= logical_rect.width;
+      break;
+  }
+
+  y -= getBaselineAdjustment(_layout, state->textBaseline);
+
+  cairo_move_to(_context, x, y);
+  if (state->textDrawingMode == TEXT_DRAW_PATHS) {
+    pango_cairo_layout_path(_context, _layout);
+  } else if (state->textDrawingMode == TEXT_DRAW_GLYPHS) {
+    pango_cairo_show_layout(_context, _layout);
+  }
+}
+
+/*
+ * Adds a point to the current subpath.
+ */
+
+Napi::Value Context2d::LineTo(const Napi::CallbackInfo& info) {
+  double args[2];
+  if(!checkArgs(info, args, 2))
+    return;
+
+  Context2d *context = info.This().Unwrap<Context2d>();
+  cairo_line_to(context->context(), args[0], args[1]);
+}
+
+/*
+ * Creates a new subpath at the given point.
+ */
+
+Napi::Value Context2d::MoveTo(const Napi::CallbackInfo& info) {
+  double args[2];
+  if(!checkArgs(info, args, 2))
+    return;
+
+  Context2d *context = info.This().Unwrap<Context2d>();
+  cairo_move_to(context->context(), args[0], args[1]);
+}
+
+/*
+ * Get font.
+ */
+
+Napi::Value Context2d::GetFont(const Napi::CallbackInfo& info) {
+  CHECK_RECEIVER(Context2d.GetFont);
+  Context2d *context = info.This().Unwrap<Context2d>();
+
+  return Napi::New(env, context->state->font);
+}
+
+/*
+ * Set font:
+ *   - weight
+ *   - style
+ *   - size
+ *   - unit
+ *   - family
+ */
+
+void Context2d::SetFont(const Napi::CallbackInfo& info, const Napi::Value& value) {
+  CHECK_RECEIVER(Context2d.SetFont);
+  if (!value.IsString()) return;
+
+  Isolate *iso = Isolate::GetCurrent();
+  Local<Context> ctx = Napi::GetCurrentContext();
+
+  Napi::String str = value.To<Napi::String>();
+  if (!str->Length()) return;
+
+  const int argc = 1;
+  Napi::Value argv[argc] = { value };
+
+  Napi::Value mparsed = Napi::Call(_parseFont.Get(iso), ctx->Global(), argc, argv);
+  // parseFont returns undefined for invalid CSS font strings
+  if (mparsed->IsUndefined()) return;
+  Napi::Object font = mparsed.To<Napi::Object>();
+
+  std::string weight = (font).Get(Napi::New(env, "weight".As<Napi::String>()));
+  std::string style = (font).Get(Napi::New(env, "style".As<Napi::String>()));
+  double size = (font).Get(Napi::String::New(env, "size".As<Napi::Number>().DoubleValue())).FromMaybe(0);
+  std::string unit = (font).Get(Napi::New(env, "unit".As<Napi::String>()));
+  std::string family = (font).Get(Napi::New(env, "family".As<Napi::String>()));
+
+  Context2d *context = info.This().Unwrap<Context2d>();
+
+  PangoFontDescription *desc = pango_font_description_copy(context->state->fontDescription);
+  pango_font_description_free(context->state->fontDescription);
+
+  pango_font_description_set_style(desc, Canvas::GetStyleFromCSSString(*style));
+  pango_font_description_set_weight(desc, Canvas::GetWeightFromCSSString(*weight));
+
+  if (strlen(*family) > 0) {
+    // See #1643 - Pango understands "sans" whereas CSS uses "sans-serif"
+    std::string s1(*family);
+    std::string s2("sans-serif");
+    if (streq_casein(s1, s2)) {
+      pango_font_description_set_family(desc, "sans");
+    } else {
+      pango_font_description_set_family(desc, *family);
+    }
+  }
+
+  PangoFontDescription *sys_desc = Canvas::ResolveFontDescription(desc);
+  pango_font_description_free(desc);
+
+  if (size > 0) pango_font_description_set_absolute_size(sys_desc, size * PANGO_SCALE);
+
+  context->state->fontDescription = sys_desc;
+  pango_layout_set_font_description(context->_layout, sys_desc);
+
+  context->state->font = value->As<Napi::String>().Utf8Value().c_str();
+}
+
+/*
+ * Get text baseline.
+ */
+
+Napi::Value Context2d::GetTextBaseline(const Napi::CallbackInfo& info) {
+  CHECK_RECEIVER(Context2d.GetTextBaseline);
+  Context2d *context = info.This().Unwrap<Context2d>();
+  const char* baseline;
+  switch (context->state->textBaseline) {
+    default:
+    case TEXT_BASELINE_ALPHABETIC: baseline = "alphabetic"; break;
+    case TEXT_BASELINE_TOP: baseline = "top"; break;
+    case TEXT_BASELINE_BOTTOM: baseline = "bottom"; break;
+    case TEXT_BASELINE_MIDDLE: baseline = "middle"; break;
+    case TEXT_BASELINE_IDEOGRAPHIC: baseline = "ideographic"; break;
+    case TEXT_BASELINE_HANGING: baseline = "hanging"; break;
+  }
+  return Napi::New(env, baseline);
+}
+
+/*
+ * Set text baseline.
+ */
+
+void Context2d::SetTextBaseline(const Napi::CallbackInfo& info, const Napi::Value& value) {
+  CHECK_RECEIVER(Context2d.SetTextBaseline);
+  if (!value.IsString()) return;
+
+  std::string opStr = value.As<Napi::String>(.To<Napi::String>());
+  const std::map<std::string, text_baseline_t> modes = {
+    {"alphabetic", TEXT_BASELINE_ALPHABETIC},
+    {"top", TEXT_BASELINE_TOP},
+    {"bottom", TEXT_BASELINE_BOTTOM},
+    {"middle", TEXT_BASELINE_MIDDLE},
+    {"ideographic", TEXT_BASELINE_IDEOGRAPHIC},
+    {"hanging", TEXT_BASELINE_HANGING}
+  };
+  auto op = modes.find(*opStr);
+  if (op == modes.end()) return;
+
+  Context2d *context = info.This().Unwrap<Context2d>();
+  context->state->textBaseline = op->second;
+}
+
+/*
+ * Get text align.
+ */
+
+Napi::Value Context2d::GetTextAlign(const Napi::CallbackInfo& info) {
+  CHECK_RECEIVER(Context2d.GetTextAlign);
+  Context2d *context = info.This().Unwrap<Context2d>();
+  const char* align;
+  switch (context->state->textAlignment) {
+    default:
+    // TODO the default is supposed to be "start"
+    case TEXT_ALIGNMENT_LEFT: align = "left"; break;
+    case TEXT_ALIGNMENT_START: align = "start"; break;
+    case TEXT_ALIGNMENT_CENTER: align = "center"; break;
+    case TEXT_ALIGNMENT_RIGHT: align = "right"; break;
+    case TEXT_ALIGNMENT_END: align = "end"; break;
+  }
+  return Napi::New(env, align);
+}
+
+/*
+ * Set text align.
+ */
+
+void Context2d::SetTextAlign(const Napi::CallbackInfo& info, const Napi::Value& value) {
+  CHECK_RECEIVER(Context2d.SetTextAlign);
+  if (!value.IsString()) return;
+
+  std::string opStr = value.As<Napi::String>(.To<Napi::String>());
+  const std::map<std::string, text_align_t> modes = {
+    {"center", TEXT_ALIGNMENT_CENTER},
+    {"left", TEXT_ALIGNMENT_LEFT},
+    {"start", TEXT_ALIGNMENT_START},
+    {"right", TEXT_ALIGNMENT_RIGHT},
+    {"end", TEXT_ALIGNMENT_END}
+  };
+  auto op = modes.find(*opStr);
+  if (op == modes.end()) return;
+
+  Context2d *context = info.This().Unwrap<Context2d>();
+  context->state->textAlignment = op->second;
+}
+
+/*
+ * Return the given text extents.
+ * TODO: Support for:
+ * hangingBaseline, ideographicBaseline,
+ * fontBoundingBoxAscent, fontBoundingBoxDescent
+ */
+
+Napi::Value Context2d::MeasureText(const Napi::CallbackInfo& info) {
+  Context2d *context = info.This().Unwrap<Context2d>();
+  cairo_t *ctx = context->context();
+
+  std::string str = info[0].As<Napi::String>(.To<Napi::String>());
+  Napi::Object obj = Napi::Object::New(env);
+
+  PangoRectangle _ink_rect, _logical_rect;
+  float_rectangle ink_rect, logical_rect;
+  PangoFontMetrics *metrics;
+  PangoLayout *layout = context->layout();
+
+  pango_layout_set_text(layout, *str, -1);
+  pango_cairo_update_layout(ctx, layout);
+
+  // Normally you could use pango_layout_get_pixel_extents and be done, or use
+  // pango_extents_to_pixels, but both of those round the pixels, so we have to
+  // divide by PANGO_SCALE manually
+  pango_layout_get_extents(layout, &_ink_rect, &_logical_rect);
+
+  float inverse_pango_scale = 1. / PANGO_SCALE;
+
+  logical_rect.x = _logical_rect.x * inverse_pango_scale;
+  logical_rect.y = _logical_rect.y * inverse_pango_scale;
+  logical_rect.width = _logical_rect.width * inverse_pango_scale;
+  logical_rect.height = _logical_rect.height * inverse_pango_scale;
+
+  ink_rect.x = _ink_rect.x * inverse_pango_scale;
+  ink_rect.y = _ink_rect.y * inverse_pango_scale;
+  ink_rect.width = _ink_rect.width * inverse_pango_scale;
+  ink_rect.height = _ink_rect.height * inverse_pango_scale;
+
+  metrics = PANGO_LAYOUT_GET_METRICS(layout);
+
+  double x_offset;
+  switch (context->state->textAlignment) {
+    case TEXT_ALIGNMENT_CENTER:
+      x_offset = logical_rect.width / 2.;
+      break;
+    case TEXT_ALIGNMENT_END:
+    case TEXT_ALIGNMENT_RIGHT:
+      x_offset = logical_rect.width;
+      break;
+    case TEXT_ALIGNMENT_START:
+    case TEXT_ALIGNMENT_LEFT:
+    default:
+      x_offset = 0.0;
+  }
+
+  cairo_matrix_t matrix;
+  cairo_get_matrix(ctx, &matrix);
+  double y_offset = getBaselineAdjustment(layout, context->state->textBaseline);
+
+  (obj).Set(Napi::String::New(env, "width"),
+           Napi::Number::New(env, logical_rect.width)).Check();
+  (obj).Set(Napi::String::New(env, "actualBoundingBoxLeft"),
+           Napi::Number::New(env, PANGO_LBEARING(ink_rect) + x_offset)).Check();
+  (obj).Set(Napi::String::New(env, "actualBoundingBoxRight"),
+           Napi::Number::New(env, PANGO_RBEARING(ink_rect) - x_offset)).Check();
+  (obj).Set(Napi::String::New(env, "actualBoundingBoxAscent"),
+           Napi::Number::New(env, y_offset + PANGO_ASCENT(ink_rect))).Check();
+  (obj).Set(Napi::String::New(env, "actualBoundingBoxDescent"),
+           Napi::Number::New(env, PANGO_DESCENT(ink_rect) - y_offset)).Check();
+  (obj).Set(Napi::String::New(env, "emHeightAscent"),
+           Napi::Number::New(env, -(PANGO_ASCENT(logical_rect) - y_offset))).Check();
+  (obj).Set(Napi::String::New(env, "emHeightDescent"),
+           Napi::Number::New(env, PANGO_DESCENT(logical_rect) - y_offset)).Check();
+  (obj).Set(Napi::String::New(env, "alphabeticBaseline"),
+           Napi::Number::New(env, -(pango_font_metrics_get_ascent(metrics) * inverse_pango_scale - y_offset))).Check();
+
+  pango_font_metrics_unref(metrics);
+
+  return obj;
+}
+
+/*
+ * Set line dash
+ * ref: http://www.w3.org/TR/2dcontext/#dom-context-2d-setlinedash
+ */
+
+Napi::Value Context2d::SetLineDash(const Napi::CallbackInfo& info) {
+  if (!info[0].IsArray()) return;
+  Napi::Array dash = info[0].As<Napi::Array>();
+  uint32_t dashes = dash->Length() & 1 ? dash->Length() * 2 : dash->Length();
+  uint32_t zero_dashes = 0;
+  std::vector<double> a(dashes);
+  for (uint32_t i=0; i<dashes; i++) {
+    Napi::Value d = (dash).Get(i % dash->Length());
+    if (!d.IsNumber()) return;
+    a[i] = d.As<Napi::Number>().DoubleValue().FromMaybe(0);
+    if (a[i] == 0) zero_dashes++;
+    if (a[i] < 0 || !std::isfinite(a[i])) return;
+  }
+
+  Context2d *context = info.This().Unwrap<Context2d>();
+  cairo_t *ctx = context->context();
+  double offset;
+  cairo_get_dash(ctx, NULL, &offset);
+  if (zero_dashes == dashes) {
+    std::vector<double> b(0);
+    cairo_set_dash(ctx, b.data(), 0, offset);
+  } else {
+    cairo_set_dash(ctx, a.data(), dashes, offset);
+  }
+}
+
+/*
+ * Get line dash
+ * ref: http://www.w3.org/TR/2dcontext/#dom-context-2d-setlinedash
+ */
+Napi::Value Context2d::GetLineDash(const Napi::CallbackInfo& info) {
+  Context2d *context = info.This().Unwrap<Context2d>();
+  cairo_t *ctx = context->context();
+  int dashes = cairo_get_dash_count(ctx);
+  std::vector<double> a(dashes);
+  cairo_get_dash(ctx, a.data(), NULL);
+
+  Napi::Array dash = Napi::Array::New(env, dashes);
+  for (int i=0; i<dashes; i++) {
+    (dash).Set(Napi::Number::New(env, i), Napi::Number::New(env, a[i])).Check();
+  }
+
+  return dash;
+}
+
+/*
+ * Set line dash offset
+ * ref: http://www.w3.org/TR/2dcontext/#dom-context-2d-setlinedash
+ */
+void Context2d::SetLineDashOffset(const Napi::CallbackInfo& info, const Napi::Value& value) {
+  CHECK_RECEIVER(Context2d.SetLineDashOffset);
+  double offset = value.As<Napi::Number>().DoubleValue().FromMaybe(0);
+  if (!std::isfinite(offset)) return;
+
+  Context2d *context = info.This().Unwrap<Context2d>();
+  cairo_t *ctx = context->context();
+
+  int dashes = cairo_get_dash_count(ctx);
+  std::vector<double> a(dashes);
+  cairo_get_dash(ctx, a.data(), NULL);
+  cairo_set_dash(ctx, a.data(), dashes, offset);
+}
+
+/*
+ * Get line dash offset
+ * ref: http://www.w3.org/TR/2dcontext/#dom-context-2d-setlinedash
+ */
+Napi::Value Context2d::GetLineDashOffset(const Napi::CallbackInfo& info) {
+  CHECK_RECEIVER(Context2d.GetLineDashOffset);
+  Context2d *context = info.This().Unwrap<Context2d>();
+  cairo_t *ctx = context->context();
+  double offset;
+  cairo_get_dash(ctx, NULL, &offset);
+
+  return Napi::Number::New(env, offset);
+}
+
+/*
+ * Fill the rectangle defined by x, y, width and height.
+ */
+
+Napi::Value Context2d::FillRect(const Napi::CallbackInfo& info) {
+  RECT_ARGS;
+  if (0 == width || 0 == height) return;
+  Context2d *context = info.This().Unwrap<Context2d>();
+  cairo_t *ctx = context->context();
+  context->savePath();
+  cairo_rectangle(ctx, x, y, width, height);
+  context->fill();
+  context->restorePath();
+}
+
+/*
+ * Stroke the rectangle defined by x, y, width and height.
+ */
+
+Napi::Value Context2d::StrokeRect(const Napi::CallbackInfo& info) {
+  RECT_ARGS;
+  if (0 == width && 0 == height) return;
+  Context2d *context = info.This().Unwrap<Context2d>();
+  cairo_t *ctx = context->context();
+  context->savePath();
+  cairo_rectangle(ctx, x, y, width, height);
+  context->stroke();
+  context->restorePath();
+}
+
+/*
+ * Clears all pixels defined by x, y, width and height.
+ */
+
+Napi::Value Context2d::ClearRect(const Napi::CallbackInfo& info) {
+  RECT_ARGS;
+  if (0 == width || 0 == height) return;
+  Context2d *context = info.This().Unwrap<Context2d>();
+  cairo_t *ctx = context->context();
+  cairo_save(ctx);
+  context->savePath();
+  cairo_rectangle(ctx, x, y, width, height);
+  cairo_set_operator(ctx, CAIRO_OPERATOR_CLEAR);
+  cairo_fill(ctx);
+  context->restorePath();
+  cairo_restore(ctx);
+}
+
+/*
+ * Adds a rectangle subpath.
+ */
+
+Napi::Value Context2d::Rect(const Napi::CallbackInfo& info) {
+  RECT_ARGS;
+  Context2d *context = info.This().Unwrap<Context2d>();
+  cairo_t *ctx = context->context();
+  if (width == 0) {
+    cairo_move_to(ctx, x, y);
+    cairo_line_to(ctx, x, y + height);
+  } else if (height == 0) {
+    cairo_move_to(ctx, x, y);
+    cairo_line_to(ctx, x + width, y);
+  } else {
+    cairo_rectangle(ctx, x, y, width, height);
+  }
+}
+
+// Draws an arc with two potentially different radii.
+inline static
+void elli_arc(cairo_t* ctx, double xc, double yc, double rx, double ry, double a1, double a2, bool clockwise=true) {
+  if (rx == 0. || ry == 0.) {
+    cairo_line_to(ctx, xc + rx, yc + ry);
+  } else {
+    cairo_save(ctx);
+    cairo_translate(ctx, xc, yc);
+    cairo_scale(ctx, rx, ry);
+    if (clockwise)
+      cairo_arc(ctx, 0., 0., 1., a1, a2);
+    else
+      cairo_arc_negative(ctx, 0., 0., 1., a2, a1);
+    cairo_restore(ctx);
+  }
+}
+
+inline static
+bool getRadius(Point<double>& p, const Napi::Value& v) {
+  if (v.IsObject()) { // 5.1 DOMPointInit
+    auto rx = (v.As<Napi::Object>()).Get(Napi::String::New(env, "x"));
+    auto ry = (v.As<Napi::Object>()).Get(Napi::String::New(env, "y"));
+    if (rx.IsNumber() && ry.IsNumber()) {
+      auto rxv = rx.As<Napi::Number>().DoubleValue();
+      auto ryv = ry.As<Napi::Number>().DoubleValue();
+      if (!std::isfinite(rxv) || !std::isfinite(ryv))
+        return true;
+      if (rxv < 0 || ryv < 0) {
+        Napi::RangeError::New(env, "radii must be positive.").ThrowAsJavaScriptException();
+
+        return true;
+      }
+      p.x = rxv;
+      p.y = ryv;
+      return false;
+    }
+  } else if (v.IsNumber()) { // 5.2 unrestricted double
+    auto rv = v.As<Napi::Number>().DoubleValue();
+    if (!std::isfinite(rv))
+      return true;
+    if (rv < 0) {
+      Napi::RangeError::New(env, "radii must be positive.").ThrowAsJavaScriptException();
+
+      return true;
+    }
+    p.x = p.y = rv;
+    return false;
+  }
+  return true;
+}
+
+/**
+ * https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-roundrect
+ * x, y, w, h, [radius|[radii]]
+ */
+Napi::Value Context2d::RoundRect(const Napi::CallbackInfo& info) {
+  RECT_ARGS;
+  Context2d *context = info.This().Unwrap<Context2d>();
+  cairo_t *ctx = context->context();
+
+  // 4. Let normalizedRadii be an empty list
+  Point<double> normalizedRadii[4];
+  size_t nRadii = 4;
+
+  if (info[4].IsUndefined()) {
+    for (size_t i = 0; i < 4; i++)
+      normalizedRadii[i].x = normalizedRadii[i].y = 0.;
+
+  } else if (info[4].IsArray()) {
+    auto radiiList = info[4].As<Napi::Array>();
+    nRadii = radiiList->Length();
+    if (!(nRadii >= 1 && nRadii <= 4)) {
+      Napi::RangeError::New(env, "radii must be a list of one, two, three or four radii.").ThrowAsJavaScriptException();
+      return env.Null();
+    }
+    // 5. For each radius of radii
+    for (size_t i = 0; i < nRadii; i++) {
+      auto r = (radiiList).Get(i);
+      if (getRadius(normalizedRadii[i], r))
+        return;
+    }
+
+  } else {
+    // 2. If radii is a double, then set radii to <<radii>>
+    if (getRadius(normalizedRadii[0], info[4]))
+      return;
+    for (size_t i = 1; i < 4; i++) {
+      normalizedRadii[i].x = normalizedRadii[0].x;
+      normalizedRadii[i].y = normalizedRadii[0].y;
+    }
+  }
+
+  Point<double> upperLeft, upperRight, lowerRight, lowerLeft;
+  if (nRadii == 4) {
+    upperLeft = normalizedRadii[0];
+    upperRight = normalizedRadii[1];
+    lowerRight = normalizedRadii[2];
+    lowerLeft = normalizedRadii[3];
+  } else if (nRadii == 3) {
+    upperLeft = normalizedRadii[0];
+    upperRight = normalizedRadii[1];
+    lowerLeft = normalizedRadii[1];
+    lowerRight = normalizedRadii[2];
+  } else if (nRadii == 2) {
+    upperLeft = normalizedRadii[0];
+    lowerRight = normalizedRadii[0];
+    upperRight = normalizedRadii[1];
+    lowerLeft = normalizedRadii[1];
+  } else {
+    upperLeft = normalizedRadii[0];
+    upperRight = normalizedRadii[0];
+    lowerRight = normalizedRadii[0];
+    lowerLeft = normalizedRadii[0];
+  }
+
+  bool clockwise = true;
+  if (width < 0) {
+    clockwise = false;
+    x += width;
+    width = -width;
+    std::swap(upperLeft, upperRight);
+    std::swap(lowerLeft, lowerRight);
+  }
+
+  if (height < 0) {
+    clockwise = !clockwise;
+    y += height;
+    height = -height;
+    std::swap(upperLeft, lowerLeft);
+    std::swap(upperRight, lowerRight);
+  }
+
+  // 11. Corner curves must not overlap. Scale radii to prevent this.
+  {
+    auto top = upperLeft.x + upperRight.x;
+    auto right = upperRight.y + lowerRight.y;
+    auto bottom = lowerRight.x + lowerLeft.x;
+    auto left = upperLeft.y + lowerLeft.y;
+    auto scale = std::min({ width / top, height / right, width / bottom, height / left });
+    if (scale < 1.) {
+      upperLeft.x *= scale;
+      upperLeft.y *= scale;
+      upperRight.x *= scale;
+      upperRight.x *= scale;
+      lowerLeft.y *= scale;
+      lowerLeft.y *= scale;
+      lowerRight.y *= scale;
+      lowerRight.y *= scale;
+    }
+  }
+
+  // 12. Draw
+  cairo_move_to(ctx, x + upperLeft.x, y);
+  if (clockwise) {
+    cairo_line_to(ctx, x + width - upperRight.x, y);
+    elli_arc(ctx, x + width - upperRight.x, y + upperRight.y, upperRight.x, upperRight.y, 3. * M_PI / 2., 0.);
+    cairo_line_to(ctx, x + width, y + height - lowerRight.y);
+    elli_arc(ctx, x + width - lowerRight.x, y + height - lowerRight.y, lowerRight.x, lowerRight.y, 0, M_PI / 2.);
+    cairo_line_to(ctx, x + lowerLeft.x, y + height);
+    elli_arc(ctx, x + lowerLeft.x, y + height - lowerLeft.y, lowerLeft.x, lowerLeft.y, M_PI / 2., M_PI);
+    cairo_line_to(ctx, x, y + upperLeft.y);
+    elli_arc(ctx, x + upperLeft.x, y + upperLeft.y, upperLeft.x, upperLeft.y, M_PI, 3. * M_PI / 2.);
+  } else {
+    elli_arc(ctx, x + upperLeft.x, y + upperLeft.y, upperLeft.x, upperLeft.y, M_PI, 3. * M_PI / 2., false);
+    cairo_line_to(ctx, x, y + upperLeft.y);
+    elli_arc(ctx, x + lowerLeft.x, y + height - lowerLeft.y, lowerLeft.x, lowerLeft.y, M_PI / 2., M_PI, false);
+    cairo_line_to(ctx, x + lowerLeft.x, y + height);
+    elli_arc(ctx, x + width - lowerRight.x, y + height - lowerRight.y, lowerRight.x, lowerRight.y, 0, M_PI / 2., false);
+    cairo_line_to(ctx, x + width, y + height - lowerRight.y);
+    elli_arc(ctx, x + width - upperRight.x, y + upperRight.y, upperRight.x, upperRight.y, 3. * M_PI / 2., 0., false);
+    cairo_line_to(ctx, x + width - upperRight.x, y);
+  }
+  cairo_close_path(ctx);
+}
+
+// Adapted from https://chromium.googlesource.com/chromium/blink/+/refs/heads/main/Source/modules/canvas2d/CanvasPathMethods.cpp
+static void canonicalizeAngle(double& startAngle, double& endAngle) {
+  // Make 0 <= startAngle < 2*PI
+  double newStartAngle = std::fmod(startAngle, twoPi);
+  if (newStartAngle < 0) {
+      newStartAngle += twoPi;
+      // Check for possible catastrophic cancellation in cases where
+      // newStartAngle was a tiny negative number (c.f. crbug.com/503422)
+      if (newStartAngle >= twoPi)
+          newStartAngle -= twoPi;
+  }
+  double delta = newStartAngle - startAngle;
+  startAngle = newStartAngle;
+  endAngle = endAngle + delta;
+}
+
+// Adapted from https://chromium.googlesource.com/chromium/blink/+/refs/heads/main/Source/modules/canvas2d/CanvasPathMethods.cpp
+static double adjustEndAngle(double startAngle, double endAngle, bool counterclockwise) {
+  double newEndAngle = endAngle;
+  /* http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#dom-context-2d-arc
+  * If the counterclockwise argument is false and endAngle-startAngle is equal to or greater than 2pi, or,
+  * if the counterclockwise argument is true and startAngle-endAngle is equal to or greater than 2pi,
+  * then the arc is the whole circumference of this ellipse, and the point at startAngle along this circle's circumference,
+  * measured in radians clockwise from the ellipse's semi-major axis, acts as both the start point and the end point.
+  */
+  if (!counterclockwise && endAngle - startAngle >= twoPi)
+    newEndAngle = startAngle + twoPi;
+  else if (counterclockwise && startAngle - endAngle >= twoPi)
+    newEndAngle = startAngle - twoPi;
+  /*
+  * Otherwise, the arc is the path along the circumference of this ellipse from the start point to the end point,
+  * going anti-clockwise if the counterclockwise argument is true, and clockwise otherwise.
+  * Since the points are on the ellipse, as opposed to being simply angles from zero,
+  * the arc can never cover an angle greater than 2pi radians.
+  */
+  /* NOTE: When startAngle = 0, endAngle = 2Pi and counterclockwise = true, the spec does not indicate clearly.
+  * We draw the entire circle, because some web sites use arc(x, y, r, 0, 2*Math.PI, true) to draw circle.
+  * We preserve backward-compatibility.
+  */
+  else if (!counterclockwise && startAngle > endAngle)
+    newEndAngle = startAngle + (twoPi - std::fmod(startAngle - endAngle, twoPi));
+  else if (counterclockwise && startAngle < endAngle)
+    newEndAngle = startAngle - (twoPi - std::fmod(endAngle - startAngle, twoPi));
+  return newEndAngle;
+}
+
+/*
+ * Adds an arc at x, y with the given radii and start/end angles.
+ */
+
+Napi::Value Context2d::Arc(const Napi::CallbackInfo& info) {
+  double args[5];
+  if(!checkArgs(info, args, 5))
+    return;
+
+  auto x = args[0];
+  auto y = args[1];
+  auto radius = args[2];
+  auto startAngle = args[3];
+  auto endAngle = args[4];
+
+  if (radius < 0) {
+    Napi::RangeError::New(env, "The radius provided is negative.").ThrowAsJavaScriptException();
+    return env.Null();
+  }
+
+  bool counterclockwise = info[5].As<Napi::Boolean>().Value().FromMaybe(false);
+
+  Context2d *context = info.This().Unwrap<Context2d>();
+  cairo_t *ctx = context->context();
+
+  canonicalizeAngle(startAngle, endAngle);
+  endAngle = adjustEndAngle(startAngle, endAngle, counterclockwise);
+
+  if (counterclockwise) {
+    cairo_arc_negative(ctx, x, y, radius, startAngle, endAngle);
+  } else {
+    cairo_arc(ctx, x, y, radius, startAngle, endAngle);
+  }
+}
+
+/*
+ * Adds an arcTo point (x0,y0) to (x1,y1) with the given radius.
+ *
+ * Implementation influenced by WebKit.
+ */
+
+Napi::Value Context2d::ArcTo(const Napi::CallbackInfo& info) {
+  double args[5];
+  if(!checkArgs(info, args, 5))
+    return;
+
+  Context2d *context = info.This().Unwrap<Context2d>();
+  cairo_t *ctx = context->context();
+
+  // Current path point
+  double x, y;
+  cairo_get_current_point(ctx, &x, &y);
+  Point<float> p0(x, y);
+
+  // Point (x0,y0)
+  Point<float> p1(args[0], args[1]);
+
+  // Point (x1,y1)
+  Point<float> p2(args[2], args[3]);
+
+  float radius = args[4];
+
+  if ((p1.x == p0.x && p1.y == p0.y)
+    || (p1.x == p2.x && p1.y == p2.y)
+    || radius == 0.f) {
+    cairo_line_to(ctx, p1.x, p1.y);
+    return;
+  }
+
+  Point<float> p1p0((p0.x - p1.x),(p0.y - p1.y));
+  Point<float> p1p2((p2.x - p1.x),(p2.y - p1.y));
+  float p1p0_length = sqrtf(p1p0.x * p1p0.x + p1p0.y * p1p0.y);
+  float p1p2_length = sqrtf(p1p2.x * p1p2.x + p1p2.y * p1p2.y);
+
+  double cos_phi = (p1p0.x * p1p2.x + p1p0.y * p1p2.y) / (p1p0_length * p1p2_length);
+  // all points on a line logic
+  if (-1 == cos_phi) {
+    cairo_line_to(ctx, p1.x, p1.y);
+    return;
+  }
+
+  if (1 == cos_phi) {
+    // add infinite far away point
+    unsigned int max_length = 65535;
+    double factor_max = max_length / p1p0_length;
+    Point<float> ep((p0.x + factor_max * p1p0.x), (p0.y + factor_max * p1p0.y));
+    cairo_line_to(ctx, ep.x, ep.y);
+    return;
+  }
+
+  float tangent = radius / tan(acos(cos_phi) / 2);
+  float factor_p1p0 = tangent / p1p0_length;
+  Point<float> t_p1p0((p1.x + factor_p1p0 * p1p0.x), (p1.y + factor_p1p0 * p1p0.y));
+
+  Point<float> orth_p1p0(p1p0.y, -p1p0.x);
+  float orth_p1p0_length = sqrt(orth_p1p0.x * orth_p1p0.x + orth_p1p0.y * orth_p1p0.y);
+  float factor_ra = radius / orth_p1p0_length;
+
+  double cos_alpha = (orth_p1p0.x * p1p2.x + orth_p1p0.y * p1p2.y) / (orth_p1p0_length * p1p2_length);
+  if (cos_alpha < 0.f)
+      orth_p1p0 = Point<float>(-orth_p1p0.x, -orth_p1p0.y);
+
+  Point<float> p((t_p1p0.x + factor_ra * orth_p1p0.x), (t_p1p0.y + factor_ra * orth_p1p0.y));
+
+  orth_p1p0 = Point<float>(-orth_p1p0.x, -orth_p1p0.y);
+  float sa = acos(orth_p1p0.x / orth_p1p0_length);
+  if (orth_p1p0.y < 0.f)
+      sa = 2 * M_PI - sa;
+
+  bool anticlockwise = false;
+
+  float factor_p1p2 = tangent / p1p2_length;
+  Point<float> t_p1p2((p1.x + factor_p1p2 * p1p2.x), (p1.y + factor_p1p2 * p1p2.y));
+  Point<float> orth_p1p2((t_p1p2.x - p.x),(t_p1p2.y - p.y));
+  float orth_p1p2_length = sqrtf(orth_p1p2.x * orth_p1p2.x + orth_p1p2.y * orth_p1p2.y);
+  float ea = acos(orth_p1p2.x / orth_p1p2_length);
+
+  if (orth_p1p2.y < 0) ea = 2 * M_PI - ea;
+  if ((sa > ea) && ((sa - ea) < M_PI)) anticlockwise = true;
+  if ((sa < ea) && ((ea - sa) > M_PI)) anticlockwise = true;
+
+  cairo_line_to(ctx, t_p1p0.x, t_p1p0.y);
+
+  if (anticlockwise && M_PI * 2 != radius) {
+    cairo_arc_negative(ctx
+      , p.x
+      , p.y
+      , radius
+      , sa
+      , ea);
+  } else {
+    cairo_arc(ctx
+      , p.x
+      , p.y
+      , radius
+      , sa
+      , ea);
+  }
+}
+
+/*
+ * Adds an ellipse to the path which is centered at (x, y) position with the
+ * radii radiusX and radiusY starting at startAngle and ending at endAngle
+ * going in the given direction by anticlockwise (defaulting to clockwise).
+ */
+
+Napi::Value Context2d::Ellipse(const Napi::CallbackInfo& info) {
+  double args[7];
+  if(!checkArgs(info, args, 7))
+    return;
+
+  double radiusX = args[2];
+  double radiusY = args[3];
+
+  if (radiusX == 0 || radiusY == 0) return;
+
+  double x = args[0];
+  double y = args[1];
+  double rotation = args[4];
+  double startAngle = args[5];
+  double endAngle = args[6];
+  bool anticlockwise = info[7].As<Napi::Boolean>().Value().FromMaybe(false);
+
+  Context2d *context = info.This().Unwrap<Context2d>();
+  cairo_t *ctx = context->context();
+
+  // See https://www.cairographics.org/cookbook/ellipses/
+  double xRatio = radiusX / radiusY;
+
+  cairo_matrix_t save_matrix;
+  cairo_get_matrix(ctx, &save_matrix);
+  cairo_translate(ctx, x, y);
+  cairo_rotate(ctx, rotation);
+  cairo_scale(ctx, xRatio, 1.0);
+  cairo_translate(ctx, -x, -y);
+  if (anticlockwise && M_PI * 2 != args[4]) {
+    cairo_arc_negative(ctx,
+      x,
+      y,
+      radiusY,
+      startAngle,
+      endAngle);
+  } else {
+    cairo_arc(ctx,
+      x,
+      y,
+      radiusY,
+      startAngle,
+      endAngle);
+  }
+  cairo_set_matrix(ctx, &save_matrix);
+}
+
+#undef CHECK_RECEIVER
diff --git a/node_modules/canvas/src/CanvasRenderingContext2d.h b/node_modules/canvas/src/CanvasRenderingContext2d.h
new file mode 100644
index 0000000..8ea4d60
--- /dev/null
+++ b/node_modules/canvas/src/CanvasRenderingContext2d.h
@@ -0,0 +1,225 @@
+// Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+
+#pragma once
+
+#include "cairo.h"
+#include "Canvas.h"
+#include "color.h"
+#include "nan.h"
+#include <pango/pangocairo.h>
+#include <stack>
+
+/*
+ * State struct.
+ *
+ * Used in conjunction with Save() / Restore() since
+ * cairo's gstate maintains only a single source pattern at a time.
+ */
+
+struct canvas_state_t {
+  rgba_t fill = { 0, 0, 0, 1 };
+  rgba_t stroke = { 0, 0, 0, 1 };
+  rgba_t shadow = { 0, 0, 0, 0 };
+  double shadowOffsetX = 0.;
+  double shadowOffsetY = 0.;
+  cairo_pattern_t* fillPattern = nullptr;
+  cairo_pattern_t* strokePattern = nullptr;
+  cairo_pattern_t* fillGradient = nullptr;
+  cairo_pattern_t* strokeGradient = nullptr;
+  PangoFontDescription* fontDescription = nullptr;
+  std::string font = "10px sans-serif";
+  cairo_filter_t patternQuality = CAIRO_FILTER_GOOD;
+  float globalAlpha = 1.f;
+  int shadowBlur = 0;
+  text_align_t textAlignment = TEXT_ALIGNMENT_LEFT; // TODO default is supposed to be START
+  text_baseline_t textBaseline = TEXT_BASELINE_ALPHABETIC;
+  canvas_draw_mode_t textDrawingMode = TEXT_DRAW_PATHS;
+  bool imageSmoothingEnabled = true;
+
+  canvas_state_t() {
+    fontDescription = pango_font_description_from_string("sans");
+    pango_font_description_set_absolute_size(fontDescription, 10 * PANGO_SCALE);
+  }
+
+  canvas_state_t(const canvas_state_t& other) {
+    fill = other.fill;
+    stroke = other.stroke;
+    patternQuality = other.patternQuality;
+    fillPattern = other.fillPattern;
+    strokePattern = other.strokePattern;
+    fillGradient = other.fillGradient;
+    strokeGradient = other.strokeGradient;
+    globalAlpha = other.globalAlpha;
+    textAlignment = other.textAlignment;
+    textBaseline = other.textBaseline;
+    shadow = other.shadow;
+    shadowBlur = other.shadowBlur;
+    shadowOffsetX = other.shadowOffsetX;
+    shadowOffsetY = other.shadowOffsetY;
+    textDrawingMode = other.textDrawingMode;
+    fontDescription = pango_font_description_copy(other.fontDescription);
+    font = other.font;
+    imageSmoothingEnabled = other.imageSmoothingEnabled;
+  }
+
+  ~canvas_state_t() {
+    pango_font_description_free(fontDescription);
+  }
+};
+
+/*
+ * Equivalent to a PangoRectangle but holds floats instead of ints
+ * (software pixels are stored here instead of pango units)
+ *
+ * Should be compatible with PANGO_ASCENT, PANGO_LBEARING, etc.
+ */
+
+typedef struct {
+  float x;
+  float y;
+  float width;
+  float height;
+} float_rectangle;
+
+class Context2d : public Nan::ObjectWrap {
+  public:
+    std::stack<canvas_state_t> states;
+    canvas_state_t *state;
+    Context2d(Canvas *canvas);
+    static Nan::Persistent<v8::Function> _DOMMatrix;
+    static Nan::Persistent<v8::Function> _parseFont;
+    static Nan::Persistent<v8::FunctionTemplate> constructor;
+    static void Initialize(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE target);
+    static NAN_METHOD(New);
+    static NAN_METHOD(SaveExternalModules);
+    static NAN_METHOD(DrawImage);
+    static NAN_METHOD(PutImageData);
+    static NAN_METHOD(Save);
+    static NAN_METHOD(Restore);
+    static NAN_METHOD(Rotate);
+    static NAN_METHOD(Translate);
+    static NAN_METHOD(Scale);
+    static NAN_METHOD(Transform);
+    static NAN_METHOD(GetTransform);
+    static NAN_METHOD(ResetTransform);
+    static NAN_METHOD(SetTransform);
+    static NAN_METHOD(IsPointInPath);
+    static NAN_METHOD(BeginPath);
+    static NAN_METHOD(ClosePath);
+    static NAN_METHOD(AddPage);
+    static NAN_METHOD(Clip);
+    static NAN_METHOD(Fill);
+    static NAN_METHOD(Stroke);
+    static NAN_METHOD(FillText);
+    static NAN_METHOD(StrokeText);
+    static NAN_METHOD(SetFont);
+    static NAN_METHOD(SetFillColor);
+    static NAN_METHOD(SetStrokeColor);
+    static NAN_METHOD(SetStrokePattern);
+    static NAN_METHOD(SetTextAlignment);
+    static NAN_METHOD(SetLineDash);
+    static NAN_METHOD(GetLineDash);
+    static NAN_METHOD(MeasureText);
+    static NAN_METHOD(BezierCurveTo);
+    static NAN_METHOD(QuadraticCurveTo);
+    static NAN_METHOD(LineTo);
+    static NAN_METHOD(MoveTo);
+    static NAN_METHOD(FillRect);
+    static NAN_METHOD(StrokeRect);
+    static NAN_METHOD(ClearRect);
+    static NAN_METHOD(Rect);
+    static NAN_METHOD(RoundRect);
+    static NAN_METHOD(Arc);
+    static NAN_METHOD(ArcTo);
+    static NAN_METHOD(Ellipse);
+    static NAN_METHOD(GetImageData);
+    static NAN_METHOD(CreateImageData);
+    static NAN_METHOD(GetStrokeColor);
+    static NAN_METHOD(CreatePattern);
+    static NAN_METHOD(CreateLinearGradient);
+    static NAN_METHOD(CreateRadialGradient);
+    static NAN_GETTER(GetFormat);
+    static NAN_GETTER(GetPatternQuality);
+    static NAN_GETTER(GetImageSmoothingEnabled);
+    static NAN_GETTER(GetGlobalCompositeOperation);
+    static NAN_GETTER(GetGlobalAlpha);
+    static NAN_GETTER(GetShadowColor);
+    static NAN_GETTER(GetMiterLimit);
+    static NAN_GETTER(GetLineCap);
+    static NAN_GETTER(GetLineJoin);
+    static NAN_GETTER(GetLineWidth);
+    static NAN_GETTER(GetLineDashOffset);
+    static NAN_GETTER(GetShadowOffsetX);
+    static NAN_GETTER(GetShadowOffsetY);
+    static NAN_GETTER(GetShadowBlur);
+    static NAN_GETTER(GetAntiAlias);
+    static NAN_GETTER(GetTextDrawingMode);
+    static NAN_GETTER(GetQuality);
+    static NAN_GETTER(GetCurrentTransform);
+    static NAN_GETTER(GetFillStyle);
+    static NAN_GETTER(GetStrokeStyle);
+    static NAN_GETTER(GetFont);
+    static NAN_GETTER(GetTextBaseline);
+    static NAN_GETTER(GetTextAlign);
+    static NAN_SETTER(SetPatternQuality);
+    static NAN_SETTER(SetImageSmoothingEnabled);
+    static NAN_SETTER(SetGlobalCompositeOperation);
+    static NAN_SETTER(SetGlobalAlpha);
+    static NAN_SETTER(SetShadowColor);
+    static NAN_SETTER(SetMiterLimit);
+    static NAN_SETTER(SetLineCap);
+    static NAN_SETTER(SetLineJoin);
+    static NAN_SETTER(SetLineWidth);
+    static NAN_SETTER(SetLineDashOffset);
+    static NAN_SETTER(SetShadowOffsetX);
+    static NAN_SETTER(SetShadowOffsetY);
+    static NAN_SETTER(SetShadowBlur);
+    static NAN_SETTER(SetAntiAlias);
+    static NAN_SETTER(SetTextDrawingMode);
+    static NAN_SETTER(SetQuality);
+    static NAN_SETTER(SetCurrentTransform);
+    static NAN_SETTER(SetFillStyle);
+    static NAN_SETTER(SetStrokeStyle);
+    static NAN_SETTER(SetFont);
+    static NAN_SETTER(SetTextBaseline);
+    static NAN_SETTER(SetTextAlign);
+    inline void setContext(cairo_t *ctx) { _context = ctx; }
+    inline cairo_t *context(){ return _context; }
+    inline Canvas *canvas(){ return _canvas; }
+    inline bool hasShadow();
+    void inline setSourceRGBA(rgba_t color);
+    void inline setSourceRGBA(cairo_t *ctx, rgba_t color);
+    void setTextPath(double x, double y);
+    void blur(cairo_surface_t *surface, int radius);
+    void shadow(void (fn)(cairo_t *cr));
+    void shadowStart();
+    void shadowApply();
+    void savePath();
+    void restorePath();
+    void saveState();
+    void restoreState();
+    void inline setFillRule(v8::Local<v8::Value> value);
+    void fill(bool preserve = false);
+    void stroke(bool preserve = false);
+    void save();
+    void restore();
+    void setFontFromState();
+    void resetState();
+    inline PangoLayout *layout(){ return _layout; }
+
+  private:
+    ~Context2d();
+    void _resetPersistentHandles();
+    v8::Local<v8::Value> _getFillColor();
+    v8::Local<v8::Value> _getStrokeColor();
+    void _setFillColor(v8::Local<v8::Value> arg);
+    void _setFillPattern(v8::Local<v8::Value> arg);
+    void _setStrokeColor(v8::Local<v8::Value> arg);
+    void _setStrokePattern(v8::Local<v8::Value> arg);
+    Nan::Persistent<v8::Value> _fillStyle;
+    Nan::Persistent<v8::Value> _strokeStyle;
+    Canvas *_canvas;
+    cairo_t *_context;
+    cairo_path_t *_path;
+    PangoLayout *_layout;
+};
diff --git a/node_modules/canvas/src/CanvasRenderingContext2d.h.orig b/node_modules/canvas/src/CanvasRenderingContext2d.h.orig
new file mode 100644
index 0000000..94bcfd5
--- /dev/null
+++ b/node_modules/canvas/src/CanvasRenderingContext2d.h.orig
@@ -0,0 +1,226 @@
+// Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+
+#pragma once
+
+#include "cairo.h"
+#include "Canvas.h"
+#include "color.h"
+#include "napi.h"
+#include "uv.h"
+#include <pango/pangocairo.h>
+#include <stack>
+
+/*
+ * State struct.
+ *
+ * Used in conjunction with Save() / Restore() since
+ * cairo's gstate maintains only a single source pattern at a time.
+ */
+
+struct canvas_state_t {
+  rgba_t fill = { 0, 0, 0, 1 };
+  rgba_t stroke = { 0, 0, 0, 1 };
+  rgba_t shadow = { 0, 0, 0, 0 };
+  double shadowOffsetX = 0.;
+  double shadowOffsetY = 0.;
+  cairo_pattern_t* fillPattern = nullptr;
+  cairo_pattern_t* strokePattern = nullptr;
+  cairo_pattern_t* fillGradient = nullptr;
+  cairo_pattern_t* strokeGradient = nullptr;
+  PangoFontDescription* fontDescription = nullptr;
+  std::string font = "10px sans-serif";
+  cairo_filter_t patternQuality = CAIRO_FILTER_GOOD;
+  float globalAlpha = 1.f;
+  int shadowBlur = 0;
+  text_align_t textAlignment = TEXT_ALIGNMENT_LEFT; // TODO default is supposed to be START
+  text_baseline_t textBaseline = TEXT_BASELINE_ALPHABETIC;
+  canvas_draw_mode_t textDrawingMode = TEXT_DRAW_PATHS;
+  bool imageSmoothingEnabled = true;
+
+  canvas_state_t() {
+    fontDescription = pango_font_description_from_string("sans");
+    pango_font_description_set_absolute_size(fontDescription, 10 * PANGO_SCALE);
+  }
+
+  canvas_state_t(const canvas_state_t& other) {
+    fill = other.fill;
+    stroke = other.stroke;
+    patternQuality = other.patternQuality;
+    fillPattern = other.fillPattern;
+    strokePattern = other.strokePattern;
+    fillGradient = other.fillGradient;
+    strokeGradient = other.strokeGradient;
+    globalAlpha = other.globalAlpha;
+    textAlignment = other.textAlignment;
+    textBaseline = other.textBaseline;
+    shadow = other.shadow;
+    shadowBlur = other.shadowBlur;
+    shadowOffsetX = other.shadowOffsetX;
+    shadowOffsetY = other.shadowOffsetY;
+    textDrawingMode = other.textDrawingMode;
+    fontDescription = pango_font_description_copy(other.fontDescription);
+    font = other.font;
+    imageSmoothingEnabled = other.imageSmoothingEnabled;
+  }
+
+  ~canvas_state_t() {
+    pango_font_description_free(fontDescription);
+  }
+};
+
+/*
+ * Equivalent to a PangoRectangle but holds floats instead of ints
+ * (software pixels are stored here instead of pango units)
+ *
+ * Should be compatible with PANGO_ASCENT, PANGO_LBEARING, etc.
+ */
+
+typedef struct {
+  float x;
+  float y;
+  float width;
+  float height;
+} float_rectangle;
+
+class Context2d : public Napi::ObjectWrap<Context2d> {
+  public:
+    std::stack<canvas_state_t> states;
+    canvas_state_t *state;
+    Context2d(Canvas *canvas);
+    static Napi::FunctionReference _DOMMatrix;
+    static Napi::FunctionReference _parseFont;
+    static Napi::FunctionReference constructor;
+    static void Initialize(Napi::Env& env, Napi::Object& target);
+    static Napi::Value New(const Napi::CallbackInfo& info);
+    static Napi::Value SaveExternalModules(const Napi::CallbackInfo& info);
+    static Napi::Value DrawImage(const Napi::CallbackInfo& info);
+    static Napi::Value PutImageData(const Napi::CallbackInfo& info);
+    static Napi::Value Save(const Napi::CallbackInfo& info);
+    static Napi::Value Restore(const Napi::CallbackInfo& info);
+    static Napi::Value Rotate(const Napi::CallbackInfo& info);
+    static Napi::Value Translate(const Napi::CallbackInfo& info);
+    static Napi::Value Scale(const Napi::CallbackInfo& info);
+    static Napi::Value Transform(const Napi::CallbackInfo& info);
+    static Napi::Value GetTransform(const Napi::CallbackInfo& info);
+    static Napi::Value ResetTransform(const Napi::CallbackInfo& info);
+    static Napi::Value SetTransform(const Napi::CallbackInfo& info);
+    static Napi::Value IsPointInPath(const Napi::CallbackInfo& info);
+    static Napi::Value BeginPath(const Napi::CallbackInfo& info);
+    static Napi::Value ClosePath(const Napi::CallbackInfo& info);
+    static Napi::Value AddPage(const Napi::CallbackInfo& info);
+    static Napi::Value Clip(const Napi::CallbackInfo& info);
+    static Napi::Value Fill(const Napi::CallbackInfo& info);
+    static Napi::Value Stroke(const Napi::CallbackInfo& info);
+    static Napi::Value FillText(const Napi::CallbackInfo& info);
+    static Napi::Value StrokeText(const Napi::CallbackInfo& info);
+    static Napi::Value SetFont(const Napi::CallbackInfo& info);
+    static Napi::Value SetFillColor(const Napi::CallbackInfo& info);
+    static Napi::Value SetStrokeColor(const Napi::CallbackInfo& info);
+    static Napi::Value SetStrokePattern(const Napi::CallbackInfo& info);
+    static Napi::Value SetTextAlignment(const Napi::CallbackInfo& info);
+    static Napi::Value SetLineDash(const Napi::CallbackInfo& info);
+    static Napi::Value GetLineDash(const Napi::CallbackInfo& info);
+    static Napi::Value MeasureText(const Napi::CallbackInfo& info);
+    static Napi::Value BezierCurveTo(const Napi::CallbackInfo& info);
+    static Napi::Value QuadraticCurveTo(const Napi::CallbackInfo& info);
+    static Napi::Value LineTo(const Napi::CallbackInfo& info);
+    static Napi::Value MoveTo(const Napi::CallbackInfo& info);
+    static Napi::Value FillRect(const Napi::CallbackInfo& info);
+    static Napi::Value StrokeRect(const Napi::CallbackInfo& info);
+    static Napi::Value ClearRect(const Napi::CallbackInfo& info);
+    static Napi::Value Rect(const Napi::CallbackInfo& info);
+    static Napi::Value RoundRect(const Napi::CallbackInfo& info);
+    static Napi::Value Arc(const Napi::CallbackInfo& info);
+    static Napi::Value ArcTo(const Napi::CallbackInfo& info);
+    static Napi::Value Ellipse(const Napi::CallbackInfo& info);
+    static Napi::Value GetImageData(const Napi::CallbackInfo& info);
+    static Napi::Value CreateImageData(const Napi::CallbackInfo& info);
+    static Napi::Value GetStrokeColor(const Napi::CallbackInfo& info);
+    static Napi::Value CreatePattern(const Napi::CallbackInfo& info);
+    static Napi::Value CreateLinearGradient(const Napi::CallbackInfo& info);
+    static Napi::Value CreateRadialGradient(const Napi::CallbackInfo& info);
+    Napi::Value GetFormat(const Napi::CallbackInfo& info);
+    Napi::Value GetPatternQuality(const Napi::CallbackInfo& info);
+    Napi::Value GetImageSmoothingEnabled(const Napi::CallbackInfo& info);
+    Napi::Value GetGlobalCompositeOperation(const Napi::CallbackInfo& info);
+    Napi::Value GetGlobalAlpha(const Napi::CallbackInfo& info);
+    Napi::Value GetShadowColor(const Napi::CallbackInfo& info);
+    Napi::Value GetMiterLimit(const Napi::CallbackInfo& info);
+    Napi::Value GetLineCap(const Napi::CallbackInfo& info);
+    Napi::Value GetLineJoin(const Napi::CallbackInfo& info);
+    Napi::Value GetLineWidth(const Napi::CallbackInfo& info);
+    Napi::Value GetLineDashOffset(const Napi::CallbackInfo& info);
+    Napi::Value GetShadowOffsetX(const Napi::CallbackInfo& info);
+    Napi::Value GetShadowOffsetY(const Napi::CallbackInfo& info);
+    Napi::Value GetShadowBlur(const Napi::CallbackInfo& info);
+    Napi::Value GetAntiAlias(const Napi::CallbackInfo& info);
+    Napi::Value GetTextDrawingMode(const Napi::CallbackInfo& info);
+    Napi::Value GetQuality(const Napi::CallbackInfo& info);
+    Napi::Value GetCurrentTransform(const Napi::CallbackInfo& info);
+    Napi::Value GetFillStyle(const Napi::CallbackInfo& info);
+    Napi::Value GetStrokeStyle(const Napi::CallbackInfo& info);
+    Napi::Value GetFont(const Napi::CallbackInfo& info);
+    Napi::Value GetTextBaseline(const Napi::CallbackInfo& info);
+    Napi::Value GetTextAlign(const Napi::CallbackInfo& info);
+    void SetPatternQuality(const Napi::CallbackInfo& info, const Napi::Value& value);
+    void SetImageSmoothingEnabled(const Napi::CallbackInfo& info, const Napi::Value& value);
+    void SetGlobalCompositeOperation(const Napi::CallbackInfo& info, const Napi::Value& value);
+    void SetGlobalAlpha(const Napi::CallbackInfo& info, const Napi::Value& value);
+    void SetShadowColor(const Napi::CallbackInfo& info, const Napi::Value& value);
+    void SetMiterLimit(const Napi::CallbackInfo& info, const Napi::Value& value);
+    void SetLineCap(const Napi::CallbackInfo& info, const Napi::Value& value);
+    void SetLineJoin(const Napi::CallbackInfo& info, const Napi::Value& value);
+    void SetLineWidth(const Napi::CallbackInfo& info, const Napi::Value& value);
+    void SetLineDashOffset(const Napi::CallbackInfo& info, const Napi::Value& value);
+    void SetShadowOffsetX(const Napi::CallbackInfo& info, const Napi::Value& value);
+    void SetShadowOffsetY(const Napi::CallbackInfo& info, const Napi::Value& value);
+    void SetShadowBlur(const Napi::CallbackInfo& info, const Napi::Value& value);
+    void SetAntiAlias(const Napi::CallbackInfo& info, const Napi::Value& value);
+    void SetTextDrawingMode(const Napi::CallbackInfo& info, const Napi::Value& value);
+    void SetQuality(const Napi::CallbackInfo& info, const Napi::Value& value);
+    void SetCurrentTransform(const Napi::CallbackInfo& info, const Napi::Value& value);
+    void SetFillStyle(const Napi::CallbackInfo& info, const Napi::Value& value);
+    void SetStrokeStyle(const Napi::CallbackInfo& info, const Napi::Value& value);
+    void SetFont(const Napi::CallbackInfo& info, const Napi::Value& value);
+    void SetTextBaseline(const Napi::CallbackInfo& info, const Napi::Value& value);
+    void SetTextAlign(const Napi::CallbackInfo& info, const Napi::Value& value);
+    inline void setContext(cairo_t *ctx) { _context = ctx; }
+    inline cairo_t *context(){ return _context; }
+    inline Canvas *canvas(){ return _canvas; }
+    inline bool hasShadow();
+    void inline setSourceRGBA(rgba_t color);
+    void inline setSourceRGBA(cairo_t *ctx, rgba_t color);
+    void setTextPath(double x, double y);
+    void blur(cairo_surface_t *surface, int radius);
+    void shadow(void (fn)(cairo_t *cr));
+    void shadowStart();
+    void shadowApply();
+    void savePath();
+    void restorePath();
+    void saveState();
+    void restoreState();
+    void inline setFillRule(Napi::Value value);
+    void fill(bool preserve = false);
+    void stroke(bool preserve = false);
+    void save();
+    void restore();
+    void setFontFromState();
+    void resetState();
+    inline PangoLayout *layout(){ return _layout; }
+
+  private:
+    ~Context2d();
+    void _resetPersistentHandles();
+    Napi::Value _getFillColor();
+    Napi::Value _getStrokeColor();
+    void _setFillColor(Napi::Value arg);
+    void _setFillPattern(Napi::Value arg);
+    void _setStrokeColor(Napi::Value arg);
+    void _setStrokePattern(Napi::Value arg);
+    Napi::Persistent<v8::Value> _fillStyle;
+    Napi::Persistent<v8::Value> _strokeStyle;
+    Canvas *_canvas;
+    cairo_t *_context;
+    cairo_path_t *_path;
+    PangoLayout *_layout;
+};
diff --git a/node_modules/canvas/src/Image.cc b/node_modules/canvas/src/Image.cc
new file mode 100644
index 0000000..35ee794
--- /dev/null
+++ b/node_modules/canvas/src/Image.cc
@@ -0,0 +1,1434 @@
+// Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+
+#include "Image.h"
+
+#include "bmp/BMPParser.h"
+#include "Canvas.h"
+#include <cerrno>
+#include <cstdlib>
+#include <cstring>
+#include <node_buffer.h>
+
+/* Cairo limit:
+  * https://lists.cairographics.org/archives/cairo/2010-December/021422.html
+  */
+static constexpr int canvas_max_side = (1 << 15) - 1;
+
+#ifdef HAVE_GIF
+typedef struct {
+  uint8_t *buf;
+  unsigned len;
+  unsigned pos;
+} gif_data_t;
+#endif
+
+#ifdef HAVE_JPEG
+#include <csetjmp>
+
+struct canvas_jpeg_error_mgr: jpeg_error_mgr {
+    Image* image;
+    jmp_buf setjmp_buffer;
+};
+#endif
+
+/*
+ * Read closure used by loadFromBuffer.
+ */
+
+typedef struct {
+  unsigned len;
+  uint8_t *buf;
+} read_closure_t;
+
+using namespace v8;
+
+Nan::Persistent<FunctionTemplate> Image::constructor;
+
+/*
+ * Initialize Image.
+ */
+
+void
+Image::Initialize(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE target) {
+  Nan::HandleScope scope;
+
+  Local<FunctionTemplate> ctor = Nan::New<FunctionTemplate>(Image::New);
+  constructor.Reset(ctor);
+  ctor->InstanceTemplate()->SetInternalFieldCount(1);
+  ctor->SetClassName(Nan::New("Image").ToLocalChecked());
+
+  // Prototype
+  Local<ObjectTemplate> proto = ctor->PrototypeTemplate();
+  Nan::SetAccessor(proto, Nan::New("complete").ToLocalChecked(), GetComplete);
+  Nan::SetAccessor(proto, Nan::New("width").ToLocalChecked(), GetWidth, SetWidth);
+  Nan::SetAccessor(proto, Nan::New("height").ToLocalChecked(), GetHeight, SetHeight);
+  Nan::SetAccessor(proto, Nan::New("naturalWidth").ToLocalChecked(), GetNaturalWidth);
+  Nan::SetAccessor(proto, Nan::New("naturalHeight").ToLocalChecked(), GetNaturalHeight);
+  Nan::SetAccessor(proto, Nan::New("dataMode").ToLocalChecked(), GetDataMode, SetDataMode);
+
+  ctor->Set(Nan::New("MODE_IMAGE").ToLocalChecked(), Nan::New<Number>(DATA_IMAGE));
+  ctor->Set(Nan::New("MODE_MIME").ToLocalChecked(), Nan::New<Number>(DATA_MIME));
+
+  Local<Context> ctx = Nan::GetCurrentContext();
+  Nan::Set(target, Nan::New("Image").ToLocalChecked(), ctor->GetFunction(ctx).ToLocalChecked());
+
+  // Used internally in lib/image.js
+  NAN_EXPORT(target, GetSource);
+  NAN_EXPORT(target, SetSource);
+}
+
+/*
+ * Initialize a new Image.
+ */
+
+NAN_METHOD(Image::New) {
+  if (!info.IsConstructCall()) {
+    return Nan::ThrowTypeError("Class constructors cannot be invoked without 'new'");
+  }
+
+  Image *img = new Image;
+  img->data_mode = DATA_IMAGE;
+  img->Wrap(info.This());
+  Nan::Set(info.This(), Nan::New("onload").ToLocalChecked(), Nan::Null()).Check();
+  Nan::Set(info.This(), Nan::New("onerror").ToLocalChecked(), Nan::Null()).Check();
+  info.GetReturnValue().Set(info.This());
+}
+
+/*
+ * Get complete boolean.
+ */
+
+NAN_GETTER(Image::GetComplete) {
+  info.GetReturnValue().Set(Nan::New<Boolean>(true));
+}
+
+/*
+ * Get dataMode.
+ */
+
+NAN_GETTER(Image::GetDataMode) {
+  if (!Image::constructor.Get(info.GetIsolate())->HasInstance(info.This())) {
+    Nan::ThrowTypeError("Method Image.GetDataMode called on incompatible receiver");
+    return;
+  }
+  Image *img = Nan::ObjectWrap::Unwrap<Image>(info.This());
+  info.GetReturnValue().Set(Nan::New<Number>(img->data_mode));
+}
+
+/*
+ * Set dataMode.
+ */
+
+NAN_SETTER(Image::SetDataMode) {
+  if (!Image::constructor.Get(info.GetIsolate())->HasInstance(info.This())) {
+    Nan::ThrowTypeError("Method Image.SetDataMode called on incompatible receiver");
+    return;
+  }
+  if (value->IsNumber()) {
+    Image *img = Nan::ObjectWrap::Unwrap<Image>(info.This());
+    int mode = Nan::To<uint32_t>(value).FromMaybe(0);
+    img->data_mode = (data_mode_t) mode;
+  }
+}
+
+/*
+ * Get natural width
+ */
+
+NAN_GETTER(Image::GetNaturalWidth) {
+  if (!Image::constructor.Get(info.GetIsolate())->HasInstance(info.This())) {
+    Nan::ThrowTypeError("Method Image.GetNaturalWidth called on incompatible receiver");
+    return;
+  }
+  Image *img = Nan::ObjectWrap::Unwrap<Image>(info.This());
+  info.GetReturnValue().Set(Nan::New<Number>(img->naturalWidth));
+}
+
+/*
+ * Get width.
+ */
+
+NAN_GETTER(Image::GetWidth) {
+  if (!Image::constructor.Get(info.GetIsolate())->HasInstance(info.This())) {
+    Nan::ThrowTypeError("Method Image.GetWidth called on incompatible receiver");
+    return;
+  }
+  Image *img = Nan::ObjectWrap::Unwrap<Image>(info.This());
+  info.GetReturnValue().Set(Nan::New<Number>(img->width));
+}
+
+/*
+ * Set width.
+ */
+
+NAN_SETTER(Image::SetWidth) {
+  if (!Image::constructor.Get(info.GetIsolate())->HasInstance(info.This())) {
+    Nan::ThrowTypeError("Method Image.SetWidth called on incompatible receiver");
+    return;
+  }
+  if (value->IsNumber()) {
+    Image *img = Nan::ObjectWrap::Unwrap<Image>(info.This());
+    img->width = Nan::To<uint32_t>(value).FromMaybe(0);
+  }
+}
+
+/*
+ * Get natural height
+ */
+
+NAN_GETTER(Image::GetNaturalHeight) {
+  if (!Image::constructor.Get(info.GetIsolate())->HasInstance(info.This())) {
+    Nan::ThrowTypeError("Method Image.GetNaturalHeight called on incompatible receiver");
+    return;
+  }
+  Image *img = Nan::ObjectWrap::Unwrap<Image>(info.This());
+  info.GetReturnValue().Set(Nan::New<Number>(img->naturalHeight));
+}
+
+/*
+ * Get height.
+ */
+
+NAN_GETTER(Image::GetHeight) {
+  if (!Image::constructor.Get(info.GetIsolate())->HasInstance(info.This())) {
+    Nan::ThrowTypeError("Method Image.GetHeight called on incompatible receiver");
+    return;
+  }
+  Image *img = Nan::ObjectWrap::Unwrap<Image>(info.This());
+  info.GetReturnValue().Set(Nan::New<Number>(img->height));
+}
+/*
+ * Set height.
+ */
+
+NAN_SETTER(Image::SetHeight) {
+  if (!Image::constructor.Get(info.GetIsolate())->HasInstance(info.This())) {
+    // #1534
+    Nan::ThrowTypeError("Method Image.SetHeight called on incompatible receiver");
+    return;
+  }
+  if (value->IsNumber()) {
+    Image *img = Nan::ObjectWrap::Unwrap<Image>(info.This());
+    img->height = Nan::To<uint32_t>(value).FromMaybe(0);
+  }
+}
+
+/*
+ * Get src path.
+ */
+
+NAN_METHOD(Image::GetSource){
+  if (!Image::constructor.Get(info.GetIsolate())->HasInstance(info.This())) {
+    // #1534
+    Nan::ThrowTypeError("Method Image.GetSource called on incompatible receiver");
+    return;
+  }
+  Image *img = Nan::ObjectWrap::Unwrap<Image>(info.This());
+  info.GetReturnValue().Set(Nan::New<String>(img->filename ? img->filename : "").ToLocalChecked());
+}
+
+/*
+ * Clean up assets and variables.
+ */
+
+void
+Image::clearData() {
+  if (_surface) {
+    cairo_surface_destroy(_surface);
+    Nan::AdjustExternalMemory(-_data_len);
+    _data_len = 0;
+    _surface = NULL;
+  }
+
+  delete[] _data;
+  _data = nullptr;
+
+  free(filename);
+  filename = NULL;
+
+#ifdef HAVE_RSVG
+  if (_rsvg != NULL) {
+    g_object_unref(_rsvg);
+    _rsvg = NULL;
+  }
+#endif
+
+  width = height = 0;
+  naturalWidth = naturalHeight = 0;
+  state = DEFAULT;
+}
+
+/*
+ * Set src path.
+ */
+
+NAN_METHOD(Image::SetSource){
+  if (!Image::constructor.Get(info.GetIsolate())->HasInstance(info.This())) {
+    // #1534
+    Nan::ThrowTypeError("Method Image.SetSource called on incompatible receiver");
+    return;
+  }
+  Image *img = Nan::ObjectWrap::Unwrap<Image>(info.This());
+  cairo_status_t status = CAIRO_STATUS_READ_ERROR;
+
+  Local<Value> value = info[0];
+
+  img->clearData();
+  // Clear errno in case some unrelated previous syscall failed
+  errno = 0;
+
+  // url string
+  if (value->IsString()) {
+    Nan::Utf8String src(value);
+    if (img->filename) free(img->filename);
+    img->filename = strdup(*src);
+    status = img->load();
+  // Buffer
+  } else if (node::Buffer::HasInstance(value)) {
+    uint8_t *buf = (uint8_t *) node::Buffer::Data(Nan::To<Object>(value).ToLocalChecked());
+    unsigned len = node::Buffer::Length(Nan::To<Object>(value).ToLocalChecked());
+    status = img->loadFromBuffer(buf, len);
+  }
+
+  if (status) {
+    Local<Value> onerrorFn = Nan::Get(info.This(), Nan::New("onerror").ToLocalChecked()).ToLocalChecked();
+    if (onerrorFn->IsFunction()) {
+      Local<Value> argv[1];
+      CanvasError errorInfo = img->errorInfo;
+      if (errorInfo.cerrno) {
+        argv[0] = Nan::ErrnoException(errorInfo.cerrno, errorInfo.syscall.c_str(), errorInfo.message.c_str(), errorInfo.path.c_str());
+      } else if (!errorInfo.message.empty()) {
+        argv[0] = Nan::Error(Nan::New(errorInfo.message).ToLocalChecked());
+      } else {
+        argv[0] = Nan::Error(Nan::New(cairo_status_to_string(status)).ToLocalChecked());
+      }
+      Local<Context> ctx = Nan::GetCurrentContext();
+      Nan::Call(onerrorFn.As<Function>(), ctx->Global(), 1, argv);
+    }
+  } else {
+    img->loaded();
+    Local<Value> onloadFn = Nan::Get(info.This(), Nan::New("onload").ToLocalChecked()).ToLocalChecked();
+    if (onloadFn->IsFunction()) {
+      Local<Context> ctx = Nan::GetCurrentContext();
+      Nan::Call(onloadFn.As<Function>(), ctx->Global(), 0, NULL);
+    }
+  }
+}
+
+/*
+ * Load image data from `buf` by sniffing
+ * the bytes to determine format.
+ */
+
+cairo_status_t
+Image::loadFromBuffer(uint8_t *buf, unsigned len) {
+  uint8_t data[4] = {0};
+  memcpy(data, buf, (len < 4 ? len : 4) * sizeof(uint8_t));
+
+  if (isPNG(data)) return loadPNGFromBuffer(buf);
+
+  if (isGIF(data)) {
+#ifdef HAVE_GIF
+    return loadGIFFromBuffer(buf, len);
+#else
+    this->errorInfo.set("node-canvas was built without GIF support");
+    return CAIRO_STATUS_READ_ERROR;
+#endif
+  }
+
+  if (isJPEG(data)) {
+#ifdef HAVE_JPEG
+    if (DATA_IMAGE == data_mode) return loadJPEGFromBuffer(buf, len);
+    if (DATA_MIME == data_mode) return decodeJPEGBufferIntoMimeSurface(buf, len);
+    if ((DATA_IMAGE | DATA_MIME) == data_mode) {
+      cairo_status_t status;
+      status = loadJPEGFromBuffer(buf, len);
+      if (status) return status;
+      return assignDataAsMime(buf, len, CAIRO_MIME_TYPE_JPEG);
+    }
+#else // HAVE_JPEG
+    this->errorInfo.set("node-canvas was built without JPEG support");
+    return CAIRO_STATUS_READ_ERROR;
+#endif
+  }
+
+  // confirm svg using first 1000 chars
+  // if a very long comment precedes the root <svg> tag, isSVG returns false
+  unsigned head_len = (len < 1000 ? len : 1000);
+  if (isSVG(buf, head_len)) {
+#ifdef HAVE_RSVG
+    return loadSVGFromBuffer(buf, len);
+#else
+    this->errorInfo.set("node-canvas was built without SVG support");
+    return CAIRO_STATUS_READ_ERROR;
+#endif
+  }
+
+  if (isBMP(buf, len))
+    return loadBMPFromBuffer(buf, len);
+
+  this->errorInfo.set("Unsupported image type");
+  return CAIRO_STATUS_READ_ERROR;
+}
+
+/*
+ * Load PNG data from `buf`.
+ */
+
+cairo_status_t
+Image::loadPNGFromBuffer(uint8_t *buf) {
+  read_closure_t closure;
+  closure.len = 0;
+  closure.buf = buf;
+  _surface = cairo_image_surface_create_from_png_stream(readPNG, &closure);
+  cairo_status_t status = cairo_surface_status(_surface);
+  if (status) return status;
+  return CAIRO_STATUS_SUCCESS;
+}
+
+/*
+ * Read PNG data.
+ */
+
+cairo_status_t
+Image::readPNG(void *c, uint8_t *data, unsigned int len) {
+  read_closure_t *closure = (read_closure_t *) c;
+  memcpy(data, closure->buf + closure->len, len);
+  closure->len += len;
+  return CAIRO_STATUS_SUCCESS;
+}
+
+/*
+ * Initialize a new Image.
+ */
+
+Image::Image() {
+  filename = NULL;
+  _data = nullptr;
+  _data_len = 0;
+  _surface = NULL;
+  width = height = 0;
+  naturalWidth = naturalHeight = 0;
+  state = DEFAULT;
+#ifdef HAVE_RSVG
+  _rsvg = NULL;
+  _is_svg = false;
+  _svg_last_width = _svg_last_height = 0;
+#endif
+}
+
+/*
+ * Destroy image and associated surface.
+ */
+
+Image::~Image() {
+  clearData();
+}
+
+/*
+ * Initiate image loading.
+ */
+
+cairo_status_t
+Image::load() {
+  if (LOADING != state) {
+    state = LOADING;
+    return loadSurface();
+  }
+  return CAIRO_STATUS_READ_ERROR;
+}
+
+/*
+ * Set state, assign dimensions.
+ */
+
+void
+Image::loaded() {
+  Nan::HandleScope scope;
+  state = COMPLETE;
+
+  width = naturalWidth = cairo_image_surface_get_width(_surface);
+  height = naturalHeight = cairo_image_surface_get_height(_surface);
+  _data_len = naturalHeight * cairo_image_surface_get_stride(_surface);
+  Nan::AdjustExternalMemory(_data_len);
+}
+
+/*
+ * Returns this image's surface.
+ */
+cairo_surface_t *Image::surface() {
+#ifdef HAVE_RSVG
+  if (_is_svg && (_svg_last_width != width || _svg_last_height != height)) {
+    if (_surface != NULL) {
+      cairo_surface_destroy(_surface);
+      _surface = NULL;
+    }
+
+    cairo_status_t status = renderSVGToSurface();
+    if (status != CAIRO_STATUS_SUCCESS) {
+      g_object_unref(_rsvg);
+      Nan::ThrowError(Canvas::Error(status));
+      return NULL;
+    }
+  }
+#endif
+  return _surface;
+}
+
+/*
+ * Load cairo surface from the image src.
+ *
+ * TODO: support more formats
+ * TODO: use node IO or at least thread pool
+ */
+
+cairo_status_t
+Image::loadSurface() {
+  FILE *stream = fopen(filename, "rb");
+  if (!stream) {
+    this->errorInfo.set(NULL, "fopen", errno, filename);
+    return CAIRO_STATUS_READ_ERROR;
+  }
+  uint8_t buf[5];
+  if (1 != fread(&buf, 5, 1, stream)) {
+    fclose(stream);
+    return CAIRO_STATUS_READ_ERROR;
+  }
+  rewind(stream);
+
+  // png
+  if (isPNG(buf)) {
+    fclose(stream);
+    return loadPNG();
+  }
+
+
+  if (isGIF(buf)) {
+#ifdef HAVE_GIF
+    return loadGIF(stream);
+#else
+    this->errorInfo.set("node-canvas was built without GIF support");
+    return CAIRO_STATUS_READ_ERROR;
+#endif
+  }
+
+  if (isJPEG(buf)) {
+#ifdef HAVE_JPEG
+    return loadJPEG(stream);
+#else
+    this->errorInfo.set("node-canvas was built without JPEG support");
+    return CAIRO_STATUS_READ_ERROR;
+#endif
+  }
+
+  // confirm svg using first 1000 chars
+  // if a very long comment precedes the root <svg> tag, isSVG returns false
+  uint8_t head[1000] = {0};
+  fseek(stream, 0 , SEEK_END);
+  long len = ftell(stream);
+  unsigned head_len = (len < 1000 ? len : 1000);
+  unsigned head_size = head_len * sizeof(uint8_t);
+  rewind(stream);
+  if (head_size != fread(&head, 1, head_size, stream)) {
+    fclose(stream);
+    return CAIRO_STATUS_READ_ERROR;
+  }
+  rewind(stream);
+  if (isSVG(head, head_len)) {
+#ifdef HAVE_RSVG
+    return loadSVG(stream);
+#else
+    this->errorInfo.set("node-canvas was built without SVG support");
+    return CAIRO_STATUS_READ_ERROR;
+#endif
+  }
+
+  if (isBMP(buf, 2))
+    return loadBMP(stream);
+
+  fclose(stream);
+
+  this->errorInfo.set("Unsupported image type");
+  return CAIRO_STATUS_READ_ERROR;
+}
+
+/*
+ * Load PNG.
+ */
+
+cairo_status_t
+Image::loadPNG() {
+  _surface = cairo_image_surface_create_from_png(filename);
+  return cairo_surface_status(_surface);
+}
+
+// GIF support
+
+#ifdef HAVE_GIF
+
+/*
+ * Return the alpha color for `gif` at `frame`, or -1.
+ */
+
+int
+get_gif_transparent_color(GifFileType *gif, int frame) {
+  ExtensionBlock *ext = gif->SavedImages[frame].ExtensionBlocks;
+  int len = gif->SavedImages[frame].ExtensionBlockCount;
+  for (int x = 0; x < len; ++x, ++ext) {
+    if ((ext->Function == GRAPHICS_EXT_FUNC_CODE) && (ext->Bytes[0] & 1)) {
+      return ext->Bytes[3] == 0 ? 0 : (uint8_t) ext->Bytes[3];
+    }
+  }
+  return -1;
+}
+
+/*
+ * Memory GIF reader callback.
+ */
+
+int
+read_gif_from_memory(GifFileType *gif, GifByteType *buf, int len) {
+  gif_data_t *data = (gif_data_t *) gif->UserData;
+  if ((data->pos + len) > data->len) len = data->len - data->pos;
+  memcpy(buf, data->pos + data->buf, len);
+  data->pos += len;
+  return len;
+}
+
+/*
+ * Load GIF.
+ */
+
+cairo_status_t
+Image::loadGIF(FILE *stream) {
+  struct stat s;
+  int fd = fileno(stream);
+
+  // stat
+  if (fstat(fd, &s) < 0) {
+    fclose(stream);
+    return CAIRO_STATUS_READ_ERROR;
+  }
+
+  uint8_t *buf = (uint8_t *) malloc(s.st_size);
+
+  if (!buf) {
+    fclose(stream);
+    this->errorInfo.set(NULL, "malloc", errno);
+    return CAIRO_STATUS_NO_MEMORY;
+  }
+
+  size_t read = fread(buf, s.st_size, 1, stream);
+  fclose(stream);
+
+  cairo_status_t result = CAIRO_STATUS_READ_ERROR;
+  if (1 == read) result = loadGIFFromBuffer(buf, s.st_size);
+  free(buf);
+
+  return result;
+}
+
+/*
+ * Load give from `buf` and the given `len`.
+ */
+
+cairo_status_t
+Image::loadGIFFromBuffer(uint8_t *buf, unsigned len) {
+  int i = 0;
+  GifFileType* gif;
+
+  gif_data_t gifd = { buf, len, 0 };
+
+#if GIFLIB_MAJOR >= 5
+  int errorcode;
+  if ((gif = DGifOpen((void*) &gifd, read_gif_from_memory, &errorcode)) == NULL)
+    return CAIRO_STATUS_READ_ERROR;
+#else
+  if ((gif = DGifOpen((void*) &gifd, read_gif_from_memory)) == NULL)
+    return CAIRO_STATUS_READ_ERROR;
+#endif
+
+  if (GIF_OK != DGifSlurp(gif)) {
+    GIF_CLOSE_FILE(gif);
+    return CAIRO_STATUS_READ_ERROR;
+  }
+
+  if (gif->SWidth > canvas_max_side || gif->SHeight > canvas_max_side) {
+    GIF_CLOSE_FILE(gif);
+    return CAIRO_STATUS_INVALID_SIZE;
+  }
+
+  width = naturalWidth = gif->SWidth;
+  height = naturalHeight = gif->SHeight;
+
+  uint8_t *data = new uint8_t[naturalWidth * naturalHeight * 4];
+  if (!data) {
+    GIF_CLOSE_FILE(gif);
+    this->errorInfo.set(NULL, "malloc", errno);
+    return CAIRO_STATUS_NO_MEMORY;
+  }
+
+  GifImageDesc *img = &gif->SavedImages[i].ImageDesc;
+
+  // local colormap takes precedence over global
+  ColorMapObject *colormap = img->ColorMap
+    ? img->ColorMap
+    : gif->SColorMap;
+
+  if (colormap == nullptr) {
+    GIF_CLOSE_FILE(gif);
+    return CAIRO_STATUS_READ_ERROR;
+  }
+
+  int bgColor = 0;
+  int alphaColor = get_gif_transparent_color(gif, i);
+  if (gif->SColorMap) bgColor = (uint8_t) gif->SBackGroundColor;
+  else if(alphaColor >= 0) bgColor = alphaColor;
+
+  uint8_t *src_data = (uint8_t*) gif->SavedImages[i].RasterBits;
+  uint32_t *dst_data = (uint32_t*) data;
+
+  if (!gif->Image.Interlace) {
+    if (naturalWidth == img->Width && naturalHeight == img->Height) {
+      for (int y = 0; y < naturalHeight; ++y) {
+        for (int x = 0; x < naturalWidth; ++x) {
+          *dst_data = ((*src_data == alphaColor) ? 0 : 255) << 24
+            | colormap->Colors[*src_data].Red << 16
+            | colormap->Colors[*src_data].Green << 8
+            | colormap->Colors[*src_data].Blue;
+
+          dst_data++;
+          src_data++;
+        }
+      }
+    } else {
+      // Image does not take up whole "screen" so we need to fill-in the background
+      int bottom = img->Top + img->Height;
+      int right = img->Left + img->Width;
+
+      uint32_t bgPixel =
+        ((bgColor == alphaColor) ? 0 : 255) << 24
+        | colormap->Colors[bgColor].Red << 16
+        | colormap->Colors[bgColor].Green << 8
+        | colormap->Colors[bgColor].Blue;
+
+      for (int y = 0; y < naturalHeight; ++y) {
+        for (int x = 0; x < naturalWidth; ++x) {
+          if (y < img->Top || y >= bottom || x < img->Left || x >= right) {
+            *dst_data = bgPixel;
+            dst_data++;
+          } else {
+            *dst_data = ((*src_data == alphaColor) ? 0 : 255) << 24
+              | colormap->Colors[*src_data].Red << 16
+              | colormap->Colors[*src_data].Green << 8
+              | colormap->Colors[*src_data].Blue;
+            dst_data++;
+            src_data++;
+          }
+        }
+      }
+    }
+  } else {
+    // Image is interlaced so that it streams nice over 14.4k and 28.8k modems :)
+    // We first load in 1/8 of the image, followed by another 1/8, followed by
+    // 1/4 and finally the remaining 1/2.
+    int ioffs[] = { 0, 4, 2, 1 };
+    int ijumps[] = { 8, 8, 4, 2 };
+
+    uint8_t *src_ptr = src_data;
+    uint32_t *dst_ptr;
+
+    for(int z = 0; z < 4; z++) {
+      for(int y = ioffs[z]; y < naturalHeight; y += ijumps[z]) {
+        dst_ptr = dst_data + naturalWidth * y;
+        for(int x = 0; x < naturalWidth; ++x) {
+          *dst_ptr = ((*src_ptr == alphaColor) ? 0 : 255) << 24
+            | (colormap->Colors[*src_ptr].Red) << 16
+            | (colormap->Colors[*src_ptr].Green) << 8
+            | (colormap->Colors[*src_ptr].Blue);
+
+          dst_ptr++;
+          src_ptr++;
+        }
+      }
+    }
+  }
+
+  GIF_CLOSE_FILE(gif);
+
+  // New image surface
+  _surface = cairo_image_surface_create_for_data(
+      data
+    , CAIRO_FORMAT_ARGB32
+    , naturalWidth
+    , naturalHeight
+    , cairo_format_stride_for_width(CAIRO_FORMAT_ARGB32, naturalWidth));
+
+  cairo_status_t status = cairo_surface_status(_surface);
+
+  if (status) {
+    delete[] data;
+    return status;
+  }
+
+  _data = data;
+
+  return CAIRO_STATUS_SUCCESS;
+}
+#endif /* HAVE_GIF */
+
+// JPEG support
+
+#ifdef HAVE_JPEG
+
+// libjpeg 6.2 does not have jpeg_mem_src; define it ourselves here unless
+// libjpeg 8 is installed.
+#if JPEG_LIB_VERSION < 80 && !defined(MEM_SRCDST_SUPPORTED)
+
+/* Read JPEG image from a memory segment */
+static void
+init_source(j_decompress_ptr cinfo) {}
+
+static boolean
+fill_input_buffer(j_decompress_ptr cinfo) {
+  ERREXIT(cinfo, JERR_INPUT_EMPTY);
+  return TRUE;
+}
+static void
+skip_input_data(j_decompress_ptr cinfo, long num_bytes) {
+  struct jpeg_source_mgr* src = (struct jpeg_source_mgr*) cinfo->src;
+  if (num_bytes > 0) {
+    src->next_input_byte += (size_t) num_bytes;
+    src->bytes_in_buffer -= (size_t) num_bytes;
+  }
+}
+
+static void term_source (j_decompress_ptr cinfo) {}
+static void jpeg_mem_src (j_decompress_ptr cinfo, void* buffer, long nbytes) {
+  struct jpeg_source_mgr* src;
+
+  if (cinfo->src == NULL) {
+    cinfo->src = (struct jpeg_source_mgr *)
+      (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT,
+                                  sizeof(struct jpeg_source_mgr));
+  }
+
+  src = (struct jpeg_source_mgr*) cinfo->src;
+  src->init_source = init_source;
+  src->fill_input_buffer = fill_input_buffer;
+  src->skip_input_data = skip_input_data;
+  src->resync_to_restart = jpeg_resync_to_restart; /* use default method */
+  src->term_source = term_source;
+  src->bytes_in_buffer = nbytes;
+  src->next_input_byte = (JOCTET*)buffer;
+}
+
+#endif
+
+void Image::jpegToARGB(jpeg_decompress_struct* args, uint8_t* data, uint8_t* src, JPEGDecodeL decode) {
+  int stride = naturalWidth * 4;
+  for (int y = 0; y < naturalHeight; ++y) {
+    jpeg_read_scanlines(args, &src, 1);
+    uint32_t *row = (uint32_t*)(data + stride * y);
+    for (int x = 0; x < naturalWidth; ++x) {
+      int bx = args->output_components * x;
+      row[x] = decode(src + bx);
+    }
+  }
+}
+
+/*
+ * Takes an initialised jpeg_decompress_struct and decodes the
+ * data into _surface.
+ */
+
+cairo_status_t
+Image::decodeJPEGIntoSurface(jpeg_decompress_struct *args) {
+  cairo_status_t status = CAIRO_STATUS_SUCCESS;
+
+  uint8_t *data = new uint8_t[naturalWidth * naturalHeight * 4];
+  if (!data) {
+    jpeg_abort_decompress(args);
+    jpeg_destroy_decompress(args);
+    this->errorInfo.set(NULL, "malloc", errno);
+    return CAIRO_STATUS_NO_MEMORY;
+  }
+
+  uint8_t *src = new uint8_t[naturalWidth * args->output_components];
+  if (!src) {
+    free(data);
+    jpeg_abort_decompress(args);
+    jpeg_destroy_decompress(args);
+    this->errorInfo.set(NULL, "malloc", errno);
+    return CAIRO_STATUS_NO_MEMORY;
+  }
+
+  // These are the three main cases to handle. libjpeg converts YCCK to CMYK
+  // and YCbCr to RGB by default.
+  switch (args->out_color_space) {
+    case JCS_CMYK:
+      jpegToARGB(args, data, src, [](uint8_t const* src) {
+        uint16_t k = static_cast<uint16_t>(src[3]);
+        uint8_t r = k * src[0] / 255;
+        uint8_t g = k * src[1] / 255;
+        uint8_t b = k * src[2] / 255;
+        return 255 << 24 | r << 16 | g << 8 | b;
+      });
+      break;
+    case JCS_RGB:
+      jpegToARGB(args, data, src, [](uint8_t const* src) {
+        uint8_t r = src[0], g = src[1], b = src[2];
+        return 255 << 24 | r << 16 | g << 8 | b;
+      });
+      break;
+    case JCS_GRAYSCALE:
+      jpegToARGB(args, data, src, [](uint8_t const* src) {
+        uint8_t v = src[0];
+        return 255 << 24 | v << 16 | v << 8 | v;
+      });
+      break;
+    default:
+      this->errorInfo.set("Unsupported JPEG encoding");
+      status = CAIRO_STATUS_READ_ERROR;
+      break;
+  }
+
+  if (!status) {
+    _surface = cairo_image_surface_create_for_data(
+        data
+      , CAIRO_FORMAT_ARGB32
+      , naturalWidth
+      , naturalHeight
+      , cairo_format_stride_for_width(CAIRO_FORMAT_ARGB32, naturalWidth));
+  }
+
+  jpeg_finish_decompress(args);
+  jpeg_destroy_decompress(args);
+  status = cairo_surface_status(_surface);
+
+  delete[] src;
+
+  if (status) {
+    delete[] data;
+    return status;
+  }
+
+  _data = data;
+
+  return CAIRO_STATUS_SUCCESS;
+}
+
+/*
+ * Callback to recover from jpeg errors
+ */
+
+static void canvas_jpeg_error_exit(j_common_ptr cinfo) {
+  canvas_jpeg_error_mgr *cjerr = static_cast<canvas_jpeg_error_mgr*>(cinfo->err);
+  cjerr->output_message(cinfo);
+  // Return control to the setjmp point
+  longjmp(cjerr->setjmp_buffer, 1);
+}
+
+// Capture libjpeg errors instead of writing stdout
+static void canvas_jpeg_output_message(j_common_ptr cinfo) {
+  canvas_jpeg_error_mgr *cjerr = static_cast<canvas_jpeg_error_mgr*>(cinfo->err);
+  char buff[JMSG_LENGTH_MAX];
+  cjerr->format_message(cinfo, buff);
+  // (Only the last message will be returned to JS land.)
+  cjerr->image->errorInfo.set(buff);
+}
+
+/*
+ * Takes a jpeg data buffer and assigns it as mime data to a
+ * dummy surface
+ */
+
+cairo_status_t
+Image::decodeJPEGBufferIntoMimeSurface(uint8_t *buf, unsigned len) {
+  // TODO: remove this duplicate logic
+  // JPEG setup
+  struct jpeg_decompress_struct args;
+  struct canvas_jpeg_error_mgr err;
+
+  err.image = this;
+  args.err = jpeg_std_error(&err);
+  args.err->error_exit = canvas_jpeg_error_exit;
+  args.err->output_message = canvas_jpeg_output_message;
+
+  // Establish the setjmp return context for canvas_jpeg_error_exit to use
+  if (setjmp(err.setjmp_buffer)) {
+    // If we get here, the JPEG code has signaled an error.
+    // We need to clean up the JPEG object, close the input file, and return.
+    jpeg_destroy_decompress(&args);
+    return CAIRO_STATUS_READ_ERROR;
+  }
+
+  jpeg_create_decompress(&args);
+
+  jpeg_mem_src(&args, buf, len);
+
+  jpeg_read_header(&args, 1);
+  jpeg_start_decompress(&args);
+  width = naturalWidth = args.output_width;
+  height = naturalHeight = args.output_height;
+
+  // Data alloc
+  // 8 pixels per byte using Alpha Channel format to reduce memory requirement.
+  int buf_size = naturalHeight * cairo_format_stride_for_width(CAIRO_FORMAT_A1, naturalWidth);
+  uint8_t *data = new uint8_t[buf_size];
+  if (!data) {
+    this->errorInfo.set(NULL, "malloc", errno);
+    return CAIRO_STATUS_NO_MEMORY;
+  }
+
+  // New image surface
+  _surface = cairo_image_surface_create_for_data(
+      data
+    , CAIRO_FORMAT_A1
+    , naturalWidth
+    , naturalHeight
+    , cairo_format_stride_for_width(CAIRO_FORMAT_A1, naturalWidth));
+
+  // Cleanup
+  jpeg_abort_decompress(&args);
+  jpeg_destroy_decompress(&args);
+  cairo_status_t status = cairo_surface_status(_surface);
+
+  if (status) {
+    delete[] data;
+    return status;
+  }
+
+  _data = data;
+
+  return assignDataAsMime(buf, len, CAIRO_MIME_TYPE_JPEG);
+}
+
+/*
+ * Helper function for disposing of a mime data closure.
+ */
+
+void
+clearMimeData(void *closure) {
+  Nan::AdjustExternalMemory(
+      -static_cast<int>((static_cast<read_closure_t *>(closure)->len)));
+  free(static_cast<read_closure_t *>(closure)->buf);
+  free(closure);
+}
+
+/*
+ * Assign a given buffer as mime data against the surface.
+ * The provided buffer will be copied, and the copy will
+ * be automatically freed when the surface is destroyed.
+ */
+
+cairo_status_t
+Image::assignDataAsMime(uint8_t *data, int len, const char *mime_type) {
+  uint8_t *mime_data = (uint8_t *) malloc(len);
+  if (!mime_data) {
+    this->errorInfo.set(NULL, "malloc", errno);
+    return CAIRO_STATUS_NO_MEMORY;
+  }
+
+  read_closure_t *mime_closure = (read_closure_t *) malloc(sizeof(read_closure_t));
+  if (!mime_closure) {
+    free(mime_data);
+    this->errorInfo.set(NULL, "malloc", errno);
+    return CAIRO_STATUS_NO_MEMORY;
+  }
+
+  memcpy(mime_data, data, len);
+
+  mime_closure->buf = mime_data;
+  mime_closure->len = len;
+
+  Nan::AdjustExternalMemory(len);
+
+  return cairo_surface_set_mime_data(_surface
+    , mime_type
+    , mime_data
+    , len
+    , clearMimeData
+    , mime_closure);
+}
+
+/*
+ * Load jpeg from buffer.
+ */
+
+cairo_status_t
+Image::loadJPEGFromBuffer(uint8_t *buf, unsigned len) {
+  // TODO: remove this duplicate logic
+  // JPEG setup
+  struct jpeg_decompress_struct args;
+  struct canvas_jpeg_error_mgr err;
+
+  err.image = this;
+  args.err = jpeg_std_error(&err);
+  args.err->error_exit = canvas_jpeg_error_exit;
+  args.err->output_message = canvas_jpeg_output_message;
+
+  // Establish the setjmp return context for canvas_jpeg_error_exit to use
+  if (setjmp(err.setjmp_buffer)) {
+    // If we get here, the JPEG code has signaled an error.
+    // We need to clean up the JPEG object, close the input file, and return.
+    jpeg_destroy_decompress(&args);
+    return CAIRO_STATUS_READ_ERROR;
+  }
+
+  jpeg_create_decompress(&args);
+
+  jpeg_mem_src(&args, buf, len);
+
+  jpeg_read_header(&args, 1);
+  jpeg_start_decompress(&args);
+  width = naturalWidth = args.output_width;
+  height = naturalHeight = args.output_height;
+
+  return decodeJPEGIntoSurface(&args);
+}
+
+/*
+ * Load JPEG, convert RGB to ARGB.
+ */
+
+cairo_status_t
+Image::loadJPEG(FILE *stream) {
+  cairo_status_t status;
+
+#if defined(_MSC_VER)
+  if (false) { // Force using loadJPEGFromBuffer
+#else
+  if (data_mode == DATA_IMAGE) { // Can lazily read in the JPEG.
+#endif
+    // JPEG setup
+    struct jpeg_decompress_struct args;
+    struct canvas_jpeg_error_mgr err;
+
+    err.image = this;
+    args.err = jpeg_std_error(&err);
+    args.err->error_exit = canvas_jpeg_error_exit;
+    args.err->output_message = canvas_jpeg_output_message;
+
+    // Establish the setjmp return context for canvas_jpeg_error_exit to use
+    if (setjmp(err.setjmp_buffer)) {
+      // If we get here, the JPEG code has signaled an error.
+      // We need to clean up the JPEG object, close the input file, and return.
+      jpeg_destroy_decompress(&args);
+      return CAIRO_STATUS_READ_ERROR;
+    }
+
+    jpeg_create_decompress(&args);
+
+    jpeg_stdio_src(&args, stream);
+
+    jpeg_read_header(&args, 1);
+    jpeg_start_decompress(&args);
+
+    if (args.output_width > canvas_max_side || args.output_height > canvas_max_side) {
+      jpeg_destroy_decompress(&args);
+      return CAIRO_STATUS_INVALID_SIZE;
+    }
+
+    width = naturalWidth = args.output_width;
+    height = naturalHeight = args.output_height;
+
+    status = decodeJPEGIntoSurface(&args);
+    fclose(stream);
+  } else { // We'll need the actual source jpeg data, so read fully.
+    uint8_t *buf;
+    unsigned len;
+
+    fseek(stream, 0, SEEK_END);
+    len = ftell(stream);
+    fseek(stream, 0, SEEK_SET);
+
+    buf = (uint8_t *) malloc(len);
+    if (!buf) {
+      this->errorInfo.set(NULL, "malloc", errno);
+      return CAIRO_STATUS_NO_MEMORY;
+    }
+
+    if (fread(buf, len, 1, stream) != 1) {
+      status = CAIRO_STATUS_READ_ERROR;
+    } else if ((DATA_IMAGE | DATA_MIME) == data_mode) {
+      status = loadJPEGFromBuffer(buf, len);
+      if (!status) status = assignDataAsMime(buf, len, CAIRO_MIME_TYPE_JPEG);
+    } else if (DATA_MIME == data_mode) {
+      status = decodeJPEGBufferIntoMimeSurface(buf, len);
+    }
+#if defined(_MSC_VER)
+    else if (DATA_IMAGE == data_mode) {
+      status = loadJPEGFromBuffer(buf, len);
+    }
+#endif
+    else {
+      status = CAIRO_STATUS_READ_ERROR;
+    }
+
+    fclose(stream);
+    free(buf);
+  }
+
+  return status;
+}
+
+#endif /* HAVE_JPEG */
+
+#ifdef HAVE_RSVG
+
+/*
+ * Load SVG from buffer
+ */
+
+cairo_status_t
+Image::loadSVGFromBuffer(uint8_t *buf, unsigned len) {
+  _is_svg = true;
+
+  cairo_status_t status;
+  GError *gerr = NULL;
+
+  if (NULL == (_rsvg = rsvg_handle_new_from_data(buf, len, &gerr))) {
+    return CAIRO_STATUS_READ_ERROR;
+  }
+
+  RsvgDimensionData *dims = new RsvgDimensionData();
+  rsvg_handle_get_dimensions(_rsvg, dims);
+
+  width = naturalWidth = dims->width;
+  height = naturalHeight = dims->height;
+
+  status = renderSVGToSurface();
+  if (status != CAIRO_STATUS_SUCCESS) {
+    g_object_unref(_rsvg);
+    return status;
+  }
+
+  return CAIRO_STATUS_SUCCESS;
+}
+
+/*
+ * Renders the Rsvg handle to this image's surface
+ */
+cairo_status_t
+Image::renderSVGToSurface() {
+  cairo_status_t status;
+
+  _surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width, height);
+
+  status = cairo_surface_status(_surface);
+  if (status != CAIRO_STATUS_SUCCESS) {
+    g_object_unref(_rsvg);
+    return status;
+  }
+
+  cairo_t *cr = cairo_create(_surface);
+  cairo_scale(cr,
+    (double)width / (double)naturalWidth,
+    (double)height / (double)naturalHeight);
+  status = cairo_status(cr);
+  if (status != CAIRO_STATUS_SUCCESS) {
+    g_object_unref(_rsvg);
+    return status;
+  }
+
+  gboolean render_ok = rsvg_handle_render_cairo(_rsvg, cr);
+  if (!render_ok) {
+    g_object_unref(_rsvg);
+    cairo_destroy(cr);
+    return CAIRO_STATUS_READ_ERROR; // or WRITE?
+  }
+
+  cairo_destroy(cr);
+
+  _svg_last_width = width;
+  _svg_last_height = height;
+
+  return status;
+}
+
+/*
+ * Load SVG
+ */
+
+cairo_status_t
+Image::loadSVG(FILE *stream) {
+  _is_svg = true;
+
+  struct stat s;
+  int fd = fileno(stream);
+
+  // stat
+  if (fstat(fd, &s) < 0) {
+    fclose(stream);
+    return CAIRO_STATUS_READ_ERROR;
+  }
+
+  uint8_t *buf = (uint8_t *) malloc(s.st_size);
+
+  if (!buf) {
+    fclose(stream);
+    return CAIRO_STATUS_NO_MEMORY;
+  }
+
+  size_t read = fread(buf, s.st_size, 1, stream);
+  fclose(stream);
+
+  cairo_status_t result = CAIRO_STATUS_READ_ERROR;
+  if (1 == read) result = loadSVGFromBuffer(buf, s.st_size);
+  free(buf);
+
+  return result;
+}
+
+#endif /* HAVE_RSVG */
+
+/*
+ * Load BMP from buffer.
+ */
+
+cairo_status_t Image::loadBMPFromBuffer(uint8_t *buf, unsigned len){
+  BMPParser::Parser parser;
+
+  // Reversed ARGB32 with pre-multiplied alpha
+  uint8_t pixFmt[5] = {2, 1, 0, 3, 1};
+  parser.parse(buf, len, pixFmt);
+
+  if (parser.getStatus() != BMPParser::Status::OK) {
+    errorInfo.reset();
+    errorInfo.message = parser.getErrMsg();
+    return CAIRO_STATUS_READ_ERROR;
+  }
+
+  width = naturalWidth = parser.getWidth();
+  height = naturalHeight = parser.getHeight();
+  uint8_t *data = parser.getImgd();
+
+  _surface = cairo_image_surface_create_for_data(
+    data,
+    CAIRO_FORMAT_ARGB32,
+    width,
+    height,
+    cairo_format_stride_for_width(CAIRO_FORMAT_ARGB32, width)
+  );
+
+  // No need to delete the data
+  cairo_status_t status = cairo_surface_status(_surface);
+  if (status) return status;
+
+  _data = data;
+  parser.clearImgd();
+
+  return CAIRO_STATUS_SUCCESS;
+}
+
+/*
+ * Load BMP.
+ */
+
+cairo_status_t Image::loadBMP(FILE *stream){
+  struct stat s;
+  int fd = fileno(stream);
+
+  // Stat
+  if (fstat(fd, &s) < 0) {
+    fclose(stream);
+    return CAIRO_STATUS_READ_ERROR;
+  }
+
+  uint8_t *buf = new uint8_t[s.st_size];
+
+  if (!buf) {
+    fclose(stream);
+    errorInfo.set(NULL, "malloc", errno);
+    return CAIRO_STATUS_NO_MEMORY;
+  }
+
+  size_t read = fread(buf, s.st_size, 1, stream);
+  fclose(stream);
+
+  cairo_status_t result = CAIRO_STATUS_READ_ERROR;
+  if (read == 1) result = loadBMPFromBuffer(buf, s.st_size);
+  delete[] buf;
+
+  return result;
+}
+
+/*
+ * Return UNKNOWN, SVG, GIF, JPEG, or PNG based on the filename.
+ */
+
+Image::type
+Image::extension(const char *filename) {
+  size_t len = strlen(filename);
+  filename += len;
+  if (len >= 5 && 0 == strcmp(".jpeg", filename - 5)) return Image::JPEG;
+  if (len >= 4 && 0 == strcmp(".gif", filename - 4)) return Image::GIF;
+  if (len >= 4 && 0 == strcmp(".jpg", filename - 4)) return Image::JPEG;
+  if (len >= 4 && 0 == strcmp(".png", filename - 4)) return Image::PNG;
+  if (len >= 4 && 0 == strcmp(".svg", filename - 4)) return Image::SVG;
+  return Image::UNKNOWN;
+}
+
+/*
+ * Sniff bytes 0..1 for JPEG's magic number ff d8.
+ */
+
+int
+Image::isJPEG(uint8_t *data) {
+  return 0xff == data[0] && 0xd8 == data[1];
+}
+
+/*
+ * Sniff bytes 0..2 for "GIF".
+ */
+
+int
+Image::isGIF(uint8_t *data) {
+  return 'G' == data[0] && 'I' == data[1] && 'F' == data[2];
+}
+
+/*
+ * Sniff bytes 1..3 for "PNG".
+ */
+
+int
+Image::isPNG(uint8_t *data) {
+  return 'P' == data[1] && 'N' == data[2] && 'G' == data[3];
+}
+
+/*
+ * Skip "<?" and "<!" tags to test if root tag starts "<svg"
+ */
+int
+Image::isSVG(uint8_t *data, unsigned len) {
+  for (unsigned i = 3; i < len; i++) {
+    if ('<' == data[i-3]) {
+      switch (data[i-2]) {
+        case '?':
+        case '!':
+          break;
+        case 's':
+          return ('v' == data[i-1] && 'g' == data[i]);
+        default:
+          return false;
+      }
+    }
+  }
+  return false;
+}
+
+/*
+ * Check for valid BMP signatures
+ */
+
+int Image::isBMP(uint8_t *data, unsigned len) {
+  if(len < 2) return false;
+  std::string sig = std::string(1, (char)data[0]) + (char)data[1];
+  return sig == "BM" ||
+         sig == "BA" ||
+         sig == "CI" ||
+         sig == "CP" ||
+         sig == "IC" ||
+         sig == "PT";
+}
diff --git a/node_modules/canvas/src/Image.h b/node_modules/canvas/src/Image.h
new file mode 100644
index 0000000..62bc3f1
--- /dev/null
+++ b/node_modules/canvas/src/Image.h
@@ -0,0 +1,127 @@
+// Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+
+#pragma once
+
+#include <cairo.h>
+#include "CanvasError.h"
+#include <functional>
+#include <nan.h>
+#include <stdint.h> // node < 7 uses libstdc++ on macOS which lacks complete c++11
+#include <v8.h>
+
+#ifdef HAVE_JPEG
+#include <jpeglib.h>
+#include <jerror.h>
+#endif
+
+#ifdef HAVE_GIF
+#include <gif_lib.h>
+
+  #if GIFLIB_MAJOR > 5 || GIFLIB_MAJOR == 5 && GIFLIB_MINOR >= 1
+    #define GIF_CLOSE_FILE(gif) DGifCloseFile(gif, NULL)
+  #else
+    #define GIF_CLOSE_FILE(gif) DGifCloseFile(gif)
+  #endif
+#endif
+
+#ifdef HAVE_RSVG
+#include <librsvg/rsvg.h>
+  // librsvg <= 2.36.1, identified by undefined macro, needs an extra include
+  #ifndef LIBRSVG_CHECK_VERSION
+  #include <librsvg/rsvg-cairo.h>
+  #endif
+#endif
+
+using JPEGDecodeL = std::function<uint32_t (uint8_t* const src)>;
+
+class Image: public Nan::ObjectWrap {
+  public:
+    char *filename;
+    int width, height;
+    int naturalWidth, naturalHeight;
+    static Nan::Persistent<v8::FunctionTemplate> constructor;
+    static void Initialize(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE target);
+    static NAN_METHOD(New);
+    static NAN_GETTER(GetComplete);
+    static NAN_GETTER(GetWidth);
+    static NAN_GETTER(GetHeight);
+    static NAN_GETTER(GetNaturalWidth);
+    static NAN_GETTER(GetNaturalHeight);
+    static NAN_GETTER(GetDataMode);
+    static NAN_SETTER(SetDataMode);
+    static NAN_SETTER(SetWidth);
+    static NAN_SETTER(SetHeight);
+    static NAN_METHOD(GetSource);
+    static NAN_METHOD(SetSource);
+    inline uint8_t *data(){ return cairo_image_surface_get_data(_surface); }
+    inline int stride(){ return cairo_image_surface_get_stride(_surface); }
+    static int isPNG(uint8_t *data);
+    static int isJPEG(uint8_t *data);
+    static int isGIF(uint8_t *data);
+    static int isSVG(uint8_t *data, unsigned len);
+    static int isBMP(uint8_t *data, unsigned len);
+    static cairo_status_t readPNG(void *closure, unsigned char *data, unsigned len);
+    inline int isComplete(){ return COMPLETE == state; }
+    cairo_surface_t *surface();
+    cairo_status_t loadSurface();
+    cairo_status_t loadFromBuffer(uint8_t *buf, unsigned len);
+    cairo_status_t loadPNGFromBuffer(uint8_t *buf);
+    cairo_status_t loadPNG();
+    void clearData();
+#ifdef HAVE_RSVG
+    cairo_status_t loadSVGFromBuffer(uint8_t *buf, unsigned len);
+    cairo_status_t loadSVG(FILE *stream);
+    cairo_status_t renderSVGToSurface();
+#endif
+#ifdef HAVE_GIF
+    cairo_status_t loadGIFFromBuffer(uint8_t *buf, unsigned len);
+    cairo_status_t loadGIF(FILE *stream);
+#endif
+#ifdef HAVE_JPEG
+    cairo_status_t loadJPEGFromBuffer(uint8_t *buf, unsigned len);
+    cairo_status_t loadJPEG(FILE *stream);
+    void jpegToARGB(jpeg_decompress_struct* args, uint8_t* data, uint8_t* src, JPEGDecodeL decode);
+    cairo_status_t decodeJPEGIntoSurface(jpeg_decompress_struct *info);
+    cairo_status_t decodeJPEGBufferIntoMimeSurface(uint8_t *buf, unsigned len);
+    cairo_status_t assignDataAsMime(uint8_t *data, int len, const char *mime_type);
+#endif
+    cairo_status_t loadBMPFromBuffer(uint8_t *buf, unsigned len);
+    cairo_status_t loadBMP(FILE *stream);
+    CanvasError errorInfo;
+    void loaded();
+    cairo_status_t load();
+    Image();
+
+    enum {
+        DEFAULT
+      , LOADING
+      , COMPLETE
+    } state;
+
+    enum data_mode_t {
+        DATA_IMAGE = 1
+      , DATA_MIME = 2
+    } data_mode;
+
+    typedef enum {
+        UNKNOWN
+      , GIF
+      , JPEG
+      , PNG
+      , SVG
+    } type;
+
+    static type extension(const char *filename);
+
+  private:
+    cairo_surface_t *_surface;
+    uint8_t *_data = nullptr;
+    int _data_len;
+#ifdef HAVE_RSVG
+    RsvgHandle *_rsvg;
+    bool _is_svg;
+    int _svg_last_width;
+    int _svg_last_height;
+#endif
+    ~Image();
+};
diff --git a/node_modules/canvas/src/ImageData.cc b/node_modules/canvas/src/ImageData.cc
new file mode 100644
index 0000000..03da2e2
--- /dev/null
+++ b/node_modules/canvas/src/ImageData.cc
@@ -0,0 +1,146 @@
+// Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+
+#include "ImageData.h"
+
+using namespace v8;
+
+Nan::Persistent<FunctionTemplate> ImageData::constructor;
+
+/*
+ * Initialize ImageData.
+ */
+
+void
+ImageData::Initialize(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE target) {
+  Nan::HandleScope scope;
+
+  // Constructor
+  Local<FunctionTemplate> ctor = Nan::New<FunctionTemplate>(ImageData::New);
+  constructor.Reset(ctor);
+  ctor->InstanceTemplate()->SetInternalFieldCount(1);
+  ctor->SetClassName(Nan::New("ImageData").ToLocalChecked());
+
+  // Prototype
+  Local<ObjectTemplate> proto = ctor->PrototypeTemplate();
+  Nan::SetAccessor(proto, Nan::New("width").ToLocalChecked(), GetWidth);
+  Nan::SetAccessor(proto, Nan::New("height").ToLocalChecked(), GetHeight);
+  Local<Context> ctx = Nan::GetCurrentContext();
+  Nan::Set(target, Nan::New("ImageData").ToLocalChecked(), ctor->GetFunction(ctx).ToLocalChecked());
+}
+
+/*
+ * Initialize a new ImageData object.
+ */
+
+NAN_METHOD(ImageData::New) {
+  if (!info.IsConstructCall()) {
+    return Nan::ThrowTypeError("Class constructors cannot be invoked without 'new'");
+  }
+
+  Local<TypedArray> dataArray;
+  uint32_t width;
+  uint32_t height;
+  int length;
+
+  if (info[0]->IsUint32() && info[1]->IsUint32()) {
+    width = Nan::To<uint32_t>(info[0]).FromMaybe(0);
+    if (width == 0) {
+      Nan::ThrowRangeError("The source width is zero.");
+      return;
+    }
+    height = Nan::To<uint32_t>(info[1]).FromMaybe(0);
+    if (height == 0) {
+      Nan::ThrowRangeError("The source height is zero.");
+      return;
+    }
+    length = width * height * 4; // ImageData(w, h) constructor assumes 4 BPP; documented.
+
+    dataArray = Uint8ClampedArray::New(ArrayBuffer::New(Isolate::GetCurrent(), length), 0, length);
+
+  } else if (info[0]->IsUint8ClampedArray() && info[1]->IsUint32()) {
+    dataArray = info[0].As<Uint8ClampedArray>();
+
+    length = dataArray->Length();
+    if (length == 0) {
+      Nan::ThrowRangeError("The input data has a zero byte length.");
+      return;
+    }
+
+    // Don't assert that the ImageData length is a multiple of four because some
+    // data formats are not 4 BPP.
+
+    width = Nan::To<uint32_t>(info[1]).FromMaybe(0);
+    if (width == 0) {
+      Nan::ThrowRangeError("The source width is zero.");
+      return;
+    }
+
+    // Don't assert that the byte length is a multiple of 4 * width, ditto.
+
+    if (info[2]->IsUint32()) { // Explicit height given
+      height = Nan::To<uint32_t>(info[2]).FromMaybe(0);
+    } else { // Calculate height assuming 4 BPP
+      int size = length / 4;
+      height = size / width;
+    }
+
+  } else if (info[0]->IsUint16Array() && info[1]->IsUint32()) { // Intended for RGB16_565 format
+  dataArray = info[0].As<Uint16Array>();
+
+  length = dataArray->Length();
+  if (length == 0) {
+    Nan::ThrowRangeError("The input data has a zero byte length.");
+    return;
+  }
+
+  width = Nan::To<uint32_t>(info[1]).FromMaybe(0);
+  if (width == 0) {
+    Nan::ThrowRangeError("The source width is zero.");
+    return;
+  }
+
+  if (info[2]->IsUint32()) { // Explicit height given
+    height = Nan::To<uint32_t>(info[2]).FromMaybe(0);
+  } else { // Calculate height assuming 2 BPP
+    int size = length / 2;
+    height = size / width;
+  }
+
+  } else {
+    Nan::ThrowTypeError("Expected (Uint8ClampedArray, width[, height]), (Uint16Array, width[, height]) or (width, height)");
+    return;
+  }
+
+  Nan::TypedArrayContents<uint8_t> dataPtr(dataArray);
+
+  ImageData *imageData = new ImageData(reinterpret_cast<uint8_t*>(*dataPtr), width, height);
+  imageData->Wrap(info.This());
+  Nan::Set(info.This(), Nan::New("data").ToLocalChecked(), dataArray).Check();
+  info.GetReturnValue().Set(info.This());
+}
+
+/*
+ * Get width.
+ */
+
+NAN_GETTER(ImageData::GetWidth) {
+  if (!ImageData::constructor.Get(info.GetIsolate())->HasInstance(info.This())) {
+    Nan::ThrowTypeError("Method ImageData.GetWidth called on incompatible receiver");
+    return;
+  }
+  ImageData *imageData = Nan::ObjectWrap::Unwrap<ImageData>(info.This());
+  info.GetReturnValue().Set(Nan::New<Number>(imageData->width()));
+}
+
+/*
+ * Get height.
+ */
+
+NAN_GETTER(ImageData::GetHeight) {
+  if (!ImageData::constructor.Get(info.GetIsolate())->HasInstance(info.This())) {
+    Nan::ThrowTypeError("Method ImageData.GetHeight called on incompatible receiver");
+    return;
+  }
+  ImageData *imageData = Nan::ObjectWrap::Unwrap<ImageData>(info.This());
+  info.GetReturnValue().Set(Nan::New<Number>(imageData->height()));
+}
diff --git a/node_modules/canvas/src/ImageData.h b/node_modules/canvas/src/ImageData.h
new file mode 100644
index 0000000..4832b37
--- /dev/null
+++ b/node_modules/canvas/src/ImageData.h
@@ -0,0 +1,27 @@
+// Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+
+#pragma once
+
+#include <nan.h>
+#include <stdint.h> // node < 7 uses libstdc++ on macOS which lacks complete c++11
+#include <v8.h>
+
+class ImageData: public Nan::ObjectWrap {
+  public:
+    static Nan::Persistent<v8::FunctionTemplate> constructor;
+    static void Initialize(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE target);
+    static NAN_METHOD(New);
+    static NAN_GETTER(GetWidth);
+    static NAN_GETTER(GetHeight);
+
+    inline int width() { return _width; }
+    inline int height() { return _height; }
+    inline uint8_t *data() { return _data; }
+    ImageData(uint8_t *data, int width, int height) : _width(width), _height(height), _data(data) {}
+
+  private:
+    int _width;
+    int _height;
+    uint8_t *_data;
+
+};
diff --git a/node_modules/canvas/src/InstanceData.h b/node_modules/canvas/src/InstanceData.h
new file mode 100644
index 0000000..9fb3cf4
--- /dev/null
+++ b/node_modules/canvas/src/InstanceData.h
@@ -0,0 +1,8 @@
+#include <napi.h>
+
+struct InstanceData {
+  Napi::FunctionReference ImageBackendCtor;
+  Napi::FunctionReference PdfBackendCtor;
+  Napi::FunctionReference SvgBackendCtor;
+  Napi::FunctionReference CanvasCtor;
+};
diff --git a/node_modules/canvas/src/JPEGStream.h b/node_modules/canvas/src/JPEGStream.h
new file mode 100644
index 0000000..b8efeed
--- /dev/null
+++ b/node_modules/canvas/src/JPEGStream.h
@@ -0,0 +1,167 @@
+#pragma once
+
+#include "closure.h"
+#include <jpeglib.h>
+#include <jerror.h>
+
+/*
+ * Expanded data destination object for closure output,
+ * inspired by IJG's jdatadst.c
+ */
+
+struct closure_destination_mgr {
+  jpeg_destination_mgr pub;
+  JpegClosure* closure;
+  JOCTET *buffer;
+  int bufsize;
+};
+
+void
+init_closure_destination(j_compress_ptr cinfo){
+  // we really don't have to do anything here
+}
+
+boolean
+empty_closure_output_buffer(j_compress_ptr cinfo){
+  Nan::HandleScope scope;
+  Nan::AsyncResource async("canvas:empty_closure_output_buffer");
+  closure_destination_mgr *dest = (closure_destination_mgr *) cinfo->dest;
+
+  v8::Local<v8::Object> buf = Nan::NewBuffer((char *)dest->buffer, dest->bufsize).ToLocalChecked();
+
+  // emit "data"
+  v8::Local<v8::Value> argv[2] = {
+      Nan::Null()
+    , buf
+  };
+  dest->closure->cb.Call(sizeof argv / sizeof *argv, argv, &async);
+
+  dest->buffer = (JOCTET *)malloc(dest->bufsize);
+  cinfo->dest->next_output_byte = dest->buffer;
+  cinfo->dest->free_in_buffer = dest->bufsize;
+  return true;
+}
+
+void
+term_closure_destination(j_compress_ptr cinfo){
+  Nan::HandleScope scope;
+  Nan::AsyncResource async("canvas:term_closure_destination");
+  closure_destination_mgr *dest = (closure_destination_mgr *) cinfo->dest;
+
+  /* emit remaining data */
+  v8::Local<v8::Object> buf = Nan::NewBuffer((char *)dest->buffer, dest->bufsize - dest->pub.free_in_buffer).ToLocalChecked();
+
+  v8::Local<v8::Value> data_argv[2] = {
+      Nan::Null()
+    , buf
+  };
+  dest->closure->cb.Call(sizeof data_argv / sizeof *data_argv, data_argv, &async);
+
+  // emit "end"
+  v8::Local<v8::Value> end_argv[2] = {
+      Nan::Null()
+    , Nan::Null()
+  };
+  dest->closure->cb.Call(sizeof end_argv / sizeof *end_argv, end_argv, &async);
+}
+
+void
+jpeg_closure_dest(j_compress_ptr cinfo, JpegClosure* closure, int bufsize){
+  closure_destination_mgr * dest;
+
+  /* The destination object is made permanent so that multiple JPEG images
+   * can be written to the same buffer without re-executing jpeg_mem_dest.
+   */
+  if (cinfo->dest == NULL) {  /* first time for this JPEG object? */
+    cinfo->dest = (struct jpeg_destination_mgr *)
+      (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT,
+         sizeof(closure_destination_mgr));
+  }
+
+  dest = (closure_destination_mgr *) cinfo->dest;
+
+  cinfo->dest->init_destination = &init_closure_destination;
+  cinfo->dest->empty_output_buffer = &empty_closure_output_buffer;
+  cinfo->dest->term_destination = &term_closure_destination;
+
+  dest->closure = closure;
+  dest->bufsize = bufsize;
+  dest->buffer = (JOCTET *)malloc(bufsize);
+
+  cinfo->dest->next_output_byte = dest->buffer;
+  cinfo->dest->free_in_buffer = dest->bufsize;
+}
+
+void encode_jpeg(jpeg_compress_struct cinfo, cairo_surface_t *surface, int quality, bool progressive, int chromaHSampFactor, int chromaVSampFactor) {
+  int w = cairo_image_surface_get_width(surface);
+  int h = cairo_image_surface_get_height(surface);
+
+  cinfo.in_color_space = JCS_RGB;
+  cinfo.input_components = 3;
+  cinfo.image_width = w;
+  cinfo.image_height = h;
+  jpeg_set_defaults(&cinfo);
+  if (progressive)
+    jpeg_simple_progression(&cinfo);
+  jpeg_set_quality(&cinfo, quality, (quality < 25) ? 0 : 1);
+  cinfo.comp_info[0].h_samp_factor = chromaHSampFactor;
+  cinfo.comp_info[0].v_samp_factor = chromaVSampFactor;
+
+  JSAMPROW slr;
+  jpeg_start_compress(&cinfo, TRUE);
+  unsigned char *dst;
+  unsigned int *src = (unsigned int *)cairo_image_surface_get_data(surface);
+  int sl = 0;
+  dst = (unsigned char *)malloc(w * 3);
+  while (sl < h) {
+    unsigned char *dp = dst;
+    int x = 0;
+    while (x < w) {
+      dp[0] = (*src >> 16) & 255;
+      dp[1] = (*src >> 8) & 255;
+      dp[2] = *src & 255;
+      src++;
+      dp += 3;
+      x++;
+    }
+    slr = dst;
+    jpeg_write_scanlines(&cinfo, &slr, 1);
+    sl++;
+  }
+  free(dst);
+  jpeg_finish_compress(&cinfo);
+  jpeg_destroy_compress(&cinfo);
+}
+
+void
+write_to_jpeg_stream(cairo_surface_t *surface, int bufsize, JpegClosure* closure) {
+  jpeg_compress_struct cinfo;
+  jpeg_error_mgr jerr;
+  cinfo.err = jpeg_std_error(&jerr);
+  jpeg_create_compress(&cinfo);
+  jpeg_closure_dest(&cinfo, closure, bufsize);
+  encode_jpeg(
+    cinfo,
+    surface,
+    closure->quality,
+    closure->progressive,
+    closure->chromaSubsampling,
+    closure->chromaSubsampling);
+}
+
+void
+write_to_jpeg_buffer(cairo_surface_t* surface, JpegClosure* closure) {
+  jpeg_compress_struct cinfo;
+  jpeg_error_mgr jerr;
+  cinfo.err = jpeg_std_error(&jerr);
+  jpeg_create_compress(&cinfo);
+  cinfo.client_data = closure;
+  cinfo.dest = closure->jpeg_dest_mgr;
+  encode_jpeg(
+    cinfo,
+    surface,
+    closure->quality,
+    closure->progressive,
+    closure->chromaSubsampling,
+    closure->chromaSubsampling);
+}
diff --git a/node_modules/canvas/src/PNG.h b/node_modules/canvas/src/PNG.h
new file mode 100644
index 0000000..30b88f8
--- /dev/null
+++ b/node_modules/canvas/src/PNG.h
@@ -0,0 +1,292 @@
+#pragma once
+
+#include <cairo.h>
+#include "closure.h"
+#include <cmath> // round
+#include <cstdlib>
+#include <cstring>
+#include <png.h>
+#include <pngconf.h>
+
+#if defined(__GNUC__) && (__GNUC__ > 2) && defined(__OPTIMIZE__)
+#define likely(expr) (__builtin_expect (!!(expr), 1))
+#define unlikely(expr) (__builtin_expect (!!(expr), 0))
+#else
+#define likely(expr) (expr)
+#define unlikely(expr) (expr)
+#endif
+
+static void canvas_png_flush(png_structp png_ptr) {
+    /* Do nothing; fflush() is said to be just a waste of energy. */
+    (void) png_ptr;   /* Stifle compiler warning */
+}
+
+/* Converts native endian xRGB => RGBx bytes */
+static void canvas_convert_data_to_bytes(png_structp png, png_row_infop row_info, png_bytep data) {
+    unsigned int i;
+
+    for (i = 0; i < row_info->rowbytes; i += 4) {
+        uint8_t *b = &data[i];
+        uint32_t pixel;
+
+        memcpy(&pixel, b, sizeof (uint32_t));
+
+        b[0] = (pixel & 0xff0000) >> 16;
+        b[1] = (pixel & 0x00ff00) >>  8;
+        b[2] = (pixel & 0x0000ff) >>  0;
+        b[3] = 0;
+    }
+}
+
+/* Unpremultiplies data and converts native endian ARGB => RGBA bytes */
+static void canvas_unpremultiply_data(png_structp png, png_row_infop row_info, png_bytep data) {
+    unsigned int i;
+
+    for (i = 0; i < row_info->rowbytes; i += 4) {
+        uint8_t *b = &data[i];
+        uint32_t pixel;
+        uint8_t  alpha;
+
+        memcpy(&pixel, b, sizeof (uint32_t));
+        alpha = (pixel & 0xff000000) >> 24;
+        if (alpha == 0) {
+            b[0] = b[1] = b[2] = b[3] = 0;
+        } else {
+            b[0] = (((pixel & 0xff0000) >> 16) * 255 + alpha / 2) / alpha;
+            b[1] = (((pixel & 0x00ff00) >>  8) * 255 + alpha / 2) / alpha;
+            b[2] = (((pixel & 0x0000ff) >>  0) * 255 + alpha / 2) / alpha;
+            b[3] = alpha;
+        }
+    }
+}
+
+/* Converts RGB16_565 format data to RGBA32 */
+static void canvas_convert_565_to_888(png_structp png, png_row_infop row_info, png_bytep data) {
+  // Loop in reverse to unpack in-place.
+  for (ptrdiff_t col = row_info->width - 1; col >= 0; col--) {
+    uint8_t* src = &data[col * sizeof(uint16_t)];
+    uint8_t* dst = &data[col * 3];
+    uint16_t pixel;
+
+    memcpy(&pixel, src, sizeof(uint16_t));
+
+    // Convert and rescale to the full 0-255 range
+    // See http://stackoverflow.com/a/29326693
+    const uint8_t red5 = (pixel & 0xF800) >> 11;
+    const uint8_t green6 = (pixel & 0x7E0) >> 5;
+    const uint8_t blue5 = (pixel & 0x001F);
+
+    dst[0] = ((red5 * 255 + 15) / 31);
+    dst[1] = ((green6 * 255 + 31) / 63);
+    dst[2] = ((blue5 * 255 + 15) / 31);
+  }
+}
+
+struct canvas_png_write_closure_t {
+    cairo_write_func_t write_func;
+    PngClosure* closure;
+};
+
+#ifdef PNG_SETJMP_SUPPORTED
+bool setjmp_wrapper(png_structp png) {
+    return setjmp(png_jmpbuf(png));
+}
+#endif
+
+static cairo_status_t canvas_write_png(cairo_surface_t *surface, png_rw_ptr write_func, canvas_png_write_closure_t *closure) {
+    unsigned int i;
+    cairo_status_t status = CAIRO_STATUS_SUCCESS;
+    uint8_t *data;
+    png_structp png;
+    png_infop info;
+    png_bytep *volatile rows = NULL;
+    png_color_16 white;
+    int png_color_type;
+    int bpc;
+    unsigned int width = cairo_image_surface_get_width(surface);
+    unsigned int height = cairo_image_surface_get_height(surface);
+
+    data = cairo_image_surface_get_data(surface);
+    if (data == NULL) {
+        status = CAIRO_STATUS_SURFACE_TYPE_MISMATCH;
+        return status;
+    }
+    cairo_surface_flush(surface);
+
+    if (width == 0 || height == 0) {
+        status = CAIRO_STATUS_WRITE_ERROR;
+        return status;
+    }
+
+    rows = (png_bytep *) malloc(height * sizeof (png_byte*));
+    if (unlikely(rows == NULL)) {
+        status = CAIRO_STATUS_NO_MEMORY;
+        return status;
+    }
+
+    int stride = cairo_image_surface_get_stride(surface);
+    for (i = 0; i < height; i++) {
+        rows[i] = (png_byte *) data + i * stride;
+    }
+
+#ifdef PNG_USER_MEM_SUPPORTED
+     png = png_create_write_struct_2(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL, NULL, NULL, NULL);
+#else
+    png = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
+#endif
+
+    if (unlikely(png == NULL)) {
+        status = CAIRO_STATUS_NO_MEMORY;
+        free(rows);
+        return status;
+    }
+
+    info = png_create_info_struct (png);
+    if (unlikely(info == NULL)) {
+        status = CAIRO_STATUS_NO_MEMORY;
+        png_destroy_write_struct(&png, &info);
+        free(rows);
+        return status;
+
+    }
+
+#ifdef PNG_SETJMP_SUPPORTED
+    if (setjmp_wrapper(png)) {
+        png_destroy_write_struct(&png, &info);
+        free(rows);
+        return status;
+    }
+#endif
+
+    png_set_write_fn(png, closure, write_func, canvas_png_flush);
+    png_set_compression_level(png, closure->closure->compressionLevel);
+    png_set_filter(png, 0, closure->closure->filters);
+    if (closure->closure->resolution != 0) {
+        uint32_t res = static_cast<uint32_t>(round(static_cast<double>(closure->closure->resolution) * 39.3701));
+        png_set_pHYs(png, info, res, res, PNG_RESOLUTION_METER);
+    }
+
+    cairo_format_t format = cairo_image_surface_get_format(surface);
+
+    switch (format) {
+    case CAIRO_FORMAT_ARGB32:
+        bpc = 8;
+        png_color_type = PNG_COLOR_TYPE_RGB_ALPHA;
+        break;
+#ifdef CAIRO_FORMAT_RGB30
+    case CAIRO_FORMAT_RGB30:
+        bpc = 10;
+        png_color_type = PNG_COLOR_TYPE_RGB;
+        break;
+#endif
+    case CAIRO_FORMAT_RGB24:
+        bpc = 8;
+        png_color_type = PNG_COLOR_TYPE_RGB;
+        break;
+    case CAIRO_FORMAT_A8:
+        bpc = 8;
+        png_color_type = PNG_COLOR_TYPE_GRAY;
+        break;
+    case CAIRO_FORMAT_A1:
+        bpc = 1;
+        png_color_type = PNG_COLOR_TYPE_GRAY;
+#ifndef WORDS_BIGENDIAN
+        png_set_packswap(png);
+#endif
+        break;
+    case CAIRO_FORMAT_RGB16_565:
+        bpc = 8; // 565 gets upconverted to 888
+        png_color_type = PNG_COLOR_TYPE_RGB;
+        break;
+    case CAIRO_FORMAT_INVALID:
+    default:
+        status = CAIRO_STATUS_INVALID_FORMAT;
+        png_destroy_write_struct(&png, &info);
+        free(rows);
+        return status;
+    }
+
+    if ((format == CAIRO_FORMAT_A8 || format == CAIRO_FORMAT_A1) &&
+      closure->closure->palette != NULL) {
+      png_color_type = PNG_COLOR_TYPE_PALETTE;
+    }
+
+    png_set_IHDR(png, info, width, height, bpc, png_color_type, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT);
+
+    if (png_color_type == PNG_COLOR_TYPE_PALETTE) {
+      size_t nColors = closure->closure->nPaletteColors;
+      uint8_t* colors = closure->closure->palette;
+      uint8_t backgroundIndex = closure->closure->backgroundIndex;
+      png_colorp pngPalette = (png_colorp)png_malloc(png, nColors * sizeof(png_colorp));
+      png_bytep transparency = (png_bytep)png_malloc(png, nColors * sizeof(png_bytep));
+      for (i = 0; i < nColors; i++) {
+        pngPalette[i].red = colors[4 * i];
+        pngPalette[i].green = colors[4 * i + 1];
+        pngPalette[i].blue = colors[4 * i + 2];
+        transparency[i] = colors[4 * i + 3];
+      }
+      png_set_PLTE(png, info, pngPalette, nColors);
+      png_set_tRNS(png, info, transparency, nColors, NULL);
+      png_set_packing(png); // pack pixels
+      // have libpng free palette and trans:
+      png_data_freer(png, info, PNG_DESTROY_WILL_FREE_DATA, PNG_FREE_PLTE | PNG_FREE_TRNS);
+      png_color_16 bkg;
+      bkg.index = backgroundIndex;
+      png_set_bKGD(png, info, &bkg);
+    }
+
+    if (png_color_type != PNG_COLOR_TYPE_PALETTE) {
+      white.gray = (1 << bpc) - 1;
+      white.red = white.blue = white.green = white.gray;
+      png_set_bKGD(png, info, &white);
+    }
+
+    /* We have to call png_write_info() before setting up the write
+     * transformation, since it stores data internally in 'png'
+     * that is needed for the write transformation functions to work.
+     */
+    png_write_info(png, info);
+    if (png_color_type == PNG_COLOR_TYPE_RGB_ALPHA) {
+        png_set_write_user_transform_fn(png, canvas_unpremultiply_data);
+    } else if (format == CAIRO_FORMAT_RGB16_565) {
+        png_set_write_user_transform_fn(png, canvas_convert_565_to_888);
+    } else if (png_color_type == PNG_COLOR_TYPE_RGB) {
+        png_set_write_user_transform_fn(png, canvas_convert_data_to_bytes);
+        png_set_filler(png, 0, PNG_FILLER_AFTER);
+    }
+
+    png_write_image(png, rows);
+    png_write_end(png, info);
+
+    png_destroy_write_struct(&png, &info);
+    free(rows);
+    return status;
+}
+
+static void canvas_stream_write_func(png_structp png, png_bytep data, png_size_t size) {
+    cairo_status_t status;
+    struct canvas_png_write_closure_t *png_closure;
+
+    png_closure = (struct canvas_png_write_closure_t *) png_get_io_ptr(png);
+    status = png_closure->write_func(png_closure->closure, data, size);
+    if (unlikely(status)) {
+        cairo_status_t *error = (cairo_status_t *) png_get_error_ptr(png);
+        if (*error == CAIRO_STATUS_SUCCESS) {
+            *error = status;
+        }
+        png_error(png, NULL);
+    }
+}
+
+static cairo_status_t canvas_write_to_png_stream(cairo_surface_t *surface, cairo_write_func_t write_func, PngClosure* closure) {
+    struct canvas_png_write_closure_t png_closure;
+
+    if (cairo_surface_status(surface)) {
+        return cairo_surface_status(surface);
+    }
+
+    png_closure.write_func = write_func;
+    png_closure.closure = closure;
+
+    return canvas_write_png(surface, canvas_stream_write_func, &png_closure);
+}
diff --git a/node_modules/canvas/src/Point.h b/node_modules/canvas/src/Point.h
new file mode 100644
index 0000000..a61f8b1
--- /dev/null
+++ b/node_modules/canvas/src/Point.h
@@ -0,0 +1,11 @@
+// Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+#pragma once
+
+template <typename T>
+class Point {
+  public:
+    T x, y;
+    Point(T x=0, T y=0): x(x), y(y) {}
+    Point(const Point&) = default;
+    Point& operator=(const Point&) = default;
+};
diff --git a/node_modules/canvas/src/Util.h b/node_modules/canvas/src/Util.h
new file mode 100644
index 0000000..0e6d1d8
--- /dev/null
+++ b/node_modules/canvas/src/Util.h
@@ -0,0 +1,9 @@
+#pragma once
+
+#include <cctype>
+
+inline bool streq_casein(std::string& str1, std::string& str2) {
+  return str1.size() == str2.size() && std::equal(str1.begin(), str1.end(), str2.begin(), [](char& c1, char& c2) {
+    return c1 == c2 || std::toupper(c1) == std::toupper(c2);
+  });
+}
diff --git a/node_modules/canvas/src/backend/Backend.cc b/node_modules/canvas/src/backend/Backend.cc
new file mode 100644
index 0000000..528f61a
--- /dev/null
+++ b/node_modules/canvas/src/backend/Backend.cc
@@ -0,0 +1,112 @@
+#include "Backend.h"
+#include <string>
+
+Backend::Backend(std::string name, int width, int height)
+  : name(name)
+  , width(width)
+  , height(height)
+{}
+
+Backend::~Backend()
+{
+  this->destroySurface();
+}
+
+void Backend::init(const Nan::FunctionCallbackInfo<v8::Value> &info) {
+  int width  = 0;
+  int height = 0;
+  if (info[0]->IsNumber()) width  = Nan::To<uint32_t>(info[0]).FromMaybe(0);
+  if (info[1]->IsNumber()) height = Nan::To<uint32_t>(info[1]).FromMaybe(0);
+
+  Backend *backend = construct(width, height);
+
+  backend->Wrap(info.This());
+  info.GetReturnValue().Set(info.This());
+}
+
+void Backend::setCanvas(Canvas* _canvas)
+{
+  this->canvas = _canvas;
+}
+
+
+cairo_surface_t* Backend::recreateSurface()
+{
+  this->destroySurface();
+
+  return this->createSurface();
+}
+
+DLL_PUBLIC cairo_surface_t* Backend::getSurface() {
+  if (!surface) createSurface();
+  return surface;
+}
+
+void Backend::destroySurface()
+{
+  if(this->surface)
+  {
+    cairo_surface_destroy(this->surface);
+    this->surface = NULL;
+  }
+}
+
+
+std::string Backend::getName()
+{
+  return name;
+}
+
+int Backend::getWidth()
+{
+  return this->width;
+}
+void Backend::setWidth(int width_)
+{
+  this->width = width_;
+  this->recreateSurface();
+}
+
+int Backend::getHeight()
+{
+  return this->height;
+}
+void Backend::setHeight(int height_)
+{
+  this->height = height_;
+  this->recreateSurface();
+}
+
+bool Backend::isSurfaceValid(){
+  bool hadSurface = surface != NULL;
+  bool isValid = true;
+
+  cairo_status_t status = cairo_surface_status(getSurface());
+
+  if (status != CAIRO_STATUS_SUCCESS) {
+    error = cairo_status_to_string(status);
+    isValid = false;
+  }
+
+  if (!hadSurface)
+    destroySurface();
+
+  return isValid;
+}
+
+
+BackendOperationNotAvailable::BackendOperationNotAvailable(Backend* backend,
+  std::string operation_name)
+  : backend(backend)
+  , operation_name(operation_name)
+{
+  msg = "operation " + operation_name +
+    " not supported by backend " + backend->getName();
+};
+
+BackendOperationNotAvailable::~BackendOperationNotAvailable() throw() {};
+
+const char* BackendOperationNotAvailable::what() const throw()
+{
+  return msg.c_str();
+};
diff --git a/node_modules/canvas/src/backend/Backend.h b/node_modules/canvas/src/backend/Backend.h
new file mode 100644
index 0000000..df65194
--- /dev/null
+++ b/node_modules/canvas/src/backend/Backend.h
@@ -0,0 +1,69 @@
+#pragma once
+
+#include <cairo.h>
+#include "../dll_visibility.h"
+#include <exception>
+#include <nan.h>
+#include <string>
+#include <v8.h>
+
+class Canvas;
+
+class Backend : public Nan::ObjectWrap
+{
+  private:
+    const std::string name;
+    const char* error = NULL;
+
+  protected:
+    int width;
+    int height;
+    cairo_surface_t* surface = nullptr;
+    Canvas* canvas = nullptr;
+
+    Backend(std::string name, int width, int height);
+    static void init(const Nan::FunctionCallbackInfo<v8::Value> &info);
+    static Backend *construct(int width, int height){ return nullptr; }
+
+  public:
+    virtual ~Backend();
+
+    void setCanvas(Canvas* canvas);
+
+    virtual cairo_surface_t* createSurface() = 0;
+    virtual cairo_surface_t* recreateSurface();
+
+    DLL_PUBLIC cairo_surface_t* getSurface();
+    virtual void destroySurface();
+
+    DLL_PUBLIC std::string getName();
+
+    DLL_PUBLIC int getWidth();
+    virtual void setWidth(int width);
+
+    DLL_PUBLIC int getHeight();
+    virtual void setHeight(int height);
+
+    // Overridden by ImageBackend. SVG and PDF thus always return INVALID.
+    virtual cairo_format_t getFormat() {
+      return CAIRO_FORMAT_INVALID;
+    }
+
+    bool isSurfaceValid();
+    inline const char* getError(){ return error; }
+};
+
+
+class BackendOperationNotAvailable: public std::exception
+{
+  private:
+    Backend* backend;
+    std::string operation_name;
+    std::string msg;
+
+  public:
+    BackendOperationNotAvailable(Backend* backend, std::string operation_name);
+    ~BackendOperationNotAvailable() throw();
+
+    const char* what() const throw();
+};
diff --git a/node_modules/canvas/src/backend/ImageBackend.cc b/node_modules/canvas/src/backend/ImageBackend.cc
new file mode 100644
index 0000000..d354d92
--- /dev/null
+++ b/node_modules/canvas/src/backend/ImageBackend.cc
@@ -0,0 +1,74 @@
+#include "ImageBackend.h"
+
+using namespace v8;
+
+ImageBackend::ImageBackend(int width, int height)
+	: Backend("image", width, height)
+	{}
+
+Backend *ImageBackend::construct(int width, int height){
+  return new ImageBackend(width, height);
+}
+
+// This returns an approximate value only, suitable for Nan::AdjustExternalMemory.
+// The formats that don't map to intrinsic types (RGB30, A1) round up.
+int32_t ImageBackend::approxBytesPerPixel() {
+  switch (format) {
+  case CAIRO_FORMAT_ARGB32:
+  case CAIRO_FORMAT_RGB24:
+    return 4;
+#ifdef CAIRO_FORMAT_RGB30
+  case CAIRO_FORMAT_RGB30:
+    return 3;
+#endif
+  case CAIRO_FORMAT_RGB16_565:
+    return 2;
+  case CAIRO_FORMAT_A8:
+  case CAIRO_FORMAT_A1:
+    return 1;
+  default:
+    return 0;
+  }
+}
+
+cairo_surface_t* ImageBackend::createSurface() {
+  assert(!surface);
+  surface = cairo_image_surface_create(format, width, height);
+  assert(surface);
+  Nan::AdjustExternalMemory(approxBytesPerPixel() * width * height);
+  return surface;
+}
+
+void ImageBackend::destroySurface() {
+  if (surface) {
+    cairo_surface_destroy(surface);
+    surface = nullptr;
+    Nan::AdjustExternalMemory(-approxBytesPerPixel() * width * height);
+  }
+}
+
+cairo_format_t ImageBackend::getFormat() {
+  return format;
+}
+
+void ImageBackend::setFormat(cairo_format_t _format) {
+	this->format = _format;
+}
+
+Nan::Persistent<FunctionTemplate> ImageBackend::constructor;
+
+void ImageBackend::Initialize(Local<Object> target) {
+	Nan::HandleScope scope;
+
+	Local<FunctionTemplate> ctor = Nan::New<FunctionTemplate>(ImageBackend::New);
+	ImageBackend::constructor.Reset(ctor);
+	ctor->InstanceTemplate()->SetInternalFieldCount(1);
+	ctor->SetClassName(Nan::New<String>("ImageBackend").ToLocalChecked());
+  Nan::Set(target,
+           Nan::New<String>("ImageBackend").ToLocalChecked(),
+           Nan::GetFunction(ctor).ToLocalChecked()).Check();
+}
+
+NAN_METHOD(ImageBackend::New) {
+  init(info);
+}
diff --git a/node_modules/canvas/src/backend/ImageBackend.h b/node_modules/canvas/src/backend/ImageBackend.h
new file mode 100644
index 0000000..f68dacf
--- /dev/null
+++ b/node_modules/canvas/src/backend/ImageBackend.h
@@ -0,0 +1,26 @@
+#pragma once
+
+#include "Backend.h"
+#include <v8.h>
+
+class ImageBackend : public Backend
+{
+  private:
+    cairo_surface_t* createSurface();
+    void destroySurface();
+    cairo_format_t format = DEFAULT_FORMAT;
+
+  public:
+    ImageBackend(int width, int height);
+    static Backend *construct(int width, int height);
+
+    cairo_format_t getFormat();
+    void setFormat(cairo_format_t format);
+
+    int32_t approxBytesPerPixel();
+
+    static Nan::Persistent<v8::FunctionTemplate> constructor;
+    static void Initialize(v8::Local<v8::Object> target);
+    static NAN_METHOD(New);
+    const static cairo_format_t DEFAULT_FORMAT = CAIRO_FORMAT_ARGB32;
+};
diff --git a/node_modules/canvas/src/backend/PdfBackend.cc b/node_modules/canvas/src/backend/PdfBackend.cc
new file mode 100644
index 0000000..d8bd234
--- /dev/null
+++ b/node_modules/canvas/src/backend/PdfBackend.cc
@@ -0,0 +1,53 @@
+#include "PdfBackend.h"
+
+#include <cairo-pdf.h>
+#include "../Canvas.h"
+#include "../closure.h"
+
+using namespace v8;
+
+PdfBackend::PdfBackend(int width, int height)
+  : Backend("pdf", width, height) {
+  createSurface();
+}
+
+PdfBackend::~PdfBackend() {
+  cairo_surface_finish(surface);
+  if (_closure) delete _closure;
+  destroySurface();
+}
+
+Backend *PdfBackend::construct(int width, int height){
+  return new PdfBackend(width, height);
+}
+
+cairo_surface_t* PdfBackend::createSurface() {
+  if (!_closure) _closure = new PdfSvgClosure(canvas);
+  surface = cairo_pdf_surface_create_for_stream(PdfSvgClosure::writeVec, _closure, width, height);
+  return surface;
+}
+
+cairo_surface_t* PdfBackend::recreateSurface() {
+  cairo_pdf_surface_set_size(surface, width, height);
+
+  return surface;
+}
+
+
+Nan::Persistent<FunctionTemplate> PdfBackend::constructor;
+
+void PdfBackend::Initialize(Local<Object> target) {
+  Nan::HandleScope scope;
+
+  Local<FunctionTemplate> ctor = Nan::New<FunctionTemplate>(PdfBackend::New);
+  PdfBackend::constructor.Reset(ctor);
+  ctor->InstanceTemplate()->SetInternalFieldCount(1);
+  ctor->SetClassName(Nan::New<String>("PdfBackend").ToLocalChecked());
+  Nan::Set(target,
+           Nan::New<String>("PdfBackend").ToLocalChecked(),
+           Nan::GetFunction(ctor).ToLocalChecked()).Check();
+}
+
+NAN_METHOD(PdfBackend::New) {
+  init(info);
+}
diff --git a/node_modules/canvas/src/backend/PdfBackend.h b/node_modules/canvas/src/backend/PdfBackend.h
new file mode 100644
index 0000000..03656f5
--- /dev/null
+++ b/node_modules/canvas/src/backend/PdfBackend.h
@@ -0,0 +1,24 @@
+#pragma once
+
+#include "Backend.h"
+#include "../closure.h"
+#include <v8.h>
+
+class PdfBackend : public Backend
+{
+  private:
+    cairo_surface_t* createSurface();
+    cairo_surface_t* recreateSurface();
+
+  public:
+    PdfSvgClosure* _closure = NULL;
+    inline PdfSvgClosure* closure() { return _closure; }
+
+    PdfBackend(int width, int height);
+    ~PdfBackend();
+    static Backend *construct(int width, int height);
+
+    static Nan::Persistent<v8::FunctionTemplate> constructor;
+    static void Initialize(v8::Local<v8::Object> target);
+    static NAN_METHOD(New);
+};
diff --git a/node_modules/canvas/src/backend/SvgBackend.cc b/node_modules/canvas/src/backend/SvgBackend.cc
new file mode 100644
index 0000000..10bf4ca
--- /dev/null
+++ b/node_modules/canvas/src/backend/SvgBackend.cc
@@ -0,0 +1,61 @@
+#include "SvgBackend.h"
+
+#include <cairo-svg.h>
+#include "../Canvas.h"
+#include "../closure.h"
+#include <cassert>
+
+using namespace v8;
+
+SvgBackend::SvgBackend(int width, int height)
+  : Backend("svg", width, height) {
+  createSurface();
+}
+
+SvgBackend::~SvgBackend() {
+  cairo_surface_finish(surface);
+  if (_closure) {
+    delete _closure;
+    _closure = nullptr;
+  }
+  destroySurface();
+}
+
+Backend *SvgBackend::construct(int width, int height){
+  return new SvgBackend(width, height);
+}
+
+cairo_surface_t* SvgBackend::createSurface() {
+  assert(!_closure);
+  _closure = new PdfSvgClosure(canvas);
+  surface = cairo_svg_surface_create_for_stream(PdfSvgClosure::writeVec, _closure, width, height);
+  return surface;
+}
+
+cairo_surface_t* SvgBackend::recreateSurface() {
+  cairo_surface_finish(surface);
+  delete _closure;
+  _closure = nullptr;
+  cairo_surface_destroy(surface);
+
+  return createSurface();
+ }
+
+
+Nan::Persistent<FunctionTemplate> SvgBackend::constructor;
+
+void SvgBackend::Initialize(Local<Object> target) {
+  Nan::HandleScope scope;
+
+  Local<FunctionTemplate> ctor = Nan::New<FunctionTemplate>(SvgBackend::New);
+  SvgBackend::constructor.Reset(ctor);
+  ctor->InstanceTemplate()->SetInternalFieldCount(1);
+  ctor->SetClassName(Nan::New<String>("SvgBackend").ToLocalChecked());
+  Nan::Set(target,
+           Nan::New<String>("SvgBackend").ToLocalChecked(),
+           Nan::GetFunction(ctor).ToLocalChecked()).Check();
+}
+
+NAN_METHOD(SvgBackend::New) {
+  init(info);
+}
diff --git a/node_modules/canvas/src/backend/SvgBackend.h b/node_modules/canvas/src/backend/SvgBackend.h
new file mode 100644
index 0000000..6377b43
--- /dev/null
+++ b/node_modules/canvas/src/backend/SvgBackend.h
@@ -0,0 +1,24 @@
+#pragma once
+
+#include "Backend.h"
+#include "../closure.h"
+#include <v8.h>
+
+class SvgBackend : public Backend
+{
+  private:
+    cairo_surface_t* createSurface();
+    cairo_surface_t* recreateSurface();
+
+  public:
+    PdfSvgClosure* _closure = NULL;
+    inline PdfSvgClosure* closure() { return _closure; }
+
+    SvgBackend(int width, int height);
+    ~SvgBackend();
+    static Backend *construct(int width, int height);
+
+    static Nan::Persistent<v8::FunctionTemplate> constructor;
+    static void Initialize(v8::Local<v8::Object> target);
+    static NAN_METHOD(New);
+};
diff --git a/node_modules/canvas/src/bmp/BMPParser.cc b/node_modules/canvas/src/bmp/BMPParser.cc
new file mode 100644
index 0000000..032eb8e
--- /dev/null
+++ b/node_modules/canvas/src/bmp/BMPParser.cc
@@ -0,0 +1,457 @@
+#include "BMPParser.h"
+
+#include <cassert>
+
+using namespace std;
+using namespace BMPParser;
+
+#define MAX_IMG_SIZE 10000
+
+#define E(cond, msg) if(cond) return setErr(msg)
+#define EU(cond, msg) if(cond) return setErrUnsupported(msg)
+#define EX(cond, msg) if(cond) return setErrUnknown(msg)
+
+#define I1() get<char>()
+#define U1() get<uint8_t>()
+#define I2() get<int16_t>()
+#define U2() get<uint16_t>()
+#define I4() get<int32_t>()
+#define U4() get<uint32_t>()
+
+#define I1UC() get<char, false>()
+#define U1UC() get<uint8_t, false>()
+#define I2UC() get<int16_t, false>()
+#define U2UC() get<uint16_t, false>()
+#define I4UC() get<int32_t, false>()
+#define U4UC() get<uint32_t, false>()
+
+#define CHECK_OVERRUN(ptr, size, type) \
+  if((ptr) + (size) - data > len){ \
+    setErr("unexpected end of file"); \
+    return type(); \
+  }
+
+Parser::~Parser(){
+  data = nullptr;
+  ptr = nullptr;
+
+  if(imgd){
+    delete[] imgd;
+    imgd = nullptr;
+  }
+}
+
+void Parser::parse(uint8_t *buf, int bufSize, uint8_t *format){
+  assert(status == Status::EMPTY);
+
+  data = ptr = buf;
+  len = bufSize;
+
+  // Start parsing file header
+  setOp("file header");
+
+  // File header signature
+  string fhSig = getStr(2);
+  string temp = "file header signature";
+  EU(fhSig == "BA", temp + " \"BA\"");
+  EU(fhSig == "CI", temp + " \"CI\"");
+  EU(fhSig == "CP", temp + " \"CP\"");
+  EU(fhSig == "IC", temp + " \"IC\"");
+  EU(fhSig == "PT", temp + " \"PT\"");
+  EX(fhSig != "BM", temp); // BM
+
+  // Length of the file should not be larger than `len`
+  E(U4() > static_cast<uint32_t>(len), "inconsistent file size");
+
+  // Skip unused values
+  skip(4);
+
+  // Offset where the pixel array (bitmap data) can be found
+  auto imgdOffset = U4();
+
+  // Start parsing DIB header
+  setOp("DIB header");
+
+  // Prepare some variables in case they are needed
+  uint32_t compr = 0;
+  uint32_t redShift = 0, greenShift = 0, blueShift = 0, alphaShift = 0;
+  uint32_t redMask = 0, greenMask = 0, blueMask = 0, alphaMask = 0;
+  double redMultp = 0, greenMultp = 0, blueMultp = 0, alphaMultp = 0;
+
+  /**
+   * Type of the DIB (device-independent bitmap) header
+   * is determined by its size. Most BMP files use BITMAPINFOHEADER.
+   */
+  auto dibSize = U4();
+  temp = "DIB header";
+  EU(dibSize == 64, temp + " \"OS22XBITMAPHEADER\"");
+  EU(dibSize == 16, temp + " \"OS22XBITMAPHEADER\"");
+
+  uint32_t infoHeader = dibSize == 40 ? 1 :
+                        dibSize == 52 ? 2 :
+                        dibSize == 56 ? 3 :
+                        dibSize == 108 ? 4 :
+                        dibSize == 124 ? 5 : 0;
+
+  // BITMAPCOREHEADER, BITMAP*INFOHEADER, BITMAP*HEADER
+  auto isDibValid = dibSize == 12 || infoHeader;
+  EX(!isDibValid, temp);
+
+  // Image width
+  w = dibSize == 12 ? U2() : I4();
+  E(!w, "image width is 0");
+  E(w < 0, "negative image width");
+  E(w > MAX_IMG_SIZE, "too large image width");
+
+  // Image height (specification allows negative values)
+  h = dibSize == 12 ? U2() : I4();
+  E(!h, "image height is 0");
+  E(h > MAX_IMG_SIZE, "too large image height");
+
+  bool isHeightNegative = h < 0;
+  if(isHeightNegative) h = -h;
+
+  // Number of color planes (must be 1)
+  E(U2() != 1, "number of color planes must be 1");
+
+  // Bits per pixel (color depth)
+  auto bpp = U2();
+  auto isBppValid = bpp == 1 || bpp == 4 || bpp == 8 || bpp == 16 || bpp == 24 || bpp == 32;
+  EU(!isBppValid, "color depth");
+
+  // Calculate image data size and padding
+  uint32_t expectedImgdSize = (((w * bpp + 31) >> 5) << 2) * h;
+  uint32_t rowPadding = (-w * bpp & 31) >> 3;
+  uint32_t imgdSize = 0;
+
+  // Color palette data
+  uint8_t* paletteStart = nullptr;
+  uint32_t palColNum = 0;
+
+  if(infoHeader){
+    // Compression type
+    compr = U4();
+    temp = "compression type";
+    EU(compr == 1, temp + " \"BI_RLE8\"");
+    EU(compr == 2, temp + " \"BI_RLE4\"");
+    EU(compr == 4, temp + " \"BI_JPEG\"");
+    EU(compr == 5, temp + " \"BI_PNG\"");
+    EU(compr == 6, temp + " \"BI_ALPHABITFIELDS\"");
+    EU(compr == 11, temp + " \"BI_CMYK\"");
+    EU(compr == 12, temp + " \"BI_CMYKRLE8\"");
+    EU(compr == 13, temp + " \"BI_CMYKRLE4\"");
+
+    // BI_RGB and BI_BITFIELDS
+    auto isComprValid = compr == 0 || compr == 3;
+    EX(!isComprValid, temp);
+
+    // Ensure that BI_BITFIELDS appears only with 16-bit or 32-bit color
+    E(compr == 3 && !(bpp == 16 || bpp == 32), "compression BI_BITFIELDS can be used only with 16-bit and 32-bit color depth");
+
+    // Size of the image data
+    imgdSize = U4();
+
+    // Horizontal and vertical resolution (ignored)
+    skip(8);
+
+    // Number of colors in the palette or 0 if no palette is present
+    palColNum = U4();
+    EU(palColNum && bpp > 8, "color palette and bit depth combination");
+    if(palColNum) paletteStart = data + dibSize + 14;
+
+    // Number of important colors used or 0 if all colors are important (generally ignored)
+    skip(4);
+
+    if(infoHeader >= 2){
+      // If BI_BITFIELDS are used, calculate masks, otherwise ignore them
+      if(compr == 3){
+        calcMaskShift(redShift, redMask, redMultp);
+        calcMaskShift(greenShift, greenMask, greenMultp);
+        calcMaskShift(blueShift, blueMask, blueMultp);
+        if(infoHeader >= 3) calcMaskShift(alphaShift, alphaMask, alphaMultp);
+        if(status == Status::ERROR) return;
+      }else{
+        skip(16);
+      }
+
+      // Ensure that the color space is LCS_WINDOWS_COLOR_SPACE or sRGB
+      if(infoHeader >= 4 && !palColNum){
+        string colSpace = getStr(4, 1);
+        EU(colSpace != "Win " && colSpace != "sRGB", "color space \"" + colSpace + "\"");
+      }
+    }
+  }
+
+  // Skip to the image data (there may be other chunks between, but they are optional)
+  E(ptr - data > imgdOffset, "image data overlaps with another structure");
+  ptr = data + imgdOffset;
+
+  // Start parsing image data
+  setOp("image data");
+
+  if(!imgdSize){
+    // Value 0 is allowed only for BI_RGB compression type
+    E(compr != 0, "missing image data size");
+    imgdSize = expectedImgdSize;
+  }else{
+    E(imgdSize < expectedImgdSize, "invalid image data size");
+  }
+
+  // Ensure that all image data is present
+  E(ptr - data + imgdSize > len, "not enough image data");
+
+  // Direction of reading rows
+  int yStart = h - 1;
+  int yEnd = -1;
+  int dy = isHeightNegative ? 1 : -1;
+
+  // In case of negative height, read rows backward
+  if(isHeightNegative){
+    yStart = 0;
+    yEnd = h;
+  }
+
+  // Allocate output image data array
+  int buffLen = w * h << 2;
+  imgd = new (nothrow) uint8_t[buffLen];
+  E(!imgd, "unable to allocate memory");
+
+  // Prepare color values
+  uint8_t color[4] = {0};
+  uint8_t &red = color[0];
+  uint8_t &green = color[1];
+  uint8_t &blue = color[2];
+  uint8_t &alpha = color[3];
+
+  // Check if pre-multiplied alpha is used
+  bool premul = format ? format[4] : 0;
+
+  // Main loop
+  for(int y = yStart; y != yEnd; y += dy){
+    // Use in-byte offset for bpp < 8
+    uint8_t colOffset = 0;
+    uint8_t cval = 0;
+    uint32_t val = 0;
+
+    for(int x = 0; x != w; x++){
+      // Index in the output image data
+      int i = (x + y * w) << 2;
+
+      switch(compr){
+        case 0: // BI_RGB
+          switch(bpp){
+            case 1:
+              if(colOffset) ptr--;
+              cval = (U1UC() >> (7 - colOffset)) & 1;
+
+              if(palColNum){
+                uint8_t* entry = paletteStart + (cval << 2);
+                blue = get<uint8_t>(entry);
+                green = get<uint8_t>(entry + 1);
+                red = get<uint8_t>(entry + 2);
+                if(status == Status::ERROR) return;
+              }else{
+                red = green = blue = cval ? 255 : 0;
+              }
+
+              alpha = 255;
+              colOffset = (colOffset + 1) & 7;
+              break;
+
+            case 4:
+              if(colOffset) ptr--;
+              cval = (U1UC() >> (4 - colOffset)) & 15;
+
+              if(palColNum){
+                uint8_t* entry = paletteStart + (cval << 2);
+                blue = get<uint8_t>(entry);
+                green = get<uint8_t>(entry + 1);
+                red = get<uint8_t>(entry + 2);
+                if(status == Status::ERROR) return;
+              }else{
+                red = green = blue = cval << 4;
+              }
+
+              alpha = 255;
+              colOffset = (colOffset + 4) & 7;
+              break;
+
+            case 8:
+              cval = U1UC();
+
+              if(palColNum){
+                uint8_t* entry = paletteStart + (cval << 2);
+                blue = get<uint8_t>(entry);
+                green = get<uint8_t>(entry + 1);
+                red = get<uint8_t>(entry + 2);
+                if(status == Status::ERROR) return;
+              }else{
+                red = green = blue = cval;
+              }
+
+              alpha = 255;
+              break;
+
+            case 16:
+              // RGB555
+              val = U1UC();
+              val |= U1UC() << 8;
+              red = (val >> 10) << 3;
+              green = (val >> 5) << 3;
+              blue = val << 3;
+              alpha = 255;
+              break;
+
+            case 24:
+              blue = U1UC();
+              green = U1UC();
+              red = U1UC();
+              alpha = 255;
+              break;
+
+            case 32:
+              blue = U1UC();
+              green = U1UC();
+              red = U1UC();
+
+              if(infoHeader >= 3){
+                alpha = U1UC();
+              }else{
+                alpha = 255;
+                skip(1);
+              }
+              break;
+          }
+          break;
+
+        case 3: // BI_BITFIELDS
+          uint32_t col = bpp == 16 ? U2UC() : U4UC();
+          red = ((col >> redShift) & redMask) * redMultp + .5;
+          green = ((col >> greenShift) & greenMask) * greenMultp + .5;
+          blue = ((col >> blueShift) & blueMask) * blueMultp + .5;
+          alpha = alphaMask ? ((col >> alphaShift) & alphaMask) * alphaMultp + .5 : 255;
+          break;
+      }
+
+      /**
+       * Pixel format:
+       *  red,
+       *  green,
+       *  blue,
+       *  alpha,
+       *  is alpha pre-multiplied
+       * Default is [0, 1, 2, 3, 0]
+       */
+
+      if(premul && alpha != 255){
+        double a = alpha / 255.;
+        red = static_cast<uint8_t>(red * a + .5);
+        green = static_cast<uint8_t>(green * a + .5);
+        blue = static_cast<uint8_t>(blue * a + .5);
+      }
+
+      if(format){
+        imgd[i] = color[format[0]];
+        imgd[i + 1] = color[format[1]];
+        imgd[i + 2] = color[format[2]];
+        imgd[i + 3] = color[format[3]];
+      }else{
+        imgd[i] = red;
+        imgd[i + 1] = green;
+        imgd[i + 2] = blue;
+        imgd[i + 3] = alpha;
+      }
+    }
+
+    // Skip unused bytes in the current row
+    skip(rowPadding);
+  }
+
+  if(status == Status::ERROR) return;
+  status = Status::OK;
+};
+
+void Parser::clearImgd(){ imgd = nullptr; }
+int32_t Parser::getWidth() const{ return w; }
+int32_t Parser::getHeight() const{ return h; }
+uint8_t *Parser::getImgd() const{ return imgd; }
+Status Parser::getStatus() const{ return status; }
+
+string Parser::getErrMsg() const{
+  return "Error while processing " + getOp() + " - " + err;
+}
+
+template <typename T, bool check> inline T Parser::get(){
+  if(check)
+    CHECK_OVERRUN(ptr, sizeof(T), T);
+  T val = *(T*)ptr;
+  ptr += sizeof(T);
+  return val;
+}
+
+template <typename T, bool check> inline T Parser::get(uint8_t* pointer){
+  if(check)
+    CHECK_OVERRUN(pointer, sizeof(T), T);
+  T val = *(T*)pointer;
+  return val;
+}
+
+string Parser::getStr(int size, bool reverse){
+  CHECK_OVERRUN(ptr, size, string);
+  string val = "";
+
+  while(size--){
+    if(reverse) val = string(1, static_cast<char>(*ptr++)) + val;
+    else val += static_cast<char>(*ptr++);
+  }
+
+  return val;
+}
+
+inline void Parser::skip(int size){
+  CHECK_OVERRUN(ptr, size, void);
+  ptr += size;
+}
+
+void Parser::calcMaskShift(uint32_t& shift, uint32_t& mask, double& multp){
+  mask = U4();
+  shift = 0;
+
+  if(mask == 0) return;
+
+  while(~mask & 1){
+    mask >>= 1;
+    shift++;
+  }
+
+  E(mask & (mask + 1), "invalid color mask");
+
+  multp = 255. / mask;
+}
+
+void Parser::setOp(string val){
+  if(status != Status::EMPTY) return;
+  op = val;
+}
+
+string Parser::getOp() const{
+  return op;
+}
+
+void Parser::setErrUnsupported(string msg){
+  setErr("unsupported " + msg);
+}
+
+void Parser::setErrUnknown(string msg){
+  setErr("unknown " + msg);
+}
+
+void Parser::setErr(string msg){
+  if(status != Status::EMPTY) return;
+  err = msg;
+  status = Status::ERROR;
+}
+
+string Parser::getErr() const{
+  return err;
+}
diff --git a/node_modules/canvas/src/bmp/BMPParser.h b/node_modules/canvas/src/bmp/BMPParser.h
new file mode 100644
index 0000000..c35f51a
--- /dev/null
+++ b/node_modules/canvas/src/bmp/BMPParser.h
@@ -0,0 +1,60 @@
+#pragma once
+
+#ifdef ERROR
+#define ERROR_ ERROR
+#undef ERROR
+#endif
+
+#include <stdint.h> // node < 7 uses libstdc++ on macOS which lacks complete c++11
+#include <string>
+
+namespace BMPParser{
+  enum Status{
+    EMPTY,
+    OK,
+    ERROR,
+  };
+
+  class Parser{
+  public:
+    Parser()=default;
+    ~Parser();
+    void parse(uint8_t *buf, int bufSize, uint8_t *format=nullptr);
+    void clearImgd();
+    int32_t getWidth() const;
+    int32_t getHeight() const;
+    uint8_t *getImgd() const;
+    Status getStatus() const;
+    std::string getErrMsg() const;
+
+  private:
+    Status status = Status::EMPTY;
+    uint8_t *data = nullptr;
+    uint8_t *ptr = nullptr;
+    int len = 0;
+    int32_t w = 0;
+    int32_t h = 0;
+    uint8_t *imgd = nullptr;
+    std::string err = "";
+    std::string op = "";
+
+    template <typename T, bool check=true> inline T get();
+    template <typename T, bool check=true> inline T get(uint8_t* pointer);
+    std::string getStr(int len, bool reverse=false);
+    inline void skip(int len);
+    void calcMaskShift(uint32_t& shift, uint32_t& mask, double& multp);
+
+    void setOp(std::string val);
+    std::string getOp() const;
+
+    void setErrUnsupported(std::string msg);
+    void setErrUnknown(std::string msg);
+    void setErr(std::string msg);
+    std::string getErr() const;
+  };
+}
+
+#ifdef ERROR_
+#define ERROR ERROR_
+#undef ERROR_
+#endif
diff --git a/node_modules/canvas/src/bmp/LICENSE.md b/node_modules/canvas/src/bmp/LICENSE.md
new file mode 100644
index 0000000..6bb8a29
--- /dev/null
+++ b/node_modules/canvas/src/bmp/LICENSE.md
@@ -0,0 +1,24 @@
+This is free and unencumbered software released into the public domain.
+
+Anyone is free to copy, modify, publish, use, compile, sell, or
+distribute this software, either in source code form or as a compiled
+binary, for any purpose, commercial or non-commercial, and by any
+means.
+
+In jurisdictions that recognize copyright laws, the author or authors
+of this software dedicate any and all copyright interest in the
+software to the public domain. We make this dedication for the benefit
+of the public at large and to the detriment of our heirs and
+successors. We intend this dedication to be an overt act of
+relinquishment in perpetuity of all present and future rights to this
+software under copyright law.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+For more information, please refer to <http://unlicense.org>
\ No newline at end of file
diff --git a/node_modules/canvas/src/closure.cc b/node_modules/canvas/src/closure.cc
new file mode 100644
index 0000000..e821e7f
--- /dev/null
+++ b/node_modules/canvas/src/closure.cc
@@ -0,0 +1,26 @@
+#include "closure.h"
+
+#ifdef HAVE_JPEG
+void JpegClosure::init_destination(j_compress_ptr cinfo) {
+  JpegClosure* closure = (JpegClosure*)cinfo->client_data;
+  closure->vec.resize(PAGE_SIZE);
+  closure->jpeg_dest_mgr->next_output_byte = &closure->vec[0];
+  closure->jpeg_dest_mgr->free_in_buffer = closure->vec.size();
+}
+
+boolean JpegClosure::empty_output_buffer(j_compress_ptr cinfo) {
+  JpegClosure* closure = (JpegClosure*)cinfo->client_data;
+  size_t currentSize = closure->vec.size();
+  closure->vec.resize(currentSize * 1.5);
+  closure->jpeg_dest_mgr->next_output_byte = &closure->vec[currentSize];
+  closure->jpeg_dest_mgr->free_in_buffer = closure->vec.size() - currentSize;
+  return true;
+}
+
+void JpegClosure::term_destination(j_compress_ptr cinfo) {
+  JpegClosure* closure = (JpegClosure*)cinfo->client_data;
+  size_t finalSize = closure->vec.size() - closure->jpeg_dest_mgr->free_in_buffer;
+  closure->vec.resize(finalSize);
+}
+#endif
+
diff --git a/node_modules/canvas/src/closure.h b/node_modules/canvas/src/closure.h
new file mode 100644
index 0000000..3126114
--- /dev/null
+++ b/node_modules/canvas/src/closure.h
@@ -0,0 +1,81 @@
+// Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+
+#pragma once
+
+#include "Canvas.h"
+
+#ifdef HAVE_JPEG
+#include <jpeglib.h>
+#endif
+
+#include <nan.h>
+#include <png.h>
+#include <stdint.h> // node < 7 uses libstdc++ on macOS which lacks complete c++11
+#include <vector>
+
+#ifndef PAGE_SIZE
+  #define PAGE_SIZE 4096
+#endif
+
+/*
+ * Image encoding closures.
+ */
+
+struct Closure {
+  std::vector<uint8_t> vec;
+  Nan::Callback cb;
+  Canvas* canvas = nullptr;
+  cairo_status_t status = CAIRO_STATUS_SUCCESS;
+
+  static cairo_status_t writeVec(void *c, const uint8_t *odata, unsigned len) {
+    Closure* closure = static_cast<Closure*>(c);
+    try {
+      closure->vec.insert(closure->vec.end(), odata, odata + len);
+    } catch (const std::bad_alloc &) {
+      return CAIRO_STATUS_NO_MEMORY;
+    }
+    return CAIRO_STATUS_SUCCESS;
+  }
+
+  Closure(Canvas* canvas) : canvas(canvas) {};
+};
+
+struct PdfSvgClosure : Closure {
+  PdfSvgClosure(Canvas* canvas) : Closure(canvas) {};
+};
+
+struct PngClosure : Closure {
+  uint32_t compressionLevel = 6;
+  uint32_t filters = PNG_ALL_FILTERS;
+  uint32_t resolution = 0; // 0 = unspecified
+  // Indexed PNGs:
+  uint32_t nPaletteColors = 0;
+  uint8_t* palette = nullptr;
+  uint8_t backgroundIndex = 0;
+
+  PngClosure(Canvas* canvas) : Closure(canvas) {};
+};
+
+#ifdef HAVE_JPEG
+struct JpegClosure : Closure {
+  uint32_t quality = 75;
+  uint32_t chromaSubsampling = 2;
+  bool progressive = false;
+  jpeg_destination_mgr* jpeg_dest_mgr = nullptr;
+
+  static void init_destination(j_compress_ptr cinfo);
+  static boolean empty_output_buffer(j_compress_ptr cinfo);
+  static void term_destination(j_compress_ptr cinfo);
+
+  JpegClosure(Canvas* canvas) : Closure(canvas) {
+    jpeg_dest_mgr = new jpeg_destination_mgr;
+    jpeg_dest_mgr->init_destination = init_destination;
+    jpeg_dest_mgr->empty_output_buffer = empty_output_buffer;
+    jpeg_dest_mgr->term_destination = term_destination;
+  };
+
+  ~JpegClosure() {
+    delete jpeg_dest_mgr;
+  }
+};
+#endif
diff --git a/node_modules/canvas/src/color.cc b/node_modules/canvas/src/color.cc
new file mode 100644
index 0000000..230fb8d
--- /dev/null
+++ b/node_modules/canvas/src/color.cc
@@ -0,0 +1,779 @@
+// Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+
+#include "color.h"
+
+#include <algorithm>
+#include <cmath>
+#include <cstdlib>
+#include <cstring>
+#include <limits>
+#include <map>
+#include <string>
+
+// Compatibility with Visual Studio versions prior to VS2015
+#if defined(_MSC_VER) && _MSC_VER < 1900
+#define snprintf _snprintf
+#endif
+
+/*
+ * Parse integer value
+ */
+
+template <typename parsed_t>
+static bool
+parse_integer(const char** pStr, parsed_t *pParsed) {
+  parsed_t& c = *pParsed;
+  const char*& str = *pStr;
+  int8_t sign=1;
+
+  c = 0;
+  if (*str == '-') {
+    sign=-1;
+    ++str;
+  }
+  else if (*str == '+')
+    ++str;
+
+  if (*str >= '0' && *str <= '9') {
+     do {
+       c *= 10;
+       c += *str++ - '0';
+     } while (*str >= '0' && *str <= '9');
+   } else {
+     return false;
+   }
+   if (sign<0)
+    c=-c;
+   return true;
+}
+
+
+/*
+ * Parse CSS <number> value
+ * Adapted from http://crackprogramming.blogspot.co.il/2012/10/implement-atof.html
+ */
+
+template <typename parsed_t>
+static bool
+parse_css_number(const char** pStr, parsed_t *pParsed) {
+   parsed_t &parsed = *pParsed;
+   const char*& str = *pStr;
+   const char* startStr = str;
+   if (!str || !*str)
+       return false;
+   parsed_t integerPart = 0;
+   parsed_t fractionPart = 0;
+   int divisorForFraction = 1;
+   int sign = 1;
+   int exponent = 0;
+   int digits = 0;
+   bool inFraction = false;
+
+   if (*str == '-') {
+       ++str;
+       sign = -1;
+   }
+   else if (*str == '+')
+       ++str;
+   while (*str != '\0') {
+       if (*str >= '0' && *str <= '9') {
+          if (digits>=std::numeric_limits<parsed_t>::digits10) {
+            if (!inFraction)
+              return false;
+          }
+          else {
+            ++digits;
+
+            if (inFraction) {
+                fractionPart = fractionPart*10 + (*str - '0');
+                divisorForFraction *= 10;
+            }
+            else {
+                integerPart = integerPart*10 + (*str - '0');
+            }
+          }
+       }
+       else if (*str == '.') {
+           if (inFraction)
+               break;
+           else
+               inFraction = true;
+       }
+       else if (*str == 'e') {
+          ++str;
+          if (!parse_integer(&str, &exponent))
+            return false;
+          break;
+       }
+       else
+          break;
+       ++str;
+   }
+   if (str != startStr) {
+      parsed = sign * (integerPart + fractionPart/divisorForFraction);
+      for (;exponent>0;--exponent)
+        parsed *= 10;
+      for (;exponent<0;++exponent)
+        parsed /= 10;
+      return true;
+   }
+   return false;
+}
+
+/*
+ * Clip value to the range [minValue, maxValue]
+ */
+
+template <typename T>
+static T
+clip(T value, T minValue, T maxValue) {
+  if (value > maxValue)
+      value = maxValue;
+  if (value < minValue)
+      value = minValue;
+  return value;
+}
+
+/*
+ * Wrap value to the range [0, limit]
+ */
+
+template <typename T>
+static T
+wrap_float(T value, T limit) {
+  return fmod(fmod(value, limit) + limit, limit);
+}
+
+/*
+ * Wrap value to the range [0, limit] - currently-unused integer version of wrap_float
+ */
+
+// template <typename T>
+// static T wrap_int(T value, T limit) {
+//   return (value % limit + limit) % limit;
+// }
+
+/*
+ * Parse color channel value
+ */
+
+static bool
+parse_rgb_channel(const char** pStr, uint8_t *pChannel) {
+  int channel;
+  if (parse_integer(pStr, &channel)) {
+    *pChannel = clip(channel, 0, 255);
+    return true;
+  }
+  return false;
+}
+
+/*
+ * Parse a value in degrees
+ */
+
+static bool
+parse_degrees(const char** pStr, float *pDegrees) {
+  float degrees;
+  if (parse_css_number(pStr, &degrees)) {
+    *pDegrees = wrap_float(degrees, 360.0f);
+    return true;
+  }
+  return false;
+}
+
+/*
+ * Parse and clip a percentage value. Returns a float in the range [0, 1].
+ */
+
+static bool
+parse_clipped_percentage(const char** pStr, float *pFraction) {
+  float percentage;
+  bool result = parse_css_number(pStr,&percentage);
+  const char*& str = *pStr;
+  if (result) {
+    if (*str == '%') {
+      ++str;
+      *pFraction = clip(percentage, 0.0f, 100.0f) / 100.0f;
+      return result;
+    }
+  }
+  return false;
+}
+
+/*
+ * Macros to help with parsing inside rgba_from_*_string
+ */
+
+#define WHITESPACE \
+  while (' ' == *str) ++str;
+
+#define WHITESPACE_OR_COMMA \
+  while (' ' == *str || ',' == *str) ++str;
+
+#define CHANNEL(NAME) \
+   if (!parse_rgb_channel(&str, &NAME)) \
+    return 0; \
+
+#define HUE(NAME) \
+   if (!parse_degrees(&str, &NAME)) \
+    return 0;
+
+#define SATURATION(NAME) \
+   if (!parse_clipped_percentage(&str, &NAME)) \
+    return 0;
+
+#define LIGHTNESS(NAME) SATURATION(NAME)
+
+#define ALPHA(NAME) \
+    if (*str >= '1' && *str <= '9') { \
+      NAME = 1; \
+    } else { \
+      if ('0' == *str) { \
+        NAME = 0; \
+        ++str; \
+      } \
+      if ('.' == *str) { \
+        ++str; \
+        NAME = 0; \
+        float n = .1f; \
+        while (*str >= '0' && *str <= '9') { \
+          NAME += (*str++ - '0') * n; \
+          n *= .1f; \
+        } \
+      } \
+    } \
+    do {} while (0) // require trailing semicolon
+
+/*
+ * Named colors.
+ */
+static const std::map<std::string, uint32_t> named_colors = {
+    { "transparent", 0xFFFFFF00}
+  , { "aliceblue", 0xF0F8FFFF }
+  , { "antiquewhite", 0xFAEBD7FF }
+  , { "aqua", 0x00FFFFFF }
+  , { "aquamarine", 0x7FFFD4FF }
+  , { "azure", 0xF0FFFFFF }
+  , { "beige", 0xF5F5DCFF }
+  , { "bisque", 0xFFE4C4FF }
+  , { "black", 0x000000FF }
+  , { "blanchedalmond", 0xFFEBCDFF }
+  , { "blue", 0x0000FFFF }
+  , { "blueviolet", 0x8A2BE2FF }
+  , { "brown", 0xA52A2AFF }
+  , { "burlywood", 0xDEB887FF }
+  , { "cadetblue", 0x5F9EA0FF }
+  , { "chartreuse", 0x7FFF00FF }
+  , { "chocolate", 0xD2691EFF }
+  , { "coral", 0xFF7F50FF }
+  , { "cornflowerblue", 0x6495EDFF }
+  , { "cornsilk", 0xFFF8DCFF }
+  , { "crimson", 0xDC143CFF }
+  , { "cyan", 0x00FFFFFF }
+  , { "darkblue", 0x00008BFF }
+  , { "darkcyan", 0x008B8BFF }
+  , { "darkgoldenrod", 0xB8860BFF }
+  , { "darkgray", 0xA9A9A9FF }
+  , { "darkgreen", 0x006400FF }
+  , { "darkgrey", 0xA9A9A9FF }
+  , { "darkkhaki", 0xBDB76BFF }
+  , { "darkmagenta", 0x8B008BFF }
+  , { "darkolivegreen", 0x556B2FFF }
+  , { "darkorange", 0xFF8C00FF }
+  , { "darkorchid", 0x9932CCFF }
+  , { "darkred", 0x8B0000FF }
+  , { "darksalmon", 0xE9967AFF }
+  , { "darkseagreen", 0x8FBC8FFF }
+  , { "darkslateblue", 0x483D8BFF }
+  , { "darkslategray", 0x2F4F4FFF }
+  , { "darkslategrey", 0x2F4F4FFF }
+  , { "darkturquoise", 0x00CED1FF }
+  , { "darkviolet", 0x9400D3FF }
+  , { "deeppink", 0xFF1493FF }
+  , { "deepskyblue", 0x00BFFFFF }
+  , { "dimgray", 0x696969FF }
+  , { "dimgrey", 0x696969FF }
+  , { "dodgerblue", 0x1E90FFFF }
+  , { "firebrick", 0xB22222FF }
+  , { "floralwhite", 0xFFFAF0FF }
+  , { "forestgreen", 0x228B22FF }
+  , { "fuchsia", 0xFF00FFFF }
+  , { "gainsboro", 0xDCDCDCFF }
+  , { "ghostwhite", 0xF8F8FFFF }
+  , { "gold", 0xFFD700FF }
+  , { "goldenrod", 0xDAA520FF }
+  , { "gray", 0x808080FF }
+  , { "green", 0x008000FF }
+  , { "greenyellow", 0xADFF2FFF }
+  , { "grey", 0x808080FF }
+  , { "honeydew", 0xF0FFF0FF }
+  , { "hotpink", 0xFF69B4FF }
+  , { "indianred", 0xCD5C5CFF }
+  , { "indigo", 0x4B0082FF }
+  , { "ivory", 0xFFFFF0FF }
+  , { "khaki", 0xF0E68CFF }
+  , { "lavender", 0xE6E6FAFF }
+  , { "lavenderblush", 0xFFF0F5FF }
+  , { "lawngreen", 0x7CFC00FF }
+  , { "lemonchiffon", 0xFFFACDFF }
+  , { "lightblue", 0xADD8E6FF }
+  , { "lightcoral", 0xF08080FF }
+  , { "lightcyan", 0xE0FFFFFF }
+  , { "lightgoldenrodyellow", 0xFAFAD2FF }
+  , { "lightgray", 0xD3D3D3FF }
+  , { "lightgreen", 0x90EE90FF }
+  , { "lightgrey", 0xD3D3D3FF }
+  , { "lightpink", 0xFFB6C1FF }
+  , { "lightsalmon", 0xFFA07AFF }
+  , { "lightseagreen", 0x20B2AAFF }
+  , { "lightskyblue", 0x87CEFAFF }
+  , { "lightslategray", 0x778899FF }
+  , { "lightslategrey", 0x778899FF }
+  , { "lightsteelblue", 0xB0C4DEFF }
+  , { "lightyellow", 0xFFFFE0FF }
+  , { "lime", 0x00FF00FF }
+  , { "limegreen", 0x32CD32FF }
+  , { "linen", 0xFAF0E6FF }
+  , { "magenta", 0xFF00FFFF }
+  , { "maroon", 0x800000FF }
+  , { "mediumaquamarine", 0x66CDAAFF }
+  , { "mediumblue", 0x0000CDFF }
+  , { "mediumorchid", 0xBA55D3FF }
+  , { "mediumpurple", 0x9370DBFF }
+  , { "mediumseagreen", 0x3CB371FF }
+  , { "mediumslateblue", 0x7B68EEFF }
+  , { "mediumspringgreen", 0x00FA9AFF }
+  , { "mediumturquoise", 0x48D1CCFF }
+  , { "mediumvioletred", 0xC71585FF }
+  , { "midnightblue", 0x191970FF }
+  , { "mintcream", 0xF5FFFAFF }
+  , { "mistyrose", 0xFFE4E1FF }
+  , { "moccasin", 0xFFE4B5FF }
+  , { "navajowhite", 0xFFDEADFF }
+  , { "navy", 0x000080FF }
+  , { "oldlace", 0xFDF5E6FF }
+  , { "olive", 0x808000FF }
+  , { "olivedrab", 0x6B8E23FF }
+  , { "orange", 0xFFA500FF }
+  , { "orangered", 0xFF4500FF }
+  , { "orchid", 0xDA70D6FF }
+  , { "palegoldenrod", 0xEEE8AAFF }
+  , { "palegreen", 0x98FB98FF }
+  , { "paleturquoise", 0xAFEEEEFF }
+  , { "palevioletred", 0xDB7093FF }
+  , { "papayawhip", 0xFFEFD5FF }
+  , { "peachpuff", 0xFFDAB9FF }
+  , { "peru", 0xCD853FFF }
+  , { "pink", 0xFFC0CBFF }
+  , { "plum", 0xDDA0DDFF }
+  , { "powderblue", 0xB0E0E6FF }
+  , { "purple", 0x800080FF }
+  , { "rebeccapurple", 0x663399FF } // Source: CSS Color Level 4 draft
+  , { "red", 0xFF0000FF }
+  , { "rosybrown", 0xBC8F8FFF }
+  , { "royalblue", 0x4169E1FF }
+  , { "saddlebrown", 0x8B4513FF }
+  , { "salmon", 0xFA8072FF }
+  , { "sandybrown", 0xF4A460FF }
+  , { "seagreen", 0x2E8B57FF }
+  , { "seashell", 0xFFF5EEFF }
+  , { "sienna", 0xA0522DFF }
+  , { "silver", 0xC0C0C0FF }
+  , { "skyblue", 0x87CEEBFF }
+  , { "slateblue", 0x6A5ACDFF }
+  , { "slategray", 0x708090FF }
+  , { "slategrey", 0x708090FF }
+  , { "snow", 0xFFFAFAFF }
+  , { "springgreen", 0x00FF7FFF }
+  , { "steelblue", 0x4682B4FF }
+  , { "tan", 0xD2B48CFF }
+  , { "teal", 0x008080FF }
+  , { "thistle", 0xD8BFD8FF }
+  , { "tomato", 0xFF6347FF }
+  , { "turquoise", 0x40E0D0FF }
+  , { "violet", 0xEE82EEFF }
+  , { "wheat", 0xF5DEB3FF }
+  , { "white", 0xFFFFFFFF }
+  , { "whitesmoke", 0xF5F5F5FF }
+  , { "yellow", 0xFFFF00FF }
+  , { "yellowgreen", 0x9ACD32FF }
+};
+
+/*
+ * Hex digit int val.
+ */
+
+static int
+h(char c) {
+  switch (c) {
+    case '0':
+    case '1':
+    case '2':
+    case '3':
+    case '4':
+    case '5':
+    case '6':
+    case '7':
+    case '8':
+    case '9':
+      return c - '0';
+    case 'a':
+    case 'b':
+    case 'c':
+    case 'd':
+    case 'e':
+    case 'f':
+      return (c - 'a') + 10;
+    case 'A':
+    case 'B':
+    case 'C':
+    case 'D':
+    case 'E':
+    case 'F':
+      return (c - 'A') + 10;
+  }
+  return 0;
+}
+
+/*
+ * Return rgba_t from rgba.
+ */
+
+rgba_t
+rgba_create(uint32_t rgba) {
+  rgba_t color;
+  color.r = (double) (rgba >> 24) / 255;
+  color.g = (double) (rgba >> 16 & 0xff) / 255;
+  color.b = (double) (rgba >> 8 & 0xff) / 255;
+  color.a = (double) (rgba & 0xff) / 255;
+  return color;
+}
+
+/*
+ * Return a string representation of the color.
+ */
+
+void
+rgba_to_string(rgba_t rgba, char *buf, size_t len) {
+  if (1 == rgba.a) {
+    snprintf(buf, len, "#%.2x%.2x%.2x",
+      static_cast<int>(round(rgba.r * 255)),
+      static_cast<int>(round(rgba.g * 255)),
+      static_cast<int>(round(rgba.b * 255)));
+  } else {
+    snprintf(buf, len, "rgba(%d, %d, %d, %.2f)",
+      static_cast<int>(round(rgba.r * 255)),
+      static_cast<int>(round(rgba.g * 255)),
+      static_cast<int>(round(rgba.b * 255)),
+      rgba.a);
+  }
+}
+
+/*
+ * Return rgba from (r,g,b,a).
+ */
+
+static inline int32_t
+rgba_from_rgba(uint8_t r, uint8_t g, uint8_t b, uint8_t a) {
+  return
+      r << 24
+    | g << 16
+    | b << 8
+    | a;
+}
+
+/*
+ * Helper function used in rgba_from_hsla().
+ * Based on http://dev.w3.org/csswg/css-color-4/#hsl-to-rgb
+ */
+
+static float
+hue_to_rgb(float t1, float t2, float hue) {
+  if (hue < 0)
+    hue += 6;
+  if (hue >= 6)
+    hue -= 6;
+
+  if (hue < 1)
+    return (t2 - t1) * hue + t1;
+  else if (hue < 3)
+    return t2;
+  else if (hue < 4)
+    return (t2 - t1) * (4 - hue) + t1;
+  else
+    return t1;
+}
+
+/*
+ * Return rgba from (h,s,l,a).
+ * Expects h values in the range [0, 360), and s, l, a in the range [0, 1].
+ * Adapted from http://dev.w3.org/csswg/css-color-4/#hsl-to-rgb
+ */
+
+static inline int32_t
+rgba_from_hsla(float h_deg, float s, float l, float a) {
+  uint8_t r, g, b;
+  float h = (6 * h_deg) / 360.0f, m1, m2;
+
+  if (l<=0.5)
+    m2=l*(s+1);
+  else
+    m2=l+s-l*s;
+  m1 = l*2 - m2;
+
+  // Scale and round the RGB components
+  r = (uint8_t)floor(hue_to_rgb(m1, m2, h + 2) * 255 + 0.5);
+  g = (uint8_t)floor(hue_to_rgb(m1, m2, h    ) * 255 + 0.5);
+  b = (uint8_t)floor(hue_to_rgb(m1, m2, h - 2) * 255 + 0.5);
+
+  return rgba_from_rgba(r, g, b, (uint8_t) (a * 255));
+}
+
+/*
+ * Return rgba from (h,s,l).
+ * Expects h values in the range [0, 360), and s, l in the range [0, 1].
+ */
+
+static inline int32_t
+rgba_from_hsl(float h_deg, float s, float l) {
+  return rgba_from_hsla(h_deg, s, l, 1.0);
+}
+
+
+/*
+ * Return rgba from (r,g,b).
+ */
+
+static int32_t
+rgba_from_rgb(uint8_t r, uint8_t g, uint8_t b) {
+  return rgba_from_rgba(r, g, b, 255);
+}
+
+/*
+ * Return rgba from #RRGGBBAA
+ */
+
+static int32_t
+rgba_from_hex8_string(const char *str) {
+  return rgba_from_rgba(
+    (h(str[0]) << 4) + h(str[1]),
+    (h(str[2]) << 4) + h(str[3]),
+    (h(str[4]) << 4) + h(str[5]),
+    (h(str[6]) << 4) + h(str[7])
+  );
+}
+
+/*
+ * Return rgb from "#RRGGBB".
+ */
+
+static int32_t
+rgba_from_hex6_string(const char *str) {
+  return rgba_from_rgb(
+      (h(str[0]) << 4) + h(str[1])
+    , (h(str[2]) << 4) + h(str[3])
+    , (h(str[4]) << 4) + h(str[5])
+    );
+}
+
+/*
+* Return rgba from #RGBA
+*/
+
+static int32_t
+rgba_from_hex4_string(const char *str) {
+  return rgba_from_rgba(
+    (h(str[0]) << 4) + h(str[0]),
+    (h(str[1]) << 4) + h(str[1]),
+    (h(str[2]) << 4) + h(str[2]),
+    (h(str[3]) << 4) + h(str[3])
+  );
+}
+
+/*
+ * Return rgb from "#RGB"
+ */
+
+static int32_t
+rgba_from_hex3_string(const char *str) {
+  return rgba_from_rgb(
+      (h(str[0]) << 4) + h(str[0])
+    , (h(str[1]) << 4) + h(str[1])
+    , (h(str[2]) << 4) + h(str[2])
+    );
+}
+
+/*
+ * Return rgb from "rgb()"
+ */
+
+static int32_t
+rgba_from_rgb_string(const char *str, short *ok) {
+  if (str == strstr(str, "rgb(")) {
+    str += 4;
+    WHITESPACE;
+    uint8_t r = 0, g = 0, b = 0;
+    CHANNEL(r);
+    WHITESPACE_OR_COMMA;
+    CHANNEL(g);
+    WHITESPACE_OR_COMMA;
+    CHANNEL(b);
+    WHITESPACE;
+    return *ok = 1, rgba_from_rgb(r, g, b);
+  }
+  return *ok = 0;
+}
+
+/*
+ * Return rgb from "rgba()"
+ */
+
+static int32_t
+rgba_from_rgba_string(const char *str, short *ok) {
+  if (str == strstr(str, "rgba(")) {
+    str += 5;
+    WHITESPACE;
+    uint8_t r = 0, g = 0, b = 0;
+    float a = 1.f;
+    CHANNEL(r);
+    WHITESPACE_OR_COMMA;
+    CHANNEL(g);
+    WHITESPACE_OR_COMMA;
+    CHANNEL(b);
+    WHITESPACE_OR_COMMA;
+    ALPHA(a);
+    WHITESPACE;
+    return *ok = 1, rgba_from_rgba(r, g, b, (int) (a * 255));
+  }
+  return *ok = 0;
+}
+
+/*
+ * Return rgb from "hsla()"
+ */
+
+static int32_t
+rgba_from_hsla_string(const char *str, short *ok) {
+  if (str == strstr(str, "hsla(")) {
+    str += 5;
+    WHITESPACE;
+    float h_deg = 0;
+    float s = 0, l = 0;
+    float a = 0;
+    HUE(h_deg);
+    WHITESPACE_OR_COMMA;
+    SATURATION(s);
+    WHITESPACE_OR_COMMA;
+    LIGHTNESS(l);
+    WHITESPACE_OR_COMMA;
+    ALPHA(a);
+    WHITESPACE;
+    return *ok = 1, rgba_from_hsla(h_deg, s, l, a);
+  }
+  return *ok = 0;
+}
+
+/*
+ * Return rgb from "hsl()"
+ */
+
+static int32_t
+rgba_from_hsl_string(const char *str, short *ok) {
+  if (str == strstr(str, "hsl(")) {
+    str += 4;
+    WHITESPACE;
+    float h_deg = 0;
+    float s = 0, l = 0;
+    HUE(h_deg);
+    WHITESPACE_OR_COMMA;
+    SATURATION(s);
+    WHITESPACE_OR_COMMA;
+    LIGHTNESS(l);
+    WHITESPACE;
+    return *ok = 1, rgba_from_hsl(h_deg, s, l);
+  }
+  return *ok = 0;
+}
+
+
+/*
+ * Return rgb from:
+ *
+ *  - "#RGB"
+ *  - "#RGBA"
+ *  - "#RRGGBB"
+ *  - "#RRGGBBAA"
+ *
+ */
+
+static int32_t
+rgba_from_hex_string(const char *str, short *ok) {
+  size_t len = strlen(str);
+  *ok = 1;
+  switch (len) {
+    case 8: return rgba_from_hex8_string(str);
+    case 6: return rgba_from_hex6_string(str);
+    case 4: return rgba_from_hex4_string(str);
+    case 3: return rgba_from_hex3_string(str);
+  }
+  return *ok = 0;
+}
+
+/*
+ * Return named color value.
+ */
+
+static int32_t
+rgba_from_name_string(const char *str, short *ok) {
+  std::string lowered(str);
+  std::transform(lowered.begin(), lowered.end(), lowered.begin(), tolower);
+  auto color = named_colors.find(lowered);
+  if (color != named_colors.end()) {
+    return *ok = 1, color->second;
+  }
+  return *ok = 0;
+}
+
+/*
+ * Return rgb from:
+ *
+ *  - #RGB
+ *  - #RGBA
+ *  - #RRGGBB
+ *  - #RRGGBBAA
+ *  - rgb(r,g,b)
+ *  - rgba(r,g,b,a)
+ *  - hsl(h,s,l)
+ *  - hsla(h,s,l,a)
+ *  - name
+ *
+ */
+
+int32_t
+rgba_from_string(const char *str, short *ok) {
+  if ('#' == str[0])
+    return rgba_from_hex_string(++str, ok);
+  if (str == strstr(str, "rgba"))
+    return rgba_from_rgba_string(str, ok);
+  if (str == strstr(str, "rgb"))
+    return rgba_from_rgb_string(str, ok);
+  if (str == strstr(str, "hsla"))
+    return rgba_from_hsla_string(str, ok);
+  if (str == strstr(str, "hsl"))
+    return rgba_from_hsl_string(str, ok);
+  return rgba_from_name_string(str, ok);
+}
+
+/*
+ * Inspect the given rgba color.
+ */
+
+void
+rgba_inspect(int32_t rgba) {
+  printf("rgba(%d,%d,%d,%d)\n"
+    , rgba >> 24 & 0xff
+    , rgba >> 16 & 0xff
+    , rgba >> 8 & 0xff
+    , rgba & 0xff
+    );
+}
diff --git a/node_modules/canvas/src/color.h b/node_modules/canvas/src/color.h
new file mode 100644
index 0000000..137c1d6
--- /dev/null
+++ b/node_modules/canvas/src/color.h
@@ -0,0 +1,30 @@
+// Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+
+#pragma once
+
+#include <stdint.h> // node < 7 uses libstdc++ on macOS which lacks complete c++11
+#include <cstdlib>
+
+/*
+ * RGBA struct.
+ */
+
+typedef struct {
+  double r, g, b, a;
+} rgba_t;
+
+/*
+ * Prototypes.
+ */
+
+rgba_t
+rgba_create(uint32_t rgba);
+
+int32_t
+rgba_from_string(const char *str, short *ok);
+
+void
+rgba_to_string(rgba_t rgba, char *buf, size_t len);
+
+void
+rgba_inspect(int32_t rgba);
diff --git a/node_modules/canvas/src/dll_visibility.h b/node_modules/canvas/src/dll_visibility.h
new file mode 100644
index 0000000..7a1f984
--- /dev/null
+++ b/node_modules/canvas/src/dll_visibility.h
@@ -0,0 +1,20 @@
+#ifndef DLL_PUBLIC
+
+#if defined _WIN32
+  #ifdef __GNUC__
+    #define DLL_PUBLIC __attribute__ ((dllexport))
+  #else
+    #define DLL_PUBLIC __declspec(dllexport)
+  #endif
+  #define DLL_LOCAL
+#else
+  #if __GNUC__ >= 4
+    #define DLL_PUBLIC __attribute__ ((visibility ("default")))
+    #define DLL_LOCAL  __attribute__ ((visibility ("hidden")))
+  #else
+    #define DLL_PUBLIC
+    #define DLL_LOCAL
+  #endif
+#endif
+
+#endif
diff --git a/node_modules/canvas/src/init.cc b/node_modules/canvas/src/init.cc
new file mode 100644
index 0000000..fd14397
--- /dev/null
+++ b/node_modules/canvas/src/init.cc
@@ -0,0 +1,94 @@
+// Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+
+#include <cstdio>
+#include <pango/pango.h>
+
+#include <cairo.h>
+#if CAIRO_VERSION < CAIRO_VERSION_ENCODE(1, 10, 0)
+// CAIRO_FORMAT_RGB16_565: undeprecated in v1.10.0
+// CAIRO_STATUS_INVALID_SIZE: v1.10.0
+// CAIRO_FORMAT_INVALID: v1.10.0
+// Lots of the compositing operators: v1.10.0
+// JPEG MIME tracking: v1.10.0
+// Note: CAIRO_FORMAT_RGB30 is v1.12.0 and still optional
+#error("cairo v1.10.0 or later is required")
+#endif
+
+#include "Backends.h"
+#include "Canvas.h"
+#include "CanvasGradient.h"
+#include "CanvasPattern.h"
+#include "CanvasRenderingContext2d.h"
+#include "Image.h"
+#include "ImageData.h"
+
+#include <ft2build.h>
+#include FT_FREETYPE_H
+
+using namespace v8;
+
+// Compatibility with Visual Studio versions prior to VS2015
+#if defined(_MSC_VER) && _MSC_VER < 1900
+#define snprintf _snprintf
+#endif
+
+NAN_MODULE_INIT(init) {
+  Backends::Initialize(target);
+  Canvas::Initialize(target);
+  Image::Initialize(target);
+  ImageData::Initialize(target);
+  Context2d::Initialize(target);
+  Gradient::Initialize(target);
+  Pattern::Initialize(target);
+
+  Nan::Set(target, Nan::New<String>("cairoVersion").ToLocalChecked(), Nan::New<String>(cairo_version_string()).ToLocalChecked()).Check();
+#ifdef HAVE_JPEG
+
+#ifndef JPEG_LIB_VERSION_MAJOR
+#ifdef JPEG_LIB_VERSION
+#define JPEG_LIB_VERSION_MAJOR (JPEG_LIB_VERSION / 10)
+#else
+#define JPEG_LIB_VERSION_MAJOR 0
+#endif
+#endif
+
+#ifndef JPEG_LIB_VERSION_MINOR
+#ifdef JPEG_LIB_VERSION
+#define JPEG_LIB_VERSION_MINOR (JPEG_LIB_VERSION % 10)
+#else
+#define JPEG_LIB_VERSION_MINOR 0
+#endif
+#endif
+
+  char jpeg_version[10];
+  static bool minor_gt_0 = JPEG_LIB_VERSION_MINOR > 0;
+  if (minor_gt_0) {
+    snprintf(jpeg_version, 10, "%d%c", JPEG_LIB_VERSION_MAJOR, JPEG_LIB_VERSION_MINOR + 'a' - 1);
+  } else {
+    snprintf(jpeg_version, 10, "%d", JPEG_LIB_VERSION_MAJOR);
+  }
+  Nan::Set(target, Nan::New<String>("jpegVersion").ToLocalChecked(), Nan::New<String>(jpeg_version).ToLocalChecked()).Check();
+#endif
+
+#ifdef HAVE_GIF
+#ifndef GIF_LIB_VERSION
+  char gif_version[10];
+  snprintf(gif_version, 10, "%d.%d.%d", GIFLIB_MAJOR, GIFLIB_MINOR, GIFLIB_RELEASE);
+  Nan::Set(target, Nan::New<String>("gifVersion").ToLocalChecked(), Nan::New<String>(gif_version).ToLocalChecked()).Check();
+#else
+  Nan::Set(target, Nan::New<String>("gifVersion").ToLocalChecked(), Nan::New<String>(GIF_LIB_VERSION).ToLocalChecked()).Check();
+#endif
+#endif
+
+#ifdef HAVE_RSVG
+  Nan::Set(target, Nan::New<String>("rsvgVersion").ToLocalChecked(), Nan::New<String>(LIBRSVG_VERSION).ToLocalChecked()).Check();
+#endif
+
+  Nan::Set(target, Nan::New<String>("pangoVersion").ToLocalChecked(), Nan::New<String>(PANGO_VERSION_STRING).ToLocalChecked()).Check();
+
+  char freetype_version[10];
+  snprintf(freetype_version, 10, "%d.%d.%d", FREETYPE_MAJOR, FREETYPE_MINOR, FREETYPE_PATCH);
+  Nan::Set(target, Nan::New<String>("freetypeVersion").ToLocalChecked(), Nan::New<String>(freetype_version).ToLocalChecked()).Check();
+}
+
+NODE_MODULE(canvas, init);
diff --git a/node_modules/canvas/src/register_font.cc b/node_modules/canvas/src/register_font.cc
new file mode 100644
index 0000000..e43dd81
--- /dev/null
+++ b/node_modules/canvas/src/register_font.cc
@@ -0,0 +1,408 @@
+#include "register_font.h"
+
+#include <string>
+#include <pango/pangocairo.h>
+#include <pango/pango-fontmap.h>
+#include <pango/pango.h>
+
+#ifdef __APPLE__
+#include <CoreText/CoreText.h>
+#elif defined(_WIN32)
+#include <windows.h>
+#include <memory>
+#else
+#include <fontconfig/fontconfig.h>
+#include <pango/pangofc-fontmap.h>
+#endif
+
+#include <ft2build.h>
+#include FT_FREETYPE_H
+#include FT_TRUETYPE_TABLES_H
+#include FT_SFNT_NAMES_H
+#include FT_TRUETYPE_IDS_H
+#ifndef FT_SFNT_OS2
+#define FT_SFNT_OS2 ft_sfnt_os2
+#endif
+
+// OSX seems to read the strings in MacRoman encoding and ignore Unicode entries.
+// You can verify this by opening a TTF with both Unicode and Macroman on OSX.
+// It uses the MacRoman name, while Fontconfig and Windows use Unicode
+#ifdef __APPLE__
+#define PREFERRED_PLATFORM_ID TT_PLATFORM_MACINTOSH
+#define PREFERRED_ENCODING_ID TT_MAC_ID_ROMAN
+#else
+#define PREFERRED_PLATFORM_ID TT_PLATFORM_MICROSOFT
+#define PREFERRED_ENCODING_ID TT_MS_ID_UNICODE_CS
+#endif
+
+// With PangoFcFontMaps (the pango font module on Linux) we're able to add a
+// hook that lets us get perfect matching. Tie the conditions for enabling that
+// feature to one variable
+#if !defined(__APPLE__) && !defined(_WIN32) && PANGO_VERSION_CHECK(1, 47, 0)
+#define PERFECT_MATCHES_ENABLED
+#endif
+
+#define IS_PREFERRED_ENC(X) \
+  X.platform_id == PREFERRED_PLATFORM_ID && X.encoding_id == PREFERRED_ENCODING_ID
+
+#ifdef PERFECT_MATCHES_ENABLED
+// On Linux-like OSes using FontConfig, the PostScript name ranks higher than
+// preferred family and family name since we'll use it to get perfect font
+// matching (see fc_font_map_substitute_hook)
+#define GET_NAME_RANK(X) \
+  ((IS_PREFERRED_ENC(X) ? 1 : 0) << 2) | \
+  ((X.name_id == TT_NAME_ID_PS_NAME ? 1 : 0) << 1) | \
+  (X.name_id == TT_NAME_ID_PREFERRED_FAMILY ? 1 : 0)
+#else
+#define GET_NAME_RANK(X) \
+  ((IS_PREFERRED_ENC(X) ? 1 : 0) << 1) | \
+  (X.name_id == TT_NAME_ID_PREFERRED_FAMILY ? 1 : 0)
+#endif
+
+/*
+ * Return a UTF-8 encoded string given a TrueType name buf+len
+ * and its platform and encoding
+ */
+
+char *
+to_utf8(FT_Byte* buf, FT_UInt len, FT_UShort pid, FT_UShort eid) {
+  size_t ret_len = len * 4; // max chars in a utf8 string
+  char *ret = (char*)malloc(ret_len + 1); // utf8 string + null
+
+  if (!ret) return NULL;
+
+  // In my testing of hundreds of fonts from the Google Font repo, the two types
+  // of fonts are TT_PLATFORM_MICROSOFT with TT_MS_ID_UNICODE_CS encoding, or
+  // TT_PLATFORM_MACINTOSH with TT_MAC_ID_ROMAN encoding. Usually both, never neither
+
+  char const *fromcode;
+
+  if (pid == TT_PLATFORM_MACINTOSH && eid == TT_MAC_ID_ROMAN) {
+    fromcode = "MAC";
+  } else if (pid == TT_PLATFORM_MICROSOFT && eid == TT_MS_ID_UNICODE_CS) {
+    fromcode = "UTF-16BE";
+  } else {
+    free(ret);
+    return NULL;
+  }
+
+  GIConv cd = g_iconv_open("UTF-8", fromcode);
+
+  if (cd == (GIConv)-1) {
+    free(ret);
+    return NULL;
+  }
+
+  size_t inbytesleft = len;
+  size_t outbytesleft = ret_len;
+
+  size_t n_converted = g_iconv(cd, (char**)&buf, &inbytesleft, &ret, &outbytesleft);
+
+  ret -= ret_len - outbytesleft; // rewind the pointers to their
+  buf -= len - inbytesleft;      // original starting positions
+
+  if (n_converted == (size_t)-1) {
+    free(ret);
+    return NULL;
+  } else {
+    ret[ret_len - outbytesleft] = '\0';
+    return ret;
+  }
+}
+
+/*
+ * Find a family name in the face's name table, preferring the one the
+ * system, fall back to the other
+ */
+
+char *
+get_family_name(FT_Face face) {
+  FT_SfntName name;
+
+  int best_rank = -1;
+  char* best_buf = NULL;
+
+  for (unsigned i = 0; i < FT_Get_Sfnt_Name_Count(face); ++i) {
+    FT_Get_Sfnt_Name(face, i, &name);
+
+    if (
+      name.name_id == TT_NAME_ID_FONT_FAMILY ||
+#ifdef PERFECT_MATCHES_ENABLED
+      name.name_id == TT_NAME_ID_PS_NAME ||
+#endif
+      name.name_id == TT_NAME_ID_PREFERRED_FAMILY
+    ) {
+      int rank = GET_NAME_RANK(name);
+
+      if (rank > best_rank) {
+        char *buf = to_utf8(name.string, name.string_len, name.platform_id, name.encoding_id);
+        if (buf) {
+          best_rank = rank;
+          if (best_buf) free(best_buf);
+          best_buf = buf;
+
+#ifdef PERFECT_MATCHES_ENABLED
+          // Prepend an '@' to the postscript name
+          if (name.name_id == TT_NAME_ID_PS_NAME) {
+            std::string best_buf_modified = "@";
+            best_buf_modified += best_buf;
+            free(best_buf);
+            best_buf = strdup(best_buf_modified.c_str());
+          }
+#endif
+        } else {
+          free(buf);
+        }
+      }
+    }
+  }
+
+  return best_buf;
+}
+
+PangoWeight
+get_pango_weight(FT_UShort weight) {
+  switch (weight) {
+    case 100: return PANGO_WEIGHT_THIN;
+    case 200: return PANGO_WEIGHT_ULTRALIGHT;
+    case 300: return PANGO_WEIGHT_LIGHT;
+    #if PANGO_VERSION >= PANGO_VERSION_ENCODE(1, 36, 7)
+    case 350: return PANGO_WEIGHT_SEMILIGHT;
+    #endif
+    case 380: return PANGO_WEIGHT_BOOK;
+    case 400: return PANGO_WEIGHT_NORMAL;
+    case 500: return PANGO_WEIGHT_MEDIUM;
+    case 600: return PANGO_WEIGHT_SEMIBOLD;
+    case 700: return PANGO_WEIGHT_BOLD;
+    case 800: return PANGO_WEIGHT_ULTRABOLD;
+    case 900: return PANGO_WEIGHT_HEAVY;
+    case 1000: return PANGO_WEIGHT_ULTRAHEAVY;
+    default: return PANGO_WEIGHT_NORMAL;
+  }
+}
+
+PangoStretch
+get_pango_stretch(FT_UShort width) {
+  switch (width) {
+    case 1: return PANGO_STRETCH_ULTRA_CONDENSED;
+    case 2: return PANGO_STRETCH_EXTRA_CONDENSED;
+    case 3: return PANGO_STRETCH_CONDENSED;
+    case 4: return PANGO_STRETCH_SEMI_CONDENSED;
+    case 5: return PANGO_STRETCH_NORMAL;
+    case 6: return PANGO_STRETCH_SEMI_EXPANDED;
+    case 7: return PANGO_STRETCH_EXPANDED;
+    case 8: return PANGO_STRETCH_EXTRA_EXPANDED;
+    case 9: return PANGO_STRETCH_ULTRA_EXPANDED;
+    default: return PANGO_STRETCH_NORMAL;
+  }
+}
+
+PangoStyle
+get_pango_style(FT_Long flags) {
+  if (flags & FT_STYLE_FLAG_ITALIC) {
+    return PANGO_STYLE_ITALIC;
+  } else {
+    return PANGO_STYLE_NORMAL;
+  }
+}
+
+#ifdef _WIN32
+std::unique_ptr<wchar_t[]>
+u8ToWide(const char* str) {
+  int iBufferSize = MultiByteToWideChar(CP_UTF8, 0, str, -1, (wchar_t*)NULL, 0);
+  if(!iBufferSize){
+    return nullptr;
+  }
+  std::unique_ptr<wchar_t[]> wpBufWString = std::unique_ptr<wchar_t[]>{ new wchar_t[static_cast<size_t>(iBufferSize)] };
+  if(!MultiByteToWideChar(CP_UTF8, 0, str, -1, wpBufWString.get(), iBufferSize)){
+    return nullptr;
+  }
+  return wpBufWString;
+}
+
+static unsigned long 
+stream_read_func(FT_Stream stream, unsigned long offset, unsigned char* buffer, unsigned long count){
+  HANDLE hFile = reinterpret_cast<HANDLE>(stream->descriptor.pointer);
+  DWORD numberOfBytesRead;
+  OVERLAPPED overlapped;
+  overlapped.Offset = offset;
+  overlapped.OffsetHigh = 0;
+  overlapped.hEvent = NULL;
+  if(!ReadFile(hFile, buffer, count, &numberOfBytesRead, &overlapped)){
+    return 0;
+  }
+  return numberOfBytesRead;
+};
+
+static void 
+stream_close_func(FT_Stream stream){
+  HANDLE hFile = reinterpret_cast<HANDLE>(stream->descriptor.pointer);
+  CloseHandle(hFile);
+}
+#endif
+
+/*
+ * Return a PangoFontDescription that will resolve to the font file
+ */
+
+PangoFontDescription *
+get_pango_font_description(unsigned char* filepath) {
+  FT_Library library;
+  FT_Face face;
+  PangoFontDescription *desc = pango_font_description_new();
+#ifdef _WIN32
+  // FT_New_Face use fopen. 
+  // Unable to find the file when supplied the multibyte string path on the Windows platform and throw error "Could not parse font file".
+  // This workaround fixes this by reading the font file uses win32 wide character API.
+  std::unique_ptr<wchar_t[]> wFilepath = u8ToWide((char*)filepath);
+  if(!wFilepath){
+    return NULL;
+  }
+  HANDLE hFile = CreateFileW(
+        wFilepath.get(),
+        GENERIC_READ,
+        FILE_SHARE_READ,
+        NULL,
+        OPEN_EXISTING,
+        FILE_ATTRIBUTE_NORMAL,
+        NULL
+  );
+  if(!hFile){
+    return NULL;
+  }
+  LARGE_INTEGER liSize;
+  if(!GetFileSizeEx(hFile, &liSize)) {
+    CloseHandle(hFile);
+    return NULL;
+  }
+  FT_Open_Args args;
+  args.flags = FT_OPEN_STREAM;
+  FT_StreamRec stream;
+  stream.base = NULL;
+  stream.size = liSize.QuadPart;
+  stream.pos = 0;
+  stream.descriptor.pointer = hFile;
+  stream.read = stream_read_func;
+  stream.close = stream_close_func;
+  args.stream = &stream;
+  if (
+    !FT_Init_FreeType(&library) && 
+    !FT_Open_Face(library, &args, 0, &face)) {
+#else
+  if (!FT_Init_FreeType(&library) && !FT_New_Face(library, (const char*)filepath, 0, &face)) {
+#endif
+    TT_OS2 *table = (TT_OS2*)FT_Get_Sfnt_Table(face, FT_SFNT_OS2);
+    if (table) {
+      char *family = get_family_name(face);
+
+      if (!family) {
+        pango_font_description_free(desc);
+        FT_Done_Face(face);
+        FT_Done_FreeType(library);
+
+        return NULL;
+      }
+
+      pango_font_description_set_family_static(desc, family);
+      pango_font_description_set_weight(desc, get_pango_weight(table->usWeightClass));
+      pango_font_description_set_stretch(desc, get_pango_stretch(table->usWidthClass));
+      pango_font_description_set_style(desc, get_pango_style(face->style_flags));
+
+      FT_Done_Face(face);
+      FT_Done_FreeType(library);
+
+      return desc;
+    }
+  }
+  pango_font_description_free(desc);
+
+  return NULL;
+}
+
+#ifdef PERFECT_MATCHES_ENABLED
+static void
+fc_font_map_substitute_hook(FcPattern *pat, gpointer data) {
+  FcChar8 *family;
+
+  for (int i = 0; FcPatternGetString(pat, FC_FAMILY, i, &family) == FcResultMatch; i++) {
+    if (family[0] == '@') {
+      FcPatternAddString(pat, FC_POSTSCRIPT_NAME, (FcChar8 *)family + 1);
+      FcPatternRemove(pat, FC_FAMILY, i);
+      i -= 1;
+    }
+  }
+}
+#endif
+
+/*
+ * Register font with the OS
+ */
+
+bool
+register_font(unsigned char *filepath) {
+  bool success;
+  
+  #ifdef __APPLE__
+  CFURLRef filepathUrl = CFURLCreateFromFileSystemRepresentation(NULL, filepath, strlen((char*)filepath), false);
+  success = CTFontManagerRegisterFontsForURL(filepathUrl, kCTFontManagerScopeProcess, NULL);
+  #elif defined(_WIN32)
+  std::unique_ptr<wchar_t[]> wFilepath = u8ToWide((char*)filepath);
+  if(wFilepath){
+    success = AddFontResourceExW(wFilepath.get(), FR_PRIVATE, 0) != 0;
+  }else{
+    success = false;
+  }
+
+  #else
+  success = FcConfigAppFontAddFile(FcConfigGetCurrent(), (FcChar8 *)(filepath));
+  #endif
+
+  if (!success) return false;
+
+  // Tell Pango to throw away the current FontMap and create a new one. This
+  // has the effect of registering the new font in Pango by re-looking up all
+  // font families.
+  pango_cairo_font_map_set_default(NULL);
+
+#ifdef PERFECT_MATCHES_ENABLED
+  PangoFontMap* map = pango_cairo_font_map_get_default();
+  PangoFcFontMap* fc_map = PANGO_FC_FONT_MAP(map);
+  pango_fc_font_map_set_default_substitute(fc_map, fc_font_map_substitute_hook, NULL, NULL);
+#endif
+
+  return true;
+}
+
+/*
+ * Deregister font from the OS
+ * Note that Linux (FontConfig) can only dereregister ALL fonts at once.
+ */
+
+bool
+deregister_font(unsigned char *filepath) {
+  bool success;
+  
+  #ifdef __APPLE__
+  CFURLRef filepathUrl = CFURLCreateFromFileSystemRepresentation(NULL, filepath, strlen((char*)filepath), false);
+  success = CTFontManagerUnregisterFontsForURL(filepathUrl, kCTFontManagerScopeProcess, NULL);
+  #elif defined(_WIN32)
+  std::unique_ptr<wchar_t[]> wFilepath = u8ToWide((char*)filepath);
+  if(wFilepath){
+    success = RemoveFontResourceExW(wFilepath.get(), FR_PRIVATE, 0) != 0;
+  }else{
+    success = false;
+  }
+  #else
+  FcConfigAppFontClear(FcConfigGetCurrent());
+  success = true;
+  #endif
+
+  if (!success) return false;
+
+  // Tell Pango to throw away the current FontMap and create a new one. This
+  // has the effect of deregistering the font in Pango by re-looking up all
+  // font families.
+  pango_cairo_font_map_set_default(NULL);
+
+  return true;
+}
diff --git a/node_modules/canvas/src/register_font.h b/node_modules/canvas/src/register_font.h
new file mode 100644
index 0000000..a4fcd59
--- /dev/null
+++ b/node_modules/canvas/src/register_font.h
@@ -0,0 +1,7 @@
+#pragma once
+
+#include <pango/pango.h>
+
+PangoFontDescription *get_pango_font_description(unsigned char *filepath);
+bool register_font(unsigned char *filepath);
+bool deregister_font(unsigned char *filepath);
diff --git a/node_modules/canvas/types/Readme.md b/node_modules/canvas/types/Readme.md
new file mode 100644
index 0000000..4beb7f5
--- /dev/null
+++ b/node_modules/canvas/types/Readme.md
@@ -0,0 +1,3 @@
+Notes:
+
+* `"unified-signatures": false` because of https://github.com/Microsoft/dtslint/issues/183
diff --git a/node_modules/canvas/types/index.d.ts b/node_modules/canvas/types/index.d.ts
new file mode 100644
index 0000000..8bcfd10
--- /dev/null
+++ b/node_modules/canvas/types/index.d.ts
@@ -0,0 +1,484 @@
+// TypeScript Version: 3.0
+
+import { Readable } from 'stream'
+
+export interface PngConfig {
+	/** Specifies the ZLIB compression level. Defaults to 6. */
+	compressionLevel?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
+	/**
+	 * Any bitwise combination of `PNG_FILTER_NONE`, `PNG_FILTER_SUB`,
+	 * `PNG_FILTER_UP`, `PNG_FILTER_AVG` and `PNG_FILTER_PATETH`; or one of
+	 * `PNG_ALL_FILTERS` or `PNG_NO_FILTERS` (all are properties of the canvas
+	 * instance). These specify which filters *may* be used by libpng. During
+	 * encoding, libpng will select the best filter from this list of allowed
+	 * filters. Defaults to `canvas.PNG_ALL_FILTERS`.
+	 */
+	filters?: number
+	/**
+	 * _For creating indexed PNGs._ The palette of colors. Entries should be in
+	 * RGBA order.
+	 */
+	palette?: Uint8ClampedArray
+	/**
+	 * _For creating indexed PNGs._ The index of the background color. Defaults
+	 * to 0.
+	 */
+	backgroundIndex?: number
+	/** pixels per inch */
+	resolution?: number
+}
+
+export interface JpegConfig {
+	/** Specifies the quality, between 0 and 1. Defaults to 0.75. */
+	quality?: number
+	/** Enables progressive encoding. Defaults to `false`. */
+	progressive?: boolean
+	/** Enables 2x2 chroma subsampling. Defaults to `true`. */
+	chromaSubsampling?: boolean
+}
+
+export interface PdfConfig {
+	title?: string
+	author?: string
+	subject?: string
+	keywords?: string
+	creator?: string
+	creationDate?: Date
+	modDate?: Date
+}
+
+export interface NodeCanvasRenderingContext2DSettings {
+	alpha?: boolean
+	pixelFormat?: 'RGBA32' | 'RGB24' | 'A8' | 'RGB16_565' | 'A1' | 'RGB30'
+}
+
+export class Canvas {
+	width: number
+	height: number
+
+	/** _Non standard._ The type of the canvas. */
+	readonly type: 'image'|'pdf'|'svg'
+
+	/** _Non standard._ Getter. The stride used by the canvas. */
+	readonly stride: number;
+
+	/** Constant used in PNG encoding methods. */
+	readonly PNG_NO_FILTERS: number
+	/** Constant used in PNG encoding methods. */
+	readonly PNG_ALL_FILTERS: number
+	/** Constant used in PNG encoding methods. */
+	readonly PNG_FILTER_NONE: number
+	/** Constant used in PNG encoding methods. */
+	readonly PNG_FILTER_SUB: number
+	/** Constant used in PNG encoding methods. */
+	readonly PNG_FILTER_UP: number
+	/** Constant used in PNG encoding methods. */
+	readonly PNG_FILTER_AVG: number
+	/** Constant used in PNG encoding methods. */
+	readonly PNG_FILTER_PAETH: number
+
+	constructor(width: number, height: number, type?: 'image'|'pdf'|'svg')
+
+	getContext(contextId: '2d', contextAttributes?: NodeCanvasRenderingContext2DSettings): CanvasRenderingContext2D
+
+	/**
+	 * For image canvases, encodes the canvas as a PNG. For PDF canvases,
+	 * encodes the canvas as a PDF. For SVG canvases, encodes the canvas as an
+	 * SVG.
+	 */
+	toBuffer(cb: (err: Error|null, result: Buffer) => void): void
+	toBuffer(cb: (err: Error|null, result: Buffer) => void, mimeType: 'image/png', config?: PngConfig): void
+	toBuffer(cb: (err: Error|null, result: Buffer) => void, mimeType: 'image/jpeg', config?: JpegConfig): void
+
+	/**
+	 * For image canvases, encodes the canvas as a PNG. For PDF canvases,
+	 * encodes the canvas as a PDF. For SVG canvases, encodes the canvas as an
+	 * SVG.
+	 */
+	toBuffer(): Buffer
+	toBuffer(mimeType: 'image/png', config?: PngConfig): Buffer
+	toBuffer(mimeType: 'image/jpeg', config?: JpegConfig): Buffer
+	toBuffer(mimeType: 'application/pdf', config?: PdfConfig): Buffer
+
+	/**
+	 * Returns the unencoded pixel data, top-to-bottom. On little-endian (most)
+	 * systems, the array will be ordered BGRA; on big-endian systems, it will
+	 * be ARGB.
+	 */
+	toBuffer(mimeType: 'raw'): Buffer
+
+	createPNGStream(config?: PngConfig): PNGStream
+	createJPEGStream(config?: JpegConfig): JPEGStream
+	createPDFStream(config?: PdfConfig): PDFStream
+
+	/** Defaults to PNG image. */
+	toDataURL(): string
+	toDataURL(mimeType: 'image/png'): string
+	toDataURL(mimeType: 'image/jpeg', quality?: number): string
+	/** _Non-standard._ Defaults to PNG image. */
+	toDataURL(cb: (err: Error|null, result: string) => void): void
+	/** _Non-standard._ */
+	toDataURL(mimeType: 'image/png', cb: (err: Error|null, result: string) => void): void
+	/** _Non-standard._ */
+	toDataURL(mimeType: 'image/jpeg', cb: (err: Error|null, result: string) => void): void
+	/** _Non-standard._ */
+	toDataURL(mimeType: 'image/jpeg', config: JpegConfig, cb: (err: Error|null, result: string) => void): void
+	/** _Non-standard._ */
+	toDataURL(mimeType: 'image/jpeg', quality: number, cb: (err: Error|null, result: string) => void): void
+}
+
+export interface TextMetrics {
+	readonly actualBoundingBoxAscent: number;
+	readonly actualBoundingBoxDescent: number;
+	readonly actualBoundingBoxLeft: number;
+	readonly actualBoundingBoxRight: number;
+	readonly fontBoundingBoxAscent: number;
+	readonly fontBoundingBoxDescent: number;
+	readonly width: number;
+}
+
+export type CanvasFillRule = 'evenodd' | 'nonzero';
+
+export type GlobalCompositeOperation =
+	| 'clear'
+	| 'copy'
+	| 'destination'
+	| 'source-over'
+	| 'destination-over'
+	| 'source-in'
+	| 'destination-in'
+	| 'source-out'
+	| 'destination-out'
+	| 'source-atop'
+	| 'destination-atop'
+	| 'xor'
+	| 'lighter'
+	| 'normal'
+	| 'multiply'
+	| 'screen'
+	| 'overlay'
+	| 'darken'
+	| 'lighten'
+	| 'color-dodge'
+	| 'color-burn'
+	| 'hard-light'
+	| 'soft-light'
+	| 'difference'
+	| 'exclusion'
+	| 'hue'
+	| 'saturation'
+	| 'color'
+	| 'luminosity'
+	| 'saturate';
+
+export type CanvasLineCap = 'butt' | 'round' | 'square';
+
+export type CanvasLineJoin = 'bevel' | 'miter' | 'round';
+
+export type CanvasTextBaseline = 'alphabetic' | 'bottom' | 'hanging' | 'ideographic' | 'middle' | 'top';
+
+export type CanvasTextAlign = 'center' | 'end' | 'left' | 'right' | 'start';
+
+export class CanvasRenderingContext2D {
+	drawImage(image: Canvas|Image, dx: number, dy: number): void
+	drawImage(image: Canvas|Image, dx: number, dy: number, dw: number, dh: number): void
+	drawImage(image: Canvas|Image, sx: number, sy: number, sw: number, sh: number, dx: number, dy: number, dw: number, dh: number): void
+	putImageData(imagedata: ImageData, dx: number, dy: number): void;
+	putImageData(imagedata: ImageData, dx: number, dy: number, dirtyX: number, dirtyY: number, dirtyWidth: number, dirtyHeight: number): void;
+	getImageData(sx: number, sy: number, sw: number, sh: number): ImageData;
+	createImageData(sw: number, sh: number): ImageData;
+	createImageData(imagedata: ImageData): ImageData;
+	/**
+	 * For PDF canvases, adds another page. If width and/or height are omitted,
+	 * the canvas's initial size is used.
+	 */
+	addPage(width?: number, height?: number): void
+	save(): void;
+	restore(): void;
+	rotate(angle: number): void;
+	translate(x: number, y: number): void;
+	transform(a: number, b: number, c: number, d: number, e: number, f: number): void;
+	getTransform(): DOMMatrix;
+	resetTransform(): void;
+	setTransform(transform?: DOMMatrix): void;
+	isPointInPath(x: number, y: number, fillRule?: CanvasFillRule): boolean;
+	scale(x: number, y: number): void;
+	clip(fillRule?: CanvasFillRule): void;
+	fill(fillRule?: CanvasFillRule): void;
+	stroke(): void;
+	fillText(text: string, x: number, y: number, maxWidth?: number): void;
+	strokeText(text: string, x: number, y: number, maxWidth?: number): void;
+	fillRect(x: number, y: number, w: number, h: number): void;
+	strokeRect(x: number, y: number, w: number, h: number): void;
+	clearRect(x: number, y: number, w: number, h: number): void;
+	rect(x: number, y: number, w: number, h: number): void;
+	roundRect(x: number, y: number, w: number, h: number, radii?: number | number[]): void;
+	measureText(text: string): TextMetrics;
+	moveTo(x: number, y: number): void;
+	lineTo(x: number, y: number): void;
+	bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void;
+	quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void;
+	beginPath(): void;
+	closePath(): void;
+	arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void;
+	arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void;
+	ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void;
+	setLineDash(segments: number[]): void;
+	getLineDash(): number[];
+	createPattern(image: Canvas|Image, repetition: 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat' | '' | null): CanvasPattern
+	createLinearGradient(x0: number, y0: number, x1: number, y1: number): CanvasGradient;
+	createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): CanvasGradient;
+	/**
+	 * _Non-standard_. Defaults to 'good'. Affects pattern (gradient, image,
+	 * etc.) rendering quality.
+	 */
+	patternQuality: 'fast' | 'good' | 'best' | 'nearest' | 'bilinear'
+	imageSmoothingEnabled: boolean;
+	globalCompositeOperation: GlobalCompositeOperation;
+	globalAlpha: number;
+	shadowColor: string;
+	miterLimit: number;
+	lineWidth: number;
+	lineCap: CanvasLineCap;
+	lineJoin: CanvasLineJoin;
+	lineDashOffset: number;
+	shadowOffsetX: number;
+	shadowOffsetY: number;
+	shadowBlur: number;
+	/** _Non-standard_. Sets the antialiasing mode. */
+	antialias: 'default' | 'gray' | 'none' | 'subpixel'
+	/**
+	 * Defaults to 'path'. The effect depends on the canvas type:
+	 *
+	 * * **Standard (image)** `'glyph'` and `'path'` both result in rasterized
+	 *   text. Glyph mode is faster than path, but may result in lower-quality
+	 *   text, especially when rotated or translated.
+	 *
+	 * * **PDF** `'glyph'` will embed text instead of paths into the PDF. This
+	 *   is faster to encode, faster to open with PDF viewers, yields a smaller
+	 *   file size and makes the text selectable. The subset of the font needed
+	 *   to render the glyphs will be embedded in the PDF. This is usually the
+	 *   mode you want to use with PDF canvases.
+	 *
+	 * * **SVG** glyph does not cause `<text>` elements to be produced as one
+	 *   might expect ([cairo bug](https://gitlab.freedesktop.org/cairo/cairo/issues/253)).
+	 *   Rather, glyph will create a `<defs>` section with a `<symbol>` for each
+	 *   glyph, then those glyphs be reused via `<use>` elements. `'path'` mode
+	 *   creates a `<path>` element for each text string. glyph mode is faster
+	 *   and yields a smaller file size.
+	 *
+	 * In glyph mode, `ctx.strokeText()` and `ctx.fillText()` behave the same
+	 * (aside from using the stroke and fill style, respectively).
+	 */
+	textDrawingMode: 'path' | 'glyph'
+	/**
+	 * _Non-standard_. Defaults to 'good'. Like `patternQuality`, but applies to
+	 * transformations affecting more than just patterns.
+	 */
+	quality: 'fast' | 'good' | 'best' | 'nearest' | 'bilinear'
+	/** Returns or sets a `DOMMatrix` for the current transformation matrix. */
+	currentTransform: DOMMatrix
+	fillStyle: string | CanvasGradient | CanvasPattern;
+	strokeStyle: string | CanvasGradient | CanvasPattern;
+	font: string;
+	textBaseline: CanvasTextBaseline;
+	textAlign: CanvasTextAlign;
+	canvas: Canvas;
+}
+
+export class CanvasGradient {
+	addColorStop(offset: number, color: string): void;
+}
+
+export class CanvasPattern {
+	setTransform(transform?: DOMMatrix): void;
+}
+
+// This does not extend HTMLImageElement because there are dozens of inherited
+// methods and properties that we do not provide.
+export class Image {
+	/** Track image data */
+	static readonly MODE_IMAGE: number
+	/** Track MIME data */
+	static readonly MODE_MIME: number
+
+	/**
+	 * The URL, `data:` URI or local file path of the image to be loaded, or a
+	 * Buffer instance containing an encoded image.
+	 */
+	src: string | Buffer
+	/** Retrieves whether the object is fully loaded. */
+	readonly complete: boolean
+	/** Sets or retrieves the height of the image. */
+	height: number
+	/** Sets or retrieves the width of the image. */
+	width: number
+
+	/** The original height of the image resource before sizing. */
+	readonly naturalHeight: number
+	/** The original width of the image resource before sizing. */
+	readonly naturalWidth: number
+	/**
+	 * Applies to JPEG images drawn to PDF canvases only. Setting
+	 * `img.dataMode = Image.MODE_MIME` or `Image.MODE_MIME|Image.MODE_IMAGE`
+	 * enables image MIME data tracking. When MIME data is tracked, PDF canvases
+	 * can embed JPEGs directly into the output, rather than re-encoding into
+	 * PNG. This can drastically reduce filesize and speed up rendering.
+	 */
+	dataMode: number
+
+	onload: (() => void) | null;
+	onerror: ((err: Error) => void) | null;
+}
+
+/**
+ * Creates a Canvas instance. This function works in both Node.js and Web
+ * browsers, where there is no Canvas constructor.
+ * @param type Optionally specify to create a PDF or SVG canvas. Defaults to an
+ * image canvas.
+ */
+export function createCanvas(width: number, height: number, type?: 'pdf'|'svg'): Canvas
+
+/**
+ * Creates an ImageData instance. This function works in both Node.js and Web
+ * browsers.
+ * @param data An array containing the pixel representation of the image.
+ * @param height If omitted, the height is calculated based on the array's size
+ * and `width`.
+ */
+export function createImageData(data: Uint8ClampedArray, width: number, height?: number): ImageData
+/**
+ * _Non-standard._ Creates an ImageData instance for an alternative pixel
+ * format, such as RGB16_565
+ * @param data An array containing the pixel representation of the image.
+ * @param height If omitted, the height is calculated based on the array's size
+ * and `width`.
+ */
+export function createImageData(data: Uint16Array, width: number, height?: number): ImageData
+/**
+ * Creates an ImageData instance. This function works in both Node.js and Web
+ * browsers.
+ */
+export function createImageData(width: number, height: number): ImageData
+
+/**
+ * Convenience function for loading an image with a Promise interface. This
+ * function works in both Node.js and Web browsers; however, the `src` must be
+ * a string in Web browsers (it can only be a Buffer in Node.js).
+ * @param src URL, `data: ` URI or (Node.js only) a local file path or Buffer
+ * instance.
+ */
+export function loadImage(src: string|Buffer, options?: any): Promise<Image>
+
+/**
+ * Registers a font that is not installed as a system font. This must be used
+ * before creating Canvas instances.
+ * @param path Path to local font file.
+ * @param fontFace Description of the font face, corresponding to CSS properties
+ * used in `@font-face` rules.
+ */
+export function registerFont(path: string, fontFace: {family: string, weight?: string, style?: string}): void
+
+/**
+ * Unloads all fonts
+ */
+export function deregisterAllFonts(): void;
+
+/** This class must not be constructed directly; use `canvas.createPNGStream()`. */
+export class PNGStream extends Readable {}
+/** This class must not be constructed directly; use `canvas.createJPEGStream()`. */
+export class JPEGStream extends Readable {}
+/** This class must not be constructed directly; use `canvas.createPDFStream()`. */
+export class PDFStream extends Readable {}
+
+export class DOMPoint {
+	w: number;
+	x: number;
+	y: number;
+	z: number;
+}
+
+export class DOMMatrix {
+	constructor(init: string | number[]);
+	toString(): string;
+	multiply(other?: DOMMatrix): DOMMatrix;
+	multiplySelf(other?: DOMMatrix): DOMMatrix;
+	preMultiplySelf(other?: DOMMatrix): DOMMatrix;
+	translate(tx?: number, ty?: number, tz?: number): DOMMatrix;
+	translateSelf(tx?: number, ty?: number, tz?: number): DOMMatrix;
+	scale(scaleX?: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;
+	scale3d(scale?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;
+	scale3dSelf(scale?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;
+	scaleSelf(scaleX?: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;
+	rotateFromVector(x?: number, y?: number): DOMMatrix;
+	rotateFromVectorSelf(x?: number, y?: number): DOMMatrix;
+	rotate(rotX?: number, rotY?: number, rotZ?: number): DOMMatrix;
+	rotateSelf(rotX?: number, rotY?: number, rotZ?: number): DOMMatrix;
+	rotateAxisAngle(x?: number, y?: number, z?: number, angle?: number): DOMMatrix;
+	rotateAxisAngleSelf(x?: number, y?: number, z?: number, angle?: number): DOMMatrix;
+	skewX(sx?: number): DOMMatrix;
+	skewXSelf(sx?: number): DOMMatrix;
+	skewY(sy?: number): DOMMatrix;
+	skewYSelf(sy?: number): DOMMatrix;
+	flipX(): DOMMatrix;
+	flipY(): DOMMatrix;
+	inverse(): DOMMatrix;
+	invertSelf(): DOMMatrix;
+	setMatrixValue(transformList: string): DOMMatrix;
+	transformPoint(point?: DOMPoint): DOMPoint;
+	toFloat32Array(): Float32Array;
+	toFloat64Array(): Float64Array;
+	readonly is2D: boolean;
+	readonly isIdentity: boolean;
+	a: number;
+	b: number;
+	c: number;
+	d: number;
+	e: number;
+	f: number;
+	m11: number;
+	m12: number;
+	m13: number;
+	m14: number;
+	m21: number;
+	m22: number;
+	m23: number;
+	m24: number;
+	m31: number;
+	m32: number;
+	m33: number;
+	m34: number;
+	m41: number;
+	m42: number;
+	m43: number;
+	m44: number;
+	static fromMatrix(other: DOMMatrix): DOMMatrix;
+	static fromFloat32Array(a: Float32Array): DOMMatrix;
+	static fromFloat64Array(a: Float64Array): DOMMatrix;
+}
+
+export class ImageData {
+	constructor(sw: number, sh: number);
+	constructor(data: Uint8ClampedArray, sw: number, sh?: number);
+	readonly data: Uint8ClampedArray;
+	readonly height: number;
+	readonly width: number;
+}
+
+// This is marked private, but is exported...
+// export function parseFont(description: string): object
+
+// Not documented: backends
+
+/** Library version. */
+export const version: string
+/** Cairo version. */
+export const cairoVersion: string
+/** jpeglib version, if built with JPEG support. */
+export const jpegVersion: string | undefined
+/** giflib version, if built with GIF support. */
+export const gifVersion: string | undefined
+/** freetype version. */
+export const freetypeVersion: string
+/** rsvg version. */
+export const rsvgVersion: string | undefined
diff --git a/node_modules/canvas/util/has_lib.js b/node_modules/canvas/util/has_lib.js
new file mode 100644
index 0000000..02d7090
--- /dev/null
+++ b/node_modules/canvas/util/has_lib.js
@@ -0,0 +1,119 @@
+const query = process.argv[2]
+const fs = require('fs')
+const childProcess = require('child_process')
+
+const SYSTEM_PATHS = [
+  '/lib',
+  '/usr/lib',
+  '/usr/lib64',
+  '/usr/local/lib',
+  '/opt/local/lib',
+  '/opt/homebrew/lib',
+  '/usr/lib/x86_64-linux-gnu',
+  '/usr/lib/i386-linux-gnu',
+  '/usr/lib/arm-linux-gnueabihf',
+  '/usr/lib/arm-linux-gnueabi',
+  '/usr/lib/aarch64-linux-gnu'
+]
+
+/**
+ * Checks for lib using ldconfig if present, or searching SYSTEM_PATHS
+ * otherwise.
+ * @param {string} lib - library name, e.g. 'jpeg' in 'libjpeg64.so' (see first line)
+ * @return {boolean} exists
+ */
+function hasSystemLib (lib) {
+  const libName = 'lib' + lib + '.+(so|dylib)'
+  const libNameRegex = new RegExp(libName)
+
+  // Try using ldconfig on linux systems
+  if (hasLdconfig()) {
+    try {
+      if (childProcess.execSync('ldconfig -p 2>/dev/null | grep -E "' + libName + '"').length) {
+        return true
+      }
+    } catch (err) {
+      // noop -- proceed to other search methods
+    }
+  }
+
+  // Try checking common library locations
+  return SYSTEM_PATHS.some(function (systemPath) {
+    try {
+      const dirListing = fs.readdirSync(systemPath)
+      return dirListing.some(function (file) {
+        return libNameRegex.test(file)
+      })
+    } catch (err) {
+      return false
+    }
+  })
+}
+
+/**
+ * Checks for ldconfig on the path and /sbin
+ * @return {boolean} exists
+ */
+function hasLdconfig () {
+  try {
+    // Add /sbin to path as ldconfig is located there on some systems -- e.g.
+    // Debian (and it can still be used by unprivileged users):
+    childProcess.execSync('export PATH="$PATH:/sbin"')
+    process.env.PATH = '...'
+    // execSync throws on nonzero exit
+    childProcess.execSync('hash ldconfig 2>/dev/null')
+    return true
+  } catch (err) {
+    return false
+  }
+}
+
+/**
+ * Checks for freetype2 with --cflags-only-I
+ * @return Boolean exists
+ */
+function hasFreetype () {
+  try {
+    if (childProcess.execSync('pkg-config cairo --cflags-only-I 2>/dev/null | grep freetype2').length) {
+      return true
+    }
+  } catch (err) {
+    // noop
+  }
+  return false
+}
+
+/**
+ * Checks for lib using pkg-config.
+ * @param {string} lib - library name
+ * @return {boolean} exists
+ */
+function hasPkgconfigLib (lib) {
+  try {
+    // execSync throws on nonzero exit
+    childProcess.execSync('pkg-config --exists "' + lib + '" 2>/dev/null')
+    return true
+  } catch (err) {
+    return false
+  }
+}
+
+function main (query) {
+  switch (query) {
+    case 'gif':
+    case 'cairo':
+      return hasSystemLib(query)
+    case 'pango':
+      return hasPkgconfigLib(query)
+    case 'freetype':
+      return hasFreetype()
+    case 'jpeg':
+      return hasPkgconfigLib('libjpeg')
+    case 'rsvg':
+      return hasPkgconfigLib('librsvg-2.0')
+    default:
+      throw new Error('Unknown library: ' + query)
+  }
+}
+
+process.stdout.write(main(query).toString())
diff --git a/node_modules/canvas/util/win_jpeg_lookup.js b/node_modules/canvas/util/win_jpeg_lookup.js
new file mode 100644
index 0000000..79815f6
--- /dev/null
+++ b/node_modules/canvas/util/win_jpeg_lookup.js
@@ -0,0 +1,21 @@
+const fs = require('fs')
+const paths = ['C:/libjpeg-turbo']
+
+if (process.arch === 'x64') {
+  paths.unshift('C:/libjpeg-turbo64')
+}
+
+paths.forEach(function (path) {
+  if (exists(path)) {
+    process.stdout.write(path)
+    process.exit()
+  }
+})
+
+function exists (path) {
+  try {
+    return fs.lstatSync(path).isDirectory()
+  } catch (e) {
+    return false
+  }
+}
diff --git a/node_modules/crypto-js/CONTRIBUTING.md b/node_modules/crypto-js/CONTRIBUTING.md
new file mode 100644
index 0000000..09bf774
--- /dev/null
+++ b/node_modules/crypto-js/CONTRIBUTING.md
@@ -0,0 +1,28 @@
+# Contribution
+
+# Git Flow 
+
+The crypto-js project uses [git flow](https://github.com/nvie/gitflow) to manage branches. 
+Do your changes on the `develop` or even better on a `feature/*` branch. Don't do any changes on the `master` branch.
+
+# Pull request
+
+Target your pull request on `develop` branch. Other pull request won't be accepted.
+
+# How to build
+
+1. Clone
+
+2. Run
+
+    ```sh
+    npm install
+    ```
+
+3. Run
+
+    ```sh
+    npm run build
+    ```
+    
+4. Check `build` folder
\ No newline at end of file
diff --git a/node_modules/crypto-js/LICENSE b/node_modules/crypto-js/LICENSE
new file mode 100644
index 0000000..b0828e5
--- /dev/null
+++ b/node_modules/crypto-js/LICENSE
@@ -0,0 +1,24 @@
+# License
+
+[The MIT License (MIT)](http://opensource.org/licenses/MIT)
+
+Copyright (c) 2009-2013 Jeff Mott  
+Copyright (c) 2013-2016 Evan Vosberg
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/node_modules/crypto-js/README.md b/node_modules/crypto-js/README.md
new file mode 100644
index 0000000..6a9bcdf
--- /dev/null
+++ b/node_modules/crypto-js/README.md
@@ -0,0 +1,275 @@
+# crypto-js
+
+JavaScript library of crypto standards.
+
+## Discontinued
+
+Active development of CryptoJS has been discontinued. This library is no longer maintained.
+
+Nowadays, NodeJS and modern browsers have a native `Crypto` module. The latest version of CryptoJS already uses the native Crypto module for random number generation, since `Math.random()` is not crypto-safe. Further development of CryptoJS would result in it only being a wrapper of native Crypto. Therefore, development and maintenance has been discontinued, it is time to go for the native `crypto` module.
+
+## Node.js (Install)
+
+Requirements:
+
+- Node.js
+- npm (Node.js package manager)
+
+```bash
+npm install crypto-js
+```
+
+### Usage
+
+ES6 import for typical API call signing use case:
+
+```javascript
+import sha256 from 'crypto-js/sha256';
+import hmacSHA512 from 'crypto-js/hmac-sha512';
+import Base64 from 'crypto-js/enc-base64';
+
+const message, nonce, path, privateKey; // ...
+const hashDigest = sha256(nonce + message);
+const hmacDigest = Base64.stringify(hmacSHA512(path + hashDigest, privateKey));
+```
+
+Modular include:
+
+```javascript
+var AES = require("crypto-js/aes");
+var SHA256 = require("crypto-js/sha256");
+...
+console.log(SHA256("Message"));
+```
+
+Including all libraries, for access to extra methods:
+
+```javascript
+var CryptoJS = require("crypto-js");
+console.log(CryptoJS.HmacSHA1("Message", "Key"));
+```
+
+## Client (browser)
+
+Requirements:
+
+- Node.js
+- Bower (package manager for frontend)
+
+```bash
+bower install crypto-js
+```
+
+### Usage
+
+Modular include:
+
+```javascript
+require.config({
+    packages: [
+        {
+            name: 'crypto-js',
+            location: 'path-to/bower_components/crypto-js',
+            main: 'index'
+        }
+    ]
+});
+
+require(["crypto-js/aes", "crypto-js/sha256"], function (AES, SHA256) {
+    console.log(SHA256("Message"));
+});
+```
+
+Including all libraries, for access to extra methods:
+
+```javascript
+// Above-mentioned will work or use this simple form
+require.config({
+    paths: {
+        'crypto-js': 'path-to/bower_components/crypto-js/crypto-js'
+    }
+});
+
+require(["crypto-js"], function (CryptoJS) {
+    console.log(CryptoJS.HmacSHA1("Message", "Key"));
+});
+```
+
+### Usage without RequireJS
+
+```html
+<script type="text/javascript" src="path-to/bower_components/crypto-js/crypto-js.js"></script>
+<script type="text/javascript">
+    var encrypted = CryptoJS.AES(...);
+    var encrypted = CryptoJS.SHA256(...);
+</script>
+```
+
+## API
+
+See: https://cryptojs.gitbook.io/docs/
+
+### AES Encryption
+
+#### Plain text encryption
+
+```javascript
+var CryptoJS = require("crypto-js");
+
+// Encrypt
+var ciphertext = CryptoJS.AES.encrypt('my message', 'secret key 123').toString();
+
+// Decrypt
+var bytes  = CryptoJS.AES.decrypt(ciphertext, 'secret key 123');
+var originalText = bytes.toString(CryptoJS.enc.Utf8);
+
+console.log(originalText); // 'my message'
+```
+
+#### Object encryption
+
+```javascript
+var CryptoJS = require("crypto-js");
+
+var data = [{id: 1}, {id: 2}]
+
+// Encrypt
+var ciphertext = CryptoJS.AES.encrypt(JSON.stringify(data), 'secret key 123').toString();
+
+// Decrypt
+var bytes  = CryptoJS.AES.decrypt(ciphertext, 'secret key 123');
+var decryptedData = JSON.parse(bytes.toString(CryptoJS.enc.Utf8));
+
+console.log(decryptedData); // [{id: 1}, {id: 2}]
+```
+
+### List of modules
+
+
+- ```crypto-js/core```
+- ```crypto-js/x64-core```
+- ```crypto-js/lib-typedarrays```
+
+---
+
+- ```crypto-js/md5```
+- ```crypto-js/sha1```
+- ```crypto-js/sha256```
+- ```crypto-js/sha224```
+- ```crypto-js/sha512```
+- ```crypto-js/sha384```
+- ```crypto-js/sha3```
+- ```crypto-js/ripemd160```
+
+---
+
+- ```crypto-js/hmac-md5```
+- ```crypto-js/hmac-sha1```
+- ```crypto-js/hmac-sha256```
+- ```crypto-js/hmac-sha224```
+- ```crypto-js/hmac-sha512```
+- ```crypto-js/hmac-sha384```
+- ```crypto-js/hmac-sha3```
+- ```crypto-js/hmac-ripemd160```
+
+---
+
+- ```crypto-js/pbkdf2```
+
+---
+
+- ```crypto-js/aes```
+- ```crypto-js/tripledes```
+- ```crypto-js/rc4```
+- ```crypto-js/rabbit```
+- ```crypto-js/rabbit-legacy```
+- ```crypto-js/evpkdf```
+
+---
+
+- ```crypto-js/format-openssl```
+- ```crypto-js/format-hex```
+
+---
+
+- ```crypto-js/enc-latin1```
+- ```crypto-js/enc-utf8```
+- ```crypto-js/enc-hex```
+- ```crypto-js/enc-utf16```
+- ```crypto-js/enc-base64```
+
+---
+
+- ```crypto-js/mode-cfb```
+- ```crypto-js/mode-ctr```
+- ```crypto-js/mode-ctr-gladman```
+- ```crypto-js/mode-ofb```
+- ```crypto-js/mode-ecb```
+
+---
+
+- ```crypto-js/pad-pkcs7```
+- ```crypto-js/pad-ansix923```
+- ```crypto-js/pad-iso10126```
+- ```crypto-js/pad-iso97971```
+- ```crypto-js/pad-zeropadding```
+- ```crypto-js/pad-nopadding```
+
+
+## Release notes
+
+### 4.2.0
+
+Change default hash algorithm and iteration's for PBKDF2 to prevent weak security by using the default configuration.
+
+Custom KDF Hasher
+
+Blowfish support
+
+### 4.1.1
+
+Fix module order in bundled release.
+
+Include the browser field in the released package.json.
+
+### 4.1.0
+
+Added url safe variant of base64 encoding. [357](https://github.com/brix/crypto-js/pull/357)
+
+Avoid webpack to add crypto-browser package. [364](https://github.com/brix/crypto-js/pull/364)
+
+### 4.0.0
+
+This is an update including breaking changes for some environments.
+
+In this version `Math.random()` has been replaced by the random methods of the native crypto module.
+
+For this reason CryptoJS might not run in some JavaScript environments without native crypto module. Such as IE 10 or before or React Native.
+
+### 3.3.0
+
+Rollback, `3.3.0` is the same as `3.1.9-1`.
+
+The move of using native secure crypto module will be shifted to a new `4.x.x` version. As it is a breaking change the impact is too big for a minor release.
+
+### 3.2.1
+
+The usage of the native crypto module has been fixed. The import and access of the native crypto module has been improved.
+
+### 3.2.0
+
+In this version `Math.random()` has been replaced by the random methods of the native crypto module.
+
+For this reason CryptoJS might does not run in some JavaScript environments without native crypto module. Such as IE 10 or before.
+
+If it's absolute required to run CryptoJS in such an environment, stay with `3.1.x` version. Encrypting and decrypting stays compatible. But keep in mind `3.1.x` versions still use `Math.random()` which is cryptographically not secure, as it's not random enough. 
+
+This version came along with `CRITICAL` `BUG`. 
+
+DO NOT USE THIS VERSION! Please, go for a newer version!
+
+### 3.1.x
+
+The `3.1.x` are based on the original CryptoJS, wrapped in CommonJS modules.
+
+
diff --git a/node_modules/crypto-js/aes.js b/node_modules/crypto-js/aes.js
new file mode 100644
index 0000000..166e3ea
--- /dev/null
+++ b/node_modules/crypto-js/aes.js
@@ -0,0 +1,234 @@
+;(function (root, factory, undef) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"), require("./enc-base64"), require("./md5"), require("./evpkdf"), require("./cipher-core"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	(function () {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var BlockCipher = C_lib.BlockCipher;
+	    var C_algo = C.algo;
+
+	    // Lookup tables
+	    var SBOX = [];
+	    var INV_SBOX = [];
+	    var SUB_MIX_0 = [];
+	    var SUB_MIX_1 = [];
+	    var SUB_MIX_2 = [];
+	    var SUB_MIX_3 = [];
+	    var INV_SUB_MIX_0 = [];
+	    var INV_SUB_MIX_1 = [];
+	    var INV_SUB_MIX_2 = [];
+	    var INV_SUB_MIX_3 = [];
+
+	    // Compute lookup tables
+	    (function () {
+	        // Compute double table
+	        var d = [];
+	        for (var i = 0; i < 256; i++) {
+	            if (i < 128) {
+	                d[i] = i << 1;
+	            } else {
+	                d[i] = (i << 1) ^ 0x11b;
+	            }
+	        }
+
+	        // Walk GF(2^8)
+	        var x = 0;
+	        var xi = 0;
+	        for (var i = 0; i < 256; i++) {
+	            // Compute sbox
+	            var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4);
+	            sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63;
+	            SBOX[x] = sx;
+	            INV_SBOX[sx] = x;
+
+	            // Compute multiplication
+	            var x2 = d[x];
+	            var x4 = d[x2];
+	            var x8 = d[x4];
+
+	            // Compute sub bytes, mix columns tables
+	            var t = (d[sx] * 0x101) ^ (sx * 0x1010100);
+	            SUB_MIX_0[x] = (t << 24) | (t >>> 8);
+	            SUB_MIX_1[x] = (t << 16) | (t >>> 16);
+	            SUB_MIX_2[x] = (t << 8)  | (t >>> 24);
+	            SUB_MIX_3[x] = t;
+
+	            // Compute inv sub bytes, inv mix columns tables
+	            var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100);
+	            INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8);
+	            INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16);
+	            INV_SUB_MIX_2[sx] = (t << 8)  | (t >>> 24);
+	            INV_SUB_MIX_3[sx] = t;
+
+	            // Compute next counter
+	            if (!x) {
+	                x = xi = 1;
+	            } else {
+	                x = x2 ^ d[d[d[x8 ^ x2]]];
+	                xi ^= d[d[xi]];
+	            }
+	        }
+	    }());
+
+	    // Precomputed Rcon lookup
+	    var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];
+
+	    /**
+	     * AES block cipher algorithm.
+	     */
+	    var AES = C_algo.AES = BlockCipher.extend({
+	        _doReset: function () {
+	            var t;
+
+	            // Skip reset of nRounds has been set before and key did not change
+	            if (this._nRounds && this._keyPriorReset === this._key) {
+	                return;
+	            }
+
+	            // Shortcuts
+	            var key = this._keyPriorReset = this._key;
+	            var keyWords = key.words;
+	            var keySize = key.sigBytes / 4;
+
+	            // Compute number of rounds
+	            var nRounds = this._nRounds = keySize + 6;
+
+	            // Compute number of key schedule rows
+	            var ksRows = (nRounds + 1) * 4;
+
+	            // Compute key schedule
+	            var keySchedule = this._keySchedule = [];
+	            for (var ksRow = 0; ksRow < ksRows; ksRow++) {
+	                if (ksRow < keySize) {
+	                    keySchedule[ksRow] = keyWords[ksRow];
+	                } else {
+	                    t = keySchedule[ksRow - 1];
+
+	                    if (!(ksRow % keySize)) {
+	                        // Rot word
+	                        t = (t << 8) | (t >>> 24);
+
+	                        // Sub word
+	                        t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];
+
+	                        // Mix Rcon
+	                        t ^= RCON[(ksRow / keySize) | 0] << 24;
+	                    } else if (keySize > 6 && ksRow % keySize == 4) {
+	                        // Sub word
+	                        t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];
+	                    }
+
+	                    keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;
+	                }
+	            }
+
+	            // Compute inv key schedule
+	            var invKeySchedule = this._invKeySchedule = [];
+	            for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) {
+	                var ksRow = ksRows - invKsRow;
+
+	                if (invKsRow % 4) {
+	                    var t = keySchedule[ksRow];
+	                } else {
+	                    var t = keySchedule[ksRow - 4];
+	                }
+
+	                if (invKsRow < 4 || ksRow <= 4) {
+	                    invKeySchedule[invKsRow] = t;
+	                } else {
+	                    invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^
+	                                               INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]];
+	                }
+	            }
+	        },
+
+	        encryptBlock: function (M, offset) {
+	            this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);
+	        },
+
+	        decryptBlock: function (M, offset) {
+	            // Swap 2nd and 4th rows
+	            var t = M[offset + 1];
+	            M[offset + 1] = M[offset + 3];
+	            M[offset + 3] = t;
+
+	            this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX);
+
+	            // Inv swap 2nd and 4th rows
+	            var t = M[offset + 1];
+	            M[offset + 1] = M[offset + 3];
+	            M[offset + 3] = t;
+	        },
+
+	        _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) {
+	            // Shortcut
+	            var nRounds = this._nRounds;
+
+	            // Get input, add round key
+	            var s0 = M[offset]     ^ keySchedule[0];
+	            var s1 = M[offset + 1] ^ keySchedule[1];
+	            var s2 = M[offset + 2] ^ keySchedule[2];
+	            var s3 = M[offset + 3] ^ keySchedule[3];
+
+	            // Key schedule row counter
+	            var ksRow = 4;
+
+	            // Rounds
+	            for (var round = 1; round < nRounds; round++) {
+	                // Shift rows, sub bytes, mix columns, add round key
+	                var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++];
+	                var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++];
+	                var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++];
+	                var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++];
+
+	                // Update state
+	                s0 = t0;
+	                s1 = t1;
+	                s2 = t2;
+	                s3 = t3;
+	            }
+
+	            // Shift rows, sub bytes, add round key
+	            var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++];
+	            var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++];
+	            var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++];
+	            var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++];
+
+	            // Set output
+	            M[offset]     = t0;
+	            M[offset + 1] = t1;
+	            M[offset + 2] = t2;
+	            M[offset + 3] = t3;
+	        },
+
+	        keySize: 256/32
+	    });
+
+	    /**
+	     * Shortcut functions to the cipher's object interface.
+	     *
+	     * @example
+	     *
+	     *     var ciphertext = CryptoJS.AES.encrypt(message, key, cfg);
+	     *     var plaintext  = CryptoJS.AES.decrypt(ciphertext, key, cfg);
+	     */
+	    C.AES = BlockCipher._createHelper(AES);
+	}());
+
+
+	return CryptoJS.AES;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/blowfish.js b/node_modules/crypto-js/blowfish.js
new file mode 100644
index 0000000..149812f
--- /dev/null
+++ b/node_modules/crypto-js/blowfish.js
@@ -0,0 +1,471 @@
+;(function (root, factory, undef) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"), require("./enc-base64"), require("./md5"), require("./evpkdf"), require("./cipher-core"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	(function () {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var BlockCipher = C_lib.BlockCipher;
+	    var C_algo = C.algo;
+
+	    const N = 16;
+
+	    //Origin pbox and sbox, derived from PI
+	    const ORIG_P = [
+	        0x243F6A88, 0x85A308D3, 0x13198A2E, 0x03707344,
+	        0xA4093822, 0x299F31D0, 0x082EFA98, 0xEC4E6C89,
+	        0x452821E6, 0x38D01377, 0xBE5466CF, 0x34E90C6C,
+	        0xC0AC29B7, 0xC97C50DD, 0x3F84D5B5, 0xB5470917,
+	        0x9216D5D9, 0x8979FB1B
+	    ];
+
+	    const ORIG_S = [
+	        [   0xD1310BA6, 0x98DFB5AC, 0x2FFD72DB, 0xD01ADFB7,
+	            0xB8E1AFED, 0x6A267E96, 0xBA7C9045, 0xF12C7F99,
+	            0x24A19947, 0xB3916CF7, 0x0801F2E2, 0x858EFC16,
+	            0x636920D8, 0x71574E69, 0xA458FEA3, 0xF4933D7E,
+	            0x0D95748F, 0x728EB658, 0x718BCD58, 0x82154AEE,
+	            0x7B54A41D, 0xC25A59B5, 0x9C30D539, 0x2AF26013,
+	            0xC5D1B023, 0x286085F0, 0xCA417918, 0xB8DB38EF,
+	            0x8E79DCB0, 0x603A180E, 0x6C9E0E8B, 0xB01E8A3E,
+	            0xD71577C1, 0xBD314B27, 0x78AF2FDA, 0x55605C60,
+	            0xE65525F3, 0xAA55AB94, 0x57489862, 0x63E81440,
+	            0x55CA396A, 0x2AAB10B6, 0xB4CC5C34, 0x1141E8CE,
+	            0xA15486AF, 0x7C72E993, 0xB3EE1411, 0x636FBC2A,
+	            0x2BA9C55D, 0x741831F6, 0xCE5C3E16, 0x9B87931E,
+	            0xAFD6BA33, 0x6C24CF5C, 0x7A325381, 0x28958677,
+	            0x3B8F4898, 0x6B4BB9AF, 0xC4BFE81B, 0x66282193,
+	            0x61D809CC, 0xFB21A991, 0x487CAC60, 0x5DEC8032,
+	            0xEF845D5D, 0xE98575B1, 0xDC262302, 0xEB651B88,
+	            0x23893E81, 0xD396ACC5, 0x0F6D6FF3, 0x83F44239,
+	            0x2E0B4482, 0xA4842004, 0x69C8F04A, 0x9E1F9B5E,
+	            0x21C66842, 0xF6E96C9A, 0x670C9C61, 0xABD388F0,
+	            0x6A51A0D2, 0xD8542F68, 0x960FA728, 0xAB5133A3,
+	            0x6EEF0B6C, 0x137A3BE4, 0xBA3BF050, 0x7EFB2A98,
+	            0xA1F1651D, 0x39AF0176, 0x66CA593E, 0x82430E88,
+	            0x8CEE8619, 0x456F9FB4, 0x7D84A5C3, 0x3B8B5EBE,
+	            0xE06F75D8, 0x85C12073, 0x401A449F, 0x56C16AA6,
+	            0x4ED3AA62, 0x363F7706, 0x1BFEDF72, 0x429B023D,
+	            0x37D0D724, 0xD00A1248, 0xDB0FEAD3, 0x49F1C09B,
+	            0x075372C9, 0x80991B7B, 0x25D479D8, 0xF6E8DEF7,
+	            0xE3FE501A, 0xB6794C3B, 0x976CE0BD, 0x04C006BA,
+	            0xC1A94FB6, 0x409F60C4, 0x5E5C9EC2, 0x196A2463,
+	            0x68FB6FAF, 0x3E6C53B5, 0x1339B2EB, 0x3B52EC6F,
+	            0x6DFC511F, 0x9B30952C, 0xCC814544, 0xAF5EBD09,
+	            0xBEE3D004, 0xDE334AFD, 0x660F2807, 0x192E4BB3,
+	            0xC0CBA857, 0x45C8740F, 0xD20B5F39, 0xB9D3FBDB,
+	            0x5579C0BD, 0x1A60320A, 0xD6A100C6, 0x402C7279,
+	            0x679F25FE, 0xFB1FA3CC, 0x8EA5E9F8, 0xDB3222F8,
+	            0x3C7516DF, 0xFD616B15, 0x2F501EC8, 0xAD0552AB,
+	            0x323DB5FA, 0xFD238760, 0x53317B48, 0x3E00DF82,
+	            0x9E5C57BB, 0xCA6F8CA0, 0x1A87562E, 0xDF1769DB,
+	            0xD542A8F6, 0x287EFFC3, 0xAC6732C6, 0x8C4F5573,
+	            0x695B27B0, 0xBBCA58C8, 0xE1FFA35D, 0xB8F011A0,
+	            0x10FA3D98, 0xFD2183B8, 0x4AFCB56C, 0x2DD1D35B,
+	            0x9A53E479, 0xB6F84565, 0xD28E49BC, 0x4BFB9790,
+	            0xE1DDF2DA, 0xA4CB7E33, 0x62FB1341, 0xCEE4C6E8,
+	            0xEF20CADA, 0x36774C01, 0xD07E9EFE, 0x2BF11FB4,
+	            0x95DBDA4D, 0xAE909198, 0xEAAD8E71, 0x6B93D5A0,
+	            0xD08ED1D0, 0xAFC725E0, 0x8E3C5B2F, 0x8E7594B7,
+	            0x8FF6E2FB, 0xF2122B64, 0x8888B812, 0x900DF01C,
+	            0x4FAD5EA0, 0x688FC31C, 0xD1CFF191, 0xB3A8C1AD,
+	            0x2F2F2218, 0xBE0E1777, 0xEA752DFE, 0x8B021FA1,
+	            0xE5A0CC0F, 0xB56F74E8, 0x18ACF3D6, 0xCE89E299,
+	            0xB4A84FE0, 0xFD13E0B7, 0x7CC43B81, 0xD2ADA8D9,
+	            0x165FA266, 0x80957705, 0x93CC7314, 0x211A1477,
+	            0xE6AD2065, 0x77B5FA86, 0xC75442F5, 0xFB9D35CF,
+	            0xEBCDAF0C, 0x7B3E89A0, 0xD6411BD3, 0xAE1E7E49,
+	            0x00250E2D, 0x2071B35E, 0x226800BB, 0x57B8E0AF,
+	            0x2464369B, 0xF009B91E, 0x5563911D, 0x59DFA6AA,
+	            0x78C14389, 0xD95A537F, 0x207D5BA2, 0x02E5B9C5,
+	            0x83260376, 0x6295CFA9, 0x11C81968, 0x4E734A41,
+	            0xB3472DCA, 0x7B14A94A, 0x1B510052, 0x9A532915,
+	            0xD60F573F, 0xBC9BC6E4, 0x2B60A476, 0x81E67400,
+	            0x08BA6FB5, 0x571BE91F, 0xF296EC6B, 0x2A0DD915,
+	            0xB6636521, 0xE7B9F9B6, 0xFF34052E, 0xC5855664,
+	            0x53B02D5D, 0xA99F8FA1, 0x08BA4799, 0x6E85076A   ],
+	        [   0x4B7A70E9, 0xB5B32944, 0xDB75092E, 0xC4192623,
+	            0xAD6EA6B0, 0x49A7DF7D, 0x9CEE60B8, 0x8FEDB266,
+	            0xECAA8C71, 0x699A17FF, 0x5664526C, 0xC2B19EE1,
+	            0x193602A5, 0x75094C29, 0xA0591340, 0xE4183A3E,
+	            0x3F54989A, 0x5B429D65, 0x6B8FE4D6, 0x99F73FD6,
+	            0xA1D29C07, 0xEFE830F5, 0x4D2D38E6, 0xF0255DC1,
+	            0x4CDD2086, 0x8470EB26, 0x6382E9C6, 0x021ECC5E,
+	            0x09686B3F, 0x3EBAEFC9, 0x3C971814, 0x6B6A70A1,
+	            0x687F3584, 0x52A0E286, 0xB79C5305, 0xAA500737,
+	            0x3E07841C, 0x7FDEAE5C, 0x8E7D44EC, 0x5716F2B8,
+	            0xB03ADA37, 0xF0500C0D, 0xF01C1F04, 0x0200B3FF,
+	            0xAE0CF51A, 0x3CB574B2, 0x25837A58, 0xDC0921BD,
+	            0xD19113F9, 0x7CA92FF6, 0x94324773, 0x22F54701,
+	            0x3AE5E581, 0x37C2DADC, 0xC8B57634, 0x9AF3DDA7,
+	            0xA9446146, 0x0FD0030E, 0xECC8C73E, 0xA4751E41,
+	            0xE238CD99, 0x3BEA0E2F, 0x3280BBA1, 0x183EB331,
+	            0x4E548B38, 0x4F6DB908, 0x6F420D03, 0xF60A04BF,
+	            0x2CB81290, 0x24977C79, 0x5679B072, 0xBCAF89AF,
+	            0xDE9A771F, 0xD9930810, 0xB38BAE12, 0xDCCF3F2E,
+	            0x5512721F, 0x2E6B7124, 0x501ADDE6, 0x9F84CD87,
+	            0x7A584718, 0x7408DA17, 0xBC9F9ABC, 0xE94B7D8C,
+	            0xEC7AEC3A, 0xDB851DFA, 0x63094366, 0xC464C3D2,
+	            0xEF1C1847, 0x3215D908, 0xDD433B37, 0x24C2BA16,
+	            0x12A14D43, 0x2A65C451, 0x50940002, 0x133AE4DD,
+	            0x71DFF89E, 0x10314E55, 0x81AC77D6, 0x5F11199B,
+	            0x043556F1, 0xD7A3C76B, 0x3C11183B, 0x5924A509,
+	            0xF28FE6ED, 0x97F1FBFA, 0x9EBABF2C, 0x1E153C6E,
+	            0x86E34570, 0xEAE96FB1, 0x860E5E0A, 0x5A3E2AB3,
+	            0x771FE71C, 0x4E3D06FA, 0x2965DCB9, 0x99E71D0F,
+	            0x803E89D6, 0x5266C825, 0x2E4CC978, 0x9C10B36A,
+	            0xC6150EBA, 0x94E2EA78, 0xA5FC3C53, 0x1E0A2DF4,
+	            0xF2F74EA7, 0x361D2B3D, 0x1939260F, 0x19C27960,
+	            0x5223A708, 0xF71312B6, 0xEBADFE6E, 0xEAC31F66,
+	            0xE3BC4595, 0xA67BC883, 0xB17F37D1, 0x018CFF28,
+	            0xC332DDEF, 0xBE6C5AA5, 0x65582185, 0x68AB9802,
+	            0xEECEA50F, 0xDB2F953B, 0x2AEF7DAD, 0x5B6E2F84,
+	            0x1521B628, 0x29076170, 0xECDD4775, 0x619F1510,
+	            0x13CCA830, 0xEB61BD96, 0x0334FE1E, 0xAA0363CF,
+	            0xB5735C90, 0x4C70A239, 0xD59E9E0B, 0xCBAADE14,
+	            0xEECC86BC, 0x60622CA7, 0x9CAB5CAB, 0xB2F3846E,
+	            0x648B1EAF, 0x19BDF0CA, 0xA02369B9, 0x655ABB50,
+	            0x40685A32, 0x3C2AB4B3, 0x319EE9D5, 0xC021B8F7,
+	            0x9B540B19, 0x875FA099, 0x95F7997E, 0x623D7DA8,
+	            0xF837889A, 0x97E32D77, 0x11ED935F, 0x16681281,
+	            0x0E358829, 0xC7E61FD6, 0x96DEDFA1, 0x7858BA99,
+	            0x57F584A5, 0x1B227263, 0x9B83C3FF, 0x1AC24696,
+	            0xCDB30AEB, 0x532E3054, 0x8FD948E4, 0x6DBC3128,
+	            0x58EBF2EF, 0x34C6FFEA, 0xFE28ED61, 0xEE7C3C73,
+	            0x5D4A14D9, 0xE864B7E3, 0x42105D14, 0x203E13E0,
+	            0x45EEE2B6, 0xA3AAABEA, 0xDB6C4F15, 0xFACB4FD0,
+	            0xC742F442, 0xEF6ABBB5, 0x654F3B1D, 0x41CD2105,
+	            0xD81E799E, 0x86854DC7, 0xE44B476A, 0x3D816250,
+	            0xCF62A1F2, 0x5B8D2646, 0xFC8883A0, 0xC1C7B6A3,
+	            0x7F1524C3, 0x69CB7492, 0x47848A0B, 0x5692B285,
+	            0x095BBF00, 0xAD19489D, 0x1462B174, 0x23820E00,
+	            0x58428D2A, 0x0C55F5EA, 0x1DADF43E, 0x233F7061,
+	            0x3372F092, 0x8D937E41, 0xD65FECF1, 0x6C223BDB,
+	            0x7CDE3759, 0xCBEE7460, 0x4085F2A7, 0xCE77326E,
+	            0xA6078084, 0x19F8509E, 0xE8EFD855, 0x61D99735,
+	            0xA969A7AA, 0xC50C06C2, 0x5A04ABFC, 0x800BCADC,
+	            0x9E447A2E, 0xC3453484, 0xFDD56705, 0x0E1E9EC9,
+	            0xDB73DBD3, 0x105588CD, 0x675FDA79, 0xE3674340,
+	            0xC5C43465, 0x713E38D8, 0x3D28F89E, 0xF16DFF20,
+	            0x153E21E7, 0x8FB03D4A, 0xE6E39F2B, 0xDB83ADF7   ],
+	        [   0xE93D5A68, 0x948140F7, 0xF64C261C, 0x94692934,
+	            0x411520F7, 0x7602D4F7, 0xBCF46B2E, 0xD4A20068,
+	            0xD4082471, 0x3320F46A, 0x43B7D4B7, 0x500061AF,
+	            0x1E39F62E, 0x97244546, 0x14214F74, 0xBF8B8840,
+	            0x4D95FC1D, 0x96B591AF, 0x70F4DDD3, 0x66A02F45,
+	            0xBFBC09EC, 0x03BD9785, 0x7FAC6DD0, 0x31CB8504,
+	            0x96EB27B3, 0x55FD3941, 0xDA2547E6, 0xABCA0A9A,
+	            0x28507825, 0x530429F4, 0x0A2C86DA, 0xE9B66DFB,
+	            0x68DC1462, 0xD7486900, 0x680EC0A4, 0x27A18DEE,
+	            0x4F3FFEA2, 0xE887AD8C, 0xB58CE006, 0x7AF4D6B6,
+	            0xAACE1E7C, 0xD3375FEC, 0xCE78A399, 0x406B2A42,
+	            0x20FE9E35, 0xD9F385B9, 0xEE39D7AB, 0x3B124E8B,
+	            0x1DC9FAF7, 0x4B6D1856, 0x26A36631, 0xEAE397B2,
+	            0x3A6EFA74, 0xDD5B4332, 0x6841E7F7, 0xCA7820FB,
+	            0xFB0AF54E, 0xD8FEB397, 0x454056AC, 0xBA489527,
+	            0x55533A3A, 0x20838D87, 0xFE6BA9B7, 0xD096954B,
+	            0x55A867BC, 0xA1159A58, 0xCCA92963, 0x99E1DB33,
+	            0xA62A4A56, 0x3F3125F9, 0x5EF47E1C, 0x9029317C,
+	            0xFDF8E802, 0x04272F70, 0x80BB155C, 0x05282CE3,
+	            0x95C11548, 0xE4C66D22, 0x48C1133F, 0xC70F86DC,
+	            0x07F9C9EE, 0x41041F0F, 0x404779A4, 0x5D886E17,
+	            0x325F51EB, 0xD59BC0D1, 0xF2BCC18F, 0x41113564,
+	            0x257B7834, 0x602A9C60, 0xDFF8E8A3, 0x1F636C1B,
+	            0x0E12B4C2, 0x02E1329E, 0xAF664FD1, 0xCAD18115,
+	            0x6B2395E0, 0x333E92E1, 0x3B240B62, 0xEEBEB922,
+	            0x85B2A20E, 0xE6BA0D99, 0xDE720C8C, 0x2DA2F728,
+	            0xD0127845, 0x95B794FD, 0x647D0862, 0xE7CCF5F0,
+	            0x5449A36F, 0x877D48FA, 0xC39DFD27, 0xF33E8D1E,
+	            0x0A476341, 0x992EFF74, 0x3A6F6EAB, 0xF4F8FD37,
+	            0xA812DC60, 0xA1EBDDF8, 0x991BE14C, 0xDB6E6B0D,
+	            0xC67B5510, 0x6D672C37, 0x2765D43B, 0xDCD0E804,
+	            0xF1290DC7, 0xCC00FFA3, 0xB5390F92, 0x690FED0B,
+	            0x667B9FFB, 0xCEDB7D9C, 0xA091CF0B, 0xD9155EA3,
+	            0xBB132F88, 0x515BAD24, 0x7B9479BF, 0x763BD6EB,
+	            0x37392EB3, 0xCC115979, 0x8026E297, 0xF42E312D,
+	            0x6842ADA7, 0xC66A2B3B, 0x12754CCC, 0x782EF11C,
+	            0x6A124237, 0xB79251E7, 0x06A1BBE6, 0x4BFB6350,
+	            0x1A6B1018, 0x11CAEDFA, 0x3D25BDD8, 0xE2E1C3C9,
+	            0x44421659, 0x0A121386, 0xD90CEC6E, 0xD5ABEA2A,
+	            0x64AF674E, 0xDA86A85F, 0xBEBFE988, 0x64E4C3FE,
+	            0x9DBC8057, 0xF0F7C086, 0x60787BF8, 0x6003604D,
+	            0xD1FD8346, 0xF6381FB0, 0x7745AE04, 0xD736FCCC,
+	            0x83426B33, 0xF01EAB71, 0xB0804187, 0x3C005E5F,
+	            0x77A057BE, 0xBDE8AE24, 0x55464299, 0xBF582E61,
+	            0x4E58F48F, 0xF2DDFDA2, 0xF474EF38, 0x8789BDC2,
+	            0x5366F9C3, 0xC8B38E74, 0xB475F255, 0x46FCD9B9,
+	            0x7AEB2661, 0x8B1DDF84, 0x846A0E79, 0x915F95E2,
+	            0x466E598E, 0x20B45770, 0x8CD55591, 0xC902DE4C,
+	            0xB90BACE1, 0xBB8205D0, 0x11A86248, 0x7574A99E,
+	            0xB77F19B6, 0xE0A9DC09, 0x662D09A1, 0xC4324633,
+	            0xE85A1F02, 0x09F0BE8C, 0x4A99A025, 0x1D6EFE10,
+	            0x1AB93D1D, 0x0BA5A4DF, 0xA186F20F, 0x2868F169,
+	            0xDCB7DA83, 0x573906FE, 0xA1E2CE9B, 0x4FCD7F52,
+	            0x50115E01, 0xA70683FA, 0xA002B5C4, 0x0DE6D027,
+	            0x9AF88C27, 0x773F8641, 0xC3604C06, 0x61A806B5,
+	            0xF0177A28, 0xC0F586E0, 0x006058AA, 0x30DC7D62,
+	            0x11E69ED7, 0x2338EA63, 0x53C2DD94, 0xC2C21634,
+	            0xBBCBEE56, 0x90BCB6DE, 0xEBFC7DA1, 0xCE591D76,
+	            0x6F05E409, 0x4B7C0188, 0x39720A3D, 0x7C927C24,
+	            0x86E3725F, 0x724D9DB9, 0x1AC15BB4, 0xD39EB8FC,
+	            0xED545578, 0x08FCA5B5, 0xD83D7CD3, 0x4DAD0FC4,
+	            0x1E50EF5E, 0xB161E6F8, 0xA28514D9, 0x6C51133C,
+	            0x6FD5C7E7, 0x56E14EC4, 0x362ABFCE, 0xDDC6C837,
+	            0xD79A3234, 0x92638212, 0x670EFA8E, 0x406000E0  ],
+	        [   0x3A39CE37, 0xD3FAF5CF, 0xABC27737, 0x5AC52D1B,
+	            0x5CB0679E, 0x4FA33742, 0xD3822740, 0x99BC9BBE,
+	            0xD5118E9D, 0xBF0F7315, 0xD62D1C7E, 0xC700C47B,
+	            0xB78C1B6B, 0x21A19045, 0xB26EB1BE, 0x6A366EB4,
+	            0x5748AB2F, 0xBC946E79, 0xC6A376D2, 0x6549C2C8,
+	            0x530FF8EE, 0x468DDE7D, 0xD5730A1D, 0x4CD04DC6,
+	            0x2939BBDB, 0xA9BA4650, 0xAC9526E8, 0xBE5EE304,
+	            0xA1FAD5F0, 0x6A2D519A, 0x63EF8CE2, 0x9A86EE22,
+	            0xC089C2B8, 0x43242EF6, 0xA51E03AA, 0x9CF2D0A4,
+	            0x83C061BA, 0x9BE96A4D, 0x8FE51550, 0xBA645BD6,
+	            0x2826A2F9, 0xA73A3AE1, 0x4BA99586, 0xEF5562E9,
+	            0xC72FEFD3, 0xF752F7DA, 0x3F046F69, 0x77FA0A59,
+	            0x80E4A915, 0x87B08601, 0x9B09E6AD, 0x3B3EE593,
+	            0xE990FD5A, 0x9E34D797, 0x2CF0B7D9, 0x022B8B51,
+	            0x96D5AC3A, 0x017DA67D, 0xD1CF3ED6, 0x7C7D2D28,
+	            0x1F9F25CF, 0xADF2B89B, 0x5AD6B472, 0x5A88F54C,
+	            0xE029AC71, 0xE019A5E6, 0x47B0ACFD, 0xED93FA9B,
+	            0xE8D3C48D, 0x283B57CC, 0xF8D56629, 0x79132E28,
+	            0x785F0191, 0xED756055, 0xF7960E44, 0xE3D35E8C,
+	            0x15056DD4, 0x88F46DBA, 0x03A16125, 0x0564F0BD,
+	            0xC3EB9E15, 0x3C9057A2, 0x97271AEC, 0xA93A072A,
+	            0x1B3F6D9B, 0x1E6321F5, 0xF59C66FB, 0x26DCF319,
+	            0x7533D928, 0xB155FDF5, 0x03563482, 0x8ABA3CBB,
+	            0x28517711, 0xC20AD9F8, 0xABCC5167, 0xCCAD925F,
+	            0x4DE81751, 0x3830DC8E, 0x379D5862, 0x9320F991,
+	            0xEA7A90C2, 0xFB3E7BCE, 0x5121CE64, 0x774FBE32,
+	            0xA8B6E37E, 0xC3293D46, 0x48DE5369, 0x6413E680,
+	            0xA2AE0810, 0xDD6DB224, 0x69852DFD, 0x09072166,
+	            0xB39A460A, 0x6445C0DD, 0x586CDECF, 0x1C20C8AE,
+	            0x5BBEF7DD, 0x1B588D40, 0xCCD2017F, 0x6BB4E3BB,
+	            0xDDA26A7E, 0x3A59FF45, 0x3E350A44, 0xBCB4CDD5,
+	            0x72EACEA8, 0xFA6484BB, 0x8D6612AE, 0xBF3C6F47,
+	            0xD29BE463, 0x542F5D9E, 0xAEC2771B, 0xF64E6370,
+	            0x740E0D8D, 0xE75B1357, 0xF8721671, 0xAF537D5D,
+	            0x4040CB08, 0x4EB4E2CC, 0x34D2466A, 0x0115AF84,
+	            0xE1B00428, 0x95983A1D, 0x06B89FB4, 0xCE6EA048,
+	            0x6F3F3B82, 0x3520AB82, 0x011A1D4B, 0x277227F8,
+	            0x611560B1, 0xE7933FDC, 0xBB3A792B, 0x344525BD,
+	            0xA08839E1, 0x51CE794B, 0x2F32C9B7, 0xA01FBAC9,
+	            0xE01CC87E, 0xBCC7D1F6, 0xCF0111C3, 0xA1E8AAC7,
+	            0x1A908749, 0xD44FBD9A, 0xD0DADECB, 0xD50ADA38,
+	            0x0339C32A, 0xC6913667, 0x8DF9317C, 0xE0B12B4F,
+	            0xF79E59B7, 0x43F5BB3A, 0xF2D519FF, 0x27D9459C,
+	            0xBF97222C, 0x15E6FC2A, 0x0F91FC71, 0x9B941525,
+	            0xFAE59361, 0xCEB69CEB, 0xC2A86459, 0x12BAA8D1,
+	            0xB6C1075E, 0xE3056A0C, 0x10D25065, 0xCB03A442,
+	            0xE0EC6E0E, 0x1698DB3B, 0x4C98A0BE, 0x3278E964,
+	            0x9F1F9532, 0xE0D392DF, 0xD3A0342B, 0x8971F21E,
+	            0x1B0A7441, 0x4BA3348C, 0xC5BE7120, 0xC37632D8,
+	            0xDF359F8D, 0x9B992F2E, 0xE60B6F47, 0x0FE3F11D,
+	            0xE54CDA54, 0x1EDAD891, 0xCE6279CF, 0xCD3E7E6F,
+	            0x1618B166, 0xFD2C1D05, 0x848FD2C5, 0xF6FB2299,
+	            0xF523F357, 0xA6327623, 0x93A83531, 0x56CCCD02,
+	            0xACF08162, 0x5A75EBB5, 0x6E163697, 0x88D273CC,
+	            0xDE966292, 0x81B949D0, 0x4C50901B, 0x71C65614,
+	            0xE6C6C7BD, 0x327A140A, 0x45E1D006, 0xC3F27B9A,
+	            0xC9AA53FD, 0x62A80F00, 0xBB25BFE2, 0x35BDD2F6,
+	            0x71126905, 0xB2040222, 0xB6CBCF7C, 0xCD769C2B,
+	            0x53113EC0, 0x1640E3D3, 0x38ABBD60, 0x2547ADF0,
+	            0xBA38209C, 0xF746CE76, 0x77AFA1C5, 0x20756060,
+	            0x85CBFE4E, 0x8AE88DD8, 0x7AAAF9B0, 0x4CF9AA7E,
+	            0x1948C25C, 0x02FB8A8C, 0x01C36AE4, 0xD6EBE1F9,
+	            0x90D4F869, 0xA65CDEA0, 0x3F09252D, 0xC208E69F,
+	            0xB74E6132, 0xCE77E25B, 0x578FDFE3, 0x3AC372E6  ]
+	    ];
+
+	    var BLOWFISH_CTX = {
+	        pbox: [],
+	        sbox: []
+	    }
+
+	    function F(ctx, x){
+	        let a = (x >> 24) & 0xFF;
+	        let b = (x >> 16) & 0xFF;
+	        let c = (x >> 8) & 0xFF;
+	        let d = x & 0xFF;
+
+	        let y = ctx.sbox[0][a] + ctx.sbox[1][b];
+	        y = y ^ ctx.sbox[2][c];
+	        y = y + ctx.sbox[3][d];
+
+	        return y;
+	    }
+
+	    function BlowFish_Encrypt(ctx, left, right){
+	        let Xl = left;
+	        let Xr = right;
+	        let temp;
+
+	        for(let i = 0; i < N; ++i){
+	            Xl = Xl ^ ctx.pbox[i];
+	            Xr = F(ctx, Xl) ^ Xr;
+
+	            temp = Xl;
+	            Xl = Xr;
+	            Xr = temp;
+	        }
+
+	        temp = Xl;
+	        Xl = Xr;
+	        Xr = temp;
+
+	        Xr = Xr ^ ctx.pbox[N];
+	        Xl = Xl ^ ctx.pbox[N + 1];
+
+	        return {left: Xl, right: Xr};
+	    }
+
+	    function BlowFish_Decrypt(ctx, left, right){
+	        let Xl = left;
+	        let Xr = right;
+	        let temp;
+
+	        for(let i = N + 1; i > 1; --i){
+	            Xl = Xl ^ ctx.pbox[i];
+	            Xr = F(ctx, Xl) ^ Xr;
+
+	            temp = Xl;
+	            Xl = Xr;
+	            Xr = temp;
+	        }
+
+	        temp = Xl;
+	        Xl = Xr;
+	        Xr = temp;
+
+	        Xr = Xr ^ ctx.pbox[1];
+	        Xl = Xl ^ ctx.pbox[0];
+
+	        return {left: Xl, right: Xr};
+	    }
+
+	    /**
+	     * Initialization ctx's pbox and sbox.
+	     *
+	     * @param {Object} ctx The object has pbox and sbox.
+	     * @param {Array} key An array of 32-bit words.
+	     * @param {int} keysize The length of the key.
+	     *
+	     * @example
+	     *
+	     *     BlowFishInit(BLOWFISH_CTX, key, 128/32);
+	     */
+	    function BlowFishInit(ctx, key, keysize)
+	    {
+	        for(let Row = 0; Row < 4; Row++)
+	        {
+	            ctx.sbox[Row] = [];
+	            for(let Col = 0; Col < 256; Col++)
+	            {
+	                ctx.sbox[Row][Col] = ORIG_S[Row][Col];
+	            }
+	        }
+
+	        let keyIndex = 0;
+	        for(let index = 0; index < N + 2; index++)
+	        {
+	            ctx.pbox[index] = ORIG_P[index] ^ key[keyIndex];
+	            keyIndex++;
+	            if(keyIndex >= keysize)
+	            {
+	                keyIndex = 0;
+	            }
+	        }
+
+	        let Data1 = 0;
+	        let Data2 = 0;
+	        let res = 0;
+	        for(let i = 0; i < N + 2; i += 2)
+	        {
+	            res = BlowFish_Encrypt(ctx, Data1, Data2);
+	            Data1 = res.left;
+	            Data2 = res.right;
+	            ctx.pbox[i] = Data1;
+	            ctx.pbox[i + 1] = Data2;
+	        }
+
+	        for(let i = 0; i < 4; i++)
+	        {
+	            for(let j = 0; j < 256; j += 2)
+	            {
+	                res = BlowFish_Encrypt(ctx, Data1, Data2);
+	                Data1 = res.left;
+	                Data2 = res.right;
+	                ctx.sbox[i][j] = Data1;
+	                ctx.sbox[i][j + 1] = Data2;
+	            }
+	        }
+
+	        return true;
+	    }
+
+	    /**
+	     * Blowfish block cipher algorithm.
+	     */
+	    var Blowfish = C_algo.Blowfish = BlockCipher.extend({
+	        _doReset: function () {
+	            // Skip reset of nRounds has been set before and key did not change
+	            if (this._keyPriorReset === this._key) {
+	                return;
+	            }
+
+	            // Shortcuts
+	            var key = this._keyPriorReset = this._key;
+	            var keyWords = key.words;
+	            var keySize = key.sigBytes / 4;
+
+	            //Initialization pbox and sbox
+	            BlowFishInit(BLOWFISH_CTX, keyWords, keySize);
+	        },
+
+	        encryptBlock: function (M, offset) {
+	            var res = BlowFish_Encrypt(BLOWFISH_CTX, M[offset], M[offset + 1]);
+	            M[offset] = res.left;
+	            M[offset + 1] = res.right;
+	        },
+
+	        decryptBlock: function (M, offset) {
+	            var res = BlowFish_Decrypt(BLOWFISH_CTX, M[offset], M[offset + 1]);
+	            M[offset] = res.left;
+	            M[offset + 1] = res.right;
+	        },
+
+	        blockSize: 64/32,
+
+	        keySize: 128/32,
+
+	        ivSize: 64/32
+	    });
+
+	    /**
+	     * Shortcut functions to the cipher's object interface.
+	     *
+	     * @example
+	     *
+	     *     var ciphertext = CryptoJS.Blowfish.encrypt(message, key, cfg);
+	     *     var plaintext  = CryptoJS.Blowfish.decrypt(ciphertext, key, cfg);
+	     */
+	    C.Blowfish = BlockCipher._createHelper(Blowfish);
+	}());
+
+
+	return CryptoJS.Blowfish;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/bower.json b/node_modules/crypto-js/bower.json
new file mode 100644
index 0000000..4dee617
--- /dev/null
+++ b/node_modules/crypto-js/bower.json
@@ -0,0 +1,39 @@
+{
+  "name": "crypto-js",
+  "version": "4.2.0",
+  "description": "JavaScript library of crypto standards.",
+  "license": "MIT",
+  "homepage": "http://github.com/brix/crypto-js",
+  "repository": {
+    "type": "git",
+    "url": "http://github.com/brix/crypto-js.git"
+  },
+  "keywords": [
+    "security",
+    "crypto",
+    "Hash",
+    "MD5",
+    "SHA1",
+    "SHA-1",
+    "SHA256",
+    "SHA-256",
+    "RC4",
+    "Rabbit",
+    "AES",
+    "DES",
+    "PBKDF2",
+    "HMAC",
+    "OFB",
+    "CFB",
+    "CTR",
+    "CBC",
+    "Base64",
+    "Base64url"
+  ],
+  "main": "index.js",
+  "dependencies": {},
+  "browser": {
+    "crypto": false
+  },
+  "ignore": []
+}
diff --git a/node_modules/crypto-js/cipher-core.js b/node_modules/crypto-js/cipher-core.js
new file mode 100644
index 0000000..903f462
--- /dev/null
+++ b/node_modules/crypto-js/cipher-core.js
@@ -0,0 +1,895 @@
+;(function (root, factory, undef) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"), require("./evpkdf"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core", "./evpkdf"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	/**
+	 * Cipher core components.
+	 */
+	CryptoJS.lib.Cipher || (function (undefined) {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var Base = C_lib.Base;
+	    var WordArray = C_lib.WordArray;
+	    var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;
+	    var C_enc = C.enc;
+	    var Utf8 = C_enc.Utf8;
+	    var Base64 = C_enc.Base64;
+	    var C_algo = C.algo;
+	    var EvpKDF = C_algo.EvpKDF;
+
+	    /**
+	     * Abstract base cipher template.
+	     *
+	     * @property {number} keySize This cipher's key size. Default: 4 (128 bits)
+	     * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits)
+	     * @property {number} _ENC_XFORM_MODE A constant representing encryption mode.
+	     * @property {number} _DEC_XFORM_MODE A constant representing decryption mode.
+	     */
+	    var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({
+	        /**
+	         * Configuration options.
+	         *
+	         * @property {WordArray} iv The IV to use for this operation.
+	         */
+	        cfg: Base.extend(),
+
+	        /**
+	         * Creates this cipher in encryption mode.
+	         *
+	         * @param {WordArray} key The key.
+	         * @param {Object} cfg (Optional) The configuration options to use for this operation.
+	         *
+	         * @return {Cipher} A cipher instance.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });
+	         */
+	        createEncryptor: function (key, cfg) {
+	            return this.create(this._ENC_XFORM_MODE, key, cfg);
+	        },
+
+	        /**
+	         * Creates this cipher in decryption mode.
+	         *
+	         * @param {WordArray} key The key.
+	         * @param {Object} cfg (Optional) The configuration options to use for this operation.
+	         *
+	         * @return {Cipher} A cipher instance.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });
+	         */
+	        createDecryptor: function (key, cfg) {
+	            return this.create(this._DEC_XFORM_MODE, key, cfg);
+	        },
+
+	        /**
+	         * Initializes a newly created cipher.
+	         *
+	         * @param {number} xformMode Either the encryption or decryption transormation mode constant.
+	         * @param {WordArray} key The key.
+	         * @param {Object} cfg (Optional) The configuration options to use for this operation.
+	         *
+	         * @example
+	         *
+	         *     var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });
+	         */
+	        init: function (xformMode, key, cfg) {
+	            // Apply config defaults
+	            this.cfg = this.cfg.extend(cfg);
+
+	            // Store transform mode and key
+	            this._xformMode = xformMode;
+	            this._key = key;
+
+	            // Set initial values
+	            this.reset();
+	        },
+
+	        /**
+	         * Resets this cipher to its initial state.
+	         *
+	         * @example
+	         *
+	         *     cipher.reset();
+	         */
+	        reset: function () {
+	            // Reset data buffer
+	            BufferedBlockAlgorithm.reset.call(this);
+
+	            // Perform concrete-cipher logic
+	            this._doReset();
+	        },
+
+	        /**
+	         * Adds data to be encrypted or decrypted.
+	         *
+	         * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.
+	         *
+	         * @return {WordArray} The data after processing.
+	         *
+	         * @example
+	         *
+	         *     var encrypted = cipher.process('data');
+	         *     var encrypted = cipher.process(wordArray);
+	         */
+	        process: function (dataUpdate) {
+	            // Append
+	            this._append(dataUpdate);
+
+	            // Process available blocks
+	            return this._process();
+	        },
+
+	        /**
+	         * Finalizes the encryption or decryption process.
+	         * Note that the finalize operation is effectively a destructive, read-once operation.
+	         *
+	         * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.
+	         *
+	         * @return {WordArray} The data after final processing.
+	         *
+	         * @example
+	         *
+	         *     var encrypted = cipher.finalize();
+	         *     var encrypted = cipher.finalize('data');
+	         *     var encrypted = cipher.finalize(wordArray);
+	         */
+	        finalize: function (dataUpdate) {
+	            // Final data update
+	            if (dataUpdate) {
+	                this._append(dataUpdate);
+	            }
+
+	            // Perform concrete-cipher logic
+	            var finalProcessedData = this._doFinalize();
+
+	            return finalProcessedData;
+	        },
+
+	        keySize: 128/32,
+
+	        ivSize: 128/32,
+
+	        _ENC_XFORM_MODE: 1,
+
+	        _DEC_XFORM_MODE: 2,
+
+	        /**
+	         * Creates shortcut functions to a cipher's object interface.
+	         *
+	         * @param {Cipher} cipher The cipher to create a helper for.
+	         *
+	         * @return {Object} An object with encrypt and decrypt shortcut functions.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);
+	         */
+	        _createHelper: (function () {
+	            function selectCipherStrategy(key) {
+	                if (typeof key == 'string') {
+	                    return PasswordBasedCipher;
+	                } else {
+	                    return SerializableCipher;
+	                }
+	            }
+
+	            return function (cipher) {
+	                return {
+	                    encrypt: function (message, key, cfg) {
+	                        return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);
+	                    },
+
+	                    decrypt: function (ciphertext, key, cfg) {
+	                        return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);
+	                    }
+	                };
+	            };
+	        }())
+	    });
+
+	    /**
+	     * Abstract base stream cipher template.
+	     *
+	     * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits)
+	     */
+	    var StreamCipher = C_lib.StreamCipher = Cipher.extend({
+	        _doFinalize: function () {
+	            // Process partial blocks
+	            var finalProcessedBlocks = this._process(!!'flush');
+
+	            return finalProcessedBlocks;
+	        },
+
+	        blockSize: 1
+	    });
+
+	    /**
+	     * Mode namespace.
+	     */
+	    var C_mode = C.mode = {};
+
+	    /**
+	     * Abstract base block cipher mode template.
+	     */
+	    var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({
+	        /**
+	         * Creates this mode for encryption.
+	         *
+	         * @param {Cipher} cipher A block cipher instance.
+	         * @param {Array} iv The IV words.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);
+	         */
+	        createEncryptor: function (cipher, iv) {
+	            return this.Encryptor.create(cipher, iv);
+	        },
+
+	        /**
+	         * Creates this mode for decryption.
+	         *
+	         * @param {Cipher} cipher A block cipher instance.
+	         * @param {Array} iv The IV words.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);
+	         */
+	        createDecryptor: function (cipher, iv) {
+	            return this.Decryptor.create(cipher, iv);
+	        },
+
+	        /**
+	         * Initializes a newly created mode.
+	         *
+	         * @param {Cipher} cipher A block cipher instance.
+	         * @param {Array} iv The IV words.
+	         *
+	         * @example
+	         *
+	         *     var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);
+	         */
+	        init: function (cipher, iv) {
+	            this._cipher = cipher;
+	            this._iv = iv;
+	        }
+	    });
+
+	    /**
+	     * Cipher Block Chaining mode.
+	     */
+	    var CBC = C_mode.CBC = (function () {
+	        /**
+	         * Abstract base CBC mode.
+	         */
+	        var CBC = BlockCipherMode.extend();
+
+	        /**
+	         * CBC encryptor.
+	         */
+	        CBC.Encryptor = CBC.extend({
+	            /**
+	             * Processes the data block at offset.
+	             *
+	             * @param {Array} words The data words to operate on.
+	             * @param {number} offset The offset where the block starts.
+	             *
+	             * @example
+	             *
+	             *     mode.processBlock(data.words, offset);
+	             */
+	            processBlock: function (words, offset) {
+	                // Shortcuts
+	                var cipher = this._cipher;
+	                var blockSize = cipher.blockSize;
+
+	                // XOR and encrypt
+	                xorBlock.call(this, words, offset, blockSize);
+	                cipher.encryptBlock(words, offset);
+
+	                // Remember this block to use with next block
+	                this._prevBlock = words.slice(offset, offset + blockSize);
+	            }
+	        });
+
+	        /**
+	         * CBC decryptor.
+	         */
+	        CBC.Decryptor = CBC.extend({
+	            /**
+	             * Processes the data block at offset.
+	             *
+	             * @param {Array} words The data words to operate on.
+	             * @param {number} offset The offset where the block starts.
+	             *
+	             * @example
+	             *
+	             *     mode.processBlock(data.words, offset);
+	             */
+	            processBlock: function (words, offset) {
+	                // Shortcuts
+	                var cipher = this._cipher;
+	                var blockSize = cipher.blockSize;
+
+	                // Remember this block to use with next block
+	                var thisBlock = words.slice(offset, offset + blockSize);
+
+	                // Decrypt and XOR
+	                cipher.decryptBlock(words, offset);
+	                xorBlock.call(this, words, offset, blockSize);
+
+	                // This block becomes the previous block
+	                this._prevBlock = thisBlock;
+	            }
+	        });
+
+	        function xorBlock(words, offset, blockSize) {
+	            var block;
+
+	            // Shortcut
+	            var iv = this._iv;
+
+	            // Choose mixing block
+	            if (iv) {
+	                block = iv;
+
+	                // Remove IV for subsequent blocks
+	                this._iv = undefined;
+	            } else {
+	                block = this._prevBlock;
+	            }
+
+	            // XOR blocks
+	            for (var i = 0; i < blockSize; i++) {
+	                words[offset + i] ^= block[i];
+	            }
+	        }
+
+	        return CBC;
+	    }());
+
+	    /**
+	     * Padding namespace.
+	     */
+	    var C_pad = C.pad = {};
+
+	    /**
+	     * PKCS #5/7 padding strategy.
+	     */
+	    var Pkcs7 = C_pad.Pkcs7 = {
+	        /**
+	         * Pads data using the algorithm defined in PKCS #5/7.
+	         *
+	         * @param {WordArray} data The data to pad.
+	         * @param {number} blockSize The multiple that the data should be padded to.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     CryptoJS.pad.Pkcs7.pad(wordArray, 4);
+	         */
+	        pad: function (data, blockSize) {
+	            // Shortcut
+	            var blockSizeBytes = blockSize * 4;
+
+	            // Count padding bytes
+	            var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;
+
+	            // Create padding word
+	            var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes;
+
+	            // Create padding
+	            var paddingWords = [];
+	            for (var i = 0; i < nPaddingBytes; i += 4) {
+	                paddingWords.push(paddingWord);
+	            }
+	            var padding = WordArray.create(paddingWords, nPaddingBytes);
+
+	            // Add padding
+	            data.concat(padding);
+	        },
+
+	        /**
+	         * Unpads data that had been padded using the algorithm defined in PKCS #5/7.
+	         *
+	         * @param {WordArray} data The data to unpad.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     CryptoJS.pad.Pkcs7.unpad(wordArray);
+	         */
+	        unpad: function (data) {
+	            // Get number of padding bytes from last byte
+	            var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;
+
+	            // Remove padding
+	            data.sigBytes -= nPaddingBytes;
+	        }
+	    };
+
+	    /**
+	     * Abstract base block cipher template.
+	     *
+	     * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits)
+	     */
+	    var BlockCipher = C_lib.BlockCipher = Cipher.extend({
+	        /**
+	         * Configuration options.
+	         *
+	         * @property {Mode} mode The block mode to use. Default: CBC
+	         * @property {Padding} padding The padding strategy to use. Default: Pkcs7
+	         */
+	        cfg: Cipher.cfg.extend({
+	            mode: CBC,
+	            padding: Pkcs7
+	        }),
+
+	        reset: function () {
+	            var modeCreator;
+
+	            // Reset cipher
+	            Cipher.reset.call(this);
+
+	            // Shortcuts
+	            var cfg = this.cfg;
+	            var iv = cfg.iv;
+	            var mode = cfg.mode;
+
+	            // Reset block mode
+	            if (this._xformMode == this._ENC_XFORM_MODE) {
+	                modeCreator = mode.createEncryptor;
+	            } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {
+	                modeCreator = mode.createDecryptor;
+	                // Keep at least one block in the buffer for unpadding
+	                this._minBufferSize = 1;
+	            }
+
+	            if (this._mode && this._mode.__creator == modeCreator) {
+	                this._mode.init(this, iv && iv.words);
+	            } else {
+	                this._mode = modeCreator.call(mode, this, iv && iv.words);
+	                this._mode.__creator = modeCreator;
+	            }
+	        },
+
+	        _doProcessBlock: function (words, offset) {
+	            this._mode.processBlock(words, offset);
+	        },
+
+	        _doFinalize: function () {
+	            var finalProcessedBlocks;
+
+	            // Shortcut
+	            var padding = this.cfg.padding;
+
+	            // Finalize
+	            if (this._xformMode == this._ENC_XFORM_MODE) {
+	                // Pad data
+	                padding.pad(this._data, this.blockSize);
+
+	                // Process final blocks
+	                finalProcessedBlocks = this._process(!!'flush');
+	            } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {
+	                // Process final blocks
+	                finalProcessedBlocks = this._process(!!'flush');
+
+	                // Unpad data
+	                padding.unpad(finalProcessedBlocks);
+	            }
+
+	            return finalProcessedBlocks;
+	        },
+
+	        blockSize: 128/32
+	    });
+
+	    /**
+	     * A collection of cipher parameters.
+	     *
+	     * @property {WordArray} ciphertext The raw ciphertext.
+	     * @property {WordArray} key The key to this ciphertext.
+	     * @property {WordArray} iv The IV used in the ciphering operation.
+	     * @property {WordArray} salt The salt used with a key derivation function.
+	     * @property {Cipher} algorithm The cipher algorithm.
+	     * @property {Mode} mode The block mode used in the ciphering operation.
+	     * @property {Padding} padding The padding scheme used in the ciphering operation.
+	     * @property {number} blockSize The block size of the cipher.
+	     * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.
+	     */
+	    var CipherParams = C_lib.CipherParams = Base.extend({
+	        /**
+	         * Initializes a newly created cipher params object.
+	         *
+	         * @param {Object} cipherParams An object with any of the possible cipher parameters.
+	         *
+	         * @example
+	         *
+	         *     var cipherParams = CryptoJS.lib.CipherParams.create({
+	         *         ciphertext: ciphertextWordArray,
+	         *         key: keyWordArray,
+	         *         iv: ivWordArray,
+	         *         salt: saltWordArray,
+	         *         algorithm: CryptoJS.algo.AES,
+	         *         mode: CryptoJS.mode.CBC,
+	         *         padding: CryptoJS.pad.PKCS7,
+	         *         blockSize: 4,
+	         *         formatter: CryptoJS.format.OpenSSL
+	         *     });
+	         */
+	        init: function (cipherParams) {
+	            this.mixIn(cipherParams);
+	        },
+
+	        /**
+	         * Converts this cipher params object to a string.
+	         *
+	         * @param {Format} formatter (Optional) The formatting strategy to use.
+	         *
+	         * @return {string} The stringified cipher params.
+	         *
+	         * @throws Error If neither the formatter nor the default formatter is set.
+	         *
+	         * @example
+	         *
+	         *     var string = cipherParams + '';
+	         *     var string = cipherParams.toString();
+	         *     var string = cipherParams.toString(CryptoJS.format.OpenSSL);
+	         */
+	        toString: function (formatter) {
+	            return (formatter || this.formatter).stringify(this);
+	        }
+	    });
+
+	    /**
+	     * Format namespace.
+	     */
+	    var C_format = C.format = {};
+
+	    /**
+	     * OpenSSL formatting strategy.
+	     */
+	    var OpenSSLFormatter = C_format.OpenSSL = {
+	        /**
+	         * Converts a cipher params object to an OpenSSL-compatible string.
+	         *
+	         * @param {CipherParams} cipherParams The cipher params object.
+	         *
+	         * @return {string} The OpenSSL-compatible string.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);
+	         */
+	        stringify: function (cipherParams) {
+	            var wordArray;
+
+	            // Shortcuts
+	            var ciphertext = cipherParams.ciphertext;
+	            var salt = cipherParams.salt;
+
+	            // Format
+	            if (salt) {
+	                wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext);
+	            } else {
+	                wordArray = ciphertext;
+	            }
+
+	            return wordArray.toString(Base64);
+	        },
+
+	        /**
+	         * Converts an OpenSSL-compatible string to a cipher params object.
+	         *
+	         * @param {string} openSSLStr The OpenSSL-compatible string.
+	         *
+	         * @return {CipherParams} The cipher params object.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);
+	         */
+	        parse: function (openSSLStr) {
+	            var salt;
+
+	            // Parse base64
+	            var ciphertext = Base64.parse(openSSLStr);
+
+	            // Shortcut
+	            var ciphertextWords = ciphertext.words;
+
+	            // Test for salt
+	            if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) {
+	                // Extract salt
+	                salt = WordArray.create(ciphertextWords.slice(2, 4));
+
+	                // Remove salt from ciphertext
+	                ciphertextWords.splice(0, 4);
+	                ciphertext.sigBytes -= 16;
+	            }
+
+	            return CipherParams.create({ ciphertext: ciphertext, salt: salt });
+	        }
+	    };
+
+	    /**
+	     * A cipher wrapper that returns ciphertext as a serializable cipher params object.
+	     */
+	    var SerializableCipher = C_lib.SerializableCipher = Base.extend({
+	        /**
+	         * Configuration options.
+	         *
+	         * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL
+	         */
+	        cfg: Base.extend({
+	            format: OpenSSLFormatter
+	        }),
+
+	        /**
+	         * Encrypts a message.
+	         *
+	         * @param {Cipher} cipher The cipher algorithm to use.
+	         * @param {WordArray|string} message The message to encrypt.
+	         * @param {WordArray} key The key.
+	         * @param {Object} cfg (Optional) The configuration options to use for this operation.
+	         *
+	         * @return {CipherParams} A cipher params object.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);
+	         *     var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });
+	         *     var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });
+	         */
+	        encrypt: function (cipher, message, key, cfg) {
+	            // Apply config defaults
+	            cfg = this.cfg.extend(cfg);
+
+	            // Encrypt
+	            var encryptor = cipher.createEncryptor(key, cfg);
+	            var ciphertext = encryptor.finalize(message);
+
+	            // Shortcut
+	            var cipherCfg = encryptor.cfg;
+
+	            // Create and return serializable cipher params
+	            return CipherParams.create({
+	                ciphertext: ciphertext,
+	                key: key,
+	                iv: cipherCfg.iv,
+	                algorithm: cipher,
+	                mode: cipherCfg.mode,
+	                padding: cipherCfg.padding,
+	                blockSize: cipher.blockSize,
+	                formatter: cfg.format
+	            });
+	        },
+
+	        /**
+	         * Decrypts serialized ciphertext.
+	         *
+	         * @param {Cipher} cipher The cipher algorithm to use.
+	         * @param {CipherParams|string} ciphertext The ciphertext to decrypt.
+	         * @param {WordArray} key The key.
+	         * @param {Object} cfg (Optional) The configuration options to use for this operation.
+	         *
+	         * @return {WordArray} The plaintext.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });
+	         *     var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });
+	         */
+	        decrypt: function (cipher, ciphertext, key, cfg) {
+	            // Apply config defaults
+	            cfg = this.cfg.extend(cfg);
+
+	            // Convert string to CipherParams
+	            ciphertext = this._parse(ciphertext, cfg.format);
+
+	            // Decrypt
+	            var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);
+
+	            return plaintext;
+	        },
+
+	        /**
+	         * Converts serialized ciphertext to CipherParams,
+	         * else assumed CipherParams already and returns ciphertext unchanged.
+	         *
+	         * @param {CipherParams|string} ciphertext The ciphertext.
+	         * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.
+	         *
+	         * @return {CipherParams} The unserialized ciphertext.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);
+	         */
+	        _parse: function (ciphertext, format) {
+	            if (typeof ciphertext == 'string') {
+	                return format.parse(ciphertext, this);
+	            } else {
+	                return ciphertext;
+	            }
+	        }
+	    });
+
+	    /**
+	     * Key derivation function namespace.
+	     */
+	    var C_kdf = C.kdf = {};
+
+	    /**
+	     * OpenSSL key derivation function.
+	     */
+	    var OpenSSLKdf = C_kdf.OpenSSL = {
+	        /**
+	         * Derives a key and IV from a password.
+	         *
+	         * @param {string} password The password to derive from.
+	         * @param {number} keySize The size in words of the key to generate.
+	         * @param {number} ivSize The size in words of the IV to generate.
+	         * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.
+	         *
+	         * @return {CipherParams} A cipher params object with the key, IV, and salt.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);
+	         *     var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');
+	         */
+	        execute: function (password, keySize, ivSize, salt, hasher) {
+	            // Generate random salt
+	            if (!salt) {
+	                salt = WordArray.random(64/8);
+	            }
+
+	            // Derive key and IV
+	            if (!hasher) {
+	                var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt);
+	            } else {
+	                var key = EvpKDF.create({ keySize: keySize + ivSize, hasher: hasher }).compute(password, salt);
+	            }
+
+
+	            // Separate key and IV
+	            var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);
+	            key.sigBytes = keySize * 4;
+
+	            // Return params
+	            return CipherParams.create({ key: key, iv: iv, salt: salt });
+	        }
+	    };
+
+	    /**
+	     * A serializable cipher wrapper that derives the key from a password,
+	     * and returns ciphertext as a serializable cipher params object.
+	     */
+	    var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({
+	        /**
+	         * Configuration options.
+	         *
+	         * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL
+	         */
+	        cfg: SerializableCipher.cfg.extend({
+	            kdf: OpenSSLKdf
+	        }),
+
+	        /**
+	         * Encrypts a message using a password.
+	         *
+	         * @param {Cipher} cipher The cipher algorithm to use.
+	         * @param {WordArray|string} message The message to encrypt.
+	         * @param {string} password The password.
+	         * @param {Object} cfg (Optional) The configuration options to use for this operation.
+	         *
+	         * @return {CipherParams} A cipher params object.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');
+	         *     var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });
+	         */
+	        encrypt: function (cipher, message, password, cfg) {
+	            // Apply config defaults
+	            cfg = this.cfg.extend(cfg);
+
+	            // Derive key and other params
+	            var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, cfg.salt, cfg.hasher);
+
+	            // Add IV to config
+	            cfg.iv = derivedParams.iv;
+
+	            // Encrypt
+	            var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg);
+
+	            // Mix in derived params
+	            ciphertext.mixIn(derivedParams);
+
+	            return ciphertext;
+	        },
+
+	        /**
+	         * Decrypts serialized ciphertext using a password.
+	         *
+	         * @param {Cipher} cipher The cipher algorithm to use.
+	         * @param {CipherParams|string} ciphertext The ciphertext to decrypt.
+	         * @param {string} password The password.
+	         * @param {Object} cfg (Optional) The configuration options to use for this operation.
+	         *
+	         * @return {WordArray} The plaintext.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });
+	         *     var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });
+	         */
+	        decrypt: function (cipher, ciphertext, password, cfg) {
+	            // Apply config defaults
+	            cfg = this.cfg.extend(cfg);
+
+	            // Convert string to CipherParams
+	            ciphertext = this._parse(ciphertext, cfg.format);
+
+	            // Derive key and other params
+	            var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt, cfg.hasher);
+
+	            // Add IV to config
+	            cfg.iv = derivedParams.iv;
+
+	            // Decrypt
+	            var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);
+
+	            return plaintext;
+	        }
+	    });
+	}());
+
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/core.js b/node_modules/crypto-js/core.js
new file mode 100644
index 0000000..e3a498b
--- /dev/null
+++ b/node_modules/crypto-js/core.js
@@ -0,0 +1,807 @@
+;(function (root, factory) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory();
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define([], factory);
+	}
+	else {
+		// Global (browser)
+		root.CryptoJS = factory();
+	}
+}(this, function () {
+
+	/*globals window, global, require*/
+
+	/**
+	 * CryptoJS core components.
+	 */
+	var CryptoJS = CryptoJS || (function (Math, undefined) {
+
+	    var crypto;
+
+	    // Native crypto from window (Browser)
+	    if (typeof window !== 'undefined' && window.crypto) {
+	        crypto = window.crypto;
+	    }
+
+	    // Native crypto in web worker (Browser)
+	    if (typeof self !== 'undefined' && self.crypto) {
+	        crypto = self.crypto;
+	    }
+
+	    // Native crypto from worker
+	    if (typeof globalThis !== 'undefined' && globalThis.crypto) {
+	        crypto = globalThis.crypto;
+	    }
+
+	    // Native (experimental IE 11) crypto from window (Browser)
+	    if (!crypto && typeof window !== 'undefined' && window.msCrypto) {
+	        crypto = window.msCrypto;
+	    }
+
+	    // Native crypto from global (NodeJS)
+	    if (!crypto && typeof global !== 'undefined' && global.crypto) {
+	        crypto = global.crypto;
+	    }
+
+	    // Native crypto import via require (NodeJS)
+	    if (!crypto && typeof require === 'function') {
+	        try {
+	            crypto = require('crypto');
+	        } catch (err) {}
+	    }
+
+	    /*
+	     * Cryptographically secure pseudorandom number generator
+	     *
+	     * As Math.random() is cryptographically not safe to use
+	     */
+	    var cryptoSecureRandomInt = function () {
+	        if (crypto) {
+	            // Use getRandomValues method (Browser)
+	            if (typeof crypto.getRandomValues === 'function') {
+	                try {
+	                    return crypto.getRandomValues(new Uint32Array(1))[0];
+	                } catch (err) {}
+	            }
+
+	            // Use randomBytes method (NodeJS)
+	            if (typeof crypto.randomBytes === 'function') {
+	                try {
+	                    return crypto.randomBytes(4).readInt32LE();
+	                } catch (err) {}
+	            }
+	        }
+
+	        throw new Error('Native crypto module could not be used to get secure random number.');
+	    };
+
+	    /*
+	     * Local polyfill of Object.create
+
+	     */
+	    var create = Object.create || (function () {
+	        function F() {}
+
+	        return function (obj) {
+	            var subtype;
+
+	            F.prototype = obj;
+
+	            subtype = new F();
+
+	            F.prototype = null;
+
+	            return subtype;
+	        };
+	    }());
+
+	    /**
+	     * CryptoJS namespace.
+	     */
+	    var C = {};
+
+	    /**
+	     * Library namespace.
+	     */
+	    var C_lib = C.lib = {};
+
+	    /**
+	     * Base object for prototypal inheritance.
+	     */
+	    var Base = C_lib.Base = (function () {
+
+
+	        return {
+	            /**
+	             * Creates a new object that inherits from this object.
+	             *
+	             * @param {Object} overrides Properties to copy into the new object.
+	             *
+	             * @return {Object} The new object.
+	             *
+	             * @static
+	             *
+	             * @example
+	             *
+	             *     var MyType = CryptoJS.lib.Base.extend({
+	             *         field: 'value',
+	             *
+	             *         method: function () {
+	             *         }
+	             *     });
+	             */
+	            extend: function (overrides) {
+	                // Spawn
+	                var subtype = create(this);
+
+	                // Augment
+	                if (overrides) {
+	                    subtype.mixIn(overrides);
+	                }
+
+	                // Create default initializer
+	                if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {
+	                    subtype.init = function () {
+	                        subtype.$super.init.apply(this, arguments);
+	                    };
+	                }
+
+	                // Initializer's prototype is the subtype object
+	                subtype.init.prototype = subtype;
+
+	                // Reference supertype
+	                subtype.$super = this;
+
+	                return subtype;
+	            },
+
+	            /**
+	             * Extends this object and runs the init method.
+	             * Arguments to create() will be passed to init().
+	             *
+	             * @return {Object} The new object.
+	             *
+	             * @static
+	             *
+	             * @example
+	             *
+	             *     var instance = MyType.create();
+	             */
+	            create: function () {
+	                var instance = this.extend();
+	                instance.init.apply(instance, arguments);
+
+	                return instance;
+	            },
+
+	            /**
+	             * Initializes a newly created object.
+	             * Override this method to add some logic when your objects are created.
+	             *
+	             * @example
+	             *
+	             *     var MyType = CryptoJS.lib.Base.extend({
+	             *         init: function () {
+	             *             // ...
+	             *         }
+	             *     });
+	             */
+	            init: function () {
+	            },
+
+	            /**
+	             * Copies properties into this object.
+	             *
+	             * @param {Object} properties The properties to mix in.
+	             *
+	             * @example
+	             *
+	             *     MyType.mixIn({
+	             *         field: 'value'
+	             *     });
+	             */
+	            mixIn: function (properties) {
+	                for (var propertyName in properties) {
+	                    if (properties.hasOwnProperty(propertyName)) {
+	                        this[propertyName] = properties[propertyName];
+	                    }
+	                }
+
+	                // IE won't copy toString using the loop above
+	                if (properties.hasOwnProperty('toString')) {
+	                    this.toString = properties.toString;
+	                }
+	            },
+
+	            /**
+	             * Creates a copy of this object.
+	             *
+	             * @return {Object} The clone.
+	             *
+	             * @example
+	             *
+	             *     var clone = instance.clone();
+	             */
+	            clone: function () {
+	                return this.init.prototype.extend(this);
+	            }
+	        };
+	    }());
+
+	    /**
+	     * An array of 32-bit words.
+	     *
+	     * @property {Array} words The array of 32-bit words.
+	     * @property {number} sigBytes The number of significant bytes in this word array.
+	     */
+	    var WordArray = C_lib.WordArray = Base.extend({
+	        /**
+	         * Initializes a newly created word array.
+	         *
+	         * @param {Array} words (Optional) An array of 32-bit words.
+	         * @param {number} sigBytes (Optional) The number of significant bytes in the words.
+	         *
+	         * @example
+	         *
+	         *     var wordArray = CryptoJS.lib.WordArray.create();
+	         *     var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);
+	         *     var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);
+	         */
+	        init: function (words, sigBytes) {
+	            words = this.words = words || [];
+
+	            if (sigBytes != undefined) {
+	                this.sigBytes = sigBytes;
+	            } else {
+	                this.sigBytes = words.length * 4;
+	            }
+	        },
+
+	        /**
+	         * Converts this word array to a string.
+	         *
+	         * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex
+	         *
+	         * @return {string} The stringified word array.
+	         *
+	         * @example
+	         *
+	         *     var string = wordArray + '';
+	         *     var string = wordArray.toString();
+	         *     var string = wordArray.toString(CryptoJS.enc.Utf8);
+	         */
+	        toString: function (encoder) {
+	            return (encoder || Hex).stringify(this);
+	        },
+
+	        /**
+	         * Concatenates a word array to this word array.
+	         *
+	         * @param {WordArray} wordArray The word array to append.
+	         *
+	         * @return {WordArray} This word array.
+	         *
+	         * @example
+	         *
+	         *     wordArray1.concat(wordArray2);
+	         */
+	        concat: function (wordArray) {
+	            // Shortcuts
+	            var thisWords = this.words;
+	            var thatWords = wordArray.words;
+	            var thisSigBytes = this.sigBytes;
+	            var thatSigBytes = wordArray.sigBytes;
+
+	            // Clamp excess bits
+	            this.clamp();
+
+	            // Concat
+	            if (thisSigBytes % 4) {
+	                // Copy one byte at a time
+	                for (var i = 0; i < thatSigBytes; i++) {
+	                    var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
+	                    thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);
+	                }
+	            } else {
+	                // Copy one word at a time
+	                for (var j = 0; j < thatSigBytes; j += 4) {
+	                    thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];
+	                }
+	            }
+	            this.sigBytes += thatSigBytes;
+
+	            // Chainable
+	            return this;
+	        },
+
+	        /**
+	         * Removes insignificant bits.
+	         *
+	         * @example
+	         *
+	         *     wordArray.clamp();
+	         */
+	        clamp: function () {
+	            // Shortcuts
+	            var words = this.words;
+	            var sigBytes = this.sigBytes;
+
+	            // Clamp
+	            words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);
+	            words.length = Math.ceil(sigBytes / 4);
+	        },
+
+	        /**
+	         * Creates a copy of this word array.
+	         *
+	         * @return {WordArray} The clone.
+	         *
+	         * @example
+	         *
+	         *     var clone = wordArray.clone();
+	         */
+	        clone: function () {
+	            var clone = Base.clone.call(this);
+	            clone.words = this.words.slice(0);
+
+	            return clone;
+	        },
+
+	        /**
+	         * Creates a word array filled with random bytes.
+	         *
+	         * @param {number} nBytes The number of random bytes to generate.
+	         *
+	         * @return {WordArray} The random word array.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var wordArray = CryptoJS.lib.WordArray.random(16);
+	         */
+	        random: function (nBytes) {
+	            var words = [];
+
+	            for (var i = 0; i < nBytes; i += 4) {
+	                words.push(cryptoSecureRandomInt());
+	            }
+
+	            return new WordArray.init(words, nBytes);
+	        }
+	    });
+
+	    /**
+	     * Encoder namespace.
+	     */
+	    var C_enc = C.enc = {};
+
+	    /**
+	     * Hex encoding strategy.
+	     */
+	    var Hex = C_enc.Hex = {
+	        /**
+	         * Converts a word array to a hex string.
+	         *
+	         * @param {WordArray} wordArray The word array.
+	         *
+	         * @return {string} The hex string.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var hexString = CryptoJS.enc.Hex.stringify(wordArray);
+	         */
+	        stringify: function (wordArray) {
+	            // Shortcuts
+	            var words = wordArray.words;
+	            var sigBytes = wordArray.sigBytes;
+
+	            // Convert
+	            var hexChars = [];
+	            for (var i = 0; i < sigBytes; i++) {
+	                var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
+	                hexChars.push((bite >>> 4).toString(16));
+	                hexChars.push((bite & 0x0f).toString(16));
+	            }
+
+	            return hexChars.join('');
+	        },
+
+	        /**
+	         * Converts a hex string to a word array.
+	         *
+	         * @param {string} hexStr The hex string.
+	         *
+	         * @return {WordArray} The word array.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var wordArray = CryptoJS.enc.Hex.parse(hexString);
+	         */
+	        parse: function (hexStr) {
+	            // Shortcut
+	            var hexStrLength = hexStr.length;
+
+	            // Convert
+	            var words = [];
+	            for (var i = 0; i < hexStrLength; i += 2) {
+	                words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);
+	            }
+
+	            return new WordArray.init(words, hexStrLength / 2);
+	        }
+	    };
+
+	    /**
+	     * Latin1 encoding strategy.
+	     */
+	    var Latin1 = C_enc.Latin1 = {
+	        /**
+	         * Converts a word array to a Latin1 string.
+	         *
+	         * @param {WordArray} wordArray The word array.
+	         *
+	         * @return {string} The Latin1 string.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);
+	         */
+	        stringify: function (wordArray) {
+	            // Shortcuts
+	            var words = wordArray.words;
+	            var sigBytes = wordArray.sigBytes;
+
+	            // Convert
+	            var latin1Chars = [];
+	            for (var i = 0; i < sigBytes; i++) {
+	                var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
+	                latin1Chars.push(String.fromCharCode(bite));
+	            }
+
+	            return latin1Chars.join('');
+	        },
+
+	        /**
+	         * Converts a Latin1 string to a word array.
+	         *
+	         * @param {string} latin1Str The Latin1 string.
+	         *
+	         * @return {WordArray} The word array.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var wordArray = CryptoJS.enc.Latin1.parse(latin1String);
+	         */
+	        parse: function (latin1Str) {
+	            // Shortcut
+	            var latin1StrLength = latin1Str.length;
+
+	            // Convert
+	            var words = [];
+	            for (var i = 0; i < latin1StrLength; i++) {
+	                words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);
+	            }
+
+	            return new WordArray.init(words, latin1StrLength);
+	        }
+	    };
+
+	    /**
+	     * UTF-8 encoding strategy.
+	     */
+	    var Utf8 = C_enc.Utf8 = {
+	        /**
+	         * Converts a word array to a UTF-8 string.
+	         *
+	         * @param {WordArray} wordArray The word array.
+	         *
+	         * @return {string} The UTF-8 string.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);
+	         */
+	        stringify: function (wordArray) {
+	            try {
+	                return decodeURIComponent(escape(Latin1.stringify(wordArray)));
+	            } catch (e) {
+	                throw new Error('Malformed UTF-8 data');
+	            }
+	        },
+
+	        /**
+	         * Converts a UTF-8 string to a word array.
+	         *
+	         * @param {string} utf8Str The UTF-8 string.
+	         *
+	         * @return {WordArray} The word array.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var wordArray = CryptoJS.enc.Utf8.parse(utf8String);
+	         */
+	        parse: function (utf8Str) {
+	            return Latin1.parse(unescape(encodeURIComponent(utf8Str)));
+	        }
+	    };
+
+	    /**
+	     * Abstract buffered block algorithm template.
+	     *
+	     * The property blockSize must be implemented in a concrete subtype.
+	     *
+	     * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0
+	     */
+	    var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({
+	        /**
+	         * Resets this block algorithm's data buffer to its initial state.
+	         *
+	         * @example
+	         *
+	         *     bufferedBlockAlgorithm.reset();
+	         */
+	        reset: function () {
+	            // Initial values
+	            this._data = new WordArray.init();
+	            this._nDataBytes = 0;
+	        },
+
+	        /**
+	         * Adds new data to this block algorithm's buffer.
+	         *
+	         * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.
+	         *
+	         * @example
+	         *
+	         *     bufferedBlockAlgorithm._append('data');
+	         *     bufferedBlockAlgorithm._append(wordArray);
+	         */
+	        _append: function (data) {
+	            // Convert string to WordArray, else assume WordArray already
+	            if (typeof data == 'string') {
+	                data = Utf8.parse(data);
+	            }
+
+	            // Append
+	            this._data.concat(data);
+	            this._nDataBytes += data.sigBytes;
+	        },
+
+	        /**
+	         * Processes available data blocks.
+	         *
+	         * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.
+	         *
+	         * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.
+	         *
+	         * @return {WordArray} The processed data.
+	         *
+	         * @example
+	         *
+	         *     var processedData = bufferedBlockAlgorithm._process();
+	         *     var processedData = bufferedBlockAlgorithm._process(!!'flush');
+	         */
+	        _process: function (doFlush) {
+	            var processedWords;
+
+	            // Shortcuts
+	            var data = this._data;
+	            var dataWords = data.words;
+	            var dataSigBytes = data.sigBytes;
+	            var blockSize = this.blockSize;
+	            var blockSizeBytes = blockSize * 4;
+
+	            // Count blocks ready
+	            var nBlocksReady = dataSigBytes / blockSizeBytes;
+	            if (doFlush) {
+	                // Round up to include partial blocks
+	                nBlocksReady = Math.ceil(nBlocksReady);
+	            } else {
+	                // Round down to include only full blocks,
+	                // less the number of blocks that must remain in the buffer
+	                nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);
+	            }
+
+	            // Count words ready
+	            var nWordsReady = nBlocksReady * blockSize;
+
+	            // Count bytes ready
+	            var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);
+
+	            // Process blocks
+	            if (nWordsReady) {
+	                for (var offset = 0; offset < nWordsReady; offset += blockSize) {
+	                    // Perform concrete-algorithm logic
+	                    this._doProcessBlock(dataWords, offset);
+	                }
+
+	                // Remove processed words
+	                processedWords = dataWords.splice(0, nWordsReady);
+	                data.sigBytes -= nBytesReady;
+	            }
+
+	            // Return processed words
+	            return new WordArray.init(processedWords, nBytesReady);
+	        },
+
+	        /**
+	         * Creates a copy of this object.
+	         *
+	         * @return {Object} The clone.
+	         *
+	         * @example
+	         *
+	         *     var clone = bufferedBlockAlgorithm.clone();
+	         */
+	        clone: function () {
+	            var clone = Base.clone.call(this);
+	            clone._data = this._data.clone();
+
+	            return clone;
+	        },
+
+	        _minBufferSize: 0
+	    });
+
+	    /**
+	     * Abstract hasher template.
+	     *
+	     * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)
+	     */
+	    var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({
+	        /**
+	         * Configuration options.
+	         */
+	        cfg: Base.extend(),
+
+	        /**
+	         * Initializes a newly created hasher.
+	         *
+	         * @param {Object} cfg (Optional) The configuration options to use for this hash computation.
+	         *
+	         * @example
+	         *
+	         *     var hasher = CryptoJS.algo.SHA256.create();
+	         */
+	        init: function (cfg) {
+	            // Apply config defaults
+	            this.cfg = this.cfg.extend(cfg);
+
+	            // Set initial values
+	            this.reset();
+	        },
+
+	        /**
+	         * Resets this hasher to its initial state.
+	         *
+	         * @example
+	         *
+	         *     hasher.reset();
+	         */
+	        reset: function () {
+	            // Reset data buffer
+	            BufferedBlockAlgorithm.reset.call(this);
+
+	            // Perform concrete-hasher logic
+	            this._doReset();
+	        },
+
+	        /**
+	         * Updates this hasher with a message.
+	         *
+	         * @param {WordArray|string} messageUpdate The message to append.
+	         *
+	         * @return {Hasher} This hasher.
+	         *
+	         * @example
+	         *
+	         *     hasher.update('message');
+	         *     hasher.update(wordArray);
+	         */
+	        update: function (messageUpdate) {
+	            // Append
+	            this._append(messageUpdate);
+
+	            // Update the hash
+	            this._process();
+
+	            // Chainable
+	            return this;
+	        },
+
+	        /**
+	         * Finalizes the hash computation.
+	         * Note that the finalize operation is effectively a destructive, read-once operation.
+	         *
+	         * @param {WordArray|string} messageUpdate (Optional) A final message update.
+	         *
+	         * @return {WordArray} The hash.
+	         *
+	         * @example
+	         *
+	         *     var hash = hasher.finalize();
+	         *     var hash = hasher.finalize('message');
+	         *     var hash = hasher.finalize(wordArray);
+	         */
+	        finalize: function (messageUpdate) {
+	            // Final message update
+	            if (messageUpdate) {
+	                this._append(messageUpdate);
+	            }
+
+	            // Perform concrete-hasher logic
+	            var hash = this._doFinalize();
+
+	            return hash;
+	        },
+
+	        blockSize: 512/32,
+
+	        /**
+	         * Creates a shortcut function to a hasher's object interface.
+	         *
+	         * @param {Hasher} hasher The hasher to create a helper for.
+	         *
+	         * @return {Function} The shortcut function.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);
+	         */
+	        _createHelper: function (hasher) {
+	            return function (message, cfg) {
+	                return new hasher.init(cfg).finalize(message);
+	            };
+	        },
+
+	        /**
+	         * Creates a shortcut function to the HMAC's object interface.
+	         *
+	         * @param {Hasher} hasher The hasher to use in this HMAC helper.
+	         *
+	         * @return {Function} The shortcut function.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);
+	         */
+	        _createHmacHelper: function (hasher) {
+	            return function (message, key) {
+	                return new C_algo.HMAC.init(hasher, key).finalize(message);
+	            };
+	        }
+	    });
+
+	    /**
+	     * Algorithm namespace.
+	     */
+	    var C_algo = C.algo = {};
+
+	    return C;
+	}(Math));
+
+
+	return CryptoJS;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/crypto-js.js b/node_modules/crypto-js/crypto-js.js
new file mode 100644
index 0000000..958ee53
--- /dev/null
+++ b/node_modules/crypto-js/crypto-js.js
@@ -0,0 +1,6657 @@
+;(function (root, factory) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory();
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define([], factory);
+	}
+	else {
+		// Global (browser)
+		root.CryptoJS = factory();
+	}
+}(this, function () {
+
+	/*globals window, global, require*/
+
+	/**
+	 * CryptoJS core components.
+	 */
+	var CryptoJS = CryptoJS || (function (Math, undefined) {
+
+	    var crypto;
+
+	    // Native crypto from window (Browser)
+	    if (typeof window !== 'undefined' && window.crypto) {
+	        crypto = window.crypto;
+	    }
+
+	    // Native crypto in web worker (Browser)
+	    if (typeof self !== 'undefined' && self.crypto) {
+	        crypto = self.crypto;
+	    }
+
+	    // Native crypto from worker
+	    if (typeof globalThis !== 'undefined' && globalThis.crypto) {
+	        crypto = globalThis.crypto;
+	    }
+
+	    // Native (experimental IE 11) crypto from window (Browser)
+	    if (!crypto && typeof window !== 'undefined' && window.msCrypto) {
+	        crypto = window.msCrypto;
+	    }
+
+	    // Native crypto from global (NodeJS)
+	    if (!crypto && typeof global !== 'undefined' && global.crypto) {
+	        crypto = global.crypto;
+	    }
+
+	    // Native crypto import via require (NodeJS)
+	    if (!crypto && typeof require === 'function') {
+	        try {
+	            crypto = require('crypto');
+	        } catch (err) {}
+	    }
+
+	    /*
+	     * Cryptographically secure pseudorandom number generator
+	     *
+	     * As Math.random() is cryptographically not safe to use
+	     */
+	    var cryptoSecureRandomInt = function () {
+	        if (crypto) {
+	            // Use getRandomValues method (Browser)
+	            if (typeof crypto.getRandomValues === 'function') {
+	                try {
+	                    return crypto.getRandomValues(new Uint32Array(1))[0];
+	                } catch (err) {}
+	            }
+
+	            // Use randomBytes method (NodeJS)
+	            if (typeof crypto.randomBytes === 'function') {
+	                try {
+	                    return crypto.randomBytes(4).readInt32LE();
+	                } catch (err) {}
+	            }
+	        }
+
+	        throw new Error('Native crypto module could not be used to get secure random number.');
+	    };
+
+	    /*
+	     * Local polyfill of Object.create
+
+	     */
+	    var create = Object.create || (function () {
+	        function F() {}
+
+	        return function (obj) {
+	            var subtype;
+
+	            F.prototype = obj;
+
+	            subtype = new F();
+
+	            F.prototype = null;
+
+	            return subtype;
+	        };
+	    }());
+
+	    /**
+	     * CryptoJS namespace.
+	     */
+	    var C = {};
+
+	    /**
+	     * Library namespace.
+	     */
+	    var C_lib = C.lib = {};
+
+	    /**
+	     * Base object for prototypal inheritance.
+	     */
+	    var Base = C_lib.Base = (function () {
+
+
+	        return {
+	            /**
+	             * Creates a new object that inherits from this object.
+	             *
+	             * @param {Object} overrides Properties to copy into the new object.
+	             *
+	             * @return {Object} The new object.
+	             *
+	             * @static
+	             *
+	             * @example
+	             *
+	             *     var MyType = CryptoJS.lib.Base.extend({
+	             *         field: 'value',
+	             *
+	             *         method: function () {
+	             *         }
+	             *     });
+	             */
+	            extend: function (overrides) {
+	                // Spawn
+	                var subtype = create(this);
+
+	                // Augment
+	                if (overrides) {
+	                    subtype.mixIn(overrides);
+	                }
+
+	                // Create default initializer
+	                if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {
+	                    subtype.init = function () {
+	                        subtype.$super.init.apply(this, arguments);
+	                    };
+	                }
+
+	                // Initializer's prototype is the subtype object
+	                subtype.init.prototype = subtype;
+
+	                // Reference supertype
+	                subtype.$super = this;
+
+	                return subtype;
+	            },
+
+	            /**
+	             * Extends this object and runs the init method.
+	             * Arguments to create() will be passed to init().
+	             *
+	             * @return {Object} The new object.
+	             *
+	             * @static
+	             *
+	             * @example
+	             *
+	             *     var instance = MyType.create();
+	             */
+	            create: function () {
+	                var instance = this.extend();
+	                instance.init.apply(instance, arguments);
+
+	                return instance;
+	            },
+
+	            /**
+	             * Initializes a newly created object.
+	             * Override this method to add some logic when your objects are created.
+	             *
+	             * @example
+	             *
+	             *     var MyType = CryptoJS.lib.Base.extend({
+	             *         init: function () {
+	             *             // ...
+	             *         }
+	             *     });
+	             */
+	            init: function () {
+	            },
+
+	            /**
+	             * Copies properties into this object.
+	             *
+	             * @param {Object} properties The properties to mix in.
+	             *
+	             * @example
+	             *
+	             *     MyType.mixIn({
+	             *         field: 'value'
+	             *     });
+	             */
+	            mixIn: function (properties) {
+	                for (var propertyName in properties) {
+	                    if (properties.hasOwnProperty(propertyName)) {
+	                        this[propertyName] = properties[propertyName];
+	                    }
+	                }
+
+	                // IE won't copy toString using the loop above
+	                if (properties.hasOwnProperty('toString')) {
+	                    this.toString = properties.toString;
+	                }
+	            },
+
+	            /**
+	             * Creates a copy of this object.
+	             *
+	             * @return {Object} The clone.
+	             *
+	             * @example
+	             *
+	             *     var clone = instance.clone();
+	             */
+	            clone: function () {
+	                return this.init.prototype.extend(this);
+	            }
+	        };
+	    }());
+
+	    /**
+	     * An array of 32-bit words.
+	     *
+	     * @property {Array} words The array of 32-bit words.
+	     * @property {number} sigBytes The number of significant bytes in this word array.
+	     */
+	    var WordArray = C_lib.WordArray = Base.extend({
+	        /**
+	         * Initializes a newly created word array.
+	         *
+	         * @param {Array} words (Optional) An array of 32-bit words.
+	         * @param {number} sigBytes (Optional) The number of significant bytes in the words.
+	         *
+	         * @example
+	         *
+	         *     var wordArray = CryptoJS.lib.WordArray.create();
+	         *     var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);
+	         *     var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);
+	         */
+	        init: function (words, sigBytes) {
+	            words = this.words = words || [];
+
+	            if (sigBytes != undefined) {
+	                this.sigBytes = sigBytes;
+	            } else {
+	                this.sigBytes = words.length * 4;
+	            }
+	        },
+
+	        /**
+	         * Converts this word array to a string.
+	         *
+	         * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex
+	         *
+	         * @return {string} The stringified word array.
+	         *
+	         * @example
+	         *
+	         *     var string = wordArray + '';
+	         *     var string = wordArray.toString();
+	         *     var string = wordArray.toString(CryptoJS.enc.Utf8);
+	         */
+	        toString: function (encoder) {
+	            return (encoder || Hex).stringify(this);
+	        },
+
+	        /**
+	         * Concatenates a word array to this word array.
+	         *
+	         * @param {WordArray} wordArray The word array to append.
+	         *
+	         * @return {WordArray} This word array.
+	         *
+	         * @example
+	         *
+	         *     wordArray1.concat(wordArray2);
+	         */
+	        concat: function (wordArray) {
+	            // Shortcuts
+	            var thisWords = this.words;
+	            var thatWords = wordArray.words;
+	            var thisSigBytes = this.sigBytes;
+	            var thatSigBytes = wordArray.sigBytes;
+
+	            // Clamp excess bits
+	            this.clamp();
+
+	            // Concat
+	            if (thisSigBytes % 4) {
+	                // Copy one byte at a time
+	                for (var i = 0; i < thatSigBytes; i++) {
+	                    var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
+	                    thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);
+	                }
+	            } else {
+	                // Copy one word at a time
+	                for (var j = 0; j < thatSigBytes; j += 4) {
+	                    thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];
+	                }
+	            }
+	            this.sigBytes += thatSigBytes;
+
+	            // Chainable
+	            return this;
+	        },
+
+	        /**
+	         * Removes insignificant bits.
+	         *
+	         * @example
+	         *
+	         *     wordArray.clamp();
+	         */
+	        clamp: function () {
+	            // Shortcuts
+	            var words = this.words;
+	            var sigBytes = this.sigBytes;
+
+	            // Clamp
+	            words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);
+	            words.length = Math.ceil(sigBytes / 4);
+	        },
+
+	        /**
+	         * Creates a copy of this word array.
+	         *
+	         * @return {WordArray} The clone.
+	         *
+	         * @example
+	         *
+	         *     var clone = wordArray.clone();
+	         */
+	        clone: function () {
+	            var clone = Base.clone.call(this);
+	            clone.words = this.words.slice(0);
+
+	            return clone;
+	        },
+
+	        /**
+	         * Creates a word array filled with random bytes.
+	         *
+	         * @param {number} nBytes The number of random bytes to generate.
+	         *
+	         * @return {WordArray} The random word array.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var wordArray = CryptoJS.lib.WordArray.random(16);
+	         */
+	        random: function (nBytes) {
+	            var words = [];
+
+	            for (var i = 0; i < nBytes; i += 4) {
+	                words.push(cryptoSecureRandomInt());
+	            }
+
+	            return new WordArray.init(words, nBytes);
+	        }
+	    });
+
+	    /**
+	     * Encoder namespace.
+	     */
+	    var C_enc = C.enc = {};
+
+	    /**
+	     * Hex encoding strategy.
+	     */
+	    var Hex = C_enc.Hex = {
+	        /**
+	         * Converts a word array to a hex string.
+	         *
+	         * @param {WordArray} wordArray The word array.
+	         *
+	         * @return {string} The hex string.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var hexString = CryptoJS.enc.Hex.stringify(wordArray);
+	         */
+	        stringify: function (wordArray) {
+	            // Shortcuts
+	            var words = wordArray.words;
+	            var sigBytes = wordArray.sigBytes;
+
+	            // Convert
+	            var hexChars = [];
+	            for (var i = 0; i < sigBytes; i++) {
+	                var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
+	                hexChars.push((bite >>> 4).toString(16));
+	                hexChars.push((bite & 0x0f).toString(16));
+	            }
+
+	            return hexChars.join('');
+	        },
+
+	        /**
+	         * Converts a hex string to a word array.
+	         *
+	         * @param {string} hexStr The hex string.
+	         *
+	         * @return {WordArray} The word array.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var wordArray = CryptoJS.enc.Hex.parse(hexString);
+	         */
+	        parse: function (hexStr) {
+	            // Shortcut
+	            var hexStrLength = hexStr.length;
+
+	            // Convert
+	            var words = [];
+	            for (var i = 0; i < hexStrLength; i += 2) {
+	                words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);
+	            }
+
+	            return new WordArray.init(words, hexStrLength / 2);
+	        }
+	    };
+
+	    /**
+	     * Latin1 encoding strategy.
+	     */
+	    var Latin1 = C_enc.Latin1 = {
+	        /**
+	         * Converts a word array to a Latin1 string.
+	         *
+	         * @param {WordArray} wordArray The word array.
+	         *
+	         * @return {string} The Latin1 string.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);
+	         */
+	        stringify: function (wordArray) {
+	            // Shortcuts
+	            var words = wordArray.words;
+	            var sigBytes = wordArray.sigBytes;
+
+	            // Convert
+	            var latin1Chars = [];
+	            for (var i = 0; i < sigBytes; i++) {
+	                var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
+	                latin1Chars.push(String.fromCharCode(bite));
+	            }
+
+	            return latin1Chars.join('');
+	        },
+
+	        /**
+	         * Converts a Latin1 string to a word array.
+	         *
+	         * @param {string} latin1Str The Latin1 string.
+	         *
+	         * @return {WordArray} The word array.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var wordArray = CryptoJS.enc.Latin1.parse(latin1String);
+	         */
+	        parse: function (latin1Str) {
+	            // Shortcut
+	            var latin1StrLength = latin1Str.length;
+
+	            // Convert
+	            var words = [];
+	            for (var i = 0; i < latin1StrLength; i++) {
+	                words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);
+	            }
+
+	            return new WordArray.init(words, latin1StrLength);
+	        }
+	    };
+
+	    /**
+	     * UTF-8 encoding strategy.
+	     */
+	    var Utf8 = C_enc.Utf8 = {
+	        /**
+	         * Converts a word array to a UTF-8 string.
+	         *
+	         * @param {WordArray} wordArray The word array.
+	         *
+	         * @return {string} The UTF-8 string.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);
+	         */
+	        stringify: function (wordArray) {
+	            try {
+	                return decodeURIComponent(escape(Latin1.stringify(wordArray)));
+	            } catch (e) {
+	                throw new Error('Malformed UTF-8 data');
+	            }
+	        },
+
+	        /**
+	         * Converts a UTF-8 string to a word array.
+	         *
+	         * @param {string} utf8Str The UTF-8 string.
+	         *
+	         * @return {WordArray} The word array.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var wordArray = CryptoJS.enc.Utf8.parse(utf8String);
+	         */
+	        parse: function (utf8Str) {
+	            return Latin1.parse(unescape(encodeURIComponent(utf8Str)));
+	        }
+	    };
+
+	    /**
+	     * Abstract buffered block algorithm template.
+	     *
+	     * The property blockSize must be implemented in a concrete subtype.
+	     *
+	     * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0
+	     */
+	    var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({
+	        /**
+	         * Resets this block algorithm's data buffer to its initial state.
+	         *
+	         * @example
+	         *
+	         *     bufferedBlockAlgorithm.reset();
+	         */
+	        reset: function () {
+	            // Initial values
+	            this._data = new WordArray.init();
+	            this._nDataBytes = 0;
+	        },
+
+	        /**
+	         * Adds new data to this block algorithm's buffer.
+	         *
+	         * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.
+	         *
+	         * @example
+	         *
+	         *     bufferedBlockAlgorithm._append('data');
+	         *     bufferedBlockAlgorithm._append(wordArray);
+	         */
+	        _append: function (data) {
+	            // Convert string to WordArray, else assume WordArray already
+	            if (typeof data == 'string') {
+	                data = Utf8.parse(data);
+	            }
+
+	            // Append
+	            this._data.concat(data);
+	            this._nDataBytes += data.sigBytes;
+	        },
+
+	        /**
+	         * Processes available data blocks.
+	         *
+	         * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.
+	         *
+	         * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.
+	         *
+	         * @return {WordArray} The processed data.
+	         *
+	         * @example
+	         *
+	         *     var processedData = bufferedBlockAlgorithm._process();
+	         *     var processedData = bufferedBlockAlgorithm._process(!!'flush');
+	         */
+	        _process: function (doFlush) {
+	            var processedWords;
+
+	            // Shortcuts
+	            var data = this._data;
+	            var dataWords = data.words;
+	            var dataSigBytes = data.sigBytes;
+	            var blockSize = this.blockSize;
+	            var blockSizeBytes = blockSize * 4;
+
+	            // Count blocks ready
+	            var nBlocksReady = dataSigBytes / blockSizeBytes;
+	            if (doFlush) {
+	                // Round up to include partial blocks
+	                nBlocksReady = Math.ceil(nBlocksReady);
+	            } else {
+	                // Round down to include only full blocks,
+	                // less the number of blocks that must remain in the buffer
+	                nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);
+	            }
+
+	            // Count words ready
+	            var nWordsReady = nBlocksReady * blockSize;
+
+	            // Count bytes ready
+	            var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);
+
+	            // Process blocks
+	            if (nWordsReady) {
+	                for (var offset = 0; offset < nWordsReady; offset += blockSize) {
+	                    // Perform concrete-algorithm logic
+	                    this._doProcessBlock(dataWords, offset);
+	                }
+
+	                // Remove processed words
+	                processedWords = dataWords.splice(0, nWordsReady);
+	                data.sigBytes -= nBytesReady;
+	            }
+
+	            // Return processed words
+	            return new WordArray.init(processedWords, nBytesReady);
+	        },
+
+	        /**
+	         * Creates a copy of this object.
+	         *
+	         * @return {Object} The clone.
+	         *
+	         * @example
+	         *
+	         *     var clone = bufferedBlockAlgorithm.clone();
+	         */
+	        clone: function () {
+	            var clone = Base.clone.call(this);
+	            clone._data = this._data.clone();
+
+	            return clone;
+	        },
+
+	        _minBufferSize: 0
+	    });
+
+	    /**
+	     * Abstract hasher template.
+	     *
+	     * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)
+	     */
+	    var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({
+	        /**
+	         * Configuration options.
+	         */
+	        cfg: Base.extend(),
+
+	        /**
+	         * Initializes a newly created hasher.
+	         *
+	         * @param {Object} cfg (Optional) The configuration options to use for this hash computation.
+	         *
+	         * @example
+	         *
+	         *     var hasher = CryptoJS.algo.SHA256.create();
+	         */
+	        init: function (cfg) {
+	            // Apply config defaults
+	            this.cfg = this.cfg.extend(cfg);
+
+	            // Set initial values
+	            this.reset();
+	        },
+
+	        /**
+	         * Resets this hasher to its initial state.
+	         *
+	         * @example
+	         *
+	         *     hasher.reset();
+	         */
+	        reset: function () {
+	            // Reset data buffer
+	            BufferedBlockAlgorithm.reset.call(this);
+
+	            // Perform concrete-hasher logic
+	            this._doReset();
+	        },
+
+	        /**
+	         * Updates this hasher with a message.
+	         *
+	         * @param {WordArray|string} messageUpdate The message to append.
+	         *
+	         * @return {Hasher} This hasher.
+	         *
+	         * @example
+	         *
+	         *     hasher.update('message');
+	         *     hasher.update(wordArray);
+	         */
+	        update: function (messageUpdate) {
+	            // Append
+	            this._append(messageUpdate);
+
+	            // Update the hash
+	            this._process();
+
+	            // Chainable
+	            return this;
+	        },
+
+	        /**
+	         * Finalizes the hash computation.
+	         * Note that the finalize operation is effectively a destructive, read-once operation.
+	         *
+	         * @param {WordArray|string} messageUpdate (Optional) A final message update.
+	         *
+	         * @return {WordArray} The hash.
+	         *
+	         * @example
+	         *
+	         *     var hash = hasher.finalize();
+	         *     var hash = hasher.finalize('message');
+	         *     var hash = hasher.finalize(wordArray);
+	         */
+	        finalize: function (messageUpdate) {
+	            // Final message update
+	            if (messageUpdate) {
+	                this._append(messageUpdate);
+	            }
+
+	            // Perform concrete-hasher logic
+	            var hash = this._doFinalize();
+
+	            return hash;
+	        },
+
+	        blockSize: 512/32,
+
+	        /**
+	         * Creates a shortcut function to a hasher's object interface.
+	         *
+	         * @param {Hasher} hasher The hasher to create a helper for.
+	         *
+	         * @return {Function} The shortcut function.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);
+	         */
+	        _createHelper: function (hasher) {
+	            return function (message, cfg) {
+	                return new hasher.init(cfg).finalize(message);
+	            };
+	        },
+
+	        /**
+	         * Creates a shortcut function to the HMAC's object interface.
+	         *
+	         * @param {Hasher} hasher The hasher to use in this HMAC helper.
+	         *
+	         * @return {Function} The shortcut function.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);
+	         */
+	        _createHmacHelper: function (hasher) {
+	            return function (message, key) {
+	                return new C_algo.HMAC.init(hasher, key).finalize(message);
+	            };
+	        }
+	    });
+
+	    /**
+	     * Algorithm namespace.
+	     */
+	    var C_algo = C.algo = {};
+
+	    return C;
+	}(Math));
+
+
+	(function (undefined) {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var Base = C_lib.Base;
+	    var X32WordArray = C_lib.WordArray;
+
+	    /**
+	     * x64 namespace.
+	     */
+	    var C_x64 = C.x64 = {};
+
+	    /**
+	     * A 64-bit word.
+	     */
+	    var X64Word = C_x64.Word = Base.extend({
+	        /**
+	         * Initializes a newly created 64-bit word.
+	         *
+	         * @param {number} high The high 32 bits.
+	         * @param {number} low The low 32 bits.
+	         *
+	         * @example
+	         *
+	         *     var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607);
+	         */
+	        init: function (high, low) {
+	            this.high = high;
+	            this.low = low;
+	        }
+
+	        /**
+	         * Bitwise NOTs this word.
+	         *
+	         * @return {X64Word} A new x64-Word object after negating.
+	         *
+	         * @example
+	         *
+	         *     var negated = x64Word.not();
+	         */
+	        // not: function () {
+	            // var high = ~this.high;
+	            // var low = ~this.low;
+
+	            // return X64Word.create(high, low);
+	        // },
+
+	        /**
+	         * Bitwise ANDs this word with the passed word.
+	         *
+	         * @param {X64Word} word The x64-Word to AND with this word.
+	         *
+	         * @return {X64Word} A new x64-Word object after ANDing.
+	         *
+	         * @example
+	         *
+	         *     var anded = x64Word.and(anotherX64Word);
+	         */
+	        // and: function (word) {
+	            // var high = this.high & word.high;
+	            // var low = this.low & word.low;
+
+	            // return X64Word.create(high, low);
+	        // },
+
+	        /**
+	         * Bitwise ORs this word with the passed word.
+	         *
+	         * @param {X64Word} word The x64-Word to OR with this word.
+	         *
+	         * @return {X64Word} A new x64-Word object after ORing.
+	         *
+	         * @example
+	         *
+	         *     var ored = x64Word.or(anotherX64Word);
+	         */
+	        // or: function (word) {
+	            // var high = this.high | word.high;
+	            // var low = this.low | word.low;
+
+	            // return X64Word.create(high, low);
+	        // },
+
+	        /**
+	         * Bitwise XORs this word with the passed word.
+	         *
+	         * @param {X64Word} word The x64-Word to XOR with this word.
+	         *
+	         * @return {X64Word} A new x64-Word object after XORing.
+	         *
+	         * @example
+	         *
+	         *     var xored = x64Word.xor(anotherX64Word);
+	         */
+	        // xor: function (word) {
+	            // var high = this.high ^ word.high;
+	            // var low = this.low ^ word.low;
+
+	            // return X64Word.create(high, low);
+	        // },
+
+	        /**
+	         * Shifts this word n bits to the left.
+	         *
+	         * @param {number} n The number of bits to shift.
+	         *
+	         * @return {X64Word} A new x64-Word object after shifting.
+	         *
+	         * @example
+	         *
+	         *     var shifted = x64Word.shiftL(25);
+	         */
+	        // shiftL: function (n) {
+	            // if (n < 32) {
+	                // var high = (this.high << n) | (this.low >>> (32 - n));
+	                // var low = this.low << n;
+	            // } else {
+	                // var high = this.low << (n - 32);
+	                // var low = 0;
+	            // }
+
+	            // return X64Word.create(high, low);
+	        // },
+
+	        /**
+	         * Shifts this word n bits to the right.
+	         *
+	         * @param {number} n The number of bits to shift.
+	         *
+	         * @return {X64Word} A new x64-Word object after shifting.
+	         *
+	         * @example
+	         *
+	         *     var shifted = x64Word.shiftR(7);
+	         */
+	        // shiftR: function (n) {
+	            // if (n < 32) {
+	                // var low = (this.low >>> n) | (this.high << (32 - n));
+	                // var high = this.high >>> n;
+	            // } else {
+	                // var low = this.high >>> (n - 32);
+	                // var high = 0;
+	            // }
+
+	            // return X64Word.create(high, low);
+	        // },
+
+	        /**
+	         * Rotates this word n bits to the left.
+	         *
+	         * @param {number} n The number of bits to rotate.
+	         *
+	         * @return {X64Word} A new x64-Word object after rotating.
+	         *
+	         * @example
+	         *
+	         *     var rotated = x64Word.rotL(25);
+	         */
+	        // rotL: function (n) {
+	            // return this.shiftL(n).or(this.shiftR(64 - n));
+	        // },
+
+	        /**
+	         * Rotates this word n bits to the right.
+	         *
+	         * @param {number} n The number of bits to rotate.
+	         *
+	         * @return {X64Word} A new x64-Word object after rotating.
+	         *
+	         * @example
+	         *
+	         *     var rotated = x64Word.rotR(7);
+	         */
+	        // rotR: function (n) {
+	            // return this.shiftR(n).or(this.shiftL(64 - n));
+	        // },
+
+	        /**
+	         * Adds this word with the passed word.
+	         *
+	         * @param {X64Word} word The x64-Word to add with this word.
+	         *
+	         * @return {X64Word} A new x64-Word object after adding.
+	         *
+	         * @example
+	         *
+	         *     var added = x64Word.add(anotherX64Word);
+	         */
+	        // add: function (word) {
+	            // var low = (this.low + word.low) | 0;
+	            // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0;
+	            // var high = (this.high + word.high + carry) | 0;
+
+	            // return X64Word.create(high, low);
+	        // }
+	    });
+
+	    /**
+	     * An array of 64-bit words.
+	     *
+	     * @property {Array} words The array of CryptoJS.x64.Word objects.
+	     * @property {number} sigBytes The number of significant bytes in this word array.
+	     */
+	    var X64WordArray = C_x64.WordArray = Base.extend({
+	        /**
+	         * Initializes a newly created word array.
+	         *
+	         * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects.
+	         * @param {number} sigBytes (Optional) The number of significant bytes in the words.
+	         *
+	         * @example
+	         *
+	         *     var wordArray = CryptoJS.x64.WordArray.create();
+	         *
+	         *     var wordArray = CryptoJS.x64.WordArray.create([
+	         *         CryptoJS.x64.Word.create(0x00010203, 0x04050607),
+	         *         CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)
+	         *     ]);
+	         *
+	         *     var wordArray = CryptoJS.x64.WordArray.create([
+	         *         CryptoJS.x64.Word.create(0x00010203, 0x04050607),
+	         *         CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)
+	         *     ], 10);
+	         */
+	        init: function (words, sigBytes) {
+	            words = this.words = words || [];
+
+	            if (sigBytes != undefined) {
+	                this.sigBytes = sigBytes;
+	            } else {
+	                this.sigBytes = words.length * 8;
+	            }
+	        },
+
+	        /**
+	         * Converts this 64-bit word array to a 32-bit word array.
+	         *
+	         * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array.
+	         *
+	         * @example
+	         *
+	         *     var x32WordArray = x64WordArray.toX32();
+	         */
+	        toX32: function () {
+	            // Shortcuts
+	            var x64Words = this.words;
+	            var x64WordsLength = x64Words.length;
+
+	            // Convert
+	            var x32Words = [];
+	            for (var i = 0; i < x64WordsLength; i++) {
+	                var x64Word = x64Words[i];
+	                x32Words.push(x64Word.high);
+	                x32Words.push(x64Word.low);
+	            }
+
+	            return X32WordArray.create(x32Words, this.sigBytes);
+	        },
+
+	        /**
+	         * Creates a copy of this word array.
+	         *
+	         * @return {X64WordArray} The clone.
+	         *
+	         * @example
+	         *
+	         *     var clone = x64WordArray.clone();
+	         */
+	        clone: function () {
+	            var clone = Base.clone.call(this);
+
+	            // Clone "words" array
+	            var words = clone.words = this.words.slice(0);
+
+	            // Clone each X64Word object
+	            var wordsLength = words.length;
+	            for (var i = 0; i < wordsLength; i++) {
+	                words[i] = words[i].clone();
+	            }
+
+	            return clone;
+	        }
+	    });
+	}());
+
+
+	(function () {
+	    // Check if typed arrays are supported
+	    if (typeof ArrayBuffer != 'function') {
+	        return;
+	    }
+
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var WordArray = C_lib.WordArray;
+
+	    // Reference original init
+	    var superInit = WordArray.init;
+
+	    // Augment WordArray.init to handle typed arrays
+	    var subInit = WordArray.init = function (typedArray) {
+	        // Convert buffers to uint8
+	        if (typedArray instanceof ArrayBuffer) {
+	            typedArray = new Uint8Array(typedArray);
+	        }
+
+	        // Convert other array views to uint8
+	        if (
+	            typedArray instanceof Int8Array ||
+	            (typeof Uint8ClampedArray !== "undefined" && typedArray instanceof Uint8ClampedArray) ||
+	            typedArray instanceof Int16Array ||
+	            typedArray instanceof Uint16Array ||
+	            typedArray instanceof Int32Array ||
+	            typedArray instanceof Uint32Array ||
+	            typedArray instanceof Float32Array ||
+	            typedArray instanceof Float64Array
+	        ) {
+	            typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);
+	        }
+
+	        // Handle Uint8Array
+	        if (typedArray instanceof Uint8Array) {
+	            // Shortcut
+	            var typedArrayByteLength = typedArray.byteLength;
+
+	            // Extract bytes
+	            var words = [];
+	            for (var i = 0; i < typedArrayByteLength; i++) {
+	                words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8);
+	            }
+
+	            // Initialize this word array
+	            superInit.call(this, words, typedArrayByteLength);
+	        } else {
+	            // Else call normal init
+	            superInit.apply(this, arguments);
+	        }
+	    };
+
+	    subInit.prototype = WordArray;
+	}());
+
+
+	(function () {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var WordArray = C_lib.WordArray;
+	    var C_enc = C.enc;
+
+	    /**
+	     * UTF-16 BE encoding strategy.
+	     */
+	    var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = {
+	        /**
+	         * Converts a word array to a UTF-16 BE string.
+	         *
+	         * @param {WordArray} wordArray The word array.
+	         *
+	         * @return {string} The UTF-16 BE string.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var utf16String = CryptoJS.enc.Utf16.stringify(wordArray);
+	         */
+	        stringify: function (wordArray) {
+	            // Shortcuts
+	            var words = wordArray.words;
+	            var sigBytes = wordArray.sigBytes;
+
+	            // Convert
+	            var utf16Chars = [];
+	            for (var i = 0; i < sigBytes; i += 2) {
+	                var codePoint = (words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff;
+	                utf16Chars.push(String.fromCharCode(codePoint));
+	            }
+
+	            return utf16Chars.join('');
+	        },
+
+	        /**
+	         * Converts a UTF-16 BE string to a word array.
+	         *
+	         * @param {string} utf16Str The UTF-16 BE string.
+	         *
+	         * @return {WordArray} The word array.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var wordArray = CryptoJS.enc.Utf16.parse(utf16String);
+	         */
+	        parse: function (utf16Str) {
+	            // Shortcut
+	            var utf16StrLength = utf16Str.length;
+
+	            // Convert
+	            var words = [];
+	            for (var i = 0; i < utf16StrLength; i++) {
+	                words[i >>> 1] |= utf16Str.charCodeAt(i) << (16 - (i % 2) * 16);
+	            }
+
+	            return WordArray.create(words, utf16StrLength * 2);
+	        }
+	    };
+
+	    /**
+	     * UTF-16 LE encoding strategy.
+	     */
+	    C_enc.Utf16LE = {
+	        /**
+	         * Converts a word array to a UTF-16 LE string.
+	         *
+	         * @param {WordArray} wordArray The word array.
+	         *
+	         * @return {string} The UTF-16 LE string.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray);
+	         */
+	        stringify: function (wordArray) {
+	            // Shortcuts
+	            var words = wordArray.words;
+	            var sigBytes = wordArray.sigBytes;
+
+	            // Convert
+	            var utf16Chars = [];
+	            for (var i = 0; i < sigBytes; i += 2) {
+	                var codePoint = swapEndian((words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff);
+	                utf16Chars.push(String.fromCharCode(codePoint));
+	            }
+
+	            return utf16Chars.join('');
+	        },
+
+	        /**
+	         * Converts a UTF-16 LE string to a word array.
+	         *
+	         * @param {string} utf16Str The UTF-16 LE string.
+	         *
+	         * @return {WordArray} The word array.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str);
+	         */
+	        parse: function (utf16Str) {
+	            // Shortcut
+	            var utf16StrLength = utf16Str.length;
+
+	            // Convert
+	            var words = [];
+	            for (var i = 0; i < utf16StrLength; i++) {
+	                words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << (16 - (i % 2) * 16));
+	            }
+
+	            return WordArray.create(words, utf16StrLength * 2);
+	        }
+	    };
+
+	    function swapEndian(word) {
+	        return ((word << 8) & 0xff00ff00) | ((word >>> 8) & 0x00ff00ff);
+	    }
+	}());
+
+
+	(function () {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var WordArray = C_lib.WordArray;
+	    var C_enc = C.enc;
+
+	    /**
+	     * Base64 encoding strategy.
+	     */
+	    var Base64 = C_enc.Base64 = {
+	        /**
+	         * Converts a word array to a Base64 string.
+	         *
+	         * @param {WordArray} wordArray The word array.
+	         *
+	         * @return {string} The Base64 string.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var base64String = CryptoJS.enc.Base64.stringify(wordArray);
+	         */
+	        stringify: function (wordArray) {
+	            // Shortcuts
+	            var words = wordArray.words;
+	            var sigBytes = wordArray.sigBytes;
+	            var map = this._map;
+
+	            // Clamp excess bits
+	            wordArray.clamp();
+
+	            // Convert
+	            var base64Chars = [];
+	            for (var i = 0; i < sigBytes; i += 3) {
+	                var byte1 = (words[i >>> 2]       >>> (24 - (i % 4) * 8))       & 0xff;
+	                var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;
+	                var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;
+
+	                var triplet = (byte1 << 16) | (byte2 << 8) | byte3;
+
+	                for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {
+	                    base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));
+	                }
+	            }
+
+	            // Add padding
+	            var paddingChar = map.charAt(64);
+	            if (paddingChar) {
+	                while (base64Chars.length % 4) {
+	                    base64Chars.push(paddingChar);
+	                }
+	            }
+
+	            return base64Chars.join('');
+	        },
+
+	        /**
+	         * Converts a Base64 string to a word array.
+	         *
+	         * @param {string} base64Str The Base64 string.
+	         *
+	         * @return {WordArray} The word array.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var wordArray = CryptoJS.enc.Base64.parse(base64String);
+	         */
+	        parse: function (base64Str) {
+	            // Shortcuts
+	            var base64StrLength = base64Str.length;
+	            var map = this._map;
+	            var reverseMap = this._reverseMap;
+
+	            if (!reverseMap) {
+	                    reverseMap = this._reverseMap = [];
+	                    for (var j = 0; j < map.length; j++) {
+	                        reverseMap[map.charCodeAt(j)] = j;
+	                    }
+	            }
+
+	            // Ignore padding
+	            var paddingChar = map.charAt(64);
+	            if (paddingChar) {
+	                var paddingIndex = base64Str.indexOf(paddingChar);
+	                if (paddingIndex !== -1) {
+	                    base64StrLength = paddingIndex;
+	                }
+	            }
+
+	            // Convert
+	            return parseLoop(base64Str, base64StrLength, reverseMap);
+
+	        },
+
+	        _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='
+	    };
+
+	    function parseLoop(base64Str, base64StrLength, reverseMap) {
+	      var words = [];
+	      var nBytes = 0;
+	      for (var i = 0; i < base64StrLength; i++) {
+	          if (i % 4) {
+	              var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);
+	              var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);
+	              var bitsCombined = bits1 | bits2;
+	              words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);
+	              nBytes++;
+	          }
+	      }
+	      return WordArray.create(words, nBytes);
+	    }
+	}());
+
+
+	(function () {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var WordArray = C_lib.WordArray;
+	    var C_enc = C.enc;
+
+	    /**
+	     * Base64url encoding strategy.
+	     */
+	    var Base64url = C_enc.Base64url = {
+	        /**
+	         * Converts a word array to a Base64url string.
+	         *
+	         * @param {WordArray} wordArray The word array.
+	         *
+	         * @param {boolean} urlSafe Whether to use url safe
+	         *
+	         * @return {string} The Base64url string.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var base64String = CryptoJS.enc.Base64url.stringify(wordArray);
+	         */
+	        stringify: function (wordArray, urlSafe) {
+	            if (urlSafe === undefined) {
+	                urlSafe = true
+	            }
+	            // Shortcuts
+	            var words = wordArray.words;
+	            var sigBytes = wordArray.sigBytes;
+	            var map = urlSafe ? this._safe_map : this._map;
+
+	            // Clamp excess bits
+	            wordArray.clamp();
+
+	            // Convert
+	            var base64Chars = [];
+	            for (var i = 0; i < sigBytes; i += 3) {
+	                var byte1 = (words[i >>> 2]       >>> (24 - (i % 4) * 8))       & 0xff;
+	                var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;
+	                var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;
+
+	                var triplet = (byte1 << 16) | (byte2 << 8) | byte3;
+
+	                for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {
+	                    base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));
+	                }
+	            }
+
+	            // Add padding
+	            var paddingChar = map.charAt(64);
+	            if (paddingChar) {
+	                while (base64Chars.length % 4) {
+	                    base64Chars.push(paddingChar);
+	                }
+	            }
+
+	            return base64Chars.join('');
+	        },
+
+	        /**
+	         * Converts a Base64url string to a word array.
+	         *
+	         * @param {string} base64Str The Base64url string.
+	         *
+	         * @param {boolean} urlSafe Whether to use url safe
+	         *
+	         * @return {WordArray} The word array.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var wordArray = CryptoJS.enc.Base64url.parse(base64String);
+	         */
+	        parse: function (base64Str, urlSafe) {
+	            if (urlSafe === undefined) {
+	                urlSafe = true
+	            }
+
+	            // Shortcuts
+	            var base64StrLength = base64Str.length;
+	            var map = urlSafe ? this._safe_map : this._map;
+	            var reverseMap = this._reverseMap;
+
+	            if (!reverseMap) {
+	                reverseMap = this._reverseMap = [];
+	                for (var j = 0; j < map.length; j++) {
+	                    reverseMap[map.charCodeAt(j)] = j;
+	                }
+	            }
+
+	            // Ignore padding
+	            var paddingChar = map.charAt(64);
+	            if (paddingChar) {
+	                var paddingIndex = base64Str.indexOf(paddingChar);
+	                if (paddingIndex !== -1) {
+	                    base64StrLength = paddingIndex;
+	                }
+	            }
+
+	            // Convert
+	            return parseLoop(base64Str, base64StrLength, reverseMap);
+
+	        },
+
+	        _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',
+	        _safe_map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',
+	    };
+
+	    function parseLoop(base64Str, base64StrLength, reverseMap) {
+	        var words = [];
+	        var nBytes = 0;
+	        for (var i = 0; i < base64StrLength; i++) {
+	            if (i % 4) {
+	                var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);
+	                var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);
+	                var bitsCombined = bits1 | bits2;
+	                words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);
+	                nBytes++;
+	            }
+	        }
+	        return WordArray.create(words, nBytes);
+	    }
+	}());
+
+
+	(function (Math) {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var WordArray = C_lib.WordArray;
+	    var Hasher = C_lib.Hasher;
+	    var C_algo = C.algo;
+
+	    // Constants table
+	    var T = [];
+
+	    // Compute constants
+	    (function () {
+	        for (var i = 0; i < 64; i++) {
+	            T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;
+	        }
+	    }());
+
+	    /**
+	     * MD5 hash algorithm.
+	     */
+	    var MD5 = C_algo.MD5 = Hasher.extend({
+	        _doReset: function () {
+	            this._hash = new WordArray.init([
+	                0x67452301, 0xefcdab89,
+	                0x98badcfe, 0x10325476
+	            ]);
+	        },
+
+	        _doProcessBlock: function (M, offset) {
+	            // Swap endian
+	            for (var i = 0; i < 16; i++) {
+	                // Shortcuts
+	                var offset_i = offset + i;
+	                var M_offset_i = M[offset_i];
+
+	                M[offset_i] = (
+	                    (((M_offset_i << 8)  | (M_offset_i >>> 24)) & 0x00ff00ff) |
+	                    (((M_offset_i << 24) | (M_offset_i >>> 8))  & 0xff00ff00)
+	                );
+	            }
+
+	            // Shortcuts
+	            var H = this._hash.words;
+
+	            var M_offset_0  = M[offset + 0];
+	            var M_offset_1  = M[offset + 1];
+	            var M_offset_2  = M[offset + 2];
+	            var M_offset_3  = M[offset + 3];
+	            var M_offset_4  = M[offset + 4];
+	            var M_offset_5  = M[offset + 5];
+	            var M_offset_6  = M[offset + 6];
+	            var M_offset_7  = M[offset + 7];
+	            var M_offset_8  = M[offset + 8];
+	            var M_offset_9  = M[offset + 9];
+	            var M_offset_10 = M[offset + 10];
+	            var M_offset_11 = M[offset + 11];
+	            var M_offset_12 = M[offset + 12];
+	            var M_offset_13 = M[offset + 13];
+	            var M_offset_14 = M[offset + 14];
+	            var M_offset_15 = M[offset + 15];
+
+	            // Working variables
+	            var a = H[0];
+	            var b = H[1];
+	            var c = H[2];
+	            var d = H[3];
+
+	            // Computation
+	            a = FF(a, b, c, d, M_offset_0,  7,  T[0]);
+	            d = FF(d, a, b, c, M_offset_1,  12, T[1]);
+	            c = FF(c, d, a, b, M_offset_2,  17, T[2]);
+	            b = FF(b, c, d, a, M_offset_3,  22, T[3]);
+	            a = FF(a, b, c, d, M_offset_4,  7,  T[4]);
+	            d = FF(d, a, b, c, M_offset_5,  12, T[5]);
+	            c = FF(c, d, a, b, M_offset_6,  17, T[6]);
+	            b = FF(b, c, d, a, M_offset_7,  22, T[7]);
+	            a = FF(a, b, c, d, M_offset_8,  7,  T[8]);
+	            d = FF(d, a, b, c, M_offset_9,  12, T[9]);
+	            c = FF(c, d, a, b, M_offset_10, 17, T[10]);
+	            b = FF(b, c, d, a, M_offset_11, 22, T[11]);
+	            a = FF(a, b, c, d, M_offset_12, 7,  T[12]);
+	            d = FF(d, a, b, c, M_offset_13, 12, T[13]);
+	            c = FF(c, d, a, b, M_offset_14, 17, T[14]);
+	            b = FF(b, c, d, a, M_offset_15, 22, T[15]);
+
+	            a = GG(a, b, c, d, M_offset_1,  5,  T[16]);
+	            d = GG(d, a, b, c, M_offset_6,  9,  T[17]);
+	            c = GG(c, d, a, b, M_offset_11, 14, T[18]);
+	            b = GG(b, c, d, a, M_offset_0,  20, T[19]);
+	            a = GG(a, b, c, d, M_offset_5,  5,  T[20]);
+	            d = GG(d, a, b, c, M_offset_10, 9,  T[21]);
+	            c = GG(c, d, a, b, M_offset_15, 14, T[22]);
+	            b = GG(b, c, d, a, M_offset_4,  20, T[23]);
+	            a = GG(a, b, c, d, M_offset_9,  5,  T[24]);
+	            d = GG(d, a, b, c, M_offset_14, 9,  T[25]);
+	            c = GG(c, d, a, b, M_offset_3,  14, T[26]);
+	            b = GG(b, c, d, a, M_offset_8,  20, T[27]);
+	            a = GG(a, b, c, d, M_offset_13, 5,  T[28]);
+	            d = GG(d, a, b, c, M_offset_2,  9,  T[29]);
+	            c = GG(c, d, a, b, M_offset_7,  14, T[30]);
+	            b = GG(b, c, d, a, M_offset_12, 20, T[31]);
+
+	            a = HH(a, b, c, d, M_offset_5,  4,  T[32]);
+	            d = HH(d, a, b, c, M_offset_8,  11, T[33]);
+	            c = HH(c, d, a, b, M_offset_11, 16, T[34]);
+	            b = HH(b, c, d, a, M_offset_14, 23, T[35]);
+	            a = HH(a, b, c, d, M_offset_1,  4,  T[36]);
+	            d = HH(d, a, b, c, M_offset_4,  11, T[37]);
+	            c = HH(c, d, a, b, M_offset_7,  16, T[38]);
+	            b = HH(b, c, d, a, M_offset_10, 23, T[39]);
+	            a = HH(a, b, c, d, M_offset_13, 4,  T[40]);
+	            d = HH(d, a, b, c, M_offset_0,  11, T[41]);
+	            c = HH(c, d, a, b, M_offset_3,  16, T[42]);
+	            b = HH(b, c, d, a, M_offset_6,  23, T[43]);
+	            a = HH(a, b, c, d, M_offset_9,  4,  T[44]);
+	            d = HH(d, a, b, c, M_offset_12, 11, T[45]);
+	            c = HH(c, d, a, b, M_offset_15, 16, T[46]);
+	            b = HH(b, c, d, a, M_offset_2,  23, T[47]);
+
+	            a = II(a, b, c, d, M_offset_0,  6,  T[48]);
+	            d = II(d, a, b, c, M_offset_7,  10, T[49]);
+	            c = II(c, d, a, b, M_offset_14, 15, T[50]);
+	            b = II(b, c, d, a, M_offset_5,  21, T[51]);
+	            a = II(a, b, c, d, M_offset_12, 6,  T[52]);
+	            d = II(d, a, b, c, M_offset_3,  10, T[53]);
+	            c = II(c, d, a, b, M_offset_10, 15, T[54]);
+	            b = II(b, c, d, a, M_offset_1,  21, T[55]);
+	            a = II(a, b, c, d, M_offset_8,  6,  T[56]);
+	            d = II(d, a, b, c, M_offset_15, 10, T[57]);
+	            c = II(c, d, a, b, M_offset_6,  15, T[58]);
+	            b = II(b, c, d, a, M_offset_13, 21, T[59]);
+	            a = II(a, b, c, d, M_offset_4,  6,  T[60]);
+	            d = II(d, a, b, c, M_offset_11, 10, T[61]);
+	            c = II(c, d, a, b, M_offset_2,  15, T[62]);
+	            b = II(b, c, d, a, M_offset_9,  21, T[63]);
+
+	            // Intermediate hash value
+	            H[0] = (H[0] + a) | 0;
+	            H[1] = (H[1] + b) | 0;
+	            H[2] = (H[2] + c) | 0;
+	            H[3] = (H[3] + d) | 0;
+	        },
+
+	        _doFinalize: function () {
+	            // Shortcuts
+	            var data = this._data;
+	            var dataWords = data.words;
+
+	            var nBitsTotal = this._nDataBytes * 8;
+	            var nBitsLeft = data.sigBytes * 8;
+
+	            // Add padding
+	            dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
+
+	            var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);
+	            var nBitsTotalL = nBitsTotal;
+	            dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = (
+	                (((nBitsTotalH << 8)  | (nBitsTotalH >>> 24)) & 0x00ff00ff) |
+	                (((nBitsTotalH << 24) | (nBitsTotalH >>> 8))  & 0xff00ff00)
+	            );
+	            dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (
+	                (((nBitsTotalL << 8)  | (nBitsTotalL >>> 24)) & 0x00ff00ff) |
+	                (((nBitsTotalL << 24) | (nBitsTotalL >>> 8))  & 0xff00ff00)
+	            );
+
+	            data.sigBytes = (dataWords.length + 1) * 4;
+
+	            // Hash final blocks
+	            this._process();
+
+	            // Shortcuts
+	            var hash = this._hash;
+	            var H = hash.words;
+
+	            // Swap endian
+	            for (var i = 0; i < 4; i++) {
+	                // Shortcut
+	                var H_i = H[i];
+
+	                H[i] = (((H_i << 8)  | (H_i >>> 24)) & 0x00ff00ff) |
+	                       (((H_i << 24) | (H_i >>> 8))  & 0xff00ff00);
+	            }
+
+	            // Return final computed hash
+	            return hash;
+	        },
+
+	        clone: function () {
+	            var clone = Hasher.clone.call(this);
+	            clone._hash = this._hash.clone();
+
+	            return clone;
+	        }
+	    });
+
+	    function FF(a, b, c, d, x, s, t) {
+	        var n = a + ((b & c) | (~b & d)) + x + t;
+	        return ((n << s) | (n >>> (32 - s))) + b;
+	    }
+
+	    function GG(a, b, c, d, x, s, t) {
+	        var n = a + ((b & d) | (c & ~d)) + x + t;
+	        return ((n << s) | (n >>> (32 - s))) + b;
+	    }
+
+	    function HH(a, b, c, d, x, s, t) {
+	        var n = a + (b ^ c ^ d) + x + t;
+	        return ((n << s) | (n >>> (32 - s))) + b;
+	    }
+
+	    function II(a, b, c, d, x, s, t) {
+	        var n = a + (c ^ (b | ~d)) + x + t;
+	        return ((n << s) | (n >>> (32 - s))) + b;
+	    }
+
+	    /**
+	     * Shortcut function to the hasher's object interface.
+	     *
+	     * @param {WordArray|string} message The message to hash.
+	     *
+	     * @return {WordArray} The hash.
+	     *
+	     * @static
+	     *
+	     * @example
+	     *
+	     *     var hash = CryptoJS.MD5('message');
+	     *     var hash = CryptoJS.MD5(wordArray);
+	     */
+	    C.MD5 = Hasher._createHelper(MD5);
+
+	    /**
+	     * Shortcut function to the HMAC's object interface.
+	     *
+	     * @param {WordArray|string} message The message to hash.
+	     * @param {WordArray|string} key The secret key.
+	     *
+	     * @return {WordArray} The HMAC.
+	     *
+	     * @static
+	     *
+	     * @example
+	     *
+	     *     var hmac = CryptoJS.HmacMD5(message, key);
+	     */
+	    C.HmacMD5 = Hasher._createHmacHelper(MD5);
+	}(Math));
+
+
+	(function () {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var WordArray = C_lib.WordArray;
+	    var Hasher = C_lib.Hasher;
+	    var C_algo = C.algo;
+
+	    // Reusable object
+	    var W = [];
+
+	    /**
+	     * SHA-1 hash algorithm.
+	     */
+	    var SHA1 = C_algo.SHA1 = Hasher.extend({
+	        _doReset: function () {
+	            this._hash = new WordArray.init([
+	                0x67452301, 0xefcdab89,
+	                0x98badcfe, 0x10325476,
+	                0xc3d2e1f0
+	            ]);
+	        },
+
+	        _doProcessBlock: function (M, offset) {
+	            // Shortcut
+	            var H = this._hash.words;
+
+	            // Working variables
+	            var a = H[0];
+	            var b = H[1];
+	            var c = H[2];
+	            var d = H[3];
+	            var e = H[4];
+
+	            // Computation
+	            for (var i = 0; i < 80; i++) {
+	                if (i < 16) {
+	                    W[i] = M[offset + i] | 0;
+	                } else {
+	                    var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];
+	                    W[i] = (n << 1) | (n >>> 31);
+	                }
+
+	                var t = ((a << 5) | (a >>> 27)) + e + W[i];
+	                if (i < 20) {
+	                    t += ((b & c) | (~b & d)) + 0x5a827999;
+	                } else if (i < 40) {
+	                    t += (b ^ c ^ d) + 0x6ed9eba1;
+	                } else if (i < 60) {
+	                    t += ((b & c) | (b & d) | (c & d)) - 0x70e44324;
+	                } else /* if (i < 80) */ {
+	                    t += (b ^ c ^ d) - 0x359d3e2a;
+	                }
+
+	                e = d;
+	                d = c;
+	                c = (b << 30) | (b >>> 2);
+	                b = a;
+	                a = t;
+	            }
+
+	            // Intermediate hash value
+	            H[0] = (H[0] + a) | 0;
+	            H[1] = (H[1] + b) | 0;
+	            H[2] = (H[2] + c) | 0;
+	            H[3] = (H[3] + d) | 0;
+	            H[4] = (H[4] + e) | 0;
+	        },
+
+	        _doFinalize: function () {
+	            // Shortcuts
+	            var data = this._data;
+	            var dataWords = data.words;
+
+	            var nBitsTotal = this._nDataBytes * 8;
+	            var nBitsLeft = data.sigBytes * 8;
+
+	            // Add padding
+	            dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
+	            dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);
+	            dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;
+	            data.sigBytes = dataWords.length * 4;
+
+	            // Hash final blocks
+	            this._process();
+
+	            // Return final computed hash
+	            return this._hash;
+	        },
+
+	        clone: function () {
+	            var clone = Hasher.clone.call(this);
+	            clone._hash = this._hash.clone();
+
+	            return clone;
+	        }
+	    });
+
+	    /**
+	     * Shortcut function to the hasher's object interface.
+	     *
+	     * @param {WordArray|string} message The message to hash.
+	     *
+	     * @return {WordArray} The hash.
+	     *
+	     * @static
+	     *
+	     * @example
+	     *
+	     *     var hash = CryptoJS.SHA1('message');
+	     *     var hash = CryptoJS.SHA1(wordArray);
+	     */
+	    C.SHA1 = Hasher._createHelper(SHA1);
+
+	    /**
+	     * Shortcut function to the HMAC's object interface.
+	     *
+	     * @param {WordArray|string} message The message to hash.
+	     * @param {WordArray|string} key The secret key.
+	     *
+	     * @return {WordArray} The HMAC.
+	     *
+	     * @static
+	     *
+	     * @example
+	     *
+	     *     var hmac = CryptoJS.HmacSHA1(message, key);
+	     */
+	    C.HmacSHA1 = Hasher._createHmacHelper(SHA1);
+	}());
+
+
+	(function (Math) {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var WordArray = C_lib.WordArray;
+	    var Hasher = C_lib.Hasher;
+	    var C_algo = C.algo;
+
+	    // Initialization and round constants tables
+	    var H = [];
+	    var K = [];
+
+	    // Compute constants
+	    (function () {
+	        function isPrime(n) {
+	            var sqrtN = Math.sqrt(n);
+	            for (var factor = 2; factor <= sqrtN; factor++) {
+	                if (!(n % factor)) {
+	                    return false;
+	                }
+	            }
+
+	            return true;
+	        }
+
+	        function getFractionalBits(n) {
+	            return ((n - (n | 0)) * 0x100000000) | 0;
+	        }
+
+	        var n = 2;
+	        var nPrime = 0;
+	        while (nPrime < 64) {
+	            if (isPrime(n)) {
+	                if (nPrime < 8) {
+	                    H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));
+	                }
+	                K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));
+
+	                nPrime++;
+	            }
+
+	            n++;
+	        }
+	    }());
+
+	    // Reusable object
+	    var W = [];
+
+	    /**
+	     * SHA-256 hash algorithm.
+	     */
+	    var SHA256 = C_algo.SHA256 = Hasher.extend({
+	        _doReset: function () {
+	            this._hash = new WordArray.init(H.slice(0));
+	        },
+
+	        _doProcessBlock: function (M, offset) {
+	            // Shortcut
+	            var H = this._hash.words;
+
+	            // Working variables
+	            var a = H[0];
+	            var b = H[1];
+	            var c = H[2];
+	            var d = H[3];
+	            var e = H[4];
+	            var f = H[5];
+	            var g = H[6];
+	            var h = H[7];
+
+	            // Computation
+	            for (var i = 0; i < 64; i++) {
+	                if (i < 16) {
+	                    W[i] = M[offset + i] | 0;
+	                } else {
+	                    var gamma0x = W[i - 15];
+	                    var gamma0  = ((gamma0x << 25) | (gamma0x >>> 7))  ^
+	                                  ((gamma0x << 14) | (gamma0x >>> 18)) ^
+	                                   (gamma0x >>> 3);
+
+	                    var gamma1x = W[i - 2];
+	                    var gamma1  = ((gamma1x << 15) | (gamma1x >>> 17)) ^
+	                                  ((gamma1x << 13) | (gamma1x >>> 19)) ^
+	                                   (gamma1x >>> 10);
+
+	                    W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];
+	                }
+
+	                var ch  = (e & f) ^ (~e & g);
+	                var maj = (a & b) ^ (a & c) ^ (b & c);
+
+	                var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));
+	                var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7)  | (e >>> 25));
+
+	                var t1 = h + sigma1 + ch + K[i] + W[i];
+	                var t2 = sigma0 + maj;
+
+	                h = g;
+	                g = f;
+	                f = e;
+	                e = (d + t1) | 0;
+	                d = c;
+	                c = b;
+	                b = a;
+	                a = (t1 + t2) | 0;
+	            }
+
+	            // Intermediate hash value
+	            H[0] = (H[0] + a) | 0;
+	            H[1] = (H[1] + b) | 0;
+	            H[2] = (H[2] + c) | 0;
+	            H[3] = (H[3] + d) | 0;
+	            H[4] = (H[4] + e) | 0;
+	            H[5] = (H[5] + f) | 0;
+	            H[6] = (H[6] + g) | 0;
+	            H[7] = (H[7] + h) | 0;
+	        },
+
+	        _doFinalize: function () {
+	            // Shortcuts
+	            var data = this._data;
+	            var dataWords = data.words;
+
+	            var nBitsTotal = this._nDataBytes * 8;
+	            var nBitsLeft = data.sigBytes * 8;
+
+	            // Add padding
+	            dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
+	            dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);
+	            dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;
+	            data.sigBytes = dataWords.length * 4;
+
+	            // Hash final blocks
+	            this._process();
+
+	            // Return final computed hash
+	            return this._hash;
+	        },
+
+	        clone: function () {
+	            var clone = Hasher.clone.call(this);
+	            clone._hash = this._hash.clone();
+
+	            return clone;
+	        }
+	    });
+
+	    /**
+	     * Shortcut function to the hasher's object interface.
+	     *
+	     * @param {WordArray|string} message The message to hash.
+	     *
+	     * @return {WordArray} The hash.
+	     *
+	     * @static
+	     *
+	     * @example
+	     *
+	     *     var hash = CryptoJS.SHA256('message');
+	     *     var hash = CryptoJS.SHA256(wordArray);
+	     */
+	    C.SHA256 = Hasher._createHelper(SHA256);
+
+	    /**
+	     * Shortcut function to the HMAC's object interface.
+	     *
+	     * @param {WordArray|string} message The message to hash.
+	     * @param {WordArray|string} key The secret key.
+	     *
+	     * @return {WordArray} The HMAC.
+	     *
+	     * @static
+	     *
+	     * @example
+	     *
+	     *     var hmac = CryptoJS.HmacSHA256(message, key);
+	     */
+	    C.HmacSHA256 = Hasher._createHmacHelper(SHA256);
+	}(Math));
+
+
+	(function () {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var WordArray = C_lib.WordArray;
+	    var C_algo = C.algo;
+	    var SHA256 = C_algo.SHA256;
+
+	    /**
+	     * SHA-224 hash algorithm.
+	     */
+	    var SHA224 = C_algo.SHA224 = SHA256.extend({
+	        _doReset: function () {
+	            this._hash = new WordArray.init([
+	                0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,
+	                0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4
+	            ]);
+	        },
+
+	        _doFinalize: function () {
+	            var hash = SHA256._doFinalize.call(this);
+
+	            hash.sigBytes -= 4;
+
+	            return hash;
+	        }
+	    });
+
+	    /**
+	     * Shortcut function to the hasher's object interface.
+	     *
+	     * @param {WordArray|string} message The message to hash.
+	     *
+	     * @return {WordArray} The hash.
+	     *
+	     * @static
+	     *
+	     * @example
+	     *
+	     *     var hash = CryptoJS.SHA224('message');
+	     *     var hash = CryptoJS.SHA224(wordArray);
+	     */
+	    C.SHA224 = SHA256._createHelper(SHA224);
+
+	    /**
+	     * Shortcut function to the HMAC's object interface.
+	     *
+	     * @param {WordArray|string} message The message to hash.
+	     * @param {WordArray|string} key The secret key.
+	     *
+	     * @return {WordArray} The HMAC.
+	     *
+	     * @static
+	     *
+	     * @example
+	     *
+	     *     var hmac = CryptoJS.HmacSHA224(message, key);
+	     */
+	    C.HmacSHA224 = SHA256._createHmacHelper(SHA224);
+	}());
+
+
+	(function () {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var Hasher = C_lib.Hasher;
+	    var C_x64 = C.x64;
+	    var X64Word = C_x64.Word;
+	    var X64WordArray = C_x64.WordArray;
+	    var C_algo = C.algo;
+
+	    function X64Word_create() {
+	        return X64Word.create.apply(X64Word, arguments);
+	    }
+
+	    // Constants
+	    var K = [
+	        X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd),
+	        X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc),
+	        X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb605d019),
+	        X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118),
+	        X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe),
+	        X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2),
+	        X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1),
+	        X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694),
+	        X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3),
+	        X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65),
+	        X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483),
+	        X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5),
+	        X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210),
+	        X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4),
+	        X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725),
+	        X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70),
+	        X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926),
+	        X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df),
+	        X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8),
+	        X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b),
+	        X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001),
+	        X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30),
+	        X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910),
+	        X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8),
+	        X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53),
+	        X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8),
+	        X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb),
+	        X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3),
+	        X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60),
+	        X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec),
+	        X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9),
+	        X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b),
+	        X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207),
+	        X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178),
+	        X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6),
+	        X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b),
+	        X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493),
+	        X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c),
+	        X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a),
+	        X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817)
+	    ];
+
+	    // Reusable objects
+	    var W = [];
+	    (function () {
+	        for (var i = 0; i < 80; i++) {
+	            W[i] = X64Word_create();
+	        }
+	    }());
+
+	    /**
+	     * SHA-512 hash algorithm.
+	     */
+	    var SHA512 = C_algo.SHA512 = Hasher.extend({
+	        _doReset: function () {
+	            this._hash = new X64WordArray.init([
+	                new X64Word.init(0x6a09e667, 0xf3bcc908), new X64Word.init(0xbb67ae85, 0x84caa73b),
+	                new X64Word.init(0x3c6ef372, 0xfe94f82b), new X64Word.init(0xa54ff53a, 0x5f1d36f1),
+	                new X64Word.init(0x510e527f, 0xade682d1), new X64Word.init(0x9b05688c, 0x2b3e6c1f),
+	                new X64Word.init(0x1f83d9ab, 0xfb41bd6b), new X64Word.init(0x5be0cd19, 0x137e2179)
+	            ]);
+	        },
+
+	        _doProcessBlock: function (M, offset) {
+	            // Shortcuts
+	            var H = this._hash.words;
+
+	            var H0 = H[0];
+	            var H1 = H[1];
+	            var H2 = H[2];
+	            var H3 = H[3];
+	            var H4 = H[4];
+	            var H5 = H[5];
+	            var H6 = H[6];
+	            var H7 = H[7];
+
+	            var H0h = H0.high;
+	            var H0l = H0.low;
+	            var H1h = H1.high;
+	            var H1l = H1.low;
+	            var H2h = H2.high;
+	            var H2l = H2.low;
+	            var H3h = H3.high;
+	            var H3l = H3.low;
+	            var H4h = H4.high;
+	            var H4l = H4.low;
+	            var H5h = H5.high;
+	            var H5l = H5.low;
+	            var H6h = H6.high;
+	            var H6l = H6.low;
+	            var H7h = H7.high;
+	            var H7l = H7.low;
+
+	            // Working variables
+	            var ah = H0h;
+	            var al = H0l;
+	            var bh = H1h;
+	            var bl = H1l;
+	            var ch = H2h;
+	            var cl = H2l;
+	            var dh = H3h;
+	            var dl = H3l;
+	            var eh = H4h;
+	            var el = H4l;
+	            var fh = H5h;
+	            var fl = H5l;
+	            var gh = H6h;
+	            var gl = H6l;
+	            var hh = H7h;
+	            var hl = H7l;
+
+	            // Rounds
+	            for (var i = 0; i < 80; i++) {
+	                var Wil;
+	                var Wih;
+
+	                // Shortcut
+	                var Wi = W[i];
+
+	                // Extend message
+	                if (i < 16) {
+	                    Wih = Wi.high = M[offset + i * 2]     | 0;
+	                    Wil = Wi.low  = M[offset + i * 2 + 1] | 0;
+	                } else {
+	                    // Gamma0
+	                    var gamma0x  = W[i - 15];
+	                    var gamma0xh = gamma0x.high;
+	                    var gamma0xl = gamma0x.low;
+	                    var gamma0h  = ((gamma0xh >>> 1) | (gamma0xl << 31)) ^ ((gamma0xh >>> 8) | (gamma0xl << 24)) ^ (gamma0xh >>> 7);
+	                    var gamma0l  = ((gamma0xl >>> 1) | (gamma0xh << 31)) ^ ((gamma0xl >>> 8) | (gamma0xh << 24)) ^ ((gamma0xl >>> 7) | (gamma0xh << 25));
+
+	                    // Gamma1
+	                    var gamma1x  = W[i - 2];
+	                    var gamma1xh = gamma1x.high;
+	                    var gamma1xl = gamma1x.low;
+	                    var gamma1h  = ((gamma1xh >>> 19) | (gamma1xl << 13)) ^ ((gamma1xh << 3) | (gamma1xl >>> 29)) ^ (gamma1xh >>> 6);
+	                    var gamma1l  = ((gamma1xl >>> 19) | (gamma1xh << 13)) ^ ((gamma1xl << 3) | (gamma1xh >>> 29)) ^ ((gamma1xl >>> 6) | (gamma1xh << 26));
+
+	                    // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]
+	                    var Wi7  = W[i - 7];
+	                    var Wi7h = Wi7.high;
+	                    var Wi7l = Wi7.low;
+
+	                    var Wi16  = W[i - 16];
+	                    var Wi16h = Wi16.high;
+	                    var Wi16l = Wi16.low;
+
+	                    Wil = gamma0l + Wi7l;
+	                    Wih = gamma0h + Wi7h + ((Wil >>> 0) < (gamma0l >>> 0) ? 1 : 0);
+	                    Wil = Wil + gamma1l;
+	                    Wih = Wih + gamma1h + ((Wil >>> 0) < (gamma1l >>> 0) ? 1 : 0);
+	                    Wil = Wil + Wi16l;
+	                    Wih = Wih + Wi16h + ((Wil >>> 0) < (Wi16l >>> 0) ? 1 : 0);
+
+	                    Wi.high = Wih;
+	                    Wi.low  = Wil;
+	                }
+
+	                var chh  = (eh & fh) ^ (~eh & gh);
+	                var chl  = (el & fl) ^ (~el & gl);
+	                var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);
+	                var majl = (al & bl) ^ (al & cl) ^ (bl & cl);
+
+	                var sigma0h = ((ah >>> 28) | (al << 4))  ^ ((ah << 30)  | (al >>> 2)) ^ ((ah << 25) | (al >>> 7));
+	                var sigma0l = ((al >>> 28) | (ah << 4))  ^ ((al << 30)  | (ah >>> 2)) ^ ((al << 25) | (ah >>> 7));
+	                var sigma1h = ((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9));
+	                var sigma1l = ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9));
+
+	                // t1 = h + sigma1 + ch + K[i] + W[i]
+	                var Ki  = K[i];
+	                var Kih = Ki.high;
+	                var Kil = Ki.low;
+
+	                var t1l = hl + sigma1l;
+	                var t1h = hh + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0);
+	                var t1l = t1l + chl;
+	                var t1h = t1h + chh + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0);
+	                var t1l = t1l + Kil;
+	                var t1h = t1h + Kih + ((t1l >>> 0) < (Kil >>> 0) ? 1 : 0);
+	                var t1l = t1l + Wil;
+	                var t1h = t1h + Wih + ((t1l >>> 0) < (Wil >>> 0) ? 1 : 0);
+
+	                // t2 = sigma0 + maj
+	                var t2l = sigma0l + majl;
+	                var t2h = sigma0h + majh + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0);
+
+	                // Update working variables
+	                hh = gh;
+	                hl = gl;
+	                gh = fh;
+	                gl = fl;
+	                fh = eh;
+	                fl = el;
+	                el = (dl + t1l) | 0;
+	                eh = (dh + t1h + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0;
+	                dh = ch;
+	                dl = cl;
+	                ch = bh;
+	                cl = bl;
+	                bh = ah;
+	                bl = al;
+	                al = (t1l + t2l) | 0;
+	                ah = (t1h + t2h + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0;
+	            }
+
+	            // Intermediate hash value
+	            H0l = H0.low  = (H0l + al);
+	            H0.high = (H0h + ah + ((H0l >>> 0) < (al >>> 0) ? 1 : 0));
+	            H1l = H1.low  = (H1l + bl);
+	            H1.high = (H1h + bh + ((H1l >>> 0) < (bl >>> 0) ? 1 : 0));
+	            H2l = H2.low  = (H2l + cl);
+	            H2.high = (H2h + ch + ((H2l >>> 0) < (cl >>> 0) ? 1 : 0));
+	            H3l = H3.low  = (H3l + dl);
+	            H3.high = (H3h + dh + ((H3l >>> 0) < (dl >>> 0) ? 1 : 0));
+	            H4l = H4.low  = (H4l + el);
+	            H4.high = (H4h + eh + ((H4l >>> 0) < (el >>> 0) ? 1 : 0));
+	            H5l = H5.low  = (H5l + fl);
+	            H5.high = (H5h + fh + ((H5l >>> 0) < (fl >>> 0) ? 1 : 0));
+	            H6l = H6.low  = (H6l + gl);
+	            H6.high = (H6h + gh + ((H6l >>> 0) < (gl >>> 0) ? 1 : 0));
+	            H7l = H7.low  = (H7l + hl);
+	            H7.high = (H7h + hh + ((H7l >>> 0) < (hl >>> 0) ? 1 : 0));
+	        },
+
+	        _doFinalize: function () {
+	            // Shortcuts
+	            var data = this._data;
+	            var dataWords = data.words;
+
+	            var nBitsTotal = this._nDataBytes * 8;
+	            var nBitsLeft = data.sigBytes * 8;
+
+	            // Add padding
+	            dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
+	            dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 30] = Math.floor(nBitsTotal / 0x100000000);
+	            dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 31] = nBitsTotal;
+	            data.sigBytes = dataWords.length * 4;
+
+	            // Hash final blocks
+	            this._process();
+
+	            // Convert hash to 32-bit word array before returning
+	            var hash = this._hash.toX32();
+
+	            // Return final computed hash
+	            return hash;
+	        },
+
+	        clone: function () {
+	            var clone = Hasher.clone.call(this);
+	            clone._hash = this._hash.clone();
+
+	            return clone;
+	        },
+
+	        blockSize: 1024/32
+	    });
+
+	    /**
+	     * Shortcut function to the hasher's object interface.
+	     *
+	     * @param {WordArray|string} message The message to hash.
+	     *
+	     * @return {WordArray} The hash.
+	     *
+	     * @static
+	     *
+	     * @example
+	     *
+	     *     var hash = CryptoJS.SHA512('message');
+	     *     var hash = CryptoJS.SHA512(wordArray);
+	     */
+	    C.SHA512 = Hasher._createHelper(SHA512);
+
+	    /**
+	     * Shortcut function to the HMAC's object interface.
+	     *
+	     * @param {WordArray|string} message The message to hash.
+	     * @param {WordArray|string} key The secret key.
+	     *
+	     * @return {WordArray} The HMAC.
+	     *
+	     * @static
+	     *
+	     * @example
+	     *
+	     *     var hmac = CryptoJS.HmacSHA512(message, key);
+	     */
+	    C.HmacSHA512 = Hasher._createHmacHelper(SHA512);
+	}());
+
+
+	(function () {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_x64 = C.x64;
+	    var X64Word = C_x64.Word;
+	    var X64WordArray = C_x64.WordArray;
+	    var C_algo = C.algo;
+	    var SHA512 = C_algo.SHA512;
+
+	    /**
+	     * SHA-384 hash algorithm.
+	     */
+	    var SHA384 = C_algo.SHA384 = SHA512.extend({
+	        _doReset: function () {
+	            this._hash = new X64WordArray.init([
+	                new X64Word.init(0xcbbb9d5d, 0xc1059ed8), new X64Word.init(0x629a292a, 0x367cd507),
+	                new X64Word.init(0x9159015a, 0x3070dd17), new X64Word.init(0x152fecd8, 0xf70e5939),
+	                new X64Word.init(0x67332667, 0xffc00b31), new X64Word.init(0x8eb44a87, 0x68581511),
+	                new X64Word.init(0xdb0c2e0d, 0x64f98fa7), new X64Word.init(0x47b5481d, 0xbefa4fa4)
+	            ]);
+	        },
+
+	        _doFinalize: function () {
+	            var hash = SHA512._doFinalize.call(this);
+
+	            hash.sigBytes -= 16;
+
+	            return hash;
+	        }
+	    });
+
+	    /**
+	     * Shortcut function to the hasher's object interface.
+	     *
+	     * @param {WordArray|string} message The message to hash.
+	     *
+	     * @return {WordArray} The hash.
+	     *
+	     * @static
+	     *
+	     * @example
+	     *
+	     *     var hash = CryptoJS.SHA384('message');
+	     *     var hash = CryptoJS.SHA384(wordArray);
+	     */
+	    C.SHA384 = SHA512._createHelper(SHA384);
+
+	    /**
+	     * Shortcut function to the HMAC's object interface.
+	     *
+	     * @param {WordArray|string} message The message to hash.
+	     * @param {WordArray|string} key The secret key.
+	     *
+	     * @return {WordArray} The HMAC.
+	     *
+	     * @static
+	     *
+	     * @example
+	     *
+	     *     var hmac = CryptoJS.HmacSHA384(message, key);
+	     */
+	    C.HmacSHA384 = SHA512._createHmacHelper(SHA384);
+	}());
+
+
+	(function (Math) {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var WordArray = C_lib.WordArray;
+	    var Hasher = C_lib.Hasher;
+	    var C_x64 = C.x64;
+	    var X64Word = C_x64.Word;
+	    var C_algo = C.algo;
+
+	    // Constants tables
+	    var RHO_OFFSETS = [];
+	    var PI_INDEXES  = [];
+	    var ROUND_CONSTANTS = [];
+
+	    // Compute Constants
+	    (function () {
+	        // Compute rho offset constants
+	        var x = 1, y = 0;
+	        for (var t = 0; t < 24; t++) {
+	            RHO_OFFSETS[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64;
+
+	            var newX = y % 5;
+	            var newY = (2 * x + 3 * y) % 5;
+	            x = newX;
+	            y = newY;
+	        }
+
+	        // Compute pi index constants
+	        for (var x = 0; x < 5; x++) {
+	            for (var y = 0; y < 5; y++) {
+	                PI_INDEXES[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5;
+	            }
+	        }
+
+	        // Compute round constants
+	        var LFSR = 0x01;
+	        for (var i = 0; i < 24; i++) {
+	            var roundConstantMsw = 0;
+	            var roundConstantLsw = 0;
+
+	            for (var j = 0; j < 7; j++) {
+	                if (LFSR & 0x01) {
+	                    var bitPosition = (1 << j) - 1;
+	                    if (bitPosition < 32) {
+	                        roundConstantLsw ^= 1 << bitPosition;
+	                    } else /* if (bitPosition >= 32) */ {
+	                        roundConstantMsw ^= 1 << (bitPosition - 32);
+	                    }
+	                }
+
+	                // Compute next LFSR
+	                if (LFSR & 0x80) {
+	                    // Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1
+	                    LFSR = (LFSR << 1) ^ 0x71;
+	                } else {
+	                    LFSR <<= 1;
+	                }
+	            }
+
+	            ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw);
+	        }
+	    }());
+
+	    // Reusable objects for temporary values
+	    var T = [];
+	    (function () {
+	        for (var i = 0; i < 25; i++) {
+	            T[i] = X64Word.create();
+	        }
+	    }());
+
+	    /**
+	     * SHA-3 hash algorithm.
+	     */
+	    var SHA3 = C_algo.SHA3 = Hasher.extend({
+	        /**
+	         * Configuration options.
+	         *
+	         * @property {number} outputLength
+	         *   The desired number of bits in the output hash.
+	         *   Only values permitted are: 224, 256, 384, 512.
+	         *   Default: 512
+	         */
+	        cfg: Hasher.cfg.extend({
+	            outputLength: 512
+	        }),
+
+	        _doReset: function () {
+	            var state = this._state = []
+	            for (var i = 0; i < 25; i++) {
+	                state[i] = new X64Word.init();
+	            }
+
+	            this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32;
+	        },
+
+	        _doProcessBlock: function (M, offset) {
+	            // Shortcuts
+	            var state = this._state;
+	            var nBlockSizeLanes = this.blockSize / 2;
+
+	            // Absorb
+	            for (var i = 0; i < nBlockSizeLanes; i++) {
+	                // Shortcuts
+	                var M2i  = M[offset + 2 * i];
+	                var M2i1 = M[offset + 2 * i + 1];
+
+	                // Swap endian
+	                M2i = (
+	                    (((M2i << 8)  | (M2i >>> 24)) & 0x00ff00ff) |
+	                    (((M2i << 24) | (M2i >>> 8))  & 0xff00ff00)
+	                );
+	                M2i1 = (
+	                    (((M2i1 << 8)  | (M2i1 >>> 24)) & 0x00ff00ff) |
+	                    (((M2i1 << 24) | (M2i1 >>> 8))  & 0xff00ff00)
+	                );
+
+	                // Absorb message into state
+	                var lane = state[i];
+	                lane.high ^= M2i1;
+	                lane.low  ^= M2i;
+	            }
+
+	            // Rounds
+	            for (var round = 0; round < 24; round++) {
+	                // Theta
+	                for (var x = 0; x < 5; x++) {
+	                    // Mix column lanes
+	                    var tMsw = 0, tLsw = 0;
+	                    for (var y = 0; y < 5; y++) {
+	                        var lane = state[x + 5 * y];
+	                        tMsw ^= lane.high;
+	                        tLsw ^= lane.low;
+	                    }
+
+	                    // Temporary values
+	                    var Tx = T[x];
+	                    Tx.high = tMsw;
+	                    Tx.low  = tLsw;
+	                }
+	                for (var x = 0; x < 5; x++) {
+	                    // Shortcuts
+	                    var Tx4 = T[(x + 4) % 5];
+	                    var Tx1 = T[(x + 1) % 5];
+	                    var Tx1Msw = Tx1.high;
+	                    var Tx1Lsw = Tx1.low;
+
+	                    // Mix surrounding columns
+	                    var tMsw = Tx4.high ^ ((Tx1Msw << 1) | (Tx1Lsw >>> 31));
+	                    var tLsw = Tx4.low  ^ ((Tx1Lsw << 1) | (Tx1Msw >>> 31));
+	                    for (var y = 0; y < 5; y++) {
+	                        var lane = state[x + 5 * y];
+	                        lane.high ^= tMsw;
+	                        lane.low  ^= tLsw;
+	                    }
+	                }
+
+	                // Rho Pi
+	                for (var laneIndex = 1; laneIndex < 25; laneIndex++) {
+	                    var tMsw;
+	                    var tLsw;
+
+	                    // Shortcuts
+	                    var lane = state[laneIndex];
+	                    var laneMsw = lane.high;
+	                    var laneLsw = lane.low;
+	                    var rhoOffset = RHO_OFFSETS[laneIndex];
+
+	                    // Rotate lanes
+	                    if (rhoOffset < 32) {
+	                        tMsw = (laneMsw << rhoOffset) | (laneLsw >>> (32 - rhoOffset));
+	                        tLsw = (laneLsw << rhoOffset) | (laneMsw >>> (32 - rhoOffset));
+	                    } else /* if (rhoOffset >= 32) */ {
+	                        tMsw = (laneLsw << (rhoOffset - 32)) | (laneMsw >>> (64 - rhoOffset));
+	                        tLsw = (laneMsw << (rhoOffset - 32)) | (laneLsw >>> (64 - rhoOffset));
+	                    }
+
+	                    // Transpose lanes
+	                    var TPiLane = T[PI_INDEXES[laneIndex]];
+	                    TPiLane.high = tMsw;
+	                    TPiLane.low  = tLsw;
+	                }
+
+	                // Rho pi at x = y = 0
+	                var T0 = T[0];
+	                var state0 = state[0];
+	                T0.high = state0.high;
+	                T0.low  = state0.low;
+
+	                // Chi
+	                for (var x = 0; x < 5; x++) {
+	                    for (var y = 0; y < 5; y++) {
+	                        // Shortcuts
+	                        var laneIndex = x + 5 * y;
+	                        var lane = state[laneIndex];
+	                        var TLane = T[laneIndex];
+	                        var Tx1Lane = T[((x + 1) % 5) + 5 * y];
+	                        var Tx2Lane = T[((x + 2) % 5) + 5 * y];
+
+	                        // Mix rows
+	                        lane.high = TLane.high ^ (~Tx1Lane.high & Tx2Lane.high);
+	                        lane.low  = TLane.low  ^ (~Tx1Lane.low  & Tx2Lane.low);
+	                    }
+	                }
+
+	                // Iota
+	                var lane = state[0];
+	                var roundConstant = ROUND_CONSTANTS[round];
+	                lane.high ^= roundConstant.high;
+	                lane.low  ^= roundConstant.low;
+	            }
+	        },
+
+	        _doFinalize: function () {
+	            // Shortcuts
+	            var data = this._data;
+	            var dataWords = data.words;
+	            var nBitsTotal = this._nDataBytes * 8;
+	            var nBitsLeft = data.sigBytes * 8;
+	            var blockSizeBits = this.blockSize * 32;
+
+	            // Add padding
+	            dataWords[nBitsLeft >>> 5] |= 0x1 << (24 - nBitsLeft % 32);
+	            dataWords[((Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits) >>> 5) - 1] |= 0x80;
+	            data.sigBytes = dataWords.length * 4;
+
+	            // Hash final blocks
+	            this._process();
+
+	            // Shortcuts
+	            var state = this._state;
+	            var outputLengthBytes = this.cfg.outputLength / 8;
+	            var outputLengthLanes = outputLengthBytes / 8;
+
+	            // Squeeze
+	            var hashWords = [];
+	            for (var i = 0; i < outputLengthLanes; i++) {
+	                // Shortcuts
+	                var lane = state[i];
+	                var laneMsw = lane.high;
+	                var laneLsw = lane.low;
+
+	                // Swap endian
+	                laneMsw = (
+	                    (((laneMsw << 8)  | (laneMsw >>> 24)) & 0x00ff00ff) |
+	                    (((laneMsw << 24) | (laneMsw >>> 8))  & 0xff00ff00)
+	                );
+	                laneLsw = (
+	                    (((laneLsw << 8)  | (laneLsw >>> 24)) & 0x00ff00ff) |
+	                    (((laneLsw << 24) | (laneLsw >>> 8))  & 0xff00ff00)
+	                );
+
+	                // Squeeze state to retrieve hash
+	                hashWords.push(laneLsw);
+	                hashWords.push(laneMsw);
+	            }
+
+	            // Return final computed hash
+	            return new WordArray.init(hashWords, outputLengthBytes);
+	        },
+
+	        clone: function () {
+	            var clone = Hasher.clone.call(this);
+
+	            var state = clone._state = this._state.slice(0);
+	            for (var i = 0; i < 25; i++) {
+	                state[i] = state[i].clone();
+	            }
+
+	            return clone;
+	        }
+	    });
+
+	    /**
+	     * Shortcut function to the hasher's object interface.
+	     *
+	     * @param {WordArray|string} message The message to hash.
+	     *
+	     * @return {WordArray} The hash.
+	     *
+	     * @static
+	     *
+	     * @example
+	     *
+	     *     var hash = CryptoJS.SHA3('message');
+	     *     var hash = CryptoJS.SHA3(wordArray);
+	     */
+	    C.SHA3 = Hasher._createHelper(SHA3);
+
+	    /**
+	     * Shortcut function to the HMAC's object interface.
+	     *
+	     * @param {WordArray|string} message The message to hash.
+	     * @param {WordArray|string} key The secret key.
+	     *
+	     * @return {WordArray} The HMAC.
+	     *
+	     * @static
+	     *
+	     * @example
+	     *
+	     *     var hmac = CryptoJS.HmacSHA3(message, key);
+	     */
+	    C.HmacSHA3 = Hasher._createHmacHelper(SHA3);
+	}(Math));
+
+
+	/** @preserve
+	(c) 2012 by Cédric Mesnil. All rights reserved.
+
+	Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+	    - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+	    - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+
+	THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+	*/
+
+	(function (Math) {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var WordArray = C_lib.WordArray;
+	    var Hasher = C_lib.Hasher;
+	    var C_algo = C.algo;
+
+	    // Constants table
+	    var _zl = WordArray.create([
+	        0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,
+	        7,  4, 13,  1, 10,  6, 15,  3, 12,  0,  9,  5,  2, 14, 11,  8,
+	        3, 10, 14,  4,  9, 15,  8,  1,  2,  7,  0,  6, 13, 11,  5, 12,
+	        1,  9, 11, 10,  0,  8, 12,  4, 13,  3,  7, 15, 14,  5,  6,  2,
+	        4,  0,  5,  9,  7, 12,  2, 10, 14,  1,  3,  8, 11,  6, 15, 13]);
+	    var _zr = WordArray.create([
+	        5, 14,  7,  0,  9,  2, 11,  4, 13,  6, 15,  8,  1, 10,  3, 12,
+	        6, 11,  3,  7,  0, 13,  5, 10, 14, 15,  8, 12,  4,  9,  1,  2,
+	        15,  5,  1,  3,  7, 14,  6,  9, 11,  8, 12,  2, 10,  0,  4, 13,
+	        8,  6,  4,  1,  3, 11, 15,  0,  5, 12,  2, 13,  9,  7, 10, 14,
+	        12, 15, 10,  4,  1,  5,  8,  7,  6,  2, 13, 14,  0,  3,  9, 11]);
+	    var _sl = WordArray.create([
+	         11, 14, 15, 12,  5,  8,  7,  9, 11, 13, 14, 15,  6,  7,  9,  8,
+	        7, 6,   8, 13, 11,  9,  7, 15,  7, 12, 15,  9, 11,  7, 13, 12,
+	        11, 13,  6,  7, 14,  9, 13, 15, 14,  8, 13,  6,  5, 12,  7,  5,
+	          11, 12, 14, 15, 14, 15,  9,  8,  9, 14,  5,  6,  8,  6,  5, 12,
+	        9, 15,  5, 11,  6,  8, 13, 12,  5, 12, 13, 14, 11,  8,  5,  6 ]);
+	    var _sr = WordArray.create([
+	        8,  9,  9, 11, 13, 15, 15,  5,  7,  7,  8, 11, 14, 14, 12,  6,
+	        9, 13, 15,  7, 12,  8,  9, 11,  7,  7, 12,  7,  6, 15, 13, 11,
+	        9,  7, 15, 11,  8,  6,  6, 14, 12, 13,  5, 14, 13, 13,  7,  5,
+	        15,  5,  8, 11, 14, 14,  6, 14,  6,  9, 12,  9, 12,  5, 15,  8,
+	        8,  5, 12,  9, 12,  5, 14,  6,  8, 13,  6,  5, 15, 13, 11, 11 ]);
+
+	    var _hl =  WordArray.create([ 0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]);
+	    var _hr =  WordArray.create([ 0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]);
+
+	    /**
+	     * RIPEMD160 hash algorithm.
+	     */
+	    var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({
+	        _doReset: function () {
+	            this._hash  = WordArray.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]);
+	        },
+
+	        _doProcessBlock: function (M, offset) {
+
+	            // Swap endian
+	            for (var i = 0; i < 16; i++) {
+	                // Shortcuts
+	                var offset_i = offset + i;
+	                var M_offset_i = M[offset_i];
+
+	                // Swap
+	                M[offset_i] = (
+	                    (((M_offset_i << 8)  | (M_offset_i >>> 24)) & 0x00ff00ff) |
+	                    (((M_offset_i << 24) | (M_offset_i >>> 8))  & 0xff00ff00)
+	                );
+	            }
+	            // Shortcut
+	            var H  = this._hash.words;
+	            var hl = _hl.words;
+	            var hr = _hr.words;
+	            var zl = _zl.words;
+	            var zr = _zr.words;
+	            var sl = _sl.words;
+	            var sr = _sr.words;
+
+	            // Working variables
+	            var al, bl, cl, dl, el;
+	            var ar, br, cr, dr, er;
+
+	            ar = al = H[0];
+	            br = bl = H[1];
+	            cr = cl = H[2];
+	            dr = dl = H[3];
+	            er = el = H[4];
+	            // Computation
+	            var t;
+	            for (var i = 0; i < 80; i += 1) {
+	                t = (al +  M[offset+zl[i]])|0;
+	                if (i<16){
+		            t +=  f1(bl,cl,dl) + hl[0];
+	                } else if (i<32) {
+		            t +=  f2(bl,cl,dl) + hl[1];
+	                } else if (i<48) {
+		            t +=  f3(bl,cl,dl) + hl[2];
+	                } else if (i<64) {
+		            t +=  f4(bl,cl,dl) + hl[3];
+	                } else {// if (i<80) {
+		            t +=  f5(bl,cl,dl) + hl[4];
+	                }
+	                t = t|0;
+	                t =  rotl(t,sl[i]);
+	                t = (t+el)|0;
+	                al = el;
+	                el = dl;
+	                dl = rotl(cl, 10);
+	                cl = bl;
+	                bl = t;
+
+	                t = (ar + M[offset+zr[i]])|0;
+	                if (i<16){
+		            t +=  f5(br,cr,dr) + hr[0];
+	                } else if (i<32) {
+		            t +=  f4(br,cr,dr) + hr[1];
+	                } else if (i<48) {
+		            t +=  f3(br,cr,dr) + hr[2];
+	                } else if (i<64) {
+		            t +=  f2(br,cr,dr) + hr[3];
+	                } else {// if (i<80) {
+		            t +=  f1(br,cr,dr) + hr[4];
+	                }
+	                t = t|0;
+	                t =  rotl(t,sr[i]) ;
+	                t = (t+er)|0;
+	                ar = er;
+	                er = dr;
+	                dr = rotl(cr, 10);
+	                cr = br;
+	                br = t;
+	            }
+	            // Intermediate hash value
+	            t    = (H[1] + cl + dr)|0;
+	            H[1] = (H[2] + dl + er)|0;
+	            H[2] = (H[3] + el + ar)|0;
+	            H[3] = (H[4] + al + br)|0;
+	            H[4] = (H[0] + bl + cr)|0;
+	            H[0] =  t;
+	        },
+
+	        _doFinalize: function () {
+	            // Shortcuts
+	            var data = this._data;
+	            var dataWords = data.words;
+
+	            var nBitsTotal = this._nDataBytes * 8;
+	            var nBitsLeft = data.sigBytes * 8;
+
+	            // Add padding
+	            dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
+	            dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (
+	                (((nBitsTotal << 8)  | (nBitsTotal >>> 24)) & 0x00ff00ff) |
+	                (((nBitsTotal << 24) | (nBitsTotal >>> 8))  & 0xff00ff00)
+	            );
+	            data.sigBytes = (dataWords.length + 1) * 4;
+
+	            // Hash final blocks
+	            this._process();
+
+	            // Shortcuts
+	            var hash = this._hash;
+	            var H = hash.words;
+
+	            // Swap endian
+	            for (var i = 0; i < 5; i++) {
+	                // Shortcut
+	                var H_i = H[i];
+
+	                // Swap
+	                H[i] = (((H_i << 8)  | (H_i >>> 24)) & 0x00ff00ff) |
+	                       (((H_i << 24) | (H_i >>> 8))  & 0xff00ff00);
+	            }
+
+	            // Return final computed hash
+	            return hash;
+	        },
+
+	        clone: function () {
+	            var clone = Hasher.clone.call(this);
+	            clone._hash = this._hash.clone();
+
+	            return clone;
+	        }
+	    });
+
+
+	    function f1(x, y, z) {
+	        return ((x) ^ (y) ^ (z));
+
+	    }
+
+	    function f2(x, y, z) {
+	        return (((x)&(y)) | ((~x)&(z)));
+	    }
+
+	    function f3(x, y, z) {
+	        return (((x) | (~(y))) ^ (z));
+	    }
+
+	    function f4(x, y, z) {
+	        return (((x) & (z)) | ((y)&(~(z))));
+	    }
+
+	    function f5(x, y, z) {
+	        return ((x) ^ ((y) |(~(z))));
+
+	    }
+
+	    function rotl(x,n) {
+	        return (x<<n) | (x>>>(32-n));
+	    }
+
+
+	    /**
+	     * Shortcut function to the hasher's object interface.
+	     *
+	     * @param {WordArray|string} message The message to hash.
+	     *
+	     * @return {WordArray} The hash.
+	     *
+	     * @static
+	     *
+	     * @example
+	     *
+	     *     var hash = CryptoJS.RIPEMD160('message');
+	     *     var hash = CryptoJS.RIPEMD160(wordArray);
+	     */
+	    C.RIPEMD160 = Hasher._createHelper(RIPEMD160);
+
+	    /**
+	     * Shortcut function to the HMAC's object interface.
+	     *
+	     * @param {WordArray|string} message The message to hash.
+	     * @param {WordArray|string} key The secret key.
+	     *
+	     * @return {WordArray} The HMAC.
+	     *
+	     * @static
+	     *
+	     * @example
+	     *
+	     *     var hmac = CryptoJS.HmacRIPEMD160(message, key);
+	     */
+	    C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160);
+	}(Math));
+
+
+	(function () {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var Base = C_lib.Base;
+	    var C_enc = C.enc;
+	    var Utf8 = C_enc.Utf8;
+	    var C_algo = C.algo;
+
+	    /**
+	     * HMAC algorithm.
+	     */
+	    var HMAC = C_algo.HMAC = Base.extend({
+	        /**
+	         * Initializes a newly created HMAC.
+	         *
+	         * @param {Hasher} hasher The hash algorithm to use.
+	         * @param {WordArray|string} key The secret key.
+	         *
+	         * @example
+	         *
+	         *     var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);
+	         */
+	        init: function (hasher, key) {
+	            // Init hasher
+	            hasher = this._hasher = new hasher.init();
+
+	            // Convert string to WordArray, else assume WordArray already
+	            if (typeof key == 'string') {
+	                key = Utf8.parse(key);
+	            }
+
+	            // Shortcuts
+	            var hasherBlockSize = hasher.blockSize;
+	            var hasherBlockSizeBytes = hasherBlockSize * 4;
+
+	            // Allow arbitrary length keys
+	            if (key.sigBytes > hasherBlockSizeBytes) {
+	                key = hasher.finalize(key);
+	            }
+
+	            // Clamp excess bits
+	            key.clamp();
+
+	            // Clone key for inner and outer pads
+	            var oKey = this._oKey = key.clone();
+	            var iKey = this._iKey = key.clone();
+
+	            // Shortcuts
+	            var oKeyWords = oKey.words;
+	            var iKeyWords = iKey.words;
+
+	            // XOR keys with pad constants
+	            for (var i = 0; i < hasherBlockSize; i++) {
+	                oKeyWords[i] ^= 0x5c5c5c5c;
+	                iKeyWords[i] ^= 0x36363636;
+	            }
+	            oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;
+
+	            // Set initial values
+	            this.reset();
+	        },
+
+	        /**
+	         * Resets this HMAC to its initial state.
+	         *
+	         * @example
+	         *
+	         *     hmacHasher.reset();
+	         */
+	        reset: function () {
+	            // Shortcut
+	            var hasher = this._hasher;
+
+	            // Reset
+	            hasher.reset();
+	            hasher.update(this._iKey);
+	        },
+
+	        /**
+	         * Updates this HMAC with a message.
+	         *
+	         * @param {WordArray|string} messageUpdate The message to append.
+	         *
+	         * @return {HMAC} This HMAC instance.
+	         *
+	         * @example
+	         *
+	         *     hmacHasher.update('message');
+	         *     hmacHasher.update(wordArray);
+	         */
+	        update: function (messageUpdate) {
+	            this._hasher.update(messageUpdate);
+
+	            // Chainable
+	            return this;
+	        },
+
+	        /**
+	         * Finalizes the HMAC computation.
+	         * Note that the finalize operation is effectively a destructive, read-once operation.
+	         *
+	         * @param {WordArray|string} messageUpdate (Optional) A final message update.
+	         *
+	         * @return {WordArray} The HMAC.
+	         *
+	         * @example
+	         *
+	         *     var hmac = hmacHasher.finalize();
+	         *     var hmac = hmacHasher.finalize('message');
+	         *     var hmac = hmacHasher.finalize(wordArray);
+	         */
+	        finalize: function (messageUpdate) {
+	            // Shortcut
+	            var hasher = this._hasher;
+
+	            // Compute HMAC
+	            var innerHash = hasher.finalize(messageUpdate);
+	            hasher.reset();
+	            var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));
+
+	            return hmac;
+	        }
+	    });
+	}());
+
+
+	(function () {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var Base = C_lib.Base;
+	    var WordArray = C_lib.WordArray;
+	    var C_algo = C.algo;
+	    var SHA256 = C_algo.SHA256;
+	    var HMAC = C_algo.HMAC;
+
+	    /**
+	     * Password-Based Key Derivation Function 2 algorithm.
+	     */
+	    var PBKDF2 = C_algo.PBKDF2 = Base.extend({
+	        /**
+	         * Configuration options.
+	         *
+	         * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)
+	         * @property {Hasher} hasher The hasher to use. Default: SHA256
+	         * @property {number} iterations The number of iterations to perform. Default: 250000
+	         */
+	        cfg: Base.extend({
+	            keySize: 128/32,
+	            hasher: SHA256,
+	            iterations: 250000
+	        }),
+
+	        /**
+	         * Initializes a newly created key derivation function.
+	         *
+	         * @param {Object} cfg (Optional) The configuration options to use for the derivation.
+	         *
+	         * @example
+	         *
+	         *     var kdf = CryptoJS.algo.PBKDF2.create();
+	         *     var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 });
+	         *     var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 });
+	         */
+	        init: function (cfg) {
+	            this.cfg = this.cfg.extend(cfg);
+	        },
+
+	        /**
+	         * Computes the Password-Based Key Derivation Function 2.
+	         *
+	         * @param {WordArray|string} password The password.
+	         * @param {WordArray|string} salt A salt.
+	         *
+	         * @return {WordArray} The derived key.
+	         *
+	         * @example
+	         *
+	         *     var key = kdf.compute(password, salt);
+	         */
+	        compute: function (password, salt) {
+	            // Shortcut
+	            var cfg = this.cfg;
+
+	            // Init HMAC
+	            var hmac = HMAC.create(cfg.hasher, password);
+
+	            // Initial values
+	            var derivedKey = WordArray.create();
+	            var blockIndex = WordArray.create([0x00000001]);
+
+	            // Shortcuts
+	            var derivedKeyWords = derivedKey.words;
+	            var blockIndexWords = blockIndex.words;
+	            var keySize = cfg.keySize;
+	            var iterations = cfg.iterations;
+
+	            // Generate key
+	            while (derivedKeyWords.length < keySize) {
+	                var block = hmac.update(salt).finalize(blockIndex);
+	                hmac.reset();
+
+	                // Shortcuts
+	                var blockWords = block.words;
+	                var blockWordsLength = blockWords.length;
+
+	                // Iterations
+	                var intermediate = block;
+	                for (var i = 1; i < iterations; i++) {
+	                    intermediate = hmac.finalize(intermediate);
+	                    hmac.reset();
+
+	                    // Shortcut
+	                    var intermediateWords = intermediate.words;
+
+	                    // XOR intermediate with block
+	                    for (var j = 0; j < blockWordsLength; j++) {
+	                        blockWords[j] ^= intermediateWords[j];
+	                    }
+	                }
+
+	                derivedKey.concat(block);
+	                blockIndexWords[0]++;
+	            }
+	            derivedKey.sigBytes = keySize * 4;
+
+	            return derivedKey;
+	        }
+	    });
+
+	    /**
+	     * Computes the Password-Based Key Derivation Function 2.
+	     *
+	     * @param {WordArray|string} password The password.
+	     * @param {WordArray|string} salt A salt.
+	     * @param {Object} cfg (Optional) The configuration options to use for this computation.
+	     *
+	     * @return {WordArray} The derived key.
+	     *
+	     * @static
+	     *
+	     * @example
+	     *
+	     *     var key = CryptoJS.PBKDF2(password, salt);
+	     *     var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 });
+	     *     var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 });
+	     */
+	    C.PBKDF2 = function (password, salt, cfg) {
+	        return PBKDF2.create(cfg).compute(password, salt);
+	    };
+	}());
+
+
+	(function () {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var Base = C_lib.Base;
+	    var WordArray = C_lib.WordArray;
+	    var C_algo = C.algo;
+	    var MD5 = C_algo.MD5;
+
+	    /**
+	     * This key derivation function is meant to conform with EVP_BytesToKey.
+	     * www.openssl.org/docs/crypto/EVP_BytesToKey.html
+	     */
+	    var EvpKDF = C_algo.EvpKDF = Base.extend({
+	        /**
+	         * Configuration options.
+	         *
+	         * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)
+	         * @property {Hasher} hasher The hash algorithm to use. Default: MD5
+	         * @property {number} iterations The number of iterations to perform. Default: 1
+	         */
+	        cfg: Base.extend({
+	            keySize: 128/32,
+	            hasher: MD5,
+	            iterations: 1
+	        }),
+
+	        /**
+	         * Initializes a newly created key derivation function.
+	         *
+	         * @param {Object} cfg (Optional) The configuration options to use for the derivation.
+	         *
+	         * @example
+	         *
+	         *     var kdf = CryptoJS.algo.EvpKDF.create();
+	         *     var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });
+	         *     var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });
+	         */
+	        init: function (cfg) {
+	            this.cfg = this.cfg.extend(cfg);
+	        },
+
+	        /**
+	         * Derives a key from a password.
+	         *
+	         * @param {WordArray|string} password The password.
+	         * @param {WordArray|string} salt A salt.
+	         *
+	         * @return {WordArray} The derived key.
+	         *
+	         * @example
+	         *
+	         *     var key = kdf.compute(password, salt);
+	         */
+	        compute: function (password, salt) {
+	            var block;
+
+	            // Shortcut
+	            var cfg = this.cfg;
+
+	            // Init hasher
+	            var hasher = cfg.hasher.create();
+
+	            // Initial values
+	            var derivedKey = WordArray.create();
+
+	            // Shortcuts
+	            var derivedKeyWords = derivedKey.words;
+	            var keySize = cfg.keySize;
+	            var iterations = cfg.iterations;
+
+	            // Generate key
+	            while (derivedKeyWords.length < keySize) {
+	                if (block) {
+	                    hasher.update(block);
+	                }
+	                block = hasher.update(password).finalize(salt);
+	                hasher.reset();
+
+	                // Iterations
+	                for (var i = 1; i < iterations; i++) {
+	                    block = hasher.finalize(block);
+	                    hasher.reset();
+	                }
+
+	                derivedKey.concat(block);
+	            }
+	            derivedKey.sigBytes = keySize * 4;
+
+	            return derivedKey;
+	        }
+	    });
+
+	    /**
+	     * Derives a key from a password.
+	     *
+	     * @param {WordArray|string} password The password.
+	     * @param {WordArray|string} salt A salt.
+	     * @param {Object} cfg (Optional) The configuration options to use for this computation.
+	     *
+	     * @return {WordArray} The derived key.
+	     *
+	     * @static
+	     *
+	     * @example
+	     *
+	     *     var key = CryptoJS.EvpKDF(password, salt);
+	     *     var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });
+	     *     var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });
+	     */
+	    C.EvpKDF = function (password, salt, cfg) {
+	        return EvpKDF.create(cfg).compute(password, salt);
+	    };
+	}());
+
+
+	/**
+	 * Cipher core components.
+	 */
+	CryptoJS.lib.Cipher || (function (undefined) {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var Base = C_lib.Base;
+	    var WordArray = C_lib.WordArray;
+	    var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;
+	    var C_enc = C.enc;
+	    var Utf8 = C_enc.Utf8;
+	    var Base64 = C_enc.Base64;
+	    var C_algo = C.algo;
+	    var EvpKDF = C_algo.EvpKDF;
+
+	    /**
+	     * Abstract base cipher template.
+	     *
+	     * @property {number} keySize This cipher's key size. Default: 4 (128 bits)
+	     * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits)
+	     * @property {number} _ENC_XFORM_MODE A constant representing encryption mode.
+	     * @property {number} _DEC_XFORM_MODE A constant representing decryption mode.
+	     */
+	    var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({
+	        /**
+	         * Configuration options.
+	         *
+	         * @property {WordArray} iv The IV to use for this operation.
+	         */
+	        cfg: Base.extend(),
+
+	        /**
+	         * Creates this cipher in encryption mode.
+	         *
+	         * @param {WordArray} key The key.
+	         * @param {Object} cfg (Optional) The configuration options to use for this operation.
+	         *
+	         * @return {Cipher} A cipher instance.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });
+	         */
+	        createEncryptor: function (key, cfg) {
+	            return this.create(this._ENC_XFORM_MODE, key, cfg);
+	        },
+
+	        /**
+	         * Creates this cipher in decryption mode.
+	         *
+	         * @param {WordArray} key The key.
+	         * @param {Object} cfg (Optional) The configuration options to use for this operation.
+	         *
+	         * @return {Cipher} A cipher instance.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });
+	         */
+	        createDecryptor: function (key, cfg) {
+	            return this.create(this._DEC_XFORM_MODE, key, cfg);
+	        },
+
+	        /**
+	         * Initializes a newly created cipher.
+	         *
+	         * @param {number} xformMode Either the encryption or decryption transormation mode constant.
+	         * @param {WordArray} key The key.
+	         * @param {Object} cfg (Optional) The configuration options to use for this operation.
+	         *
+	         * @example
+	         *
+	         *     var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });
+	         */
+	        init: function (xformMode, key, cfg) {
+	            // Apply config defaults
+	            this.cfg = this.cfg.extend(cfg);
+
+	            // Store transform mode and key
+	            this._xformMode = xformMode;
+	            this._key = key;
+
+	            // Set initial values
+	            this.reset();
+	        },
+
+	        /**
+	         * Resets this cipher to its initial state.
+	         *
+	         * @example
+	         *
+	         *     cipher.reset();
+	         */
+	        reset: function () {
+	            // Reset data buffer
+	            BufferedBlockAlgorithm.reset.call(this);
+
+	            // Perform concrete-cipher logic
+	            this._doReset();
+	        },
+
+	        /**
+	         * Adds data to be encrypted or decrypted.
+	         *
+	         * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.
+	         *
+	         * @return {WordArray} The data after processing.
+	         *
+	         * @example
+	         *
+	         *     var encrypted = cipher.process('data');
+	         *     var encrypted = cipher.process(wordArray);
+	         */
+	        process: function (dataUpdate) {
+	            // Append
+	            this._append(dataUpdate);
+
+	            // Process available blocks
+	            return this._process();
+	        },
+
+	        /**
+	         * Finalizes the encryption or decryption process.
+	         * Note that the finalize operation is effectively a destructive, read-once operation.
+	         *
+	         * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.
+	         *
+	         * @return {WordArray} The data after final processing.
+	         *
+	         * @example
+	         *
+	         *     var encrypted = cipher.finalize();
+	         *     var encrypted = cipher.finalize('data');
+	         *     var encrypted = cipher.finalize(wordArray);
+	         */
+	        finalize: function (dataUpdate) {
+	            // Final data update
+	            if (dataUpdate) {
+	                this._append(dataUpdate);
+	            }
+
+	            // Perform concrete-cipher logic
+	            var finalProcessedData = this._doFinalize();
+
+	            return finalProcessedData;
+	        },
+
+	        keySize: 128/32,
+
+	        ivSize: 128/32,
+
+	        _ENC_XFORM_MODE: 1,
+
+	        _DEC_XFORM_MODE: 2,
+
+	        /**
+	         * Creates shortcut functions to a cipher's object interface.
+	         *
+	         * @param {Cipher} cipher The cipher to create a helper for.
+	         *
+	         * @return {Object} An object with encrypt and decrypt shortcut functions.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);
+	         */
+	        _createHelper: (function () {
+	            function selectCipherStrategy(key) {
+	                if (typeof key == 'string') {
+	                    return PasswordBasedCipher;
+	                } else {
+	                    return SerializableCipher;
+	                }
+	            }
+
+	            return function (cipher) {
+	                return {
+	                    encrypt: function (message, key, cfg) {
+	                        return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);
+	                    },
+
+	                    decrypt: function (ciphertext, key, cfg) {
+	                        return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);
+	                    }
+	                };
+	            };
+	        }())
+	    });
+
+	    /**
+	     * Abstract base stream cipher template.
+	     *
+	     * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits)
+	     */
+	    var StreamCipher = C_lib.StreamCipher = Cipher.extend({
+	        _doFinalize: function () {
+	            // Process partial blocks
+	            var finalProcessedBlocks = this._process(!!'flush');
+
+	            return finalProcessedBlocks;
+	        },
+
+	        blockSize: 1
+	    });
+
+	    /**
+	     * Mode namespace.
+	     */
+	    var C_mode = C.mode = {};
+
+	    /**
+	     * Abstract base block cipher mode template.
+	     */
+	    var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({
+	        /**
+	         * Creates this mode for encryption.
+	         *
+	         * @param {Cipher} cipher A block cipher instance.
+	         * @param {Array} iv The IV words.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);
+	         */
+	        createEncryptor: function (cipher, iv) {
+	            return this.Encryptor.create(cipher, iv);
+	        },
+
+	        /**
+	         * Creates this mode for decryption.
+	         *
+	         * @param {Cipher} cipher A block cipher instance.
+	         * @param {Array} iv The IV words.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);
+	         */
+	        createDecryptor: function (cipher, iv) {
+	            return this.Decryptor.create(cipher, iv);
+	        },
+
+	        /**
+	         * Initializes a newly created mode.
+	         *
+	         * @param {Cipher} cipher A block cipher instance.
+	         * @param {Array} iv The IV words.
+	         *
+	         * @example
+	         *
+	         *     var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);
+	         */
+	        init: function (cipher, iv) {
+	            this._cipher = cipher;
+	            this._iv = iv;
+	        }
+	    });
+
+	    /**
+	     * Cipher Block Chaining mode.
+	     */
+	    var CBC = C_mode.CBC = (function () {
+	        /**
+	         * Abstract base CBC mode.
+	         */
+	        var CBC = BlockCipherMode.extend();
+
+	        /**
+	         * CBC encryptor.
+	         */
+	        CBC.Encryptor = CBC.extend({
+	            /**
+	             * Processes the data block at offset.
+	             *
+	             * @param {Array} words The data words to operate on.
+	             * @param {number} offset The offset where the block starts.
+	             *
+	             * @example
+	             *
+	             *     mode.processBlock(data.words, offset);
+	             */
+	            processBlock: function (words, offset) {
+	                // Shortcuts
+	                var cipher = this._cipher;
+	                var blockSize = cipher.blockSize;
+
+	                // XOR and encrypt
+	                xorBlock.call(this, words, offset, blockSize);
+	                cipher.encryptBlock(words, offset);
+
+	                // Remember this block to use with next block
+	                this._prevBlock = words.slice(offset, offset + blockSize);
+	            }
+	        });
+
+	        /**
+	         * CBC decryptor.
+	         */
+	        CBC.Decryptor = CBC.extend({
+	            /**
+	             * Processes the data block at offset.
+	             *
+	             * @param {Array} words The data words to operate on.
+	             * @param {number} offset The offset where the block starts.
+	             *
+	             * @example
+	             *
+	             *     mode.processBlock(data.words, offset);
+	             */
+	            processBlock: function (words, offset) {
+	                // Shortcuts
+	                var cipher = this._cipher;
+	                var blockSize = cipher.blockSize;
+
+	                // Remember this block to use with next block
+	                var thisBlock = words.slice(offset, offset + blockSize);
+
+	                // Decrypt and XOR
+	                cipher.decryptBlock(words, offset);
+	                xorBlock.call(this, words, offset, blockSize);
+
+	                // This block becomes the previous block
+	                this._prevBlock = thisBlock;
+	            }
+	        });
+
+	        function xorBlock(words, offset, blockSize) {
+	            var block;
+
+	            // Shortcut
+	            var iv = this._iv;
+
+	            // Choose mixing block
+	            if (iv) {
+	                block = iv;
+
+	                // Remove IV for subsequent blocks
+	                this._iv = undefined;
+	            } else {
+	                block = this._prevBlock;
+	            }
+
+	            // XOR blocks
+	            for (var i = 0; i < blockSize; i++) {
+	                words[offset + i] ^= block[i];
+	            }
+	        }
+
+	        return CBC;
+	    }());
+
+	    /**
+	     * Padding namespace.
+	     */
+	    var C_pad = C.pad = {};
+
+	    /**
+	     * PKCS #5/7 padding strategy.
+	     */
+	    var Pkcs7 = C_pad.Pkcs7 = {
+	        /**
+	         * Pads data using the algorithm defined in PKCS #5/7.
+	         *
+	         * @param {WordArray} data The data to pad.
+	         * @param {number} blockSize The multiple that the data should be padded to.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     CryptoJS.pad.Pkcs7.pad(wordArray, 4);
+	         */
+	        pad: function (data, blockSize) {
+	            // Shortcut
+	            var blockSizeBytes = blockSize * 4;
+
+	            // Count padding bytes
+	            var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;
+
+	            // Create padding word
+	            var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes;
+
+	            // Create padding
+	            var paddingWords = [];
+	            for (var i = 0; i < nPaddingBytes; i += 4) {
+	                paddingWords.push(paddingWord);
+	            }
+	            var padding = WordArray.create(paddingWords, nPaddingBytes);
+
+	            // Add padding
+	            data.concat(padding);
+	        },
+
+	        /**
+	         * Unpads data that had been padded using the algorithm defined in PKCS #5/7.
+	         *
+	         * @param {WordArray} data The data to unpad.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     CryptoJS.pad.Pkcs7.unpad(wordArray);
+	         */
+	        unpad: function (data) {
+	            // Get number of padding bytes from last byte
+	            var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;
+
+	            // Remove padding
+	            data.sigBytes -= nPaddingBytes;
+	        }
+	    };
+
+	    /**
+	     * Abstract base block cipher template.
+	     *
+	     * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits)
+	     */
+	    var BlockCipher = C_lib.BlockCipher = Cipher.extend({
+	        /**
+	         * Configuration options.
+	         *
+	         * @property {Mode} mode The block mode to use. Default: CBC
+	         * @property {Padding} padding The padding strategy to use. Default: Pkcs7
+	         */
+	        cfg: Cipher.cfg.extend({
+	            mode: CBC,
+	            padding: Pkcs7
+	        }),
+
+	        reset: function () {
+	            var modeCreator;
+
+	            // Reset cipher
+	            Cipher.reset.call(this);
+
+	            // Shortcuts
+	            var cfg = this.cfg;
+	            var iv = cfg.iv;
+	            var mode = cfg.mode;
+
+	            // Reset block mode
+	            if (this._xformMode == this._ENC_XFORM_MODE) {
+	                modeCreator = mode.createEncryptor;
+	            } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {
+	                modeCreator = mode.createDecryptor;
+	                // Keep at least one block in the buffer for unpadding
+	                this._minBufferSize = 1;
+	            }
+
+	            if (this._mode && this._mode.__creator == modeCreator) {
+	                this._mode.init(this, iv && iv.words);
+	            } else {
+	                this._mode = modeCreator.call(mode, this, iv && iv.words);
+	                this._mode.__creator = modeCreator;
+	            }
+	        },
+
+	        _doProcessBlock: function (words, offset) {
+	            this._mode.processBlock(words, offset);
+	        },
+
+	        _doFinalize: function () {
+	            var finalProcessedBlocks;
+
+	            // Shortcut
+	            var padding = this.cfg.padding;
+
+	            // Finalize
+	            if (this._xformMode == this._ENC_XFORM_MODE) {
+	                // Pad data
+	                padding.pad(this._data, this.blockSize);
+
+	                // Process final blocks
+	                finalProcessedBlocks = this._process(!!'flush');
+	            } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {
+	                // Process final blocks
+	                finalProcessedBlocks = this._process(!!'flush');
+
+	                // Unpad data
+	                padding.unpad(finalProcessedBlocks);
+	            }
+
+	            return finalProcessedBlocks;
+	        },
+
+	        blockSize: 128/32
+	    });
+
+	    /**
+	     * A collection of cipher parameters.
+	     *
+	     * @property {WordArray} ciphertext The raw ciphertext.
+	     * @property {WordArray} key The key to this ciphertext.
+	     * @property {WordArray} iv The IV used in the ciphering operation.
+	     * @property {WordArray} salt The salt used with a key derivation function.
+	     * @property {Cipher} algorithm The cipher algorithm.
+	     * @property {Mode} mode The block mode used in the ciphering operation.
+	     * @property {Padding} padding The padding scheme used in the ciphering operation.
+	     * @property {number} blockSize The block size of the cipher.
+	     * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.
+	     */
+	    var CipherParams = C_lib.CipherParams = Base.extend({
+	        /**
+	         * Initializes a newly created cipher params object.
+	         *
+	         * @param {Object} cipherParams An object with any of the possible cipher parameters.
+	         *
+	         * @example
+	         *
+	         *     var cipherParams = CryptoJS.lib.CipherParams.create({
+	         *         ciphertext: ciphertextWordArray,
+	         *         key: keyWordArray,
+	         *         iv: ivWordArray,
+	         *         salt: saltWordArray,
+	         *         algorithm: CryptoJS.algo.AES,
+	         *         mode: CryptoJS.mode.CBC,
+	         *         padding: CryptoJS.pad.PKCS7,
+	         *         blockSize: 4,
+	         *         formatter: CryptoJS.format.OpenSSL
+	         *     });
+	         */
+	        init: function (cipherParams) {
+	            this.mixIn(cipherParams);
+	        },
+
+	        /**
+	         * Converts this cipher params object to a string.
+	         *
+	         * @param {Format} formatter (Optional) The formatting strategy to use.
+	         *
+	         * @return {string} The stringified cipher params.
+	         *
+	         * @throws Error If neither the formatter nor the default formatter is set.
+	         *
+	         * @example
+	         *
+	         *     var string = cipherParams + '';
+	         *     var string = cipherParams.toString();
+	         *     var string = cipherParams.toString(CryptoJS.format.OpenSSL);
+	         */
+	        toString: function (formatter) {
+	            return (formatter || this.formatter).stringify(this);
+	        }
+	    });
+
+	    /**
+	     * Format namespace.
+	     */
+	    var C_format = C.format = {};
+
+	    /**
+	     * OpenSSL formatting strategy.
+	     */
+	    var OpenSSLFormatter = C_format.OpenSSL = {
+	        /**
+	         * Converts a cipher params object to an OpenSSL-compatible string.
+	         *
+	         * @param {CipherParams} cipherParams The cipher params object.
+	         *
+	         * @return {string} The OpenSSL-compatible string.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);
+	         */
+	        stringify: function (cipherParams) {
+	            var wordArray;
+
+	            // Shortcuts
+	            var ciphertext = cipherParams.ciphertext;
+	            var salt = cipherParams.salt;
+
+	            // Format
+	            if (salt) {
+	                wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext);
+	            } else {
+	                wordArray = ciphertext;
+	            }
+
+	            return wordArray.toString(Base64);
+	        },
+
+	        /**
+	         * Converts an OpenSSL-compatible string to a cipher params object.
+	         *
+	         * @param {string} openSSLStr The OpenSSL-compatible string.
+	         *
+	         * @return {CipherParams} The cipher params object.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);
+	         */
+	        parse: function (openSSLStr) {
+	            var salt;
+
+	            // Parse base64
+	            var ciphertext = Base64.parse(openSSLStr);
+
+	            // Shortcut
+	            var ciphertextWords = ciphertext.words;
+
+	            // Test for salt
+	            if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) {
+	                // Extract salt
+	                salt = WordArray.create(ciphertextWords.slice(2, 4));
+
+	                // Remove salt from ciphertext
+	                ciphertextWords.splice(0, 4);
+	                ciphertext.sigBytes -= 16;
+	            }
+
+	            return CipherParams.create({ ciphertext: ciphertext, salt: salt });
+	        }
+	    };
+
+	    /**
+	     * A cipher wrapper that returns ciphertext as a serializable cipher params object.
+	     */
+	    var SerializableCipher = C_lib.SerializableCipher = Base.extend({
+	        /**
+	         * Configuration options.
+	         *
+	         * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL
+	         */
+	        cfg: Base.extend({
+	            format: OpenSSLFormatter
+	        }),
+
+	        /**
+	         * Encrypts a message.
+	         *
+	         * @param {Cipher} cipher The cipher algorithm to use.
+	         * @param {WordArray|string} message The message to encrypt.
+	         * @param {WordArray} key The key.
+	         * @param {Object} cfg (Optional) The configuration options to use for this operation.
+	         *
+	         * @return {CipherParams} A cipher params object.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);
+	         *     var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });
+	         *     var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });
+	         */
+	        encrypt: function (cipher, message, key, cfg) {
+	            // Apply config defaults
+	            cfg = this.cfg.extend(cfg);
+
+	            // Encrypt
+	            var encryptor = cipher.createEncryptor(key, cfg);
+	            var ciphertext = encryptor.finalize(message);
+
+	            // Shortcut
+	            var cipherCfg = encryptor.cfg;
+
+	            // Create and return serializable cipher params
+	            return CipherParams.create({
+	                ciphertext: ciphertext,
+	                key: key,
+	                iv: cipherCfg.iv,
+	                algorithm: cipher,
+	                mode: cipherCfg.mode,
+	                padding: cipherCfg.padding,
+	                blockSize: cipher.blockSize,
+	                formatter: cfg.format
+	            });
+	        },
+
+	        /**
+	         * Decrypts serialized ciphertext.
+	         *
+	         * @param {Cipher} cipher The cipher algorithm to use.
+	         * @param {CipherParams|string} ciphertext The ciphertext to decrypt.
+	         * @param {WordArray} key The key.
+	         * @param {Object} cfg (Optional) The configuration options to use for this operation.
+	         *
+	         * @return {WordArray} The plaintext.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });
+	         *     var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });
+	         */
+	        decrypt: function (cipher, ciphertext, key, cfg) {
+	            // Apply config defaults
+	            cfg = this.cfg.extend(cfg);
+
+	            // Convert string to CipherParams
+	            ciphertext = this._parse(ciphertext, cfg.format);
+
+	            // Decrypt
+	            var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);
+
+	            return plaintext;
+	        },
+
+	        /**
+	         * Converts serialized ciphertext to CipherParams,
+	         * else assumed CipherParams already and returns ciphertext unchanged.
+	         *
+	         * @param {CipherParams|string} ciphertext The ciphertext.
+	         * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.
+	         *
+	         * @return {CipherParams} The unserialized ciphertext.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);
+	         */
+	        _parse: function (ciphertext, format) {
+	            if (typeof ciphertext == 'string') {
+	                return format.parse(ciphertext, this);
+	            } else {
+	                return ciphertext;
+	            }
+	        }
+	    });
+
+	    /**
+	     * Key derivation function namespace.
+	     */
+	    var C_kdf = C.kdf = {};
+
+	    /**
+	     * OpenSSL key derivation function.
+	     */
+	    var OpenSSLKdf = C_kdf.OpenSSL = {
+	        /**
+	         * Derives a key and IV from a password.
+	         *
+	         * @param {string} password The password to derive from.
+	         * @param {number} keySize The size in words of the key to generate.
+	         * @param {number} ivSize The size in words of the IV to generate.
+	         * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.
+	         *
+	         * @return {CipherParams} A cipher params object with the key, IV, and salt.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);
+	         *     var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');
+	         */
+	        execute: function (password, keySize, ivSize, salt, hasher) {
+	            // Generate random salt
+	            if (!salt) {
+	                salt = WordArray.random(64/8);
+	            }
+
+	            // Derive key and IV
+	            if (!hasher) {
+	                var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt);
+	            } else {
+	                var key = EvpKDF.create({ keySize: keySize + ivSize, hasher: hasher }).compute(password, salt);
+	            }
+
+
+	            // Separate key and IV
+	            var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);
+	            key.sigBytes = keySize * 4;
+
+	            // Return params
+	            return CipherParams.create({ key: key, iv: iv, salt: salt });
+	        }
+	    };
+
+	    /**
+	     * A serializable cipher wrapper that derives the key from a password,
+	     * and returns ciphertext as a serializable cipher params object.
+	     */
+	    var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({
+	        /**
+	         * Configuration options.
+	         *
+	         * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL
+	         */
+	        cfg: SerializableCipher.cfg.extend({
+	            kdf: OpenSSLKdf
+	        }),
+
+	        /**
+	         * Encrypts a message using a password.
+	         *
+	         * @param {Cipher} cipher The cipher algorithm to use.
+	         * @param {WordArray|string} message The message to encrypt.
+	         * @param {string} password The password.
+	         * @param {Object} cfg (Optional) The configuration options to use for this operation.
+	         *
+	         * @return {CipherParams} A cipher params object.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');
+	         *     var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });
+	         */
+	        encrypt: function (cipher, message, password, cfg) {
+	            // Apply config defaults
+	            cfg = this.cfg.extend(cfg);
+
+	            // Derive key and other params
+	            var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, cfg.salt, cfg.hasher);
+
+	            // Add IV to config
+	            cfg.iv = derivedParams.iv;
+
+	            // Encrypt
+	            var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg);
+
+	            // Mix in derived params
+	            ciphertext.mixIn(derivedParams);
+
+	            return ciphertext;
+	        },
+
+	        /**
+	         * Decrypts serialized ciphertext using a password.
+	         *
+	         * @param {Cipher} cipher The cipher algorithm to use.
+	         * @param {CipherParams|string} ciphertext The ciphertext to decrypt.
+	         * @param {string} password The password.
+	         * @param {Object} cfg (Optional) The configuration options to use for this operation.
+	         *
+	         * @return {WordArray} The plaintext.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });
+	         *     var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });
+	         */
+	        decrypt: function (cipher, ciphertext, password, cfg) {
+	            // Apply config defaults
+	            cfg = this.cfg.extend(cfg);
+
+	            // Convert string to CipherParams
+	            ciphertext = this._parse(ciphertext, cfg.format);
+
+	            // Derive key and other params
+	            var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt, cfg.hasher);
+
+	            // Add IV to config
+	            cfg.iv = derivedParams.iv;
+
+	            // Decrypt
+	            var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);
+
+	            return plaintext;
+	        }
+	    });
+	}());
+
+
+	/**
+	 * Cipher Feedback block mode.
+	 */
+	CryptoJS.mode.CFB = (function () {
+	    var CFB = CryptoJS.lib.BlockCipherMode.extend();
+
+	    CFB.Encryptor = CFB.extend({
+	        processBlock: function (words, offset) {
+	            // Shortcuts
+	            var cipher = this._cipher;
+	            var blockSize = cipher.blockSize;
+
+	            generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);
+
+	            // Remember this block to use with next block
+	            this._prevBlock = words.slice(offset, offset + blockSize);
+	        }
+	    });
+
+	    CFB.Decryptor = CFB.extend({
+	        processBlock: function (words, offset) {
+	            // Shortcuts
+	            var cipher = this._cipher;
+	            var blockSize = cipher.blockSize;
+
+	            // Remember this block to use with next block
+	            var thisBlock = words.slice(offset, offset + blockSize);
+
+	            generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);
+
+	            // This block becomes the previous block
+	            this._prevBlock = thisBlock;
+	        }
+	    });
+
+	    function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) {
+	        var keystream;
+
+	        // Shortcut
+	        var iv = this._iv;
+
+	        // Generate keystream
+	        if (iv) {
+	            keystream = iv.slice(0);
+
+	            // Remove IV for subsequent blocks
+	            this._iv = undefined;
+	        } else {
+	            keystream = this._prevBlock;
+	        }
+	        cipher.encryptBlock(keystream, 0);
+
+	        // Encrypt
+	        for (var i = 0; i < blockSize; i++) {
+	            words[offset + i] ^= keystream[i];
+	        }
+	    }
+
+	    return CFB;
+	}());
+
+
+	/**
+	 * Counter block mode.
+	 */
+	CryptoJS.mode.CTR = (function () {
+	    var CTR = CryptoJS.lib.BlockCipherMode.extend();
+
+	    var Encryptor = CTR.Encryptor = CTR.extend({
+	        processBlock: function (words, offset) {
+	            // Shortcuts
+	            var cipher = this._cipher
+	            var blockSize = cipher.blockSize;
+	            var iv = this._iv;
+	            var counter = this._counter;
+
+	            // Generate keystream
+	            if (iv) {
+	                counter = this._counter = iv.slice(0);
+
+	                // Remove IV for subsequent blocks
+	                this._iv = undefined;
+	            }
+	            var keystream = counter.slice(0);
+	            cipher.encryptBlock(keystream, 0);
+
+	            // Increment counter
+	            counter[blockSize - 1] = (counter[blockSize - 1] + 1) | 0
+
+	            // Encrypt
+	            for (var i = 0; i < blockSize; i++) {
+	                words[offset + i] ^= keystream[i];
+	            }
+	        }
+	    });
+
+	    CTR.Decryptor = Encryptor;
+
+	    return CTR;
+	}());
+
+
+	/** @preserve
+	 * Counter block mode compatible with  Dr Brian Gladman fileenc.c
+	 * derived from CryptoJS.mode.CTR
+	 * Jan Hruby jhruby.web@gmail.com
+	 */
+	CryptoJS.mode.CTRGladman = (function () {
+	    var CTRGladman = CryptoJS.lib.BlockCipherMode.extend();
+
+		function incWord(word)
+		{
+			if (((word >> 24) & 0xff) === 0xff) { //overflow
+			var b1 = (word >> 16)&0xff;
+			var b2 = (word >> 8)&0xff;
+			var b3 = word & 0xff;
+
+			if (b1 === 0xff) // overflow b1
+			{
+			b1 = 0;
+			if (b2 === 0xff)
+			{
+				b2 = 0;
+				if (b3 === 0xff)
+				{
+					b3 = 0;
+				}
+				else
+				{
+					++b3;
+				}
+			}
+			else
+			{
+				++b2;
+			}
+			}
+			else
+			{
+			++b1;
+			}
+
+			word = 0;
+			word += (b1 << 16);
+			word += (b2 << 8);
+			word += b3;
+			}
+			else
+			{
+			word += (0x01 << 24);
+			}
+			return word;
+		}
+
+		function incCounter(counter)
+		{
+			if ((counter[0] = incWord(counter[0])) === 0)
+			{
+				// encr_data in fileenc.c from  Dr Brian Gladman's counts only with DWORD j < 8
+				counter[1] = incWord(counter[1]);
+			}
+			return counter;
+		}
+
+	    var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({
+	        processBlock: function (words, offset) {
+	            // Shortcuts
+	            var cipher = this._cipher
+	            var blockSize = cipher.blockSize;
+	            var iv = this._iv;
+	            var counter = this._counter;
+
+	            // Generate keystream
+	            if (iv) {
+	                counter = this._counter = iv.slice(0);
+
+	                // Remove IV for subsequent blocks
+	                this._iv = undefined;
+	            }
+
+				incCounter(counter);
+
+				var keystream = counter.slice(0);
+	            cipher.encryptBlock(keystream, 0);
+
+	            // Encrypt
+	            for (var i = 0; i < blockSize; i++) {
+	                words[offset + i] ^= keystream[i];
+	            }
+	        }
+	    });
+
+	    CTRGladman.Decryptor = Encryptor;
+
+	    return CTRGladman;
+	}());
+
+
+
+
+	/**
+	 * Output Feedback block mode.
+	 */
+	CryptoJS.mode.OFB = (function () {
+	    var OFB = CryptoJS.lib.BlockCipherMode.extend();
+
+	    var Encryptor = OFB.Encryptor = OFB.extend({
+	        processBlock: function (words, offset) {
+	            // Shortcuts
+	            var cipher = this._cipher
+	            var blockSize = cipher.blockSize;
+	            var iv = this._iv;
+	            var keystream = this._keystream;
+
+	            // Generate keystream
+	            if (iv) {
+	                keystream = this._keystream = iv.slice(0);
+
+	                // Remove IV for subsequent blocks
+	                this._iv = undefined;
+	            }
+	            cipher.encryptBlock(keystream, 0);
+
+	            // Encrypt
+	            for (var i = 0; i < blockSize; i++) {
+	                words[offset + i] ^= keystream[i];
+	            }
+	        }
+	    });
+
+	    OFB.Decryptor = Encryptor;
+
+	    return OFB;
+	}());
+
+
+	/**
+	 * Electronic Codebook block mode.
+	 */
+	CryptoJS.mode.ECB = (function () {
+	    var ECB = CryptoJS.lib.BlockCipherMode.extend();
+
+	    ECB.Encryptor = ECB.extend({
+	        processBlock: function (words, offset) {
+	            this._cipher.encryptBlock(words, offset);
+	        }
+	    });
+
+	    ECB.Decryptor = ECB.extend({
+	        processBlock: function (words, offset) {
+	            this._cipher.decryptBlock(words, offset);
+	        }
+	    });
+
+	    return ECB;
+	}());
+
+
+	/**
+	 * ANSI X.923 padding strategy.
+	 */
+	CryptoJS.pad.AnsiX923 = {
+	    pad: function (data, blockSize) {
+	        // Shortcuts
+	        var dataSigBytes = data.sigBytes;
+	        var blockSizeBytes = blockSize * 4;
+
+	        // Count padding bytes
+	        var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes;
+
+	        // Compute last byte position
+	        var lastBytePos = dataSigBytes + nPaddingBytes - 1;
+
+	        // Pad
+	        data.clamp();
+	        data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8);
+	        data.sigBytes += nPaddingBytes;
+	    },
+
+	    unpad: function (data) {
+	        // Get number of padding bytes from last byte
+	        var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;
+
+	        // Remove padding
+	        data.sigBytes -= nPaddingBytes;
+	    }
+	};
+
+
+	/**
+	 * ISO 10126 padding strategy.
+	 */
+	CryptoJS.pad.Iso10126 = {
+	    pad: function (data, blockSize) {
+	        // Shortcut
+	        var blockSizeBytes = blockSize * 4;
+
+	        // Count padding bytes
+	        var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;
+
+	        // Pad
+	        data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)).
+	             concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1));
+	    },
+
+	    unpad: function (data) {
+	        // Get number of padding bytes from last byte
+	        var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;
+
+	        // Remove padding
+	        data.sigBytes -= nPaddingBytes;
+	    }
+	};
+
+
+	/**
+	 * ISO/IEC 9797-1 Padding Method 2.
+	 */
+	CryptoJS.pad.Iso97971 = {
+	    pad: function (data, blockSize) {
+	        // Add 0x80 byte
+	        data.concat(CryptoJS.lib.WordArray.create([0x80000000], 1));
+
+	        // Zero pad the rest
+	        CryptoJS.pad.ZeroPadding.pad(data, blockSize);
+	    },
+
+	    unpad: function (data) {
+	        // Remove zero padding
+	        CryptoJS.pad.ZeroPadding.unpad(data);
+
+	        // Remove one more byte -- the 0x80 byte
+	        data.sigBytes--;
+	    }
+	};
+
+
+	/**
+	 * Zero padding strategy.
+	 */
+	CryptoJS.pad.ZeroPadding = {
+	    pad: function (data, blockSize) {
+	        // Shortcut
+	        var blockSizeBytes = blockSize * 4;
+
+	        // Pad
+	        data.clamp();
+	        data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes);
+	    },
+
+	    unpad: function (data) {
+	        // Shortcut
+	        var dataWords = data.words;
+
+	        // Unpad
+	        var i = data.sigBytes - 1;
+	        for (var i = data.sigBytes - 1; i >= 0; i--) {
+	            if (((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) {
+	                data.sigBytes = i + 1;
+	                break;
+	            }
+	        }
+	    }
+	};
+
+
+	/**
+	 * A noop padding strategy.
+	 */
+	CryptoJS.pad.NoPadding = {
+	    pad: function () {
+	    },
+
+	    unpad: function () {
+	    }
+	};
+
+
+	(function (undefined) {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var CipherParams = C_lib.CipherParams;
+	    var C_enc = C.enc;
+	    var Hex = C_enc.Hex;
+	    var C_format = C.format;
+
+	    var HexFormatter = C_format.Hex = {
+	        /**
+	         * Converts the ciphertext of a cipher params object to a hexadecimally encoded string.
+	         *
+	         * @param {CipherParams} cipherParams The cipher params object.
+	         *
+	         * @return {string} The hexadecimally encoded string.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var hexString = CryptoJS.format.Hex.stringify(cipherParams);
+	         */
+	        stringify: function (cipherParams) {
+	            return cipherParams.ciphertext.toString(Hex);
+	        },
+
+	        /**
+	         * Converts a hexadecimally encoded ciphertext string to a cipher params object.
+	         *
+	         * @param {string} input The hexadecimally encoded string.
+	         *
+	         * @return {CipherParams} The cipher params object.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var cipherParams = CryptoJS.format.Hex.parse(hexString);
+	         */
+	        parse: function (input) {
+	            var ciphertext = Hex.parse(input);
+	            return CipherParams.create({ ciphertext: ciphertext });
+	        }
+	    };
+	}());
+
+
+	(function () {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var BlockCipher = C_lib.BlockCipher;
+	    var C_algo = C.algo;
+
+	    // Lookup tables
+	    var SBOX = [];
+	    var INV_SBOX = [];
+	    var SUB_MIX_0 = [];
+	    var SUB_MIX_1 = [];
+	    var SUB_MIX_2 = [];
+	    var SUB_MIX_3 = [];
+	    var INV_SUB_MIX_0 = [];
+	    var INV_SUB_MIX_1 = [];
+	    var INV_SUB_MIX_2 = [];
+	    var INV_SUB_MIX_3 = [];
+
+	    // Compute lookup tables
+	    (function () {
+	        // Compute double table
+	        var d = [];
+	        for (var i = 0; i < 256; i++) {
+	            if (i < 128) {
+	                d[i] = i << 1;
+	            } else {
+	                d[i] = (i << 1) ^ 0x11b;
+	            }
+	        }
+
+	        // Walk GF(2^8)
+	        var x = 0;
+	        var xi = 0;
+	        for (var i = 0; i < 256; i++) {
+	            // Compute sbox
+	            var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4);
+	            sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63;
+	            SBOX[x] = sx;
+	            INV_SBOX[sx] = x;
+
+	            // Compute multiplication
+	            var x2 = d[x];
+	            var x4 = d[x2];
+	            var x8 = d[x4];
+
+	            // Compute sub bytes, mix columns tables
+	            var t = (d[sx] * 0x101) ^ (sx * 0x1010100);
+	            SUB_MIX_0[x] = (t << 24) | (t >>> 8);
+	            SUB_MIX_1[x] = (t << 16) | (t >>> 16);
+	            SUB_MIX_2[x] = (t << 8)  | (t >>> 24);
+	            SUB_MIX_3[x] = t;
+
+	            // Compute inv sub bytes, inv mix columns tables
+	            var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100);
+	            INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8);
+	            INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16);
+	            INV_SUB_MIX_2[sx] = (t << 8)  | (t >>> 24);
+	            INV_SUB_MIX_3[sx] = t;
+
+	            // Compute next counter
+	            if (!x) {
+	                x = xi = 1;
+	            } else {
+	                x = x2 ^ d[d[d[x8 ^ x2]]];
+	                xi ^= d[d[xi]];
+	            }
+	        }
+	    }());
+
+	    // Precomputed Rcon lookup
+	    var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];
+
+	    /**
+	     * AES block cipher algorithm.
+	     */
+	    var AES = C_algo.AES = BlockCipher.extend({
+	        _doReset: function () {
+	            var t;
+
+	            // Skip reset of nRounds has been set before and key did not change
+	            if (this._nRounds && this._keyPriorReset === this._key) {
+	                return;
+	            }
+
+	            // Shortcuts
+	            var key = this._keyPriorReset = this._key;
+	            var keyWords = key.words;
+	            var keySize = key.sigBytes / 4;
+
+	            // Compute number of rounds
+	            var nRounds = this._nRounds = keySize + 6;
+
+	            // Compute number of key schedule rows
+	            var ksRows = (nRounds + 1) * 4;
+
+	            // Compute key schedule
+	            var keySchedule = this._keySchedule = [];
+	            for (var ksRow = 0; ksRow < ksRows; ksRow++) {
+	                if (ksRow < keySize) {
+	                    keySchedule[ksRow] = keyWords[ksRow];
+	                } else {
+	                    t = keySchedule[ksRow - 1];
+
+	                    if (!(ksRow % keySize)) {
+	                        // Rot word
+	                        t = (t << 8) | (t >>> 24);
+
+	                        // Sub word
+	                        t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];
+
+	                        // Mix Rcon
+	                        t ^= RCON[(ksRow / keySize) | 0] << 24;
+	                    } else if (keySize > 6 && ksRow % keySize == 4) {
+	                        // Sub word
+	                        t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];
+	                    }
+
+	                    keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;
+	                }
+	            }
+
+	            // Compute inv key schedule
+	            var invKeySchedule = this._invKeySchedule = [];
+	            for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) {
+	                var ksRow = ksRows - invKsRow;
+
+	                if (invKsRow % 4) {
+	                    var t = keySchedule[ksRow];
+	                } else {
+	                    var t = keySchedule[ksRow - 4];
+	                }
+
+	                if (invKsRow < 4 || ksRow <= 4) {
+	                    invKeySchedule[invKsRow] = t;
+	                } else {
+	                    invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^
+	                                               INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]];
+	                }
+	            }
+	        },
+
+	        encryptBlock: function (M, offset) {
+	            this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);
+	        },
+
+	        decryptBlock: function (M, offset) {
+	            // Swap 2nd and 4th rows
+	            var t = M[offset + 1];
+	            M[offset + 1] = M[offset + 3];
+	            M[offset + 3] = t;
+
+	            this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX);
+
+	            // Inv swap 2nd and 4th rows
+	            var t = M[offset + 1];
+	            M[offset + 1] = M[offset + 3];
+	            M[offset + 3] = t;
+	        },
+
+	        _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) {
+	            // Shortcut
+	            var nRounds = this._nRounds;
+
+	            // Get input, add round key
+	            var s0 = M[offset]     ^ keySchedule[0];
+	            var s1 = M[offset + 1] ^ keySchedule[1];
+	            var s2 = M[offset + 2] ^ keySchedule[2];
+	            var s3 = M[offset + 3] ^ keySchedule[3];
+
+	            // Key schedule row counter
+	            var ksRow = 4;
+
+	            // Rounds
+	            for (var round = 1; round < nRounds; round++) {
+	                // Shift rows, sub bytes, mix columns, add round key
+	                var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++];
+	                var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++];
+	                var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++];
+	                var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++];
+
+	                // Update state
+	                s0 = t0;
+	                s1 = t1;
+	                s2 = t2;
+	                s3 = t3;
+	            }
+
+	            // Shift rows, sub bytes, add round key
+	            var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++];
+	            var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++];
+	            var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++];
+	            var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++];
+
+	            // Set output
+	            M[offset]     = t0;
+	            M[offset + 1] = t1;
+	            M[offset + 2] = t2;
+	            M[offset + 3] = t3;
+	        },
+
+	        keySize: 256/32
+	    });
+
+	    /**
+	     * Shortcut functions to the cipher's object interface.
+	     *
+	     * @example
+	     *
+	     *     var ciphertext = CryptoJS.AES.encrypt(message, key, cfg);
+	     *     var plaintext  = CryptoJS.AES.decrypt(ciphertext, key, cfg);
+	     */
+	    C.AES = BlockCipher._createHelper(AES);
+	}());
+
+
+	(function () {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var WordArray = C_lib.WordArray;
+	    var BlockCipher = C_lib.BlockCipher;
+	    var C_algo = C.algo;
+
+	    // Permuted Choice 1 constants
+	    var PC1 = [
+	        57, 49, 41, 33, 25, 17, 9,  1,
+	        58, 50, 42, 34, 26, 18, 10, 2,
+	        59, 51, 43, 35, 27, 19, 11, 3,
+	        60, 52, 44, 36, 63, 55, 47, 39,
+	        31, 23, 15, 7,  62, 54, 46, 38,
+	        30, 22, 14, 6,  61, 53, 45, 37,
+	        29, 21, 13, 5,  28, 20, 12, 4
+	    ];
+
+	    // Permuted Choice 2 constants
+	    var PC2 = [
+	        14, 17, 11, 24, 1,  5,
+	        3,  28, 15, 6,  21, 10,
+	        23, 19, 12, 4,  26, 8,
+	        16, 7,  27, 20, 13, 2,
+	        41, 52, 31, 37, 47, 55,
+	        30, 40, 51, 45, 33, 48,
+	        44, 49, 39, 56, 34, 53,
+	        46, 42, 50, 36, 29, 32
+	    ];
+
+	    // Cumulative bit shift constants
+	    var BIT_SHIFTS = [1,  2,  4,  6,  8,  10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];
+
+	    // SBOXes and round permutation constants
+	    var SBOX_P = [
+	        {
+	            0x0: 0x808200,
+	            0x10000000: 0x8000,
+	            0x20000000: 0x808002,
+	            0x30000000: 0x2,
+	            0x40000000: 0x200,
+	            0x50000000: 0x808202,
+	            0x60000000: 0x800202,
+	            0x70000000: 0x800000,
+	            0x80000000: 0x202,
+	            0x90000000: 0x800200,
+	            0xa0000000: 0x8200,
+	            0xb0000000: 0x808000,
+	            0xc0000000: 0x8002,
+	            0xd0000000: 0x800002,
+	            0xe0000000: 0x0,
+	            0xf0000000: 0x8202,
+	            0x8000000: 0x0,
+	            0x18000000: 0x808202,
+	            0x28000000: 0x8202,
+	            0x38000000: 0x8000,
+	            0x48000000: 0x808200,
+	            0x58000000: 0x200,
+	            0x68000000: 0x808002,
+	            0x78000000: 0x2,
+	            0x88000000: 0x800200,
+	            0x98000000: 0x8200,
+	            0xa8000000: 0x808000,
+	            0xb8000000: 0x800202,
+	            0xc8000000: 0x800002,
+	            0xd8000000: 0x8002,
+	            0xe8000000: 0x202,
+	            0xf8000000: 0x800000,
+	            0x1: 0x8000,
+	            0x10000001: 0x2,
+	            0x20000001: 0x808200,
+	            0x30000001: 0x800000,
+	            0x40000001: 0x808002,
+	            0x50000001: 0x8200,
+	            0x60000001: 0x200,
+	            0x70000001: 0x800202,
+	            0x80000001: 0x808202,
+	            0x90000001: 0x808000,
+	            0xa0000001: 0x800002,
+	            0xb0000001: 0x8202,
+	            0xc0000001: 0x202,
+	            0xd0000001: 0x800200,
+	            0xe0000001: 0x8002,
+	            0xf0000001: 0x0,
+	            0x8000001: 0x808202,
+	            0x18000001: 0x808000,
+	            0x28000001: 0x800000,
+	            0x38000001: 0x200,
+	            0x48000001: 0x8000,
+	            0x58000001: 0x800002,
+	            0x68000001: 0x2,
+	            0x78000001: 0x8202,
+	            0x88000001: 0x8002,
+	            0x98000001: 0x800202,
+	            0xa8000001: 0x202,
+	            0xb8000001: 0x808200,
+	            0xc8000001: 0x800200,
+	            0xd8000001: 0x0,
+	            0xe8000001: 0x8200,
+	            0xf8000001: 0x808002
+	        },
+	        {
+	            0x0: 0x40084010,
+	            0x1000000: 0x4000,
+	            0x2000000: 0x80000,
+	            0x3000000: 0x40080010,
+	            0x4000000: 0x40000010,
+	            0x5000000: 0x40084000,
+	            0x6000000: 0x40004000,
+	            0x7000000: 0x10,
+	            0x8000000: 0x84000,
+	            0x9000000: 0x40004010,
+	            0xa000000: 0x40000000,
+	            0xb000000: 0x84010,
+	            0xc000000: 0x80010,
+	            0xd000000: 0x0,
+	            0xe000000: 0x4010,
+	            0xf000000: 0x40080000,
+	            0x800000: 0x40004000,
+	            0x1800000: 0x84010,
+	            0x2800000: 0x10,
+	            0x3800000: 0x40004010,
+	            0x4800000: 0x40084010,
+	            0x5800000: 0x40000000,
+	            0x6800000: 0x80000,
+	            0x7800000: 0x40080010,
+	            0x8800000: 0x80010,
+	            0x9800000: 0x0,
+	            0xa800000: 0x4000,
+	            0xb800000: 0x40080000,
+	            0xc800000: 0x40000010,
+	            0xd800000: 0x84000,
+	            0xe800000: 0x40084000,
+	            0xf800000: 0x4010,
+	            0x10000000: 0x0,
+	            0x11000000: 0x40080010,
+	            0x12000000: 0x40004010,
+	            0x13000000: 0x40084000,
+	            0x14000000: 0x40080000,
+	            0x15000000: 0x10,
+	            0x16000000: 0x84010,
+	            0x17000000: 0x4000,
+	            0x18000000: 0x4010,
+	            0x19000000: 0x80000,
+	            0x1a000000: 0x80010,
+	            0x1b000000: 0x40000010,
+	            0x1c000000: 0x84000,
+	            0x1d000000: 0x40004000,
+	            0x1e000000: 0x40000000,
+	            0x1f000000: 0x40084010,
+	            0x10800000: 0x84010,
+	            0x11800000: 0x80000,
+	            0x12800000: 0x40080000,
+	            0x13800000: 0x4000,
+	            0x14800000: 0x40004000,
+	            0x15800000: 0x40084010,
+	            0x16800000: 0x10,
+	            0x17800000: 0x40000000,
+	            0x18800000: 0x40084000,
+	            0x19800000: 0x40000010,
+	            0x1a800000: 0x40004010,
+	            0x1b800000: 0x80010,
+	            0x1c800000: 0x0,
+	            0x1d800000: 0x4010,
+	            0x1e800000: 0x40080010,
+	            0x1f800000: 0x84000
+	        },
+	        {
+	            0x0: 0x104,
+	            0x100000: 0x0,
+	            0x200000: 0x4000100,
+	            0x300000: 0x10104,
+	            0x400000: 0x10004,
+	            0x500000: 0x4000004,
+	            0x600000: 0x4010104,
+	            0x700000: 0x4010000,
+	            0x800000: 0x4000000,
+	            0x900000: 0x4010100,
+	            0xa00000: 0x10100,
+	            0xb00000: 0x4010004,
+	            0xc00000: 0x4000104,
+	            0xd00000: 0x10000,
+	            0xe00000: 0x4,
+	            0xf00000: 0x100,
+	            0x80000: 0x4010100,
+	            0x180000: 0x4010004,
+	            0x280000: 0x0,
+	            0x380000: 0x4000100,
+	            0x480000: 0x4000004,
+	            0x580000: 0x10000,
+	            0x680000: 0x10004,
+	            0x780000: 0x104,
+	            0x880000: 0x4,
+	            0x980000: 0x100,
+	            0xa80000: 0x4010000,
+	            0xb80000: 0x10104,
+	            0xc80000: 0x10100,
+	            0xd80000: 0x4000104,
+	            0xe80000: 0x4010104,
+	            0xf80000: 0x4000000,
+	            0x1000000: 0x4010100,
+	            0x1100000: 0x10004,
+	            0x1200000: 0x10000,
+	            0x1300000: 0x4000100,
+	            0x1400000: 0x100,
+	            0x1500000: 0x4010104,
+	            0x1600000: 0x4000004,
+	            0x1700000: 0x0,
+	            0x1800000: 0x4000104,
+	            0x1900000: 0x4000000,
+	            0x1a00000: 0x4,
+	            0x1b00000: 0x10100,
+	            0x1c00000: 0x4010000,
+	            0x1d00000: 0x104,
+	            0x1e00000: 0x10104,
+	            0x1f00000: 0x4010004,
+	            0x1080000: 0x4000000,
+	            0x1180000: 0x104,
+	            0x1280000: 0x4010100,
+	            0x1380000: 0x0,
+	            0x1480000: 0x10004,
+	            0x1580000: 0x4000100,
+	            0x1680000: 0x100,
+	            0x1780000: 0x4010004,
+	            0x1880000: 0x10000,
+	            0x1980000: 0x4010104,
+	            0x1a80000: 0x10104,
+	            0x1b80000: 0x4000004,
+	            0x1c80000: 0x4000104,
+	            0x1d80000: 0x4010000,
+	            0x1e80000: 0x4,
+	            0x1f80000: 0x10100
+	        },
+	        {
+	            0x0: 0x80401000,
+	            0x10000: 0x80001040,
+	            0x20000: 0x401040,
+	            0x30000: 0x80400000,
+	            0x40000: 0x0,
+	            0x50000: 0x401000,
+	            0x60000: 0x80000040,
+	            0x70000: 0x400040,
+	            0x80000: 0x80000000,
+	            0x90000: 0x400000,
+	            0xa0000: 0x40,
+	            0xb0000: 0x80001000,
+	            0xc0000: 0x80400040,
+	            0xd0000: 0x1040,
+	            0xe0000: 0x1000,
+	            0xf0000: 0x80401040,
+	            0x8000: 0x80001040,
+	            0x18000: 0x40,
+	            0x28000: 0x80400040,
+	            0x38000: 0x80001000,
+	            0x48000: 0x401000,
+	            0x58000: 0x80401040,
+	            0x68000: 0x0,
+	            0x78000: 0x80400000,
+	            0x88000: 0x1000,
+	            0x98000: 0x80401000,
+	            0xa8000: 0x400000,
+	            0xb8000: 0x1040,
+	            0xc8000: 0x80000000,
+	            0xd8000: 0x400040,
+	            0xe8000: 0x401040,
+	            0xf8000: 0x80000040,
+	            0x100000: 0x400040,
+	            0x110000: 0x401000,
+	            0x120000: 0x80000040,
+	            0x130000: 0x0,
+	            0x140000: 0x1040,
+	            0x150000: 0x80400040,
+	            0x160000: 0x80401000,
+	            0x170000: 0x80001040,
+	            0x180000: 0x80401040,
+	            0x190000: 0x80000000,
+	            0x1a0000: 0x80400000,
+	            0x1b0000: 0x401040,
+	            0x1c0000: 0x80001000,
+	            0x1d0000: 0x400000,
+	            0x1e0000: 0x40,
+	            0x1f0000: 0x1000,
+	            0x108000: 0x80400000,
+	            0x118000: 0x80401040,
+	            0x128000: 0x0,
+	            0x138000: 0x401000,
+	            0x148000: 0x400040,
+	            0x158000: 0x80000000,
+	            0x168000: 0x80001040,
+	            0x178000: 0x40,
+	            0x188000: 0x80000040,
+	            0x198000: 0x1000,
+	            0x1a8000: 0x80001000,
+	            0x1b8000: 0x80400040,
+	            0x1c8000: 0x1040,
+	            0x1d8000: 0x80401000,
+	            0x1e8000: 0x400000,
+	            0x1f8000: 0x401040
+	        },
+	        {
+	            0x0: 0x80,
+	            0x1000: 0x1040000,
+	            0x2000: 0x40000,
+	            0x3000: 0x20000000,
+	            0x4000: 0x20040080,
+	            0x5000: 0x1000080,
+	            0x6000: 0x21000080,
+	            0x7000: 0x40080,
+	            0x8000: 0x1000000,
+	            0x9000: 0x20040000,
+	            0xa000: 0x20000080,
+	            0xb000: 0x21040080,
+	            0xc000: 0x21040000,
+	            0xd000: 0x0,
+	            0xe000: 0x1040080,
+	            0xf000: 0x21000000,
+	            0x800: 0x1040080,
+	            0x1800: 0x21000080,
+	            0x2800: 0x80,
+	            0x3800: 0x1040000,
+	            0x4800: 0x40000,
+	            0x5800: 0x20040080,
+	            0x6800: 0x21040000,
+	            0x7800: 0x20000000,
+	            0x8800: 0x20040000,
+	            0x9800: 0x0,
+	            0xa800: 0x21040080,
+	            0xb800: 0x1000080,
+	            0xc800: 0x20000080,
+	            0xd800: 0x21000000,
+	            0xe800: 0x1000000,
+	            0xf800: 0x40080,
+	            0x10000: 0x40000,
+	            0x11000: 0x80,
+	            0x12000: 0x20000000,
+	            0x13000: 0x21000080,
+	            0x14000: 0x1000080,
+	            0x15000: 0x21040000,
+	            0x16000: 0x20040080,
+	            0x17000: 0x1000000,
+	            0x18000: 0x21040080,
+	            0x19000: 0x21000000,
+	            0x1a000: 0x1040000,
+	            0x1b000: 0x20040000,
+	            0x1c000: 0x40080,
+	            0x1d000: 0x20000080,
+	            0x1e000: 0x0,
+	            0x1f000: 0x1040080,
+	            0x10800: 0x21000080,
+	            0x11800: 0x1000000,
+	            0x12800: 0x1040000,
+	            0x13800: 0x20040080,
+	            0x14800: 0x20000000,
+	            0x15800: 0x1040080,
+	            0x16800: 0x80,
+	            0x17800: 0x21040000,
+	            0x18800: 0x40080,
+	            0x19800: 0x21040080,
+	            0x1a800: 0x0,
+	            0x1b800: 0x21000000,
+	            0x1c800: 0x1000080,
+	            0x1d800: 0x40000,
+	            0x1e800: 0x20040000,
+	            0x1f800: 0x20000080
+	        },
+	        {
+	            0x0: 0x10000008,
+	            0x100: 0x2000,
+	            0x200: 0x10200000,
+	            0x300: 0x10202008,
+	            0x400: 0x10002000,
+	            0x500: 0x200000,
+	            0x600: 0x200008,
+	            0x700: 0x10000000,
+	            0x800: 0x0,
+	            0x900: 0x10002008,
+	            0xa00: 0x202000,
+	            0xb00: 0x8,
+	            0xc00: 0x10200008,
+	            0xd00: 0x202008,
+	            0xe00: 0x2008,
+	            0xf00: 0x10202000,
+	            0x80: 0x10200000,
+	            0x180: 0x10202008,
+	            0x280: 0x8,
+	            0x380: 0x200000,
+	            0x480: 0x202008,
+	            0x580: 0x10000008,
+	            0x680: 0x10002000,
+	            0x780: 0x2008,
+	            0x880: 0x200008,
+	            0x980: 0x2000,
+	            0xa80: 0x10002008,
+	            0xb80: 0x10200008,
+	            0xc80: 0x0,
+	            0xd80: 0x10202000,
+	            0xe80: 0x202000,
+	            0xf80: 0x10000000,
+	            0x1000: 0x10002000,
+	            0x1100: 0x10200008,
+	            0x1200: 0x10202008,
+	            0x1300: 0x2008,
+	            0x1400: 0x200000,
+	            0x1500: 0x10000000,
+	            0x1600: 0x10000008,
+	            0x1700: 0x202000,
+	            0x1800: 0x202008,
+	            0x1900: 0x0,
+	            0x1a00: 0x8,
+	            0x1b00: 0x10200000,
+	            0x1c00: 0x2000,
+	            0x1d00: 0x10002008,
+	            0x1e00: 0x10202000,
+	            0x1f00: 0x200008,
+	            0x1080: 0x8,
+	            0x1180: 0x202000,
+	            0x1280: 0x200000,
+	            0x1380: 0x10000008,
+	            0x1480: 0x10002000,
+	            0x1580: 0x2008,
+	            0x1680: 0x10202008,
+	            0x1780: 0x10200000,
+	            0x1880: 0x10202000,
+	            0x1980: 0x10200008,
+	            0x1a80: 0x2000,
+	            0x1b80: 0x202008,
+	            0x1c80: 0x200008,
+	            0x1d80: 0x0,
+	            0x1e80: 0x10000000,
+	            0x1f80: 0x10002008
+	        },
+	        {
+	            0x0: 0x100000,
+	            0x10: 0x2000401,
+	            0x20: 0x400,
+	            0x30: 0x100401,
+	            0x40: 0x2100401,
+	            0x50: 0x0,
+	            0x60: 0x1,
+	            0x70: 0x2100001,
+	            0x80: 0x2000400,
+	            0x90: 0x100001,
+	            0xa0: 0x2000001,
+	            0xb0: 0x2100400,
+	            0xc0: 0x2100000,
+	            0xd0: 0x401,
+	            0xe0: 0x100400,
+	            0xf0: 0x2000000,
+	            0x8: 0x2100001,
+	            0x18: 0x0,
+	            0x28: 0x2000401,
+	            0x38: 0x2100400,
+	            0x48: 0x100000,
+	            0x58: 0x2000001,
+	            0x68: 0x2000000,
+	            0x78: 0x401,
+	            0x88: 0x100401,
+	            0x98: 0x2000400,
+	            0xa8: 0x2100000,
+	            0xb8: 0x100001,
+	            0xc8: 0x400,
+	            0xd8: 0x2100401,
+	            0xe8: 0x1,
+	            0xf8: 0x100400,
+	            0x100: 0x2000000,
+	            0x110: 0x100000,
+	            0x120: 0x2000401,
+	            0x130: 0x2100001,
+	            0x140: 0x100001,
+	            0x150: 0x2000400,
+	            0x160: 0x2100400,
+	            0x170: 0x100401,
+	            0x180: 0x401,
+	            0x190: 0x2100401,
+	            0x1a0: 0x100400,
+	            0x1b0: 0x1,
+	            0x1c0: 0x0,
+	            0x1d0: 0x2100000,
+	            0x1e0: 0x2000001,
+	            0x1f0: 0x400,
+	            0x108: 0x100400,
+	            0x118: 0x2000401,
+	            0x128: 0x2100001,
+	            0x138: 0x1,
+	            0x148: 0x2000000,
+	            0x158: 0x100000,
+	            0x168: 0x401,
+	            0x178: 0x2100400,
+	            0x188: 0x2000001,
+	            0x198: 0x2100000,
+	            0x1a8: 0x0,
+	            0x1b8: 0x2100401,
+	            0x1c8: 0x100401,
+	            0x1d8: 0x400,
+	            0x1e8: 0x2000400,
+	            0x1f8: 0x100001
+	        },
+	        {
+	            0x0: 0x8000820,
+	            0x1: 0x20000,
+	            0x2: 0x8000000,
+	            0x3: 0x20,
+	            0x4: 0x20020,
+	            0x5: 0x8020820,
+	            0x6: 0x8020800,
+	            0x7: 0x800,
+	            0x8: 0x8020000,
+	            0x9: 0x8000800,
+	            0xa: 0x20800,
+	            0xb: 0x8020020,
+	            0xc: 0x820,
+	            0xd: 0x0,
+	            0xe: 0x8000020,
+	            0xf: 0x20820,
+	            0x80000000: 0x800,
+	            0x80000001: 0x8020820,
+	            0x80000002: 0x8000820,
+	            0x80000003: 0x8000000,
+	            0x80000004: 0x8020000,
+	            0x80000005: 0x20800,
+	            0x80000006: 0x20820,
+	            0x80000007: 0x20,
+	            0x80000008: 0x8000020,
+	            0x80000009: 0x820,
+	            0x8000000a: 0x20020,
+	            0x8000000b: 0x8020800,
+	            0x8000000c: 0x0,
+	            0x8000000d: 0x8020020,
+	            0x8000000e: 0x8000800,
+	            0x8000000f: 0x20000,
+	            0x10: 0x20820,
+	            0x11: 0x8020800,
+	            0x12: 0x20,
+	            0x13: 0x800,
+	            0x14: 0x8000800,
+	            0x15: 0x8000020,
+	            0x16: 0x8020020,
+	            0x17: 0x20000,
+	            0x18: 0x0,
+	            0x19: 0x20020,
+	            0x1a: 0x8020000,
+	            0x1b: 0x8000820,
+	            0x1c: 0x8020820,
+	            0x1d: 0x20800,
+	            0x1e: 0x820,
+	            0x1f: 0x8000000,
+	            0x80000010: 0x20000,
+	            0x80000011: 0x800,
+	            0x80000012: 0x8020020,
+	            0x80000013: 0x20820,
+	            0x80000014: 0x20,
+	            0x80000015: 0x8020000,
+	            0x80000016: 0x8000000,
+	            0x80000017: 0x8000820,
+	            0x80000018: 0x8020820,
+	            0x80000019: 0x8000020,
+	            0x8000001a: 0x8000800,
+	            0x8000001b: 0x0,
+	            0x8000001c: 0x20800,
+	            0x8000001d: 0x820,
+	            0x8000001e: 0x20020,
+	            0x8000001f: 0x8020800
+	        }
+	    ];
+
+	    // Masks that select the SBOX input
+	    var SBOX_MASK = [
+	        0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000,
+	        0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f
+	    ];
+
+	    /**
+	     * DES block cipher algorithm.
+	     */
+	    var DES = C_algo.DES = BlockCipher.extend({
+	        _doReset: function () {
+	            // Shortcuts
+	            var key = this._key;
+	            var keyWords = key.words;
+
+	            // Select 56 bits according to PC1
+	            var keyBits = [];
+	            for (var i = 0; i < 56; i++) {
+	                var keyBitPos = PC1[i] - 1;
+	                keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - keyBitPos % 32)) & 1;
+	            }
+
+	            // Assemble 16 subkeys
+	            var subKeys = this._subKeys = [];
+	            for (var nSubKey = 0; nSubKey < 16; nSubKey++) {
+	                // Create subkey
+	                var subKey = subKeys[nSubKey] = [];
+
+	                // Shortcut
+	                var bitShift = BIT_SHIFTS[nSubKey];
+
+	                // Select 48 bits according to PC2
+	                for (var i = 0; i < 24; i++) {
+	                    // Select from the left 28 key bits
+	                    subKey[(i / 6) | 0] |= keyBits[((PC2[i] - 1) + bitShift) % 28] << (31 - i % 6);
+
+	                    // Select from the right 28 key bits
+	                    subKey[4 + ((i / 6) | 0)] |= keyBits[28 + (((PC2[i + 24] - 1) + bitShift) % 28)] << (31 - i % 6);
+	                }
+
+	                // Since each subkey is applied to an expanded 32-bit input,
+	                // the subkey can be broken into 8 values scaled to 32-bits,
+	                // which allows the key to be used without expansion
+	                subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31);
+	                for (var i = 1; i < 7; i++) {
+	                    subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3);
+	                }
+	                subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27);
+	            }
+
+	            // Compute inverse subkeys
+	            var invSubKeys = this._invSubKeys = [];
+	            for (var i = 0; i < 16; i++) {
+	                invSubKeys[i] = subKeys[15 - i];
+	            }
+	        },
+
+	        encryptBlock: function (M, offset) {
+	            this._doCryptBlock(M, offset, this._subKeys);
+	        },
+
+	        decryptBlock: function (M, offset) {
+	            this._doCryptBlock(M, offset, this._invSubKeys);
+	        },
+
+	        _doCryptBlock: function (M, offset, subKeys) {
+	            // Get input
+	            this._lBlock = M[offset];
+	            this._rBlock = M[offset + 1];
+
+	            // Initial permutation
+	            exchangeLR.call(this, 4,  0x0f0f0f0f);
+	            exchangeLR.call(this, 16, 0x0000ffff);
+	            exchangeRL.call(this, 2,  0x33333333);
+	            exchangeRL.call(this, 8,  0x00ff00ff);
+	            exchangeLR.call(this, 1,  0x55555555);
+
+	            // Rounds
+	            for (var round = 0; round < 16; round++) {
+	                // Shortcuts
+	                var subKey = subKeys[round];
+	                var lBlock = this._lBlock;
+	                var rBlock = this._rBlock;
+
+	                // Feistel function
+	                var f = 0;
+	                for (var i = 0; i < 8; i++) {
+	                    f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0];
+	                }
+	                this._lBlock = rBlock;
+	                this._rBlock = lBlock ^ f;
+	            }
+
+	            // Undo swap from last round
+	            var t = this._lBlock;
+	            this._lBlock = this._rBlock;
+	            this._rBlock = t;
+
+	            // Final permutation
+	            exchangeLR.call(this, 1,  0x55555555);
+	            exchangeRL.call(this, 8,  0x00ff00ff);
+	            exchangeRL.call(this, 2,  0x33333333);
+	            exchangeLR.call(this, 16, 0x0000ffff);
+	            exchangeLR.call(this, 4,  0x0f0f0f0f);
+
+	            // Set output
+	            M[offset] = this._lBlock;
+	            M[offset + 1] = this._rBlock;
+	        },
+
+	        keySize: 64/32,
+
+	        ivSize: 64/32,
+
+	        blockSize: 64/32
+	    });
+
+	    // Swap bits across the left and right words
+	    function exchangeLR(offset, mask) {
+	        var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask;
+	        this._rBlock ^= t;
+	        this._lBlock ^= t << offset;
+	    }
+
+	    function exchangeRL(offset, mask) {
+	        var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask;
+	        this._lBlock ^= t;
+	        this._rBlock ^= t << offset;
+	    }
+
+	    /**
+	     * Shortcut functions to the cipher's object interface.
+	     *
+	     * @example
+	     *
+	     *     var ciphertext = CryptoJS.DES.encrypt(message, key, cfg);
+	     *     var plaintext  = CryptoJS.DES.decrypt(ciphertext, key, cfg);
+	     */
+	    C.DES = BlockCipher._createHelper(DES);
+
+	    /**
+	     * Triple-DES block cipher algorithm.
+	     */
+	    var TripleDES = C_algo.TripleDES = BlockCipher.extend({
+	        _doReset: function () {
+	            // Shortcuts
+	            var key = this._key;
+	            var keyWords = key.words;
+	            // Make sure the key length is valid (64, 128 or >= 192 bit)
+	            if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) {
+	                throw new Error('Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.');
+	            }
+
+	            // Extend the key according to the keying options defined in 3DES standard
+	            var key1 = keyWords.slice(0, 2);
+	            var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4);
+	            var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6);
+
+	            // Create DES instances
+	            this._des1 = DES.createEncryptor(WordArray.create(key1));
+	            this._des2 = DES.createEncryptor(WordArray.create(key2));
+	            this._des3 = DES.createEncryptor(WordArray.create(key3));
+	        },
+
+	        encryptBlock: function (M, offset) {
+	            this._des1.encryptBlock(M, offset);
+	            this._des2.decryptBlock(M, offset);
+	            this._des3.encryptBlock(M, offset);
+	        },
+
+	        decryptBlock: function (M, offset) {
+	            this._des3.decryptBlock(M, offset);
+	            this._des2.encryptBlock(M, offset);
+	            this._des1.decryptBlock(M, offset);
+	        },
+
+	        keySize: 192/32,
+
+	        ivSize: 64/32,
+
+	        blockSize: 64/32
+	    });
+
+	    /**
+	     * Shortcut functions to the cipher's object interface.
+	     *
+	     * @example
+	     *
+	     *     var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg);
+	     *     var plaintext  = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg);
+	     */
+	    C.TripleDES = BlockCipher._createHelper(TripleDES);
+	}());
+
+
+	(function () {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var StreamCipher = C_lib.StreamCipher;
+	    var C_algo = C.algo;
+
+	    /**
+	     * RC4 stream cipher algorithm.
+	     */
+	    var RC4 = C_algo.RC4 = StreamCipher.extend({
+	        _doReset: function () {
+	            // Shortcuts
+	            var key = this._key;
+	            var keyWords = key.words;
+	            var keySigBytes = key.sigBytes;
+
+	            // Init sbox
+	            var S = this._S = [];
+	            for (var i = 0; i < 256; i++) {
+	                S[i] = i;
+	            }
+
+	            // Key setup
+	            for (var i = 0, j = 0; i < 256; i++) {
+	                var keyByteIndex = i % keySigBytes;
+	                var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff;
+
+	                j = (j + S[i] + keyByte) % 256;
+
+	                // Swap
+	                var t = S[i];
+	                S[i] = S[j];
+	                S[j] = t;
+	            }
+
+	            // Counters
+	            this._i = this._j = 0;
+	        },
+
+	        _doProcessBlock: function (M, offset) {
+	            M[offset] ^= generateKeystreamWord.call(this);
+	        },
+
+	        keySize: 256/32,
+
+	        ivSize: 0
+	    });
+
+	    function generateKeystreamWord() {
+	        // Shortcuts
+	        var S = this._S;
+	        var i = this._i;
+	        var j = this._j;
+
+	        // Generate keystream word
+	        var keystreamWord = 0;
+	        for (var n = 0; n < 4; n++) {
+	            i = (i + 1) % 256;
+	            j = (j + S[i]) % 256;
+
+	            // Swap
+	            var t = S[i];
+	            S[i] = S[j];
+	            S[j] = t;
+
+	            keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8);
+	        }
+
+	        // Update counters
+	        this._i = i;
+	        this._j = j;
+
+	        return keystreamWord;
+	    }
+
+	    /**
+	     * Shortcut functions to the cipher's object interface.
+	     *
+	     * @example
+	     *
+	     *     var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg);
+	     *     var plaintext  = CryptoJS.RC4.decrypt(ciphertext, key, cfg);
+	     */
+	    C.RC4 = StreamCipher._createHelper(RC4);
+
+	    /**
+	     * Modified RC4 stream cipher algorithm.
+	     */
+	    var RC4Drop = C_algo.RC4Drop = RC4.extend({
+	        /**
+	         * Configuration options.
+	         *
+	         * @property {number} drop The number of keystream words to drop. Default 192
+	         */
+	        cfg: RC4.cfg.extend({
+	            drop: 192
+	        }),
+
+	        _doReset: function () {
+	            RC4._doReset.call(this);
+
+	            // Drop
+	            for (var i = this.cfg.drop; i > 0; i--) {
+	                generateKeystreamWord.call(this);
+	            }
+	        }
+	    });
+
+	    /**
+	     * Shortcut functions to the cipher's object interface.
+	     *
+	     * @example
+	     *
+	     *     var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg);
+	     *     var plaintext  = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg);
+	     */
+	    C.RC4Drop = StreamCipher._createHelper(RC4Drop);
+	}());
+
+
+	(function () {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var StreamCipher = C_lib.StreamCipher;
+	    var C_algo = C.algo;
+
+	    // Reusable objects
+	    var S  = [];
+	    var C_ = [];
+	    var G  = [];
+
+	    /**
+	     * Rabbit stream cipher algorithm
+	     */
+	    var Rabbit = C_algo.Rabbit = StreamCipher.extend({
+	        _doReset: function () {
+	            // Shortcuts
+	            var K = this._key.words;
+	            var iv = this.cfg.iv;
+
+	            // Swap endian
+	            for (var i = 0; i < 4; i++) {
+	                K[i] = (((K[i] << 8)  | (K[i] >>> 24)) & 0x00ff00ff) |
+	                       (((K[i] << 24) | (K[i] >>> 8))  & 0xff00ff00);
+	            }
+
+	            // Generate initial state values
+	            var X = this._X = [
+	                K[0], (K[3] << 16) | (K[2] >>> 16),
+	                K[1], (K[0] << 16) | (K[3] >>> 16),
+	                K[2], (K[1] << 16) | (K[0] >>> 16),
+	                K[3], (K[2] << 16) | (K[1] >>> 16)
+	            ];
+
+	            // Generate initial counter values
+	            var C = this._C = [
+	                (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),
+	                (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),
+	                (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),
+	                (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)
+	            ];
+
+	            // Carry bit
+	            this._b = 0;
+
+	            // Iterate the system four times
+	            for (var i = 0; i < 4; i++) {
+	                nextState.call(this);
+	            }
+
+	            // Modify the counters
+	            for (var i = 0; i < 8; i++) {
+	                C[i] ^= X[(i + 4) & 7];
+	            }
+
+	            // IV setup
+	            if (iv) {
+	                // Shortcuts
+	                var IV = iv.words;
+	                var IV_0 = IV[0];
+	                var IV_1 = IV[1];
+
+	                // Generate four subvectors
+	                var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);
+	                var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);
+	                var i1 = (i0 >>> 16) | (i2 & 0xffff0000);
+	                var i3 = (i2 << 16)  | (i0 & 0x0000ffff);
+
+	                // Modify counter values
+	                C[0] ^= i0;
+	                C[1] ^= i1;
+	                C[2] ^= i2;
+	                C[3] ^= i3;
+	                C[4] ^= i0;
+	                C[5] ^= i1;
+	                C[6] ^= i2;
+	                C[7] ^= i3;
+
+	                // Iterate the system four times
+	                for (var i = 0; i < 4; i++) {
+	                    nextState.call(this);
+	                }
+	            }
+	        },
+
+	        _doProcessBlock: function (M, offset) {
+	            // Shortcut
+	            var X = this._X;
+
+	            // Iterate the system
+	            nextState.call(this);
+
+	            // Generate four keystream words
+	            S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);
+	            S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);
+	            S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);
+	            S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);
+
+	            for (var i = 0; i < 4; i++) {
+	                // Swap endian
+	                S[i] = (((S[i] << 8)  | (S[i] >>> 24)) & 0x00ff00ff) |
+	                       (((S[i] << 24) | (S[i] >>> 8))  & 0xff00ff00);
+
+	                // Encrypt
+	                M[offset + i] ^= S[i];
+	            }
+	        },
+
+	        blockSize: 128/32,
+
+	        ivSize: 64/32
+	    });
+
+	    function nextState() {
+	        // Shortcuts
+	        var X = this._X;
+	        var C = this._C;
+
+	        // Save old counter values
+	        for (var i = 0; i < 8; i++) {
+	            C_[i] = C[i];
+	        }
+
+	        // Calculate new counter values
+	        C[0] = (C[0] + 0x4d34d34d + this._b) | 0;
+	        C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;
+	        C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;
+	        C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;
+	        C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;
+	        C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;
+	        C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;
+	        C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;
+	        this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;
+
+	        // Calculate the g-values
+	        for (var i = 0; i < 8; i++) {
+	            var gx = X[i] + C[i];
+
+	            // Construct high and low argument for squaring
+	            var ga = gx & 0xffff;
+	            var gb = gx >>> 16;
+
+	            // Calculate high and low result of squaring
+	            var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;
+	            var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);
+
+	            // High XOR low
+	            G[i] = gh ^ gl;
+	        }
+
+	        // Calculate new state values
+	        X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;
+	        X[1] = (G[1] + ((G[0] << 8)  | (G[0] >>> 24)) + G[7]) | 0;
+	        X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;
+	        X[3] = (G[3] + ((G[2] << 8)  | (G[2] >>> 24)) + G[1]) | 0;
+	        X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;
+	        X[5] = (G[5] + ((G[4] << 8)  | (G[4] >>> 24)) + G[3]) | 0;
+	        X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;
+	        X[7] = (G[7] + ((G[6] << 8)  | (G[6] >>> 24)) + G[5]) | 0;
+	    }
+
+	    /**
+	     * Shortcut functions to the cipher's object interface.
+	     *
+	     * @example
+	     *
+	     *     var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg);
+	     *     var plaintext  = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg);
+	     */
+	    C.Rabbit = StreamCipher._createHelper(Rabbit);
+	}());
+
+
+	(function () {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var StreamCipher = C_lib.StreamCipher;
+	    var C_algo = C.algo;
+
+	    // Reusable objects
+	    var S  = [];
+	    var C_ = [];
+	    var G  = [];
+
+	    /**
+	     * Rabbit stream cipher algorithm.
+	     *
+	     * This is a legacy version that neglected to convert the key to little-endian.
+	     * This error doesn't affect the cipher's security,
+	     * but it does affect its compatibility with other implementations.
+	     */
+	    var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({
+	        _doReset: function () {
+	            // Shortcuts
+	            var K = this._key.words;
+	            var iv = this.cfg.iv;
+
+	            // Generate initial state values
+	            var X = this._X = [
+	                K[0], (K[3] << 16) | (K[2] >>> 16),
+	                K[1], (K[0] << 16) | (K[3] >>> 16),
+	                K[2], (K[1] << 16) | (K[0] >>> 16),
+	                K[3], (K[2] << 16) | (K[1] >>> 16)
+	            ];
+
+	            // Generate initial counter values
+	            var C = this._C = [
+	                (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),
+	                (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),
+	                (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),
+	                (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)
+	            ];
+
+	            // Carry bit
+	            this._b = 0;
+
+	            // Iterate the system four times
+	            for (var i = 0; i < 4; i++) {
+	                nextState.call(this);
+	            }
+
+	            // Modify the counters
+	            for (var i = 0; i < 8; i++) {
+	                C[i] ^= X[(i + 4) & 7];
+	            }
+
+	            // IV setup
+	            if (iv) {
+	                // Shortcuts
+	                var IV = iv.words;
+	                var IV_0 = IV[0];
+	                var IV_1 = IV[1];
+
+	                // Generate four subvectors
+	                var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);
+	                var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);
+	                var i1 = (i0 >>> 16) | (i2 & 0xffff0000);
+	                var i3 = (i2 << 16)  | (i0 & 0x0000ffff);
+
+	                // Modify counter values
+	                C[0] ^= i0;
+	                C[1] ^= i1;
+	                C[2] ^= i2;
+	                C[3] ^= i3;
+	                C[4] ^= i0;
+	                C[5] ^= i1;
+	                C[6] ^= i2;
+	                C[7] ^= i3;
+
+	                // Iterate the system four times
+	                for (var i = 0; i < 4; i++) {
+	                    nextState.call(this);
+	                }
+	            }
+	        },
+
+	        _doProcessBlock: function (M, offset) {
+	            // Shortcut
+	            var X = this._X;
+
+	            // Iterate the system
+	            nextState.call(this);
+
+	            // Generate four keystream words
+	            S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);
+	            S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);
+	            S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);
+	            S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);
+
+	            for (var i = 0; i < 4; i++) {
+	                // Swap endian
+	                S[i] = (((S[i] << 8)  | (S[i] >>> 24)) & 0x00ff00ff) |
+	                       (((S[i] << 24) | (S[i] >>> 8))  & 0xff00ff00);
+
+	                // Encrypt
+	                M[offset + i] ^= S[i];
+	            }
+	        },
+
+	        blockSize: 128/32,
+
+	        ivSize: 64/32
+	    });
+
+	    function nextState() {
+	        // Shortcuts
+	        var X = this._X;
+	        var C = this._C;
+
+	        // Save old counter values
+	        for (var i = 0; i < 8; i++) {
+	            C_[i] = C[i];
+	        }
+
+	        // Calculate new counter values
+	        C[0] = (C[0] + 0x4d34d34d + this._b) | 0;
+	        C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;
+	        C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;
+	        C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;
+	        C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;
+	        C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;
+	        C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;
+	        C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;
+	        this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;
+
+	        // Calculate the g-values
+	        for (var i = 0; i < 8; i++) {
+	            var gx = X[i] + C[i];
+
+	            // Construct high and low argument for squaring
+	            var ga = gx & 0xffff;
+	            var gb = gx >>> 16;
+
+	            // Calculate high and low result of squaring
+	            var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;
+	            var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);
+
+	            // High XOR low
+	            G[i] = gh ^ gl;
+	        }
+
+	        // Calculate new state values
+	        X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;
+	        X[1] = (G[1] + ((G[0] << 8)  | (G[0] >>> 24)) + G[7]) | 0;
+	        X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;
+	        X[3] = (G[3] + ((G[2] << 8)  | (G[2] >>> 24)) + G[1]) | 0;
+	        X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;
+	        X[5] = (G[5] + ((G[4] << 8)  | (G[4] >>> 24)) + G[3]) | 0;
+	        X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;
+	        X[7] = (G[7] + ((G[6] << 8)  | (G[6] >>> 24)) + G[5]) | 0;
+	    }
+
+	    /**
+	     * Shortcut functions to the cipher's object interface.
+	     *
+	     * @example
+	     *
+	     *     var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg);
+	     *     var plaintext  = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg);
+	     */
+	    C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy);
+	}());
+
+
+	(function () {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var BlockCipher = C_lib.BlockCipher;
+	    var C_algo = C.algo;
+
+	    const N = 16;
+
+	    //Origin pbox and sbox, derived from PI
+	    const ORIG_P = [
+	        0x243F6A88, 0x85A308D3, 0x13198A2E, 0x03707344,
+	        0xA4093822, 0x299F31D0, 0x082EFA98, 0xEC4E6C89,
+	        0x452821E6, 0x38D01377, 0xBE5466CF, 0x34E90C6C,
+	        0xC0AC29B7, 0xC97C50DD, 0x3F84D5B5, 0xB5470917,
+	        0x9216D5D9, 0x8979FB1B
+	    ];
+
+	    const ORIG_S = [
+	        [   0xD1310BA6, 0x98DFB5AC, 0x2FFD72DB, 0xD01ADFB7,
+	            0xB8E1AFED, 0x6A267E96, 0xBA7C9045, 0xF12C7F99,
+	            0x24A19947, 0xB3916CF7, 0x0801F2E2, 0x858EFC16,
+	            0x636920D8, 0x71574E69, 0xA458FEA3, 0xF4933D7E,
+	            0x0D95748F, 0x728EB658, 0x718BCD58, 0x82154AEE,
+	            0x7B54A41D, 0xC25A59B5, 0x9C30D539, 0x2AF26013,
+	            0xC5D1B023, 0x286085F0, 0xCA417918, 0xB8DB38EF,
+	            0x8E79DCB0, 0x603A180E, 0x6C9E0E8B, 0xB01E8A3E,
+	            0xD71577C1, 0xBD314B27, 0x78AF2FDA, 0x55605C60,
+	            0xE65525F3, 0xAA55AB94, 0x57489862, 0x63E81440,
+	            0x55CA396A, 0x2AAB10B6, 0xB4CC5C34, 0x1141E8CE,
+	            0xA15486AF, 0x7C72E993, 0xB3EE1411, 0x636FBC2A,
+	            0x2BA9C55D, 0x741831F6, 0xCE5C3E16, 0x9B87931E,
+	            0xAFD6BA33, 0x6C24CF5C, 0x7A325381, 0x28958677,
+	            0x3B8F4898, 0x6B4BB9AF, 0xC4BFE81B, 0x66282193,
+	            0x61D809CC, 0xFB21A991, 0x487CAC60, 0x5DEC8032,
+	            0xEF845D5D, 0xE98575B1, 0xDC262302, 0xEB651B88,
+	            0x23893E81, 0xD396ACC5, 0x0F6D6FF3, 0x83F44239,
+	            0x2E0B4482, 0xA4842004, 0x69C8F04A, 0x9E1F9B5E,
+	            0x21C66842, 0xF6E96C9A, 0x670C9C61, 0xABD388F0,
+	            0x6A51A0D2, 0xD8542F68, 0x960FA728, 0xAB5133A3,
+	            0x6EEF0B6C, 0x137A3BE4, 0xBA3BF050, 0x7EFB2A98,
+	            0xA1F1651D, 0x39AF0176, 0x66CA593E, 0x82430E88,
+	            0x8CEE8619, 0x456F9FB4, 0x7D84A5C3, 0x3B8B5EBE,
+	            0xE06F75D8, 0x85C12073, 0x401A449F, 0x56C16AA6,
+	            0x4ED3AA62, 0x363F7706, 0x1BFEDF72, 0x429B023D,
+	            0x37D0D724, 0xD00A1248, 0xDB0FEAD3, 0x49F1C09B,
+	            0x075372C9, 0x80991B7B, 0x25D479D8, 0xF6E8DEF7,
+	            0xE3FE501A, 0xB6794C3B, 0x976CE0BD, 0x04C006BA,
+	            0xC1A94FB6, 0x409F60C4, 0x5E5C9EC2, 0x196A2463,
+	            0x68FB6FAF, 0x3E6C53B5, 0x1339B2EB, 0x3B52EC6F,
+	            0x6DFC511F, 0x9B30952C, 0xCC814544, 0xAF5EBD09,
+	            0xBEE3D004, 0xDE334AFD, 0x660F2807, 0x192E4BB3,
+	            0xC0CBA857, 0x45C8740F, 0xD20B5F39, 0xB9D3FBDB,
+	            0x5579C0BD, 0x1A60320A, 0xD6A100C6, 0x402C7279,
+	            0x679F25FE, 0xFB1FA3CC, 0x8EA5E9F8, 0xDB3222F8,
+	            0x3C7516DF, 0xFD616B15, 0x2F501EC8, 0xAD0552AB,
+	            0x323DB5FA, 0xFD238760, 0x53317B48, 0x3E00DF82,
+	            0x9E5C57BB, 0xCA6F8CA0, 0x1A87562E, 0xDF1769DB,
+	            0xD542A8F6, 0x287EFFC3, 0xAC6732C6, 0x8C4F5573,
+	            0x695B27B0, 0xBBCA58C8, 0xE1FFA35D, 0xB8F011A0,
+	            0x10FA3D98, 0xFD2183B8, 0x4AFCB56C, 0x2DD1D35B,
+	            0x9A53E479, 0xB6F84565, 0xD28E49BC, 0x4BFB9790,
+	            0xE1DDF2DA, 0xA4CB7E33, 0x62FB1341, 0xCEE4C6E8,
+	            0xEF20CADA, 0x36774C01, 0xD07E9EFE, 0x2BF11FB4,
+	            0x95DBDA4D, 0xAE909198, 0xEAAD8E71, 0x6B93D5A0,
+	            0xD08ED1D0, 0xAFC725E0, 0x8E3C5B2F, 0x8E7594B7,
+	            0x8FF6E2FB, 0xF2122B64, 0x8888B812, 0x900DF01C,
+	            0x4FAD5EA0, 0x688FC31C, 0xD1CFF191, 0xB3A8C1AD,
+	            0x2F2F2218, 0xBE0E1777, 0xEA752DFE, 0x8B021FA1,
+	            0xE5A0CC0F, 0xB56F74E8, 0x18ACF3D6, 0xCE89E299,
+	            0xB4A84FE0, 0xFD13E0B7, 0x7CC43B81, 0xD2ADA8D9,
+	            0x165FA266, 0x80957705, 0x93CC7314, 0x211A1477,
+	            0xE6AD2065, 0x77B5FA86, 0xC75442F5, 0xFB9D35CF,
+	            0xEBCDAF0C, 0x7B3E89A0, 0xD6411BD3, 0xAE1E7E49,
+	            0x00250E2D, 0x2071B35E, 0x226800BB, 0x57B8E0AF,
+	            0x2464369B, 0xF009B91E, 0x5563911D, 0x59DFA6AA,
+	            0x78C14389, 0xD95A537F, 0x207D5BA2, 0x02E5B9C5,
+	            0x83260376, 0x6295CFA9, 0x11C81968, 0x4E734A41,
+	            0xB3472DCA, 0x7B14A94A, 0x1B510052, 0x9A532915,
+	            0xD60F573F, 0xBC9BC6E4, 0x2B60A476, 0x81E67400,
+	            0x08BA6FB5, 0x571BE91F, 0xF296EC6B, 0x2A0DD915,
+	            0xB6636521, 0xE7B9F9B6, 0xFF34052E, 0xC5855664,
+	            0x53B02D5D, 0xA99F8FA1, 0x08BA4799, 0x6E85076A   ],
+	        [   0x4B7A70E9, 0xB5B32944, 0xDB75092E, 0xC4192623,
+	            0xAD6EA6B0, 0x49A7DF7D, 0x9CEE60B8, 0x8FEDB266,
+	            0xECAA8C71, 0x699A17FF, 0x5664526C, 0xC2B19EE1,
+	            0x193602A5, 0x75094C29, 0xA0591340, 0xE4183A3E,
+	            0x3F54989A, 0x5B429D65, 0x6B8FE4D6, 0x99F73FD6,
+	            0xA1D29C07, 0xEFE830F5, 0x4D2D38E6, 0xF0255DC1,
+	            0x4CDD2086, 0x8470EB26, 0x6382E9C6, 0x021ECC5E,
+	            0x09686B3F, 0x3EBAEFC9, 0x3C971814, 0x6B6A70A1,
+	            0x687F3584, 0x52A0E286, 0xB79C5305, 0xAA500737,
+	            0x3E07841C, 0x7FDEAE5C, 0x8E7D44EC, 0x5716F2B8,
+	            0xB03ADA37, 0xF0500C0D, 0xF01C1F04, 0x0200B3FF,
+	            0xAE0CF51A, 0x3CB574B2, 0x25837A58, 0xDC0921BD,
+	            0xD19113F9, 0x7CA92FF6, 0x94324773, 0x22F54701,
+	            0x3AE5E581, 0x37C2DADC, 0xC8B57634, 0x9AF3DDA7,
+	            0xA9446146, 0x0FD0030E, 0xECC8C73E, 0xA4751E41,
+	            0xE238CD99, 0x3BEA0E2F, 0x3280BBA1, 0x183EB331,
+	            0x4E548B38, 0x4F6DB908, 0x6F420D03, 0xF60A04BF,
+	            0x2CB81290, 0x24977C79, 0x5679B072, 0xBCAF89AF,
+	            0xDE9A771F, 0xD9930810, 0xB38BAE12, 0xDCCF3F2E,
+	            0x5512721F, 0x2E6B7124, 0x501ADDE6, 0x9F84CD87,
+	            0x7A584718, 0x7408DA17, 0xBC9F9ABC, 0xE94B7D8C,
+	            0xEC7AEC3A, 0xDB851DFA, 0x63094366, 0xC464C3D2,
+	            0xEF1C1847, 0x3215D908, 0xDD433B37, 0x24C2BA16,
+	            0x12A14D43, 0x2A65C451, 0x50940002, 0x133AE4DD,
+	            0x71DFF89E, 0x10314E55, 0x81AC77D6, 0x5F11199B,
+	            0x043556F1, 0xD7A3C76B, 0x3C11183B, 0x5924A509,
+	            0xF28FE6ED, 0x97F1FBFA, 0x9EBABF2C, 0x1E153C6E,
+	            0x86E34570, 0xEAE96FB1, 0x860E5E0A, 0x5A3E2AB3,
+	            0x771FE71C, 0x4E3D06FA, 0x2965DCB9, 0x99E71D0F,
+	            0x803E89D6, 0x5266C825, 0x2E4CC978, 0x9C10B36A,
+	            0xC6150EBA, 0x94E2EA78, 0xA5FC3C53, 0x1E0A2DF4,
+	            0xF2F74EA7, 0x361D2B3D, 0x1939260F, 0x19C27960,
+	            0x5223A708, 0xF71312B6, 0xEBADFE6E, 0xEAC31F66,
+	            0xE3BC4595, 0xA67BC883, 0xB17F37D1, 0x018CFF28,
+	            0xC332DDEF, 0xBE6C5AA5, 0x65582185, 0x68AB9802,
+	            0xEECEA50F, 0xDB2F953B, 0x2AEF7DAD, 0x5B6E2F84,
+	            0x1521B628, 0x29076170, 0xECDD4775, 0x619F1510,
+	            0x13CCA830, 0xEB61BD96, 0x0334FE1E, 0xAA0363CF,
+	            0xB5735C90, 0x4C70A239, 0xD59E9E0B, 0xCBAADE14,
+	            0xEECC86BC, 0x60622CA7, 0x9CAB5CAB, 0xB2F3846E,
+	            0x648B1EAF, 0x19BDF0CA, 0xA02369B9, 0x655ABB50,
+	            0x40685A32, 0x3C2AB4B3, 0x319EE9D5, 0xC021B8F7,
+	            0x9B540B19, 0x875FA099, 0x95F7997E, 0x623D7DA8,
+	            0xF837889A, 0x97E32D77, 0x11ED935F, 0x16681281,
+	            0x0E358829, 0xC7E61FD6, 0x96DEDFA1, 0x7858BA99,
+	            0x57F584A5, 0x1B227263, 0x9B83C3FF, 0x1AC24696,
+	            0xCDB30AEB, 0x532E3054, 0x8FD948E4, 0x6DBC3128,
+	            0x58EBF2EF, 0x34C6FFEA, 0xFE28ED61, 0xEE7C3C73,
+	            0x5D4A14D9, 0xE864B7E3, 0x42105D14, 0x203E13E0,
+	            0x45EEE2B6, 0xA3AAABEA, 0xDB6C4F15, 0xFACB4FD0,
+	            0xC742F442, 0xEF6ABBB5, 0x654F3B1D, 0x41CD2105,
+	            0xD81E799E, 0x86854DC7, 0xE44B476A, 0x3D816250,
+	            0xCF62A1F2, 0x5B8D2646, 0xFC8883A0, 0xC1C7B6A3,
+	            0x7F1524C3, 0x69CB7492, 0x47848A0B, 0x5692B285,
+	            0x095BBF00, 0xAD19489D, 0x1462B174, 0x23820E00,
+	            0x58428D2A, 0x0C55F5EA, 0x1DADF43E, 0x233F7061,
+	            0x3372F092, 0x8D937E41, 0xD65FECF1, 0x6C223BDB,
+	            0x7CDE3759, 0xCBEE7460, 0x4085F2A7, 0xCE77326E,
+	            0xA6078084, 0x19F8509E, 0xE8EFD855, 0x61D99735,
+	            0xA969A7AA, 0xC50C06C2, 0x5A04ABFC, 0x800BCADC,
+	            0x9E447A2E, 0xC3453484, 0xFDD56705, 0x0E1E9EC9,
+	            0xDB73DBD3, 0x105588CD, 0x675FDA79, 0xE3674340,
+	            0xC5C43465, 0x713E38D8, 0x3D28F89E, 0xF16DFF20,
+	            0x153E21E7, 0x8FB03D4A, 0xE6E39F2B, 0xDB83ADF7   ],
+	        [   0xE93D5A68, 0x948140F7, 0xF64C261C, 0x94692934,
+	            0x411520F7, 0x7602D4F7, 0xBCF46B2E, 0xD4A20068,
+	            0xD4082471, 0x3320F46A, 0x43B7D4B7, 0x500061AF,
+	            0x1E39F62E, 0x97244546, 0x14214F74, 0xBF8B8840,
+	            0x4D95FC1D, 0x96B591AF, 0x70F4DDD3, 0x66A02F45,
+	            0xBFBC09EC, 0x03BD9785, 0x7FAC6DD0, 0x31CB8504,
+	            0x96EB27B3, 0x55FD3941, 0xDA2547E6, 0xABCA0A9A,
+	            0x28507825, 0x530429F4, 0x0A2C86DA, 0xE9B66DFB,
+	            0x68DC1462, 0xD7486900, 0x680EC0A4, 0x27A18DEE,
+	            0x4F3FFEA2, 0xE887AD8C, 0xB58CE006, 0x7AF4D6B6,
+	            0xAACE1E7C, 0xD3375FEC, 0xCE78A399, 0x406B2A42,
+	            0x20FE9E35, 0xD9F385B9, 0xEE39D7AB, 0x3B124E8B,
+	            0x1DC9FAF7, 0x4B6D1856, 0x26A36631, 0xEAE397B2,
+	            0x3A6EFA74, 0xDD5B4332, 0x6841E7F7, 0xCA7820FB,
+	            0xFB0AF54E, 0xD8FEB397, 0x454056AC, 0xBA489527,
+	            0x55533A3A, 0x20838D87, 0xFE6BA9B7, 0xD096954B,
+	            0x55A867BC, 0xA1159A58, 0xCCA92963, 0x99E1DB33,
+	            0xA62A4A56, 0x3F3125F9, 0x5EF47E1C, 0x9029317C,
+	            0xFDF8E802, 0x04272F70, 0x80BB155C, 0x05282CE3,
+	            0x95C11548, 0xE4C66D22, 0x48C1133F, 0xC70F86DC,
+	            0x07F9C9EE, 0x41041F0F, 0x404779A4, 0x5D886E17,
+	            0x325F51EB, 0xD59BC0D1, 0xF2BCC18F, 0x41113564,
+	            0x257B7834, 0x602A9C60, 0xDFF8E8A3, 0x1F636C1B,
+	            0x0E12B4C2, 0x02E1329E, 0xAF664FD1, 0xCAD18115,
+	            0x6B2395E0, 0x333E92E1, 0x3B240B62, 0xEEBEB922,
+	            0x85B2A20E, 0xE6BA0D99, 0xDE720C8C, 0x2DA2F728,
+	            0xD0127845, 0x95B794FD, 0x647D0862, 0xE7CCF5F0,
+	            0x5449A36F, 0x877D48FA, 0xC39DFD27, 0xF33E8D1E,
+	            0x0A476341, 0x992EFF74, 0x3A6F6EAB, 0xF4F8FD37,
+	            0xA812DC60, 0xA1EBDDF8, 0x991BE14C, 0xDB6E6B0D,
+	            0xC67B5510, 0x6D672C37, 0x2765D43B, 0xDCD0E804,
+	            0xF1290DC7, 0xCC00FFA3, 0xB5390F92, 0x690FED0B,
+	            0x667B9FFB, 0xCEDB7D9C, 0xA091CF0B, 0xD9155EA3,
+	            0xBB132F88, 0x515BAD24, 0x7B9479BF, 0x763BD6EB,
+	            0x37392EB3, 0xCC115979, 0x8026E297, 0xF42E312D,
+	            0x6842ADA7, 0xC66A2B3B, 0x12754CCC, 0x782EF11C,
+	            0x6A124237, 0xB79251E7, 0x06A1BBE6, 0x4BFB6350,
+	            0x1A6B1018, 0x11CAEDFA, 0x3D25BDD8, 0xE2E1C3C9,
+	            0x44421659, 0x0A121386, 0xD90CEC6E, 0xD5ABEA2A,
+	            0x64AF674E, 0xDA86A85F, 0xBEBFE988, 0x64E4C3FE,
+	            0x9DBC8057, 0xF0F7C086, 0x60787BF8, 0x6003604D,
+	            0xD1FD8346, 0xF6381FB0, 0x7745AE04, 0xD736FCCC,
+	            0x83426B33, 0xF01EAB71, 0xB0804187, 0x3C005E5F,
+	            0x77A057BE, 0xBDE8AE24, 0x55464299, 0xBF582E61,
+	            0x4E58F48F, 0xF2DDFDA2, 0xF474EF38, 0x8789BDC2,
+	            0x5366F9C3, 0xC8B38E74, 0xB475F255, 0x46FCD9B9,
+	            0x7AEB2661, 0x8B1DDF84, 0x846A0E79, 0x915F95E2,
+	            0x466E598E, 0x20B45770, 0x8CD55591, 0xC902DE4C,
+	            0xB90BACE1, 0xBB8205D0, 0x11A86248, 0x7574A99E,
+	            0xB77F19B6, 0xE0A9DC09, 0x662D09A1, 0xC4324633,
+	            0xE85A1F02, 0x09F0BE8C, 0x4A99A025, 0x1D6EFE10,
+	            0x1AB93D1D, 0x0BA5A4DF, 0xA186F20F, 0x2868F169,
+	            0xDCB7DA83, 0x573906FE, 0xA1E2CE9B, 0x4FCD7F52,
+	            0x50115E01, 0xA70683FA, 0xA002B5C4, 0x0DE6D027,
+	            0x9AF88C27, 0x773F8641, 0xC3604C06, 0x61A806B5,
+	            0xF0177A28, 0xC0F586E0, 0x006058AA, 0x30DC7D62,
+	            0x11E69ED7, 0x2338EA63, 0x53C2DD94, 0xC2C21634,
+	            0xBBCBEE56, 0x90BCB6DE, 0xEBFC7DA1, 0xCE591D76,
+	            0x6F05E409, 0x4B7C0188, 0x39720A3D, 0x7C927C24,
+	            0x86E3725F, 0x724D9DB9, 0x1AC15BB4, 0xD39EB8FC,
+	            0xED545578, 0x08FCA5B5, 0xD83D7CD3, 0x4DAD0FC4,
+	            0x1E50EF5E, 0xB161E6F8, 0xA28514D9, 0x6C51133C,
+	            0x6FD5C7E7, 0x56E14EC4, 0x362ABFCE, 0xDDC6C837,
+	            0xD79A3234, 0x92638212, 0x670EFA8E, 0x406000E0  ],
+	        [   0x3A39CE37, 0xD3FAF5CF, 0xABC27737, 0x5AC52D1B,
+	            0x5CB0679E, 0x4FA33742, 0xD3822740, 0x99BC9BBE,
+	            0xD5118E9D, 0xBF0F7315, 0xD62D1C7E, 0xC700C47B,
+	            0xB78C1B6B, 0x21A19045, 0xB26EB1BE, 0x6A366EB4,
+	            0x5748AB2F, 0xBC946E79, 0xC6A376D2, 0x6549C2C8,
+	            0x530FF8EE, 0x468DDE7D, 0xD5730A1D, 0x4CD04DC6,
+	            0x2939BBDB, 0xA9BA4650, 0xAC9526E8, 0xBE5EE304,
+	            0xA1FAD5F0, 0x6A2D519A, 0x63EF8CE2, 0x9A86EE22,
+	            0xC089C2B8, 0x43242EF6, 0xA51E03AA, 0x9CF2D0A4,
+	            0x83C061BA, 0x9BE96A4D, 0x8FE51550, 0xBA645BD6,
+	            0x2826A2F9, 0xA73A3AE1, 0x4BA99586, 0xEF5562E9,
+	            0xC72FEFD3, 0xF752F7DA, 0x3F046F69, 0x77FA0A59,
+	            0x80E4A915, 0x87B08601, 0x9B09E6AD, 0x3B3EE593,
+	            0xE990FD5A, 0x9E34D797, 0x2CF0B7D9, 0x022B8B51,
+	            0x96D5AC3A, 0x017DA67D, 0xD1CF3ED6, 0x7C7D2D28,
+	            0x1F9F25CF, 0xADF2B89B, 0x5AD6B472, 0x5A88F54C,
+	            0xE029AC71, 0xE019A5E6, 0x47B0ACFD, 0xED93FA9B,
+	            0xE8D3C48D, 0x283B57CC, 0xF8D56629, 0x79132E28,
+	            0x785F0191, 0xED756055, 0xF7960E44, 0xE3D35E8C,
+	            0x15056DD4, 0x88F46DBA, 0x03A16125, 0x0564F0BD,
+	            0xC3EB9E15, 0x3C9057A2, 0x97271AEC, 0xA93A072A,
+	            0x1B3F6D9B, 0x1E6321F5, 0xF59C66FB, 0x26DCF319,
+	            0x7533D928, 0xB155FDF5, 0x03563482, 0x8ABA3CBB,
+	            0x28517711, 0xC20AD9F8, 0xABCC5167, 0xCCAD925F,
+	            0x4DE81751, 0x3830DC8E, 0x379D5862, 0x9320F991,
+	            0xEA7A90C2, 0xFB3E7BCE, 0x5121CE64, 0x774FBE32,
+	            0xA8B6E37E, 0xC3293D46, 0x48DE5369, 0x6413E680,
+	            0xA2AE0810, 0xDD6DB224, 0x69852DFD, 0x09072166,
+	            0xB39A460A, 0x6445C0DD, 0x586CDECF, 0x1C20C8AE,
+	            0x5BBEF7DD, 0x1B588D40, 0xCCD2017F, 0x6BB4E3BB,
+	            0xDDA26A7E, 0x3A59FF45, 0x3E350A44, 0xBCB4CDD5,
+	            0x72EACEA8, 0xFA6484BB, 0x8D6612AE, 0xBF3C6F47,
+	            0xD29BE463, 0x542F5D9E, 0xAEC2771B, 0xF64E6370,
+	            0x740E0D8D, 0xE75B1357, 0xF8721671, 0xAF537D5D,
+	            0x4040CB08, 0x4EB4E2CC, 0x34D2466A, 0x0115AF84,
+	            0xE1B00428, 0x95983A1D, 0x06B89FB4, 0xCE6EA048,
+	            0x6F3F3B82, 0x3520AB82, 0x011A1D4B, 0x277227F8,
+	            0x611560B1, 0xE7933FDC, 0xBB3A792B, 0x344525BD,
+	            0xA08839E1, 0x51CE794B, 0x2F32C9B7, 0xA01FBAC9,
+	            0xE01CC87E, 0xBCC7D1F6, 0xCF0111C3, 0xA1E8AAC7,
+	            0x1A908749, 0xD44FBD9A, 0xD0DADECB, 0xD50ADA38,
+	            0x0339C32A, 0xC6913667, 0x8DF9317C, 0xE0B12B4F,
+	            0xF79E59B7, 0x43F5BB3A, 0xF2D519FF, 0x27D9459C,
+	            0xBF97222C, 0x15E6FC2A, 0x0F91FC71, 0x9B941525,
+	            0xFAE59361, 0xCEB69CEB, 0xC2A86459, 0x12BAA8D1,
+	            0xB6C1075E, 0xE3056A0C, 0x10D25065, 0xCB03A442,
+	            0xE0EC6E0E, 0x1698DB3B, 0x4C98A0BE, 0x3278E964,
+	            0x9F1F9532, 0xE0D392DF, 0xD3A0342B, 0x8971F21E,
+	            0x1B0A7441, 0x4BA3348C, 0xC5BE7120, 0xC37632D8,
+	            0xDF359F8D, 0x9B992F2E, 0xE60B6F47, 0x0FE3F11D,
+	            0xE54CDA54, 0x1EDAD891, 0xCE6279CF, 0xCD3E7E6F,
+	            0x1618B166, 0xFD2C1D05, 0x848FD2C5, 0xF6FB2299,
+	            0xF523F357, 0xA6327623, 0x93A83531, 0x56CCCD02,
+	            0xACF08162, 0x5A75EBB5, 0x6E163697, 0x88D273CC,
+	            0xDE966292, 0x81B949D0, 0x4C50901B, 0x71C65614,
+	            0xE6C6C7BD, 0x327A140A, 0x45E1D006, 0xC3F27B9A,
+	            0xC9AA53FD, 0x62A80F00, 0xBB25BFE2, 0x35BDD2F6,
+	            0x71126905, 0xB2040222, 0xB6CBCF7C, 0xCD769C2B,
+	            0x53113EC0, 0x1640E3D3, 0x38ABBD60, 0x2547ADF0,
+	            0xBA38209C, 0xF746CE76, 0x77AFA1C5, 0x20756060,
+	            0x85CBFE4E, 0x8AE88DD8, 0x7AAAF9B0, 0x4CF9AA7E,
+	            0x1948C25C, 0x02FB8A8C, 0x01C36AE4, 0xD6EBE1F9,
+	            0x90D4F869, 0xA65CDEA0, 0x3F09252D, 0xC208E69F,
+	            0xB74E6132, 0xCE77E25B, 0x578FDFE3, 0x3AC372E6  ]
+	    ];
+
+	    var BLOWFISH_CTX = {
+	        pbox: [],
+	        sbox: []
+	    }
+
+	    function F(ctx, x){
+	        let a = (x >> 24) & 0xFF;
+	        let b = (x >> 16) & 0xFF;
+	        let c = (x >> 8) & 0xFF;
+	        let d = x & 0xFF;
+
+	        let y = ctx.sbox[0][a] + ctx.sbox[1][b];
+	        y = y ^ ctx.sbox[2][c];
+	        y = y + ctx.sbox[3][d];
+
+	        return y;
+	    }
+
+	    function BlowFish_Encrypt(ctx, left, right){
+	        let Xl = left;
+	        let Xr = right;
+	        let temp;
+
+	        for(let i = 0; i < N; ++i){
+	            Xl = Xl ^ ctx.pbox[i];
+	            Xr = F(ctx, Xl) ^ Xr;
+
+	            temp = Xl;
+	            Xl = Xr;
+	            Xr = temp;
+	        }
+
+	        temp = Xl;
+	        Xl = Xr;
+	        Xr = temp;
+
+	        Xr = Xr ^ ctx.pbox[N];
+	        Xl = Xl ^ ctx.pbox[N + 1];
+
+	        return {left: Xl, right: Xr};
+	    }
+
+	    function BlowFish_Decrypt(ctx, left, right){
+	        let Xl = left;
+	        let Xr = right;
+	        let temp;
+
+	        for(let i = N + 1; i > 1; --i){
+	            Xl = Xl ^ ctx.pbox[i];
+	            Xr = F(ctx, Xl) ^ Xr;
+
+	            temp = Xl;
+	            Xl = Xr;
+	            Xr = temp;
+	        }
+
+	        temp = Xl;
+	        Xl = Xr;
+	        Xr = temp;
+
+	        Xr = Xr ^ ctx.pbox[1];
+	        Xl = Xl ^ ctx.pbox[0];
+
+	        return {left: Xl, right: Xr};
+	    }
+
+	    /**
+	     * Initialization ctx's pbox and sbox.
+	     *
+	     * @param {Object} ctx The object has pbox and sbox.
+	     * @param {Array} key An array of 32-bit words.
+	     * @param {int} keysize The length of the key.
+	     *
+	     * @example
+	     *
+	     *     BlowFishInit(BLOWFISH_CTX, key, 128/32);
+	     */
+	    function BlowFishInit(ctx, key, keysize)
+	    {
+	        for(let Row = 0; Row < 4; Row++)
+	        {
+	            ctx.sbox[Row] = [];
+	            for(let Col = 0; Col < 256; Col++)
+	            {
+	                ctx.sbox[Row][Col] = ORIG_S[Row][Col];
+	            }
+	        }
+
+	        let keyIndex = 0;
+	        for(let index = 0; index < N + 2; index++)
+	        {
+	            ctx.pbox[index] = ORIG_P[index] ^ key[keyIndex];
+	            keyIndex++;
+	            if(keyIndex >= keysize)
+	            {
+	                keyIndex = 0;
+	            }
+	        }
+
+	        let Data1 = 0;
+	        let Data2 = 0;
+	        let res = 0;
+	        for(let i = 0; i < N + 2; i += 2)
+	        {
+	            res = BlowFish_Encrypt(ctx, Data1, Data2);
+	            Data1 = res.left;
+	            Data2 = res.right;
+	            ctx.pbox[i] = Data1;
+	            ctx.pbox[i + 1] = Data2;
+	        }
+
+	        for(let i = 0; i < 4; i++)
+	        {
+	            for(let j = 0; j < 256; j += 2)
+	            {
+	                res = BlowFish_Encrypt(ctx, Data1, Data2);
+	                Data1 = res.left;
+	                Data2 = res.right;
+	                ctx.sbox[i][j] = Data1;
+	                ctx.sbox[i][j + 1] = Data2;
+	            }
+	        }
+
+	        return true;
+	    }
+
+	    /**
+	     * Blowfish block cipher algorithm.
+	     */
+	    var Blowfish = C_algo.Blowfish = BlockCipher.extend({
+	        _doReset: function () {
+	            // Skip reset of nRounds has been set before and key did not change
+	            if (this._keyPriorReset === this._key) {
+	                return;
+	            }
+
+	            // Shortcuts
+	            var key = this._keyPriorReset = this._key;
+	            var keyWords = key.words;
+	            var keySize = key.sigBytes / 4;
+
+	            //Initialization pbox and sbox
+	            BlowFishInit(BLOWFISH_CTX, keyWords, keySize);
+	        },
+
+	        encryptBlock: function (M, offset) {
+	            var res = BlowFish_Encrypt(BLOWFISH_CTX, M[offset], M[offset + 1]);
+	            M[offset] = res.left;
+	            M[offset + 1] = res.right;
+	        },
+
+	        decryptBlock: function (M, offset) {
+	            var res = BlowFish_Decrypt(BLOWFISH_CTX, M[offset], M[offset + 1]);
+	            M[offset] = res.left;
+	            M[offset + 1] = res.right;
+	        },
+
+	        blockSize: 64/32,
+
+	        keySize: 128/32,
+
+	        ivSize: 64/32
+	    });
+
+	    /**
+	     * Shortcut functions to the cipher's object interface.
+	     *
+	     * @example
+	     *
+	     *     var ciphertext = CryptoJS.Blowfish.encrypt(message, key, cfg);
+	     *     var plaintext  = CryptoJS.Blowfish.decrypt(ciphertext, key, cfg);
+	     */
+	    C.Blowfish = BlockCipher._createHelper(Blowfish);
+	}());
+
+
+	return CryptoJS;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/docs/QuickStartGuide.wiki b/node_modules/crypto-js/docs/QuickStartGuide.wiki
new file mode 100644
index 0000000..2bee35d
--- /dev/null
+++ b/node_modules/crypto-js/docs/QuickStartGuide.wiki
@@ -0,0 +1,470 @@
+<wiki:toc/>
+
+----
+
+= Quick-start Guide =
+
+== Hashers ==
+
+=== The Hasher Algorithms ===
+
+==== MD5 ====
+
+MD5 is a widely used hash function. It's been used in a variety of security applications and is also commonly used to check the integrity of files. Though, MD5 is not collision resistant, and it isn't suitable for applications like SSL certificates or digital signatures that rely on this property.
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/md5.js"></script>
+<script>
+    var hash = CryptoJS.MD5("Message");
+</script>
+}}}
+
+==== SHA-1 ====
+
+The SHA hash functions were designed by the National Security Agency (NSA). SHA-1 is the most established of the existing SHA hash functions, and it's used in a variety of security applications and protocols. Though, SHA-1's collision resistance has been weakening as new attacks are discovered or improved.
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/sha1.js"></script>
+<script>
+    var hash = CryptoJS.SHA1("Message");
+</script>
+}}}
+
+==== SHA-2 ====
+
+SHA-256 is one of the four variants in the SHA-2 set. It isn't as widely used as SHA-1, though it appears to provide much better security.
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/sha256.js"></script>
+<script>
+    var hash = CryptoJS.SHA256("Message");
+</script>
+}}}
+
+SHA-512 is largely identical to SHA-256 but operates on 64-bit words rather than 32.
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/sha512.js"></script>
+<script>
+    var hash = CryptoJS.SHA512("Message");
+</script>
+}}}
+
+CryptoJS also supports SHA-224 and SHA-384, which are largely identical but truncated versions of SHA-256 and SHA-512 respectively.
+
+==== SHA-3 ====
+
+SHA-3 is the winner of a five-year competition to select a new cryptographic hash algorithm where 64 competing designs were evaluated.
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/sha3.js"></script>
+<script>
+    var hash = CryptoJS.SHA3("Message");
+</script>
+}}}
+
+SHA-3 can be configured to output hash lengths of one of 224, 256, 384, or 512 bits. The default is 512 bits.
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/sha3.js"></script>
+<script>
+    var hash = CryptoJS.SHA3("Message", { outputLength: 512 });
+    var hash = CryptoJS.SHA3("Message", { outputLength: 384 });
+    var hash = CryptoJS.SHA3("Message", { outputLength: 256 });
+    var hash = CryptoJS.SHA3("Message", { outputLength: 224 });
+</script>
+}}}
+
+==== RIPEMD-160 ====
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/ripemd160.js"></script>
+<script>
+    var hash = CryptoJS.RIPEMD160("Message");
+</script>
+}}}
+
+=== The Hasher Input ===
+
+The hash algorithms accept either strings or instances of CryptoJS.lib.WordArray. A WordArray object represents an array of 32-bit words. When you pass a string, it's automatically converted to a WordArray encoded as UTF-8.
+
+=== The Hasher Output ===
+
+The hash you get back isn't a string yet. It's a WordArray object. When you use a WordArray object in a string context, it's automatically converted to a hex string.
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/sha256.js"></script>
+<script>
+    var hash = CryptoJS.SHA256("Message");
+
+    alert(typeof hash); // object
+
+    alert(hash); // 2f77668a9dfbf8d5848b9eeb4a7145ca94c6ed9236e4a773f6dcafa5132b2f91
+</script>
+}}}
+
+You can convert a WordArray object to other formats by explicitly calling the toString method and passing an encoder.
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/sha256.js"></script>
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/components/enc-base64-min.js"></script>
+<script>
+    var hash = CryptoJS.SHA256("Message");
+
+    alert(hash.toString(CryptoJS.enc.Base64)); // L3dmip37+NWEi57rSnFFypTG7ZI25Kdz9tyvpRMrL5E=
+
+    alert(hash.toString(CryptoJS.enc.Latin1)); // /wf��ûøÕ���ëJqEÊ�Æí�6ä§söܯ¥+/�
+
+    alert(hash.toString(CryptoJS.enc.Hex)); // 2f77668a9dfbf8d5848b9eeb4a7145ca94c6ed9236e4a773f6dcafa5132b2f91
+</script>
+}}}
+
+=== Progressive Hashing ===
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/sha256.js"></script>
+<script>
+    var sha256 = CryptoJS.algo.SHA256.create();
+
+    sha256.update("Message Part 1");
+    sha256.update("Message Part 2");
+    sha256.update("Message Part 3");
+
+    var hash = sha256.finalize();
+</script>
+}}}
+
+== HMAC ==
+
+Keyed-hash message authentication codes (HMAC) is a mechanism for message authentication using cryptographic hash functions.
+
+HMAC can be used in combination with any iterated cryptographic hash function.
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/hmac-md5.js"></script>
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/hmac-sha1.js"></script>
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/hmac-sha256.js"></script>
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/hmac-sha512.js"></script>
+<script>
+    var hash = CryptoJS.HmacMD5("Message", "Secret Passphrase");
+    var hash = CryptoJS.HmacSHA1("Message", "Secret Passphrase");
+    var hash = CryptoJS.HmacSHA256("Message", "Secret Passphrase");
+    var hash = CryptoJS.HmacSHA512("Message", "Secret Passphrase");
+</script>
+}}}
+
+=== Progressive HMAC Hashing ===
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/hmac-sha256.js"></script>
+<script>
+    var hmac = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, "Secret Passphrase");
+
+    hmac.update("Message Part 1");
+    hmac.update("Message Part 2");
+    hmac.update("Message Part 3");
+
+    var hash = hmac.finalize();
+</script>
+}}}
+
+== PBKDF2 ==
+
+PBKDF2 is a password-based key derivation function. In many applications of cryptography, user security is ultimately dependent on a password, and because a password usually can't be used directly as a cryptographic key, some processing is required.
+
+A salt provides a large set of keys for any given password, and an iteration count increases the cost of producing keys from a password, thereby also increasing the difficulty of attack.
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/pbkdf2.js"></script>
+<script>
+    var salt = CryptoJS.lib.WordArray.random(128/8);
+
+    var key128Bits = CryptoJS.PBKDF2("Secret Passphrase", salt, { keySize: 128/32 });
+    var key256Bits = CryptoJS.PBKDF2("Secret Passphrase", salt, { keySize: 256/32 });
+    var key512Bits = CryptoJS.PBKDF2("Secret Passphrase", salt, { keySize: 512/32 });
+
+    var key512Bits1000Iterations = CryptoJS.PBKDF2("Secret Passphrase", salt, { keySize: 512/32, iterations: 1000 });
+</script>
+}}}
+
+== Ciphers ==
+
+=== The Cipher Algorithms ===
+
+==== AES ====
+
+The Advanced Encryption Standard (AES) is a U.S. Federal Information Processing Standard (FIPS). It was selected after a 5-year process where 15 competing designs were evaluated.
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/aes.js"></script>
+<script>
+    var encrypted = CryptoJS.AES.encrypt("Message", "Secret Passphrase");
+
+    var decrypted = CryptoJS.AES.decrypt(encrypted, "Secret Passphrase");
+</script>
+}}}
+
+CryptoJS supports AES-128, AES-192, and AES-256. It will pick the variant by the size of the key you pass in. If you use a passphrase, then it will generate a 256-bit key.
+
+==== DES, Triple DES ====
+
+DES is a previously dominant algorithm for encryption, and was published as an official Federal Information Processing Standard (FIPS). DES is now considered to be insecure due to the small key size.
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/tripledes.js"></script>
+<script>
+    var encrypted = CryptoJS.DES.encrypt("Message", "Secret Passphrase");
+
+    var decrypted = CryptoJS.DES.decrypt(encrypted, "Secret Passphrase");
+</script>
+}}}
+
+Triple DES applies DES three times to each block to increase the key size. The algorithm is believed to be secure in this form.
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/tripledes.js"></script>
+<script>
+    var encrypted = CryptoJS.TripleDES.encrypt("Message", "Secret Passphrase");
+
+    var decrypted = CryptoJS.TripleDES.decrypt(encrypted, "Secret Passphrase");
+</script>
+}}}
+
+==== Rabbit ====
+
+Rabbit is a high-performance stream cipher and a finalist in the eSTREAM Portfolio. It is one of the four designs selected after a 3 1/2-year process where 22 designs were evaluated.
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/rabbit.js"></script>
+<script>
+    var encrypted = CryptoJS.Rabbit.encrypt("Message", "Secret Passphrase");
+
+    var decrypted = CryptoJS.Rabbit.decrypt(encrypted, "Secret Passphrase");
+</script>
+}}}
+
+==== RC4, RC4Drop ====
+
+RC4 is a widely-used stream cipher. It's used in popular protocols such as SSL and WEP. Although remarkable for its simplicity and speed, the algorithm's history doesn't inspire confidence in its security.
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/rc4.js"></script>
+<script>
+    var encrypted = CryptoJS.RC4.encrypt("Message", "Secret Passphrase");
+
+    var decrypted = CryptoJS.RC4.decrypt(encrypted, "Secret Passphrase");
+</script>
+}}}
+
+It was discovered that the first few bytes of keystream are strongly non-random and leak information about the key. We can defend against this attack by discarding the initial portion of the keystream. This modified algorithm is traditionally called RC4-drop.
+
+By default, 192 words (768 bytes) are dropped, but you can configure the algorithm to drop any number of words.
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/rc4.js"></script>
+<script>
+    var encrypted = CryptoJS.RC4Drop.encrypt("Message", "Secret Passphrase");
+
+    var encrypted = CryptoJS.RC4Drop.encrypt("Message", "Secret Passphrase", { drop: 3072/4 });
+
+    var decrypted = CryptoJS.RC4Drop.decrypt(encrypted, "Secret Passphrase", { drop: 3072/4 });
+</script>
+}}}
+
+=== Custom Key and IV ===
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/aes.js"></script>
+<script>
+    var key = CryptoJS.enc.Hex.parse('000102030405060708090a0b0c0d0e0f');
+    var iv  = CryptoJS.enc.Hex.parse('101112131415161718191a1b1c1d1e1f');
+
+    var encrypted = CryptoJS.AES.encrypt("Message", key, { iv: iv });
+</script>
+}}}
+
+=== Block Modes and Padding ===
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/aes.js"></script>
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/components/mode-cfb-min.js"></script>
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/components/pad-ansix923-min.js"></script>
+<script>
+    var encrypted = CryptoJS.AES.encrypt("Message", "Secret Passphrase", { mode: CryptoJS.mode.CFB, padding: CryptoJS.pad.AnsiX923 });
+</script>
+}}}
+
+CryptoJS supports the following modes:
+
+  * CBC (the default)
+  * CFB
+  * CTR
+  * OFB
+  * ECB
+
+And CryptoJS supports the following padding schemes:
+
+  * Pkcs7 (the default)
+  * Iso97971
+  * AnsiX923
+  * Iso10126
+  * ZeroPadding
+  * NoPadding
+
+=== The Cipher Input ===
+
+For the plaintext message, the cipher algorithms accept either strings or instances of CryptoJS.lib.WordArray.
+
+For the key, when you pass a string, it's treated as a passphrase and used to derive an actual key and IV. Or you can pass a WordArray that represents the actual key. If you pass the actual key, you must also pass the actual IV.
+
+For the ciphertext, the cipher algorithms accept either strings or instances of CryptoJS.lib.CipherParams. A CipherParams object represents a collection of parameters such as the IV, a salt, and the raw ciphertext itself. When you pass a string, it's automatically converted to a CipherParams object according to a configurable format strategy.
+
+=== The Cipher Output ===
+
+The plaintext you get back after decryption is a WordArray object. See Hashers' Output for more detail.
+
+The ciphertext you get back after encryption isn't a string yet. It's a CipherParams object. A CipherParams object gives you access to all the parameters used during encryption. When you use a CipherParams object in a string context, it's automatically converted to a string according to a format strategy. The default is an OpenSSL-compatible format.
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/aes.js"></script>
+<script>
+    var encrypted = CryptoJS.AES.encrypt("Message", "Secret Passphrase");
+
+    alert(encrypted.key);        // 74eb593087a982e2a6f5dded54ecd96d1fd0f3d44a58728cdcd40c55227522223
+    alert(encrypted.iv);         // 7781157e2629b094f0e3dd48c4d786115
+    alert(encrypted.salt);       // 7a25f9132ec6a8b34
+    alert(encrypted.ciphertext); // 73e54154a15d1beeb509d9e12f1e462a0
+
+    alert(encrypted);            // U2FsdGVkX1+iX5Ey7GqLND5UFUoV0b7rUJ2eEvHkYqA=
+</script>
+}}}
+
+You can define your own formats in order to be compatible with other crypto implementations. A format is an object with two methods—stringify and parse—that converts between CipherParams objects and ciphertext strings.
+
+Here's how you might write a JSON formatter:
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/aes.js"></script>
+<script>
+    var JsonFormatter = {
+        stringify: function (cipherParams) {
+            // create json object with ciphertext
+            var jsonObj = {
+                ct: cipherParams.ciphertext.toString(CryptoJS.enc.Base64)
+            };
+
+            // optionally add iv and salt
+            if (cipherParams.iv) {
+                jsonObj.iv = cipherParams.iv.toString();
+            }
+            if (cipherParams.salt) {
+                jsonObj.s = cipherParams.salt.toString();
+            }
+
+            // stringify json object
+            return JSON.stringify(jsonObj);
+        },
+
+        parse: function (jsonStr) {
+            // parse json string
+            var jsonObj = JSON.parse(jsonStr);
+
+            // extract ciphertext from json object, and create cipher params object
+            var cipherParams = CryptoJS.lib.CipherParams.create({
+                ciphertext: CryptoJS.enc.Base64.parse(jsonObj.ct)
+            });
+
+            // optionally extract iv and salt
+            if (jsonObj.iv) {
+                cipherParams.iv = CryptoJS.enc.Hex.parse(jsonObj.iv)
+            }
+            if (jsonObj.s) {
+                cipherParams.salt = CryptoJS.enc.Hex.parse(jsonObj.s)
+            }
+
+            return cipherParams;
+        }
+    };
+
+    var encrypted = CryptoJS.AES.encrypt("Message", "Secret Passphrase", { format: JsonFormatter });
+
+    alert(encrypted); // {"ct":"tZ4MsEnfbcDOwqau68aOrQ==","iv":"8a8c8fd8fe33743d3638737ea4a00698","s":"ba06373c8f57179c"}
+
+    var decrypted = CryptoJS.AES.decrypt(encrypted, "Secret Passphrase", { format: JsonFormatter });
+
+    alert(decrypted.toString(CryptoJS.enc.Utf8)); // Message
+</script>
+}}}
+
+=== Progressive Ciphering ===
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/aes.js"></script>
+<script>
+    var key = CryptoJS.enc.Hex.parse('000102030405060708090a0b0c0d0e0f');
+    var iv  = CryptoJS.enc.Hex.parse('101112131415161718191a1b1c1d1e1f');
+
+    var aesEncryptor = CryptoJS.algo.AES.createEncryptor(key, { iv: iv });
+
+    var ciphertextPart1 = aesEncryptor.process("Message Part 1");
+    var ciphertextPart2 = aesEncryptor.process("Message Part 2");
+    var ciphertextPart3 = aesEncryptor.process("Message Part 3");
+    var ciphertextPart4 = aesEncryptor.finalize();
+
+    var aesDecryptor = CryptoJS.algo.AES.createDecryptor(key, { iv: iv });
+
+    var plaintextPart1 = aesDecryptor.process(ciphertextPart1);
+    var plaintextPart2 = aesDecryptor.process(ciphertextPart2);
+    var plaintextPart3 = aesDecryptor.process(ciphertextPart3);
+    var plaintextPart4 = aesDecryptor.process(ciphertextPart4);
+    var plaintextPart5 = aesDecryptor.finalize();
+</script>
+}}}
+
+=== Interoperability ===
+
+==== With OpenSSL ====
+
+Encrypt with OpenSSL:
+
+{{{
+openssl enc -aes-256-cbc -in infile -out outfile -pass pass:"Secret Passphrase" -e -base64
+}}}
+
+Decrypt with CryptoJS:
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/aes.js"></script>
+<script>
+    var decrypted = CryptoJS.AES.decrypt(openSSLEncrypted, "Secret Passphrase");
+</script>
+}}}
+
+== Encoders ==
+
+CryptoJS can convert from encoding formats such as Base64, Latin1 or Hex to WordArray objects and vica versa.
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/components/core-min.js"></script>
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/components/enc-utf16-min.js"></script>
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/components/enc-base64-min.js"></script>
+<script>
+    var words  = CryptoJS.enc.Base64.parse('SGVsbG8sIFdvcmxkIQ==');
+    var base64 = CryptoJS.enc.Base64.stringify(words);
+
+    var words  = CryptoJS.enc.Latin1.parse('Hello, World!');
+    var latin1 = CryptoJS.enc.Latin1.stringify(words);
+
+    var words = CryptoJS.enc.Hex.parse('48656c6c6f2c20576f726c6421');
+    var hex   = CryptoJS.enc.Hex.stringify(words);
+
+    var words = CryptoJS.enc.Utf8.parse('𤭢');
+    var utf8  = CryptoJS.enc.Utf8.stringify(words);
+
+    var words = CryptoJS.enc.Utf16.parse('Hello, World!');
+    var utf16 = CryptoJS.enc.Utf16.stringify(words);
+
+    var words = CryptoJS.enc.Utf16LE.parse('Hello, World!');
+    var utf16 = CryptoJS.enc.Utf16LE.stringify(words);
+</script>
+}}}
\ No newline at end of file
diff --git a/node_modules/crypto-js/enc-base64.js b/node_modules/crypto-js/enc-base64.js
new file mode 100644
index 0000000..0ffcd53
--- /dev/null
+++ b/node_modules/crypto-js/enc-base64.js
@@ -0,0 +1,136 @@
+;(function (root, factory) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	(function () {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var WordArray = C_lib.WordArray;
+	    var C_enc = C.enc;
+
+	    /**
+	     * Base64 encoding strategy.
+	     */
+	    var Base64 = C_enc.Base64 = {
+	        /**
+	         * Converts a word array to a Base64 string.
+	         *
+	         * @param {WordArray} wordArray The word array.
+	         *
+	         * @return {string} The Base64 string.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var base64String = CryptoJS.enc.Base64.stringify(wordArray);
+	         */
+	        stringify: function (wordArray) {
+	            // Shortcuts
+	            var words = wordArray.words;
+	            var sigBytes = wordArray.sigBytes;
+	            var map = this._map;
+
+	            // Clamp excess bits
+	            wordArray.clamp();
+
+	            // Convert
+	            var base64Chars = [];
+	            for (var i = 0; i < sigBytes; i += 3) {
+	                var byte1 = (words[i >>> 2]       >>> (24 - (i % 4) * 8))       & 0xff;
+	                var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;
+	                var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;
+
+	                var triplet = (byte1 << 16) | (byte2 << 8) | byte3;
+
+	                for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {
+	                    base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));
+	                }
+	            }
+
+	            // Add padding
+	            var paddingChar = map.charAt(64);
+	            if (paddingChar) {
+	                while (base64Chars.length % 4) {
+	                    base64Chars.push(paddingChar);
+	                }
+	            }
+
+	            return base64Chars.join('');
+	        },
+
+	        /**
+	         * Converts a Base64 string to a word array.
+	         *
+	         * @param {string} base64Str The Base64 string.
+	         *
+	         * @return {WordArray} The word array.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var wordArray = CryptoJS.enc.Base64.parse(base64String);
+	         */
+	        parse: function (base64Str) {
+	            // Shortcuts
+	            var base64StrLength = base64Str.length;
+	            var map = this._map;
+	            var reverseMap = this._reverseMap;
+
+	            if (!reverseMap) {
+	                    reverseMap = this._reverseMap = [];
+	                    for (var j = 0; j < map.length; j++) {
+	                        reverseMap[map.charCodeAt(j)] = j;
+	                    }
+	            }
+
+	            // Ignore padding
+	            var paddingChar = map.charAt(64);
+	            if (paddingChar) {
+	                var paddingIndex = base64Str.indexOf(paddingChar);
+	                if (paddingIndex !== -1) {
+	                    base64StrLength = paddingIndex;
+	                }
+	            }
+
+	            // Convert
+	            return parseLoop(base64Str, base64StrLength, reverseMap);
+
+	        },
+
+	        _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='
+	    };
+
+	    function parseLoop(base64Str, base64StrLength, reverseMap) {
+	      var words = [];
+	      var nBytes = 0;
+	      for (var i = 0; i < base64StrLength; i++) {
+	          if (i % 4) {
+	              var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);
+	              var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);
+	              var bitsCombined = bits1 | bits2;
+	              words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);
+	              nBytes++;
+	          }
+	      }
+	      return WordArray.create(words, nBytes);
+	    }
+	}());
+
+
+	return CryptoJS.enc.Base64;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/enc-base64url.js b/node_modules/crypto-js/enc-base64url.js
new file mode 100644
index 0000000..af682e3
--- /dev/null
+++ b/node_modules/crypto-js/enc-base64url.js
@@ -0,0 +1,148 @@
+;(function (root, factory) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	(function () {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var WordArray = C_lib.WordArray;
+	    var C_enc = C.enc;
+
+	    /**
+	     * Base64url encoding strategy.
+	     */
+	    var Base64url = C_enc.Base64url = {
+	        /**
+	         * Converts a word array to a Base64url string.
+	         *
+	         * @param {WordArray} wordArray The word array.
+	         *
+	         * @param {boolean} urlSafe Whether to use url safe
+	         *
+	         * @return {string} The Base64url string.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var base64String = CryptoJS.enc.Base64url.stringify(wordArray);
+	         */
+	        stringify: function (wordArray, urlSafe) {
+	            if (urlSafe === undefined) {
+	                urlSafe = true
+	            }
+	            // Shortcuts
+	            var words = wordArray.words;
+	            var sigBytes = wordArray.sigBytes;
+	            var map = urlSafe ? this._safe_map : this._map;
+
+	            // Clamp excess bits
+	            wordArray.clamp();
+
+	            // Convert
+	            var base64Chars = [];
+	            for (var i = 0; i < sigBytes; i += 3) {
+	                var byte1 = (words[i >>> 2]       >>> (24 - (i % 4) * 8))       & 0xff;
+	                var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;
+	                var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;
+
+	                var triplet = (byte1 << 16) | (byte2 << 8) | byte3;
+
+	                for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {
+	                    base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));
+	                }
+	            }
+
+	            // Add padding
+	            var paddingChar = map.charAt(64);
+	            if (paddingChar) {
+	                while (base64Chars.length % 4) {
+	                    base64Chars.push(paddingChar);
+	                }
+	            }
+
+	            return base64Chars.join('');
+	        },
+
+	        /**
+	         * Converts a Base64url string to a word array.
+	         *
+	         * @param {string} base64Str The Base64url string.
+	         *
+	         * @param {boolean} urlSafe Whether to use url safe
+	         *
+	         * @return {WordArray} The word array.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var wordArray = CryptoJS.enc.Base64url.parse(base64String);
+	         */
+	        parse: function (base64Str, urlSafe) {
+	            if (urlSafe === undefined) {
+	                urlSafe = true
+	            }
+
+	            // Shortcuts
+	            var base64StrLength = base64Str.length;
+	            var map = urlSafe ? this._safe_map : this._map;
+	            var reverseMap = this._reverseMap;
+
+	            if (!reverseMap) {
+	                reverseMap = this._reverseMap = [];
+	                for (var j = 0; j < map.length; j++) {
+	                    reverseMap[map.charCodeAt(j)] = j;
+	                }
+	            }
+
+	            // Ignore padding
+	            var paddingChar = map.charAt(64);
+	            if (paddingChar) {
+	                var paddingIndex = base64Str.indexOf(paddingChar);
+	                if (paddingIndex !== -1) {
+	                    base64StrLength = paddingIndex;
+	                }
+	            }
+
+	            // Convert
+	            return parseLoop(base64Str, base64StrLength, reverseMap);
+
+	        },
+
+	        _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',
+	        _safe_map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',
+	    };
+
+	    function parseLoop(base64Str, base64StrLength, reverseMap) {
+	        var words = [];
+	        var nBytes = 0;
+	        for (var i = 0; i < base64StrLength; i++) {
+	            if (i % 4) {
+	                var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);
+	                var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);
+	                var bitsCombined = bits1 | bits2;
+	                words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);
+	                nBytes++;
+	            }
+	        }
+	        return WordArray.create(words, nBytes);
+	    }
+	}());
+
+
+	return CryptoJS.enc.Base64url;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/enc-hex.js b/node_modules/crypto-js/enc-hex.js
new file mode 100644
index 0000000..88161ff
--- /dev/null
+++ b/node_modules/crypto-js/enc-hex.js
@@ -0,0 +1,18 @@
+;(function (root, factory) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	return CryptoJS.enc.Hex;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/enc-latin1.js b/node_modules/crypto-js/enc-latin1.js
new file mode 100644
index 0000000..ade56dc
--- /dev/null
+++ b/node_modules/crypto-js/enc-latin1.js
@@ -0,0 +1,18 @@
+;(function (root, factory) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	return CryptoJS.enc.Latin1;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/enc-utf16.js b/node_modules/crypto-js/enc-utf16.js
new file mode 100644
index 0000000..7de6245
--- /dev/null
+++ b/node_modules/crypto-js/enc-utf16.js
@@ -0,0 +1,149 @@
+;(function (root, factory) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	(function () {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var WordArray = C_lib.WordArray;
+	    var C_enc = C.enc;
+
+	    /**
+	     * UTF-16 BE encoding strategy.
+	     */
+	    var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = {
+	        /**
+	         * Converts a word array to a UTF-16 BE string.
+	         *
+	         * @param {WordArray} wordArray The word array.
+	         *
+	         * @return {string} The UTF-16 BE string.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var utf16String = CryptoJS.enc.Utf16.stringify(wordArray);
+	         */
+	        stringify: function (wordArray) {
+	            // Shortcuts
+	            var words = wordArray.words;
+	            var sigBytes = wordArray.sigBytes;
+
+	            // Convert
+	            var utf16Chars = [];
+	            for (var i = 0; i < sigBytes; i += 2) {
+	                var codePoint = (words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff;
+	                utf16Chars.push(String.fromCharCode(codePoint));
+	            }
+
+	            return utf16Chars.join('');
+	        },
+
+	        /**
+	         * Converts a UTF-16 BE string to a word array.
+	         *
+	         * @param {string} utf16Str The UTF-16 BE string.
+	         *
+	         * @return {WordArray} The word array.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var wordArray = CryptoJS.enc.Utf16.parse(utf16String);
+	         */
+	        parse: function (utf16Str) {
+	            // Shortcut
+	            var utf16StrLength = utf16Str.length;
+
+	            // Convert
+	            var words = [];
+	            for (var i = 0; i < utf16StrLength; i++) {
+	                words[i >>> 1] |= utf16Str.charCodeAt(i) << (16 - (i % 2) * 16);
+	            }
+
+	            return WordArray.create(words, utf16StrLength * 2);
+	        }
+	    };
+
+	    /**
+	     * UTF-16 LE encoding strategy.
+	     */
+	    C_enc.Utf16LE = {
+	        /**
+	         * Converts a word array to a UTF-16 LE string.
+	         *
+	         * @param {WordArray} wordArray The word array.
+	         *
+	         * @return {string} The UTF-16 LE string.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray);
+	         */
+	        stringify: function (wordArray) {
+	            // Shortcuts
+	            var words = wordArray.words;
+	            var sigBytes = wordArray.sigBytes;
+
+	            // Convert
+	            var utf16Chars = [];
+	            for (var i = 0; i < sigBytes; i += 2) {
+	                var codePoint = swapEndian((words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff);
+	                utf16Chars.push(String.fromCharCode(codePoint));
+	            }
+
+	            return utf16Chars.join('');
+	        },
+
+	        /**
+	         * Converts a UTF-16 LE string to a word array.
+	         *
+	         * @param {string} utf16Str The UTF-16 LE string.
+	         *
+	         * @return {WordArray} The word array.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str);
+	         */
+	        parse: function (utf16Str) {
+	            // Shortcut
+	            var utf16StrLength = utf16Str.length;
+
+	            // Convert
+	            var words = [];
+	            for (var i = 0; i < utf16StrLength; i++) {
+	                words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << (16 - (i % 2) * 16));
+	            }
+
+	            return WordArray.create(words, utf16StrLength * 2);
+	        }
+	    };
+
+	    function swapEndian(word) {
+	        return ((word << 8) & 0xff00ff00) | ((word >>> 8) & 0x00ff00ff);
+	    }
+	}());
+
+
+	return CryptoJS.enc.Utf16;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/enc-utf8.js b/node_modules/crypto-js/enc-utf8.js
new file mode 100644
index 0000000..e7a251d
--- /dev/null
+++ b/node_modules/crypto-js/enc-utf8.js
@@ -0,0 +1,18 @@
+;(function (root, factory) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	return CryptoJS.enc.Utf8;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/evpkdf.js b/node_modules/crypto-js/evpkdf.js
new file mode 100644
index 0000000..578974a
--- /dev/null
+++ b/node_modules/crypto-js/evpkdf.js
@@ -0,0 +1,134 @@
+;(function (root, factory, undef) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"), require("./sha1"), require("./hmac"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core", "./sha1", "./hmac"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	(function () {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var Base = C_lib.Base;
+	    var WordArray = C_lib.WordArray;
+	    var C_algo = C.algo;
+	    var MD5 = C_algo.MD5;
+
+	    /**
+	     * This key derivation function is meant to conform with EVP_BytesToKey.
+	     * www.openssl.org/docs/crypto/EVP_BytesToKey.html
+	     */
+	    var EvpKDF = C_algo.EvpKDF = Base.extend({
+	        /**
+	         * Configuration options.
+	         *
+	         * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)
+	         * @property {Hasher} hasher The hash algorithm to use. Default: MD5
+	         * @property {number} iterations The number of iterations to perform. Default: 1
+	         */
+	        cfg: Base.extend({
+	            keySize: 128/32,
+	            hasher: MD5,
+	            iterations: 1
+	        }),
+
+	        /**
+	         * Initializes a newly created key derivation function.
+	         *
+	         * @param {Object} cfg (Optional) The configuration options to use for the derivation.
+	         *
+	         * @example
+	         *
+	         *     var kdf = CryptoJS.algo.EvpKDF.create();
+	         *     var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });
+	         *     var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });
+	         */
+	        init: function (cfg) {
+	            this.cfg = this.cfg.extend(cfg);
+	        },
+
+	        /**
+	         * Derives a key from a password.
+	         *
+	         * @param {WordArray|string} password The password.
+	         * @param {WordArray|string} salt A salt.
+	         *
+	         * @return {WordArray} The derived key.
+	         *
+	         * @example
+	         *
+	         *     var key = kdf.compute(password, salt);
+	         */
+	        compute: function (password, salt) {
+	            var block;
+
+	            // Shortcut
+	            var cfg = this.cfg;
+
+	            // Init hasher
+	            var hasher = cfg.hasher.create();
+
+	            // Initial values
+	            var derivedKey = WordArray.create();
+
+	            // Shortcuts
+	            var derivedKeyWords = derivedKey.words;
+	            var keySize = cfg.keySize;
+	            var iterations = cfg.iterations;
+
+	            // Generate key
+	            while (derivedKeyWords.length < keySize) {
+	                if (block) {
+	                    hasher.update(block);
+	                }
+	                block = hasher.update(password).finalize(salt);
+	                hasher.reset();
+
+	                // Iterations
+	                for (var i = 1; i < iterations; i++) {
+	                    block = hasher.finalize(block);
+	                    hasher.reset();
+	                }
+
+	                derivedKey.concat(block);
+	            }
+	            derivedKey.sigBytes = keySize * 4;
+
+	            return derivedKey;
+	        }
+	    });
+
+	    /**
+	     * Derives a key from a password.
+	     *
+	     * @param {WordArray|string} password The password.
+	     * @param {WordArray|string} salt A salt.
+	     * @param {Object} cfg (Optional) The configuration options to use for this computation.
+	     *
+	     * @return {WordArray} The derived key.
+	     *
+	     * @static
+	     *
+	     * @example
+	     *
+	     *     var key = CryptoJS.EvpKDF(password, salt);
+	     *     var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });
+	     *     var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });
+	     */
+	    C.EvpKDF = function (password, salt, cfg) {
+	        return EvpKDF.create(cfg).compute(password, salt);
+	    };
+	}());
+
+
+	return CryptoJS.EvpKDF;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/format-hex.js b/node_modules/crypto-js/format-hex.js
new file mode 100644
index 0000000..2e9a861
--- /dev/null
+++ b/node_modules/crypto-js/format-hex.js
@@ -0,0 +1,66 @@
+;(function (root, factory, undef) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"), require("./cipher-core"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core", "./cipher-core"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	(function (undefined) {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var CipherParams = C_lib.CipherParams;
+	    var C_enc = C.enc;
+	    var Hex = C_enc.Hex;
+	    var C_format = C.format;
+
+	    var HexFormatter = C_format.Hex = {
+	        /**
+	         * Converts the ciphertext of a cipher params object to a hexadecimally encoded string.
+	         *
+	         * @param {CipherParams} cipherParams The cipher params object.
+	         *
+	         * @return {string} The hexadecimally encoded string.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var hexString = CryptoJS.format.Hex.stringify(cipherParams);
+	         */
+	        stringify: function (cipherParams) {
+	            return cipherParams.ciphertext.toString(Hex);
+	        },
+
+	        /**
+	         * Converts a hexadecimally encoded ciphertext string to a cipher params object.
+	         *
+	         * @param {string} input The hexadecimally encoded string.
+	         *
+	         * @return {CipherParams} The cipher params object.
+	         *
+	         * @static
+	         *
+	         * @example
+	         *
+	         *     var cipherParams = CryptoJS.format.Hex.parse(hexString);
+	         */
+	        parse: function (input) {
+	            var ciphertext = Hex.parse(input);
+	            return CipherParams.create({ ciphertext: ciphertext });
+	        }
+	    };
+	}());
+
+
+	return CryptoJS.format.Hex;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/format-openssl.js b/node_modules/crypto-js/format-openssl.js
new file mode 100644
index 0000000..3373edc
--- /dev/null
+++ b/node_modules/crypto-js/format-openssl.js
@@ -0,0 +1,18 @@
+;(function (root, factory, undef) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"), require("./cipher-core"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core", "./cipher-core"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	return CryptoJS.format.OpenSSL;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/hmac-md5.js b/node_modules/crypto-js/hmac-md5.js
new file mode 100644
index 0000000..ad7a90a
--- /dev/null
+++ b/node_modules/crypto-js/hmac-md5.js
@@ -0,0 +1,18 @@
+;(function (root, factory, undef) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"), require("./md5"), require("./hmac"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core", "./md5", "./hmac"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	return CryptoJS.HmacMD5;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/hmac-ripemd160.js b/node_modules/crypto-js/hmac-ripemd160.js
new file mode 100644
index 0000000..73d55a7
--- /dev/null
+++ b/node_modules/crypto-js/hmac-ripemd160.js
@@ -0,0 +1,18 @@
+;(function (root, factory, undef) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"), require("./ripemd160"), require("./hmac"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core", "./ripemd160", "./hmac"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	return CryptoJS.HmacRIPEMD160;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/hmac-sha1.js b/node_modules/crypto-js/hmac-sha1.js
new file mode 100644
index 0000000..0b570cb
--- /dev/null
+++ b/node_modules/crypto-js/hmac-sha1.js
@@ -0,0 +1,18 @@
+;(function (root, factory, undef) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"), require("./sha1"), require("./hmac"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core", "./sha1", "./hmac"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	return CryptoJS.HmacSHA1;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/hmac-sha224.js b/node_modules/crypto-js/hmac-sha224.js
new file mode 100644
index 0000000..3778863
--- /dev/null
+++ b/node_modules/crypto-js/hmac-sha224.js
@@ -0,0 +1,18 @@
+;(function (root, factory, undef) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"), require("./sha256"), require("./sha224"), require("./hmac"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core", "./sha256", "./sha224", "./hmac"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	return CryptoJS.HmacSHA224;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/hmac-sha256.js b/node_modules/crypto-js/hmac-sha256.js
new file mode 100644
index 0000000..33b0c9f
--- /dev/null
+++ b/node_modules/crypto-js/hmac-sha256.js
@@ -0,0 +1,18 @@
+;(function (root, factory, undef) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"), require("./sha256"), require("./hmac"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core", "./sha256", "./hmac"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	return CryptoJS.HmacSHA256;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/hmac-sha3.js b/node_modules/crypto-js/hmac-sha3.js
new file mode 100644
index 0000000..1248804
--- /dev/null
+++ b/node_modules/crypto-js/hmac-sha3.js
@@ -0,0 +1,18 @@
+;(function (root, factory, undef) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"), require("./x64-core"), require("./sha3"), require("./hmac"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core", "./x64-core", "./sha3", "./hmac"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	return CryptoJS.HmacSHA3;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/hmac-sha384.js b/node_modules/crypto-js/hmac-sha384.js
new file mode 100644
index 0000000..0036e2b
--- /dev/null
+++ b/node_modules/crypto-js/hmac-sha384.js
@@ -0,0 +1,18 @@
+;(function (root, factory, undef) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"), require("./x64-core"), require("./sha512"), require("./sha384"), require("./hmac"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core", "./x64-core", "./sha512", "./sha384", "./hmac"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	return CryptoJS.HmacSHA384;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/hmac-sha512.js b/node_modules/crypto-js/hmac-sha512.js
new file mode 100644
index 0000000..c1005b6
--- /dev/null
+++ b/node_modules/crypto-js/hmac-sha512.js
@@ -0,0 +1,18 @@
+;(function (root, factory, undef) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"), require("./x64-core"), require("./sha512"), require("./hmac"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core", "./x64-core", "./sha512", "./hmac"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	return CryptoJS.HmacSHA512;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/hmac.js b/node_modules/crypto-js/hmac.js
new file mode 100644
index 0000000..8c09851
--- /dev/null
+++ b/node_modules/crypto-js/hmac.js
@@ -0,0 +1,143 @@
+;(function (root, factory) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	(function () {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var Base = C_lib.Base;
+	    var C_enc = C.enc;
+	    var Utf8 = C_enc.Utf8;
+	    var C_algo = C.algo;
+
+	    /**
+	     * HMAC algorithm.
+	     */
+	    var HMAC = C_algo.HMAC = Base.extend({
+	        /**
+	         * Initializes a newly created HMAC.
+	         *
+	         * @param {Hasher} hasher The hash algorithm to use.
+	         * @param {WordArray|string} key The secret key.
+	         *
+	         * @example
+	         *
+	         *     var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);
+	         */
+	        init: function (hasher, key) {
+	            // Init hasher
+	            hasher = this._hasher = new hasher.init();
+
+	            // Convert string to WordArray, else assume WordArray already
+	            if (typeof key == 'string') {
+	                key = Utf8.parse(key);
+	            }
+
+	            // Shortcuts
+	            var hasherBlockSize = hasher.blockSize;
+	            var hasherBlockSizeBytes = hasherBlockSize * 4;
+
+	            // Allow arbitrary length keys
+	            if (key.sigBytes > hasherBlockSizeBytes) {
+	                key = hasher.finalize(key);
+	            }
+
+	            // Clamp excess bits
+	            key.clamp();
+
+	            // Clone key for inner and outer pads
+	            var oKey = this._oKey = key.clone();
+	            var iKey = this._iKey = key.clone();
+
+	            // Shortcuts
+	            var oKeyWords = oKey.words;
+	            var iKeyWords = iKey.words;
+
+	            // XOR keys with pad constants
+	            for (var i = 0; i < hasherBlockSize; i++) {
+	                oKeyWords[i] ^= 0x5c5c5c5c;
+	                iKeyWords[i] ^= 0x36363636;
+	            }
+	            oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;
+
+	            // Set initial values
+	            this.reset();
+	        },
+
+	        /**
+	         * Resets this HMAC to its initial state.
+	         *
+	         * @example
+	         *
+	         *     hmacHasher.reset();
+	         */
+	        reset: function () {
+	            // Shortcut
+	            var hasher = this._hasher;
+
+	            // Reset
+	            hasher.reset();
+	            hasher.update(this._iKey);
+	        },
+
+	        /**
+	         * Updates this HMAC with a message.
+	         *
+	         * @param {WordArray|string} messageUpdate The message to append.
+	         *
+	         * @return {HMAC} This HMAC instance.
+	         *
+	         * @example
+	         *
+	         *     hmacHasher.update('message');
+	         *     hmacHasher.update(wordArray);
+	         */
+	        update: function (messageUpdate) {
+	            this._hasher.update(messageUpdate);
+
+	            // Chainable
+	            return this;
+	        },
+
+	        /**
+	         * Finalizes the HMAC computation.
+	         * Note that the finalize operation is effectively a destructive, read-once operation.
+	         *
+	         * @param {WordArray|string} messageUpdate (Optional) A final message update.
+	         *
+	         * @return {WordArray} The HMAC.
+	         *
+	         * @example
+	         *
+	         *     var hmac = hmacHasher.finalize();
+	         *     var hmac = hmacHasher.finalize('message');
+	         *     var hmac = hmacHasher.finalize(wordArray);
+	         */
+	        finalize: function (messageUpdate) {
+	            // Shortcut
+	            var hasher = this._hasher;
+
+	            // Compute HMAC
+	            var innerHash = hasher.finalize(messageUpdate);
+	            hasher.reset();
+	            var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));
+
+	            return hmac;
+	        }
+	    });
+	}());
+
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/index.js b/node_modules/crypto-js/index.js
new file mode 100644
index 0000000..b696646
--- /dev/null
+++ b/node_modules/crypto-js/index.js
@@ -0,0 +1,18 @@
+;(function (root, factory, undef) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"), require("./x64-core"), require("./lib-typedarrays"), require("./enc-utf16"), require("./enc-base64"), require("./enc-base64url"), require("./md5"), require("./sha1"), require("./sha256"), require("./sha224"), require("./sha512"), require("./sha384"), require("./sha3"), require("./ripemd160"), require("./hmac"), require("./pbkdf2"), require("./evpkdf"), require("./cipher-core"), require("./mode-cfb"), require("./mode-ctr"), require("./mode-ctr-gladman"), require("./mode-ofb"), require("./mode-ecb"), require("./pad-ansix923"), require("./pad-iso10126"), require("./pad-iso97971"), require("./pad-zeropadding"), require("./pad-nopadding"), require("./format-hex"), require("./aes"), require("./tripledes"), require("./rc4"), require("./rabbit"), require("./rabbit-legacy"), require("./blowfish"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core", "./x64-core", "./lib-typedarrays", "./enc-utf16", "./enc-base64", "./enc-base64url", "./md5", "./sha1", "./sha256", "./sha224", "./sha512", "./sha384", "./sha3", "./ripemd160", "./hmac", "./pbkdf2", "./evpkdf", "./cipher-core", "./mode-cfb", "./mode-ctr", "./mode-ctr-gladman", "./mode-ofb", "./mode-ecb", "./pad-ansix923", "./pad-iso10126", "./pad-iso97971", "./pad-zeropadding", "./pad-nopadding", "./format-hex", "./aes", "./tripledes", "./rc4", "./rabbit", "./rabbit-legacy", "./blowfish"], factory);
+	}
+	else {
+		// Global (browser)
+		root.CryptoJS = factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	return CryptoJS;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/lib-typedarrays.js b/node_modules/crypto-js/lib-typedarrays.js
new file mode 100644
index 0000000..264b210
--- /dev/null
+++ b/node_modules/crypto-js/lib-typedarrays.js
@@ -0,0 +1,76 @@
+;(function (root, factory) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	(function () {
+	    // Check if typed arrays are supported
+	    if (typeof ArrayBuffer != 'function') {
+	        return;
+	    }
+
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var WordArray = C_lib.WordArray;
+
+	    // Reference original init
+	    var superInit = WordArray.init;
+
+	    // Augment WordArray.init to handle typed arrays
+	    var subInit = WordArray.init = function (typedArray) {
+	        // Convert buffers to uint8
+	        if (typedArray instanceof ArrayBuffer) {
+	            typedArray = new Uint8Array(typedArray);
+	        }
+
+	        // Convert other array views to uint8
+	        if (
+	            typedArray instanceof Int8Array ||
+	            (typeof Uint8ClampedArray !== "undefined" && typedArray instanceof Uint8ClampedArray) ||
+	            typedArray instanceof Int16Array ||
+	            typedArray instanceof Uint16Array ||
+	            typedArray instanceof Int32Array ||
+	            typedArray instanceof Uint32Array ||
+	            typedArray instanceof Float32Array ||
+	            typedArray instanceof Float64Array
+	        ) {
+	            typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);
+	        }
+
+	        // Handle Uint8Array
+	        if (typedArray instanceof Uint8Array) {
+	            // Shortcut
+	            var typedArrayByteLength = typedArray.byteLength;
+
+	            // Extract bytes
+	            var words = [];
+	            for (var i = 0; i < typedArrayByteLength; i++) {
+	                words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8);
+	            }
+
+	            // Initialize this word array
+	            superInit.call(this, words, typedArrayByteLength);
+	        } else {
+	            // Else call normal init
+	            superInit.apply(this, arguments);
+	        }
+	    };
+
+	    subInit.prototype = WordArray;
+	}());
+
+
+	return CryptoJS.lib.WordArray;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/md5.js b/node_modules/crypto-js/md5.js
new file mode 100644
index 0000000..72fce03
--- /dev/null
+++ b/node_modules/crypto-js/md5.js
@@ -0,0 +1,268 @@
+;(function (root, factory) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	(function (Math) {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var WordArray = C_lib.WordArray;
+	    var Hasher = C_lib.Hasher;
+	    var C_algo = C.algo;
+
+	    // Constants table
+	    var T = [];
+
+	    // Compute constants
+	    (function () {
+	        for (var i = 0; i < 64; i++) {
+	            T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;
+	        }
+	    }());
+
+	    /**
+	     * MD5 hash algorithm.
+	     */
+	    var MD5 = C_algo.MD5 = Hasher.extend({
+	        _doReset: function () {
+	            this._hash = new WordArray.init([
+	                0x67452301, 0xefcdab89,
+	                0x98badcfe, 0x10325476
+	            ]);
+	        },
+
+	        _doProcessBlock: function (M, offset) {
+	            // Swap endian
+	            for (var i = 0; i < 16; i++) {
+	                // Shortcuts
+	                var offset_i = offset + i;
+	                var M_offset_i = M[offset_i];
+
+	                M[offset_i] = (
+	                    (((M_offset_i << 8)  | (M_offset_i >>> 24)) & 0x00ff00ff) |
+	                    (((M_offset_i << 24) | (M_offset_i >>> 8))  & 0xff00ff00)
+	                );
+	            }
+
+	            // Shortcuts
+	            var H = this._hash.words;
+
+	            var M_offset_0  = M[offset + 0];
+	            var M_offset_1  = M[offset + 1];
+	            var M_offset_2  = M[offset + 2];
+	            var M_offset_3  = M[offset + 3];
+	            var M_offset_4  = M[offset + 4];
+	            var M_offset_5  = M[offset + 5];
+	            var M_offset_6  = M[offset + 6];
+	            var M_offset_7  = M[offset + 7];
+	            var M_offset_8  = M[offset + 8];
+	            var M_offset_9  = M[offset + 9];
+	            var M_offset_10 = M[offset + 10];
+	            var M_offset_11 = M[offset + 11];
+	            var M_offset_12 = M[offset + 12];
+	            var M_offset_13 = M[offset + 13];
+	            var M_offset_14 = M[offset + 14];
+	            var M_offset_15 = M[offset + 15];
+
+	            // Working variables
+	            var a = H[0];
+	            var b = H[1];
+	            var c = H[2];
+	            var d = H[3];
+
+	            // Computation
+	            a = FF(a, b, c, d, M_offset_0,  7,  T[0]);
+	            d = FF(d, a, b, c, M_offset_1,  12, T[1]);
+	            c = FF(c, d, a, b, M_offset_2,  17, T[2]);
+	            b = FF(b, c, d, a, M_offset_3,  22, T[3]);
+	            a = FF(a, b, c, d, M_offset_4,  7,  T[4]);
+	            d = FF(d, a, b, c, M_offset_5,  12, T[5]);
+	            c = FF(c, d, a, b, M_offset_6,  17, T[6]);
+	            b = FF(b, c, d, a, M_offset_7,  22, T[7]);
+	            a = FF(a, b, c, d, M_offset_8,  7,  T[8]);
+	            d = FF(d, a, b, c, M_offset_9,  12, T[9]);
+	            c = FF(c, d, a, b, M_offset_10, 17, T[10]);
+	            b = FF(b, c, d, a, M_offset_11, 22, T[11]);
+	            a = FF(a, b, c, d, M_offset_12, 7,  T[12]);
+	            d = FF(d, a, b, c, M_offset_13, 12, T[13]);
+	            c = FF(c, d, a, b, M_offset_14, 17, T[14]);
+	            b = FF(b, c, d, a, M_offset_15, 22, T[15]);
+
+	            a = GG(a, b, c, d, M_offset_1,  5,  T[16]);
+	            d = GG(d, a, b, c, M_offset_6,  9,  T[17]);
+	            c = GG(c, d, a, b, M_offset_11, 14, T[18]);
+	            b = GG(b, c, d, a, M_offset_0,  20, T[19]);
+	            a = GG(a, b, c, d, M_offset_5,  5,  T[20]);
+	            d = GG(d, a, b, c, M_offset_10, 9,  T[21]);
+	            c = GG(c, d, a, b, M_offset_15, 14, T[22]);
+	            b = GG(b, c, d, a, M_offset_4,  20, T[23]);
+	            a = GG(a, b, c, d, M_offset_9,  5,  T[24]);
+	            d = GG(d, a, b, c, M_offset_14, 9,  T[25]);
+	            c = GG(c, d, a, b, M_offset_3,  14, T[26]);
+	            b = GG(b, c, d, a, M_offset_8,  20, T[27]);
+	            a = GG(a, b, c, d, M_offset_13, 5,  T[28]);
+	            d = GG(d, a, b, c, M_offset_2,  9,  T[29]);
+	            c = GG(c, d, a, b, M_offset_7,  14, T[30]);
+	            b = GG(b, c, d, a, M_offset_12, 20, T[31]);
+
+	            a = HH(a, b, c, d, M_offset_5,  4,  T[32]);
+	            d = HH(d, a, b, c, M_offset_8,  11, T[33]);
+	            c = HH(c, d, a, b, M_offset_11, 16, T[34]);
+	            b = HH(b, c, d, a, M_offset_14, 23, T[35]);
+	            a = HH(a, b, c, d, M_offset_1,  4,  T[36]);
+	            d = HH(d, a, b, c, M_offset_4,  11, T[37]);
+	            c = HH(c, d, a, b, M_offset_7,  16, T[38]);
+	            b = HH(b, c, d, a, M_offset_10, 23, T[39]);
+	            a = HH(a, b, c, d, M_offset_13, 4,  T[40]);
+	            d = HH(d, a, b, c, M_offset_0,  11, T[41]);
+	            c = HH(c, d, a, b, M_offset_3,  16, T[42]);
+	            b = HH(b, c, d, a, M_offset_6,  23, T[43]);
+	            a = HH(a, b, c, d, M_offset_9,  4,  T[44]);
+	            d = HH(d, a, b, c, M_offset_12, 11, T[45]);
+	            c = HH(c, d, a, b, M_offset_15, 16, T[46]);
+	            b = HH(b, c, d, a, M_offset_2,  23, T[47]);
+
+	            a = II(a, b, c, d, M_offset_0,  6,  T[48]);
+	            d = II(d, a, b, c, M_offset_7,  10, T[49]);
+	            c = II(c, d, a, b, M_offset_14, 15, T[50]);
+	            b = II(b, c, d, a, M_offset_5,  21, T[51]);
+	            a = II(a, b, c, d, M_offset_12, 6,  T[52]);
+	            d = II(d, a, b, c, M_offset_3,  10, T[53]);
+	            c = II(c, d, a, b, M_offset_10, 15, T[54]);
+	            b = II(b, c, d, a, M_offset_1,  21, T[55]);
+	            a = II(a, b, c, d, M_offset_8,  6,  T[56]);
+	            d = II(d, a, b, c, M_offset_15, 10, T[57]);
+	            c = II(c, d, a, b, M_offset_6,  15, T[58]);
+	            b = II(b, c, d, a, M_offset_13, 21, T[59]);
+	            a = II(a, b, c, d, M_offset_4,  6,  T[60]);
+	            d = II(d, a, b, c, M_offset_11, 10, T[61]);
+	            c = II(c, d, a, b, M_offset_2,  15, T[62]);
+	            b = II(b, c, d, a, M_offset_9,  21, T[63]);
+
+	            // Intermediate hash value
+	            H[0] = (H[0] + a) | 0;
+	            H[1] = (H[1] + b) | 0;
+	            H[2] = (H[2] + c) | 0;
+	            H[3] = (H[3] + d) | 0;
+	        },
+
+	        _doFinalize: function () {
+	            // Shortcuts
+	            var data = this._data;
+	            var dataWords = data.words;
+
+	            var nBitsTotal = this._nDataBytes * 8;
+	            var nBitsLeft = data.sigBytes * 8;
+
+	            // Add padding
+	            dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
+
+	            var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);
+	            var nBitsTotalL = nBitsTotal;
+	            dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = (
+	                (((nBitsTotalH << 8)  | (nBitsTotalH >>> 24)) & 0x00ff00ff) |
+	                (((nBitsTotalH << 24) | (nBitsTotalH >>> 8))  & 0xff00ff00)
+	            );
+	            dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (
+	                (((nBitsTotalL << 8)  | (nBitsTotalL >>> 24)) & 0x00ff00ff) |
+	                (((nBitsTotalL << 24) | (nBitsTotalL >>> 8))  & 0xff00ff00)
+	            );
+
+	            data.sigBytes = (dataWords.length + 1) * 4;
+
+	            // Hash final blocks
+	            this._process();
+
+	            // Shortcuts
+	            var hash = this._hash;
+	            var H = hash.words;
+
+	            // Swap endian
+	            for (var i = 0; i < 4; i++) {
+	                // Shortcut
+	                var H_i = H[i];
+
+	                H[i] = (((H_i << 8)  | (H_i >>> 24)) & 0x00ff00ff) |
+	                       (((H_i << 24) | (H_i >>> 8))  & 0xff00ff00);
+	            }
+
+	            // Return final computed hash
+	            return hash;
+	        },
+
+	        clone: function () {
+	            var clone = Hasher.clone.call(this);
+	            clone._hash = this._hash.clone();
+
+	            return clone;
+	        }
+	    });
+
+	    function FF(a, b, c, d, x, s, t) {
+	        var n = a + ((b & c) | (~b & d)) + x + t;
+	        return ((n << s) | (n >>> (32 - s))) + b;
+	    }
+
+	    function GG(a, b, c, d, x, s, t) {
+	        var n = a + ((b & d) | (c & ~d)) + x + t;
+	        return ((n << s) | (n >>> (32 - s))) + b;
+	    }
+
+	    function HH(a, b, c, d, x, s, t) {
+	        var n = a + (b ^ c ^ d) + x + t;
+	        return ((n << s) | (n >>> (32 - s))) + b;
+	    }
+
+	    function II(a, b, c, d, x, s, t) {
+	        var n = a + (c ^ (b | ~d)) + x + t;
+	        return ((n << s) | (n >>> (32 - s))) + b;
+	    }
+
+	    /**
+	     * Shortcut function to the hasher's object interface.
+	     *
+	     * @param {WordArray|string} message The message to hash.
+	     *
+	     * @return {WordArray} The hash.
+	     *
+	     * @static
+	     *
+	     * @example
+	     *
+	     *     var hash = CryptoJS.MD5('message');
+	     *     var hash = CryptoJS.MD5(wordArray);
+	     */
+	    C.MD5 = Hasher._createHelper(MD5);
+
+	    /**
+	     * Shortcut function to the HMAC's object interface.
+	     *
+	     * @param {WordArray|string} message The message to hash.
+	     * @param {WordArray|string} key The secret key.
+	     *
+	     * @return {WordArray} The HMAC.
+	     *
+	     * @static
+	     *
+	     * @example
+	     *
+	     *     var hmac = CryptoJS.HmacMD5(message, key);
+	     */
+	    C.HmacMD5 = Hasher._createHmacHelper(MD5);
+	}(Math));
+
+
+	return CryptoJS.MD5;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/mode-cfb.js b/node_modules/crypto-js/mode-cfb.js
new file mode 100644
index 0000000..444c9cb
--- /dev/null
+++ b/node_modules/crypto-js/mode-cfb.js
@@ -0,0 +1,80 @@
+;(function (root, factory, undef) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"), require("./cipher-core"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core", "./cipher-core"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	/**
+	 * Cipher Feedback block mode.
+	 */
+	CryptoJS.mode.CFB = (function () {
+	    var CFB = CryptoJS.lib.BlockCipherMode.extend();
+
+	    CFB.Encryptor = CFB.extend({
+	        processBlock: function (words, offset) {
+	            // Shortcuts
+	            var cipher = this._cipher;
+	            var blockSize = cipher.blockSize;
+
+	            generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);
+
+	            // Remember this block to use with next block
+	            this._prevBlock = words.slice(offset, offset + blockSize);
+	        }
+	    });
+
+	    CFB.Decryptor = CFB.extend({
+	        processBlock: function (words, offset) {
+	            // Shortcuts
+	            var cipher = this._cipher;
+	            var blockSize = cipher.blockSize;
+
+	            // Remember this block to use with next block
+	            var thisBlock = words.slice(offset, offset + blockSize);
+
+	            generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);
+
+	            // This block becomes the previous block
+	            this._prevBlock = thisBlock;
+	        }
+	    });
+
+	    function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) {
+	        var keystream;
+
+	        // Shortcut
+	        var iv = this._iv;
+
+	        // Generate keystream
+	        if (iv) {
+	            keystream = iv.slice(0);
+
+	            // Remove IV for subsequent blocks
+	            this._iv = undefined;
+	        } else {
+	            keystream = this._prevBlock;
+	        }
+	        cipher.encryptBlock(keystream, 0);
+
+	        // Encrypt
+	        for (var i = 0; i < blockSize; i++) {
+	            words[offset + i] ^= keystream[i];
+	        }
+	    }
+
+	    return CFB;
+	}());
+
+
+	return CryptoJS.mode.CFB;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/mode-ctr-gladman.js b/node_modules/crypto-js/mode-ctr-gladman.js
new file mode 100644
index 0000000..bbc5687
--- /dev/null
+++ b/node_modules/crypto-js/mode-ctr-gladman.js
@@ -0,0 +1,116 @@
+;(function (root, factory, undef) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"), require("./cipher-core"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core", "./cipher-core"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	/** @preserve
+	 * Counter block mode compatible with  Dr Brian Gladman fileenc.c
+	 * derived from CryptoJS.mode.CTR
+	 * Jan Hruby jhruby.web@gmail.com
+	 */
+	CryptoJS.mode.CTRGladman = (function () {
+	    var CTRGladman = CryptoJS.lib.BlockCipherMode.extend();
+
+		function incWord(word)
+		{
+			if (((word >> 24) & 0xff) === 0xff) { //overflow
+			var b1 = (word >> 16)&0xff;
+			var b2 = (word >> 8)&0xff;
+			var b3 = word & 0xff;
+
+			if (b1 === 0xff) // overflow b1
+			{
+			b1 = 0;
+			if (b2 === 0xff)
+			{
+				b2 = 0;
+				if (b3 === 0xff)
+				{
+					b3 = 0;
+				}
+				else
+				{
+					++b3;
+				}
+			}
+			else
+			{
+				++b2;
+			}
+			}
+			else
+			{
+			++b1;
+			}
+
+			word = 0;
+			word += (b1 << 16);
+			word += (b2 << 8);
+			word += b3;
+			}
+			else
+			{
+			word += (0x01 << 24);
+			}
+			return word;
+		}
+
+		function incCounter(counter)
+		{
+			if ((counter[0] = incWord(counter[0])) === 0)
+			{
+				// encr_data in fileenc.c from  Dr Brian Gladman's counts only with DWORD j < 8
+				counter[1] = incWord(counter[1]);
+			}
+			return counter;
+		}
+
+	    var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({
+	        processBlock: function (words, offset) {
+	            // Shortcuts
+	            var cipher = this._cipher
+	            var blockSize = cipher.blockSize;
+	            var iv = this._iv;
+	            var counter = this._counter;
+
+	            // Generate keystream
+	            if (iv) {
+	                counter = this._counter = iv.slice(0);
+
+	                // Remove IV for subsequent blocks
+	                this._iv = undefined;
+	            }
+
+				incCounter(counter);
+
+				var keystream = counter.slice(0);
+	            cipher.encryptBlock(keystream, 0);
+
+	            // Encrypt
+	            for (var i = 0; i < blockSize; i++) {
+	                words[offset + i] ^= keystream[i];
+	            }
+	        }
+	    });
+
+	    CTRGladman.Decryptor = Encryptor;
+
+	    return CTRGladman;
+	}());
+
+
+
+
+	return CryptoJS.mode.CTRGladman;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/mode-ctr.js b/node_modules/crypto-js/mode-ctr.js
new file mode 100644
index 0000000..c3d470a
--- /dev/null
+++ b/node_modules/crypto-js/mode-ctr.js
@@ -0,0 +1,58 @@
+;(function (root, factory, undef) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"), require("./cipher-core"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core", "./cipher-core"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	/**
+	 * Counter block mode.
+	 */
+	CryptoJS.mode.CTR = (function () {
+	    var CTR = CryptoJS.lib.BlockCipherMode.extend();
+
+	    var Encryptor = CTR.Encryptor = CTR.extend({
+	        processBlock: function (words, offset) {
+	            // Shortcuts
+	            var cipher = this._cipher
+	            var blockSize = cipher.blockSize;
+	            var iv = this._iv;
+	            var counter = this._counter;
+
+	            // Generate keystream
+	            if (iv) {
+	                counter = this._counter = iv.slice(0);
+
+	                // Remove IV for subsequent blocks
+	                this._iv = undefined;
+	            }
+	            var keystream = counter.slice(0);
+	            cipher.encryptBlock(keystream, 0);
+
+	            // Increment counter
+	            counter[blockSize - 1] = (counter[blockSize - 1] + 1) | 0
+
+	            // Encrypt
+	            for (var i = 0; i < blockSize; i++) {
+	                words[offset + i] ^= keystream[i];
+	            }
+	        }
+	    });
+
+	    CTR.Decryptor = Encryptor;
+
+	    return CTR;
+	}());
+
+
+	return CryptoJS.mode.CTR;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/mode-ecb.js b/node_modules/crypto-js/mode-ecb.js
new file mode 100644
index 0000000..ff06921
--- /dev/null
+++ b/node_modules/crypto-js/mode-ecb.js
@@ -0,0 +1,40 @@
+;(function (root, factory, undef) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"), require("./cipher-core"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core", "./cipher-core"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	/**
+	 * Electronic Codebook block mode.
+	 */
+	CryptoJS.mode.ECB = (function () {
+	    var ECB = CryptoJS.lib.BlockCipherMode.extend();
+
+	    ECB.Encryptor = ECB.extend({
+	        processBlock: function (words, offset) {
+	            this._cipher.encryptBlock(words, offset);
+	        }
+	    });
+
+	    ECB.Decryptor = ECB.extend({
+	        processBlock: function (words, offset) {
+	            this._cipher.decryptBlock(words, offset);
+	        }
+	    });
+
+	    return ECB;
+	}());
+
+
+	return CryptoJS.mode.ECB;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/mode-ofb.js b/node_modules/crypto-js/mode-ofb.js
new file mode 100644
index 0000000..c01314c
--- /dev/null
+++ b/node_modules/crypto-js/mode-ofb.js
@@ -0,0 +1,54 @@
+;(function (root, factory, undef) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"), require("./cipher-core"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core", "./cipher-core"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	/**
+	 * Output Feedback block mode.
+	 */
+	CryptoJS.mode.OFB = (function () {
+	    var OFB = CryptoJS.lib.BlockCipherMode.extend();
+
+	    var Encryptor = OFB.Encryptor = OFB.extend({
+	        processBlock: function (words, offset) {
+	            // Shortcuts
+	            var cipher = this._cipher
+	            var blockSize = cipher.blockSize;
+	            var iv = this._iv;
+	            var keystream = this._keystream;
+
+	            // Generate keystream
+	            if (iv) {
+	                keystream = this._keystream = iv.slice(0);
+
+	                // Remove IV for subsequent blocks
+	                this._iv = undefined;
+	            }
+	            cipher.encryptBlock(keystream, 0);
+
+	            // Encrypt
+	            for (var i = 0; i < blockSize; i++) {
+	                words[offset + i] ^= keystream[i];
+	            }
+	        }
+	    });
+
+	    OFB.Decryptor = Encryptor;
+
+	    return OFB;
+	}());
+
+
+	return CryptoJS.mode.OFB;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/package.json b/node_modules/crypto-js/package.json
new file mode 100644
index 0000000..4b9a8e2
--- /dev/null
+++ b/node_modules/crypto-js/package.json
@@ -0,0 +1,42 @@
+{
+  "name": "crypto-js",
+  "version": "4.2.0",
+  "description": "JavaScript library of crypto standards.",
+  "license": "MIT",
+  "author": {
+    "name": "Evan Vosberg",
+    "url": "http://github.com/evanvosberg"
+  },
+  "homepage": "http://github.com/brix/crypto-js",
+  "repository": {
+    "type": "git",
+    "url": "http://github.com/brix/crypto-js.git"
+  },
+  "keywords": [
+    "security",
+    "crypto",
+    "Hash",
+    "MD5",
+    "SHA1",
+    "SHA-1",
+    "SHA256",
+    "SHA-256",
+    "RC4",
+    "Rabbit",
+    "AES",
+    "DES",
+    "PBKDF2",
+    "HMAC",
+    "OFB",
+    "CFB",
+    "CTR",
+    "CBC",
+    "Base64",
+    "Base64url"
+  ],
+  "main": "index.js",
+  "dependencies": {},
+  "browser": {
+    "crypto": false
+  }
+}
diff --git a/node_modules/crypto-js/pad-ansix923.js b/node_modules/crypto-js/pad-ansix923.js
new file mode 100644
index 0000000..f01f21e
--- /dev/null
+++ b/node_modules/crypto-js/pad-ansix923.js
@@ -0,0 +1,49 @@
+;(function (root, factory, undef) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"), require("./cipher-core"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core", "./cipher-core"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	/**
+	 * ANSI X.923 padding strategy.
+	 */
+	CryptoJS.pad.AnsiX923 = {
+	    pad: function (data, blockSize) {
+	        // Shortcuts
+	        var dataSigBytes = data.sigBytes;
+	        var blockSizeBytes = blockSize * 4;
+
+	        // Count padding bytes
+	        var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes;
+
+	        // Compute last byte position
+	        var lastBytePos = dataSigBytes + nPaddingBytes - 1;
+
+	        // Pad
+	        data.clamp();
+	        data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8);
+	        data.sigBytes += nPaddingBytes;
+	    },
+
+	    unpad: function (data) {
+	        // Get number of padding bytes from last byte
+	        var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;
+
+	        // Remove padding
+	        data.sigBytes -= nPaddingBytes;
+	    }
+	};
+
+
+	return CryptoJS.pad.Ansix923;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/pad-iso10126.js b/node_modules/crypto-js/pad-iso10126.js
new file mode 100644
index 0000000..6e2aefd
--- /dev/null
+++ b/node_modules/crypto-js/pad-iso10126.js
@@ -0,0 +1,44 @@
+;(function (root, factory, undef) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"), require("./cipher-core"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core", "./cipher-core"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	/**
+	 * ISO 10126 padding strategy.
+	 */
+	CryptoJS.pad.Iso10126 = {
+	    pad: function (data, blockSize) {
+	        // Shortcut
+	        var blockSizeBytes = blockSize * 4;
+
+	        // Count padding bytes
+	        var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;
+
+	        // Pad
+	        data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)).
+	             concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1));
+	    },
+
+	    unpad: function (data) {
+	        // Get number of padding bytes from last byte
+	        var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;
+
+	        // Remove padding
+	        data.sigBytes -= nPaddingBytes;
+	    }
+	};
+
+
+	return CryptoJS.pad.Iso10126;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/pad-iso97971.js b/node_modules/crypto-js/pad-iso97971.js
new file mode 100644
index 0000000..41049b4
--- /dev/null
+++ b/node_modules/crypto-js/pad-iso97971.js
@@ -0,0 +1,40 @@
+;(function (root, factory, undef) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"), require("./cipher-core"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core", "./cipher-core"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	/**
+	 * ISO/IEC 9797-1 Padding Method 2.
+	 */
+	CryptoJS.pad.Iso97971 = {
+	    pad: function (data, blockSize) {
+	        // Add 0x80 byte
+	        data.concat(CryptoJS.lib.WordArray.create([0x80000000], 1));
+
+	        // Zero pad the rest
+	        CryptoJS.pad.ZeroPadding.pad(data, blockSize);
+	    },
+
+	    unpad: function (data) {
+	        // Remove zero padding
+	        CryptoJS.pad.ZeroPadding.unpad(data);
+
+	        // Remove one more byte -- the 0x80 byte
+	        data.sigBytes--;
+	    }
+	};
+
+
+	return CryptoJS.pad.Iso97971;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/pad-nopadding.js b/node_modules/crypto-js/pad-nopadding.js
new file mode 100644
index 0000000..c7787c9
--- /dev/null
+++ b/node_modules/crypto-js/pad-nopadding.js
@@ -0,0 +1,30 @@
+;(function (root, factory, undef) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"), require("./cipher-core"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core", "./cipher-core"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	/**
+	 * A noop padding strategy.
+	 */
+	CryptoJS.pad.NoPadding = {
+	    pad: function () {
+	    },
+
+	    unpad: function () {
+	    }
+	};
+
+
+	return CryptoJS.pad.NoPadding;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/pad-pkcs7.js b/node_modules/crypto-js/pad-pkcs7.js
new file mode 100644
index 0000000..3555168
--- /dev/null
+++ b/node_modules/crypto-js/pad-pkcs7.js
@@ -0,0 +1,18 @@
+;(function (root, factory, undef) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"), require("./cipher-core"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core", "./cipher-core"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	return CryptoJS.pad.Pkcs7;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/pad-zeropadding.js b/node_modules/crypto-js/pad-zeropadding.js
new file mode 100644
index 0000000..a1a459e
--- /dev/null
+++ b/node_modules/crypto-js/pad-zeropadding.js
@@ -0,0 +1,47 @@
+;(function (root, factory, undef) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"), require("./cipher-core"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core", "./cipher-core"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	/**
+	 * Zero padding strategy.
+	 */
+	CryptoJS.pad.ZeroPadding = {
+	    pad: function (data, blockSize) {
+	        // Shortcut
+	        var blockSizeBytes = blockSize * 4;
+
+	        // Pad
+	        data.clamp();
+	        data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes);
+	    },
+
+	    unpad: function (data) {
+	        // Shortcut
+	        var dataWords = data.words;
+
+	        // Unpad
+	        var i = data.sigBytes - 1;
+	        for (var i = data.sigBytes - 1; i >= 0; i--) {
+	            if (((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) {
+	                data.sigBytes = i + 1;
+	                break;
+	            }
+	        }
+	    }
+	};
+
+
+	return CryptoJS.pad.ZeroPadding;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/pbkdf2.js b/node_modules/crypto-js/pbkdf2.js
new file mode 100644
index 0000000..6850934
--- /dev/null
+++ b/node_modules/crypto-js/pbkdf2.js
@@ -0,0 +1,145 @@
+;(function (root, factory, undef) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"), require("./sha256"), require("./hmac"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core", "./sha256", "./hmac"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	(function () {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var Base = C_lib.Base;
+	    var WordArray = C_lib.WordArray;
+	    var C_algo = C.algo;
+	    var SHA256 = C_algo.SHA256;
+	    var HMAC = C_algo.HMAC;
+
+	    /**
+	     * Password-Based Key Derivation Function 2 algorithm.
+	     */
+	    var PBKDF2 = C_algo.PBKDF2 = Base.extend({
+	        /**
+	         * Configuration options.
+	         *
+	         * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)
+	         * @property {Hasher} hasher The hasher to use. Default: SHA256
+	         * @property {number} iterations The number of iterations to perform. Default: 250000
+	         */
+	        cfg: Base.extend({
+	            keySize: 128/32,
+	            hasher: SHA256,
+	            iterations: 250000
+	        }),
+
+	        /**
+	         * Initializes a newly created key derivation function.
+	         *
+	         * @param {Object} cfg (Optional) The configuration options to use for the derivation.
+	         *
+	         * @example
+	         *
+	         *     var kdf = CryptoJS.algo.PBKDF2.create();
+	         *     var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 });
+	         *     var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 });
+	         */
+	        init: function (cfg) {
+	            this.cfg = this.cfg.extend(cfg);
+	        },
+
+	        /**
+	         * Computes the Password-Based Key Derivation Function 2.
+	         *
+	         * @param {WordArray|string} password The password.
+	         * @param {WordArray|string} salt A salt.
+	         *
+	         * @return {WordArray} The derived key.
+	         *
+	         * @example
+	         *
+	         *     var key = kdf.compute(password, salt);
+	         */
+	        compute: function (password, salt) {
+	            // Shortcut
+	            var cfg = this.cfg;
+
+	            // Init HMAC
+	            var hmac = HMAC.create(cfg.hasher, password);
+
+	            // Initial values
+	            var derivedKey = WordArray.create();
+	            var blockIndex = WordArray.create([0x00000001]);
+
+	            // Shortcuts
+	            var derivedKeyWords = derivedKey.words;
+	            var blockIndexWords = blockIndex.words;
+	            var keySize = cfg.keySize;
+	            var iterations = cfg.iterations;
+
+	            // Generate key
+	            while (derivedKeyWords.length < keySize) {
+	                var block = hmac.update(salt).finalize(blockIndex);
+	                hmac.reset();
+
+	                // Shortcuts
+	                var blockWords = block.words;
+	                var blockWordsLength = blockWords.length;
+
+	                // Iterations
+	                var intermediate = block;
+	                for (var i = 1; i < iterations; i++) {
+	                    intermediate = hmac.finalize(intermediate);
+	                    hmac.reset();
+
+	                    // Shortcut
+	                    var intermediateWords = intermediate.words;
+
+	                    // XOR intermediate with block
+	                    for (var j = 0; j < blockWordsLength; j++) {
+	                        blockWords[j] ^= intermediateWords[j];
+	                    }
+	                }
+
+	                derivedKey.concat(block);
+	                blockIndexWords[0]++;
+	            }
+	            derivedKey.sigBytes = keySize * 4;
+
+	            return derivedKey;
+	        }
+	    });
+
+	    /**
+	     * Computes the Password-Based Key Derivation Function 2.
+	     *
+	     * @param {WordArray|string} password The password.
+	     * @param {WordArray|string} salt A salt.
+	     * @param {Object} cfg (Optional) The configuration options to use for this computation.
+	     *
+	     * @return {WordArray} The derived key.
+	     *
+	     * @static
+	     *
+	     * @example
+	     *
+	     *     var key = CryptoJS.PBKDF2(password, salt);
+	     *     var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 });
+	     *     var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 });
+	     */
+	    C.PBKDF2 = function (password, salt, cfg) {
+	        return PBKDF2.create(cfg).compute(password, salt);
+	    };
+	}());
+
+
+	return CryptoJS.PBKDF2;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/rabbit-legacy.js b/node_modules/crypto-js/rabbit-legacy.js
new file mode 100644
index 0000000..e118b6b
--- /dev/null
+++ b/node_modules/crypto-js/rabbit-legacy.js
@@ -0,0 +1,190 @@
+;(function (root, factory, undef) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"), require("./enc-base64"), require("./md5"), require("./evpkdf"), require("./cipher-core"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	(function () {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var StreamCipher = C_lib.StreamCipher;
+	    var C_algo = C.algo;
+
+	    // Reusable objects
+	    var S  = [];
+	    var C_ = [];
+	    var G  = [];
+
+	    /**
+	     * Rabbit stream cipher algorithm.
+	     *
+	     * This is a legacy version that neglected to convert the key to little-endian.
+	     * This error doesn't affect the cipher's security,
+	     * but it does affect its compatibility with other implementations.
+	     */
+	    var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({
+	        _doReset: function () {
+	            // Shortcuts
+	            var K = this._key.words;
+	            var iv = this.cfg.iv;
+
+	            // Generate initial state values
+	            var X = this._X = [
+	                K[0], (K[3] << 16) | (K[2] >>> 16),
+	                K[1], (K[0] << 16) | (K[3] >>> 16),
+	                K[2], (K[1] << 16) | (K[0] >>> 16),
+	                K[3], (K[2] << 16) | (K[1] >>> 16)
+	            ];
+
+	            // Generate initial counter values
+	            var C = this._C = [
+	                (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),
+	                (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),
+	                (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),
+	                (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)
+	            ];
+
+	            // Carry bit
+	            this._b = 0;
+
+	            // Iterate the system four times
+	            for (var i = 0; i < 4; i++) {
+	                nextState.call(this);
+	            }
+
+	            // Modify the counters
+	            for (var i = 0; i < 8; i++) {
+	                C[i] ^= X[(i + 4) & 7];
+	            }
+
+	            // IV setup
+	            if (iv) {
+	                // Shortcuts
+	                var IV = iv.words;
+	                var IV_0 = IV[0];
+	                var IV_1 = IV[1];
+
+	                // Generate four subvectors
+	                var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);
+	                var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);
+	                var i1 = (i0 >>> 16) | (i2 & 0xffff0000);
+	                var i3 = (i2 << 16)  | (i0 & 0x0000ffff);
+
+	                // Modify counter values
+	                C[0] ^= i0;
+	                C[1] ^= i1;
+	                C[2] ^= i2;
+	                C[3] ^= i3;
+	                C[4] ^= i0;
+	                C[5] ^= i1;
+	                C[6] ^= i2;
+	                C[7] ^= i3;
+
+	                // Iterate the system four times
+	                for (var i = 0; i < 4; i++) {
+	                    nextState.call(this);
+	                }
+	            }
+	        },
+
+	        _doProcessBlock: function (M, offset) {
+	            // Shortcut
+	            var X = this._X;
+
+	            // Iterate the system
+	            nextState.call(this);
+
+	            // Generate four keystream words
+	            S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);
+	            S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);
+	            S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);
+	            S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);
+
+	            for (var i = 0; i < 4; i++) {
+	                // Swap endian
+	                S[i] = (((S[i] << 8)  | (S[i] >>> 24)) & 0x00ff00ff) |
+	                       (((S[i] << 24) | (S[i] >>> 8))  & 0xff00ff00);
+
+	                // Encrypt
+	                M[offset + i] ^= S[i];
+	            }
+	        },
+
+	        blockSize: 128/32,
+
+	        ivSize: 64/32
+	    });
+
+	    function nextState() {
+	        // Shortcuts
+	        var X = this._X;
+	        var C = this._C;
+
+	        // Save old counter values
+	        for (var i = 0; i < 8; i++) {
+	            C_[i] = C[i];
+	        }
+
+	        // Calculate new counter values
+	        C[0] = (C[0] + 0x4d34d34d + this._b) | 0;
+	        C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;
+	        C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;
+	        C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;
+	        C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;
+	        C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;
+	        C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;
+	        C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;
+	        this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;
+
+	        // Calculate the g-values
+	        for (var i = 0; i < 8; i++) {
+	            var gx = X[i] + C[i];
+
+	            // Construct high and low argument for squaring
+	            var ga = gx & 0xffff;
+	            var gb = gx >>> 16;
+
+	            // Calculate high and low result of squaring
+	            var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;
+	            var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);
+
+	            // High XOR low
+	            G[i] = gh ^ gl;
+	        }
+
+	        // Calculate new state values
+	        X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;
+	        X[1] = (G[1] + ((G[0] << 8)  | (G[0] >>> 24)) + G[7]) | 0;
+	        X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;
+	        X[3] = (G[3] + ((G[2] << 8)  | (G[2] >>> 24)) + G[1]) | 0;
+	        X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;
+	        X[5] = (G[5] + ((G[4] << 8)  | (G[4] >>> 24)) + G[3]) | 0;
+	        X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;
+	        X[7] = (G[7] + ((G[6] << 8)  | (G[6] >>> 24)) + G[5]) | 0;
+	    }
+
+	    /**
+	     * Shortcut functions to the cipher's object interface.
+	     *
+	     * @example
+	     *
+	     *     var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg);
+	     *     var plaintext  = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg);
+	     */
+	    C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy);
+	}());
+
+
+	return CryptoJS.RabbitLegacy;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/rabbit.js b/node_modules/crypto-js/rabbit.js
new file mode 100644
index 0000000..1b06833
--- /dev/null
+++ b/node_modules/crypto-js/rabbit.js
@@ -0,0 +1,192 @@
+;(function (root, factory, undef) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"), require("./enc-base64"), require("./md5"), require("./evpkdf"), require("./cipher-core"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	(function () {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var StreamCipher = C_lib.StreamCipher;
+	    var C_algo = C.algo;
+
+	    // Reusable objects
+	    var S  = [];
+	    var C_ = [];
+	    var G  = [];
+
+	    /**
+	     * Rabbit stream cipher algorithm
+	     */
+	    var Rabbit = C_algo.Rabbit = StreamCipher.extend({
+	        _doReset: function () {
+	            // Shortcuts
+	            var K = this._key.words;
+	            var iv = this.cfg.iv;
+
+	            // Swap endian
+	            for (var i = 0; i < 4; i++) {
+	                K[i] = (((K[i] << 8)  | (K[i] >>> 24)) & 0x00ff00ff) |
+	                       (((K[i] << 24) | (K[i] >>> 8))  & 0xff00ff00);
+	            }
+
+	            // Generate initial state values
+	            var X = this._X = [
+	                K[0], (K[3] << 16) | (K[2] >>> 16),
+	                K[1], (K[0] << 16) | (K[3] >>> 16),
+	                K[2], (K[1] << 16) | (K[0] >>> 16),
+	                K[3], (K[2] << 16) | (K[1] >>> 16)
+	            ];
+
+	            // Generate initial counter values
+	            var C = this._C = [
+	                (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),
+	                (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),
+	                (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),
+	                (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)
+	            ];
+
+	            // Carry bit
+	            this._b = 0;
+
+	            // Iterate the system four times
+	            for (var i = 0; i < 4; i++) {
+	                nextState.call(this);
+	            }
+
+	            // Modify the counters
+	            for (var i = 0; i < 8; i++) {
+	                C[i] ^= X[(i + 4) & 7];
+	            }
+
+	            // IV setup
+	            if (iv) {
+	                // Shortcuts
+	                var IV = iv.words;
+	                var IV_0 = IV[0];
+	                var IV_1 = IV[1];
+
+	                // Generate four subvectors
+	                var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);
+	                var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);
+	                var i1 = (i0 >>> 16) | (i2 & 0xffff0000);
+	                var i3 = (i2 << 16)  | (i0 & 0x0000ffff);
+
+	                // Modify counter values
+	                C[0] ^= i0;
+	                C[1] ^= i1;
+	                C[2] ^= i2;
+	                C[3] ^= i3;
+	                C[4] ^= i0;
+	                C[5] ^= i1;
+	                C[6] ^= i2;
+	                C[7] ^= i3;
+
+	                // Iterate the system four times
+	                for (var i = 0; i < 4; i++) {
+	                    nextState.call(this);
+	                }
+	            }
+	        },
+
+	        _doProcessBlock: function (M, offset) {
+	            // Shortcut
+	            var X = this._X;
+
+	            // Iterate the system
+	            nextState.call(this);
+
+	            // Generate four keystream words
+	            S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);
+	            S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);
+	            S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);
+	            S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);
+
+	            for (var i = 0; i < 4; i++) {
+	                // Swap endian
+	                S[i] = (((S[i] << 8)  | (S[i] >>> 24)) & 0x00ff00ff) |
+	                       (((S[i] << 24) | (S[i] >>> 8))  & 0xff00ff00);
+
+	                // Encrypt
+	                M[offset + i] ^= S[i];
+	            }
+	        },
+
+	        blockSize: 128/32,
+
+	        ivSize: 64/32
+	    });
+
+	    function nextState() {
+	        // Shortcuts
+	        var X = this._X;
+	        var C = this._C;
+
+	        // Save old counter values
+	        for (var i = 0; i < 8; i++) {
+	            C_[i] = C[i];
+	        }
+
+	        // Calculate new counter values
+	        C[0] = (C[0] + 0x4d34d34d + this._b) | 0;
+	        C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;
+	        C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;
+	        C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;
+	        C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;
+	        C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;
+	        C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;
+	        C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;
+	        this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;
+
+	        // Calculate the g-values
+	        for (var i = 0; i < 8; i++) {
+	            var gx = X[i] + C[i];
+
+	            // Construct high and low argument for squaring
+	            var ga = gx & 0xffff;
+	            var gb = gx >>> 16;
+
+	            // Calculate high and low result of squaring
+	            var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;
+	            var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);
+
+	            // High XOR low
+	            G[i] = gh ^ gl;
+	        }
+
+	        // Calculate new state values
+	        X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;
+	        X[1] = (G[1] + ((G[0] << 8)  | (G[0] >>> 24)) + G[7]) | 0;
+	        X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;
+	        X[3] = (G[3] + ((G[2] << 8)  | (G[2] >>> 24)) + G[1]) | 0;
+	        X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;
+	        X[5] = (G[5] + ((G[4] << 8)  | (G[4] >>> 24)) + G[3]) | 0;
+	        X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;
+	        X[7] = (G[7] + ((G[6] << 8)  | (G[6] >>> 24)) + G[5]) | 0;
+	    }
+
+	    /**
+	     * Shortcut functions to the cipher's object interface.
+	     *
+	     * @example
+	     *
+	     *     var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg);
+	     *     var plaintext  = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg);
+	     */
+	    C.Rabbit = StreamCipher._createHelper(Rabbit);
+	}());
+
+
+	return CryptoJS.Rabbit;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/rc4.js b/node_modules/crypto-js/rc4.js
new file mode 100644
index 0000000..0e4bdff
--- /dev/null
+++ b/node_modules/crypto-js/rc4.js
@@ -0,0 +1,139 @@
+;(function (root, factory, undef) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"), require("./enc-base64"), require("./md5"), require("./evpkdf"), require("./cipher-core"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	(function () {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var StreamCipher = C_lib.StreamCipher;
+	    var C_algo = C.algo;
+
+	    /**
+	     * RC4 stream cipher algorithm.
+	     */
+	    var RC4 = C_algo.RC4 = StreamCipher.extend({
+	        _doReset: function () {
+	            // Shortcuts
+	            var key = this._key;
+	            var keyWords = key.words;
+	            var keySigBytes = key.sigBytes;
+
+	            // Init sbox
+	            var S = this._S = [];
+	            for (var i = 0; i < 256; i++) {
+	                S[i] = i;
+	            }
+
+	            // Key setup
+	            for (var i = 0, j = 0; i < 256; i++) {
+	                var keyByteIndex = i % keySigBytes;
+	                var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff;
+
+	                j = (j + S[i] + keyByte) % 256;
+
+	                // Swap
+	                var t = S[i];
+	                S[i] = S[j];
+	                S[j] = t;
+	            }
+
+	            // Counters
+	            this._i = this._j = 0;
+	        },
+
+	        _doProcessBlock: function (M, offset) {
+	            M[offset] ^= generateKeystreamWord.call(this);
+	        },
+
+	        keySize: 256/32,
+
+	        ivSize: 0
+	    });
+
+	    function generateKeystreamWord() {
+	        // Shortcuts
+	        var S = this._S;
+	        var i = this._i;
+	        var j = this._j;
+
+	        // Generate keystream word
+	        var keystreamWord = 0;
+	        for (var n = 0; n < 4; n++) {
+	            i = (i + 1) % 256;
+	            j = (j + S[i]) % 256;
+
+	            // Swap
+	            var t = S[i];
+	            S[i] = S[j];
+	            S[j] = t;
+
+	            keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8);
+	        }
+
+	        // Update counters
+	        this._i = i;
+	        this._j = j;
+
+	        return keystreamWord;
+	    }
+
+	    /**
+	     * Shortcut functions to the cipher's object interface.
+	     *
+	     * @example
+	     *
+	     *     var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg);
+	     *     var plaintext  = CryptoJS.RC4.decrypt(ciphertext, key, cfg);
+	     */
+	    C.RC4 = StreamCipher._createHelper(RC4);
+
+	    /**
+	     * Modified RC4 stream cipher algorithm.
+	     */
+	    var RC4Drop = C_algo.RC4Drop = RC4.extend({
+	        /**
+	         * Configuration options.
+	         *
+	         * @property {number} drop The number of keystream words to drop. Default 192
+	         */
+	        cfg: RC4.cfg.extend({
+	            drop: 192
+	        }),
+
+	        _doReset: function () {
+	            RC4._doReset.call(this);
+
+	            // Drop
+	            for (var i = this.cfg.drop; i > 0; i--) {
+	                generateKeystreamWord.call(this);
+	            }
+	        }
+	    });
+
+	    /**
+	     * Shortcut functions to the cipher's object interface.
+	     *
+	     * @example
+	     *
+	     *     var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg);
+	     *     var plaintext  = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg);
+	     */
+	    C.RC4Drop = StreamCipher._createHelper(RC4Drop);
+	}());
+
+
+	return CryptoJS.RC4;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/ripemd160.js b/node_modules/crypto-js/ripemd160.js
new file mode 100644
index 0000000..24feb47
--- /dev/null
+++ b/node_modules/crypto-js/ripemd160.js
@@ -0,0 +1,267 @@
+;(function (root, factory) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	/** @preserve
+	(c) 2012 by Cédric Mesnil. All rights reserved.
+
+	Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+	    - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+	    - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+
+	THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+	*/
+
+	(function (Math) {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var WordArray = C_lib.WordArray;
+	    var Hasher = C_lib.Hasher;
+	    var C_algo = C.algo;
+
+	    // Constants table
+	    var _zl = WordArray.create([
+	        0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,
+	        7,  4, 13,  1, 10,  6, 15,  3, 12,  0,  9,  5,  2, 14, 11,  8,
+	        3, 10, 14,  4,  9, 15,  8,  1,  2,  7,  0,  6, 13, 11,  5, 12,
+	        1,  9, 11, 10,  0,  8, 12,  4, 13,  3,  7, 15, 14,  5,  6,  2,
+	        4,  0,  5,  9,  7, 12,  2, 10, 14,  1,  3,  8, 11,  6, 15, 13]);
+	    var _zr = WordArray.create([
+	        5, 14,  7,  0,  9,  2, 11,  4, 13,  6, 15,  8,  1, 10,  3, 12,
+	        6, 11,  3,  7,  0, 13,  5, 10, 14, 15,  8, 12,  4,  9,  1,  2,
+	        15,  5,  1,  3,  7, 14,  6,  9, 11,  8, 12,  2, 10,  0,  4, 13,
+	        8,  6,  4,  1,  3, 11, 15,  0,  5, 12,  2, 13,  9,  7, 10, 14,
+	        12, 15, 10,  4,  1,  5,  8,  7,  6,  2, 13, 14,  0,  3,  9, 11]);
+	    var _sl = WordArray.create([
+	         11, 14, 15, 12,  5,  8,  7,  9, 11, 13, 14, 15,  6,  7,  9,  8,
+	        7, 6,   8, 13, 11,  9,  7, 15,  7, 12, 15,  9, 11,  7, 13, 12,
+	        11, 13,  6,  7, 14,  9, 13, 15, 14,  8, 13,  6,  5, 12,  7,  5,
+	          11, 12, 14, 15, 14, 15,  9,  8,  9, 14,  5,  6,  8,  6,  5, 12,
+	        9, 15,  5, 11,  6,  8, 13, 12,  5, 12, 13, 14, 11,  8,  5,  6 ]);
+	    var _sr = WordArray.create([
+	        8,  9,  9, 11, 13, 15, 15,  5,  7,  7,  8, 11, 14, 14, 12,  6,
+	        9, 13, 15,  7, 12,  8,  9, 11,  7,  7, 12,  7,  6, 15, 13, 11,
+	        9,  7, 15, 11,  8,  6,  6, 14, 12, 13,  5, 14, 13, 13,  7,  5,
+	        15,  5,  8, 11, 14, 14,  6, 14,  6,  9, 12,  9, 12,  5, 15,  8,
+	        8,  5, 12,  9, 12,  5, 14,  6,  8, 13,  6,  5, 15, 13, 11, 11 ]);
+
+	    var _hl =  WordArray.create([ 0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]);
+	    var _hr =  WordArray.create([ 0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]);
+
+	    /**
+	     * RIPEMD160 hash algorithm.
+	     */
+	    var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({
+	        _doReset: function () {
+	            this._hash  = WordArray.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]);
+	        },
+
+	        _doProcessBlock: function (M, offset) {
+
+	            // Swap endian
+	            for (var i = 0; i < 16; i++) {
+	                // Shortcuts
+	                var offset_i = offset + i;
+	                var M_offset_i = M[offset_i];
+
+	                // Swap
+	                M[offset_i] = (
+	                    (((M_offset_i << 8)  | (M_offset_i >>> 24)) & 0x00ff00ff) |
+	                    (((M_offset_i << 24) | (M_offset_i >>> 8))  & 0xff00ff00)
+	                );
+	            }
+	            // Shortcut
+	            var H  = this._hash.words;
+	            var hl = _hl.words;
+	            var hr = _hr.words;
+	            var zl = _zl.words;
+	            var zr = _zr.words;
+	            var sl = _sl.words;
+	            var sr = _sr.words;
+
+	            // Working variables
+	            var al, bl, cl, dl, el;
+	            var ar, br, cr, dr, er;
+
+	            ar = al = H[0];
+	            br = bl = H[1];
+	            cr = cl = H[2];
+	            dr = dl = H[3];
+	            er = el = H[4];
+	            // Computation
+	            var t;
+	            for (var i = 0; i < 80; i += 1) {
+	                t = (al +  M[offset+zl[i]])|0;
+	                if (i<16){
+		            t +=  f1(bl,cl,dl) + hl[0];
+	                } else if (i<32) {
+		            t +=  f2(bl,cl,dl) + hl[1];
+	                } else if (i<48) {
+		            t +=  f3(bl,cl,dl) + hl[2];
+	                } else if (i<64) {
+		            t +=  f4(bl,cl,dl) + hl[3];
+	                } else {// if (i<80) {
+		            t +=  f5(bl,cl,dl) + hl[4];
+	                }
+	                t = t|0;
+	                t =  rotl(t,sl[i]);
+	                t = (t+el)|0;
+	                al = el;
+	                el = dl;
+	                dl = rotl(cl, 10);
+	                cl = bl;
+	                bl = t;
+
+	                t = (ar + M[offset+zr[i]])|0;
+	                if (i<16){
+		            t +=  f5(br,cr,dr) + hr[0];
+	                } else if (i<32) {
+		            t +=  f4(br,cr,dr) + hr[1];
+	                } else if (i<48) {
+		            t +=  f3(br,cr,dr) + hr[2];
+	                } else if (i<64) {
+		            t +=  f2(br,cr,dr) + hr[3];
+	                } else {// if (i<80) {
+		            t +=  f1(br,cr,dr) + hr[4];
+	                }
+	                t = t|0;
+	                t =  rotl(t,sr[i]) ;
+	                t = (t+er)|0;
+	                ar = er;
+	                er = dr;
+	                dr = rotl(cr, 10);
+	                cr = br;
+	                br = t;
+	            }
+	            // Intermediate hash value
+	            t    = (H[1] + cl + dr)|0;
+	            H[1] = (H[2] + dl + er)|0;
+	            H[2] = (H[3] + el + ar)|0;
+	            H[3] = (H[4] + al + br)|0;
+	            H[4] = (H[0] + bl + cr)|0;
+	            H[0] =  t;
+	        },
+
+	        _doFinalize: function () {
+	            // Shortcuts
+	            var data = this._data;
+	            var dataWords = data.words;
+
+	            var nBitsTotal = this._nDataBytes * 8;
+	            var nBitsLeft = data.sigBytes * 8;
+
+	            // Add padding
+	            dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
+	            dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (
+	                (((nBitsTotal << 8)  | (nBitsTotal >>> 24)) & 0x00ff00ff) |
+	                (((nBitsTotal << 24) | (nBitsTotal >>> 8))  & 0xff00ff00)
+	            );
+	            data.sigBytes = (dataWords.length + 1) * 4;
+
+	            // Hash final blocks
+	            this._process();
+
+	            // Shortcuts
+	            var hash = this._hash;
+	            var H = hash.words;
+
+	            // Swap endian
+	            for (var i = 0; i < 5; i++) {
+	                // Shortcut
+	                var H_i = H[i];
+
+	                // Swap
+	                H[i] = (((H_i << 8)  | (H_i >>> 24)) & 0x00ff00ff) |
+	                       (((H_i << 24) | (H_i >>> 8))  & 0xff00ff00);
+	            }
+
+	            // Return final computed hash
+	            return hash;
+	        },
+
+	        clone: function () {
+	            var clone = Hasher.clone.call(this);
+	            clone._hash = this._hash.clone();
+
+	            return clone;
+	        }
+	    });
+
+
+	    function f1(x, y, z) {
+	        return ((x) ^ (y) ^ (z));
+
+	    }
+
+	    function f2(x, y, z) {
+	        return (((x)&(y)) | ((~x)&(z)));
+	    }
+
+	    function f3(x, y, z) {
+	        return (((x) | (~(y))) ^ (z));
+	    }
+
+	    function f4(x, y, z) {
+	        return (((x) & (z)) | ((y)&(~(z))));
+	    }
+
+	    function f5(x, y, z) {
+	        return ((x) ^ ((y) |(~(z))));
+
+	    }
+
+	    function rotl(x,n) {
+	        return (x<<n) | (x>>>(32-n));
+	    }
+
+
+	    /**
+	     * Shortcut function to the hasher's object interface.
+	     *
+	     * @param {WordArray|string} message The message to hash.
+	     *
+	     * @return {WordArray} The hash.
+	     *
+	     * @static
+	     *
+	     * @example
+	     *
+	     *     var hash = CryptoJS.RIPEMD160('message');
+	     *     var hash = CryptoJS.RIPEMD160(wordArray);
+	     */
+	    C.RIPEMD160 = Hasher._createHelper(RIPEMD160);
+
+	    /**
+	     * Shortcut function to the HMAC's object interface.
+	     *
+	     * @param {WordArray|string} message The message to hash.
+	     * @param {WordArray|string} key The secret key.
+	     *
+	     * @return {WordArray} The HMAC.
+	     *
+	     * @static
+	     *
+	     * @example
+	     *
+	     *     var hmac = CryptoJS.HmacRIPEMD160(message, key);
+	     */
+	    C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160);
+	}(Math));
+
+
+	return CryptoJS.RIPEMD160;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/sha1.js b/node_modules/crypto-js/sha1.js
new file mode 100644
index 0000000..6691149
--- /dev/null
+++ b/node_modules/crypto-js/sha1.js
@@ -0,0 +1,150 @@
+;(function (root, factory) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	(function () {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var WordArray = C_lib.WordArray;
+	    var Hasher = C_lib.Hasher;
+	    var C_algo = C.algo;
+
+	    // Reusable object
+	    var W = [];
+
+	    /**
+	     * SHA-1 hash algorithm.
+	     */
+	    var SHA1 = C_algo.SHA1 = Hasher.extend({
+	        _doReset: function () {
+	            this._hash = new WordArray.init([
+	                0x67452301, 0xefcdab89,
+	                0x98badcfe, 0x10325476,
+	                0xc3d2e1f0
+	            ]);
+	        },
+
+	        _doProcessBlock: function (M, offset) {
+	            // Shortcut
+	            var H = this._hash.words;
+
+	            // Working variables
+	            var a = H[0];
+	            var b = H[1];
+	            var c = H[2];
+	            var d = H[3];
+	            var e = H[4];
+
+	            // Computation
+	            for (var i = 0; i < 80; i++) {
+	                if (i < 16) {
+	                    W[i] = M[offset + i] | 0;
+	                } else {
+	                    var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];
+	                    W[i] = (n << 1) | (n >>> 31);
+	                }
+
+	                var t = ((a << 5) | (a >>> 27)) + e + W[i];
+	                if (i < 20) {
+	                    t += ((b & c) | (~b & d)) + 0x5a827999;
+	                } else if (i < 40) {
+	                    t += (b ^ c ^ d) + 0x6ed9eba1;
+	                } else if (i < 60) {
+	                    t += ((b & c) | (b & d) | (c & d)) - 0x70e44324;
+	                } else /* if (i < 80) */ {
+	                    t += (b ^ c ^ d) - 0x359d3e2a;
+	                }
+
+	                e = d;
+	                d = c;
+	                c = (b << 30) | (b >>> 2);
+	                b = a;
+	                a = t;
+	            }
+
+	            // Intermediate hash value
+	            H[0] = (H[0] + a) | 0;
+	            H[1] = (H[1] + b) | 0;
+	            H[2] = (H[2] + c) | 0;
+	            H[3] = (H[3] + d) | 0;
+	            H[4] = (H[4] + e) | 0;
+	        },
+
+	        _doFinalize: function () {
+	            // Shortcuts
+	            var data = this._data;
+	            var dataWords = data.words;
+
+	            var nBitsTotal = this._nDataBytes * 8;
+	            var nBitsLeft = data.sigBytes * 8;
+
+	            // Add padding
+	            dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
+	            dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);
+	            dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;
+	            data.sigBytes = dataWords.length * 4;
+
+	            // Hash final blocks
+	            this._process();
+
+	            // Return final computed hash
+	            return this._hash;
+	        },
+
+	        clone: function () {
+	            var clone = Hasher.clone.call(this);
+	            clone._hash = this._hash.clone();
+
+	            return clone;
+	        }
+	    });
+
+	    /**
+	     * Shortcut function to the hasher's object interface.
+	     *
+	     * @param {WordArray|string} message The message to hash.
+	     *
+	     * @return {WordArray} The hash.
+	     *
+	     * @static
+	     *
+	     * @example
+	     *
+	     *     var hash = CryptoJS.SHA1('message');
+	     *     var hash = CryptoJS.SHA1(wordArray);
+	     */
+	    C.SHA1 = Hasher._createHelper(SHA1);
+
+	    /**
+	     * Shortcut function to the HMAC's object interface.
+	     *
+	     * @param {WordArray|string} message The message to hash.
+	     * @param {WordArray|string} key The secret key.
+	     *
+	     * @return {WordArray} The HMAC.
+	     *
+	     * @static
+	     *
+	     * @example
+	     *
+	     *     var hmac = CryptoJS.HmacSHA1(message, key);
+	     */
+	    C.HmacSHA1 = Hasher._createHmacHelper(SHA1);
+	}());
+
+
+	return CryptoJS.SHA1;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/sha224.js b/node_modules/crypto-js/sha224.js
new file mode 100644
index 0000000..d8ce988
--- /dev/null
+++ b/node_modules/crypto-js/sha224.js
@@ -0,0 +1,80 @@
+;(function (root, factory, undef) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"), require("./sha256"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core", "./sha256"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	(function () {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var WordArray = C_lib.WordArray;
+	    var C_algo = C.algo;
+	    var SHA256 = C_algo.SHA256;
+
+	    /**
+	     * SHA-224 hash algorithm.
+	     */
+	    var SHA224 = C_algo.SHA224 = SHA256.extend({
+	        _doReset: function () {
+	            this._hash = new WordArray.init([
+	                0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,
+	                0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4
+	            ]);
+	        },
+
+	        _doFinalize: function () {
+	            var hash = SHA256._doFinalize.call(this);
+
+	            hash.sigBytes -= 4;
+
+	            return hash;
+	        }
+	    });
+
+	    /**
+	     * Shortcut function to the hasher's object interface.
+	     *
+	     * @param {WordArray|string} message The message to hash.
+	     *
+	     * @return {WordArray} The hash.
+	     *
+	     * @static
+	     *
+	     * @example
+	     *
+	     *     var hash = CryptoJS.SHA224('message');
+	     *     var hash = CryptoJS.SHA224(wordArray);
+	     */
+	    C.SHA224 = SHA256._createHelper(SHA224);
+
+	    /**
+	     * Shortcut function to the HMAC's object interface.
+	     *
+	     * @param {WordArray|string} message The message to hash.
+	     * @param {WordArray|string} key The secret key.
+	     *
+	     * @return {WordArray} The HMAC.
+	     *
+	     * @static
+	     *
+	     * @example
+	     *
+	     *     var hmac = CryptoJS.HmacSHA224(message, key);
+	     */
+	    C.HmacSHA224 = SHA256._createHmacHelper(SHA224);
+	}());
+
+
+	return CryptoJS.SHA224;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/sha256.js b/node_modules/crypto-js/sha256.js
new file mode 100644
index 0000000..de2d7fc
--- /dev/null
+++ b/node_modules/crypto-js/sha256.js
@@ -0,0 +1,199 @@
+;(function (root, factory) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	(function (Math) {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var WordArray = C_lib.WordArray;
+	    var Hasher = C_lib.Hasher;
+	    var C_algo = C.algo;
+
+	    // Initialization and round constants tables
+	    var H = [];
+	    var K = [];
+
+	    // Compute constants
+	    (function () {
+	        function isPrime(n) {
+	            var sqrtN = Math.sqrt(n);
+	            for (var factor = 2; factor <= sqrtN; factor++) {
+	                if (!(n % factor)) {
+	                    return false;
+	                }
+	            }
+
+	            return true;
+	        }
+
+	        function getFractionalBits(n) {
+	            return ((n - (n | 0)) * 0x100000000) | 0;
+	        }
+
+	        var n = 2;
+	        var nPrime = 0;
+	        while (nPrime < 64) {
+	            if (isPrime(n)) {
+	                if (nPrime < 8) {
+	                    H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));
+	                }
+	                K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));
+
+	                nPrime++;
+	            }
+
+	            n++;
+	        }
+	    }());
+
+	    // Reusable object
+	    var W = [];
+
+	    /**
+	     * SHA-256 hash algorithm.
+	     */
+	    var SHA256 = C_algo.SHA256 = Hasher.extend({
+	        _doReset: function () {
+	            this._hash = new WordArray.init(H.slice(0));
+	        },
+
+	        _doProcessBlock: function (M, offset) {
+	            // Shortcut
+	            var H = this._hash.words;
+
+	            // Working variables
+	            var a = H[0];
+	            var b = H[1];
+	            var c = H[2];
+	            var d = H[3];
+	            var e = H[4];
+	            var f = H[5];
+	            var g = H[6];
+	            var h = H[7];
+
+	            // Computation
+	            for (var i = 0; i < 64; i++) {
+	                if (i < 16) {
+	                    W[i] = M[offset + i] | 0;
+	                } else {
+	                    var gamma0x = W[i - 15];
+	                    var gamma0  = ((gamma0x << 25) | (gamma0x >>> 7))  ^
+	                                  ((gamma0x << 14) | (gamma0x >>> 18)) ^
+	                                   (gamma0x >>> 3);
+
+	                    var gamma1x = W[i - 2];
+	                    var gamma1  = ((gamma1x << 15) | (gamma1x >>> 17)) ^
+	                                  ((gamma1x << 13) | (gamma1x >>> 19)) ^
+	                                   (gamma1x >>> 10);
+
+	                    W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];
+	                }
+
+	                var ch  = (e & f) ^ (~e & g);
+	                var maj = (a & b) ^ (a & c) ^ (b & c);
+
+	                var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));
+	                var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7)  | (e >>> 25));
+
+	                var t1 = h + sigma1 + ch + K[i] + W[i];
+	                var t2 = sigma0 + maj;
+
+	                h = g;
+	                g = f;
+	                f = e;
+	                e = (d + t1) | 0;
+	                d = c;
+	                c = b;
+	                b = a;
+	                a = (t1 + t2) | 0;
+	            }
+
+	            // Intermediate hash value
+	            H[0] = (H[0] + a) | 0;
+	            H[1] = (H[1] + b) | 0;
+	            H[2] = (H[2] + c) | 0;
+	            H[3] = (H[3] + d) | 0;
+	            H[4] = (H[4] + e) | 0;
+	            H[5] = (H[5] + f) | 0;
+	            H[6] = (H[6] + g) | 0;
+	            H[7] = (H[7] + h) | 0;
+	        },
+
+	        _doFinalize: function () {
+	            // Shortcuts
+	            var data = this._data;
+	            var dataWords = data.words;
+
+	            var nBitsTotal = this._nDataBytes * 8;
+	            var nBitsLeft = data.sigBytes * 8;
+
+	            // Add padding
+	            dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
+	            dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);
+	            dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;
+	            data.sigBytes = dataWords.length * 4;
+
+	            // Hash final blocks
+	            this._process();
+
+	            // Return final computed hash
+	            return this._hash;
+	        },
+
+	        clone: function () {
+	            var clone = Hasher.clone.call(this);
+	            clone._hash = this._hash.clone();
+
+	            return clone;
+	        }
+	    });
+
+	    /**
+	     * Shortcut function to the hasher's object interface.
+	     *
+	     * @param {WordArray|string} message The message to hash.
+	     *
+	     * @return {WordArray} The hash.
+	     *
+	     * @static
+	     *
+	     * @example
+	     *
+	     *     var hash = CryptoJS.SHA256('message');
+	     *     var hash = CryptoJS.SHA256(wordArray);
+	     */
+	    C.SHA256 = Hasher._createHelper(SHA256);
+
+	    /**
+	     * Shortcut function to the HMAC's object interface.
+	     *
+	     * @param {WordArray|string} message The message to hash.
+	     * @param {WordArray|string} key The secret key.
+	     *
+	     * @return {WordArray} The HMAC.
+	     *
+	     * @static
+	     *
+	     * @example
+	     *
+	     *     var hmac = CryptoJS.HmacSHA256(message, key);
+	     */
+	    C.HmacSHA256 = Hasher._createHmacHelper(SHA256);
+	}(Math));
+
+
+	return CryptoJS.SHA256;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/sha3.js b/node_modules/crypto-js/sha3.js
new file mode 100644
index 0000000..34ad86c
--- /dev/null
+++ b/node_modules/crypto-js/sha3.js
@@ -0,0 +1,326 @@
+;(function (root, factory, undef) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"), require("./x64-core"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core", "./x64-core"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	(function (Math) {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var WordArray = C_lib.WordArray;
+	    var Hasher = C_lib.Hasher;
+	    var C_x64 = C.x64;
+	    var X64Word = C_x64.Word;
+	    var C_algo = C.algo;
+
+	    // Constants tables
+	    var RHO_OFFSETS = [];
+	    var PI_INDEXES  = [];
+	    var ROUND_CONSTANTS = [];
+
+	    // Compute Constants
+	    (function () {
+	        // Compute rho offset constants
+	        var x = 1, y = 0;
+	        for (var t = 0; t < 24; t++) {
+	            RHO_OFFSETS[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64;
+
+	            var newX = y % 5;
+	            var newY = (2 * x + 3 * y) % 5;
+	            x = newX;
+	            y = newY;
+	        }
+
+	        // Compute pi index constants
+	        for (var x = 0; x < 5; x++) {
+	            for (var y = 0; y < 5; y++) {
+	                PI_INDEXES[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5;
+	            }
+	        }
+
+	        // Compute round constants
+	        var LFSR = 0x01;
+	        for (var i = 0; i < 24; i++) {
+	            var roundConstantMsw = 0;
+	            var roundConstantLsw = 0;
+
+	            for (var j = 0; j < 7; j++) {
+	                if (LFSR & 0x01) {
+	                    var bitPosition = (1 << j) - 1;
+	                    if (bitPosition < 32) {
+	                        roundConstantLsw ^= 1 << bitPosition;
+	                    } else /* if (bitPosition >= 32) */ {
+	                        roundConstantMsw ^= 1 << (bitPosition - 32);
+	                    }
+	                }
+
+	                // Compute next LFSR
+	                if (LFSR & 0x80) {
+	                    // Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1
+	                    LFSR = (LFSR << 1) ^ 0x71;
+	                } else {
+	                    LFSR <<= 1;
+	                }
+	            }
+
+	            ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw);
+	        }
+	    }());
+
+	    // Reusable objects for temporary values
+	    var T = [];
+	    (function () {
+	        for (var i = 0; i < 25; i++) {
+	            T[i] = X64Word.create();
+	        }
+	    }());
+
+	    /**
+	     * SHA-3 hash algorithm.
+	     */
+	    var SHA3 = C_algo.SHA3 = Hasher.extend({
+	        /**
+	         * Configuration options.
+	         *
+	         * @property {number} outputLength
+	         *   The desired number of bits in the output hash.
+	         *   Only values permitted are: 224, 256, 384, 512.
+	         *   Default: 512
+	         */
+	        cfg: Hasher.cfg.extend({
+	            outputLength: 512
+	        }),
+
+	        _doReset: function () {
+	            var state = this._state = []
+	            for (var i = 0; i < 25; i++) {
+	                state[i] = new X64Word.init();
+	            }
+
+	            this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32;
+	        },
+
+	        _doProcessBlock: function (M, offset) {
+	            // Shortcuts
+	            var state = this._state;
+	            var nBlockSizeLanes = this.blockSize / 2;
+
+	            // Absorb
+	            for (var i = 0; i < nBlockSizeLanes; i++) {
+	                // Shortcuts
+	                var M2i  = M[offset + 2 * i];
+	                var M2i1 = M[offset + 2 * i + 1];
+
+	                // Swap endian
+	                M2i = (
+	                    (((M2i << 8)  | (M2i >>> 24)) & 0x00ff00ff) |
+	                    (((M2i << 24) | (M2i >>> 8))  & 0xff00ff00)
+	                );
+	                M2i1 = (
+	                    (((M2i1 << 8)  | (M2i1 >>> 24)) & 0x00ff00ff) |
+	                    (((M2i1 << 24) | (M2i1 >>> 8))  & 0xff00ff00)
+	                );
+
+	                // Absorb message into state
+	                var lane = state[i];
+	                lane.high ^= M2i1;
+	                lane.low  ^= M2i;
+	            }
+
+	            // Rounds
+	            for (var round = 0; round < 24; round++) {
+	                // Theta
+	                for (var x = 0; x < 5; x++) {
+	                    // Mix column lanes
+	                    var tMsw = 0, tLsw = 0;
+	                    for (var y = 0; y < 5; y++) {
+	                        var lane = state[x + 5 * y];
+	                        tMsw ^= lane.high;
+	                        tLsw ^= lane.low;
+	                    }
+
+	                    // Temporary values
+	                    var Tx = T[x];
+	                    Tx.high = tMsw;
+	                    Tx.low  = tLsw;
+	                }
+	                for (var x = 0; x < 5; x++) {
+	                    // Shortcuts
+	                    var Tx4 = T[(x + 4) % 5];
+	                    var Tx1 = T[(x + 1) % 5];
+	                    var Tx1Msw = Tx1.high;
+	                    var Tx1Lsw = Tx1.low;
+
+	                    // Mix surrounding columns
+	                    var tMsw = Tx4.high ^ ((Tx1Msw << 1) | (Tx1Lsw >>> 31));
+	                    var tLsw = Tx4.low  ^ ((Tx1Lsw << 1) | (Tx1Msw >>> 31));
+	                    for (var y = 0; y < 5; y++) {
+	                        var lane = state[x + 5 * y];
+	                        lane.high ^= tMsw;
+	                        lane.low  ^= tLsw;
+	                    }
+	                }
+
+	                // Rho Pi
+	                for (var laneIndex = 1; laneIndex < 25; laneIndex++) {
+	                    var tMsw;
+	                    var tLsw;
+
+	                    // Shortcuts
+	                    var lane = state[laneIndex];
+	                    var laneMsw = lane.high;
+	                    var laneLsw = lane.low;
+	                    var rhoOffset = RHO_OFFSETS[laneIndex];
+
+	                    // Rotate lanes
+	                    if (rhoOffset < 32) {
+	                        tMsw = (laneMsw << rhoOffset) | (laneLsw >>> (32 - rhoOffset));
+	                        tLsw = (laneLsw << rhoOffset) | (laneMsw >>> (32 - rhoOffset));
+	                    } else /* if (rhoOffset >= 32) */ {
+	                        tMsw = (laneLsw << (rhoOffset - 32)) | (laneMsw >>> (64 - rhoOffset));
+	                        tLsw = (laneMsw << (rhoOffset - 32)) | (laneLsw >>> (64 - rhoOffset));
+	                    }
+
+	                    // Transpose lanes
+	                    var TPiLane = T[PI_INDEXES[laneIndex]];
+	                    TPiLane.high = tMsw;
+	                    TPiLane.low  = tLsw;
+	                }
+
+	                // Rho pi at x = y = 0
+	                var T0 = T[0];
+	                var state0 = state[0];
+	                T0.high = state0.high;
+	                T0.low  = state0.low;
+
+	                // Chi
+	                for (var x = 0; x < 5; x++) {
+	                    for (var y = 0; y < 5; y++) {
+	                        // Shortcuts
+	                        var laneIndex = x + 5 * y;
+	                        var lane = state[laneIndex];
+	                        var TLane = T[laneIndex];
+	                        var Tx1Lane = T[((x + 1) % 5) + 5 * y];
+	                        var Tx2Lane = T[((x + 2) % 5) + 5 * y];
+
+	                        // Mix rows
+	                        lane.high = TLane.high ^ (~Tx1Lane.high & Tx2Lane.high);
+	                        lane.low  = TLane.low  ^ (~Tx1Lane.low  & Tx2Lane.low);
+	                    }
+	                }
+
+	                // Iota
+	                var lane = state[0];
+	                var roundConstant = ROUND_CONSTANTS[round];
+	                lane.high ^= roundConstant.high;
+	                lane.low  ^= roundConstant.low;
+	            }
+	        },
+
+	        _doFinalize: function () {
+	            // Shortcuts
+	            var data = this._data;
+	            var dataWords = data.words;
+	            var nBitsTotal = this._nDataBytes * 8;
+	            var nBitsLeft = data.sigBytes * 8;
+	            var blockSizeBits = this.blockSize * 32;
+
+	            // Add padding
+	            dataWords[nBitsLeft >>> 5] |= 0x1 << (24 - nBitsLeft % 32);
+	            dataWords[((Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits) >>> 5) - 1] |= 0x80;
+	            data.sigBytes = dataWords.length * 4;
+
+	            // Hash final blocks
+	            this._process();
+
+	            // Shortcuts
+	            var state = this._state;
+	            var outputLengthBytes = this.cfg.outputLength / 8;
+	            var outputLengthLanes = outputLengthBytes / 8;
+
+	            // Squeeze
+	            var hashWords = [];
+	            for (var i = 0; i < outputLengthLanes; i++) {
+	                // Shortcuts
+	                var lane = state[i];
+	                var laneMsw = lane.high;
+	                var laneLsw = lane.low;
+
+	                // Swap endian
+	                laneMsw = (
+	                    (((laneMsw << 8)  | (laneMsw >>> 24)) & 0x00ff00ff) |
+	                    (((laneMsw << 24) | (laneMsw >>> 8))  & 0xff00ff00)
+	                );
+	                laneLsw = (
+	                    (((laneLsw << 8)  | (laneLsw >>> 24)) & 0x00ff00ff) |
+	                    (((laneLsw << 24) | (laneLsw >>> 8))  & 0xff00ff00)
+	                );
+
+	                // Squeeze state to retrieve hash
+	                hashWords.push(laneLsw);
+	                hashWords.push(laneMsw);
+	            }
+
+	            // Return final computed hash
+	            return new WordArray.init(hashWords, outputLengthBytes);
+	        },
+
+	        clone: function () {
+	            var clone = Hasher.clone.call(this);
+
+	            var state = clone._state = this._state.slice(0);
+	            for (var i = 0; i < 25; i++) {
+	                state[i] = state[i].clone();
+	            }
+
+	            return clone;
+	        }
+	    });
+
+	    /**
+	     * Shortcut function to the hasher's object interface.
+	     *
+	     * @param {WordArray|string} message The message to hash.
+	     *
+	     * @return {WordArray} The hash.
+	     *
+	     * @static
+	     *
+	     * @example
+	     *
+	     *     var hash = CryptoJS.SHA3('message');
+	     *     var hash = CryptoJS.SHA3(wordArray);
+	     */
+	    C.SHA3 = Hasher._createHelper(SHA3);
+
+	    /**
+	     * Shortcut function to the HMAC's object interface.
+	     *
+	     * @param {WordArray|string} message The message to hash.
+	     * @param {WordArray|string} key The secret key.
+	     *
+	     * @return {WordArray} The HMAC.
+	     *
+	     * @static
+	     *
+	     * @example
+	     *
+	     *     var hmac = CryptoJS.HmacSHA3(message, key);
+	     */
+	    C.HmacSHA3 = Hasher._createHmacHelper(SHA3);
+	}(Math));
+
+
+	return CryptoJS.SHA3;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/sha384.js b/node_modules/crypto-js/sha384.js
new file mode 100644
index 0000000..a0b95bf
--- /dev/null
+++ b/node_modules/crypto-js/sha384.js
@@ -0,0 +1,83 @@
+;(function (root, factory, undef) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"), require("./x64-core"), require("./sha512"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core", "./x64-core", "./sha512"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	(function () {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_x64 = C.x64;
+	    var X64Word = C_x64.Word;
+	    var X64WordArray = C_x64.WordArray;
+	    var C_algo = C.algo;
+	    var SHA512 = C_algo.SHA512;
+
+	    /**
+	     * SHA-384 hash algorithm.
+	     */
+	    var SHA384 = C_algo.SHA384 = SHA512.extend({
+	        _doReset: function () {
+	            this._hash = new X64WordArray.init([
+	                new X64Word.init(0xcbbb9d5d, 0xc1059ed8), new X64Word.init(0x629a292a, 0x367cd507),
+	                new X64Word.init(0x9159015a, 0x3070dd17), new X64Word.init(0x152fecd8, 0xf70e5939),
+	                new X64Word.init(0x67332667, 0xffc00b31), new X64Word.init(0x8eb44a87, 0x68581511),
+	                new X64Word.init(0xdb0c2e0d, 0x64f98fa7), new X64Word.init(0x47b5481d, 0xbefa4fa4)
+	            ]);
+	        },
+
+	        _doFinalize: function () {
+	            var hash = SHA512._doFinalize.call(this);
+
+	            hash.sigBytes -= 16;
+
+	            return hash;
+	        }
+	    });
+
+	    /**
+	     * Shortcut function to the hasher's object interface.
+	     *
+	     * @param {WordArray|string} message The message to hash.
+	     *
+	     * @return {WordArray} The hash.
+	     *
+	     * @static
+	     *
+	     * @example
+	     *
+	     *     var hash = CryptoJS.SHA384('message');
+	     *     var hash = CryptoJS.SHA384(wordArray);
+	     */
+	    C.SHA384 = SHA512._createHelper(SHA384);
+
+	    /**
+	     * Shortcut function to the HMAC's object interface.
+	     *
+	     * @param {WordArray|string} message The message to hash.
+	     * @param {WordArray|string} key The secret key.
+	     *
+	     * @return {WordArray} The HMAC.
+	     *
+	     * @static
+	     *
+	     * @example
+	     *
+	     *     var hmac = CryptoJS.HmacSHA384(message, key);
+	     */
+	    C.HmacSHA384 = SHA512._createHmacHelper(SHA384);
+	}());
+
+
+	return CryptoJS.SHA384;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/sha512.js b/node_modules/crypto-js/sha512.js
new file mode 100644
index 0000000..d274ab0
--- /dev/null
+++ b/node_modules/crypto-js/sha512.js
@@ -0,0 +1,326 @@
+;(function (root, factory, undef) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"), require("./x64-core"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core", "./x64-core"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	(function () {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var Hasher = C_lib.Hasher;
+	    var C_x64 = C.x64;
+	    var X64Word = C_x64.Word;
+	    var X64WordArray = C_x64.WordArray;
+	    var C_algo = C.algo;
+
+	    function X64Word_create() {
+	        return X64Word.create.apply(X64Word, arguments);
+	    }
+
+	    // Constants
+	    var K = [
+	        X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd),
+	        X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc),
+	        X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb605d019),
+	        X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118),
+	        X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe),
+	        X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2),
+	        X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1),
+	        X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694),
+	        X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3),
+	        X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65),
+	        X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483),
+	        X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5),
+	        X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210),
+	        X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4),
+	        X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725),
+	        X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70),
+	        X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926),
+	        X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df),
+	        X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8),
+	        X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b),
+	        X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001),
+	        X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30),
+	        X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910),
+	        X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8),
+	        X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53),
+	        X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8),
+	        X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb),
+	        X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3),
+	        X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60),
+	        X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec),
+	        X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9),
+	        X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b),
+	        X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207),
+	        X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178),
+	        X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6),
+	        X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b),
+	        X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493),
+	        X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c),
+	        X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a),
+	        X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817)
+	    ];
+
+	    // Reusable objects
+	    var W = [];
+	    (function () {
+	        for (var i = 0; i < 80; i++) {
+	            W[i] = X64Word_create();
+	        }
+	    }());
+
+	    /**
+	     * SHA-512 hash algorithm.
+	     */
+	    var SHA512 = C_algo.SHA512 = Hasher.extend({
+	        _doReset: function () {
+	            this._hash = new X64WordArray.init([
+	                new X64Word.init(0x6a09e667, 0xf3bcc908), new X64Word.init(0xbb67ae85, 0x84caa73b),
+	                new X64Word.init(0x3c6ef372, 0xfe94f82b), new X64Word.init(0xa54ff53a, 0x5f1d36f1),
+	                new X64Word.init(0x510e527f, 0xade682d1), new X64Word.init(0x9b05688c, 0x2b3e6c1f),
+	                new X64Word.init(0x1f83d9ab, 0xfb41bd6b), new X64Word.init(0x5be0cd19, 0x137e2179)
+	            ]);
+	        },
+
+	        _doProcessBlock: function (M, offset) {
+	            // Shortcuts
+	            var H = this._hash.words;
+
+	            var H0 = H[0];
+	            var H1 = H[1];
+	            var H2 = H[2];
+	            var H3 = H[3];
+	            var H4 = H[4];
+	            var H5 = H[5];
+	            var H6 = H[6];
+	            var H7 = H[7];
+
+	            var H0h = H0.high;
+	            var H0l = H0.low;
+	            var H1h = H1.high;
+	            var H1l = H1.low;
+	            var H2h = H2.high;
+	            var H2l = H2.low;
+	            var H3h = H3.high;
+	            var H3l = H3.low;
+	            var H4h = H4.high;
+	            var H4l = H4.low;
+	            var H5h = H5.high;
+	            var H5l = H5.low;
+	            var H6h = H6.high;
+	            var H6l = H6.low;
+	            var H7h = H7.high;
+	            var H7l = H7.low;
+
+	            // Working variables
+	            var ah = H0h;
+	            var al = H0l;
+	            var bh = H1h;
+	            var bl = H1l;
+	            var ch = H2h;
+	            var cl = H2l;
+	            var dh = H3h;
+	            var dl = H3l;
+	            var eh = H4h;
+	            var el = H4l;
+	            var fh = H5h;
+	            var fl = H5l;
+	            var gh = H6h;
+	            var gl = H6l;
+	            var hh = H7h;
+	            var hl = H7l;
+
+	            // Rounds
+	            for (var i = 0; i < 80; i++) {
+	                var Wil;
+	                var Wih;
+
+	                // Shortcut
+	                var Wi = W[i];
+
+	                // Extend message
+	                if (i < 16) {
+	                    Wih = Wi.high = M[offset + i * 2]     | 0;
+	                    Wil = Wi.low  = M[offset + i * 2 + 1] | 0;
+	                } else {
+	                    // Gamma0
+	                    var gamma0x  = W[i - 15];
+	                    var gamma0xh = gamma0x.high;
+	                    var gamma0xl = gamma0x.low;
+	                    var gamma0h  = ((gamma0xh >>> 1) | (gamma0xl << 31)) ^ ((gamma0xh >>> 8) | (gamma0xl << 24)) ^ (gamma0xh >>> 7);
+	                    var gamma0l  = ((gamma0xl >>> 1) | (gamma0xh << 31)) ^ ((gamma0xl >>> 8) | (gamma0xh << 24)) ^ ((gamma0xl >>> 7) | (gamma0xh << 25));
+
+	                    // Gamma1
+	                    var gamma1x  = W[i - 2];
+	                    var gamma1xh = gamma1x.high;
+	                    var gamma1xl = gamma1x.low;
+	                    var gamma1h  = ((gamma1xh >>> 19) | (gamma1xl << 13)) ^ ((gamma1xh << 3) | (gamma1xl >>> 29)) ^ (gamma1xh >>> 6);
+	                    var gamma1l  = ((gamma1xl >>> 19) | (gamma1xh << 13)) ^ ((gamma1xl << 3) | (gamma1xh >>> 29)) ^ ((gamma1xl >>> 6) | (gamma1xh << 26));
+
+	                    // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]
+	                    var Wi7  = W[i - 7];
+	                    var Wi7h = Wi7.high;
+	                    var Wi7l = Wi7.low;
+
+	                    var Wi16  = W[i - 16];
+	                    var Wi16h = Wi16.high;
+	                    var Wi16l = Wi16.low;
+
+	                    Wil = gamma0l + Wi7l;
+	                    Wih = gamma0h + Wi7h + ((Wil >>> 0) < (gamma0l >>> 0) ? 1 : 0);
+	                    Wil = Wil + gamma1l;
+	                    Wih = Wih + gamma1h + ((Wil >>> 0) < (gamma1l >>> 0) ? 1 : 0);
+	                    Wil = Wil + Wi16l;
+	                    Wih = Wih + Wi16h + ((Wil >>> 0) < (Wi16l >>> 0) ? 1 : 0);
+
+	                    Wi.high = Wih;
+	                    Wi.low  = Wil;
+	                }
+
+	                var chh  = (eh & fh) ^ (~eh & gh);
+	                var chl  = (el & fl) ^ (~el & gl);
+	                var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);
+	                var majl = (al & bl) ^ (al & cl) ^ (bl & cl);
+
+	                var sigma0h = ((ah >>> 28) | (al << 4))  ^ ((ah << 30)  | (al >>> 2)) ^ ((ah << 25) | (al >>> 7));
+	                var sigma0l = ((al >>> 28) | (ah << 4))  ^ ((al << 30)  | (ah >>> 2)) ^ ((al << 25) | (ah >>> 7));
+	                var sigma1h = ((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9));
+	                var sigma1l = ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9));
+
+	                // t1 = h + sigma1 + ch + K[i] + W[i]
+	                var Ki  = K[i];
+	                var Kih = Ki.high;
+	                var Kil = Ki.low;
+
+	                var t1l = hl + sigma1l;
+	                var t1h = hh + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0);
+	                var t1l = t1l + chl;
+	                var t1h = t1h + chh + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0);
+	                var t1l = t1l + Kil;
+	                var t1h = t1h + Kih + ((t1l >>> 0) < (Kil >>> 0) ? 1 : 0);
+	                var t1l = t1l + Wil;
+	                var t1h = t1h + Wih + ((t1l >>> 0) < (Wil >>> 0) ? 1 : 0);
+
+	                // t2 = sigma0 + maj
+	                var t2l = sigma0l + majl;
+	                var t2h = sigma0h + majh + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0);
+
+	                // Update working variables
+	                hh = gh;
+	                hl = gl;
+	                gh = fh;
+	                gl = fl;
+	                fh = eh;
+	                fl = el;
+	                el = (dl + t1l) | 0;
+	                eh = (dh + t1h + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0;
+	                dh = ch;
+	                dl = cl;
+	                ch = bh;
+	                cl = bl;
+	                bh = ah;
+	                bl = al;
+	                al = (t1l + t2l) | 0;
+	                ah = (t1h + t2h + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0;
+	            }
+
+	            // Intermediate hash value
+	            H0l = H0.low  = (H0l + al);
+	            H0.high = (H0h + ah + ((H0l >>> 0) < (al >>> 0) ? 1 : 0));
+	            H1l = H1.low  = (H1l + bl);
+	            H1.high = (H1h + bh + ((H1l >>> 0) < (bl >>> 0) ? 1 : 0));
+	            H2l = H2.low  = (H2l + cl);
+	            H2.high = (H2h + ch + ((H2l >>> 0) < (cl >>> 0) ? 1 : 0));
+	            H3l = H3.low  = (H3l + dl);
+	            H3.high = (H3h + dh + ((H3l >>> 0) < (dl >>> 0) ? 1 : 0));
+	            H4l = H4.low  = (H4l + el);
+	            H4.high = (H4h + eh + ((H4l >>> 0) < (el >>> 0) ? 1 : 0));
+	            H5l = H5.low  = (H5l + fl);
+	            H5.high = (H5h + fh + ((H5l >>> 0) < (fl >>> 0) ? 1 : 0));
+	            H6l = H6.low  = (H6l + gl);
+	            H6.high = (H6h + gh + ((H6l >>> 0) < (gl >>> 0) ? 1 : 0));
+	            H7l = H7.low  = (H7l + hl);
+	            H7.high = (H7h + hh + ((H7l >>> 0) < (hl >>> 0) ? 1 : 0));
+	        },
+
+	        _doFinalize: function () {
+	            // Shortcuts
+	            var data = this._data;
+	            var dataWords = data.words;
+
+	            var nBitsTotal = this._nDataBytes * 8;
+	            var nBitsLeft = data.sigBytes * 8;
+
+	            // Add padding
+	            dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
+	            dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 30] = Math.floor(nBitsTotal / 0x100000000);
+	            dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 31] = nBitsTotal;
+	            data.sigBytes = dataWords.length * 4;
+
+	            // Hash final blocks
+	            this._process();
+
+	            // Convert hash to 32-bit word array before returning
+	            var hash = this._hash.toX32();
+
+	            // Return final computed hash
+	            return hash;
+	        },
+
+	        clone: function () {
+	            var clone = Hasher.clone.call(this);
+	            clone._hash = this._hash.clone();
+
+	            return clone;
+	        },
+
+	        blockSize: 1024/32
+	    });
+
+	    /**
+	     * Shortcut function to the hasher's object interface.
+	     *
+	     * @param {WordArray|string} message The message to hash.
+	     *
+	     * @return {WordArray} The hash.
+	     *
+	     * @static
+	     *
+	     * @example
+	     *
+	     *     var hash = CryptoJS.SHA512('message');
+	     *     var hash = CryptoJS.SHA512(wordArray);
+	     */
+	    C.SHA512 = Hasher._createHelper(SHA512);
+
+	    /**
+	     * Shortcut function to the HMAC's object interface.
+	     *
+	     * @param {WordArray|string} message The message to hash.
+	     * @param {WordArray|string} key The secret key.
+	     *
+	     * @return {WordArray} The HMAC.
+	     *
+	     * @static
+	     *
+	     * @example
+	     *
+	     *     var hmac = CryptoJS.HmacSHA512(message, key);
+	     */
+	    C.HmacSHA512 = Hasher._createHmacHelper(SHA512);
+	}());
+
+
+	return CryptoJS.SHA512;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/tripledes.js b/node_modules/crypto-js/tripledes.js
new file mode 100644
index 0000000..1a92477
--- /dev/null
+++ b/node_modules/crypto-js/tripledes.js
@@ -0,0 +1,779 @@
+;(function (root, factory, undef) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"), require("./enc-base64"), require("./md5"), require("./evpkdf"), require("./cipher-core"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	(function () {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var WordArray = C_lib.WordArray;
+	    var BlockCipher = C_lib.BlockCipher;
+	    var C_algo = C.algo;
+
+	    // Permuted Choice 1 constants
+	    var PC1 = [
+	        57, 49, 41, 33, 25, 17, 9,  1,
+	        58, 50, 42, 34, 26, 18, 10, 2,
+	        59, 51, 43, 35, 27, 19, 11, 3,
+	        60, 52, 44, 36, 63, 55, 47, 39,
+	        31, 23, 15, 7,  62, 54, 46, 38,
+	        30, 22, 14, 6,  61, 53, 45, 37,
+	        29, 21, 13, 5,  28, 20, 12, 4
+	    ];
+
+	    // Permuted Choice 2 constants
+	    var PC2 = [
+	        14, 17, 11, 24, 1,  5,
+	        3,  28, 15, 6,  21, 10,
+	        23, 19, 12, 4,  26, 8,
+	        16, 7,  27, 20, 13, 2,
+	        41, 52, 31, 37, 47, 55,
+	        30, 40, 51, 45, 33, 48,
+	        44, 49, 39, 56, 34, 53,
+	        46, 42, 50, 36, 29, 32
+	    ];
+
+	    // Cumulative bit shift constants
+	    var BIT_SHIFTS = [1,  2,  4,  6,  8,  10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];
+
+	    // SBOXes and round permutation constants
+	    var SBOX_P = [
+	        {
+	            0x0: 0x808200,
+	            0x10000000: 0x8000,
+	            0x20000000: 0x808002,
+	            0x30000000: 0x2,
+	            0x40000000: 0x200,
+	            0x50000000: 0x808202,
+	            0x60000000: 0x800202,
+	            0x70000000: 0x800000,
+	            0x80000000: 0x202,
+	            0x90000000: 0x800200,
+	            0xa0000000: 0x8200,
+	            0xb0000000: 0x808000,
+	            0xc0000000: 0x8002,
+	            0xd0000000: 0x800002,
+	            0xe0000000: 0x0,
+	            0xf0000000: 0x8202,
+	            0x8000000: 0x0,
+	            0x18000000: 0x808202,
+	            0x28000000: 0x8202,
+	            0x38000000: 0x8000,
+	            0x48000000: 0x808200,
+	            0x58000000: 0x200,
+	            0x68000000: 0x808002,
+	            0x78000000: 0x2,
+	            0x88000000: 0x800200,
+	            0x98000000: 0x8200,
+	            0xa8000000: 0x808000,
+	            0xb8000000: 0x800202,
+	            0xc8000000: 0x800002,
+	            0xd8000000: 0x8002,
+	            0xe8000000: 0x202,
+	            0xf8000000: 0x800000,
+	            0x1: 0x8000,
+	            0x10000001: 0x2,
+	            0x20000001: 0x808200,
+	            0x30000001: 0x800000,
+	            0x40000001: 0x808002,
+	            0x50000001: 0x8200,
+	            0x60000001: 0x200,
+	            0x70000001: 0x800202,
+	            0x80000001: 0x808202,
+	            0x90000001: 0x808000,
+	            0xa0000001: 0x800002,
+	            0xb0000001: 0x8202,
+	            0xc0000001: 0x202,
+	            0xd0000001: 0x800200,
+	            0xe0000001: 0x8002,
+	            0xf0000001: 0x0,
+	            0x8000001: 0x808202,
+	            0x18000001: 0x808000,
+	            0x28000001: 0x800000,
+	            0x38000001: 0x200,
+	            0x48000001: 0x8000,
+	            0x58000001: 0x800002,
+	            0x68000001: 0x2,
+	            0x78000001: 0x8202,
+	            0x88000001: 0x8002,
+	            0x98000001: 0x800202,
+	            0xa8000001: 0x202,
+	            0xb8000001: 0x808200,
+	            0xc8000001: 0x800200,
+	            0xd8000001: 0x0,
+	            0xe8000001: 0x8200,
+	            0xf8000001: 0x808002
+	        },
+	        {
+	            0x0: 0x40084010,
+	            0x1000000: 0x4000,
+	            0x2000000: 0x80000,
+	            0x3000000: 0x40080010,
+	            0x4000000: 0x40000010,
+	            0x5000000: 0x40084000,
+	            0x6000000: 0x40004000,
+	            0x7000000: 0x10,
+	            0x8000000: 0x84000,
+	            0x9000000: 0x40004010,
+	            0xa000000: 0x40000000,
+	            0xb000000: 0x84010,
+	            0xc000000: 0x80010,
+	            0xd000000: 0x0,
+	            0xe000000: 0x4010,
+	            0xf000000: 0x40080000,
+	            0x800000: 0x40004000,
+	            0x1800000: 0x84010,
+	            0x2800000: 0x10,
+	            0x3800000: 0x40004010,
+	            0x4800000: 0x40084010,
+	            0x5800000: 0x40000000,
+	            0x6800000: 0x80000,
+	            0x7800000: 0x40080010,
+	            0x8800000: 0x80010,
+	            0x9800000: 0x0,
+	            0xa800000: 0x4000,
+	            0xb800000: 0x40080000,
+	            0xc800000: 0x40000010,
+	            0xd800000: 0x84000,
+	            0xe800000: 0x40084000,
+	            0xf800000: 0x4010,
+	            0x10000000: 0x0,
+	            0x11000000: 0x40080010,
+	            0x12000000: 0x40004010,
+	            0x13000000: 0x40084000,
+	            0x14000000: 0x40080000,
+	            0x15000000: 0x10,
+	            0x16000000: 0x84010,
+	            0x17000000: 0x4000,
+	            0x18000000: 0x4010,
+	            0x19000000: 0x80000,
+	            0x1a000000: 0x80010,
+	            0x1b000000: 0x40000010,
+	            0x1c000000: 0x84000,
+	            0x1d000000: 0x40004000,
+	            0x1e000000: 0x40000000,
+	            0x1f000000: 0x40084010,
+	            0x10800000: 0x84010,
+	            0x11800000: 0x80000,
+	            0x12800000: 0x40080000,
+	            0x13800000: 0x4000,
+	            0x14800000: 0x40004000,
+	            0x15800000: 0x40084010,
+	            0x16800000: 0x10,
+	            0x17800000: 0x40000000,
+	            0x18800000: 0x40084000,
+	            0x19800000: 0x40000010,
+	            0x1a800000: 0x40004010,
+	            0x1b800000: 0x80010,
+	            0x1c800000: 0x0,
+	            0x1d800000: 0x4010,
+	            0x1e800000: 0x40080010,
+	            0x1f800000: 0x84000
+	        },
+	        {
+	            0x0: 0x104,
+	            0x100000: 0x0,
+	            0x200000: 0x4000100,
+	            0x300000: 0x10104,
+	            0x400000: 0x10004,
+	            0x500000: 0x4000004,
+	            0x600000: 0x4010104,
+	            0x700000: 0x4010000,
+	            0x800000: 0x4000000,
+	            0x900000: 0x4010100,
+	            0xa00000: 0x10100,
+	            0xb00000: 0x4010004,
+	            0xc00000: 0x4000104,
+	            0xd00000: 0x10000,
+	            0xe00000: 0x4,
+	            0xf00000: 0x100,
+	            0x80000: 0x4010100,
+	            0x180000: 0x4010004,
+	            0x280000: 0x0,
+	            0x380000: 0x4000100,
+	            0x480000: 0x4000004,
+	            0x580000: 0x10000,
+	            0x680000: 0x10004,
+	            0x780000: 0x104,
+	            0x880000: 0x4,
+	            0x980000: 0x100,
+	            0xa80000: 0x4010000,
+	            0xb80000: 0x10104,
+	            0xc80000: 0x10100,
+	            0xd80000: 0x4000104,
+	            0xe80000: 0x4010104,
+	            0xf80000: 0x4000000,
+	            0x1000000: 0x4010100,
+	            0x1100000: 0x10004,
+	            0x1200000: 0x10000,
+	            0x1300000: 0x4000100,
+	            0x1400000: 0x100,
+	            0x1500000: 0x4010104,
+	            0x1600000: 0x4000004,
+	            0x1700000: 0x0,
+	            0x1800000: 0x4000104,
+	            0x1900000: 0x4000000,
+	            0x1a00000: 0x4,
+	            0x1b00000: 0x10100,
+	            0x1c00000: 0x4010000,
+	            0x1d00000: 0x104,
+	            0x1e00000: 0x10104,
+	            0x1f00000: 0x4010004,
+	            0x1080000: 0x4000000,
+	            0x1180000: 0x104,
+	            0x1280000: 0x4010100,
+	            0x1380000: 0x0,
+	            0x1480000: 0x10004,
+	            0x1580000: 0x4000100,
+	            0x1680000: 0x100,
+	            0x1780000: 0x4010004,
+	            0x1880000: 0x10000,
+	            0x1980000: 0x4010104,
+	            0x1a80000: 0x10104,
+	            0x1b80000: 0x4000004,
+	            0x1c80000: 0x4000104,
+	            0x1d80000: 0x4010000,
+	            0x1e80000: 0x4,
+	            0x1f80000: 0x10100
+	        },
+	        {
+	            0x0: 0x80401000,
+	            0x10000: 0x80001040,
+	            0x20000: 0x401040,
+	            0x30000: 0x80400000,
+	            0x40000: 0x0,
+	            0x50000: 0x401000,
+	            0x60000: 0x80000040,
+	            0x70000: 0x400040,
+	            0x80000: 0x80000000,
+	            0x90000: 0x400000,
+	            0xa0000: 0x40,
+	            0xb0000: 0x80001000,
+	            0xc0000: 0x80400040,
+	            0xd0000: 0x1040,
+	            0xe0000: 0x1000,
+	            0xf0000: 0x80401040,
+	            0x8000: 0x80001040,
+	            0x18000: 0x40,
+	            0x28000: 0x80400040,
+	            0x38000: 0x80001000,
+	            0x48000: 0x401000,
+	            0x58000: 0x80401040,
+	            0x68000: 0x0,
+	            0x78000: 0x80400000,
+	            0x88000: 0x1000,
+	            0x98000: 0x80401000,
+	            0xa8000: 0x400000,
+	            0xb8000: 0x1040,
+	            0xc8000: 0x80000000,
+	            0xd8000: 0x400040,
+	            0xe8000: 0x401040,
+	            0xf8000: 0x80000040,
+	            0x100000: 0x400040,
+	            0x110000: 0x401000,
+	            0x120000: 0x80000040,
+	            0x130000: 0x0,
+	            0x140000: 0x1040,
+	            0x150000: 0x80400040,
+	            0x160000: 0x80401000,
+	            0x170000: 0x80001040,
+	            0x180000: 0x80401040,
+	            0x190000: 0x80000000,
+	            0x1a0000: 0x80400000,
+	            0x1b0000: 0x401040,
+	            0x1c0000: 0x80001000,
+	            0x1d0000: 0x400000,
+	            0x1e0000: 0x40,
+	            0x1f0000: 0x1000,
+	            0x108000: 0x80400000,
+	            0x118000: 0x80401040,
+	            0x128000: 0x0,
+	            0x138000: 0x401000,
+	            0x148000: 0x400040,
+	            0x158000: 0x80000000,
+	            0x168000: 0x80001040,
+	            0x178000: 0x40,
+	            0x188000: 0x80000040,
+	            0x198000: 0x1000,
+	            0x1a8000: 0x80001000,
+	            0x1b8000: 0x80400040,
+	            0x1c8000: 0x1040,
+	            0x1d8000: 0x80401000,
+	            0x1e8000: 0x400000,
+	            0x1f8000: 0x401040
+	        },
+	        {
+	            0x0: 0x80,
+	            0x1000: 0x1040000,
+	            0x2000: 0x40000,
+	            0x3000: 0x20000000,
+	            0x4000: 0x20040080,
+	            0x5000: 0x1000080,
+	            0x6000: 0x21000080,
+	            0x7000: 0x40080,
+	            0x8000: 0x1000000,
+	            0x9000: 0x20040000,
+	            0xa000: 0x20000080,
+	            0xb000: 0x21040080,
+	            0xc000: 0x21040000,
+	            0xd000: 0x0,
+	            0xe000: 0x1040080,
+	            0xf000: 0x21000000,
+	            0x800: 0x1040080,
+	            0x1800: 0x21000080,
+	            0x2800: 0x80,
+	            0x3800: 0x1040000,
+	            0x4800: 0x40000,
+	            0x5800: 0x20040080,
+	            0x6800: 0x21040000,
+	            0x7800: 0x20000000,
+	            0x8800: 0x20040000,
+	            0x9800: 0x0,
+	            0xa800: 0x21040080,
+	            0xb800: 0x1000080,
+	            0xc800: 0x20000080,
+	            0xd800: 0x21000000,
+	            0xe800: 0x1000000,
+	            0xf800: 0x40080,
+	            0x10000: 0x40000,
+	            0x11000: 0x80,
+	            0x12000: 0x20000000,
+	            0x13000: 0x21000080,
+	            0x14000: 0x1000080,
+	            0x15000: 0x21040000,
+	            0x16000: 0x20040080,
+	            0x17000: 0x1000000,
+	            0x18000: 0x21040080,
+	            0x19000: 0x21000000,
+	            0x1a000: 0x1040000,
+	            0x1b000: 0x20040000,
+	            0x1c000: 0x40080,
+	            0x1d000: 0x20000080,
+	            0x1e000: 0x0,
+	            0x1f000: 0x1040080,
+	            0x10800: 0x21000080,
+	            0x11800: 0x1000000,
+	            0x12800: 0x1040000,
+	            0x13800: 0x20040080,
+	            0x14800: 0x20000000,
+	            0x15800: 0x1040080,
+	            0x16800: 0x80,
+	            0x17800: 0x21040000,
+	            0x18800: 0x40080,
+	            0x19800: 0x21040080,
+	            0x1a800: 0x0,
+	            0x1b800: 0x21000000,
+	            0x1c800: 0x1000080,
+	            0x1d800: 0x40000,
+	            0x1e800: 0x20040000,
+	            0x1f800: 0x20000080
+	        },
+	        {
+	            0x0: 0x10000008,
+	            0x100: 0x2000,
+	            0x200: 0x10200000,
+	            0x300: 0x10202008,
+	            0x400: 0x10002000,
+	            0x500: 0x200000,
+	            0x600: 0x200008,
+	            0x700: 0x10000000,
+	            0x800: 0x0,
+	            0x900: 0x10002008,
+	            0xa00: 0x202000,
+	            0xb00: 0x8,
+	            0xc00: 0x10200008,
+	            0xd00: 0x202008,
+	            0xe00: 0x2008,
+	            0xf00: 0x10202000,
+	            0x80: 0x10200000,
+	            0x180: 0x10202008,
+	            0x280: 0x8,
+	            0x380: 0x200000,
+	            0x480: 0x202008,
+	            0x580: 0x10000008,
+	            0x680: 0x10002000,
+	            0x780: 0x2008,
+	            0x880: 0x200008,
+	            0x980: 0x2000,
+	            0xa80: 0x10002008,
+	            0xb80: 0x10200008,
+	            0xc80: 0x0,
+	            0xd80: 0x10202000,
+	            0xe80: 0x202000,
+	            0xf80: 0x10000000,
+	            0x1000: 0x10002000,
+	            0x1100: 0x10200008,
+	            0x1200: 0x10202008,
+	            0x1300: 0x2008,
+	            0x1400: 0x200000,
+	            0x1500: 0x10000000,
+	            0x1600: 0x10000008,
+	            0x1700: 0x202000,
+	            0x1800: 0x202008,
+	            0x1900: 0x0,
+	            0x1a00: 0x8,
+	            0x1b00: 0x10200000,
+	            0x1c00: 0x2000,
+	            0x1d00: 0x10002008,
+	            0x1e00: 0x10202000,
+	            0x1f00: 0x200008,
+	            0x1080: 0x8,
+	            0x1180: 0x202000,
+	            0x1280: 0x200000,
+	            0x1380: 0x10000008,
+	            0x1480: 0x10002000,
+	            0x1580: 0x2008,
+	            0x1680: 0x10202008,
+	            0x1780: 0x10200000,
+	            0x1880: 0x10202000,
+	            0x1980: 0x10200008,
+	            0x1a80: 0x2000,
+	            0x1b80: 0x202008,
+	            0x1c80: 0x200008,
+	            0x1d80: 0x0,
+	            0x1e80: 0x10000000,
+	            0x1f80: 0x10002008
+	        },
+	        {
+	            0x0: 0x100000,
+	            0x10: 0x2000401,
+	            0x20: 0x400,
+	            0x30: 0x100401,
+	            0x40: 0x2100401,
+	            0x50: 0x0,
+	            0x60: 0x1,
+	            0x70: 0x2100001,
+	            0x80: 0x2000400,
+	            0x90: 0x100001,
+	            0xa0: 0x2000001,
+	            0xb0: 0x2100400,
+	            0xc0: 0x2100000,
+	            0xd0: 0x401,
+	            0xe0: 0x100400,
+	            0xf0: 0x2000000,
+	            0x8: 0x2100001,
+	            0x18: 0x0,
+	            0x28: 0x2000401,
+	            0x38: 0x2100400,
+	            0x48: 0x100000,
+	            0x58: 0x2000001,
+	            0x68: 0x2000000,
+	            0x78: 0x401,
+	            0x88: 0x100401,
+	            0x98: 0x2000400,
+	            0xa8: 0x2100000,
+	            0xb8: 0x100001,
+	            0xc8: 0x400,
+	            0xd8: 0x2100401,
+	            0xe8: 0x1,
+	            0xf8: 0x100400,
+	            0x100: 0x2000000,
+	            0x110: 0x100000,
+	            0x120: 0x2000401,
+	            0x130: 0x2100001,
+	            0x140: 0x100001,
+	            0x150: 0x2000400,
+	            0x160: 0x2100400,
+	            0x170: 0x100401,
+	            0x180: 0x401,
+	            0x190: 0x2100401,
+	            0x1a0: 0x100400,
+	            0x1b0: 0x1,
+	            0x1c0: 0x0,
+	            0x1d0: 0x2100000,
+	            0x1e0: 0x2000001,
+	            0x1f0: 0x400,
+	            0x108: 0x100400,
+	            0x118: 0x2000401,
+	            0x128: 0x2100001,
+	            0x138: 0x1,
+	            0x148: 0x2000000,
+	            0x158: 0x100000,
+	            0x168: 0x401,
+	            0x178: 0x2100400,
+	            0x188: 0x2000001,
+	            0x198: 0x2100000,
+	            0x1a8: 0x0,
+	            0x1b8: 0x2100401,
+	            0x1c8: 0x100401,
+	            0x1d8: 0x400,
+	            0x1e8: 0x2000400,
+	            0x1f8: 0x100001
+	        },
+	        {
+	            0x0: 0x8000820,
+	            0x1: 0x20000,
+	            0x2: 0x8000000,
+	            0x3: 0x20,
+	            0x4: 0x20020,
+	            0x5: 0x8020820,
+	            0x6: 0x8020800,
+	            0x7: 0x800,
+	            0x8: 0x8020000,
+	            0x9: 0x8000800,
+	            0xa: 0x20800,
+	            0xb: 0x8020020,
+	            0xc: 0x820,
+	            0xd: 0x0,
+	            0xe: 0x8000020,
+	            0xf: 0x20820,
+	            0x80000000: 0x800,
+	            0x80000001: 0x8020820,
+	            0x80000002: 0x8000820,
+	            0x80000003: 0x8000000,
+	            0x80000004: 0x8020000,
+	            0x80000005: 0x20800,
+	            0x80000006: 0x20820,
+	            0x80000007: 0x20,
+	            0x80000008: 0x8000020,
+	            0x80000009: 0x820,
+	            0x8000000a: 0x20020,
+	            0x8000000b: 0x8020800,
+	            0x8000000c: 0x0,
+	            0x8000000d: 0x8020020,
+	            0x8000000e: 0x8000800,
+	            0x8000000f: 0x20000,
+	            0x10: 0x20820,
+	            0x11: 0x8020800,
+	            0x12: 0x20,
+	            0x13: 0x800,
+	            0x14: 0x8000800,
+	            0x15: 0x8000020,
+	            0x16: 0x8020020,
+	            0x17: 0x20000,
+	            0x18: 0x0,
+	            0x19: 0x20020,
+	            0x1a: 0x8020000,
+	            0x1b: 0x8000820,
+	            0x1c: 0x8020820,
+	            0x1d: 0x20800,
+	            0x1e: 0x820,
+	            0x1f: 0x8000000,
+	            0x80000010: 0x20000,
+	            0x80000011: 0x800,
+	            0x80000012: 0x8020020,
+	            0x80000013: 0x20820,
+	            0x80000014: 0x20,
+	            0x80000015: 0x8020000,
+	            0x80000016: 0x8000000,
+	            0x80000017: 0x8000820,
+	            0x80000018: 0x8020820,
+	            0x80000019: 0x8000020,
+	            0x8000001a: 0x8000800,
+	            0x8000001b: 0x0,
+	            0x8000001c: 0x20800,
+	            0x8000001d: 0x820,
+	            0x8000001e: 0x20020,
+	            0x8000001f: 0x8020800
+	        }
+	    ];
+
+	    // Masks that select the SBOX input
+	    var SBOX_MASK = [
+	        0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000,
+	        0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f
+	    ];
+
+	    /**
+	     * DES block cipher algorithm.
+	     */
+	    var DES = C_algo.DES = BlockCipher.extend({
+	        _doReset: function () {
+	            // Shortcuts
+	            var key = this._key;
+	            var keyWords = key.words;
+
+	            // Select 56 bits according to PC1
+	            var keyBits = [];
+	            for (var i = 0; i < 56; i++) {
+	                var keyBitPos = PC1[i] - 1;
+	                keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - keyBitPos % 32)) & 1;
+	            }
+
+	            // Assemble 16 subkeys
+	            var subKeys = this._subKeys = [];
+	            for (var nSubKey = 0; nSubKey < 16; nSubKey++) {
+	                // Create subkey
+	                var subKey = subKeys[nSubKey] = [];
+
+	                // Shortcut
+	                var bitShift = BIT_SHIFTS[nSubKey];
+
+	                // Select 48 bits according to PC2
+	                for (var i = 0; i < 24; i++) {
+	                    // Select from the left 28 key bits
+	                    subKey[(i / 6) | 0] |= keyBits[((PC2[i] - 1) + bitShift) % 28] << (31 - i % 6);
+
+	                    // Select from the right 28 key bits
+	                    subKey[4 + ((i / 6) | 0)] |= keyBits[28 + (((PC2[i + 24] - 1) + bitShift) % 28)] << (31 - i % 6);
+	                }
+
+	                // Since each subkey is applied to an expanded 32-bit input,
+	                // the subkey can be broken into 8 values scaled to 32-bits,
+	                // which allows the key to be used without expansion
+	                subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31);
+	                for (var i = 1; i < 7; i++) {
+	                    subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3);
+	                }
+	                subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27);
+	            }
+
+	            // Compute inverse subkeys
+	            var invSubKeys = this._invSubKeys = [];
+	            for (var i = 0; i < 16; i++) {
+	                invSubKeys[i] = subKeys[15 - i];
+	            }
+	        },
+
+	        encryptBlock: function (M, offset) {
+	            this._doCryptBlock(M, offset, this._subKeys);
+	        },
+
+	        decryptBlock: function (M, offset) {
+	            this._doCryptBlock(M, offset, this._invSubKeys);
+	        },
+
+	        _doCryptBlock: function (M, offset, subKeys) {
+	            // Get input
+	            this._lBlock = M[offset];
+	            this._rBlock = M[offset + 1];
+
+	            // Initial permutation
+	            exchangeLR.call(this, 4,  0x0f0f0f0f);
+	            exchangeLR.call(this, 16, 0x0000ffff);
+	            exchangeRL.call(this, 2,  0x33333333);
+	            exchangeRL.call(this, 8,  0x00ff00ff);
+	            exchangeLR.call(this, 1,  0x55555555);
+
+	            // Rounds
+	            for (var round = 0; round < 16; round++) {
+	                // Shortcuts
+	                var subKey = subKeys[round];
+	                var lBlock = this._lBlock;
+	                var rBlock = this._rBlock;
+
+	                // Feistel function
+	                var f = 0;
+	                for (var i = 0; i < 8; i++) {
+	                    f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0];
+	                }
+	                this._lBlock = rBlock;
+	                this._rBlock = lBlock ^ f;
+	            }
+
+	            // Undo swap from last round
+	            var t = this._lBlock;
+	            this._lBlock = this._rBlock;
+	            this._rBlock = t;
+
+	            // Final permutation
+	            exchangeLR.call(this, 1,  0x55555555);
+	            exchangeRL.call(this, 8,  0x00ff00ff);
+	            exchangeRL.call(this, 2,  0x33333333);
+	            exchangeLR.call(this, 16, 0x0000ffff);
+	            exchangeLR.call(this, 4,  0x0f0f0f0f);
+
+	            // Set output
+	            M[offset] = this._lBlock;
+	            M[offset + 1] = this._rBlock;
+	        },
+
+	        keySize: 64/32,
+
+	        ivSize: 64/32,
+
+	        blockSize: 64/32
+	    });
+
+	    // Swap bits across the left and right words
+	    function exchangeLR(offset, mask) {
+	        var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask;
+	        this._rBlock ^= t;
+	        this._lBlock ^= t << offset;
+	    }
+
+	    function exchangeRL(offset, mask) {
+	        var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask;
+	        this._lBlock ^= t;
+	        this._rBlock ^= t << offset;
+	    }
+
+	    /**
+	     * Shortcut functions to the cipher's object interface.
+	     *
+	     * @example
+	     *
+	     *     var ciphertext = CryptoJS.DES.encrypt(message, key, cfg);
+	     *     var plaintext  = CryptoJS.DES.decrypt(ciphertext, key, cfg);
+	     */
+	    C.DES = BlockCipher._createHelper(DES);
+
+	    /**
+	     * Triple-DES block cipher algorithm.
+	     */
+	    var TripleDES = C_algo.TripleDES = BlockCipher.extend({
+	        _doReset: function () {
+	            // Shortcuts
+	            var key = this._key;
+	            var keyWords = key.words;
+	            // Make sure the key length is valid (64, 128 or >= 192 bit)
+	            if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) {
+	                throw new Error('Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.');
+	            }
+
+	            // Extend the key according to the keying options defined in 3DES standard
+	            var key1 = keyWords.slice(0, 2);
+	            var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4);
+	            var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6);
+
+	            // Create DES instances
+	            this._des1 = DES.createEncryptor(WordArray.create(key1));
+	            this._des2 = DES.createEncryptor(WordArray.create(key2));
+	            this._des3 = DES.createEncryptor(WordArray.create(key3));
+	        },
+
+	        encryptBlock: function (M, offset) {
+	            this._des1.encryptBlock(M, offset);
+	            this._des2.decryptBlock(M, offset);
+	            this._des3.encryptBlock(M, offset);
+	        },
+
+	        decryptBlock: function (M, offset) {
+	            this._des3.decryptBlock(M, offset);
+	            this._des2.encryptBlock(M, offset);
+	            this._des1.decryptBlock(M, offset);
+	        },
+
+	        keySize: 192/32,
+
+	        ivSize: 64/32,
+
+	        blockSize: 64/32
+	    });
+
+	    /**
+	     * Shortcut functions to the cipher's object interface.
+	     *
+	     * @example
+	     *
+	     *     var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg);
+	     *     var plaintext  = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg);
+	     */
+	    C.TripleDES = BlockCipher._createHelper(TripleDES);
+	}());
+
+
+	return CryptoJS.TripleDES;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/x64-core.js b/node_modules/crypto-js/x64-core.js
new file mode 100644
index 0000000..57dcc14
--- /dev/null
+++ b/node_modules/crypto-js/x64-core.js
@@ -0,0 +1,304 @@
+;(function (root, factory) {
+	if (typeof exports === "object") {
+		// CommonJS
+		module.exports = exports = factory(require("./core"));
+	}
+	else if (typeof define === "function" && define.amd) {
+		// AMD
+		define(["./core"], factory);
+	}
+	else {
+		// Global (browser)
+		factory(root.CryptoJS);
+	}
+}(this, function (CryptoJS) {
+
+	(function (undefined) {
+	    // Shortcuts
+	    var C = CryptoJS;
+	    var C_lib = C.lib;
+	    var Base = C_lib.Base;
+	    var X32WordArray = C_lib.WordArray;
+
+	    /**
+	     * x64 namespace.
+	     */
+	    var C_x64 = C.x64 = {};
+
+	    /**
+	     * A 64-bit word.
+	     */
+	    var X64Word = C_x64.Word = Base.extend({
+	        /**
+	         * Initializes a newly created 64-bit word.
+	         *
+	         * @param {number} high The high 32 bits.
+	         * @param {number} low The low 32 bits.
+	         *
+	         * @example
+	         *
+	         *     var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607);
+	         */
+	        init: function (high, low) {
+	            this.high = high;
+	            this.low = low;
+	        }
+
+	        /**
+	         * Bitwise NOTs this word.
+	         *
+	         * @return {X64Word} A new x64-Word object after negating.
+	         *
+	         * @example
+	         *
+	         *     var negated = x64Word.not();
+	         */
+	        // not: function () {
+	            // var high = ~this.high;
+	            // var low = ~this.low;
+
+	            // return X64Word.create(high, low);
+	        // },
+
+	        /**
+	         * Bitwise ANDs this word with the passed word.
+	         *
+	         * @param {X64Word} word The x64-Word to AND with this word.
+	         *
+	         * @return {X64Word} A new x64-Word object after ANDing.
+	         *
+	         * @example
+	         *
+	         *     var anded = x64Word.and(anotherX64Word);
+	         */
+	        // and: function (word) {
+	            // var high = this.high & word.high;
+	            // var low = this.low & word.low;
+
+	            // return X64Word.create(high, low);
+	        // },
+
+	        /**
+	         * Bitwise ORs this word with the passed word.
+	         *
+	         * @param {X64Word} word The x64-Word to OR with this word.
+	         *
+	         * @return {X64Word} A new x64-Word object after ORing.
+	         *
+	         * @example
+	         *
+	         *     var ored = x64Word.or(anotherX64Word);
+	         */
+	        // or: function (word) {
+	            // var high = this.high | word.high;
+	            // var low = this.low | word.low;
+
+	            // return X64Word.create(high, low);
+	        // },
+
+	        /**
+	         * Bitwise XORs this word with the passed word.
+	         *
+	         * @param {X64Word} word The x64-Word to XOR with this word.
+	         *
+	         * @return {X64Word} A new x64-Word object after XORing.
+	         *
+	         * @example
+	         *
+	         *     var xored = x64Word.xor(anotherX64Word);
+	         */
+	        // xor: function (word) {
+	            // var high = this.high ^ word.high;
+	            // var low = this.low ^ word.low;
+
+	            // return X64Word.create(high, low);
+	        // },
+
+	        /**
+	         * Shifts this word n bits to the left.
+	         *
+	         * @param {number} n The number of bits to shift.
+	         *
+	         * @return {X64Word} A new x64-Word object after shifting.
+	         *
+	         * @example
+	         *
+	         *     var shifted = x64Word.shiftL(25);
+	         */
+	        // shiftL: function (n) {
+	            // if (n < 32) {
+	                // var high = (this.high << n) | (this.low >>> (32 - n));
+	                // var low = this.low << n;
+	            // } else {
+	                // var high = this.low << (n - 32);
+	                // var low = 0;
+	            // }
+
+	            // return X64Word.create(high, low);
+	        // },
+
+	        /**
+	         * Shifts this word n bits to the right.
+	         *
+	         * @param {number} n The number of bits to shift.
+	         *
+	         * @return {X64Word} A new x64-Word object after shifting.
+	         *
+	         * @example
+	         *
+	         *     var shifted = x64Word.shiftR(7);
+	         */
+	        // shiftR: function (n) {
+	            // if (n < 32) {
+	                // var low = (this.low >>> n) | (this.high << (32 - n));
+	                // var high = this.high >>> n;
+	            // } else {
+	                // var low = this.high >>> (n - 32);
+	                // var high = 0;
+	            // }
+
+	            // return X64Word.create(high, low);
+	        // },
+
+	        /**
+	         * Rotates this word n bits to the left.
+	         *
+	         * @param {number} n The number of bits to rotate.
+	         *
+	         * @return {X64Word} A new x64-Word object after rotating.
+	         *
+	         * @example
+	         *
+	         *     var rotated = x64Word.rotL(25);
+	         */
+	        // rotL: function (n) {
+	            // return this.shiftL(n).or(this.shiftR(64 - n));
+	        // },
+
+	        /**
+	         * Rotates this word n bits to the right.
+	         *
+	         * @param {number} n The number of bits to rotate.
+	         *
+	         * @return {X64Word} A new x64-Word object after rotating.
+	         *
+	         * @example
+	         *
+	         *     var rotated = x64Word.rotR(7);
+	         */
+	        // rotR: function (n) {
+	            // return this.shiftR(n).or(this.shiftL(64 - n));
+	        // },
+
+	        /**
+	         * Adds this word with the passed word.
+	         *
+	         * @param {X64Word} word The x64-Word to add with this word.
+	         *
+	         * @return {X64Word} A new x64-Word object after adding.
+	         *
+	         * @example
+	         *
+	         *     var added = x64Word.add(anotherX64Word);
+	         */
+	        // add: function (word) {
+	            // var low = (this.low + word.low) | 0;
+	            // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0;
+	            // var high = (this.high + word.high + carry) | 0;
+
+	            // return X64Word.create(high, low);
+	        // }
+	    });
+
+	    /**
+	     * An array of 64-bit words.
+	     *
+	     * @property {Array} words The array of CryptoJS.x64.Word objects.
+	     * @property {number} sigBytes The number of significant bytes in this word array.
+	     */
+	    var X64WordArray = C_x64.WordArray = Base.extend({
+	        /**
+	         * Initializes a newly created word array.
+	         *
+	         * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects.
+	         * @param {number} sigBytes (Optional) The number of significant bytes in the words.
+	         *
+	         * @example
+	         *
+	         *     var wordArray = CryptoJS.x64.WordArray.create();
+	         *
+	         *     var wordArray = CryptoJS.x64.WordArray.create([
+	         *         CryptoJS.x64.Word.create(0x00010203, 0x04050607),
+	         *         CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)
+	         *     ]);
+	         *
+	         *     var wordArray = CryptoJS.x64.WordArray.create([
+	         *         CryptoJS.x64.Word.create(0x00010203, 0x04050607),
+	         *         CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)
+	         *     ], 10);
+	         */
+	        init: function (words, sigBytes) {
+	            words = this.words = words || [];
+
+	            if (sigBytes != undefined) {
+	                this.sigBytes = sigBytes;
+	            } else {
+	                this.sigBytes = words.length * 8;
+	            }
+	        },
+
+	        /**
+	         * Converts this 64-bit word array to a 32-bit word array.
+	         *
+	         * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array.
+	         *
+	         * @example
+	         *
+	         *     var x32WordArray = x64WordArray.toX32();
+	         */
+	        toX32: function () {
+	            // Shortcuts
+	            var x64Words = this.words;
+	            var x64WordsLength = x64Words.length;
+
+	            // Convert
+	            var x32Words = [];
+	            for (var i = 0; i < x64WordsLength; i++) {
+	                var x64Word = x64Words[i];
+	                x32Words.push(x64Word.high);
+	                x32Words.push(x64Word.low);
+	            }
+
+	            return X32WordArray.create(x32Words, this.sigBytes);
+	        },
+
+	        /**
+	         * Creates a copy of this word array.
+	         *
+	         * @return {X64WordArray} The clone.
+	         *
+	         * @example
+	         *
+	         *     var clone = x64WordArray.clone();
+	         */
+	        clone: function () {
+	            var clone = Base.clone.call(this);
+
+	            // Clone "words" array
+	            var words = clone.words = this.words.slice(0);
+
+	            // Clone each X64Word object
+	            var wordsLength = words.length;
+	            for (var i = 0; i < wordsLength; i++) {
+	                words[i] = words[i].clone();
+	            }
+
+	            return clone;
+	        }
+	    });
+	}());
+
+
+	return CryptoJS;
+
+}));
\ No newline at end of file
diff --git a/node_modules/pdfh5/LICENSE b/node_modules/pdfh5/LICENSE
new file mode 100644
index 0000000..dd04bed
--- /dev/null
+++ b/node_modules/pdfh5/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) [2018] [gjTool]
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/node_modules/pdfh5/README.md b/node_modules/pdfh5/README.md
new file mode 100644
index 0000000..136f8fa
--- /dev/null
+++ b/node_modules/pdfh5/README.md
@@ -0,0 +1,280 @@
+# pdfh5.js
+[![npm version](https://img.shields.io/npm/v/pdfh5.svg)](https://www.npmjs.com/package/pdfh5) [![npm downloads](https://img.shields.io/npm/dt/pdfh5.svg)](https://www.npmjs.com/package/pdfh5) [![npm downloads](https://img.shields.io/npm/dw/pdfh5.svg)](https://www.npmjs.com/package/pdfh5)  [![MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://github.com/gjTool/pdfh5/blob/master/LICENSE) [![GitHub issues](https://img.shields.io/github/issues/gjTool/pdfh5.svg)](https://github.com/gjTool/pdfh5/issues) [![GitHub stars](https://img.shields.io/github/stars/gjTool/pdfh5.svg?style=social)](https://github.com/gjTool/pdfh5/stargazers) [![GitHub forks](https://img.shields.io/github/forks/gjTool/pdfh5.svg?style=social)](https://github.com/gjTool/pdfh5/network/members)  
+
+**1、有问题可以加Q群咨询,技术交流群,也可以探讨技术,另有微信群可以问群主拉入微信群**
+
+**2、如果有报错,请复制example运行,然后对照相关文件,以及package.json,缺什么补什么**
+
+**3、如果有某些字体显示不了,那可能是pdf.js缺少相关字库解析,可以尝试更改cMapUrl,建议去官方地址找版本**
+
+**4、如果IOS下pdf显示不了,安卓却可以,可能是pdf精度过高导致,Safari浏览器canvas渲染绘制图片宽高不能超过16777216,超过会不显示** 
+
+
+- [QQ群521681398](https://qm.qq.com/cgi-bin/qm/qr?k=3_qouxqe5w3gRCcHjpqkwtx-4yS6QSPD&jump_from=webapi&authKey=FlHU4wH2xOQUthUpgF5W3b1VXowCVmSRfJLU4GRcDVyBayJd1ank4HkOWSZei2f3)
+- [pdfh5博客主页](https://pdfh5.gjtool.cn/)  
+
+- [pdfh5项目GitHub地址](https://github.com/gjTool/pdfh5)  
+
+- [pdfh5项目gitee地址](https://gitee.com/gjTool/pdfh5)
+
+
+#### react、vue均可使用
+#### [example/test](https://github.com/gjTool/pdfh5/tree/master/example/test)是vue使用示例
+#### [example/vue3demo](https://github.com/gjTool/pdfh5/tree/master/example/vue3demo)是vue3使用示例
+#### [example/vite4vue3](https://github.com/gjTool/pdfh5/tree/master/example/vite4vue3)是vite4+vue3+ts使用示例
+#### [example/react-test](https://github.com/gjTool/pdfh5/tree/master/example/react-test)是react使用示例
+
+![pdfh5.js示例](https://img-blog.csdnimg.cn/20190731133403792.gif)
+
+## 更新信息
+
+- 2024.02.29 更新: 修复部分bugs。
+
+### pdfh5在线预览 (建议使用谷歌浏览器F12手机模式打开预览)
+
+-  [https://www.gjtool.cn/pdfh5/pdf.html?file=https://www.gjtool.cn/pdfh5/git.pdf](https://www.gjtool.cn/pdfh5/pdf.html?file=https://www.gjtool.cn/pdfh5/git.pdf)  
+
+
+## 快速使用(有两种方式)
+
+#### 一、script标签引入方式(需下载本项目文件夹css/pdfh5.css、js内所有文件)
+
+- 	1.引入css   
+
+```javascript
+<link rel="stylesheet" href="css/pdfh5.css" />
+```
+
+- 	2.创建div  
+
+```javascript
+<div id="demo"></div>
+```
+
+- 	3.依次引入js(需引用本项目的js,不要引用官方的pdf.js,jquery可以引用其它版的)   
+
+```javascript
+<script src="js/pdf.js" type="text/javascript" charset="utf-8"></script>
+<script src="js/pdf.worker.js" type="text/javascript" charset="utf-8"></script>
+<script src="js/jquery-2.1.1.min.js" type="text/javascript" charset="utf-8"></script>
+<script src="js/pdfh5.js" type="text/javascript" charset="utf-8"></script>
+```
+
+- 	4.实例化
+
+```javascript
+var pdfh5 = new Pdfh5('#demo', {
+  pdfurl: "./default.pdf"
+});
+```
+
+####  二、npm安装方式(适应于vue), react使用方法类似vue(example/react-test是react使用示例)
+
+- 	1.安装
+
+```javascript
+npm install pdfh5
+```
+- 	2.使用
+
+```javascript
+<template>
+  <div id="app">
+	<div id="demo"></div>
+  </div>
+</template>
+<script>
+  import Pdfh5 from "pdfh5";
+  export default {
+    name: 'App',
+	data() {
+	  return {
+	    pdfh5: null
+	  };
+	},
+	mounted() {
+		//实例化
+	  this.pdfh5 = new Pdfh5("#demo", {
+		pdfurl: "../../static/test.pdf",
+		// cMapUrl:"https://unpkg.com/pdfjs-dist@3.8.162/cmaps/",
+		// responseType: "blob" // blob arraybuffer
+	  });
+	  //监听完成事件
+	  this.pdfh5.on("complete", function (status, msg, time) {
+		console.log("状态:" + status + ",信息:" + msg + ",耗时:" + time + "毫秒,总页数:" + this.totalNum)
+		//禁止手势缩放
+		this.pdfh5.zoomEnable(false);
+	  })
+	}
+  }
+</script>
+
+<style>
+	@import "pdfh5/css/pdfh5.css";
+	*{
+	padding: 0;
+	margin: 0;
+	}
+	html,body,#app {
+	width: 100%;
+	height: 100%;
+	}
+</style>
+```
+
+- **注意:如果css引用报错的话,按下面的方式引用。** 
+```javascript
+  import Pdfh5 from "pdfh5";
+  import "pdfh5/css/pdfh5.css";
+```
+
+# API接口方法
+
+
+## 实例化
+- **pdfh5实例化的时候传两个参数,selector选择器,options配置项参数,会返回一个pdfh5实例对象,可以用来操作pdf,监听相关事件** 
+```javascript
+var pdfh5 = new Pdfh5(selector, options);
+```
+|参数名称	|类型		|取值	|是否必须	|作用				|
+|:---:		|:---:		|:---:	|:---:		|:---:				|
+|selector	|  String	| -		| √		|pdfh5的容器选择器	|
+|options	|  Object	| -		| ×			|pdfh5的配置项参数	|
+
+## options配置项参数列表
+
+- **示例:** 配置项参数 pdfurl
+
+```javascript
+var pdfh5 = new Pdfh5('#demo', {
+	pdfurl: "./default.pdf"
+});
+```
+
+|参数名称		|类型					|取值																																								|作用																																							|
+|:---:			|:---:					|:---:																																								|:---:																																							|
+|pdfurl			|  String				| -																																									|pdf地址																																						|
+|responseType			|  String				|blob 、 arraybuffer 默认 blob																																							|请求pdf数据格式																																					|
+|URIenable		|  Boolean			|true、false, 默认false																																			|  true开启地址栏file参数																																		|
+|data			|  Array(arraybuffer)	| -																																									|pdf文件流 ,与pdfurl二选一(二进制PDF数据。使用类型化数组(Uint8Array)可以提高内存使用率。如果PDF数据是BASE64编码的,请先使用atob()将其转换为二进制字符串。)	|
+|renderType		| String				|"canvas"、"svg",默认"canvas"																																		|pdf渲染模式																																					|
+|pageNum		| Boolean				|true、false, 默认true																																				|是否显示左上角页码																																				|
+|backTop		| Boolean				|true、false, 默认true																																				|是否显示右下角回到顶部按钮																																		|
+|maxZoom		|  Number				|最大倍数3																																							|手势缩放最大倍数																																				|
+|scale			|  Number				|最大比例5,默认1.5																																					|pdf渲染的比例																																					|
+|scrollEnable	| Boolean				|true、false, 默认true																																				|是否允许pdf滚动																																				|
+|zoomEnable		| Boolean				|true、false, 默认true																																				|是否允许pdf手势缩放																																			|
+|cMapUrl		| String				| "																																|解析pdf时,特殊情况下显示完整字体的cmaps文件夹路径,例如 cMapUrl:"https://unpkg.com/pdfjs-dist@2.0.943/cmaps/"													|
+|limit			| Number				| 默认0																																								|限制pdf加载最大页数																																			|
+|logo			| Object				|{src:"pdfh5.png",x:10,y:10,width:40,height:40}src水印图片路径(建议使用png透明图片),width水印宽度,height水印高度,以每页pdf左上角为0点,x、y为偏移值。 默认false|给每页pdf添加水印logo(canvas模式下使用)																														|
+|goto			| Number				| 默认0																																								|加载pdf跳转到第几页																																			|
+|textLayer		|  Boolean		| true、false, 默认false																																			|是否开启textLayer,可以复制文本(canvas模式下使用)【处于测试阶段,位置偏移严重】																				|
+|background		|  Object				| {color:"#fff",image:"url('pdfh5.png')",repeat:"no-repeat",position:"left top",size:"40px 40px"},和css的background属性语法相同,默认false							|是否开启背景图模式																																				|
+
+## 	pdf请求示例
+1.
+```javascript
+new Pdfh5('#demo', {
+	pdfurl: "git.pdf",
+	// responseType: "blob" // blob arraybuffer
+});
+```
+
+
+3. pdf文件流或者buffer已经得到,如何渲染
+```javascript
+ new Pdfh5('#demo', {
+ 	data: blob,  //blob arraybuffer
+ });
+```
+## methods 方法列表
+
+- **示例:** 是否允许pdf滚动
+
+```javascript
+pdfh5.scrollEnable(true) //允许pdf滚动
+pdfh5.scrollEnable(false) //不允许pdf滚动
+```
+
+|方法名			|传参				|传参取值															|作用											|
+|:---:			|:---:				|:---:																|:---:											|
+|scrollEnable	| Boolean			|true、false, 默认true												|是否允许pdf滚动(需要在pdf加载完成后使用)		|
+|zoomEnable		| Boolean			|true、false, 默认true												|是否允许pdf手势缩放(需要在pdf加载完成后使用)	|
+|show			| Function		|带一个回调函数														|pdfh5显示										|
+|hide			| Function		|带一个回调函数														|pdfh5隐藏										|
+|reset			| Function		|带一个回调函数														|pdfh5还原										|
+|destroy		| Function		|带一个回调函数														|pdfh5销毁										|
+|on				| (String, Function)|String:监听的事件名,Function:监听的事件回调						|on方法监听所有事件								|
+|goto			| Number			|Number:要跳转的pdf页数												|pdf跳转到第几页(pdf加载完成后使用)			|
+|download		| (String, Function)|String:下载pdf的名称,默认download.pdf,Function:下载完成后的回调|下载pdf										|
+
+## on方法监听所有事件-事件名列表
+
+- **示例:** 监听pdf准备开始渲染,此时可以拿到pdf总页数
+
+```javascript
+pdfh5.on("ready", function () {
+	console.log("总页数:" + this.totalNum)
+})
+```
+|事件名			|回调											|作用																				|
+|:---:			|:---:											|:---:																				|
+|init			| Function									|监听pdfh5开始初始化																|
+|ready			| Function									|监听pdf准备开始渲染,此时可以拿到pdf总页数											|
+|error			| Function(msg,time)						|监听加载失败,msg信息,time耗时													|
+|success		| Function(msg,time)							| 监听pdf渲染成功,msg信息,time耗时												|
+|complete		| Function(status, msg, time)				| 监听pdf加载完成事件,加载失败、渲染成功都会触发。status有两种状态success和error	|
+|render			| Function(currentNum, time, currentPageDom)	| 监听pdf渲染过程,currentPageDom当前加载的pdf的dom,currentNum当前加载的pdf页数,	|
+|zoom			| Function(scale)								| 监听pdf缩放,scale缩放比例														|
+|scroll			| Function(scrollTop,currentNum)				| 监听pdf滚动,scrollTop滚动条高度,currentNum当前页码								|
+|backTop		| Function									| 监听回到顶部按钮的点击事件回调													|
+|zoomEnable		| Function(flag)								| 监听允许缩放,flag:true,false													|
+|scrollEnable	| Function(flag)								| 监听允许滚动,flag:true,false													|
+|show			| Function									| 监听pdfh5显示																		|
+|hide			| Function									| 监听pdfh5隐藏																		|
+|reset			| Function									| 监听pdfh5还原																		|
+|destroy		| Function									| 监听pdfh5销毁																		|
+
+## 打赏榜单
+- [JayLin](https://github.com/110117ab) ¥6.66
+- [靓仔城](https://github.com/ljc7877376) ¥6.67
+- 南蓝 ¥8.80
+- 我是太阳 ¥29.99
+- *小波 ¥1.00
+- *鑫 ¥9.99
+- *手 ¥9.99
+- *勇 ¥19.99 
+- *爷 ¥5.00
+- *超 ¥20.00
+- 3*Y ¥5.00
+- *阳 ¥5.00
+- **雄 ¥5.00
+- A*r ¥1.23
+- *客 ¥5.00
+- *运 ¥66.66
+- *辰 ¥30.00
+- *黎 ¥6.66+¥5.00
+- **福 ¥6.66
+- *🏀 ¥6.66+¥1.00
+- *阳 ¥10.00
+- 自闭中 ¥16.66+¥16.00
+- *焕 ¥6.66
+- *人 ¥5.00
+- *。 ¥5.20
+- 半*) ¥5.00
+- *1 ¥15.00
+- *蕾 ¥16.66+¥8.80
+- *军 ¥10.00
+- **强 ¥58.88
+- E*y ¥6.60
+- J*u ¥13.00
+- A*a ¥50.00
+- *东 ¥8.80
+- j*y ¥9.99
+- *宇 ¥6.66
+- *涛 ¥1.00
+- *. ¥10.00
+- *☺ ¥6.66
+- *霸 ¥6.66
+- a*r ¥20.00
+- 木槿(**耀) ¥50.00
diff --git a/node_modules/pdfh5/css/pdfh5.css b/node_modules/pdfh5/css/pdfh5.css
new file mode 100644
index 0000000..df83a53
--- /dev/null
+++ b/node_modules/pdfh5/css/pdfh5.css
@@ -0,0 +1,212 @@
+.pdfjs {
+    width: 100%;
+    height: 100%;
+    overflow: hidden;
+    background: #fff;
+    position: relative;
+}
+
+.pdfjs .viewerContainer {
+    position: relative;
+    width: 100%;
+    height: 100%;
+    overflow: auto;
+    -webkit-overflow-scrolling: touch;
+    transition: all .3s;
+}
+
+.pdfjs .pdfViewer {
+    position: relative;
+    top: 0;
+    left: 0;
+    padding: 10px 8px;
+}
+
+.pdfjs .pdfViewer .pageContainer {
+    width: 100%;
+    margin: 0px auto 8px auto;
+    position: relative;
+    overflow: visible;
+    -webkit-box-shadow: darkgrey 0px 1px 3px 0px;
+    -moz-box-shadow: darkgrey 0px 1px 3px 0px;
+    box-shadow: darkgrey 0px 1px 3px 0px;
+    background-color: white;
+    box-sizing: border-box;
+}
+
+.pdfjs .pdfViewer .pageContainer img {
+    width: 100%;
+    height: 100%;
+    position: relative;
+    z-index: 100;
+	/* user-select:none; */
+}
+
+.pdfjs .pageNum {
+    padding: 0px 7px;
+    height: 26px;
+    position: absolute;
+    top: 20px;
+    left: 15px;
+    z-index: 997;
+    border-radius: 8px;
+    transition: all .3s;
+    display: none;
+}
+
+.pdfjs .pageNum-bg,
+.pdfjs .pageNum-num {
+    width: 100%;
+    height: 100%;
+    line-height: 26px;
+    text-align: center;
+    position: absolute;
+    top: 0px;
+    left: 0px;
+    color: #fff;
+    border-radius: 8px;
+    font-size: 16px;
+}
+
+.pdfjs .pageNum-bg {
+    background: rgba(0, 0, 0, 0.5);
+}
+
+.pdfjs .pageNum-num {
+    position: relative;
+}
+
+.pdfjs .pageNum span {
+    color: #fff;
+    font-size: 16px;
+}
+
+.pdfjs .loadingBar {
+    position: absolute;
+    width: 100%;
+    z-index: 99;
+    background: #fff !important;
+    height: 4px;
+    top: 0px;
+    left: 0px;
+    transition: all .3s;
+}
+
+.pdfjs .loadingBar .progress {
+    background: #fff !important;
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 0%;
+    height: 100%;
+    overflow: hidden;
+    transition: width 200ms;
+}
+
+.pdfjs .loadingBar .progress .glimmer {
+    position: absolute;
+    top: 0;
+    left: 0;
+    height: 100%;
+    width: calc(100% + 150px);
+    background: #7bcf34;
+}
+
+.pdfjs .backTop {
+    width: 50px;
+    height: 50px;
+    line-height: 50px;
+    text-align: center;
+    position: absolute;
+    bottom: 90px;
+    right: 15px;
+    font-size: 18px;
+    z-index: 999;
+    border-radius: 50%;
+    background: rgba(0, 0, 0, 0.4) url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAAsSAAALEgHS3X78AAAA+klEQVRYw+2WUQ2DMBCG2TIBSJiESkACEpCAg83BcLBJmIQ5gClgDpiDby9tciGkoaUtZOESXuhdv7+X/pdm2dYC6IgX7Zh3THy+w9oN/rMASqBcE26iSA1XwCAEDIBKBc8F/KE/gB7IU8BbDXyJf2Z2tFFFAE8N6iRIi/jotXssuGn1FzhPrCu9BtCEhlcCrix5hbiYVSh46bKpELvcniO71Q51zWJ7ju3mUe9vzym7eR7Az57CbohTXBzAt9GknG9PoLY8KK4z6htLfeXTTXMZAfoZuWYWKC+YZWMAQuWZSP0k2wXsAnYB2xNwci1wGTKhO/COlLtu/ABVfTFsxwwYRgAAAABJRU5ErkJggg==) no-repeat center;
+    background-size: 50% 50%;
+    transition: all .3s;
+    display: none;
+}
+
+.pdfjs .loadEffect {
+    width: 100px;
+    height: 100px;
+    position: absolute;
+    top: 50%;
+    left: 50%;
+    margin-top: -50px;
+    margin-left: -50px;
+    z-index: 99;
+    background: url(data:image/gif;base64,R0lGODlhgACAAKIAAP///93d3bu7u5mZmQAA/wAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFBQAEACwCAAIAfAB8AAAD/0i63P4wygYqmDjrzbtflvWNZGliYXiubKuloivPLlzReD7al+7/Eh5wSFQIi8hHYBkwHUmD6CD5YTJLz49USuVYraRsZ7vtar7XnQ1Kjpoz6LRHvGlz35O4nEPP2O94EnpNc2sef1OBGIOFMId/inB6jSmPdpGScR19EoiYmZobnBCIiZ95k6KGGp6ni4wvqxilrqBfqo6skLW2YBmjDa28r6Eosp27w8Rov8ekycqoqUHODrTRvXsQwArC2NLF29UM19/LtxO5yJd4Au4CK7DUNxPebG4e7+8n8iv2WmQ66BtoYpo/dvfacBjIkITBE9DGlMvAsOIIZjIUAixliv9ixYZVtLUos5GjwI8gzc3iCGghypQqrbFsme8lwZgLZtIcYfNmTJ34WPTUZw5oRxdD9w0z6iOpO15MgTh1BTTJUKos39jE+o/KS64IFVmsFfYT0aU7capdy7at27dw48qdS7eu3bt480I02vUbX2F/JxYNDImw4GiGE/P9qbhxVpWOI/eFKtlNZbWXuzlmG1mv58+gQ4seTbq06dOoU6vGQZJy0FNlMcV+czhQ7SQmYd8eMhPs5BxVdfcGEtV3buDBXQ+fURxx8oM6MT9P+Fh6dOrH2zavc13u9JXVJb520Vp8dvC76wXMuN5Sepm/1WtkEZHDefnzR9Qvsd9+/wi8+en3X0ntYVcSdAE+UN4zs7ln24CaLagghIxBaGF8kFGoIYV+Ybghh841GIyI5ICIFoklJsigihmimJOLEbLYIYwxSgigiZ+8l2KB+Ml4oo/w8dijjcrouCORKwIpnJIjMnkkksalNeR4fuBIm5UEYImhIlsGCeWNNJphpJdSTlkml1jWeOY6TnaRpppUctcmFW9mGSaZceYopH9zkjnjUe59iR5pdapWaGqHopboaYua1qije67GJ6CuJAAAIfkEBQUABAAsCgACAFcAMAAAA/9Iutz+ML5Ag7w46z0r5WAoSp43nihXVmnrdusrv+s332dt4Tyo9yOBUJD6oQBIQGs4RBlHySSKyczVTtHoidocPUNZaZAr9F5FYbGI3PWdQWn1mi36buLKFJvojsHjLnshdhl4L4IqbxqGh4gahBJ4eY1kiX6LgDN7fBmQEJI4jhieD4yhdJ2KkZk8oiSqEaatqBekDLKztBG2CqBACq4wJRi4PZu1sA2+v8C6EJexrBAD1AOBzsLE0g/V1UvYR9sN3eR6lTLi4+TlY1wz6Qzr8u1t6FkY8vNzZTxaGfn6mAkEGFDgL4LrDDJDyE4hEIbdHB6ESE1iD4oVLfLAqPETIsOODwmCDJlv5MSGJklaS6khAQAh+QQFBQAEACwfAAIAVwAwAAAD/0i63P5LSAGrvTjrNuf+YKh1nWieIumhbFupkivPBEzR+GnnfLj3ooFwwPqdAshAazhEGUXJJIrJ1MGOUamJ2jQ9QVltkCv0XqFh5IncBX01afGYnDqD40u2z76JK/N0bnxweC5sRB9vF34zh4gjg4uMjXobihWTlJUZlw9+fzSHlpGYhTminKSepqebF50NmTyor6qxrLO0L7YLn0ALuhCwCrJAjrUqkrjGrsIkGMW/BMEPJcphLgDaABjUKNEh29vdgTLLIOLpF80s5xrp8ORVONgi8PcZ8zlRJvf40tL8/QPYQ+BAgjgMxkPIQ6E6hgkdjoNIQ+JEijMsasNY0RQix4gKP+YIKXKkwJIFF6JMudFEAgAh+QQFBQAEACw8AAIAQgBCAAAD/kg0PPowykmrna3dzXvNmSeOFqiRaGoyaTuujitv8Gx/661HtSv8gt2jlwIChYtc0XjcEUnMpu4pikpv1I71astytkGh9wJGJk3QrXlcKa+VWjeSPZHP4Rtw+I2OW81DeBZ2fCB+UYCBfWRqiQp0CnqOj4J1jZOQkpOUIYx/m4oxg5cuAaYBO4Qop6c6pKusrDevIrG2rkwptrupXB67vKAbwMHCFcTFxhLIt8oUzLHOE9Cy0hHUrdbX2KjaENzey9Dh08jkz8Tnx83q66bt8PHy8/T19vf4+fr6AP3+/wADAjQmsKDBf6AOKjS4aaHDgZMeSgTQcKLDhBYPEswoA1BBAgAh+QQFBQAEACxOAAoAMABXAAAD7Ei6vPOjyUkrhdDqfXHm4OZ9YSmNpKmiqVqykbuysgvX5o2HcLxzup8oKLQQix0UcqhcVo5ORi+aHFEn02sDeuWqBGCBkbYLh5/NmnldxajX7LbPBK+PH7K6narfO/t+SIBwfINmUYaHf4lghYyOhlqJWgqDlAuAlwyBmpVnnaChoqOkpaanqKmqKgGtrq+wsbA1srW2ry63urasu764Jr/CAb3Du7nGt7TJsqvOz9DR0tPU1TIA2ACl2dyi3N/aneDf4uPklObj6OngWuzt7u/d8fLY9PXr9eFX+vv8+PnYlUsXiqC3c6PmUUgAACH5BAUFAAQALE4AHwAwAFcAAAPpSLrc/m7IAau9bU7MO9GgJ0ZgOI5leoqpumKt+1axPJO1dtO5vuM9yi8TlAyBvSMxqES2mo8cFFKb8kzWqzDL7Xq/4LB4TC6bz1yBes1uu9uzt3zOXtHv8xN+Dx/x/wJ6gHt2g3Rxhm9oi4yNjo+QkZKTCgGWAWaXmmOanZhgnp2goaJdpKGmp55cqqusrZuvsJays6mzn1m4uRAAvgAvuBW/v8GwvcTFxqfIycA3zA/OytCl0tPPO7HD2GLYvt7dYd/ZX99j5+Pi6tPh6+bvXuTuzujxXens9fr7YPn+7egRI9PPHrgpCQAAIfkEBQUABAAsPAA8AEIAQgAAA/lIutz+UI1Jq7026h2x/xUncmD5jehjrlnqSmz8vrE8u7V5z/m5/8CgcEgsGo/IpHLJbDqf0Kh0ShBYBdTXdZsdbb/Yrgb8FUfIYLMDTVYz2G13FV6Wz+lX+x0fdvPzdn9WeoJGAYcBN39EiIiKeEONjTt0kZKHQGyWl4mZdREAoQAcnJhBXBqioqSlT6qqG6WmTK+rsa1NtaGsuEu6o7yXubojsrTEIsa+yMm9SL8osp3PzM2cStDRykfZ2tfUtS/bRd3ewtzV5pLo4eLjQuUp70Hx8t9E9eqO5Oku5/ztdkxi90qPg3x2EMpR6IahGocPCxp8AGtigwQAIfkEBQUABAAsHwBOAFcAMAAAA/9Iutz+MMo36pg4682J/V0ojs1nXmSqSqe5vrDXunEdzq2ta3i+/5DeCUh0CGnF5BGULC4tTeUTFQVONYAs4CfoCkZPjFar83rBx8l4XDObSUL1Ott2d1U4yZwcs5/xSBB7dBMBhgEYfncrTBGDW4WHhomKUY+QEZKSE4qLRY8YmoeUfkmXoaKInJ2fgxmpqqulQKCvqRqsP7WooriVO7u8mhu5NacasMTFMMHCm8qzzM2RvdDRK9PUwxzLKdnaz9y/Kt8SyR3dIuXmtyHpHMcd5+jvWK4i8/TXHff47SLjQvQLkU+fG29rUhQ06IkEG4X/Rryp4mwUxSgLL/7IqFETB8eONT6ChCFy5ItqJomES6kgAQAh+QQFBQAEACwKAE4AVwAwAAAD/0i63A4QuEmrvTi3yLX/4MeNUmieITmibEuppCu3sDrfYG3jPKbHveDktxIaF8TOcZmMLI9NyBPanFKJp4A2IBx4B5lkdqvtfb8+HYpMxp3Pl1qLvXW/vWkli16/3dFxTi58ZRcChwIYf3hWBIRchoiHiotWj5AVkpIXi4xLjxiaiJR/T5ehoomcnZ+EGamqq6VGoK+pGqxCtaiiuJVBu7yaHrk4pxqwxMUzwcKbyrPMzZG90NGDrh/JH8t72dq3IN1jfCHb3L/e5ebh4ukmxyDn6O8g08jt7tf26ybz+m/W9GNXzUQ9fm1Q/APoSWAhhfkMAmpEbRhFKwsvCsmosRIHx444PoKcIXKkjIImjTzjkQAAIfkEBQUABAAsAgA8AEIAQgAAA/VIBNz+8KlJq72Yxs1d/uDVjVxogmQqnaylvkArT7A63/V47/m2/8CgcEgsGo/IpHLJbDqf0Kh0Sj0FroGqDMvVmrjgrDcTBo8v5fCZki6vCW33Oq4+0832O/at3+f7fICBdzsChgJGeoWHhkV0P4yMRG1BkYeOeECWl5hXQ5uNIAOjA1KgiKKko1CnqBmqqk+nIbCkTq20taVNs7m1vKAnurtLvb6wTMbHsUq4wrrFwSzDzcrLtknW16tI2tvERt6pv0fi48jh5h/U6Zs77EXSN/BE8jP09ZFA+PmhP/xvJgAMSGBgQINvEK5ReIZhQ3QEMTBLAAAh+QQFBQAEACwCAB8AMABXAAAD50i6DA4syklre87qTbHn4OaNYSmNqKmiqVqyrcvBsazRpH3jmC7yD98OCBF2iEXjBKmsAJsWHDQKmw571l8my+16v+CweEwum8+hgHrNbrvbtrd8znbR73MVfg838f8BeoB7doN0cYZvaIuMjY6PkJGSk2gClgJml5pjmp2YYJ6dX6GeXaShWaeoVqqlU62ir7CXqbOWrLafsrNctjIDwAMWvC7BwRWtNsbGFKc+y8fNsTrQ0dK3QtXAYtrCYd3eYN3c49/a5NVj5eLn5u3s6e7x8NDo9fbL+Mzy9/T5+tvUzdN3Zp+GBAAh+QQJBQAEACwCAAIAfAB8AAAD/0i63P4wykmrvTjrzbv/YCiOZGmeaKqubOu+cCzPdArcQK2TOL7/nl4PSMwIfcUk5YhUOh3M5nNKiOaoWCuWqt1Ou16l9RpOgsvEMdocXbOZ7nQ7DjzTaeq7zq6P5fszfIASAYUBIYKDDoaGIImKC4ySH3OQEJKYHZWWi5iZG0ecEZ6eHEOio6SfqCaqpaytrpOwJLKztCO2jLi1uoW8Ir6/wCHCxMG2x7muysukzb230M6H09bX2Nna29zd3t/g4cAC5OXm5+jn3Ons7eba7vHt2fL16tj2+QL0+vXw/e7WAUwnrqDBgwgTKlzIsKHDh2gGSBwAccHEixAvaqTYcFCjRoYeNyoM6REhyZIHT4o0qPIjy5YTTcKUmHImx5cwE85cmJPnSYckK66sSAAj0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gwxZJAAA7) no-repeat center;
+    background-size: 30% 30%;
+    transition: all .3s;
+}
+.pdfjs .pdfViewer .pageContainer img.pdfLogo{
+	/* user-select:none; */
+	position:absolute;
+	z-index: 101;
+}
+.pdfjs .textLayer {
+  position: absolute;
+  left: 0;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  overflow: hidden;
+  opacity: 0.2;
+  line-height: 1.0;
+  z-index: 101;
+}
+
+.pdfjs .textLayer > span {
+  color: transparent;
+  position: absolute;
+  white-space: pre;
+  cursor: text;
+  transform-origin: 0% 0%;
+  transform: translate(-99px, -80px) scaleX(1) !important;
+}
+
+.pdfjs .textLayer .highlight {
+  margin: -1px;
+  padding: 1px;
+  background-color: rgba(180, 0, 170, 1);
+  border-radius: 4px;
+}
+
+.pdfjs .textLayer .highlight.begin {
+  border-radius: 4px 0px 0px 4px;
+}
+
+.pdfjs .textLayer .highlight.end {
+  border-radius: 0px 4px 4px 0px;
+}
+
+.pdfjs .textLayer .highlight.middle {
+  border-radius: 0px;
+}
+
+.pdfjs .textLayer .highlight.selected {
+  background-color: rgba(0, 100, 0, 1);
+}
+
+.pdfjs .textLayer ::selection {
+  background: rgba(0, 0, 255, 1);
+}
+
+.pdfjs .textLayer .endOfContent {
+  display: block;
+  position: absolute;
+  left: 0px;
+  top: 100%;
+  right: 0px;
+  bottom: 0px;
+  z-index: -1;
+  cursor: default;
+  /* user-select: none; */
+}
+
+.pdfjs .textLayer .endOfContent.active {
+  top: 0px;
+}
\ No newline at end of file
diff --git a/node_modules/pdfh5/css/style.css b/node_modules/pdfh5/css/style.css
new file mode 100644
index 0000000..7827bcd
--- /dev/null
+++ b/node_modules/pdfh5/css/style.css
@@ -0,0 +1,1242 @@
+@charset "utf-8";
+body,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+hr,
+p,
+blockquote,
+dl,
+dt,
+dd,
+ul,
+ol,
+li,
+pre,
+form,
+fieldset,
+legend,
+button,
+input,
+textarea,
+th,
+td {
+	margin: 0;
+	padding: 0;
+}
+
+body,
+button,
+input,
+select,
+textarea {
+	font-size:12px;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+	font-size: 100%;
+}
+
+address,
+cite,
+dfn,
+em,
+var {
+	font-style: normal;
+}
+
+code,
+kbd,
+pre,
+samp {
+	font-family: couriernew, courier, monospace;
+}
+
+small {
+	font-size: 12px;
+}
+
+ul,
+ol {
+	list-style: none;
+}
+
+a {
+	text-decoration: none;
+}
+
+a:hover {
+	text-decoration: underline;
+}
+
+sup {
+	vertical-align: text-top;
+}
+
+sub {
+	vertical-align: text-bottom;
+}
+
+legend {
+	color: #000;
+}
+
+fieldset,
+img {
+	border: 0;
+}
+
+button,
+input,
+select,
+textarea {
+	font-size: 100%;
+}
+
+table {
+	border-collapse: collapse;
+	border-spacing: 0;
+}
+
+.clearfix {
+	*zoom: 1;
+}
+
+.clearfix:before,
+.clearfix:after {
+	display: table;
+	line-height: 0;
+	content: "";
+}
+
+.clearfix:after {
+	clear: both;
+}
+
+  
+  #app {
+	  display: -webkit-box;
+	  display: -ms-flexbox;
+	  display: flex;
+	  -webkit-box-pack: center;
+	  -ms-flex-pack: center;
+	  justify-content: center;
+	  -webkit-box-align: center;
+	  -ms-flex-align: center;
+	  align-items: center;
+	  height: 100%;
+	  background: rgba(249, 249, 249, 0.9);
+	  overflow: hidden;
+  }
+  
+  .text-wrapper {
+	  padding: 0 1rem;
+	  max-width: 50rem;
+	  width: 100%;
+	  text-align: center;
+  }
+  
+  .text {
+	  font-size: 8em;
+	  text-transform: uppercase;
+	  letter-spacing: -14px;
+  }
+  
+  .text .letter {
+	  position: relative;
+	  display: inline-block;
+	  -webkit-transition: all .4s;
+	  transition: all .4s;
+  }
+  
+  .text .letter .character {
+	  opacity: 0.65;
+	  -webkit-transition: color .4s;
+	  transition: color .4s;
+	  cursor: pointer;
+  }
+  
+  .text .letter span {
+	  position: absolute;
+	  bottom: .8rem;
+	  left: .4rem;
+	  display: block;
+	  width: 100%;
+	  height: 15px;
+  }
+  
+  .text .letter span::before {
+	  content: '';
+	  position: absolute;
+	  top: 50%;
+	  left: 50%;
+	  width: 0;
+	  height: 0;
+	  -webkit-transform: translate(-50%, -50%);
+	  transform: translate(-50%, -50%);
+	  border-radius: 50%;
+	  background: rgba(0, 0, 0, 0.25);
+  }
+  
+  .text .letter:hover .character {
+	  color: #fff !important;
+  }
+  
+  .text.part1 .letter:nth-child(1).poofed {
+	  -webkit-transform-origin: 50% 50%;
+	  transform-origin: 50% 50%;
+	  -webkit-animation: poofing1 1.4s ease-in-out infinite alternate;
+	  animation: poofing1 1.4s ease-in-out infinite alternate;
+  }
+  
+  @-webkit-keyframes poofing1 {
+	  0% {
+		  -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+	  }
+	  50% {
+		  -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  56% {
+		  -webkit-transform: rotateZ(459deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(459deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  100% {
+		  -webkit-transform: rotateZ(459deg) rotateY(360deg) translateY(-700px) scale(0.01);
+		  transform: rotateZ(459deg) rotateY(360deg) translateY(-700px) scale(0.01);
+	  }
+  }
+  
+  @keyframes poofing1 {
+	  0% {
+		  -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+	  }
+	  50% {
+		  -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  56% {
+		  -webkit-transform: rotateZ(459deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(459deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  100% {
+		  -webkit-transform: rotateZ(459deg) rotateY(360deg) translateY(-700px) scale(0.01);
+		  transform: rotateZ(459deg) rotateY(360deg) translateY(-700px) scale(0.01);
+	  }
+  }
+  
+  .text.part1 .letter:nth-child(1) .character {
+	  color: #f44336;
+	  -webkit-animation: wave 1.2s linear infinite;
+	  animation: wave 1.2s linear infinite;
+	  -webkit-animation-delay: 0.33333s;
+	  animation-delay: 0.33333s;
+  }
+  
+  .text.part1 .letter:nth-child(1) span::before {
+	  -webkit-animation: shadow 1.2s linear infinite;
+	  animation: shadow 1.2s linear infinite;
+	  -webkit-animation-delay: 0.33333s;
+	  animation-delay: 0.33333s;
+  }
+  
+  .text.part1 .letter:nth-child(2).poofed {
+	  -webkit-transform-origin: 50% 50%;
+	  transform-origin: 50% 50%;
+	  -webkit-animation: poofing2 1.4s ease-in-out infinite alternate;
+	  animation: poofing2 1.4s ease-in-out infinite alternate;
+  }
+  
+  @-webkit-keyframes poofing2 {
+	  0% {
+		  -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+	  }
+	  50% {
+		  -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  56% {
+		  -webkit-transform: rotateZ(540deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(540deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  100% {
+		  -webkit-transform: rotateZ(540deg) rotateY(360deg) translateY(-700px) scale(0.01);
+		  transform: rotateZ(540deg) rotateY(360deg) translateY(-700px) scale(0.01);
+	  }
+  }
+  
+  @keyframes poofing2 {
+	  0% {
+		  -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+	  }
+	  50% {
+		  -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  56% {
+		  -webkit-transform: rotateZ(540deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(540deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  100% {
+		  -webkit-transform: rotateZ(540deg) rotateY(360deg) translateY(-700px) scale(0.01);
+		  transform: rotateZ(540deg) rotateY(360deg) translateY(-700px) scale(0.01);
+	  }
+  }
+  
+  .text.part1 .letter:nth-child(2) .character {
+	  color: #9C27B0;
+	  -webkit-animation: wave 1.2s linear infinite;
+	  animation: wave 1.2s linear infinite;
+	  -webkit-animation-delay: 0.66667s;
+	  animation-delay: 0.66667s;
+  }
+  
+  .text.part1 .letter:nth-child(2) span::before {
+	  -webkit-animation: shadow 1.2s linear infinite;
+	  animation: shadow 1.2s linear infinite;
+	  -webkit-animation-delay: 0.66667s;
+	  animation-delay: 0.66667s;
+  }
+  
+  .text.part1 .letter:nth-child(3).poofed {
+	  -webkit-transform-origin: 50% 50%;
+	  transform-origin: 50% 50%;
+	  -webkit-animation: poofing3 1.4s ease-in-out infinite alternate;
+	  animation: poofing3 1.4s ease-in-out infinite alternate;
+  }
+  
+  @-webkit-keyframes poofing3 {
+	  0% {
+		  -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+	  }
+	  50% {
+		  -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  56% {
+		  -webkit-transform: rotateZ(264deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(264deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  100% {
+		  -webkit-transform: rotateZ(264deg) rotateY(360deg) translateY(-700px) scale(0.01);
+		  transform: rotateZ(264deg) rotateY(360deg) translateY(-700px) scale(0.01);
+	  }
+  }
+  
+  @keyframes poofing3 {
+	  0% {
+		  -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+	  }
+	  50% {
+		  -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  56% {
+		  -webkit-transform: rotateZ(264deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(264deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  100% {
+		  -webkit-transform: rotateZ(264deg) rotateY(360deg) translateY(-700px) scale(0.01);
+		  transform: rotateZ(264deg) rotateY(360deg) translateY(-700px) scale(0.01);
+	  }
+  }
+  
+  .text.part1 .letter:nth-child(3) .character {
+	  color: #f99b0c;
+	  -webkit-animation: wave 1.2s linear infinite;
+	  animation: wave 1.2s linear infinite;
+	  -webkit-animation-delay: 1s;
+	  animation-delay: 1s;
+  }
+  
+  .text.part1 .letter:nth-child(3) span::before {
+	  -webkit-animation: shadow 1.2s linear infinite;
+	  animation: shadow 1.2s linear infinite;
+	  -webkit-animation-delay: 1s;
+	  animation-delay: 1s;
+  }
+  
+  .text.part1 .letter:nth-child(4).poofed {
+	  -webkit-transform-origin: 50% 50%;
+	  transform-origin: 50% 50%;
+	  -webkit-animation: poofing4 1.4s ease-in-out infinite alternate;
+	  animation: poofing4 1.4s ease-in-out infinite alternate;
+  }
+  
+  @-webkit-keyframes poofing4 {
+	  0% {
+		  -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+	  }
+	  50% {
+		  -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  56% {
+		  -webkit-transform: rotateZ(42deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(42deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  100% {
+		  -webkit-transform: rotateZ(42deg) rotateY(360deg) translateY(-700px) scale(0.01);
+		  transform: rotateZ(42deg) rotateY(360deg) translateY(-700px) scale(0.01);
+	  }
+  }
+  
+  @keyframes poofing4 {
+	  0% {
+		  -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+	  }
+	  50% {
+		  -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  56% {
+		  -webkit-transform: rotateZ(42deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(42deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  100% {
+		  -webkit-transform: rotateZ(42deg) rotateY(360deg) translateY(-700px) scale(0.01);
+		  transform: rotateZ(42deg) rotateY(360deg) translateY(-700px) scale(0.01);
+	  }
+  }
+  
+  .text.part1 .letter:nth-child(4) .character {
+	  color: #cee007;
+	  -webkit-animation: wave 1.2s linear infinite;
+	  animation: wave 1.2s linear infinite;
+	  -webkit-animation-delay: 1.33333s;
+	  animation-delay: 1.33333s;
+  }
+  
+  .text.part1 .letter:nth-child(4) span::before {
+	  -webkit-animation: shadow 1.2s linear infinite;
+	  animation: shadow 1.2s linear infinite;
+	  -webkit-animation-delay: 1.33333s;
+	  animation-delay: 1.33333s;
+  }
+  
+  .text.part1 .letter:nth-child(5).poofed {
+	  -webkit-transform-origin: 50% 50%;
+	  transform-origin: 50% 50%;
+	  -webkit-animation: poofing5 1.4s ease-in-out infinite alternate;
+	  animation: poofing5 1.4s ease-in-out infinite alternate;
+  }
+  
+  @-webkit-keyframes poofing5 {
+	  0% {
+		  -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+	  }
+	  50% {
+		  -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  56% {
+		  -webkit-transform: rotateZ(384deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(384deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  100% {
+		  -webkit-transform: rotateZ(384deg) rotateY(360deg) translateY(-700px) scale(0.01);
+		  transform: rotateZ(384deg) rotateY(360deg) translateY(-700px) scale(0.01);
+	  }
+  }
+  
+  @keyframes poofing5 {
+	  0% {
+		  -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+	  }
+	  50% {
+		  -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  56% {
+		  -webkit-transform: rotateZ(384deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(384deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  100% {
+		  -webkit-transform: rotateZ(384deg) rotateY(360deg) translateY(-700px) scale(0.01);
+		  transform: rotateZ(384deg) rotateY(360deg) translateY(-700px) scale(0.01);
+	  }
+  }
+  
+  .text.part1 .letter:nth-child(5) .character {
+	  color: #00c6b2;
+	  -webkit-animation: wave 1.2s linear infinite;
+	  animation: wave 1.2s linear infinite;
+	  -webkit-animation-delay: 1.66667s;
+	  animation-delay: 1.66667s;
+  }
+  
+  .text.part1 .letter:nth-child(5) span::before {
+	  -webkit-animation: shadow 1.2s linear infinite;
+	  animation: shadow 1.2s linear infinite;
+	  -webkit-animation-delay: 1.66667s;
+	  animation-delay: 1.66667s;
+  }
+  
+  .text.part1 .letter:nth-child(6).poofed {
+	  -webkit-transform-origin: 50% 50%;
+	  transform-origin: 50% 50%;
+	  -webkit-animation: poofing6 1.4s ease-in-out infinite alternate;
+	  animation: poofing6 1.4s ease-in-out infinite alternate;
+  }
+  
+  @-webkit-keyframes poofing6 {
+	  0% {
+		  -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+	  }
+	  50% {
+		  -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  56% {
+		  -webkit-transform: rotateZ(156deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(156deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  100% {
+		  -webkit-transform: rotateZ(156deg) rotateY(360deg) translateY(-700px) scale(0.01);
+		  transform: rotateZ(156deg) rotateY(360deg) translateY(-700px) scale(0.01);
+	  }
+  }
+  
+  @keyframes poofing6 {
+	  0% {
+		  -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+	  }
+	  50% {
+		  -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  56% {
+		  -webkit-transform: rotateZ(156deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(156deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  100% {
+		  -webkit-transform: rotateZ(156deg) rotateY(360deg) translateY(-700px) scale(0.01);
+		  transform: rotateZ(156deg) rotateY(360deg) translateY(-700px) scale(0.01);
+	  }
+  }
+  
+  .text.part1 .letter:nth-child(6) .character {
+	  color: #f44336;
+	  -webkit-animation: wave 1.2s linear infinite;
+	  animation: wave 1.2s linear infinite;
+	  -webkit-animation-delay: 2s;
+	  animation-delay: 2s;
+  }
+  
+  .text.part1 .letter:nth-child(6) span::before {
+	  -webkit-animation: shadow 1.2s linear infinite;
+	  animation: shadow 1.2s linear infinite;
+	  -webkit-animation-delay: 2s;
+	  animation-delay: 2s;
+  }
+  
+  .text.part1 .letter:nth-child(7).poofed {
+	  -webkit-transform-origin: 50% 50%;
+	  transform-origin: 50% 50%;
+	  -webkit-animation: poofing7 1.4s ease-in-out infinite alternate;
+	  animation: poofing7 1.4s ease-in-out infinite alternate;
+  }
+  
+  @-webkit-keyframes poofing7 {
+	  0% {
+		  -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+	  }
+	  50% {
+		  -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  56% {
+		  -webkit-transform: rotateZ(156deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(156deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  100% {
+		  -webkit-transform: rotateZ(156deg) rotateY(360deg) translateY(-700px) scale(0.01);
+		  transform: rotateZ(156deg) rotateY(360deg) translateY(-700px) scale(0.01);
+	  }
+  }
+  
+  @keyframes poofing7 {
+	  0% {
+		  -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+	  }
+	  50% {
+		  -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  56% {
+		  -webkit-transform: rotateZ(156deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(156deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  100% {
+		  -webkit-transform: rotateZ(156deg) rotateY(360deg) translateY(-700px) scale(0.01);
+		  transform: rotateZ(156deg) rotateY(360deg) translateY(-700px) scale(0.01);
+	  }
+  }
+  
+  .text.part1 .letter:nth-child(7) .character {
+	  color: #4CAF50;
+	  -webkit-animation: wave 1.2s linear infinite;
+	  animation: wave 1.2s linear infinite;
+	  -webkit-animation-delay: 2s;
+	  animation-delay: 2.5s;
+  }
+  
+  .text.part1 .letter:nth-child(7) span::before {
+	  -webkit-animation: shadow 1.2s linear infinite;
+	  animation: shadow 1.2s linear infinite;
+	  -webkit-animation-delay: 2s;
+	  animation-delay: 3s;
+  }
+  
+  .text.part2 span:nth-child(1).poofed {
+	  -webkit-animation: sec_poofing1 1.4s ease-in-out infinite alternate;
+	  animation: sec_poofing1 1.4s ease-in-out infinite alternate;
+  }
+  
+  @-webkit-keyframes sec_poofing1 {
+	  0% {
+		  -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+	  }
+	  50% {
+		  -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  56% {
+		  -webkit-transform: rotateZ(268deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(268deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  100% {
+		  -webkit-transform: rotateZ(268deg) rotateY(360deg) translateY(-700px) scale(0.01);
+		  transform: rotateZ(268deg) rotateY(360deg) translateY(-700px) scale(0.01);
+	  }
+  }
+  
+  @keyframes sec_poofing1 {
+	  0% {
+		  -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+	  }
+	  50% {
+		  -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  56% {
+		  -webkit-transform: rotateZ(268deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(268deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  100% {
+		  -webkit-transform: rotateZ(268deg) rotateY(360deg) translateY(-700px) scale(0.01);
+		  transform: rotateZ(268deg) rotateY(360deg) translateY(-700px) scale(0.01);
+	  }
+  }
+  
+  .text.part2 span:nth-child(1) .character {
+	  color: #ff5a5f;
+	  -webkit-animation: wave 1.2s linear infinite;
+	  animation: wave 1.2s linear infinite;
+	  -webkit-animation-delay: 2.33333s;
+	  animation-delay: 2.33333s;
+  }
+  
+  .text.part2 span:nth-child(1) span::before {
+	  -webkit-animation: shadow 1.2s linear infinite;
+	  animation: shadow 1.2s linear infinite;
+	  -webkit-animation-delay: 2.33333s;
+	  animation-delay: 2.33333s;
+  }
+  
+  .text.part2 span:nth-child(2).poofed {
+	  -webkit-animation: sec_poofing2 1.4s ease-in-out infinite alternate;
+	  animation: sec_poofing2 1.4s ease-in-out infinite alternate;
+  }
+  
+  @-webkit-keyframes sec_poofing2 {
+	  0% {
+		  -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+	  }
+	  50% {
+		  -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  56% {
+		  -webkit-transform: rotateZ(135deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(135deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  100% {
+		  -webkit-transform: rotateZ(135deg) rotateY(360deg) translateY(-700px) scale(0.01);
+		  transform: rotateZ(135deg) rotateY(360deg) translateY(-700px) scale(0.01);
+	  }
+  }
+  
+  @keyframes sec_poofing2 {
+	  0% {
+		  -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+	  }
+	  50% {
+		  -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  56% {
+		  -webkit-transform: rotateZ(135deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(135deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  100% {
+		  -webkit-transform: rotateZ(135deg) rotateY(360deg) translateY(-700px) scale(0.01);
+		  transform: rotateZ(135deg) rotateY(360deg) translateY(-700px) scale(0.01);
+	  }
+  }
+  
+  .text.part2 span:nth-child(2) .character {
+	  color: #f99b0c;
+	  -webkit-animation: wave 1.2s linear infinite;
+	  animation: wave 1.2s linear infinite;
+	  -webkit-animation-delay: 2.66667s;
+	  animation-delay: 2.66667s;
+  }
+  
+  .text.part2 span:nth-child(2) span::before {
+	  -webkit-animation: shadow 1.2s linear infinite;
+	  animation: shadow 1.2s linear infinite;
+	  -webkit-animation-delay: 2.66667s;
+	  animation-delay: 2.66667s;
+  }
+  
+  .text.part2 span:nth-child(3).poofed {
+	  -webkit-animation: sec_poofing3 1.4s ease-in-out infinite alternate;
+	  animation: sec_poofing3 1.4s ease-in-out infinite alternate;
+  }
+  
+  @-webkit-keyframes sec_poofing3 {
+	  0% {
+		  -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+	  }
+	  50% {
+		  -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  56% {
+		  -webkit-transform: rotateZ(442deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(442deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  100% {
+		  -webkit-transform: rotateZ(442deg) rotateY(360deg) translateY(-700px) scale(0.01);
+		  transform: rotateZ(442deg) rotateY(360deg) translateY(-700px) scale(0.01);
+	  }
+  }
+  
+  @keyframes sec_poofing3 {
+	  0% {
+		  -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+	  }
+	  50% {
+		  -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  56% {
+		  -webkit-transform: rotateZ(442deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(442deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  100% {
+		  -webkit-transform: rotateZ(442deg) rotateY(360deg) translateY(-700px) scale(0.01);
+		  transform: rotateZ(442deg) rotateY(360deg) translateY(-700px) scale(0.01);
+	  }
+  }
+  
+  .text.part2 span:nth-child(3) .character {
+	  color: #cee007;
+	  -webkit-animation: wave 1.2s linear infinite;
+	  animation: wave 1.2s linear infinite;
+	  -webkit-animation-delay: 3s;
+	  animation-delay: 3s;
+  }
+  
+  .text.part2 span:nth-child(3) span::before {
+	  -webkit-animation: shadow 1.2s linear infinite;
+	  animation: shadow 1.2s linear infinite;
+	  -webkit-animation-delay: 3s;
+	  animation-delay: 3s;
+  }
+  
+  .text.part2 span:nth-child(4).poofed {
+	  -webkit-animation: sec_poofing4 1.4s ease-in-out infinite alternate;
+	  animation: sec_poofing4 1.4s ease-in-out infinite alternate;
+  }
+  
+  @-webkit-keyframes sec_poofing4 {
+	  0% {
+		  -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+	  }
+	  50% {
+		  -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  56% {
+		  -webkit-transform: rotateZ(525deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(525deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  100% {
+		  -webkit-transform: rotateZ(525deg) rotateY(360deg) translateY(-700px) scale(0.01);
+		  transform: rotateZ(525deg) rotateY(360deg) translateY(-700px) scale(0.01);
+	  }
+  }
+  
+  @keyframes sec_poofing4 {
+	  0% {
+		  -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+	  }
+	  50% {
+		  -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  56% {
+		  -webkit-transform: rotateZ(525deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(525deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  100% {
+		  -webkit-transform: rotateZ(525deg) rotateY(360deg) translateY(-700px) scale(0.01);
+		  transform: rotateZ(525deg) rotateY(360deg) translateY(-700px) scale(0.01);
+	  }
+  }
+  
+  .text.part2 span:nth-child(4) .character {
+	  color: #00c6b2;
+	  -webkit-animation: wave 1.2s linear infinite;
+	  animation: wave 1.2s linear infinite;
+	  -webkit-animation-delay: 3.33333s;
+	  animation-delay: 3.33333s;
+  }
+  
+  .text.part2 span:nth-child(4) span::before {
+	  -webkit-animation: shadow 1.2s linear infinite;
+	  animation: shadow 1.2s linear infinite;
+	  -webkit-animation-delay: 3.33333s;
+	  animation-delay: 3.33333s;
+  }
+  
+  .text.part2 span:nth-child(5).poofed {
+	  -webkit-animation: sec_poofing5 1.4s ease-in-out infinite alternate;
+	  animation: sec_poofing5 1.4s ease-in-out infinite alternate;
+  }
+  
+  @-webkit-keyframes sec_poofing5 {
+	  0% {
+		  -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+	  }
+	  50% {
+		  -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  56% {
+		  -webkit-transform: rotateZ(419deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(419deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  100% {
+		  -webkit-transform: rotateZ(419deg) rotateY(360deg) translateY(-700px) scale(0.01);
+		  transform: rotateZ(419deg) rotateY(360deg) translateY(-700px) scale(0.01);
+	  }
+  }
+  
+  @keyframes sec_poofing5 {
+	  0% {
+		  -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+	  }
+	  50% {
+		  -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  56% {
+		  -webkit-transform: rotateZ(419deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(419deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  100% {
+		  -webkit-transform: rotateZ(419deg) rotateY(360deg) translateY(-700px) scale(0.01);
+		  transform: rotateZ(419deg) rotateY(360deg) translateY(-700px) scale(0.01);
+	  }
+  }
+  
+  .text.part2 span:nth-child(5) .character {
+	  color: #4e2a84;
+	  -webkit-animation: wave 1.2s linear infinite;
+	  animation: wave 1.2s linear infinite;
+	  -webkit-animation-delay: 3.66667s;
+	  animation-delay: 3.66667s;
+  }
+  
+  .text.part2 span:nth-child(5) span::before {
+	  -webkit-animation: shadow 1.2s linear infinite;
+	  animation: shadow 1.2s linear infinite;
+	  -webkit-animation-delay: 3.66667s;
+	  animation-delay: 3.66667s;
+  }
+  
+  .text.part2 span:nth-child(6).poofed {
+	  -webkit-animation: sec_poofing6 1.4s ease-in-out infinite alternate;
+	  animation: sec_poofing6 1.4s ease-in-out infinite alternate;
+  }
+  
+  @-webkit-keyframes sec_poofing6 {
+	  0% {
+		  -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+	  }
+	  50% {
+		  -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  56% {
+		  -webkit-transform: rotateZ(246deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(246deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  100% {
+		  -webkit-transform: rotateZ(246deg) rotateY(360deg) translateY(-700px) scale(0.01);
+		  transform: rotateZ(246deg) rotateY(360deg) translateY(-700px) scale(0.01);
+	  }
+  }
+  
+  @keyframes sec_poofing6 {
+	  0% {
+		  -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+	  }
+	  50% {
+		  -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  56% {
+		  -webkit-transform: rotateZ(246deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(246deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  100% {
+		  -webkit-transform: rotateZ(246deg) rotateY(360deg) translateY(-700px) scale(0.01);
+		  transform: rotateZ(246deg) rotateY(360deg) translateY(-700px) scale(0.01);
+	  }
+  }
+  
+  .text.part2 span:nth-child(6) .character {
+	  color: #9C27B0;
+	  -webkit-animation: wave 1.2s linear infinite;
+	  animation: wave 1.2s linear infinite;
+	  -webkit-animation-delay: 4s;
+	  animation-delay: 4s;
+  }
+  
+  .text.part2 span:nth-child(6) span::before {
+	  -webkit-animation: shadow 1.2s linear infinite;
+	  animation: shadow 1.2s linear infinite;
+	  -webkit-animation-delay: 4s;
+	  animation-delay: 4s;
+  }
+  
+  .text.part2 span:nth-child(7).poofed {
+	  -webkit-animation: sec_poofing7 1.4s ease-in-out infinite alternate;
+	  animation: sec_poofing7 1.4s ease-in-out infinite alternate;
+  }
+  
+  @-webkit-keyframes sec_poofing7 {
+	  0% {
+		  -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+	  }
+	  50% {
+		  -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  56% {
+		  -webkit-transform: rotateZ(206deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(206deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  100% {
+		  -webkit-transform: rotateZ(206deg) rotateY(360deg) translateY(-700px) scale(0.01);
+		  transform: rotateZ(206deg) rotateY(360deg) translateY(-700px) scale(0.01);
+	  }
+  }
+  
+  @keyframes sec_poofing7 {
+	  0% {
+		  -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+	  }
+	  50% {
+		  -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  56% {
+		  -webkit-transform: rotateZ(206deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(206deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  100% {
+		  -webkit-transform: rotateZ(206deg) rotateY(360deg) translateY(-700px) scale(0.01);
+		  transform: rotateZ(206deg) rotateY(360deg) translateY(-700px) scale(0.01);
+	  }
+  }
+  
+  .text.part2 span:nth-child(7) .character {
+	  color: #f99b0c;
+	  -webkit-animation: wave 1.2s linear infinite;
+	  animation: wave 1.2s linear infinite;
+	  -webkit-animation-delay: 4.33333s;
+	  animation-delay: 4.33333s;
+  }
+  
+  .text.part2 span:nth-child(7) span::before {
+	  -webkit-animation: shadow 1.2s linear infinite;
+	  animation: shadow 1.2s linear infinite;
+	  -webkit-animation-delay: 4.33333s;
+	  animation-delay: 4.33333s;
+  }
+  
+  .text.part2 span:nth-child(8).poofed {
+	  -webkit-animation: sec_poofing8 1.4s ease-in-out infinite alternate;
+	  animation: sec_poofing8 1.4s ease-in-out infinite alternate;
+  }
+  
+  @-webkit-keyframes sec_poofing8 {
+	  0% {
+		  -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+	  }
+	  50% {
+		  -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  56% {
+		  -webkit-transform: rotateZ(60deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(60deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  100% {
+		  -webkit-transform: rotateZ(60deg) rotateY(360deg) translateY(-700px) scale(0.01);
+		  transform: rotateZ(60deg) rotateY(360deg) translateY(-700px) scale(0.01);
+	  }
+  }
+  
+  @keyframes sec_poofing8 {
+	  0% {
+		  -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+	  }
+	  50% {
+		  -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  56% {
+		  -webkit-transform: rotateZ(60deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(60deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  100% {
+		  -webkit-transform: rotateZ(60deg) rotateY(360deg) translateY(-700px) scale(0.01);
+		  transform: rotateZ(60deg) rotateY(360deg) translateY(-700px) scale(0.01);
+	  }
+  }
+  
+  .text.part2 span:nth-child(8) .character {
+	  color: #cee007;
+	  -webkit-animation: wave 1.2s linear infinite;
+	  animation: wave 1.2s linear infinite;
+	  -webkit-animation-delay: 4.66667s;
+	  animation-delay: 4.66667s;
+  }
+  
+  .text.part2 span:nth-child(8) span::before {
+	  -webkit-animation: shadow 1.2s linear infinite;
+	  animation: shadow 1.2s linear infinite;
+	  -webkit-animation-delay: 4.66667s;
+	  animation-delay: 4.66667s;
+  }
+  
+  .text.part2 span:nth-child(9).poofed {
+	  -webkit-animation: sec_poofing9 1.4s ease-in-out infinite alternate;
+	  animation: sec_poofing9 1.4s ease-in-out infinite alternate;
+  }
+  
+  @-webkit-keyframes sec_poofing9 {
+	  0% {
+		  -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+	  }
+	  50% {
+		  -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  56% {
+		  -webkit-transform: rotateZ(496deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(496deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  100% {
+		  -webkit-transform: rotateZ(496deg) rotateY(360deg) translateY(-700px) scale(0.01);
+		  transform: rotateZ(496deg) rotateY(360deg) translateY(-700px) scale(0.01);
+	  }
+  }
+  
+  @keyframes sec_poofing9 {
+	  0% {
+		  -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+	  }
+	  50% {
+		  -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  56% {
+		  -webkit-transform: rotateZ(496deg) rotateY(360deg) translateY(0px) scale(1);
+		  transform: rotateZ(496deg) rotateY(360deg) translateY(0px) scale(1);
+	  }
+	  100% {
+		  -webkit-transform: rotateZ(496deg) rotateY(360deg) translateY(-700px) scale(0.01);
+		  transform: rotateZ(496deg) rotateY(360deg) translateY(-700px) scale(0.01);
+	  }
+  }
+  
+  .text.part2 span:nth-child(9) .character {
+	  color: #00c6b2;
+	  -webkit-animation: wave 1.2s linear infinite;
+	  animation: wave 1.2s linear infinite;
+	  -webkit-animation-delay: 5s;
+	  animation-delay: 5s;
+  }
+  
+  .text.part2 span:nth-child(9) span::before {
+	  -webkit-animation: shadow 1.2s linear infinite;
+	  animation: shadow 1.2s linear infinite;
+	  -webkit-animation-delay: 5s;
+	  animation-delay: 5s;
+  }
+  
+  @-webkit-keyframes wave {
+	  0% {
+		  -webkit-transform: translateY(0);
+		  transform: translateY(0);
+	  }
+	  50% {
+		  -webkit-transform: translateY(-10px);
+		  transform: translateY(-10px);
+	  }
+	  100% {
+		  -webkit-transform: translateY(0);
+		  transform: translateY(0);
+	  }
+  }
+  
+  @keyframes wave {
+	  0% {
+		  -webkit-transform: translateY(0);
+		  transform: translateY(0);
+	  }
+	  50% {
+		  -webkit-transform: translateY(-10px);
+		  transform: translateY(-10px);
+	  }
+	  100% {
+		  -webkit-transform: translateY(0);
+		  transform: translateY(0);
+	  }
+  }
+  
+  @-webkit-keyframes shadow {
+	  0% {
+		  width: 0;
+		  height: 0;
+	  }
+	  50% {
+		  width: 100%;
+		  height: 100%;
+	  }
+	  100% {
+		  width: 0;
+		  height: 0;
+	  }
+  }
+  
+  @keyframes shadow {
+	  0% {
+		  width: 0;
+		  height: 0;
+	  }
+	  50% {
+		  width: 100%;
+		  height: 100%;
+	  }
+	  100% {
+		  width: 0;
+		  height: 0;
+	  }
+  }
+  
+  .how-to {
+	  margin: 2rem 0 2rem 1rem;
+	  font-family: "Opens Sans", sans-serif;
+	  font-weight: 300;
+	  font-size: .85em;
+	  letter-spacing: 4px;
+	  color: rgba(0, 0, 0, 0.8);
+  }
+  
+  @-webkit-keyframes rotate {
+	  0% {
+		  -webkit-transform: rotateZ(0) scale(0.7);
+		  transform: rotateZ(0) scale(0.7);
+	  }
+	  100% {
+		  -webkit-transform: rotateZ(360deg) scale(0.7);
+		  transform: rotateZ(360deg) scale(0.7);
+	  }
+  }
+  
+  @keyframes rotate {
+	  0% {
+		  -webkit-transform: rotateZ(0) scale(0.7);
+		  transform: rotateZ(0) scale(0.7);
+	  }
+	  100% {
+		  -webkit-transform: rotateZ(360deg) scale(0.7);
+		  transform: rotateZ(360deg) scale(0.7);
+	  }
+  }
+  
+  @media only screen and (max-width: 767px) {
+	  .text {
+		  font-size: 6em;
+	  }
+	  .text .letter span {
+		  bottom: .5rem;
+	  }
+  }
+  
+  @media only screen and (max-width: 480px) {
+	  .text {
+		  font-size: 4em;
+	  }
+	  .text .letter span {
+		  bottom: 0;
+	  }
+  }
\ No newline at end of file
diff --git a/node_modules/pdfh5/git.pdf b/node_modules/pdfh5/git.pdf
new file mode 100644
index 0000000..7a8ac56
--- /dev/null
+++ b/node_modules/pdfh5/git.pdf
Binary files differ
diff --git a/node_modules/pdfh5/index.html b/node_modules/pdfh5/index.html
new file mode 100644
index 0000000..cf8ceb2
--- /dev/null
+++ b/node_modules/pdfh5/index.html
@@ -0,0 +1,232 @@
+<!DOCTYPE html>
+<html lang="zh-CN">
+
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <meta name="msapplication-tap-highlight" content="no" />
+    <meta http-equiv="X-UA-Compatible" content="ie=edge">
+    <meta name="keywords" content="pdfh5.js,pdf.js,gjTool,gjtool.cn,www.gjtool.cn,gjTool.js,移动端展示预览打开pdf,手机端展示预览打开pd" />
+    <meta name="description" content="pdf.js移动端展示预览打开pdf-pdfh5.js" />
+    <title>pdf.js移动端展示预览打开pdf-pdfh5.js</title>
+    <link rel="stylesheet" href="css/style.css" />
+    <link href="//www.gjtool.cn/download/pdfh5.png" type="image/x-icon" rel="shortcut icon" />
+    <style>
+        html,
+        body {
+            width: 100%;
+            height: 100%;
+        }
+
+        .docs-header-content {
+            max-width: 388px;
+            float: left;
+            position: relative;
+            padding: 50px 10px;
+            text-align: center;
+            -webkit-animation-name: fadeintext;
+            -moz-animation-name: fadeintext;
+            animation-name: fadeintext;
+            -webkit-animation-duration: 2s;
+            -moz-animation-duration: 2s;
+            animation-duration: 2s;
+            background: #fff;
+        }
+
+        .docs-subtitle {
+            max-width: 750px;
+            margin: 0 auto 20px;
+            font-size: 28px;
+            font-weight: 300;
+            line-height: 38px;
+            color: #d64c28;
+            margin-bottom: 30px;
+            font-size: 41px;
+            line-height: 60px;
+        }
+
+        .github-btn {
+            overflow: hidden;
+            border: 0;
+        }
+
+        .phone {
+            margin: 10px auto;
+            position: relative;
+            background: #111;
+            border-radius: 55px;
+            box-shadow: 0px 0px 0px 2px #aaa;
+            width: 270px;
+            height: 358px;
+            padding: 105px 25px;
+            -webkit-box-sizing: content-box;
+            box-sizing: content-box;
+            float: right;
+            transform: translateX(-8%);
+        }
+
+        .phone iframe {
+            width: 270px;
+            height: 100%;
+            display: block;
+            width: 100%;
+            margin-top: 15px;
+        }
+
+        .phone:before {
+            content: '';
+            width: 60px;
+            height: 10px;
+            border-radius: 10px;
+            position: absolute;
+            left: 50%;
+            margin-left: -30px;
+            background: #333;
+            top: 50px;
+        }
+
+        .phone:after {
+            content: '';
+            position: absolute;
+            width: 60px;
+            height: 60px;
+            left: 50%;
+            margin-left: -30px;
+            bottom: 20px;
+            border-radius: 100%;
+            box-sizing: border-box;
+            border: 5px solid #333;
+        }
+
+        .phone .statusbar {
+            position: absolute;
+            width: 270px;
+            height: 15px;
+            background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAAoCAIAAADhf9zeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDE0IDc5LjE1Njc5NywgMjAxNC8wOC8yMC0wOTo1MzowMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6REEyN0EzRUU1QzM3MTFFNEE1ODA5RkNEOEU4MEU4ODYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6REEyN0EzRUY1QzM3MTFFNEE1ODA5RkNEOEU4MEU4ODYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpEQTI3QTNFQzVDMzcxMUU0QTU4MDlGQ0Q4RTgwRTg4NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpEQTI3QTNFRDVDMzcxMUU0QTU4MDlGQ0Q4RTgwRTg4NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PuHAU7gAAA6nSURBVHja7J17TBTXF8dxUTAmYrF/1AeV+gii5eEriMYHNK2gxvhINdGoFaKoiRG0GjVGRZv+YYhF0jRoGlsJmrTGRPiDiFWrqC2ojeKr1gci4tsoRWOjRqHf356fN7czs7N39jG7K+fzx2b27pmZuzPnnsede+84whiGYRiGsR0HXwKGYRiGYQfMMAzDMOyAGYZhGIZhB8wwDMMw7IAZhmEYhmEHzDAMwzDsgBmGYRiGYQfMMAzDMOyAGYZhGF8QERGRlpbWrl07vhTsgBmGYRhbiYuLGz16NF8HdsAMwzCM3cTHx48aNYqvAztgJtjp2LFjdHR0ZGQkXwqGeWcYOHDgyJEj+TqEHO35ErzbdOjQISMjY9y4campqYiUO3fuTOXNzc2XL1+urq4+cODAoUOH3rx5w9fKY9LS0vD5999/19bWWtrxvffew77JycnYbmhoOHr06M2bN10Jf+QEGxBTr9jYsWNd/Xru3DkcCtWWCzds2CC2q6qqXJ0LNc/NzRVfS0pKTGrO2EBCQkJLS0tNTU2bvQIREREFBQWzZ8/u2rWr/WdvamoqLS1duXLlq1ev1Pfip/f/Yd68ebGxsYY/GRojcwNHbNy4UTZtbk0V1cHE9inSrVu3vLy8BQsWuFXH+/fvb9++/dtvv338+DHrgFUKCwtxnckvpqenq+8IfcCO8GRy4datW5ctW2Yo/+OPP0I3/tdolQfd4BT5+fkmAvC+OKNQUdDa2iq2y8rKpk6d6kpLUR/xFX/cS3Vl3BIVFdWrV6+LFy/KLodU4tSpUykpKdg4e/bs6dOnvTkLdHLy5MmGmjxlyhT8RFEgYk2YMsOIU1GMTkQyRUVFhlYRrQP/CJ+oj9voFprcv3//7Ozse/fu2X93unfv/sMPPyCoXb16Neuqhxw5cqTVNfX19YMGDdIYuFZ3yKYNULbktg5yImKVyMjItWvXPnv2rNUKiOCWL18eHh7OamAp9xUXEDfOktuWd5QVT3ZssrXSa5SKA1a59fIZNT9p4gPBvn37ZDG3Ws14CRrmzJkzc3JykpKSZAec4wTbAwYMQLSN7aFDh3p8Ftxu2AG9jqHc0DZCjT0QE1YOigcVbXJCDttQzeDRVSqP/AFecPz48Xfv3m21F5wR58XZOYfxgQOGWqT9F4SZ8L7kg2WTRAYOMVqaa2x2wL1790YIrIkbiouLp02bhqaLtNjhcHTp0gWhItR6y5YtdXV1sjAy7549e7ImWLJWhg54w1v0d1y4bYruqRAGCF9lJUEJNnAEUe6xA9YHBzg49FzvQTWWhRIs/R/XiLEDtoE+ffqQi01ISNA7YNC3b1/6KjtpS9Gk0DTDeBHaTvoABRCqJXtHRTH8Kps4ag76uJOCTsN41BCqtv3eV/hgTQeS74mNjYUpb2hoePnyJT63bdvmqsNWI4ntAEqa1FPd+QmjI5skUi/F1McGB5yamiq7hF9//VXFMn7yySeVlZVir4cPH3rWgNsaFJ6LXFCjBuJ66m+l8HyauyMcM2UMrvJXnzhgQhhckaOI7hDawL8z7H/WiLEDtod+/fqRDx44cKDeAY8cORLbuDsffPCB+jEhD/WQ7YZGxwxNn1BjqJAlMVEip7z1TuS9Bg0ahCppEh4VB9waOPzrgDMzM58+fao5JUpQbo/kgwcP1q9fjygPaodPbKPEG0mrzk//a7A54E6dOtXU1GD369evw61a2nfixImNjY3Y9/Dhw7hubOzMofCcDIRVB0y9KbAvrpSEDmWDA9YLiK/CN+stoIg5REc6O2DbiIuLIx8cHx8vO2AE39jIzs7u1q2bpQMaqpk+3tKrK3wkCZMrVRQTJk5v9GSXT+qneeT37jlg1WlIuHY///yzGEMrQMmePXvkWMZPkgiapk6dumnTprq6ulevXuET2yjZuXOnZ5Ie09zcHLSN859//pk0adJ33303ZMgQpL9UGB4e/tlnnxUVFdXW1qLyUJEnT56cOXOmoKAAdtPh+L8OVFRUQN23bds2bdo0SwP52iC4UORWs7KyNKOIFVtTmHPsib6XRf66cePGdm+xNLzLJ5SUlAj7q6kkdSeWlZV58N8ZL7l69erx48exMXr0aDhjKhw2bFhSUtLr168rKyvv379v6YCymhmO76PuQ726ihLSZ0UxxZgATWzZsmVWpxUECYhCtm7dqpLGqDrgNWvWREVFGf4Ef7lq1Sp/SxYXF//+++8aMZSg3DNJD4wmhfmwO8F87x89erRkyZKnT5+GOYfLwkOgxf7yyy9Lly5NTk6mCx4dHT148OAVK1Yg8Lx06dL06dNp38ePHy9evDiYI4wgAUEe/BDamMnQX2HR5DHGRLoT/Whn4epsG1Eszqi3dELPv/jiC7lcPMwrLy9nTQgIf/3114kTJ6BaYu4vAu43b96gmdOTSN9Cds9QJ6mQZoIoigEa8KxJnMQoaChYXl4edkH7CtEbRJP01q1b51ZSdR7w+PHjTX6dMGGCvyVdZQC7du0SqZ4lSRVfa5jx6IfL02xOw0PBrgUqS3j//ffhJ5AQm4vFx8fv2bPnp59+WrhwIbltxpzCwkLoA9RA71kVMTRSQsegMCL79HcSL4yg3pviD8IHwxpCUraPNHUEldy5c6c3Y/UZb/jzzz/Dw8NHjBhBX1taWuB9b9++HRKVr6qqQuSHwI5aEIwnFIzcLWwprBa0y9X8txBizpw5Kj5YiZcvX5r0feNXf0u6SudR7pmkIebTkGB5Nb0obqd52D8KWo5bxRVGUltcXAxjmpCQEBMTk5iY+Pnnn+/YsUM8gH/+/DmvKKt4VV3dWUvTkDTg1ohRMIYDj+X5TuqH9XgaEv0XMdiKJjqHSQNtaBdxfH4GHBAyMzPpGTBNAvYJeh0zsUjyT4piBD3iLXQCzRfTAUiSelnkUdn79u1z+zw4eJ4B01eV1Y1UM+AHDx58+OGHrn6Vnzr4T7Kurk4v1rNnT88kzRMUTY5Cz71ghmCS9FPCkRwgGzA8VACXB8JfyM7ORi6F0PLrr7+WB0cgUr5w4cLevXu//PLLTZs2LV68eObMmfRgiTHvWaJRweadz1aPCRsknG5WVpYrXfITJkt/IANG3VBDJCuUoIh62pCjM+YkJSX16tVLbMO43bp1K1QqP3jwYLEQBxQeqTCyXpqzB02D4sHdwhnD0lIqTFNDe/fuHULDDhobG33mgPfv3y8Gu+uprKz0t+SsWbO++uorwzTfM0lz16XvXYSRoqWIYIKhBxov63FvpF/ZvXt3dXX1jRs3XAlAm5cuXfrNN9/wOoIq5ObmwhvholVVVelzPvEkwtJSkVAniv2p281PT38NY0TDpSg16gFTCJ0XvdD0PBgbvO5VYElISEhNTRVfHQ7HuHHjYN9CpReaIj/5KS90LD8/Hx6XwkFKl9EiyDRR1zRUMYQeDJeWlvrsWGh++vlCYtaQ5nG6PyQR3+lXG0cJyj2TNMS8+1f0v4nOkGCbhmQeLyNrQVD24sUL6PT3338fHx/PhswSij26wrkSrrROPppwwyau2h/TkFxpqZCfMmWKmEyFP6KZNMxd0AFhwIABSF0WLFjw8ccfUxf0sGHDaA6S96vo6HWMZp3pV7MKe9uTTE8oFMVcmdb6+vqmpiZhWqlfWmN7DWelyzUPC44u6Obm5qKiIl+OgobJnjFjxrNnzzTlKEG5nD/5SZJST83sXpSg3DNJDxC5gvrc8CBh+vTpZ86cmTt3bkxMTGRkZGxs7Pz588+fP5+RkcHmzE8ceYtmFLFwXbRKMyW+IDj71pABU6tB8xHjn2Fc+P4Giv79+9NwjWPHjl27do0K//jjDzTn9u3bo0V3797dt2ekJ26Gj2CpkAQUxQxBdovwTp53RF1NGtsbKoa3S5cuubm5KpM5LbyOsLKyMjExcfv27ciicGh8Yht5lb5f11ASJV5KpqSk9OjRAxYNHhqf2EaJouTw4cMV+59NELoVch22FRUVaKKawuPHj3szbqgNopkxqZk6efToUVczKfXprPC+6enpQT6xjaoH+0i9MjCR/MAiUMTFxY0ZM4Ya75UrV+SfampqLl68CB+cmZlpdS0Oc86dO0dKq/F/IiAjr6kopodiO6iZzaMfggFrryNsaGhYtGjRuySpDi3xQXY25AwQLdCBmtMKduDkyZPIunjBjYAgXuQHi2M4h82DNxv6j5KSEuo8JMPKw68CRd++fceOHYsI77fffrt8+bJeoL6+Hg28Q4cOkLS6HId5BAaFpLmt8mAXUmOxHouimN6uFhYWwqJmZWVp0m45mXabQwvu3bvn8z4AFTy74Pw+YOOIzHABfcp9NYpCymGSSmrmJUPbXHU2ypKGdSA8WyDm0aNHGRkZ1dXVMTEx169fhz/mWb9+RdxNfbgmcoI8J/p9rb7Z0K/UOhHWsA2mKcGAw+FISUmB90UTvnTpkl6gT58+0BmIoXXrVyLyvu8Hhis/Px/+tby8nAbGk4GSfa2imAyNftA/goHDxnHQOmjUlXiXq0klnzx5Atc7f/78HTt2+LYPwC137tzJycnBSVEH1lXPMZkHjOgSSqDpXfHgdYRuJc3nIns54CUxMfHatWv9+vXje+1DLA10kodTuUJ/qEANwhKBguG7GXgQlp1ERUWJHixCrAWNdk0LRH/66afqr4s2UQATXZJfYKp/UaCimMhGTF5+Q5YQn7R2uuH8eBm46oqKCptdrwCJDc6+efNmS3u1Y7Vua6DRcs+zbyH3o9hvDMvidkkB/aHkvdSnAH3kJMxKn7bhfxFnv+lEf/wArvjWxtuy7JbgqA4fPtzS0uK9MhvqGC0RSGs+m8xhUxSDRhl2Pmv6ipKTk8OcK7W5VWBcjYKCgjlz5kRHR9t/LxBnlJaWrly50pJ1ZQfMMAwT8g64oaHh4MGDXnpfxmYcfAkYhmFCmsbGRva+7IAZhmEYW7l9+zZ7X4ZhGIaxj4iIiEmTJrVvz5NZGIZhGIZhlOEuaIZhGIZhB8wwDMMw7IAZhmEYhvET/wowADOhvI/6on5eAAAAAElFTkSuQmCC');
+            left: 50%;
+            margin-left: -135px;
+            top: 104px;
+            -webkit-background-size: 100% auto;
+            background-size: 100% auto;
+        }
+
+        :before,
+        :after {
+            -webkit-box-sizing: border-box;
+            -moz-box-sizing: border-box;
+            box-sizing: border-box;
+        }
+
+        .phone-link {
+            position: absolute;
+            width: 100%;
+            top: 100%;
+            left: 0;
+            text-align: center;
+            margin-top: 25px;
+            margin-bottom: 25px;
+        }
+
+        a,
+        a:focus,
+        a:active,
+        a:visited {
+            color: #018efb;
+            text-decoration: underline;
+        }
+
+        ol {
+            width: 90%;
+            margin-left: 40px;
+            list-style: decimal;
+            text-align: left;
+        }
+
+        ol li {
+            margin: 10px 0;
+        }
+    </style>
+</head>
+
+<body>
+    <div style="max-width:1024px;margin:0 auto;">
+        <div class="docs-header-content" style="transform:none;-webkit-transform:none;">
+            <p class="docs-subtitle">pdfh5.js - 移动端预览PDF插件,基于pdf.js和jQuery</p>
+            <a href="//github.com/gjTool/pdfh5"
+                style="display:block;margin-bottom:30px;">
+                <div id="code"></div>
+            </a>
+            <iframe class="github-btn"
+                src="//ghbtns.com/github-btn.html?user=gjtool&amp;repo=pdfh5&amp;type=watch&amp;count=true" width="100"
+                height="20">
+            </iframe>
+            <iframe class="github-btn"
+                src="//ghbtns.com/github-btn.html?user=gjtool&amp;repo=pdfh5&amp;type=fork&amp;count=true" width="100"
+                height="20">
+            </iframe>
+            <p style="text-align: left;margin-top: 20px;">本插件所需文件如下:</p>
+            <ol>
+                <li><a target="_blank" download="cmaps.zip"
+                        href="//www.gjtool.cn/download/cmaps.zip">cmaps文件夹-解决字体不全问题(下载压缩包解压) 下载大小:969kb</a></li>
+                <li><a target="_blank" download="pdf.js" href="//www.gjtool.cn/pdfh5/js/pdf.js">pdf.js 下载大小:317kb</a></li>
+                <li><a target="_blank" download="pdf.worker.js" href="//www.gjtool.cn/pdfh5/js/pdf.worker.js">pdf.worker.js
+                        下载大小:749kb</a></li>
+                <li><a target="_blank" download="js"
+                        href="//www.gjtool.cn/pdfh5/js/jquery-2.1.1.min.js">jquery-2.1.1.min.js 下载大小:94kb</a></li>
+                <li><a target="_blank" download="pdfh5.js" href="//www.gjtool.cn/pdfh5/js/pdfh5.js">pdfh5.js 下载大小:22kb</a>
+                </li>
+                <li><a target="_blank" download="pdfh5.css" href="//www.gjtool.cn/pdfh5/css/pdfh5.css">pdfh5.css 下载大小:9kb</a>
+                </li>
+            </ol>
+
+        </div>
+        <p style="text-align: left;margin-top: 20px;padding-left: 10px;">pdfh5支持在线预览,修改地址栏file=后的地址就行,如果不填写,就在实例化的时候传入pdf地址:</p>
+        <a target="_blank"
+            href="//www.gjtool.cn/pdfh5/pdf.html?file=//www.gjtool.cn/pdfh5/test.pdf" style="padding-left: 10px;">http://www.gjtool.cn/pdfh5/pdf.html?file=//www.gjtool.cn/pdfh5/test.pdf</a>
+        <p style="text-align: left;margin-top: 20px;padding-left: 10px;">
+            默认优先获取浏览器地址栏?file=后面的地址,如果地址栏没有,再拿配置项的pdfurl或者data来渲染pdf。pdfh5实例初始化:</p>
+<pre style="text-align: left;margin-top: 20px;background: #111;color:aqua">
+    var pdfh5 = new Pdfh5('.pdfjs', {
+        pdfurl: 'default.pdf'
+    });
+</pre>
+        <div class="phone">
+            <iframe src="pdf.html" frameborder="0" scrolling="no"></iframe>
+            <div class="statusbar"></div>
+            <a href="pdf.html" target="_blank"
+                style="display:block;width:60px;height:60px;position: absolute;bottom:20PX;left:50%;margin-left: -30px;z-index:100;"></a>
+            <p class="phone-link">
+                <a target="_blank" href="pdf.html">Open it in a new page</a>
+            </p>
+            <p style="position: absolute;bottom: -96px;left: 0;color: #777;font-size: 14px;
+            text-indent: 70px;">鄂ICP备19002193号-1</p>
+        </div>
+
+    </div>
+    <script src="js/jquery-2.1.1.min.js"></script>
+    <script src="js/jquery.qrcode.min.js"></script>
+    <script>
+        $('#code').qrcode(location.href);
+        var _hmt = _hmt || [];
+        (function () {
+            var hm = document.createElement("script");
+            hm.src = "https://hm.baidu.com/hm.js?d924028c274d650b6f12d391ec251143";
+            var s = document.getElementsByTagName("script")[0];
+            s.parentNode.insertBefore(hm, s);
+        })();
+        (function () {
+            var bp = document.createElement('script');
+            var curProtocol = window.location.protocol.split(':')[0];
+            if (curProtocol === 'https') {
+                bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
+            }
+            else {
+                bp.src = 'http://push.zhanzhang.baidu.com/push.js';
+            }
+            var s = document.getElementsByTagName("script")[0];
+            s.parentNode.insertBefore(bp, s);
+        })();
+    </script>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/node_modules/pdfh5/js/jquery-3.6.0.min.js b/node_modules/pdfh5/js/jquery-3.6.0.min.js
new file mode 100644
index 0000000..200b54e
--- /dev/null
+++ b/node_modules/pdfh5/js/jquery-3.6.0.min.js
@@ -0,0 +1,2 @@
+/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}S.fn=S.prototype={jquery:f,constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(n){return this.pushStack(S.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(S.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},S.extend=S.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(S.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||S.isPlainObject(n)?n:{},i=!1,a[t]=S.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},S.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?S.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:y}),"function"==typeof Symbol&&(S.fn[Symbol.iterator]=t[Symbol.iterator]),S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var d=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,S="sizzle"+1*new Date,p=n.document,k=0,r=0,m=ue(),x=ue(),A=ue(),N=ue(),j=function(e,t){return e===t&&(l=!0),0},D={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",F=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",B=new RegExp(M+"+","g"),$=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="<a id='"+S+"'></a><select id='"+S+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!=C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&D.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(j),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(B," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[k,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[k,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[S]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace($,"$1"));return s[S]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[k,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[S]||(e[S]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===k&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[S]&&(v=Ce(v)),y&&!y[S]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace($,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace($," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=A[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[S]?i.push(a):o.push(a);(a=A(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=k+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(k=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(k=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=S.split("").sort(j).join("")===S,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);S.find=d,S.expr=d.selectors,S.expr[":"]=S.expr.pseudos,S.uniqueSort=S.unique=d.uniqueSort,S.text=d.getText,S.isXMLDoc=d.isXML,S.contains=d.contains,S.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=S.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1<i.call(n,e)!==r}):S.filter(n,e,r)}S.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?S.find.matchesSelector(r,e)?[r]:[]:S.find.matches(e,S.grep(t,function(e){return 1===e.nodeType}))},S.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(S(e).filter(function(){for(t=0;t<r;t++)if(S.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)S.find(e,i[t],n);return 1<r?S.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&k.test(e)?S(e):e||[],!1).length}});var D,q=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(S.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&S(e);if(!k.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&S.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?S.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(S(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(S.uniqueSort(S.merge(this.get(),S(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),S.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,"parentNode")},parentsUntil:function(e,t,n){return h(e,"parentNode",n)},next:function(e){return O(e,"nextSibling")},prev:function(e){return O(e,"previousSibling")},nextAll:function(e){return h(e,"nextSibling")},prevAll:function(e){return h(e,"previousSibling")},nextUntil:function(e,t,n){return h(e,"nextSibling",n)},prevUntil:function(e,t,n){return h(e,"previousSibling",n)},siblings:function(e){return T((e.parentNode||{}).firstChild,e)},children:function(e){return T(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(A(e,"template")&&(e=e.content||e),S.merge([],e.childNodes))}},function(r,i){S.fn[r]=function(e,t){var n=S.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=S.filter(t,n)),1<this.length&&(H[r]||S.uniqueSort(n),L.test(r)&&n.reverse()),this.pushStack(n)}});var P=/[^\x20\t\r\n\f]+/g;function R(e){return e}function M(e){throw e}function I(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}S.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},S.each(e.match(P)||[],function(e,t){n[t]=!0}),n):S.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){S.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return S.each(arguments,function(e,t){var n;while(-1<(n=S.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<S.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},S.extend({Deferred:function(e){var o=[["notify","progress",S.Callbacks("memory"),S.Callbacks("memory"),2],["resolve","done",S.Callbacks("once memory"),S.Callbacks("once memory"),0,"resolved"],["reject","fail",S.Callbacks("once memory"),S.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return S.Deferred(function(r){S.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,R,s),l(u,o,M,s)):(u++,t.call(e,l(u,o,R,s),l(u,o,M,s),l(u,o,R,o.notifyWith))):(a!==R&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){S.Deferred.exceptionHook&&S.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==M&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(S.Deferred.getStackHook&&(t.stackTrace=S.Deferred.getStackHook()),C.setTimeout(t))}}return S.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:R,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:R)),o[2][3].add(l(0,e,m(n)?n:M))}).promise()},promise:function(e){return null!=e?S.extend(e,a):a}},s={};return S.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=S.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(I(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)I(i[t],a(t),o.reject);return o.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;S.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&W.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},S.readyException=function(e){C.setTimeout(function(){throw e})};var F=S.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),S.ready()}S.fn.ready=function(e){return F.then(e)["catch"](function(e){S.readyException(e)}),this},S.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--S.readyWait:S.isReady)||(S.isReady=!0)!==e&&0<--S.readyWait||F.resolveWith(E,[S])}}),S.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(S.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var $=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)$(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(S(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},_=/^-ms-/,z=/-([a-z])/g;function U(e,t){return t.toUpperCase()}function X(e){return e.replace(_,"ms-").replace(z,U)}var V=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function G(){this.expando=S.expando+G.uid++}G.uid=1,G.prototype={cache:function(e){var t=e[this.expando];return t||(t={},V(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[X(t)]=n;else for(r in t)i[X(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][X(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(X):(t=X(t))in r?[t]:t.match(P)||[]).length;while(n--)delete r[t[n]]}(void 0===t||S.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!S.isEmptyObject(t)}};var Y=new G,Q=new G,J=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,K=/[A-Z]/g;function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(K,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:J.test(i)?JSON.parse(i):i)}catch(e){}Q.set(e,t,n)}else n=void 0;return n}S.extend({hasData:function(e){return Q.hasData(e)||Y.hasData(e)},data:function(e,t,n){return Q.access(e,t,n)},removeData:function(e,t){Q.remove(e,t)},_data:function(e,t,n){return Y.access(e,t,n)},_removeData:function(e,t){Y.remove(e,t)}}),S.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=Q.get(o),1===o.nodeType&&!Y.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=X(r.slice(5)),Z(o,r,i[r]));Y.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){Q.set(this,n)}):$(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=Q.get(o,n))?t:void 0!==(t=Z(o,n))?t:void 0;this.each(function(){Q.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){Q.remove(this,e)})}}),S.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Y.get(e,t),n&&(!r||Array.isArray(n)?r=Y.access(e,t,S.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=S.queue(e,t),r=n.length,i=n.shift(),o=S._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){S.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Y.get(e,n)||Y.access(e,n,{empty:S.Callbacks("once memory").add(function(){Y.remove(e,[t+"queue",n])})})}}),S.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?S.queue(this[0],t):void 0===n?this:this.each(function(){var e=S.queue(this,t,n);S._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&S.dequeue(this,t)})},dequeue:function(e){return this.each(function(){S.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=S.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Y.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var ee=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,te=new RegExp("^(?:([+-])=|)("+ee+")([a-z%]*)$","i"),ne=["Top","Right","Bottom","Left"],re=E.documentElement,ie=function(e){return S.contains(e.ownerDocument,e)},oe={composed:!0};re.getRootNode&&(ie=function(e){return S.contains(e.ownerDocument,e)||e.getRootNode(oe)===e.ownerDocument});var ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&ie(e)&&"none"===S.css(e,"display")};function se(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return S.css(e,t,"")},u=s(),l=n&&n[3]||(S.cssNumber[t]?"":"px"),c=e.nodeType&&(S.cssNumber[t]||"px"!==l&&+u)&&te.exec(S.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)S.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,S.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ue={};function le(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Y.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ae(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ue[s])||(o=a.body.appendChild(a.createElement(s)),u=S.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ue[s]=u)))):"none"!==n&&(l[c]="none",Y.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}S.fn.extend({show:function(){return le(this,!0)},hide:function(){return le(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?S(this).show():S(this).hide()})}});var ce,fe,pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="<option></option>",y.option=!!ce.lastChild;var ge={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Y.set(e[n],"globalEval",!t||Y.get(t[n],"globalEval"))}ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td,y.option||(ge.optgroup=ge.option=[1,"<select multiple='multiple'>","</select>"]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))S.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+S.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;S.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<S.inArray(o,r))i&&i.push(o);else if(l=ie(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}var be=/^([^.]*)(?:\.(.+)|)/;function we(){return!0}function Te(){return!1}function Ce(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ee(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ee(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Te;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return S().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=S.guid++)),e.each(function(){S.event.add(this,t,i,r,n)})}function Se(e,i,o){o?(Y.set(e,i,!1),S.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Y.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(S.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Y.set(this,i,r),t=o(this,i),this[i](),r!==(n=Y.get(this,i))||t?Y.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n&&n.value}else r.length&&(Y.set(this,i,{value:S.event.trigger(S.extend(r[0],S.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,i)&&S.event.add(e,i,we)}S.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.get(t);if(V(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&S.find.matchesSelector(re,i),n.guid||(n.guid=S.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof S&&S.event.triggered!==e.type?S.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(P)||[""]).length;while(l--)d=g=(s=be.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=S.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=S.event.special[d]||{},c=S.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&S.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),S.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.hasData(e)&&Y.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(P)||[""]).length;while(l--)if(d=g=(s=be.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=S.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||S.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)S.event.remove(e,d+t[l],n,r,!0);S.isEmptyObject(u)&&Y.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=S.event.fix(e),l=(Y.get(this,"events")||Object.create(null))[u.type]||[],c=S.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=S.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((S.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<S(i,this).index(l):S.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(S.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[S.expando]?e:new S.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Se(t,"click",we),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Se(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Y.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},S.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},S.Event=function(e,t){if(!(this instanceof S.Event))return new S.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?we:Te,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&S.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[S.expando]=!0},S.Event.prototype={constructor:S.Event,isDefaultPrevented:Te,isPropagationStopped:Te,isImmediatePropagationStopped:Te,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=we,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=we,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=we,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},S.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},S.event.addProp),S.each({focus:"focusin",blur:"focusout"},function(e,t){S.event.special[e]={setup:function(){return Se(this,e,Ce),!1},trigger:function(){return Se(this,e),!0},_default:function(){return!0},delegateType:t}}),S.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){S.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||S.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),S.fn.extend({on:function(e,t,n,r){return Ee(this,e,t,n,r)},one:function(e,t,n,r){return Ee(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,S(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Te),this.each(function(){S.event.remove(this,e,n,t)})}});var ke=/<script|<style|<link/i,Ae=/checked\s*(?:[^=]|=\s*.checked.)/i,Ne=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)S.event.add(t,i,s[i][n]);Q.hasData(e)&&(o=Q.access(e),a=S.extend({},o),Q.set(t,a))}}function He(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Ae.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),He(t,r,i,o)});if(f&&(t=(e=xe(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=S.map(ve(e,"script"),De)).length;c<f;c++)u=e,c!==p&&(u=S.clone(u,!0,!0),s&&S.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,S.map(a,qe),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Y.access(u,"globalEval")&&S.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?S._evalUrl&&!u.noModule&&S._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):b(u.textContent.replace(Ne,""),u,l))}return n}function Oe(e,t,n){for(var r,i=t?S.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||S.cleanData(ve(r)),r.parentNode&&(n&&ie(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}S.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=ie(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||S.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Le(o[r],a[r]);else Le(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=S.event.special,o=0;void 0!==(n=e[o]);o++)if(V(n)){if(t=n[Y.expando]){if(t.events)for(r in t.events)i[r]?S.event.remove(n,r):S.removeEvent(n,r,t.handle);n[Y.expando]=void 0}n[Q.expando]&&(n[Q.expando]=void 0)}}}),S.fn.extend({detach:function(e){return Oe(this,e,!0)},remove:function(e){return Oe(this,e)},text:function(e){return $(this,function(e){return void 0===e?S.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return He(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||je(this,e).appendChild(e)})},prepend:function(){return He(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=je(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(S.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return S.clone(this,e,t)})},html:function(e){return $(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!ke.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=S.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(S.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return He(this,arguments,function(e){var t=this.parentNode;S.inArray(this,n)<0&&(S.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),S.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){S.fn[e]=function(e){for(var t,n=[],r=S(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),S(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var Pe=new RegExp("^("+ee+")(?!px)[a-z%]+$","i"),Re=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Me=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},Ie=new RegExp(ne.join("|"),"i");function We(e,t,n){var r,i,o,a,s=e.style;return(n=n||Re(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||ie(e)||(a=S.style(e,t)),!y.pixelBoxStyles()&&Pe.test(a)&&Ie.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function Fe(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",re.appendChild(u).appendChild(l);var e=C.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),r=36===t(e.width),l.style.position="absolute",i=12===t(l.offsetWidth/3),re.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=E.createElement("div"),l=E.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===l.style.backgroundClip,S.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=E.createElement("table"),t=E.createElement("tr"),n=E.createElement("div"),e.style.cssText="position:absolute;left:-11111px;border-collapse:separate",t.style.cssText="border:1px solid",t.style.height="1px",n.style.height="9px",n.style.display="block",re.appendChild(e).appendChild(t).appendChild(n),r=C.getComputedStyle(t),a=parseInt(r.height,10)+parseInt(r.borderTopWidth,10)+parseInt(r.borderBottomWidth,10)===t.offsetHeight,re.removeChild(e)),a}}))}();var Be=["Webkit","Moz","ms"],$e=E.createElement("div").style,_e={};function ze(e){var t=S.cssProps[e]||_e[e];return t||(e in $e?e:_e[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Be.length;while(n--)if((e=Be[n]+t)in $e)return e}(e)||e)}var Ue=/^(none|table(?!-c[ea]).+)/,Xe=/^--/,Ve={position:"absolute",visibility:"hidden",display:"block"},Ge={letterSpacing:"0",fontWeight:"400"};function Ye(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Qe(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=S.css(e,n+ne[a],!0,i)),r?("content"===n&&(u-=S.css(e,"padding"+ne[a],!0,i)),"margin"!==n&&(u-=S.css(e,"border"+ne[a]+"Width",!0,i))):(u+=S.css(e,"padding"+ne[a],!0,i),"padding"!==n?u+=S.css(e,"border"+ne[a]+"Width",!0,i):s+=S.css(e,"border"+ne[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function Je(e,t,n){var r=Re(e),i=(!y.boxSizingReliable()||n)&&"border-box"===S.css(e,"boxSizing",!1,r),o=i,a=We(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Pe.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||!y.reliableTrDimensions()&&A(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===S.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===S.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+Qe(e,t,n||(i?"border":"content"),o,r,a)+"px"}function Ke(e,t,n,r,i){return new Ke.prototype.init(e,t,n,r,i)}S.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=We(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),u=Xe.test(t),l=e.style;if(u||(t=ze(s)),a=S.cssHooks[t]||S.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=te.exec(n))&&i[1]&&(n=se(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(S.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=X(t);return Xe.test(t)||(t=ze(s)),(a=S.cssHooks[t]||S.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=We(e,t,r)),"normal"===i&&t in Ge&&(i=Ge[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),S.each(["height","width"],function(e,u){S.cssHooks[u]={get:function(e,t,n){if(t)return!Ue.test(S.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?Je(e,u,n):Me(e,Ve,function(){return Je(e,u,n)})},set:function(e,t,n){var r,i=Re(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===S.css(e,"boxSizing",!1,i),s=n?Qe(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-Qe(e,u,"border",!1,i)-.5)),s&&(r=te.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=S.css(e,u)),Ye(0,t,s)}}}),S.cssHooks.marginLeft=Fe(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(We(e,"marginLeft"))||e.getBoundingClientRect().left-Me(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),S.each({margin:"",padding:"",border:"Width"},function(i,o){S.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+ne[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(S.cssHooks[i+o].set=Ye)}),S.fn.extend({css:function(e,t){return $(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Re(e),i=t.length;a<i;a++)o[t[a]]=S.css(e,t[a],!1,r);return o}return void 0!==n?S.style(e,t,n):S.css(e,t)},e,t,1<arguments.length)}}),((S.Tween=Ke).prototype={constructor:Ke,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||S.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(S.cssNumber[n]?"":"px")},cur:function(){var e=Ke.propHooks[this.prop];return e&&e.get?e.get(this):Ke.propHooks._default.get(this)},run:function(e){var t,n=Ke.propHooks[this.prop];return this.options.duration?this.pos=t=S.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Ke.propHooks._default.set(this),this}}).init.prototype=Ke.prototype,(Ke.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=S.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){S.fx.step[e.prop]?S.fx.step[e.prop](e):1!==e.elem.nodeType||!S.cssHooks[e.prop]&&null==e.elem.style[ze(e.prop)]?e.elem[e.prop]=e.now:S.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=Ke.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},S.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},S.fx=Ke.prototype.init,S.fx.step={};var Ze,et,tt,nt,rt=/^(?:toggle|show|hide)$/,it=/queueHooks$/;function ot(){et&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(ot):C.setTimeout(ot,S.fx.interval),S.fx.tick())}function at(){return C.setTimeout(function(){Ze=void 0}),Ze=Date.now()}function st(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ne[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function ut(e,t,n){for(var r,i=(lt.tweeners[t]||[]).concat(lt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function lt(o,e,t){var n,a,r=0,i=lt.prefilters.length,s=S.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=Ze||at(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:S.extend({},e),opts:S.extend(!0,{specialEasing:{},easing:S.easing._default},t),originalProperties:e,originalOptions:t,startTime:Ze||at(),duration:t.duration,tweens:[],createTween:function(e,t){var n=S.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=X(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=S.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=lt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(S._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return S.map(c,ut,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),S.fx.timer(S.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}S.Animation=S.extend(lt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return se(n.elem,e,te.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(P);for(var n,r=0,i=e.length;r<i;r++)n=e[r],lt.tweeners[n]=lt.tweeners[n]||[],lt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),v=Y.get(e,"fxshow");for(r in n.queue||(null==(a=S._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,S.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],rt.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||S.style(e,r)}if((u=!S.isEmptyObject(t))||!S.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Y.get(e,"display")),"none"===(c=S.css(e,"display"))&&(l?c=l:(le([e],!0),l=e.style.display||l,c=S.css(e,"display"),le([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===S.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Y.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&le([e],!0),p.done(function(){for(r in g||le([e]),Y.remove(e,"fxshow"),d)S.style(e,r,d[r])})),u=ut(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?lt.prefilters.unshift(e):lt.prefilters.push(e)}}),S.speed=function(e,t,n){var r=e&&"object"==typeof e?S.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return S.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in S.fx.speeds?r.duration=S.fx.speeds[r.duration]:r.duration=S.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&S.dequeue(this,r.queue)},r},S.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=S.isEmptyObject(t),o=S.speed(e,n,r),a=function(){var e=lt(this,S.extend({},t),o);(i||Y.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=S.timers,r=Y.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&it.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||S.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Y.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=S.timers,o=n?n.length:0;for(t.finish=!0,S.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),S.each(["toggle","show","hide"],function(e,r){var i=S.fn[r];S.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(st(r,!0),e,t,n)}}),S.each({slideDown:st("show"),slideUp:st("hide"),slideToggle:st("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){S.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),S.timers=[],S.fx.tick=function(){var e,t=0,n=S.timers;for(Ze=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||S.fx.stop(),Ze=void 0},S.fx.timer=function(e){S.timers.push(e),S.fx.start()},S.fx.interval=13,S.fx.start=function(){et||(et=!0,ot())},S.fx.stop=function(){et=null},S.fx.speeds={slow:600,fast:200,_default:400},S.fn.delay=function(r,e){return r=S.fx&&S.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},tt=E.createElement("input"),nt=E.createElement("select").appendChild(E.createElement("option")),tt.type="checkbox",y.checkOn=""!==tt.value,y.optSelected=nt.selected,(tt=E.createElement("input")).value="t",tt.type="radio",y.radioValue="t"===tt.value;var ct,ft=S.expr.attrHandle;S.fn.extend({attr:function(e,t){return $(this,S.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){S.removeAttr(this,e)})}}),S.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?S.prop(e,t,n):(1===o&&S.isXMLDoc(e)||(i=S.attrHooks[t.toLowerCase()]||(S.expr.match.bool.test(t)?ct:void 0)),void 0!==n?null===n?void S.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=S.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(P);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ct={set:function(e,t,n){return!1===t?S.removeAttr(e,n):e.setAttribute(n,n),n}},S.each(S.expr.match.bool.source.match(/\w+/g),function(e,t){var a=ft[t]||S.find.attr;ft[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=ft[o],ft[o]=r,r=null!=a(e,t,n)?o:null,ft[o]=i),r}});var pt=/^(?:input|select|textarea|button)$/i,dt=/^(?:a|area)$/i;function ht(e){return(e.match(P)||[]).join(" ")}function gt(e){return e.getAttribute&&e.getAttribute("class")||""}function vt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(P)||[]}S.fn.extend({prop:function(e,t){return $(this,S.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[S.propFix[e]||e]})}}),S.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&S.isXMLDoc(e)||(t=S.propFix[t]||t,i=S.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=S.find.attr(e,"tabindex");return t?parseInt(t,10):pt.test(e.nodeName)||dt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(S.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),S.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){S.propFix[this.toLowerCase()]=this}),S.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).addClass(t.call(this,e,gt(this)))});if((e=vt(t)).length)while(n=this[u++])if(i=gt(n),r=1===n.nodeType&&" "+ht(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=ht(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).removeClass(t.call(this,e,gt(this)))});if(!arguments.length)return this.attr("class","");if((e=vt(t)).length)while(n=this[u++])if(i=gt(n),r=1===n.nodeType&&" "+ht(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=ht(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){S(this).toggleClass(i.call(this,e,gt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=S(this),r=vt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=gt(this))&&Y.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Y.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+ht(gt(n))+" ").indexOf(t))return!0;return!1}});var yt=/\r/g;S.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,S(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=S.map(t,function(e){return null==e?"":e+""})),(r=S.valHooks[this.type]||S.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=S.valHooks[t.type]||S.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(yt,""):null==e?"":e:void 0}}),S.extend({valHooks:{option:{get:function(e){var t=S.find.attr(e,"value");return null!=t?t:ht(S.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=S(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=S.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<S.inArray(S.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),S.each(["radio","checkbox"],function(){S.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<S.inArray(S(e).val(),t)}},y.checkOn||(S.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var mt=/^(?:focusinfocus|focusoutblur)$/,xt=function(e){e.stopPropagation()};S.extend(S.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!mt.test(d+S.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[S.expando]?e:new S.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:S.makeArray(t,[e]),c=S.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,mt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Y.get(o,"events")||Object.create(null))[e.type]&&Y.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&V(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!V(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),S.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,xt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,xt),S.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=S.extend(new S.Event,n,{type:e,isSimulated:!0});S.event.trigger(r,null,t)}}),S.fn.extend({trigger:function(e,t){return this.each(function(){S.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return S.event.trigger(e,t,n,!0)}}),y.focusin||S.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){S.event.simulate(r,e.target,S.event.fix(e))};S.event.special[r]={setup:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r);t||e.addEventListener(n,i,!0),Y.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r)-1;t?Y.access(e,r,t):(e.removeEventListener(n,i,!0),Y.remove(e,r))}}});var bt=C.location,wt={guid:Date.now()},Tt=/\?/;S.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||S.error("Invalid XML: "+(n?S.map(n.childNodes,function(e){return e.textContent}).join("\n"):e)),t};var Ct=/\[\]$/,Et=/\r?\n/g,St=/^(?:submit|button|image|reset|file)$/i,kt=/^(?:input|select|textarea|keygen)/i;function At(n,e,r,i){var t;if(Array.isArray(e))S.each(e,function(e,t){r||Ct.test(n)?i(n,t):At(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)At(n+"["+t+"]",e[t],r,i)}S.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!S.isPlainObject(e))S.each(e,function(){i(this.name,this.value)});else for(n in e)At(n,e[n],t,i);return r.join("&")},S.fn.extend({serialize:function(){return S.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=S.prop(this,"elements");return e?S.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!S(this).is(":disabled")&&kt.test(this.nodeName)&&!St.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=S(this).val();return null==n?null:Array.isArray(n)?S.map(n,function(e){return{name:t.name,value:e.replace(Et,"\r\n")}}):{name:t.name,value:n.replace(Et,"\r\n")}}).get()}});var Nt=/%20/g,jt=/#.*$/,Dt=/([?&])_=[^&]*/,qt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Lt=/^(?:GET|HEAD)$/,Ht=/^\/\//,Ot={},Pt={},Rt="*/".concat("*"),Mt=E.createElement("a");function It(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(P)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Wt(t,i,o,a){var s={},u=t===Pt;function l(e){var r;return s[e]=!0,S.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function Ft(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&S.extend(!0,e,r),e}Mt.href=bt.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:bt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(bt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Rt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":S.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Ft(Ft(e,S.ajaxSettings),t):Ft(S.ajaxSettings,e)},ajaxPrefilter:It(Ot),ajaxTransport:It(Pt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=S.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?S(y):S.event,x=S.Deferred(),b=S.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=qt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||bt.href)+"").replace(Ht,bt.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(P)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Mt.protocol+"//"+Mt.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=S.param(v.data,v.traditional)),Wt(Ot,v,t,T),h)return T;for(i in(g=S.event&&v.global)&&0==S.active++&&S.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Lt.test(v.type),f=v.url.replace(jt,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Nt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(Tt.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Dt,"$1"),o=(Tt.test(f)?"&":"?")+"_="+wt.guid+++o),v.url=f+o),v.ifModified&&(S.lastModified[f]&&T.setRequestHeader("If-Modified-Since",S.lastModified[f]),S.etag[f]&&T.setRequestHeader("If-None-Match",S.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+Rt+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=Wt(Pt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),!i&&-1<S.inArray("script",v.dataTypes)&&S.inArray("json",v.dataTypes)<0&&(v.converters["text script"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(S.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(S.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--S.active||S.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return S.get(e,t,n,"json")},getScript:function(e,t){return S.get(e,void 0,t,"script")}}),S.each(["get","post"],function(e,i){S[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),S.ajax(S.extend({url:e,type:i,dataType:r,data:t,success:n},S.isPlainObject(e)&&e))}}),S.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),S._evalUrl=function(e,t,n){return S.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){S.globalEval(e,t,n)}})},S.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=S(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){S(this).wrapInner(n.call(this,e))}):this.each(function(){var e=S(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){S(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){S(this).replaceWith(this.childNodes)}),this}}),S.expr.pseudos.hidden=function(e){return!S.expr.pseudos.visible(e)},S.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},S.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Bt={0:200,1223:204},$t=S.ajaxSettings.xhr();y.cors=!!$t&&"withCredentials"in $t,y.ajax=$t=!!$t,S.ajaxTransport(function(i){var o,a;if(y.cors||$t&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Bt[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),S.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),S.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return S.globalEval(e),e}}}),S.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),S.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=S("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=ht(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&S.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?S("<div>").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var Xt=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;S.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||S.guid++,i},S.holdReady=function(e){e?S.readyWait++:S.ready(!0)},S.isArray=Array.isArray,S.parseJSON=JSON.parse,S.nodeName=A,S.isFunction=m,S.isWindow=x,S.camelCase=X,S.type=w,S.now=Date.now,S.isNumeric=function(e){var t=S.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},S.trim=function(e){return null==e?"":(e+"").replace(Xt,"")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return S});var Vt=C.jQuery,Gt=C.$;return S.noConflict=function(e){return C.$===S&&(C.$=Gt),e&&C.jQuery===S&&(C.jQuery=Vt),S},"undefined"==typeof e&&(C.jQuery=C.$=S),S});
\ No newline at end of file
diff --git a/node_modules/pdfh5/js/jquery.qrcode.min.js b/node_modules/pdfh5/js/jquery.qrcode.min.js
new file mode 100644
index 0000000..3bab787
--- /dev/null
+++ b/node_modules/pdfh5/js/jquery.qrcode.min.js
@@ -0,0 +1,28 @@
+(function(r){r.fn.qrcode=function(h){var s;function u(a){this.mode=s;this.data=a}function o(a,c){this.typeNumber=a;this.errorCorrectLevel=c;this.modules=null;this.moduleCount=0;this.dataCache=null;this.dataList=[]}function q(a,c){if(void 0==a.length)throw Error(a.length+"/"+c);for(var d=0;d<a.length&&0==a[d];)d++;this.num=Array(a.length-d+c);for(var b=0;b<a.length-d;b++)this.num[b]=a[b+d]}function p(a,c){this.totalCount=a;this.dataCount=c}function t(){this.buffer=[];this.length=0}u.prototype={getLength:function(){return this.data.length},
+write:function(a){for(var c=0;c<this.data.length;c++)a.put(this.data.charCodeAt(c),8)}};o.prototype={addData:function(a){this.dataList.push(new u(a));this.dataCache=null},isDark:function(a,c){if(0>a||this.moduleCount<=a||0>c||this.moduleCount<=c)throw Error(a+","+c);return this.modules[a][c]},getModuleCount:function(){return this.moduleCount},make:function(){if(1>this.typeNumber){for(var a=1,a=1;40>a;a++){for(var c=p.getRSBlocks(a,this.errorCorrectLevel),d=new t,b=0,e=0;e<c.length;e++)b+=c[e].dataCount;
+for(e=0;e<this.dataList.length;e++)c=this.dataList[e],d.put(c.mode,4),d.put(c.getLength(),j.getLengthInBits(c.mode,a)),c.write(d);if(d.getLengthInBits()<=8*b)break}this.typeNumber=a}this.makeImpl(!1,this.getBestMaskPattern())},makeImpl:function(a,c){this.moduleCount=4*this.typeNumber+17;this.modules=Array(this.moduleCount);for(var d=0;d<this.moduleCount;d++){this.modules[d]=Array(this.moduleCount);for(var b=0;b<this.moduleCount;b++)this.modules[d][b]=null}this.setupPositionProbePattern(0,0);this.setupPositionProbePattern(this.moduleCount-
+7,0);this.setupPositionProbePattern(0,this.moduleCount-7);this.setupPositionAdjustPattern();this.setupTimingPattern();this.setupTypeInfo(a,c);7<=this.typeNumber&&this.setupTypeNumber(a);null==this.dataCache&&(this.dataCache=o.createData(this.typeNumber,this.errorCorrectLevel,this.dataList));this.mapData(this.dataCache,c)},setupPositionProbePattern:function(a,c){for(var d=-1;7>=d;d++)if(!(-1>=a+d||this.moduleCount<=a+d))for(var b=-1;7>=b;b++)-1>=c+b||this.moduleCount<=c+b||(this.modules[a+d][c+b]=
+0<=d&&6>=d&&(0==b||6==b)||0<=b&&6>=b&&(0==d||6==d)||2<=d&&4>=d&&2<=b&&4>=b?!0:!1)},getBestMaskPattern:function(){for(var a=0,c=0,d=0;8>d;d++){this.makeImpl(!0,d);var b=j.getLostPoint(this);if(0==d||a>b)a=b,c=d}return c},createMovieClip:function(a,c,d){a=a.createEmptyMovieClip(c,d);this.make();for(c=0;c<this.modules.length;c++)for(var d=1*c,b=0;b<this.modules[c].length;b++){var e=1*b;this.modules[c][b]&&(a.beginFill(0,100),a.moveTo(e,d),a.lineTo(e+1,d),a.lineTo(e+1,d+1),a.lineTo(e,d+1),a.endFill())}return a},
+setupTimingPattern:function(){for(var a=8;a<this.moduleCount-8;a++)null==this.modules[a][6]&&(this.modules[a][6]=0==a%2);for(a=8;a<this.moduleCount-8;a++)null==this.modules[6][a]&&(this.modules[6][a]=0==a%2)},setupPositionAdjustPattern:function(){for(var a=j.getPatternPosition(this.typeNumber),c=0;c<a.length;c++)for(var d=0;d<a.length;d++){var b=a[c],e=a[d];if(null==this.modules[b][e])for(var f=-2;2>=f;f++)for(var i=-2;2>=i;i++)this.modules[b+f][e+i]=-2==f||2==f||-2==i||2==i||0==f&&0==i?!0:!1}},setupTypeNumber:function(a){for(var c=
+j.getBCHTypeNumber(this.typeNumber),d=0;18>d;d++){var b=!a&&1==(c>>d&1);this.modules[Math.floor(d/3)][d%3+this.moduleCount-8-3]=b}for(d=0;18>d;d++)b=!a&&1==(c>>d&1),this.modules[d%3+this.moduleCount-8-3][Math.floor(d/3)]=b},setupTypeInfo:function(a,c){for(var d=j.getBCHTypeInfo(this.errorCorrectLevel<<3|c),b=0;15>b;b++){var e=!a&&1==(d>>b&1);6>b?this.modules[b][8]=e:8>b?this.modules[b+1][8]=e:this.modules[this.moduleCount-15+b][8]=e}for(b=0;15>b;b++)e=!a&&1==(d>>b&1),8>b?this.modules[8][this.moduleCount-
+b-1]=e:9>b?this.modules[8][15-b-1+1]=e:this.modules[8][15-b-1]=e;this.modules[this.moduleCount-8][8]=!a},mapData:function(a,c){for(var d=-1,b=this.moduleCount-1,e=7,f=0,i=this.moduleCount-1;0<i;i-=2)for(6==i&&i--;;){for(var g=0;2>g;g++)if(null==this.modules[b][i-g]){var n=!1;f<a.length&&(n=1==(a[f]>>>e&1));j.getMask(c,b,i-g)&&(n=!n);this.modules[b][i-g]=n;e--; -1==e&&(f++,e=7)}b+=d;if(0>b||this.moduleCount<=b){b-=d;d=-d;break}}}};o.PAD0=236;o.PAD1=17;o.createData=function(a,c,d){for(var c=p.getRSBlocks(a,
+c),b=new t,e=0;e<d.length;e++){var f=d[e];b.put(f.mode,4);b.put(f.getLength(),j.getLengthInBits(f.mode,a));f.write(b)}for(e=a=0;e<c.length;e++)a+=c[e].dataCount;if(b.getLengthInBits()>8*a)throw Error("code length overflow. ("+b.getLengthInBits()+">"+8*a+")");for(b.getLengthInBits()+4<=8*a&&b.put(0,4);0!=b.getLengthInBits()%8;)b.putBit(!1);for(;!(b.getLengthInBits()>=8*a);){b.put(o.PAD0,8);if(b.getLengthInBits()>=8*a)break;b.put(o.PAD1,8)}return o.createBytes(b,c)};o.createBytes=function(a,c){for(var d=
+0,b=0,e=0,f=Array(c.length),i=Array(c.length),g=0;g<c.length;g++){var n=c[g].dataCount,h=c[g].totalCount-n,b=Math.max(b,n),e=Math.max(e,h);f[g]=Array(n);for(var k=0;k<f[g].length;k++)f[g][k]=255&a.buffer[k+d];d+=n;k=j.getErrorCorrectPolynomial(h);n=(new q(f[g],k.getLength()-1)).mod(k);i[g]=Array(k.getLength()-1);for(k=0;k<i[g].length;k++)h=k+n.getLength()-i[g].length,i[g][k]=0<=h?n.get(h):0}for(k=g=0;k<c.length;k++)g+=c[k].totalCount;d=Array(g);for(k=n=0;k<b;k++)for(g=0;g<c.length;g++)k<f[g].length&&
+(d[n++]=f[g][k]);for(k=0;k<e;k++)for(g=0;g<c.length;g++)k<i[g].length&&(d[n++]=i[g][k]);return d};s=4;for(var j={PATTERN_POSITION_TABLE:[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,
+78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],G15:1335,G18:7973,G15_MASK:21522,getBCHTypeInfo:function(a){for(var c=a<<10;0<=j.getBCHDigit(c)-j.getBCHDigit(j.G15);)c^=j.G15<<j.getBCHDigit(c)-j.getBCHDigit(j.G15);return(a<<10|c)^j.G15_MASK},getBCHTypeNumber:function(a){for(var c=a<<12;0<=j.getBCHDigit(c)-
+j.getBCHDigit(j.G18);)c^=j.G18<<j.getBCHDigit(c)-j.getBCHDigit(j.G18);return a<<12|c},getBCHDigit:function(a){for(var c=0;0!=a;)c++,a>>>=1;return c},getPatternPosition:function(a){return j.PATTERN_POSITION_TABLE[a-1]},getMask:function(a,c,d){switch(a){case 0:return 0==(c+d)%2;case 1:return 0==c%2;case 2:return 0==d%3;case 3:return 0==(c+d)%3;case 4:return 0==(Math.floor(c/2)+Math.floor(d/3))%2;case 5:return 0==c*d%2+c*d%3;case 6:return 0==(c*d%2+c*d%3)%2;case 7:return 0==(c*d%3+(c+d)%2)%2;default:throw Error("bad maskPattern:"+
+a);}},getErrorCorrectPolynomial:function(a){for(var c=new q([1],0),d=0;d<a;d++)c=c.multiply(new q([1,l.gexp(d)],0));return c},getLengthInBits:function(a,c){if(1<=c&&10>c)switch(a){case 1:return 10;case 2:return 9;case s:return 8;case 8:return 8;default:throw Error("mode:"+a);}else if(27>c)switch(a){case 1:return 12;case 2:return 11;case s:return 16;case 8:return 10;default:throw Error("mode:"+a);}else if(41>c)switch(a){case 1:return 14;case 2:return 13;case s:return 16;case 8:return 12;default:throw Error("mode:"+
+a);}else throw Error("type:"+c);},getLostPoint:function(a){for(var c=a.getModuleCount(),d=0,b=0;b<c;b++)for(var e=0;e<c;e++){for(var f=0,i=a.isDark(b,e),g=-1;1>=g;g++)if(!(0>b+g||c<=b+g))for(var h=-1;1>=h;h++)0>e+h||c<=e+h||0==g&&0==h||i==a.isDark(b+g,e+h)&&f++;5<f&&(d+=3+f-5)}for(b=0;b<c-1;b++)for(e=0;e<c-1;e++)if(f=0,a.isDark(b,e)&&f++,a.isDark(b+1,e)&&f++,a.isDark(b,e+1)&&f++,a.isDark(b+1,e+1)&&f++,0==f||4==f)d+=3;for(b=0;b<c;b++)for(e=0;e<c-6;e++)a.isDark(b,e)&&!a.isDark(b,e+1)&&a.isDark(b,e+
+2)&&a.isDark(b,e+3)&&a.isDark(b,e+4)&&!a.isDark(b,e+5)&&a.isDark(b,e+6)&&(d+=40);for(e=0;e<c;e++)for(b=0;b<c-6;b++)a.isDark(b,e)&&!a.isDark(b+1,e)&&a.isDark(b+2,e)&&a.isDark(b+3,e)&&a.isDark(b+4,e)&&!a.isDark(b+5,e)&&a.isDark(b+6,e)&&(d+=40);for(e=f=0;e<c;e++)for(b=0;b<c;b++)a.isDark(b,e)&&f++;a=Math.abs(100*f/c/c-50)/5;return d+10*a}},l={glog:function(a){if(1>a)throw Error("glog("+a+")");return l.LOG_TABLE[a]},gexp:function(a){for(;0>a;)a+=255;for(;256<=a;)a-=255;return l.EXP_TABLE[a]},EXP_TABLE:Array(256),
+LOG_TABLE:Array(256)},m=0;8>m;m++)l.EXP_TABLE[m]=1<<m;for(m=8;256>m;m++)l.EXP_TABLE[m]=l.EXP_TABLE[m-4]^l.EXP_TABLE[m-5]^l.EXP_TABLE[m-6]^l.EXP_TABLE[m-8];for(m=0;255>m;m++)l.LOG_TABLE[l.EXP_TABLE[m]]=m;q.prototype={get:function(a){return this.num[a]},getLength:function(){return this.num.length},multiply:function(a){for(var c=Array(this.getLength()+a.getLength()-1),d=0;d<this.getLength();d++)for(var b=0;b<a.getLength();b++)c[d+b]^=l.gexp(l.glog(this.get(d))+l.glog(a.get(b)));return new q(c,0)},mod:function(a){if(0>
+this.getLength()-a.getLength())return this;for(var c=l.glog(this.get(0))-l.glog(a.get(0)),d=Array(this.getLength()),b=0;b<this.getLength();b++)d[b]=this.get(b);for(b=0;b<a.getLength();b++)d[b]^=l.gexp(l.glog(a.get(b))+c);return(new q(d,0)).mod(a)}};p.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],
+[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,
+116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,
+43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,
+3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,
+55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,
+45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]];p.getRSBlocks=function(a,c){var d=p.getRsBlockTable(a,c);if(void 0==d)throw Error("bad rs block @ typeNumber:"+a+"/errorCorrectLevel:"+c);for(var b=d.length/3,e=[],f=0;f<b;f++)for(var h=d[3*f+0],g=d[3*f+1],j=d[3*f+2],l=0;l<h;l++)e.push(new p(g,j));return e};p.getRsBlockTable=function(a,c){switch(c){case 1:return p.RS_BLOCK_TABLE[4*(a-1)+0];case 0:return p.RS_BLOCK_TABLE[4*(a-1)+1];case 3:return p.RS_BLOCK_TABLE[4*
+(a-1)+2];case 2:return p.RS_BLOCK_TABLE[4*(a-1)+3]}};t.prototype={get:function(a){return 1==(this.buffer[Math.floor(a/8)]>>>7-a%8&1)},put:function(a,c){for(var d=0;d<c;d++)this.putBit(1==(a>>>c-d-1&1))},getLengthInBits:function(){return this.length},putBit:function(a){var c=Math.floor(this.length/8);this.buffer.length<=c&&this.buffer.push(0);a&&(this.buffer[c]|=128>>>this.length%8);this.length++}};"string"===typeof h&&(h={text:h});h=r.extend({},{render:"canvas",width:256,height:256,typeNumber:-1,
+correctLevel:2,background:"#ffffff",foreground:"#000000"},h);return this.each(function(){var a;if("canvas"==h.render){a=new o(h.typeNumber,h.correctLevel);a.addData(h.text);a.make();var c=document.createElement("canvas");c.width=h.width;c.height=h.height;for(var d=c.getContext("2d"),b=h.width/a.getModuleCount(),e=h.height/a.getModuleCount(),f=0;f<a.getModuleCount();f++)for(var i=0;i<a.getModuleCount();i++){d.fillStyle=a.isDark(f,i)?h.foreground:h.background;var g=Math.ceil((i+1)*b)-Math.floor(i*b),
+j=Math.ceil((f+1)*b)-Math.floor(f*b);d.fillRect(Math.round(i*b),Math.round(f*e),g,j)}}else{a=new o(h.typeNumber,h.correctLevel);a.addData(h.text);a.make();c=r("<table></table>").css("width",h.width+"px").css("height",h.height+"px").css("border","0px").css("border-collapse","collapse").css("background-color",h.background);d=h.width/a.getModuleCount();b=h.height/a.getModuleCount();for(e=0;e<a.getModuleCount();e++){f=r("<tr></tr>").css("height",b+"px").appendTo(c);for(i=0;i<a.getModuleCount();i++)r("<td></td>").css("width",
+d+"px").css("background-color",a.isDark(e,i)?h.foreground:h.background).appendTo(f)}}a=c;jQuery(a).appendTo(this)})}})(jQuery);
\ No newline at end of file
diff --git a/node_modules/pdfh5/js/pdf-obfuscated.js b/node_modules/pdfh5/js/pdf-obfuscated.js
new file mode 100644
index 0000000..79874d6
--- /dev/null
+++ b/node_modules/pdfh5/js/pdf-obfuscated.js
@@ -0,0 +1 @@
+function a0_0x5972(){const _0xb69579=['_contentLength','getStructTree','Blob','Unable\x20to\x20load\x20font\x20data\x20at:\x20','getCalculationOrderIds','_next','mac+meta+s','Wrong\x20data\x20format\x20in\x20MurmurHash3_64_update.\x20','get','isNodeJS','cancel','svg:polyline','__originalRotate','clientY','ctrlKey','hypot','checkSMaskState','string','enableEditMode','pattern','disableEditing','textColor','getGroups','commonobj','fixDims','destroyed','Invalid\x20argument\x20for\x20stringToBytes','textContentSource','GetDestination','popupDate','_createCanvas','font-style','getOwnPropertyDescriptor','33910LYnzFr','calc(','separateAnnots','ImageBitmap','altKey','null','{{scale}}%','__originalRestore','canvasContextMenu','_layoutText','clipBox','STAMP','An\x20editor\x20must\x20be\x20serializable','setMiterLimit','structuredClone','isSameOrigin','fieldName','fnId','currentPageIndex','AnnotationEditor','onDone','inverseTransform','RTCCertificate','cMapReaderFactory','getRenderingIntent','vmetric','before','isWorkerDisabled','svg:path','createTextNode','\x22);','Mouse\x20Up','svg:image','AnnotationReplyType','_continueBound','trim','span','__originalScale','div','setLeading','url(data:','_smask_','configure','FREETEXT_SIZE','_container','transformStack','LINE_FACTOR','combo','preserve','constructPath','UnexpectedResponseException','transparent','res','setAt','isStreamingSupported','butt','Unimplemented\x20graphic\x20state\x20operator\x20','streamId','getViewerPreferences','htmlForXfa','fromPoint','addDeletedAnnotationElement','overlayDiv','drop','getDestinationHash','move','GetDocJSActions','createRadialGradient','WebAssembly.Module','lineAnnotation','fill','Accessors\x20not\x20supported','_destroy','\x22,\x20','_layoutTextParams','_pageWidth','updateMode','pdfjsWorker','terminate','GetReader','The\x20standard\x20font\x20\x22baseUrl\x22\x20parameter\x20must\x20be\x20specified,\x20ensure\x20that\x20','setTextMatrix','defaultValue','Unimplemented\x20border\x20style:\x20beveled','quadrilaterals','getCurrentTransformInverse','iterator','_pdfjsCompatibilityChecked','header','_defaultThickness','_numPages','{{size_mb}}\x20MB\x20({{size_b}}\x20bytes)','PDFDataTransportStream','__originalSave','disabled','smaskCounter','rotationchanging','cos','getRect','fetch','userValue','Invalid\x20SVG\x20dimensions','paintChar','svg:style','shift+Backspace','throw','paste','buffer','Page\x20Request','\x20cannot\x20be\x20properly\x20polyfilled\x20in\x20this\x20engine','paintImageMaskXObject','isArrayEqual','fontSizeScale','onPull','process','fillText','filename\x5c*','setFont','foreground','position','addProgressiveDoneListener','parentDimensions','errors','editorDivKeydown','24273769cbhFuE','fakeWorkerId','setCharWidth','annotation-','href','setLayerDimensions','Optional\x20content\x20group\x20not\x20found:\x20','beginSMaskMode','addFilter','moveElementInDOM','alphaIsShape','IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA','\x20is\x20not\x20ready\x20yet','getOrder','savedCtx','fillStyle','isValidFetchUrl','Streaming\x20is\x20disabled.','source-over','removeEditor','DefaultCanvasFactory','getActive','stroke-dasharray','Not\x20implemented:\x20loadSystemFont\x20without\x20the\x20Font\x20Loading\x20API.','domain','oblique\x20','multiline','fillRect','annotation_date_string','onStateChange','end','Bounding\x20box\x20is\x20required.','onerror','[object\x20process]','object','selectedIndex','loadingRequests','_fontInspectorEnabled','points','AbortException','Phrase\x20not\x20found','This\x20object\x20cannot\x20be\x20transferred:\x20','table-cell','toLocaleTimeString','applyInverseTransform','AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA','path','DONE','hotpink','addFontStyle','width','presentation','backgroundColor','set','updateTextLayer','mesh','The\x20CMap\x20\x22baseUrl\x22\x20parameter\x20must\x20be\x20specified,\x20ensure\x20that\x20','attached','px\x20','--freetext-padding','Canvas\x20is\x20not\x20specified','targetName','running','Undefined','height','_progressListeners','BaseStandardFontDataFactory','BINARY','gfx','trimEnd','arrayBuffer','editingaction','onmousedown','data-element-id','createCDNWrapper','imageSmoothingEnabled','intent','AnnotationEditorType','isAttachedToDOM','cMapPacked','setFillRGBColor','PDF_TO_CSS_UNITS','restore','observe','_setDefaultPropertiesFromJS','ANNOTATIONS_DISABLE','preventDefault','bbox','editorDivFocus','getJSActions','_zIndex','canvasPointerleave','enforce','callee','canvasPointerdown','AnnotationType','cancelled','EvalError','PageViewport','responseType','hide','onreadystatechange','flatMap','assign','createObjectURL','main','baseFontName','BigInt','streamControllers','byteOffset','_isRangeSupported','popupRef','requestFull','ResetForm','binary\x20','_setVisible','__originalLineTo','transparency','please\x20use\x20the\x20getData-method\x20instead.','pendingRequests','suspendedCtx','defineProperties','rebuild','\x20is\x20currently\x20rendering.','Incorrect\x20invocation','fontExtraProperties','iframe','Reflect','lastChild','createPattern','24740HhDUxK','getRequestXhr','setupStorage','currentScript','AudioData','readFile','Loading\x20aborted','svg:clipPath','error','role','pendingEOFill','currentPath','useWorkerFetch','getPathGenerator\x20-\x20ignoring\x20character:\x20\x22','getAnchorUrl','CryptoKey','SyntaxError','getSinglePixelWidth','validateResponseStatus','stampEditing','Dependent\x20image\x20with\x20object\x20ID\x20','_initialize','getEditors','multiple','charCodeAt','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=','_rangeChunkSize','bytes','NONE','T_HTML','shift+Delete','Dummy','setRenderingIntent','getModificationDate','type','Failed\x20to\x20load\x20font\x20\x27','Invalid\x20font\x20matrix\x20for\x20font\x20','last','DefaultCMapReaderFactory','loadSystemFont\x20shouldn\x27t\x20be\x20called\x20when\x20`disableFontFace`\x20is\x20set.','styles','deleteWordBackward','_webWorker','GPUCompilationMessage','startCleanup:\x20Page\x20','Mesh','DataCloneError','aria-required','FontFallback','Yes','embeddedFonts','lineCap','enterInEditMode','DOMPoint','_loaded','scale','strokeStyle','lattice','annotationeditorparamschanged','any','AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3','_setRequired','str','objectSize','AllOn','NATIVE','Reached\x20end\x20of\x20document,\x20continued\x20from\x20top','_textDivs','_cachedChunks','Content-Length','forceDataSchema','inkEditing','prescale1','onRotationChanging','getElementsByName','objs','GetStructTree','getValue','offsetX','paths','pdfjs_internal_editor_','CropTarget','workerSrc','eoFillStroke','http','paintImageMaskXObject:\x20ImageBitmap\x20support\x20is\x20not\x20implemented,\x20','_document','GetData','_queuedChunks','PDFWorker.fromPort\x20-\x20invalid\x20method\x20signature.','xlink:href','_rangeReaders','paintType','enqueue',')\x20while\x20retrieving\x20PDF\x20\x22','addHighlightArea','setTransform','script','previous','stamps','firstQuadRect','\x20is\x20not\x20iterable','Unknown\x20action\x20from\x20worker:\x20','CANCEL_COMPLETE','mac+','DOMFilterFactory','0.2126\x200.7152\x200.0722\x200\x200\x200.2126\x200.7152\x200.0722\x200\x200\x200.2126\x200.7152\x200.0722\x200\x200\x200\x200\x200\x201\x200','checked','result','addColorStop','getSVG','xmlns','_setupFakeWorkerGlobal','normal','importScripts(\x22','_requests','writable','measureText','IteratorPrototype','px\x20*\x20var(--scale-factor))','isType3Font','remove','900','onError','getFilenameFromContentDispositionHeader','removeNativeFontFace','text_annotation_type','byteLength','INK_THICKNESS','concat','withCredentials','executeOpTree','getLineDash','GetViewerPreferences','GET','nextLine','text/css','_pdfBug','endCompat','mac+meta+a','POPUP','isTooltipOnly','realScale','Use\x20different\x20canvas\x20or\x20ensure\x20previous\x20operations\x20were\x20','CONFIGURABLE','none','Error\x20during\x20font\x20loading:\x20','Invalid\x20page\x20request.','getPageMode','DefaultFilterFactory','landscape','IS_HTMLDDA','bytes=','Cannot\x20resolve\x20callback\x20','stampAnnotation','something','GetDocRequest','stopAtErrors','top','onceAdded','option','onSetModified','updatefromsandbox','document.F=Object','isPendingRequest','styleElement','_queuedChunk','paintImageXObjectRepeat','XfaLayer','cut','gen','StepperManager','OPS','maxX','_createContainer','caretAnnotation','FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA','_passwordCapability','Type3\x20character\x20\x22','formattedValue','Warning:\x20The\x20PDF\x20is\x20not\x20fully\x20loaded\x20for\x20printing.','subtype','AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA','FREETEXT','cors','underlineAnnotation','_progressiveDataLength','keydown','isArrayBuffer','Start\x20typing…','getPageLayout','_textContentSource','file','getPageLabels','scale(','_bounds','IS_ITERATOR','add','PDFNodeStream','Mac','Draw\x20Editor','baseTransform','isCompressed','free_text2_default_content','setFillAlpha','ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA','viewBox','createImageData','onClosed','_stats','ImageKind','radioButton','success','enqueue\x20should\x20have\x20stream\x20controller','dontCallGetSet','bitmapUrl','change','maskCanvas','progressiveDone','borderColor','getBoundingClientRect','isMultipleSelection','Keystroke','WillSave','opacityToHex','setVisibility','NullL10n','baseURI','setHScale','documentElement','zIndex','setTextRise','pendingTextPaths','_isOffscreenCanvasSupported','find_match_count_limit','textContentStream','OFF','setWordSpacing','setFlatness','executeSetOCGState','Reached\x20top\x20of\x20document,\x20continued\x20from\x20bottom','_networkStream','Cleanup','isClosed','PULL','needsToBeRebuilt','fround','closeFillStroke','resetTransform','textAlign','options','30px\x20','translate','setSelected','canvasWidth','fingerprints','code','polylineAnnotation','dispatchEvent','UnknownErrorException','patternUnits','lineX','Uncloneable\x20type:\x20','0\x200\x20','activeClipUrl','__esModule','clientX','setupMessageHandler','onCancel','highlightAnnotation','loaded','ctrl+p','image/png','globalCompositeOperation','utf-16be','inspectSource','clipBbox','context','deflateSync','inkEditorCanvas','args','401124outArr','stopPropagation','fillCanvas','loading','unicode','_rangeListeners','getPermissions','paperclip','globalAlpha','_onProgressiveDone','update','http:','isInFont','AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA','ms\x0a','systemFontInfo','transportReady','getPropertyValue','miter','message','DASHED','focusMainContainer','removeEventListener','bold','times','Input\x20must\x20be\x20a\x20string\x20or\x20array.','_request','StandardFontDataFactory\x20not\x20initialized,\x20see\x20the\x20`useWorkerFetch`\x20parameter.','match','The\x20`--scale-factor`\x20CSS-variable\x20must\x20be\x20set,\x20','target','IEND','clear','translationX','Float32Array','readable','getRenderingIntent\x20-\x20invalid\x20intent:\x20','cssStyle','attach','_onReceiveData\x20-\x20no\x20`PDFDataTransportStreamRangeReader`\x20instance\x20found.','strict','Transfer\x20option\x20cannot\x20be\x20converted\x20to\x20a\x20sequence','convertToViewportRectangle','WeakMap','TODO:\x20Support\x20non-isolated\x20groups.','updateOperatorList','combobox','xfaOff','Unimplemented\x20border\x20style:\x20inset','__originalTranslate','mac+meta+z','chunk','AnnotationPrefix','endAnnotation','getClippedPathBoundingBox','_bindLink','SVGGraphics','fileattachmentannotation','verticesPerRow','30aoSdyF','_internalPadding','policy','startCall','Symbol.','_transfer_map_','buttonWidgetAnnotation','beginPath','extraStack','[^\x22;\x5cs][^;\x5cs]*','BigInt64Array','scaleY','allowRangeRequests','doNotScroll','pageRotation','lineJoin','PDF','DISABLE','_l10nPromise','_end','OCG','hexdigest','_defaultColor','_createQuadrilaterals','nodeName','contentDiv','every','_colorStops','markedContentStack','_canceled','multiLine','imageManager','XfaText','RuntimeError','fillStroke','moveTo','_setBackgroundColor','_defaultFontSize','optionalContentConfig','argsArray','Object','dragover','svg:rect','AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1','alternativeText','StartRenderPage','ceil','enableEditing','containerClassName','px\x20*\x20var(--scale-factor)\x20-\x201ch)','xfaHtml','fromCharCode','Web\x20fonts\x20are\x20disabled:\x20unable\x20to\x20use\x20embedded\x20PDF\x20fonts.','./pdf.worker.js','alt+Backspace','getPage','canvasPointermove','decode','Invalid\x20rotation','lineY','isEvalSupported','calc(var(--scale-factor)\x20*\x20','feFuncR','SerializableEmpty','pageNumber','requestDataRange','clipboardData','Mouse\x20Enter',');\x20}\x0a','params','WorkerMessageHandler','paintImageMaskXObjectRepeat','then','onAnnotationEditor','stringify','dropEffect','setAspectRatio','parentWindow','IDATA','getOutline','isInteger','addProgressiveReadListener','onPassword','matrix','_prepareFontLoadEvent','find_match_count_limit[','Got\x20unknown\x20object\x20type\x20','_pageIndex','filename\x5c*((?!0\x5cd)\x5cd+)(\x5c*?)','_startRenderPage','readOnly','weakData','inkLists','beginSMaskMode\x20called\x20while\x20already\x20in\x20smask\x20mode','select','_loadTestFont','GRAYSCALE_1BPP','\x20Iterator','fontName','getOptionalContentConfig','exec','addRangeListener','INTERRUPTED','setAll','getPageIndex','CanvasRenderingContext2D','enableClick','getUint8','_headersReady','resizable','#ffffff','StampEditor','enumerable','destroy','mac+meta+p','_renderQuadrilaterals','sendWithStream','state','paintWidth','__originalBezierCurveTo','AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY','parentRotation','__originalClosePath','getNextId','unselect','data-annotation-id','AnnotationBorderStyleType','family','freeTextEditor','_messageHandler','objectFromMap','setGState','visibility','Unknown\x20group\x20type\x20','groupStack','CMapReaderFactory\x20not\x20initialized,\x20see\x20the\x20`useWorkerFetch`\x20parameter.','bgColor','--scale-factor','Requesting\x20object\x20that\x20isn\x27t\x20resolved\x20yet\x20','obj','_initialized','GetPage','[data-annotation-id=\x22','stack','setActiveEditor','red','Unimplemented\x20operator\x20','tgrp','endDrawing','maskId','moveEditorInDOM','atan2','editable','stream','showElementAndHideCanvas','response','Transferring','reject','cause','Invalid\x20argument\x20for\x20bytesToString','paste:\x20\x22','svg','DidPrint','minX','_headers','_disableRange','dialog','ArrayBuffer','docId','Info:\x20','request','setVerbosityLevel','_enqueue','randomUUID','textAnnotation','uiManager','getHexCode','updateScalingPathMinMax','_fullRequestId','WillPrint','preserveAspectRatio','_progressiveDoneListeners','svg:tspan','matrix(','unscopables','renderTextLayer','popupAnnotation','show','rescaleAndStroke','SOLID','_stream','bad\x20image\x20kind:\x20','AnnotationMode','_bindResetFormAction','DOMMatrix','Invalid\x20parameter\x20in\x20getDocument,\x20need\x20parameter\x20object.','HasJSActions','startsWith','transparentCanvas','defaultAppearanceData','lineWidth','http://www.w3.org/2000/svg','cacheKey','nextBreakPoint','document','operatorListId','Missing\x20PDF\x20\x22','onResetModified','RenderingIntentFlag','smask','translate(','value','putImageData','tempSMask','AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC','classList','addUndoableEditor','Should\x20not\x20call\x20PrintAnnotationStorage.print','isFsUrl','PageVisible','ownKeys','error\x20should\x20have\x20stream\x20controller','document.pdf','xobjs','_r1','square','AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB','baseTransformStack','FormatError','strokeAlpha','The\x20TextLayerRender\x20`textContent`/`textContentStream`\x20parameters\x20','popup_','bezierPath2D','^D:','loadDependencies','WARNINGS','feFuncG','apply','(\x5cd{4})','total','INVISIBLE','IDENTITY_MATRIX','paintInlineImageXObjectGroup','supports','CANCEL','propertiesToUpdate','Invalid\x20pageIndex\x20request.','AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD','deleteWordForward','_lastProgress','getShadingPattern','container','_colors','dependency','getFromUrl','mac+meta+Enter','ready','_setupFakeWorker','standardFontDataUrl','Abstract\x20method\x20`_createSVG`\x20called.','font-size','renderTasks','convertToViewportPoint','_filename','stroke-opacity','PageActionEventType','curveTo','deleted','addNativeFontFace','.xfaNonInteractive\x20input,\x20.xfaNonInteractive\x20textarea','\x5cs*=\x5cs*','isPdfFile','stats','sinkCapability','class','PDFDataTransportStream.getFullReader\x20can\x20only\x20be\x20called\x20once.','allKeys','normalize','setCurrentPoint','Can\x27t\x20set\x20','beginGroup','radio','Invalid\x20PDF\x20binary\x20data:\x20either\x20TypedArray,\x20','_reader','InkAnnotationElement','hasSomethingToRedo','isHttp','abort','PermissionFlag','textWidgetAnnotation','getPattern','http://www.w3.org/XML/1998/namespace','setFillAndStrokeStyleToContext','Unexpected\x20stream\x20case','DocException\x20-\x20expected\x20a\x20valid\x20Error.','_fullRequestReader','offset','keys','deprecated','_cachedBitmapsMap','dir','font-style:\x20oblique\x20','isExtensible','svg:pattern','lineDashOffset','closeStroke','Pattern','mac+ctrl+Backspace','_colorsMapping','\x20of\x20','ReadableStream','annotationCanvas','devicePixelRatio','_commonActions','hasAppearance','Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj','streamReader','hash','Array','toPrimitive','setRequestHeader','_figures','dblclick','utf-16le','charSpacing','261tiMxGU','insertRule','undefined','groups','strokeText','toLocaleString','GetDoc','isCancelled','ensure\x20that\x20the\x20\x22fontExtraProperties\x22\x20API\x20parameter\x20is\x20set.','rect','join','refCounter','groupLevel','isDataScheme','tel:','GetCalculationOrderIds','textbox','isFontSubpixelAAEnabled','close\x20should\x20have\x20stream\x20controller','imageResourcesPath','Content-Disposition','operatorList','resetform','contentEditable','replace','setAttributeNS','ycoords','aspectRatio','abs','maxByteLength','Error','preventExtensions','defaultFieldValue','setInBackground','FreeTextEditor','_p1','stroke-width','NodeCMapReaderFactory','_defaultLineColor','streamReaderCancelTimeout','absolute','Win','_createMaskCanvas','\x20is\x20not\x20an\x20object','setPropertyOnSiblings','editor_ink2_aria_label',',\x20-1)','_bindNamedAction','paintHeight','arity','callback','pointermove','PDFDateString','for','postMessage','unselectAll','getAttachments','titleObj','Int16Array','AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA','activeElement','elements','annotationCanvasMap','element','popupTriggerArea','Symbol','getDownloadInfo','userSpaceOnUse','LoopbackPort','browser','hcmFilter','limit','.worker$1$2','has','url(data:font/opentype;base64,','FileSystemHandle','deleteId','port','Can\x27t\x20convert\x20object\x20to\x20primitive\x20value','_bindResetFormAction\x20-\x20element\x20not\x20allowed:\x20','random','read','index','FILL_STROKE','_getElementsByName','pageDimensions','pdfjs_internal_id_','executeOperatorList','cmd','one','application/pdfjs','svgFactory','editorDivBlur','appendChild','Dependent\x20image\x20isn\x27t\x20ready\x20yet','fill-rule','actionHandler','TextRenderingMode','Unable\x20to\x20load\x20','CompileError','global','renderingIntent','FetchStandardFontData','DOMQuad','feColorMatrix','embedFonts','num','Invalid\x20or\x20corrupted\x20PDF\x20file.','_httpHeaders','splice','follow','6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM','{{date}},\x20{{time}}','missingFile','_pageHeight','_scaleImage','lengthComputable','lineTo','angle','contentsObj','_readyCapability','fontFamily','\x2030%,\x20white)','background-color','trunc','AnnotationEditorLayer','ANY','_rootContainer','selectedEditor','xstep','disableEditMode','contentVisible','verticalAlign','PDFPageProxy','norotate','editorDivInput','createNativeFontFace','commit','currXhrId','source','letterSpacing','createReadStream','getterFor','PathType','Invalid\x20parameter\x20object:\x20need\x20either\x20.data,\x20.range\x20or\x20.url','rotate','https','AllOff','setStrokeAlpha','onProgress','dispatch','getter','padStart','cachedPatterns','getElementsToTriggerPopup','getElementsByTagName','bezierCurveTo','image_','color-mix(in\x20srgb,\x20','executeNamedAction','addToPath','aria-multiline','black','sham','getPdfFilenameFromUrl:\x20ignore\x20\x22data:\x22-URL\x20for\x20performance\x20reasons.','string32','circleAnnotation','isInvalidPDFjsFont','_makeColorN_Pattern','_HTML','getL10nFallback','getOpenAction','getFromId','toDateObject','getHash','CARET','normalizeRect','_htmlForXfa','parentNode','getReader','fill-opacity','ctrl+Enter','send','ReaderHeadersReady','OffscreenCanvas','UNCOLORED','paintSolidColorImageMask','Tab','input','GetMarkInfo','BaseException','convertToRGBA','boolean','scaleX','PDFFetchStream','StampAnnotationElement','dotAll','getObject','head','ystep','textarea','toggleSelected','.svg','getViewport','switchannotationeditormode','pointerup','origin','__originalBeginPath','buttonValue','updateToolbar','getImageData','setParent','prevFontFamily','onContinue','createElement','SaveDocument','_canvas','fontStyle','TextLayer\x20task\x20cancelled.','cMapUrl','getArrayBuffer\x20-\x20unexpected\x20data\x20format:\x20','build','pdfBug','_ensureTransformGroup','pdfjs-dist/build/pdf','_on','@@iterator','rangeChunkSize','selectionStart','deg;','createFontFaceRule','_getKeyModifier','parse','isSyncFontLoadingSupported','stepper','getPdfFilenameFromUrl','aria-activedescendant','annotationType','contentRect','isArray','freetext','data','Uint8ClampedArray','DOMRect','Unknown\x20RadialAxial\x20type:\x20','ownerDocument','endSMaskMode\x20called\x20while\x20not\x20in\x20smask\x20mode','onmouseup','TEXT','fontAdded','singularValueDecompose2dScale','RegExp','px)','ctx','deg)\x20','blob','protocol','AS_ENTRIES','Terminate','desiredSize','__proto__','openOrDownloadData','defineProperty','offsetY','_source','onScaleChanging','contentLength','toStringTag','lineCoordinates','createResponseStatusError','dependencies','paintFormXObjectEnd','baseUrl','loadTestFontId','isPureXfa','invertSelf','_fieldObjects','MessageHandler','kind','intersect','resolve','fontSize','tilingType','GlobalWorkerOptions','graphicsReady','required','GetOpenAction','setCharSpacing','xcoords','CLOSE','_scheduleNextBound','items','Unexpected\x20server\x20response.','startNewPathAndClipBox','RenderingCancelledException','flags','_coords','\x20scale(','number','workerPort','blur','undo','isContentVisible','timeEnd','mouseup','VerbosityLevel','clip-path','click','append','font-weight','getXfaPageViewport','clone','Shading','setFillColorN','auto','xhr','Path2D','getJavaScript','getRaw','startY','updateCurvePathMinMax','InvalidPDFException','maxImageSize','fieldValue','indices','BaseCanvasFactory','15kRvfwY','maxLen','warn','freeTextEditing','Worker\x20was\x20destroyed.','url(#','verbosity','onDataProgressiveDone','Set','setup','toggle','_setStrokeAttributes','_render','focus','pointerleave','subarray','isEmpty','dataTransfer','Worker\x20was\x20destroyed\x20during\x20onPassword\x20callback','_removeRangeReader','143xYIoeY','pageTranslation','endPath','defs','AnnotationEditorPrefix','toLocaleDateString','1px','createElementNS','getDocument','_background','fontLoader','Fill','multiSelect','filterFactory','Array\x20Iterator','#00000000','textHScale','hidden','720342RlkBld','rectangle','style','name','hasOwn','AnnotationFlag','Setting\x20up\x20fake\x20worker.','updateDefaultParams','_port','getMarkInfo','_onDone','INK_OPACITY','Cannot\x20initialize\x20AnnotationEditor.','CMapCompressionType','normalizeUnicode','_processItems','httpHeaders','enableScripting','knockout','freeTextAnnotation','Invalid\x20SVG\x20element\x20type','contentWindow','Unexpected\x20server\x20response\x20(','svgElementName','_manager','The\x20worker\x20has\x20been\x20disabled.','svg:svg','numPages','setLineDash','return','font-weight:\x20','compiled','Automatic\x20Zoom','IS_RECORD','ink','patternFill','other','PageOpen','annotationTextContent','newWindow','Cannot\x20use\x20the\x20same\x20canvas\x20during\x20multiple\x20render()\x20operations.\x20','done','mask','_requestId','curveTo3','parent','CANVAS','_p0','BaseSVGFactory','_progressiveReadListeners','RGB_HTML','cloneNode','removeLayer','group','strikeoutAnnotation','\x22;src:','serialized','GetPermissions','LINE','Cannot\x20load\x20system\x20font:\x20','3.31.0','node','CMYK_RGB','allSettled','utf8StringToString','_onProgress','ENQUEUE','disableClick','_worker','ltr','Ready','promise','setStrokeColorN','expectedStatus','129EATmEK','stringToPDFString','annotationEditorType','([Z|+|-])?','mouseleave','showType3Text','complete','body','cachedCanvases','l10n','PDFWorkerUtil','GetRangeReader\x20-\x20expected\x20an\x20ArrayBuffer.','function','overflowX','isValidId','innerText','loadScript','Abstract\x20method\x20`getPattern`\x20called.','More\x20than\x20{{limit}}\x20match','fontMatrix','log','_onHeadersReceived','GetReader\x20-\x20no\x20`IPDFStream`\x20instance\x20available.','Unexpected\x20callback\x20case','_inspectFont','mac+alt+Backspace','Unknown\x20IR\x20type:\x20','pagechanging','DOMCanvasFactory','left','isSelected','_isReadableStream','fieldObjects','txtElement','viewport','Stroke','hasText','textRise','lastCommittedValue','G_RGB','Escape','baseFieldName','getFullReader','endText','docBaseUrl','Text\x20Editor','__originalMoveTo','[{{type}}\x20Annotation]','addOrRebuild','pointerEvents','readonly','bezierBoundingBox','open','find_match_count[','transformMatrix','fromPort','PDFNetworkStream','ENABLE_STORAGE','_done','sign','GetReader\x20-\x20expected\x20an\x20ArrayBuffer.','shadow','cancelled\x20or\x20completed.','outputScaleY','getId','actions','data:','https://github.com/zloirock/core-js','Not','eoClip','pure','MIN_SIZE','Cannot\x20initialize\x20BaseStandardFontDataFactory.','isFontLoadingAPISupported','Accept-Ranges','className','CIRCLE','getColorValues','editor_ink_canvas_aria_label','eoFill','setStrokeRGBColor','cssRules','setInForeground','construct','_contentDispositionFilename','getXfa','attachment','contain','Font','repeat','host','commonObjs','dashed','_initializeFromPort','opacity','loadingTask','capability','getOwnPropertySymbols','image/*','allRawPaths','_createPopup','drawImage','pointerdown','fillRule','_continue','__originalRect','parentScale','getColorN_Pattern','GetTextContent','MurmurHash3_64','Legal','curveTo2','Validate','arraybuffer','Group','getRenderingIntent\x20-\x20invalid\x20annotationMode:\x20','Cannot\x20initialize\x20BaseShadingPattern.','wks','StandardFontDataFactory','length','_createSVG','RGB','suggestedLength','interpolate','AnnotationStorage','getAll','_getPattern','_begin','Focus','propertyIsEnumerable','modificationDate','_intentStates','selRange','No\x20\x22GlobalWorkerOptions.workerSrc\x22\x20specified.','_onError','registerEditorTypes','lastIndexOf','call','getTransform','disableStream','userUnit','find_match_count','Mouse\x20Exit','contextmenu','_createMeshCanvas','setLineCap','replaceChildren','extractFilenameFromHeader','_transform','FontFaceObject','closePath','DOMMatrixReadOnly','deleteAnnotationElement','\x22\x20is\x20not\x20available.','markedContent','nonzero','ctrl','FREETEXT_COLOR','popupContent','25096AgVxAF','AnnotationLayer','getPrototypeOf','Canvas','floor','scalechanging','abortRequest','all','fillAlpha','https://github.com/zloirock/core-js/blob/v3.31.0/LICENSE','file:///','_bindAttachment','vertical','Page\x20was\x20destroyed.','getPageJSActions','Content-Range','MAX_IMAGE_SIZE_TO_CACHE','Setting\x20up\x20fake\x20worker\x20failed:\x20\x22','DOMCMapReaderFactory','Action','getData','UTC','\x27:\x20\x27','onDataRange','setLineJoin','getFilenameFromUrl','setUint8','getMode','INFOS','setRotation','font','ColorManager','setPrototypeOf','isActive','location','_readCapability','shiftKey','svg:stop','Math','GetAnnotations','{{size_kb}}\x20KB\x20({{size_b}}\x20bytes)','_textDivProperties','comObj','Stroke\x20bounding\x20box\x20must\x20include\x20transform.','breakIt','ClipboardEvent','forced','DISPLAY','Abstract\x20method\x20PDFDataRangeTransport.requestDataRange','createValidAbsoluteUrl','transferMap','_nextBound','hasIndices','version','removeDeletedAnnotationElement','disable','source-in','stroke-miterlimit','Object\x20already\x20initialized','dashArray','defaultPropertiesToUpdate','quadPoints','_pageInfo','beginDrawing','annotationStorage','Should\x20not\x20call\x20beginInlineImage','_progressiveDone','textMatrix','creator','auth','MissingPDFException','padEnd','CommandManager','createLinearGradient','GetJavaScript','_onComObjOnMessage','setData','addEventListener','_setEventListeners','PDFNetworkStream.getFullReader\x20can\x20only\x20be\x20called\x20once.','filename','getUTCDate','cleanup','substring','addLayer','next','AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA','title','Util','userName','alt','getRGB','canvasFactory','hasOwnCanvas','transform','transferToImageBitmap','files','disableRange','(?:^|;)\x5cs*','platform','createPatternCanvas','_uiManager','getTime','_cachedGetSinglePixelWidth','Worker\x20was\x20terminated.','bind','exports','focused','findIndex','TilingPattern','mouseenter','pushpin','src','fontWeight','getCurrentTransform','svg:radialGradient','getAttributeNS','(\x5cd{2})?','no-repeat','endSMaskMode','setDims','print','readyState','colors','_pumpOperatorList','_maybeCleanupAfterRender','transfer','color','isOffscreenCanvasSupported','stringToUTF8String','setStrong','copy','borderWidth','Abstract\x20method\x20`_createCanvas`\x20called.','mimetype','accept','STROKE','unicodeSets','content','data-editor-rotation','metaKey','isPrototypeOf','selectAll','css','_fullReader','showText','BASELINE_FACTOR','_createGradient','canvasGraphicsFactory','viewParameters','_headersCapability','isSvg','RGBA_32BPP','[object\x20z]','display','squareAnnotation','Worker\x20was\x20destroyed','pageColors','DefaultStandardFontDataFactory','FILL','https:','disableAutoFetch','rawDims','scrollLeft','3.9.0','rgb(','loadedName','paintImageMaskXObjectGroup','activeSMask','_cancelBound','write','getAnnotations','app','onclick','convertBlackAndWhiteToRGBA','fromMatrix','downloadInfoCapability','@font-face\x20{font-family:\x22','fillColor','removeShouldRescale','Image','Blur','stringToPDFString:\x20\x22','setAttribute','Overall','onload','saveDocument\x20called\x20while\x20`annotationStorage`\x20is\x20empty,\x20','assert','VideoFrame','ids','STRIKEOUT','the\x20\x22cMapUrl\x22\x20and\x20\x22cMapPacked\x22\x20API\x20parameters\x20are\x20provided.','addShouldRescale','_url','downloadManager','_useRequestAnimationFrame','meta','detach','getFieldObjects','tabIndex','stringToBytes','started','fontBoundingBoxAscent','721IlCnvU','eventBus','DOMException','_editOnDoubleClick','cssFontInfo','hasInitialVisibility','setAttributes','getDestination','Duplicate\x20transferable','callbackId','isLittleEndian','PasswordResponses','_removeMirroring','mac+meta+shift+Z','groupAt','Window','saveDocument','getOwnPropertyNames','inlineImage','serialize','getUTCMinutes','delete','settled','paintInlineImageXObject','img','_setTextStyle','charLimit','Warning:\x20Printing\x20is\x20not\x20fully\x20supported\x20by\x20this\x20browser.','NodeStandardFontDataFactory','range','PDFDocumentLoadingTask','default','validateRangeRequestCapabilities','annotationElementId','dest','worker','RGB_24BPP','_params','PROPER','setLineWidth','smaskGroupAt','Cannot\x20initialize\x20BaseCMapReaderFactory.','FileSystemFileHandle','data-internal-link','CMYK_HTML','detail','FontInspector','compiledGlyphs','commitKey','122580xClMCP','editor_free_text2_aria_label','textMatrixScale','onPageChanging','messageHandler','dashPhase','fnArray','getFromFile','_makeShadingPattern','deleteContentBackward',');\x0a','KeyboardManager','removeAttribute','tspan','htmlfile','Null','utf-8','shading','OptionalContentConfig','count','richText','POLYFILL','streamSinks','headers','streamTextContent','inkAnnotation','_dispatchEventFromSandbox','translationY','consumePath','getVerbosityLevel','setValue','isEmptyClip','commitOrRemove','serializable','ReferenceError','setTextRenderingMode','vertices','AsyncFunction','url','Metadata','getOperatorList','get\x20','grayToRGBA','[data-element-id=\x22','_queueLoadingCallback','GetDestinations','svg:text','Cannot\x20initialize\x20BaseFilterFactory.','FONT_IDENTITY_MATRIX','__originalSetTransform','getComputedStyle','hasSomethingToUndo','fonts','getEditor','\x22(?:[^\x22\x5c\x5c]|\x5c\x5c\x22?)+\x22?','bytesToString','Mouse\x20Down','[object\x20','PRINT','_abortController','either\x20string\x20or\x20URL-object\x20is\x20expected\x20in\x20the\x20url\x20property.','AnnotationEditorParamsType','NodeCanvasFactory','_ensureClipGroup','getUTCHours','getEditableAnnotation','freeze','children','Function','DataView','bindEvents','shadingFill','SHADING','responseText','same-origin','Int8Array','querySelector','render','resetForm','getUTCSeconds','BaseFilterFactory','LINE_DESCENT_FACTOR','visible','getRawValue','getCanvas','http://','updateClipFromPath','_download','domElement','Arguments','mouse','_abortOperatorList','effectAllowed','Map','closest','hasSelection','split','_error',',\x20installing\x20it\x20could\x20help\x20to\x20improve\x20PDF\x20rendering.','Rendering\x20cancelled,\x20page\x20','AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA','dragstart','ctrl+y','_rangeRequestReaders','FontLoader','view','TextLayerRenderTask','CanvasGraphics','test','Off','completeRequest()\x20cannot\x20be\x20called\x20twice.','page','controller','attributes','stateStack','PDFDocumentProxy','constructor','en-us','Incompatible\x20receiver,\x20','headersReady','CMYK','isVisible','_isStreamingSupported','feFuncB','facade','addInkEditorIfNeeded','previousSibling','ERROR','stopped','__originalTransform','OCMD','getRectInCurrentCoords','IE_PROTO','pageIndex','WIDGET','PasswordRequest','ColorConverters','BaseCMapReaderFactory','PixelsPerInch','load','enableXfa','isSpace','setEditingState','ENABLE','Range','DOMStandardFontDataFactory','evenodd','close','querySelectorAll','SQUIGGLY','requestRange','displayReadyCapability','getDocJSActions','sqrt','feComponentTransfer','{{width}}\x20×\x20{{height}}\x20{{unit}}\x20({{name}},\x20{{orientation}})','Uint16Array','accent','Can\x27t\x20find\x20font\x20for\x20','Cannot\x20load\x20script\x20at:\x20','_onReceiveData','\x20as\x20a\x20prototype','DocumentActionEventType','getSvgUrl','hostname','includes','time','begin','setLeadingMoveText','FILL_STROKE_MASK','key','clearRect','italic','_transport','shouldGetKeyboardEvents','readAsDataURL','beginAnnotation','DocException','form','addCommands','updateParams','LinkError','hasJSActions','Date','Cannot\x20initialize\x20BaseException.','The\x20SVG\x20back-end\x20is\x20no\x20longer\x20maintained\x20and\x20*may*\x20be\x20removed\x20in\x20the\x20future.','convertToPdfPoint','canvasMaxAreaInBytes','image/svg+xml','canvasPointerup','text','radial','-editor','AnnotationEditorUIManager','_defaultOpacity','10px\x20sans-serif','Letter','_formatContents','beginText','Unknown\x20optional\x20content\x20policy\x20','textRenderingMode','AnyOff','strokeColor','linkAnnotation','data-main-rotation','graphicsReadyCallback','unreachable','dataId','setter','addHighlightHCMFilter','extraDelay','fontChar','opListReadCapability','CSS','setCharWidthAndBounds','Load\x20test\x20font\x20never\x20loaded.','{{width}}\x20×\x20{{height}}\x20{{unit}}\x20({{orientation}})','stroke-dashoffset','svg:polygon','editing','font-family','getEditableAnnotations','standardFontDataFactory','canvas','FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==','outputScaleX','UNDERLINE','requestAnimationFrame','catch','fontBoundingBoxDescent','isInEditMode','insert','PasswordException','noRotate','compose','_setReadableStream','updateRectMinMax','_pdfInfo','_hcm_highlight_filter','_keyboardManager','_scheduleNext','StatTimer','Deprecated\x20API\x20usage:\x20','getInitialTranslation','ignoreErrors','backdrop','BEVELED','G_HTML','verticalCornerRadius','borderRadius','markPoint','thickness','getScaleForStroking','scaleFactor','maxY','resetModified','invalid\x20format','create','getUuid','NodeFilterFactory','triangles','GetPageJSActions','enable','noHTML','pop','_renderPageChunk','defaultVMetrics','amd','Timer\x20has\x20not\x20been\x20started\x20for\x20','getConstructor','setDash','selected','status','GetPageMode','max','minY','pendingClip','_onRangeRequestReaderClosed','getTextContent','AnnotationActionEventType','Transport\x20destroyed','_setEventListener','removePointerInTextLayer','AnyOn','Symbol(','maybeShow','checkbox','_off','reason','getMetadata','moveText','startCleanup','_withCredentials','polygonAnnotation','PDFDataRangeTransport','aria-haspopup','deserialize','getNextBreakPoint','inputType','first','exportValue','FeatureTest','©\x202014-2023\x20Denis\x20Pushkarev\x20(zloirock.ru)','scaleMinMax','illegal\x20figure','endsWith','statusText',';base64,','rotation','DOMRectReadOnly','addHCMFilter','OPLIST','onHeadersReceived','lineMatrix','_cachedScaleForStroking','START_COMPLETE','file:','{{progress}}%','isRangeSupported','DOMPointReadOnly','Warning:\x20','useSystemFonts','calc(var(--scale-factor)*','DOMSVGFactory','Cannot\x20use\x20more\x20than\x20one\x20PDFWorker\x20per\x20port.','CMap\x20at:\x20','info','operatorListChanged','valueOf','task','_readableStream','cancelCall','action','completed','({{pageNumber}}\x20of\x20{{pagesCount}})','_bbox','nativeFontFaces','reset','isDeletedAnnotationElement','WebAssembly','(forced-colors:\x20active)','processingType3','DidSave','miterLimit','getRangeReader','AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D','__originalClip','push','squigglyAnnotation','xfaLayer\x20xfaFont','px\x20*\x20var(--scale-factor))\x20/\x20calc(','svgUrl','addProgressListener','draggable','sRGB','matchMedia','round','finally','InkEditor','save','PromiseCapability','ref','addToAnnotationStorage','borderStyle','_mainThreadWorkerMessageHandler','ArrayBuffer\x20is\x20detached','TypeError','print_progress_percent','bitmap','map','mousedown','clip-rule','String','pullCall','PDFWorker','callbackCapabilities','startX','DATA','relatedTarget','URIError','leading','closeEOFillStroke','callbacks','inSMaskMode','GetAttachments','AggregateError','INK_COLOR','WillClose','java','ignoreCase','hasOwnProperty','getContext','toFixed','Cannot\x20initialize\x20BaseCanvasFactory.','symbol','area','#text','trigger','Invalid\x20PDF\x20url\x20data:\x20','svg:g','_colorManager','slice','xfaOn','section','_r0','path2d-polyfill','dataset','cache','text/plain','getPathBoundingBox','COLORED','entries','disconnect','_textContentItemsStr','CanvasText','dispatcheventinsandbox','min','of\x20{{pagesCount}}','focusout','annotationeditorstateschanged','filter','order','prototype','PULL_COMPLETE','values','radiobutton','Abstract\x20method\x20`_fetchData`\x20called.','GetPageIndex','getDestinations','getRandomValues','enabled','getPathGenerator','PageClose','indexOf','Timer\x20is\x20already\x20running\x20for\x20','some','background','ADD_TO_PATH_FLAG','button','showSpacedText','setDimensions','fileAttachmentAnnotation','current','convert','hasEOL','comb','middle','versions','beginMarkedContentProps','toLowerCase','#000000','redo','toString','smaskStack','compositeCtx','fake','minHeight','isEditing','paintImageXObject','Deno','getAxialAlignedBoundingBox','zlib','stroke','comment','FetchBuiltInCMap','FILEATTACHMENT','DataTransfer','ENOENT','shift','html','SharedArrayBuffer','_bindJSAction','operatorListIdx','removed','paintFormXObjectBegin','l10nArgs','ImageData','transferMaps','forEach','Btn','italicAngle','Unimplemented\x20pattern\x20Mesh','POLYGON','fallbackWorkerSrc','_pdfDataRangeTransport','allXfaHtml','off','maxLength','_fetchData','14Aueqjz','wordSpacing','PrintAnnotationStorage','Can\x27t\x20call\x20method\x20on\x20','portrait','_capability','makeHexColor','aria-label','statusCode','initializeGraphics','mac+Escape','initialize','will\x20be\x20removed\x20in\x20the\x20future,\x20please\x20use\x20`textContentSource`\x20instead.','Invalid\x20canvas\x20size','screenToPageTranslation','convertOpList','renderForms','from','textAlignment','currentLayer','editorDiv','_type','size','destroyCapability','setOCGState','expression','_operatorIdMapping','revokeObjectURL','Page\x20{{page}}','sourceName','_storedError','updatePathMinMax','isolated','minWidth','getGroup','focusin','AsyncGeneratorFunction','TilingType:\x20','_path_','__originalResetTransform','sendWithPromise','loadSystemFont','shouldBuildText','streaming\x20is\x20disabled','now','PDFDataTransportStream\x20-\x20missing\x20required\x20\x22pdfDataRangeTransport\x22\x20argument.','{{current}}\x20of\x20{{total}}\x20matches','objectID','Should\x20not\x20call\x20beginImageData','popup','fontDirection','loadingParams','ftp:','Int32Array','.bcmap','Sig','RangeError','Got\x20unknown\x20common\x20object\x20type\x20','highlightArea','stamp','tableValues','init','applyTransform','lastChunk','endMarkedContent','SMask','linkService','_headersReceivedCapability','cancelAllRequests','textContent','getSizeAndScale','configurable','INK','stop-color','getAttribute','http://www.w3.org/1999/xlink','clip','displayValue','clipGroup','Missing\x20PDF\x20file.','color-interpolation-filters','replaceAll','disableFontFace','INTERNAL','onprogress','applyTransferMapsToCanvas','layer','DataLoaded'];a0_0x5972=function(){return _0xb69579;};return a0_0x5972();}function a0_0x160d(_0x168830,_0x4de99b){const _0x59722e=a0_0x5972();return a0_0x160d=function(_0x160d3a,_0x1c3d62){_0x160d3a=_0x160d3a-0xbf;let _0x2cf935=_0x59722e[_0x160d3a];return _0x2cf935;},a0_0x160d(_0x168830,_0x4de99b);}(function(_0xdc16c,_0x3cbca9){const _0x14a138=a0_0x160d,_0x159f33=_0xdc16c();while(!![]){try{const _0x419942=parseInt(_0x14a138(0x1e5))/0x1*(-parseInt(_0x14a138(0x8dd))/0x2)+parseInt(_0x14a138(0x4e0))/0x3*(-parseInt(_0x14a138(0x9db))/0x4)+parseInt(_0x14a138(0x470))/0x5*(parseInt(_0x14a138(0x496))/0x6)+-parseInt(_0x14a138(0x64a))/0x7*(parseInt(_0x14a138(0x57f))/0x8)+-parseInt(_0x14a138(0x32a))/0x9*(parseInt(_0x14a138(0x67b))/0xa)+-parseInt(_0x14a138(0x484))/0xb*(parseInt(_0x14a138(0x1aa))/0xc)+parseInt(_0x14a138(0x959))/0xd*(parseInt(_0x14a138(0x864))/0xe);if(_0x419942===_0x3cbca9)break;else _0x159f33['push'](_0x159f33['shift']());}catch(_0x5a50f8){_0x159f33['push'](_0x159f33['shift']());}}}(a0_0x5972,0x52eb3),function webpackUniversalModuleDefinition(_0xe8ec11,_0x263bc2){const _0x24c9f0=a0_0x160d;if(typeof exports===_0x24c9f0(0x97b)&&typeof module===_0x24c9f0(0x97b))module[_0x24c9f0(0x5e9)]=_0x263bc2();else{if(typeof define===_0x24c9f0(0x4ec)&&define[_0x24c9f0(0x786)])define('pdfjs-dist/build/pdf',[],_0x263bc2);else{if(typeof exports===_0x24c9f0(0x97b))exports['pdfjs-dist/build/pdf']=_0x263bc2();else _0xe8ec11[_0x24c9f0(0x40a)]=_0xe8ec11['pdfjsLib']=_0x263bc2();}}}(globalThis,()=>{return((()=>{var _0x2c322a=[,(_0xe1d08,_0x56a686,_0x3c35ef)=>{'use strict';const _0x6e4512=a0_0x160d;Object['defineProperty'](_0x56a686,'__esModule',{'value':!![]}),_0x56a686[_0x6e4512(0x45b)]=_0x56a686[_0x6e4512(0x5d7)]=_0x56a686['UnknownErrorException']=_0x56a686[_0x6e4512(0x90f)]=_0x56a686[_0x6e4512(0x38b)]=_0x56a686[_0x6e4512(0x2b5)]=_0x56a686[_0x6e4512(0x7e3)]=_0x56a686['PermissionFlag']=_0x56a686['PasswordResponses']=_0x56a686[_0x6e4512(0x763)]=_0x56a686['PageActionEventType']=_0x56a686[_0x6e4512(0x13d)]=_0x56a686['MissingPDFException']=_0x56a686['MAX_IMAGE_SIZE_TO_CACHE']=_0x56a686['LINE_FACTOR']=_0x56a686[_0x6e4512(0x6cc)]=_0x56a686[_0x6e4512(0x46b)]=_0x56a686['ImageKind']=_0x56a686[_0x6e4512(0x2d6)]=_0x56a686[_0x6e4512(0x2c9)]=_0x56a686[_0x6e4512(0x7a8)]=_0x56a686[_0x6e4512(0x6ab)]=_0x56a686[_0x6e4512(0x71d)]=_0x56a686[_0x6e4512(0x4a3)]=_0x56a686[_0x6e4512(0x3e8)]=_0x56a686[_0x6e4512(0x611)]=_0x56a686[_0x6e4512(0x9b8)]=_0x56a686[_0x6e4512(0x8fe)]=_0x56a686[_0x6e4512(0x2a5)]=_0x56a686['AnnotationFlag']=_0x56a686['AnnotationFieldFlag']=_0x56a686[_0x6e4512(0x9a6)]=_0x56a686['AnnotationEditorPrefix']=_0x56a686[_0x6e4512(0x6b8)]=_0x56a686[_0x6e4512(0x263)]=_0x56a686[_0x6e4512(0x792)]=_0x56a686['AbortException']=void 0x0,_0x56a686[_0x6e4512(0x63a)]=_0x3df96c,_0x56a686['bytesToString']=_0x2e1023,_0x56a686[_0x6e4512(0x5b0)]=_0x1d7886,_0x56a686[_0x6e4512(0x9fc)]=_0x3fd7f6,_0x56a686['getUuid']=_0x54db00,_0x56a686[_0x6e4512(0x698)]=_0x5e368f,_0x56a686[_0x6e4512(0x7c1)]=_0xf84db2,_0x56a686[_0x6e4512(0x14d)]=_0x445002,_0x56a686[_0x6e4512(0x94c)]=_0x459dae,_0x56a686[_0x6e4512(0x4a4)]=_0x25116f,_0x56a686[_0x6e4512(0x267)]=_0x2f8352,_0x56a686[_0x6e4512(0xd0)]=_0x1a34be,_0x56a686[_0x6e4512(0x290)]=_0x5ab649,_0x56a686[_0x6e4512(0x51d)]=_0x502626,_0x56a686[_0x6e4512(0x3cf)]=_0x3b9627,_0x56a686[_0x6e4512(0x647)]=_0xdc1302,_0x56a686[_0x6e4512(0x4e1)]=_0x59f322,_0x56a686[_0x6e4512(0x600)]=_0x3b52db,_0x56a686[_0x6e4512(0x749)]=_0x2ba8b1,_0x56a686[_0x6e4512(0x4d6)]=_0x1ffdbd,_0x56a686[_0x6e4512(0x472)]=_0x1753d1;!globalThis[_0x6e4512(0x934)]&&(globalThis[_0x6e4512(0x934)]=!![],_0x3c35ef(0x2));const _0x453501=[0x1,0x0,0x0,0x1,0x0,0x0];_0x56a686[_0x6e4512(0x2d6)]=_0x453501;const _0xbb6c52=[0.001,0x0,0x0,0.001,0x0,0x0];_0x56a686[_0x6e4512(0x6ab)]=_0xbb6c52;const _0x596cad=0x989680;_0x56a686['MAX_IMAGE_SIZE_TO_CACHE']=_0x596cad;const _0xac5a49=1.35;_0x56a686[_0x6e4512(0x90b)]=_0xac5a49;const _0x43bc8a=0.35;_0x56a686[_0x6e4512(0x6cc)]=_0x43bc8a;const _0x4afbbb=_0x43bc8a/_0xac5a49;_0x56a686[_0x6e4512(0x611)]=_0x4afbbb;const _0x519cac={'ANY':0x1,'DISPLAY':0x2,'PRINT':0x4,'SAVE':0x8,'ANNOTATIONS_FORMS':0x10,'ANNOTATIONS_STORAGE':0x20,'ANNOTATIONS_DISABLE':0x40,'OPLIST':0x100};_0x56a686['RenderingIntentFlag']=_0x519cac;const _0x3c6d07={'DISABLE':0x0,'ENABLE':0x1,'ENABLE_FORMS':0x2,'ENABLE_STORAGE':0x3};_0x56a686[_0x6e4512(0x2a5)]=_0x3c6d07;const _0x4d0541=_0x6e4512(0xe1);_0x56a686[_0x6e4512(0x488)]=_0x4d0541;const _0x10dc9a={'DISABLE':-0x1,'NONE':0x0,'FREETEXT':0x3,'STAMP':0xd,'INK':0xf};_0x56a686[_0x6e4512(0x9a6)]=_0x10dc9a;const _0x3e940a={'FREETEXT_SIZE':0x1,'FREETEXT_COLOR':0x2,'FREETEXT_OPACITY':0x3,'INK_COLOR':0xb,'INK_THICKNESS':0xc,'INK_OPACITY':0xd};_0x56a686[_0x6e4512(0x6b8)]=_0x3e940a;const _0x3b2237={'PRINT':0x4,'MODIFY_CONTENTS':0x8,'COPY':0x10,'MODIFY_ANNOTATIONS':0x20,'FILL_INTERACTIVE_FORMS':0x100,'COPY_FOR_ACCESSIBILITY':0x200,'ASSEMBLE':0x400,'PRINT_HIGH_QUALITY':0x800};_0x56a686[_0x6e4512(0x305)]=_0x3b2237;const _0x1bb4b7={'FILL':0x0,'STROKE':0x1,'FILL_STROKE':0x2,'INVISIBLE':0x3,'FILL_ADD_TO_PATH':0x4,'STROKE_ADD_TO_PATH':0x5,'FILL_STROKE_ADD_TO_PATH':0x6,'ADD_TO_PATH':0x7,'FILL_STROKE_MASK':0x3,'ADD_TO_PATH_FLAG':0x4};_0x56a686[_0x6e4512(0x38b)]=_0x1bb4b7;const _0x302792={'GRAYSCALE_1BPP':0x1,'RGB_24BPP':0x2,'RGBA_32BPP':0x3};_0x56a686[_0x6e4512(0x163)]=_0x302792;const _0x2cef88={'TEXT':0x1,'LINK':0x2,'FREETEXT':0x3,'LINE':0x4,'SQUARE':0x5,'CIRCLE':0x6,'POLYGON':0x7,'POLYLINE':0x8,'HIGHLIGHT':0x9,'UNDERLINE':0xa,'SQUIGGLY':0xb,'STRIKEOUT':0xc,'STAMP':0xd,'CARET':0xe,'INK':0xf,'POPUP':0x10,'FILEATTACHMENT':0x11,'SOUND':0x12,'MOVIE':0x13,'WIDGET':0x14,'SCREEN':0x15,'PRINTERMARK':0x16,'TRAPNET':0x17,'WATERMARK':0x18,'THREED':0x19,'REDACT':0x1a};_0x56a686['AnnotationType']=_0x2cef88;const _0x5da7e3={'GROUP':_0x6e4512(0x552),'REPLY':'R'};_0x56a686[_0x6e4512(0x8fe)]=_0x5da7e3;const _0x536b2e={'INVISIBLE':0x1,'HIDDEN':0x2,'PRINT':0x4,'NOZOOM':0x8,'NOROTATE':0x10,'NOVIEW':0x20,'READONLY':0x40,'LOCKED':0x80,'TOGGLENOVIEW':0x100,'LOCKEDCONTENTS':0x200};_0x56a686[_0x6e4512(0x49b)]=_0x536b2e;const _0x4c9485={'READONLY':0x1,'REQUIRED':0x2,'NOEXPORT':0x4,'MULTILINE':0x1000,'PASSWORD':0x2000,'NOTOGGLETOOFF':0x4000,'RADIO':0x8000,'PUSHBUTTON':0x10000,'COMBO':0x20000,'EDIT':0x40000,'SORT':0x80000,'FILESELECT':0x100000,'MULTISELECT':0x200000,'DONOTSPELLCHECK':0x400000,'DONOTSCROLL':0x800000,'COMB':0x1000000,'RICHTEXT':0x2000000,'RADIOSINUNISON':0x2000000,'COMMITONSELCHANGE':0x4000000};_0x56a686['AnnotationFieldFlag']=_0x4c9485;const _0x1e6d36={'SOLID':0x1,'DASHED':0x2,'BEVELED':0x3,'INSET':0x4,'UNDERLINE':0x5};_0x56a686[_0x6e4512(0x263)]=_0x1e6d36;const _0x26bb69={'E':_0x6e4512(0x228),'X':_0x6e4512(0x56e),'D':_0x6e4512(0x6b3),'U':_0x6e4512(0x8fc),'Fo':'Focus','Bl':'Blur','PO':_0x6e4512(0x4bb),'PC':_0x6e4512(0x82b),'PV':_0x6e4512(0x2c0),'PI':'PageInvisible','K':'Keystroke','F':'Format','V':_0x6e4512(0x550),'C':'Calculate'};_0x56a686[_0x6e4512(0x792)]=_0x26bb69;const _0x15b6c2={'WC':_0x6e4512(0x7fe),'WS':_0x6e4512(0x170),'DS':_0x6e4512(0x7d1),'WP':_0x6e4512(0x298),'DP':_0x6e4512(0x287)};_0x56a686[_0x6e4512(0x71d)]=_0x15b6c2;const _0x2323da={'O':_0x6e4512(0x4bb),'C':_0x6e4512(0x82b)};_0x56a686[_0x6e4512(0x2ee)]=_0x2323da;const _0x46fbb0={'ERRORS':0x0,'WARNINGS':0x1,'INFOS':0x5};_0x56a686[_0x6e4512(0x45b)]=_0x46fbb0;const _0x338718={'NONE':0x0,'BINARY':0x1};_0x56a686['CMapCompressionType']=_0x338718;const _0x3621d1={'dependency':0x1,'setLineWidth':0x2,'setLineCap':0x3,'setLineJoin':0x4,'setMiterLimit':0x5,'setDash':0x6,'setRenderingIntent':0x7,'setFlatness':0x8,'setGState':0x9,'save':0xa,'restore':0xb,'transform':0xc,'moveTo':0xd,'lineTo':0xe,'curveTo':0xf,'curveTo2':0x10,'curveTo3':0x11,'closePath':0x12,'rectangle':0x13,'stroke':0x14,'closeStroke':0x15,'fill':0x16,'eoFill':0x17,'fillStroke':0x18,'eoFillStroke':0x19,'closeFillStroke':0x1a,'closeEOFillStroke':0x1b,'endPath':0x1c,'clip':0x1d,'eoClip':0x1e,'beginText':0x1f,'endText':0x20,'setCharSpacing':0x21,'setWordSpacing':0x22,'setHScale':0x23,'setLeading':0x24,'setFont':0x25,'setTextRenderingMode':0x26,'setTextRise':0x27,'moveText':0x28,'setLeadingMoveText':0x29,'setTextMatrix':0x2a,'nextLine':0x2b,'showText':0x2c,'showSpacedText':0x2d,'nextLineShowText':0x2e,'nextLineSetSpacingShowText':0x2f,'setCharWidth':0x30,'setCharWidthAndBounds':0x31,'setStrokeColorSpace':0x32,'setFillColorSpace':0x33,'setStrokeColor':0x34,'setStrokeColorN':0x35,'setFillColor':0x36,'setFillColorN':0x37,'setStrokeGray':0x38,'setFillGray':0x39,'setStrokeRGBColor':0x3a,'setFillRGBColor':0x3b,'setStrokeCMYKColor':0x3c,'setFillCMYKColor':0x3d,'shadingFill':0x3e,'beginInlineImage':0x3f,'beginImageData':0x40,'endInlineImage':0x41,'paintXObject':0x42,'markPoint':0x43,'markPointProps':0x44,'beginMarkedContent':0x45,'beginMarkedContentProps':0x46,'endMarkedContent':0x47,'beginCompat':0x48,'endCompat':0x49,'paintFormXObjectBegin':0x4a,'paintFormXObjectEnd':0x4b,'beginGroup':0x4c,'endGroup':0x4d,'beginAnnotation':0x50,'endAnnotation':0x51,'paintImageMaskXObject':0x53,'paintImageMaskXObjectGroup':0x54,'paintImageXObject':0x55,'paintInlineImageXObject':0x56,'paintInlineImageXObjectGroup':0x57,'paintImageXObjectRepeat':0x58,'paintImageMaskXObjectRepeat':0x59,'paintSolidColorImageMask':0x5a,'constructPath':0x5b};_0x56a686['OPS']=_0x3621d1;const _0x27096b={'NEED_PASSWORD':0x1,'INCORRECT_PASSWORD':0x2};_0x56a686['PasswordResponses']=_0x27096b;let _0x122cc7=_0x46fbb0[_0x6e4512(0x2d0)];function _0x5ab649(_0x2748d6){const _0x646ac2=_0x6e4512;Number[_0x646ac2(0x235)](_0x2748d6)&&(_0x122cc7=_0x2748d6);}function _0x5e368f(){return _0x122cc7;}function _0xf84db2(_0x2cce03){const _0x49df73=_0x6e4512;_0x122cc7>=_0x46fbb0[_0x49df73(0x59b)]&&console[_0x49df73(0x4f4)](_0x49df73(0x28e)+_0x2cce03);}function _0x1753d1(_0x52c05b){const _0x2d1041=_0x6e4512;_0x122cc7>=_0x46fbb0[_0x2d1041(0x2d0)]&&console[_0x2d1041(0x4f4)](_0x2d1041(0x7bb)+_0x52c05b);}function _0x2ba8b1(_0x45427f){throw new Error(_0x45427f);}function _0x3df96c(_0x269838,_0x11d99d){!_0x269838&&_0x2ba8b1(_0x11d99d);}function _0x3c264a(_0x57a765){const _0x333706=_0x6e4512;switch(_0x57a765?.[_0x333706(0x42a)]){case _0x333706(0x1b5):case _0x333706(0x61f):case _0x333706(0x898):case'mailto:':case _0x333706(0x338):return!![];default:return![];}}function _0x1d7886(_0x30c752){const _0x3d7e0b=_0x6e4512;let _0x3d631e=arguments[_0x3d7e0b(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:null,_0x38b485=arguments[_0x3d7e0b(0x557)]>0x2&&arguments[0x2]!==undefined?arguments[0x2]:null;if(!_0x30c752)return null;try{if(_0x38b485&&typeof _0x30c752===_0x3d7e0b(0x8cd)){if(_0x38b485['addDefaultProtocol']&&_0x30c752[_0x3d7e0b(0x2aa)]('www.')){const _0x55a0d3=_0x30c752['match'](/\./g);_0x55a0d3?.[_0x3d7e0b(0x557)]>=0x2&&(_0x30c752=_0x3d7e0b(0x6d0)+_0x30c752);}if(_0x38b485['tryConvertEncoding'])try{_0x30c752=_0x3b52db(_0x30c752);}catch{}}const _0x139e69=_0x3d631e?new URL(_0x30c752,_0x3d631e):new URL(_0x30c752);if(_0x3c264a(_0x139e69))return _0x139e69;}catch{}return null;}function _0x502626(_0x3ad1be,_0xfe694a,_0x30fa14){const _0x29bbbb=_0x6e4512;let _0x3043ac=arguments[_0x29bbbb(0x557)]>0x3&&arguments[0x3]!==undefined?arguments[0x3]:![];return Object[_0x29bbbb(0x430)](_0x3ad1be,_0xfe694a,{'value':_0x30fa14,'enumerable':!_0x3043ac,'configurable':!![],'writable':![]}),_0x30fa14;}const _0x1bf375=function _0x9e6151(){const _0x53e29e=_0x6e4512;function _0x177422(_0x48e3e3,_0x335736){const _0x288d3a=a0_0x160d;this[_0x288d3a(0x6ef)]===_0x177422&&_0x2ba8b1(_0x288d3a(0x733)),this[_0x288d3a(0x1bd)]=_0x48e3e3,this[_0x288d3a(0x499)]=_0x335736;}return _0x177422[_0x53e29e(0x821)]=new Error(),_0x177422[_0x53e29e(0x6ef)]=_0x177422,_0x177422;}();_0x56a686['BaseException']=_0x1bf375;class _0x1776ea extends _0x1bf375{constructor(_0x3846e1,_0x135237){const _0x26f02e=_0x6e4512;super(_0x3846e1,_0x26f02e(0x763)),this['code']=_0x135237;}}_0x56a686['PasswordException']=_0x1776ea;class _0x4f1306 extends _0x1bf375{constructor(_0x45a553,_0x107568){super(_0x45a553,'UnknownErrorException'),this['details']=_0x107568;}}_0x56a686[_0x6e4512(0x194)]=_0x4f1306;class _0x212861 extends _0x1bf375{constructor(_0x5f17dd){const _0x48cc8d=_0x6e4512;super(_0x5f17dd,_0x48cc8d(0x46b));}}_0x56a686[_0x6e4512(0x46b)]=_0x212861;class _0x5dff81 extends _0x1bf375{constructor(_0x414e29){const _0x6549e4=_0x6e4512;super(_0x414e29,_0x6549e4(0x5c5));}}_0x56a686[_0x6e4512(0x5c5)]=_0x5dff81;class _0x52e93 extends _0x1bf375{constructor(_0x11e952,_0x476e01){const _0x48c34a=_0x6e4512;super(_0x11e952,_0x48c34a(0x90f)),this[_0x48c34a(0x78b)]=_0x476e01;}}_0x56a686['UnexpectedResponseException']=_0x52e93;class _0x491bd9 extends _0x1bf375{constructor(_0x49ef47){const _0x26c232=_0x6e4512;super(_0x49ef47,_0x26c232(0x2c9));}}_0x56a686[_0x6e4512(0x2c9)]=_0x491bd9;class _0xe1c647 extends _0x1bf375{constructor(_0x46f87f){const _0x138faa=_0x6e4512;super(_0x46f87f,_0x138faa(0x980));}}_0x56a686[_0x6e4512(0x980)]=_0xe1c647;function _0x2e1023(_0x25485a){const _0x50f543=_0x6e4512;(typeof _0x25485a!=='object'||_0x25485a?.[_0x50f543(0x557)]===undefined)&&_0x2ba8b1(_0x50f543(0x284));const _0x38dcd8=_0x25485a[_0x50f543(0x557)],_0x55fbfc=0x2000;if(_0x38dcd8<_0x55fbfc)return String[_0x50f543(0x218)]['apply'](null,_0x25485a);const _0x10d900=[];for(let _0x5dbe93=0x0;_0x5dbe93<_0x38dcd8;_0x5dbe93+=_0x55fbfc){const _0x5ca5a5=Math[_0x50f543(0x81b)](_0x5dbe93+_0x55fbfc,_0x38dcd8),_0x10b0f4=_0x25485a[_0x50f543(0x47f)](_0x5dbe93,_0x5ca5a5);_0x10d900['push'](String[_0x50f543(0x218)][_0x50f543(0x2d2)](null,_0x10b0f4));}return _0x10d900[_0x50f543(0x334)]('');}function _0xdc1302(_0x3f4283){const _0x14e9cb=_0x6e4512;typeof _0x3f4283!==_0x14e9cb(0x8cd)&&_0x2ba8b1(_0x14e9cb(0x8d6));const _0x639cd9=_0x3f4283[_0x14e9cb(0x557)],_0x2500c2=new Uint8Array(_0x639cd9);for(let _0x1f9408=0x0;_0x1f9408<_0x639cd9;++_0x1f9408){_0x2500c2[_0x1f9408]=_0x3f4283[_0x14e9cb(0x9f3)](_0x1f9408)&0xff;}return _0x2500c2;}function _0x3b9627(_0x1d0e96){return String['fromCharCode'](_0x1d0e96>>0x18&0xff,_0x1d0e96>>0x10&0xff,_0x1d0e96>>0x8&0xff,_0x1d0e96&0xff);}function _0x1a34be(_0x5b5264){const _0x5f4416=_0x6e4512;return Object[_0x5f4416(0x30e)](_0x5b5264)[_0x5f4416(0x557)];}function _0x2f8352(_0x108208){const _0x1035b5=Object['create'](null);for(const [_0x375067,_0x83b776]of _0x108208){_0x1035b5[_0x375067]=_0x83b776;}return _0x1035b5;}function _0x139027(){const _0x4eb903=_0x6e4512,_0x5ab4bb=new Uint8Array(0x4);_0x5ab4bb[0x0]=0x1;const _0x472f34=new Uint32Array(_0x5ab4bb[_0x4eb903(0x948)],0x0,0x1);return _0x472f34[0x0]===0x1;}function _0x306de6(){try{return new Function(''),!![];}catch{return![];}}class _0x63b000{static get[_0x6e4512(0x654)](){const _0x46b406=_0x6e4512;return _0x502626(this,_0x46b406(0x654),_0x139027());}static get[_0x6e4512(0x221)](){return _0x502626(this,'isEvalSupported',_0x306de6());}static get[_0x6e4512(0x5ff)](){const _0x3e01bf=_0x6e4512;return _0x502626(this,_0x3e01bf(0x5ff),typeof OffscreenCanvas!==_0x3e01bf(0x32c));}static get[_0x6e4512(0x5e2)](){const _0x5eb5f9=_0x6e4512;if(typeof navigator===_0x5eb5f9(0x32c))return _0x502626(this,_0x5eb5f9(0x5e2),{'isWin':![],'isMac':![]});return _0x502626(this,'platform',{'isWin':navigator[_0x5eb5f9(0x5e2)]['includes'](_0x5eb5f9(0x353)),'isMac':navigator[_0x5eb5f9(0x5e2)][_0x5eb5f9(0x720)](_0x5eb5f9(0x158))});}}_0x56a686['FeatureTest']=_0x63b000;const _0x2ac5ab=[...Array(0x100)[_0x6e4512(0x30e)]()][_0x6e4512(0x7ec)](_0x52d346=>_0x52d346[_0x6e4512(0x83f)](0x10)['padStart'](0x2,'0'));class _0x169e36{static[_0x6e4512(0x86a)](_0x40c091,_0x400c2d,_0x373c10){return'#'+_0x2ac5ab[_0x40c091]+_0x2ac5ab[_0x400c2d]+_0x2ac5ab[_0x373c10];}static[_0x6e4512(0x7aa)](_0x5b8aa5,_0x1d2b86){let _0x2c987f;_0x5b8aa5[0x0]?(_0x5b8aa5[0x0]<0x0&&(_0x2c987f=_0x1d2b86[0x0],_0x1d2b86[0x0]=_0x1d2b86[0x1],_0x1d2b86[0x1]=_0x2c987f),_0x1d2b86[0x0]*=_0x5b8aa5[0x0],_0x1d2b86[0x1]*=_0x5b8aa5[0x0],_0x5b8aa5[0x3]<0x0&&(_0x2c987f=_0x1d2b86[0x2],_0x1d2b86[0x2]=_0x1d2b86[0x3],_0x1d2b86[0x3]=_0x2c987f),_0x1d2b86[0x2]*=_0x5b8aa5[0x3],_0x1d2b86[0x3]*=_0x5b8aa5[0x3]):(_0x2c987f=_0x1d2b86[0x0],_0x1d2b86[0x0]=_0x1d2b86[0x2],_0x1d2b86[0x2]=_0x2c987f,_0x2c987f=_0x1d2b86[0x1],_0x1d2b86[0x1]=_0x1d2b86[0x3],_0x1d2b86[0x3]=_0x2c987f,_0x5b8aa5[0x1]<0x0&&(_0x2c987f=_0x1d2b86[0x2],_0x1d2b86[0x2]=_0x1d2b86[0x3],_0x1d2b86[0x3]=_0x2c987f),_0x1d2b86[0x2]*=_0x5b8aa5[0x1],_0x1d2b86[0x3]*=_0x5b8aa5[0x1],_0x5b8aa5[0x2]<0x0&&(_0x2c987f=_0x1d2b86[0x0],_0x1d2b86[0x0]=_0x1d2b86[0x1],_0x1d2b86[0x1]=_0x2c987f),_0x1d2b86[0x0]*=_0x5b8aa5[0x2],_0x1d2b86[0x1]*=_0x5b8aa5[0x2]),_0x1d2b86[0x0]+=_0x5b8aa5[0x4],_0x1d2b86[0x1]+=_0x5b8aa5[0x4],_0x1d2b86[0x2]+=_0x5b8aa5[0x5],_0x1d2b86[0x3]+=_0x5b8aa5[0x5];}static['transform'](_0x376a11,_0x438613){return[_0x376a11[0x0]*_0x438613[0x0]+_0x376a11[0x2]*_0x438613[0x1],_0x376a11[0x1]*_0x438613[0x0]+_0x376a11[0x3]*_0x438613[0x1],_0x376a11[0x0]*_0x438613[0x2]+_0x376a11[0x2]*_0x438613[0x3],_0x376a11[0x1]*_0x438613[0x2]+_0x376a11[0x3]*_0x438613[0x3],_0x376a11[0x0]*_0x438613[0x4]+_0x376a11[0x2]*_0x438613[0x5]+_0x376a11[0x4],_0x376a11[0x1]*_0x438613[0x4]+_0x376a11[0x3]*_0x438613[0x5]+_0x376a11[0x5]];}static[_0x6e4512(0x8a2)](_0x37e28d,_0x533f2d){const _0x55a496=_0x37e28d[0x0]*_0x533f2d[0x0]+_0x37e28d[0x1]*_0x533f2d[0x2]+_0x533f2d[0x4],_0x51c798=_0x37e28d[0x0]*_0x533f2d[0x1]+_0x37e28d[0x1]*_0x533f2d[0x3]+_0x533f2d[0x5];return[_0x55a496,_0x51c798];}static[_0x6e4512(0x985)](_0x5c7dd3,_0x4ec925){const _0xc450d9=_0x4ec925[0x0]*_0x4ec925[0x3]-_0x4ec925[0x1]*_0x4ec925[0x2],_0x10fc87=(_0x5c7dd3[0x0]*_0x4ec925[0x3]-_0x5c7dd3[0x1]*_0x4ec925[0x2]+_0x4ec925[0x2]*_0x4ec925[0x5]-_0x4ec925[0x4]*_0x4ec925[0x3])/_0xc450d9,_0x18fc73=(-_0x5c7dd3[0x0]*_0x4ec925[0x1]+_0x5c7dd3[0x1]*_0x4ec925[0x0]+_0x4ec925[0x4]*_0x4ec925[0x1]-_0x4ec925[0x5]*_0x4ec925[0x0])/_0xc450d9;return[_0x10fc87,_0x18fc73];}static['getAxialAlignedBoundingBox'](_0x289076,_0x43240e){const _0x82f937=_0x6e4512,_0x1f6349=this[_0x82f937(0x8a2)](_0x289076,_0x43240e),_0xaeecc3=this[_0x82f937(0x8a2)](_0x289076[_0x82f937(0x80c)](0x2,0x4),_0x43240e),_0x18267f=this[_0x82f937(0x8a2)]([_0x289076[0x0],_0x289076[0x3]],_0x43240e),_0x1fb204=this['applyTransform']([_0x289076[0x2],_0x289076[0x1]],_0x43240e);return[Math[_0x82f937(0x81b)](_0x1f6349[0x0],_0xaeecc3[0x0],_0x18267f[0x0],_0x1fb204[0x0]),Math[_0x82f937(0x81b)](_0x1f6349[0x1],_0xaeecc3[0x1],_0x18267f[0x1],_0x1fb204[0x1]),Math[_0x82f937(0x78d)](_0x1f6349[0x0],_0xaeecc3[0x0],_0x18267f[0x0],_0x1fb204[0x0]),Math[_0x82f937(0x78d)](_0x1f6349[0x1],_0xaeecc3[0x1],_0x18267f[0x1],_0x1fb204[0x1])];}static[_0x6e4512(0x8f2)](_0xfc9667){const _0xedc023=_0xfc9667[0x0]*_0xfc9667[0x3]-_0xfc9667[0x1]*_0xfc9667[0x2];return[_0xfc9667[0x3]/_0xedc023,-_0xfc9667[0x1]/_0xedc023,-_0xfc9667[0x2]/_0xedc023,_0xfc9667[0x0]/_0xedc023,(_0xfc9667[0x2]*_0xfc9667[0x5]-_0xfc9667[0x4]*_0xfc9667[0x3])/_0xedc023,(_0xfc9667[0x4]*_0xfc9667[0x1]-_0xfc9667[0x5]*_0xfc9667[0x0])/_0xedc023];}static[_0x6e4512(0x424)](_0xa85f00){const _0x38ce84=_0x6e4512,_0x5f11fb=[_0xa85f00[0x0],_0xa85f00[0x2],_0xa85f00[0x1],_0xa85f00[0x3]],_0x592a8a=_0xa85f00[0x0]*_0x5f11fb[0x0]+_0xa85f00[0x1]*_0x5f11fb[0x2],_0x541364=_0xa85f00[0x0]*_0x5f11fb[0x1]+_0xa85f00[0x1]*_0x5f11fb[0x3],_0x240745=_0xa85f00[0x2]*_0x5f11fb[0x0]+_0xa85f00[0x3]*_0x5f11fb[0x2],_0x54bad6=_0xa85f00[0x2]*_0x5f11fb[0x1]+_0xa85f00[0x3]*_0x5f11fb[0x3],_0x5a3cd0=(_0x592a8a+_0x54bad6)/0x2,_0x9f454c=Math[_0x38ce84(0x714)]((_0x592a8a+_0x54bad6)**0x2-0x4*(_0x592a8a*_0x54bad6-_0x240745*_0x541364))/0x2,_0x1e1272=_0x5a3cd0+_0x9f454c||0x1,_0x41c349=_0x5a3cd0-_0x9f454c||0x1;return[Math[_0x38ce84(0x714)](_0x1e1272),Math[_0x38ce84(0x714)](_0x41c349)];}static[_0x6e4512(0x3da)](_0x28d9c2){const _0x394086=_0x6e4512,_0x16930d=_0x28d9c2[_0x394086(0x80c)](0x0);return _0x28d9c2[0x0]>_0x28d9c2[0x2]&&(_0x16930d[0x0]=_0x28d9c2[0x2],_0x16930d[0x2]=_0x28d9c2[0x0]),_0x28d9c2[0x1]>_0x28d9c2[0x3]&&(_0x16930d[0x1]=_0x28d9c2[0x3],_0x16930d[0x3]=_0x28d9c2[0x1]),_0x16930d;}static[_0x6e4512(0x441)](_0x31ba5e,_0x3ff0aa){const _0x6c0f28=_0x6e4512,_0x4f860e=Math['max'](Math[_0x6c0f28(0x81b)](_0x31ba5e[0x0],_0x31ba5e[0x2]),Math[_0x6c0f28(0x81b)](_0x3ff0aa[0x0],_0x3ff0aa[0x2])),_0x307041=Math[_0x6c0f28(0x81b)](Math['max'](_0x31ba5e[0x0],_0x31ba5e[0x2]),Math['max'](_0x3ff0aa[0x0],_0x3ff0aa[0x2]));if(_0x4f860e>_0x307041)return null;const _0x8ed2c6=Math['max'](Math[_0x6c0f28(0x81b)](_0x31ba5e[0x1],_0x31ba5e[0x3]),Math[_0x6c0f28(0x81b)](_0x3ff0aa[0x1],_0x3ff0aa[0x3])),_0x51423f=Math[_0x6c0f28(0x81b)](Math['max'](_0x31ba5e[0x1],_0x31ba5e[0x3]),Math[_0x6c0f28(0x78d)](_0x3ff0aa[0x1],_0x3ff0aa[0x3]));if(_0x8ed2c6>_0x51423f)return null;return[_0x4f860e,_0x8ed2c6,_0x307041,_0x51423f];}static['bezierBoundingBox'](_0x3ad4dd,_0x509190,_0x449c12,_0x2ee714,_0x276cf,_0x3eb5fb,_0x31da78,_0x49e287){const _0x1a3335=_0x6e4512,_0x206402=[],_0x30070c=[[],[]];let _0x208eaa,_0x3864ee,_0x24713d,_0x54d20d,_0xe51dec,_0x3c7af0,_0x1f4ebb,_0x458c46;for(let _0xf85a93=0x0;_0xf85a93<0x2;++_0xf85a93){_0xf85a93===0x0?(_0x3864ee=0x6*_0x3ad4dd-0xc*_0x449c12+0x6*_0x276cf,_0x208eaa=-0x3*_0x3ad4dd+0x9*_0x449c12-0x9*_0x276cf+0x3*_0x31da78,_0x24713d=0x3*_0x449c12-0x3*_0x3ad4dd):(_0x3864ee=0x6*_0x509190-0xc*_0x2ee714+0x6*_0x3eb5fb,_0x208eaa=-0x3*_0x509190+0x9*_0x2ee714-0x9*_0x3eb5fb+0x3*_0x49e287,_0x24713d=0x3*_0x2ee714-0x3*_0x509190);if(Math[_0x1a3335(0x346)](_0x208eaa)<1e-12){if(Math[_0x1a3335(0x346)](_0x3864ee)<1e-12)continue;_0x54d20d=-_0x24713d/_0x3864ee;0x0<_0x54d20d&&_0x54d20d<0x1&&_0x206402[_0x1a3335(0x7d6)](_0x54d20d);continue;}_0x1f4ebb=_0x3864ee*_0x3864ee-0x4*_0x24713d*_0x208eaa,_0x458c46=Math[_0x1a3335(0x714)](_0x1f4ebb);if(_0x1f4ebb<0x0)continue;_0xe51dec=(-_0x3864ee+_0x458c46)/(0x2*_0x208eaa),0x0<_0xe51dec&&_0xe51dec<0x1&&_0x206402[_0x1a3335(0x7d6)](_0xe51dec),_0x3c7af0=(-_0x3864ee-_0x458c46)/(0x2*_0x208eaa),0x0<_0x3c7af0&&_0x3c7af0<0x1&&_0x206402[_0x1a3335(0x7d6)](_0x3c7af0);}let _0x5a5e08=_0x206402['length'],_0x1c4a6c;const _0x24dc64=_0x5a5e08;while(_0x5a5e08--){_0x54d20d=_0x206402[_0x5a5e08],_0x1c4a6c=0x1-_0x54d20d,_0x30070c[0x0][_0x5a5e08]=_0x1c4a6c*_0x1c4a6c*_0x1c4a6c*_0x3ad4dd+0x3*_0x1c4a6c*_0x1c4a6c*_0x54d20d*_0x449c12+0x3*_0x1c4a6c*_0x54d20d*_0x54d20d*_0x276cf+_0x54d20d*_0x54d20d*_0x54d20d*_0x31da78,_0x30070c[0x1][_0x5a5e08]=_0x1c4a6c*_0x1c4a6c*_0x1c4a6c*_0x509190+0x3*_0x1c4a6c*_0x1c4a6c*_0x54d20d*_0x2ee714+0x3*_0x1c4a6c*_0x54d20d*_0x54d20d*_0x3eb5fb+_0x54d20d*_0x54d20d*_0x54d20d*_0x49e287;}return _0x30070c[0x0][_0x24dc64]=_0x3ad4dd,_0x30070c[0x1][_0x24dc64]=_0x509190,_0x30070c[0x0][_0x24dc64+0x1]=_0x31da78,_0x30070c[0x1][_0x24dc64+0x1]=_0x49e287,_0x30070c[0x0][_0x1a3335(0x557)]=_0x30070c[0x1]['length']=_0x24dc64+0x2,[Math[_0x1a3335(0x81b)](..._0x30070c[0x0]),Math[_0x1a3335(0x81b)](..._0x30070c[0x1]),Math[_0x1a3335(0x78d)](..._0x30070c[0x0]),Math['max'](..._0x30070c[0x1])];}}_0x56a686['Util']=_0x169e36;const _0x30897c=[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2d8,0x2c7,0x2c6,0x2d9,0x2dd,0x2db,0x2da,0x2dc,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,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,0x0,0x20ac];function _0x59f322(_0x44e9f8){const _0x541810=_0x6e4512;if(_0x44e9f8[0x0]>='ï'){let _0x50904c;if(_0x44e9f8[0x0]==='þ'&&_0x44e9f8[0x1]==='ÿ')_0x50904c=_0x541810(0x1a3);else{if(_0x44e9f8[0x0]==='ÿ'&&_0x44e9f8[0x1]==='þ')_0x50904c=_0x541810(0x328);else _0x44e9f8[0x0]==='ï'&&_0x44e9f8[0x1]==='»'&&_0x44e9f8[0x2]==='¿'&&(_0x50904c=_0x541810(0x68b));}if(_0x50904c)try{const _0x300f95=new TextDecoder(_0x50904c,{'fatal':!![]}),_0x34bb46=_0xdc1302(_0x44e9f8);return _0x300f95[_0x541810(0x21e)](_0x34bb46);}catch(_0x5d63ef){_0x1753d1(_0x541810(0x635)+_0x5d63ef+'\x22.');}}const _0x2536c7=[];for(let _0x17b40c=0x0,_0x108848=_0x44e9f8['length'];_0x17b40c<_0x108848;_0x17b40c++){const _0x45a35e=_0x30897c[_0x44e9f8[_0x541810(0x9f3)](_0x17b40c)];_0x2536c7['push'](_0x45a35e?String[_0x541810(0x218)](_0x45a35e):_0x44e9f8['charAt'](_0x17b40c));}return _0x2536c7[_0x541810(0x334)]('');}function _0x3b52db(_0x1bcce5){return decodeURIComponent(escape(_0x1bcce5));}function _0x1ffdbd(_0x578d38){return unescape(encodeURIComponent(_0x578d38));}function _0x445002(_0x3882f3){const _0xf36ae4=_0x6e4512;return typeof _0x3882f3===_0xf36ae4(0x97b)&&_0x3882f3?.[_0xf36ae4(0x110)]!==undefined;}function _0x459dae(_0x49f4e9,_0x23c3d6){const _0x128072=_0x6e4512;if(_0x49f4e9[_0x128072(0x557)]!==_0x23c3d6[_0x128072(0x557)])return![];for(let _0x533185=0x0,_0x1514fa=_0x49f4e9[_0x128072(0x557)];_0x533185<_0x1514fa;_0x533185++){if(_0x49f4e9[_0x533185]!==_0x23c3d6[_0x533185])return![];}return!![];}function _0x3fd7f6(){const _0x44181e=_0x6e4512;let _0x40e11b=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:new Date();const _0x9a2dcc=[_0x40e11b['getUTCFullYear']()[_0x44181e(0x83f)](),(_0x40e11b['getUTCMonth']()+0x1)[_0x44181e(0x83f)]()[_0x44181e(0x3c2)](0x2,'0'),_0x40e11b[_0x44181e(0x5d0)]()[_0x44181e(0x83f)]()[_0x44181e(0x3c2)](0x2,'0'),_0x40e11b[_0x44181e(0x6bb)]()[_0x44181e(0x83f)]()[_0x44181e(0x3c2)](0x2,'0'),_0x40e11b[_0x44181e(0x65e)]()[_0x44181e(0x83f)]()['padStart'](0x2,'0'),_0x40e11b[_0x44181e(0x6ca)]()[_0x44181e(0x83f)]()[_0x44181e(0x3c2)](0x2,'0')];return _0x9a2dcc['join']('');}class _0x2c1f2d{#settled=![];constructor(){const _0x1a4b3c=_0x6e4512;this[_0x1a4b3c(0x4dd)]=new Promise((_0x32c4a9,_0x345bea)=>{const _0x1c148e=_0x1a4b3c;this[_0x1c148e(0x442)]=_0x55c9a6=>{this.#settled=!![],_0x32c4a9(_0x55c9a6);},this[_0x1c148e(0x282)]=_0x428b6f=>{this.#settled=!![],_0x345bea(_0x428b6f);};});}get[_0x6e4512(0x660)](){return this.#settled;}}_0x56a686[_0x6e4512(0x7e3)]=_0x2c1f2d;let _0x21acf8=null,_0x27f392=null;function _0x25116f(_0x170a21){const _0x51e986=_0x6e4512;return!_0x21acf8&&(_0x21acf8=/([\u00a0\u00b5\u037e\u0eb3\u2000-\u200a\u202f\u2126\ufb00-\ufb04\ufb06\ufb20-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufba1\ufba4-\ufba9\ufbae-\ufbb1\ufbd3-\ufbdc\ufbde-\ufbe7\ufbea-\ufbf8\ufbfc-\ufbfd\ufc00-\ufc5d\ufc64-\ufcf1\ufcf5-\ufd3d\ufd88\ufdf4\ufdfa-\ufdfb\ufe71\ufe77\ufe79\ufe7b\ufe7d]+)|(\ufb05+)/gu,_0x27f392=new Map([['ſt','ſt']])),_0x170a21[_0x51e986(0x8b5)](_0x21acf8,(_0x35675d,_0x603a5,_0x4113a4)=>{const _0x48903a=_0x51e986;return _0x603a5?_0x603a5['normalize']('NFKC'):_0x27f392[_0x48903a(0x8c4)](_0x4113a4);});}function _0x54db00(){const _0xae4cfb=_0x6e4512;if(typeof crypto!=='undefined'&&typeof crypto?.[_0xae4cfb(0x292)]===_0xae4cfb(0x4ec))return crypto['randomUUID']();const _0x2aff3b=new Uint8Array(0x20);if(typeof crypto!==_0xae4cfb(0x32c)&&typeof crypto?.[_0xae4cfb(0x828)]==='function')crypto[_0xae4cfb(0x828)](_0x2aff3b);else for(let _0x5b9569=0x0;_0x5b9569<0x20;_0x5b9569++){_0x2aff3b[_0x5b9569]=Math[_0xae4cfb(0x583)](Math[_0xae4cfb(0x37a)]()*0xff);}return _0x2e1023(_0x2aff3b);}},(_0x30c3c8,_0x457d4e,_0x347c1f)=>{'use strict';var _0x5f1437=_0x347c1f(0x3);(function _0x598cdc(){const _0x53c8d5=a0_0x160d;if(globalThis[_0x53c8d5(0x2a7)]||!_0x5f1437[_0x53c8d5(0x8c5)])return;globalThis['DOMMatrix']=require(_0x53c8d5(0x75a))[_0x53c8d5(0x2a7)];}(),function _0x546f26(){const _0x64e456=a0_0x160d;if(globalThis[_0x64e456(0x466)]||!_0x5f1437[_0x64e456(0x8c5)])return;const {CanvasRenderingContext2D:_0x4590e3}=require(_0x64e456(0x75a)),{polyfillPath2D:_0x154d53}=require(_0x64e456(0x810));globalThis[_0x64e456(0x24e)]=_0x4590e3,_0x154d53(globalThis);}(),function _0x34a3f5(){const _0xec90dd=a0_0x160d;if(globalThis[_0xec90dd(0x8eb)])return;_0x347c1f(0x4);}());},(_0x2cf73d,_0x4c00d5)=>{'use strict';const _0x567dba=a0_0x160d;Object['defineProperty'](_0x4c00d5,_0x567dba(0x19a),{'value':!![]}),_0x4c00d5[_0x567dba(0x8c5)]=void 0x0;const _0x5d7ff5=typeof process===_0x567dba(0x97b)&&process+''===_0x567dba(0x97a)&&!process[_0x567dba(0x83a)]['nw']&&!(process[_0x567dba(0x83a)]['electron']&&process['type']&&process['type']!==_0x567dba(0x36f));_0x4c00d5[_0x567dba(0x8c5)]=_0x5d7ff5;},(_0xdc0cc4,_0x13dc05,_0x56a480)=>{const _0x4e2091=a0_0x160d;_0x56a480(0x5),_0x56a480(0x58),_0x56a480(0x5c),_0x56a480(0x74),_0x56a480(0x76);var _0x180917=_0x56a480(0x82);_0xdc0cc4['exports']=_0x180917[_0x4e2091(0x8eb)];},(_0x555f66,_0x7f2534,_0xa525c)=>{'use strict';const _0x5cdf65=a0_0x160d;var _0xd5e5d0=_0xa525c(0x6),_0x1cb62b=_0xa525c(0xe),_0x2f0885=_0xa525c(0x3d),_0x4cb1da=_0xa525c(0x3e),_0x2c0fe0=_0xa525c(0x24)['f'],_0x1bed5e=_0xa525c(0x42),_0x3e11fc=_0xa525c(0x57),_0x1db612=_0xa525c(0x12),_0x111f4d=_0xa525c(0x22),_0x4e464c=_0x5cdf65(0x492),_0x114d9d=_0x4cb1da[_0x5cdf65(0x98e)],_0x3ca317=_0x4cb1da[_0x5cdf65(0x3b8)](_0x4e464c);_0x555f66[_0x5cdf65(0x5e9)]=_0x1bed5e(Array,'Array',function(_0x1b7cca,_0x1532fa){_0x114d9d(this,{'type':_0x4e464c,'target':_0xd5e5d0(_0x1b7cca),'index':0x0,'kind':_0x1532fa});},function(){const _0x4eddf6=_0x5cdf65;var _0x667410=_0x3ca317(this),_0x24b18b=_0x667410[_0x4eddf6(0x1c8)],_0x48f091=_0x667410[_0x4eddf6(0x440)],_0x2b793a=_0x667410[_0x4eddf6(0x37c)]++;if(!_0x24b18b||_0x2b793a>=_0x24b18b[_0x4eddf6(0x557)])return _0x667410[_0x4eddf6(0x1c8)]=undefined,_0x3e11fc(undefined,!![]);if(_0x48f091==_0x4eddf6(0x30e))return _0x3e11fc(_0x2b793a,![]);if(_0x48f091=='values')return _0x3e11fc(_0x24b18b[_0x2b793a],![]);return _0x3e11fc([_0x2b793a,_0x24b18b[_0x2b793a]],![]);},_0x5cdf65(0x823));var _0x3ccd22=_0x2f0885['Arguments']=_0x2f0885[_0x5cdf65(0x323)];_0x1cb62b(_0x5cdf65(0x30e)),_0x1cb62b('values'),_0x1cb62b(_0x5cdf65(0x816));if(!_0x1db612&&_0x111f4d&&_0x3ccd22[_0x5cdf65(0x499)]!==_0x5cdf65(0x823))try{_0x2c0fe0(_0x3ccd22,_0x5cdf65(0x499),{'value':_0x5cdf65(0x823)});}catch(_0x505f87){}},(_0xfeed29,_0x51d18f,_0x541c32)=>{const _0x37eed1=a0_0x160d;var _0x49c286=_0x541c32(0x7),_0x447d15=_0x541c32(0xc);_0xfeed29[_0x37eed1(0x5e9)]=function(_0xc933ea){return _0x49c286(_0x447d15(_0xc933ea));};},(_0x5cc57d,_0x228499,_0x42005b)=>{const _0x2310e6=a0_0x160d;var _0x2a5008=_0x42005b(0x8),_0x35a5f9=_0x42005b(0xa),_0x42e273=_0x42005b(0xb),_0x5f3370=Object,_0x8f384d=_0x2a5008(''['split']);_0x5cc57d[_0x2310e6(0x5e9)]=_0x35a5f9(function(){const _0x19e691=_0x2310e6;return!_0x5f3370('z')[_0x19e691(0x561)](0x0);})?function(_0x187d15){const _0x59fb59=_0x2310e6;return _0x42e273(_0x187d15)==_0x59fb59(0x7ef)?_0x8f384d(_0x187d15,''):_0x5f3370(_0x187d15);}:_0x5f3370;},(_0x46b938,_0x5b394b,_0x1a5793)=>{const _0x2ab5c2=a0_0x160d;var _0x48aafb=_0x1a5793(0x9),_0x43405b=Function[_0x2ab5c2(0x821)],_0x136b3b=_0x43405b[_0x2ab5c2(0x569)],_0x101be8=_0x48aafb&&_0x43405b[_0x2ab5c2(0x5e8)][_0x2ab5c2(0x5e8)](_0x136b3b,_0x136b3b);_0x46b938[_0x2ab5c2(0x5e9)]=_0x48aafb?_0x101be8:function(_0x231d7c){return function(){const _0xf8bff0=a0_0x160d;return _0x136b3b[_0xf8bff0(0x2d2)](_0x231d7c,arguments);};};},(_0x2f5650,_0x2863ec,_0x1b6d1b)=>{const _0x4b59ec=a0_0x160d;var _0x3f0017=_0x1b6d1b(0xa);_0x2f5650[_0x4b59ec(0x5e9)]=!_0x3f0017(function(){const _0x1b0053=_0x4b59ec;var _0x55b209=function(){}[_0x1b0053(0x5e8)]();return typeof _0x55b209!=_0x1b0053(0x4ec)||_0x55b209['hasOwnProperty'](_0x1b0053(0x821));});},_0x569754=>{const _0x376098=a0_0x160d;_0x569754[_0x376098(0x5e9)]=function(_0x2aa876){try{return!!_0x2aa876();}catch(_0x14b483){return!![];}};},(_0x548610,_0x3cde45,_0x5961df)=>{const _0x5ed4cc=a0_0x160d;var _0x16f882=_0x5961df(0x8),_0x366224=_0x16f882({}[_0x5ed4cc(0x83f)]),_0x2b0b5b=_0x16f882(''[_0x5ed4cc(0x80c)]);_0x548610[_0x5ed4cc(0x5e9)]=function(_0x340ac0){return _0x2b0b5b(_0x366224(_0x340ac0),0x8,-0x1);};},(_0x53a666,_0x6aeafb,_0x313414)=>{var _0x1bdf85=_0x313414(0xd),_0x542bbb=TypeError;_0x53a666['exports']=function(_0x2138af){const _0xd7873c=a0_0x160d;if(_0x1bdf85(_0x2138af))throw _0x542bbb(_0xd7873c(0x867)+_0x2138af);return _0x2138af;};},_0x54352e=>{const _0xf7cdc3=a0_0x160d;_0x54352e[_0xf7cdc3(0x5e9)]=function(_0x31dd6f){return _0x31dd6f===null||_0x31dd6f===undefined;};},(_0x38cd16,_0x5abced,_0x26813e)=>{const _0x11bb7a=a0_0x160d;var _0x43c1cc=_0x26813e(0xf),_0x532f36=_0x26813e(0x1c),_0xef5900=_0x26813e(0x24)['f'],_0x488eab=_0x43c1cc(_0x11bb7a(0x29d)),_0x38738f=Array[_0x11bb7a(0x821)];_0x38738f[_0x488eab]==undefined&&_0xef5900(_0x38738f,_0x488eab,{'configurable':!![],'value':_0x532f36(null)}),_0x38cd16['exports']=function(_0x246583){_0x38738f[_0x488eab][_0x246583]=!![];};},(_0x48fff5,_0x374068,_0x35f88f)=>{const _0x35aa9a=a0_0x160d;var _0x4acafb=_0x35f88f(0x10),_0x25d787=_0x35f88f(0x11),_0xd8470e=_0x35f88f(0x15),_0x4f1903=_0x35f88f(0x17),_0x521e89=_0x35f88f(0x18),_0x587024=_0x35f88f(0x1b),_0x574f92=_0x4acafb['Symbol'],_0x2d300e=_0x25d787(_0x35aa9a(0x555)),_0xd8e175=_0x587024?_0x574f92[_0x35aa9a(0x35f)]||_0x574f92:_0x574f92&&_0x574f92['withoutSetter']||_0x4f1903;_0x48fff5['exports']=function(_0x4f9352){const _0x1a7786=_0x35aa9a;return!_0xd8470e(_0x2d300e,_0x4f9352)&&(_0x2d300e[_0x4f9352]=_0x521e89&&_0xd8470e(_0x574f92,_0x4f9352)?_0x574f92[_0x4f9352]:_0xd8e175(_0x1a7786(0x1e9)+_0x4f9352)),_0x2d300e[_0x4f9352];};},function(_0x4f99fd){const _0x3fd0aa=a0_0x160d;var _0x3a8cbd=function(_0x2899b4){const _0x3e145b=a0_0x160d;return _0x2899b4&&_0x2899b4[_0x3e145b(0x5a5)]==Math&&_0x2899b4;};_0x4f99fd[_0x3fd0aa(0x5e9)]=_0x3a8cbd(typeof globalThis==_0x3fd0aa(0x97b)&&globalThis)||_0x3a8cbd(typeof window==_0x3fd0aa(0x97b)&&window)||_0x3a8cbd(typeof self=='object'&&self)||_0x3a8cbd(typeof global=='object'&&global)||(function(){return this;}())||this||Function('return\x20this')();},(_0x5d0a26,_0x26fde9,_0x36f422)=>{const _0x57eeff=a0_0x160d;var _0x3b188d=_0x36f422(0x12),_0x51eabd=_0x36f422(0x13);(_0x5d0a26['exports']=function(_0x18f4d6,_0x469f9a){return _0x51eabd[_0x18f4d6]||(_0x51eabd[_0x18f4d6]=_0x469f9a!==undefined?_0x469f9a:{});})('versions',[])[_0x57eeff(0x7d6)]({'version':_0x57eeff(0x4d2),'mode':_0x3b188d?_0x57eeff(0x526):_0x57eeff(0x38e),'copyright':_0x57eeff(0x7a9),'license':_0x57eeff(0x588),'source':_0x57eeff(0x523)});},_0x80589e=>{const _0x3179c6=a0_0x160d;_0x80589e[_0x3179c6(0x5e9)]=![];},(_0x436df8,_0x4e9149,_0x5c7ca0)=>{const _0x989f5=a0_0x160d;var _0x74dbba=_0x5c7ca0(0x10),_0x1debe1=_0x5c7ca0(0x14),_0x24dcad='__core-js_shared__',_0x455923=_0x74dbba[_0x24dcad]||_0x1debe1(_0x24dcad,{});_0x436df8[_0x989f5(0x5e9)]=_0x455923;},(_0x1f00b0,_0x2426d3,_0x30f0a6)=>{const _0x31caec=a0_0x160d;var _0x5787e3=_0x30f0a6(0x10),_0x39976d=Object[_0x31caec(0x430)];_0x1f00b0[_0x31caec(0x5e9)]=function(_0x14f267,_0x5e0d4f){try{_0x39976d(_0x5787e3,_0x14f267,{'value':_0x5e0d4f,'configurable':!![],'writable':!![]});}catch(_0x340ec9){_0x5787e3[_0x14f267]=_0x5e0d4f;}return _0x5e0d4f;};},(_0x5ae2c3,_0x37e345,_0x7e0d8e)=>{const _0xb5b7ac=a0_0x160d;var _0x16fd73=_0x7e0d8e(0x8),_0x3ce2a7=_0x7e0d8e(0x16),_0x6c75a4=_0x16fd73({}[_0xb5b7ac(0x801)]);_0x5ae2c3[_0xb5b7ac(0x5e9)]=Object[_0xb5b7ac(0x49a)]||function _0x4a088a(_0x23208e,_0x26b3a1){return _0x6c75a4(_0x3ce2a7(_0x23208e),_0x26b3a1);};},(_0x265778,_0x1fcd0c,_0x2fbd80)=>{const _0x44f914=a0_0x160d;var _0x2fc93c=_0x2fbd80(0xc),_0x456c07=Object;_0x265778[_0x44f914(0x5e9)]=function(_0xa4cef8){return _0x456c07(_0x2fc93c(_0xa4cef8));};},(_0xd59152,_0x163d2e,_0x510e09)=>{const _0x2122c0=a0_0x160d;var _0x1c81c0=_0x510e09(0x8),_0x5640ca=0x0,_0x39ae4d=Math[_0x2122c0(0x37a)](),_0x40528e=_0x1c81c0(0x1[_0x2122c0(0x83f)]);_0xd59152[_0x2122c0(0x5e9)]=function(_0x1e549b){const _0x27bad9=_0x2122c0;return _0x27bad9(0x797)+(_0x1e549b===undefined?'':_0x1e549b)+')_'+_0x40528e(++_0x5640ca+_0x39ae4d,0x24);};},(_0xc0789f,_0xb7f67d,_0x35d72c)=>{const _0x336855=a0_0x160d;var _0x4a44cf=_0x35d72c(0x19),_0x5670c3=_0x35d72c(0xa),_0x5292c2=_0x35d72c(0x10),_0x211754=_0x5292c2['String'];_0xc0789f['exports']=!!Object[_0x336855(0x541)]&&!_0x5670c3(function(){const _0x4a45c5=_0x336855;var _0x271072=Symbol();return!_0x211754(_0x271072)||!(Object(_0x271072)instanceof Symbol)||!Symbol[_0x4a45c5(0x3cd)]&&_0x4a44cf&&_0x4a44cf<0x29;});},(_0x21cc01,_0x2735bd,_0x4c5ba3)=>{const _0xe145ec=a0_0x160d;var _0x222510=_0x4c5ba3(0x10),_0x588bf6=_0x4c5ba3(0x1a),_0x42ea51=_0x222510['process'],_0x2a147c=_0x222510[_0xe145ec(0x846)],_0x48107d=_0x42ea51&&_0x42ea51[_0xe145ec(0x83a)]||_0x2a147c&&_0x2a147c[_0xe145ec(0x5b4)],_0x1d5c17=_0x48107d&&_0x48107d['v8'],_0x297ebb,_0x3feba3;_0x1d5c17&&(_0x297ebb=_0x1d5c17['split']('.'),_0x3feba3=_0x297ebb[0x0]>0x0&&_0x297ebb[0x0]<0x4?0x1:+(_0x297ebb[0x0]+_0x297ebb[0x1]));if(!_0x3feba3&&_0x588bf6){_0x297ebb=_0x588bf6[_0xe145ec(0x1c6)](/Edge\/(\d+)/);if(!_0x297ebb||_0x297ebb[0x1]>=0x4a){_0x297ebb=_0x588bf6[_0xe145ec(0x1c6)](/Chrome\/(\d+)/);if(_0x297ebb)_0x3feba3=+_0x297ebb[0x1];}}_0x21cc01['exports']=_0x3feba3;},_0x2cf479=>{const _0x268cc5=a0_0x160d;_0x2cf479[_0x268cc5(0x5e9)]=typeof navigator!=_0x268cc5(0x32c)&&String(navigator['userAgent'])||'';},(_0x2149fb,_0x1a8559,_0x16d189)=>{const _0x1c7280=a0_0x160d;var _0x1ebcda=_0x16d189(0x18);_0x2149fb['exports']=_0x1ebcda&&!Symbol[_0x1c7280(0x3cd)]&&typeof Symbol[_0x1c7280(0x933)]==_0x1c7280(0x805);},(_0x4ae623,_0x9ff22c,_0x4418d2)=>{const _0x26ae93=a0_0x160d;var _0x51d998=_0x4418d2(0x1d),_0x5949e6=_0x4418d2(0x21),_0x553936=_0x4418d2(0x3a),_0xc633a4=_0x4418d2(0x39),_0xae400=_0x4418d2(0x3b),_0x2844d6=_0x4418d2(0x26),_0x309893=_0x4418d2(0x3c),_0x3bb385='>',_0x4d49e1='<',_0x8ebe54=_0x26ae93(0x821),_0x1b801e=_0x26ae93(0xf2),_0x48d444=_0x309893(_0x26ae93(0x6ff)),_0x5a267c=function(){},_0x5128e6=function(_0x531115){return _0x4d49e1+_0x1b801e+_0x3bb385+_0x531115+_0x4d49e1+'/'+_0x1b801e+_0x3bb385;},_0x103e80=function(_0x5c9314){const _0x5b55fc=_0x26ae93;_0x5c9314[_0x5b55fc(0x629)](_0x5128e6('')),_0x5c9314[_0x5b55fc(0x70e)]();var _0xfd76d6=_0x5c9314[_0x5b55fc(0x232)][_0x5b55fc(0x20d)];return _0x5c9314=null,_0xfd76d6;},_0x9c24a9=function(){const _0x27008e=_0x26ae93;var _0x28d046=_0x2844d6(_0x27008e(0x9d7)),_0x568af8=_0x27008e(0x7ff)+_0x1b801e+':',_0x2e3687;return _0x28d046[_0x27008e(0x498)][_0x27008e(0x619)]=_0x27008e(0x122),_0xae400[_0x27008e(0x387)](_0x28d046),_0x28d046[_0x27008e(0x5ef)]=String(_0x568af8),_0x2e3687=_0x28d046[_0x27008e(0x4ab)][_0x27008e(0x2b1)],_0x2e3687['open'](),_0x2e3687[_0x27008e(0x629)](_0x5128e6(_0x27008e(0x134))),_0x2e3687[_0x27008e(0x70e)](),_0x2e3687['F'];},_0x4b0a6a,_0x319d62=function(){const _0x4e1a84=_0x26ae93;try{_0x4b0a6a=new ActiveXObject(_0x4e1a84(0x689));}catch(_0x42c229){}_0x319d62=typeof document!='undefined'?document[_0x4e1a84(0x971)]&&_0x4b0a6a?_0x103e80(_0x4b0a6a):_0x9c24a9():_0x103e80(_0x4b0a6a);var _0x56faae=_0x553936[_0x4e1a84(0x557)];while(_0x56faae--)delete _0x319d62[_0x8ebe54][_0x553936[_0x56faae]];return _0x319d62();};_0xc633a4[_0x48d444]=!![],_0x4ae623[_0x26ae93(0x5e9)]=Object[_0x26ae93(0x77c)]||function _0x849110(_0x56801b,_0x2539a5){var _0x5c75d3;if(_0x56801b!==null)_0x5a267c[_0x8ebe54]=_0x51d998(_0x56801b),_0x5c75d3=new _0x5a267c(),_0x5a267c[_0x8ebe54]=null,_0x5c75d3[_0x48d444]=_0x56801b;else _0x5c75d3=_0x319d62();return _0x2539a5===undefined?_0x5c75d3:_0x5949e6['f'](_0x5c75d3,_0x2539a5);};},(_0x4cacea,_0x5110fd,_0x4d2f31)=>{var _0x174fe4=_0x4d2f31(0x1e),_0x30ab89=String,_0x3a9c91=TypeError;_0x4cacea['exports']=function(_0x21c12b){const _0x20c27f=a0_0x160d;if(_0x174fe4(_0x21c12b))return _0x21c12b;throw _0x3a9c91(_0x30ab89(_0x21c12b)+_0x20c27f(0x355));};},(_0x5cd46a,_0x1d8ad2,_0x19a0a2)=>{const _0x1e554a=a0_0x160d;var _0x2b629f=_0x19a0a2(0x1f),_0x2a8b17=_0x19a0a2(0x20),_0x4bf186=_0x2a8b17[_0x1e554a(0x586)];_0x5cd46a['exports']=_0x2a8b17['IS_HTMLDDA']?function(_0x2039f6){const _0x28b929=_0x1e554a;return typeof _0x2039f6==_0x28b929(0x97b)?_0x2039f6!==null:_0x2b629f(_0x2039f6)||_0x2039f6===_0x4bf186;}:function(_0x3380aa){const _0x2d3d4f=_0x1e554a;return typeof _0x3380aa==_0x2d3d4f(0x97b)?_0x3380aa!==null:_0x2b629f(_0x3380aa);};},(_0x38895f,_0x4955fd,_0x7d5564)=>{const _0x293a08=a0_0x160d;var _0x5aafed=_0x7d5564(0x20),_0x8e78ec=_0x5aafed[_0x293a08(0x586)];_0x38895f[_0x293a08(0x5e9)]=_0x5aafed[_0x293a08(0x128)]?function(_0x517492){const _0x261100=_0x293a08;return typeof _0x517492==_0x261100(0x4ec)||_0x517492===_0x8e78ec;}:function(_0xb1d13a){const _0x3873a5=_0x293a08;return typeof _0xb1d13a==_0x3873a5(0x4ec);};},_0x11b465=>{const _0x21dc62=a0_0x160d;var _0x48f407=typeof document==_0x21dc62(0x97b)&&document[_0x21dc62(0x586)],_0xf0f6cb=typeof _0x48f407=='undefined'&&_0x48f407!==undefined;_0x11b465[_0x21dc62(0x5e9)]={'all':_0x48f407,'IS_HTMLDDA':_0xf0f6cb};},(_0x3c223b,_0x2db167,_0x242322)=>{const _0x22d59e=a0_0x160d;var _0xcb0701=_0x242322(0x22),_0x25c959=_0x242322(0x23),_0x23d384=_0x242322(0x24),_0x2958c5=_0x242322(0x1d),_0x5c290b=_0x242322(0x6),_0x3f07ac=_0x242322(0x31);_0x2db167['f']=_0xcb0701&&!_0x25c959?Object[_0x22d59e(0x9d2)]:function _0x127606(_0x6e429,_0x1c09b2){_0x2958c5(_0x6e429);var _0x58f651=_0x5c290b(_0x1c09b2),_0x4104c6=_0x3f07ac(_0x1c09b2),_0x187f23=_0x4104c6['length'],_0x155fdf=0x0,_0x730fa5;while(_0x187f23>_0x155fdf)_0x23d384['f'](_0x6e429,_0x730fa5=_0x4104c6[_0x155fdf++],_0x58f651[_0x730fa5]);return _0x6e429;};},(_0x291956,_0x353f06,_0x2a7a7d)=>{const _0x57384b=a0_0x160d;var _0x37d92c=_0x2a7a7d(0xa);_0x291956[_0x57384b(0x5e9)]=!_0x37d92c(function(){const _0x133753=_0x57384b;return Object[_0x133753(0x430)]({},0x1,{'get':function(){return 0x7;}})[0x1]!=0x7;});},(_0x3b8110,_0x2da4f7,_0x371fb7)=>{const _0x434834=a0_0x160d;var _0x391c6a=_0x371fb7(0x22),_0x248053=_0x371fb7(0xa);_0x3b8110[_0x434834(0x5e9)]=_0x391c6a&&_0x248053(function(){const _0x64eda5=_0x434834;return Object[_0x64eda5(0x430)](function(){},_0x64eda5(0x821),{'value':0x2a,'writable':![]})[_0x64eda5(0x821)]!=0x2a;});},(_0x431100,_0x5eac58,_0xa7ed0e)=>{const _0x3e49df=a0_0x160d;var _0x152766=_0xa7ed0e(0x22),_0x17ba74=_0xa7ed0e(0x25),_0x2638a2=_0xa7ed0e(0x23),_0xad2669=_0xa7ed0e(0x1d),_0x46d478=_0xa7ed0e(0x27),_0x5e944a=TypeError,_0x25dd08=Object['defineProperty'],_0x1d2392=Object['getOwnPropertyDescriptor'],_0x5753b9=_0x3e49df(0x255),_0x334b87=_0x3e49df(0x8ab),_0x9281d7=_0x3e49df(0x105);_0x5eac58['f']=_0x152766?_0x2638a2?function _0x40d2a2(_0xca22c,_0x4a119c,_0x3c8263){const _0x43ffe5=_0x3e49df;_0xad2669(_0xca22c),_0x4a119c=_0x46d478(_0x4a119c),_0xad2669(_0x3c8263);if(typeof _0xca22c===_0x43ffe5(0x4ec)&&_0x4a119c===_0x43ffe5(0x821)&&_0x43ffe5(0x2b8)in _0x3c8263&&_0x9281d7 in _0x3c8263&&!_0x3c8263[_0x9281d7]){var _0x24fece=_0x1d2392(_0xca22c,_0x4a119c);_0x24fece&&_0x24fece[_0x9281d7]&&(_0xca22c[_0x4a119c]=_0x3c8263['value'],_0x3c8263={'configurable':_0x334b87 in _0x3c8263?_0x3c8263[_0x334b87]:_0x24fece[_0x334b87],'enumerable':_0x5753b9 in _0x3c8263?_0x3c8263[_0x5753b9]:_0x24fece[_0x5753b9],'writable':![]});}return _0x25dd08(_0xca22c,_0x4a119c,_0x3c8263);}:_0x25dd08:function _0x56f561(_0x45e7b7,_0xe56cbd,_0x475779){const _0x54d3bb=_0x3e49df;_0xad2669(_0x45e7b7),_0xe56cbd=_0x46d478(_0xe56cbd),_0xad2669(_0x475779);if(_0x17ba74)try{return _0x25dd08(_0x45e7b7,_0xe56cbd,_0x475779);}catch(_0x12712b){}if(_0x54d3bb(0x8c4)in _0x475779||'set'in _0x475779)throw _0x5e944a(_0x54d3bb(0x924));if(_0x54d3bb(0x2b8)in _0x475779)_0x45e7b7[_0xe56cbd]=_0x475779['value'];return _0x45e7b7;};},(_0x4d1e7b,_0x4b8ec3,_0x3b5ea1)=>{const _0x106bbe=a0_0x160d;var _0x4bc86b=_0x3b5ea1(0x22),_0xa9de74=_0x3b5ea1(0xa),_0x542ac6=_0x3b5ea1(0x26);_0x4d1e7b[_0x106bbe(0x5e9)]=!_0x4bc86b&&!_0xa9de74(function(){const _0x1d8277=_0x106bbe;return Object[_0x1d8277(0x430)](_0x542ac6('div'),'a',{'get':function(){return 0x7;}})['a']!=0x7;});},(_0x7cc702,_0xfd986b,_0x42c6d3)=>{const _0x3c2a08=a0_0x160d;var _0xaff21=_0x42c6d3(0x10),_0x29d32e=_0x42c6d3(0x1e),_0x5b413f=_0xaff21[_0x3c2a08(0x2b1)],_0x1a8971=_0x29d32e(_0x5b413f)&&_0x29d32e(_0x5b413f[_0x3c2a08(0x400)]);_0x7cc702[_0x3c2a08(0x5e9)]=function(_0x35010d){return _0x1a8971?_0x5b413f['createElement'](_0x35010d):{};};},(_0x5b7e6e,_0x101305,_0x211840)=>{const _0x400aad=a0_0x160d;var _0x422c4c=_0x211840(0x28),_0x5ccfa2=_0x211840(0x2a);_0x5b7e6e[_0x400aad(0x5e9)]=function(_0x287c86){var _0x4593d2=_0x422c4c(_0x287c86,'string');return _0x5ccfa2(_0x4593d2)?_0x4593d2:_0x4593d2+'';};},(_0xdca257,_0x4dfdcc,_0x28ec72)=>{const _0x40c240=a0_0x160d;var _0x4a02f5=_0x28ec72(0x29),_0x39fbdb=_0x28ec72(0x1e),_0xf18f28=_0x28ec72(0x2a),_0x2c5ea4=_0x28ec72(0x2d),_0x4b6d49=_0x28ec72(0x30),_0x474c30=_0x28ec72(0xf),_0x10022e=TypeError,_0x7166eb=_0x474c30(_0x40c240(0x324));_0xdca257[_0x40c240(0x5e9)]=function(_0x11ef18,_0x2f51d9){const _0x5ee0d8=_0x40c240;if(!_0x39fbdb(_0x11ef18)||_0xf18f28(_0x11ef18))return _0x11ef18;var _0x194fe9=_0x2c5ea4(_0x11ef18,_0x7166eb),_0x492fe3;if(_0x194fe9){if(_0x2f51d9===undefined)_0x2f51d9=_0x5ee0d8(0x669);_0x492fe3=_0x4a02f5(_0x194fe9,_0x11ef18,_0x2f51d9);if(!_0x39fbdb(_0x492fe3)||_0xf18f28(_0x492fe3))return _0x492fe3;throw _0x10022e('Can\x27t\x20convert\x20object\x20to\x20primitive\x20value');}if(_0x2f51d9===undefined)_0x2f51d9='number';return _0x4b6d49(_0x11ef18,_0x2f51d9);};},(_0x527747,_0x6c12d2,_0xef6d54)=>{const _0x529a96=a0_0x160d;var _0x27352a=_0xef6d54(0x9),_0x4e7af0=Function[_0x529a96(0x821)]['call'];_0x527747['exports']=_0x27352a?_0x4e7af0[_0x529a96(0x5e8)](_0x4e7af0):function(){const _0x703692=_0x529a96;return _0x4e7af0[_0x703692(0x2d2)](_0x4e7af0,arguments);};},(_0xe2eb21,_0x4e72a4,_0xe23164)=>{const _0x161956=a0_0x160d;var _0x54716c=_0xe23164(0x2b),_0x4b8687=_0xe23164(0x1f),_0x4d09f8=_0xe23164(0x2c),_0x312db8=_0xe23164(0x1b),_0x3ed6fe=Object;_0xe2eb21[_0x161956(0x5e9)]=_0x312db8?function(_0x531578){return typeof _0x531578=='symbol';}:function(_0x2dd8b9){const _0x4af3f4=_0x161956;var _0x21d5ba=_0x54716c('Symbol');return _0x4b8687(_0x21d5ba)&&_0x4d09f8(_0x21d5ba[_0x4af3f4(0x821)],_0x3ed6fe(_0x2dd8b9));};},(_0x2ae3b6,_0x447cc5,_0x37ae04)=>{const _0x5768f0=a0_0x160d;var _0x51ef53=_0x37ae04(0x10),_0x12a1f4=_0x37ae04(0x1f),_0x1953d4=function(_0x1da4b7){return _0x12a1f4(_0x1da4b7)?_0x1da4b7:undefined;};_0x2ae3b6[_0x5768f0(0x5e9)]=function(_0x3c600c,_0x14fea6){return arguments['length']<0x2?_0x1953d4(_0x51ef53[_0x3c600c]):_0x51ef53[_0x3c600c]&&_0x51ef53[_0x3c600c][_0x14fea6];};},(_0x2ef1a1,_0x12c216,_0x5999a3)=>{const _0x23f523=a0_0x160d;var _0x369ba3=_0x5999a3(0x8);_0x2ef1a1[_0x23f523(0x5e9)]=_0x369ba3({}[_0x23f523(0x60c)]);},(_0x905664,_0xf1ea9e,_0x3a4903)=>{const _0x2d8e90=a0_0x160d;var _0x12b2b9=_0x3a4903(0x2e),_0xb5b1c5=_0x3a4903(0xd);_0x905664[_0x2d8e90(0x5e9)]=function(_0x1a20bc,_0x2e373a){var _0x2347b9=_0x1a20bc[_0x2e373a];return _0xb5b1c5(_0x2347b9)?undefined:_0x12b2b9(_0x2347b9);};},(_0x46dea1,_0x5e0ead,_0x1c44c2)=>{const _0x25a1da=a0_0x160d;var _0x858319=_0x1c44c2(0x1f),_0x1666e3=_0x1c44c2(0x2f),_0x404e75=TypeError;_0x46dea1[_0x25a1da(0x5e9)]=function(_0x4e4ccb){if(_0x858319(_0x4e4ccb))return _0x4e4ccb;throw _0x404e75(_0x1666e3(_0x4e4ccb)+'\x20is\x20not\x20a\x20function');};},_0xffa7e=>{const _0x521859=a0_0x160d;var _0x47c569=String;_0xffa7e[_0x521859(0x5e9)]=function(_0x4695cc){const _0x7a7cb3=_0x521859;try{return _0x47c569(_0x4695cc);}catch(_0x162cb0){return _0x7a7cb3(0x20d);}};},(_0x2574fd,_0x4d5fc2,_0x26bd5d)=>{const _0x28aeec=a0_0x160d;var _0x4e2746=_0x26bd5d(0x29),_0x5383da=_0x26bd5d(0x1f),_0x583263=_0x26bd5d(0x1e),_0x21ac21=TypeError;_0x2574fd[_0x28aeec(0x5e9)]=function(_0x21d5b4,_0x5ecf2a){const _0x1d1d29=_0x28aeec;var _0x3fd3b8,_0x2facfe;if(_0x5ecf2a===_0x1d1d29(0x8cd)&&_0x5383da(_0x3fd3b8=_0x21d5b4[_0x1d1d29(0x83f)])&&!_0x583263(_0x2facfe=_0x4e2746(_0x3fd3b8,_0x21d5b4)))return _0x2facfe;if(_0x5383da(_0x3fd3b8=_0x21d5b4[_0x1d1d29(0x7c3)])&&!_0x583263(_0x2facfe=_0x4e2746(_0x3fd3b8,_0x21d5b4)))return _0x2facfe;if(_0x5ecf2a!=='string'&&_0x5383da(_0x3fd3b8=_0x21d5b4[_0x1d1d29(0x83f)])&&!_0x583263(_0x2facfe=_0x4e2746(_0x3fd3b8,_0x21d5b4)))return _0x2facfe;throw _0x21ac21(_0x1d1d29(0x378));};},(_0x14265a,_0x3c83ce,_0x710164)=>{const _0x4e6c63=a0_0x160d;var _0x578690=_0x710164(0x32),_0x157854=_0x710164(0x3a);_0x14265a['exports']=Object[_0x4e6c63(0x30e)]||function _0x1dbe66(_0x23d45b){return _0x578690(_0x23d45b,_0x157854);};},(_0x13d70f,_0x2c746e,_0x534568)=>{const _0x41ea83=a0_0x160d;var _0x4b79e3=_0x534568(0x8),_0x4aac96=_0x534568(0x15),_0x516811=_0x534568(0x6),_0x24c714=_0x534568(0x33)[_0x41ea83(0x82c)],_0x229006=_0x534568(0x39),_0x1db967=_0x4b79e3([][_0x41ea83(0x7d6)]);_0x13d70f['exports']=function(_0x5c5984,_0x1d2ffb){const _0x5609ef=_0x41ea83;var _0x203290=_0x516811(_0x5c5984),_0x5bfc13=0x0,_0x56696c=[],_0x40254f;for(_0x40254f in _0x203290)!_0x4aac96(_0x229006,_0x40254f)&&_0x4aac96(_0x203290,_0x40254f)&&_0x1db967(_0x56696c,_0x40254f);while(_0x1d2ffb[_0x5609ef(0x557)]>_0x5bfc13)_0x4aac96(_0x203290,_0x40254f=_0x1d2ffb[_0x5bfc13++])&&(~_0x24c714(_0x56696c,_0x40254f)||_0x1db967(_0x56696c,_0x40254f));return _0x56696c;};},(_0x1c5b8a,_0x1daa58,_0x3fa333)=>{const _0x14ad9e=a0_0x160d;var _0x325f60=_0x3fa333(0x6),_0x5e3d8b=_0x3fa333(0x34),_0x5d8b5d=_0x3fa333(0x37),_0x108264=function(_0x1d2def){return function(_0xe33b47,_0x707c1,_0x3d5330){var _0x4997e4=_0x325f60(_0xe33b47),_0x5ec5fd=_0x5d8b5d(_0x4997e4),_0x4449c2=_0x5e3d8b(_0x3d5330,_0x5ec5fd),_0x3b27d0;if(_0x1d2def&&_0x707c1!=_0x707c1)while(_0x5ec5fd>_0x4449c2){_0x3b27d0=_0x4997e4[_0x4449c2++];if(_0x3b27d0!=_0x3b27d0)return!![];}else for(;_0x5ec5fd>_0x4449c2;_0x4449c2++){if((_0x1d2def||_0x4449c2 in _0x4997e4)&&_0x4997e4[_0x4449c2]===_0x707c1)return _0x1d2def||_0x4449c2||0x0;}return!_0x1d2def&&-0x1;};};_0x1c5b8a[_0x14ad9e(0x5e9)]={'includes':_0x108264(!![]),'indexOf':_0x108264(![])};},(_0x566990,_0xf03eb9,_0x1b7261)=>{const _0x4f44fc=a0_0x160d;var _0x3ac879=_0x1b7261(0x35),_0x2fc5ba=Math[_0x4f44fc(0x78d)],_0x1b8ff2=Math[_0x4f44fc(0x81b)];_0x566990['exports']=function(_0x503607,_0x8ad84d){var _0x5c27d7=_0x3ac879(_0x503607);return _0x5c27d7<0x0?_0x2fc5ba(_0x5c27d7+_0x8ad84d,0x0):_0x1b8ff2(_0x5c27d7,_0x8ad84d);};},(_0x564a83,_0xe7151b,_0xf04df0)=>{const _0x4350a7=a0_0x160d;var _0x2e1fe4=_0xf04df0(0x36);_0x564a83[_0x4350a7(0x5e9)]=function(_0xe5d4c){var _0xab4898=+_0xe5d4c;return _0xab4898!==_0xab4898||_0xab4898===0x0?0x0:_0x2e1fe4(_0xab4898);};},_0x2e363b=>{const _0x17398d=a0_0x160d;var _0x431fb0=Math[_0x17398d(0x213)],_0xa4cbbf=Math['floor'];_0x2e363b[_0x17398d(0x5e9)]=Math[_0x17398d(0x3a6)]||function _0x26686c(_0x1488eb){var _0x5519dc=+_0x1488eb;return(_0x5519dc>0x0?_0xa4cbbf:_0x431fb0)(_0x5519dc);};},(_0x472159,_0x391af9,_0x5d9efd)=>{const _0xb8748=a0_0x160d;var _0x10633e=_0x5d9efd(0x38);_0x472159[_0xb8748(0x5e9)]=function(_0x992df){const _0x971944=_0xb8748;return _0x10633e(_0x992df[_0x971944(0x557)]);};},(_0x56eb52,_0x21cf7a,_0x5be3a5)=>{const _0x30fb69=a0_0x160d;var _0x441aed=_0x5be3a5(0x35),_0xe6a0b7=Math['min'];_0x56eb52[_0x30fb69(0x5e9)]=function(_0x57d67c){return _0x57d67c>0x0?_0xe6a0b7(_0x441aed(_0x57d67c),0x1fffffffffffff):0x0;};},_0x337fbe=>{_0x337fbe['exports']={};},_0x569e57=>{const _0x32321e=a0_0x160d;_0x569e57[_0x32321e(0x5e9)]=[_0x32321e(0x6ef),'hasOwnProperty',_0x32321e(0x60c),_0x32321e(0x561),_0x32321e(0x32f),_0x32321e(0x83f),_0x32321e(0x7c3)];},(_0x57537e,_0x2b724e,_0x1d4a41)=>{const _0xfe5e03=a0_0x160d;var _0xd415fc=_0x1d4a41(0x2b);_0x57537e[_0xfe5e03(0x5e9)]=_0xd415fc(_0xfe5e03(0x2b1),_0xfe5e03(0x176));},(_0x298504,_0x4d64a8,_0xb6aaa0)=>{const _0x997b05=a0_0x160d;var _0x1651e0=_0xb6aaa0(0x11),_0x3ceb42=_0xb6aaa0(0x17),_0x33aec6=_0x1651e0('keys');_0x298504[_0x997b05(0x5e9)]=function(_0x3124c5){return _0x33aec6[_0x3124c5]||(_0x33aec6[_0x3124c5]=_0x3ceb42(_0x3124c5));};},_0x39be83=>{_0x39be83['exports']={};},(_0x2bcfb3,_0x3a6026,_0x4d83a9)=>{const _0x410ce6=a0_0x160d;var _0x57255e=_0x4d83a9(0x3f),_0x282da5=_0x4d83a9(0x10),_0x5ef03d=_0x4d83a9(0x1e),_0x351f99=_0x4d83a9(0x40),_0x4c4499=_0x4d83a9(0x15),_0x171539=_0x4d83a9(0x13),_0xed426b=_0x4d83a9(0x3c),_0x191621=_0x4d83a9(0x39),_0x108074=_0x410ce6(0x5b9),_0x1b875c=_0x282da5[_0x410ce6(0x7e9)],_0x300a46=_0x282da5[_0x410ce6(0x1d5)],_0x57f650,_0x19a53d,_0x2c0f80,_0x272528=function(_0xd9e3f){return _0x2c0f80(_0xd9e3f)?_0x19a53d(_0xd9e3f):_0x57f650(_0xd9e3f,{});},_0x33c95f=function(_0x33e72c){return function(_0x1fc867){const _0x496e9b=a0_0x160d;var _0x18fcf2;if(!_0x5ef03d(_0x1fc867)||(_0x18fcf2=_0x19a53d(_0x1fc867))[_0x496e9b(0x9fd)]!==_0x33e72c)throw _0x1b875c(_0x496e9b(0x6f1)+_0x33e72c+'\x20required');return _0x18fcf2;};};if(_0x57255e||_0x171539[_0x410ce6(0x25a)]){var _0x1f10a5=_0x171539[_0x410ce6(0x25a)]||(_0x171539[_0x410ce6(0x25a)]=new _0x300a46());_0x1f10a5['get']=_0x1f10a5[_0x410ce6(0x8c4)],_0x1f10a5[_0x410ce6(0x373)]=_0x1f10a5['has'],_0x1f10a5[_0x410ce6(0x98e)]=_0x1f10a5[_0x410ce6(0x98e)],_0x57f650=function(_0xa6e574,_0x5acbf0){const _0x4e22ca=_0x410ce6;if(_0x1f10a5[_0x4e22ca(0x373)](_0xa6e574))throw _0x1b875c(_0x108074);return _0x5acbf0[_0x4e22ca(0x6f7)]=_0xa6e574,_0x1f10a5[_0x4e22ca(0x98e)](_0xa6e574,_0x5acbf0),_0x5acbf0;},_0x19a53d=function(_0x5a3552){const _0x10cd28=_0x410ce6;return _0x1f10a5[_0x10cd28(0x8c4)](_0x5a3552)||{};},_0x2c0f80=function(_0x38cf16){const _0x5beaa0=_0x410ce6;return _0x1f10a5[_0x5beaa0(0x373)](_0x38cf16);};}else{var _0x352891=_0xed426b(_0x410ce6(0x25a));_0x191621[_0x352891]=!![],_0x57f650=function(_0x28a781,_0x135210){const _0x599b7f=_0x410ce6;if(_0x4c4499(_0x28a781,_0x352891))throw _0x1b875c(_0x108074);return _0x135210[_0x599b7f(0x6f7)]=_0x28a781,_0x351f99(_0x28a781,_0x352891,_0x135210),_0x135210;},_0x19a53d=function(_0x21ac03){return _0x4c4499(_0x21ac03,_0x352891)?_0x21ac03[_0x352891]:{};},_0x2c0f80=function(_0xeb5f1d){return _0x4c4499(_0xeb5f1d,_0x352891);};}_0x2bcfb3[_0x410ce6(0x5e9)]={'set':_0x57f650,'get':_0x19a53d,'has':_0x2c0f80,'enforce':_0x272528,'getterFor':_0x33c95f};},(_0x54a6f3,_0x5a52a3,_0xa2d743)=>{const _0xbcf906=a0_0x160d;var _0x3c5845=_0xa2d743(0x10),_0x10377e=_0xa2d743(0x1f),_0x5af803=_0x3c5845[_0xbcf906(0x1d5)];_0x54a6f3[_0xbcf906(0x5e9)]=_0x10377e(_0x5af803)&&/native code/[_0xbcf906(0x6e7)](String(_0x5af803));},(_0x5161ee,_0x33f1dc,_0x189ff2)=>{var _0x35504b=_0x189ff2(0x22),_0x19e4b8=_0x189ff2(0x24),_0xd5ec01=_0x189ff2(0x41);_0x5161ee['exports']=_0x35504b?function(_0x720a81,_0x58a2e2,_0x4ecfc1){return _0x19e4b8['f'](_0x720a81,_0x58a2e2,_0xd5ec01(0x1,_0x4ecfc1));}:function(_0x419b62,_0x495736,_0x2c4d3f){return _0x419b62[_0x495736]=_0x2c4d3f,_0x419b62;};},_0x338345=>{const _0x4d2cd3=a0_0x160d;_0x338345[_0x4d2cd3(0x5e9)]=function(_0x3c4b08,_0xae8cfb){return{'enumerable':!(_0x3c4b08&0x1),'configurable':!(_0x3c4b08&0x2),'writable':!(_0x3c4b08&0x4),'value':_0xae8cfb};};},(_0x325025,_0x41a717,_0x2384d1)=>{'use strict';const _0x570d50=a0_0x160d;var _0x2d9aa2=_0x2384d1(0x43),_0x41ad82=_0x2384d1(0x29),_0x4a0bc6=_0x2384d1(0x12),_0x3c9d5f=_0x2384d1(0x48),_0x1c559b=_0x2384d1(0x1f),_0x561b64=_0x2384d1(0x4f),_0xdbe4a3=_0x2384d1(0x51),_0x4ef56b=_0x2384d1(0x54),_0x244c1b=_0x2384d1(0x53),_0x325d2a=_0x2384d1(0x40),_0x129056=_0x2384d1(0x46),_0x2604d7=_0x2384d1(0xf),_0x5667ef=_0x2384d1(0x3d),_0x12e4cf=_0x2384d1(0x50),_0x4e3da9=_0x3c9d5f[_0x570d50(0x670)],_0x4c4dc4=_0x3c9d5f[_0x570d50(0x121)],_0x1afbd6=_0x12e4cf[_0x570d50(0x107)],_0x1f9e7a=_0x12e4cf['BUGGY_SAFARI_ITERATORS'],_0x50ce30=_0x2604d7('iterator'),_0x597e0c=_0x570d50(0x30e),_0x478e5e=_0x570d50(0x823),_0x34f939=_0x570d50(0x816),_0x12ce47=function(){return this;};_0x325025[_0x570d50(0x5e9)]=function(_0x492892,_0x1a3763,_0x4fb1a6,_0x1ff389,_0x5b8ba3,_0x287f5b,_0x1a871f){const _0x17c00e=_0x570d50;_0x561b64(_0x4fb1a6,_0x1a3763,_0x1ff389);var _0xa298e0=function(_0x20f954){if(_0x20f954===_0x5b8ba3&&_0xcc550d)return _0xcc550d;if(!_0x1f9e7a&&_0x20f954 in _0x2c77ea)return _0x2c77ea[_0x20f954];switch(_0x20f954){case _0x597e0c:return function _0x1eb8b5(){return new _0x4fb1a6(this,_0x20f954);};case _0x478e5e:return function _0x4fa696(){return new _0x4fb1a6(this,_0x20f954);};case _0x34f939:return function _0x455159(){return new _0x4fb1a6(this,_0x20f954);};}return function(){return new _0x4fb1a6(this);};},_0x431061=_0x1a3763+_0x17c00e(0x246),_0x1ffc4d=![],_0x2c77ea=_0x492892[_0x17c00e(0x821)],_0x181fb8=_0x2c77ea[_0x50ce30]||_0x2c77ea[_0x17c00e(0x40c)]||_0x5b8ba3&&_0x2c77ea[_0x5b8ba3],_0xcc550d=!_0x1f9e7a&&_0x181fb8||_0xa298e0(_0x5b8ba3),_0x7dbba9=_0x1a3763==_0x17c00e(0x323)?_0x2c77ea[_0x17c00e(0x816)]||_0x181fb8:_0x181fb8,_0x3a9378,_0x4939f1,_0x36de6c;if(_0x7dbba9){_0x3a9378=_0xdbe4a3(_0x7dbba9[_0x17c00e(0x569)](new _0x492892()));if(_0x3a9378!==Object[_0x17c00e(0x821)]&&_0x3a9378[_0x17c00e(0x5d4)]){if(!_0x4a0bc6&&_0xdbe4a3(_0x3a9378)!==_0x1afbd6){if(_0x4ef56b)_0x4ef56b(_0x3a9378,_0x1afbd6);else!_0x1c559b(_0x3a9378[_0x50ce30])&&_0x129056(_0x3a9378,_0x50ce30,_0x12ce47);}_0x244c1b(_0x3a9378,_0x431061,!![],!![]);if(_0x4a0bc6)_0x5667ef[_0x431061]=_0x12ce47;}}_0x4e3da9&&_0x5b8ba3==_0x478e5e&&_0x181fb8&&_0x181fb8[_0x17c00e(0x499)]!==_0x478e5e&&(!_0x4a0bc6&&_0x4c4dc4?_0x325d2a(_0x2c77ea,_0x17c00e(0x499),_0x478e5e):(_0x1ffc4d=!![],_0xcc550d=function _0x3dc778(){return _0x41ad82(_0x181fb8,this);}));if(_0x5b8ba3){_0x4939f1={'values':_0xa298e0(_0x478e5e),'keys':_0x287f5b?_0xcc550d:_0xa298e0(_0x597e0c),'entries':_0xa298e0(_0x34f939)};if(_0x1a871f)for(_0x36de6c in _0x4939f1){(_0x1f9e7a||_0x1ffc4d||!(_0x36de6c in _0x2c77ea))&&_0x129056(_0x2c77ea,_0x36de6c,_0x4939f1[_0x36de6c]);}else _0x2d9aa2({'target':_0x1a3763,'proto':!![],'forced':_0x1f9e7a||_0x1ffc4d},_0x4939f1);}return(!_0x4a0bc6||_0x1a871f)&&_0x2c77ea[_0x50ce30]!==_0xcc550d&&_0x129056(_0x2c77ea,_0x50ce30,_0xcc550d,{'name':_0x5b8ba3}),_0x5667ef[_0x1a3763]=_0xcc550d,_0x4939f1;};},(_0xe86383,_0x18f7c6,_0x10fae2)=>{var _0x4a2da1=_0x10fae2(0x10),_0x117e74=_0x10fae2(0x44)['f'],_0x327f4b=_0x10fae2(0x40),_0x1aad8f=_0x10fae2(0x46),_0x5045b1=_0x10fae2(0x14),_0x21613f=_0x10fae2(0x4a),_0x4cb1eb=_0x10fae2(0x4e);_0xe86383['exports']=function(_0x446616,_0x449b6a){const _0x30eb12=a0_0x160d;var _0x2d5800=_0x446616[_0x30eb12(0x1c8)],_0x20ad50=_0x446616[_0x30eb12(0x38e)],_0x33780a=_0x446616['stat'],_0x482017,_0x2ff762,_0x9a613d,_0xb47885,_0x5de269,_0x23e002;if(_0x20ad50)_0x2ff762=_0x4a2da1;else _0x33780a?_0x2ff762=_0x4a2da1[_0x2d5800]||_0x5045b1(_0x2d5800,{}):_0x2ff762=(_0x4a2da1[_0x2d5800]||{})['prototype'];if(_0x2ff762)for(_0x9a613d in _0x449b6a){_0x5de269=_0x449b6a[_0x9a613d];if(_0x446616[_0x30eb12(0x167)])_0x23e002=_0x117e74(_0x2ff762,_0x9a613d),_0xb47885=_0x23e002&&_0x23e002['value'];else _0xb47885=_0x2ff762[_0x9a613d];_0x482017=_0x4cb1eb(_0x20ad50?_0x9a613d:_0x2d5800+(_0x33780a?'.':'#')+_0x9a613d,_0x446616[_0x30eb12(0x5ad)]);if(!_0x482017&&_0xb47885!==undefined){if(typeof _0x5de269==typeof _0xb47885)continue;_0x21613f(_0x5de269,_0xb47885);}(_0x446616[_0x30eb12(0x3cd)]||_0xb47885&&_0xb47885[_0x30eb12(0x3cd)])&&_0x327f4b(_0x5de269,_0x30eb12(0x3cd),!![]),_0x1aad8f(_0x2ff762,_0x9a613d,_0x5de269,_0x446616);}};},(_0x4bc198,_0x155d57,_0x539903)=>{var _0x3ec275=_0x539903(0x22),_0x1518b5=_0x539903(0x29),_0x488aa5=_0x539903(0x45),_0xdbc6a0=_0x539903(0x41),_0x1bc853=_0x539903(0x6),_0x3c1444=_0x539903(0x27),_0x1e2ea7=_0x539903(0x15),_0x260784=_0x539903(0x25),_0x116cf1=Object['getOwnPropertyDescriptor'];_0x155d57['f']=_0x3ec275?_0x116cf1:function _0xaebadb(_0x2db03f,_0x3efd4f){_0x2db03f=_0x1bc853(_0x2db03f),_0x3efd4f=_0x3c1444(_0x3efd4f);if(_0x260784)try{return _0x116cf1(_0x2db03f,_0x3efd4f);}catch(_0x1a35ed){}if(_0x1e2ea7(_0x2db03f,_0x3efd4f))return _0xdbc6a0(!_0x1518b5(_0x488aa5['f'],_0x2db03f,_0x3efd4f),_0x2db03f[_0x3efd4f]);};},(_0x4b394e,_0x2bb746)=>{'use strict';const _0x31fb05=a0_0x160d;var _0xc93e75={}[_0x31fb05(0x561)],_0x13f8e5=Object[_0x31fb05(0x8dc)],_0x14c41c=_0x13f8e5&&!_0xc93e75['call']({0x1:0x2},0x1);_0x2bb746['f']=_0x14c41c?function _0x2c7df4(_0x925518){const _0x35b927=_0x31fb05;var _0x3fad17=_0x13f8e5(this,_0x925518);return!!_0x3fad17&&_0x3fad17[_0x35b927(0x255)];}:_0xc93e75;},(_0x5cfee0,_0x3b72f6,_0xa25846)=>{const _0x5653d0=a0_0x160d;var _0x5033cc=_0xa25846(0x1f),_0x4be6cd=_0xa25846(0x24),_0x2a2414=_0xa25846(0x47),_0x345454=_0xa25846(0x14);_0x5cfee0[_0x5653d0(0x5e9)]=function(_0x4e08ae,_0x3f7ed6,_0x26cd95,_0x4c0627){const _0x3b33e8=_0x5653d0;if(!_0x4c0627)_0x4c0627={};var _0x36fd1e=_0x4c0627['enumerable'],_0x18fa7f=_0x4c0627[_0x3b33e8(0x499)]!==undefined?_0x4c0627['name']:_0x3f7ed6;if(_0x5033cc(_0x26cd95))_0x2a2414(_0x26cd95,_0x18fa7f,_0x4c0627);if(_0x4c0627[_0x3b33e8(0x38e)]){if(_0x36fd1e)_0x4e08ae[_0x3f7ed6]=_0x26cd95;else _0x345454(_0x3f7ed6,_0x26cd95);}else{try{if(!_0x4c0627['unsafe'])delete _0x4e08ae[_0x3f7ed6];else{if(_0x4e08ae[_0x3f7ed6])_0x36fd1e=!![];}}catch(_0x20d39a){}if(_0x36fd1e)_0x4e08ae[_0x3f7ed6]=_0x26cd95;else _0x4be6cd['f'](_0x4e08ae,_0x3f7ed6,{'value':_0x26cd95,'enumerable':![],'configurable':!_0x4c0627['nonConfigurable'],'writable':!_0x4c0627['nonWritable']});}return _0x4e08ae;};},(_0x46a3e5,_0xc1dde2,_0xb45024)=>{const _0x55b590=a0_0x160d;var _0x2d56c5=_0xb45024(0x8),_0x20334e=_0xb45024(0xa),_0x558832=_0xb45024(0x1f),_0x24148e=_0xb45024(0x15),_0x186aa6=_0xb45024(0x22),_0x345a02=_0xb45024(0x48)['CONFIGURABLE'],_0x22f84e=_0xb45024(0x49),_0x363117=_0xb45024(0x3e),_0x39965a=_0x363117[_0x55b590(0x9b5)],_0x472f46=_0x363117[_0x55b590(0x8c4)],_0x1bee4b=String,_0x3c6590=Object[_0x55b590(0x430)],_0x5e2589=_0x2d56c5(''[_0x55b590(0x80c)]),_0x206b88=_0x2d56c5(''['replace']),_0x5e89a0=_0x2d56c5([][_0x55b590(0x334)]),_0x186d1f=_0x186aa6&&!_0x20334e(function(){const _0x2292e3=_0x55b590;return _0x3c6590(function(){},_0x2292e3(0x557),{'value':0x8})[_0x2292e3(0x557)]!==0x8;}),_0x294d94=String(String)[_0x55b590(0x6db)](_0x55b590(0x7ef)),_0x49921a=_0x46a3e5[_0x55b590(0x5e9)]=function(_0x2a748b,_0x4caacc,_0x5206ea){const _0x142ec7=_0x55b590;_0x5e2589(_0x1bee4b(_0x4caacc),0x0,0x7)===_0x142ec7(0x797)&&(_0x4caacc='['+_0x206b88(_0x1bee4b(_0x4caacc),/^Symbol\(([^)]*)\)/,'$1')+']');if(_0x5206ea&&_0x5206ea[_0x142ec7(0x3c1)])_0x4caacc=_0x142ec7(0x6a4)+_0x4caacc;if(_0x5206ea&&_0x5206ea[_0x142ec7(0x74b)])_0x4caacc='set\x20'+_0x4caacc;if(!_0x24148e(_0x2a748b,_0x142ec7(0x499))||_0x345a02&&_0x2a748b[_0x142ec7(0x499)]!==_0x4caacc){if(_0x186aa6)_0x3c6590(_0x2a748b,_0x142ec7(0x499),{'value':_0x4caacc,'configurable':!![]});else _0x2a748b[_0x142ec7(0x499)]=_0x4caacc;}_0x186d1f&&_0x5206ea&&_0x24148e(_0x5206ea,_0x142ec7(0x35b))&&_0x2a748b['length']!==_0x5206ea[_0x142ec7(0x35b)]&&_0x3c6590(_0x2a748b,_0x142ec7(0x557),{'value':_0x5206ea[_0x142ec7(0x35b)]});try{if(_0x5206ea&&_0x24148e(_0x5206ea,_0x142ec7(0x6ef))&&_0x5206ea['constructor']){if(_0x186aa6)_0x3c6590(_0x2a748b,_0x142ec7(0x821),{'writable':![]});}else{if(_0x2a748b[_0x142ec7(0x821)])_0x2a748b[_0x142ec7(0x821)]=undefined;}}catch(_0x35255d){}var _0x40cc86=_0x39965a(_0x2a748b);return!_0x24148e(_0x40cc86,_0x142ec7(0x3b5))&&(_0x40cc86[_0x142ec7(0x3b5)]=_0x5e89a0(_0x294d94,typeof _0x4caacc==_0x142ec7(0x8cd)?_0x4caacc:'')),_0x2a748b;};Function['prototype'][_0x55b590(0x83f)]=_0x49921a(function _0xce06e(){const _0xc0aa46=_0x55b590;return _0x558832(this)&&_0x472f46(this)[_0xc0aa46(0x3b5)]||_0x22f84e(this);},'toString');},(_0x15c863,_0x2e69db,_0xc45b90)=>{const _0x215df9=a0_0x160d;var _0x534947=_0xc45b90(0x22),_0x2a23b4=_0xc45b90(0x15),_0x54116e=Function[_0x215df9(0x821)],_0xde0c4f=_0x534947&&Object[_0x215df9(0x8dc)],_0x27e915=_0x2a23b4(_0x54116e,_0x215df9(0x499)),_0x1a9609=_0x27e915&&function _0x269270(){}['name']===_0x215df9(0x12c),_0x1c8d54=_0x27e915&&(!_0x534947||_0x534947&&_0xde0c4f(_0x54116e,'name')[_0x215df9(0x8ab)]);_0x15c863['exports']={'EXISTS':_0x27e915,'PROPER':_0x1a9609,'CONFIGURABLE':_0x1c8d54};},(_0x22275d,_0x2219f2,_0x1ddd8f)=>{const _0x4da60f=a0_0x160d;var _0xf2f3b5=_0x1ddd8f(0x8),_0x30c3ee=_0x1ddd8f(0x1f),_0x5981db=_0x1ddd8f(0x13),_0xcf67d7=_0xf2f3b5(Function[_0x4da60f(0x83f)]);!_0x30c3ee(_0x5981db[_0x4da60f(0x1a4)])&&(_0x5981db[_0x4da60f(0x1a4)]=function(_0x26399a){return _0xcf67d7(_0x26399a);}),_0x22275d['exports']=_0x5981db[_0x4da60f(0x1a4)];},(_0x3a92aa,_0x3ac324,_0x304c71)=>{var _0x1ef5b1=_0x304c71(0x15),_0x278b03=_0x304c71(0x4b),_0xb1763d=_0x304c71(0x44),_0x29448b=_0x304c71(0x24);_0x3a92aa['exports']=function(_0x29cf20,_0x45f444,_0x364917){var _0x6224d3=_0x278b03(_0x45f444),_0x52bfe7=_0x29448b['f'],_0x51d90f=_0xb1763d['f'];for(var _0x13bb8b=0x0;_0x13bb8b<_0x6224d3['length'];_0x13bb8b++){var _0x1f54d4=_0x6224d3[_0x13bb8b];!_0x1ef5b1(_0x29cf20,_0x1f54d4)&&!(_0x364917&&_0x1ef5b1(_0x364917,_0x1f54d4))&&_0x52bfe7(_0x29cf20,_0x1f54d4,_0x51d90f(_0x45f444,_0x1f54d4));}};},(_0x13bb19,_0xbf5279,_0x122d12)=>{const _0x44beb0=a0_0x160d;var _0x4744d7=_0x122d12(0x2b),_0x3f0c7e=_0x122d12(0x8),_0x2eea7b=_0x122d12(0x4c),_0x53567f=_0x122d12(0x4d),_0x55fdba=_0x122d12(0x1d),_0x5adf97=_0x3f0c7e([][_0x44beb0(0x112)]);_0x13bb19[_0x44beb0(0x5e9)]=_0x4744d7(_0x44beb0(0x9d8),_0x44beb0(0x2c1))||function _0x5ed5a1(_0x101cec){var _0x22b664=_0x2eea7b['f'](_0x55fdba(_0x101cec)),_0x4e2ca6=_0x53567f['f'];return _0x4e2ca6?_0x5adf97(_0x22b664,_0x4e2ca6(_0x101cec)):_0x22b664;};},(_0x328d73,_0x4183b8,_0x11fc05)=>{const _0x4a8d61=a0_0x160d;var _0x335fb8=_0x11fc05(0x32),_0xa45286=_0x11fc05(0x3a),_0x87c1d=_0xa45286[_0x4a8d61(0x112)](_0x4a8d61(0x557),_0x4a8d61(0x821));_0x4183b8['f']=Object[_0x4a8d61(0x65b)]||function _0x4cdde4(_0x2d2560){return _0x335fb8(_0x2d2560,_0x87c1d);};},(_0x589838,_0x351d5f)=>{_0x351d5f['f']=Object['getOwnPropertySymbols'];},(_0x36090f,_0x25d63c,_0x406755)=>{const _0x8b1f86=a0_0x160d;var _0x19b1e2=_0x406755(0xa),_0x10e98a=_0x406755(0x1f),_0x25911a=/#|\.prototype\./,_0x1fa39a=function(_0x578251,_0x362dd7){var _0x18395e=_0x4afd31[_0x5ef54d(_0x578251)];return _0x18395e==_0x1be505?!![]:_0x18395e==_0xf01a41?![]:_0x10e98a(_0x362dd7)?_0x19b1e2(_0x362dd7):!!_0x362dd7;},_0x5ef54d=_0x1fa39a[_0x8b1f86(0x2fa)]=function(_0x531d61){const _0x491345=_0x8b1f86;return String(_0x531d61)[_0x491345(0x342)](_0x25911a,'.')['toLowerCase']();},_0x4afd31=_0x1fa39a[_0x8b1f86(0x41b)]={},_0xf01a41=_0x1fa39a[_0x8b1f86(0xd2)]='N',_0x1be505=_0x1fa39a[_0x8b1f86(0x690)]='P';_0x36090f['exports']=_0x1fa39a;},(_0x2b995a,_0x1afe88,_0x5e4e03)=>{'use strict';const _0x5e9636=a0_0x160d;var _0x48ca17=_0x5e4e03(0x50)[_0x5e9636(0x107)],_0x39ef4a=_0x5e4e03(0x1c),_0x463b00=_0x5e4e03(0x41),_0x4c6f86=_0x5e4e03(0x53),_0x2afdda=_0x5e4e03(0x3d),_0x5e2247=function(){return this;};_0x2b995a[_0x5e9636(0x5e9)]=function(_0x12309b,_0x3e854d,_0x35814d,_0x23bdf2){const _0x28c6c9=_0x5e9636;var _0x3dc17e=_0x3e854d+_0x28c6c9(0x246);return _0x12309b[_0x28c6c9(0x821)]=_0x39ef4a(_0x48ca17,{'next':_0x463b00(+!_0x23bdf2,_0x35814d)}),_0x4c6f86(_0x12309b,_0x3dc17e,![],!![]),_0x2afdda[_0x3dc17e]=_0x5e2247,_0x12309b;};},(_0xf46542,_0x2116b1,_0x2d11f2)=>{'use strict';const _0x41ef40=a0_0x160d;var _0x28e8f8=_0x2d11f2(0xa),_0x2c2e4e=_0x2d11f2(0x1f),_0x271b1c=_0x2d11f2(0x1e),_0x2a36a9=_0x2d11f2(0x1c),_0x43a45a=_0x2d11f2(0x51),_0x2c1641=_0x2d11f2(0x46),_0x50371e=_0x2d11f2(0xf),_0x236973=_0x2d11f2(0x12),_0x384234=_0x50371e(_0x41ef40(0x933)),_0x3917a6=![],_0x6c66b0,_0x3eb419,_0x6c5b5e;if([][_0x41ef40(0x30e)]){_0x6c5b5e=[]['keys']();if(!(_0x41ef40(0x5d4)in _0x6c5b5e))_0x3917a6=!![];else{_0x3eb419=_0x43a45a(_0x43a45a(_0x6c5b5e));if(_0x3eb419!==Object[_0x41ef40(0x821)])_0x6c66b0=_0x3eb419;}}var _0x3efca1=!_0x271b1c(_0x6c66b0)||_0x28e8f8(function(){const _0x5da5d0=_0x41ef40;var _0x579be3={};return _0x6c66b0[_0x384234][_0x5da5d0(0x569)](_0x579be3)!==_0x579be3;});if(_0x3efca1)_0x6c66b0={};else{if(_0x236973)_0x6c66b0=_0x2a36a9(_0x6c66b0);}!_0x2c2e4e(_0x6c66b0[_0x384234])&&_0x2c1641(_0x6c66b0,_0x384234,function(){return this;}),_0xf46542['exports']={'IteratorPrototype':_0x6c66b0,'BUGGY_SAFARI_ITERATORS':_0x3917a6};},(_0x2ebc25,_0x2909b1,_0x4788e2)=>{const _0x50b1fe=a0_0x160d;var _0x29b6b0=_0x4788e2(0x15),_0x21d35d=_0x4788e2(0x1f),_0x32b88b=_0x4788e2(0x16),_0x5a8023=_0x4788e2(0x3c),_0x5288e5=_0x4788e2(0x52),_0x7ce90=_0x5a8023('IE_PROTO'),_0x16ac26=Object,_0x21c0cf=_0x16ac26[_0x50b1fe(0x821)];_0x2ebc25['exports']=_0x5288e5?_0x16ac26[_0x50b1fe(0x581)]:function(_0x2276ef){const _0x193cb5=_0x50b1fe;var _0x1fd7aa=_0x32b88b(_0x2276ef);if(_0x29b6b0(_0x1fd7aa,_0x7ce90))return _0x1fd7aa[_0x7ce90];var _0x14a1b9=_0x1fd7aa[_0x193cb5(0x6ef)];if(_0x21d35d(_0x14a1b9)&&_0x1fd7aa instanceof _0x14a1b9)return _0x14a1b9['prototype'];return _0x1fd7aa instanceof _0x16ac26?_0x21c0cf:null;};},(_0x61fd40,_0x373438,_0x85ef04)=>{var _0x36983d=_0x85ef04(0xa);_0x61fd40['exports']=!_0x36983d(function(){const _0x233e6f=a0_0x160d;function _0x39029f(){}return _0x39029f[_0x233e6f(0x821)][_0x233e6f(0x6ef)]=null,Object[_0x233e6f(0x581)](new _0x39029f())!==_0x39029f[_0x233e6f(0x821)];});},(_0x5bc607,_0x34ef9a,_0x2ef230)=>{const _0x181fde=a0_0x160d;var _0x585a4b=_0x2ef230(0x24)['f'],_0x25dbc5=_0x2ef230(0x15),_0x5ad7cb=_0x2ef230(0xf),_0x8e1871=_0x5ad7cb(_0x181fde(0x435));_0x5bc607[_0x181fde(0x5e9)]=function(_0x108c58,_0x4f9192,_0x5dae40){const _0x572eae=_0x181fde;if(_0x108c58&&!_0x5dae40)_0x108c58=_0x108c58[_0x572eae(0x821)];_0x108c58&&!_0x25dbc5(_0x108c58,_0x8e1871)&&_0x585a4b(_0x108c58,_0x8e1871,{'configurable':!![],'value':_0x4f9192});};},(_0x5f0e70,_0x260d39,_0x5d5577)=>{const _0x12cf5f=a0_0x160d;var _0x513a86=_0x5d5577(0x55),_0x20eea7=_0x5d5577(0x1d),_0x4448af=_0x5d5577(0x56);_0x5f0e70['exports']=Object[_0x12cf5f(0x59f)]||('__proto__'in{}?(function(){const _0x4dcee7=_0x12cf5f;var _0x11d31e=![],_0x24446d={},_0x1c4947;try{_0x1c4947=_0x513a86(Object[_0x4dcee7(0x821)],'__proto__',_0x4dcee7(0x98e)),_0x1c4947(_0x24446d,[]),_0x11d31e=_0x24446d instanceof Array;}catch(_0x1b62f1){}return function _0x40a697(_0xbb8a97,_0x4c2eca){const _0x1132d1=_0x4dcee7;_0x20eea7(_0xbb8a97),_0x4448af(_0x4c2eca);if(_0x11d31e)_0x1c4947(_0xbb8a97,_0x4c2eca);else _0xbb8a97[_0x1132d1(0x42e)]=_0x4c2eca;return _0xbb8a97;};}()):undefined);},(_0x2954b9,_0x516e43,_0x31c354)=>{const _0x1648d9=a0_0x160d;var _0x2bd16a=_0x31c354(0x8),_0xd7228b=_0x31c354(0x2e);_0x2954b9[_0x1648d9(0x5e9)]=function(_0x205f28,_0xf22db3,_0x5d239e){const _0x1285e6=_0x1648d9;try{return _0x2bd16a(_0xd7228b(Object[_0x1285e6(0x8dc)](_0x205f28,_0xf22db3)[_0x5d239e]));}catch(_0x700346){}};},(_0x35e0b4,_0x5e581d,_0x1a8f6b)=>{const _0x5379ad=a0_0x160d;var _0x54c1d1=_0x1a8f6b(0x1f),_0x58527b=String,_0x45b610=TypeError;_0x35e0b4[_0x5379ad(0x5e9)]=function(_0x336397){const _0x6de675=_0x5379ad;if(typeof _0x336397==_0x6de675(0x97b)||_0x54c1d1(_0x336397))return _0x336397;throw _0x45b610(_0x6de675(0x2fc)+_0x58527b(_0x336397)+_0x6de675(0x71c));};},_0x3e9803=>{_0x3e9803['exports']=function(_0x13a884,_0x2c620c){return{'value':_0x13a884,'done':_0x2c620c};};},(_0x1777eb,_0x2063ba,_0x137e3c)=>{const _0x1ed406=a0_0x160d;var _0x5a697c=_0x137e3c(0x59),_0x15e0e6=_0x137e3c(0x46),_0x23f5be=_0x137e3c(0x5a);!_0x5a697c&&_0x15e0e6(Object[_0x1ed406(0x821)],_0x1ed406(0x83f),_0x23f5be,{'unsafe':!![]});},(_0x139aec,_0x24811e,_0x45ac84)=>{const _0x4a8eca=a0_0x160d;var _0x8e3783=_0x45ac84(0xf),_0x2b305b=_0x8e3783(_0x4a8eca(0x435)),_0x14dc8e={};_0x14dc8e[_0x2b305b]='z',_0x139aec[_0x4a8eca(0x5e9)]=String(_0x14dc8e)===_0x4a8eca(0x618);},(_0x1cbb0c,_0x230f25,_0x2ac8a7)=>{'use strict';const _0xe42b1e=a0_0x160d;var _0x222c99=_0x2ac8a7(0x59),_0x552916=_0x2ac8a7(0x5b);_0x1cbb0c[_0xe42b1e(0x5e9)]=_0x222c99?{}[_0xe42b1e(0x83f)]:function _0x1a190(){const _0x3fbf21=_0xe42b1e;return _0x3fbf21(0x6b4)+_0x552916(this)+']';};},(_0x94dd63,_0x44dc28,_0x4023d4)=>{const _0x18e20c=a0_0x160d;var _0x219be6=_0x4023d4(0x59),_0x1f5bb9=_0x4023d4(0x1f),_0x3cc15a=_0x4023d4(0xb),_0x505e2f=_0x4023d4(0xf),_0x479a78=_0x505e2f(_0x18e20c(0x435)),_0x346ed5=Object,_0x4e4fd4=_0x3cc15a((function(){return arguments;}()))==_0x18e20c(0x6d4),_0x12d744=function(_0x145221,_0x1deb7b){try{return _0x145221[_0x1deb7b];}catch(_0x7785d1){}};_0x94dd63[_0x18e20c(0x5e9)]=_0x219be6?_0x3cc15a:function(_0x12db68){const _0x52e300=_0x18e20c;var _0x50c9cc,_0x3422b8,_0x3ed39d;return _0x12db68===undefined?_0x52e300(0x998):_0x12db68===null?_0x52e300(0x68a):typeof(_0x3422b8=_0x12d744(_0x50c9cc=_0x346ed5(_0x12db68),_0x479a78))==_0x52e300(0x8cd)?_0x3422b8:_0x4e4fd4?_0x3cc15a(_0x50c9cc):(_0x3ed39d=_0x3cc15a(_0x50c9cc))=='Object'&&_0x1f5bb9(_0x50c9cc[_0x52e300(0x9b6)])?'Arguments':_0x3ed39d;};},(_0x407df0,_0x54d7cd,_0x3c6473)=>{_0x3c6473(0x5d);},(_0x5972de,_0x4e8fd0,_0x58fc69)=>{'use strict';const _0x55b9e8=a0_0x160d;var _0xeb780b=_0x58fc69(0x5e),_0x4641d1=_0x58fc69(0x70);_0xeb780b(_0x55b9e8(0x6d8),function(_0x99649f){return function _0x8102fc(){const _0x7fbf0b=a0_0x160d;return _0x99649f(this,arguments[_0x7fbf0b(0x557)]?arguments[0x0]:undefined);};},_0x4641d1);},(_0x45c1dd,_0x5780fc,_0xb70ee9)=>{'use strict';const _0x5dd7cb=a0_0x160d;var _0x4c51e8=_0xb70ee9(0x43),_0x1da506=_0xb70ee9(0x10),_0x608b41=_0xb70ee9(0x8),_0x8f410=_0xb70ee9(0x4e),_0x4ee652=_0xb70ee9(0x46),_0x5cefab=_0xb70ee9(0x5f),_0x22cada=_0xb70ee9(0x66),_0x4dde87=_0xb70ee9(0x6d),_0x4fe9d1=_0xb70ee9(0x1f),_0x1367a9=_0xb70ee9(0xd),_0x259fa1=_0xb70ee9(0x1e),_0x1916fe=_0xb70ee9(0xa),_0x920969=_0xb70ee9(0x6e),_0x351fd5=_0xb70ee9(0x53),_0x29ed26=_0xb70ee9(0x6f);_0x45c1dd[_0x5dd7cb(0x5e9)]=function(_0x5b709f,_0x33b8e5,_0x5a11ff){const _0x147293=_0x5dd7cb;var _0x44d019=_0x5b709f[_0x147293(0x82c)]('Map')!==-0x1,_0x103f37=_0x5b709f['indexOf']('Weak')!==-0x1,_0x1515aa=_0x44d019?'set':'add',_0xb46f70=_0x1da506[_0x5b709f],_0x216f60=_0xb46f70&&_0xb46f70['prototype'],_0xbd2f20=_0xb46f70,_0x4c3c53={},_0x3e3892=function(_0x11410e){const _0x5c155e=_0x147293;var _0x317263=_0x608b41(_0x216f60[_0x11410e]);_0x4ee652(_0x216f60,_0x11410e,_0x11410e==_0x5c155e(0x156)?function _0x2e24a2(_0x4bfbb6){return _0x317263(this,_0x4bfbb6===0x0?0x0:_0x4bfbb6),this;}:_0x11410e==_0x5c155e(0x65f)?function(_0x4c2912){return _0x103f37&&!_0x259fa1(_0x4c2912)?![]:_0x317263(this,_0x4c2912===0x0?0x0:_0x4c2912);}:_0x11410e=='get'?function _0x47b151(_0x19ca30){return _0x103f37&&!_0x259fa1(_0x19ca30)?undefined:_0x317263(this,_0x19ca30===0x0?0x0:_0x19ca30);}:_0x11410e==_0x5c155e(0x373)?function _0x4330b6(_0x3a8b3d){return _0x103f37&&!_0x259fa1(_0x3a8b3d)?![]:_0x317263(this,_0x3a8b3d===0x0?0x0:_0x3a8b3d);}:function _0x3504ea(_0x40e0a4,_0x128b43){return _0x317263(this,_0x40e0a4===0x0?0x0:_0x40e0a4,_0x128b43),this;});},_0x21fd22=_0x8f410(_0x5b709f,!_0x4fe9d1(_0xb46f70)||!(_0x103f37||_0x216f60['forEach']&&!_0x1916fe(function(){const _0x5c3eb4=_0x147293;new _0xb46f70()[_0x5c3eb4(0x816)]()[_0x5c3eb4(0x5d4)]();})));if(_0x21fd22)_0xbd2f20=_0x5a11ff[_0x147293(0x788)](_0x33b8e5,_0x5b709f,_0x44d019,_0x1515aa),_0x5cefab[_0x147293(0x781)]();else{if(_0x8f410(_0x5b709f,!![])){var _0x4582da=new _0xbd2f20(),_0x5ec123=_0x4582da[_0x1515aa](_0x103f37?{}:-0x0,0x1)!=_0x4582da,_0x7dc861=_0x1916fe(function(){const _0x4ed506=_0x147293;_0x4582da[_0x4ed506(0x373)](0x1);}),_0x4a638e=_0x920969(function(_0x435fd9){new _0xb46f70(_0x435fd9);}),_0x5afb4b=!_0x103f37&&_0x1916fe(function(){var _0xab0939=new _0xb46f70(),_0x1ef3be=0x5;while(_0x1ef3be--)_0xab0939[_0x1515aa](_0x1ef3be,_0x1ef3be);return!_0xab0939['has'](-0x0);});!_0x4a638e&&(_0xbd2f20=_0x33b8e5(function(_0x3f935f,_0x20db3f){_0x4dde87(_0x3f935f,_0x216f60);var _0x544866=_0x29ed26(new _0xb46f70(),_0x3f935f,_0xbd2f20);if(!_0x1367a9(_0x20db3f))_0x22cada(_0x20db3f,_0x544866[_0x1515aa],{'that':_0x544866,'AS_ENTRIES':_0x44d019});return _0x544866;}),_0xbd2f20[_0x147293(0x821)]=_0x216f60,_0x216f60[_0x147293(0x6ef)]=_0xbd2f20);(_0x7dc861||_0x5afb4b)&&(_0x3e3892(_0x147293(0x65f)),_0x3e3892(_0x147293(0x373)),_0x44d019&&_0x3e3892(_0x147293(0x8c4)));if(_0x5afb4b||_0x5ec123)_0x3e3892(_0x1515aa);if(_0x103f37&&_0x216f60['clear'])delete _0x216f60[_0x147293(0x1ca)];}}_0x4c3c53[_0x5b709f]=_0xbd2f20,_0x4c51e8({'global':!![],'constructor':!![],'forced':_0xbd2f20!=_0xb46f70},_0x4c3c53),_0x351fd5(_0xbd2f20,_0x5b709f);if(!_0x103f37)_0x5a11ff[_0x147293(0x601)](_0xbd2f20,_0x5b709f,_0x44d019);return _0xbd2f20;};},(_0x226095,_0x277a65,_0x556415)=>{const _0x2734d5=a0_0x160d;var _0x9ba815=_0x556415(0x43),_0x3432a1=_0x556415(0x8),_0x1af797=_0x556415(0x39),_0x416627=_0x556415(0x1e),_0x117506=_0x556415(0x15),_0x4eecf6=_0x556415(0x24)['f'],_0x36a850=_0x556415(0x4c),_0x44d7e2=_0x556415(0x60),_0xda7a2f=_0x556415(0x63),_0x2eb5c1=_0x556415(0x17),_0x9ee413=_0x556415(0x65),_0x2f5906=![],_0x2e2aea=_0x2eb5c1(_0x2734d5(0x643)),_0x471c87=0x0,_0x1de29a=function(_0x460ac4){_0x4eecf6(_0x460ac4,_0x2e2aea,{'value':{'objectID':'O'+_0x471c87++,'weakData':{}}});},_0x218e6c=function(_0x4819eb,_0x1c687b){const _0x5205f9=_0x2734d5;if(!_0x416627(_0x4819eb))return typeof _0x4819eb==_0x5205f9(0x805)?_0x4819eb:(typeof _0x4819eb==_0x5205f9(0x8cd)?'S':'P')+_0x4819eb;if(!_0x117506(_0x4819eb,_0x2e2aea)){if(!_0xda7a2f(_0x4819eb))return'F';if(!_0x1c687b)return'E';_0x1de29a(_0x4819eb);}return _0x4819eb[_0x2e2aea][_0x5205f9(0x893)];},_0x32eb69=function(_0x20ccee,_0x526c58){const _0x532820=_0x2734d5;if(!_0x117506(_0x20ccee,_0x2e2aea)){if(!_0xda7a2f(_0x20ccee))return!![];if(!_0x526c58)return![];_0x1de29a(_0x20ccee);}return _0x20ccee[_0x2e2aea][_0x532820(0x240)];},_0x292a4a=function(_0xf90f5f){if(_0x9ee413&&_0x2f5906&&_0xda7a2f(_0xf90f5f)&&!_0x117506(_0xf90f5f,_0x2e2aea))_0x1de29a(_0xf90f5f);return _0xf90f5f;},_0x3aa4cd=function(){const _0x298e6e=_0x2734d5;_0x2141fc[_0x298e6e(0x781)]=function(){},_0x2f5906=!![];var _0x2e4372=_0x36a850['f'],_0x41c888=_0x3432a1([][_0x298e6e(0x397)]),_0x2e68c7={};_0x2e68c7[_0x2e2aea]=0x1,_0x2e4372(_0x2e68c7)[_0x298e6e(0x557)]&&(_0x36a850['f']=function(_0x37e423){const _0x377530=_0x298e6e;var _0x37d1da=_0x2e4372(_0x37e423);for(var _0x2f9e54=0x0,_0x45cf5e=_0x37d1da[_0x377530(0x557)];_0x2f9e54<_0x45cf5e;_0x2f9e54++){if(_0x37d1da[_0x2f9e54]===_0x2e2aea){_0x41c888(_0x37d1da,_0x2f9e54,0x1);break;}}return _0x37d1da;},_0x9ba815({'target':'Object','stat':!![],'forced':!![]},{'getOwnPropertyNames':_0x44d7e2['f']}));},_0x2141fc=_0x226095['exports']={'enable':_0x3aa4cd,'fastKey':_0x218e6c,'getWeakData':_0x32eb69,'onFreeze':_0x292a4a};_0x1af797[_0x2e2aea]=!![];},(_0x241f06,_0x41c9d4,_0x4bb42b)=>{const _0xaf53c=a0_0x160d;var _0x2f282e=_0x4bb42b(0xb),_0x3f34fc=_0x4bb42b(0x6),_0x5b130e=_0x4bb42b(0x4c)['f'],_0x9863e=_0x4bb42b(0x61),_0x564e12=typeof window==_0xaf53c(0x97b)&&window&&Object[_0xaf53c(0x65b)]?Object[_0xaf53c(0x65b)](window):[],_0x22f1e9=function(_0x9ef8bd){try{return _0x5b130e(_0x9ef8bd);}catch(_0x9766a2){return _0x9863e(_0x564e12);}};_0x241f06['exports']['f']=function _0x5d977d(_0x53062d){const _0x5b3811=_0xaf53c;return _0x564e12&&_0x2f282e(_0x53062d)==_0x5b3811(0x659)?_0x22f1e9(_0x53062d):_0x5b130e(_0x3f34fc(_0x53062d));};},(_0x23fcaa,_0x5a6373,_0x3e2a5b)=>{const _0x1bba7f=a0_0x160d;var _0x429cdb=_0x3e2a5b(0x34),_0xc4ceae=_0x3e2a5b(0x37),_0xc82380=_0x3e2a5b(0x62),_0x5a0986=Array,_0xd7185b=Math['max'];_0x23fcaa[_0x1bba7f(0x5e9)]=function(_0x296621,_0x1cf970,_0x510d98){var _0x5ca364=_0xc4ceae(_0x296621),_0x42e1bd=_0x429cdb(_0x1cf970,_0x5ca364),_0x4dd69e=_0x429cdb(_0x510d98===undefined?_0x5ca364:_0x510d98,_0x5ca364),_0x29540e=_0x5a0986(_0xd7185b(_0x4dd69e-_0x42e1bd,0x0));for(var _0x4eff3d=0x0;_0x42e1bd<_0x4dd69e;_0x42e1bd++,_0x4eff3d++)_0xc82380(_0x29540e,_0x4eff3d,_0x296621[_0x42e1bd]);return _0x29540e['length']=_0x4eff3d,_0x29540e;};},(_0x507e76,_0x4b9855,_0x2831a4)=>{'use strict';const _0x2162b4=a0_0x160d;var _0x8a7719=_0x2831a4(0x27),_0x4f0949=_0x2831a4(0x24),_0x4ef48d=_0x2831a4(0x41);_0x507e76[_0x2162b4(0x5e9)]=function(_0x2367b6,_0x74c3db,_0x52e2b7){var _0x2116bc=_0x8a7719(_0x74c3db);if(_0x2116bc in _0x2367b6)_0x4f0949['f'](_0x2367b6,_0x2116bc,_0x4ef48d(0x0,_0x52e2b7));else _0x2367b6[_0x2116bc]=_0x52e2b7;};},(_0x359f0f,_0x17b427,_0x28c037)=>{const _0x171983=a0_0x160d;var _0x72a9f6=_0x28c037(0xa),_0x58e77f=_0x28c037(0x1e),_0x590463=_0x28c037(0xb),_0x401373=_0x28c037(0x64),_0xbb3f15=Object[_0x171983(0x313)],_0x4971a7=_0x72a9f6(function(){_0xbb3f15(0x1);});_0x359f0f['exports']=_0x4971a7||_0x401373?function _0x746556(_0x543f21){const _0x4f3f69=_0x171983;if(!_0x58e77f(_0x543f21))return![];if(_0x401373&&_0x590463(_0x543f21)==_0x4f3f69(0x28c))return![];return _0xbb3f15?_0xbb3f15(_0x543f21):!![];}:_0xbb3f15;},(_0x3b8268,_0x2902d0,_0x5d3eef)=>{const _0x5af107=a0_0x160d;var _0x135913=_0x5d3eef(0xa);_0x3b8268[_0x5af107(0x5e9)]=_0x135913(function(){const _0x565ee2=_0x5af107;if(typeof ArrayBuffer=='function'){var _0x5b2136=new ArrayBuffer(0x8);if(Object[_0x565ee2(0x313)](_0x5b2136))Object[_0x565ee2(0x430)](_0x5b2136,'a',{'value':0x8});}});},(_0x3f34a6,_0x5cf931,_0x133b86)=>{const _0xcdcbe0=a0_0x160d;var _0x33e982=_0x133b86(0xa);_0x3f34a6[_0xcdcbe0(0x5e9)]=!_0x33e982(function(){const _0x3358bd=_0xcdcbe0;return Object[_0x3358bd(0x313)](Object[_0x3358bd(0x349)]({}));});},(_0x344d79,_0x3163ff,_0x2a8d92)=>{const _0x339565=a0_0x160d;var _0x23e362=_0x2a8d92(0x67),_0x4f7a15=_0x2a8d92(0x29),_0x5dba1c=_0x2a8d92(0x1d),_0x3aaecd=_0x2a8d92(0x2f),_0xbdef06=_0x2a8d92(0x69),_0x39b372=_0x2a8d92(0x37),_0x5da6a0=_0x2a8d92(0x2c),_0x56c232=_0x2a8d92(0x6a),_0xf0066b=_0x2a8d92(0x6b),_0x37701d=_0x2a8d92(0x6c),_0x28442a=TypeError,_0x2c646e=function(_0x1d2da2,_0x233bbe){const _0x3be5b0=a0_0x160d;this[_0x3be5b0(0x6fb)]=_0x1d2da2,this[_0x3be5b0(0xfd)]=_0x233bbe;},_0x5c38ad=_0x2c646e[_0x339565(0x821)];_0x344d79['exports']=function(_0x48e7b3,_0x475c16,_0x13ac28){const _0x408dad=_0x339565;var _0x1e23ad=_0x13ac28&&_0x13ac28['that'],_0x4a579e=!!(_0x13ac28&&_0x13ac28[_0x408dad(0x42b)]),_0x6ae51f=!!(_0x13ac28&&_0x13ac28[_0x408dad(0x4b7)]),_0x1a871c=!!(_0x13ac28&&_0x13ac28[_0x408dad(0x155)]),_0x42ef01=!!(_0x13ac28&&_0x13ac28[_0x408dad(0x24b)]),_0x41869b=_0x23e362(_0x475c16,_0x1e23ad),_0x344f6b,_0x43d7b1,_0x395bf8,_0x1c9e2b,_0x36dfe0,_0x5bc469,_0x5f257f,_0x2de000=function(_0x28e560){if(_0x344f6b)_0x37701d(_0x344f6b,'normal',_0x28e560);return new _0x2c646e(!![],_0x28e560);},_0x31d144=function(_0x5c8ce0){if(_0x4a579e)return _0x5dba1c(_0x5c8ce0),_0x42ef01?_0x41869b(_0x5c8ce0[0x0],_0x5c8ce0[0x1],_0x2de000):_0x41869b(_0x5c8ce0[0x0],_0x5c8ce0[0x1]);return _0x42ef01?_0x41869b(_0x5c8ce0,_0x2de000):_0x41869b(_0x5c8ce0);};if(_0x6ae51f)_0x344f6b=_0x48e7b3[_0x408dad(0x933)];else{if(_0x1a871c)_0x344f6b=_0x48e7b3;else{_0x43d7b1=_0xf0066b(_0x48e7b3);if(!_0x43d7b1)throw _0x28442a(_0x3aaecd(_0x48e7b3)+_0x408dad(0xf6));if(_0xbdef06(_0x43d7b1)){for(_0x395bf8=0x0,_0x1c9e2b=_0x39b372(_0x48e7b3);_0x1c9e2b>_0x395bf8;_0x395bf8++){_0x36dfe0=_0x31d144(_0x48e7b3[_0x395bf8]);if(_0x36dfe0&&_0x5da6a0(_0x5c38ad,_0x36dfe0))return _0x36dfe0;}return new _0x2c646e(![]);}_0x344f6b=_0x56c232(_0x48e7b3,_0x43d7b1);}}_0x5bc469=_0x6ae51f?_0x48e7b3['next']:_0x344f6b[_0x408dad(0x5d4)];while(!(_0x5f257f=_0x4f7a15(_0x5bc469,_0x344f6b))[_0x408dad(0x4bf)]){try{_0x36dfe0=_0x31d144(_0x5f257f[_0x408dad(0x2b8)]);}catch(_0x3fcd6a){_0x37701d(_0x344f6b,_0x408dad(0x946),_0x3fcd6a);}if(typeof _0x36dfe0==_0x408dad(0x97b)&&_0x36dfe0&&_0x5da6a0(_0x5c38ad,_0x36dfe0))return _0x36dfe0;}return new _0x2c646e(![]);};},(_0x1ef7d3,_0xe03ee5,_0x11ea32)=>{const _0x31d1b9=a0_0x160d;var _0xee19e8=_0x11ea32(0x68),_0x3bfd3b=_0x11ea32(0x2e),_0x3b1025=_0x11ea32(0x9),_0x188147=_0xee19e8(_0xee19e8[_0x31d1b9(0x5e8)]);_0x1ef7d3[_0x31d1b9(0x5e9)]=function(_0x21af5b,_0x4c9dda){return _0x3bfd3b(_0x21af5b),_0x4c9dda===undefined?_0x21af5b:_0x3b1025?_0x188147(_0x21af5b,_0x4c9dda):function(){const _0x19351f=a0_0x160d;return _0x21af5b[_0x19351f(0x2d2)](_0x4c9dda,arguments);};};},(_0x31fac5,_0x5e9bbd,_0x3d3823)=>{const _0x172bee=a0_0x160d;var _0x3e1ee6=_0x3d3823(0xb),_0x3b36a9=_0x3d3823(0x8);_0x31fac5[_0x172bee(0x5e9)]=function(_0x206f35){const _0x3aec4f=_0x172bee;if(_0x3e1ee6(_0x206f35)===_0x3aec4f(0x6bf))return _0x3b36a9(_0x206f35);};},(_0x5eb021,_0x399441,_0x8a6798)=>{const _0x47c6cc=a0_0x160d;var _0xb3a7a1=_0x8a6798(0xf),_0x4a87d4=_0x8a6798(0x3d),_0x241cf7=_0xb3a7a1(_0x47c6cc(0x933)),_0x48fb29=Array['prototype'];_0x5eb021[_0x47c6cc(0x5e9)]=function(_0x5e5d8a){const _0x43b4a5=_0x47c6cc;return _0x5e5d8a!==undefined&&(_0x4a87d4[_0x43b4a5(0x323)]===_0x5e5d8a||_0x48fb29[_0x241cf7]===_0x5e5d8a);};},(_0x6cc54b,_0x487ef7,_0x4f6203)=>{var _0x421546=_0x4f6203(0x29),_0x2f92c9=_0x4f6203(0x2e),_0x15a05d=_0x4f6203(0x1d),_0x5901ee=_0x4f6203(0x2f),_0x1cf6f4=_0x4f6203(0x6b),_0x3f5eb6=TypeError;_0x6cc54b['exports']=function(_0x883339,_0x5c35ef){const _0x5d4df3=a0_0x160d;var _0x38c6e9=arguments[_0x5d4df3(0x557)]<0x2?_0x1cf6f4(_0x883339):_0x5c35ef;if(_0x2f92c9(_0x38c6e9))return _0x15a05d(_0x421546(_0x38c6e9,_0x883339));throw _0x3f5eb6(_0x5901ee(_0x883339)+'\x20is\x20not\x20iterable');};},(_0x5222ce,_0x2d5691,_0x40af9c)=>{const _0x2f93cb=a0_0x160d;var _0x126ded=_0x40af9c(0x5b),_0x4e8d69=_0x40af9c(0x2d),_0x407d71=_0x40af9c(0xd),_0x5821c7=_0x40af9c(0x3d),_0xe23a49=_0x40af9c(0xf),_0x4639f7=_0xe23a49(_0x2f93cb(0x933));_0x5222ce[_0x2f93cb(0x5e9)]=function(_0x2a0ca3){const _0xc0a14d=_0x2f93cb;if(!_0x407d71(_0x2a0ca3))return _0x4e8d69(_0x2a0ca3,_0x4639f7)||_0x4e8d69(_0x2a0ca3,_0xc0a14d(0x40c))||_0x5821c7[_0x126ded(_0x2a0ca3)];};},(_0x21f36b,_0x4c0ac7,_0x47c431)=>{var _0x46bc88=_0x47c431(0x29),_0x3f8b44=_0x47c431(0x1d),_0x27d90e=_0x47c431(0x2d);_0x21f36b['exports']=function(_0x3329b6,_0x7e98d7,_0x897996){const _0x1feb26=a0_0x160d;var _0x38789b,_0x349941;_0x3f8b44(_0x3329b6);try{_0x38789b=_0x27d90e(_0x3329b6,_0x1feb26(0x4b3));if(!_0x38789b){if(_0x7e98d7===_0x1feb26(0x946))throw _0x897996;return _0x897996;}_0x38789b=_0x46bc88(_0x38789b,_0x3329b6);}catch(_0x3f9213){_0x349941=!![],_0x38789b=_0x3f9213;}if(_0x7e98d7===_0x1feb26(0x946))throw _0x897996;if(_0x349941)throw _0x38789b;return _0x3f8b44(_0x38789b),_0x897996;};},(_0x4e0eaf,_0x59af57,_0x12c507)=>{var _0x3eeb64=_0x12c507(0x2c),_0x40da04=TypeError;_0x4e0eaf['exports']=function(_0x197b21,_0x569993){const _0x41f129=a0_0x160d;if(_0x3eeb64(_0x569993,_0x197b21))return _0x197b21;throw _0x40da04(_0x41f129(0x9d5));};},(_0x8aac3a,_0x2d4166,_0xfac970)=>{const _0x16582d=a0_0x160d;var _0x152517=_0xfac970(0xf),_0x29422c=_0x152517(_0x16582d(0x933)),_0x340142=![];try{var _0xd7b379=0x0,_0x2c254f={'next':function(){return{'done':!!_0xd7b379++};},'return':function(){_0x340142=!![];}};_0x2c254f[_0x29422c]=function(){return this;},Array[_0x16582d(0x875)](_0x2c254f,function(){throw 0x2;});}catch(_0xdc60f5){}_0x8aac3a['exports']=function(_0x4ca1f5,_0xedac34){if(!_0xedac34&&!_0x340142)return![];var _0x585669=![];try{var _0x421464={};_0x421464[_0x29422c]=function(){return{'next':function(){return{'done':_0x585669=!![]};}};},_0x4ca1f5(_0x421464);}catch(_0x78414e){}return _0x585669;};},(_0x25b776,_0xa282ae,_0x329fd2)=>{const _0x4da872=a0_0x160d;var _0x1db831=_0x329fd2(0x1f),_0x307ee0=_0x329fd2(0x1e),_0x21d921=_0x329fd2(0x54);_0x25b776[_0x4da872(0x5e9)]=function(_0x1febe5,_0x4a47ca,_0x2396ac){const _0x8129cf=_0x4da872;var _0x3cc6c6,_0x2e138c;if(_0x21d921&&_0x1db831(_0x3cc6c6=_0x4a47ca['constructor'])&&_0x3cc6c6!==_0x2396ac&&_0x307ee0(_0x2e138c=_0x3cc6c6[_0x8129cf(0x821)])&&_0x2e138c!==_0x2396ac[_0x8129cf(0x821)])_0x21d921(_0x1febe5,_0x2e138c);return _0x1febe5;};},(_0x55d98b,_0x15064d,_0x19a4a9)=>{'use strict';const _0x41d629=a0_0x160d;var _0x233f06=_0x19a4a9(0x1c),_0x4187d5=_0x19a4a9(0x71),_0x2610f2=_0x19a4a9(0x72),_0xa1ae68=_0x19a4a9(0x67),_0x2d0284=_0x19a4a9(0x6d),_0x4a2bde=_0x19a4a9(0xd),_0x441f60=_0x19a4a9(0x66),_0x4bc313=_0x19a4a9(0x42),_0x16dcfd=_0x19a4a9(0x57),_0x3a79d4=_0x19a4a9(0x73),_0x539489=_0x19a4a9(0x22),_0x35dbb6=_0x19a4a9(0x5f)['fastKey'],_0x16ad30=_0x19a4a9(0x3e),_0x2348a6=_0x16ad30[_0x41d629(0x98e)],_0x139807=_0x16ad30[_0x41d629(0x3b8)];_0x55d98b[_0x41d629(0x5e9)]={'getConstructor':function(_0x214ef7,_0x47a259,_0x492ef5,_0x57a8c0){const _0x1c0c7b=_0x41d629;var _0x1e930a=_0x214ef7(function(_0x98928a,_0x5bd2d1){const _0x1dc35e=a0_0x160d;_0x2d0284(_0x98928a,_0x225f83),_0x2348a6(_0x98928a,{'type':_0x47a259,'index':_0x233f06(null),'first':undefined,'last':undefined,'size':0x0});if(!_0x539489)_0x98928a[_0x1dc35e(0x87a)]=0x0;if(!_0x4a2bde(_0x5bd2d1))_0x441f60(_0x5bd2d1,_0x98928a[_0x57a8c0],{'that':_0x98928a,'AS_ENTRIES':_0x492ef5});}),_0x225f83=_0x1e930a[_0x1c0c7b(0x821)],_0x4607f0=_0x139807(_0x47a259),_0x3a8d48=function(_0x43f08a,_0x37c82d,_0x4fdcaa){const _0x24a076=_0x1c0c7b;var _0x338c0d=_0x4607f0(_0x43f08a),_0x5a67d5=_0x2b4554(_0x43f08a,_0x37c82d),_0x350053,_0x4fb052;if(_0x5a67d5)_0x5a67d5[_0x24a076(0x2b8)]=_0x4fdcaa;else{_0x338c0d[_0x24a076(0xa00)]=_0x5a67d5={'index':_0x4fb052=_0x35dbb6(_0x37c82d,!![]),'key':_0x37c82d,'value':_0x4fdcaa,'previous':_0x350053=_0x338c0d[_0x24a076(0xa00)],'next':undefined,'removed':![]};if(!_0x338c0d[_0x24a076(0x7a6)])_0x338c0d[_0x24a076(0x7a6)]=_0x5a67d5;if(_0x350053)_0x350053[_0x24a076(0x5d4)]=_0x5a67d5;if(_0x539489)_0x338c0d['size']++;else _0x43f08a['size']++;if(_0x4fb052!=='F')_0x338c0d[_0x24a076(0x37c)][_0x4fb052]=_0x5a67d5;}return _0x43f08a;},_0x2b4554=function(_0x3d4db2,_0x1381a7){const _0x59f6ac=_0x1c0c7b;var _0x1d2e2a=_0x4607f0(_0x3d4db2),_0x38831b=_0x35dbb6(_0x1381a7),_0x435caf;if(_0x38831b!=='F')return _0x1d2e2a['index'][_0x38831b];for(_0x435caf=_0x1d2e2a[_0x59f6ac(0x7a6)];_0x435caf;_0x435caf=_0x435caf[_0x59f6ac(0x5d4)]){if(_0x435caf[_0x59f6ac(0x725)]==_0x1381a7)return _0x435caf;}};_0x2610f2(_0x225f83,{'clear':function _0x8d4fc0(){const _0x1bba1e=_0x1c0c7b;var _0x47f9a2=this,_0x5c7410=_0x4607f0(_0x47f9a2),_0x2713f1=_0x5c7410[_0x1bba1e(0x37c)],_0x2fbe4b=_0x5c7410[_0x1bba1e(0x7a6)];while(_0x2fbe4b){_0x2fbe4b['removed']=!![];if(_0x2fbe4b['previous'])_0x2fbe4b[_0x1bba1e(0xf3)]=_0x2fbe4b[_0x1bba1e(0xf3)]['next']=undefined;delete _0x2713f1[_0x2fbe4b[_0x1bba1e(0x37c)]],_0x2fbe4b=_0x2fbe4b['next'];}_0x5c7410['first']=_0x5c7410[_0x1bba1e(0xa00)]=undefined;if(_0x539489)_0x5c7410[_0x1bba1e(0x87a)]=0x0;else _0x47f9a2[_0x1bba1e(0x87a)]=0x0;},'delete':function(_0x46fc67){const _0x3c93b2=_0x1c0c7b;var _0xc1a6ee=this,_0x4da454=_0x4607f0(_0xc1a6ee),_0x556a48=_0x2b4554(_0xc1a6ee,_0x46fc67);if(_0x556a48){var _0x45cc04=_0x556a48[_0x3c93b2(0x5d4)],_0x284cc9=_0x556a48['previous'];delete _0x4da454[_0x3c93b2(0x37c)][_0x556a48[_0x3c93b2(0x37c)]],_0x556a48[_0x3c93b2(0x854)]=!![];if(_0x284cc9)_0x284cc9['next']=_0x45cc04;if(_0x45cc04)_0x45cc04['previous']=_0x284cc9;if(_0x4da454[_0x3c93b2(0x7a6)]==_0x556a48)_0x4da454[_0x3c93b2(0x7a6)]=_0x45cc04;if(_0x4da454[_0x3c93b2(0xa00)]==_0x556a48)_0x4da454[_0x3c93b2(0xa00)]=_0x284cc9;if(_0x539489)_0x4da454[_0x3c93b2(0x87a)]--;else _0xc1a6ee[_0x3c93b2(0x87a)]--;}return!!_0x556a48;},'forEach':function _0x51270d(_0x13dc16){const _0x147815=_0x1c0c7b;var _0x10456c=_0x4607f0(this),_0x4969a2=_0xa1ae68(_0x13dc16,arguments[_0x147815(0x557)]>0x1?arguments[0x1]:undefined),_0x7e3e87;while(_0x7e3e87=_0x7e3e87?_0x7e3e87[_0x147815(0x5d4)]:_0x10456c[_0x147815(0x7a6)]){_0x4969a2(_0x7e3e87[_0x147815(0x2b8)],_0x7e3e87[_0x147815(0x725)],this);while(_0x7e3e87&&_0x7e3e87[_0x147815(0x854)])_0x7e3e87=_0x7e3e87[_0x147815(0xf3)];}},'has':function _0x58c876(_0xa9b81a){return!!_0x2b4554(this,_0xa9b81a);}}),_0x2610f2(_0x225f83,_0x492ef5?{'get':function _0x169104(_0x11c290){const _0x14c079=_0x1c0c7b;var _0x5e2190=_0x2b4554(this,_0x11c290);return _0x5e2190&&_0x5e2190[_0x14c079(0x2b8)];},'set':function _0x3fc4c9(_0xf95720,_0x6e8800){return _0x3a8d48(this,_0xf95720===0x0?0x0:_0xf95720,_0x6e8800);}}:{'add':function _0x360a8b(_0x1bb97b){return _0x3a8d48(this,_0x1bb97b=_0x1bb97b===0x0?0x0:_0x1bb97b,_0x1bb97b);}});if(_0x539489)_0x4187d5(_0x225f83,_0x1c0c7b(0x87a),{'configurable':!![],'get':function(){const _0x57f563=_0x1c0c7b;return _0x4607f0(this)[_0x57f563(0x87a)];}});return _0x1e930a;},'setStrong':function(_0x25d5e3,_0x44745f,_0x46b9da){const _0xdfee1c=_0x41d629;var _0x4635c3=_0x44745f+_0xdfee1c(0x246),_0x6c298f=_0x139807(_0x44745f),_0x1121ca=_0x139807(_0x4635c3);_0x4bc313(_0x25d5e3,_0x44745f,function(_0x131b44,_0x256cd5){_0x2348a6(this,{'type':_0x4635c3,'target':_0x131b44,'state':_0x6c298f(_0x131b44),'kind':_0x256cd5,'last':undefined});},function(){const _0x52154e=_0xdfee1c;var _0xc48063=_0x1121ca(this),_0x3a5982=_0xc48063['kind'],_0x4406a6=_0xc48063['last'];while(_0x4406a6&&_0x4406a6[_0x52154e(0x854)])_0x4406a6=_0x4406a6[_0x52154e(0xf3)];if(!_0xc48063[_0x52154e(0x1c8)]||!(_0xc48063['last']=_0x4406a6=_0x4406a6?_0x4406a6['next']:_0xc48063[_0x52154e(0x25a)][_0x52154e(0x7a6)]))return _0xc48063[_0x52154e(0x1c8)]=undefined,_0x16dcfd(undefined,!![]);if(_0x3a5982==_0x52154e(0x30e))return _0x16dcfd(_0x4406a6[_0x52154e(0x725)],![]);if(_0x3a5982==_0x52154e(0x823))return _0x16dcfd(_0x4406a6[_0x52154e(0x2b8)],![]);return _0x16dcfd([_0x4406a6['key'],_0x4406a6[_0x52154e(0x2b8)]],![]);},_0x46b9da?_0xdfee1c(0x816):_0xdfee1c(0x823),!_0x46b9da,!![]),_0x3a79d4(_0x44745f);}};},(_0x423fa1,_0x5d360a,_0x205427)=>{const _0x1e1142=a0_0x160d;var _0x3bd4c3=_0x205427(0x47),_0x4cdad1=_0x205427(0x24);_0x423fa1[_0x1e1142(0x5e9)]=function(_0x3f5300,_0x21f3ce,_0x31b5b7){const _0x57dcee=_0x1e1142;if(_0x31b5b7[_0x57dcee(0x8c4)])_0x3bd4c3(_0x31b5b7[_0x57dcee(0x8c4)],_0x21f3ce,{'getter':!![]});if(_0x31b5b7['set'])_0x3bd4c3(_0x31b5b7['set'],_0x21f3ce,{'setter':!![]});return _0x4cdad1['f'](_0x3f5300,_0x21f3ce,_0x31b5b7);};},(_0x201577,_0x2f0e68,_0x1bc22a)=>{var _0x1a40ed=_0x1bc22a(0x46);_0x201577['exports']=function(_0x1a4e2a,_0x63ee23,_0x3612f7){for(var _0x5ceba8 in _0x63ee23)_0x1a40ed(_0x1a4e2a,_0x5ceba8,_0x63ee23[_0x5ceba8],_0x3612f7);return _0x1a4e2a;};},(_0x2f9b3e,_0x3ea671,_0x55ebce)=>{'use strict';const _0x437887=a0_0x160d;var _0xc6aac9=_0x55ebce(0x2b),_0x2c536c=_0x55ebce(0x71),_0x2cbc19=_0x55ebce(0xf),_0x1c45cd=_0x55ebce(0x22),_0x59d0ed=_0x2cbc19('species');_0x2f9b3e[_0x437887(0x5e9)]=function(_0x45ee1d){var _0x34d2ee=_0xc6aac9(_0x45ee1d);_0x1c45cd&&_0x34d2ee&&!_0x34d2ee[_0x59d0ed]&&_0x2c536c(_0x34d2ee,_0x59d0ed,{'configurable':!![],'get':function(){return this;}});};},(_0x2b26e2,_0x16d6d0,_0x2ae77b)=>{_0x2ae77b(0x75);},(_0x13bcaf,_0x724860,_0x3023b5)=>{'use strict';const _0x4a4e20=a0_0x160d;var _0x44ea38=_0x3023b5(0x5e),_0x1aae17=_0x3023b5(0x70);_0x44ea38(_0x4a4e20(0x478),function(_0x3c4e9a){return function _0x1be15e(){const _0x40d74e=a0_0x160d;return _0x3c4e9a(this,arguments[_0x40d74e(0x557)]?arguments[0x0]:undefined);};},_0x1aae17);},(_0x39ee32,_0x5aabe6,_0x4208bd)=>{const _0x200c73=a0_0x160d;var _0x4da58c=_0x4208bd(0x12),_0xca75b2=_0x4208bd(0x43),_0x5ca679=_0x4208bd(0x10),_0x2efa33=_0x4208bd(0x2b),_0x3e75a2=_0x4208bd(0x8),_0x5bf7c6=_0x4208bd(0xa),_0x108489=_0x4208bd(0x17),_0x1d52b6=_0x4208bd(0x1f),_0x1e364c=_0x4208bd(0x77),_0x3b810c=_0x4208bd(0xd),_0x1df9b7=_0x4208bd(0x1e),_0x5b0819=_0x4208bd(0x2a),_0x35fac9=_0x4208bd(0x66),_0x1a1337=_0x4208bd(0x1d),_0xc82fbc=_0x4208bd(0x5b),_0xc46f0b=_0x4208bd(0x15),_0x45385d=_0x4208bd(0x62),_0x5a01b5=_0x4208bd(0x40),_0x17ff1e=_0x4208bd(0x37),_0x3de5f0=_0x4208bd(0x78),_0x144ea6=_0x4208bd(0x79),_0x271852=_0x4208bd(0x7b),_0x49abbd=_0x4208bd(0x7c),_0x2d8dc6=_0x4208bd(0x7d),_0x3639e7=_0x4208bd(0x7e),_0x2704a8=_0x5ca679['Object'],_0x1b227c=_0x5ca679[_0x200c73(0x323)],_0x35e4c3=_0x5ca679['Date'],_0xdee424=_0x5ca679['Error'],_0xc70f20=_0x5ca679['EvalError'],_0xa2ca9e=_0x5ca679[_0x200c73(0x89c)],_0x4adf55=_0x5ca679[_0x200c73(0x69d)],_0x107d86=_0x5ca679[_0x200c73(0x9eb)],_0x177ff8=_0x5ca679[_0x200c73(0x7e9)],_0x2cbdb2=_0x5ca679['URIError'],_0x1d8e9d=_0x5ca679['PerformanceMark'],_0xed3cfe=_0x5ca679[_0x200c73(0x7ce)],_0xae05ed=_0xed3cfe&&_0xed3cfe[_0x200c73(0x38d)]||_0xdee424,_0x4b5785=_0xed3cfe&&_0xed3cfe[_0x200c73(0x730)]||_0xdee424,_0xe0c435=_0xed3cfe&&_0xed3cfe[_0x200c73(0x206)]||_0xdee424,_0x2b4d21=_0x2efa33('DOMException'),_0xa64abd=_0x271852[_0x200c73(0x6d8)],_0x2206d0=_0x271852[_0x200c73(0x373)],_0x97e7c0=_0x271852[_0x200c73(0x8c4)],_0x1be4a5=_0x271852[_0x200c73(0x98e)],_0x1ae137=_0x49abbd[_0x200c73(0x478)],_0x1470f2=_0x49abbd[_0x200c73(0x156)],_0x1d92bf=_0x2efa33(_0x200c73(0x20d),_0x200c73(0x30e)),_0x469fd0=_0x3e75a2([][_0x200c73(0x7d6)]),_0x24960f=_0x3e75a2((!![])[_0x200c73(0x7c3)]),_0x5a9359=_0x3e75a2(0x1[_0x200c73(0x7c3)]),_0x2386e4=_0x3e75a2(''['valueOf']),_0x33e932=_0x3e75a2(_0x35e4c3[_0x200c73(0x821)][_0x200c73(0x5e5)]),_0x563601=_0x108489(_0x200c73(0x8eb)),_0x3c28af=_0x200c73(0xbf),_0x1f6e29=_0x200c73(0x281),_0x441064=function(_0x3a4ce0){return!_0x5bf7c6(function(){const _0x1cccce=a0_0x160d;var _0x140cac=new _0x5ca679[(_0x1cccce(0x478))]([0x7]),_0x57d958=_0x3a4ce0(_0x140cac),_0x373274=_0x3a4ce0(_0x2704a8(0x7));return _0x57d958==_0x140cac||!_0x57d958[_0x1cccce(0x373)](0x7)||typeof _0x373274!=_0x1cccce(0x97b)||_0x373274!=0x7;})&&_0x3a4ce0;},_0x1944be=function(_0x2735e6,_0x23321b){return!_0x5bf7c6(function(){const _0x48782d=a0_0x160d;var _0x40fff4=new _0x23321b(),_0x3b9dce=_0x2735e6({'a':_0x40fff4,'b':_0x40fff4});return!(_0x3b9dce&&_0x3b9dce['a']===_0x3b9dce['b']&&_0x3b9dce['a']instanceof _0x23321b&&_0x3b9dce['a'][_0x48782d(0x274)]===_0x40fff4[_0x48782d(0x274)]);});},_0x5ce708=function(_0x137a4a){return!_0x5bf7c6(function(){const _0x4ec6d3=a0_0x160d;var _0x3d290a=_0x137a4a(new _0x5ca679[(_0x4ec6d3(0x7fc))]([0x1],_0x563601,{'cause':0x3}));return _0x3d290a[_0x4ec6d3(0x499)]!=_0x4ec6d3(0x7fc)||_0x3d290a[_0x4ec6d3(0x957)][0x0]!=0x1||_0x3d290a[_0x4ec6d3(0x1bd)]!=_0x563601||_0x3d290a['cause']!=0x3;});},_0x1ae032=_0x5ca679[_0x200c73(0x8eb)],_0xc4ebec=_0x4da58c||!_0x1944be(_0x1ae032,_0xdee424)||!_0x1944be(_0x1ae032,_0x2b4d21)||!_0x5ce708(_0x1ae032),_0x5267d7=!_0x1ae032&&_0x441064(function(_0x5bf2fd){return new _0x1d8e9d(_0x563601,{'detail':_0x5bf2fd})['detail'];}),_0x3a0650=_0x441064(_0x1ae032)||_0x5267d7,_0x24e81d=function(_0x3eb28c){const _0x25d668=_0x200c73;throw new _0x2b4d21(_0x25d668(0x197)+_0x3eb28c,_0x3c28af);},_0x144eef=function(_0x461dab,_0x104c4f){const _0x34700a=_0x200c73;throw new _0x2b4d21((_0x104c4f||'Cloning')+_0x34700a(0x31a)+_0x461dab+_0x34700a(0x94a),_0x3c28af);},_0x4619dc=function(_0x1e9b0a,_0x59433a){if(!_0x3a0650)_0x144eef(_0x59433a);return _0x3a0650(_0x1e9b0a);},_0x273ed6=function(){const _0x112d01=_0x200c73;var _0x13b35e;try{_0x13b35e=new _0x5ca679[(_0x112d01(0x84d))]();}catch(_0x18054a){try{_0x13b35e=new _0x5ca679[(_0x112d01(0x5ac))]('')[_0x112d01(0x227)];}catch(_0x3b9ddb){}}return _0x13b35e&&_0x13b35e[_0x112d01(0x44d)]&&_0x13b35e['files']?_0x13b35e:null;},_0x2ff770=function(_0x4c0b9f,_0x214e7f){const _0x4986be=_0x200c73;if(_0x5b0819(_0x4c0b9f))_0x24e81d(_0x4986be(0x36b));if(!_0x1df9b7(_0x4c0b9f))return _0x4c0b9f;if(_0x214e7f){if(_0x2206d0(_0x214e7f,_0x4c0b9f))return _0x97e7c0(_0x214e7f,_0x4c0b9f);}else _0x214e7f=new _0xa64abd();var _0x3de9f7=_0xc82fbc(_0x4c0b9f),_0x447f0d=![],_0x325df8,_0x4cf0bd,_0x388d94,_0x566edb,_0x524f0e,_0x59744e,_0x42eaab,_0x2fb313,_0x14e200,_0x5e3a94,_0x26997e;switch(_0x3de9f7){case _0x4986be(0x323):_0x388d94=_0x1b227c(_0x17ff1e(_0x4c0b9f)),_0x447f0d=!![];break;case _0x4986be(0x20d):_0x388d94={},_0x447f0d=!![];break;case _0x4986be(0x6d8):_0x388d94=new _0xa64abd(),_0x447f0d=!![];break;case _0x4986be(0x478):_0x388d94=new _0x1ae137(),_0x447f0d=!![];break;case _0x4986be(0x425):_0x388d94=new RegExp(_0x4c0b9f[_0x4986be(0x3b5)],_0x144ea6(_0x4c0b9f));break;case'Error':_0x4cf0bd=_0x4c0b9f['name'];switch(_0x4cf0bd){case _0x4986be(0x7fc):_0x388d94=_0x2efa33(_0x4986be(0x7fc))([]);break;case _0x4986be(0x9ba):_0x388d94=_0xc70f20();break;case'RangeError':_0x388d94=_0xa2ca9e();break;case _0x4986be(0x69d):_0x388d94=_0x4adf55();break;case _0x4986be(0x9eb):_0x388d94=_0x107d86();break;case _0x4986be(0x7e9):_0x388d94=_0x177ff8();break;case _0x4986be(0x7f6):_0x388d94=_0x2cbdb2();break;case _0x4986be(0x38d):_0x388d94=_0xae05ed();break;case _0x4986be(0x730):_0x388d94=_0x4b5785();break;case _0x4986be(0x206):_0x388d94=_0xe0c435();break;default:_0x388d94=_0xdee424();}_0x447f0d=!![];break;case _0x4986be(0x64c):_0x388d94=new _0x2b4d21(_0x4c0b9f[_0x4986be(0x1bd)],_0x4c0b9f['name']),_0x447f0d=!![];break;case'DataView':case _0x4986be(0x6c6):case'Uint8Array':case _0x4986be(0x41c):case _0x4986be(0x364):case _0x4986be(0x717):case _0x4986be(0x899):case'Uint32Array':case _0x4986be(0x1cc):case'Float64Array':case _0x4986be(0x1ef):case'BigUint64Array':_0x325df8=_0x5ca679[_0x3de9f7];if(!_0x1df9b7(_0x325df8))_0x144eef(_0x3de9f7);_0x388d94=new _0x325df8(_0x2ff770(_0x4c0b9f[_0x4986be(0x948)],_0x214e7f),_0x4c0b9f[_0x4986be(0x9c6)],_0x3de9f7===_0x4986be(0x6c0)?_0x4c0b9f[_0x4986be(0x110)]:_0x4c0b9f[_0x4986be(0x557)]);break;case _0x4986be(0x391):try{_0x388d94=new DOMQuad(_0x2ff770(_0x4c0b9f['p1'],_0x214e7f),_0x2ff770(_0x4c0b9f['p2'],_0x214e7f),_0x2ff770(_0x4c0b9f['p3'],_0x214e7f),_0x2ff770(_0x4c0b9f['p4'],_0x214e7f));}catch(_0x55f794){_0x388d94=_0x4619dc(_0x4c0b9f,_0x3de9f7);}break;case'File':if(_0x3a0650)try{_0x388d94=_0x3a0650(_0x4c0b9f);if(_0xc82fbc(_0x388d94)!==_0x3de9f7)_0x388d94=undefined;}catch(_0x54bb8e){}if(!_0x388d94)try{_0x388d94=new File([_0x4c0b9f],_0x4c0b9f[_0x4986be(0x499)],_0x4c0b9f);}catch(_0x51fd20){}if(!_0x388d94)_0x144eef(_0x3de9f7);break;case'FileList':_0x566edb=_0x273ed6();if(_0x566edb){for(_0x524f0e=0x0,_0x59744e=_0x17ff1e(_0x4c0b9f);_0x524f0e<_0x59744e;_0x524f0e++){_0x566edb['items'][_0x4986be(0x156)](_0x2ff770(_0x4c0b9f[_0x524f0e],_0x214e7f));}_0x388d94=_0x566edb[_0x4986be(0x5df)];}else _0x388d94=_0x4619dc(_0x4c0b9f,_0x3de9f7);break;case _0x4986be(0x857):try{_0x388d94=new ImageData(_0x2ff770(_0x4c0b9f[_0x4986be(0x41b)],_0x214e7f),_0x4c0b9f[_0x4986be(0x98b)],_0x4c0b9f['height'],{'colorSpace':_0x4c0b9f['colorSpace']});}catch(_0x41c069){_0x388d94=_0x4619dc(_0x4c0b9f,_0x3de9f7);}break;default:if(_0x3a0650)_0x388d94=_0x3a0650(_0x4c0b9f);else switch(_0x3de9f7){case _0x4986be(0x9c4):_0x388d94=_0x2704a8(_0x4c0b9f[_0x4986be(0x7c3)]());break;case'Boolean':_0x388d94=_0x2704a8(_0x24960f(_0x4c0b9f));break;case'Number':_0x388d94=_0x2704a8(_0x5a9359(_0x4c0b9f));break;case'String':_0x388d94=_0x2704a8(_0x2386e4(_0x4c0b9f));break;case _0x4986be(0x732):_0x388d94=new _0x35e4c3(_0x33e932(_0x4c0b9f));break;case _0x4986be(0x28c):_0x325df8=_0x5ca679[_0x4986be(0x6c0)];if(!_0x325df8&&typeof _0x4c0b9f[_0x4986be(0x80c)]!=_0x4986be(0x4ec))_0x144eef(_0x3de9f7);try{if(typeof _0x4c0b9f[_0x4986be(0x80c)]==_0x4986be(0x4ec)&&!_0x4c0b9f[_0x4986be(0x252)])_0x388d94=_0x4c0b9f['slice'](0x0);else{_0x59744e=_0x4c0b9f[_0x4986be(0x110)],_0x26997e='maxByteLength'in _0x4c0b9f?{'maxByteLength':_0x4c0b9f[_0x4986be(0x347)]}:undefined,_0x388d94=new ArrayBuffer(_0x59744e,_0x26997e),_0x14e200=new _0x325df8(_0x4c0b9f),_0x5e3a94=new _0x325df8(_0x388d94);for(_0x524f0e=0x0;_0x524f0e<_0x59744e;_0x524f0e++){_0x5e3a94[_0x4986be(0x599)](_0x524f0e,_0x14e200[_0x4986be(0x250)](_0x524f0e));}}}catch(_0x1fde44){throw new _0x2b4d21(_0x4986be(0x7e8),_0x3c28af);}break;case _0x4986be(0x851):_0x388d94=_0x4c0b9f;break;case _0x4986be(0x8be):try{_0x388d94=_0x4c0b9f[_0x4986be(0x80c)](0x0,_0x4c0b9f['size'],_0x4c0b9f['type']);}catch(_0x58c73c){_0x144eef(_0x3de9f7);}break;case _0x4986be(0xc6):case _0x4986be(0x7ba):_0x325df8=_0x5ca679[_0x3de9f7];try{_0x388d94=_0x325df8['fromPoint']?_0x325df8[_0x4986be(0x919)](_0x4c0b9f):new _0x325df8(_0x4c0b9f['x'],_0x4c0b9f['y'],_0x4c0b9f['z'],_0x4c0b9f['w']);}catch(_0xeb7b6f){_0x144eef(_0x3de9f7);}break;case _0x4986be(0x41d):case _0x4986be(0x7b0):_0x325df8=_0x5ca679[_0x3de9f7];try{_0x388d94=_0x325df8['fromRect']?_0x325df8['fromRect'](_0x4c0b9f):new _0x325df8(_0x4c0b9f['x'],_0x4c0b9f['y'],_0x4c0b9f[_0x4986be(0x98b)],_0x4c0b9f['height']);}catch(_0x34c146){_0x144eef(_0x3de9f7);}break;case _0x4986be(0x2a7):case _0x4986be(0x577):_0x325df8=_0x5ca679[_0x3de9f7];try{_0x388d94=_0x325df8[_0x4986be(0x62e)]?_0x325df8[_0x4986be(0x62e)](_0x4c0b9f):new _0x325df8(_0x4c0b9f);}catch(_0x4f12c3){_0x144eef(_0x3de9f7);}break;case _0x4986be(0x9df):case _0x4986be(0x63b):if(!_0x1d52b6(_0x4c0b9f['clone']))_0x144eef(_0x3de9f7);try{_0x388d94=_0x4c0b9f[_0x4986be(0x461)]();}catch(_0x581c7c){_0x24e81d(_0x3de9f7);}break;case _0x4986be(0xe2):case _0x4986be(0x9ea):case'FileSystemDirectoryHandle':case _0x4986be(0x674):case _0x4986be(0x375):case'GPUCompilationInfo':case _0x4986be(0xa06):case _0x4986be(0x8e0):case _0x4986be(0x8f3):case _0x4986be(0x921):_0x144eef(_0x3de9f7);default:_0x24e81d(_0x3de9f7);}}_0x1be4a5(_0x214e7f,_0x4c0b9f,_0x388d94);if(_0x447f0d)switch(_0x3de9f7){case _0x4986be(0x323):case _0x4986be(0x20d):_0x42eaab=_0x1d92bf(_0x4c0b9f);for(_0x524f0e=0x0,_0x59744e=_0x17ff1e(_0x42eaab);_0x524f0e<_0x59744e;_0x524f0e++){_0x2fb313=_0x42eaab[_0x524f0e],_0x45385d(_0x388d94,_0x2fb313,_0x2ff770(_0x4c0b9f[_0x2fb313],_0x214e7f));}break;case _0x4986be(0x6d8):_0x4c0b9f[_0x4986be(0x859)](function(_0x18d1bb,_0x5a85aa){_0x1be4a5(_0x388d94,_0x2ff770(_0x5a85aa,_0x214e7f),_0x2ff770(_0x18d1bb,_0x214e7f));});break;case'Set':_0x4c0b9f['forEach'](function(_0x1fb43f){_0x1470f2(_0x388d94,_0x2ff770(_0x1fb43f,_0x214e7f));});break;case _0x4986be(0x348):_0x5a01b5(_0x388d94,'message',_0x2ff770(_0x4c0b9f[_0x4986be(0x1bd)],_0x214e7f));_0xc46f0b(_0x4c0b9f,'cause')&&_0x5a01b5(_0x388d94,'cause',_0x2ff770(_0x4c0b9f[_0x4986be(0x283)],_0x214e7f));_0x4cf0bd==_0x4986be(0x7fc)&&(_0x388d94[_0x4986be(0x957)]=_0x2ff770(_0x4c0b9f[_0x4986be(0x957)],_0x214e7f));case'DOMException':_0x2d8dc6&&_0x5a01b5(_0x388d94,'stack',_0x2ff770(_0x4c0b9f['stack'],_0x214e7f));}return _0x388d94;},_0x472ac3=function(_0x17ef50,_0x4afa34){const _0x5e3c9a=_0x200c73;if(!_0x1df9b7(_0x17ef50))throw _0x177ff8(_0x5e3c9a(0x1d3));var _0x51b2ad=[];_0x35fac9(_0x17ef50,function(_0x34091a){_0x469fd0(_0x51b2ad,_0x1a1337(_0x34091a));});var _0x5aa385=0x0,_0x186a41=_0x17ff1e(_0x51b2ad),_0x1f387d,_0x444320,_0x583c92,_0x49a43b,_0x517cfa,_0x2a9fc4,_0x18ce0a;if(_0x3639e7){_0x49a43b=_0x1ae032(_0x51b2ad,{'transfer':_0x51b2ad});while(_0x5aa385<_0x186a41)_0x1be4a5(_0x4afa34,_0x51b2ad[_0x5aa385],_0x49a43b[_0x5aa385++]);}else while(_0x5aa385<_0x186a41){_0x1f387d=_0x51b2ad[_0x5aa385++];if(_0x2206d0(_0x4afa34,_0x1f387d))throw new _0x2b4d21(_0x5e3c9a(0x652),_0x3c28af);_0x444320=_0xc82fbc(_0x1f387d);switch(_0x444320){case _0x5e3c9a(0x8e0):_0x583c92=_0x5ca679[_0x5e3c9a(0x3e2)];if(!_0x1e364c(_0x583c92))_0x144eef(_0x444320,_0x1f6e29);try{_0x2a9fc4=new _0x583c92(_0x1f387d['width'],_0x1f387d[_0x5e3c9a(0x999)]),_0x18ce0a=_0x2a9fc4['getContext']('bitmaprenderer'),_0x18ce0a['transferFromImageBitmap'](_0x1f387d),_0x517cfa=_0x2a9fc4[_0x5e3c9a(0x5de)]();}catch(_0x54f05e){}break;case _0x5e3c9a(0x9df):case'VideoFrame':if(!_0x1d52b6(_0x1f387d[_0x5e3c9a(0x461)])||!_0x1d52b6(_0x1f387d[_0x5e3c9a(0x70e)]))_0x144eef(_0x444320,_0x1f6e29);try{_0x517cfa=_0x1f387d[_0x5e3c9a(0x461)](),_0x1f387d[_0x5e3c9a(0x70e)]();}catch(_0x423376){}break;case _0x5e3c9a(0x28c):if(!_0x1d52b6(_0x1f387d[_0x5e3c9a(0x5fd)]))_0x144eef(_0x444320,_0x1f6e29);_0x517cfa=_0x1f387d[_0x5e3c9a(0x5fd)]();break;case'MediaSourceHandle':case'MessagePort':case _0x5e3c9a(0x3e2):case _0x5e3c9a(0x31b):case'TransformStream':case'WritableStream':_0x144eef(_0x444320,_0x1f6e29);}if(_0x517cfa===undefined)throw new _0x2b4d21(_0x5e3c9a(0x982)+_0x444320,_0x3c28af);_0x1be4a5(_0x4afa34,_0x1f387d,_0x517cfa);}};_0xca75b2({'global':!![],'enumerable':!![],'sham':!_0x3639e7,'forced':_0xc4ebec},{'structuredClone':function _0x36ce12(_0x8e5260){const _0x488ed1=_0x200c73;var _0x54164f=_0x3de5f0(arguments[_0x488ed1(0x557)],0x1)>0x1&&!_0x3b810c(arguments[0x1])?_0x1a1337(arguments[0x1]):undefined,_0x16c472=_0x54164f?_0x54164f[_0x488ed1(0x5fd)]:undefined,_0x2f7c34;return _0x16c472!==undefined&&(_0x2f7c34=new _0xa64abd(),_0x472ac3(_0x16c472,_0x2f7c34)),_0x2ff770(_0x8e5260,_0x2f7c34);}});},(_0x15eefe,_0x427d52,_0x483ed5)=>{const _0x203431=a0_0x160d;var _0x147d90=_0x483ed5(0x8),_0x8f4450=_0x483ed5(0xa),_0x409113=_0x483ed5(0x1f),_0x1c488f=_0x483ed5(0x5b),_0x3b96c1=_0x483ed5(0x2b),_0x5f3b7b=_0x483ed5(0x49),_0x475580=function(){},_0x2e757c=[],_0x5815bb=_0x3b96c1(_0x203431(0x9d8),_0x203431(0x533)),_0x478060=/^\s*(?:class|function)\b/,_0x2b2785=_0x147d90(_0x478060[_0x203431(0x249)]),_0x49a398=!_0x478060[_0x203431(0x249)](_0x475580),_0x343792=function _0x5de94d(_0x1eef1d){if(!_0x409113(_0x1eef1d))return![];try{return _0x5815bb(_0x475580,_0x2e757c,_0x1eef1d),!![];}catch(_0x5f5d1b){return![];}},_0x50184c=function _0x140cd2(_0x3c4962){const _0x48fc81=_0x203431;if(!_0x409113(_0x3c4962))return![];switch(_0x1c488f(_0x3c4962)){case _0x48fc81(0x6a0):case'GeneratorFunction':case _0x48fc81(0x888):return![];}try{return _0x49a398||!!_0x2b2785(_0x478060,_0x5f3b7b(_0x3c4962));}catch(_0x1b29c5){return!![];}};_0x50184c[_0x203431(0x3cd)]=!![],_0x15eefe[_0x203431(0x5e9)]=!_0x5815bb||_0x8f4450(function(){var _0x518207;return _0x343792(_0x343792['call'])||!_0x343792(Object)||!_0x343792(function(){_0x518207=!![];})||_0x518207;})?_0x50184c:_0x343792;},_0x76bc75=>{const _0x1c9c9b=a0_0x160d;var _0x149e63=TypeError;_0x76bc75[_0x1c9c9b(0x5e9)]=function(_0x5aa861,_0x20d941){if(_0x5aa861<_0x20d941)throw _0x149e63('Not\x20enough\x20arguments');return _0x5aa861;};},(_0xc7ee95,_0x34012a,_0x5485a7)=>{const _0x282e21=a0_0x160d;var _0x1d2dbf=_0x5485a7(0x29),_0x810bf1=_0x5485a7(0x15),_0x28ee6d=_0x5485a7(0x2c),_0x24391b=_0x5485a7(0x7a),_0x55e466=RegExp[_0x282e21(0x821)];_0xc7ee95[_0x282e21(0x5e9)]=function(_0x16fd2d){const _0x551c80=_0x282e21;var _0x2884ed=_0x16fd2d[_0x551c80(0x451)];return _0x2884ed===undefined&&!(_0x551c80(0x451)in _0x55e466)&&!_0x810bf1(_0x16fd2d,_0x551c80(0x451))&&_0x28ee6d(_0x55e466,_0x16fd2d)?_0x1d2dbf(_0x24391b,_0x16fd2d):_0x2884ed;};},(_0x31ff80,_0x353eda,_0x85644e)=>{'use strict';const _0x21320b=a0_0x160d;var _0x1d0c7c=_0x85644e(0x1d);_0x31ff80[_0x21320b(0x5e9)]=function(){const _0x3b1d0e=_0x21320b;var _0xe7e6a9=_0x1d0c7c(this),_0x567669='';if(_0xe7e6a9[_0x3b1d0e(0x5b3)])_0x567669+='d';if(_0xe7e6a9['global'])_0x567669+='g';if(_0xe7e6a9[_0x3b1d0e(0x800)])_0x567669+='i';if(_0xe7e6a9[_0x3b1d0e(0x973)])_0x567669+='m';if(_0xe7e6a9[_0x3b1d0e(0x3ee)])_0x567669+='s';if(_0xe7e6a9[_0x3b1d0e(0x1ae)])_0x567669+='u';if(_0xe7e6a9[_0x3b1d0e(0x608)])_0x567669+='v';if(_0xe7e6a9['sticky'])_0x567669+='y';return _0x567669;};},(_0x381bb1,_0x5aa995,_0x150b4d)=>{const _0xe864f9=a0_0x160d;var _0x5c9a42=_0x150b4d(0x8),_0x32ed11=Map[_0xe864f9(0x821)];_0x381bb1[_0xe864f9(0x5e9)]={'Map':Map,'set':_0x5c9a42(_0x32ed11['set']),'get':_0x5c9a42(_0x32ed11['get']),'has':_0x5c9a42(_0x32ed11['has']),'remove':_0x5c9a42(_0x32ed11[_0xe864f9(0x65f)]),'proto':_0x32ed11};},(_0x2d2dff,_0x243991,_0x5522b4)=>{const _0x45fc73=a0_0x160d;var _0x532eac=_0x5522b4(0x8),_0x4c9800=Set['prototype'];_0x2d2dff[_0x45fc73(0x5e9)]={'Set':Set,'add':_0x532eac(_0x4c9800[_0x45fc73(0x156)]),'has':_0x532eac(_0x4c9800[_0x45fc73(0x373)]),'remove':_0x532eac(_0x4c9800[_0x45fc73(0x65f)]),'proto':_0x4c9800};},(_0x759f5e,_0x443e7d,_0x1914b9)=>{const _0xbe9ca3=a0_0x160d;var _0x25e37a=_0x1914b9(0xa),_0x1f6b9e=_0x1914b9(0x41);_0x759f5e[_0xbe9ca3(0x5e9)]=!_0x25e37a(function(){const _0x42201a=_0xbe9ca3;var _0x108236=Error('a');if(!(_0x42201a(0x274)in _0x108236))return!![];return Object['defineProperty'](_0x108236,_0x42201a(0x274),_0x1f6b9e(0x1,0x7)),_0x108236['stack']!==0x7;});},(_0x386109,_0x4fe64d,_0x3772f2)=>{const _0x1ba9cf=a0_0x160d;var _0x5ab6b6=_0x3772f2(0x10),_0x7c00c6=_0x3772f2(0xa),_0x4d987f=_0x3772f2(0x19),_0x4de34d=_0x3772f2(0x7f),_0x14296a=_0x3772f2(0x80),_0x2e8bfa=_0x3772f2(0x81),_0x4105cc=_0x5ab6b6[_0x1ba9cf(0x8eb)];_0x386109[_0x1ba9cf(0x5e9)]=!!_0x4105cc&&!_0x7c00c6(function(){const _0x564d7e=_0x1ba9cf;if(_0x14296a&&_0x4d987f>0x5c||_0x2e8bfa&&_0x4d987f>0x5e||_0x4de34d&&_0x4d987f>0x61)return![];var _0x219e4e=new ArrayBuffer(0x8),_0x4230ca=_0x4105cc(_0x219e4e,{'transfer':[_0x219e4e]});return _0x219e4e[_0x564d7e(0x110)]!=0x0||_0x4230ca[_0x564d7e(0x110)]!=0x8;});},(_0x231a95,_0x400bb5,_0x1b5d98)=>{const _0x6d5dc0=a0_0x160d;var _0x14fcbd=_0x1b5d98(0x80),_0x1e5032=_0x1b5d98(0x81);_0x231a95[_0x6d5dc0(0x5e9)]=!_0x14fcbd&&!_0x1e5032&&typeof window=='object'&&typeof document==_0x6d5dc0(0x97b);},_0x5b6325=>{const _0x220cbe=a0_0x160d;_0x5b6325[_0x220cbe(0x5e9)]=typeof Deno==_0x220cbe(0x97b)&&Deno&&typeof Deno[_0x220cbe(0x5b4)]==_0x220cbe(0x97b);},(_0x5dde23,_0x4d4428,_0x476ac4)=>{const _0x4e9501=a0_0x160d;var _0x2fcfb0=_0x476ac4(0xb);_0x5dde23[_0x4e9501(0x5e9)]=typeof process!='undefined'&&_0x2fcfb0(process)==_0x4e9501(0x94f);},(_0x4e2856,_0x23be23,_0x27e830)=>{const _0x13fba6=a0_0x160d;var _0x5e8e93=_0x27e830(0x10);_0x4e2856[_0x13fba6(0x5e9)]=_0x5e8e93;},(_0x19faa8,_0x19c6a2,_0x4256a6)=>{'use strict';const _0x22d831=a0_0x160d;Object[_0x22d831(0x430)](_0x19c6a2,'__esModule',{'value':!![]}),_0x19c6a2[_0x22d831(0x407)]=_0x19c6a2['RenderTask']=_0x19c6a2[_0x22d831(0x4ea)]=_0x19c6a2[_0x22d831(0x7f1)]=_0x19c6a2['PDFPageProxy']=_0x19c6a2[_0x22d831(0x6ee)]=_0x19c6a2[_0x22d831(0x668)]=_0x19c6a2['PDFDataRangeTransport']=_0x19c6a2[_0x22d831(0x36e)]=_0x19c6a2[_0x22d831(0x61d)]=_0x19c6a2[_0x22d831(0x126)]=_0x19c6a2[_0x22d831(0x96d)]=_0x19c6a2[_0x22d831(0xa01)]=void 0x0,_0x19c6a2[_0x22d831(0x48c)]=_0x338f66,_0x19c6a2[_0x22d831(0x5b4)]=void 0x0;var _0x22b0ce=_0x4256a6(0x1),_0x33bd62=_0x4256a6(0x84),_0x4c8b78=_0x4256a6(0x87),_0xaadc95=_0x4256a6(0x8a),_0xc5f573=_0x4256a6(0x8b),_0x55f54e=_0x4256a6(0x8e),_0x425afa=_0x4256a6(0x3),_0x1cf9e7=_0x4256a6(0x8f),_0x8d02af=_0x4256a6(0x90),_0x3f32eb=_0x4256a6(0x91),_0x1f1afc=_0x4256a6(0x92),_0x4e4308=_0x4256a6(0x93);const _0x2f11bd=0x10000,_0x36704e=0x64,_0x4bbcfc=0x1388,_0x29d0fe=_0x425afa['isNodeJS']?_0x4256a6(0x94)[_0x22d831(0x6b9)]:_0x4c8b78[_0x22d831(0x4fc)];_0x19c6a2[_0x22d831(0x96d)]=_0x29d0fe;const _0x504654=_0x425afa[_0x22d831(0x8c5)]?_0x4256a6(0x94)[_0x22d831(0x34f)]:_0x4c8b78[_0x22d831(0x591)];_0x19c6a2[_0x22d831(0xa01)]=_0x504654;const _0x17d9f2=_0x425afa[_0x22d831(0x8c5)]?_0x4256a6(0x94)[_0x22d831(0x77e)]:_0x4c8b78['DOMFilterFactory'];_0x19c6a2[_0x22d831(0x126)]=_0x17d9f2;const _0x339d50=_0x425afa[_0x22d831(0x8c5)]?_0x4256a6(0x94)[_0x22d831(0x666)]:_0x4c8b78[_0x22d831(0x70c)];_0x19c6a2[_0x22d831(0x61d)]=_0x339d50;let _0x3d30d5;{if(_0x425afa[_0x22d831(0x8c5)]){const {PDFNodeStream:_0x32b076}=_0x4256a6(0x95);_0x3d30d5=_0x1c757f=>{return new _0x32b076(_0x1c757f);};}else{const {PDFNetworkStream:_0x34148c}=_0x4256a6(0x98),{PDFFetchStream:_0x17b095}=_0x4256a6(0x99);_0x3d30d5=_0x972ba4=>{const _0x1241ef=_0x22d831;return(0x0,_0x4c8b78[_0x1241ef(0x969)])(_0x972ba4[_0x1241ef(0x6a1)])?new _0x17b095(_0x972ba4):new _0x34148c(_0x972ba4);};}}function _0x338f66(_0x5b155b){const _0x52d73c=_0x22d831;if(typeof _0x5b155b===_0x52d73c(0x8cd)||_0x5b155b instanceof URL)_0x5b155b={'url':_0x5b155b};else(0x0,_0x22b0ce[_0x52d73c(0x14d)])(_0x5b155b)&&(_0x5b155b={'data':_0x5b155b});if(typeof _0x5b155b!==_0x52d73c(0x97b))throw new Error(_0x52d73c(0x2a8));if(!_0x5b155b[_0x52d73c(0x6a1)]&&!_0x5b155b[_0x52d73c(0x41b)]&&!_0x5b155b[_0x52d73c(0x667)])throw new Error(_0x52d73c(0x3ba));const _0x5e963d=new _0x51e033(),{docId:_0x5e2fb9}=_0x5e963d,_0x26cb28=_0x5b155b[_0x52d73c(0x6a1)]?_0x514428(_0x5b155b[_0x52d73c(0x6a1)]):null,_0x5786b4=_0x5b155b['data']?_0xee98e4(_0x5b155b[_0x52d73c(0x41b)]):null,_0x4a581d=_0x5b155b[_0x52d73c(0x4a6)]||null,_0x3ff753=_0x5b155b[_0x52d73c(0x113)]===!![],_0x193b85=_0x5b155b['password']??null,_0x5331eb=_0x5b155b[_0x52d73c(0x667)]instanceof _0x48be0b?_0x5b155b[_0x52d73c(0x667)]:null,_0x4c6379=Number[_0x52d73c(0x235)](_0x5b155b[_0x52d73c(0x40d)])&&_0x5b155b['rangeChunkSize']>0x0?_0x5b155b[_0x52d73c(0x40d)]:_0x2f11bd;let _0x3303af=_0x5b155b['worker']instanceof _0x228809?_0x5b155b['worker']:null;const _0x2994f0=_0x5b155b['verbosity'],_0x15d4b9=typeof _0x5b155b[_0x52d73c(0x50c)]===_0x52d73c(0x8cd)&&!(0x0,_0x4c8b78[_0x52d73c(0x337)])(_0x5b155b['docBaseUrl'])?_0x5b155b[_0x52d73c(0x50c)]:null,_0x4c1e9d=typeof _0x5b155b[_0x52d73c(0x405)]===_0x52d73c(0x8cd)?_0x5b155b[_0x52d73c(0x405)]:null,_0x8293d7=_0x5b155b[_0x52d73c(0x9a8)]!==![],_0x43dd78=_0x5b155b['CMapReaderFactory']||_0x504654,_0x2707b5=typeof _0x5b155b[_0x52d73c(0x2e7)]==='string'?_0x5b155b['standardFontDataUrl']:null,_0x194d06=_0x5b155b[_0x52d73c(0x556)]||_0x339d50,_0x1dcc56=_0x5b155b[_0x52d73c(0x12e)]!==!![],_0x258db7=Number[_0x52d73c(0x235)](_0x5b155b['maxImageSize'])&&_0x5b155b[_0x52d73c(0x46c)]>-0x1?_0x5b155b[_0x52d73c(0x46c)]:-0x1,_0x933679=_0x5b155b[_0x52d73c(0x221)]!==![],_0x362047=typeof _0x5b155b[_0x52d73c(0x5ff)]===_0x52d73c(0x3ea)?_0x5b155b['isOffscreenCanvasSupported']:!_0x425afa[_0x52d73c(0x8c5)],_0xd0ae2d=Number['isInteger'](_0x5b155b[_0x52d73c(0x736)])?_0x5b155b[_0x52d73c(0x736)]:-0x1,_0x1bac67=typeof _0x5b155b[_0x52d73c(0x8b6)]==='boolean'?_0x5b155b['disableFontFace']:_0x425afa[_0x52d73c(0x8c5)],_0x5091da=_0x5b155b[_0x52d73c(0x9d6)]===!![],_0x3ee657=_0x5b155b[_0x52d73c(0x707)]===!![],_0x68db79=_0x5b155b[_0x52d73c(0x41f)]||globalThis[_0x52d73c(0x2b1)],_0x2fe75f=_0x5b155b[_0x52d73c(0x5e0)]===!![],_0x50cc37=_0x5b155b['disableStream']===!![],_0x5e77a9=_0x5b155b[_0x52d73c(0x620)]===!![],_0x4fa6c4=_0x5b155b[_0x52d73c(0x408)]===!![],_0xcfaab7=_0x5331eb?_0x5331eb['length']:_0x5b155b[_0x52d73c(0x557)]??NaN,_0x513caa=typeof _0x5b155b[_0x52d73c(0x7bc)]===_0x52d73c(0x3ea)?_0x5b155b[_0x52d73c(0x7bc)]:!_0x425afa[_0x52d73c(0x8c5)]&&!_0x1bac67,_0xeec29b=typeof _0x5b155b[_0x52d73c(0x9e7)]==='boolean'?_0x5b155b[_0x52d73c(0x9e7)]:_0x43dd78===_0x4c8b78[_0x52d73c(0x591)]&&_0x194d06===_0x4c8b78[_0x52d73c(0x70c)]&&(0x0,_0x4c8b78['isValidFetchUrl'])(_0x4c1e9d,document[_0x52d73c(0x174)])&&(0x0,_0x4c8b78[_0x52d73c(0x969)])(_0x2707b5,document[_0x52d73c(0x174)]),_0x31f287=_0x5b155b[_0x52d73c(0x5db)]||new _0x29d0fe({'ownerDocument':_0x68db79}),_0x222384=_0x5b155b[_0x52d73c(0x491)]||new _0x17d9f2({'docId':_0x5e2fb9,'ownerDocument':_0x68db79}),_0x251263=null;(0x0,_0x22b0ce[_0x52d73c(0x290)])(_0x2994f0);const _0x21b65d={'canvasFactory':_0x31f287,'filterFactory':_0x222384};!_0xeec29b&&(_0x21b65d[_0x52d73c(0x8f4)]=new _0x43dd78({'baseUrl':_0x4c1e9d,'isCompressed':_0x8293d7}),_0x21b65d['standardFontDataFactory']=new _0x194d06({'baseUrl':_0x2707b5}));if(!_0x3303af){const _0x49a328={'verbosity':_0x2994f0,'port':_0x55f54e[_0x52d73c(0x445)][_0x52d73c(0x455)]};_0x3303af=_0x49a328[_0x52d73c(0x377)]?_0x228809[_0x52d73c(0x517)](_0x49a328):new _0x228809(_0x49a328),_0x5e963d[_0x52d73c(0x4da)]=_0x3303af;}const _0xe34cd5={'docId':_0x5e2fb9,'apiVersion':_0x52d73c(0x623),'data':_0x5786b4,'password':_0x193b85,'disableAutoFetch':_0x5e77a9,'rangeChunkSize':_0x4c6379,'length':_0xcfaab7,'docBaseUrl':_0x15d4b9,'enableXfa':_0x3ee657,'evaluatorOptions':{'maxImageSize':_0x258db7,'disableFontFace':_0x1bac67,'ignoreErrors':_0x1dcc56,'isEvalSupported':_0x933679,'isOffscreenCanvasSupported':_0x362047,'canvasMaxAreaInBytes':_0xd0ae2d,'fontExtraProperties':_0x5091da,'useSystemFonts':_0x513caa,'cMapUrl':_0xeec29b?_0x4c1e9d:null,'standardFontDataUrl':_0xeec29b?_0x2707b5:null}},_0x16ee60={'ignoreErrors':_0x1dcc56,'isEvalSupported':_0x933679,'disableFontFace':_0x1bac67,'fontExtraProperties':_0x5091da,'enableXfa':_0x3ee657,'ownerDocument':_0x68db79,'disableAutoFetch':_0x5e77a9,'pdfBug':_0x4fa6c4,'styleElement':_0x251263};return _0x3303af[_0x52d73c(0x4dd)]['then'](function(){const _0x4b3c51=_0x52d73c;if(_0x5e963d[_0x4b3c51(0x8d5)])throw new Error('Loading\x20aborted');const _0x57657b=_0x15d9a7(_0x3303af,_0xe34cd5),_0x198d6d=new Promise(function(_0x54386a){const _0x4b0aa3=_0x4b3c51;let _0x3ee50c;if(_0x5331eb)_0x3ee50c=new _0x1f1afc[(_0x4b0aa3(0x939))]({'length':_0xcfaab7,'initialData':_0x5331eb['initialData'],'progressiveDone':_0x5331eb[_0x4b0aa3(0x16b)],'contentDispositionFilename':_0x5331eb['contentDispositionFilename'],'disableRange':_0x2fe75f,'disableStream':_0x50cc37},_0x5331eb);else!_0x5786b4&&(_0x3ee50c=_0x3d30d5({'url':_0x26cb28,'length':_0xcfaab7,'httpHeaders':_0x4a581d,'withCredentials':_0x3ff753,'rangeChunkSize':_0x4c6379,'disableRange':_0x2fe75f,'disableStream':_0x50cc37}));_0x54386a(_0x3ee50c);});return Promise['all']([_0x57657b,_0x198d6d])[_0x4b3c51(0x22d)](function(_0x1e6629){const _0x2e0451=_0x4b3c51;let [_0x234217,_0x29343a]=_0x1e6629;if(_0x5e963d[_0x2e0451(0x8d5)])throw new Error(_0x2e0451(0x9e1));const _0x35a21d=new _0x1cf9e7[(_0x2e0451(0x43f))](_0x5e2fb9,_0x234217,_0x3303af[_0x2e0451(0x377)]),_0x3b072c=new _0x4387fd(_0x35a21d,_0x5e963d,_0x29343a,_0x16ee60,_0x21b65d);_0x5e963d[_0x2e0451(0x728)]=_0x3b072c,_0x35a21d[_0x2e0451(0x3e0)](_0x2e0451(0x4dc),null);});})[_0x52d73c(0x75f)](_0x5e963d['_capability']['reject']),_0x5e963d;}async function _0x15d9a7(_0x4f2fe8,_0x31e7c3){const _0x3e275c=_0x22d831;if(_0x4f2fe8[_0x3e275c(0x8d5)])throw new Error('Worker\x20was\x20destroyed');const _0x2995fa=await _0x4f2fe8['messageHandler'][_0x3e275c(0x88c)](_0x3e275c(0x12d),_0x31e7c3,_0x31e7c3[_0x3e275c(0x41b)]?[_0x31e7c3[_0x3e275c(0x41b)][_0x3e275c(0x948)]]:null);if(_0x4f2fe8[_0x3e275c(0x8d5)])throw new Error(_0x3e275c(0x61b));return _0x2995fa;}function _0x514428(_0x30edc8){const _0x6d71cd=_0x22d831;if(_0x30edc8 instanceof URL)return _0x30edc8[_0x6d71cd(0x95d)];try{return new URL(_0x30edc8,window[_0x6d71cd(0x5a1)])[_0x6d71cd(0x95d)];}catch{if(_0x425afa[_0x6d71cd(0x8c5)]&&typeof _0x30edc8==='string')return _0x30edc8;}throw new Error(_0x6d71cd(0x809)+_0x6d71cd(0x6b7));}function _0xee98e4(_0x4268fc){const _0x4fe5c3=_0x22d831;if(_0x425afa[_0x4fe5c3(0x8c5)]&&typeof Buffer!=='undefined'&&_0x4268fc instanceof Buffer)throw new Error('Please\x20provide\x20binary\x20data\x20as\x20`Uint8Array`,\x20rather\x20than\x20`Buffer`.');if(_0x4268fc instanceof Uint8Array&&_0x4268fc[_0x4fe5c3(0x110)]===_0x4268fc[_0x4fe5c3(0x948)]['byteLength'])return _0x4268fc;if(typeof _0x4268fc===_0x4fe5c3(0x8cd))return(0x0,_0x22b0ce[_0x4fe5c3(0x647)])(_0x4268fc);if(typeof _0x4268fc==='object'&&!isNaN(_0x4268fc?.['length'])||(0x0,_0x22b0ce['isArrayBuffer'])(_0x4268fc))return new Uint8Array(_0x4268fc);throw new Error(_0x4fe5c3(0x2ff)+'string,\x20or\x20array-like\x20object\x20is\x20expected\x20in\x20the\x20data\x20property.');}class _0x51e033{static #docId=0x0;constructor(){const _0x7db293=_0x22d831;this['_capability']=new _0x22b0ce[(_0x7db293(0x7e3))](),this['_transport']=null,this[_0x7db293(0x4da)]=null,this[_0x7db293(0x28d)]='d'+_0x51e033.#docId++,this[_0x7db293(0x8d5)]=![],this[_0x7db293(0x237)]=null,this[_0x7db293(0x3bf)]=null;}get[_0x22d831(0x4dd)](){const _0x19c1f0=_0x22d831;return this[_0x19c1f0(0x869)][_0x19c1f0(0x4dd)];}async[_0x22d831(0x256)](){const _0x44d6c4=_0x22d831;this[_0x44d6c4(0x8d5)]=!![],await this['_transport']?.[_0x44d6c4(0x256)](),this[_0x44d6c4(0x728)]=null,this[_0x44d6c4(0x4da)]&&(this[_0x44d6c4(0x4da)][_0x44d6c4(0x256)](),this['_worker']=null);}}_0x19c6a2[_0x22d831(0x668)]=_0x51e033;class _0x48be0b{constructor(_0x1461ef,_0x231bfa){const _0x316131=_0x22d831;let _0x685a03=arguments[_0x316131(0x557)]>0x2&&arguments[0x2]!==undefined?arguments[0x2]:![],_0x3451fe=arguments[_0x316131(0x557)]>0x3&&arguments[0x3]!==undefined?arguments[0x3]:null;this[_0x316131(0x557)]=_0x1461ef,this['initialData']=_0x231bfa,this[_0x316131(0x16b)]=_0x685a03,this['contentDispositionFilename']=_0x3451fe,this[_0x316131(0x1af)]=[],this[_0x316131(0x99a)]=[],this[_0x316131(0x4c7)]=[],this[_0x316131(0x29a)]=[],this[_0x316131(0x3a2)]=new _0x22b0ce[(_0x316131(0x7e3))]();}[_0x22d831(0x24a)](_0x21ae4d){const _0x429104=_0x22d831;this[_0x429104(0x1af)][_0x429104(0x7d6)](_0x21ae4d);}[_0x22d831(0x7db)](_0x5c3c6f){this['_progressListeners']['push'](_0x5c3c6f);}['addProgressiveReadListener'](_0x53e9c6){const _0x39b3ae=_0x22d831;this[_0x39b3ae(0x4c7)][_0x39b3ae(0x7d6)](_0x53e9c6);}['addProgressiveDoneListener'](_0x3dcb54){this['_progressiveDoneListeners']['push'](_0x3dcb54);}[_0x22d831(0x596)](_0x18c83e,_0x4fd86b){for(const _0x3064a8 of this['_rangeListeners']){_0x3064a8(_0x18c83e,_0x4fd86b);}}['onDataProgress'](_0xef4372,_0x59f920){const _0x5f4fa7=_0x22d831;this['_readyCapability']['promise'][_0x5f4fa7(0x22d)](()=>{const _0x5ddc27=_0x5f4fa7;for(const _0x31a494 of this[_0x5ddc27(0x99a)]){_0x31a494(_0xef4372,_0x59f920);}});}['onDataProgressiveRead'](_0x38a8b7){const _0x45246a=_0x22d831;this['_readyCapability'][_0x45246a(0x4dd)][_0x45246a(0x22d)](()=>{const _0x1e7332=_0x45246a;for(const _0x3696b0 of this[_0x1e7332(0x4c7)]){_0x3696b0(_0x38a8b7);}});}[_0x22d831(0x477)](){const _0x40d29=_0x22d831;this['_readyCapability']['promise'][_0x40d29(0x22d)](()=>{const _0x3ac329=_0x40d29;for(const _0x3e777f of this[_0x3ac329(0x29a)]){_0x3e777f();}});}[_0x22d831(0x1ba)](){const _0x340b28=_0x22d831;this['_readyCapability'][_0x340b28(0x442)]();}['requestDataRange'](_0x3f6e25,_0x259835){const _0x57e9db=_0x22d831;(0x0,_0x22b0ce[_0x57e9db(0x749)])(_0x57e9db(0x5af));}[_0x22d831(0x304)](){}}_0x19c6a2[_0x22d831(0x7a1)]=_0x48be0b;class _0x3e3f82{constructor(_0x497cb9,_0x1d6c84){const _0x3c22e9=_0x22d831;this['_pdfInfo']=_0x497cb9,this[_0x3c22e9(0x728)]=_0x1d6c84;}get['annotationStorage'](){const _0x29d908=_0x22d831;return this['_transport'][_0x29d908(0x5bf)];}get[_0x22d831(0x491)](){const _0xf53e5c=_0x22d831;return this['_transport'][_0xf53e5c(0x491)];}get['numPages'](){const _0x1999d6=_0x22d831;return this[_0x1999d6(0x768)]['numPages'];}get[_0x22d831(0x190)](){return this['_pdfInfo']['fingerprints'];}get[_0x22d831(0x43c)](){const _0x5bcfb9=_0x22d831;return(0x0,_0x22b0ce['shadow'])(this,'isPureXfa',!!this['_transport'][_0x5bcfb9(0x3db)]);}get[_0x22d831(0x860)](){return this['_transport']['_htmlForXfa'];}[_0x22d831(0x21c)](_0x4f4ae8){const _0x4b5a6b=_0x22d831;return this[_0x4b5a6b(0x728)][_0x4b5a6b(0x21c)](_0x4f4ae8);}[_0x22d831(0x24d)](_0x149d2f){const _0x7375b5=_0x22d831;return this[_0x7375b5(0x728)][_0x7375b5(0x24d)](_0x149d2f);}[_0x22d831(0x827)](){const _0x477634=_0x22d831;return this[_0x477634(0x728)][_0x477634(0x827)]();}[_0x22d831(0x651)](_0x498e37){const _0x473758=_0x22d831;return this[_0x473758(0x728)][_0x473758(0x651)](_0x498e37);}[_0x22d831(0x152)](){const _0x443e4f=_0x22d831;return this[_0x443e4f(0x728)]['getPageLabels']();}[_0x22d831(0x14f)](){const _0x4a9d58=_0x22d831;return this[_0x4a9d58(0x728)]['getPageLayout']();}[_0x22d831(0x125)](){const _0x2dc544=_0x22d831;return this['_transport'][_0x2dc544(0x125)]();}[_0x22d831(0x917)](){const _0x177a58=_0x22d831;return this[_0x177a58(0x728)][_0x177a58(0x917)]();}[_0x22d831(0x3d5)](){const _0x5c99cc=_0x22d831;return this[_0x5c99cc(0x728)][_0x5c99cc(0x3d5)]();}[_0x22d831(0x362)](){const _0x239f1c=_0x22d831;return this[_0x239f1c(0x728)][_0x239f1c(0x362)]();}['getJavaScript'](){const _0x400e2d=_0x22d831;return this[_0x400e2d(0x728)][_0x400e2d(0x467)]();}[_0x22d831(0x9b2)](){const _0x40543e=_0x22d831;return this[_0x40543e(0x728)][_0x40543e(0x713)]();}[_0x22d831(0x234)](){const _0x285517=_0x22d831;return this['_transport'][_0x285517(0x234)]();}[_0x22d831(0x248)](){const _0x37774e=_0x22d831;return this[_0x37774e(0x728)][_0x37774e(0x248)]();}[_0x22d831(0x1b0)](){const _0x3f05ae=_0x22d831;return this[_0x3f05ae(0x728)][_0x3f05ae(0x1b0)]();}[_0x22d831(0x79c)](){const _0x146be7=_0x22d831;return this['_transport'][_0x146be7(0x79c)]();}[_0x22d831(0x49f)](){const _0x34109b=_0x22d831;return this['_transport'][_0x34109b(0x49f)]();}[_0x22d831(0x593)](){const _0x313a65=_0x22d831;return this['_transport'][_0x313a65(0x593)]();}[_0x22d831(0x65a)](){const _0x12d7d=_0x22d831;return this['_transport'][_0x12d7d(0x65a)]();}[_0x22d831(0x36c)](){const _0x354a77=_0x22d831;return this['_transport'][_0x354a77(0x62f)][_0x354a77(0x4dd)];}[_0x22d831(0x5d1)](){const _0x2cdaae=_0x22d831;let _0x440200=arguments[_0x2cdaae(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:![];return this[_0x2cdaae(0x728)][_0x2cdaae(0x79e)](_0x440200||this[_0x2cdaae(0x43c)]);}[_0x22d831(0x256)](){const _0x202e4c=_0x22d831;return this['loadingTask'][_0x202e4c(0x256)]();}get['loadingParams'](){const _0x56e20f=_0x22d831;return this[_0x56e20f(0x728)][_0x56e20f(0x897)];}get['loadingTask'](){const _0x3389df=_0x22d831;return this[_0x3389df(0x728)][_0x3389df(0x53f)];}[_0x22d831(0x645)](){const _0x1eabe9=_0x22d831;return this[_0x1eabe9(0x728)][_0x1eabe9(0x645)]();}[_0x22d831(0x731)](){return this['_transport']['hasJSActions']();}[_0x22d831(0x8c0)](){const _0x1a80cb=_0x22d831;return this['_transport'][_0x1a80cb(0x8c0)]();}}_0x19c6a2[_0x22d831(0x6ee)]=_0x3e3f82;class _0x57d0ac{#delayedCleanupTimeout=null;#pendingCleanup=![];constructor(_0x21cc07,_0x5717fc,_0x509096){const _0x178fbe=_0x22d831;let _0x37afae=arguments[_0x178fbe(0x557)]>0x3&&arguments[0x3]!==undefined?arguments[0x3]:![];this[_0x178fbe(0x23c)]=_0x21cc07,this[_0x178fbe(0x5bd)]=_0x5717fc,this[_0x178fbe(0x728)]=_0x509096,this[_0x178fbe(0x162)]=_0x37afae?new _0x4c8b78[(_0x178fbe(0x76c))]():null,this[_0x178fbe(0x11a)]=_0x37afae,this[_0x178fbe(0x53b)]=_0x509096[_0x178fbe(0x53b)],this[_0x178fbe(0xdc)]=new _0x3cf9da(),this[_0x178fbe(0x5fc)]=![],this[_0x178fbe(0x563)]=new Map(),this[_0x178fbe(0x8d5)]=![];}get['pageNumber'](){return this['_pageIndex']+0x1;}get[_0x22d831(0x3bb)](){const _0x560391=_0x22d831;return this[_0x560391(0x5bd)][_0x560391(0x3bb)];}get[_0x22d831(0x7e4)](){const _0x4b5486=_0x22d831;return this[_0x4b5486(0x5bd)]['ref'];}get['userUnit'](){const _0x536fbc=_0x22d831;return this[_0x536fbc(0x5bd)][_0x536fbc(0x56c)];}get[_0x22d831(0x6e4)](){const _0x1fdade=_0x22d831;return this[_0x1fdade(0x5bd)][_0x1fdade(0x6e4)];}[_0x22d831(0x3f5)](){const _0x7d508=_0x22d831;let {scale:_0x31a2ab,rotation:rotation=this[_0x7d508(0x3bb)],offsetX:offsetX=0x0,offsetY:offsetY=0x0,dontFlip:dontFlip=![]}=arguments[_0x7d508(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};return new _0x4c8b78[(_0x7d508(0x9bb))]({'viewBox':this[_0x7d508(0x6e4)],'scale':_0x31a2ab,'rotation':rotation,'offsetX':offsetX,'offsetY':offsetY,'dontFlip':dontFlip});}['getAnnotations'](){const _0x481308=_0x22d831;let {intent:intent='display'}=arguments[_0x481308(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};const _0x3ad40e=this[_0x481308(0x728)][_0x481308(0x8f5)](intent);return this['_transport'][_0x481308(0x62a)](this['_pageIndex'],_0x3ad40e[_0x481308(0x38f)]);}[_0x22d831(0x9b2)](){const _0x364239=_0x22d831;return this[_0x364239(0x728)][_0x364239(0x58d)](this[_0x364239(0x23c)]);}get[_0x22d831(0x491)](){const _0x4494ff=_0x22d831;return this[_0x4494ff(0x728)][_0x4494ff(0x491)];}get[_0x22d831(0x43c)](){const _0x2f5916=_0x22d831;return(0x0,_0x22b0ce[_0x2f5916(0x51d)])(this,_0x2f5916(0x43c),!!this[_0x2f5916(0x728)][_0x2f5916(0x3db)]);}async['getXfa'](){const _0x467ea7=_0x22d831;return this[_0x467ea7(0x728)][_0x467ea7(0x3db)]?.[_0x467ea7(0x6be)][this[_0x467ea7(0x23c)]]||null;}[_0x22d831(0x6c8)](_0x2a450a){const _0x6c7568=_0x22d831;let {canvasContext:_0x157cb9,viewport:_0x5cbc4f,intent:intent='display',annotationMode:annotationMode=_0x22b0ce[_0x6c7568(0x2a5)][_0x6c7568(0x70a)],transform:transform=null,background:background=null,optionalContentConfigPromise:optionalContentConfigPromise=null,annotationCanvasMap:annotationCanvasMap=null,pageColors:pageColors=null,printAnnotationStorage:printAnnotationStorage=null}=_0x2a450a;this[_0x6c7568(0x162)]?.['time'](_0x6c7568(0x637));const _0x47d06f=this['_transport'][_0x6c7568(0x8f5)](intent,annotationMode,printAnnotationStorage);this.#pendingCleanup=![],this.#abortDelayedCleanup();!optionalContentConfigPromise&&(optionalContentConfigPromise=this[_0x6c7568(0x728)][_0x6c7568(0x248)]());let _0x225f20=this[_0x6c7568(0x563)][_0x6c7568(0x8c4)](_0x47d06f['cacheKey']);!_0x225f20&&(_0x225f20=Object['create'](null),this['_intentStates'][_0x6c7568(0x98e)](_0x47d06f[_0x6c7568(0x2af)],_0x225f20));_0x225f20['streamReaderCancelTimeout']&&(clearTimeout(_0x225f20[_0x6c7568(0x351)]),_0x225f20[_0x6c7568(0x351)]=null);const _0x2e5132=!!(_0x47d06f['renderingIntent']&_0x22b0ce['RenderingIntentFlag'][_0x6c7568(0x6b5)]);!_0x225f20[_0x6c7568(0x712)]&&(_0x225f20[_0x6c7568(0x712)]=new _0x22b0ce[(_0x6c7568(0x7e3))](),_0x225f20[_0x6c7568(0x33f)]={'fnArray':[],'argsArray':[],'lastChunk':![],'separateAnnots':null},this[_0x6c7568(0x162)]?.[_0x6c7568(0x721)](_0x6c7568(0x949)),this[_0x6c7568(0x5fb)](_0x47d06f));const _0xfc5344=_0x3a2ade=>{const _0x3292b8=_0x6c7568;_0x225f20[_0x3292b8(0x2ea)][_0x3292b8(0x65f)](_0x4a8533),(this['_maybeCleanupAfterRender']||_0x2e5132)&&(this.#pendingCleanup=!![]),this.#tryCleanup(!_0x2e5132),_0x3a2ade?(_0x4a8533[_0x3292b8(0x540)][_0x3292b8(0x282)](_0x3a2ade),this[_0x3292b8(0x6d6)]({'intentState':_0x225f20,'reason':_0x3a2ade instanceof Error?_0x3a2ade:new Error(_0x3a2ade)})):_0x4a8533[_0x3292b8(0x540)][_0x3292b8(0x442)](),this[_0x3292b8(0x162)]?.[_0x3292b8(0x459)]('Rendering'),this[_0x3292b8(0x162)]?.['timeEnd']('Overall');},_0x4a8533=new _0x2fd724({'callback':_0xfc5344,'params':{'canvasContext':_0x157cb9,'viewport':_0x5cbc4f,'transform':transform,'background':background},'objs':this[_0x6c7568(0xdc)],'commonObjs':this[_0x6c7568(0x53b)],'annotationCanvasMap':annotationCanvasMap,'operatorList':_0x225f20[_0x6c7568(0x33f)],'pageIndex':this['_pageIndex'],'canvasFactory':this[_0x6c7568(0x728)][_0x6c7568(0x5db)],'filterFactory':this['_transport'][_0x6c7568(0x491)],'useRequestAnimationFrame':!_0x2e5132,'pdfBug':this[_0x6c7568(0x11a)],'pageColors':pageColors});(_0x225f20[_0x6c7568(0x2ea)]||=new Set())['add'](_0x4a8533);const _0x4afba4=_0x4a8533[_0x6c7568(0x7c4)];return Promise[_0x6c7568(0x586)]([_0x225f20[_0x6c7568(0x712)]['promise'],optionalContentConfigPromise])[_0x6c7568(0x22d)](_0x41b476=>{const _0x41613d=_0x6c7568;let [_0x204610,_0x5e508e]=_0x41b476;if(this[_0x41613d(0x8d5)]){_0xfc5344();return;}this['_stats']?.['time']('Rendering'),_0x4a8533[_0x41613d(0x86d)]({'transparency':_0x204610,'optionalContentConfig':_0x5e508e}),_0x4a8533[_0x41613d(0x7c2)]();})[_0x6c7568(0x75f)](_0xfc5344),_0x4afba4;}[_0x22d831(0x6a3)](){const _0x223503=_0x22d831;let {intent:intent=_0x223503(0x619),annotationMode:annotationMode=_0x22b0ce['AnnotationMode'][_0x223503(0x70a)],printAnnotationStorage:printAnnotationStorage=null}=arguments[_0x223503(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};function _0x1c6be9(){const _0xfa7f29=_0x223503;_0x4b34cc[_0xfa7f29(0x33f)]['lastChunk']&&(_0x4b34cc[_0xfa7f29(0x74f)][_0xfa7f29(0x442)](_0x4b34cc[_0xfa7f29(0x33f)]),_0x4b34cc[_0xfa7f29(0x2ea)][_0xfa7f29(0x65f)](_0x31676c));}const _0x594ad5=this['_transport'][_0x223503(0x8f5)](intent,annotationMode,printAnnotationStorage,!![]);let _0x4b34cc=this['_intentStates']['get'](_0x594ad5[_0x223503(0x2af)]);!_0x4b34cc&&(_0x4b34cc=Object[_0x223503(0x77c)](null),this['_intentStates'][_0x223503(0x98e)](_0x594ad5[_0x223503(0x2af)],_0x4b34cc));let _0x31676c;return!_0x4b34cc['opListReadCapability']&&(_0x31676c=Object[_0x223503(0x77c)](null),_0x31676c[_0x223503(0x7c2)]=_0x1c6be9,_0x4b34cc[_0x223503(0x74f)]=new _0x22b0ce[(_0x223503(0x7e3))](),(_0x4b34cc[_0x223503(0x2ea)]||=new Set())[_0x223503(0x156)](_0x31676c),_0x4b34cc[_0x223503(0x33f)]={'fnArray':[],'argsArray':[],'lastChunk':![],'separateAnnots':null},this[_0x223503(0x162)]?.['time'](_0x223503(0x949)),this[_0x223503(0x5fb)](_0x594ad5)),_0x4b34cc['opListReadCapability'][_0x223503(0x4dd)];}['streamTextContent'](){const _0x40ab45=_0x22d831;let {includeMarkedContent:includeMarkedContent=![],disableNormalization:disableNormalization=![]}=arguments[_0x40ab45(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};const _0x446baa=0x64;return this[_0x40ab45(0x728)][_0x40ab45(0x67f)][_0x40ab45(0x259)](_0x40ab45(0x54c),{'pageIndex':this[_0x40ab45(0x23c)],'includeMarkedContent':includeMarkedContent===!![],'disableNormalization':disableNormalization===!![]},{'highWaterMark':_0x446baa,'size'(_0x368e2c){const _0x270d21=_0x40ab45;return _0x368e2c[_0x270d21(0x44d)]['length'];}});}[_0x22d831(0x791)](){const _0x199e49=_0x22d831;let _0x47c6dd=arguments[_0x199e49(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};if(this['_transport'][_0x199e49(0x3db)])return this[_0x199e49(0x535)]()['then'](_0x2bca46=>{const _0x334351=_0x199e49;return _0x4e4308[_0x334351(0x205)]['textContent'](_0x2bca46);});const _0x35004c=this[_0x199e49(0x693)](_0x47c6dd);return new Promise(function(_0x126022,_0x5f2c78){const _0x56d3c8=_0x199e49;function _0x5bedd5(){const _0x457c9b=a0_0x160d;_0x5df99b[_0x457c9b(0x37b)]()['then'](function(_0xfcc26b){const _0x236f32=_0x457c9b;let {value:_0x12c48e,done:_0x20b4cc}=_0xfcc26b;if(_0x20b4cc){_0x126022(_0x1038d8);return;}Object['assign'](_0x1038d8[_0x236f32(0xa03)],_0x12c48e['styles']),_0x1038d8[_0x236f32(0x44d)][_0x236f32(0x7d6)](..._0x12c48e['items']),_0x5bedd5();},_0x5f2c78);}const _0x5df99b=_0x35004c[_0x56d3c8(0x3dd)](),_0x1038d8={'items':[],'styles':Object['create'](null)};_0x5bedd5();});}[_0x22d831(0x8bd)](){const _0x5432aa=_0x22d831;return this[_0x5432aa(0x728)][_0x5432aa(0x8bd)](this[_0x5432aa(0x23c)]);}[_0x22d831(0x925)](){const _0x5c8bc4=_0x22d831;this['destroyed']=!![];const _0x334c66=[];for(const _0x548f28 of this[_0x5c8bc4(0x563)][_0x5c8bc4(0x823)]()){this[_0x5c8bc4(0x6d6)]({'intentState':_0x548f28,'reason':new Error(_0x5c8bc4(0x58c)),'force':!![]});if(_0x548f28[_0x5c8bc4(0x74f)])continue;for(const _0x2d8a51 of _0x548f28[_0x5c8bc4(0x2ea)]){_0x334c66[_0x5c8bc4(0x7d6)](_0x2d8a51[_0x5c8bc4(0x7c8)]),_0x2d8a51[_0x5c8bc4(0x8c6)]();}}return this[_0x5c8bc4(0xdc)][_0x5c8bc4(0x1ca)](),this.#pendingCleanup=![],this.#abortDelayedCleanup(),Promise[_0x5c8bc4(0x586)](_0x334c66);}[_0x22d831(0x5d1)](){const _0x8dc19b=_0x22d831;let _0x5f1969=arguments[_0x8dc19b(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:![];this.#pendingCleanup=!![];const _0x120d72=this.#tryCleanup(![]);return _0x5f1969&&_0x120d72&&(this[_0x8dc19b(0x162)]&&=new _0x4c8b78[(_0x8dc19b(0x76c))]()),_0x120d72;}#tryCleanup(){const _0x10e92e=_0x22d831;let _0x80f8a1=arguments[_0x10e92e(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:![];this.#abortDelayedCleanup();if(!this.#pendingCleanup||this[_0x10e92e(0x8d5)])return![];if(_0x80f8a1)return this.#delayedCleanupTimeout=setTimeout(()=>{this.#delayedCleanupTimeout=null,this.#tryCleanup(![]);},_0x4bbcfc),![];for(const {renderTasks:_0x5bd0e4,operatorList:_0x3e7b11}of this[_0x10e92e(0x563)][_0x10e92e(0x823)]()){if(_0x5bd0e4[_0x10e92e(0x87a)]>0x0||!_0x3e7b11[_0x10e92e(0x8a3)])return![];}return this['_intentStates'][_0x10e92e(0x1ca)](),this[_0x10e92e(0xdc)][_0x10e92e(0x1ca)](),this.#pendingCleanup=![],!![];}#abortDelayedCleanup(){this.#delayedCleanupTimeout&&(clearTimeout(this.#delayedCleanupTimeout),this.#delayedCleanupTimeout=null);}[_0x22d831(0x23e)](_0x4ad0e4,_0x1a8231){const _0x56235c=_0x22d831,_0x5f2bb2=this[_0x56235c(0x563)]['get'](_0x1a8231);if(!_0x5f2bb2)return;this['_stats']?.[_0x56235c(0x459)](_0x56235c(0x949)),_0x5f2bb2[_0x56235c(0x712)]?.['resolve'](_0x4ad0e4);}[_0x22d831(0x784)](_0x469cb5,_0x3558a4){const _0x239aad=_0x22d831;for(let _0x3e9f17=0x0,_0x5df5a5=_0x469cb5[_0x239aad(0x557)];_0x3e9f17<_0x5df5a5;_0x3e9f17++){_0x3558a4[_0x239aad(0x33f)][_0x239aad(0x681)][_0x239aad(0x7d6)](_0x469cb5[_0x239aad(0x681)][_0x3e9f17]),_0x3558a4[_0x239aad(0x33f)][_0x239aad(0x20c)][_0x239aad(0x7d6)](_0x469cb5[_0x239aad(0x20c)][_0x3e9f17]);}_0x3558a4[_0x239aad(0x33f)]['lastChunk']=_0x469cb5['lastChunk'],_0x3558a4[_0x239aad(0x33f)][_0x239aad(0x8df)]=_0x469cb5[_0x239aad(0x8df)];for(const _0x5d2cdd of _0x3558a4['renderTasks']){_0x5d2cdd['operatorListChanged']();}_0x469cb5['lastChunk']&&this.#tryCleanup(!![]);}[_0x22d831(0x5fb)](_0x41dfdb){const _0x268b67=_0x22d831;let {renderingIntent:_0xbeba0d,cacheKey:_0x47547f,annotationStorageSerializable:_0x18121d}=_0x41dfdb;const {map:_0xb23709,transfers:_0x35c8ca}=_0x18121d,_0x500cc7=this[_0x268b67(0x728)]['messageHandler'][_0x268b67(0x259)]('GetOperatorList',{'pageIndex':this[_0x268b67(0x23c)],'intent':_0xbeba0d,'cacheKey':_0x47547f,'annotationStorage':_0xb23709},_0x35c8ca),_0x4fddcf=_0x500cc7['getReader'](),_0x7e67ba=this[_0x268b67(0x563)][_0x268b67(0x8c4)](_0x47547f);_0x7e67ba[_0x268b67(0x321)]=_0x4fddcf;const _0x172d16=()=>{const _0x11a10a=_0x268b67;_0x4fddcf[_0x11a10a(0x37b)]()[_0x11a10a(0x22d)](_0x4830fa=>{const _0x18e486=_0x11a10a;let {value:_0x9dc114,done:_0x3fcd42}=_0x4830fa;if(_0x3fcd42){_0x7e67ba[_0x18e486(0x321)]=null;return;}if(this[_0x18e486(0x728)][_0x18e486(0x8d5)])return;this['_renderPageChunk'](_0x9dc114,_0x7e67ba),_0x172d16();},_0x490c3d=>{const _0x32dd3d=_0x11a10a;_0x7e67ba['streamReader']=null;if(this[_0x32dd3d(0x728)]['destroyed'])return;if(_0x7e67ba['operatorList']){_0x7e67ba[_0x32dd3d(0x33f)][_0x32dd3d(0x8a3)]=!![];for(const _0x580197 of _0x7e67ba['renderTasks']){_0x580197[_0x32dd3d(0x7c2)]();}this.#tryCleanup(!![]);}if(_0x7e67ba[_0x32dd3d(0x712)])_0x7e67ba[_0x32dd3d(0x712)][_0x32dd3d(0x282)](_0x490c3d);else{if(_0x7e67ba[_0x32dd3d(0x74f)])_0x7e67ba[_0x32dd3d(0x74f)]['reject'](_0x490c3d);else throw _0x490c3d;}});};_0x172d16();}[_0x22d831(0x6d6)](_0x37725b){const _0x2176a0=_0x22d831;let {intentState:_0x18fc10,reason:_0x75c3a6,force:force=![]}=_0x37725b;if(!_0x18fc10['streamReader'])return;_0x18fc10[_0x2176a0(0x351)]&&(clearTimeout(_0x18fc10['streamReaderCancelTimeout']),_0x18fc10[_0x2176a0(0x351)]=null);if(!force){if(_0x18fc10[_0x2176a0(0x2ea)]['size']>0x0)return;if(_0x75c3a6 instanceof _0x4c8b78[_0x2176a0(0x450)]){let _0x5113ff=_0x36704e;_0x75c3a6[_0x2176a0(0x74d)]>0x0&&_0x75c3a6[_0x2176a0(0x74d)]<0x3e8&&(_0x5113ff+=_0x75c3a6[_0x2176a0(0x74d)]);_0x18fc10['streamReaderCancelTimeout']=setTimeout(()=>{const _0x4dbdac=_0x2176a0;_0x18fc10[_0x4dbdac(0x351)]=null,this[_0x4dbdac(0x6d6)]({'intentState':_0x18fc10,'reason':_0x75c3a6,'force':!![]});},_0x5113ff);return;}}_0x18fc10[_0x2176a0(0x321)]['cancel'](new _0x22b0ce[(_0x2176a0(0x980))](_0x75c3a6['message']))[_0x2176a0(0x75f)](()=>{}),_0x18fc10[_0x2176a0(0x321)]=null;if(this[_0x2176a0(0x728)][_0x2176a0(0x8d5)])return;for(const [_0x1783cc,_0x15b395]of this['_intentStates']){if(_0x15b395===_0x18fc10){this[_0x2176a0(0x563)][_0x2176a0(0x65f)](_0x1783cc);break;}}this['cleanup']();}get[_0x22d831(0x2f5)](){const _0x1b0a90=_0x22d831;return this[_0x1b0a90(0x162)];}}_0x19c6a2[_0x22d831(0x3af)]=_0x57d0ac;class _0x117b10{#listeners=new Set();#deferred=Promise[_0x22d831(0x442)]();['postMessage'](_0x17ccbe,_0x1643e4){const _0x22febf=_0x22d831,_0x2c6165={'data':structuredClone(_0x17ccbe,null)};this.#deferred[_0x22febf(0x22d)](()=>{for(const _0x1ba508 of this.#listeners){_0x1ba508['call'](this,_0x2c6165);}});}[_0x22d831(0x5cc)](_0x5ba20f,_0x4345ce){const _0x201dd3=_0x22d831;this.#listeners[_0x201dd3(0x156)](_0x4345ce);}['removeEventListener'](_0x3a93d8,_0x495c58){const _0x4698f6=_0x22d831;this.#listeners[_0x4698f6(0x65f)](_0x495c58);}[_0x22d831(0x92b)](){const _0x5c44dc=_0x22d831;this.#listeners[_0x5c44dc(0x1ca)]();}}_0x19c6a2['LoopbackPort']=_0x117b10;const _0x31f3f9={'isWorkerDisabled':![],'fallbackWorkerSrc':null,'fakeWorkerId':0x0};_0x19c6a2['PDFWorkerUtil']=_0x31f3f9;{if(_0x425afa[_0x22d831(0x8c5)]&&typeof require===_0x22d831(0x4ec))_0x31f3f9[_0x22d831(0x8f8)]=!![],_0x31f3f9[_0x22d831(0x85e)]=_0x22d831(0x21a);else{if(typeof document==='object'){const _0x17bd01=document?.[_0x22d831(0x9de)]?.['src'];_0x17bd01&&(_0x31f3f9[_0x22d831(0x85e)]=_0x17bd01['replace'](/(\.(?:min\.)?js)(\?.*)?$/i,_0x22d831(0x372)));}}_0x31f3f9[_0x22d831(0x8ec)]=function(_0x443e2c,_0x5ab980){const _0x1014ae=_0x22d831;let _0x360b13;try{_0x360b13=new URL(_0x443e2c);if(!_0x360b13[_0x1014ae(0x3f8)]||_0x360b13['origin']===_0x1014ae(0x8e2))return![];}catch{return![];}const _0x253db6=new URL(_0x5ab980,_0x360b13);return _0x360b13[_0x1014ae(0x3f8)]===_0x253db6[_0x1014ae(0x3f8)];},_0x31f3f9[_0x22d831(0x9a3)]=function(_0x79274){const _0xe8b722=_0x22d831,_0x21fc20=_0xe8b722(0x103)+_0x79274+_0xe8b722(0x8fb);return URL[_0xe8b722(0x9c1)](new Blob([_0x21fc20]));};}class _0x228809{static #workerPorts=new WeakMap();constructor(){const _0x3918b0=_0x22d831;let {name:name=null,port:port=null,verbosity:verbosity=(0x0,_0x22b0ce[_0x3918b0(0x698)])()}=arguments[_0x3918b0(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};if(port&&_0x228809.#workerPorts[_0x3918b0(0x373)](port))throw new Error(_0x3918b0(0x7bf));this[_0x3918b0(0x499)]=name,this['destroyed']=![],this['verbosity']=verbosity,this['_readyCapability']=new _0x22b0ce[(_0x3918b0(0x7e3))](),this[_0x3918b0(0x49e)]=null,this[_0x3918b0(0xa05)]=null,this['_messageHandler']=null;if(port){_0x228809.#workerPorts[_0x3918b0(0x98e)](port,this),this[_0x3918b0(0x53d)](port);return;}this[_0x3918b0(0x9f0)]();}get[_0x22d831(0x4dd)](){const _0x620992=_0x22d831;return this[_0x620992(0x3a2)][_0x620992(0x4dd)];}get[_0x22d831(0x377)](){const _0x206c74=_0x22d831;return this[_0x206c74(0x49e)];}get[_0x22d831(0x67f)](){const _0x2f391c=_0x22d831;return this[_0x2f391c(0x266)];}[_0x22d831(0x53d)](_0x37b755){const _0x3cb209=_0x22d831;this[_0x3cb209(0x49e)]=_0x37b755,this[_0x3cb209(0x266)]=new _0x1cf9e7['MessageHandler']('main',_0x3cb209(0x66d),_0x37b755),this[_0x3cb209(0x266)]['on'](_0x3cb209(0x2e5),function(){}),this[_0x3cb209(0x3a2)][_0x3cb209(0x442)](),this[_0x3cb209(0x266)][_0x3cb209(0x3e0)](_0x3cb209(0x907),{'verbosity':this[_0x3cb209(0x476)]});}[_0x22d831(0x9f0)](){const _0x42a069=_0x22d831;if(!_0x31f3f9[_0x42a069(0x8f8)]&&!_0x228809['_mainThreadWorkerMessageHandler']){let {workerSrc:_0x6c5f7}=_0x228809;try{!_0x31f3f9[_0x42a069(0x8ec)](window['location'][_0x42a069(0x95d)],_0x6c5f7)&&(_0x6c5f7=_0x31f3f9['createCDNWrapper'](new URL(_0x6c5f7,window[_0x42a069(0x5a1)])[_0x42a069(0x95d)]));const _0x4df648=new Worker(_0x6c5f7),_0x11800f=new _0x1cf9e7[(_0x42a069(0x43f))](_0x42a069(0x9c2),_0x42a069(0x66d),_0x4df648),_0x55d82f=()=>{const _0x13fd54=_0x42a069;_0x4df648['removeEventListener'](_0x13fd54(0x9e3),_0x1e1c01),_0x11800f[_0x13fd54(0x256)](),_0x4df648[_0x13fd54(0x92b)](),this[_0x13fd54(0x8d5)]?this['_readyCapability']['reject'](new Error(_0x13fd54(0x61b))):this[_0x13fd54(0x2e6)]();},_0x1e1c01=()=>{const _0x4a10f6=_0x42a069;!this[_0x4a10f6(0xa05)]&&_0x55d82f();};_0x4df648[_0x42a069(0x5cc)](_0x42a069(0x9e3),_0x1e1c01),_0x11800f['on'](_0x42a069(0x6e7),_0x45e0d7=>{const _0x251678=_0x42a069;_0x4df648[_0x251678(0x1c0)]('error',_0x1e1c01);if(this[_0x251678(0x8d5)]){_0x55d82f();return;}_0x45e0d7?(this[_0x251678(0x266)]=_0x11800f,this[_0x251678(0x49e)]=_0x4df648,this['_webWorker']=_0x4df648,this[_0x251678(0x3a2)][_0x251678(0x442)](),_0x11800f[_0x251678(0x3e0)](_0x251678(0x907),{'verbosity':this['verbosity']})):(this['_setupFakeWorker'](),_0x11800f['destroy'](),_0x4df648[_0x251678(0x92b)]());}),_0x11800f['on'](_0x42a069(0x2e5),_0x29922b=>{const _0x13ad87=_0x42a069;_0x4df648['removeEventListener'](_0x13ad87(0x9e3),_0x1e1c01);if(this[_0x13ad87(0x8d5)]){_0x55d82f();return;}try{_0x13f4c3();}catch{this[_0x13ad87(0x2e6)]();}});const _0x13f4c3=()=>{const _0x14edf0=_0x42a069,_0x23a70f=new Uint8Array();_0x11800f[_0x14edf0(0x3e0)](_0x14edf0(0x6e7),_0x23a70f,[_0x23a70f[_0x14edf0(0x948)]]);};_0x13f4c3();return;}catch{(0x0,_0x22b0ce[_0x42a069(0x7c1)])(_0x42a069(0x4af));}}this[_0x42a069(0x2e6)]();}[_0x22d831(0x2e6)](){const _0x12b75d=_0x22d831;!_0x31f3f9[_0x12b75d(0x8f8)]&&((0x0,_0x22b0ce[_0x12b75d(0x472)])(_0x12b75d(0x49c)),_0x31f3f9[_0x12b75d(0x8f8)]=!![]),_0x228809[_0x12b75d(0x101)][_0x12b75d(0x22d)](_0xd0a7e9=>{const _0x30793f=_0x12b75d;if(this[_0x30793f(0x8d5)]){this['_readyCapability'][_0x30793f(0x282)](new Error(_0x30793f(0x61b)));return;}const _0x32579c=new _0x117b10();this[_0x30793f(0x49e)]=_0x32579c;const _0x446120=_0x30793f(0x842)+_0x31f3f9[_0x30793f(0x95a)]++,_0x1d1756=new _0x1cf9e7['MessageHandler'](_0x446120+_0x30793f(0x4da),_0x446120,_0x32579c);_0xd0a7e9[_0x30793f(0x479)](_0x1d1756,_0x32579c);const _0x5b9f3d=new _0x1cf9e7[(_0x30793f(0x43f))](_0x446120,_0x446120+'_worker',_0x32579c);this[_0x30793f(0x266)]=_0x5b9f3d,this['_readyCapability'][_0x30793f(0x442)](),_0x5b9f3d[_0x30793f(0x3e0)]('configure',{'verbosity':this[_0x30793f(0x476)]});})[_0x12b75d(0x75f)](_0x5ca870=>{const _0xf7ae9e=_0x12b75d;this[_0xf7ae9e(0x3a2)]['reject'](new Error(_0xf7ae9e(0x590)+_0x5ca870['message']+'\x22.'));});}['destroy'](){const _0x338b09=_0x22d831;this[_0x338b09(0x8d5)]=!![],this['_webWorker']&&(this[_0x338b09(0xa05)][_0x338b09(0x92b)](),this['_webWorker']=null),_0x228809.#workerPorts['delete'](this[_0x338b09(0x49e)]),this[_0x338b09(0x49e)]=null,this['_messageHandler']&&(this[_0x338b09(0x266)][_0x338b09(0x256)](),this[_0x338b09(0x266)]=null);}static['fromPort'](_0x4138c1){const _0x37bab0=_0x22d831;if(!_0x4138c1?.['port'])throw new Error(_0x37bab0(0xea));if(this.#workerPorts[_0x37bab0(0x373)](_0x4138c1['port']))return this.#workerPorts[_0x37bab0(0x8c4)](_0x4138c1[_0x37bab0(0x377)]);return new _0x228809(_0x4138c1);}static get[_0x22d831(0xe3)](){const _0x427156=_0x22d831;if(_0x55f54e[_0x427156(0x445)][_0x427156(0xe3)])return _0x55f54e[_0x427156(0x445)][_0x427156(0xe3)];if(_0x31f3f9[_0x427156(0x85e)]!==null)return!_0x425afa[_0x427156(0x8c5)]&&(0x0,_0x4c8b78['deprecated'])(_0x427156(0x565)),_0x31f3f9[_0x427156(0x85e)];throw new Error(_0x427156(0x565));}static get[_0x22d831(0x7e7)](){const _0x94cca2=_0x22d831;try{return globalThis[_0x94cca2(0x92a)]?.[_0x94cca2(0x22b)]||null;}catch{return null;}}static get[_0x22d831(0x101)](){const _0x124807=_0x22d831,_0x45480d=async()=>{const _0x355a5d=a0_0x160d,_0x21dcd0=this[_0x355a5d(0x7e7)];if(_0x21dcd0)return _0x21dcd0;if(_0x425afa[_0x355a5d(0x8c5)]&&typeof require===_0x355a5d(0x4ec)){const _0x2b3c0b=eval('require;')(this['workerSrc']);return _0x2b3c0b['WorkerMessageHandler'];}return await(0x0,_0x4c8b78[_0x355a5d(0x4f0)])(this[_0x355a5d(0xe3)]),window[_0x355a5d(0x92a)]['WorkerMessageHandler'];};return(0x0,_0x22b0ce['shadow'])(this,_0x124807(0x101),_0x45480d());}}_0x19c6a2[_0x22d831(0x7f1)]=_0x228809;class _0x4387fd{#methodPromises=new Map();#pageCache=new Map();#pagePromises=new Map();constructor(_0x4ffc7d,_0x10e31b,_0x3f4057,_0x13386f,_0x91bc93){const _0x5c4e60=_0x22d831;this['messageHandler']=_0x4ffc7d,this['loadingTask']=_0x10e31b,this[_0x5c4e60(0x53b)]=new _0x3cf9da(),this['fontLoader']=new _0xaadc95[(_0x5c4e60(0x6e3))]({'ownerDocument':_0x13386f[_0x5c4e60(0x41f)],'styleElement':_0x13386f['styleElement']}),this[_0x5c4e60(0x66f)]=_0x13386f,this[_0x5c4e60(0x5db)]=_0x91bc93['canvasFactory'],this['filterFactory']=_0x91bc93[_0x5c4e60(0x491)],this[_0x5c4e60(0x8f4)]=_0x91bc93[_0x5c4e60(0x8f4)],this[_0x5c4e60(0x759)]=_0x91bc93[_0x5c4e60(0x759)],this['destroyed']=![],this[_0x5c4e60(0x87b)]=null,this[_0x5c4e60(0x142)]=null,this['_networkStream']=_0x3f4057,this['_fullReader']=null,this['_lastProgress']=null,this[_0x5c4e60(0x62f)]=new _0x22b0ce[(_0x5c4e60(0x7e3))](),this[_0x5c4e60(0x19c)]();}#cacheSimpleMethod(_0x418162){const _0x37f149=_0x22d831;let _0x44681d=arguments[_0x37f149(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:null;const _0x3338b7=this.#methodPromises[_0x37f149(0x8c4)](_0x418162);if(_0x3338b7)return _0x3338b7;const _0x3fa43b=this[_0x37f149(0x67f)][_0x37f149(0x88c)](_0x418162,_0x44681d);return this.#methodPromises[_0x37f149(0x98e)](_0x418162,_0x3fa43b),_0x3fa43b;}get[_0x22d831(0x5bf)](){const _0x544672=_0x22d831;return(0x0,_0x22b0ce[_0x544672(0x51d)])(this,_0x544672(0x5bf),new _0x33bd62[(_0x544672(0x55c))]());}['getRenderingIntent'](_0x45ddb2){const _0x5db275=_0x22d831;let _0xc41208=arguments[_0x5db275(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:_0x22b0ce[_0x5db275(0x2a5)][_0x5db275(0x70a)],_0x288e63=arguments[_0x5db275(0x557)]>0x2&&arguments[0x2]!==undefined?arguments[0x2]:null,_0x567f6b=arguments[_0x5db275(0x557)]>0x3&&arguments[0x3]!==undefined?arguments[0x3]:![],_0x1d2a41=_0x22b0ce[_0x5db275(0x2b5)][_0x5db275(0x5ae)],_0x47c115=_0x33bd62['SerializableEmpty'];switch(_0x45ddb2){case _0x5db275(0xcc):_0x1d2a41=_0x22b0ce[_0x5db275(0x2b5)][_0x5db275(0x3a8)];break;case _0x5db275(0x619):break;case'print':_0x1d2a41=_0x22b0ce[_0x5db275(0x2b5)][_0x5db275(0x6b5)];break;default:(0x0,_0x22b0ce['warn'])(_0x5db275(0x1ce)+_0x45ddb2);}switch(_0xc41208){case _0x22b0ce[_0x5db275(0x2a5)][_0x5db275(0x1f6)]:_0x1d2a41+=_0x22b0ce[_0x5db275(0x2b5)][_0x5db275(0x9ae)];break;case _0x22b0ce[_0x5db275(0x2a5)][_0x5db275(0x70a)]:break;case _0x22b0ce[_0x5db275(0x2a5)]['ENABLE_FORMS']:_0x1d2a41+=_0x22b0ce[_0x5db275(0x2b5)]['ANNOTATIONS_FORMS'];break;case _0x22b0ce['AnnotationMode'][_0x5db275(0x519)]:_0x1d2a41+=_0x22b0ce['RenderingIntentFlag']['ANNOTATIONS_STORAGE'];const _0x4ae870=_0x1d2a41&_0x22b0ce[_0x5db275(0x2b5)]['PRINT']&&_0x288e63 instanceof _0x33bd62['PrintAnnotationStorage']?_0x288e63:this['annotationStorage'];_0x47c115=_0x4ae870[_0x5db275(0x69c)];break;default:(0x0,_0x22b0ce[_0x5db275(0x472)])(_0x5db275(0x553)+_0xc41208);}return _0x567f6b&&(_0x1d2a41+=_0x22b0ce[_0x5db275(0x2b5)][_0x5db275(0x7b2)]),{'renderingIntent':_0x1d2a41,'cacheKey':_0x1d2a41+'_'+_0x47c115[_0x5db275(0x322)],'annotationStorageSerializable':_0x47c115};}['destroy'](){const _0x472202=_0x22d831;if(this[_0x472202(0x87b)])return this['destroyCapability'][_0x472202(0x4dd)];this[_0x472202(0x8d5)]=!![],this['destroyCapability']=new _0x22b0ce[(_0x472202(0x7e3))]();this['_passwordCapability']&&this[_0x472202(0x142)][_0x472202(0x282)](new Error(_0x472202(0x482)));const _0x12ac27=[];for(const _0x35a98d of this.#pageCache['values']()){_0x12ac27['push'](_0x35a98d['_destroy']());}this.#pageCache[_0x472202(0x1ca)](),this.#pagePromises[_0x472202(0x1ca)]();this['hasOwnProperty'](_0x472202(0x5bf))&&this['annotationStorage'][_0x472202(0x77a)]();const _0x905ea5=this['messageHandler'][_0x472202(0x88c)](_0x472202(0x42c),null);return _0x12ac27[_0x472202(0x7d6)](_0x905ea5),Promise[_0x472202(0x586)](_0x12ac27)[_0x472202(0x22d)](()=>{const _0x5126f5=_0x472202;this[_0x5126f5(0x53b)]['clear'](),this[_0x5126f5(0x48e)][_0x5126f5(0x1ca)](),this.#methodPromises[_0x5126f5(0x1ca)](),this[_0x5126f5(0x491)][_0x5126f5(0x256)](),this[_0x5126f5(0x182)]&&this[_0x5126f5(0x182)]['cancelAllRequests'](new _0x22b0ce[(_0x5126f5(0x980))](_0x5126f5(0x5e7))),this['messageHandler']&&(this['messageHandler']['destroy'](),this['messageHandler']=null),this[_0x5126f5(0x87b)]['resolve']();},this[_0x472202(0x87b)][_0x472202(0x282)]),this[_0x472202(0x87b)][_0x472202(0x4dd)];}[_0x22d831(0x19c)](){const _0x3ed4e6=_0x22d831,{messageHandler:_0x44411b,loadingTask:_0x450536}=this;_0x44411b['on'](_0x3ed4e6(0x92c),(_0x2c7010,_0x3f296c)=>{const _0x33259c=_0x3ed4e6;(0x0,_0x22b0ce[_0x33259c(0x63a)])(this[_0x33259c(0x182)],_0x33259c(0x4f6)),this[_0x33259c(0x60f)]=this[_0x33259c(0x182)]['getFullReader'](),this[_0x33259c(0x60f)][_0x33259c(0x3bf)]=_0x453307=>{const _0x5816ad=_0x33259c;this[_0x5816ad(0x2de)]={'loaded':_0x453307[_0x5816ad(0x19f)],'total':_0x453307[_0x5816ad(0x2d4)]};},_0x3f296c[_0x33259c(0x94e)]=()=>{const _0x2ef1f2=_0x33259c;this[_0x2ef1f2(0x60f)]['read']()[_0x2ef1f2(0x22d)](function(_0x5210bc){const _0x4dd85c=_0x2ef1f2;let {value:_0x403a5e,done:_0x37bef1}=_0x5210bc;if(_0x37bef1){_0x3f296c[_0x4dd85c(0x70e)]();return;}(0x0,_0x22b0ce[_0x4dd85c(0x63a)])(_0x403a5e instanceof ArrayBuffer,_0x4dd85c(0x51c)),_0x3f296c[_0x4dd85c(0xee)](new Uint8Array(_0x403a5e),0x1,[_0x403a5e]);})[_0x2ef1f2(0x75f)](_0x5428e5=>{const _0x177175=_0x2ef1f2;_0x3f296c[_0x177175(0x9e3)](_0x5428e5);});},_0x3f296c['onCancel']=_0x4e1cb5=>{const _0x4cdf89=_0x33259c;this['_fullReader'][_0x4cdf89(0x8c6)](_0x4e1cb5),_0x3f296c[_0x4cdf89(0x2e5)][_0x4cdf89(0x75f)](_0x15566f=>{const _0x152f29=_0x4cdf89;if(this[_0x152f29(0x8d5)])return;throw _0x15566f;});};}),_0x44411b['on'](_0x3ed4e6(0x3e1),_0x1a6675=>{const _0x4c3def=_0x3ed4e6,_0x265e60=new _0x22b0ce[(_0x4c3def(0x7e3))](),_0x27bfc2=this[_0x4c3def(0x60f)];return _0x27bfc2[_0x4c3def(0x6f2)]['then'](()=>{const _0x5510d5=_0x4c3def;(!_0x27bfc2[_0x5510d5(0x913)]||!_0x27bfc2[_0x5510d5(0x7b9)])&&(this[_0x5510d5(0x2de)]&&_0x450536[_0x5510d5(0x3bf)]?.(this[_0x5510d5(0x2de)]),_0x27bfc2[_0x5510d5(0x3bf)]=_0x1922c6=>{const _0x1cd070=_0x5510d5;_0x450536['onProgress']?.({'loaded':_0x1922c6[_0x1cd070(0x19f)],'total':_0x1922c6[_0x1cd070(0x2d4)]});}),_0x265e60[_0x5510d5(0x442)]({'isStreamingSupported':_0x27bfc2[_0x5510d5(0x913)],'isRangeSupported':_0x27bfc2[_0x5510d5(0x7b9)],'contentLength':_0x27bfc2[_0x5510d5(0x434)]});},_0x265e60['reject']),_0x265e60['promise'];}),_0x44411b['on']('GetRangeReader',(_0x3e86d4,_0xa50e0a)=>{const _0x2840ae=_0x3ed4e6;(0x0,_0x22b0ce[_0x2840ae(0x63a)])(this[_0x2840ae(0x182)],'GetRangeReader\x20-\x20no\x20`IPDFStream`\x20instance\x20available.');const _0x4e5548=this[_0x2840ae(0x182)][_0x2840ae(0x7d3)](_0x3e86d4[_0x2840ae(0x722)],_0x3e86d4[_0x2840ae(0x977)]);if(!_0x4e5548){_0xa50e0a[_0x2840ae(0x70e)]();return;}_0xa50e0a['onPull']=()=>{const _0xdd45cb=_0x2840ae;_0x4e5548[_0xdd45cb(0x37b)]()['then'](function(_0x31784b){const _0x2390b4=_0xdd45cb;let {value:_0x302728,done:_0x55a19f}=_0x31784b;if(_0x55a19f){_0xa50e0a[_0x2390b4(0x70e)]();return;}(0x0,_0x22b0ce[_0x2390b4(0x63a)])(_0x302728 instanceof ArrayBuffer,_0x2390b4(0x4eb)),_0xa50e0a['enqueue'](new Uint8Array(_0x302728),0x1,[_0x302728]);})[_0xdd45cb(0x75f)](_0x14dc7d=>{const _0x3aecfa=_0xdd45cb;_0xa50e0a[_0x3aecfa(0x9e3)](_0x14dc7d);});},_0xa50e0a[_0x2840ae(0x19d)]=_0x4aecd8=>{const _0x2acd16=_0x2840ae;_0x4e5548[_0x2acd16(0x8c6)](_0x4aecd8),_0xa50e0a[_0x2acd16(0x2e5)][_0x2acd16(0x75f)](_0x106a2b=>{const _0x26a6cd=_0x2acd16;if(this[_0x26a6cd(0x8d5)])return;throw _0x106a2b;});};}),_0x44411b['on'](_0x3ed4e6(0x330),_0x12f68a=>{const _0x124c10=_0x3ed4e6;let {pdfInfo:_0x2d0ed4}=_0x12f68a;this[_0x124c10(0x937)]=_0x2d0ed4[_0x124c10(0x4b1)],this[_0x124c10(0x3db)]=_0x2d0ed4[_0x124c10(0x918)],delete _0x2d0ed4[_0x124c10(0x918)],_0x450536[_0x124c10(0x869)][_0x124c10(0x442)](new _0x3e3f82(_0x2d0ed4,this));}),_0x44411b['on'](_0x3ed4e6(0x72c),function(_0x201fec){const _0x380880=_0x3ed4e6;let _0x3563f8;switch(_0x201fec[_0x380880(0x499)]){case _0x380880(0x763):_0x3563f8=new _0x22b0ce[(_0x380880(0x763))](_0x201fec[_0x380880(0x1bd)],_0x201fec['code']);break;case'InvalidPDFException':_0x3563f8=new _0x22b0ce[(_0x380880(0x46b))](_0x201fec[_0x380880(0x1bd)]);break;case'MissingPDFException':_0x3563f8=new _0x22b0ce[(_0x380880(0x5c5))](_0x201fec[_0x380880(0x1bd)]);break;case'UnexpectedResponseException':_0x3563f8=new _0x22b0ce[(_0x380880(0x90f))](_0x201fec[_0x380880(0x1bd)],_0x201fec[_0x380880(0x78b)]);break;case _0x380880(0x194):_0x3563f8=new _0x22b0ce[(_0x380880(0x194))](_0x201fec['message'],_0x201fec['details']);break;default:(0x0,_0x22b0ce[_0x380880(0x749)])(_0x380880(0x30b));}_0x450536[_0x380880(0x869)]['reject'](_0x3563f8);}),_0x44411b['on'](_0x3ed4e6(0x702),_0x5de8f2=>{const _0x589ed7=_0x3ed4e6;this[_0x589ed7(0x142)]=new _0x22b0ce[(_0x589ed7(0x7e3))]();if(_0x450536['onPassword']){const _0x464460=_0x504301=>{const _0x467277=_0x589ed7;_0x504301 instanceof Error?this[_0x467277(0x142)][_0x467277(0x282)](_0x504301):this['_passwordCapability']['resolve']({'password':_0x504301});};try{_0x450536[_0x589ed7(0x237)](_0x464460,_0x5de8f2[_0x589ed7(0x191)]);}catch(_0x333b20){this[_0x589ed7(0x142)][_0x589ed7(0x282)](_0x333b20);}}else this[_0x589ed7(0x142)][_0x589ed7(0x282)](new _0x22b0ce['PasswordException'](_0x5de8f2[_0x589ed7(0x1bd)],_0x5de8f2[_0x589ed7(0x191)]));return this['_passwordCapability'][_0x589ed7(0x4dd)];}),_0x44411b['on'](_0x3ed4e6(0x8bb),_0x1be00d=>{const _0x40f842=_0x3ed4e6;_0x450536[_0x40f842(0x3bf)]?.({'loaded':_0x1be00d['length'],'total':_0x1be00d[_0x40f842(0x557)]}),this[_0x40f842(0x62f)]['resolve'](_0x1be00d);}),_0x44411b['on'](_0x3ed4e6(0x212),_0x4b4af5=>{const _0xc0ae98=_0x3ed4e6;if(this['destroyed'])return;const _0x348533=this.#pageCache[_0xc0ae98(0x8c4)](_0x4b4af5[_0xc0ae98(0x700)]);_0x348533[_0xc0ae98(0x23e)](_0x4b4af5[_0xc0ae98(0x9ce)],_0x4b4af5[_0xc0ae98(0x2af)]);}),_0x44411b['on'](_0x3ed4e6(0x8d3),_0x5685f5=>{const _0x44a891=_0x3ed4e6;let [_0x25bd22,_0x1e4635,_0x48dbce]=_0x5685f5;if(this[_0x44a891(0x8d5)])return;if(this[_0x44a891(0x53b)]['has'](_0x25bd22))return;switch(_0x1e4635){case _0x44a891(0x538):const _0x53a2a5=this[_0x44a891(0x66f)];if(_0x44a891(0x9e3)in _0x48dbce){const _0x5679ff=_0x48dbce[_0x44a891(0x9e3)];(0x0,_0x22b0ce[_0x44a891(0x472)])(_0x44a891(0x123)+_0x5679ff),this[_0x44a891(0x53b)][_0x44a891(0x442)](_0x25bd22,_0x5679ff);break;}const _0x365b7e=_0x53a2a5[_0x44a891(0x408)]&&globalThis[_0x44a891(0x678)]?.['enabled']?(_0x49c58f,_0x44853b)=>globalThis[_0x44a891(0x678)][_0x44a891(0x423)](_0x49c58f,_0x44853b):null,_0x3878dd=new _0xaadc95[(_0x44a891(0x575))](_0x48dbce,{'isEvalSupported':_0x53a2a5[_0x44a891(0x221)],'disableFontFace':_0x53a2a5[_0x44a891(0x8b6)],'ignoreErrors':_0x53a2a5[_0x44a891(0x76f)],'inspectFont':_0x365b7e});this['fontLoader'][_0x44a891(0x5e8)](_0x3878dd)[_0x44a891(0x75f)](_0x1f0b22=>{const _0x24139d=_0x44a891;return _0x44411b[_0x24139d(0x88c)](_0x24139d(0xc1),{'id':_0x25bd22});})['finally'](()=>{const _0x3dad16=_0x44a891;!_0x53a2a5[_0x3dad16(0x9d6)]&&_0x3878dd[_0x3dad16(0x41b)]&&(_0x3878dd[_0x3dad16(0x41b)]=null),this[_0x3dad16(0x53b)][_0x3dad16(0x442)](_0x25bd22,_0x3878dd);});break;case'FontPath':case _0x44a891(0x633):case _0x44a891(0x317):this['commonObjs']['resolve'](_0x25bd22,_0x48dbce);break;default:throw new Error(_0x44a891(0x89d)+_0x1e4635);}}),_0x44411b['on'](_0x3ed4e6(0x270),_0x4648c0=>{const _0x180439=_0x3ed4e6;let [_0x24b24e,_0x1580e6,_0x3f6702,_0x5a1e12]=_0x4648c0;if(this[_0x180439(0x8d5)])return;const _0x3e69af=this.#pageCache[_0x180439(0x8c4)](_0x1580e6);if(_0x3e69af[_0x180439(0xdc)][_0x180439(0x373)](_0x24b24e))return;switch(_0x3f6702){case'Image':_0x3e69af[_0x180439(0xdc)][_0x180439(0x442)](_0x24b24e,_0x5a1e12);if(_0x5a1e12){let _0x53aee2;if(_0x5a1e12['bitmap']){const {width:_0x98ddbc,height:_0x2b17ba}=_0x5a1e12;_0x53aee2=_0x98ddbc*_0x2b17ba*0x4;}else _0x53aee2=_0x5a1e12['data']?.[_0x180439(0x557)]||0x0;_0x53aee2>_0x22b0ce[_0x180439(0x58f)]&&(_0x3e69af[_0x180439(0x5fc)]=!![]);}break;case'Pattern':_0x3e69af[_0x180439(0xdc)][_0x180439(0x442)](_0x24b24e,_0x5a1e12);break;default:throw new Error(_0x180439(0x23b)+_0x3f6702);}}),_0x44411b['on']('DocProgress',_0x2ac7ab=>{const _0x2afd40=_0x3ed4e6;if(this['destroyed'])return;_0x450536[_0x2afd40(0x3bf)]?.({'loaded':_0x2ac7ab['loaded'],'total':_0x2ac7ab['total']});}),_0x44411b['on'](_0x3ed4e6(0x84b),_0x267829=>{const _0x434ba0=_0x3ed4e6;if(this['destroyed'])return Promise[_0x434ba0(0x282)](new Error(_0x434ba0(0x474)));if(!this[_0x434ba0(0x8f4)])return Promise[_0x434ba0(0x282)](new Error(_0x434ba0(0x26c)));return this['cMapReaderFactory'][_0x434ba0(0x940)](_0x267829);}),_0x44411b['on'](_0x3ed4e6(0x390),_0x2bca19=>{const _0x3e3d6e=_0x3ed4e6;if(this[_0x3e3d6e(0x8d5)])return Promise[_0x3e3d6e(0x282)](new Error(_0x3e3d6e(0x474)));if(!this[_0x3e3d6e(0x759)])return Promise[_0x3e3d6e(0x282)](new Error(_0x3e3d6e(0x1c5)));return this[_0x3e3d6e(0x759)][_0x3e3d6e(0x940)](_0x2bca19);});}[_0x22d831(0x593)](){const _0xd45256=_0x22d831;return this[_0xd45256(0x67f)][_0xd45256(0x88c)](_0xd45256(0xe8),null);}[_0x22d831(0x65a)](){const _0x3a32f8=_0x22d831;this[_0x3a32f8(0x5bf)][_0x3a32f8(0x87a)]<=0x0&&(0x0,_0x22b0ce[_0x3a32f8(0x472)])(_0x3a32f8(0x639)+_0x3a32f8(0x9cf));const {map:_0x2951aa,transfers:_0x4f93c1}=this['annotationStorage'][_0x3a32f8(0x69c)];return this[_0x3a32f8(0x67f)][_0x3a32f8(0x88c)](_0x3a32f8(0x401),{'isPureXfa':!!this[_0x3a32f8(0x3db)],'numPages':this[_0x3a32f8(0x937)],'annotationStorage':_0x2951aa,'filename':this['_fullReader']?.['filename']??null},_0x4f93c1)[_0x3a32f8(0x7e0)](()=>{const _0x463477=_0x3a32f8;this[_0x463477(0x5bf)]['resetModified']();});}[_0x22d831(0x21c)](_0x4bbaba){const _0x5b1c30=_0x22d831;if(!Number[_0x5b1c30(0x235)](_0x4bbaba)||_0x4bbaba<=0x0||_0x4bbaba>this['_numPages'])return Promise[_0x5b1c30(0x282)](new Error(_0x5b1c30(0x124)));const _0x40320f=_0x4bbaba-0x1,_0x2c4ac8=this.#pagePromises['get'](_0x40320f);if(_0x2c4ac8)return _0x2c4ac8;const _0x1e2259=this[_0x5b1c30(0x67f)]['sendWithPromise'](_0x5b1c30(0x272),{'pageIndex':_0x40320f})[_0x5b1c30(0x22d)](_0x34ebc7=>{const _0x30bb18=_0x5b1c30;if(this[_0x30bb18(0x8d5)])throw new Error(_0x30bb18(0x793));const _0x4eb1fe=new _0x57d0ac(_0x40320f,_0x34ebc7,this,this['_params'][_0x30bb18(0x408)]);return this.#pageCache[_0x30bb18(0x98e)](_0x40320f,_0x4eb1fe),_0x4eb1fe;});return this.#pagePromises[_0x5b1c30(0x98e)](_0x40320f,_0x1e2259),_0x1e2259;}[_0x22d831(0x24d)](_0x59aee4){const _0x6e7caa=_0x22d831;if(typeof _0x59aee4!==_0x6e7caa(0x97b)||_0x59aee4===null||!Number[_0x6e7caa(0x235)](_0x59aee4[_0x6e7caa(0x394)])||_0x59aee4['num']<0x0||!Number[_0x6e7caa(0x235)](_0x59aee4[_0x6e7caa(0x13b)])||_0x59aee4[_0x6e7caa(0x13b)]<0x0)return Promise[_0x6e7caa(0x282)](new Error(_0x6e7caa(0x2db)));return this['messageHandler']['sendWithPromise'](_0x6e7caa(0x826),{'num':_0x59aee4[_0x6e7caa(0x394)],'gen':_0x59aee4[_0x6e7caa(0x13b)]});}['getAnnotations'](_0x29691c,_0x5639fc){const _0x57cb5e=_0x22d831;return this[_0x57cb5e(0x67f)][_0x57cb5e(0x88c)](_0x57cb5e(0x5a6),{'pageIndex':_0x29691c,'intent':_0x5639fc});}[_0x22d831(0x645)](){return this.#cacheSimpleMethod('GetFieldObjects');}[_0x22d831(0x731)](){const _0x5a93de=_0x22d831;return this.#cacheSimpleMethod(_0x5a93de(0x2a9));}[_0x22d831(0x8c0)](){const _0x4be541=_0x22d831;return this['messageHandler']['sendWithPromise'](_0x4be541(0x339),null);}[_0x22d831(0x827)](){const _0x3bd83d=_0x22d831;return this[_0x3bd83d(0x67f)][_0x3bd83d(0x88c)](_0x3bd83d(0x6a8),null);}[_0x22d831(0x651)](_0x4248ab){const _0x34b561=_0x22d831;if(typeof _0x4248ab!==_0x34b561(0x8cd))return Promise[_0x34b561(0x282)](new Error('Invalid\x20destination\x20request.'));return this['messageHandler'][_0x34b561(0x88c)](_0x34b561(0x8d8),{'id':_0x4248ab});}[_0x22d831(0x152)](){const _0x3d3ae8=_0x22d831;return this['messageHandler'][_0x3d3ae8(0x88c)]('GetPageLabels',null);}[_0x22d831(0x14f)](){const _0x2ec7bf=_0x22d831;return this['messageHandler'][_0x2ec7bf(0x88c)]('GetPageLayout',null);}['getPageMode'](){const _0xb1ba0a=_0x22d831;return this[_0xb1ba0a(0x67f)][_0xb1ba0a(0x88c)](_0xb1ba0a(0x78c),null);}[_0x22d831(0x917)](){const _0x323f60=_0x22d831;return this[_0x323f60(0x67f)][_0x323f60(0x88c)](_0x323f60(0x116),null);}[_0x22d831(0x3d5)](){const _0x5a50b7=_0x22d831;return this[_0x5a50b7(0x67f)][_0x5a50b7(0x88c)](_0x5a50b7(0x448),null);}[_0x22d831(0x362)](){const _0x2aeadb=_0x22d831;return this['messageHandler'][_0x2aeadb(0x88c)](_0x2aeadb(0x7fb),null);}[_0x22d831(0x467)](){const _0x3e5961=_0x22d831;return this[_0x3e5961(0x67f)]['sendWithPromise'](_0x3e5961(0x5c9),null);}[_0x22d831(0x713)](){const _0x4ac402=_0x22d831;return this[_0x4ac402(0x67f)][_0x4ac402(0x88c)](_0x4ac402(0x91f),null);}['getPageJSActions'](_0x5a75f0){const _0x43c9d0=_0x22d831;return this[_0x43c9d0(0x67f)][_0x43c9d0(0x88c)](_0x43c9d0(0x780),{'pageIndex':_0x5a75f0});}[_0x22d831(0x8bd)](_0x33dbb0){const _0x140d51=_0x22d831;return this['messageHandler'][_0x140d51(0x88c)](_0x140d51(0xdd),{'pageIndex':_0x33dbb0});}[_0x22d831(0x234)](){const _0x7a0ee9=_0x22d831;return this['messageHandler'][_0x7a0ee9(0x88c)]('GetOutline',null);}[_0x22d831(0x248)](){const _0xa5cf0c=_0x22d831;return this[_0xa5cf0c(0x67f)][_0xa5cf0c(0x88c)]('GetOptionalContentConfig',null)[_0xa5cf0c(0x22d)](_0x5236aa=>{const _0x1aafea=_0xa5cf0c;return new _0x3f32eb[(_0x1aafea(0x68d))](_0x5236aa);});}[_0x22d831(0x1b0)](){const _0x31e25b=_0x22d831;return this[_0x31e25b(0x67f)][_0x31e25b(0x88c)](_0x31e25b(0x4cf),null);}[_0x22d831(0x79c)](){const _0x5e72db=_0x22d831,_0x4dd84f='GetMetadata',_0x373e5f=this.#methodPromises[_0x5e72db(0x8c4)](_0x4dd84f);if(_0x373e5f)return _0x373e5f;const _0x1ce59c=this['messageHandler'][_0x5e72db(0x88c)](_0x4dd84f,null)[_0x5e72db(0x22d)](_0x4d0db5=>{const _0x235736=_0x5e72db;return{'info':_0x4d0db5[0x0],'metadata':_0x4d0db5[0x1]?new _0x8d02af[(_0x235736(0x6a2))](_0x4d0db5[0x1]):null,'contentDispositionFilename':this[_0x235736(0x60f)]?.[_0x235736(0x5cf)]??null,'contentLength':this[_0x235736(0x60f)]?.[_0x235736(0x434)]??null};});return this.#methodPromises[_0x5e72db(0x98e)](_0x4dd84f,_0x1ce59c),_0x1ce59c;}[_0x22d831(0x49f)](){const _0x4c9502=_0x22d831;return this[_0x4c9502(0x67f)]['sendWithPromise'](_0x4c9502(0x3e7),null);}async['startCleanup'](){const _0x4c2fef=_0x22d831;let _0x442d14=arguments[_0x4c2fef(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:![];if(this['destroyed'])return;await this[_0x4c2fef(0x67f)][_0x4c2fef(0x88c)](_0x4c2fef(0x183),null);for(const _0x42c29a of this.#pageCache['values']()){const _0x2674d9=_0x42c29a['cleanup']();if(!_0x2674d9)throw new Error(_0x4c2fef(0xa07)+_0x42c29a[_0x4c2fef(0x225)]+_0x4c2fef(0x9d4));}this['commonObjs'][_0x4c2fef(0x1ca)](),!_0x442d14&&this['fontLoader']['clear'](),this.#methodPromises['clear'](),this[_0x4c2fef(0x491)][_0x4c2fef(0x256)](!![]);}get['loadingParams'](){const _0x1d676e=_0x22d831,{disableAutoFetch:_0x37a718,enableXfa:_0x14bc1a}=this[_0x1d676e(0x66f)];return(0x0,_0x22b0ce[_0x1d676e(0x51d)])(this,_0x1d676e(0x897),{'disableAutoFetch':_0x37a718,'enableXfa':_0x14bc1a});}}class _0x3cf9da{#objs=Object[_0x22d831(0x77c)](null);#ensureObj(_0x1111ad){const _0x52123c=this.#objs[_0x1111ad];if(_0x52123c)return _0x52123c;return this.#objs[_0x1111ad]={'capability':new _0x22b0ce['PromiseCapability'](),'data':null};}[_0x22d831(0x8c4)](_0x4c7ae5){const _0x257299=_0x22d831;let _0x4117ea=arguments[_0x257299(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:null;if(_0x4117ea){const _0x504093=this.#ensureObj(_0x4c7ae5);return _0x504093['capability'][_0x257299(0x4dd)][_0x257299(0x22d)](()=>_0x4117ea(_0x504093['data'])),null;}const _0x174d36=this.#objs[_0x4c7ae5];if(!_0x174d36?.[_0x257299(0x540)][_0x257299(0x660)])throw new Error(_0x257299(0x26f)+_0x4c7ae5+'.');return _0x174d36[_0x257299(0x41b)];}[_0x22d831(0x373)](_0x3b2c0b){const _0x2a780a=_0x22d831,_0x12419c=this.#objs[_0x3b2c0b];return _0x12419c?.[_0x2a780a(0x540)][_0x2a780a(0x660)]||![];}['resolve'](_0x1569a5){const _0x141370=_0x22d831;let _0x33918b=arguments['length']>0x1&&arguments[0x1]!==undefined?arguments[0x1]:null;const _0x24cc72=this.#ensureObj(_0x1569a5);_0x24cc72[_0x141370(0x41b)]=_0x33918b,_0x24cc72[_0x141370(0x540)][_0x141370(0x442)]();}[_0x22d831(0x1ca)](){const _0x4d58c4=_0x22d831;for(const _0x1bcc16 in this.#objs){const {data:_0x2c8044}=this.#objs[_0x1bcc16];_0x2c8044?.[_0x4d58c4(0x7eb)]?.[_0x4d58c4(0x70e)]();}this.#objs=Object[_0x4d58c4(0x77c)](null);}}class _0x413606{#internalRenderTask=null;constructor(_0x4cec5d){this.#internalRenderTask=_0x4cec5d,this['onContinue']=null;}get['promise'](){const _0x4626a3=_0x22d831;return this.#internalRenderTask[_0x4626a3(0x540)][_0x4626a3(0x4dd)];}[_0x22d831(0x8c6)](){const _0xf8c8ab=_0x22d831;let _0x58c1aa=arguments[_0xf8c8ab(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:0x0;this.#internalRenderTask[_0xf8c8ab(0x8c6)](null,_0x58c1aa);}get['separateAnnots'](){const _0x5d3910=_0x22d831,{separateAnnots:_0x369ecf}=this.#internalRenderTask[_0x5d3910(0x33f)];if(!_0x369ecf)return![];const {annotationCanvasMap:_0x65480c}=this.#internalRenderTask;return _0x369ecf[_0x5d3910(0x72d)]||_0x369ecf['canvas']&&_0x65480c?.[_0x5d3910(0x87a)]>0x0;}}_0x19c6a2['RenderTask']=_0x413606;class _0x2fd724{static #canvasInUse=new WeakSet();constructor(_0x3dff55){const _0x5c122c=_0x22d831;let {callback:_0xd2838b,params:_0x531f27,objs:_0x4ce8d5,commonObjs:_0x2de196,annotationCanvasMap:_0x2d15bf,operatorList:_0x502caa,pageIndex:_0x4d4342,canvasFactory:_0x456f0c,filterFactory:_0x4fdd86,useRequestAnimationFrame:useRequestAnimationFrame=![],pdfBug:pdfBug=![],pageColors:pageColors=null}=_0x3dff55;this[_0x5c122c(0x35c)]=_0xd2838b,this[_0x5c122c(0x22a)]=_0x531f27,this[_0x5c122c(0xdc)]=_0x4ce8d5,this[_0x5c122c(0x53b)]=_0x2de196,this[_0x5c122c(0x368)]=_0x2d15bf,this['operatorListIdx']=null,this['operatorList']=_0x502caa,this['_pageIndex']=_0x4d4342,this[_0x5c122c(0x5db)]=_0x456f0c,this[_0x5c122c(0x491)]=_0x4fdd86,this[_0x5c122c(0x11a)]=pdfBug,this[_0x5c122c(0x61c)]=pageColors,this[_0x5c122c(0x997)]=![],this[_0x5c122c(0x748)]=null,this['graphicsReady']=![],this['_useRequestAnimationFrame']=useRequestAnimationFrame===!![]&&typeof window!==_0x5c122c(0x32c),this[_0x5c122c(0x9b9)]=![],this['capability']=new _0x22b0ce['PromiseCapability'](),this[_0x5c122c(0x7c4)]=new _0x413606(this),this['_cancelBound']=this[_0x5c122c(0x8c6)][_0x5c122c(0x5e8)](this),this[_0x5c122c(0x8ff)]=this[_0x5c122c(0x548)][_0x5c122c(0x5e8)](this),this['_scheduleNextBound']=this[_0x5c122c(0x76b)][_0x5c122c(0x5e8)](this),this[_0x5c122c(0x5b2)]=this[_0x5c122c(0x8c1)]['bind'](this),this[_0x5c122c(0x402)]=_0x531f27['canvasContext'][_0x5c122c(0x75a)];}get[_0x22d831(0x7c8)](){const _0x1c3df5=_0x22d831;return this['capability'][_0x1c3df5(0x4dd)][_0x1c3df5(0x75f)](function(){});}[_0x22d831(0x86d)](_0x4cc642){const _0x3e38b1=_0x22d831;let {transparency:transparency=![],optionalContentConfig:_0x59757c}=_0x4cc642;if(this[_0x3e38b1(0x9b9)])return;if(this['_canvas']){if(_0x2fd724.#canvasInUse[_0x3e38b1(0x373)](this[_0x3e38b1(0x402)]))throw new Error(_0x3e38b1(0x4be)+_0x3e38b1(0x120)+_0x3e38b1(0x51e));_0x2fd724.#canvasInUse[_0x3e38b1(0x156)](this[_0x3e38b1(0x402)]);}this[_0x3e38b1(0x11a)]&&globalThis['StepperManager']?.[_0x3e38b1(0x829)]&&(this[_0x3e38b1(0x414)]=globalThis[_0x3e38b1(0x13c)]['create'](this[_0x3e38b1(0x23c)]),this[_0x3e38b1(0x414)][_0x3e38b1(0x8a1)](this[_0x3e38b1(0x33f)]),this[_0x3e38b1(0x414)][_0x3e38b1(0x2b0)]=this[_0x3e38b1(0x414)][_0x3e38b1(0x7a4)]());const {canvasContext:_0xc863e0,viewport:_0x355e54,transform:_0x1b7d82,background:_0x4d3cb1}=this['params'];this[_0x3e38b1(0x99d)]=new _0xc5f573['CanvasGraphics'](_0xc863e0,this[_0x3e38b1(0x53b)],this['objs'],this[_0x3e38b1(0x5db)],this[_0x3e38b1(0x491)],{'optionalContentConfig':_0x59757c},this[_0x3e38b1(0x368)],this['pageColors']),this[_0x3e38b1(0x99d)][_0x3e38b1(0x5be)]({'transform':_0x1b7d82,'viewport':_0x355e54,'transparency':transparency,'background':_0x4d3cb1}),this[_0x3e38b1(0x853)]=0x0,this['graphicsReady']=!![],this[_0x3e38b1(0x748)]?.();}[_0x22d831(0x8c6)](){const _0x32ef41=_0x22d831;let _0x3d2328=arguments[_0x32ef41(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:null,_0x5109e6=arguments[_0x32ef41(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:0x0;this[_0x32ef41(0x997)]=![],this[_0x32ef41(0x9b9)]=!![],this[_0x32ef41(0x99d)]?.[_0x32ef41(0x279)](),this[_0x32ef41(0x402)]&&_0x2fd724.#canvasInUse[_0x32ef41(0x65f)](this[_0x32ef41(0x402)]),this[_0x32ef41(0x35c)](_0x3d2328||new _0x4c8b78[(_0x32ef41(0x450))](_0x32ef41(0x6de)+(this[_0x32ef41(0x23c)]+0x1),_0x5109e6));}[_0x22d831(0x7c2)](){const _0x4c49eb=_0x22d831;if(!this[_0x4c49eb(0x446)]){this[_0x4c49eb(0x748)]||=this['_continueBound'];return;}this[_0x4c49eb(0x414)]?.[_0x4c49eb(0x1d7)](this[_0x4c49eb(0x33f)]);if(this[_0x4c49eb(0x997)])return;this['_continue']();}['_continue'](){const _0x2146ba=_0x22d831;this['running']=!![];if(this[_0x2146ba(0x9b9)])return;this[_0x2146ba(0x7c4)]['onContinue']?this['task'][_0x2146ba(0x3ff)](this[_0x2146ba(0x44c)]):this[_0x2146ba(0x76b)]();}[_0x22d831(0x76b)](){const _0x42599c=_0x22d831;this[_0x42599c(0x642)]?window[_0x42599c(0x75e)](()=>{const _0x412025=_0x42599c;this['_nextBound']()[_0x412025(0x75f)](this[_0x412025(0x628)]);}):Promise[_0x42599c(0x442)]()['then'](this[_0x42599c(0x5b2)])['catch'](this[_0x42599c(0x628)]);}async[_0x22d831(0x8c1)](){const _0x3d5ea7=_0x22d831;if(this[_0x3d5ea7(0x9b9)])return;this[_0x3d5ea7(0x853)]=this['gfx']['executeOperatorList'](this['operatorList'],this[_0x3d5ea7(0x853)],this[_0x3d5ea7(0x8ff)],this[_0x3d5ea7(0x414)]),this[_0x3d5ea7(0x853)]===this[_0x3d5ea7(0x33f)][_0x3d5ea7(0x20c)]['length']&&(this[_0x3d5ea7(0x997)]=![],this[_0x3d5ea7(0x33f)][_0x3d5ea7(0x8a3)]&&(this[_0x3d5ea7(0x99d)][_0x3d5ea7(0x279)](this[_0x3d5ea7(0x61c)]),this[_0x3d5ea7(0x402)]&&_0x2fd724.#canvasInUse[_0x3d5ea7(0x65f)](this[_0x3d5ea7(0x402)]),this['callback']()));}}const _0x38e26d=_0x22d831(0x623);_0x19c6a2[_0x22d831(0x5b4)]=_0x38e26d;const _0x43f49d='';_0x19c6a2[_0x22d831(0x407)]=_0x43f49d;},(_0x3dae56,_0x59edd0,_0x2b21f1)=>{'use strict';const _0x30c706=a0_0x160d;Object['defineProperty'](_0x59edd0,'__esModule',{'value':!![]}),_0x59edd0[_0x30c706(0x224)]=_0x59edd0[_0x30c706(0x866)]=_0x59edd0[_0x30c706(0x55c)]=void 0x0;var _0x3665c1=_0x2b21f1(0x1),_0x300945=_0x2b21f1(0x85),_0x26d4b5=_0x2b21f1(0x89);const _0x553e22=Object[_0x30c706(0x6bd)]({'map':null,'hash':'','transfers':undefined});_0x59edd0[_0x30c706(0x224)]=_0x553e22;class _0x3a0bbd{#modified=![];#storage=new Map();constructor(){const _0x2fe2bd=_0x30c706;this[_0x2fe2bd(0x132)]=null,this[_0x2fe2bd(0x2b4)]=null,this['onAnnotationEditor']=null;}[_0x30c706(0xde)](_0x436219,_0x4bd998){const _0x1b0f48=_0x30c706,_0x2a7811=this.#storage[_0x1b0f48(0x8c4)](_0x436219);if(_0x2a7811===undefined)return _0x4bd998;return Object[_0x1b0f48(0x9c0)](_0x4bd998,_0x2a7811);}[_0x30c706(0x6ce)](_0x5b0421){const _0x16d018=_0x30c706;return this.#storage[_0x16d018(0x8c4)](_0x5b0421);}[_0x30c706(0x10a)](_0x1d83ce){const _0x56ed22=_0x30c706;this.#storage[_0x56ed22(0x65f)](_0x1d83ce);this.#storage[_0x56ed22(0x87a)]===0x0&&this[_0x56ed22(0x77a)]();if(typeof this[_0x56ed22(0x22e)]===_0x56ed22(0x4ec)){for(const _0x22ca03 of this.#storage[_0x56ed22(0x823)]()){if(_0x22ca03 instanceof _0x300945[_0x56ed22(0x8f0)])return;}this['onAnnotationEditor'](null);}}[_0x30c706(0x699)](_0x393394,_0x5ae49f){const _0x4a979a=_0x30c706,_0x1f49b1=this.#storage[_0x4a979a(0x8c4)](_0x393394);let _0x35d17e=![];if(_0x1f49b1!==undefined)for(const [_0x146792,_0x392417]of Object['entries'](_0x5ae49f)){_0x1f49b1[_0x146792]!==_0x392417&&(_0x35d17e=!![],_0x1f49b1[_0x146792]=_0x392417);}else _0x35d17e=!![],this.#storage[_0x4a979a(0x98e)](_0x393394,_0x5ae49f);_0x35d17e&&this.#setModified(),_0x5ae49f instanceof _0x300945['AnnotationEditor']&&typeof this['onAnnotationEditor']===_0x4a979a(0x4ec)&&this['onAnnotationEditor'](_0x5ae49f[_0x4a979a(0x6ef)][_0x4a979a(0x879)]);}[_0x30c706(0x373)](_0x35553d){return this.#storage['has'](_0x35553d);}[_0x30c706(0x55d)](){const _0x3bffa9=_0x30c706;return this.#storage['size']>0x0?(0x0,_0x3665c1[_0x3bffa9(0x267)])(this.#storage):null;}[_0x30c706(0x24c)](_0x1eea5c){const _0x3f67c4=_0x30c706;for(const [_0x1b6536,_0x4cb3c4]of Object[_0x3f67c4(0x816)](_0x1eea5c)){this['setValue'](_0x1b6536,_0x4cb3c4);}}get[_0x30c706(0x87a)](){const _0x15d3e0=_0x30c706;return this.#storage[_0x15d3e0(0x87a)];}#setModified(){const _0x4ce0b8=_0x30c706;!this.#modified&&(this.#modified=!![],typeof this[_0x4ce0b8(0x132)]===_0x4ce0b8(0x4ec)&&this[_0x4ce0b8(0x132)]());}[_0x30c706(0x77a)](){const _0x44dee8=_0x30c706;this.#modified&&(this.#modified=![],typeof this[_0x44dee8(0x2b4)]===_0x44dee8(0x4ec)&&this[_0x44dee8(0x2b4)]());}get[_0x30c706(0x5f8)](){return new _0x5ceb5a(this);}get[_0x30c706(0x69c)](){const _0x5b6301=_0x30c706;if(this.#storage['size']===0x0)return _0x553e22;const _0x2810a7=new Map(),_0x4fa3f6=new _0x26d4b5[(_0x5b6301(0x54d))](),_0x4139cf=[],_0x50137b=Object['create'](null);let _0x2337c1=![];for(const [_0x55c4f0,_0x588bde]of this.#storage){const _0x2034b0=_0x588bde instanceof _0x300945[_0x5b6301(0x8f0)]?_0x588bde[_0x5b6301(0x65d)](![],_0x50137b):_0x588bde;_0x2034b0&&(_0x2810a7[_0x5b6301(0x98e)](_0x55c4f0,_0x2034b0),_0x4fa3f6[_0x5b6301(0x1b4)](_0x55c4f0+':'+JSON[_0x5b6301(0x22f)](_0x2034b0)),_0x2337c1||=!!_0x2034b0['bitmap']);}if(_0x2337c1)for(const _0x48eb34 of _0x2810a7[_0x5b6301(0x823)]()){_0x48eb34[_0x5b6301(0x7eb)]&&_0x4139cf[_0x5b6301(0x7d6)](_0x48eb34['bitmap']);}return _0x2810a7['size']>0x0?{'map':_0x2810a7,'hash':_0x4fa3f6[_0x5b6301(0x1fa)](),'transfers':_0x4139cf}:_0x553e22;}}_0x59edd0['AnnotationStorage']=_0x3a0bbd;class _0x5ceb5a extends _0x3a0bbd{#serializable;constructor(_0x4bec4e){const _0x4ad35b=_0x30c706;super();const {map:_0x38648a,hash:_0xda4700,transfers:_0x5a6524}=_0x4bec4e[_0x4ad35b(0x69c)],_0x583a77=structuredClone(_0x38648a,null);this.#serializable={'map':_0x583a77,'hash':_0xda4700,'transfers':_0x5a6524};}get[_0x30c706(0x5f8)](){const _0x29b44a=_0x30c706;(0x0,_0x3665c1[_0x29b44a(0x749)])(_0x29b44a(0x2be));}get[_0x30c706(0x69c)](){return this.#serializable;}}_0x59edd0[_0x30c706(0x866)]=_0x5ceb5a;},(_0x55378b,_0x20993a,_0x4f961d)=>{'use strict';const _0x266ba6=a0_0x160d;Object[_0x266ba6(0x430)](_0x20993a,_0x266ba6(0x19a),{'value':!![]}),_0x20993a['AnnotationEditor']=void 0x0;var _0x5ee713=_0x4f961d(0x86),_0x5c49c0=_0x4f961d(0x1);const _0x316d13=0x10;class _0x44ba2b{#keepAspectRatio=![];#boundFocusin=this[_0x266ba6(0x887)][_0x266ba6(0x5e8)](this);#boundFocusout=this[_0x266ba6(0x81d)][_0x266ba6(0x5e8)](this);#hasBeenSelected=![];#isEditing=![];#isInEditMode=![];['_uiManager']=null;#zIndex=_0x44ba2b[_0x266ba6(0x9b3)]++;static ['_colorManager']=new _0x5ee713[(_0x266ba6(0x59e))]();static [_0x266ba6(0x9b3)]=0x1;constructor(_0xadfa27){const _0x40c652=_0x266ba6;this[_0x40c652(0x6ef)]===_0x44ba2b&&(0x0,_0x5c49c0[_0x40c652(0x749)])(_0x40c652(0x4a2));this[_0x40c652(0x4c3)]=_0xadfa27[_0x40c652(0x4c3)],this['id']=_0xadfa27['id'],this['width']=this[_0x40c652(0x999)]=null,this[_0x40c652(0x700)]=_0xadfa27[_0x40c652(0x4c3)][_0x40c652(0x700)],this[_0x40c652(0x499)]=_0xadfa27['name'],this[_0x40c652(0x903)]=null,this[_0x40c652(0x5e4)]=_0xadfa27[_0x40c652(0x294)],this[_0x40c652(0x66b)]=null;const {rotation:_0xbb4e3b,rawDims:{pageWidth:_0x29c0f5,pageHeight:_0x333d2f,pageX:_0x4d1c60,pageY:_0x11a19d}}=this[_0x40c652(0x4c3)][_0x40c652(0x502)];this[_0x40c652(0x7af)]=_0xbb4e3b,this[_0x40c652(0x1f3)]=(0x168+_0xbb4e3b-this[_0x40c652(0x5e4)][_0x40c652(0x614)]['rotation'])%0x168,this['pageDimensions']=[_0x29c0f5,_0x333d2f],this[_0x40c652(0x485)]=[_0x4d1c60,_0x11a19d];const [_0x3bcad1,_0x382839]=this['parentDimensions'];this['x']=_0xadfa27['x']/_0x3bcad1,this['y']=_0xadfa27['y']/_0x382839,this[_0x40c652(0x9a7)]=![],this[_0x40c652(0x2f0)]=![];}static get['_defaultLineColor'](){const _0x3d4791=_0x266ba6;return(0x0,_0x5c49c0[_0x3d4791(0x51d)])(this,_0x3d4791(0x350),this[_0x3d4791(0x80b)][_0x3d4791(0x295)](_0x3d4791(0x819)));}static[_0x266ba6(0x578)](_0x474b96){const _0x1f5f78=_0x266ba6,_0x1f28ed=new _0x5e912a({'id':_0x474b96[_0x1f5f78(0x4c3)][_0x1f5f78(0x260)](),'parent':_0x474b96[_0x1f5f78(0x4c3)],'uiManager':_0x474b96[_0x1f5f78(0x5e4)]});_0x1f28ed[_0x1f5f78(0x66b)]=_0x474b96[_0x1f5f78(0x66b)],_0x1f28ed['deleted']=!![],_0x1f28ed['_uiManager'][_0x1f5f78(0x7e5)](_0x1f28ed);}static[_0x266ba6(0x86f)](_0x423db5){}static[_0x266ba6(0x49d)](_0x9fc1f1,_0x12efd1){}static get['defaultPropertiesToUpdate'](){return[];}get['propertiesToUpdate'](){return[];}[_0x266ba6(0x72e)](_0x5943b2){const _0x3678c6=_0x266ba6;this[_0x3678c6(0x5e4)][_0x3678c6(0x72e)](_0x5943b2);}get[_0x266ba6(0x877)](){const _0x23545b=_0x266ba6;return this['_uiManager'][_0x23545b(0x877)];}[_0x266ba6(0x34b)](){const _0xbe040a=_0x266ba6;this[_0xbe040a(0x903)][_0xbe040a(0x498)][_0xbe040a(0x177)]=0x0;}[_0x266ba6(0x532)](){const _0xf6ae3a=_0x266ba6;this[_0xf6ae3a(0x903)][_0xf6ae3a(0x498)][_0xf6ae3a(0x177)]=this.#zIndex;}[_0x266ba6(0x3fd)](_0x337952){const _0x59201f=_0x266ba6;_0x337952!==null&&(this['pageIndex']=_0x337952[_0x59201f(0x700)],this[_0x59201f(0x37f)]=_0x337952['pageDimensions']),this[_0x59201f(0x4c3)]=_0x337952;}[_0x266ba6(0x887)](_0x43d30a){const _0x29c82f=_0x266ba6;!this.#hasBeenSelected?this['parent'][_0x29c82f(0x18e)](this):this.#hasBeenSelected=![];}['focusout'](_0x1f3938){const _0x724bb2=_0x266ba6;if(!this['isAttachedToDOM'])return;const _0x23d02a=_0x1f3938[_0x724bb2(0x7f5)];if(_0x23d02a?.[_0x724bb2(0x6d9)]('#'+this['id']))return;_0x1f3938[_0x724bb2(0x9af)](),!this['parent']?.[_0x724bb2(0x16e)]&&this['commitOrRemove']();}[_0x266ba6(0x69b)](){const _0x10d3e3=_0x266ba6;this[_0x10d3e3(0x480)]()?this[_0x10d3e3(0x10a)]():this[_0x10d3e3(0x3b3)]();}['commit'](){const _0x30ca58=_0x266ba6;this[_0x30ca58(0x7e5)]();}[_0x266ba6(0x7e5)](){const _0xd372a3=_0x266ba6;this[_0xd372a3(0x5e4)][_0xd372a3(0x7e5)](this);}[_0x266ba6(0x6e0)](_0xfac57b){const _0x45b3fd=_0x266ba6,_0xf478fc=this[_0x45b3fd(0x4c3)][_0x45b3fd(0x903)][_0x45b3fd(0x16d)]();this[_0x45b3fd(0x7f3)]=_0xfac57b[_0x45b3fd(0x19b)]-_0xf478fc['x'],this[_0x45b3fd(0x469)]=_0xfac57b['clientY']-_0xf478fc['y'],_0xfac57b[_0x45b3fd(0x481)][_0x45b3fd(0x5cb)](_0x45b3fd(0x813),this['id']),_0xfac57b[_0x45b3fd(0x481)][_0x45b3fd(0x6d7)]=_0x45b3fd(0x91e);}[_0x266ba6(0x912)](_0x125bf1,_0x836764,_0x5a6890,_0x5c98e8){const _0x11639a=_0x266ba6,[_0x3acf15,_0x1ee8a6]=this['parentDimensions'];[_0x5a6890,_0x5c98e8]=this[_0x11639a(0x872)](_0x5a6890,_0x5c98e8),this['x']=(_0x125bf1+_0x5a6890)/_0x3acf15,this['y']=(_0x836764+_0x5c98e8)/_0x1ee8a6,this[_0x11639a(0x903)][_0x11639a(0x498)][_0x11639a(0x4fd)]=0x64*this['x']+'%',this[_0x11639a(0x903)][_0x11639a(0x498)][_0x11639a(0x12f)]=0x64*this['y']+'%';}[_0x266ba6(0x18d)](_0x1d5bf2,_0x3c677c){const _0x574821=_0x266ba6,[_0x2e6cd2,_0x44762c]=this[_0x574821(0x956)];[_0x1d5bf2,_0x3c677c]=this[_0x574821(0x872)](_0x1d5bf2,_0x3c677c),this['x']+=_0x1d5bf2/_0x2e6cd2,this['y']+=_0x3c677c/_0x44762c,this[_0x574821(0x903)][_0x574821(0x498)]['left']=0x64*this['x']+'%',this['div'][_0x574821(0x498)]['top']=0x64*this['y']+'%';}[_0x266ba6(0x872)](_0x19498c,_0x1f6a5a){const _0x4bc5b9=_0x266ba6;switch(this[_0x4bc5b9(0x25e)]){case 0x5a:return[_0x1f6a5a,-_0x19498c];case 0xb4:return[-_0x19498c,-_0x1f6a5a];case 0x10e:return[-_0x1f6a5a,_0x19498c];default:return[_0x19498c,_0x1f6a5a];}}get[_0x266ba6(0x54a)](){const _0x50a712=_0x266ba6;return this['_uiManager'][_0x50a712(0x614)][_0x50a712(0x11f)];}get['parentRotation'](){const _0x2d37f7=_0x266ba6;return(this[_0x2d37f7(0x5e4)][_0x2d37f7(0x614)][_0x2d37f7(0x7af)]+this[_0x2d37f7(0x1f3)])%0x168;}get[_0x266ba6(0x956)](){const _0x15d1d9=_0x266ba6,{realScale:_0x3b3bd0}=this[_0x15d1d9(0x5e4)][_0x15d1d9(0x614)],[_0x47135e,_0x238477]=this[_0x15d1d9(0x37f)];return[_0x47135e*_0x3b3bd0,_0x238477*_0x3b3bd0];}['setDims'](_0x5bcdb0,_0x11aef5){const _0x4c71c1=_0x266ba6,[_0x33ed9d,_0x110788]=this[_0x4c71c1(0x956)];this[_0x4c71c1(0x903)][_0x4c71c1(0x498)][_0x4c71c1(0x98b)]=0x64*_0x5bcdb0/_0x33ed9d+'%',!this.#keepAspectRatio&&(this[_0x4c71c1(0x903)]['style'][_0x4c71c1(0x999)]=0x64*_0x11aef5/_0x110788+'%');}[_0x266ba6(0x8d4)](){const _0x535a99=_0x266ba6,{style:_0x15dd93}=this[_0x535a99(0x903)],{height:_0x58e56c,width:_0x1a57f5}=_0x15dd93,_0x22d42b=_0x1a57f5['endsWith']('%'),_0x2f3460=!this.#keepAspectRatio&&_0x58e56c[_0x535a99(0x7ac)]('%');if(_0x22d42b&&_0x2f3460)return;const [_0x303c9b,_0x43a4b4]=this[_0x535a99(0x956)];!_0x22d42b&&(_0x15dd93['width']=0x64*parseFloat(_0x1a57f5)/_0x303c9b+'%'),!this.#keepAspectRatio&&!_0x2f3460&&(_0x15dd93[_0x535a99(0x999)]=0x64*parseFloat(_0x58e56c)/_0x43a4b4+'%');}[_0x266ba6(0x76e)](){return[0x0,0x0];}[_0x266ba6(0x6c8)](){const _0x43938f=_0x266ba6;this[_0x43938f(0x903)]=document[_0x43938f(0x400)](_0x43938f(0x903)),this['div'][_0x43938f(0x636)](_0x43938f(0x60a),(0x168-this[_0x43938f(0x7af)])%0x168),this[_0x43938f(0x903)][_0x43938f(0x52b)]=this[_0x43938f(0x499)],this[_0x43938f(0x903)][_0x43938f(0x636)]('id',this['id']),this[_0x43938f(0x903)][_0x43938f(0x636)](_0x43938f(0x646),0x0),this[_0x43938f(0x532)](),this[_0x43938f(0x903)]['addEventListener'](_0x43938f(0x887),this.#boundFocusin),this[_0x43938f(0x903)][_0x43938f(0x5cc)]('focusout',this.#boundFocusout);const [_0x53de90,_0x5214c3]=this['getInitialTranslation']();return this[_0x43938f(0x18d)](_0x53de90,_0x5214c3),(0x0,_0x5ee713[_0x43938f(0x6c1)])(this,this['div'],['dragstart',_0x43938f(0x546)]),this['div'];}[_0x266ba6(0x546)](_0x1f3428){const _0x5455b7=_0x266ba6,{isMac:_0x7913}=_0x5c49c0[_0x5455b7(0x7a8)]['platform'];if(_0x1f3428[_0x5455b7(0x831)]!==0x0||_0x1f3428[_0x5455b7(0x8ca)]&&_0x7913){_0x1f3428[_0x5455b7(0x9af)]();return;}_0x1f3428['ctrlKey']&&!_0x7913||_0x1f3428[_0x5455b7(0x5a3)]||_0x1f3428[_0x5455b7(0x60b)]&&_0x7913?this[_0x5455b7(0x4c3)][_0x5455b7(0x3f3)](this):this[_0x5455b7(0x4c3)][_0x5455b7(0x18e)](this),this.#hasBeenSelected=!![];}[_0x266ba6(0x93f)](_0x4c8fdc,_0x164df7){const _0x3ab314=_0x266ba6,_0x3b077f=this['parentScale'],[_0x5a88ec,_0x50b745]=this[_0x3ab314(0x37f)],[_0x2257c2,_0x9facb7]=this[_0x3ab314(0x485)],_0x190fa8=_0x4c8fdc/_0x3b077f,_0x1a961d=_0x164df7/_0x3b077f,_0x404525=this['x']*_0x5a88ec,_0x41608e=this['y']*_0x50b745,_0xdbf624=this['width']*_0x5a88ec,_0xefe41d=this[_0x3ab314(0x999)]*_0x50b745;switch(this['rotation']){case 0x0:return[_0x404525+_0x190fa8+_0x2257c2,_0x50b745-_0x41608e-_0x1a961d-_0xefe41d+_0x9facb7,_0x404525+_0x190fa8+_0xdbf624+_0x2257c2,_0x50b745-_0x41608e-_0x1a961d+_0x9facb7];case 0x5a:return[_0x404525+_0x1a961d+_0x2257c2,_0x50b745-_0x41608e+_0x190fa8+_0x9facb7,_0x404525+_0x1a961d+_0xefe41d+_0x2257c2,_0x50b745-_0x41608e+_0x190fa8+_0xdbf624+_0x9facb7];case 0xb4:return[_0x404525-_0x190fa8-_0xdbf624+_0x2257c2,_0x50b745-_0x41608e+_0x1a961d+_0x9facb7,_0x404525-_0x190fa8+_0x2257c2,_0x50b745-_0x41608e+_0x1a961d+_0xefe41d+_0x9facb7];case 0x10e:return[_0x404525-_0x1a961d-_0xefe41d+_0x2257c2,_0x50b745-_0x41608e-_0x190fa8-_0xdbf624+_0x9facb7,_0x404525-_0x1a961d+_0x2257c2,_0x50b745-_0x41608e-_0x190fa8+_0x9facb7];default:throw new Error(_0x3ab314(0x21f));}}[_0x266ba6(0x6fe)](_0x4d483d,_0xe63fe1){const _0x36165b=_0x266ba6,[_0xf75e2d,_0xa0bb53,_0xf368b9,_0x4124bd]=_0x4d483d,_0x105d04=_0xf368b9-_0xf75e2d,_0x6dc415=_0x4124bd-_0xa0bb53;switch(this[_0x36165b(0x7af)]){case 0x0:return[_0xf75e2d,_0xe63fe1-_0x4124bd,_0x105d04,_0x6dc415];case 0x5a:return[_0xf75e2d,_0xe63fe1-_0xa0bb53,_0x6dc415,_0x105d04];case 0xb4:return[_0xf368b9,_0xe63fe1-_0xa0bb53,_0x105d04,_0x6dc415];case 0x10e:return[_0xf368b9,_0xe63fe1-_0x4124bd,_0x6dc415,_0x105d04];default:throw new Error('Invalid\x20rotation');}}[_0x266ba6(0x130)](){}['isEmpty'](){return![];}[_0x266ba6(0x8ce)](){this.#isInEditMode=!![];}[_0x266ba6(0x3ac)](){this.#isInEditMode=![];}[_0x266ba6(0x761)](){return this.#isInEditMode;}[_0x266ba6(0x729)](){return![];}[_0x266ba6(0x186)](){const _0x215812=_0x266ba6;return this['div']&&!this[_0x215812(0x9a7)];}[_0x266ba6(0x9d3)](){const _0x2fd0fa=_0x266ba6;this['div']?.[_0x2fd0fa(0x5cc)](_0x2fd0fa(0x887),this.#boundFocusin),this['div']?.[_0x2fd0fa(0x5cc)]('focusout',this.#boundFocusout);}[_0x266ba6(0x65d)](){const _0x11ca4e=_0x266ba6;let _0x510a60=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:![],_0xbb8044=arguments[_0x11ca4e(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:null;(0x0,_0x5c49c0[_0x11ca4e(0x749)])(_0x11ca4e(0x8e9));}static[_0x266ba6(0x7a3)](_0x3c5a74,_0x3473bf,_0x1b3ac1){const _0x10b654=_0x266ba6,_0x3c8814=new this[(_0x10b654(0x821))][(_0x10b654(0x6ef))]({'parent':_0x3473bf,'id':_0x3473bf['getNextId'](),'uiManager':_0x1b3ac1});_0x3c8814[_0x10b654(0x7af)]=_0x3c5a74[_0x10b654(0x7af)];const [_0x51cd67,_0x85ab0b]=_0x3c8814[_0x10b654(0x37f)],[_0x55e62e,_0x25c297,_0x39a871,_0x398965]=_0x3c8814['getRectInCurrentCoords'](_0x3c5a74['rect'],_0x85ab0b);return _0x3c8814['x']=_0x55e62e/_0x51cd67,_0x3c8814['y']=_0x25c297/_0x85ab0b,_0x3c8814['width']=_0x39a871/_0x51cd67,_0x3c8814[_0x10b654(0x999)]=_0x398965/_0x85ab0b,_0x3c8814;}[_0x266ba6(0x10a)](){const _0x3b677a=_0x266ba6;this[_0x3b677a(0x903)][_0x3b677a(0x1c0)]('focusin',this.#boundFocusin),this[_0x3b677a(0x903)][_0x3b677a(0x1c0)](_0x3b677a(0x81d),this.#boundFocusout),!this['isEmpty']()&&this[_0x3b677a(0x3b3)](),this[_0x3b677a(0x4c3)]?this[_0x3b677a(0x4c3)][_0x3b677a(0x10a)](this):this[_0x3b677a(0x5e4)]['removeEditor'](this);}[_0x266ba6(0x243)](){const _0x2d74b6=_0x266ba6;this[_0x2d74b6(0x903)]?.[_0x2d74b6(0x2bc)][_0x2d74b6(0x156)](_0x2d74b6(0x3aa));}[_0x266ba6(0x261)](){const _0x26a831=_0x266ba6;this[_0x26a831(0x903)]?.[_0x26a831(0x2bc)][_0x26a831(0x10a)](_0x26a831(0x3aa));}[_0x266ba6(0x72f)](_0x219fd4,_0x39092b){}[_0x266ba6(0x8d0)](){}[_0x266ba6(0x214)](){}['enterInEditMode'](){}get[_0x266ba6(0x1fe)](){return this['div'];}get[_0x266ba6(0x844)](){return this.#isEditing;}set['isEditing'](_0x2d6331){const _0x1b6230=_0x266ba6;this.#isEditing=_0x2d6331;if(!this[_0x1b6230(0x4c3)])return;_0x2d6331?(this[_0x1b6230(0x4c3)]['setSelected'](this),this[_0x1b6230(0x4c3)][_0x1b6230(0x275)](this)):this[_0x1b6230(0x4c3)][_0x1b6230(0x275)](null);}[_0x266ba6(0x231)](_0x38db58,_0x16aea2){const _0x15a62a=_0x266ba6;this.#keepAspectRatio=!![];const _0x3fc00c=_0x38db58/_0x16aea2,{style:_0x546918}=this['div'];_0x546918[_0x15a62a(0x345)]=_0x3fc00c,_0x546918[_0x15a62a(0x999)]=_0x15a62a(0x464),_0x3fc00c>=0x1?(_0x546918['minHeight']=_0x316d13+'px',_0x546918['minWidth']=Math[_0x15a62a(0x7df)](_0x3fc00c*_0x316d13)+'px'):(_0x546918[_0x15a62a(0x885)]=_0x316d13+'px',_0x546918[_0x15a62a(0x843)]=Math[_0x15a62a(0x7df)](_0x316d13/_0x3fc00c)+'px');}static get[_0x266ba6(0x527)](){return _0x316d13;}}_0x20993a[_0x266ba6(0x8f0)]=_0x44ba2b;class _0x5e912a extends _0x44ba2b{constructor(_0x585dc7){const _0x4083a7=_0x266ba6;super(_0x585dc7),this['annotationElementId']=_0x585dc7[_0x4083a7(0x66b)],this['deleted']=!![];}['serialize'](){const _0x645ef0=_0x266ba6;return{'id':this[_0x645ef0(0x66b)],'deleted':!![],'pageIndex':this[_0x645ef0(0x700)]};}}},(_0x51996c,_0xed6c37,_0x592c7c)=>{'use strict';const _0x180be7=a0_0x160d;Object[_0x180be7(0x430)](_0xed6c37,_0x180be7(0x19a),{'value':!![]}),_0xed6c37[_0x180be7(0x686)]=_0xed6c37[_0x180be7(0x5c7)]=_0xed6c37[_0x180be7(0x59e)]=_0xed6c37['AnnotationEditorUIManager']=void 0x0,_0xed6c37['bindEvents']=_0x257029,_0xed6c37[_0x180be7(0x171)]=_0x259552;var _0x5d2ee8=_0x592c7c(0x1),_0x509d17=_0x592c7c(0x87);function _0x257029(_0x77969,_0x47124e,_0x55bbd7){const _0x428d72=_0x180be7;for(const _0x1f8a86 of _0x55bbd7){_0x47124e[_0x428d72(0x5cc)](_0x1f8a86,_0x77969[_0x1f8a86]['bind'](_0x77969));}}function _0x259552(_0x5291c1){const _0x1b27d4=_0x180be7;return Math[_0x1b27d4(0x7df)](Math['min'](0xff,Math[_0x1b27d4(0x78d)](0x1,0xff*_0x5291c1)))[_0x1b27d4(0x83f)](0x10)['padStart'](0x2,'0');}class _0x9b249{#id=0x0;['getId'](){return''+_0x5d2ee8['AnnotationEditorPrefix']+this.#id++;}}class _0x2aed16{#baseId=(0x0,_0x5d2ee8[_0x180be7(0x77d)])();#id=0x0;#cache=null;async #get(_0x4c9937,_0xbd70ce){const _0x2199eb=_0x180be7;this.#cache||=new Map();let _0x4e64d8=this.#cache['get'](_0x4c9937);if(_0x4e64d8===null)return null;if(_0x4e64d8?.['bitmap'])return _0x4e64d8[_0x2199eb(0x335)]+=0x1,_0x4e64d8;try{_0x4e64d8||={'bitmap':null,'id':_0x2199eb(0x3c7)+this.#baseId+'_'+this.#id++,'refCounter':0x0,'isSvg':![]};let _0x55e240;if(typeof _0xbd70ce==='string'){_0x4e64d8[_0x2199eb(0x6a1)]=_0xbd70ce;const _0xac04aa=await fetch(_0xbd70ce);if(!_0xac04aa['ok'])throw new Error(_0xac04aa[_0x2199eb(0x7ad)]);_0x55e240=await _0xac04aa[_0x2199eb(0x429)]();}else _0x55e240=_0x4e64d8[_0x2199eb(0x151)]=_0xbd70ce;if(_0x55e240[_0x2199eb(0x9fd)]===_0x2199eb(0x737)){const _0xde4c3d=new FileReader(),_0x550190=new Promise(_0x289a2a=>{const _0x1c3331=_0x2199eb;_0xde4c3d[_0x1c3331(0x638)]=()=>{const _0x323f42=_0x1c3331;_0x4e64d8[_0x323f42(0x7da)]=_0xde4c3d['result'],_0x289a2a();};});_0xde4c3d[_0x2199eb(0x72a)](_0x55e240);const _0x590167=URL[_0x2199eb(0x9c1)](_0x55e240);_0x55e240=new Image();const _0x313283=new Promise(_0x20b1ce=>{const _0x388354=_0x2199eb;_0x55e240[_0x388354(0x638)]=()=>{const _0xb05fc5=_0x388354;URL[_0xb05fc5(0x87f)](_0x590167),_0x4e64d8['bitmap']=_0x55e240,_0x4e64d8['isSvg']=!![],_0x20b1ce();};});_0x55e240['src']=_0x590167,await Promise[_0x2199eb(0x586)]([_0x313283,_0x550190]);}else _0x4e64d8[_0x2199eb(0x7eb)]=await createImageBitmap(_0x55e240);_0x4e64d8[_0x2199eb(0x335)]=0x1;}catch(_0x25733c){console[_0x2199eb(0x9e3)](_0x25733c),_0x4e64d8=null;}return this.#cache['set'](_0x4c9937,_0x4e64d8),_0x4e64d8&&this.#cache[_0x2199eb(0x98e)](_0x4e64d8['id'],_0x4e64d8),_0x4e64d8;}async[_0x180be7(0x682)](_0x32364d){const {lastModified:_0x5d2e68,name:_0x23c14d,size:_0x183dbd,type:_0x5d0710}=_0x32364d;return this.#get(_0x5d2e68+'_'+_0x23c14d+'_'+_0x183dbd+'_'+_0x5d0710,_0x32364d);}async['getFromUrl'](_0x34da07){return this.#get(_0x34da07,_0x34da07);}async[_0x180be7(0x3d6)](_0x2bf375){const _0x37c832=_0x180be7;this.#cache||=new Map();const _0x3576bc=this.#cache[_0x37c832(0x8c4)](_0x2bf375);if(!_0x3576bc)return null;if(_0x3576bc[_0x37c832(0x7eb)])return _0x3576bc[_0x37c832(0x335)]+=0x1,_0x3576bc;if(_0x3576bc[_0x37c832(0x151)])return this[_0x37c832(0x682)](_0x3576bc[_0x37c832(0x151)]);return this[_0x37c832(0x2e3)](_0x3576bc[_0x37c832(0x6a1)]);}[_0x180be7(0x71e)](_0x18399e){const _0xeec299=_0x180be7,_0x3d43a0=this.#cache[_0xeec299(0x8c4)](_0x18399e);if(!_0x3d43a0?.[_0xeec299(0x616)])return null;return _0x3d43a0[_0xeec299(0x7da)];}[_0x180be7(0x376)](_0x2ad7cc){const _0x5d123f=_0x180be7;this.#cache||=new Map();const _0x3a1d31=this.#cache['get'](_0x2ad7cc);if(!_0x3a1d31)return;_0x3a1d31[_0x5d123f(0x335)]-=0x1;if(_0x3a1d31[_0x5d123f(0x335)]!==0x0)return;_0x3a1d31[_0x5d123f(0x7eb)]=null;}[_0x180be7(0x4ee)](_0x4945c1){return _0x4945c1['startsWith']('image_'+this.#baseId+'_');}}class _0x9f5b0b{#commands=[];#locked=![];#maxSize;#position=-0x1;constructor(){const _0xbfe422=_0x180be7;let _0x16977e=arguments[_0xbfe422(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:0x80;this.#maxSize=_0x16977e;}['add'](_0x8e7730){const _0xab5b46=_0x180be7;let {cmd:_0x277a55,undo:_0x317354,mustExec:_0x296212,type:type=NaN,overwriteIfSameType:overwriteIfSameType=![],keepUndo:keepUndo=![]}=_0x8e7730;_0x296212&&_0x277a55();if(this.#locked)return;const _0x560095={'cmd':_0x277a55,'undo':_0x317354,'type':type};if(this.#position===-0x1){this.#commands[_0xab5b46(0x557)]>0x0&&(this.#commands[_0xab5b46(0x557)]=0x0);this.#position=0x0,this.#commands[_0xab5b46(0x7d6)](_0x560095);return;}if(overwriteIfSameType&&this.#commands[this.#position][_0xab5b46(0x9fd)]===type){keepUndo&&(_0x560095[_0xab5b46(0x457)]=this.#commands[this.#position]['undo']);this.#commands[this.#position]=_0x560095;return;}const _0x417d2a=this.#position+0x1;_0x417d2a===this.#maxSize?this.#commands[_0xab5b46(0x397)](0x0,0x1):(this.#position=_0x417d2a,_0x417d2a<this.#commands[_0xab5b46(0x557)]&&this.#commands[_0xab5b46(0x397)](_0x417d2a)),this.#commands['push'](_0x560095);}[_0x180be7(0x457)](){const _0x4bf4a2=_0x180be7;if(this.#position===-0x1)return;this.#locked=!![],this.#commands[this.#position][_0x4bf4a2(0x457)](),this.#locked=![],this.#position-=0x1;}['redo'](){const _0x31a27e=_0x180be7;this.#position<this.#commands[_0x31a27e(0x557)]-0x1&&(this.#position+=0x1,this.#locked=!![],this.#commands[this.#position][_0x31a27e(0x382)](),this.#locked=![]);}[_0x180be7(0x6ae)](){return this.#position!==-0x1;}['hasSomethingToRedo'](){const _0x27ab4c=_0x180be7;return this.#position<this.#commands[_0x27ab4c(0x557)]-0x1;}[_0x180be7(0x256)](){this.#commands=null;}}_0xed6c37[_0x180be7(0x5c7)]=_0x9f5b0b;class _0x25edc6{constructor(_0x3cd99c){const _0x7754b9=_0x180be7;this[_0x7754b9(0x948)]=[],this[_0x7754b9(0x7f9)]=new Map(),this[_0x7754b9(0x2f9)]=new Set();const {isMac:_0x20c38f}=_0x5d2ee8[_0x7754b9(0x7a8)][_0x7754b9(0x5e2)];for(const [_0x329850,_0x1d0b49,_0x1cfd24=![]]of _0x3cd99c){for(const _0x4e0f6b of _0x329850){const _0x87453=_0x4e0f6b[_0x7754b9(0x2aa)](_0x7754b9(0xf9));if(_0x20c38f&&_0x87453)this[_0x7754b9(0x7f9)]['set'](_0x4e0f6b['slice'](0x4),{'callback':_0x1d0b49,'bubbles':_0x1cfd24}),this['allKeys'][_0x7754b9(0x156)](_0x4e0f6b[_0x7754b9(0x6db)]('+')['at'](-0x1));else!_0x20c38f&&!_0x87453&&(this['callbacks']['set'](_0x4e0f6b,{'callback':_0x1d0b49,'bubbles':_0x1cfd24}),this[_0x7754b9(0x2f9)][_0x7754b9(0x156)](_0x4e0f6b['split']('+')['at'](-0x1)));}}}#serialize(_0x427702){const _0x4920c7=_0x180be7;_0x427702[_0x4920c7(0x8e1)]&&this[_0x4920c7(0x948)][_0x4920c7(0x7d6)]('alt');_0x427702[_0x4920c7(0x8ca)]&&this[_0x4920c7(0x948)][_0x4920c7(0x7d6)](_0x4920c7(0x57c));_0x427702[_0x4920c7(0x60b)]&&this[_0x4920c7(0x948)][_0x4920c7(0x7d6)](_0x4920c7(0x643));_0x427702[_0x4920c7(0x5a3)]&&this[_0x4920c7(0x948)][_0x4920c7(0x7d6)]('shift');this[_0x4920c7(0x948)][_0x4920c7(0x7d6)](_0x427702[_0x4920c7(0x725)]);const _0x674fe8=this[_0x4920c7(0x948)][_0x4920c7(0x334)]('+');return this[_0x4920c7(0x948)][_0x4920c7(0x557)]=0x0,_0x674fe8;}[_0x180be7(0x249)](_0x10dffd,_0x4e92a7){const _0x1afc2a=_0x180be7;if(!this[_0x1afc2a(0x2f9)][_0x1afc2a(0x373)](_0x4e92a7[_0x1afc2a(0x725)]))return;const _0x3ef399=this[_0x1afc2a(0x7f9)]['get'](this.#serialize(_0x4e92a7));if(!_0x3ef399)return;const {callback:_0x5d338d,bubbles:_0x5ca13c}=_0x3ef399;_0x5d338d['bind'](_0x10dffd)(),!_0x5ca13c&&(_0x4e92a7[_0x1afc2a(0x1ab)](),_0x4e92a7[_0x1afc2a(0x9af)]());}}_0xed6c37[_0x180be7(0x686)]=_0x25edc6;class _0x91f042{static ['_colorsMapping']=new Map([[_0x180be7(0x819),[0x0,0x0,0x0]],[_0x180be7(0x582),[0xff,0xff,0xff]]]);get['_colors'](){const _0x27ae9d=_0x180be7,_0xfd699f=new Map([['CanvasText',null],['Canvas',null]]);return(0x0,_0x509d17[_0x27ae9d(0x52d)])(_0xfd699f),(0x0,_0x5d2ee8[_0x27ae9d(0x51d)])(this,_0x27ae9d(0x2e1),_0xfd699f);}[_0x180be7(0x836)](_0x1684d9){const _0x47d660=_0x180be7,_0x54d550=(0x0,_0x509d17['getRGB'])(_0x1684d9);if(!window[_0x47d660(0x7de)](_0x47d660(0x7cf))['matches'])return _0x54d550;for(const [_0x95cdc5,_0x556f52]of this[_0x47d660(0x2e1)]){if(_0x556f52[_0x47d660(0x1ff)]((_0x5af090,_0x226ef8)=>_0x5af090===_0x54d550[_0x226ef8]))return _0x91f042[_0x47d660(0x319)][_0x47d660(0x8c4)](_0x95cdc5);}return _0x54d550;}[_0x180be7(0x295)](_0x4f0136){const _0x1664fd=_0x180be7,_0x37e954=this[_0x1664fd(0x2e1)][_0x1664fd(0x8c4)](_0x4f0136);if(!_0x37e954)return _0x4f0136;return _0x5d2ee8['Util'][_0x1664fd(0x86a)](..._0x37e954);}}_0xed6c37['ColorManager']=_0x91f042;class _0x3d6b94{#activeEditor=null;#allEditors=new Map();#allLayers=new Map();#annotationStorage=null;#commandManager=new _0x9f5b0b();#currentPageIndex=0x0;#deletedAnnotationsElementIds=new Set();#editorTypes=null;#editorsToRescale=new Set();#eventBus=null;#filterFactory=null;#idManager=new _0x9b249();#isEnabled=![];#mode=_0x5d2ee8[_0x180be7(0x9a6)][_0x180be7(0x9f7)];#selectedEditors=new Set();#pageColors=null;#boundCopy=this[_0x180be7(0x602)][_0x180be7(0x5e8)](this);#boundCut=this[_0x180be7(0x13a)]['bind'](this);#boundPaste=this[_0x180be7(0x947)][_0x180be7(0x5e8)](this);#boundKeydown=this['keydown'][_0x180be7(0x5e8)](this);#boundOnEditingAction=this['onEditingAction'][_0x180be7(0x5e8)](this);#boundOnPageChanging=this[_0x180be7(0x67e)]['bind'](this);#boundOnScaleChanging=this[_0x180be7(0x433)]['bind'](this);#boundOnRotationChanging=this['onRotationChanging']['bind'](this);#previousStates={'isEditing':![],'isEmpty':!![],'hasSomethingToUndo':![],'hasSomethingToRedo':![],'hasSelectedEditor':![]};#container=null;static get[_0x180be7(0x76a)](){const _0x2fb760=_0x180be7;return(0x0,_0x5d2ee8[_0x2fb760(0x51d)])(this,_0x2fb760(0x76a),new _0x25edc6([[['ctrl+a',_0x2fb760(0x11c)],_0x3d6b94[_0x2fb760(0x821)][_0x2fb760(0x60d)]],[['ctrl+z',_0x2fb760(0x1dc)],_0x3d6b94['prototype'][_0x2fb760(0x457)]],[[_0x2fb760(0x6e1),'ctrl+shift+Z',_0x2fb760(0x657)],_0x3d6b94[_0x2fb760(0x821)]['redo']],[['Backspace',_0x2fb760(0x21b),'ctrl+Backspace',_0x2fb760(0x945),'mac+Backspace',_0x2fb760(0x4f9),_0x2fb760(0x318),'Delete','ctrl+Delete',_0x2fb760(0x9f9)],_0x3d6b94[_0x2fb760(0x821)]['delete']],[[_0x2fb760(0x508),'mac+Escape'],_0x3d6b94[_0x2fb760(0x821)][_0x2fb760(0x361)]]]));}constructor(_0x37d950,_0x822bc1,_0x1ab389,_0xe515b6){const _0x47e8e4=_0x180be7;this.#container=_0x37d950,this.#eventBus=_0x822bc1,this.#eventBus['_on']('editingaction',this.#boundOnEditingAction),this.#eventBus[_0x47e8e4(0x40b)](_0x47e8e4(0x4fb),this.#boundOnPageChanging),this.#eventBus[_0x47e8e4(0x40b)](_0x47e8e4(0x584),this.#boundOnScaleChanging),this.#eventBus[_0x47e8e4(0x40b)](_0x47e8e4(0x93d),this.#boundOnRotationChanging),this.#annotationStorage=_0x1ab389[_0x47e8e4(0x5bf)],this.#filterFactory=_0x1ab389[_0x47e8e4(0x491)],this.#pageColors=_0xe515b6,this[_0x47e8e4(0x614)]={'realScale':_0x509d17[_0x47e8e4(0x705)][_0x47e8e4(0x9aa)],'rotation':0x0};}[_0x180be7(0x256)](){const _0xd3d7c6=_0x180be7;this.#removeKeyboardManager(),this.#eventBus[_0xd3d7c6(0x79a)](_0xd3d7c6(0x9a0),this.#boundOnEditingAction),this.#eventBus[_0xd3d7c6(0x79a)](_0xd3d7c6(0x4fb),this.#boundOnPageChanging),this.#eventBus['_off'](_0xd3d7c6(0x584),this.#boundOnScaleChanging),this.#eventBus[_0xd3d7c6(0x79a)](_0xd3d7c6(0x93d),this.#boundOnRotationChanging);for(const _0x35671f of this.#allLayers[_0xd3d7c6(0x823)]()){_0x35671f[_0xd3d7c6(0x256)]();}this.#allLayers[_0xd3d7c6(0x1ca)](),this.#allEditors[_0xd3d7c6(0x1ca)](),this.#editorsToRescale[_0xd3d7c6(0x1ca)](),this.#activeEditor=null,this.#selectedEditors[_0xd3d7c6(0x1ca)](),this.#commandManager[_0xd3d7c6(0x256)]();}get[_0x180be7(0x370)](){const _0x5a6051=_0x180be7;return(0x0,_0x5d2ee8[_0x5a6051(0x51d)])(this,_0x5a6051(0x370),this.#pageColors?this.#filterFactory[_0x5a6051(0x7b1)](this.#pageColors[_0x5a6051(0x953)],this.#pageColors[_0x5a6051(0x82f)]):_0x5a6051(0x122));}[_0x180be7(0x67e)](_0x267206){let {pageNumber:_0x40a5d9}=_0x267206;this.#currentPageIndex=_0x40a5d9-0x1;}[_0x180be7(0x1bf)](){const _0x4d9a5e=_0x180be7;this.#container[_0x4d9a5e(0x47d)]();}[_0x180be7(0x63f)](_0x5c1ea6){const _0x5b9b43=_0x180be7;this.#editorsToRescale[_0x5b9b43(0x156)](_0x5c1ea6);}[_0x180be7(0x632)](_0x1359a5){this.#editorsToRescale['delete'](_0x1359a5);}[_0x180be7(0x433)](_0xaa53d9){const _0x58ca45=_0x180be7;let {scale:_0x22aa7c}=_0xaa53d9;this[_0x58ca45(0x69b)](),this[_0x58ca45(0x614)][_0x58ca45(0x11f)]=_0x22aa7c*_0x509d17[_0x58ca45(0x705)]['PDF_TO_CSS_UNITS'];for(const _0x4ee7dd of this.#editorsToRescale){_0x4ee7dd[_0x58ca45(0x433)]();}}[_0x180be7(0xda)](_0x28da74){const _0x5db1a5=_0x180be7;let {pagesRotation:_0x4149e7}=_0x28da74;this[_0x5db1a5(0x69b)](),this[_0x5db1a5(0x614)][_0x5db1a5(0x7af)]=_0x4149e7;}[_0x180be7(0x7e5)](_0x3fb9fa){const _0x32c5c5=_0x180be7;!_0x3fb9fa[_0x32c5c5(0x480)]()&&this.#annotationStorage&&!this.#annotationStorage[_0x32c5c5(0x373)](_0x3fb9fa['id'])&&this.#annotationStorage[_0x32c5c5(0x699)](_0x3fb9fa['id'],_0x3fb9fa);}#addKeyboardManager(){const _0x1ecf06=_0x180be7;this.#container[_0x1ecf06(0x5cc)](_0x1ecf06(0x14c),this.#boundKeydown);}#removeKeyboardManager(){const _0x2b24e8=_0x180be7;this.#container[_0x2b24e8(0x1c0)](_0x2b24e8(0x14c),this.#boundKeydown);}#addCopyPasteListeners(){const _0x29877d=_0x180be7;document[_0x29877d(0x5cc)](_0x29877d(0x602),this.#boundCopy),document[_0x29877d(0x5cc)](_0x29877d(0x13a),this.#boundCut),document['addEventListener'](_0x29877d(0x947),this.#boundPaste);}#removeCopyPasteListeners(){const _0x2e6ccb=_0x180be7;document[_0x2e6ccb(0x1c0)](_0x2e6ccb(0x602),this.#boundCopy),document[_0x2e6ccb(0x1c0)](_0x2e6ccb(0x13a),this.#boundCut),document[_0x2e6ccb(0x1c0)]('paste',this.#boundPaste);}['copy'](_0x16cd8a){const _0x5cfc1c=_0x180be7;_0x16cd8a[_0x5cfc1c(0x9af)]();this.#activeEditor&&this.#activeEditor[_0x5cfc1c(0x69b)]();if(!this[_0x5cfc1c(0x6da)])return;const _0x8ad1cc=[];for(const _0x2fbaa2 of this.#selectedEditors){const _0x59e7b7=_0x2fbaa2[_0x5cfc1c(0x65d)](!![]);_0x59e7b7&&_0x8ad1cc[_0x5cfc1c(0x7d6)](_0x59e7b7);}if(_0x8ad1cc['length']===0x0)return;_0x16cd8a[_0x5cfc1c(0x227)][_0x5cfc1c(0x5cb)]('application/pdfjs',JSON['stringify'](_0x8ad1cc));}[_0x180be7(0x13a)](_0x283f7c){const _0xb88103=_0x180be7;this[_0xb88103(0x602)](_0x283f7c),this['delete']();}['paste'](_0x5578d3){const _0x13c2f1=_0x180be7;_0x5578d3['preventDefault']();let _0xb84c1=_0x5578d3['clipboardData'][_0x13c2f1(0x593)](_0x13c2f1(0x384));if(!_0xb84c1)return;try{_0xb84c1=JSON[_0x13c2f1(0x412)](_0xb84c1);}catch(_0x2d40a7){(0x0,_0x5d2ee8[_0x13c2f1(0x472)])('paste:\x20\x22'+_0x2d40a7[_0x13c2f1(0x1bd)]+'\x22.');return;}if(!Array[_0x13c2f1(0x419)](_0xb84c1))return;this['unselectAll']();const _0x55690c=this.#allLayers[_0x13c2f1(0x8c4)](this.#currentPageIndex);try{const _0x3b5670=[];for(const _0x133233 of _0xb84c1){const _0x2e57d7=_0x55690c[_0x13c2f1(0x7a3)](_0x133233);if(!_0x2e57d7)return;_0x3b5670['push'](_0x2e57d7);}const _0x19a114=()=>{for(const _0x17b313 of _0x3b5670){this.#addEditorToLayer(_0x17b313);}this.#selectEditors(_0x3b5670);},_0x480290=()=>{const _0x213fa3=_0x13c2f1;for(const _0x41c9bf of _0x3b5670){_0x41c9bf[_0x213fa3(0x10a)]();}};this[_0x13c2f1(0x72e)]({'cmd':_0x19a114,'undo':_0x480290,'mustExec':!![]});}catch(_0x42f534){(0x0,_0x5d2ee8['warn'])(_0x13c2f1(0x285)+_0x42f534[_0x13c2f1(0x1bd)]+'\x22.');}}['keydown'](_0x3a50c8){const _0x2d26ec=_0x180be7;!this[_0x2d26ec(0x96e)]()?.['shouldGetKeyboardEvents']()&&_0x3d6b94[_0x2d26ec(0x76a)][_0x2d26ec(0x249)](this,_0x3a50c8);}['onEditingAction'](_0x12d20c){const _0x330746=_0x180be7;[_0x330746(0x457),_0x330746(0x83e),_0x330746(0x65f),_0x330746(0x60d)][_0x330746(0x720)](_0x12d20c[_0x330746(0x499)])&&this[_0x12d20c[_0x330746(0x499)]]();}#dispatchUpdateStates(_0x175673){const _0x443d64=_0x180be7,_0xa6bf6b=Object['entries'](_0x175673)[_0x443d64(0x82e)](_0x4b6890=>{let [_0x1bd013,_0x12d96a]=_0x4b6890;return this.#previousStates[_0x1bd013]!==_0x12d96a;});_0xa6bf6b&&this.#eventBus[_0x443d64(0x3c0)](_0x443d64(0x81e),{'source':this,'details':Object['assign'](this.#previousStates,_0x175673)});}#dispatchUpdateUI(_0x5ddda6){const _0x24faf8=_0x180be7;this.#eventBus[_0x24faf8(0x3c0)](_0x24faf8(0xcb),{'source':this,'details':_0x5ddda6});}['setEditingState'](_0x2c70bb){const _0x186bc3=_0x180be7;_0x2c70bb?(this.#addKeyboardManager(),this.#addCopyPasteListeners(),this.#dispatchUpdateStates({'isEditing':this.#mode!==_0x5d2ee8[_0x186bc3(0x9a6)]['NONE'],'isEmpty':this.#isEmpty(),'hasSomethingToUndo':this.#commandManager[_0x186bc3(0x6ae)](),'hasSomethingToRedo':this.#commandManager['hasSomethingToRedo'](),'hasSelectedEditor':![]})):(this.#removeKeyboardManager(),this.#removeCopyPasteListeners(),this.#dispatchUpdateStates({'isEditing':![]}));}[_0x180be7(0x567)](_0xefb4de){const _0x2ed759=_0x180be7;if(this.#editorTypes)return;this.#editorTypes=_0xefb4de;for(const _0x1f5031 of this.#editorTypes){this.#dispatchUpdateUI(_0x1f5031[_0x2ed759(0x5bb)]);}}[_0x180be7(0x520)](){const _0x542c8c=_0x180be7;return this.#idManager[_0x542c8c(0x520)]();}get[_0x180be7(0x877)](){const _0x41c778=_0x180be7;return this.#allLayers[_0x41c778(0x8c4)](this.#currentPageIndex);}get[_0x180be7(0x8ef)](){return this.#currentPageIndex;}[_0x180be7(0x5d3)](_0x199893){const _0x5d6ed4=_0x180be7;this.#allLayers[_0x5d6ed4(0x98e)](_0x199893[_0x5d6ed4(0x700)],_0x199893),this.#isEnabled?_0x199893[_0x5d6ed4(0x781)]():_0x199893['disable']();}[_0x180be7(0x4ca)](_0xcbb7b8){const _0x102df7=_0x180be7;this.#allLayers[_0x102df7(0x65f)](_0xcbb7b8[_0x102df7(0x700)]);}[_0x180be7(0x929)](_0x3dd83e){const _0x3c2b8d=_0x180be7;let _0x34548b=arguments[_0x3c2b8d(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:null;this.#mode=_0x3dd83e;if(_0x3dd83e===_0x5d2ee8[_0x3c2b8d(0x9a6)][_0x3c2b8d(0x9f7)]){this[_0x3c2b8d(0x709)](![]),this.#disableAll();return;}this[_0x3c2b8d(0x709)](!![]),this.#enableAll();for(const _0x5bf2bc of this.#allLayers[_0x3c2b8d(0x823)]()){_0x5bf2bc[_0x3c2b8d(0x929)](_0x3dd83e);}if(!_0x34548b)return;for(const _0x3d00ed of this.#allEditors[_0x3c2b8d(0x823)]()){if(_0x3d00ed['annotationElementId']===_0x34548b){this['setSelected'](_0x3d00ed),_0x3d00ed['enterInEditMode']();break;}}}[_0x180be7(0x3fb)](_0x3cc998){const _0x2a9222=_0x180be7;if(_0x3cc998===this.#mode)return;this.#eventBus[_0x2a9222(0x3c0)](_0x2a9222(0x3f6),{'source':this,'mode':_0x3cc998});}[_0x180be7(0x72f)](_0x52a7c5,_0x555c44){const _0x4905d6=_0x180be7;if(!this.#editorTypes)return;for(const _0x5b5e85 of this.#selectedEditors){_0x5b5e85[_0x4905d6(0x72f)](_0x52a7c5,_0x555c44);}for(const _0x3d0d45 of this.#editorTypes){_0x3d0d45[_0x4905d6(0x49d)](_0x52a7c5,_0x555c44);}}#enableAll(){const _0x1cc645=_0x180be7;if(!this.#isEnabled){this.#isEnabled=!![];for(const _0x18bb9d of this.#allLayers['values']()){_0x18bb9d[_0x1cc645(0x781)]();}}}#disableAll(){const _0x2bfd78=_0x180be7;this[_0x2bfd78(0x361)]();if(this.#isEnabled){this.#isEnabled=![];for(const _0x39e5f9 of this.#allLayers[_0x2bfd78(0x823)]()){_0x39e5f9[_0x2bfd78(0x5b6)]();}}}['getEditors'](_0x55ce4a){const _0x49d63f=_0x180be7,_0x538232=[];for(const _0x396922 of this.#allEditors[_0x49d63f(0x823)]()){_0x396922[_0x49d63f(0x700)]===_0x55ce4a&&_0x538232[_0x49d63f(0x7d6)](_0x396922);}return _0x538232;}[_0x180be7(0x6b0)](_0x522533){const _0x3e4517=_0x180be7;return this.#allEditors[_0x3e4517(0x8c4)](_0x522533);}['addEditor'](_0x1af241){this.#allEditors['set'](_0x1af241['id'],_0x1af241);}['removeEditor'](_0xd85de1){const _0x476278=_0x180be7;this.#allEditors[_0x476278(0x65f)](_0xd85de1['id']),this['unselect'](_0xd85de1),(!_0xd85de1[_0x476278(0x66b)]||!this.#deletedAnnotationsElementIds[_0x476278(0x373)](_0xd85de1[_0x476278(0x66b)]))&&this.#annotationStorage?.[_0x476278(0x10a)](_0xd85de1['id']);}[_0x180be7(0x91a)](_0x1fb04c){const _0x3eae25=_0x180be7;this.#deletedAnnotationsElementIds[_0x3eae25(0x156)](_0x1fb04c[_0x3eae25(0x66b)]),_0x1fb04c[_0x3eae25(0x2f0)]=!![];}[_0x180be7(0x7cd)](_0x24f852){const _0xc69778=_0x180be7;return this.#deletedAnnotationsElementIds[_0xc69778(0x373)](_0x24f852);}[_0x180be7(0x5b5)](_0x268417){const _0x4fbb9a=_0x180be7;this.#deletedAnnotationsElementIds[_0x4fbb9a(0x65f)](_0x268417['annotationElementId']),_0x268417[_0x4fbb9a(0x2f0)]=![];}#addEditorToLayer(_0x3fdf4f){const _0x5c9477=_0x180be7,_0x177e48=this.#allLayers['get'](_0x3fdf4f[_0x5c9477(0x700)]);_0x177e48?_0x177e48['addOrRebuild'](_0x3fdf4f):this['addEditor'](_0x3fdf4f);}[_0x180be7(0x275)](_0x4c8dac){const _0x12afff=_0x180be7;if(this.#activeEditor===_0x4c8dac)return;this.#activeEditor=_0x4c8dac,_0x4c8dac&&this.#dispatchUpdateUI(_0x4c8dac[_0x12afff(0x2da)]);}[_0x180be7(0x3f3)](_0x513bb8){const _0xde55f7=_0x180be7;if(this.#selectedEditors[_0xde55f7(0x373)](_0x513bb8)){this.#selectedEditors['delete'](_0x513bb8),_0x513bb8[_0xde55f7(0x261)](),this.#dispatchUpdateStates({'hasSelectedEditor':this[_0xde55f7(0x6da)]});return;}this.#selectedEditors['add'](_0x513bb8),_0x513bb8[_0xde55f7(0x243)](),this.#dispatchUpdateUI(_0x513bb8[_0xde55f7(0x2da)]),this.#dispatchUpdateStates({'hasSelectedEditor':!![]});}[_0x180be7(0x18e)](_0x3e7f3b){const _0x494f31=_0x180be7;for(const _0x4b9dbe of this.#selectedEditors){_0x4b9dbe!==_0x3e7f3b&&_0x4b9dbe[_0x494f31(0x261)]();}this.#selectedEditors[_0x494f31(0x1ca)](),this.#selectedEditors['add'](_0x3e7f3b),_0x3e7f3b[_0x494f31(0x243)](),this.#dispatchUpdateUI(_0x3e7f3b[_0x494f31(0x2da)]),this.#dispatchUpdateStates({'hasSelectedEditor':!![]});}[_0x180be7(0x4fe)](_0x1fa39b){const _0x170091=_0x180be7;return this.#selectedEditors[_0x170091(0x373)](_0x1fa39b);}[_0x180be7(0x261)](_0x36cec6){const _0x427626=_0x180be7;_0x36cec6['unselect'](),this.#selectedEditors[_0x427626(0x65f)](_0x36cec6),this.#dispatchUpdateStates({'hasSelectedEditor':this['hasSelection']});}get[_0x180be7(0x6da)](){const _0x4ba0f9=_0x180be7;return this.#selectedEditors[_0x4ba0f9(0x87a)]!==0x0;}['undo'](){const _0x41ee86=_0x180be7;this.#commandManager[_0x41ee86(0x457)](),this.#dispatchUpdateStates({'hasSomethingToUndo':this.#commandManager[_0x41ee86(0x6ae)](),'hasSomethingToRedo':!![],'isEmpty':this.#isEmpty()});}[_0x180be7(0x83e)](){const _0x4d912b=_0x180be7;this.#commandManager['redo'](),this.#dispatchUpdateStates({'hasSomethingToUndo':!![],'hasSomethingToRedo':this.#commandManager[_0x4d912b(0x302)](),'isEmpty':this.#isEmpty()});}[_0x180be7(0x72e)](_0x512fd6){const _0xc661af=_0x180be7;this.#commandManager[_0xc661af(0x156)](_0x512fd6),this.#dispatchUpdateStates({'hasSomethingToUndo':!![],'hasSomethingToRedo':![],'isEmpty':this.#isEmpty()});}#isEmpty(){const _0x2a8bb4=_0x180be7;if(this.#allEditors[_0x2a8bb4(0x87a)]===0x0)return!![];if(this.#allEditors[_0x2a8bb4(0x87a)]===0x1)for(const _0x1b25ff of this.#allEditors[_0x2a8bb4(0x823)]()){return _0x1b25ff['isEmpty']();}return![];}['delete'](){const _0x1b0fd7=_0x180be7;this['commitOrRemove']();if(!this[_0x1b0fd7(0x6da)])return;const _0x955c5=[...this.#selectedEditors],_0xcb3e62=()=>{const _0x42c6c8=_0x1b0fd7;for(const _0x5c4be6 of _0x955c5){_0x5c4be6[_0x42c6c8(0x10a)]();}},_0x54e3e7=()=>{for(const _0x154abb of _0x955c5){this.#addEditorToLayer(_0x154abb);}};this['addCommands']({'cmd':_0xcb3e62,'undo':_0x54e3e7,'mustExec':!![]});}[_0x180be7(0x69b)](){this.#activeEditor?.['commitOrRemove']();}#selectEditors(_0x191e13){const _0x174765=_0x180be7;this.#selectedEditors[_0x174765(0x1ca)]();for(const _0x207e10 of _0x191e13){if(_0x207e10['isEmpty']())continue;this.#selectedEditors[_0x174765(0x156)](_0x207e10),_0x207e10[_0x174765(0x243)]();}this.#dispatchUpdateStates({'hasSelectedEditor':!![]});}[_0x180be7(0x60d)](){const _0x33337a=_0x180be7;for(const _0x2d3016 of this.#selectedEditors){_0x2d3016[_0x33337a(0x3b3)]();}this.#selectEditors(this.#allEditors['values']());}['unselectAll'](){const _0x288ce9=_0x180be7;if(this.#activeEditor){this.#activeEditor[_0x288ce9(0x69b)]();return;}if(this.#selectedEditors[_0x288ce9(0x87a)]===0x0)return;for(const _0x54d967 of this.#selectedEditors){_0x54d967[_0x288ce9(0x261)]();}this.#selectedEditors[_0x288ce9(0x1ca)](),this.#dispatchUpdateStates({'hasSelectedEditor':![]});}[_0x180be7(0x5a0)](_0xc0c597){return this.#activeEditor===_0xc0c597;}['getActive'](){return this.#activeEditor;}['getMode'](){return this.#mode;}get['imageManager'](){const _0x9546c7=_0x180be7;return(0x0,_0x5d2ee8[_0x9546c7(0x51d)])(this,'imageManager',new _0x2aed16());}}_0xed6c37[_0x180be7(0x73c)]=_0x3d6b94;},(_0x35b4ee,_0xfff2ac,_0x54053f)=>{'use strict';const _0xa89a4b=a0_0x160d;Object[_0xa89a4b(0x430)](_0xfff2ac,_0xa89a4b(0x19a),{'value':!![]}),_0xfff2ac['StatTimer']=_0xfff2ac[_0xa89a4b(0x450)]=_0xfff2ac['PixelsPerInch']=_0xfff2ac['PageViewport']=_0xfff2ac[_0xa89a4b(0x35e)]=_0xfff2ac[_0xa89a4b(0x70c)]=_0xfff2ac[_0xa89a4b(0x7be)]=_0xfff2ac[_0xa89a4b(0xfa)]=_0xfff2ac['DOMCanvasFactory']=_0xfff2ac[_0xa89a4b(0x591)]=_0xfff2ac[_0xa89a4b(0x1de)]=void 0x0,_0xfff2ac[_0xa89a4b(0x30f)]=_0x6a81df,_0xfff2ac[_0xa89a4b(0x52d)]=_0xc40b1c,_0xfff2ac[_0xa89a4b(0x5f1)]=_0xe26f05,_0xfff2ac[_0xa89a4b(0x932)]=_0xe7c9ca,_0xfff2ac[_0xa89a4b(0x598)]=_0x3d3083,_0xfff2ac[_0xa89a4b(0x415)]=_0x457839,_0xfff2ac[_0xa89a4b(0x5da)]=_0x3d2c16,_0xfff2ac[_0xa89a4b(0x460)]=_0x5365e0,_0xfff2ac[_0xa89a4b(0x337)]=_0x534104,_0xfff2ac[_0xa89a4b(0x2f4)]=_0x358d43,_0xfff2ac[_0xa89a4b(0x969)]=_0x267663,_0xfff2ac['loadScript']=_0x1434a1,_0xfff2ac[_0xa89a4b(0x95e)]=_0x1c7562;var _0x4bb33b=_0x54053f(0x88),_0x4dba7e=_0x54053f(0x1);const _0x430e64=_0xa89a4b(0x2ae),_0x3c7461=_0xa89a4b(0x380);_0xfff2ac[_0xa89a4b(0x1de)]=_0x3c7461;class _0xae2803{static ['CSS']=0x60;static [_0xa89a4b(0x1f5)]=0x48;static [_0xa89a4b(0x9aa)]=this[_0xa89a4b(0x750)]/this[_0xa89a4b(0x1f5)];}_0xfff2ac[_0xa89a4b(0x705)]=_0xae2803;class _0x5b35b2 extends _0x4bb33b[_0xa89a4b(0x6cb)]{#_cache;#_defs;#docId;#document;#hcmFilter;#hcmKey;#hcmUrl;#hcmHighlightFilter;#hcmHighlightKey;#hcmHighlightUrl;#id=0x0;constructor(){const _0x3a5e7b=_0xa89a4b;let {docId:_0x1d2df4,ownerDocument:ownerDocument=globalThis['document']}=arguments[_0x3a5e7b(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};super(),this.#docId=_0x1d2df4,this.#document=ownerDocument;}get#cache(){return this.#_cache||=new Map();}get#defs(){const _0x245f61=_0xa89a4b;if(!this.#_defs){const _0x2e3d3e=this.#document[_0x245f61(0x400)](_0x245f61(0x903)),{style:_0x5a5d4b}=_0x2e3d3e;_0x5a5d4b['visibility']='hidden',_0x5a5d4b[_0x245f61(0x537)]=_0x245f61(0x1d2),_0x5a5d4b[_0x245f61(0x98b)]=_0x5a5d4b['height']=0x0,_0x5a5d4b[_0x245f61(0x954)]=_0x245f61(0x352),_0x5a5d4b['top']=_0x5a5d4b[_0x245f61(0x4fd)]=0x0,_0x5a5d4b['zIndex']=-0x1;const _0x46eb8f=this.#document[_0x245f61(0x48b)](_0x430e64,_0x245f61(0x286));_0x46eb8f[_0x245f61(0x636)](_0x245f61(0x98b),0x0),_0x46eb8f[_0x245f61(0x636)](_0x245f61(0x999),0x0),this.#_defs=this.#document[_0x245f61(0x48b)](_0x430e64,_0x245f61(0x487)),_0x2e3d3e['append'](_0x46eb8f),_0x46eb8f[_0x245f61(0x45e)](this.#_defs),this.#document[_0x245f61(0x4e7)][_0x245f61(0x45e)](_0x2e3d3e);}return this.#_defs;}['addFilter'](_0x1bff51){const _0x2f79da=_0xa89a4b;if(!_0x1bff51)return _0x2f79da(0x122);let _0x4079de=this.#cache[_0x2f79da(0x8c4)](_0x1bff51);if(_0x4079de)return _0x4079de;let _0x56e3d2,_0x195dca,_0x33965,_0x3092b2;if(_0x1bff51['length']===0x1){const _0x6db136=_0x1bff51[0x0],_0x4019cd=new Array(0x100);for(let _0x2a56cc=0x0;_0x2a56cc<0x100;_0x2a56cc++){_0x4019cd[_0x2a56cc]=_0x6db136[_0x2a56cc]/0xff;}_0x3092b2=_0x56e3d2=_0x195dca=_0x33965=_0x4019cd[_0x2f79da(0x334)](',');}else{const [_0x2099a1,_0x1506eb,_0x9f1ac7]=_0x1bff51,_0x334be4=new Array(0x100),_0x418729=new Array(0x100),_0x4ef20b=new Array(0x100);for(let _0x3cf9d7=0x0;_0x3cf9d7<0x100;_0x3cf9d7++){_0x334be4[_0x3cf9d7]=_0x2099a1[_0x3cf9d7]/0xff,_0x418729[_0x3cf9d7]=_0x1506eb[_0x3cf9d7]/0xff,_0x4ef20b[_0x3cf9d7]=_0x9f1ac7[_0x3cf9d7]/0xff;}_0x56e3d2=_0x334be4[_0x2f79da(0x334)](','),_0x195dca=_0x418729[_0x2f79da(0x334)](','),_0x33965=_0x4ef20b[_0x2f79da(0x334)](','),_0x3092b2=''+_0x56e3d2+_0x195dca+_0x33965;}_0x4079de=this.#cache[_0x2f79da(0x8c4)](_0x3092b2);if(_0x4079de)return this.#cache['set'](_0x1bff51,_0x4079de),_0x4079de;const _0x31604d='g_'+this.#docId+_0x2f79da(0x1ea)+this.#id++,_0x1e0ff4=_0x2f79da(0x475)+_0x31604d+')';this.#cache[_0x2f79da(0x98e)](_0x1bff51,_0x1e0ff4),this.#cache[_0x2f79da(0x98e)](_0x3092b2,_0x1e0ff4);const _0x5b1fa5=this.#createFilter(_0x31604d);return this.#addTransferMapConversion(_0x56e3d2,_0x195dca,_0x33965,_0x5b1fa5),_0x1e0ff4;}[_0xa89a4b(0x7b1)](_0x2dae02,_0x3e389c){const _0xcf8445=_0xa89a4b,_0x285522=_0x2dae02+'-'+_0x3e389c;if(this.#hcmKey===_0x285522)return this.#hcmUrl;this.#hcmKey=_0x285522,this.#hcmUrl=_0xcf8445(0x122),this.#hcmFilter?.[_0xcf8445(0x10a)]();if(!_0x2dae02||!_0x3e389c)return this.#hcmUrl;const _0x31aba1=this.#getRGB(_0x2dae02);_0x2dae02=_0x4dba7e[_0xcf8445(0x5d7)][_0xcf8445(0x86a)](..._0x31aba1);const _0x538291=this.#getRGB(_0x3e389c);_0x3e389c=_0x4dba7e[_0xcf8445(0x5d7)][_0xcf8445(0x86a)](..._0x538291),this.#defs['style']['color']='';if(_0x2dae02===_0xcf8445(0x83d)&&_0x3e389c===_0xcf8445(0x253)||_0x2dae02===_0x3e389c)return this.#hcmUrl;const _0x2ba887=new Array(0x100);for(let _0x194bc5=0x0;_0x194bc5<=0xff;_0x194bc5++){const _0x1aab79=_0x194bc5/0xff;_0x2ba887[_0x194bc5]=_0x1aab79<=0.03928?_0x1aab79/12.92:((_0x1aab79+0.055)/1.055)**2.4;}const _0x2d6176=_0x2ba887[_0xcf8445(0x334)](','),_0x21f263='g_'+this.#docId+'_hcm_filter',_0x1a3f28=this.#hcmHighlightFilter=this.#createFilter(_0x21f263);this.#addTransferMapConversion(_0x2d6176,_0x2d6176,_0x2d6176,_0x1a3f28),this.#addGrayConversion(_0x1a3f28);const _0x4d710b=(_0x13ec3a,_0x4e1d23)=>{const _0x165cbf=_0x31aba1[_0x13ec3a]/0xff,_0x427c55=_0x538291[_0x13ec3a]/0xff,_0x1d29f1=new Array(_0x4e1d23+0x1);for(let _0x1d7acb=0x0;_0x1d7acb<=_0x4e1d23;_0x1d7acb++){_0x1d29f1[_0x1d7acb]=_0x165cbf+_0x1d7acb/_0x4e1d23*(_0x427c55-_0x165cbf);}return _0x1d29f1['join'](',');};return this.#addTransferMapConversion(_0x4d710b(0x0,0x5),_0x4d710b(0x1,0x5),_0x4d710b(0x2,0x5),_0x1a3f28),this.#hcmUrl='url(#'+_0x21f263+')',this.#hcmUrl;}[_0xa89a4b(0x74c)](_0x521236,_0x488847,_0x80f070,_0x28b06a){const _0x1d49a3=_0xa89a4b,_0x184705=_0x521236+'-'+_0x488847+'-'+_0x80f070+'-'+_0x28b06a;if(this.#hcmHighlightKey===_0x184705)return this.#hcmHighlightUrl;this.#hcmHighlightKey=_0x184705,this.#hcmHighlightUrl=_0x1d49a3(0x122),this.#hcmHighlightFilter?.[_0x1d49a3(0x10a)]();if(!_0x521236||!_0x488847)return this.#hcmHighlightUrl;const [_0x30e134,_0x3d19bc]=[_0x521236,_0x488847][_0x1d49a3(0x7ec)](this.#getRGB[_0x1d49a3(0x5e8)](this));let _0x4330fc=Math[_0x1d49a3(0x7df)](0.2126*_0x30e134[0x0]+0.7152*_0x30e134[0x1]+0.0722*_0x30e134[0x2]),_0x1b01f8=Math[_0x1d49a3(0x7df)](0.2126*_0x3d19bc[0x0]+0.7152*_0x3d19bc[0x1]+0.0722*_0x3d19bc[0x2]),[_0x531c36,_0x174459]=[_0x80f070,_0x28b06a][_0x1d49a3(0x7ec)](this.#getRGB[_0x1d49a3(0x5e8)](this));_0x1b01f8<_0x4330fc&&([_0x4330fc,_0x1b01f8,_0x531c36,_0x174459]=[_0x1b01f8,_0x4330fc,_0x174459,_0x531c36]);this.#defs[_0x1d49a3(0x498)][_0x1d49a3(0x5fe)]='';const _0x2cd3fb=(_0x456529,_0x5cc582,_0x525341)=>{const _0xde7e9f=_0x1d49a3,_0x4e36f5=new Array(0x100),_0x51488c=(_0x1b01f8-_0x4330fc)/_0x525341,_0xf34b=_0x456529/0xff,_0x153055=(_0x5cc582-_0x456529)/(0xff*_0x525341);let _0x28201d=0x0;for(let _0xc311b7=0x0;_0xc311b7<=_0x525341;_0xc311b7++){const _0xf47c0b=Math[_0xde7e9f(0x7df)](_0x4330fc+_0xc311b7*_0x51488c),_0x5bb174=_0xf34b+_0xc311b7*_0x153055;for(let _0x33ef14=_0x28201d;_0x33ef14<=_0xf47c0b;_0x33ef14++){_0x4e36f5[_0x33ef14]=_0x5bb174;}_0x28201d=_0xf47c0b+0x1;}for(let _0x4b7955=_0x28201d;_0x4b7955<0x100;_0x4b7955++){_0x4e36f5[_0x4b7955]=_0x4e36f5[_0x28201d-0x1];}return _0x4e36f5[_0xde7e9f(0x334)](',');},_0x32c0f0='g_'+this.#docId+_0x1d49a3(0x769),_0x5b5ea3=this.#hcmHighlightFilter=this.#createFilter(_0x32c0f0);return this.#addGrayConversion(_0x5b5ea3),this.#addTransferMapConversion(_0x2cd3fb(_0x531c36[0x0],_0x174459[0x0],0x5),_0x2cd3fb(_0x531c36[0x1],_0x174459[0x1],0x5),_0x2cd3fb(_0x531c36[0x2],_0x174459[0x2],0x5),_0x5b5ea3),this.#hcmHighlightUrl='url(#'+_0x32c0f0+')',this.#hcmHighlightUrl;}[_0xa89a4b(0x256)](){const _0x5f246d=_0xa89a4b;let _0x2b5f7c=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:![];if(_0x2b5f7c&&(this.#hcmUrl||this.#hcmHighlightUrl))return;this.#_defs&&(this.#_defs[_0x5f246d(0x3dc)][_0x5f246d(0x3dc)][_0x5f246d(0x10a)](),this.#_defs=null),this.#_cache&&(this.#_cache[_0x5f246d(0x1ca)](),this.#_cache=null),this.#id=0x0;}#addGrayConversion(_0xd08a1b){const _0x17f94b=_0xa89a4b,_0x382df4=this.#document['createElementNS'](_0x430e64,_0x17f94b(0x392));_0x382df4[_0x17f94b(0x636)]('type',_0x17f94b(0x238)),_0x382df4['setAttribute']('values',_0x17f94b(0xfb)),_0xd08a1b[_0x17f94b(0x45e)](_0x382df4);}#createFilter(_0x5b9937){const _0x3c73cd=_0xa89a4b,_0x22a22b=this.#document[_0x3c73cd(0x48b)](_0x430e64,_0x3c73cd(0x81f));return _0x22a22b[_0x3c73cd(0x636)](_0x3c73cd(0x8b4),_0x3c73cd(0x7dd)),_0x22a22b['setAttribute']('id',_0x5b9937),this.#defs[_0x3c73cd(0x45e)](_0x22a22b),_0x22a22b;}#appendFeFunc(_0x54ed8d,_0x3e14e8,_0xcacae5){const _0xa4fc20=_0xa89a4b,_0x35b25a=this.#document['createElementNS'](_0x430e64,_0x3e14e8);_0x35b25a[_0xa4fc20(0x636)](_0xa4fc20(0x9fd),'discrete'),_0x35b25a[_0xa4fc20(0x636)](_0xa4fc20(0x8a0),_0xcacae5),_0x54ed8d['append'](_0x35b25a);}#addTransferMapConversion(_0x328b51,_0x5de12e,_0x40f094,_0x32bbed){const _0x4db638=_0xa89a4b,_0x1c9155=this.#document['createElementNS'](_0x430e64,_0x4db638(0x715));_0x32bbed[_0x4db638(0x45e)](_0x1c9155),this.#appendFeFunc(_0x1c9155,_0x4db638(0x223),_0x328b51),this.#appendFeFunc(_0x1c9155,_0x4db638(0x2d1),_0x5de12e),this.#appendFeFunc(_0x1c9155,_0x4db638(0x6f6),_0x40f094);}#getRGB(_0x15a9c9){const _0xe1204e=_0xa89a4b;return this.#defs[_0xe1204e(0x498)][_0xe1204e(0x5fe)]=_0x15a9c9,_0x3d2c16(getComputedStyle(this.#defs)[_0xe1204e(0x1bb)]('color'));}}_0xfff2ac['DOMFilterFactory']=_0x5b35b2;class _0x152f1a extends _0x4bb33b['BaseCanvasFactory']{constructor(){const _0x2590cb=_0xa89a4b;let {ownerDocument:ownerDocument=globalThis['document']}=arguments[_0x2590cb(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};super(),this[_0x2590cb(0xe7)]=ownerDocument;}['_createCanvas'](_0x467df1,_0x382751){const _0x51aca5=_0xa89a4b,_0xc9fea7=this[_0x51aca5(0xe7)][_0x51aca5(0x400)](_0x51aca5(0x75a));return _0xc9fea7[_0x51aca5(0x98b)]=_0x467df1,_0xc9fea7[_0x51aca5(0x999)]=_0x382751,_0xc9fea7;}}_0xfff2ac[_0xa89a4b(0x4fc)]=_0x152f1a;async function _0x46af76(_0x3268b3){const _0x22e8d2=_0xa89a4b;let _0x401a63=arguments[_0x22e8d2(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:![];if(_0x267663(_0x3268b3,document['baseURI'])){const _0x56a179=await fetch(_0x3268b3);if(!_0x56a179['ok'])throw new Error(_0x56a179[_0x22e8d2(0x7ad)]);return _0x401a63?new Uint8Array(await _0x56a179[_0x22e8d2(0x99f)]()):(0x0,_0x4dba7e[_0x22e8d2(0x647)])(await _0x56a179[_0x22e8d2(0x739)]());}return new Promise((_0x3cbdab,_0x12df7a)=>{const _0x5e064b=_0x22e8d2,_0x120848=new XMLHttpRequest();_0x120848[_0x5e064b(0x514)]('GET',_0x3268b3,!![]),_0x401a63&&(_0x120848[_0x5e064b(0x9bc)]=_0x5e064b(0x551)),_0x120848[_0x5e064b(0x9be)]=()=>{const _0x12fe21=_0x5e064b;if(_0x120848['readyState']!==XMLHttpRequest[_0x12fe21(0x988)])return;if(_0x120848['status']===0xc8||_0x120848['status']===0x0){let _0x332b2f;if(_0x401a63&&_0x120848[_0x12fe21(0x280)])_0x332b2f=new Uint8Array(_0x120848[_0x12fe21(0x280)]);else!_0x401a63&&_0x120848[_0x12fe21(0x6c4)]&&(_0x332b2f=(0x0,_0x4dba7e[_0x12fe21(0x647)])(_0x120848[_0x12fe21(0x6c4)]));if(_0x332b2f){_0x3cbdab(_0x332b2f);return;}}_0x12df7a(new Error(_0x120848[_0x12fe21(0x7ad)]));},_0x120848[_0x5e064b(0x3e0)](null);});}class _0x34e13a extends _0x4bb33b[_0xa89a4b(0x704)]{[_0xa89a4b(0x863)](_0xead5d8,_0x15b3a3){const _0x383bc8=_0xa89a4b;return _0x46af76(_0xead5d8,this['isCompressed'])[_0x383bc8(0x22d)](_0x11e787=>{return{'cMapData':_0x11e787,'compressionType':_0x15b3a3};});}}_0xfff2ac['DOMCMapReaderFactory']=_0x34e13a;class _0x159bbf extends _0x4bb33b[_0xa89a4b(0x99b)]{[_0xa89a4b(0x863)](_0x23ad96){return _0x46af76(_0x23ad96,!![]);}}_0xfff2ac[_0xa89a4b(0x70c)]=_0x159bbf;class _0x324306 extends _0x4bb33b['BaseSVGFactory']{[_0xa89a4b(0x558)](_0x4c996a){const _0x255687=_0xa89a4b;return document[_0x255687(0x48b)](_0x430e64,_0x4c996a);}}_0xfff2ac[_0xa89a4b(0x7be)]=_0x324306;class _0x39f7c3{constructor(_0xa3806e){const _0x5e616e=_0xa89a4b;let {viewBox:_0x548725,scale:_0x284ef2,rotation:_0xfbad43,offsetX:offsetX=0x0,offsetY:offsetY=0x0,dontFlip:dontFlip=![]}=_0xa3806e;this[_0x5e616e(0x15f)]=_0x548725,this[_0x5e616e(0xc8)]=_0x284ef2,this['rotation']=_0xfbad43,this['offsetX']=offsetX,this['offsetY']=offsetY;const _0xa5e251=(_0x548725[0x2]+_0x548725[0x0])/0x2,_0x161667=(_0x548725[0x3]+_0x548725[0x1])/0x2;let _0x2fd195,_0x1624d5,_0x4dd71a,_0x21ad71;_0xfbad43%=0x168;_0xfbad43<0x0&&(_0xfbad43+=0x168);switch(_0xfbad43){case 0xb4:_0x2fd195=-0x1,_0x1624d5=0x0,_0x4dd71a=0x0,_0x21ad71=0x1;break;case 0x5a:_0x2fd195=0x0,_0x1624d5=0x1,_0x4dd71a=0x1,_0x21ad71=0x0;break;case 0x10e:_0x2fd195=0x0,_0x1624d5=-0x1,_0x4dd71a=-0x1,_0x21ad71=0x0;break;case 0x0:_0x2fd195=0x1,_0x1624d5=0x0,_0x4dd71a=0x0,_0x21ad71=-0x1;break;default:throw new Error('PageViewport:\x20Invalid\x20rotation,\x20must\x20be\x20a\x20multiple\x20of\x2090\x20degrees.');}dontFlip&&(_0x4dd71a=-_0x4dd71a,_0x21ad71=-_0x21ad71);let _0x18fdd7,_0x2a70e2,_0x1a67c2,_0x625ebf;_0x2fd195===0x0?(_0x18fdd7=Math[_0x5e616e(0x346)](_0x161667-_0x548725[0x1])*_0x284ef2+offsetX,_0x2a70e2=Math['abs'](_0xa5e251-_0x548725[0x0])*_0x284ef2+offsetY,_0x1a67c2=(_0x548725[0x3]-_0x548725[0x1])*_0x284ef2,_0x625ebf=(_0x548725[0x2]-_0x548725[0x0])*_0x284ef2):(_0x18fdd7=Math[_0x5e616e(0x346)](_0xa5e251-_0x548725[0x0])*_0x284ef2+offsetX,_0x2a70e2=Math['abs'](_0x161667-_0x548725[0x1])*_0x284ef2+offsetY,_0x1a67c2=(_0x548725[0x2]-_0x548725[0x0])*_0x284ef2,_0x625ebf=(_0x548725[0x3]-_0x548725[0x1])*_0x284ef2),this[_0x5e616e(0x5dd)]=[_0x2fd195*_0x284ef2,_0x1624d5*_0x284ef2,_0x4dd71a*_0x284ef2,_0x21ad71*_0x284ef2,_0x18fdd7-_0x2fd195*_0x284ef2*_0xa5e251-_0x4dd71a*_0x284ef2*_0x161667,_0x2a70e2-_0x1624d5*_0x284ef2*_0xa5e251-_0x21ad71*_0x284ef2*_0x161667],this['width']=_0x1a67c2,this[_0x5e616e(0x999)]=_0x625ebf;}get[_0xa89a4b(0x621)](){const {viewBox:_0x3d37c7}=this;return(0x0,_0x4dba7e['shadow'])(this,'rawDims',{'pageWidth':_0x3d37c7[0x2]-_0x3d37c7[0x0],'pageHeight':_0x3d37c7[0x3]-_0x3d37c7[0x1],'pageX':_0x3d37c7[0x0],'pageY':_0x3d37c7[0x1]});}['clone'](){const _0x1efd58=_0xa89a4b;let {scale:scale=this[_0x1efd58(0xc8)],rotation:rotation=this[_0x1efd58(0x7af)],offsetX:offsetX=this['offsetX'],offsetY:offsetY=this['offsetY'],dontFlip:dontFlip=![]}=arguments[_0x1efd58(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};return new _0x39f7c3({'viewBox':this['viewBox'][_0x1efd58(0x80c)](),'scale':scale,'rotation':rotation,'offsetX':offsetX,'offsetY':offsetY,'dontFlip':dontFlip});}[_0xa89a4b(0x2eb)](_0x4081f7,_0x2a7cf4){const _0x246e66=_0xa89a4b;return _0x4dba7e['Util'][_0x246e66(0x8a2)]([_0x4081f7,_0x2a7cf4],this[_0x246e66(0x5dd)]);}[_0xa89a4b(0x1d4)](_0x3d0f75){const _0x3e4fb3=_0xa89a4b,_0x56ee06=_0x4dba7e[_0x3e4fb3(0x5d7)]['applyTransform']([_0x3d0f75[0x0],_0x3d0f75[0x1]],this[_0x3e4fb3(0x5dd)]),_0x182d92=_0x4dba7e[_0x3e4fb3(0x5d7)][_0x3e4fb3(0x8a2)]([_0x3d0f75[0x2],_0x3d0f75[0x3]],this[_0x3e4fb3(0x5dd)]);return[_0x56ee06[0x0],_0x56ee06[0x1],_0x182d92[0x0],_0x182d92[0x1]];}[_0xa89a4b(0x735)](_0x16ec3c,_0x48454e){const _0x4ebd54=_0xa89a4b;return _0x4dba7e['Util']['applyInverseTransform']([_0x16ec3c,_0x48454e],this[_0x4ebd54(0x5dd)]);}}_0xfff2ac['PageViewport']=_0x39f7c3;class _0x52e29b extends _0x4dba7e['BaseException']{constructor(_0x226db0){const _0x5a1184=_0xa89a4b;let _0x220b18=arguments[_0x5a1184(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:0x0;super(_0x226db0,'RenderingCancelledException'),this['extraDelay']=_0x220b18;}}_0xfff2ac['RenderingCancelledException']=_0x52e29b;function _0x534104(_0x2ac449){const _0x46735a=_0xa89a4b,_0x303159=_0x2ac449[_0x46735a(0x557)];let _0x46c4ff=0x0;while(_0x46c4ff<_0x303159&&_0x2ac449[_0x46c4ff][_0x46735a(0x900)]()===''){_0x46c4ff++;}return _0x2ac449[_0x46735a(0x5d2)](_0x46c4ff,_0x46c4ff+0x5)['toLowerCase']()===_0x46735a(0x522);}function _0x358d43(_0x453a0c){const _0x576dcc=_0xa89a4b;return typeof _0x453a0c===_0x576dcc(0x8cd)&&/\.pdf$/i[_0x576dcc(0x6e7)](_0x453a0c);}function _0x3d3083(_0x2c1486){const _0x453763=_0xa89a4b;let _0x54d1f3=arguments[_0x453763(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:![];return!_0x54d1f3&&([_0x2c1486]=_0x2c1486['split'](/[#?]/,0x1)),_0x2c1486['substring'](_0x2c1486[_0x453763(0x568)]('/')+0x1);}function _0x457839(_0x32a2b6){const _0x428f45=_0xa89a4b;let _0x51b77a=arguments[_0x428f45(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:_0x428f45(0x2c3);if(typeof _0x32a2b6!=='string')return _0x51b77a;if(_0x534104(_0x32a2b6))return(0x0,_0x4dba7e[_0x428f45(0x472)])(_0x428f45(0x3ce)),_0x51b77a;const _0x17ca9a=/^(?:(?:[^:]+:)?\/\/[^/]+)?([^?#]*)(\?[^#]*)?(#.*)?$/,_0x324640=/[^/?#=]+\.pdf\b(?!.*\.pdf\b)/i,_0x442d04=_0x17ca9a[_0x428f45(0x249)](_0x32a2b6);let _0x6407a6=_0x324640[_0x428f45(0x249)](_0x442d04[0x1])||_0x324640[_0x428f45(0x249)](_0x442d04[0x2])||_0x324640['exec'](_0x442d04[0x3]);if(_0x6407a6){_0x6407a6=_0x6407a6[0x0];if(_0x6407a6[_0x428f45(0x720)]('%'))try{_0x6407a6=_0x324640[_0x428f45(0x249)](decodeURIComponent(_0x6407a6))[0x0];}catch{}}return _0x6407a6||_0x51b77a;}class _0x47b80f{[_0xa89a4b(0x648)]=Object[_0xa89a4b(0x77c)](null);['times']=[];['time'](_0x232160){const _0x316f36=_0xa89a4b;_0x232160 in this[_0x316f36(0x648)]&&(0x0,_0x4dba7e[_0x316f36(0x472)])(_0x316f36(0x82d)+_0x232160),this[_0x316f36(0x648)][_0x232160]=Date[_0x316f36(0x890)]();}[_0xa89a4b(0x459)](_0x566f6d){const _0x2a2e39=_0xa89a4b;!(_0x566f6d in this[_0x2a2e39(0x648)])&&(0x0,_0x4dba7e[_0x2a2e39(0x472)])(_0x2a2e39(0x787)+_0x566f6d),this[_0x2a2e39(0x1c2)][_0x2a2e39(0x7d6)]({'name':_0x566f6d,'start':this['started'][_0x566f6d],'end':Date['now']()}),delete this[_0x2a2e39(0x648)][_0x566f6d];}[_0xa89a4b(0x83f)](){const _0x49664c=_0xa89a4b,_0x3848de=[];let _0x1aa27c=0x0;for(const {name:_0x863100}of this['times']){_0x1aa27c=Math['max'](_0x863100[_0x49664c(0x557)],_0x1aa27c);}for(const {name:_0xe9a7dc,start:_0x49a3f9,end:_0x2be0c9}of this[_0x49664c(0x1c2)]){_0x3848de[_0x49664c(0x7d6)](_0xe9a7dc[_0x49664c(0x5c6)](_0x1aa27c)+'\x20'+(_0x2be0c9-_0x49a3f9)+_0x49664c(0x1b8));}return _0x3848de[_0x49664c(0x334)]('');}}_0xfff2ac[_0xa89a4b(0x76c)]=_0x47b80f;function _0x267663(_0x2fedac,_0x15eb90){const _0x57ba6d=_0xa89a4b;try{const {protocol:_0x560db3}=_0x15eb90?new URL(_0x2fedac,_0x15eb90):new URL(_0x2fedac);return _0x560db3==='http:'||_0x560db3===_0x57ba6d(0x61f);}catch{return![];}}function _0x1434a1(_0x4c1e82){const _0x349967=_0xa89a4b;let _0xf9b9e1=arguments[_0x349967(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:![];return new Promise((_0x4a3b55,_0x419c0d)=>{const _0x3d8ba8=_0x349967,_0x2d88b9=document[_0x3d8ba8(0x400)](_0x3d8ba8(0xf2));_0x2d88b9[_0x3d8ba8(0x5ef)]=_0x4c1e82,_0x2d88b9['onload']=function(_0x2db83f){const _0x4bf8a8=_0x3d8ba8;_0xf9b9e1&&_0x2d88b9[_0x4bf8a8(0x10a)](),_0x4a3b55(_0x2db83f);},_0x2d88b9[_0x3d8ba8(0x979)]=function(){const _0x1826bc=_0x3d8ba8;_0x419c0d(new Error(_0x1826bc(0x71a)+_0x2d88b9[_0x1826bc(0x5ef)]));},(document['head']||document[_0x3d8ba8(0x176)])[_0x3d8ba8(0x45e)](_0x2d88b9);});}function _0x6a81df(_0x389f36){const _0xf9c232=_0xa89a4b;console[_0xf9c232(0x4f4)](_0xf9c232(0x76d)+_0x389f36);}let _0x2849e2;class _0x3b6bd3{static[_0xa89a4b(0x3d7)](_0x18e9ec){const _0x40a4c5=_0xa89a4b;if(!_0x18e9ec||typeof _0x18e9ec!==_0x40a4c5(0x8cd))return null;_0x2849e2||=new RegExp(_0x40a4c5(0x2ce)+_0x40a4c5(0x2d3)+'(\x5cd{2})?'+'(\x5cd{2})?'+_0x40a4c5(0x5f4)+'(\x5cd{2})?'+_0x40a4c5(0x5f4)+_0x40a4c5(0x4e3)+_0x40a4c5(0x5f4)+'\x27?'+'(\x5cd{2})?'+'\x27?');const _0x25e2ba=_0x2849e2[_0x40a4c5(0x249)](_0x18e9ec);if(!_0x25e2ba)return null;const _0x58cae3=parseInt(_0x25e2ba[0x1],0xa);let _0x47b224=parseInt(_0x25e2ba[0x2],0xa);_0x47b224=_0x47b224>=0x1&&_0x47b224<=0xc?_0x47b224-0x1:0x0;let _0x530c34=parseInt(_0x25e2ba[0x3],0xa);_0x530c34=_0x530c34>=0x1&&_0x530c34<=0x1f?_0x530c34:0x1;let _0x24fa05=parseInt(_0x25e2ba[0x4],0xa);_0x24fa05=_0x24fa05>=0x0&&_0x24fa05<=0x17?_0x24fa05:0x0;let _0x229298=parseInt(_0x25e2ba[0x5],0xa);_0x229298=_0x229298>=0x0&&_0x229298<=0x3b?_0x229298:0x0;let _0x384580=parseInt(_0x25e2ba[0x6],0xa);_0x384580=_0x384580>=0x0&&_0x384580<=0x3b?_0x384580:0x0;const _0x4a7cc6=_0x25e2ba[0x7]||'Z';let _0x28e15a=parseInt(_0x25e2ba[0x8],0xa);_0x28e15a=_0x28e15a>=0x0&&_0x28e15a<=0x17?_0x28e15a:0x0;let _0xe51331=parseInt(_0x25e2ba[0x9],0xa)||0x0;_0xe51331=_0xe51331>=0x0&&_0xe51331<=0x3b?_0xe51331:0x0;if(_0x4a7cc6==='-')_0x24fa05+=_0x28e15a,_0x229298+=_0xe51331;else _0x4a7cc6==='+'&&(_0x24fa05-=_0x28e15a,_0x229298-=_0xe51331);return new Date(Date[_0x40a4c5(0x594)](_0x58cae3,_0x47b224,_0x530c34,_0x24fa05,_0x229298,_0x384580));}}_0xfff2ac[_0xa89a4b(0x35e)]=_0x3b6bd3;function _0x5365e0(_0x1c3e9f,_0x427fca){const _0x446074=_0xa89a4b;let {scale:scale=0x1,rotation:rotation=0x0}=_0x427fca;const {width:_0x26eee9,height:_0x59ea66}=_0x1c3e9f[_0x446074(0x6ec)]['style'],_0x558b21=[0x0,0x0,parseInt(_0x26eee9),parseInt(_0x59ea66)];return new _0x39f7c3({'viewBox':_0x558b21,'scale':scale,'rotation':rotation});}function _0x3d2c16(_0x4c704c){const _0x5d97a7=_0xa89a4b;if(_0x4c704c[_0x5d97a7(0x2aa)]('#')){const _0x22a22e=parseInt(_0x4c704c['slice'](0x1),0x10);return[(_0x22a22e&0xff0000)>>0x10,(_0x22a22e&0xff00)>>0x8,_0x22a22e&0xff];}if(_0x4c704c[_0x5d97a7(0x2aa)](_0x5d97a7(0x624)))return _0x4c704c[_0x5d97a7(0x80c)](0x4,-0x1)['split'](',')[_0x5d97a7(0x7ec)](_0x45d363=>parseInt(_0x45d363));if(_0x4c704c[_0x5d97a7(0x2aa)]('rgba('))return _0x4c704c[_0x5d97a7(0x80c)](0x5,-0x1)[_0x5d97a7(0x6db)](',')['map'](_0x59e9ad=>parseInt(_0x59e9ad))[_0x5d97a7(0x80c)](0x0,0x3);return(0x0,_0x4dba7e[_0x5d97a7(0x472)])('Not\x20a\x20valid\x20color\x20format:\x20\x22'+_0x4c704c+'\x22'),[0x0,0x0,0x0];}function _0xc40b1c(_0x4e48bf){const _0x130155=_0xa89a4b,_0x5b0603=document[_0x130155(0x400)](_0x130155(0x901));_0x5b0603[_0x130155(0x498)][_0x130155(0x269)]=_0x130155(0x495),document['body'][_0x130155(0x45e)](_0x5b0603);for(const _0x2c9be7 of _0x4e48bf['keys']()){_0x5b0603[_0x130155(0x498)][_0x130155(0x5fe)]=_0x2c9be7;const _0xa7fea6=window[_0x130155(0x6ad)](_0x5b0603)['color'];_0x4e48bf[_0x130155(0x98e)](_0x2c9be7,_0x3d2c16(_0xa7fea6));}_0x5b0603[_0x130155(0x10a)]();}function _0xe26f05(_0x8522ea){const {a:_0x10676e,b:_0x1cb63c,c:_0x4070f7,d:_0xec667c,e:_0x44750f,f:_0x116d18}=_0x8522ea['getTransform']();return[_0x10676e,_0x1cb63c,_0x4070f7,_0xec667c,_0x44750f,_0x116d18];}function _0xe7c9ca(_0x23601a){const _0x4b3771=_0xa89a4b,{a:_0x2c4c4f,b:_0x4780ee,c:_0x29216b,d:_0x7e484d,e:_0x4ccf25,f:_0x3885e5}=_0x23601a[_0x4b3771(0x56a)]()[_0x4b3771(0x43d)]();return[_0x2c4c4f,_0x4780ee,_0x29216b,_0x7e484d,_0x4ccf25,_0x3885e5];}function _0x1c7562(_0x3452a1,_0xa6f51a){const _0x457bf3=_0xa89a4b;let _0x503986=arguments['length']>0x2&&arguments[0x2]!==undefined?arguments[0x2]:![],_0x485bb5=arguments[_0x457bf3(0x557)]>0x3&&arguments[0x3]!==undefined?arguments[0x3]:!![];if(_0xa6f51a instanceof _0x39f7c3){const {pageWidth:_0x24e770,pageHeight:_0x22f17d}=_0xa6f51a['rawDims'],{style:_0x4f78c6}=_0x3452a1,_0x2e58b0=_0x457bf3(0x222)+_0x24e770+_0x457bf3(0x426),_0x2ea265=_0x457bf3(0x222)+_0x22f17d+_0x457bf3(0x426);!_0x503986||_0xa6f51a[_0x457bf3(0x7af)]%0xb4===0x0?(_0x4f78c6['width']=_0x2e58b0,_0x4f78c6[_0x457bf3(0x999)]=_0x2ea265):(_0x4f78c6[_0x457bf3(0x98b)]=_0x2ea265,_0x4f78c6[_0x457bf3(0x999)]=_0x2e58b0);}_0x485bb5&&_0x3452a1['setAttribute'](_0x457bf3(0x747),_0xa6f51a[_0x457bf3(0x7af)]);}},(_0x4545f8,_0x5d8a7c,_0x258a69)=>{'use strict';const _0x1bd5d0=a0_0x160d;Object[_0x1bd5d0(0x430)](_0x5d8a7c,'__esModule',{'value':!![]}),_0x5d8a7c[_0x1bd5d0(0x99b)]=_0x5d8a7c[_0x1bd5d0(0x4c6)]=_0x5d8a7c[_0x1bd5d0(0x6cb)]=_0x5d8a7c['BaseCanvasFactory']=_0x5d8a7c[_0x1bd5d0(0x704)]=void 0x0;var _0x153032=_0x258a69(0x1);class _0x13462e{constructor(){const _0x4889e1=_0x1bd5d0;this[_0x4889e1(0x6ef)]===_0x13462e&&(0x0,_0x153032[_0x4889e1(0x749)])(_0x4889e1(0x6aa));}[_0x1bd5d0(0x961)](_0x4c6dc6){const _0xc547e2=_0x1bd5d0;return _0xc547e2(0x122);}[_0x1bd5d0(0x7b1)](_0x4b89b7,_0x573b01){const _0x3370e7=_0x1bd5d0;return _0x3370e7(0x122);}[_0x1bd5d0(0x74c)](_0x578cbd,_0x10d1e2,_0x54a9d8,_0x134d4d){const _0xd7bd74=_0x1bd5d0;return _0xd7bd74(0x122);}[_0x1bd5d0(0x256)](){const _0x156226=_0x1bd5d0;let _0x1111c2=arguments[_0x156226(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:![];}}_0x5d8a7c['BaseFilterFactory']=_0x13462e;class _0x515fa3{constructor(){const _0x2a30fc=_0x1bd5d0;this['constructor']===_0x515fa3&&(0x0,_0x153032[_0x2a30fc(0x749)])(_0x2a30fc(0x804));}[_0x1bd5d0(0x77c)](_0x5341c0,_0x58c21f){const _0x4891f9=_0x1bd5d0;if(_0x5341c0<=0x0||_0x58c21f<=0x0)throw new Error(_0x4891f9(0x871));const _0x19cd5b=this['_createCanvas'](_0x5341c0,_0x58c21f);return{'canvas':_0x19cd5b,'context':_0x19cd5b[_0x4891f9(0x802)]('2d')};}[_0x1bd5d0(0x7cc)](_0x320314,_0x1959b4,_0x268758){const _0x1601f6=_0x1bd5d0;if(!_0x320314[_0x1601f6(0x75a)])throw new Error(_0x1601f6(0x995));if(_0x1959b4<=0x0||_0x268758<=0x0)throw new Error(_0x1601f6(0x871));_0x320314[_0x1601f6(0x75a)][_0x1601f6(0x98b)]=_0x1959b4,_0x320314[_0x1601f6(0x75a)][_0x1601f6(0x999)]=_0x268758;}['destroy'](_0x4783c0){const _0x24ebff=_0x1bd5d0;if(!_0x4783c0[_0x24ebff(0x75a)])throw new Error(_0x24ebff(0x995));_0x4783c0[_0x24ebff(0x75a)]['width']=0x0,_0x4783c0[_0x24ebff(0x75a)][_0x24ebff(0x999)]=0x0,_0x4783c0[_0x24ebff(0x75a)]=null,_0x4783c0[_0x24ebff(0x1a6)]=null;}[_0x1bd5d0(0x8da)](_0x8d276d,_0x1dc04f){const _0x318775=_0x1bd5d0;(0x0,_0x153032[_0x318775(0x749)])(_0x318775(0x604));}}_0x5d8a7c[_0x1bd5d0(0x46f)]=_0x515fa3;class _0x431423{constructor(_0x244e84){const _0x23505d=_0x1bd5d0;let {baseUrl:baseUrl=null,isCompressed:isCompressed=!![]}=_0x244e84;this[_0x23505d(0x6ef)]===_0x431423&&(0x0,_0x153032[_0x23505d(0x749)])(_0x23505d(0x673)),this[_0x23505d(0x43a)]=baseUrl,this[_0x23505d(0x15b)]=isCompressed;}async[_0x1bd5d0(0x940)](_0xe0a127){const _0x2feb0d=_0x1bd5d0;let {name:_0x133eb8}=_0xe0a127;if(!this[_0x2feb0d(0x43a)])throw new Error(_0x2feb0d(0x991)+_0x2feb0d(0x63e));if(!_0x133eb8)throw new Error('CMap\x20name\x20must\x20be\x20specified.');const _0x43d5be=this[_0x2feb0d(0x43a)]+_0x133eb8+(this['isCompressed']?_0x2feb0d(0x89a):''),_0x38ca0b=this['isCompressed']?_0x153032[_0x2feb0d(0x4a3)][_0x2feb0d(0x99c)]:_0x153032[_0x2feb0d(0x4a3)]['NONE'];return this[_0x2feb0d(0x863)](_0x43d5be,_0x38ca0b)[_0x2feb0d(0x75f)](_0x35b51a=>{const _0x3b57b8=_0x2feb0d;throw new Error(_0x3b57b8(0x38c)+(this[_0x3b57b8(0x15b)]?_0x3b57b8(0x9cb):'')+_0x3b57b8(0x7c0)+_0x43d5be);});}[_0x1bd5d0(0x863)](_0x504aef,_0x4391af){const _0x18b395=_0x1bd5d0;(0x0,_0x153032[_0x18b395(0x749)])(_0x18b395(0x825));}}_0x5d8a7c[_0x1bd5d0(0x704)]=_0x431423;class _0x3fddec{constructor(_0x1790a1){const _0x545bd4=_0x1bd5d0;let {baseUrl:baseUrl=null}=_0x1790a1;this['constructor']===_0x3fddec&&(0x0,_0x153032[_0x545bd4(0x749)])(_0x545bd4(0x528)),this[_0x545bd4(0x43a)]=baseUrl;}async['fetch'](_0x412a91){const _0x2722f6=_0x1bd5d0;let {filename:_0xcc5297}=_0x412a91;if(!this[_0x2722f6(0x43a)])throw new Error(_0x2722f6(0x92d)+'the\x20\x22standardFontDataUrl\x22\x20API\x20parameter\x20is\x20provided.');if(!_0xcc5297)throw new Error('Font\x20filename\x20must\x20be\x20specified.');const _0x4c2456=''+this[_0x2722f6(0x43a)]+_0xcc5297;return this['_fetchData'](_0x4c2456)[_0x2722f6(0x75f)](_0x2e8ac1=>{const _0x22ac74=_0x2722f6;throw new Error(_0x22ac74(0x8bf)+_0x4c2456);});}[_0x1bd5d0(0x863)](_0x5390cb){(0x0,_0x153032['unreachable'])('Abstract\x20method\x20`_fetchData`\x20called.');}}_0x5d8a7c[_0x1bd5d0(0x99b)]=_0x3fddec;class _0x56bb98{constructor(){const _0x2b4653=_0x1bd5d0;this[_0x2b4653(0x6ef)]===_0x56bb98&&(0x0,_0x153032['unreachable'])('Cannot\x20initialize\x20BaseSVGFactory.');}[_0x1bd5d0(0x77c)](_0x543cb5,_0xf1f3ee){const _0x739c98=_0x1bd5d0;let _0x3fd361=arguments[_0x739c98(0x557)]>0x2&&arguments[0x2]!==undefined?arguments[0x2]:![];if(_0x543cb5<=0x0||_0xf1f3ee<=0x0)throw new Error(_0x739c98(0x942));const _0x327723=this[_0x739c98(0x558)](_0x739c98(0x4b0));return _0x327723[_0x739c98(0x636)](_0x739c98(0x5b4),'1.1'),!_0x3fd361&&(_0x327723[_0x739c98(0x636)](_0x739c98(0x98b),_0x543cb5+'px'),_0x327723[_0x739c98(0x636)](_0x739c98(0x999),_0xf1f3ee+'px')),_0x327723['setAttribute'](_0x739c98(0x299),_0x739c98(0x122)),_0x327723[_0x739c98(0x636)](_0x739c98(0x15f),_0x739c98(0x198)+_0x543cb5+'\x20'+_0xf1f3ee),_0x327723;}[_0x1bd5d0(0x400)](_0x3d8949){const _0xe74aea=_0x1bd5d0;if(typeof _0x3d8949!==_0xe74aea(0x8cd))throw new Error(_0xe74aea(0x4aa));return this[_0xe74aea(0x558)](_0x3d8949);}[_0x1bd5d0(0x558)](_0x2398aa){const _0x5aa2c9=_0x1bd5d0;(0x0,_0x153032[_0x5aa2c9(0x749)])(_0x5aa2c9(0x2e8));}}_0x5d8a7c[_0x1bd5d0(0x4c6)]=_0x56bb98;},(_0x5d9031,_0x46d595,_0x472e88)=>{'use strict';const _0x2e3b7f=a0_0x160d;Object[_0x2e3b7f(0x430)](_0x46d595,'__esModule',{'value':!![]}),_0x46d595[_0x2e3b7f(0x54d)]=void 0x0;var _0x3a88fd=_0x472e88(0x1);const _0x578d12=0xc3d2e1f0,_0x579dd6=0xffff0000,_0x5193f2=0xffff;class _0x292fac{constructor(_0x506d48){this['h1']=_0x506d48?_0x506d48&0xffffffff:_0x578d12,this['h2']=_0x506d48?_0x506d48&0xffffffff:_0x578d12;}[_0x2e3b7f(0x1b4)](_0x14b213){const _0x436438=_0x2e3b7f;let _0x3d2890,_0xe929f6;if(typeof _0x14b213===_0x436438(0x8cd)){_0x3d2890=new Uint8Array(_0x14b213[_0x436438(0x557)]*0x2),_0xe929f6=0x0;for(let _0xae0cb3=0x0,_0x4ec1b2=_0x14b213[_0x436438(0x557)];_0xae0cb3<_0x4ec1b2;_0xae0cb3++){const _0x354105=_0x14b213[_0x436438(0x9f3)](_0xae0cb3);_0x354105<=0xff?_0x3d2890[_0xe929f6++]=_0x354105:(_0x3d2890[_0xe929f6++]=_0x354105>>>0x8,_0x3d2890[_0xe929f6++]=_0x354105&0xff);}}else{if((0x0,_0x3a88fd[_0x436438(0x14d)])(_0x14b213))_0x3d2890=_0x14b213['slice'](),_0xe929f6=_0x3d2890[_0x436438(0x110)];else throw new Error(_0x436438(0x8c3)+_0x436438(0x1c3));}const _0x1d743a=_0xe929f6>>0x2,_0x5c581f=_0xe929f6-_0x1d743a*0x4,_0x554948=new Uint32Array(_0x3d2890['buffer'],0x0,_0x1d743a);let _0x378cf9=0x0,_0x15c30d=0x0,_0x59ce3c=this['h1'],_0xc90f5b=this['h2'];const _0x5ee31f=0xcc9e2d51,_0x1f5e19=0x1b873593,_0x4263c6=_0x5ee31f&_0x5193f2,_0x8b9599=_0x1f5e19&_0x5193f2;for(let _0x4e5f5d=0x0;_0x4e5f5d<_0x1d743a;_0x4e5f5d++){_0x4e5f5d&0x1?(_0x378cf9=_0x554948[_0x4e5f5d],_0x378cf9=_0x378cf9*_0x5ee31f&_0x579dd6|_0x378cf9*_0x4263c6&_0x5193f2,_0x378cf9=_0x378cf9<<0xf|_0x378cf9>>>0x11,_0x378cf9=_0x378cf9*_0x1f5e19&_0x579dd6|_0x378cf9*_0x8b9599&_0x5193f2,_0x59ce3c^=_0x378cf9,_0x59ce3c=_0x59ce3c<<0xd|_0x59ce3c>>>0x13,_0x59ce3c=_0x59ce3c*0x5+0xe6546b64):(_0x15c30d=_0x554948[_0x4e5f5d],_0x15c30d=_0x15c30d*_0x5ee31f&_0x579dd6|_0x15c30d*_0x4263c6&_0x5193f2,_0x15c30d=_0x15c30d<<0xf|_0x15c30d>>>0x11,_0x15c30d=_0x15c30d*_0x1f5e19&_0x579dd6|_0x15c30d*_0x8b9599&_0x5193f2,_0xc90f5b^=_0x15c30d,_0xc90f5b=_0xc90f5b<<0xd|_0xc90f5b>>>0x13,_0xc90f5b=_0xc90f5b*0x5+0xe6546b64);}_0x378cf9=0x0;switch(_0x5c581f){case 0x3:_0x378cf9^=_0x3d2890[_0x1d743a*0x4+0x2]<<0x10;case 0x2:_0x378cf9^=_0x3d2890[_0x1d743a*0x4+0x1]<<0x8;case 0x1:_0x378cf9^=_0x3d2890[_0x1d743a*0x4],_0x378cf9=_0x378cf9*_0x5ee31f&_0x579dd6|_0x378cf9*_0x4263c6&_0x5193f2,_0x378cf9=_0x378cf9<<0xf|_0x378cf9>>>0x11,_0x378cf9=_0x378cf9*_0x1f5e19&_0x579dd6|_0x378cf9*_0x8b9599&_0x5193f2;_0x1d743a&0x1?_0x59ce3c^=_0x378cf9:_0xc90f5b^=_0x378cf9;}this['h1']=_0x59ce3c,this['h2']=_0xc90f5b;}[_0x2e3b7f(0x1fa)](){const _0x59f037=_0x2e3b7f;let _0x240234=this['h1'],_0x38c4be=this['h2'];return _0x240234^=_0x38c4be>>>0x1,_0x240234=_0x240234*0xed558ccd&_0x579dd6|_0x240234*0x8ccd&_0x5193f2,_0x38c4be=_0x38c4be*0xff51afd7&_0x579dd6|((_0x38c4be<<0x10|_0x240234>>>0x10)*0xafd7ed55&_0x579dd6)>>>0x10,_0x240234^=_0x38c4be>>>0x1,_0x240234=_0x240234*0x1a85ec53&_0x579dd6|_0x240234*0xec53&_0x5193f2,_0x38c4be=_0x38c4be*0xc4ceb9fe&_0x579dd6|((_0x38c4be<<0x10|_0x240234>>>0x10)*0xb9fe1a85&_0x579dd6)>>>0x10,_0x240234^=_0x38c4be>>>0x1,(_0x240234>>>0x0)[_0x59f037(0x83f)](0x10)[_0x59f037(0x3c2)](0x8,'0')+(_0x38c4be>>>0x0)['toString'](0x10)[_0x59f037(0x3c2)](0x8,'0');}}_0x46d595[_0x2e3b7f(0x54d)]=_0x292fac;},(_0x5d38e6,_0x4b5463,_0xbd7f4c)=>{'use strict';const _0x3529c6=a0_0x160d;Object[_0x3529c6(0x430)](_0x4b5463,_0x3529c6(0x19a),{'value':!![]}),_0x4b5463[_0x3529c6(0x6e3)]=_0x4b5463[_0x3529c6(0x575)]=void 0x0;var _0x4f0b03=_0xbd7f4c(0x1),_0x5b9c30=_0xbd7f4c(0x3);class _0x1cd98d{#systemFonts=new Set();constructor(_0xbe475f){const _0x1964fe=_0x3529c6;let {ownerDocument:ownerDocument=globalThis[_0x1964fe(0x2b1)],styleElement:styleElement=null}=_0xbe475f;this[_0x1964fe(0xe7)]=ownerDocument,this['nativeFontFaces']=new Set(),this['styleElement']=null,this[_0x1964fe(0x97d)]=[],this[_0x1964fe(0x43b)]=0x0;}[_0x3529c6(0x2f1)](_0x13bfe3){const _0x7651da=_0x3529c6;this[_0x7651da(0x7cb)][_0x7651da(0x156)](_0x13bfe3),this[_0x7651da(0xe7)]['fonts'][_0x7651da(0x156)](_0x13bfe3);}[_0x3529c6(0x10e)](_0x1dff97){const _0x5ca19d=_0x3529c6;this[_0x5ca19d(0x7cb)][_0x5ca19d(0x65f)](_0x1dff97),this[_0x5ca19d(0xe7)]['fonts']['delete'](_0x1dff97);}[_0x3529c6(0x32b)](_0x3e0324){const _0x4cad96=_0x3529c6;!this[_0x4cad96(0x136)]&&(this['styleElement']=this[_0x4cad96(0xe7)][_0x4cad96(0x400)]('style'),this[_0x4cad96(0xe7)][_0x4cad96(0x176)]['getElementsByTagName'](_0x4cad96(0x3f0))[0x0][_0x4cad96(0x45e)](this[_0x4cad96(0x136)]));const _0x372df1=this[_0x4cad96(0x136)]['sheet'];_0x372df1[_0x4cad96(0x32b)](_0x3e0324,_0x372df1[_0x4cad96(0x531)][_0x4cad96(0x557)]);}[_0x3529c6(0x1ca)](){const _0x5b20d5=_0x3529c6;for(const _0x5cf1ad of this[_0x5b20d5(0x7cb)]){this[_0x5b20d5(0xe7)][_0x5b20d5(0x6af)][_0x5b20d5(0x65f)](_0x5cf1ad);}this['nativeFontFaces'][_0x5b20d5(0x1ca)](),this.#systemFonts['clear'](),this[_0x5b20d5(0x136)]&&(this[_0x5b20d5(0x136)]['remove'](),this[_0x5b20d5(0x136)]=null);}async[_0x3529c6(0x88d)](_0x80c8dc){const _0x1a7142=_0x3529c6;if(!_0x80c8dc||this.#systemFonts['has'](_0x80c8dc[_0x1a7142(0x625)]))return;(0x0,_0x4f0b03['assert'])(!this['disableFontFace'],_0x1a7142(0xa02));if(this['isFontLoadingAPISupported']){const {loadedName:_0x8b41bb,src:_0x23fc0a,style:_0x3c308f}=_0x80c8dc,_0x2707a3=new FontFace(_0x8b41bb,_0x23fc0a,_0x3c308f);this[_0x1a7142(0x2f1)](_0x2707a3);try{await _0x2707a3[_0x1a7142(0x706)](),this.#systemFonts[_0x1a7142(0x156)](_0x8b41bb);}catch{(0x0,_0x4f0b03[_0x1a7142(0x472)])(_0x1a7142(0x4d1)+_0x80c8dc[_0x1a7142(0x9c3)]+_0x1a7142(0x6dd)),this[_0x1a7142(0x10e)](_0x2707a3);}return;}(0x0,_0x4f0b03[_0x1a7142(0x749)])(_0x1a7142(0x970));}async[_0x3529c6(0x5e8)](_0x56b793){const _0xac8581=_0x3529c6;if(_0x56b793[_0xac8581(0x992)]||_0x56b793[_0xac8581(0x39b)]&&!_0x56b793[_0xac8581(0x1b9)])return;_0x56b793[_0xac8581(0x992)]=!![];if(_0x56b793[_0xac8581(0x1b9)]){await this['loadSystemFont'](_0x56b793[_0xac8581(0x1b9)]);return;}if(this['isFontLoadingAPISupported']){const _0x517d9e=_0x56b793[_0xac8581(0x3b2)]();if(_0x517d9e){this[_0xac8581(0x2f1)](_0x517d9e);try{await _0x517d9e[_0xac8581(0x19f)];}catch(_0x23a2fe){(0x0,_0x4f0b03[_0xac8581(0x472)])(_0xac8581(0x9fe)+_0x517d9e[_0xac8581(0x264)]+_0xac8581(0x595)+_0x23a2fe+'\x27.'),_0x56b793[_0xac8581(0x8b6)]=!![];throw _0x23a2fe;}}return;}const _0x5c4a76=_0x56b793[_0xac8581(0x410)]();if(_0x5c4a76){this[_0xac8581(0x32b)](_0x5c4a76);if(this[_0xac8581(0x413)])return;await new Promise(_0x1c5158=>{const _0x3d555c=_0xac8581,_0x201fee=this[_0x3d555c(0x6a7)](_0x1c5158);this[_0x3d555c(0x239)](_0x56b793,_0x201fee);});}}get['isFontLoadingAPISupported'](){const _0x55f8a6=_0x3529c6,_0x4ecc81=!!this[_0x55f8a6(0xe7)]?.['fonts'];return(0x0,_0x4f0b03[_0x55f8a6(0x51d)])(this,_0x55f8a6(0x529),_0x4ecc81);}get[_0x3529c6(0x413)](){const _0x297460=_0x3529c6;let _0x2f047e=![];if(_0x5b9c30['isNodeJS'])_0x2f047e=!![];else typeof navigator!==_0x297460(0x32c)&&/Mozilla\/5.0.*?rv:\d+.*? Gecko/[_0x297460(0x6e7)](navigator['userAgent'])&&(_0x2f047e=!![]);return(0x0,_0x4f0b03[_0x297460(0x51d)])(this,_0x297460(0x413),_0x2f047e);}['_queueLoadingCallback'](_0x1fe246){function _0x3442d7(){const _0x3f8459=a0_0x160d;(0x0,_0x4f0b03[_0x3f8459(0x63a)])(!_0x113c2a['done'],_0x3f8459(0x6e9)),_0x113c2a[_0x3f8459(0x4bf)]=!![];while(_0x12786f[_0x3f8459(0x557)]>0x0&&_0x12786f[0x0][_0x3f8459(0x4bf)]){const _0x58bc5c=_0x12786f['shift']();setTimeout(_0x58bc5c[_0x3f8459(0x35c)],0x0);}}const {loadingRequests:_0x12786f}=this,_0x113c2a={'done':![],'complete':_0x3442d7,'callback':_0x1fe246};return _0x12786f['push'](_0x113c2a),_0x113c2a;}get['_loadTestFont'](){const _0x482b6d=_0x3529c6,_0x26dcbe=atob('T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA'+_0x482b6d(0x141)+_0x482b6d(0x15e)+_0x482b6d(0x210)+_0x482b6d(0x2dc)+_0x482b6d(0x399)+_0x482b6d(0x7d4)+_0x482b6d(0x964)+_0x482b6d(0x147)+_0x482b6d(0x2c7)+_0x482b6d(0x25d)+_0x482b6d(0x5d5)+_0x482b6d(0x365)+_0x482b6d(0x6df)+'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'+_0x482b6d(0x986)+_0x482b6d(0x986)+_0x482b6d(0x1b7)+_0x482b6d(0x2bb)+_0x482b6d(0xcd)+_0x482b6d(0x320)+_0x482b6d(0x75b));return(0x0,_0x4f0b03[_0x482b6d(0x51d)])(this,'_loadTestFont',_0x26dcbe);}[_0x3529c6(0x239)](_0x330fa0,_0xb9455d){const _0x5d8f0e=_0x3529c6;function _0x53e7f5(_0x41b360,_0x18b369){const _0x316409=a0_0x160d;return _0x41b360[_0x316409(0x9f3)](_0x18b369)<<0x18|_0x41b360[_0x316409(0x9f3)](_0x18b369+0x1)<<0x10|_0x41b360[_0x316409(0x9f3)](_0x18b369+0x2)<<0x8|_0x41b360[_0x316409(0x9f3)](_0x18b369+0x3)&0xff;}function _0x470964(_0xe1b3bc,_0x520d65,_0x3c5b66,_0x558091){const _0x4ef990=a0_0x160d,_0x1d9713=_0xe1b3bc[_0x4ef990(0x5d2)](0x0,_0x520d65),_0x49e87d=_0xe1b3bc['substring'](_0x520d65+_0x3c5b66);return _0x1d9713+_0x558091+_0x49e87d;}let _0x443783,_0xe64dc7;const _0x1a6fa4=this[_0x5d8f0e(0xe7)][_0x5d8f0e(0x400)]('canvas');_0x1a6fa4['width']=0x1,_0x1a6fa4[_0x5d8f0e(0x999)]=0x1;const _0x5b95a1=_0x1a6fa4[_0x5d8f0e(0x802)]('2d');let _0x4ff6c1=0x0;function _0x4bc72d(_0x320737,_0x5bdc70){const _0x51f04d=_0x5d8f0e;if(++_0x4ff6c1>0x1e){(0x0,_0x4f0b03[_0x51f04d(0x472)])(_0x51f04d(0x752)),_0x5bdc70();return;}_0x5b95a1['font']=_0x51f04d(0x18c)+_0x320737,_0x5b95a1['fillText']('.',0x0,0x14);const _0xff239d=_0x5b95a1[_0x51f04d(0x3fc)](0x0,0x0,0x1,0x1);if(_0xff239d[_0x51f04d(0x41b)][0x3]>0x0){_0x5bdc70();return;}setTimeout(_0x4bc72d[_0x51f04d(0x5e8)](null,_0x320737,_0x5bdc70));}const _0x2cf1db='lt'+Date['now']()+this[_0x5d8f0e(0x43b)]++;let _0x1dc821=this[_0x5d8f0e(0x244)];const _0x93ba55=0x3d0;_0x1dc821=_0x470964(_0x1dc821,_0x93ba55,_0x2cf1db[_0x5d8f0e(0x557)],_0x2cf1db);const _0x2f0700=0x10,_0x3c0293=0x58585858;let _0x59042f=_0x53e7f5(_0x1dc821,_0x2f0700);for(_0x443783=0x0,_0xe64dc7=_0x2cf1db[_0x5d8f0e(0x557)]-0x3;_0x443783<_0xe64dc7;_0x443783+=0x4){_0x59042f=_0x59042f-_0x3c0293+_0x53e7f5(_0x2cf1db,_0x443783)|0x0;}_0x443783<_0x2cf1db[_0x5d8f0e(0x557)]&&(_0x59042f=_0x59042f-_0x3c0293+_0x53e7f5(_0x2cf1db+'XXX',_0x443783)|0x0);_0x1dc821=_0x470964(_0x1dc821,_0x2f0700,0x4,(0x0,_0x4f0b03['string32'])(_0x59042f));const _0x14fb00=_0x5d8f0e(0x374)+btoa(_0x1dc821)+');',_0x25d993=_0x5d8f0e(0x630)+_0x2cf1db+_0x5d8f0e(0x4cd)+_0x14fb00+'}';this[_0x5d8f0e(0x32b)](_0x25d993);const _0x2a4abe=this[_0x5d8f0e(0xe7)][_0x5d8f0e(0x400)](_0x5d8f0e(0x903));_0x2a4abe[_0x5d8f0e(0x498)][_0x5d8f0e(0x269)]=_0x5d8f0e(0x495),_0x2a4abe[_0x5d8f0e(0x498)][_0x5d8f0e(0x98b)]=_0x2a4abe[_0x5d8f0e(0x498)]['height']='10px',_0x2a4abe[_0x5d8f0e(0x498)][_0x5d8f0e(0x954)]=_0x5d8f0e(0x352),_0x2a4abe[_0x5d8f0e(0x498)][_0x5d8f0e(0x12f)]=_0x2a4abe[_0x5d8f0e(0x498)][_0x5d8f0e(0x4fd)]='0px';for(const _0x32ff1e of[_0x330fa0[_0x5d8f0e(0x625)],_0x2cf1db]){const _0x280a82=this[_0x5d8f0e(0xe7)][_0x5d8f0e(0x400)]('span');_0x280a82['textContent']='Hi',_0x280a82['style'][_0x5d8f0e(0x3a3)]=_0x32ff1e,_0x2a4abe[_0x5d8f0e(0x45e)](_0x280a82);}this['_document'][_0x5d8f0e(0x4e7)][_0x5d8f0e(0x45e)](_0x2a4abe),_0x4bc72d(_0x2cf1db,()=>{const _0x179caf=_0x5d8f0e;_0x2a4abe[_0x179caf(0x10a)](),_0xb9455d[_0x179caf(0x4e6)]();});}}_0x4b5463[_0x3529c6(0x6e3)]=_0x1cd98d;class _0x3cf0df{constructor(_0x550a32,_0x2f72c1){const _0x43ffc5=_0x3529c6;let {isEvalSupported:isEvalSupported=!![],disableFontFace:disableFontFace=![],ignoreErrors:ignoreErrors=![],inspectFont:inspectFont=null}=_0x2f72c1;this['compiledGlyphs']=Object[_0x43ffc5(0x77c)](null);for(const _0x422d59 in _0x550a32){this[_0x422d59]=_0x550a32[_0x422d59];}this['isEvalSupported']=isEvalSupported!==![],this[_0x43ffc5(0x8b6)]=disableFontFace===!![],this[_0x43ffc5(0x76f)]=ignoreErrors===!![],this[_0x43ffc5(0x4f8)]=inspectFont;}['createNativeFontFace'](){const _0x13dbca=_0x3529c6;if(!this['data']||this['disableFontFace'])return null;let _0x333a2b;if(!this[_0x13dbca(0x64e)])_0x333a2b=new FontFace(this[_0x13dbca(0x625)],this['data'],{});else{const _0x32e33b={'weight':this[_0x13dbca(0x64e)][_0x13dbca(0x5f0)]};this['cssFontInfo'][_0x13dbca(0x85b)]&&(_0x32e33b[_0x13dbca(0x498)]=_0x13dbca(0x972)+this['cssFontInfo'][_0x13dbca(0x85b)]+'deg'),_0x333a2b=new FontFace(this[_0x13dbca(0x64e)]['fontFamily'],this[_0x13dbca(0x41b)],_0x32e33b);}return this[_0x13dbca(0x4f8)]?.(this),_0x333a2b;}[_0x3529c6(0x410)](){const _0x5a0083=_0x3529c6;if(!this[_0x5a0083(0x41b)]||this['disableFontFace'])return null;const _0x2c4358=(0x0,_0x4f0b03[_0x5a0083(0x6b2)])(this[_0x5a0083(0x41b)]),_0x527e00=_0x5a0083(0x905)+this[_0x5a0083(0x605)]+_0x5a0083(0x7ae)+btoa(_0x2c4358)+');';let _0x5c41a7;if(!this[_0x5a0083(0x64e)])_0x5c41a7='@font-face\x20{font-family:\x22'+this[_0x5a0083(0x625)]+_0x5a0083(0x4cd)+_0x527e00+'}';else{let _0x38b4f0=_0x5a0083(0x4b4)+this[_0x5a0083(0x64e)]['fontWeight']+';';this[_0x5a0083(0x64e)][_0x5a0083(0x85b)]&&(_0x38b4f0+=_0x5a0083(0x312)+this[_0x5a0083(0x64e)][_0x5a0083(0x85b)]+_0x5a0083(0x40f)),_0x5c41a7=_0x5a0083(0x630)+this[_0x5a0083(0x64e)][_0x5a0083(0x3a3)]+'\x22;'+_0x38b4f0+'src:'+_0x527e00+'}';}return this[_0x5a0083(0x4f8)]?.(this,_0x527e00),_0x5c41a7;}[_0x3529c6(0x82a)](_0x261d9f,_0x5264d0){const _0x3554e1=_0x3529c6;if(this['compiledGlyphs'][_0x5264d0]!==undefined)return this[_0x3554e1(0x679)][_0x5264d0];let _0x5e898a;try{_0x5e898a=_0x261d9f[_0x3554e1(0x8c4)](this[_0x3554e1(0x625)]+_0x3554e1(0x88a)+_0x5264d0);}catch(_0x55cbfc){if(!this['ignoreErrors'])throw _0x55cbfc;return(0x0,_0x4f0b03['warn'])(_0x3554e1(0x9e8)+_0x55cbfc+'\x22.'),this[_0x3554e1(0x679)][_0x5264d0]=function(_0x1cd991,_0x4e8925){};}if(this[_0x3554e1(0x221)]&&_0x4f0b03[_0x3554e1(0x7a8)][_0x3554e1(0x221)]){const _0x10d84e=[];for(const _0x68cdd of _0x5e898a){const _0x34fcca=_0x68cdd[_0x3554e1(0x1a9)]!==undefined?_0x68cdd[_0x3554e1(0x1a9)]['join'](','):'';_0x10d84e[_0x3554e1(0x7d6)]('c.',_0x68cdd[_0x3554e1(0x382)],'(',_0x34fcca,_0x3554e1(0x685));}return this[_0x3554e1(0x679)][_0x5264d0]=new Function('c','size',_0x10d84e[_0x3554e1(0x334)](''));}return this[_0x3554e1(0x679)][_0x5264d0]=function(_0x2c9e06,_0x34b45e){const _0x585b53=_0x3554e1;for(const _0x29706b of _0x5e898a){_0x29706b[_0x585b53(0x382)]===_0x585b53(0xc8)&&(_0x29706b[_0x585b53(0x1a9)]=[_0x34b45e,-_0x34b45e]),_0x2c9e06[_0x29706b[_0x585b53(0x382)]][_0x585b53(0x2d2)](_0x2c9e06,_0x29706b['args']);}};}}_0x4b5463['FontFaceObject']=_0x3cf0df;},(_0x307609,_0x14ffd0,_0x4dac07)=>{'use strict';const _0x26edfb=a0_0x160d;Object[_0x26edfb(0x430)](_0x14ffd0,_0x26edfb(0x19a),{'value':!![]}),_0x14ffd0[_0x26edfb(0x6e6)]=void 0x0;var _0x37e514=_0x4dac07(0x1),_0x1b427a=_0x4dac07(0x87),_0x51d8e3=_0x4dac07(0x8c),_0x5b082c=_0x4dac07(0x8d),_0x4d5e22=_0x4dac07(0x3);const _0x4987d2=0x10,_0xc27232=0x64,_0x3ff1fc=0x1000,_0x6710d7=0xf,_0x66c684=0xa,_0x483a52=0x3e8,_0x499ee8=0x10;function _0xf871d5(_0x461267,_0x5234fb){const _0x1eedfe=_0x26edfb;if(_0x461267['_removeMirroring'])throw new Error('Context\x20is\x20already\x20forwarding\x20operations.');_0x461267['__originalSave']=_0x461267[_0x1eedfe(0x7e2)],_0x461267[_0x1eedfe(0x8e4)]=_0x461267['restore'],_0x461267['__originalRotate']=_0x461267[_0x1eedfe(0x3bb)],_0x461267[_0x1eedfe(0x902)]=_0x461267[_0x1eedfe(0xc8)],_0x461267[_0x1eedfe(0x1db)]=_0x461267['translate'],_0x461267[_0x1eedfe(0x6fc)]=_0x461267[_0x1eedfe(0x5dd)],_0x461267['__originalSetTransform']=_0x461267[_0x1eedfe(0xf1)],_0x461267['__originalResetTransform']=_0x461267[_0x1eedfe(0x189)],_0x461267[_0x1eedfe(0x7d5)]=_0x461267[_0x1eedfe(0x8b0)],_0x461267['__originalMoveTo']=_0x461267[_0x1eedfe(0x208)],_0x461267[_0x1eedfe(0x9cd)]=_0x461267['lineTo'],_0x461267[_0x1eedfe(0x25c)]=_0x461267[_0x1eedfe(0x3c6)],_0x461267[_0x1eedfe(0x549)]=_0x461267[_0x1eedfe(0x333)],_0x461267['__originalClosePath']=_0x461267[_0x1eedfe(0x576)],_0x461267['__originalBeginPath']=_0x461267[_0x1eedfe(0x1ec)],_0x461267[_0x1eedfe(0x656)]=()=>{const _0x4a7224=_0x1eedfe;_0x461267[_0x4a7224(0x7e2)]=_0x461267[_0x4a7224(0x93a)],_0x461267[_0x4a7224(0x9ab)]=_0x461267[_0x4a7224(0x8e4)],_0x461267[_0x4a7224(0x3bb)]=_0x461267[_0x4a7224(0x8c8)],_0x461267['scale']=_0x461267[_0x4a7224(0x902)],_0x461267['translate']=_0x461267[_0x4a7224(0x1db)],_0x461267[_0x4a7224(0x5dd)]=_0x461267['__originalTransform'],_0x461267[_0x4a7224(0xf1)]=_0x461267[_0x4a7224(0x6ac)],_0x461267[_0x4a7224(0x189)]=_0x461267[_0x4a7224(0x88b)],_0x461267[_0x4a7224(0x8b0)]=_0x461267[_0x4a7224(0x7d5)],_0x461267[_0x4a7224(0x208)]=_0x461267[_0x4a7224(0x50e)],_0x461267[_0x4a7224(0x39f)]=_0x461267['__originalLineTo'],_0x461267[_0x4a7224(0x3c6)]=_0x461267[_0x4a7224(0x25c)],_0x461267[_0x4a7224(0x333)]=_0x461267[_0x4a7224(0x549)],_0x461267[_0x4a7224(0x576)]=_0x461267[_0x4a7224(0x25f)],_0x461267['beginPath']=_0x461267[_0x4a7224(0x3f9)],delete _0x461267['_removeMirroring'];},_0x461267[_0x1eedfe(0x7e2)]=function _0x2473e3(){const _0x169d9a=_0x1eedfe;_0x5234fb['save'](),this[_0x169d9a(0x93a)]();},_0x461267[_0x1eedfe(0x9ab)]=function _0x1e667e(){const _0x418014=_0x1eedfe;_0x5234fb[_0x418014(0x9ab)](),this[_0x418014(0x8e4)]();},_0x461267[_0x1eedfe(0x18d)]=function _0x58fc2c(_0x3b5a2b,_0x2b905e){const _0x560cd8=_0x1eedfe;_0x5234fb[_0x560cd8(0x18d)](_0x3b5a2b,_0x2b905e),this[_0x560cd8(0x1db)](_0x3b5a2b,_0x2b905e);},_0x461267[_0x1eedfe(0xc8)]=function _0x26d67e(_0x4f4beb,_0x1dc10f){const _0x2436f4=_0x1eedfe;_0x5234fb[_0x2436f4(0xc8)](_0x4f4beb,_0x1dc10f),this[_0x2436f4(0x902)](_0x4f4beb,_0x1dc10f);},_0x461267[_0x1eedfe(0x5dd)]=function _0x433990(_0x355bed,_0x5f0294,_0x3a2229,_0x216973,_0x21fb82,_0x1398e6){const _0x23ecac=_0x1eedfe;_0x5234fb[_0x23ecac(0x5dd)](_0x355bed,_0x5f0294,_0x3a2229,_0x216973,_0x21fb82,_0x1398e6),this['__originalTransform'](_0x355bed,_0x5f0294,_0x3a2229,_0x216973,_0x21fb82,_0x1398e6);},_0x461267[_0x1eedfe(0xf1)]=function _0x56c1ca(_0x4e6951,_0xb6c56e,_0x26871b,_0x358419,_0x30fb53,_0x44bfca){const _0x144226=_0x1eedfe;_0x5234fb['setTransform'](_0x4e6951,_0xb6c56e,_0x26871b,_0x358419,_0x30fb53,_0x44bfca),this[_0x144226(0x6ac)](_0x4e6951,_0xb6c56e,_0x26871b,_0x358419,_0x30fb53,_0x44bfca);},_0x461267[_0x1eedfe(0x189)]=function _0x3698ee(){_0x5234fb['resetTransform'](),this['__originalResetTransform']();},_0x461267[_0x1eedfe(0x3bb)]=function _0x338427(_0xfc7d5a){const _0x42397a=_0x1eedfe;_0x5234fb[_0x42397a(0x3bb)](_0xfc7d5a),this[_0x42397a(0x8c8)](_0xfc7d5a);},_0x461267['clip']=function _0x3299e2(_0x269852){const _0x31a6dc=_0x1eedfe;_0x5234fb[_0x31a6dc(0x8b0)](_0x269852),this[_0x31a6dc(0x7d5)](_0x269852);},_0x461267[_0x1eedfe(0x208)]=function(_0x4820c2,_0x1924d2){const _0xe6df70=_0x1eedfe;_0x5234fb[_0xe6df70(0x208)](_0x4820c2,_0x1924d2),this['__originalMoveTo'](_0x4820c2,_0x1924d2);},_0x461267['lineTo']=function(_0xb8576c,_0x4d02ed){const _0x1a39cd=_0x1eedfe;_0x5234fb[_0x1a39cd(0x39f)](_0xb8576c,_0x4d02ed),this[_0x1a39cd(0x9cd)](_0xb8576c,_0x4d02ed);},_0x461267[_0x1eedfe(0x3c6)]=function(_0x5f3e75,_0x944bff,_0xe4a341,_0x486e9d,_0xb3b2d6,_0x3b1550){const _0x3f2c9d=_0x1eedfe;_0x5234fb['bezierCurveTo'](_0x5f3e75,_0x944bff,_0xe4a341,_0x486e9d,_0xb3b2d6,_0x3b1550),this[_0x3f2c9d(0x25c)](_0x5f3e75,_0x944bff,_0xe4a341,_0x486e9d,_0xb3b2d6,_0x3b1550);},_0x461267[_0x1eedfe(0x333)]=function(_0x16c3d0,_0x26f74d,_0x26b1e9,_0x430d07){_0x5234fb['rect'](_0x16c3d0,_0x26f74d,_0x26b1e9,_0x430d07),this['__originalRect'](_0x16c3d0,_0x26f74d,_0x26b1e9,_0x430d07);},_0x461267['closePath']=function(){const _0x373c0e=_0x1eedfe;_0x5234fb[_0x373c0e(0x576)](),this[_0x373c0e(0x25f)]();},_0x461267[_0x1eedfe(0x1ec)]=function(){const _0x325416=_0x1eedfe;_0x5234fb['beginPath'](),this[_0x325416(0x3f9)]();};}class _0x127589{constructor(_0x5d5b5e){const _0x13b2a1=_0x26edfb;this['canvasFactory']=_0x5d5b5e,this[_0x13b2a1(0x812)]=Object[_0x13b2a1(0x77c)](null);}[_0x26edfb(0x6cf)](_0x119bec,_0x5007a9,_0x53dcd8){const _0x130f2d=_0x26edfb;let _0x38f595;return this[_0x130f2d(0x812)][_0x119bec]!==undefined?(_0x38f595=this['cache'][_0x119bec],this[_0x130f2d(0x5db)]['reset'](_0x38f595,_0x5007a9,_0x53dcd8)):(_0x38f595=this[_0x130f2d(0x5db)][_0x130f2d(0x77c)](_0x5007a9,_0x53dcd8),this[_0x130f2d(0x812)][_0x119bec]=_0x38f595),_0x38f595;}[_0x26edfb(0x65f)](_0x43ae60){const _0x1c06ee=_0x26edfb;delete this[_0x1c06ee(0x812)][_0x43ae60];}['clear'](){const _0x2491fb=_0x26edfb;for(const _0x3a9157 in this[_0x2491fb(0x812)]){const _0x18929d=this[_0x2491fb(0x812)][_0x3a9157];this[_0x2491fb(0x5db)][_0x2491fb(0x256)](_0x18929d),delete this[_0x2491fb(0x812)][_0x3a9157];}}}function _0x230b45(_0x5d5f6f,_0x4863a8,_0x3ca297,_0x58784f,_0x4a9005,_0x2989ef,_0x17fc16,_0x491052,_0x5c9c75,_0x958430){const _0x5526a0=_0x26edfb,[_0x27b167,_0x76b2e6,_0x131846,_0x33553f,_0x2931d1,_0x39d782]=(0x0,_0x1b427a['getCurrentTransform'])(_0x5d5f6f);if(_0x76b2e6===0x0&&_0x131846===0x0){const _0x14157f=_0x17fc16*_0x27b167+_0x2931d1,_0x192edc=Math['round'](_0x14157f),_0x3844ef=_0x491052*_0x33553f+_0x39d782,_0x405815=Math['round'](_0x3844ef),_0x3b8d04=(_0x17fc16+_0x5c9c75)*_0x27b167+_0x2931d1,_0x1817d5=Math['abs'](Math[_0x5526a0(0x7df)](_0x3b8d04)-_0x192edc)||0x1,_0x3702a3=(_0x491052+_0x958430)*_0x33553f+_0x39d782,_0xe93e66=Math['abs'](Math['round'](_0x3702a3)-_0x405815)||0x1;return _0x5d5f6f[_0x5526a0(0xf1)](Math['sign'](_0x27b167),0x0,0x0,Math[_0x5526a0(0x51b)](_0x33553f),_0x192edc,_0x405815),_0x5d5f6f['drawImage'](_0x4863a8,_0x3ca297,_0x58784f,_0x4a9005,_0x2989ef,0x0,0x0,_0x1817d5,_0xe93e66),_0x5d5f6f[_0x5526a0(0xf1)](_0x27b167,_0x76b2e6,_0x131846,_0x33553f,_0x2931d1,_0x39d782),[_0x1817d5,_0xe93e66];}if(_0x27b167===0x0&&_0x33553f===0x0){const _0xfd6cf0=_0x491052*_0x131846+_0x2931d1,_0x461372=Math[_0x5526a0(0x7df)](_0xfd6cf0),_0x310f1b=_0x17fc16*_0x76b2e6+_0x39d782,_0x542acf=Math['round'](_0x310f1b),_0x3c7dac=(_0x491052+_0x958430)*_0x131846+_0x2931d1,_0x2714ec=Math[_0x5526a0(0x346)](Math[_0x5526a0(0x7df)](_0x3c7dac)-_0x461372)||0x1,_0x3b8e01=(_0x17fc16+_0x5c9c75)*_0x76b2e6+_0x39d782,_0x422fb1=Math[_0x5526a0(0x346)](Math[_0x5526a0(0x7df)](_0x3b8e01)-_0x542acf)||0x1;return _0x5d5f6f['setTransform'](0x0,Math[_0x5526a0(0x51b)](_0x76b2e6),Math[_0x5526a0(0x51b)](_0x131846),0x0,_0x461372,_0x542acf),_0x5d5f6f[_0x5526a0(0x545)](_0x4863a8,_0x3ca297,_0x58784f,_0x4a9005,_0x2989ef,0x0,0x0,_0x422fb1,_0x2714ec),_0x5d5f6f['setTransform'](_0x27b167,_0x76b2e6,_0x131846,_0x33553f,_0x2931d1,_0x39d782),[_0x422fb1,_0x2714ec];}_0x5d5f6f[_0x5526a0(0x545)](_0x4863a8,_0x3ca297,_0x58784f,_0x4a9005,_0x2989ef,_0x17fc16,_0x491052,_0x5c9c75,_0x958430);const _0x34cb0f=Math[_0x5526a0(0x8cb)](_0x27b167,_0x76b2e6),_0x2ed263=Math[_0x5526a0(0x8cb)](_0x131846,_0x33553f);return[_0x34cb0f*_0x5c9c75,_0x2ed263*_0x958430];}function _0x3c1935(_0x35d436){const _0x298831=_0x26edfb,{width:_0x12cfa0,height:_0xa32542}=_0x35d436;if(_0x12cfa0>_0x483a52||_0xa32542>_0x483a52)return null;const _0x5bad41=0x3e8,_0x321f73=new Uint8Array([0x0,0x2,0x4,0x0,0x1,0x0,0x5,0x4,0x8,0xa,0x0,0x8,0x0,0x2,0x1,0x0]),_0x1840ef=_0x12cfa0+0x1;let _0x2830e2=new Uint8Array(_0x1840ef*(_0xa32542+0x1)),_0x240005,_0x59c9eb,_0x473f3c;const _0xc981f0=_0x12cfa0+0x7&~0x7;let _0x1b5164=new Uint8Array(_0xc981f0*_0xa32542),_0x567285=0x0;for(const _0x41836a of _0x35d436[_0x298831(0x41b)]){let _0x1f29f3=0x80;while(_0x1f29f3>0x0){_0x1b5164[_0x567285++]=_0x41836a&_0x1f29f3?0x0:0xff,_0x1f29f3>>=0x1;}}let _0x3b796a=0x0;_0x567285=0x0;_0x1b5164[_0x567285]!==0x0&&(_0x2830e2[0x0]=0x1,++_0x3b796a);for(_0x59c9eb=0x1;_0x59c9eb<_0x12cfa0;_0x59c9eb++){_0x1b5164[_0x567285]!==_0x1b5164[_0x567285+0x1]&&(_0x2830e2[_0x59c9eb]=_0x1b5164[_0x567285]?0x2:0x1,++_0x3b796a),_0x567285++;}_0x1b5164[_0x567285]!==0x0&&(_0x2830e2[_0x59c9eb]=0x2,++_0x3b796a);for(_0x240005=0x1;_0x240005<_0xa32542;_0x240005++){_0x567285=_0x240005*_0xc981f0,_0x473f3c=_0x240005*_0x1840ef;_0x1b5164[_0x567285-_0xc981f0]!==_0x1b5164[_0x567285]&&(_0x2830e2[_0x473f3c]=_0x1b5164[_0x567285]?0x1:0x8,++_0x3b796a);let _0x519802=(_0x1b5164[_0x567285]?0x4:0x0)+(_0x1b5164[_0x567285-_0xc981f0]?0x8:0x0);for(_0x59c9eb=0x1;_0x59c9eb<_0x12cfa0;_0x59c9eb++){_0x519802=(_0x519802>>0x2)+(_0x1b5164[_0x567285+0x1]?0x4:0x0)+(_0x1b5164[_0x567285-_0xc981f0+0x1]?0x8:0x0),_0x321f73[_0x519802]&&(_0x2830e2[_0x473f3c+_0x59c9eb]=_0x321f73[_0x519802],++_0x3b796a),_0x567285++;}_0x1b5164[_0x567285-_0xc981f0]!==_0x1b5164[_0x567285]&&(_0x2830e2[_0x473f3c+_0x59c9eb]=_0x1b5164[_0x567285]?0x2:0x4,++_0x3b796a);if(_0x3b796a>_0x5bad41)return null;}_0x567285=_0xc981f0*(_0xa32542-0x1),_0x473f3c=_0x240005*_0x1840ef;_0x1b5164[_0x567285]!==0x0&&(_0x2830e2[_0x473f3c]=0x8,++_0x3b796a);for(_0x59c9eb=0x1;_0x59c9eb<_0x12cfa0;_0x59c9eb++){_0x1b5164[_0x567285]!==_0x1b5164[_0x567285+0x1]&&(_0x2830e2[_0x473f3c+_0x59c9eb]=_0x1b5164[_0x567285]?0x4:0x8,++_0x3b796a),_0x567285++;}_0x1b5164[_0x567285]!==0x0&&(_0x2830e2[_0x473f3c+_0x59c9eb]=0x4,++_0x3b796a);if(_0x3b796a>_0x5bad41)return null;const _0x1b3f00=new Int32Array([0x0,_0x1840ef,-0x1,0x0,-_0x1840ef,0x0,0x0,0x0,0x1]),_0x437231=new Path2D();for(_0x240005=0x0;_0x3b796a&&_0x240005<=_0xa32542;_0x240005++){let _0x195e8a=_0x240005*_0x1840ef;const _0x5d1d74=_0x195e8a+_0x12cfa0;while(_0x195e8a<_0x5d1d74&&!_0x2830e2[_0x195e8a]){_0x195e8a++;}if(_0x195e8a===_0x5d1d74)continue;_0x437231[_0x298831(0x208)](_0x195e8a%_0x1840ef,_0x240005);const _0x1aff66=_0x195e8a;let _0x3480ed=_0x2830e2[_0x195e8a];do{const _0x33d422=_0x1b3f00[_0x3480ed];do{_0x195e8a+=_0x33d422;}while(!_0x2830e2[_0x195e8a]);const _0x47880c=_0x2830e2[_0x195e8a];_0x47880c!==0x5&&_0x47880c!==0xa?(_0x3480ed=_0x47880c,_0x2830e2[_0x195e8a]=0x0):(_0x3480ed=_0x47880c&0x33*_0x3480ed>>0x4,_0x2830e2[_0x195e8a]&=_0x3480ed>>0x2|_0x3480ed<<0x2),_0x437231[_0x298831(0x39f)](_0x195e8a%_0x1840ef,_0x195e8a/_0x1840ef|0x0),!_0x2830e2[_0x195e8a]&&--_0x3b796a;}while(_0x1aff66!==_0x195e8a);--_0x240005;}_0x1b5164=null,_0x2830e2=null;const _0x5dc21e=function(_0x31b515){const _0x2932b0=_0x298831;_0x31b515['save'](),_0x31b515['scale'](0x1/_0x12cfa0,-0x1/_0xa32542),_0x31b515[_0x2932b0(0x18d)](0x0,-_0xa32542),_0x31b515[_0x2932b0(0x923)](_0x437231),_0x31b515[_0x2932b0(0x1ec)](),_0x31b515[_0x2932b0(0x9ab)]();};return _0x5dc21e;}class _0xb2a509{constructor(_0x19ef13,_0x3d34f7){const _0x378ecb=_0x26edfb;this[_0x378ecb(0x963)]=![],this[_0x378ecb(0x443)]=0x0,this[_0x378ecb(0x94d)]=0x1,this[_0x378ecb(0x5c2)]=_0x37e514[_0x378ecb(0x2d6)],this['textMatrixScale']=0x1,this[_0x378ecb(0x4f3)]=_0x37e514[_0x378ecb(0x6ab)],this['leading']=0x0,this['x']=0x0,this['y']=0x0,this[_0x378ecb(0x196)]=0x0,this[_0x378ecb(0x220)]=0x0,this[_0x378ecb(0x329)]=0x0,this[_0x378ecb(0x865)]=0x0,this['textHScale']=0x1,this[_0x378ecb(0x743)]=_0x37e514[_0x378ecb(0x38b)]['FILL'],this[_0x378ecb(0x505)]=0x0,this[_0x378ecb(0x631)]=_0x378ecb(0x83d),this[_0x378ecb(0x745)]=_0x378ecb(0x83d),this[_0x378ecb(0x4b9)]=![],this[_0x378ecb(0x587)]=0x1,this[_0x378ecb(0x2ca)]=0x1,this[_0x378ecb(0x2ad)]=0x1,this['activeSMask']=null,this[_0x378ecb(0x858)]=_0x378ecb(0x122),this[_0x378ecb(0x44f)]([0x0,0x0,_0x19ef13,_0x3d34f7]);}[_0x26edfb(0x461)](){const _0x479cf1=_0x26edfb,_0xca0587=Object[_0x479cf1(0x77c)](this);return _0xca0587['clipBox']=this['clipBox'][_0x479cf1(0x80c)](),_0xca0587;}['setCurrentPoint'](_0x45b107,_0x3c2117){this['x']=_0x45b107,this['y']=_0x3c2117;}[_0x26edfb(0x883)](_0xa91955,_0x3b3854,_0x1a642e){const _0x780fd8=_0x26edfb;[_0x3b3854,_0x1a642e]=_0x37e514[_0x780fd8(0x5d7)]['applyTransform']([_0x3b3854,_0x1a642e],_0xa91955),this[_0x780fd8(0x288)]=Math[_0x780fd8(0x81b)](this[_0x780fd8(0x288)],_0x3b3854),this[_0x780fd8(0x78e)]=Math[_0x780fd8(0x81b)](this[_0x780fd8(0x78e)],_0x1a642e),this[_0x780fd8(0x13e)]=Math[_0x780fd8(0x78d)](this[_0x780fd8(0x13e)],_0x3b3854),this['maxY']=Math[_0x780fd8(0x78d)](this[_0x780fd8(0x779)],_0x1a642e);}[_0x26edfb(0x767)](_0x1235cb,_0x2f6475){const _0x277d79=_0x26edfb,_0x3366d4=_0x37e514[_0x277d79(0x5d7)][_0x277d79(0x8a2)](_0x2f6475,_0x1235cb),_0x38b091=_0x37e514[_0x277d79(0x5d7)][_0x277d79(0x8a2)](_0x2f6475[_0x277d79(0x80c)](0x2),_0x1235cb);this[_0x277d79(0x288)]=Math['min'](this[_0x277d79(0x288)],_0x3366d4[0x0],_0x38b091[0x0]),this[_0x277d79(0x78e)]=Math[_0x277d79(0x81b)](this[_0x277d79(0x78e)],_0x3366d4[0x1],_0x38b091[0x1]),this[_0x277d79(0x13e)]=Math[_0x277d79(0x78d)](this['maxX'],_0x3366d4[0x0],_0x38b091[0x0]),this[_0x277d79(0x779)]=Math[_0x277d79(0x78d)](this[_0x277d79(0x779)],_0x3366d4[0x1],_0x38b091[0x1]);}['updateScalingPathMinMax'](_0x249848,_0x5a4db1){const _0x427730=_0x26edfb;_0x37e514['Util'][_0x427730(0x7aa)](_0x249848,_0x5a4db1),this[_0x427730(0x288)]=Math[_0x427730(0x81b)](this['minX'],_0x5a4db1[0x0]),this[_0x427730(0x13e)]=Math[_0x427730(0x78d)](this[_0x427730(0x13e)],_0x5a4db1[0x1]),this['minY']=Math['min'](this[_0x427730(0x78e)],_0x5a4db1[0x2]),this[_0x427730(0x779)]=Math[_0x427730(0x78d)](this['maxY'],_0x5a4db1[0x3]);}[_0x26edfb(0x46a)](_0x1701ef,_0x493456,_0xd00054,_0x2b577b,_0x49c686,_0x46e09c,_0x323d77,_0xc407fa,_0x249c3c,_0x3f5ccd){const _0x2a2125=_0x26edfb,_0x180736=_0x37e514[_0x2a2125(0x5d7)][_0x2a2125(0x513)](_0x493456,_0xd00054,_0x2b577b,_0x49c686,_0x46e09c,_0x323d77,_0xc407fa,_0x249c3c);if(_0x3f5ccd){_0x3f5ccd[0x0]=Math[_0x2a2125(0x81b)](_0x3f5ccd[0x0],_0x180736[0x0],_0x180736[0x2]),_0x3f5ccd[0x1]=Math[_0x2a2125(0x78d)](_0x3f5ccd[0x1],_0x180736[0x0],_0x180736[0x2]),_0x3f5ccd[0x2]=Math[_0x2a2125(0x81b)](_0x3f5ccd[0x2],_0x180736[0x1],_0x180736[0x3]),_0x3f5ccd[0x3]=Math[_0x2a2125(0x78d)](_0x3f5ccd[0x3],_0x180736[0x1],_0x180736[0x3]);return;}this[_0x2a2125(0x767)](_0x1701ef,_0x180736);}[_0x26edfb(0x814)](){const _0x141e01=_0x26edfb;let _0x26746d=arguments[_0x141e01(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:_0x51d8e3[_0x141e01(0x3b9)][_0x141e01(0x61e)],_0x4066d6=arguments[_0x141e01(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:null;const _0x2acd72=[this['minX'],this[_0x141e01(0x78e)],this[_0x141e01(0x13e)],this[_0x141e01(0x779)]];if(_0x26746d===_0x51d8e3[_0x141e01(0x3b9)][_0x141e01(0x607)]){!_0x4066d6&&(0x0,_0x37e514[_0x141e01(0x749)])(_0x141e01(0x5aa));const _0x49bad9=_0x37e514[_0x141e01(0x5d7)]['singularValueDecompose2dScale'](_0x4066d6),_0x599e91=_0x49bad9[0x0]*this[_0x141e01(0x2ad)]/0x2,_0x4b1a64=_0x49bad9[0x1]*this[_0x141e01(0x2ad)]/0x2;_0x2acd72[0x0]-=_0x599e91,_0x2acd72[0x1]-=_0x4b1a64,_0x2acd72[0x2]+=_0x599e91,_0x2acd72[0x3]+=_0x4b1a64;}return _0x2acd72;}[_0x26edfb(0x6d1)](){const _0x3def9a=_0x26edfb,_0x1f111a=_0x37e514[_0x3def9a(0x5d7)][_0x3def9a(0x441)](this['clipBox'],this['getPathBoundingBox']());this['startNewPathAndClipBox'](_0x1f111a||[0x0,0x0,0x0,0x0]);}[_0x26edfb(0x69a)](){const _0x59c883=_0x26edfb;return this[_0x59c883(0x288)]===Infinity;}['startNewPathAndClipBox'](_0x54c1ae){const _0x414fde=_0x26edfb;this[_0x414fde(0x8e7)]=_0x54c1ae,this[_0x414fde(0x288)]=Infinity,this[_0x414fde(0x78e)]=Infinity,this[_0x414fde(0x13e)]=0x0,this[_0x414fde(0x779)]=0x0;}[_0x26edfb(0x1e0)](){const _0x181faf=_0x26edfb;let _0x44bd2b=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:_0x51d8e3[_0x181faf(0x3b9)][_0x181faf(0x61e)],_0x319695=arguments[_0x181faf(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:null;return _0x37e514[_0x181faf(0x5d7)]['intersect'](this[_0x181faf(0x8e7)],this[_0x181faf(0x814)](_0x44bd2b,_0x319695));}}function _0x4b8829(_0x5e44b8,_0x4afc59){const _0x41f4ab=_0x26edfb;if(typeof ImageData!==_0x41f4ab(0x32c)&&_0x4afc59 instanceof ImageData){_0x5e44b8[_0x41f4ab(0x2b9)](_0x4afc59,0x0,0x0);return;}const _0x40446e=_0x4afc59['height'],_0x49bc8f=_0x4afc59[_0x41f4ab(0x98b)],_0x392d22=_0x40446e%_0x499ee8,_0x4958b3=(_0x40446e-_0x392d22)/_0x499ee8,_0x30c03a=_0x392d22===0x0?_0x4958b3:_0x4958b3+0x1,_0x4478c6=_0x5e44b8[_0x41f4ab(0x160)](_0x49bc8f,_0x499ee8);let _0x344a08=0x0,_0x793c4a;const _0x488064=_0x4afc59[_0x41f4ab(0x41b)],_0x3381fc=_0x4478c6['data'];let _0x5b6c03,_0x129585,_0x31b25b,_0x54ddb2;if(_0x4afc59[_0x41f4ab(0x440)]===_0x37e514[_0x41f4ab(0x163)][_0x41f4ab(0x245)]){const _0x5212fe=_0x488064['byteLength'],_0x2789c3=new Uint32Array(_0x3381fc[_0x41f4ab(0x948)],0x0,_0x3381fc[_0x41f4ab(0x110)]>>0x2),_0x4de4fa=_0x2789c3[_0x41f4ab(0x557)],_0x24a298=_0x49bc8f+0x7>>0x3,_0x2eb1a2=0xffffffff,_0x50b586=_0x37e514[_0x41f4ab(0x7a8)][_0x41f4ab(0x654)]?0xff000000:0xff;for(_0x5b6c03=0x0;_0x5b6c03<_0x30c03a;_0x5b6c03++){_0x31b25b=_0x5b6c03<_0x4958b3?_0x499ee8:_0x392d22,_0x793c4a=0x0;for(_0x129585=0x0;_0x129585<_0x31b25b;_0x129585++){const _0x5b2b4=_0x5212fe-_0x344a08;let _0x222043=0x0;const _0x2374d9=_0x5b2b4>_0x24a298?_0x49bc8f:_0x5b2b4*0x8-0x7,_0x5c3f3f=_0x2374d9&~0x7;let _0x101264=0x0,_0x4dd328=0x0;for(;_0x222043<_0x5c3f3f;_0x222043+=0x8){_0x4dd328=_0x488064[_0x344a08++],_0x2789c3[_0x793c4a++]=_0x4dd328&0x80?_0x2eb1a2:_0x50b586,_0x2789c3[_0x793c4a++]=_0x4dd328&0x40?_0x2eb1a2:_0x50b586,_0x2789c3[_0x793c4a++]=_0x4dd328&0x20?_0x2eb1a2:_0x50b586,_0x2789c3[_0x793c4a++]=_0x4dd328&0x10?_0x2eb1a2:_0x50b586,_0x2789c3[_0x793c4a++]=_0x4dd328&0x8?_0x2eb1a2:_0x50b586,_0x2789c3[_0x793c4a++]=_0x4dd328&0x4?_0x2eb1a2:_0x50b586,_0x2789c3[_0x793c4a++]=_0x4dd328&0x2?_0x2eb1a2:_0x50b586,_0x2789c3[_0x793c4a++]=_0x4dd328&0x1?_0x2eb1a2:_0x50b586;}for(;_0x222043<_0x2374d9;_0x222043++){_0x101264===0x0&&(_0x4dd328=_0x488064[_0x344a08++],_0x101264=0x80),_0x2789c3[_0x793c4a++]=_0x4dd328&_0x101264?_0x2eb1a2:_0x50b586,_0x101264>>=0x1;}}while(_0x793c4a<_0x4de4fa){_0x2789c3[_0x793c4a++]=0x0;}_0x5e44b8[_0x41f4ab(0x2b9)](_0x4478c6,0x0,_0x5b6c03*_0x499ee8);}}else{if(_0x4afc59[_0x41f4ab(0x440)]===_0x37e514['ImageKind'][_0x41f4ab(0x617)]){_0x129585=0x0,_0x54ddb2=_0x49bc8f*_0x499ee8*0x4;for(_0x5b6c03=0x0;_0x5b6c03<_0x4958b3;_0x5b6c03++){_0x3381fc['set'](_0x488064[_0x41f4ab(0x47f)](_0x344a08,_0x344a08+_0x54ddb2)),_0x344a08+=_0x54ddb2,_0x5e44b8[_0x41f4ab(0x2b9)](_0x4478c6,0x0,_0x129585),_0x129585+=_0x499ee8;}_0x5b6c03<_0x30c03a&&(_0x54ddb2=_0x49bc8f*_0x392d22*0x4,_0x3381fc['set'](_0x488064[_0x41f4ab(0x47f)](_0x344a08,_0x344a08+_0x54ddb2)),_0x5e44b8['putImageData'](_0x4478c6,0x0,_0x129585));}else{if(_0x4afc59[_0x41f4ab(0x440)]===_0x37e514[_0x41f4ab(0x163)]['RGB_24BPP']){_0x31b25b=_0x499ee8,_0x54ddb2=_0x49bc8f*_0x31b25b;for(_0x5b6c03=0x0;_0x5b6c03<_0x30c03a;_0x5b6c03++){_0x5b6c03>=_0x4958b3&&(_0x31b25b=_0x392d22,_0x54ddb2=_0x49bc8f*_0x31b25b);_0x793c4a=0x0;for(_0x129585=_0x54ddb2;_0x129585--;){_0x3381fc[_0x793c4a++]=_0x488064[_0x344a08++],_0x3381fc[_0x793c4a++]=_0x488064[_0x344a08++],_0x3381fc[_0x793c4a++]=_0x488064[_0x344a08++],_0x3381fc[_0x793c4a++]=0xff;}_0x5e44b8[_0x41f4ab(0x2b9)](_0x4478c6,0x0,_0x5b6c03*_0x499ee8);}}else throw new Error(_0x41f4ab(0x2a4)+_0x4afc59[_0x41f4ab(0x440)]);}}}function _0x5a4aed(_0x1e63cf,_0x5dd21c){const _0x5358da=_0x26edfb;if(_0x5dd21c['bitmap']){_0x1e63cf[_0x5358da(0x545)](_0x5dd21c[_0x5358da(0x7eb)],0x0,0x0);return;}const _0x2bc754=_0x5dd21c[_0x5358da(0x999)],_0x251022=_0x5dd21c[_0x5358da(0x98b)],_0x31c278=_0x2bc754%_0x499ee8,_0x1da60c=(_0x2bc754-_0x31c278)/_0x499ee8,_0x2cb61d=_0x31c278===0x0?_0x1da60c:_0x1da60c+0x1,_0x250c54=_0x1e63cf[_0x5358da(0x160)](_0x251022,_0x499ee8);let _0x30f199=0x0;const _0x299a1a=_0x5dd21c[_0x5358da(0x41b)],_0x599ec2=_0x250c54[_0x5358da(0x41b)];for(let _0x4a0da6=0x0;_0x4a0da6<_0x2cb61d;_0x4a0da6++){const _0x525f4d=_0x4a0da6<_0x1da60c?_0x499ee8:_0x31c278;({srcPos:_0x30f199}=(0x0,_0x5b082c[_0x5358da(0x62d)])({'src':_0x299a1a,'srcPos':_0x30f199,'dest':_0x599ec2,'width':_0x251022,'height':_0x525f4d,'nonBlackColor':0x0}),_0x1e63cf[_0x5358da(0x2b9)](_0x250c54,0x0,_0x4a0da6*_0x499ee8));}}function _0x567cc3(_0x49db59,_0x33c9ac){const _0x56ad21=_0x26edfb,_0x5bd65b=[_0x56ad21(0xc9),_0x56ad21(0x968),_0x56ad21(0x547),_0x56ad21(0x1b2),'lineWidth','lineCap',_0x56ad21(0x1f4),'miterLimit',_0x56ad21(0x1a2),_0x56ad21(0x59d),_0x56ad21(0x81f)];for(const _0x3101f3 of _0x5bd65b){_0x49db59[_0x3101f3]!==undefined&&(_0x33c9ac[_0x3101f3]=_0x49db59[_0x3101f3]);}_0x49db59[_0x56ad21(0x4b2)]!==undefined&&(_0x33c9ac[_0x56ad21(0x4b2)](_0x49db59[_0x56ad21(0x115)]()),_0x33c9ac['lineDashOffset']=_0x49db59['lineDashOffset']);}function _0x14e6c2(_0x4f1fb7){const _0x69e1b4=_0x26edfb;_0x4f1fb7[_0x69e1b4(0xc9)]=_0x4f1fb7[_0x69e1b4(0x968)]='#000000',_0x4f1fb7[_0x69e1b4(0x547)]='nonzero',_0x4f1fb7['globalAlpha']=0x1,_0x4f1fb7[_0x69e1b4(0x2ad)]=0x1,_0x4f1fb7[_0x69e1b4(0xc4)]='butt',_0x4f1fb7[_0x69e1b4(0x1f4)]='miter',_0x4f1fb7[_0x69e1b4(0x7d2)]=0xa,_0x4f1fb7[_0x69e1b4(0x1a2)]=_0x69e1b4(0x96b),_0x4f1fb7[_0x69e1b4(0x59d)]=_0x69e1b4(0x73e),_0x4f1fb7['setLineDash']!==undefined&&(_0x4f1fb7['setLineDash']([]),_0x4f1fb7[_0x69e1b4(0x315)]=0x0),!_0x4d5e22[_0x69e1b4(0x8c5)]&&(_0x4f1fb7['filter']=_0x69e1b4(0x122));}function _0x44505b(_0xe5e446,_0x384289,_0x5b7e18,_0x319760){const _0x298357=_0xe5e446['length'];for(let _0x243d3b=0x3;_0x243d3b<_0x298357;_0x243d3b+=0x4){const _0x401263=_0xe5e446[_0x243d3b];if(_0x401263===0x0)_0xe5e446[_0x243d3b-0x3]=_0x384289,_0xe5e446[_0x243d3b-0x2]=_0x5b7e18,_0xe5e446[_0x243d3b-0x1]=_0x319760;else{if(_0x401263<0xff){const _0x588b8d=0xff-_0x401263;_0xe5e446[_0x243d3b-0x3]=_0xe5e446[_0x243d3b-0x3]*_0x401263+_0x384289*_0x588b8d>>0x8,_0xe5e446[_0x243d3b-0x2]=_0xe5e446[_0x243d3b-0x2]*_0x401263+_0x5b7e18*_0x588b8d>>0x8,_0xe5e446[_0x243d3b-0x1]=_0xe5e446[_0x243d3b-0x1]*_0x401263+_0x319760*_0x588b8d>>0x8;}}}}function _0x5a61cd(_0x5430b9,_0x3295c3,_0x338f42){const _0x351962=_0x26edfb,_0x5b696a=_0x5430b9[_0x351962(0x557)],_0x123cb7=0x1/0xff;for(let _0x1bfc99=0x3;_0x1bfc99<_0x5b696a;_0x1bfc99+=0x4){const _0x155161=_0x338f42?_0x338f42[_0x5430b9[_0x1bfc99]]:_0x5430b9[_0x1bfc99];_0x3295c3[_0x1bfc99]=_0x3295c3[_0x1bfc99]*_0x155161*_0x123cb7|0x0;}}function _0x99785d(_0x45cec9,_0x1904fd,_0x2b3c44){const _0x1903eb=_0x45cec9['length'];for(let _0x559701=0x3;_0x559701<_0x1903eb;_0x559701+=0x4){const _0x4e86a8=_0x45cec9[_0x559701-0x3]*0x4d+_0x45cec9[_0x559701-0x2]*0x98+_0x45cec9[_0x559701-0x1]*0x1c;_0x1904fd[_0x559701]=_0x2b3c44?_0x1904fd[_0x559701]*_0x2b3c44[_0x4e86a8>>0x8]>>0x8:_0x1904fd[_0x559701]*_0x4e86a8>>0x10;}}function _0x2b7fca(_0x1056e4,_0x389a83,_0x5ee504,_0xeab05c,_0x4d85d0,_0x5859b4,_0x168048,_0x3a6465,_0x4d5c47,_0x3d8dc2,_0x32c64b){const _0x2b89e2=_0x26edfb,_0x427e12=!!_0x5859b4,_0x5eb9ab=_0x427e12?_0x5859b4[0x0]:0x0,_0x5a439c=_0x427e12?_0x5859b4[0x1]:0x0,_0x24448a=_0x427e12?_0x5859b4[0x2]:0x0;let _0x202938;_0x4d85d0==='Luminosity'?_0x202938=_0x99785d:_0x202938=_0x5a61cd;const _0x49f116=0x100000,_0x152081=Math[_0x2b89e2(0x81b)](_0xeab05c,Math[_0x2b89e2(0x213)](_0x49f116/_0x5ee504));for(let _0x188c2d=0x0;_0x188c2d<_0xeab05c;_0x188c2d+=_0x152081){const _0x1cc4fa=Math[_0x2b89e2(0x81b)](_0x152081,_0xeab05c-_0x188c2d),_0x9c349b=_0x1056e4[_0x2b89e2(0x3fc)](_0x3a6465-_0x3d8dc2,_0x188c2d+(_0x4d5c47-_0x32c64b),_0x5ee504,_0x1cc4fa),_0x48b864=_0x389a83['getImageData'](_0x3a6465,_0x188c2d+_0x4d5c47,_0x5ee504,_0x1cc4fa);_0x427e12&&_0x44505b(_0x9c349b['data'],_0x5eb9ab,_0x5a439c,_0x24448a),_0x202938(_0x9c349b[_0x2b89e2(0x41b)],_0x48b864['data'],_0x168048),_0x389a83['putImageData'](_0x48b864,_0x3a6465,_0x188c2d+_0x4d5c47);}}function _0x4dcd53(_0x503eeb,_0x56fedb,_0x429ad8,_0x8ce1fb){const _0x4cbd30=_0x26edfb,_0x1d6014=_0x8ce1fb[0x0],_0x3f6e19=_0x8ce1fb[0x1],_0xf4a938=_0x8ce1fb[0x2]-_0x1d6014,_0x53a51b=_0x8ce1fb[0x3]-_0x3f6e19;if(_0xf4a938===0x0||_0x53a51b===0x0)return;_0x2b7fca(_0x56fedb[_0x4cbd30(0x1a6)],_0x429ad8,_0xf4a938,_0x53a51b,_0x56fedb[_0x4cbd30(0x146)],_0x56fedb[_0x4cbd30(0x770)],_0x56fedb[_0x4cbd30(0x5b1)],_0x1d6014,_0x3f6e19,_0x56fedb[_0x4cbd30(0xdf)],_0x56fedb[_0x4cbd30(0x431)]),_0x503eeb[_0x4cbd30(0x7e2)](),_0x503eeb[_0x4cbd30(0x1b2)]=0x1,_0x503eeb[_0x4cbd30(0x1a2)]='source-over',_0x503eeb[_0x4cbd30(0xf1)](0x1,0x0,0x0,0x1,0x0,0x0),_0x503eeb[_0x4cbd30(0x545)](_0x429ad8[_0x4cbd30(0x75a)],0x0,0x0),_0x503eeb[_0x4cbd30(0x9ab)]();}function _0x49bafa(_0x450589,_0x45ac19){const _0x5b6153=_0x26edfb,_0x3c8489=_0x37e514[_0x5b6153(0x5d7)]['singularValueDecompose2dScale'](_0x450589);_0x3c8489[0x0]=Math[_0x5b6153(0x187)](_0x3c8489[0x0]),_0x3c8489[0x1]=Math[_0x5b6153(0x187)](_0x3c8489[0x1]);const _0x28cd87=Math['fround']((globalThis[_0x5b6153(0x31d)]||0x1)*_0x1b427a['PixelsPerInch'][_0x5b6153(0x9aa)]);if(_0x45ac19!==undefined)return _0x45ac19;else{if(_0x3c8489[0x0]<=_0x28cd87||_0x3c8489[0x1]<=_0x28cd87)return!![];}return![];}const _0x4a3982=[_0x26edfb(0x914),_0x26edfb(0x7df),_0x26edfb(0x2c6)],_0x17fa3e=[_0x26edfb(0x1bc),_0x26edfb(0x7df),'bevel'],_0x4944a6={},_0x1ddce9={};class _0x38810c{constructor(_0x3adeff,_0x352864,_0x26e6b0,_0x551498,_0x37e386,_0x1f0c93,_0x1c8198,_0x2926f4){const _0x3921bf=_0x26edfb;let {optionalContentConfig:_0x4d5261,markedContentStack:markedContentStack=null}=_0x1f0c93;this[_0x3921bf(0x427)]=_0x3adeff,this[_0x3921bf(0x835)]=new _0xb2a509(this['ctx'][_0x3921bf(0x75a)][_0x3921bf(0x98b)],this[_0x3921bf(0x427)][_0x3921bf(0x75a)]['height']),this[_0x3921bf(0x6ed)]=[],this[_0x3921bf(0x78f)]=null,this['pendingEOFill']=![],this[_0x3921bf(0x911)]=null,this[_0x3921bf(0x2c4)]=null,this['commonObjs']=_0x352864,this[_0x3921bf(0xdc)]=_0x26e6b0,this[_0x3921bf(0x5db)]=_0x551498,this[_0x3921bf(0x491)]=_0x37e386,this[_0x3921bf(0x26b)]=[],this[_0x3921bf(0x7d0)]=null,this[_0x3921bf(0x15a)]=null,this[_0x3921bf(0x2c8)]=[],this['groupLevel']=0x0,this[_0x3921bf(0x840)]=[],this[_0x3921bf(0x93c)]=0x0,this['tempSMask']=null,this[_0x3921bf(0x9d1)]=null,this[_0x3921bf(0x3ad)]=!![],this[_0x3921bf(0x201)]=markedContentStack||[],this[_0x3921bf(0x20b)]=_0x4d5261,this[_0x3921bf(0x4e8)]=new _0x127589(this['canvasFactory']),this[_0x3921bf(0x3c3)]=new Map(),this['annotationCanvasMap']=_0x1c8198,this['viewportScale']=0x1,this[_0x3921bf(0x75c)]=0x1,this[_0x3921bf(0x51f)]=0x1,this['pageColors']=_0x2926f4,this[_0x3921bf(0x7b5)]=[-0x1,0x0],this[_0x3921bf(0x5e6)]=null,this[_0x3921bf(0x310)]=new Map();}[_0x26edfb(0x3ef)](_0x77fb03){const _0x241a31=_0x26edfb;let _0x30f8db=arguments[_0x241a31(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:null;if(typeof _0x77fb03===_0x241a31(0x8cd))return _0x77fb03['startsWith']('g_')?this[_0x241a31(0x53b)][_0x241a31(0x8c4)](_0x77fb03):this['objs'][_0x241a31(0x8c4)](_0x77fb03);return _0x30f8db;}[_0x26edfb(0x5be)](_0x5f15c3){const _0x92b1df=_0x26edfb;let {transform:_0x578f77,viewport:_0x31dc38,transparency:transparency=![],background:background=null}=_0x5f15c3;const _0x39c2c9=this[_0x92b1df(0x427)][_0x92b1df(0x75a)][_0x92b1df(0x98b)],_0x5deca0=this[_0x92b1df(0x427)][_0x92b1df(0x75a)][_0x92b1df(0x999)],_0x18c41c=this[_0x92b1df(0x427)][_0x92b1df(0x968)];this['ctx'][_0x92b1df(0x968)]=background||_0x92b1df(0x253),this[_0x92b1df(0x427)]['fillRect'](0x0,0x0,_0x39c2c9,_0x5deca0),this['ctx']['fillStyle']=_0x18c41c;if(transparency){const _0x3dd792=this[_0x92b1df(0x4e8)][_0x92b1df(0x6cf)](_0x92b1df(0x910),_0x39c2c9,_0x5deca0);this[_0x92b1df(0x841)]=this[_0x92b1df(0x427)],this[_0x92b1df(0x2ab)]=_0x3dd792[_0x92b1df(0x75a)],this[_0x92b1df(0x427)]=_0x3dd792[_0x92b1df(0x1a6)],this[_0x92b1df(0x427)][_0x92b1df(0x7e2)](),this['ctx']['transform'](...(0x0,_0x1b427a[_0x92b1df(0x5f1)])(this[_0x92b1df(0x841)]));}this[_0x92b1df(0x427)][_0x92b1df(0x7e2)](),_0x14e6c2(this[_0x92b1df(0x427)]),_0x578f77&&(this[_0x92b1df(0x427)][_0x92b1df(0x5dd)](..._0x578f77),this[_0x92b1df(0x75c)]=_0x578f77[0x0],this[_0x92b1df(0x51f)]=_0x578f77[0x0]),this[_0x92b1df(0x427)][_0x92b1df(0x5dd)](..._0x31dc38[_0x92b1df(0x5dd)]),this['viewportScale']=_0x31dc38[_0x92b1df(0xc8)],this[_0x92b1df(0x15a)]=(0x0,_0x1b427a[_0x92b1df(0x5f1)])(this[_0x92b1df(0x427)]);}[_0x26edfb(0x381)](_0x219317,_0x176683,_0x473697,_0x1dd7d6){const _0x2b0116=_0x26edfb,_0x486960=_0x219317[_0x2b0116(0x20c)],_0xb7513a=_0x219317[_0x2b0116(0x681)];let _0x190ac6=_0x176683||0x0;const _0x1e90f0=_0x486960[_0x2b0116(0x557)];if(_0x1e90f0===_0x190ac6)return _0x190ac6;const _0x5ef22f=_0x1e90f0-_0x190ac6>_0x66c684&&typeof _0x473697===_0x2b0116(0x4ec),_0x566983=_0x5ef22f?Date[_0x2b0116(0x890)]()+_0x6710d7:0x0;let _0xe12772=0x0;const _0x58cdba=this[_0x2b0116(0x53b)],_0x2e07cf=this['objs'];let _0xfe0cdc;while(!![]){if(_0x1dd7d6!==undefined&&_0x190ac6===_0x1dd7d6['nextBreakPoint'])return _0x1dd7d6[_0x2b0116(0x5ab)](_0x190ac6,_0x473697),_0x190ac6;_0xfe0cdc=_0xb7513a[_0x190ac6];if(_0xfe0cdc!==_0x37e514['OPS'][_0x2b0116(0x2e2)])this[_0xfe0cdc][_0x2b0116(0x2d2)](this,_0x486960[_0x190ac6]);else for(const _0x4b9165 of _0x486960[_0x190ac6]){const _0x3ca9b0=_0x4b9165['startsWith']('g_')?_0x58cdba:_0x2e07cf;if(!_0x3ca9b0['has'](_0x4b9165))return _0x3ca9b0['get'](_0x4b9165,_0x473697),_0x190ac6;}_0x190ac6++;if(_0x190ac6===_0x1e90f0)return _0x190ac6;if(_0x5ef22f&&++_0xe12772>_0x66c684){if(Date[_0x2b0116(0x890)]()>_0x566983)return _0x473697(),_0x190ac6;_0xe12772=0x0;}}}#restoreInitialState(){const _0x566122=_0x26edfb;while(this[_0x566122(0x6ed)][_0x566122(0x557)]||this[_0x566122(0x7fa)]){this[_0x566122(0x9ab)]();}this[_0x566122(0x427)][_0x566122(0x9ab)](),this['transparentCanvas']&&(this[_0x566122(0x427)]=this['compositeCtx'],this[_0x566122(0x427)]['save'](),this['ctx'][_0x566122(0xf1)](0x1,0x0,0x0,0x1,0x0,0x0),this[_0x566122(0x427)][_0x566122(0x545)](this[_0x566122(0x2ab)],0x0,0x0),this['ctx'][_0x566122(0x9ab)](),this['transparentCanvas']=null);}[_0x26edfb(0x279)](){const _0xea35ce=_0x26edfb;this.#restoreInitialState(),this[_0xea35ce(0x4e8)][_0xea35ce(0x1ca)](),this['cachedPatterns']['clear']();for(const _0x19a3cd of this[_0xea35ce(0x310)][_0xea35ce(0x823)]()){for(const _0x27fd91 of _0x19a3cd[_0xea35ce(0x823)]()){typeof HTMLCanvasElement!==_0xea35ce(0x32c)&&_0x27fd91 instanceof HTMLCanvasElement&&(_0x27fd91[_0xea35ce(0x98b)]=_0x27fd91['height']=0x0);}_0x19a3cd[_0xea35ce(0x1ca)]();}this[_0xea35ce(0x310)]['clear'](),this.#drawFilter();}#drawFilter(){const _0x55efb6=_0x26edfb;if(this[_0x55efb6(0x61c)]){const _0x1b753b=this['filterFactory'][_0x55efb6(0x7b1)](this[_0x55efb6(0x61c)][_0x55efb6(0x953)],this[_0x55efb6(0x61c)][_0x55efb6(0x82f)]);if(_0x1b753b!=='none'){const _0x153305=this[_0x55efb6(0x427)][_0x55efb6(0x81f)];this[_0x55efb6(0x427)][_0x55efb6(0x81f)]=_0x1b753b,this[_0x55efb6(0x427)]['drawImage'](this[_0x55efb6(0x427)][_0x55efb6(0x75a)],0x0,0x0),this[_0x55efb6(0x427)]['filter']=_0x153305;}}}['_scaleImage'](_0x14c35b,_0x1a5825){const _0x4d4b0c=_0x26edfb,_0x2580c0=_0x14c35b[_0x4d4b0c(0x98b)],_0xf9408d=_0x14c35b['height'];let _0x1ed97a=Math[_0x4d4b0c(0x78d)](Math['hypot'](_0x1a5825[0x0],_0x1a5825[0x1]),0x1),_0x5e2af4=Math['max'](Math[_0x4d4b0c(0x8cb)](_0x1a5825[0x2],_0x1a5825[0x3]),0x1),_0x47d23b=_0x2580c0,_0x158375=_0xf9408d,_0x4188c2=_0x4d4b0c(0xd9),_0x33b9b5,_0x110c1f;while(_0x1ed97a>0x2&&_0x47d23b>0x1||_0x5e2af4>0x2&&_0x158375>0x1){let _0x278b4b=_0x47d23b,_0x4d97d5=_0x158375;_0x1ed97a>0x2&&_0x47d23b>0x1&&(_0x278b4b=_0x47d23b>=0x4000?Math['floor'](_0x47d23b/0x2)-0x1||0x1:Math['ceil'](_0x47d23b/0x2),_0x1ed97a/=_0x47d23b/_0x278b4b),_0x5e2af4>0x2&&_0x158375>0x1&&(_0x4d97d5=_0x158375>=0x4000?Math['floor'](_0x158375/0x2)-0x1||0x1:Math[_0x4d4b0c(0x213)](_0x158375)/0x2,_0x5e2af4/=_0x158375/_0x4d97d5),_0x33b9b5=this[_0x4d4b0c(0x4e8)][_0x4d4b0c(0x6cf)](_0x4188c2,_0x278b4b,_0x4d97d5),_0x110c1f=_0x33b9b5['context'],_0x110c1f[_0x4d4b0c(0x726)](0x0,0x0,_0x278b4b,_0x4d97d5),_0x110c1f['drawImage'](_0x14c35b,0x0,0x0,_0x47d23b,_0x158375,0x0,0x0,_0x278b4b,_0x4d97d5),_0x14c35b=_0x33b9b5['canvas'],_0x47d23b=_0x278b4b,_0x158375=_0x4d97d5,_0x4188c2=_0x4188c2===_0x4d4b0c(0xd9)?'prescale2':_0x4d4b0c(0xd9);}return{'img':_0x14c35b,'paintWidth':_0x47d23b,'paintHeight':_0x158375};}[_0x26edfb(0x354)](_0x527931){const _0x1de67b=_0x26edfb,_0x517d73=this['ctx'],{width:_0x1c1d3b,height:_0x232ae0}=_0x527931,_0x5b72ad=this['current']['fillColor'],_0x15d0d3=this[_0x1de67b(0x835)][_0x1de67b(0x4b9)],_0x138e95=(0x0,_0x1b427a['getCurrentTransform'])(_0x517d73);let _0x44b4be,_0x560de8,_0x1594ac,_0x56ecd2;if((_0x527931[_0x1de67b(0x7eb)]||_0x527931[_0x1de67b(0x41b)])&&_0x527931[_0x1de67b(0x68e)]>0x1){const _0x5a99d6=_0x527931[_0x1de67b(0x7eb)]||_0x527931['data'][_0x1de67b(0x948)];_0x560de8=JSON['stringify'](_0x15d0d3?_0x138e95:[_0x138e95['slice'](0x0,0x4),_0x5b72ad]),_0x44b4be=this[_0x1de67b(0x310)]['get'](_0x5a99d6);!_0x44b4be&&(_0x44b4be=new Map(),this[_0x1de67b(0x310)][_0x1de67b(0x98e)](_0x5a99d6,_0x44b4be));const _0xc8ca74=_0x44b4be['get'](_0x560de8);if(_0xc8ca74&&!_0x15d0d3){const _0x148d51=Math[_0x1de67b(0x7df)](Math['min'](_0x138e95[0x0],_0x138e95[0x2])+_0x138e95[0x4]),_0x4ec212=Math[_0x1de67b(0x7df)](Math['min'](_0x138e95[0x1],_0x138e95[0x3])+_0x138e95[0x5]);return{'canvas':_0xc8ca74,'offsetX':_0x148d51,'offsetY':_0x4ec212};}_0x1594ac=_0xc8ca74;}!_0x1594ac&&(_0x56ecd2=this[_0x1de67b(0x4e8)]['getCanvas']('maskCanvas',_0x1c1d3b,_0x232ae0),_0x5a4aed(_0x56ecd2[_0x1de67b(0x1a6)],_0x527931));let _0xfb6e1f=_0x37e514[_0x1de67b(0x5d7)][_0x1de67b(0x5dd)](_0x138e95,[0x1/_0x1c1d3b,0x0,0x0,-0x1/_0x232ae0,0x0,0x0]);_0xfb6e1f=_0x37e514[_0x1de67b(0x5d7)]['transform'](_0xfb6e1f,[0x1,0x0,0x0,0x1,0x0,-_0x232ae0]);const _0x353f57=_0x37e514[_0x1de67b(0x5d7)][_0x1de67b(0x8a2)]([0x0,0x0],_0xfb6e1f),_0x338cb2=_0x37e514[_0x1de67b(0x5d7)]['applyTransform']([_0x1c1d3b,_0x232ae0],_0xfb6e1f),_0x39c0a9=_0x37e514[_0x1de67b(0x5d7)][_0x1de67b(0x3da)]([_0x353f57[0x0],_0x353f57[0x1],_0x338cb2[0x0],_0x338cb2[0x1]]),_0x128a5f=Math[_0x1de67b(0x7df)](_0x39c0a9[0x2]-_0x39c0a9[0x0])||0x1,_0x2b5e73=Math[_0x1de67b(0x7df)](_0x39c0a9[0x3]-_0x39c0a9[0x1])||0x1,_0x35b95a=this[_0x1de67b(0x4e8)]['getCanvas'](_0x1de67b(0x1ac),_0x128a5f,_0x2b5e73),_0x220759=_0x35b95a[_0x1de67b(0x1a6)],_0x4ea25e=Math[_0x1de67b(0x81b)](_0x353f57[0x0],_0x338cb2[0x0]),_0x391218=Math[_0x1de67b(0x81b)](_0x353f57[0x1],_0x338cb2[0x1]);_0x220759['translate'](-_0x4ea25e,-_0x391218),_0x220759[_0x1de67b(0x5dd)](..._0xfb6e1f);!_0x1594ac&&(_0x1594ac=this['_scaleImage'](_0x56ecd2['canvas'],(0x0,_0x1b427a[_0x1de67b(0x932)])(_0x220759)),_0x1594ac=_0x1594ac[_0x1de67b(0x662)],_0x44b4be&&_0x15d0d3&&_0x44b4be[_0x1de67b(0x98e)](_0x560de8,_0x1594ac));_0x220759['imageSmoothingEnabled']=_0x49bafa((0x0,_0x1b427a['getCurrentTransform'])(_0x220759),_0x527931['interpolate']),_0x230b45(_0x220759,_0x1594ac,0x0,0x0,_0x1594ac[_0x1de67b(0x98b)],_0x1594ac[_0x1de67b(0x999)],0x0,0x0,_0x1c1d3b,_0x232ae0),_0x220759[_0x1de67b(0x1a2)]=_0x1de67b(0x5b7);const _0x3752be=_0x37e514[_0x1de67b(0x5d7)][_0x1de67b(0x5dd)]((0x0,_0x1b427a[_0x1de67b(0x932)])(_0x220759),[0x1,0x0,0x0,0x1,-_0x4ea25e,-_0x391218]);return _0x220759[_0x1de67b(0x968)]=_0x15d0d3?_0x5b72ad['getPattern'](_0x517d73,this,_0x3752be,_0x51d8e3[_0x1de67b(0x3b9)][_0x1de67b(0x61e)]):_0x5b72ad,_0x220759[_0x1de67b(0x974)](0x0,0x0,_0x1c1d3b,_0x232ae0),_0x44b4be&&!_0x15d0d3&&(this['cachedCanvases']['delete'](_0x1de67b(0x1ac)),_0x44b4be['set'](_0x560de8,_0x35b95a['canvas'])),{'canvas':_0x35b95a[_0x1de67b(0x75a)],'offsetX':Math[_0x1de67b(0x7df)](_0x4ea25e),'offsetY':Math[_0x1de67b(0x7df)](_0x391218)};}[_0x26edfb(0x671)](_0x43d222){const _0x412ec3=_0x26edfb;_0x43d222!==this[_0x412ec3(0x835)][_0x412ec3(0x2ad)]&&(this['_cachedScaleForStroking'][0x0]=-0x1),this['current'][_0x412ec3(0x2ad)]=_0x43d222,this['ctx'][_0x412ec3(0x2ad)]=_0x43d222;}[_0x26edfb(0x571)](_0x270023){const _0x2ee98e=_0x26edfb;this[_0x2ee98e(0x427)][_0x2ee98e(0xc4)]=_0x4a3982[_0x270023];}[_0x26edfb(0x597)](_0x102cd6){this['ctx']['lineJoin']=_0x17fa3e[_0x102cd6];}['setMiterLimit'](_0x38b206){this['ctx']['miterLimit']=_0x38b206;}[_0x26edfb(0x789)](_0x1370f4,_0x54ca20){const _0x26f29d=_0x26edfb,_0x27505b=this[_0x26f29d(0x427)];_0x27505b[_0x26f29d(0x4b2)]!==undefined&&(_0x27505b[_0x26f29d(0x4b2)](_0x1370f4),_0x27505b['lineDashOffset']=_0x54ca20);}[_0x26edfb(0x9fb)](_0x4d69a4){}[_0x26edfb(0x17f)](_0xbb6ef5){}[_0x26edfb(0x268)](_0x1d1fbc){const _0x35e8e7=_0x26edfb;for(const [_0x5ba84e,_0x4649df]of _0x1d1fbc){switch(_0x5ba84e){case'LW':this[_0x35e8e7(0x671)](_0x4649df);break;case'LC':this[_0x35e8e7(0x571)](_0x4649df);break;case'LJ':this[_0x35e8e7(0x597)](_0x4649df);break;case'ML':this[_0x35e8e7(0x8ea)](_0x4649df);break;case'D':this[_0x35e8e7(0x789)](_0x4649df[0x0],_0x4649df[0x1]);break;case'RI':this[_0x35e8e7(0x9fb)](_0x4649df);break;case'FL':this[_0x35e8e7(0x17f)](_0x4649df);break;case _0x35e8e7(0x538):this['setFont'](_0x4649df[0x0],_0x4649df[0x1]);break;case'CA':this[_0x35e8e7(0x835)][_0x35e8e7(0x2ca)]=_0x4649df;break;case'ca':this['current']['fillAlpha']=_0x4649df,this[_0x35e8e7(0x427)][_0x35e8e7(0x1b2)]=_0x4649df;break;case'BM':this[_0x35e8e7(0x427)][_0x35e8e7(0x1a2)]=_0x4649df;break;case _0x35e8e7(0x8a5):this[_0x35e8e7(0x835)][_0x35e8e7(0x627)]=_0x4649df?this['tempSMask']:null,this[_0x35e8e7(0x2ba)]=null,this[_0x35e8e7(0x8cc)]();break;case'TR':this[_0x35e8e7(0x427)][_0x35e8e7(0x81f)]=this['current'][_0x35e8e7(0x858)]=this['filterFactory']['addFilter'](_0x4649df);break;}}}get[_0x26edfb(0x7fa)](){return!!this['suspendedCtx'];}['checkSMaskState'](){const _0x584b0c=_0x26edfb,_0x3f43b2=this[_0x584b0c(0x7fa)];if(this[_0x584b0c(0x835)][_0x584b0c(0x627)]&&!_0x3f43b2)this[_0x584b0c(0x960)]();else!this[_0x584b0c(0x835)][_0x584b0c(0x627)]&&_0x3f43b2&&this[_0x584b0c(0x5f6)]();}[_0x26edfb(0x960)](){const _0x43798e=_0x26edfb;if(this[_0x43798e(0x7fa)])throw new Error(_0x43798e(0x242));const _0xfc67b2=this[_0x43798e(0x427)]['canvas'][_0x43798e(0x98b)],_0x52552f=this[_0x43798e(0x427)][_0x43798e(0x75a)]['height'],_0x347885=_0x43798e(0x672)+this[_0x43798e(0x336)],_0x1a6a55=this[_0x43798e(0x4e8)]['getCanvas'](_0x347885,_0xfc67b2,_0x52552f);this[_0x43798e(0x9d1)]=this[_0x43798e(0x427)],this[_0x43798e(0x427)]=_0x1a6a55[_0x43798e(0x1a6)];const _0x5cf46b=this['ctx'];_0x5cf46b[_0x43798e(0xf1)](...(0x0,_0x1b427a[_0x43798e(0x5f1)])(this['suspendedCtx'])),_0x567cc3(this[_0x43798e(0x9d1)],_0x5cf46b),_0xf871d5(_0x5cf46b,this[_0x43798e(0x9d1)]),this[_0x43798e(0x268)]([['BM',_0x43798e(0x96b)],['ca',0x1],['CA',0x1]]);}[_0x26edfb(0x5f6)](){const _0x5d6cfc=_0x26edfb;if(!this[_0x5d6cfc(0x7fa)])throw new Error(_0x5d6cfc(0x420));this[_0x5d6cfc(0x427)][_0x5d6cfc(0x656)](),_0x567cc3(this['ctx'],this[_0x5d6cfc(0x9d1)]),this[_0x5d6cfc(0x427)]=this[_0x5d6cfc(0x9d1)],this[_0x5d6cfc(0x9d1)]=null;}[_0x26edfb(0x765)](_0x3cbd56){const _0x4c578e=_0x26edfb;if(!this['current'][_0x4c578e(0x627)])return;!_0x3cbd56?_0x3cbd56=[0x0,0x0,this[_0x4c578e(0x427)][_0x4c578e(0x75a)][_0x4c578e(0x98b)],this[_0x4c578e(0x427)]['canvas'][_0x4c578e(0x999)]]:(_0x3cbd56[0x0]=Math[_0x4c578e(0x583)](_0x3cbd56[0x0]),_0x3cbd56[0x1]=Math['floor'](_0x3cbd56[0x1]),_0x3cbd56[0x2]=Math[_0x4c578e(0x213)](_0x3cbd56[0x2]),_0x3cbd56[0x3]=Math[_0x4c578e(0x213)](_0x3cbd56[0x3]));const _0x3e2c7e=this[_0x4c578e(0x835)][_0x4c578e(0x627)],_0x234462=this[_0x4c578e(0x9d1)];_0x4dcd53(_0x234462,_0x3e2c7e,this['ctx'],_0x3cbd56),this['ctx'][_0x4c578e(0x7e2)](),this[_0x4c578e(0x427)][_0x4c578e(0xf1)](0x1,0x0,0x0,0x1,0x0,0x0),this[_0x4c578e(0x427)]['clearRect'](0x0,0x0,this[_0x4c578e(0x427)]['canvas']['width'],this[_0x4c578e(0x427)][_0x4c578e(0x75a)][_0x4c578e(0x999)]),this['ctx'][_0x4c578e(0x9ab)]();}[_0x26edfb(0x7e2)](){const _0x54454c=_0x26edfb;this[_0x54454c(0x7fa)]?(_0x567cc3(this[_0x54454c(0x427)],this[_0x54454c(0x9d1)]),this[_0x54454c(0x9d1)][_0x54454c(0x7e2)]()):this[_0x54454c(0x427)][_0x54454c(0x7e2)]();const _0x396ef7=this['current'];this['stateStack']['push'](_0x396ef7),this[_0x54454c(0x835)]=_0x396ef7[_0x54454c(0x461)]();}['restore'](){const _0x4c0e16=_0x26edfb;this['stateStack'][_0x4c0e16(0x557)]===0x0&&this[_0x4c0e16(0x7fa)]&&this[_0x4c0e16(0x5f6)](),this[_0x4c0e16(0x6ed)][_0x4c0e16(0x557)]!==0x0&&(this[_0x4c0e16(0x835)]=this[_0x4c0e16(0x6ed)][_0x4c0e16(0x783)](),this[_0x4c0e16(0x7fa)]?(this[_0x4c0e16(0x9d1)][_0x4c0e16(0x9ab)](),_0x567cc3(this[_0x4c0e16(0x9d1)],this[_0x4c0e16(0x427)])):this['ctx'][_0x4c0e16(0x9ab)](),this[_0x4c0e16(0x8cc)](),this[_0x4c0e16(0x78f)]=null,this[_0x4c0e16(0x7b5)][0x0]=-0x1,this[_0x4c0e16(0x5e6)]=null);}[_0x26edfb(0x5dd)](_0x326cd4,_0x384800,_0x2b6200,_0x16e866,_0x277197,_0xab5677){const _0x52225a=_0x26edfb;this[_0x52225a(0x427)][_0x52225a(0x5dd)](_0x326cd4,_0x384800,_0x2b6200,_0x16e866,_0x277197,_0xab5677),this[_0x52225a(0x7b5)][0x0]=-0x1,this[_0x52225a(0x5e6)]=null;}[_0x26edfb(0x90e)](_0xf6b485,_0xb0e700,_0x463797){const _0x3cc333=_0x26edfb,_0x55227b=this['ctx'],_0x11e0bc=this['current'];let _0x35833a=_0x11e0bc['x'],_0x300ff7=_0x11e0bc['y'],_0x135b9d,_0x1adb80;const _0x34f4a9=(0x0,_0x1b427a[_0x3cc333(0x5f1)])(_0x55227b),_0x31f3c3=_0x34f4a9[0x0]===0x0&&_0x34f4a9[0x3]===0x0||_0x34f4a9[0x1]===0x0&&_0x34f4a9[0x2]===0x0,_0x5f65a5=_0x31f3c3?_0x463797[_0x3cc333(0x80c)](0x0):null;for(let _0x4dbc86=0x0,_0x46edf0=0x0,_0x4d0a7c=_0xf6b485['length'];_0x4dbc86<_0x4d0a7c;_0x4dbc86++){switch(_0xf6b485[_0x4dbc86]|0x0){case _0x37e514[_0x3cc333(0x13d)][_0x3cc333(0x497)]:_0x35833a=_0xb0e700[_0x46edf0++],_0x300ff7=_0xb0e700[_0x46edf0++];const _0x20f299=_0xb0e700[_0x46edf0++],_0x41b494=_0xb0e700[_0x46edf0++],_0x50093c=_0x35833a+_0x20f299,_0x1e856d=_0x300ff7+_0x41b494;_0x55227b['moveTo'](_0x35833a,_0x300ff7);_0x20f299===0x0||_0x41b494===0x0?_0x55227b[_0x3cc333(0x39f)](_0x50093c,_0x1e856d):(_0x55227b[_0x3cc333(0x39f)](_0x50093c,_0x300ff7),_0x55227b[_0x3cc333(0x39f)](_0x50093c,_0x1e856d),_0x55227b[_0x3cc333(0x39f)](_0x35833a,_0x1e856d));!_0x31f3c3&&_0x11e0bc[_0x3cc333(0x767)](_0x34f4a9,[_0x35833a,_0x300ff7,_0x50093c,_0x1e856d]);_0x55227b[_0x3cc333(0x576)]();break;case _0x37e514['OPS'][_0x3cc333(0x208)]:_0x35833a=_0xb0e700[_0x46edf0++],_0x300ff7=_0xb0e700[_0x46edf0++],_0x55227b[_0x3cc333(0x208)](_0x35833a,_0x300ff7);!_0x31f3c3&&_0x11e0bc[_0x3cc333(0x883)](_0x34f4a9,_0x35833a,_0x300ff7);break;case _0x37e514[_0x3cc333(0x13d)][_0x3cc333(0x39f)]:_0x35833a=_0xb0e700[_0x46edf0++],_0x300ff7=_0xb0e700[_0x46edf0++],_0x55227b[_0x3cc333(0x39f)](_0x35833a,_0x300ff7);!_0x31f3c3&&_0x11e0bc[_0x3cc333(0x883)](_0x34f4a9,_0x35833a,_0x300ff7);break;case _0x37e514[_0x3cc333(0x13d)]['curveTo']:_0x135b9d=_0x35833a,_0x1adb80=_0x300ff7,_0x35833a=_0xb0e700[_0x46edf0+0x4],_0x300ff7=_0xb0e700[_0x46edf0+0x5],_0x55227b[_0x3cc333(0x3c6)](_0xb0e700[_0x46edf0],_0xb0e700[_0x46edf0+0x1],_0xb0e700[_0x46edf0+0x2],_0xb0e700[_0x46edf0+0x3],_0x35833a,_0x300ff7),_0x11e0bc['updateCurvePathMinMax'](_0x34f4a9,_0x135b9d,_0x1adb80,_0xb0e700[_0x46edf0],_0xb0e700[_0x46edf0+0x1],_0xb0e700[_0x46edf0+0x2],_0xb0e700[_0x46edf0+0x3],_0x35833a,_0x300ff7,_0x5f65a5),_0x46edf0+=0x6;break;case _0x37e514[_0x3cc333(0x13d)][_0x3cc333(0x54f)]:_0x135b9d=_0x35833a,_0x1adb80=_0x300ff7,_0x55227b[_0x3cc333(0x3c6)](_0x35833a,_0x300ff7,_0xb0e700[_0x46edf0],_0xb0e700[_0x46edf0+0x1],_0xb0e700[_0x46edf0+0x2],_0xb0e700[_0x46edf0+0x3]),_0x11e0bc[_0x3cc333(0x46a)](_0x34f4a9,_0x135b9d,_0x1adb80,_0x35833a,_0x300ff7,_0xb0e700[_0x46edf0],_0xb0e700[_0x46edf0+0x1],_0xb0e700[_0x46edf0+0x2],_0xb0e700[_0x46edf0+0x3],_0x5f65a5),_0x35833a=_0xb0e700[_0x46edf0+0x2],_0x300ff7=_0xb0e700[_0x46edf0+0x3],_0x46edf0+=0x4;break;case _0x37e514[_0x3cc333(0x13d)]['curveTo3']:_0x135b9d=_0x35833a,_0x1adb80=_0x300ff7,_0x35833a=_0xb0e700[_0x46edf0+0x2],_0x300ff7=_0xb0e700[_0x46edf0+0x3],_0x55227b[_0x3cc333(0x3c6)](_0xb0e700[_0x46edf0],_0xb0e700[_0x46edf0+0x1],_0x35833a,_0x300ff7,_0x35833a,_0x300ff7),_0x11e0bc[_0x3cc333(0x46a)](_0x34f4a9,_0x135b9d,_0x1adb80,_0xb0e700[_0x46edf0],_0xb0e700[_0x46edf0+0x1],_0x35833a,_0x300ff7,_0x35833a,_0x300ff7,_0x5f65a5),_0x46edf0+=0x4;break;case _0x37e514[_0x3cc333(0x13d)][_0x3cc333(0x576)]:_0x55227b['closePath']();break;}}_0x31f3c3&&_0x11e0bc[_0x3cc333(0x296)](_0x34f4a9,_0x5f65a5),_0x11e0bc[_0x3cc333(0x2fb)](_0x35833a,_0x300ff7);}[_0x26edfb(0x576)](){this['ctx']['closePath']();}[_0x26edfb(0x849)](){const _0x34dde7=_0x26edfb;let _0x545b70=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:!![];const _0x6cb7ef=this[_0x34dde7(0x427)],_0x19176d=this[_0x34dde7(0x835)][_0x34dde7(0x745)];_0x6cb7ef['globalAlpha']=this['current'][_0x34dde7(0x2ca)],this['contentVisible']&&(typeof _0x19176d===_0x34dde7(0x97b)&&_0x19176d?.[_0x34dde7(0x307)]?(_0x6cb7ef[_0x34dde7(0x7e2)](),_0x6cb7ef[_0x34dde7(0xc9)]=_0x19176d[_0x34dde7(0x307)](_0x6cb7ef,this,(0x0,_0x1b427a[_0x34dde7(0x932)])(_0x6cb7ef),_0x51d8e3[_0x34dde7(0x3b9)][_0x34dde7(0x607)]),this[_0x34dde7(0x2a1)](![]),_0x6cb7ef['restore']()):this[_0x34dde7(0x2a1)](!![])),_0x545b70&&this[_0x34dde7(0x697)](this[_0x34dde7(0x835)][_0x34dde7(0x1e0)]()),_0x6cb7ef[_0x34dde7(0x1b2)]=this['current'][_0x34dde7(0x587)];}[_0x26edfb(0x316)](){this['closePath'](),this['stroke']();}[_0x26edfb(0x923)](){const _0xcdc368=_0x26edfb;let _0x42be49=arguments[_0xcdc368(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:!![];const _0xc3a6cc=this[_0xcdc368(0x427)],_0x220f0e=this['current'][_0xcdc368(0x631)],_0x4cbcb1=this[_0xcdc368(0x835)][_0xcdc368(0x4b9)];let _0x227dde=![];_0x4cbcb1&&(_0xc3a6cc[_0xcdc368(0x7e2)](),_0xc3a6cc[_0xcdc368(0x968)]=_0x220f0e[_0xcdc368(0x307)](_0xc3a6cc,this,(0x0,_0x1b427a[_0xcdc368(0x932)])(_0xc3a6cc),_0x51d8e3[_0xcdc368(0x3b9)][_0xcdc368(0x61e)]),_0x227dde=!![]);const _0x586c9c=this[_0xcdc368(0x835)][_0xcdc368(0x1e0)]();this[_0xcdc368(0x3ad)]&&_0x586c9c!==null&&(this['pendingEOFill']?(_0xc3a6cc['fill']('evenodd'),this[_0xcdc368(0x9e5)]=![]):_0xc3a6cc[_0xcdc368(0x923)]()),_0x227dde&&_0xc3a6cc['restore'](),_0x42be49&&this[_0xcdc368(0x697)](_0x586c9c);}[_0x26edfb(0x52f)](){const _0x500b25=_0x26edfb;this[_0x500b25(0x9e5)]=!![],this[_0x500b25(0x923)]();}['fillStroke'](){const _0x5e1f1f=_0x26edfb;this[_0x5e1f1f(0x923)](![]),this[_0x5e1f1f(0x849)](![]),this[_0x5e1f1f(0x697)]();}[_0x26edfb(0xe4)](){const _0x157307=_0x26edfb;this[_0x157307(0x9e5)]=!![],this[_0x157307(0x207)]();}[_0x26edfb(0x188)](){const _0x3e1dcf=_0x26edfb;this['closePath'](),this[_0x3e1dcf(0x207)]();}[_0x26edfb(0x7f8)](){const _0x2c7733=_0x26edfb;this[_0x2c7733(0x9e5)]=!![],this[_0x2c7733(0x576)](),this[_0x2c7733(0x207)]();}[_0x26edfb(0x486)](){const _0x2141e9=_0x26edfb;this[_0x2141e9(0x697)]();}[_0x26edfb(0x8b0)](){const _0x2252a7=_0x26edfb;this[_0x2252a7(0x78f)]=_0x4944a6;}[_0x26edfb(0x525)](){this['pendingClip']=_0x1ddce9;}[_0x26edfb(0x741)](){const _0x325c87=_0x26edfb;this[_0x325c87(0x835)]['textMatrix']=_0x37e514[_0x325c87(0x2d6)],this[_0x325c87(0x835)][_0x325c87(0x67d)]=0x1,this['current']['x']=this['current'][_0x325c87(0x196)]=0x0,this[_0x325c87(0x835)]['y']=this[_0x325c87(0x835)][_0x325c87(0x220)]=0x0;}[_0x26edfb(0x50b)](){const _0x380fd3=_0x26edfb,_0x1f05e1=this['pendingTextPaths'],_0x46d0d3=this[_0x380fd3(0x427)];if(_0x1f05e1===undefined){_0x46d0d3[_0x380fd3(0x1ec)]();return;}_0x46d0d3[_0x380fd3(0x7e2)](),_0x46d0d3[_0x380fd3(0x1ec)]();for(const _0x2b1667 of _0x1f05e1){_0x46d0d3[_0x380fd3(0xf1)](..._0x2b1667[_0x380fd3(0x5dd)]),_0x46d0d3['translate'](_0x2b1667['x'],_0x2b1667['y']),_0x2b1667[_0x380fd3(0x3ca)](_0x46d0d3,_0x2b1667[_0x380fd3(0x443)]);}_0x46d0d3[_0x380fd3(0x9ab)](),_0x46d0d3[_0x380fd3(0x8b0)](),_0x46d0d3[_0x380fd3(0x1ec)](),delete this['pendingTextPaths'];}[_0x26edfb(0x449)](_0x4ad010){const _0x321216=_0x26edfb;this[_0x321216(0x835)][_0x321216(0x329)]=_0x4ad010;}[_0x26edfb(0x17e)](_0x5aae0b){const _0x577e97=_0x26edfb;this[_0x577e97(0x835)][_0x577e97(0x865)]=_0x5aae0b;}['setHScale'](_0xe72e60){const _0x45e26b=_0x26edfb;this['current'][_0x45e26b(0x494)]=_0xe72e60/0x64;}[_0x26edfb(0x904)](_0x465bc2){const _0x362705=_0x26edfb;this[_0x362705(0x835)][_0x362705(0x7f7)]=-_0x465bc2;}[_0x26edfb(0x952)](_0x1cf940,_0x5f2302){const _0xc515ac=_0x26edfb,_0x4ebb34=this[_0xc515ac(0x53b)][_0xc515ac(0x8c4)](_0x1cf940),_0xa6dc8b=this[_0xc515ac(0x835)];if(!_0x4ebb34)throw new Error(_0xc515ac(0x719)+_0x1cf940);_0xa6dc8b['fontMatrix']=_0x4ebb34[_0xc515ac(0x4f3)]||_0x37e514['FONT_IDENTITY_MATRIX'];(_0xa6dc8b['fontMatrix'][0x0]===0x0||_0xa6dc8b[_0xc515ac(0x4f3)][0x3]===0x0)&&(0x0,_0x37e514[_0xc515ac(0x472)])(_0xc515ac(0x9ff)+_0x1cf940);_0x5f2302<0x0?(_0x5f2302=-_0x5f2302,_0xa6dc8b[_0xc515ac(0x896)]=-0x1):_0xa6dc8b['fontDirection']=0x1;this['current']['font']=_0x4ebb34,this[_0xc515ac(0x835)][_0xc515ac(0x443)]=_0x5f2302;if(_0x4ebb34[_0xc515ac(0x109)])return;const _0x227586=_0x4ebb34[_0xc515ac(0x625)]||'sans-serif',_0xc56461=_0x4ebb34['systemFontInfo']?.[_0xc515ac(0x60e)]||'\x22'+_0x227586+_0xc515ac(0x926)+_0x4ebb34['fallbackName'];let _0xae9d3='normal';if(_0x4ebb34[_0xc515ac(0x3cc)])_0xae9d3=_0xc515ac(0x10b);else _0x4ebb34[_0xc515ac(0x1c1)]&&(_0xae9d3=_0xc515ac(0x1c1));const _0x31dc95=_0x4ebb34[_0xc515ac(0x727)]?_0xc515ac(0x727):_0xc515ac(0x102);let _0x131d48=_0x5f2302;if(_0x5f2302<_0x4987d2)_0x131d48=_0x4987d2;else _0x5f2302>_0xc27232&&(_0x131d48=_0xc27232);this[_0xc515ac(0x835)][_0xc515ac(0x94d)]=_0x5f2302/_0x131d48,this[_0xc515ac(0x427)][_0xc515ac(0x59d)]=_0x31dc95+'\x20'+_0xae9d3+'\x20'+_0x131d48+_0xc515ac(0x993)+_0xc56461;}[_0x26edfb(0x69e)](_0x1fd6ed){const _0x58120b=_0x26edfb;this[_0x58120b(0x835)][_0x58120b(0x743)]=_0x1fd6ed;}[_0x26edfb(0x178)](_0x44f036){const _0x90130a=_0x26edfb;this[_0x90130a(0x835)][_0x90130a(0x505)]=_0x44f036;}[_0x26edfb(0x79d)](_0x1e2a64,_0x51f7fc){const _0x39e431=_0x26edfb;this[_0x39e431(0x835)]['x']=this[_0x39e431(0x835)][_0x39e431(0x196)]+=_0x1e2a64,this[_0x39e431(0x835)]['y']=this[_0x39e431(0x835)]['lineY']+=_0x51f7fc;}[_0x26edfb(0x723)](_0x198f52,_0x5ef35d){const _0x420f91=_0x26edfb;this['setLeading'](-_0x5ef35d),this[_0x420f91(0x79d)](_0x198f52,_0x5ef35d);}[_0x26edfb(0x92e)](_0x51604d,_0x32e367,_0x57dae3,_0x1027ef,_0x27508d,_0x3f2363){const _0x5d7196=_0x26edfb;this['current'][_0x5d7196(0x5c2)]=[_0x51604d,_0x32e367,_0x57dae3,_0x1027ef,_0x27508d,_0x3f2363],this[_0x5d7196(0x835)][_0x5d7196(0x67d)]=Math[_0x5d7196(0x8cb)](_0x51604d,_0x32e367),this['current']['x']=this[_0x5d7196(0x835)][_0x5d7196(0x196)]=0x0,this[_0x5d7196(0x835)]['y']=this[_0x5d7196(0x835)][_0x5d7196(0x220)]=0x0;}[_0x26edfb(0x118)](){const _0x4dd6fb=_0x26edfb;this[_0x4dd6fb(0x79d)](0x0,this[_0x4dd6fb(0x835)][_0x4dd6fb(0x7f7)]);}[_0x26edfb(0x943)](_0x32f082,_0xc83439,_0x5aa119,_0x1b66f6){const _0x345efa=_0x26edfb,_0x1046a3=this['ctx'],_0x51d1bd=this[_0x345efa(0x835)],_0x4d8723=_0x51d1bd[_0x345efa(0x59d)],_0x25d314=_0x51d1bd['textRenderingMode'],_0x1f52b4=_0x51d1bd[_0x345efa(0x443)]/_0x51d1bd['fontSizeScale'],_0x3e2c15=_0x25d314&_0x37e514[_0x345efa(0x38b)][_0x345efa(0x724)],_0x34a7f4=!!(_0x25d314&_0x37e514[_0x345efa(0x38b)][_0x345efa(0x830)]),_0x45ce50=_0x51d1bd['patternFill']&&!_0x4d8723[_0x345efa(0x39b)];let _0x4ad6dd;(_0x4d8723[_0x345efa(0x8b6)]||_0x34a7f4||_0x45ce50)&&(_0x4ad6dd=_0x4d8723[_0x345efa(0x82a)](this[_0x345efa(0x53b)],_0x32f082));_0x4d8723[_0x345efa(0x8b6)]||_0x45ce50?(_0x1046a3['save'](),_0x1046a3['translate'](_0xc83439,_0x5aa119),_0x1046a3[_0x345efa(0x1ec)](),_0x4ad6dd(_0x1046a3,_0x1f52b4),_0x1b66f6&&_0x1046a3['setTransform'](..._0x1b66f6),(_0x3e2c15===_0x37e514[_0x345efa(0x38b)][_0x345efa(0x61e)]||_0x3e2c15===_0x37e514['TextRenderingMode'][_0x345efa(0x37d)])&&_0x1046a3[_0x345efa(0x923)](),(_0x3e2c15===_0x37e514[_0x345efa(0x38b)][_0x345efa(0x607)]||_0x3e2c15===_0x37e514[_0x345efa(0x38b)][_0x345efa(0x37d)])&&_0x1046a3[_0x345efa(0x849)](),_0x1046a3[_0x345efa(0x9ab)]()):((_0x3e2c15===_0x37e514['TextRenderingMode']['FILL']||_0x3e2c15===_0x37e514[_0x345efa(0x38b)][_0x345efa(0x37d)])&&_0x1046a3['fillText'](_0x32f082,_0xc83439,_0x5aa119),(_0x3e2c15===_0x37e514[_0x345efa(0x38b)]['STROKE']||_0x3e2c15===_0x37e514['TextRenderingMode'][_0x345efa(0x37d)])&&_0x1046a3[_0x345efa(0x32e)](_0x32f082,_0xc83439,_0x5aa119));if(_0x34a7f4){const _0x4eb0c6=this[_0x345efa(0x179)]||=[];_0x4eb0c6[_0x345efa(0x7d6)]({'transform':(0x0,_0x1b427a[_0x345efa(0x5f1)])(_0x1046a3),'x':_0xc83439,'y':_0x5aa119,'fontSize':_0x1f52b4,'addToPath':_0x4ad6dd});}}get[_0x26edfb(0x33b)](){const _0x3e1caa=_0x26edfb,{context:_0x25b574}=this[_0x3e1caa(0x4e8)][_0x3e1caa(0x6cf)](_0x3e1caa(0x33b),0xa,0xa);_0x25b574[_0x3e1caa(0xc8)](1.5,0x1),_0x25b574[_0x3e1caa(0x950)]('I',0x0,0xa);const _0x2f58d3=_0x25b574[_0x3e1caa(0x3fc)](0x0,0x0,0xa,0xa)[_0x3e1caa(0x41b)];let _0x5a47c1=![];for(let _0x1e44b5=0x3;_0x1e44b5<_0x2f58d3[_0x3e1caa(0x557)];_0x1e44b5+=0x4){if(_0x2f58d3[_0x1e44b5]>0x0&&_0x2f58d3[_0x1e44b5]<0xff){_0x5a47c1=!![];break;}}return(0x0,_0x37e514[_0x3e1caa(0x51d)])(this,_0x3e1caa(0x33b),_0x5a47c1);}[_0x26edfb(0x610)](_0x1a7cb0){const _0xf6eff3=_0x26edfb,_0x4460db=this[_0xf6eff3(0x835)],_0x4cf9cc=_0x4460db[_0xf6eff3(0x59d)];if(_0x4cf9cc[_0xf6eff3(0x109)])return this[_0xf6eff3(0x4e5)](_0x1a7cb0);const _0x2cff90=_0x4460db[_0xf6eff3(0x443)];if(_0x2cff90===0x0)return undefined;const _0x200105=this['ctx'],_0x1c3110=_0x4460db['fontSizeScale'],_0x2b5f32=_0x4460db[_0xf6eff3(0x329)],_0x1e5bb4=_0x4460db[_0xf6eff3(0x865)],_0x10b359=_0x4460db[_0xf6eff3(0x896)],_0x105994=_0x4460db[_0xf6eff3(0x494)]*_0x10b359,_0x231739=_0x1a7cb0[_0xf6eff3(0x557)],_0x34a772=_0x4cf9cc['vertical'],_0x16fe09=_0x34a772?0x1:-0x1,_0x8ea2da=_0x4cf9cc[_0xf6eff3(0x785)],_0x184c1e=_0x2cff90*_0x4460db['fontMatrix'][0x0],_0xc35559=_0x4460db[_0xf6eff3(0x743)]===_0x37e514[_0xf6eff3(0x38b)][_0xf6eff3(0x61e)]&&!_0x4cf9cc['disableFontFace']&&!_0x4460db[_0xf6eff3(0x4b9)];_0x200105[_0xf6eff3(0x7e2)](),_0x200105['transform'](..._0x4460db[_0xf6eff3(0x5c2)]),_0x200105['translate'](_0x4460db['x'],_0x4460db['y']+_0x4460db['textRise']);_0x10b359>0x0?_0x200105[_0xf6eff3(0xc8)](_0x105994,-0x1):_0x200105['scale'](_0x105994,0x1);let _0x27fed4;if(_0x4460db['patternFill']){_0x200105[_0xf6eff3(0x7e2)]();const _0x5ab505=_0x4460db[_0xf6eff3(0x631)][_0xf6eff3(0x307)](_0x200105,this,(0x0,_0x1b427a[_0xf6eff3(0x932)])(_0x200105),_0x51d8e3[_0xf6eff3(0x3b9)][_0xf6eff3(0x61e)]);_0x27fed4=(0x0,_0x1b427a[_0xf6eff3(0x5f1)])(_0x200105),_0x200105[_0xf6eff3(0x9ab)](),_0x200105[_0xf6eff3(0x968)]=_0x5ab505;}let _0x169916=_0x4460db[_0xf6eff3(0x2ad)];const _0x385f1e=_0x4460db['textMatrixScale'];if(_0x385f1e===0x0||_0x169916===0x0){const _0x1906fc=_0x4460db[_0xf6eff3(0x743)]&_0x37e514[_0xf6eff3(0x38b)][_0xf6eff3(0x724)];(_0x1906fc===_0x37e514[_0xf6eff3(0x38b)][_0xf6eff3(0x607)]||_0x1906fc===_0x37e514[_0xf6eff3(0x38b)]['FILL_STROKE'])&&(_0x169916=this[_0xf6eff3(0x9ec)]());}else _0x169916/=_0x385f1e;_0x1c3110!==0x1&&(_0x200105[_0xf6eff3(0xc8)](_0x1c3110,_0x1c3110),_0x169916/=_0x1c3110);_0x200105[_0xf6eff3(0x2ad)]=_0x169916;if(_0x4cf9cc[_0xf6eff3(0x3d1)]){const _0x460f8d=[];let _0x5a2f96=0x0;for(const _0x159952 of _0x1a7cb0){_0x460f8d[_0xf6eff3(0x7d6)](_0x159952['unicode']),_0x5a2f96+=_0x159952[_0xf6eff3(0x98b)];}return _0x200105[_0xf6eff3(0x950)](_0x460f8d[_0xf6eff3(0x334)](''),0x0,0x0),_0x4460db['x']+=_0x5a2f96*_0x184c1e*_0x105994,_0x200105['restore'](),this[_0xf6eff3(0x765)](),undefined;}let _0x5117ad=0x0,_0xad0c29;for(_0xad0c29=0x0;_0xad0c29<_0x231739;++_0xad0c29){const _0x374679=_0x1a7cb0[_0xad0c29];if(typeof _0x374679===_0xf6eff3(0x454)){_0x5117ad+=_0x16fe09*_0x374679*_0x2cff90/0x3e8;continue;}let _0x1ada1e=![];const _0x19c7e8=(_0x374679[_0xf6eff3(0x708)]?_0x1e5bb4:0x0)+_0x2b5f32,_0x1ff59c=_0x374679[_0xf6eff3(0x74e)],_0x3c7734=_0x374679[_0xf6eff3(0x718)];let _0x44e0d2,_0x44a63e,_0x21b808=_0x374679[_0xf6eff3(0x98b)];if(_0x34a772){const _0x4cd2e9=_0x374679[_0xf6eff3(0x8f6)]||_0x8ea2da,_0x539502=-(_0x374679['vmetric']?_0x4cd2e9[0x1]:_0x21b808*0.5)*_0x184c1e,_0x55b0b2=_0x4cd2e9[0x2]*_0x184c1e;_0x21b808=_0x4cd2e9?-_0x4cd2e9[0x0]:_0x21b808,_0x44e0d2=_0x539502/_0x1c3110,_0x44a63e=(_0x5117ad+_0x55b0b2)/_0x1c3110;}else _0x44e0d2=_0x5117ad/_0x1c3110,_0x44a63e=0x0;if(_0x4cf9cc['remeasure']&&_0x21b808>0x0){const _0x3f0266=_0x200105[_0xf6eff3(0x106)](_0x1ff59c)[_0xf6eff3(0x98b)]*0x3e8/_0x2cff90*_0x1c3110;if(_0x21b808<_0x3f0266&&this['isFontSubpixelAAEnabled']){const _0x4c9036=_0x21b808/_0x3f0266;_0x1ada1e=!![],_0x200105[_0xf6eff3(0x7e2)](),_0x200105['scale'](_0x4c9036,0x1),_0x44e0d2/=_0x4c9036;}else _0x21b808!==_0x3f0266&&(_0x44e0d2+=(_0x21b808-_0x3f0266)/0x7d0*_0x2cff90/_0x1c3110);}if(this[_0xf6eff3(0x3ad)]&&(_0x374679['isInFont']||_0x4cf9cc[_0xf6eff3(0x39b)])){if(_0xc35559&&!_0x3c7734)_0x200105[_0xf6eff3(0x950)](_0x1ff59c,_0x44e0d2,_0x44a63e);else{this[_0xf6eff3(0x943)](_0x1ff59c,_0x44e0d2,_0x44a63e,_0x27fed4);if(_0x3c7734){const _0x505e03=_0x44e0d2+_0x2cff90*_0x3c7734[_0xf6eff3(0x30d)]['x']/_0x1c3110,_0x3cde58=_0x44a63e-_0x2cff90*_0x3c7734[_0xf6eff3(0x30d)]['y']/_0x1c3110;this['paintChar'](_0x3c7734[_0xf6eff3(0x74e)],_0x505e03,_0x3cde58,_0x27fed4);}}}let _0x5d3dd8;_0x34a772?_0x5d3dd8=_0x21b808*_0x184c1e-_0x19c7e8*_0x10b359:_0x5d3dd8=_0x21b808*_0x184c1e+_0x19c7e8*_0x10b359,_0x5117ad+=_0x5d3dd8,_0x1ada1e&&_0x200105['restore']();}return _0x34a772?_0x4460db['y']-=_0x5117ad:_0x4460db['x']+=_0x5117ad*_0x105994,_0x200105[_0xf6eff3(0x9ab)](),this[_0xf6eff3(0x765)](),undefined;}[_0x26edfb(0x4e5)](_0x108ca4){const _0x4116fd=_0x26edfb,_0x350f33=this[_0x4116fd(0x427)],_0x5ae298=this[_0x4116fd(0x835)],_0x1cfd2a=_0x5ae298[_0x4116fd(0x59d)],_0x2ace9d=_0x5ae298[_0x4116fd(0x443)],_0x30c16b=_0x5ae298[_0x4116fd(0x896)],_0x1e0a9b=_0x1cfd2a[_0x4116fd(0x58b)]?0x1:-0x1,_0x17bd9b=_0x5ae298[_0x4116fd(0x329)],_0x4452ed=_0x5ae298['wordSpacing'],_0x46ab7b=_0x5ae298[_0x4116fd(0x494)]*_0x30c16b,_0x5c47c2=_0x5ae298[_0x4116fd(0x4f3)]||_0x37e514[_0x4116fd(0x6ab)],_0x3f6050=_0x108ca4[_0x4116fd(0x557)],_0x5700e0=_0x5ae298[_0x4116fd(0x743)]===_0x37e514[_0x4116fd(0x38b)][_0x4116fd(0x2d5)];let _0x135cdf,_0x337b37,_0x468848,_0x238450;if(_0x5700e0||_0x2ace9d===0x0)return;this[_0x4116fd(0x7b5)][0x0]=-0x1,this[_0x4116fd(0x5e6)]=null,_0x350f33[_0x4116fd(0x7e2)](),_0x350f33[_0x4116fd(0x5dd)](..._0x5ae298[_0x4116fd(0x5c2)]),_0x350f33[_0x4116fd(0x18d)](_0x5ae298['x'],_0x5ae298['y']),_0x350f33[_0x4116fd(0xc8)](_0x46ab7b,_0x30c16b);for(_0x135cdf=0x0;_0x135cdf<_0x3f6050;++_0x135cdf){_0x337b37=_0x108ca4[_0x135cdf];if(typeof _0x337b37===_0x4116fd(0x454)){_0x238450=_0x1e0a9b*_0x337b37*_0x2ace9d/0x3e8,this[_0x4116fd(0x427)]['translate'](_0x238450,0x0),_0x5ae298['x']+=_0x238450*_0x46ab7b;continue;}const _0x15dc0e=(_0x337b37[_0x4116fd(0x708)]?_0x4452ed:0x0)+_0x17bd9b,_0x1b705e=_0x1cfd2a['charProcOperatorList'][_0x337b37['operatorListId']];if(!_0x1b705e){(0x0,_0x37e514[_0x4116fd(0x472)])(_0x4116fd(0x143)+_0x337b37[_0x4116fd(0x2b2)]+_0x4116fd(0x579));continue;}this[_0x4116fd(0x3ad)]&&(this['processingType3']=_0x337b37,this['save'](),_0x350f33[_0x4116fd(0xc8)](_0x2ace9d,_0x2ace9d),_0x350f33[_0x4116fd(0x5dd)](..._0x5c47c2),this['executeOperatorList'](_0x1b705e),this['restore']());const _0x4ad856=_0x37e514['Util']['applyTransform']([_0x337b37['width'],0x0],_0x5c47c2);_0x468848=_0x4ad856[0x0]*_0x2ace9d+_0x15dc0e,_0x350f33[_0x4116fd(0x18d)](_0x468848,0x0),_0x5ae298['x']+=_0x468848*_0x46ab7b;}_0x350f33[_0x4116fd(0x9ab)](),this[_0x4116fd(0x7d0)]=null;}[_0x26edfb(0x95b)](_0x118033,_0x4a632f){}[_0x26edfb(0x751)](_0x4e8a64,_0x3e2ecf,_0x10df2c,_0x3645a3,_0x417e82,_0x46b710){const _0x2c52ce=_0x26edfb;this[_0x2c52ce(0x427)]['rect'](_0x10df2c,_0x3645a3,_0x417e82-_0x10df2c,_0x46b710-_0x3645a3),this[_0x2c52ce(0x427)]['clip'](),this[_0x2c52ce(0x486)]();}[_0x26edfb(0x54b)](_0x1ca8b3){const _0x42ea57=_0x26edfb;let _0x33ae7e;if(_0x1ca8b3[0x0]===_0x42ea57(0x5ec)){const _0x3fed06=_0x1ca8b3[0x1],_0x3b543e=this['baseTransform']||(0x0,_0x1b427a[_0x42ea57(0x5f1)])(this[_0x42ea57(0x427)]),_0x525ff3={'createCanvasGraphics':_0x479586=>{const _0x5947d1=_0x42ea57;return new _0x38810c(_0x479586,this['commonObjs'],this[_0x5947d1(0xdc)],this['canvasFactory'],this[_0x5947d1(0x491)],{'optionalContentConfig':this[_0x5947d1(0x20b)],'markedContentStack':this[_0x5947d1(0x201)]});}};_0x33ae7e=new _0x51d8e3[(_0x42ea57(0x5ec))](_0x1ca8b3,_0x3fed06,this['ctx'],_0x525ff3,_0x3b543e);}else _0x33ae7e=this['_getPattern'](_0x1ca8b3[0x1],_0x1ca8b3[0x2]);return _0x33ae7e;}['setStrokeColorN'](){const _0x31ba62=_0x26edfb;this[_0x31ba62(0x835)][_0x31ba62(0x745)]=this[_0x31ba62(0x54b)](arguments);}[_0x26edfb(0x463)](){const _0x3de4f4=_0x26edfb;this[_0x3de4f4(0x835)][_0x3de4f4(0x631)]=this[_0x3de4f4(0x54b)](arguments),this[_0x3de4f4(0x835)][_0x3de4f4(0x4b9)]=!![];}[_0x26edfb(0x530)](_0x448369,_0x429cdd,_0x15953e){const _0x8b38ef=_0x26edfb,_0x31b6c5=_0x37e514[_0x8b38ef(0x5d7)]['makeHexColor'](_0x448369,_0x429cdd,_0x15953e);this[_0x8b38ef(0x427)][_0x8b38ef(0xc9)]=_0x31b6c5,this['current'][_0x8b38ef(0x745)]=_0x31b6c5;}[_0x26edfb(0x9a9)](_0x3c9e85,_0x3430a2,_0x1623ba){const _0x127206=_0x26edfb,_0x39bf6b=_0x37e514[_0x127206(0x5d7)]['makeHexColor'](_0x3c9e85,_0x3430a2,_0x1623ba);this[_0x127206(0x427)]['fillStyle']=_0x39bf6b,this[_0x127206(0x835)][_0x127206(0x631)]=_0x39bf6b,this[_0x127206(0x835)][_0x127206(0x4b9)]=![];}[_0x26edfb(0x55e)](_0x4b57db){const _0x1c71ea=_0x26edfb;let _0x49fd85=arguments['length']>0x1&&arguments[0x1]!==undefined?arguments[0x1]:null,_0x10636c;return this[_0x1c71ea(0x3c3)][_0x1c71ea(0x373)](_0x4b57db)?_0x10636c=this[_0x1c71ea(0x3c3)][_0x1c71ea(0x8c4)](_0x4b57db):(_0x10636c=(0x0,_0x51d8e3[_0x1c71ea(0x2df)])(this['getObject'](_0x4b57db)),this[_0x1c71ea(0x3c3)][_0x1c71ea(0x98e)](_0x4b57db,_0x10636c)),_0x49fd85&&(_0x10636c[_0x1c71ea(0x238)]=_0x49fd85),_0x10636c;}[_0x26edfb(0x6c2)](_0x2023f5){const _0x12f606=_0x26edfb;if(!this[_0x12f606(0x3ad)])return;const _0x3c9f3a=this['ctx'];this['save']();const _0x10d794=this['_getPattern'](_0x2023f5);_0x3c9f3a[_0x12f606(0x968)]=_0x10d794['getPattern'](_0x3c9f3a,this,(0x0,_0x1b427a['getCurrentTransformInverse'])(_0x3c9f3a),_0x51d8e3[_0x12f606(0x3b9)][_0x12f606(0x6c3)]);const _0x58e534=(0x0,_0x1b427a[_0x12f606(0x932)])(_0x3c9f3a);if(_0x58e534){const {width:_0x34eddb,height:_0x23d5c3}=_0x3c9f3a[_0x12f606(0x75a)],[_0x151068,_0x5aab8f,_0x19b6cc,_0x17e7d6]=_0x37e514[_0x12f606(0x5d7)][_0x12f606(0x847)]([0x0,0x0,_0x34eddb,_0x23d5c3],_0x58e534);this[_0x12f606(0x427)][_0x12f606(0x974)](_0x151068,_0x5aab8f,_0x19b6cc-_0x151068,_0x17e7d6-_0x5aab8f);}else this['ctx'][_0x12f606(0x974)](-0x2540be400,-0x2540be400,0x4a817c800,0x4a817c800);this[_0x12f606(0x765)](this[_0x12f606(0x835)][_0x12f606(0x1e0)]()),this['restore']();}['beginInlineImage'](){const _0x4fb4bf=_0x26edfb;(0x0,_0x37e514[_0x4fb4bf(0x749)])(_0x4fb4bf(0x5c0));}['beginImageData'](){const _0x6e61e4=_0x26edfb;(0x0,_0x37e514[_0x6e61e4(0x749)])(_0x6e61e4(0x894));}[_0x26edfb(0x855)](_0x148ec1,_0x417b35){const _0x566f26=_0x26edfb;if(!this[_0x566f26(0x3ad)])return;this['save'](),this['baseTransformStack'][_0x566f26(0x7d6)](this['baseTransform']);Array[_0x566f26(0x419)](_0x148ec1)&&_0x148ec1[_0x566f26(0x557)]===0x6&&this[_0x566f26(0x5dd)](..._0x148ec1);this['baseTransform']=(0x0,_0x1b427a[_0x566f26(0x5f1)])(this['ctx']);if(_0x417b35){const _0x5da699=_0x417b35[0x2]-_0x417b35[0x0],_0x1183bd=_0x417b35[0x3]-_0x417b35[0x1];this[_0x566f26(0x427)]['rect'](_0x417b35[0x0],_0x417b35[0x1],_0x5da699,_0x1183bd),this[_0x566f26(0x835)]['updateRectMinMax']((0x0,_0x1b427a[_0x566f26(0x5f1)])(this[_0x566f26(0x427)]),_0x417b35),this[_0x566f26(0x8b0)](),this[_0x566f26(0x486)]();}}['paintFormXObjectEnd'](){const _0x3380ff=_0x26edfb;if(!this[_0x3380ff(0x3ad)])return;this['restore'](),this['baseTransform']=this[_0x3380ff(0x2c8)][_0x3380ff(0x783)]();}[_0x26edfb(0x2fd)](_0xd30bd9){const _0x4644ca=_0x26edfb;if(!this[_0x4644ca(0x3ad)])return;this['save']();this[_0x4644ca(0x7fa)]&&(this['endSMaskMode'](),this[_0x4644ca(0x835)][_0x4644ca(0x627)]=null);const _0x21aedc=this[_0x4644ca(0x427)];!_0xd30bd9[_0x4644ca(0x884)]&&(0x0,_0x37e514['info'])(_0x4644ca(0x1d6));_0xd30bd9[_0x4644ca(0x4a8)]&&(0x0,_0x37e514[_0x4644ca(0x472)])('Knockout\x20groups\x20not\x20supported.');const _0x28bf52=(0x0,_0x1b427a[_0x4644ca(0x5f1)])(_0x21aedc);_0xd30bd9[_0x4644ca(0x238)]&&_0x21aedc['transform'](..._0xd30bd9[_0x4644ca(0x238)]);if(!_0xd30bd9[_0x4644ca(0x9b0)])throw new Error(_0x4644ca(0x978));let _0x3eb632=_0x37e514['Util'][_0x4644ca(0x847)](_0xd30bd9[_0x4644ca(0x9b0)],(0x0,_0x1b427a[_0x4644ca(0x5f1)])(_0x21aedc));const _0x3a80f5=[0x0,0x0,_0x21aedc['canvas'][_0x4644ca(0x98b)],_0x21aedc[_0x4644ca(0x75a)][_0x4644ca(0x999)]];_0x3eb632=_0x37e514[_0x4644ca(0x5d7)][_0x4644ca(0x441)](_0x3eb632,_0x3a80f5)||[0x0,0x0,0x0,0x0];const _0x487fd6=Math[_0x4644ca(0x583)](_0x3eb632[0x0]),_0x1c4eff=Math[_0x4644ca(0x583)](_0x3eb632[0x1]);let _0x4577a9=Math[_0x4644ca(0x78d)](Math[_0x4644ca(0x213)](_0x3eb632[0x2])-_0x487fd6,0x1),_0x274dff=Math['max'](Math[_0x4644ca(0x213)](_0x3eb632[0x3])-_0x1c4eff,0x1),_0x34844e=0x1,_0xe5cedd=0x1;_0x4577a9>_0x3ff1fc&&(_0x34844e=_0x4577a9/_0x3ff1fc,_0x4577a9=_0x3ff1fc);_0x274dff>_0x3ff1fc&&(_0xe5cedd=_0x274dff/_0x3ff1fc,_0x274dff=_0x3ff1fc);this[_0x4644ca(0x835)][_0x4644ca(0x44f)]([0x0,0x0,_0x4577a9,_0x274dff]);let _0x18ac8d=_0x4644ca(0x658)+this[_0x4644ca(0x336)];_0xd30bd9[_0x4644ca(0x2b6)]&&(_0x18ac8d+=_0x4644ca(0x906)+this[_0x4644ca(0x93c)]++%0x2);const _0x4d5ed8=this[_0x4644ca(0x4e8)][_0x4644ca(0x6cf)](_0x18ac8d,_0x4577a9,_0x274dff),_0x4bcd8c=_0x4d5ed8['context'];_0x4bcd8c[_0x4644ca(0xc8)](0x1/_0x34844e,0x1/_0xe5cedd),_0x4bcd8c['translate'](-_0x487fd6,-_0x1c4eff),_0x4bcd8c['transform'](..._0x28bf52),_0xd30bd9['smask']?this['smaskStack'][_0x4644ca(0x7d6)]({'canvas':_0x4d5ed8['canvas'],'context':_0x4bcd8c,'offsetX':_0x487fd6,'offsetY':_0x1c4eff,'scaleX':_0x34844e,'scaleY':_0xe5cedd,'subtype':_0xd30bd9[_0x4644ca(0x2b6)][_0x4644ca(0x146)],'backdrop':_0xd30bd9[_0x4644ca(0x2b6)]['backdrop'],'transferMap':_0xd30bd9[_0x4644ca(0x2b6)][_0x4644ca(0x5b1)]||null,'startTransformInverse':null}):(_0x21aedc['setTransform'](0x1,0x0,0x0,0x1,0x0,0x0),_0x21aedc['translate'](_0x487fd6,_0x1c4eff),_0x21aedc[_0x4644ca(0xc8)](_0x34844e,_0xe5cedd),_0x21aedc[_0x4644ca(0x7e2)]()),_0x567cc3(_0x21aedc,_0x4bcd8c),this[_0x4644ca(0x427)]=_0x4bcd8c,this[_0x4644ca(0x268)]([['BM','source-over'],['ca',0x1],['CA',0x1]]),this[_0x4644ca(0x26b)]['push'](_0x21aedc),this[_0x4644ca(0x336)]++;}['endGroup'](_0x3fed6a){const _0x1603a4=_0x26edfb;if(!this[_0x1603a4(0x3ad)])return;this['groupLevel']--;const _0x1d41ee=this[_0x1603a4(0x427)],_0xa41b7=this[_0x1603a4(0x26b)]['pop']();this[_0x1603a4(0x427)]=_0xa41b7,this['ctx'][_0x1603a4(0x9a4)]=![];if(_0x3fed6a[_0x1603a4(0x2b6)])this[_0x1603a4(0x2ba)]=this[_0x1603a4(0x840)]['pop'](),this[_0x1603a4(0x9ab)]();else{this[_0x1603a4(0x427)]['restore']();const _0x1f5940=(0x0,_0x1b427a[_0x1603a4(0x5f1)])(this[_0x1603a4(0x427)]);this['restore'](),this['ctx'][_0x1603a4(0x7e2)](),this[_0x1603a4(0x427)][_0x1603a4(0xf1)](..._0x1f5940);const _0x23c4af=_0x37e514[_0x1603a4(0x5d7)][_0x1603a4(0x847)]([0x0,0x0,_0x1d41ee[_0x1603a4(0x75a)]['width'],_0x1d41ee[_0x1603a4(0x75a)][_0x1603a4(0x999)]],_0x1f5940);this[_0x1603a4(0x427)]['drawImage'](_0x1d41ee[_0x1603a4(0x75a)],0x0,0x0),this[_0x1603a4(0x427)][_0x1603a4(0x9ab)](),this['compose'](_0x23c4af);}}[_0x26edfb(0x72b)](_0x220678,_0x4ac832,_0x17ad98,_0x5f37af,_0x5afd51){const _0x5cb54d=_0x26edfb;this.#restoreInitialState(),_0x14e6c2(this[_0x5cb54d(0x427)]),this['ctx'][_0x5cb54d(0x7e2)](),this[_0x5cb54d(0x7e2)]();this[_0x5cb54d(0x15a)]&&this['ctx'][_0x5cb54d(0xf1)](...this[_0x5cb54d(0x15a)]);if(Array['isArray'](_0x4ac832)&&_0x4ac832[_0x5cb54d(0x557)]===0x4){const _0x3625c4=_0x4ac832[0x2]-_0x4ac832[0x0],_0x57e734=_0x4ac832[0x3]-_0x4ac832[0x1];if(_0x5afd51&&this[_0x5cb54d(0x368)]){_0x17ad98=_0x17ad98[_0x5cb54d(0x80c)](),_0x17ad98[0x4]-=_0x4ac832[0x0],_0x17ad98[0x5]-=_0x4ac832[0x1],_0x4ac832=_0x4ac832['slice'](),_0x4ac832[0x0]=_0x4ac832[0x1]=0x0,_0x4ac832[0x2]=_0x3625c4,_0x4ac832[0x3]=_0x57e734;const [_0x11adb1,_0x5f0958]=_0x37e514[_0x5cb54d(0x5d7)][_0x5cb54d(0x424)]((0x0,_0x1b427a[_0x5cb54d(0x5f1)])(this[_0x5cb54d(0x427)])),{viewportScale:_0x4875c5}=this,_0x256a90=Math['ceil'](_0x3625c4*this[_0x5cb54d(0x75c)]*_0x4875c5),_0x1a11bd=Math[_0x5cb54d(0x213)](_0x57e734*this[_0x5cb54d(0x51f)]*_0x4875c5);this[_0x5cb54d(0x31c)]=this['canvasFactory'][_0x5cb54d(0x77c)](_0x256a90,_0x1a11bd);const {canvas:_0x2ca534,context:_0x30260d}=this['annotationCanvas'];this[_0x5cb54d(0x368)]['set'](_0x220678,_0x2ca534),this[_0x5cb54d(0x31c)][_0x5cb54d(0x967)]=this[_0x5cb54d(0x427)],this[_0x5cb54d(0x427)]=_0x30260d,this['ctx'][_0x5cb54d(0x7e2)](),this['ctx'][_0x5cb54d(0xf1)](_0x11adb1,0x0,0x0,-_0x5f0958,0x0,_0x57e734*_0x5f0958),_0x14e6c2(this[_0x5cb54d(0x427)]);}else _0x14e6c2(this[_0x5cb54d(0x427)]),this[_0x5cb54d(0x427)][_0x5cb54d(0x333)](_0x4ac832[0x0],_0x4ac832[0x1],_0x3625c4,_0x57e734),this[_0x5cb54d(0x427)][_0x5cb54d(0x8b0)](),this['endPath']();}this[_0x5cb54d(0x835)]=new _0xb2a509(this[_0x5cb54d(0x427)]['canvas'][_0x5cb54d(0x98b)],this['ctx'][_0x5cb54d(0x75a)][_0x5cb54d(0x999)]),this[_0x5cb54d(0x5dd)](..._0x17ad98),this[_0x5cb54d(0x5dd)](..._0x5f37af);}[_0x26edfb(0x1df)](){const _0x3da637=_0x26edfb;this[_0x3da637(0x31c)]&&(this['ctx'][_0x3da637(0x9ab)](),this.#drawFilter(),this[_0x3da637(0x427)]=this['annotationCanvas']['savedCtx'],delete this[_0x3da637(0x31c)][_0x3da637(0x967)],delete this[_0x3da637(0x31c)]);}[_0x26edfb(0x94b)](_0x8cb773){const _0x5884eb=_0x26edfb;if(!this[_0x5884eb(0x3ad)])return;const _0x583aca=_0x8cb773[_0x5884eb(0x68e)];_0x8cb773=this[_0x5884eb(0x3ef)](_0x8cb773[_0x5884eb(0x41b)],_0x8cb773),_0x8cb773[_0x5884eb(0x68e)]=_0x583aca;const _0x4cee10=this['ctx'],_0x36a3a2=this[_0x5884eb(0x7d0)];if(_0x36a3a2){_0x36a3a2[_0x5884eb(0x4b5)]===undefined&&(_0x36a3a2[_0x5884eb(0x4b5)]=_0x3c1935(_0x8cb773));if(_0x36a3a2[_0x5884eb(0x4b5)]){_0x36a3a2[_0x5884eb(0x4b5)](_0x4cee10);return;}}const _0x513dc6=this[_0x5884eb(0x354)](_0x8cb773),_0x4d33b5=_0x513dc6[_0x5884eb(0x75a)];_0x4cee10['save'](),_0x4cee10[_0x5884eb(0xf1)](0x1,0x0,0x0,0x1,0x0,0x0),_0x4cee10['drawImage'](_0x4d33b5,_0x513dc6['offsetX'],_0x513dc6[_0x5884eb(0x431)]),_0x4cee10[_0x5884eb(0x9ab)](),this[_0x5884eb(0x765)]();}[_0x26edfb(0x22c)](_0x236923,_0x303a96){const _0x8ad767=_0x26edfb;let _0x28f0d2=arguments[_0x8ad767(0x557)]>0x2&&arguments[0x2]!==undefined?arguments[0x2]:0x0,_0x2bf38b=arguments[_0x8ad767(0x557)]>0x3&&arguments[0x3]!==undefined?arguments[0x3]:0x0,_0x392c6f=arguments['length']>0x4?arguments[0x4]:undefined,_0x4b86b1=arguments[_0x8ad767(0x557)]>0x5?arguments[0x5]:undefined;if(!this[_0x8ad767(0x3ad)])return;_0x236923=this[_0x8ad767(0x3ef)](_0x236923[_0x8ad767(0x41b)],_0x236923);const _0x22b288=this['ctx'];_0x22b288[_0x8ad767(0x7e2)]();const _0x2f0048=(0x0,_0x1b427a[_0x8ad767(0x5f1)])(_0x22b288);_0x22b288[_0x8ad767(0x5dd)](_0x303a96,_0x28f0d2,_0x2bf38b,_0x392c6f,0x0,0x0);const _0x17166a=this['_createMaskCanvas'](_0x236923);_0x22b288[_0x8ad767(0xf1)](0x1,0x0,0x0,0x1,_0x17166a[_0x8ad767(0xdf)]-_0x2f0048[0x4],_0x17166a[_0x8ad767(0x431)]-_0x2f0048[0x5]);for(let _0x5ea4c2=0x0,_0x1e265b=_0x4b86b1[_0x8ad767(0x557)];_0x5ea4c2<_0x1e265b;_0x5ea4c2+=0x2){const _0x590925=_0x37e514[_0x8ad767(0x5d7)][_0x8ad767(0x5dd)](_0x2f0048,[_0x303a96,_0x28f0d2,_0x2bf38b,_0x392c6f,_0x4b86b1[_0x5ea4c2],_0x4b86b1[_0x5ea4c2+0x1]]),[_0x50acf8,_0x214a54]=_0x37e514[_0x8ad767(0x5d7)][_0x8ad767(0x8a2)]([0x0,0x0],_0x590925);_0x22b288[_0x8ad767(0x545)](_0x17166a[_0x8ad767(0x75a)],_0x50acf8,_0x214a54);}_0x22b288[_0x8ad767(0x9ab)](),this[_0x8ad767(0x765)]();}[_0x26edfb(0x626)](_0x2767af){const _0x2ddb87=_0x26edfb;if(!this[_0x2ddb87(0x3ad)])return;const _0x41e228=this[_0x2ddb87(0x427)],_0x32750d=this['current'][_0x2ddb87(0x631)],_0x91bc61=this[_0x2ddb87(0x835)][_0x2ddb87(0x4b9)];for(const _0x3f2b30 of _0x2767af){const {data:_0xc82607,width:_0x5f3f94,height:_0x2a39f8,transform:_0x2def6d}=_0x3f2b30,_0x522e2a=this[_0x2ddb87(0x4e8)]['getCanvas'](_0x2ddb87(0x16a),_0x5f3f94,_0x2a39f8),_0x17d664=_0x522e2a[_0x2ddb87(0x1a6)];_0x17d664[_0x2ddb87(0x7e2)]();const _0x50ed4a=this[_0x2ddb87(0x3ef)](_0xc82607,_0x3f2b30);_0x5a4aed(_0x17d664,_0x50ed4a),_0x17d664[_0x2ddb87(0x1a2)]=_0x2ddb87(0x5b7),_0x17d664[_0x2ddb87(0x968)]=_0x91bc61?_0x32750d[_0x2ddb87(0x307)](_0x17d664,this,(0x0,_0x1b427a['getCurrentTransformInverse'])(_0x41e228),_0x51d8e3[_0x2ddb87(0x3b9)][_0x2ddb87(0x61e)]):_0x32750d,_0x17d664['fillRect'](0x0,0x0,_0x5f3f94,_0x2a39f8),_0x17d664[_0x2ddb87(0x9ab)](),_0x41e228[_0x2ddb87(0x7e2)](),_0x41e228[_0x2ddb87(0x5dd)](..._0x2def6d),_0x41e228[_0x2ddb87(0xc8)](0x1,-0x1),_0x230b45(_0x41e228,_0x522e2a['canvas'],0x0,0x0,_0x5f3f94,_0x2a39f8,0x0,-0x1,0x1,0x1),_0x41e228[_0x2ddb87(0x9ab)]();}this[_0x2ddb87(0x765)]();}[_0x26edfb(0x845)](_0x4c6fff){const _0x3c49b8=_0x26edfb;if(!this[_0x3c49b8(0x3ad)])return;const _0x5f034b=this[_0x3c49b8(0x3ef)](_0x4c6fff);if(!_0x5f034b){(0x0,_0x37e514['warn'])('Dependent\x20image\x20isn\x27t\x20ready\x20yet');return;}this[_0x3c49b8(0x661)](_0x5f034b);}[_0x26edfb(0x138)](_0x2e7cc7,_0x4a49bf,_0x2897f5,_0x41bb69){const _0x32db6e=_0x26edfb;if(!this[_0x32db6e(0x3ad)])return;const _0x42b326=this[_0x32db6e(0x3ef)](_0x2e7cc7);if(!_0x42b326){(0x0,_0x37e514[_0x32db6e(0x472)])(_0x32db6e(0x388));return;}const _0x3d251f=_0x42b326[_0x32db6e(0x98b)],_0x98814=_0x42b326['height'],_0x151028=[];for(let _0x90c2f6=0x0,_0x463e31=_0x41bb69[_0x32db6e(0x557)];_0x90c2f6<_0x463e31;_0x90c2f6+=0x2){_0x151028['push']({'transform':[_0x4a49bf,0x0,0x0,_0x2897f5,_0x41bb69[_0x90c2f6],_0x41bb69[_0x90c2f6+0x1]],'x':0x0,'y':0x0,'w':_0x3d251f,'h':_0x98814});}this[_0x32db6e(0x2d7)](_0x42b326,_0x151028);}[_0x26edfb(0x8b9)](_0x412fc3){const _0x3437b8=_0x26edfb;return this[_0x3437b8(0x835)][_0x3437b8(0x858)]!==_0x3437b8(0x122)&&(_0x412fc3[_0x3437b8(0x81f)]=this[_0x3437b8(0x835)]['transferMaps'],_0x412fc3[_0x3437b8(0x545)](_0x412fc3[_0x3437b8(0x75a)],0x0,0x0),_0x412fc3['filter']=_0x3437b8(0x122)),_0x412fc3[_0x3437b8(0x75a)];}['applyTransferMapsToBitmap'](_0x30efe6){const _0x1ab8e0=_0x26edfb;if(this[_0x1ab8e0(0x835)][_0x1ab8e0(0x858)]==='none')return _0x30efe6[_0x1ab8e0(0x7eb)];const {bitmap:_0x4ee3d0,width:_0x35e488,height:_0x4f0386}=_0x30efe6,_0xa3f370=this[_0x1ab8e0(0x4e8)][_0x1ab8e0(0x6cf)]('inlineImage',_0x35e488,_0x4f0386),_0x5a8097=_0xa3f370[_0x1ab8e0(0x1a6)];return _0x5a8097[_0x1ab8e0(0x81f)]=this['current']['transferMaps'],_0x5a8097[_0x1ab8e0(0x545)](_0x4ee3d0,0x0,0x0),_0x5a8097[_0x1ab8e0(0x81f)]=_0x1ab8e0(0x122),_0xa3f370[_0x1ab8e0(0x75a)];}['paintInlineImageXObject'](_0x3b91ae){const _0x3aaafe=_0x26edfb;if(!this[_0x3aaafe(0x3ad)])return;const _0x205ed8=_0x3b91ae[_0x3aaafe(0x98b)],_0x59050d=_0x3b91ae[_0x3aaafe(0x999)],_0x6282dc=this[_0x3aaafe(0x427)];this[_0x3aaafe(0x7e2)]();!_0x4d5e22[_0x3aaafe(0x8c5)]&&(_0x6282dc[_0x3aaafe(0x81f)]=_0x3aaafe(0x122));_0x6282dc[_0x3aaafe(0xc8)](0x1/_0x205ed8,-0x1/_0x59050d);let _0x1194d6;if(_0x3b91ae[_0x3aaafe(0x7eb)])_0x1194d6=this['applyTransferMapsToBitmap'](_0x3b91ae);else{if(typeof HTMLElement===_0x3aaafe(0x4ec)&&_0x3b91ae instanceof HTMLElement||!_0x3b91ae['data'])_0x1194d6=_0x3b91ae;else{const _0x2cbdc4=this['cachedCanvases'][_0x3aaafe(0x6cf)](_0x3aaafe(0x65c),_0x205ed8,_0x59050d),_0x13e423=_0x2cbdc4[_0x3aaafe(0x1a6)];_0x4b8829(_0x13e423,_0x3b91ae),_0x1194d6=this[_0x3aaafe(0x8b9)](_0x13e423);}}const _0x2069e1=this[_0x3aaafe(0x39d)](_0x1194d6,(0x0,_0x1b427a['getCurrentTransformInverse'])(_0x6282dc));_0x6282dc['imageSmoothingEnabled']=_0x49bafa((0x0,_0x1b427a[_0x3aaafe(0x5f1)])(_0x6282dc),_0x3b91ae[_0x3aaafe(0x55b)]),_0x230b45(_0x6282dc,_0x2069e1['img'],0x0,0x0,_0x2069e1[_0x3aaafe(0x25b)],_0x2069e1[_0x3aaafe(0x35a)],0x0,-_0x59050d,_0x205ed8,_0x59050d),this[_0x3aaafe(0x765)](),this[_0x3aaafe(0x9ab)]();}['paintInlineImageXObjectGroup'](_0x173579,_0x547cd4){const _0x5f2344=_0x26edfb;if(!this['contentVisible'])return;const _0x136f9e=this[_0x5f2344(0x427)];let _0x4bfa4d;if(_0x173579[_0x5f2344(0x7eb)])_0x4bfa4d=_0x173579[_0x5f2344(0x7eb)];else{const _0x172788=_0x173579[_0x5f2344(0x98b)],_0x2c105b=_0x173579[_0x5f2344(0x999)],_0x549a59=this[_0x5f2344(0x4e8)][_0x5f2344(0x6cf)](_0x5f2344(0x65c),_0x172788,_0x2c105b),_0x26d1a5=_0x549a59[_0x5f2344(0x1a6)];_0x4b8829(_0x26d1a5,_0x173579),_0x4bfa4d=this['applyTransferMapsToCanvas'](_0x26d1a5);}for(const _0x289bc5 of _0x547cd4){_0x136f9e[_0x5f2344(0x7e2)](),_0x136f9e[_0x5f2344(0x5dd)](..._0x289bc5[_0x5f2344(0x5dd)]),_0x136f9e[_0x5f2344(0xc8)](0x1,-0x1),_0x230b45(_0x136f9e,_0x4bfa4d,_0x289bc5['x'],_0x289bc5['y'],_0x289bc5['w'],_0x289bc5['h'],0x0,-0x1,0x1,0x1),_0x136f9e[_0x5f2344(0x9ab)]();}this[_0x5f2344(0x765)]();}[_0x26edfb(0x3e4)](){const _0x251b3b=_0x26edfb;if(!this[_0x251b3b(0x3ad)])return;this[_0x251b3b(0x427)][_0x251b3b(0x974)](0x0,0x0,0x1,0x1),this[_0x251b3b(0x765)]();}[_0x26edfb(0x775)](_0x5f0504){}['markPointProps'](_0x2c18ed,_0x273cac){}['beginMarkedContent'](_0x33060b){const _0x32c0a7=_0x26edfb;this[_0x32c0a7(0x201)][_0x32c0a7(0x7d6)]({'visible':!![]});}[_0x26edfb(0x83b)](_0x545fa0,_0xba3760){const _0xd183b9=_0x26edfb;_0x545fa0==='OC'?this[_0xd183b9(0x201)]['push']({'visible':this[_0xd183b9(0x20b)][_0xd183b9(0x6f4)](_0xba3760)}):this[_0xd183b9(0x201)]['push']({'visible':!![]}),this[_0xd183b9(0x3ad)]=this[_0xd183b9(0x458)]();}[_0x26edfb(0x8a4)](){const _0x45ddc0=_0x26edfb;this[_0x45ddc0(0x201)][_0x45ddc0(0x783)](),this[_0x45ddc0(0x3ad)]=this['isContentVisible']();}['beginCompat'](){}[_0x26edfb(0x11b)](){}[_0x26edfb(0x697)](_0x1ca012){const _0x17a93e=_0x26edfb,_0x3b26ad=this[_0x17a93e(0x835)][_0x17a93e(0x69a)]();this[_0x17a93e(0x78f)]&&this[_0x17a93e(0x835)][_0x17a93e(0x6d1)]();!this['pendingClip']&&this[_0x17a93e(0x765)](_0x1ca012);const _0x6cc316=this[_0x17a93e(0x427)];this[_0x17a93e(0x78f)]&&(!_0x3b26ad&&(this[_0x17a93e(0x78f)]===_0x1ddce9?_0x6cc316['clip']('evenodd'):_0x6cc316[_0x17a93e(0x8b0)]()),this[_0x17a93e(0x78f)]=null),this[_0x17a93e(0x835)][_0x17a93e(0x44f)](this[_0x17a93e(0x835)][_0x17a93e(0x8e7)]),_0x6cc316[_0x17a93e(0x1ec)]();}[_0x26edfb(0x9ec)](){const _0x4cbcee=_0x26edfb;if(!this[_0x4cbcee(0x5e6)]){const _0x5cc286=(0x0,_0x1b427a['getCurrentTransform'])(this[_0x4cbcee(0x427)]);if(_0x5cc286[0x1]===0x0&&_0x5cc286[0x2]===0x0)this[_0x4cbcee(0x5e6)]=0x1/Math[_0x4cbcee(0x81b)](Math[_0x4cbcee(0x346)](_0x5cc286[0x0]),Math['abs'](_0x5cc286[0x3]));else{const _0x4baab8=Math[_0x4cbcee(0x346)](_0x5cc286[0x0]*_0x5cc286[0x3]-_0x5cc286[0x2]*_0x5cc286[0x1]),_0x5f2620=Math['hypot'](_0x5cc286[0x0],_0x5cc286[0x2]),_0x38fc46=Math[_0x4cbcee(0x8cb)](_0x5cc286[0x1],_0x5cc286[0x3]);this['_cachedGetSinglePixelWidth']=Math[_0x4cbcee(0x78d)](_0x5f2620,_0x38fc46)/_0x4baab8;}}return this[_0x4cbcee(0x5e6)];}[_0x26edfb(0x777)](){const _0x3b1b3c=_0x26edfb;if(this[_0x3b1b3c(0x7b5)][0x0]===-0x1){const {lineWidth:_0x54c4a2}=this[_0x3b1b3c(0x835)],{a:_0x52594e,b:_0x33b287,c:_0x5479f1,d:_0x5ea9bb}=this[_0x3b1b3c(0x427)][_0x3b1b3c(0x56a)]();let _0x20a2a6,_0x20335a;if(_0x33b287===0x0&&_0x5479f1===0x0){const _0x16f063=Math[_0x3b1b3c(0x346)](_0x52594e),_0x5d1e71=Math[_0x3b1b3c(0x346)](_0x5ea9bb);if(_0x16f063===_0x5d1e71){if(_0x54c4a2===0x0)_0x20a2a6=_0x20335a=0x1/_0x16f063;else{const _0x935b38=_0x16f063*_0x54c4a2;_0x20a2a6=_0x20335a=_0x935b38<0x1?0x1/_0x935b38:0x1;}}else{if(_0x54c4a2===0x0)_0x20a2a6=0x1/_0x16f063,_0x20335a=0x1/_0x5d1e71;else{const _0x4b7a6a=_0x16f063*_0x54c4a2,_0x19a0aa=_0x5d1e71*_0x54c4a2;_0x20a2a6=_0x4b7a6a<0x1?0x1/_0x4b7a6a:0x1,_0x20335a=_0x19a0aa<0x1?0x1/_0x19a0aa:0x1;}}}else{const _0x164a36=Math[_0x3b1b3c(0x346)](_0x52594e*_0x5ea9bb-_0x33b287*_0x5479f1),_0x172087=Math[_0x3b1b3c(0x8cb)](_0x52594e,_0x33b287),_0x483746=Math[_0x3b1b3c(0x8cb)](_0x5479f1,_0x5ea9bb);if(_0x54c4a2===0x0)_0x20a2a6=_0x483746/_0x164a36,_0x20335a=_0x172087/_0x164a36;else{const _0x40d881=_0x54c4a2*_0x164a36;_0x20a2a6=_0x483746>_0x40d881?_0x483746/_0x40d881:0x1,_0x20335a=_0x172087>_0x40d881?_0x172087/_0x40d881:0x1;}}this['_cachedScaleForStroking'][0x0]=_0x20a2a6,this[_0x3b1b3c(0x7b5)][0x1]=_0x20335a;}return this['_cachedScaleForStroking'];}[_0x26edfb(0x2a1)](_0x2c2d30){const _0x68febc=_0x26edfb,{ctx:_0x30491e}=this,{lineWidth:_0x4e4f64}=this['current'],[_0x23db80,_0x54730f]=this[_0x68febc(0x777)]();_0x30491e[_0x68febc(0x2ad)]=_0x4e4f64||0x1;if(_0x23db80===0x1&&_0x54730f===0x1){_0x30491e[_0x68febc(0x849)]();return;}const _0x524d57=_0x30491e[_0x68febc(0x115)]();_0x2c2d30&&_0x30491e[_0x68febc(0x7e2)]();_0x30491e[_0x68febc(0xc8)](_0x23db80,_0x54730f);if(_0x524d57[_0x68febc(0x557)]>0x0){const _0x290c63=Math[_0x68febc(0x78d)](_0x23db80,_0x54730f);_0x30491e[_0x68febc(0x4b2)](_0x524d57[_0x68febc(0x7ec)](_0x1579cf=>_0x1579cf/_0x290c63)),_0x30491e[_0x68febc(0x315)]/=_0x290c63;}_0x30491e[_0x68febc(0x849)](),_0x2c2d30&&_0x30491e['restore']();}['isContentVisible'](){const _0x38a41c=_0x26edfb;for(let _0x517a25=this[_0x38a41c(0x201)][_0x38a41c(0x557)]-0x1;_0x517a25>=0x0;_0x517a25--){if(!this[_0x38a41c(0x201)][_0x517a25][_0x38a41c(0x6cd)])return![];}return!![];}}_0x14ffd0[_0x26edfb(0x6e6)]=_0x38810c;for(const _0x1cc24d in _0x37e514[_0x26edfb(0x13d)]){_0x38810c[_0x26edfb(0x821)][_0x1cc24d]!==undefined&&(_0x38810c['prototype'][_0x37e514[_0x26edfb(0x13d)][_0x1cc24d]]=_0x38810c[_0x26edfb(0x821)][_0x1cc24d]);}},(_0x4d0670,_0x43587f,_0x6f04c6)=>{'use strict';const _0x1f573d=a0_0x160d;Object[_0x1f573d(0x430)](_0x43587f,_0x1f573d(0x19a),{'value':!![]}),_0x43587f[_0x1f573d(0x5ec)]=_0x43587f['PathType']=void 0x0,_0x43587f[_0x1f573d(0x2df)]=_0x537687;var _0x5a2331=_0x6f04c6(0x1),_0x5ad228=_0x6f04c6(0x87);const _0x376924={'FILL':_0x1f573d(0x48f),'STROKE':_0x1f573d(0x503),'SHADING':_0x1f573d(0x462)};_0x43587f[_0x1f573d(0x3b9)]=_0x376924;function _0x210521(_0x425aba,_0xbd1f9){const _0x1799ec=_0x1f573d;if(!_0xbd1f9)return;const _0x205b88=_0xbd1f9[0x2]-_0xbd1f9[0x0],_0x1a0397=_0xbd1f9[0x3]-_0xbd1f9[0x1],_0x8bec84=new Path2D();_0x8bec84[_0x1799ec(0x333)](_0xbd1f9[0x0],_0xbd1f9[0x1],_0x205b88,_0x1a0397),_0x425aba['clip'](_0x8bec84);}class _0x276656{constructor(){const _0x13c2d1=_0x1f573d;this[_0x13c2d1(0x6ef)]===_0x276656&&(0x0,_0x5a2331['unreachable'])(_0x13c2d1(0x554));}[_0x1f573d(0x307)](){const _0x5af7e5=_0x1f573d;(0x0,_0x5a2331[_0x5af7e5(0x749)])(_0x5af7e5(0x4f1));}}class _0x3a0473 extends _0x276656{constructor(_0x339c94){const _0x355e60=_0x1f573d;super(),this[_0x355e60(0x879)]=_0x339c94[0x1],this[_0x355e60(0x7ca)]=_0x339c94[0x2],this[_0x355e60(0x200)]=_0x339c94[0x3],this[_0x355e60(0x4c5)]=_0x339c94[0x4],this['_p1']=_0x339c94[0x5],this['_r0']=_0x339c94[0x6],this[_0x355e60(0x2c5)]=_0x339c94[0x7],this[_0x355e60(0x238)]=null;}[_0x1f573d(0x612)](_0x138aae){const _0x52c30d=_0x1f573d;let _0x536e35;if(this['_type']==='axial')_0x536e35=_0x138aae[_0x52c30d(0x5c8)](this['_p0'][0x0],this['_p0'][0x1],this[_0x52c30d(0x34d)][0x0],this[_0x52c30d(0x34d)][0x1]);else this['_type']==='radial'&&(_0x536e35=_0x138aae[_0x52c30d(0x920)](this['_p0'][0x0],this['_p0'][0x1],this[_0x52c30d(0x80f)],this[_0x52c30d(0x34d)][0x0],this[_0x52c30d(0x34d)][0x1],this['_r1']));for(const _0x343389 of this[_0x52c30d(0x200)]){_0x536e35[_0x52c30d(0xfe)](_0x343389[0x0],_0x343389[0x1]);}return _0x536e35;}[_0x1f573d(0x307)](_0x467c0d,_0x564287,_0x3af5d9,_0xaf135c){const _0x5e5061=_0x1f573d;let _0x5c3434;if(_0xaf135c===_0x376924[_0x5e5061(0x607)]||_0xaf135c===_0x376924[_0x5e5061(0x61e)]){const _0x443cbf=_0x564287['current']['getClippedPathBoundingBox'](_0xaf135c,(0x0,_0x5ad228[_0x5e5061(0x5f1)])(_0x467c0d))||[0x0,0x0,0x0,0x0],_0x431961=Math[_0x5e5061(0x213)](_0x443cbf[0x2]-_0x443cbf[0x0])||0x1,_0x54bf17=Math[_0x5e5061(0x213)](_0x443cbf[0x3]-_0x443cbf[0x1])||0x1,_0x5bc8ac=_0x564287[_0x5e5061(0x4e8)][_0x5e5061(0x6cf)]('pattern',_0x431961,_0x54bf17,!![]),_0x56c077=_0x5bc8ac[_0x5e5061(0x1a6)];_0x56c077[_0x5e5061(0x726)](0x0,0x0,_0x56c077[_0x5e5061(0x75a)][_0x5e5061(0x98b)],_0x56c077[_0x5e5061(0x75a)][_0x5e5061(0x999)]),_0x56c077[_0x5e5061(0x1ec)](),_0x56c077[_0x5e5061(0x333)](0x0,0x0,_0x56c077['canvas']['width'],_0x56c077[_0x5e5061(0x75a)][_0x5e5061(0x999)]),_0x56c077[_0x5e5061(0x18d)](-_0x443cbf[0x0],-_0x443cbf[0x1]),_0x3af5d9=_0x5a2331[_0x5e5061(0x5d7)][_0x5e5061(0x5dd)](_0x3af5d9,[0x1,0x0,0x0,0x1,_0x443cbf[0x0],_0x443cbf[0x1]]),_0x56c077[_0x5e5061(0x5dd)](..._0x564287[_0x5e5061(0x15a)]);this[_0x5e5061(0x238)]&&_0x56c077[_0x5e5061(0x5dd)](...this['matrix']);_0x210521(_0x56c077,this['_bbox']),_0x56c077[_0x5e5061(0x968)]=this[_0x5e5061(0x612)](_0x56c077),_0x56c077[_0x5e5061(0x923)](),_0x5c3434=_0x467c0d[_0x5e5061(0x9da)](_0x5bc8ac[_0x5e5061(0x75a)],_0x5e5061(0x5f5));const _0x4aa6a4=new DOMMatrix(_0x3af5d9);_0x5c3434['setTransform'](_0x4aa6a4);}else _0x210521(_0x467c0d,this['_bbox']),_0x5c3434=this[_0x5e5061(0x612)](_0x467c0d);return _0x5c3434;}}function _0x3dfddf(_0x3af789,_0x2c23b8,_0x214cb9,_0x296684,_0x31dd79,_0x41f918,_0x5d1262,_0x457a0c){const _0x35fb06=_0x1f573d,_0x48cc85=_0x2c23b8['coords'],_0x33355b=_0x2c23b8[_0x35fb06(0x5fa)],_0x46ccf5=_0x3af789[_0x35fb06(0x41b)],_0x24a204=_0x3af789['width']*0x4;let _0x406adb;_0x48cc85[_0x214cb9+0x1]>_0x48cc85[_0x296684+0x1]&&(_0x406adb=_0x214cb9,_0x214cb9=_0x296684,_0x296684=_0x406adb,_0x406adb=_0x41f918,_0x41f918=_0x5d1262,_0x5d1262=_0x406adb);_0x48cc85[_0x296684+0x1]>_0x48cc85[_0x31dd79+0x1]&&(_0x406adb=_0x296684,_0x296684=_0x31dd79,_0x31dd79=_0x406adb,_0x406adb=_0x5d1262,_0x5d1262=_0x457a0c,_0x457a0c=_0x406adb);_0x48cc85[_0x214cb9+0x1]>_0x48cc85[_0x296684+0x1]&&(_0x406adb=_0x214cb9,_0x214cb9=_0x296684,_0x296684=_0x406adb,_0x406adb=_0x41f918,_0x41f918=_0x5d1262,_0x5d1262=_0x406adb);const _0x22aa03=(_0x48cc85[_0x214cb9]+_0x2c23b8[_0x35fb06(0xdf)])*_0x2c23b8[_0x35fb06(0x3eb)],_0xc47b19=(_0x48cc85[_0x214cb9+0x1]+_0x2c23b8[_0x35fb06(0x431)])*_0x2c23b8[_0x35fb06(0x1f0)],_0x13a50f=(_0x48cc85[_0x296684]+_0x2c23b8[_0x35fb06(0xdf)])*_0x2c23b8[_0x35fb06(0x3eb)],_0x313018=(_0x48cc85[_0x296684+0x1]+_0x2c23b8['offsetY'])*_0x2c23b8[_0x35fb06(0x1f0)],_0x309ecb=(_0x48cc85[_0x31dd79]+_0x2c23b8[_0x35fb06(0xdf)])*_0x2c23b8['scaleX'],_0x1101ec=(_0x48cc85[_0x31dd79+0x1]+_0x2c23b8[_0x35fb06(0x431)])*_0x2c23b8[_0x35fb06(0x1f0)];if(_0xc47b19>=_0x1101ec)return;const _0x1b2e28=_0x33355b[_0x41f918],_0x4a3154=_0x33355b[_0x41f918+0x1],_0xd74165=_0x33355b[_0x41f918+0x2],_0x2e9147=_0x33355b[_0x5d1262],_0x36f24e=_0x33355b[_0x5d1262+0x1],_0x5292cf=_0x33355b[_0x5d1262+0x2],_0x5a8de9=_0x33355b[_0x457a0c],_0x149193=_0x33355b[_0x457a0c+0x1],_0x1c5c82=_0x33355b[_0x457a0c+0x2],_0x1a8a2d=Math['round'](_0xc47b19),_0x5be503=Math['round'](_0x1101ec);let _0x3a9cbd,_0x25b87b,_0x3d0584,_0x5c29b1,_0x25905a,_0x1de4a5,_0x6293e1,_0x4a2ef0;for(let _0xfa6cf=_0x1a8a2d;_0xfa6cf<=_0x5be503;_0xfa6cf++){if(_0xfa6cf<_0x313018){let _0x3dd4e7;_0xfa6cf<_0xc47b19?_0x3dd4e7=0x0:_0x3dd4e7=(_0xc47b19-_0xfa6cf)/(_0xc47b19-_0x313018),_0x3a9cbd=_0x22aa03-(_0x22aa03-_0x13a50f)*_0x3dd4e7,_0x25b87b=_0x1b2e28-(_0x1b2e28-_0x2e9147)*_0x3dd4e7,_0x3d0584=_0x4a3154-(_0x4a3154-_0x36f24e)*_0x3dd4e7,_0x5c29b1=_0xd74165-(_0xd74165-_0x5292cf)*_0x3dd4e7;}else{let _0x3d05cc;if(_0xfa6cf>_0x1101ec)_0x3d05cc=0x1;else _0x313018===_0x1101ec?_0x3d05cc=0x0:_0x3d05cc=(_0x313018-_0xfa6cf)/(_0x313018-_0x1101ec);_0x3a9cbd=_0x13a50f-(_0x13a50f-_0x309ecb)*_0x3d05cc,_0x25b87b=_0x2e9147-(_0x2e9147-_0x5a8de9)*_0x3d05cc,_0x3d0584=_0x36f24e-(_0x36f24e-_0x149193)*_0x3d05cc,_0x5c29b1=_0x5292cf-(_0x5292cf-_0x1c5c82)*_0x3d05cc;}let _0x11ff32;if(_0xfa6cf<_0xc47b19)_0x11ff32=0x0;else _0xfa6cf>_0x1101ec?_0x11ff32=0x1:_0x11ff32=(_0xc47b19-_0xfa6cf)/(_0xc47b19-_0x1101ec);_0x25905a=_0x22aa03-(_0x22aa03-_0x309ecb)*_0x11ff32,_0x1de4a5=_0x1b2e28-(_0x1b2e28-_0x5a8de9)*_0x11ff32,_0x6293e1=_0x4a3154-(_0x4a3154-_0x149193)*_0x11ff32,_0x4a2ef0=_0xd74165-(_0xd74165-_0x1c5c82)*_0x11ff32;const _0x1cd323=Math[_0x35fb06(0x7df)](Math['min'](_0x3a9cbd,_0x25905a)),_0xb0cffd=Math['round'](Math[_0x35fb06(0x78d)](_0x3a9cbd,_0x25905a));let _0x32413e=_0x24a204*_0xfa6cf+_0x1cd323*0x4;for(let _0x177e06=_0x1cd323;_0x177e06<=_0xb0cffd;_0x177e06++){_0x11ff32=(_0x3a9cbd-_0x177e06)/(_0x3a9cbd-_0x25905a);if(_0x11ff32<0x0)_0x11ff32=0x0;else _0x11ff32>0x1&&(_0x11ff32=0x1);_0x46ccf5[_0x32413e++]=_0x25b87b-(_0x25b87b-_0x1de4a5)*_0x11ff32|0x0,_0x46ccf5[_0x32413e++]=_0x3d0584-(_0x3d0584-_0x6293e1)*_0x11ff32|0x0,_0x46ccf5[_0x32413e++]=_0x5c29b1-(_0x5c29b1-_0x4a2ef0)*_0x11ff32|0x0,_0x46ccf5[_0x32413e++]=0xff;}}}function _0x1daf4e(_0xec0539,_0x52a167,_0x5a895d){const _0x453697=_0x1f573d,_0x70bce6=_0x52a167['coords'],_0x53157e=_0x52a167[_0x453697(0x5fa)];let _0x2c1744,_0x4f5765;switch(_0x52a167[_0x453697(0x9fd)]){case _0x453697(0xca):const _0x5dc333=_0x52a167[_0x453697(0x1e4)],_0x3f510d=Math[_0x453697(0x583)](_0x70bce6[_0x453697(0x557)]/_0x5dc333)-0x1,_0x38eb5b=_0x5dc333-0x1;for(_0x2c1744=0x0;_0x2c1744<_0x3f510d;_0x2c1744++){let _0x486724=_0x2c1744*_0x5dc333;for(let _0x4aef80=0x0;_0x4aef80<_0x38eb5b;_0x4aef80++,_0x486724++){_0x3dfddf(_0xec0539,_0x5a895d,_0x70bce6[_0x486724],_0x70bce6[_0x486724+0x1],_0x70bce6[_0x486724+_0x5dc333],_0x53157e[_0x486724],_0x53157e[_0x486724+0x1],_0x53157e[_0x486724+_0x5dc333]),_0x3dfddf(_0xec0539,_0x5a895d,_0x70bce6[_0x486724+_0x5dc333+0x1],_0x70bce6[_0x486724+0x1],_0x70bce6[_0x486724+_0x5dc333],_0x53157e[_0x486724+_0x5dc333+0x1],_0x53157e[_0x486724+0x1],_0x53157e[_0x486724+_0x5dc333]);}}break;case _0x453697(0x77f):for(_0x2c1744=0x0,_0x4f5765=_0x70bce6[_0x453697(0x557)];_0x2c1744<_0x4f5765;_0x2c1744+=0x3){_0x3dfddf(_0xec0539,_0x5a895d,_0x70bce6[_0x2c1744],_0x70bce6[_0x2c1744+0x1],_0x70bce6[_0x2c1744+0x2],_0x53157e[_0x2c1744],_0x53157e[_0x2c1744+0x1],_0x53157e[_0x2c1744+0x2]);}break;default:throw new Error(_0x453697(0x7ab));}}class _0x387bec extends _0x276656{constructor(_0x406e65){const _0x2bcf4d=_0x1f573d;super(),this['_coords']=_0x406e65[0x2],this['_colors']=_0x406e65[0x3],this[_0x2bcf4d(0x326)]=_0x406e65[0x4],this[_0x2bcf4d(0x154)]=_0x406e65[0x5],this[_0x2bcf4d(0x7ca)]=_0x406e65[0x7],this[_0x2bcf4d(0x48d)]=_0x406e65[0x8],this[_0x2bcf4d(0x238)]=null;}[_0x1f573d(0x570)](_0x4dfad7,_0x53cac3,_0x3250b0){const _0x4cd083=_0x1f573d,_0x429767=1.1,_0x301816=0xbb8,_0x88403=0x2,_0x3990ec=Math[_0x4cd083(0x583)](this['_bounds'][0x0]),_0x139997=Math[_0x4cd083(0x583)](this[_0x4cd083(0x154)][0x1]),_0x3a4a69=Math['ceil'](this[_0x4cd083(0x154)][0x2])-_0x3990ec,_0x20a0a2=Math['ceil'](this[_0x4cd083(0x154)][0x3])-_0x139997,_0x5014eb=Math[_0x4cd083(0x81b)](Math[_0x4cd083(0x213)](Math[_0x4cd083(0x346)](_0x3a4a69*_0x4dfad7[0x0]*_0x429767)),_0x301816),_0x4d97af=Math[_0x4cd083(0x81b)](Math[_0x4cd083(0x213)](Math[_0x4cd083(0x346)](_0x20a0a2*_0x4dfad7[0x1]*_0x429767)),_0x301816),_0x3a6d2c=_0x3a4a69/_0x5014eb,_0x2b7e00=_0x20a0a2/_0x4d97af,_0x2521e5={'coords':this[_0x4cd083(0x452)],'colors':this[_0x4cd083(0x2e1)],'offsetX':-_0x3990ec,'offsetY':-_0x139997,'scaleX':0x1/_0x3a6d2c,'scaleY':0x1/_0x2b7e00},_0x4e2e1e=_0x5014eb+_0x88403*0x2,_0x4c9164=_0x4d97af+_0x88403*0x2,_0x7c111b=_0x3250b0[_0x4cd083(0x6cf)](_0x4cd083(0x990),_0x4e2e1e,_0x4c9164,![]),_0x2b3e0d=_0x7c111b['context'],_0x19c106=_0x2b3e0d[_0x4cd083(0x160)](_0x5014eb,_0x4d97af);if(_0x53cac3){const _0x2ec9cc=_0x19c106[_0x4cd083(0x41b)];for(let _0x1c7650=0x0,_0x5306d5=_0x2ec9cc['length'];_0x1c7650<_0x5306d5;_0x1c7650+=0x4){_0x2ec9cc[_0x1c7650]=_0x53cac3[0x0],_0x2ec9cc[_0x1c7650+0x1]=_0x53cac3[0x1],_0x2ec9cc[_0x1c7650+0x2]=_0x53cac3[0x2],_0x2ec9cc[_0x1c7650+0x3]=0xff;}}for(const _0x34ea30 of this[_0x4cd083(0x326)]){_0x1daf4e(_0x19c106,_0x34ea30,_0x2521e5);}_0x2b3e0d[_0x4cd083(0x2b9)](_0x19c106,_0x88403,_0x88403);const _0x310c85=_0x7c111b[_0x4cd083(0x75a)];return{'canvas':_0x310c85,'offsetX':_0x3990ec-_0x88403*_0x3a6d2c,'offsetY':_0x139997-_0x88403*_0x2b7e00,'scaleX':_0x3a6d2c,'scaleY':_0x2b7e00};}[_0x1f573d(0x307)](_0x5b6226,_0x2b5d72,_0x195635,_0x48dce7){const _0x5160fc=_0x1f573d;_0x210521(_0x5b6226,this[_0x5160fc(0x7ca)]);let _0x29b7e2;if(_0x48dce7===_0x376924['SHADING'])_0x29b7e2=_0x5a2331['Util'][_0x5160fc(0x424)]((0x0,_0x5ad228[_0x5160fc(0x5f1)])(_0x5b6226));else{_0x29b7e2=_0x5a2331['Util'][_0x5160fc(0x424)](_0x2b5d72[_0x5160fc(0x15a)]);if(this[_0x5160fc(0x238)]){const _0x3b22a6=_0x5a2331[_0x5160fc(0x5d7)][_0x5160fc(0x424)](this[_0x5160fc(0x238)]);_0x29b7e2=[_0x29b7e2[0x0]*_0x3b22a6[0x0],_0x29b7e2[0x1]*_0x3b22a6[0x1]];}}const _0x48dbf6=this[_0x5160fc(0x570)](_0x29b7e2,_0x48dce7===_0x376924[_0x5160fc(0x6c3)]?null:this[_0x5160fc(0x48d)],_0x2b5d72[_0x5160fc(0x4e8)]);return _0x48dce7!==_0x376924[_0x5160fc(0x6c3)]&&(_0x5b6226[_0x5160fc(0xf1)](..._0x2b5d72[_0x5160fc(0x15a)]),this[_0x5160fc(0x238)]&&_0x5b6226[_0x5160fc(0x5dd)](...this[_0x5160fc(0x238)])),_0x5b6226['translate'](_0x48dbf6['offsetX'],_0x48dbf6['offsetY']),_0x5b6226[_0x5160fc(0xc8)](_0x48dbf6[_0x5160fc(0x3eb)],_0x48dbf6[_0x5160fc(0x1f0)]),_0x5b6226['createPattern'](_0x48dbf6['canvas'],_0x5160fc(0x5f5));}}class _0x1351d5 extends _0x276656{[_0x1f573d(0x307)](){const _0x134298=_0x1f573d;return _0x134298(0x989);}}function _0x537687(_0x2b9986){const _0x1ce827=_0x1f573d;switch(_0x2b9986[0x0]){case'RadialAxial':return new _0x3a0473(_0x2b9986);case _0x1ce827(0xa08):return new _0x387bec(_0x2b9986);case _0x1ce827(0x9fa):return new _0x1351d5();}throw new Error(_0x1ce827(0x4fa)+_0x2b9986[0x0]);}const _0x21c771={'COLORED':0x1,'UNCOLORED':0x2};class _0x4cbd81{static ['MAX_PATTERN_SIZE']=0xbb8;constructor(_0x30f619,_0x4e40f9,_0x31434d,_0x22962b,_0x5e4b4d){const _0x2ed300=_0x1f573d;this[_0x2ed300(0x33f)]=_0x30f619[0x2],this['matrix']=_0x30f619[0x3]||[0x1,0x0,0x0,0x1,0x0,0x0],this[_0x2ed300(0x9b0)]=_0x30f619[0x4],this[_0x2ed300(0x3ab)]=_0x30f619[0x5],this[_0x2ed300(0x3f1)]=_0x30f619[0x6],this[_0x2ed300(0xed)]=_0x30f619[0x7],this[_0x2ed300(0x444)]=_0x30f619[0x8],this['color']=_0x4e40f9,this[_0x2ed300(0x427)]=_0x31434d,this[_0x2ed300(0x613)]=_0x22962b,this[_0x2ed300(0x15a)]=_0x5e4b4d;}[_0x1f573d(0x5e3)](_0x39a1a1){const _0x4b204d=_0x1f573d,_0x562ce6=this[_0x4b204d(0x33f)],_0x4f897a=this[_0x4b204d(0x9b0)],_0x3e9bcb=this[_0x4b204d(0x3ab)],_0xaa0102=this[_0x4b204d(0x3f1)],_0x45903d=this[_0x4b204d(0xed)],_0x3ccab4=this['tilingType'],_0x15b764=this[_0x4b204d(0x5fe)],_0x6c892e=this[_0x4b204d(0x613)];(0x0,_0x5a2331[_0x4b204d(0x7c1)])(_0x4b204d(0x889)+_0x3ccab4);const _0x354108=_0x4f897a[0x0],_0x160236=_0x4f897a[0x1],_0x40ffd7=_0x4f897a[0x2],_0x1767c7=_0x4f897a[0x3],_0x761dee=_0x5a2331[_0x4b204d(0x5d7)][_0x4b204d(0x424)](this[_0x4b204d(0x238)]),_0x3acccf=_0x5a2331['Util'][_0x4b204d(0x424)](this[_0x4b204d(0x15a)]),_0x145a78=[_0x761dee[0x0]*_0x3acccf[0x0],_0x761dee[0x1]*_0x3acccf[0x1]],_0x43570d=this[_0x4b204d(0x8aa)](_0x3e9bcb,this[_0x4b204d(0x427)]['canvas']['width'],_0x145a78[0x0]),_0x36bfe7=this[_0x4b204d(0x8aa)](_0xaa0102,this[_0x4b204d(0x427)][_0x4b204d(0x75a)][_0x4b204d(0x999)],_0x145a78[0x1]),_0x291467=_0x39a1a1[_0x4b204d(0x4e8)]['getCanvas'](_0x4b204d(0x8cf),_0x43570d[_0x4b204d(0x87a)],_0x36bfe7[_0x4b204d(0x87a)],!![]),_0x31379f=_0x291467[_0x4b204d(0x1a6)],_0x396992=_0x6c892e['createCanvasGraphics'](_0x31379f);_0x396992[_0x4b204d(0x336)]=_0x39a1a1['groupLevel'],this[_0x4b204d(0x309)](_0x396992,_0x45903d,_0x15b764);let _0x44d50e=_0x354108,_0x83259f=_0x160236,_0x669eb9=_0x40ffd7,_0x4793a3=_0x1767c7;return _0x354108<0x0&&(_0x44d50e=0x0,_0x669eb9+=Math[_0x4b204d(0x346)](_0x354108)),_0x160236<0x0&&(_0x83259f=0x0,_0x4793a3+=Math['abs'](_0x160236)),_0x31379f[_0x4b204d(0x18d)](-(_0x43570d[_0x4b204d(0xc8)]*_0x44d50e),-(_0x36bfe7[_0x4b204d(0xc8)]*_0x83259f)),_0x396992[_0x4b204d(0x5dd)](_0x43570d[_0x4b204d(0xc8)],0x0,0x0,_0x36bfe7[_0x4b204d(0xc8)],0x0,0x0),_0x31379f['save'](),this[_0x4b204d(0x1a5)](_0x396992,_0x44d50e,_0x83259f,_0x669eb9,_0x4793a3),_0x396992['baseTransform']=(0x0,_0x5ad228['getCurrentTransform'])(_0x396992[_0x4b204d(0x427)]),_0x396992[_0x4b204d(0x381)](_0x562ce6),_0x396992[_0x4b204d(0x279)](),{'canvas':_0x291467[_0x4b204d(0x75a)],'scaleX':_0x43570d['scale'],'scaleY':_0x36bfe7[_0x4b204d(0xc8)],'offsetX':_0x44d50e,'offsetY':_0x83259f};}[_0x1f573d(0x8aa)](_0x23e16d,_0x3ab118,_0xc5a4ca){const _0x48e199=_0x1f573d;_0x23e16d=Math[_0x48e199(0x346)](_0x23e16d);const _0x1d44b5=Math['max'](_0x4cbd81['MAX_PATTERN_SIZE'],_0x3ab118);let _0x55abc1=Math[_0x48e199(0x213)](_0x23e16d*_0xc5a4ca);return _0x55abc1>=_0x1d44b5?_0x55abc1=_0x1d44b5:_0xc5a4ca=_0x55abc1/_0x23e16d,{'scale':_0xc5a4ca,'size':_0x55abc1};}['clipBbox'](_0x4c3d38,_0x2859ad,_0x2b8bbd,_0x3d7274,_0x40ea1b){const _0x1ec63e=_0x1f573d,_0x62c2cf=_0x3d7274-_0x2859ad,_0x5be219=_0x40ea1b-_0x2b8bbd;_0x4c3d38['ctx'][_0x1ec63e(0x333)](_0x2859ad,_0x2b8bbd,_0x62c2cf,_0x5be219),_0x4c3d38[_0x1ec63e(0x835)][_0x1ec63e(0x767)]((0x0,_0x5ad228[_0x1ec63e(0x5f1)])(_0x4c3d38[_0x1ec63e(0x427)]),[_0x2859ad,_0x2b8bbd,_0x3d7274,_0x40ea1b]),_0x4c3d38[_0x1ec63e(0x8b0)](),_0x4c3d38[_0x1ec63e(0x486)]();}[_0x1f573d(0x309)](_0x3dee5a,_0x565e42,_0x2735ee){const _0x155472=_0x1f573d,_0x4de279=_0x3dee5a['ctx'],_0x5319f6=_0x3dee5a[_0x155472(0x835)];switch(_0x565e42){case _0x21c771[_0x155472(0x815)]:const _0x140559=this[_0x155472(0x427)];_0x4de279[_0x155472(0x968)]=_0x140559[_0x155472(0x968)],_0x4de279[_0x155472(0xc9)]=_0x140559[_0x155472(0xc9)],_0x5319f6[_0x155472(0x631)]=_0x140559[_0x155472(0x968)],_0x5319f6[_0x155472(0x745)]=_0x140559[_0x155472(0xc9)];break;case _0x21c771[_0x155472(0x3e3)]:const _0x3f3c0e=_0x5a2331[_0x155472(0x5d7)]['makeHexColor'](_0x2735ee[0x0],_0x2735ee[0x1],_0x2735ee[0x2]);_0x4de279[_0x155472(0x968)]=_0x3f3c0e,_0x4de279[_0x155472(0xc9)]=_0x3f3c0e,_0x5319f6[_0x155472(0x631)]=_0x3f3c0e,_0x5319f6[_0x155472(0x745)]=_0x3f3c0e;break;default:throw new _0x5a2331['FormatError']('Unsupported\x20paint\x20type:\x20'+_0x565e42);}}[_0x1f573d(0x307)](_0x40ed16,_0x2124d7,_0x5460bb,_0x4d42c7){const _0x120776=_0x1f573d;let _0x296e5a=_0x5460bb;_0x4d42c7!==_0x376924[_0x120776(0x6c3)]&&(_0x296e5a=_0x5a2331['Util'][_0x120776(0x5dd)](_0x296e5a,_0x2124d7[_0x120776(0x15a)]),this[_0x120776(0x238)]&&(_0x296e5a=_0x5a2331[_0x120776(0x5d7)][_0x120776(0x5dd)](_0x296e5a,this[_0x120776(0x238)])));const _0x295b40=this[_0x120776(0x5e3)](_0x2124d7);let _0xe62bd9=new DOMMatrix(_0x296e5a);_0xe62bd9=_0xe62bd9[_0x120776(0x18d)](_0x295b40[_0x120776(0xdf)],_0x295b40['offsetY']),_0xe62bd9=_0xe62bd9['scale'](0x1/_0x295b40[_0x120776(0x3eb)],0x1/_0x295b40['scaleY']);const _0x4dc446=_0x40ed16[_0x120776(0x9da)](_0x295b40['canvas'],_0x120776(0x539));return _0x4dc446[_0x120776(0xf1)](_0xe62bd9),_0x4dc446;}}_0x43587f[_0x1f573d(0x5ec)]=_0x4cbd81;},(_0x48ba29,_0x7255a3,_0x1988e8)=>{'use strict';const _0x30aabc=a0_0x160d;Object[_0x30aabc(0x430)](_0x7255a3,_0x30aabc(0x19a),{'value':!![]}),_0x7255a3['convertBlackAndWhiteToRGBA']=_0x3d4c86,_0x7255a3[_0x30aabc(0x3e9)]=_0x1b4375,_0x7255a3[_0x30aabc(0x6a5)]=_0x2af350;var _0xb6ee0d=_0x1988e8(0x1);function _0x1b4375(_0x3d5787){const _0x5758dc=_0x30aabc;switch(_0x3d5787['kind']){case _0xb6ee0d[_0x5758dc(0x163)][_0x5758dc(0x245)]:return _0x3d4c86(_0x3d5787);case _0xb6ee0d[_0x5758dc(0x163)][_0x5758dc(0x66e)]:return _0x3cca3e(_0x3d5787);}return null;}function _0x3d4c86(_0x4d4143){const _0x5d9af5=_0x30aabc;let {src:_0x35117b,srcPos:srcPos=0x0,dest:_0x3e0919,width:_0x1c4306,height:_0x697fc3,nonBlackColor:nonBlackColor=0xffffffff,inverseDecode:inverseDecode=![]}=_0x4d4143;const _0x2b78f0=_0xb6ee0d[_0x5d9af5(0x7a8)]['isLittleEndian']?0xff000000:0xff,[_0x2f15d4,_0x3ecca9]=inverseDecode?[nonBlackColor,_0x2b78f0]:[_0x2b78f0,nonBlackColor],_0x2619fd=_0x1c4306>>0x3,_0x3e42e6=_0x1c4306&0x7,_0x31f550=_0x35117b[_0x5d9af5(0x557)];_0x3e0919=new Uint32Array(_0x3e0919[_0x5d9af5(0x948)]);let _0x10abfb=0x0;for(let _0x13352b=0x0;_0x13352b<_0x697fc3;_0x13352b++){for(const _0x6dc5b1=srcPos+_0x2619fd;srcPos<_0x6dc5b1;srcPos++){const _0x146786=srcPos<_0x31f550?_0x35117b[srcPos]:0xff;_0x3e0919[_0x10abfb++]=_0x146786&0x80?_0x3ecca9:_0x2f15d4,_0x3e0919[_0x10abfb++]=_0x146786&0x40?_0x3ecca9:_0x2f15d4,_0x3e0919[_0x10abfb++]=_0x146786&0x20?_0x3ecca9:_0x2f15d4,_0x3e0919[_0x10abfb++]=_0x146786&0x10?_0x3ecca9:_0x2f15d4,_0x3e0919[_0x10abfb++]=_0x146786&0x8?_0x3ecca9:_0x2f15d4,_0x3e0919[_0x10abfb++]=_0x146786&0x4?_0x3ecca9:_0x2f15d4,_0x3e0919[_0x10abfb++]=_0x146786&0x2?_0x3ecca9:_0x2f15d4,_0x3e0919[_0x10abfb++]=_0x146786&0x1?_0x3ecca9:_0x2f15d4;}if(_0x3e42e6===0x0)continue;const _0x3968c8=srcPos<_0x31f550?_0x35117b[srcPos++]:0xff;for(let _0x5f0638=0x0;_0x5f0638<_0x3e42e6;_0x5f0638++){_0x3e0919[_0x10abfb++]=_0x3968c8&0x1<<0x7-_0x5f0638?_0x3ecca9:_0x2f15d4;}}return{'srcPos':srcPos,'destPos':_0x10abfb};}function _0x3cca3e(_0x4ea705){const _0x4d291d=_0x30aabc;let {src:_0x595cd5,srcPos:srcPos=0x0,dest:_0x1877a1,destPos:destPos=0x0,width:_0x13ff8b,height:_0x2dca59}=_0x4ea705,_0x551388=0x0;const _0x372529=_0x595cd5[_0x4d291d(0x557)]>>0x2,_0x43a8d5=new Uint32Array(_0x595cd5[_0x4d291d(0x948)],srcPos,_0x372529);if(_0xb6ee0d[_0x4d291d(0x7a8)][_0x4d291d(0x654)]){for(;_0x551388<_0x372529-0x2;_0x551388+=0x3,destPos+=0x4){const _0x48d86b=_0x43a8d5[_0x551388],_0x591a8c=_0x43a8d5[_0x551388+0x1],_0x16e53a=_0x43a8d5[_0x551388+0x2];_0x1877a1[destPos]=_0x48d86b|0xff000000,_0x1877a1[destPos+0x1]=_0x48d86b>>>0x18|_0x591a8c<<0x8|0xff000000,_0x1877a1[destPos+0x2]=_0x591a8c>>>0x10|_0x16e53a<<0x10|0xff000000,_0x1877a1[destPos+0x3]=_0x16e53a>>>0x8|0xff000000;}for(let _0x887aaf=_0x551388*0x4,_0x3a1e48=_0x595cd5[_0x4d291d(0x557)];_0x887aaf<_0x3a1e48;_0x887aaf+=0x3){_0x1877a1[destPos++]=_0x595cd5[_0x887aaf]|_0x595cd5[_0x887aaf+0x1]<<0x8|_0x595cd5[_0x887aaf+0x2]<<0x10|0xff000000;}}else{for(;_0x551388<_0x372529-0x2;_0x551388+=0x3,destPos+=0x4){const _0xe73a9=_0x43a8d5[_0x551388],_0x167c52=_0x43a8d5[_0x551388+0x1],_0xffae8b=_0x43a8d5[_0x551388+0x2];_0x1877a1[destPos]=_0xe73a9|0xff,_0x1877a1[destPos+0x1]=_0xe73a9<<0x18|_0x167c52>>>0x8|0xff,_0x1877a1[destPos+0x2]=_0x167c52<<0x10|_0xffae8b>>>0x10|0xff,_0x1877a1[destPos+0x3]=_0xffae8b<<0x8|0xff;}for(let _0x4b6480=_0x551388*0x4,_0x351e99=_0x595cd5[_0x4d291d(0x557)];_0x4b6480<_0x351e99;_0x4b6480+=0x3){_0x1877a1[destPos++]=_0x595cd5[_0x4b6480]<<0x18|_0x595cd5[_0x4b6480+0x1]<<0x10|_0x595cd5[_0x4b6480+0x2]<<0x8|0xff;}}return{'srcPos':srcPos,'destPos':destPos};}function _0x2af350(_0x5a42aa,_0x1a5b56){const _0x32d31d=_0x30aabc;if(_0xb6ee0d[_0x32d31d(0x7a8)]['isLittleEndian'])for(let _0x34bba9=0x0,_0x55a896=_0x5a42aa[_0x32d31d(0x557)];_0x34bba9<_0x55a896;_0x34bba9++){_0x1a5b56[_0x34bba9]=_0x5a42aa[_0x34bba9]*0x10101|0xff000000;}else for(let _0x309c5d=0x0,_0x3d4049=_0x5a42aa[_0x32d31d(0x557)];_0x309c5d<_0x3d4049;_0x309c5d++){_0x1a5b56[_0x309c5d]=_0x5a42aa[_0x309c5d]*0x1010100|0xff;}}},(_0x421d3c,_0x1ac99a)=>{'use strict';const _0x5e5b7b=a0_0x160d;Object[_0x5e5b7b(0x430)](_0x1ac99a,_0x5e5b7b(0x19a),{'value':!![]}),_0x1ac99a[_0x5e5b7b(0x445)]=void 0x0;const _0x2d304b=Object[_0x5e5b7b(0x77c)](null);_0x1ac99a['GlobalWorkerOptions']=_0x2d304b,_0x2d304b['workerPort']=null,_0x2d304b[_0x5e5b7b(0xe3)]='';},(_0x345abc,_0x445db5,_0x8a35ec)=>{'use strict';const _0x14b560=a0_0x160d;Object['defineProperty'](_0x445db5,_0x14b560(0x19a),{'value':!![]}),_0x445db5[_0x14b560(0x43f)]=void 0x0;var _0x2fe5c8=_0x8a35ec(0x1);const _0x16b598={'UNKNOWN':0x0,'DATA':0x1,'ERROR':0x2},_0x1b48ce={'UNKNOWN':0x0,'CANCEL':0x1,'CANCEL_COMPLETE':0x2,'CLOSE':0x3,'ENQUEUE':0x4,'ERROR':0x5,'PULL':0x6,'PULL_COMPLETE':0x7,'START_COMPLETE':0x8};function _0x357a64(_0x34d28a){const _0x299fb8=_0x14b560;!(_0x34d28a instanceof Error||typeof _0x34d28a===_0x299fb8(0x97b)&&_0x34d28a!==null)&&(0x0,_0x2fe5c8['unreachable'])('wrapReason:\x20Expected\x20\x22reason\x22\x20to\x20be\x20a\x20(possibly\x20cloned)\x20Error.');switch(_0x34d28a[_0x299fb8(0x499)]){case _0x299fb8(0x980):return new _0x2fe5c8[(_0x299fb8(0x980))](_0x34d28a[_0x299fb8(0x1bd)]);case _0x299fb8(0x5c5):return new _0x2fe5c8[(_0x299fb8(0x5c5))](_0x34d28a[_0x299fb8(0x1bd)]);case _0x299fb8(0x763):return new _0x2fe5c8['PasswordException'](_0x34d28a[_0x299fb8(0x1bd)],_0x34d28a[_0x299fb8(0x191)]);case _0x299fb8(0x90f):return new _0x2fe5c8[(_0x299fb8(0x90f))](_0x34d28a[_0x299fb8(0x1bd)],_0x34d28a[_0x299fb8(0x78b)]);case _0x299fb8(0x194):return new _0x2fe5c8[(_0x299fb8(0x194))](_0x34d28a['message'],_0x34d28a['details']);default:return new _0x2fe5c8[(_0x299fb8(0x194))](_0x34d28a[_0x299fb8(0x1bd)],_0x34d28a[_0x299fb8(0x83f)]());}}class _0x2eef8d{constructor(_0x27b571,_0x363edd,_0x29d3e6){const _0x1e15bd=_0x14b560;this['sourceName']=_0x27b571,this[_0x1e15bd(0x996)]=_0x363edd,this[_0x1e15bd(0x5a9)]=_0x29d3e6,this[_0x1e15bd(0x653)]=0x1,this['streamId']=0x1,this['streamSinks']=Object[_0x1e15bd(0x77c)](null),this['streamControllers']=Object['create'](null),this['callbackCapabilities']=Object['create'](null),this[_0x1e15bd(0x38a)]=Object['create'](null),this[_0x1e15bd(0x5ca)]=_0x58f948=>{const _0x54d38a=_0x1e15bd,_0x43912a=_0x58f948['data'];if(_0x43912a[_0x54d38a(0x996)]!==this[_0x54d38a(0x881)])return;if(_0x43912a[_0x54d38a(0x27e)]){this.#processStreamMessage(_0x43912a);return;}if(_0x43912a[_0x54d38a(0x35c)]){const _0x3aa942=_0x43912a[_0x54d38a(0x653)],_0x5305f9=this[_0x54d38a(0x7f2)][_0x3aa942];if(!_0x5305f9)throw new Error(_0x54d38a(0x12a)+_0x3aa942);delete this[_0x54d38a(0x7f2)][_0x3aa942];if(_0x43912a[_0x54d38a(0x35c)]===_0x16b598[_0x54d38a(0x7f4)])_0x5305f9[_0x54d38a(0x442)](_0x43912a['data']);else{if(_0x43912a[_0x54d38a(0x35c)]===_0x16b598[_0x54d38a(0x6fa)])_0x5305f9['reject'](_0x357a64(_0x43912a['reason']));else throw new Error(_0x54d38a(0x4f7));}return;}const _0x280685=this[_0x54d38a(0x38a)][_0x43912a[_0x54d38a(0x7c7)]];if(!_0x280685)throw new Error(_0x54d38a(0xf7)+_0x43912a['action']);if(_0x43912a[_0x54d38a(0x653)]){const _0x419669=this[_0x54d38a(0x881)],_0x44a931=_0x43912a[_0x54d38a(0x881)];new Promise(function(_0x4c3940){_0x4c3940(_0x280685(_0x43912a['data']));})[_0x54d38a(0x22d)](function(_0x1fc3bc){const _0xe8b486=_0x54d38a;_0x29d3e6[_0xe8b486(0x360)]({'sourceName':_0x419669,'targetName':_0x44a931,'callback':_0x16b598[_0xe8b486(0x7f4)],'callbackId':_0x43912a[_0xe8b486(0x653)],'data':_0x1fc3bc});},function(_0x193e11){const _0x2d6370=_0x54d38a;_0x29d3e6[_0x2d6370(0x360)]({'sourceName':_0x419669,'targetName':_0x44a931,'callback':_0x16b598[_0x2d6370(0x6fa)],'callbackId':_0x43912a[_0x2d6370(0x653)],'reason':_0x357a64(_0x193e11)});});return;}if(_0x43912a[_0x54d38a(0x916)]){this.#createStreamSink(_0x43912a);return;}_0x280685(_0x43912a[_0x54d38a(0x41b)]);},_0x29d3e6[_0x1e15bd(0x5cc)](_0x1e15bd(0x1bd),this[_0x1e15bd(0x5ca)]);}['on'](_0x227a2c,_0x5a48f7){const _0x504424=_0x14b560,_0x41279c=this[_0x504424(0x38a)];if(_0x41279c[_0x227a2c])throw new Error('There\x20is\x20already\x20an\x20actionName\x20called\x20\x22'+_0x227a2c+'\x22');_0x41279c[_0x227a2c]=_0x5a48f7;}[_0x14b560(0x3e0)](_0x393ec5,_0xda024,_0xe00d2f){const _0x3a8c10=_0x14b560;this['comObj']['postMessage']({'sourceName':this['sourceName'],'targetName':this[_0x3a8c10(0x996)],'action':_0x393ec5,'data':_0xda024},_0xe00d2f);}[_0x14b560(0x88c)](_0x40a5fe,_0x452237,_0x3d46d8){const _0x336b07=_0x14b560,_0x13ad50=this[_0x336b07(0x653)]++,_0x3460c5=new _0x2fe5c8[(_0x336b07(0x7e3))]();this['callbackCapabilities'][_0x13ad50]=_0x3460c5;try{this[_0x336b07(0x5a9)]['postMessage']({'sourceName':this[_0x336b07(0x881)],'targetName':this[_0x336b07(0x996)],'action':_0x40a5fe,'callbackId':_0x13ad50,'data':_0x452237},_0x3d46d8);}catch(_0x37c91f){_0x3460c5['reject'](_0x37c91f);}return _0x3460c5[_0x336b07(0x4dd)];}[_0x14b560(0x259)](_0x14aed8,_0x2df47e,_0xb2baf3,_0x1bdae9){const _0x2d1ed4=_0x14b560,_0x3b5c09=this[_0x2d1ed4(0x916)]++,_0x5d8c56=this[_0x2d1ed4(0x881)],_0x537542=this[_0x2d1ed4(0x996)],_0x419491=this['comObj'];return new ReadableStream({'start':_0x3e7522=>{const _0x3566fb=_0x2d1ed4,_0xaec88e=new _0x2fe5c8[(_0x3566fb(0x7e3))]();return this['streamControllers'][_0x3b5c09]={'controller':_0x3e7522,'startCall':_0xaec88e,'pullCall':null,'cancelCall':null,'isClosed':![]},_0x419491['postMessage']({'sourceName':_0x5d8c56,'targetName':_0x537542,'action':_0x14aed8,'streamId':_0x3b5c09,'data':_0x2df47e,'desiredSize':_0x3e7522[_0x3566fb(0x42d)]},_0x1bdae9),_0xaec88e['promise'];},'pull':_0x2d1f72=>{const _0x3eecd8=_0x2d1ed4,_0x5ef153=new _0x2fe5c8[(_0x3eecd8(0x7e3))]();return this[_0x3eecd8(0x9c5)][_0x3b5c09][_0x3eecd8(0x7f0)]=_0x5ef153,_0x419491[_0x3eecd8(0x360)]({'sourceName':_0x5d8c56,'targetName':_0x537542,'stream':_0x1b48ce['PULL'],'streamId':_0x3b5c09,'desiredSize':_0x2d1f72[_0x3eecd8(0x42d)]}),_0x5ef153[_0x3eecd8(0x4dd)];},'cancel':_0x2e03cb=>{const _0x1af5a9=_0x2d1ed4;(0x0,_0x2fe5c8['assert'])(_0x2e03cb instanceof Error,'cancel\x20must\x20have\x20a\x20valid\x20reason');const _0x332559=new _0x2fe5c8[(_0x1af5a9(0x7e3))]();return this['streamControllers'][_0x3b5c09][_0x1af5a9(0x7c6)]=_0x332559,this['streamControllers'][_0x3b5c09][_0x1af5a9(0x184)]=!![],_0x419491['postMessage']({'sourceName':_0x5d8c56,'targetName':_0x537542,'stream':_0x1b48ce[_0x1af5a9(0x2d9)],'streamId':_0x3b5c09,'reason':_0x357a64(_0x2e03cb)}),_0x332559['promise'];}},_0xb2baf3);}#createStreamSink(_0x37453a){const _0x5c7875=_0x14b560,_0x430aa1=_0x37453a[_0x5c7875(0x916)],_0x549d31=this[_0x5c7875(0x881)],_0x1ae3dd=_0x37453a[_0x5c7875(0x881)],_0x5bae0c=this[_0x5c7875(0x5a9)],_0xc919c4=this,_0x4c914c=this[_0x5c7875(0x38a)][_0x37453a['action']],_0x4e33d4={'enqueue'(_0x5247c9){const _0x2e3158=_0x5c7875;let _0x7f4bea=arguments['length']>0x1&&arguments[0x1]!==undefined?arguments[0x1]:0x1,_0x16fd47=arguments[_0x2e3158(0x557)]>0x2?arguments[0x2]:undefined;if(this[_0x2e3158(0x331)])return;const _0x4b8b8c=this[_0x2e3158(0x42d)];this[_0x2e3158(0x42d)]-=_0x7f4bea,_0x4b8b8c>0x0&&this[_0x2e3158(0x42d)]<=0x0&&(this[_0x2e3158(0x2f6)]=new _0x2fe5c8['PromiseCapability'](),this['ready']=this[_0x2e3158(0x2f6)]['promise']),_0x5bae0c[_0x2e3158(0x360)]({'sourceName':_0x549d31,'targetName':_0x1ae3dd,'stream':_0x1b48ce[_0x2e3158(0x4d8)],'streamId':_0x430aa1,'chunk':_0x5247c9},_0x16fd47);},'close'(){const _0x5cbd79=_0x5c7875;if(this[_0x5cbd79(0x331)])return;this['isCancelled']=!![],_0x5bae0c['postMessage']({'sourceName':_0x549d31,'targetName':_0x1ae3dd,'stream':_0x1b48ce['CLOSE'],'streamId':_0x430aa1}),delete _0xc919c4[_0x5cbd79(0x691)][_0x430aa1];},'error'(_0x21a7c9){const _0xdf6e7a=_0x5c7875;(0x0,_0x2fe5c8[_0xdf6e7a(0x63a)])(_0x21a7c9 instanceof Error,'error\x20must\x20have\x20a\x20valid\x20reason');if(this[_0xdf6e7a(0x331)])return;this[_0xdf6e7a(0x331)]=!![],_0x5bae0c['postMessage']({'sourceName':_0x549d31,'targetName':_0x1ae3dd,'stream':_0x1b48ce['ERROR'],'streamId':_0x430aa1,'reason':_0x357a64(_0x21a7c9)});},'sinkCapability':new _0x2fe5c8[(_0x5c7875(0x7e3))](),'onPull':null,'onCancel':null,'isCancelled':![],'desiredSize':_0x37453a[_0x5c7875(0x42d)],'ready':null};_0x4e33d4[_0x5c7875(0x2f6)][_0x5c7875(0x442)](),_0x4e33d4[_0x5c7875(0x2e5)]=_0x4e33d4[_0x5c7875(0x2f6)][_0x5c7875(0x4dd)],this['streamSinks'][_0x430aa1]=_0x4e33d4,new Promise(function(_0x2389fd){const _0x3108d4=_0x5c7875;_0x2389fd(_0x4c914c(_0x37453a[_0x3108d4(0x41b)],_0x4e33d4));})['then'](function(){const _0x5b0d6a=_0x5c7875;_0x5bae0c[_0x5b0d6a(0x360)]({'sourceName':_0x549d31,'targetName':_0x1ae3dd,'stream':_0x1b48ce[_0x5b0d6a(0x7b6)],'streamId':_0x430aa1,'success':!![]});},function(_0x5cca68){const _0x574d41=_0x5c7875;_0x5bae0c[_0x574d41(0x360)]({'sourceName':_0x549d31,'targetName':_0x1ae3dd,'stream':_0x1b48ce[_0x574d41(0x7b6)],'streamId':_0x430aa1,'reason':_0x357a64(_0x5cca68)});});}#processStreamMessage(_0x2f0239){const _0x5c4ba5=_0x14b560,_0x388ef6=_0x2f0239[_0x5c4ba5(0x916)],_0x3af3ae=this[_0x5c4ba5(0x881)],_0x5968ea=_0x2f0239[_0x5c4ba5(0x881)],_0x1db552=this[_0x5c4ba5(0x5a9)],_0x1a81cc=this['streamControllers'][_0x388ef6],_0x3f2ec6=this[_0x5c4ba5(0x691)][_0x388ef6];switch(_0x2f0239['stream']){case _0x1b48ce[_0x5c4ba5(0x7b6)]:_0x2f0239[_0x5c4ba5(0x165)]?_0x1a81cc['startCall']['resolve']():_0x1a81cc[_0x5c4ba5(0x1e8)][_0x5c4ba5(0x282)](_0x357a64(_0x2f0239['reason']));break;case _0x1b48ce['PULL_COMPLETE']:_0x2f0239[_0x5c4ba5(0x165)]?_0x1a81cc[_0x5c4ba5(0x7f0)][_0x5c4ba5(0x442)]():_0x1a81cc[_0x5c4ba5(0x7f0)]['reject'](_0x357a64(_0x2f0239[_0x5c4ba5(0x79b)]));break;case _0x1b48ce[_0x5c4ba5(0x185)]:if(!_0x3f2ec6){_0x1db552[_0x5c4ba5(0x360)]({'sourceName':_0x3af3ae,'targetName':_0x5968ea,'stream':_0x1b48ce[_0x5c4ba5(0x822)],'streamId':_0x388ef6,'success':!![]});break;}_0x3f2ec6[_0x5c4ba5(0x42d)]<=0x0&&_0x2f0239['desiredSize']>0x0&&_0x3f2ec6[_0x5c4ba5(0x2f6)]['resolve']();_0x3f2ec6[_0x5c4ba5(0x42d)]=_0x2f0239[_0x5c4ba5(0x42d)],new Promise(function(_0x2cf35e){const _0x111687=_0x5c4ba5;_0x2cf35e(_0x3f2ec6[_0x111687(0x94e)]?.());})[_0x5c4ba5(0x22d)](function(){const _0x30e416=_0x5c4ba5;_0x1db552[_0x30e416(0x360)]({'sourceName':_0x3af3ae,'targetName':_0x5968ea,'stream':_0x1b48ce[_0x30e416(0x822)],'streamId':_0x388ef6,'success':!![]});},function(_0x41e4cc){const _0x25ff96=_0x5c4ba5;_0x1db552[_0x25ff96(0x360)]({'sourceName':_0x3af3ae,'targetName':_0x5968ea,'stream':_0x1b48ce[_0x25ff96(0x822)],'streamId':_0x388ef6,'reason':_0x357a64(_0x41e4cc)});});break;case _0x1b48ce[_0x5c4ba5(0x4d8)]:(0x0,_0x2fe5c8[_0x5c4ba5(0x63a)])(_0x1a81cc,_0x5c4ba5(0x166));if(_0x1a81cc[_0x5c4ba5(0x184)])break;_0x1a81cc[_0x5c4ba5(0x6eb)]['enqueue'](_0x2f0239[_0x5c4ba5(0x1dd)]);break;case _0x1b48ce[_0x5c4ba5(0x44b)]:(0x0,_0x2fe5c8['assert'])(_0x1a81cc,_0x5c4ba5(0x33c));if(_0x1a81cc[_0x5c4ba5(0x184)])break;_0x1a81cc[_0x5c4ba5(0x184)]=!![],_0x1a81cc[_0x5c4ba5(0x6eb)][_0x5c4ba5(0x70e)](),this.#deleteStreamController(_0x1a81cc,_0x388ef6);break;case _0x1b48ce[_0x5c4ba5(0x6fa)]:(0x0,_0x2fe5c8[_0x5c4ba5(0x63a)])(_0x1a81cc,_0x5c4ba5(0x2c2)),_0x1a81cc[_0x5c4ba5(0x6eb)][_0x5c4ba5(0x9e3)](_0x357a64(_0x2f0239[_0x5c4ba5(0x79b)])),this.#deleteStreamController(_0x1a81cc,_0x388ef6);break;case _0x1b48ce[_0x5c4ba5(0xf8)]:_0x2f0239[_0x5c4ba5(0x165)]?_0x1a81cc['cancelCall'][_0x5c4ba5(0x442)]():_0x1a81cc[_0x5c4ba5(0x7c6)][_0x5c4ba5(0x282)](_0x357a64(_0x2f0239[_0x5c4ba5(0x79b)]));this.#deleteStreamController(_0x1a81cc,_0x388ef6);break;case _0x1b48ce[_0x5c4ba5(0x2d9)]:if(!_0x3f2ec6)break;new Promise(function(_0x3d8200){const _0x517a5a=_0x5c4ba5;_0x3d8200(_0x3f2ec6[_0x517a5a(0x19d)]?.(_0x357a64(_0x2f0239[_0x517a5a(0x79b)])));})[_0x5c4ba5(0x22d)](function(){const _0x48e6f9=_0x5c4ba5;_0x1db552[_0x48e6f9(0x360)]({'sourceName':_0x3af3ae,'targetName':_0x5968ea,'stream':_0x1b48ce[_0x48e6f9(0xf8)],'streamId':_0x388ef6,'success':!![]});},function(_0xc82ce){const _0x2e6030=_0x5c4ba5;_0x1db552[_0x2e6030(0x360)]({'sourceName':_0x3af3ae,'targetName':_0x5968ea,'stream':_0x1b48ce[_0x2e6030(0xf8)],'streamId':_0x388ef6,'reason':_0x357a64(_0xc82ce)});}),_0x3f2ec6[_0x5c4ba5(0x2f6)][_0x5c4ba5(0x282)](_0x357a64(_0x2f0239['reason'])),_0x3f2ec6['isCancelled']=!![],delete this[_0x5c4ba5(0x691)][_0x388ef6];break;default:throw new Error(_0x5c4ba5(0x30a));}}async #deleteStreamController(_0x4ae21d,_0x38f1aa){const _0x56ff43=_0x14b560;await Promise[_0x56ff43(0x4d5)]([_0x4ae21d[_0x56ff43(0x1e8)]?.[_0x56ff43(0x4dd)],_0x4ae21d[_0x56ff43(0x7f0)]?.[_0x56ff43(0x4dd)],_0x4ae21d[_0x56ff43(0x7c6)]?.[_0x56ff43(0x4dd)]]),delete this[_0x56ff43(0x9c5)][_0x38f1aa];}[_0x14b560(0x256)](){const _0x4c74f8=_0x14b560;this['comObj'][_0x4c74f8(0x1c0)]('message',this[_0x4c74f8(0x5ca)]);}}_0x445db5['MessageHandler']=_0x2eef8d;},(_0x16a602,_0x515c3a,_0xc1b164)=>{'use strict';const _0x3b630b=a0_0x160d;Object[_0x3b630b(0x430)](_0x515c3a,_0x3b630b(0x19a),{'value':!![]}),_0x515c3a['Metadata']=void 0x0;var _0x43a157=_0xc1b164(0x1);class _0x2c5c8d{#metadataMap;#data;constructor(_0x3367b8){let {parsedData:_0x1109e6,rawData:_0x296670}=_0x3367b8;this.#metadataMap=_0x1109e6,this.#data=_0x296670;}[_0x3b630b(0x468)](){return this.#data;}[_0x3b630b(0x8c4)](_0x38aa36){const _0x577a34=_0x3b630b;return this.#metadataMap[_0x577a34(0x8c4)](_0x38aa36)??null;}['getAll'](){const _0x22a380=_0x3b630b;return(0x0,_0x43a157[_0x22a380(0x267)])(this.#metadataMap);}[_0x3b630b(0x373)](_0x3c401f){const _0x1257ba=_0x3b630b;return this.#metadataMap[_0x1257ba(0x373)](_0x3c401f);}}_0x515c3a[_0x3b630b(0x6a2)]=_0x2c5c8d;},(_0x41f171,_0x3ed05b,_0x24da5f)=>{'use strict';const _0x5b98c5=a0_0x160d;Object['defineProperty'](_0x3ed05b,_0x5b98c5(0x19a),{'value':!![]}),_0x3ed05b[_0x5b98c5(0x68d)]=void 0x0;var _0x2e1fea=_0x24da5f(0x1),_0x4a2765=_0x24da5f(0x89);const _0x4720b4=Symbol(_0x5b98c5(0x8b7));class _0x425e4b{#visible=!![];constructor(_0x47ddfc,_0x1e0a26){const _0xc0bf22=_0x5b98c5;this[_0xc0bf22(0x499)]=_0x47ddfc,this[_0xc0bf22(0x9a5)]=_0x1e0a26;}get[_0x5b98c5(0x6cd)](){return this.#visible;}[_0x5b98c5(0x9cc)](_0x2b667c,_0x2b9744){const _0x5a2b43=_0x5b98c5;_0x2b667c!==_0x4720b4&&(0x0,_0x2e1fea[_0x5a2b43(0x749)])('Internal\x20method\x20`_setVisible`\x20called.'),this.#visible=_0x2b9744;}}class _0x4db1a0{#cachedGetHash=null;#groups=new Map();#initialHash=null;#order=null;constructor(_0x47cf0c){const _0x1b7c5b=_0x5b98c5;this[_0x1b7c5b(0x499)]=null,this[_0x1b7c5b(0x5c3)]=null;if(_0x47cf0c===null)return;this[_0x1b7c5b(0x499)]=_0x47cf0c[_0x1b7c5b(0x499)],this[_0x1b7c5b(0x5c3)]=_0x47cf0c[_0x1b7c5b(0x5c3)],this.#order=_0x47cf0c[_0x1b7c5b(0x820)];for(const _0x211df6 of _0x47cf0c[_0x1b7c5b(0x32d)]){this.#groups[_0x1b7c5b(0x98e)](_0x211df6['id'],new _0x425e4b(_0x211df6[_0x1b7c5b(0x499)],_0x211df6[_0x1b7c5b(0x9a5)]));}if(_0x47cf0c['baseState']===_0x1b7c5b(0x17d))for(const _0x2b748d of this.#groups[_0x1b7c5b(0x823)]()){_0x2b748d[_0x1b7c5b(0x9cc)](_0x4720b4,![]);}for(const _0x34d921 of _0x47cf0c['on']){this.#groups[_0x1b7c5b(0x8c4)](_0x34d921)[_0x1b7c5b(0x9cc)](_0x4720b4,!![]);}for(const _0x2e27e7 of _0x47cf0c[_0x1b7c5b(0x861)]){this.#groups[_0x1b7c5b(0x8c4)](_0x2e27e7)[_0x1b7c5b(0x9cc)](_0x4720b4,![]);}this.#initialHash=this[_0x1b7c5b(0x3d8)]();}#evaluateVisibilityExpression(_0x32b848){const _0x27ed27=_0x5b98c5,_0x581a43=_0x32b848[_0x27ed27(0x557)];if(_0x581a43<0x2)return!![];const _0x3da1c9=_0x32b848[0x0];for(let _0x170378=0x1;_0x170378<_0x581a43;_0x170378++){const _0x4878b8=_0x32b848[_0x170378];let _0x1966dc;if(Array[_0x27ed27(0x419)](_0x4878b8))_0x1966dc=this.#evaluateVisibilityExpression(_0x4878b8);else{if(this.#groups[_0x27ed27(0x373)](_0x4878b8))_0x1966dc=this.#groups[_0x27ed27(0x8c4)](_0x4878b8)[_0x27ed27(0x6cd)];else return(0x0,_0x2e1fea[_0x27ed27(0x472)])(_0x27ed27(0x95f)+_0x4878b8),!![];}switch(_0x3da1c9){case'And':if(!_0x1966dc)return![];break;case'Or':if(_0x1966dc)return!![];break;case _0x27ed27(0x524):return!_0x1966dc;default:return!![];}}return _0x3da1c9==='And';}['isVisible'](_0xa5cd00){const _0x37bc26=_0x5b98c5;if(this.#groups[_0x37bc26(0x87a)]===0x0)return!![];if(!_0xa5cd00)return(0x0,_0x2e1fea['warn'])('Optional\x20content\x20group\x20not\x20defined.'),!![];if(_0xa5cd00[_0x37bc26(0x9fd)]===_0x37bc26(0x1f9)){if(!this.#groups[_0x37bc26(0x373)](_0xa5cd00['id']))return(0x0,_0x2e1fea[_0x37bc26(0x472)])('Optional\x20content\x20group\x20not\x20found:\x20'+_0xa5cd00['id']),!![];return this.#groups[_0x37bc26(0x8c4)](_0xa5cd00['id'])[_0x37bc26(0x6cd)];}else{if(_0xa5cd00[_0x37bc26(0x9fd)]===_0x37bc26(0x6fd)){if(_0xa5cd00['expression'])return this.#evaluateVisibilityExpression(_0xa5cd00[_0x37bc26(0x87d)]);if(!_0xa5cd00[_0x37bc26(0x1e7)]||_0xa5cd00[_0x37bc26(0x1e7)]===_0x37bc26(0x796)){for(const _0x5946ab of _0xa5cd00[_0x37bc26(0x63c)]){if(!this.#groups[_0x37bc26(0x373)](_0x5946ab))return(0x0,_0x2e1fea[_0x37bc26(0x472)])('Optional\x20content\x20group\x20not\x20found:\x20'+_0x5946ab),!![];if(this.#groups[_0x37bc26(0x8c4)](_0x5946ab)[_0x37bc26(0x6cd)])return!![];}return![];}else{if(_0xa5cd00[_0x37bc26(0x1e7)]===_0x37bc26(0xd1)){for(const _0x100e82 of _0xa5cd00['ids']){if(!this.#groups[_0x37bc26(0x373)](_0x100e82))return(0x0,_0x2e1fea[_0x37bc26(0x472)])(_0x37bc26(0x95f)+_0x100e82),!![];if(!this.#groups[_0x37bc26(0x8c4)](_0x100e82)[_0x37bc26(0x6cd)])return![];}return!![];}else{if(_0xa5cd00[_0x37bc26(0x1e7)]===_0x37bc26(0x744)){for(const _0xdf92b2 of _0xa5cd00['ids']){if(!this.#groups[_0x37bc26(0x373)](_0xdf92b2))return(0x0,_0x2e1fea[_0x37bc26(0x472)])('Optional\x20content\x20group\x20not\x20found:\x20'+_0xdf92b2),!![];if(!this.#groups[_0x37bc26(0x8c4)](_0xdf92b2)[_0x37bc26(0x6cd)])return!![];}return![];}else{if(_0xa5cd00['policy']===_0x37bc26(0x3bd)){for(const _0x492ebd of _0xa5cd00[_0x37bc26(0x63c)]){if(!this.#groups[_0x37bc26(0x373)](_0x492ebd))return(0x0,_0x2e1fea[_0x37bc26(0x472)])(_0x37bc26(0x95f)+_0x492ebd),!![];if(this.#groups[_0x37bc26(0x8c4)](_0x492ebd)[_0x37bc26(0x6cd)])return![];}return!![];}}}}return(0x0,_0x2e1fea[_0x37bc26(0x472)])(_0x37bc26(0x742)+_0xa5cd00[_0x37bc26(0x1e7)]+'.'),!![];}}return(0x0,_0x2e1fea[_0x37bc26(0x472)])(_0x37bc26(0x26a)+_0xa5cd00['type']+'.'),!![];}[_0x5b98c5(0x172)](_0x6fee02){const _0x2db44f=_0x5b98c5;let _0x3c4e78=arguments[_0x2db44f(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:!![];if(!this.#groups['has'](_0x6fee02)){(0x0,_0x2e1fea[_0x2db44f(0x472)])(_0x2db44f(0x95f)+_0x6fee02);return;}this.#groups[_0x2db44f(0x8c4)](_0x6fee02)[_0x2db44f(0x9cc)](_0x4720b4,!!_0x3c4e78),this.#cachedGetHash=null;}get[_0x5b98c5(0x64f)](){const _0xb952f1=_0x5b98c5;return this[_0xb952f1(0x3d8)]()===this.#initialHash;}[_0x5b98c5(0x966)](){const _0x2f401e=_0x5b98c5;if(!this.#groups[_0x2f401e(0x87a)])return null;if(this.#order)return this.#order[_0x2f401e(0x80c)]();return[...this.#groups[_0x2f401e(0x30e)]()];}[_0x5b98c5(0x8d2)](){const _0x2822d3=_0x5b98c5;return this.#groups['size']>0x0?(0x0,_0x2e1fea[_0x2822d3(0x267)])(this.#groups):null;}[_0x5b98c5(0x886)](_0x334019){return this.#groups['get'](_0x334019)||null;}[_0x5b98c5(0x3d8)](){const _0x3050e0=_0x5b98c5;if(this.#cachedGetHash!==null)return this.#cachedGetHash;const _0x109e12=new _0x4a2765[(_0x3050e0(0x54d))]();for(const [_0x4cb6b3,_0x268f89]of this.#groups){_0x109e12[_0x3050e0(0x1b4)](_0x4cb6b3+':'+_0x268f89['visible']);}return this.#cachedGetHash=_0x109e12[_0x3050e0(0x1fa)]();}}_0x3ed05b[_0x5b98c5(0x68d)]=_0x4db1a0;},(_0x4709dc,_0x3770b8,_0x19693a)=>{'use strict';const _0x4149d5=a0_0x160d;Object[_0x4149d5(0x430)](_0x3770b8,_0x4149d5(0x19a),{'value':!![]}),_0x3770b8['PDFDataTransportStream']=void 0x0;var _0x1bae1c=_0x19693a(0x1),_0x8ca085=_0x19693a(0x87);class _0x3a5c07{constructor(_0x22aa48,_0xfa864d){const _0x152dc1=_0x4149d5;let {length:_0x2054c1,initialData:_0x517292,progressiveDone:progressiveDone=![],contentDispositionFilename:contentDispositionFilename=null,disableRange:disableRange=![],disableStream:disableStream=![]}=_0x22aa48;(0x0,_0x1bae1c['assert'])(_0xfa864d,_0x152dc1(0x891)),this['_queuedChunks']=[],this[_0x152dc1(0x5c1)]=progressiveDone,this[_0x152dc1(0x534)]=contentDispositionFilename;if(_0x517292?.[_0x152dc1(0x557)]>0x0){const _0x454519=_0x517292 instanceof Uint8Array&&_0x517292['byteLength']===_0x517292[_0x152dc1(0x948)]['byteLength']?_0x517292[_0x152dc1(0x948)]:new Uint8Array(_0x517292)['buffer'];this[_0x152dc1(0xe9)][_0x152dc1(0x7d6)](_0x454519);}this[_0x152dc1(0x85f)]=_0xfa864d,this[_0x152dc1(0x6f5)]=!disableStream,this[_0x152dc1(0x9c7)]=!disableRange,this[_0x152dc1(0x8bc)]=_0x2054c1,this[_0x152dc1(0x30c)]=null,this[_0x152dc1(0xec)]=[],this[_0x152dc1(0x85f)]['addRangeListener']((_0x564302,_0x286a7)=>{const _0x3c4d72=_0x152dc1;this[_0x3c4d72(0x71b)]({'begin':_0x564302,'chunk':_0x286a7});}),this[_0x152dc1(0x85f)][_0x152dc1(0x7db)]((_0x5a78f2,_0x2096f0)=>{const _0x50dafe=_0x152dc1;this[_0x50dafe(0x4d7)]({'loaded':_0x5a78f2,'total':_0x2096f0});}),this['_pdfDataRangeTransport'][_0x152dc1(0x236)](_0x5dbe00=>{const _0x17419c=_0x152dc1;this[_0x17419c(0x71b)]({'chunk':_0x5dbe00});}),this[_0x152dc1(0x85f)][_0x152dc1(0x955)](()=>{const _0x121944=_0x152dc1;this[_0x121944(0x1b3)]();}),this[_0x152dc1(0x85f)][_0x152dc1(0x1ba)]();}[_0x4149d5(0x71b)](_0x3f6a43){const _0x3d8e51=_0x4149d5;let {begin:_0x4a170c,chunk:_0x3e6404}=_0x3f6a43;const _0x5d82a5=_0x3e6404 instanceof Uint8Array&&_0x3e6404['byteLength']===_0x3e6404[_0x3d8e51(0x948)][_0x3d8e51(0x110)]?_0x3e6404[_0x3d8e51(0x948)]:new Uint8Array(_0x3e6404)[_0x3d8e51(0x948)];if(_0x4a170c===undefined)this[_0x3d8e51(0x30c)]?this[_0x3d8e51(0x30c)]['_enqueue'](_0x5d82a5):this[_0x3d8e51(0xe9)]['push'](_0x5d82a5);else{const _0xb13c8=this[_0x3d8e51(0xec)][_0x3d8e51(0x82e)](function(_0x421928){if(_0x421928['_begin']!==_0x4a170c)return![];return _0x421928['_enqueue'](_0x5d82a5),!![];});(0x0,_0x1bae1c[_0x3d8e51(0x63a)])(_0xb13c8,_0x3d8e51(0x1d1));}}get['_progressiveDataLength'](){const _0x5e9118=_0x4149d5;return this[_0x5e9118(0x30c)]?.[_0x5e9118(0xc7)]??0x0;}[_0x4149d5(0x4d7)](_0x16ee8e){const _0x2aa013=_0x4149d5;_0x16ee8e[_0x2aa013(0x2d4)]===undefined?this[_0x2aa013(0xec)][0x0]?.[_0x2aa013(0x3bf)]?.({'loaded':_0x16ee8e[_0x2aa013(0x19f)]}):this['_fullRequestReader']?.['onProgress']?.({'loaded':_0x16ee8e[_0x2aa013(0x19f)],'total':_0x16ee8e[_0x2aa013(0x2d4)]});}['_onProgressiveDone'](){const _0x3366e4=_0x4149d5;this[_0x3366e4(0x30c)]?.[_0x3366e4(0x16b)](),this[_0x3366e4(0x5c1)]=!![];}[_0x4149d5(0x483)](_0x30ed2e){const _0x5d4564=_0x4149d5,_0x218393=this['_rangeReaders'][_0x5d4564(0x82c)](_0x30ed2e);_0x218393>=0x0&&this[_0x5d4564(0xec)]['splice'](_0x218393,0x1);}[_0x4149d5(0x50a)](){const _0x3279b6=_0x4149d5;(0x0,_0x1bae1c[_0x3279b6(0x63a)])(!this[_0x3279b6(0x30c)],_0x3279b6(0x2f8));const _0x471180=this['_queuedChunks'];return this[_0x3279b6(0xe9)]=null,new _0x1e3e39(this,_0x471180,this[_0x3279b6(0x5c1)],this[_0x3279b6(0x534)]);}[_0x4149d5(0x7d3)](_0xe0174,_0x2c36d2){const _0x1be7ed=_0x4149d5;if(_0x2c36d2<=this['_progressiveDataLength'])return null;const _0x4506ad=new _0x870273(this,_0xe0174,_0x2c36d2);return this[_0x1be7ed(0x85f)][_0x1be7ed(0x226)](_0xe0174,_0x2c36d2),this['_rangeReaders'][_0x1be7ed(0x7d6)](_0x4506ad),_0x4506ad;}[_0x4149d5(0x8a8)](_0x420159){const _0x3d4ef2=_0x4149d5;this[_0x3d4ef2(0x30c)]?.[_0x3d4ef2(0x8c6)](_0x420159);for(const _0x20589d of this[_0x3d4ef2(0xec)][_0x3d4ef2(0x80c)](0x0)){_0x20589d[_0x3d4ef2(0x8c6)](_0x420159);}this['_pdfDataRangeTransport'][_0x3d4ef2(0x304)]();}}_0x3770b8[_0x4149d5(0x939)]=_0x3a5c07;class _0x1e3e39{constructor(_0x465e56,_0x5a7913){const _0x54dead=_0x4149d5;let _0x19975b=arguments[_0x54dead(0x557)]>0x2&&arguments[0x2]!==undefined?arguments[0x2]:![],_0x15c241=arguments[_0x54dead(0x557)]>0x3&&arguments[0x3]!==undefined?arguments[0x3]:null;this[_0x54dead(0x2a3)]=_0x465e56,this[_0x54dead(0x51a)]=_0x19975b||![],this[_0x54dead(0x2ec)]=(0x0,_0x8ca085[_0x54dead(0x2f4)])(_0x15c241)?_0x15c241:null,this[_0x54dead(0xe9)]=_0x5a7913||[],this[_0x54dead(0xc7)]=0x0;for(const _0x315a9d of this[_0x54dead(0xe9)]){this['_loaded']+=_0x315a9d[_0x54dead(0x110)];}this[_0x54dead(0x104)]=[],this[_0x54dead(0x251)]=Promise[_0x54dead(0x442)](),_0x465e56[_0x54dead(0x30c)]=this,this['onProgress']=null;}['_enqueue'](_0x1b1437){const _0x196ae1=_0x4149d5;if(this[_0x196ae1(0x51a)])return;if(this[_0x196ae1(0x104)]['length']>0x0){const _0x1df1d7=this[_0x196ae1(0x104)][_0x196ae1(0x84f)]();_0x1df1d7['resolve']({'value':_0x1b1437,'done':![]});}else this[_0x196ae1(0xe9)][_0x196ae1(0x7d6)](_0x1b1437);this[_0x196ae1(0xc7)]+=_0x1b1437[_0x196ae1(0x110)];}get[_0x4149d5(0x6f2)](){return this['_headersReady'];}get[_0x4149d5(0x5cf)](){const _0x141d01=_0x4149d5;return this[_0x141d01(0x2ec)];}get[_0x4149d5(0x7b9)](){const _0x110dfa=_0x4149d5;return this[_0x110dfa(0x2a3)][_0x110dfa(0x9c7)];}get['isStreamingSupported'](){const _0x7f46b=_0x4149d5;return this[_0x7f46b(0x2a3)][_0x7f46b(0x6f5)];}get[_0x4149d5(0x434)](){const _0x1265f3=_0x4149d5;return this['_stream'][_0x1265f3(0x8bc)];}async['read'](){const _0x55ae0b=_0x4149d5;if(this[_0x55ae0b(0xe9)][_0x55ae0b(0x557)]>0x0){const _0x1b96f5=this['_queuedChunks'][_0x55ae0b(0x84f)]();return{'value':_0x1b96f5,'done':![]};}if(this['_done'])return{'value':undefined,'done':!![]};const _0x226ae0=new _0x1bae1c['PromiseCapability']();return this['_requests'][_0x55ae0b(0x7d6)](_0x226ae0),_0x226ae0[_0x55ae0b(0x4dd)];}[_0x4149d5(0x8c6)](_0x52134b){const _0x560034=_0x4149d5;this['_done']=!![];for(const _0x3e4690 of this[_0x560034(0x104)]){_0x3e4690['resolve']({'value':undefined,'done':!![]});}this[_0x560034(0x104)][_0x560034(0x557)]=0x0;}['progressiveDone'](){const _0x42ca05=_0x4149d5;if(this['_done'])return;this[_0x42ca05(0x51a)]=!![];}}class _0x870273{constructor(_0x66dbd5,_0x48e6e4,_0x497f17){const _0x1f2dc7=_0x4149d5;this[_0x1f2dc7(0x2a3)]=_0x66dbd5,this[_0x1f2dc7(0x55f)]=_0x48e6e4,this[_0x1f2dc7(0x1f8)]=_0x497f17,this['_queuedChunk']=null,this[_0x1f2dc7(0x104)]=[],this[_0x1f2dc7(0x51a)]=![],this['onProgress']=null;}[_0x4149d5(0x291)](_0x24c1bb){const _0x3a95aa=_0x4149d5;if(this[_0x3a95aa(0x51a)])return;if(this[_0x3a95aa(0x104)][_0x3a95aa(0x557)]===0x0)this[_0x3a95aa(0x137)]=_0x24c1bb;else{const _0x779945=this[_0x3a95aa(0x104)][_0x3a95aa(0x84f)]();_0x779945[_0x3a95aa(0x442)]({'value':_0x24c1bb,'done':![]});for(const _0xc4ed14 of this[_0x3a95aa(0x104)]){_0xc4ed14[_0x3a95aa(0x442)]({'value':undefined,'done':!![]});}this[_0x3a95aa(0x104)][_0x3a95aa(0x557)]=0x0;}this['_done']=!![],this[_0x3a95aa(0x2a3)][_0x3a95aa(0x483)](this);}get[_0x4149d5(0x913)](){return![];}async['read'](){const _0x17e243=_0x4149d5;if(this['_queuedChunk']){const _0x172038=this['_queuedChunk'];return this['_queuedChunk']=null,{'value':_0x172038,'done':![]};}if(this['_done'])return{'value':undefined,'done':!![]};const _0x3146d3=new _0x1bae1c[(_0x17e243(0x7e3))]();return this[_0x17e243(0x104)][_0x17e243(0x7d6)](_0x3146d3),_0x3146d3[_0x17e243(0x4dd)];}[_0x4149d5(0x8c6)](_0x1817e3){const _0x5d38b4=_0x4149d5;this['_done']=!![];for(const _0x1ed5e4 of this[_0x5d38b4(0x104)]){_0x1ed5e4[_0x5d38b4(0x442)]({'value':undefined,'done':!![]});}this[_0x5d38b4(0x104)][_0x5d38b4(0x557)]=0x0,this[_0x5d38b4(0x2a3)][_0x5d38b4(0x483)](this);}}},(_0x8ad9f4,_0x2ebfac)=>{'use strict';const _0x35d8ee=a0_0x160d;Object[_0x35d8ee(0x430)](_0x2ebfac,'__esModule',{'value':!![]}),_0x2ebfac[_0x35d8ee(0x205)]=void 0x0;class _0x5c6ea4{static[_0x35d8ee(0x8a9)](_0x14483b){const _0x2ab469=_0x35d8ee,_0x4d9822=[],_0x582257={'items':_0x4d9822,'styles':Object[_0x2ab469(0x77c)](null)};function _0x5de18b(_0x169328){const _0x264f1e=_0x2ab469;if(!_0x169328)return;let _0x7ccb82=null;const _0x496097=_0x169328[_0x264f1e(0x499)];if(_0x496097===_0x264f1e(0x807))_0x7ccb82=_0x169328[_0x264f1e(0x2b8)];else{if(!_0x5c6ea4[_0x264f1e(0x88e)](_0x496097))return;else{if(_0x169328?.[_0x264f1e(0x6ec)]?.[_0x264f1e(0x8a9)])_0x7ccb82=_0x169328[_0x264f1e(0x6ec)][_0x264f1e(0x8a9)];else _0x169328[_0x264f1e(0x2b8)]&&(_0x7ccb82=_0x169328[_0x264f1e(0x2b8)]);}}_0x7ccb82!==null&&_0x4d9822[_0x264f1e(0x7d6)]({'str':_0x7ccb82});if(!_0x169328[_0x264f1e(0x6be)])return;for(const _0x1e30d3 of _0x169328[_0x264f1e(0x6be)]){_0x5de18b(_0x1e30d3);}}return _0x5de18b(_0x14483b),_0x582257;}static[_0x35d8ee(0x88e)](_0x549507){const _0x3c8da7=_0x35d8ee;return!(_0x549507===_0x3c8da7(0x3f2)||_0x549507===_0x3c8da7(0x3e6)||_0x549507===_0x3c8da7(0x131)||_0x549507===_0x3c8da7(0x243));}}_0x2ebfac[_0x35d8ee(0x205)]=_0x5c6ea4;},(_0x30a4f2,_0x6e1895,_0x35ec53)=>{'use strict';const _0x4ff4be=a0_0x160d;Object[_0x4ff4be(0x430)](_0x6e1895,'__esModule',{'value':!![]}),_0x6e1895[_0x4ff4be(0x666)]=_0x6e1895[_0x4ff4be(0x77e)]=_0x6e1895[_0x4ff4be(0x6b9)]=_0x6e1895[_0x4ff4be(0x34f)]=void 0x0;var _0x1c664d=_0x35ec53(0x88);;const _0x543586=function(_0x5ceec1){return new Promise((_0x2eaa5b,_0x58eb85)=>{const _0x5e5ab8=a0_0x160d,_0x16cb24=require('fs');_0x16cb24[_0x5e5ab8(0x9e0)](_0x5ceec1,(_0x483bcf,_0x20da2d)=>{if(_0x483bcf||!_0x20da2d){_0x58eb85(new Error(_0x483bcf));return;}_0x2eaa5b(new Uint8Array(_0x20da2d));});});};class _0xf95aa3 extends _0x1c664d[_0x4ff4be(0x6cb)]{}_0x6e1895[_0x4ff4be(0x77e)]=_0xf95aa3;class _0x19dc23 extends _0x1c664d['BaseCanvasFactory']{[_0x4ff4be(0x8da)](_0x3cabf4,_0x5c2a42){const _0x267325=require('canvas');return _0x267325['createCanvas'](_0x3cabf4,_0x5c2a42);}}_0x6e1895['NodeCanvasFactory']=_0x19dc23;class _0x165198 extends _0x1c664d['BaseCMapReaderFactory']{[_0x4ff4be(0x863)](_0x41e4fa,_0x380950){const _0x5741ed=_0x4ff4be;return _0x543586(_0x41e4fa)[_0x5741ed(0x22d)](_0x22db1b=>{return{'cMapData':_0x22db1b,'compressionType':_0x380950};});}}_0x6e1895[_0x4ff4be(0x34f)]=_0x165198;class _0x5552fd extends _0x1c664d[_0x4ff4be(0x99b)]{['_fetchData'](_0x4c5247){return _0x543586(_0x4c5247);}}_0x6e1895[_0x4ff4be(0x666)]=_0x5552fd;},(_0x1cc80f,_0x1c89f1,_0xf8e1e0)=>{'use strict';const _0x8f586f=a0_0x160d;Object[_0x8f586f(0x430)](_0x1c89f1,'__esModule',{'value':!![]}),_0x1c89f1[_0x8f586f(0x157)]=void 0x0;var _0x37b87a=_0xf8e1e0(0x1),_0x50f140=_0xf8e1e0(0x96);;const _0x3f4d64=require('fs'),_0x370f6c=require(_0x8f586f(0xe5)),_0x189ff5=require(_0x8f586f(0x3bc)),_0x2b572d=require(_0x8f586f(0x6a1)),_0x4da2c6=/^file:\/\/\/[a-zA-Z]:\//;function _0x367242(_0x111000){const _0x39beaf=_0x8f586f,_0x575afb=_0x2b572d[_0x39beaf(0x412)](_0x111000);if(_0x575afb['protocol']==='file:'||_0x575afb[_0x39beaf(0x53a)])return _0x575afb;if(/^[a-z]:[/\\]/i[_0x39beaf(0x6e7)](_0x111000))return _0x2b572d['parse'](_0x39beaf(0x589)+_0x111000);return!_0x575afb[_0x39beaf(0x53a)]&&(_0x575afb[_0x39beaf(0x42a)]=_0x39beaf(0x7b7)),_0x575afb;}class _0x407531{constructor(_0x30df8f){const _0x56c066=_0x8f586f;this[_0x56c066(0x3b5)]=_0x30df8f,this[_0x56c066(0x6a1)]=_0x367242(_0x30df8f['url']),this[_0x56c066(0x303)]=this[_0x56c066(0x6a1)][_0x56c066(0x42a)]==='http:'||this[_0x56c066(0x6a1)]['protocol']===_0x56c066(0x61f),this[_0x56c066(0x2bf)]=this[_0x56c066(0x6a1)][_0x56c066(0x42a)]==='file:',this[_0x56c066(0x4a6)]=this[_0x56c066(0x303)]&&_0x30df8f[_0x56c066(0x4a6)]||{},this[_0x56c066(0x30c)]=null,this[_0x56c066(0x6e2)]=[];}get[_0x8f586f(0x14b)](){const _0x1634ff=_0x8f586f;return this[_0x1634ff(0x30c)]?.['_loaded']??0x0;}[_0x8f586f(0x50a)](){const _0x28b0d2=_0x8f586f;return(0x0,_0x37b87a[_0x28b0d2(0x63a)])(!this[_0x28b0d2(0x30c)],'PDFNodeStream.getFullReader\x20can\x20only\x20be\x20called\x20once.'),this['_fullRequestReader']=this[_0x28b0d2(0x2bf)]?new _0x5bf858(this):new _0x3d11c2(this),this['_fullRequestReader'];}[_0x8f586f(0x7d3)](_0x3def63,_0x43035e){const _0x1bbdad=_0x8f586f;if(_0x43035e<=this['_progressiveDataLength'])return null;const _0x5500e2=this[_0x1bbdad(0x2bf)]?new _0x26e4dd(this,_0x3def63,_0x43035e):new _0x347fcf(this,_0x3def63,_0x43035e);return this[_0x1bbdad(0x6e2)][_0x1bbdad(0x7d6)](_0x5500e2),_0x5500e2;}[_0x8f586f(0x8a8)](_0x2f1824){const _0x3c0172=_0x8f586f;this[_0x3c0172(0x30c)]?.['cancel'](_0x2f1824);for(const _0x565c3c of this[_0x3c0172(0x6e2)][_0x3c0172(0x80c)](0x0)){_0x565c3c[_0x3c0172(0x8c6)](_0x2f1824);}}}_0x1c89f1[_0x8f586f(0x157)]=_0x407531;class _0x33b47a{constructor(_0x5ed378){const _0x1da4e3=_0x8f586f;this[_0x1da4e3(0x640)]=_0x5ed378[_0x1da4e3(0x6a1)],this[_0x1da4e3(0x51a)]=![],this[_0x1da4e3(0x882)]=null,this[_0x1da4e3(0x3bf)]=null;const _0xc81e67=_0x5ed378['source'];this[_0x1da4e3(0x8bc)]=_0xc81e67[_0x1da4e3(0x557)],this[_0x1da4e3(0xc7)]=0x0,this[_0x1da4e3(0x2ec)]=null,this[_0x1da4e3(0x28a)]=_0xc81e67[_0x1da4e3(0x5e0)]||![],this[_0x1da4e3(0x9f5)]=_0xc81e67[_0x1da4e3(0x40d)],!this[_0x1da4e3(0x9f5)]&&!this['_disableRange']&&(this[_0x1da4e3(0x28a)]=!![]),this[_0x1da4e3(0x6f5)]=!_0xc81e67[_0x1da4e3(0x56b)],this['_isRangeSupported']=!_0xc81e67[_0x1da4e3(0x5e0)],this['_readableStream']=null,this[_0x1da4e3(0x5a2)]=new _0x37b87a[(_0x1da4e3(0x7e3))](),this['_headersCapability']=new _0x37b87a[(_0x1da4e3(0x7e3))]();}get[_0x8f586f(0x6f2)](){const _0x49c3ba=_0x8f586f;return this[_0x49c3ba(0x615)]['promise'];}get[_0x8f586f(0x5cf)](){return this['_filename'];}get[_0x8f586f(0x434)](){const _0x4b2a45=_0x8f586f;return this[_0x4b2a45(0x8bc)];}get[_0x8f586f(0x7b9)](){return this['_isRangeSupported'];}get[_0x8f586f(0x913)](){const _0x442ea6=_0x8f586f;return this[_0x442ea6(0x6f5)];}async[_0x8f586f(0x37b)](){const _0x2c234d=_0x8f586f;await this[_0x2c234d(0x5a2)][_0x2c234d(0x4dd)];if(this[_0x2c234d(0x51a)])return{'value':undefined,'done':!![]};if(this[_0x2c234d(0x882)])throw this[_0x2c234d(0x882)];const _0x50e980=this[_0x2c234d(0x7c5)][_0x2c234d(0x37b)]();if(_0x50e980===null)return this['_readCapability']=new _0x37b87a[(_0x2c234d(0x7e3))](),this[_0x2c234d(0x37b)]();this[_0x2c234d(0xc7)]+=_0x50e980[_0x2c234d(0x557)],this[_0x2c234d(0x3bf)]?.({'loaded':this[_0x2c234d(0xc7)],'total':this[_0x2c234d(0x8bc)]});const _0x3ea5a9=new Uint8Array(_0x50e980)[_0x2c234d(0x948)];return{'value':_0x3ea5a9,'done':![]};}[_0x8f586f(0x8c6)](_0x5454cf){const _0x230a72=_0x8f586f;if(!this[_0x230a72(0x7c5)]){this['_error'](_0x5454cf);return;}this[_0x230a72(0x7c5)][_0x230a72(0x256)](_0x5454cf);}[_0x8f586f(0x6dc)](_0x28bc48){const _0x37d03d=_0x8f586f;this[_0x37d03d(0x882)]=_0x28bc48,this[_0x37d03d(0x5a2)][_0x37d03d(0x442)]();}[_0x8f586f(0x766)](_0x52bd5b){const _0x3d2d27=_0x8f586f;this['_readableStream']=_0x52bd5b,_0x52bd5b['on'](_0x3d2d27(0x1cd),()=>{const _0xeeaa23=_0x3d2d27;this[_0xeeaa23(0x5a2)][_0xeeaa23(0x442)]();}),_0x52bd5b['on'](_0x3d2d27(0x977),()=>{const _0x2391d3=_0x3d2d27;_0x52bd5b[_0x2391d3(0x256)](),this['_done']=!![],this[_0x2391d3(0x5a2)][_0x2391d3(0x442)]();}),_0x52bd5b['on'](_0x3d2d27(0x9e3),_0x385db0=>{this['_error'](_0x385db0);}),!this[_0x3d2d27(0x6f5)]&&this['_isRangeSupported']&&this[_0x3d2d27(0x6dc)](new _0x37b87a['AbortException'](_0x3d2d27(0x88f))),this[_0x3d2d27(0x882)]&&this[_0x3d2d27(0x7c5)][_0x3d2d27(0x256)](this[_0x3d2d27(0x882)]);}}class _0x157a9a{constructor(_0x456f45){const _0x31bac4=_0x8f586f;this[_0x31bac4(0x640)]=_0x456f45[_0x31bac4(0x6a1)],this[_0x31bac4(0x51a)]=![],this[_0x31bac4(0x882)]=null,this['onProgress']=null,this['_loaded']=0x0,this[_0x31bac4(0x7c5)]=null,this[_0x31bac4(0x5a2)]=new _0x37b87a[(_0x31bac4(0x7e3))]();const _0x387200=_0x456f45[_0x31bac4(0x3b5)];this[_0x31bac4(0x6f5)]=!_0x387200[_0x31bac4(0x56b)];}get[_0x8f586f(0x913)](){const _0x5323ea=_0x8f586f;return this[_0x5323ea(0x6f5)];}async[_0x8f586f(0x37b)](){const _0x4256bc=_0x8f586f;await this[_0x4256bc(0x5a2)]['promise'];if(this[_0x4256bc(0x51a)])return{'value':undefined,'done':!![]};if(this[_0x4256bc(0x882)])throw this[_0x4256bc(0x882)];const _0x46236a=this[_0x4256bc(0x7c5)][_0x4256bc(0x37b)]();if(_0x46236a===null)return this[_0x4256bc(0x5a2)]=new _0x37b87a[(_0x4256bc(0x7e3))](),this[_0x4256bc(0x37b)]();this[_0x4256bc(0xc7)]+=_0x46236a['length'],this[_0x4256bc(0x3bf)]?.({'loaded':this[_0x4256bc(0xc7)]});const _0x4606b3=new Uint8Array(_0x46236a)[_0x4256bc(0x948)];return{'value':_0x4606b3,'done':![]};}[_0x8f586f(0x8c6)](_0x1edf9e){const _0x4b6dc7=_0x8f586f;if(!this[_0x4b6dc7(0x7c5)]){this[_0x4b6dc7(0x6dc)](_0x1edf9e);return;}this[_0x4b6dc7(0x7c5)][_0x4b6dc7(0x256)](_0x1edf9e);}[_0x8f586f(0x6dc)](_0x585db6){const _0x4948e0=_0x8f586f;this[_0x4948e0(0x882)]=_0x585db6,this[_0x4948e0(0x5a2)][_0x4948e0(0x442)]();}[_0x8f586f(0x766)](_0x56b739){const _0x22cbfd=_0x8f586f;this[_0x22cbfd(0x7c5)]=_0x56b739,_0x56b739['on'](_0x22cbfd(0x1cd),()=>{const _0x23bb87=_0x22cbfd;this[_0x23bb87(0x5a2)][_0x23bb87(0x442)]();}),_0x56b739['on'](_0x22cbfd(0x977),()=>{const _0x3d902e=_0x22cbfd;_0x56b739['destroy'](),this[_0x3d902e(0x51a)]=!![],this['_readCapability']['resolve']();}),_0x56b739['on'](_0x22cbfd(0x9e3),_0x5c6753=>{this['_error'](_0x5c6753);}),this[_0x22cbfd(0x882)]&&this[_0x22cbfd(0x7c5)][_0x22cbfd(0x256)](this[_0x22cbfd(0x882)]);}}function _0x5bc1db(_0x523726,_0x491b01){const _0x4a8295=_0x8f586f;return{'protocol':_0x523726['protocol'],'auth':_0x523726[_0x4a8295(0x5c4)],'host':_0x523726[_0x4a8295(0x71f)],'port':_0x523726['port'],'path':_0x523726[_0x4a8295(0x987)],'method':_0x4a8295(0x117),'headers':_0x491b01};}class _0x3d11c2 extends _0x33b47a{constructor(_0x5eba71){const _0x27281d=_0x8f586f;super(_0x5eba71);const _0x56f1df=_0x8f626e=>{const _0x560195=a0_0x160d;if(_0x8f626e['statusCode']===0x194){const _0x2b9e18=new _0x37b87a[(_0x560195(0x5c5))]('Missing\x20PDF\x20\x22'+this['_url']+'\x22.');this[_0x560195(0x882)]=_0x2b9e18,this[_0x560195(0x615)][_0x560195(0x282)](_0x2b9e18);return;}this[_0x560195(0x615)][_0x560195(0x442)](),this[_0x560195(0x766)](_0x8f626e);const _0x501d96=_0x4ab9eb=>{const _0x49a663=_0x560195;return this[_0x49a663(0x7c5)]['headers'][_0x4ab9eb[_0x49a663(0x83c)]()];},{allowRangeRequests:_0x378602,suggestedLength:_0x46da7a}=(0x0,_0x50f140[_0x560195(0x66a)])({'getResponseHeader':_0x501d96,'isHttp':_0x5eba71['isHttp'],'rangeChunkSize':this['_rangeChunkSize'],'disableRange':this[_0x560195(0x28a)]});this[_0x560195(0x9c7)]=_0x378602,this[_0x560195(0x8bc)]=_0x46da7a||this['_contentLength'],this[_0x560195(0x2ec)]=(0x0,_0x50f140['extractFilenameFromHeader'])(_0x501d96);};this[_0x27281d(0x1c4)]=null,this[_0x27281d(0x640)][_0x27281d(0x42a)]===_0x27281d(0x1b5)?this[_0x27281d(0x1c4)]=_0x370f6c[_0x27281d(0x28f)](_0x5bc1db(this[_0x27281d(0x640)],_0x5eba71[_0x27281d(0x4a6)]),_0x56f1df):this[_0x27281d(0x1c4)]=_0x189ff5[_0x27281d(0x28f)](_0x5bc1db(this[_0x27281d(0x640)],_0x5eba71[_0x27281d(0x4a6)]),_0x56f1df),this[_0x27281d(0x1c4)]['on'](_0x27281d(0x9e3),_0x239cb4=>{const _0x280d18=_0x27281d;this['_storedError']=_0x239cb4,this[_0x280d18(0x615)][_0x280d18(0x282)](_0x239cb4);}),this[_0x27281d(0x1c4)][_0x27281d(0x977)]();}}class _0x347fcf extends _0x157a9a{constructor(_0x50c63b,_0x411b09,_0x3b8810){const _0x5ccd1c=_0x8f586f;super(_0x50c63b),this[_0x5ccd1c(0x396)]={};for(const _0x3eac2a in _0x50c63b[_0x5ccd1c(0x4a6)]){const _0xb65ab2=_0x50c63b[_0x5ccd1c(0x4a6)][_0x3eac2a];if(_0xb65ab2===undefined)continue;this[_0x5ccd1c(0x396)][_0x3eac2a]=_0xb65ab2;}this[_0x5ccd1c(0x396)][_0x5ccd1c(0x70b)]='bytes='+_0x411b09+'-'+(_0x3b8810-0x1);const _0xf8d4d6=_0x3082d7=>{const _0x4cefdd=_0x5ccd1c;if(_0x3082d7[_0x4cefdd(0x86c)]===0x194){const _0x149340=new _0x37b87a[(_0x4cefdd(0x5c5))](_0x4cefdd(0x2b3)+this[_0x4cefdd(0x640)]+'\x22.');this[_0x4cefdd(0x882)]=_0x149340;return;}this[_0x4cefdd(0x766)](_0x3082d7);};this['_request']=null,this[_0x5ccd1c(0x640)][_0x5ccd1c(0x42a)]===_0x5ccd1c(0x1b5)?this[_0x5ccd1c(0x1c4)]=_0x370f6c[_0x5ccd1c(0x28f)](_0x5bc1db(this['_url'],this[_0x5ccd1c(0x396)]),_0xf8d4d6):this['_request']=_0x189ff5[_0x5ccd1c(0x28f)](_0x5bc1db(this[_0x5ccd1c(0x640)],this['_httpHeaders']),_0xf8d4d6),this['_request']['on'](_0x5ccd1c(0x9e3),_0x35b863=>{const _0x19301c=_0x5ccd1c;this[_0x19301c(0x882)]=_0x35b863;}),this[_0x5ccd1c(0x1c4)][_0x5ccd1c(0x977)]();}}class _0x5bf858 extends _0x33b47a{constructor(_0x3878eb){const _0x11d714=_0x8f586f;super(_0x3878eb);let _0x47badf=decodeURIComponent(this['_url'][_0x11d714(0x987)]);_0x4da2c6[_0x11d714(0x6e7)](this[_0x11d714(0x640)][_0x11d714(0x95d)])&&(_0x47badf=_0x47badf[_0x11d714(0x342)](/^\//,'')),_0x3f4d64['lstat'](_0x47badf,(_0x4304c6,_0x38ce72)=>{const _0x4cc5b2=_0x11d714;if(_0x4304c6){_0x4304c6['code']===_0x4cc5b2(0x84e)&&(_0x4304c6=new _0x37b87a['MissingPDFException'](_0x4cc5b2(0x2b3)+_0x47badf+'\x22.'));this[_0x4cc5b2(0x882)]=_0x4304c6,this[_0x4cc5b2(0x615)][_0x4cc5b2(0x282)](_0x4304c6);return;}this[_0x4cc5b2(0x8bc)]=_0x38ce72[_0x4cc5b2(0x87a)],this[_0x4cc5b2(0x766)](_0x3f4d64[_0x4cc5b2(0x3b7)](_0x47badf)),this['_headersCapability'][_0x4cc5b2(0x442)]();});}}class _0x26e4dd extends _0x157a9a{constructor(_0x5a09e1,_0x2c1e64,_0x39a118){const _0x56eef9=_0x8f586f;super(_0x5a09e1);let _0x22b5ce=decodeURIComponent(this[_0x56eef9(0x640)][_0x56eef9(0x987)]);_0x4da2c6[_0x56eef9(0x6e7)](this[_0x56eef9(0x640)][_0x56eef9(0x95d)])&&(_0x22b5ce=_0x22b5ce[_0x56eef9(0x342)](/^\//,'')),this[_0x56eef9(0x766)](_0x3f4d64[_0x56eef9(0x3b7)](_0x22b5ce,{'start':_0x2c1e64,'end':_0x39a118-0x1}));}}},(_0x369793,_0x416d30,_0x1f2f0b)=>{'use strict';const _0x19c139=a0_0x160d;Object['defineProperty'](_0x416d30,'__esModule',{'value':!![]}),_0x416d30[_0x19c139(0x437)]=_0x1263ea,_0x416d30['extractFilenameFromHeader']=_0x274924,_0x416d30[_0x19c139(0x66a)]=_0x35f63a,_0x416d30[_0x19c139(0x9ed)]=_0x53678a;var _0x30f66f=_0x1f2f0b(0x1),_0x46e855=_0x1f2f0b(0x97),_0x4384f3=_0x1f2f0b(0x87);function _0x35f63a(_0xaa0322){const _0x126142=_0x19c139;let {getResponseHeader:_0x3a5e97,isHttp:_0xcfaff7,rangeChunkSize:_0x51ffac,disableRange:_0x3c6b75}=_0xaa0322;const _0x320835={'allowRangeRequests':![],'suggestedLength':undefined},_0x53ec82=parseInt(_0x3a5e97(_0x126142(0xd6)),0xa);if(!Number['isInteger'](_0x53ec82))return _0x320835;_0x320835[_0x126142(0x55a)]=_0x53ec82;if(_0x53ec82<=0x2*_0x51ffac)return _0x320835;if(_0x3c6b75||!_0xcfaff7)return _0x320835;if(_0x3a5e97(_0x126142(0x52a))!==_0x126142(0x9f6))return _0x320835;const _0x346797=_0x3a5e97('Content-Encoding')||'identity';if(_0x346797!=='identity')return _0x320835;return _0x320835[_0x126142(0x1f1)]=!![],_0x320835;}function _0x274924(_0x2594e2){const _0x41c675=_0x19c139,_0x5ae4ad=_0x2594e2(_0x41c675(0x33e));if(_0x5ae4ad){let _0x4e83df=(0x0,_0x46e855[_0x41c675(0x10d)])(_0x5ae4ad);if(_0x4e83df['includes']('%'))try{_0x4e83df=decodeURIComponent(_0x4e83df);}catch{}if((0x0,_0x4384f3['isPdfFile'])(_0x4e83df))return _0x4e83df;}return null;}function _0x1263ea(_0xa26f4e,_0x3fc8d4){const _0xc197f9=_0x19c139;if(_0xa26f4e===0x194||_0xa26f4e===0x0&&_0x3fc8d4['startsWith'](_0xc197f9(0x7b7)))return new _0x30f66f[(_0xc197f9(0x5c5))](_0xc197f9(0x2b3)+_0x3fc8d4+'\x22.');return new _0x30f66f[(_0xc197f9(0x90f))](_0xc197f9(0x4ac)+_0xa26f4e+_0xc197f9(0xef)+_0x3fc8d4+'\x22.',_0xa26f4e);}function _0x53678a(_0x4726cd){return _0x4726cd===0xc8||_0x4726cd===0xce;}},(_0x1ad576,_0x56fad2,_0x459deb)=>{'use strict';Object['defineProperty'](_0x56fad2,'__esModule',{'value':!![]}),_0x56fad2['getFilenameFromContentDispositionHeader']=_0x54a396;var _0x2f510a=_0x459deb(0x1);function _0x54a396(_0xbc419d){const _0x4d80b2=a0_0x160d;let _0x60108e=!![],_0x5d2ba6=_0x2e2273(_0x4d80b2(0x951),'i')[_0x4d80b2(0x249)](_0xbc419d);if(_0x5d2ba6){_0x5d2ba6=_0x5d2ba6[0x1];let _0x44ed8d=_0x27f31b(_0x5d2ba6);return _0x44ed8d=unescape(_0x44ed8d),_0x44ed8d=_0x5d94fb(_0x44ed8d),_0x44ed8d=_0x31b88d(_0x44ed8d),_0x1ff5d9(_0x44ed8d);}_0x5d2ba6=_0x37e33b(_0xbc419d);if(_0x5d2ba6){const _0xf67367=_0x31b88d(_0x5d2ba6);return _0x1ff5d9(_0xf67367);}_0x5d2ba6=_0x2e2273(_0x4d80b2(0x5cf),'i')[_0x4d80b2(0x249)](_0xbc419d);if(_0x5d2ba6){_0x5d2ba6=_0x5d2ba6[0x1];let _0x5cefb8=_0x27f31b(_0x5d2ba6);return _0x5cefb8=_0x31b88d(_0x5cefb8),_0x1ff5d9(_0x5cefb8);}function _0x2e2273(_0x5f04e1,_0x710b1){const _0x147b5a=_0x4d80b2;return new RegExp(_0x147b5a(0x5e1)+_0x5f04e1+_0x147b5a(0x2f3)+'('+_0x147b5a(0x1ee)+'|'+_0x147b5a(0x6b1)+')',_0x710b1);}function _0x123a5b(_0x34e781,_0x3a2ac8){const _0x1d3978=_0x4d80b2;if(_0x34e781){if(!/^[\x00-\xFF]+$/[_0x1d3978(0x6e7)](_0x3a2ac8))return _0x3a2ac8;try{const _0x1a911b=new TextDecoder(_0x34e781,{'fatal':!![]}),_0x1399e1=(0x0,_0x2f510a[_0x1d3978(0x647)])(_0x3a2ac8);_0x3a2ac8=_0x1a911b['decode'](_0x1399e1),_0x60108e=![];}catch{}}return _0x3a2ac8;}function _0x1ff5d9(_0x24f2df){const _0x2da669=_0x4d80b2;return _0x60108e&&/[\x80-\xff]/[_0x2da669(0x6e7)](_0x24f2df)&&(_0x24f2df=_0x123a5b('utf-8',_0x24f2df),_0x60108e&&(_0x24f2df=_0x123a5b('iso-8859-1',_0x24f2df))),_0x24f2df;}function _0x37e33b(_0x12258f){const _0x786b26=_0x4d80b2,_0x1e42bc=[];let _0x5d0b75;const _0x1c65fe=_0x2e2273(_0x786b26(0x23d),'ig');while((_0x5d0b75=_0x1c65fe[_0x786b26(0x249)](_0x12258f))!==null){let [,_0x587b94,_0x456076,_0x127289]=_0x5d0b75;_0x587b94=parseInt(_0x587b94,0xa);if(_0x587b94 in _0x1e42bc){if(_0x587b94===0x0)break;continue;}_0x1e42bc[_0x587b94]=[_0x456076,_0x127289];}const _0x113a24=[];for(let _0x420e4e=0x0;_0x420e4e<_0x1e42bc[_0x786b26(0x557)];++_0x420e4e){if(!(_0x420e4e in _0x1e42bc))break;let [_0x583d19,_0x1440f9]=_0x1e42bc[_0x420e4e];_0x1440f9=_0x27f31b(_0x1440f9),_0x583d19&&(_0x1440f9=unescape(_0x1440f9),_0x420e4e===0x0&&(_0x1440f9=_0x5d94fb(_0x1440f9))),_0x113a24[_0x786b26(0x7d6)](_0x1440f9);}return _0x113a24[_0x786b26(0x334)]('');}function _0x27f31b(_0x96f538){const _0x4103e9=_0x4d80b2;if(_0x96f538[_0x4103e9(0x2aa)]('\x22')){const _0x15f13f=_0x96f538['slice'](0x1)[_0x4103e9(0x6db)]('\x5c\x22');for(let _0x4d68ac=0x0;_0x4d68ac<_0x15f13f[_0x4103e9(0x557)];++_0x4d68ac){const _0x29d8e0=_0x15f13f[_0x4d68ac]['indexOf']('\x22');_0x29d8e0!==-0x1&&(_0x15f13f[_0x4d68ac]=_0x15f13f[_0x4d68ac][_0x4103e9(0x80c)](0x0,_0x29d8e0),_0x15f13f[_0x4103e9(0x557)]=_0x4d68ac+0x1),_0x15f13f[_0x4d68ac]=_0x15f13f[_0x4d68ac]['replaceAll'](/\\(.)/g,'$1');}_0x96f538=_0x15f13f['join']('\x22');}return _0x96f538;}function _0x5d94fb(_0x345271){const _0x5cfdb3=_0x4d80b2,_0x15d944=_0x345271[_0x5cfdb3(0x82c)]('\x27');if(_0x15d944===-0x1)return _0x345271;const _0x49a3b5=_0x345271['slice'](0x0,_0x15d944),_0x5d43ea=_0x345271[_0x5cfdb3(0x80c)](_0x15d944+0x1),_0x50a9be=_0x5d43ea[_0x5cfdb3(0x342)](/^[^']*'/,'');return _0x123a5b(_0x49a3b5,_0x50a9be);}function _0x31b88d(_0x534dc8){const _0x30d75e=_0x4d80b2;if(!_0x534dc8[_0x30d75e(0x2aa)]('=?')||/[\x00-\x19\x80-\xff]/['test'](_0x534dc8))return _0x534dc8;return _0x534dc8[_0x30d75e(0x8b5)](/=\?([\w-]*)\?([QqBb])\?((?:[^?]|\?(?!=))*)\?=/g,function(_0x4fbb26,_0x5eb5a2,_0x4c51e5,_0x4d9a38){const _0x35be5e=_0x30d75e;if(_0x4c51e5==='q'||_0x4c51e5==='Q')return _0x4d9a38=_0x4d9a38[_0x35be5e(0x8b5)]('_','\x20'),_0x4d9a38=_0x4d9a38[_0x35be5e(0x8b5)](/=([0-9a-fA-F]{2})/g,function(_0xec5d9b,_0x10594b){const _0x41bb12=_0x35be5e;return String[_0x41bb12(0x218)](parseInt(_0x10594b,0x10));}),_0x123a5b(_0x5eb5a2,_0x4d9a38);try{_0x4d9a38=atob(_0x4d9a38);}catch{}return _0x123a5b(_0x5eb5a2,_0x4d9a38);});}return'';}},(_0x3596c4,_0x8658cf,_0x4f2a7e)=>{'use strict';const _0x58a575=a0_0x160d;Object[_0x58a575(0x430)](_0x8658cf,_0x58a575(0x19a),{'value':!![]}),_0x8658cf[_0x58a575(0x518)]=void 0x0;var _0xd6c82d=_0x4f2a7e(0x1),_0x425b3e=_0x4f2a7e(0x96);;const _0xf27f08=0xc8,_0x5d2e1c=0xce;function _0x1e02ee(_0x22d5ab){const _0xf2a709=_0x58a575,_0x10ac86=_0x22d5ab['response'];if(typeof _0x10ac86!==_0xf2a709(0x8cd))return _0x10ac86;return(0x0,_0xd6c82d[_0xf2a709(0x647)])(_0x10ac86)[_0xf2a709(0x948)];}class _0x30d80a{constructor(_0x14f121){const _0x11089a=_0x58a575;let _0x648bfa=arguments[_0x11089a(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:{};this['url']=_0x14f121,this[_0x11089a(0x303)]=/^https?:/i[_0x11089a(0x6e7)](_0x14f121),this[_0x11089a(0x4a6)]=this['isHttp']&&_0x648bfa[_0x11089a(0x4a6)]||Object['create'](null),this[_0x11089a(0x113)]=_0x648bfa[_0x11089a(0x113)]||![],this[_0x11089a(0x3b4)]=0x0,this['pendingRequests']=Object[_0x11089a(0x77c)](null);}[_0x58a575(0x711)](_0xf25646,_0x4e5296,_0x36b2d9){const _0x2a3739={'begin':_0xf25646,'end':_0x4e5296};for(const _0x2434c1 in _0x36b2d9){_0x2a3739[_0x2434c1]=_0x36b2d9[_0x2434c1];}return this['request'](_0x2a3739);}[_0x58a575(0x9c9)](_0x4c412a){const _0x127884=_0x58a575;return this[_0x127884(0x28f)](_0x4c412a);}[_0x58a575(0x28f)](_0xcc0d50){const _0x597129=_0x58a575,_0x360b5d=new XMLHttpRequest(),_0x59793f=this[_0x597129(0x3b4)]++,_0x429c28=this[_0x597129(0x9d0)][_0x59793f]={'xhr':_0x360b5d};_0x360b5d[_0x597129(0x514)](_0x597129(0x117),this[_0x597129(0x6a1)]),_0x360b5d[_0x597129(0x113)]=this[_0x597129(0x113)];for(const _0xc2f845 in this[_0x597129(0x4a6)]){const _0x566d9a=this[_0x597129(0x4a6)][_0xc2f845];if(_0x566d9a===undefined)continue;_0x360b5d['setRequestHeader'](_0xc2f845,_0x566d9a);}return this[_0x597129(0x303)]&&_0x597129(0x722)in _0xcc0d50&&'end'in _0xcc0d50?(_0x360b5d[_0x597129(0x325)](_0x597129(0x70b),'bytes='+_0xcc0d50[_0x597129(0x722)]+'-'+(_0xcc0d50[_0x597129(0x977)]-0x1)),_0x429c28[_0x597129(0x4df)]=_0x5d2e1c):_0x429c28[_0x597129(0x4df)]=_0xf27f08,_0x360b5d['responseType']=_0x597129(0x551),_0xcc0d50[_0x597129(0x10c)]&&(_0x360b5d[_0x597129(0x979)]=function(_0x4fc10e){const _0xf1d9c=_0x597129;_0xcc0d50[_0xf1d9c(0x10c)](_0x360b5d[_0xf1d9c(0x78b)]);}),_0x360b5d[_0x597129(0x9be)]=this[_0x597129(0x976)][_0x597129(0x5e8)](this,_0x59793f),_0x360b5d[_0x597129(0x8b8)]=this[_0x597129(0x3bf)][_0x597129(0x5e8)](this,_0x59793f),_0x429c28['onHeadersReceived']=_0xcc0d50[_0x597129(0x7b3)],_0x429c28[_0x597129(0x8f1)]=_0xcc0d50[_0x597129(0x8f1)],_0x429c28['onError']=_0xcc0d50['onError'],_0x429c28[_0x597129(0x3bf)]=_0xcc0d50[_0x597129(0x3bf)],_0x360b5d['send'](null),_0x59793f;}[_0x58a575(0x3bf)](_0x2bc6e5,_0xf36b56){const _0x2a6dcd=this['pendingRequests'][_0x2bc6e5];if(!_0x2a6dcd)return;_0x2a6dcd['onProgress']?.(_0xf36b56);}[_0x58a575(0x976)](_0x3dd2af,_0x3db0cf){const _0x2917da=_0x58a575,_0x7449e6=this[_0x2917da(0x9d0)][_0x3dd2af];if(!_0x7449e6)return;const _0x2ce2e5=_0x7449e6[_0x2917da(0x465)];_0x2ce2e5[_0x2917da(0x5f9)]>=0x2&&_0x7449e6[_0x2917da(0x7b3)]&&(_0x7449e6[_0x2917da(0x7b3)](),delete _0x7449e6[_0x2917da(0x7b3)]);if(_0x2ce2e5['readyState']!==0x4)return;if(!(_0x3dd2af in this[_0x2917da(0x9d0)]))return;delete this[_0x2917da(0x9d0)][_0x3dd2af];if(_0x2ce2e5[_0x2917da(0x78b)]===0x0&&this[_0x2917da(0x303)]){_0x7449e6[_0x2917da(0x10c)]?.(_0x2ce2e5[_0x2917da(0x78b)]);return;}const _0x2efc1a=_0x2ce2e5[_0x2917da(0x78b)]||_0xf27f08,_0x496520=_0x2efc1a===_0xf27f08&&_0x7449e6[_0x2917da(0x4df)]===_0x5d2e1c;if(!_0x496520&&_0x2efc1a!==_0x7449e6[_0x2917da(0x4df)]){_0x7449e6['onError']?.(_0x2ce2e5['status']);return;}const _0x2d782a=_0x1e02ee(_0x2ce2e5);if(_0x2efc1a===_0x5d2e1c){const _0x183314=_0x2ce2e5['getResponseHeader'](_0x2917da(0x58e)),_0x3fccd4=/bytes (\d+)-(\d+)\/(\d+)/[_0x2917da(0x249)](_0x183314);_0x7449e6[_0x2917da(0x8f1)]({'begin':parseInt(_0x3fccd4[0x1],0xa),'chunk':_0x2d782a});}else _0x2d782a?_0x7449e6['onDone']({'begin':0x0,'chunk':_0x2d782a}):_0x7449e6[_0x2917da(0x10c)]?.(_0x2ce2e5[_0x2917da(0x78b)]);}[_0x58a575(0x9dc)](_0x528ba0){const _0x41388d=_0x58a575;return this['pendingRequests'][_0x528ba0][_0x41388d(0x465)];}[_0x58a575(0x135)](_0x37fe06){return _0x37fe06 in this['pendingRequests'];}[_0x58a575(0x585)](_0x5b1552){const _0x287651=_0x58a575,_0x1affe3=this[_0x287651(0x9d0)][_0x5b1552][_0x287651(0x465)];delete this[_0x287651(0x9d0)][_0x5b1552],_0x1affe3[_0x287651(0x304)]();}}class _0x121a0b{constructor(_0x24ea07){const _0x4d5637=_0x58a575;this[_0x4d5637(0x432)]=_0x24ea07,this['_manager']=new _0x30d80a(_0x24ea07['url'],{'httpHeaders':_0x24ea07[_0x4d5637(0x4a6)],'withCredentials':_0x24ea07['withCredentials']}),this[_0x4d5637(0x9f5)]=_0x24ea07[_0x4d5637(0x40d)],this[_0x4d5637(0x30c)]=null,this[_0x4d5637(0x6e2)]=[];}[_0x58a575(0x790)](_0x3d408d){const _0x515849=_0x58a575,_0x55bc9e=this[_0x515849(0x6e2)]['indexOf'](_0x3d408d);_0x55bc9e>=0x0&&this[_0x515849(0x6e2)]['splice'](_0x55bc9e,0x1);}[_0x58a575(0x50a)](){const _0x57dadb=_0x58a575;return(0x0,_0xd6c82d['assert'])(!this[_0x57dadb(0x30c)],_0x57dadb(0x5ce)),this[_0x57dadb(0x30c)]=new _0x432bb8(this[_0x57dadb(0x4ae)],this[_0x57dadb(0x432)]),this[_0x57dadb(0x30c)];}[_0x58a575(0x7d3)](_0x32779f,_0x36ce1f){const _0x214e27=_0x58a575,_0x350806=new _0x18508d(this[_0x214e27(0x4ae)],_0x32779f,_0x36ce1f);return _0x350806[_0x214e27(0x161)]=this[_0x214e27(0x790)][_0x214e27(0x5e8)](this),this[_0x214e27(0x6e2)]['push'](_0x350806),_0x350806;}['cancelAllRequests'](_0x3c304f){const _0x4461ef=_0x58a575;this['_fullRequestReader']?.[_0x4461ef(0x8c6)](_0x3c304f);for(const _0x1f511c of this[_0x4461ef(0x6e2)][_0x4461ef(0x80c)](0x0)){_0x1f511c[_0x4461ef(0x8c6)](_0x3c304f);}}}_0x8658cf[_0x58a575(0x518)]=_0x121a0b;class _0x432bb8{constructor(_0x304a6f,_0x195bd6){const _0x1dd199=_0x58a575;this[_0x1dd199(0x4ae)]=_0x304a6f;const _0x260ee8={'onHeadersReceived':this[_0x1dd199(0x4f5)][_0x1dd199(0x5e8)](this),'onDone':this[_0x1dd199(0x4a0)][_0x1dd199(0x5e8)](this),'onError':this[_0x1dd199(0x566)][_0x1dd199(0x5e8)](this),'onProgress':this[_0x1dd199(0x4d7)]['bind'](this)};this[_0x1dd199(0x640)]=_0x195bd6[_0x1dd199(0x6a1)],this[_0x1dd199(0x297)]=_0x304a6f[_0x1dd199(0x9c9)](_0x260ee8),this[_0x1dd199(0x8a7)]=new _0xd6c82d[(_0x1dd199(0x7e3))](),this[_0x1dd199(0x28a)]=_0x195bd6['disableRange']||![],this[_0x1dd199(0x8bc)]=_0x195bd6[_0x1dd199(0x557)],this[_0x1dd199(0x9f5)]=_0x195bd6['rangeChunkSize'],!this['_rangeChunkSize']&&!this[_0x1dd199(0x28a)]&&(this[_0x1dd199(0x28a)]=!![]),this[_0x1dd199(0x6f5)]=![],this[_0x1dd199(0x9c7)]=![],this[_0x1dd199(0xd5)]=[],this[_0x1dd199(0x104)]=[],this[_0x1dd199(0x51a)]=![],this[_0x1dd199(0x882)]=undefined,this['_filename']=null,this[_0x1dd199(0x3bf)]=null;}[_0x58a575(0x4f5)](){const _0x13426f=_0x58a575,_0x213d06=this['_fullRequestId'],_0x5909d2=this[_0x13426f(0x4ae)][_0x13426f(0x9dc)](_0x213d06),_0x1dd09e=_0x46d01d=>{return _0x5909d2['getResponseHeader'](_0x46d01d);},{allowRangeRequests:_0x1612de,suggestedLength:_0x3d4ba1}=(0x0,_0x425b3e['validateRangeRequestCapabilities'])({'getResponseHeader':_0x1dd09e,'isHttp':this[_0x13426f(0x4ae)][_0x13426f(0x303)],'rangeChunkSize':this['_rangeChunkSize'],'disableRange':this['_disableRange']});_0x1612de&&(this[_0x13426f(0x9c7)]=!![]),this['_contentLength']=_0x3d4ba1||this[_0x13426f(0x8bc)],this[_0x13426f(0x2ec)]=(0x0,_0x425b3e[_0x13426f(0x573)])(_0x1dd09e),this[_0x13426f(0x9c7)]&&this[_0x13426f(0x4ae)][_0x13426f(0x585)](_0x213d06),this[_0x13426f(0x8a7)][_0x13426f(0x442)]();}[_0x58a575(0x4a0)](_0x4813d3){const _0x57969f=_0x58a575;if(_0x4813d3){if(this['_requests'][_0x57969f(0x557)]>0x0){const _0x514df4=this[_0x57969f(0x104)][_0x57969f(0x84f)]();_0x514df4[_0x57969f(0x442)]({'value':_0x4813d3[_0x57969f(0x1dd)],'done':![]});}else this[_0x57969f(0xd5)][_0x57969f(0x7d6)](_0x4813d3[_0x57969f(0x1dd)]);}this['_done']=!![];if(this[_0x57969f(0xd5)][_0x57969f(0x557)]>0x0)return;for(const _0x11ac76 of this[_0x57969f(0x104)]){_0x11ac76['resolve']({'value':undefined,'done':!![]});}this[_0x57969f(0x104)][_0x57969f(0x557)]=0x0;}[_0x58a575(0x566)](_0x16a2ec){const _0x3a89dd=_0x58a575;this[_0x3a89dd(0x882)]=(0x0,_0x425b3e[_0x3a89dd(0x437)])(_0x16a2ec,this[_0x3a89dd(0x640)]),this[_0x3a89dd(0x8a7)]['reject'](this['_storedError']);for(const _0x10c7ab of this['_requests']){_0x10c7ab[_0x3a89dd(0x282)](this[_0x3a89dd(0x882)]);}this[_0x3a89dd(0x104)][_0x3a89dd(0x557)]=0x0,this['_cachedChunks'][_0x3a89dd(0x557)]=0x0;}['_onProgress'](_0x3b40c8){const _0x43b688=_0x58a575;this[_0x43b688(0x3bf)]?.({'loaded':_0x3b40c8['loaded'],'total':_0x3b40c8[_0x43b688(0x39e)]?_0x3b40c8['total']:this[_0x43b688(0x8bc)]});}get[_0x58a575(0x5cf)](){const _0x48543d=_0x58a575;return this[_0x48543d(0x2ec)];}get[_0x58a575(0x7b9)](){const _0x2ceeda=_0x58a575;return this[_0x2ceeda(0x9c7)];}get[_0x58a575(0x913)](){const _0x583f13=_0x58a575;return this[_0x583f13(0x6f5)];}get[_0x58a575(0x434)](){const _0x177ce5=_0x58a575;return this[_0x177ce5(0x8bc)];}get[_0x58a575(0x6f2)](){const _0x3164da=_0x58a575;return this[_0x3164da(0x8a7)][_0x3164da(0x4dd)];}async[_0x58a575(0x37b)](){const _0x5f1561=_0x58a575;if(this[_0x5f1561(0x882)])throw this[_0x5f1561(0x882)];if(this['_cachedChunks'][_0x5f1561(0x557)]>0x0){const _0x3e5521=this['_cachedChunks']['shift']();return{'value':_0x3e5521,'done':![]};}if(this[_0x5f1561(0x51a)])return{'value':undefined,'done':!![]};const _0xcb89c3=new _0xd6c82d[(_0x5f1561(0x7e3))]();return this[_0x5f1561(0x104)][_0x5f1561(0x7d6)](_0xcb89c3),_0xcb89c3[_0x5f1561(0x4dd)];}[_0x58a575(0x8c6)](_0xb5a17d){const _0x52daa2=_0x58a575;this[_0x52daa2(0x51a)]=!![],this[_0x52daa2(0x8a7)][_0x52daa2(0x282)](_0xb5a17d);for(const _0x284672 of this[_0x52daa2(0x104)]){_0x284672[_0x52daa2(0x442)]({'value':undefined,'done':!![]});}this[_0x52daa2(0x104)]['length']=0x0,this[_0x52daa2(0x4ae)]['isPendingRequest'](this[_0x52daa2(0x297)])&&this[_0x52daa2(0x4ae)]['abortRequest'](this[_0x52daa2(0x297)]),this['_fullRequestReader']=null;}}class _0x18508d{constructor(_0x29e1d9,_0x50c009,_0x194f94){const _0x4e0b4c=_0x58a575;this['_manager']=_0x29e1d9;const _0x2c95fe={'onDone':this[_0x4e0b4c(0x4a0)][_0x4e0b4c(0x5e8)](this),'onError':this['_onError'][_0x4e0b4c(0x5e8)](this),'onProgress':this[_0x4e0b4c(0x4d7)][_0x4e0b4c(0x5e8)](this)};this['_url']=_0x29e1d9[_0x4e0b4c(0x6a1)],this['_requestId']=_0x29e1d9[_0x4e0b4c(0x711)](_0x50c009,_0x194f94,_0x2c95fe),this[_0x4e0b4c(0x104)]=[],this[_0x4e0b4c(0x137)]=null,this['_done']=![],this[_0x4e0b4c(0x882)]=undefined,this['onProgress']=null,this[_0x4e0b4c(0x161)]=null;}['_close'](){const _0x424ea0=_0x58a575;this[_0x424ea0(0x161)]?.(this);}[_0x58a575(0x4a0)](_0x4b9d31){const _0x5d688c=_0x58a575,_0xb8a75d=_0x4b9d31[_0x5d688c(0x1dd)];if(this[_0x5d688c(0x104)][_0x5d688c(0x557)]>0x0){const _0x4d6693=this['_requests'][_0x5d688c(0x84f)]();_0x4d6693[_0x5d688c(0x442)]({'value':_0xb8a75d,'done':![]});}else this[_0x5d688c(0x137)]=_0xb8a75d;this['_done']=!![];for(const _0x484b44 of this['_requests']){_0x484b44[_0x5d688c(0x442)]({'value':undefined,'done':!![]});}this[_0x5d688c(0x104)]['length']=0x0,this['_close']();}[_0x58a575(0x566)](_0x3d4c7c){const _0x4b03d4=_0x58a575;this[_0x4b03d4(0x882)]=(0x0,_0x425b3e[_0x4b03d4(0x437)])(_0x3d4c7c,this[_0x4b03d4(0x640)]);for(const _0x21b88f of this['_requests']){_0x21b88f[_0x4b03d4(0x282)](this[_0x4b03d4(0x882)]);}this['_requests']['length']=0x0,this['_queuedChunk']=null;}[_0x58a575(0x4d7)](_0x45f979){const _0x4f2775=_0x58a575;!this['isStreamingSupported']&&this[_0x4f2775(0x3bf)]?.({'loaded':_0x45f979[_0x4f2775(0x19f)]});}get[_0x58a575(0x913)](){return![];}async[_0x58a575(0x37b)](){const _0x52928a=_0x58a575;if(this[_0x52928a(0x882)])throw this['_storedError'];if(this[_0x52928a(0x137)]!==null){const _0x26fdcd=this[_0x52928a(0x137)];return this['_queuedChunk']=null,{'value':_0x26fdcd,'done':![]};}if(this[_0x52928a(0x51a)])return{'value':undefined,'done':!![]};const _0x3f8989=new _0xd6c82d[(_0x52928a(0x7e3))]();return this['_requests']['push'](_0x3f8989),_0x3f8989[_0x52928a(0x4dd)];}[_0x58a575(0x8c6)](_0x1154ff){const _0x11b95d=_0x58a575;this[_0x11b95d(0x51a)]=!![];for(const _0x37eb25 of this[_0x11b95d(0x104)]){_0x37eb25[_0x11b95d(0x442)]({'value':undefined,'done':!![]});}this['_requests'][_0x11b95d(0x557)]=0x0,this[_0x11b95d(0x4ae)]['isPendingRequest'](this[_0x11b95d(0x4c1)])&&this['_manager'][_0x11b95d(0x585)](this[_0x11b95d(0x4c1)]),this['_close']();}}},(_0x45c35e,_0x26f18e,_0xf95e27)=>{'use strict';const _0x321558=a0_0x160d;Object[_0x321558(0x430)](_0x26f18e,'__esModule',{'value':!![]}),_0x26f18e[_0x321558(0x3ec)]=void 0x0;var _0x2ba3f2=_0xf95e27(0x1),_0x580dfa=_0xf95e27(0x96);;function _0x37d57a(_0x51b52c,_0x4da118,_0x5d23cc){const _0x4ba4e6=_0x321558;return{'method':_0x4ba4e6(0x117),'headers':_0x51b52c,'signal':_0x5d23cc['signal'],'mode':_0x4ba4e6(0x149),'credentials':_0x4da118?'include':_0x4ba4e6(0x6c5),'redirect':_0x4ba4e6(0x398)};}function _0xa539c3(_0x4859e7){const _0x501e0a=_0x321558,_0x3d6d6c=new Headers();for(const _0xca49b4 in _0x4859e7){const _0x1b3097=_0x4859e7[_0xca49b4];if(_0x1b3097===undefined)continue;_0x3d6d6c[_0x501e0a(0x45e)](_0xca49b4,_0x1b3097);}return _0x3d6d6c;}function _0x34af55(_0x15b09e){const _0x208eca=_0x321558;if(_0x15b09e instanceof Uint8Array)return _0x15b09e[_0x208eca(0x948)];if(_0x15b09e instanceof ArrayBuffer)return _0x15b09e;return(0x0,_0x2ba3f2[_0x208eca(0x472)])(_0x208eca(0x406)+_0x15b09e),new Uint8Array(_0x15b09e)['buffer'];}class _0x3fcb7f{constructor(_0x5ccf77){const _0x295101=_0x321558;this[_0x295101(0x3b5)]=_0x5ccf77,this[_0x295101(0x303)]=/^https?:/i[_0x295101(0x6e7)](_0x5ccf77[_0x295101(0x6a1)]),this[_0x295101(0x4a6)]=this[_0x295101(0x303)]&&_0x5ccf77['httpHeaders']||{},this[_0x295101(0x30c)]=null,this['_rangeRequestReaders']=[];}get[_0x321558(0x14b)](){const _0xef1506=_0x321558;return this[_0xef1506(0x30c)]?.[_0xef1506(0xc7)]??0x0;}[_0x321558(0x50a)](){const _0x4a6a4c=_0x321558;return(0x0,_0x2ba3f2[_0x4a6a4c(0x63a)])(!this[_0x4a6a4c(0x30c)],'PDFFetchStream.getFullReader\x20can\x20only\x20be\x20called\x20once.'),this['_fullRequestReader']=new _0xe56e60(this),this[_0x4a6a4c(0x30c)];}[_0x321558(0x7d3)](_0x4045af,_0x225cec){const _0x2af0ad=_0x321558;if(_0x225cec<=this['_progressiveDataLength'])return null;const _0x4904e9=new _0x534e26(this,_0x4045af,_0x225cec);return this[_0x2af0ad(0x6e2)][_0x2af0ad(0x7d6)](_0x4904e9),_0x4904e9;}[_0x321558(0x8a8)](_0x1b6576){const _0x3fbd50=_0x321558;this[_0x3fbd50(0x30c)]?.[_0x3fbd50(0x8c6)](_0x1b6576);for(const _0x1e2cdf of this[_0x3fbd50(0x6e2)]['slice'](0x0)){_0x1e2cdf[_0x3fbd50(0x8c6)](_0x1b6576);}}}_0x26f18e[_0x321558(0x3ec)]=_0x3fcb7f;class _0xe56e60{constructor(_0x5c16c2){const _0x120c1a=_0x321558;this[_0x120c1a(0x2a3)]=_0x5c16c2,this[_0x120c1a(0x300)]=null,this[_0x120c1a(0xc7)]=0x0,this[_0x120c1a(0x2ec)]=null;const _0x1e608b=_0x5c16c2[_0x120c1a(0x3b5)];this[_0x120c1a(0x79f)]=_0x1e608b[_0x120c1a(0x113)]||![],this[_0x120c1a(0x8bc)]=_0x1e608b[_0x120c1a(0x557)],this['_headersCapability']=new _0x2ba3f2[(_0x120c1a(0x7e3))](),this[_0x120c1a(0x28a)]=_0x1e608b[_0x120c1a(0x5e0)]||![],this[_0x120c1a(0x9f5)]=_0x1e608b['rangeChunkSize'];!this[_0x120c1a(0x9f5)]&&!this['_disableRange']&&(this[_0x120c1a(0x28a)]=!![]);this[_0x120c1a(0x6b6)]=new AbortController(),this[_0x120c1a(0x6f5)]=!_0x1e608b['disableStream'],this[_0x120c1a(0x9c7)]=!_0x1e608b[_0x120c1a(0x5e0)],this[_0x120c1a(0x289)]=_0xa539c3(this[_0x120c1a(0x2a3)]['httpHeaders']);const _0xbf4627=_0x1e608b[_0x120c1a(0x6a1)];fetch(_0xbf4627,_0x37d57a(this['_headers'],this[_0x120c1a(0x79f)],this[_0x120c1a(0x6b6)]))[_0x120c1a(0x22d)](_0x2513df=>{const _0x4fac55=_0x120c1a;if(!(0x0,_0x580dfa[_0x4fac55(0x9ed)])(_0x2513df['status']))throw(0x0,_0x580dfa[_0x4fac55(0x437)])(_0x2513df[_0x4fac55(0x78b)],_0xbf4627);this[_0x4fac55(0x300)]=_0x2513df[_0x4fac55(0x4e7)][_0x4fac55(0x3dd)](),this[_0x4fac55(0x615)]['resolve']();const _0x5425e3=_0x4d9497=>{const _0x4965cf=_0x4fac55;return _0x2513df[_0x4965cf(0x692)][_0x4965cf(0x8c4)](_0x4d9497);},{allowRangeRequests:_0x390d11,suggestedLength:_0x21a238}=(0x0,_0x580dfa[_0x4fac55(0x66a)])({'getResponseHeader':_0x5425e3,'isHttp':this[_0x4fac55(0x2a3)][_0x4fac55(0x303)],'rangeChunkSize':this[_0x4fac55(0x9f5)],'disableRange':this[_0x4fac55(0x28a)]});this['_isRangeSupported']=_0x390d11,this[_0x4fac55(0x8bc)]=_0x21a238||this['_contentLength'],this['_filename']=(0x0,_0x580dfa[_0x4fac55(0x573)])(_0x5425e3),!this[_0x4fac55(0x6f5)]&&this[_0x4fac55(0x9c7)]&&this[_0x4fac55(0x8c6)](new _0x2ba3f2['AbortException'](_0x4fac55(0x96a)));})['catch'](this['_headersCapability']['reject']),this[_0x120c1a(0x3bf)]=null;}get[_0x321558(0x6f2)](){const _0x477c02=_0x321558;return this['_headersCapability'][_0x477c02(0x4dd)];}get['filename'](){const _0x12db35=_0x321558;return this[_0x12db35(0x2ec)];}get[_0x321558(0x434)](){const _0x15f0c0=_0x321558;return this[_0x15f0c0(0x8bc)];}get['isRangeSupported'](){const _0xe8b403=_0x321558;return this[_0xe8b403(0x9c7)];}get[_0x321558(0x913)](){const _0x117179=_0x321558;return this[_0x117179(0x6f5)];}async['read'](){const _0x5aa4f7=_0x321558;await this[_0x5aa4f7(0x615)]['promise'];const {value:_0xff91ca,done:_0x177eff}=await this[_0x5aa4f7(0x300)][_0x5aa4f7(0x37b)]();if(_0x177eff)return{'value':_0xff91ca,'done':_0x177eff};return this[_0x5aa4f7(0xc7)]+=_0xff91ca['byteLength'],this[_0x5aa4f7(0x3bf)]?.({'loaded':this[_0x5aa4f7(0xc7)],'total':this[_0x5aa4f7(0x8bc)]}),{'value':_0x34af55(_0xff91ca),'done':![]};}[_0x321558(0x8c6)](_0x443b65){const _0x7f487b=_0x321558;this['_reader']?.['cancel'](_0x443b65),this[_0x7f487b(0x6b6)][_0x7f487b(0x304)]();}}class _0x534e26{constructor(_0x42e376,_0x398f33,_0xb981d2){const _0x3ca3d6=_0x321558;this[_0x3ca3d6(0x2a3)]=_0x42e376,this[_0x3ca3d6(0x300)]=null,this['_loaded']=0x0;const _0x5a8b5a=_0x42e376['source'];this[_0x3ca3d6(0x79f)]=_0x5a8b5a[_0x3ca3d6(0x113)]||![],this[_0x3ca3d6(0x5a2)]=new _0x2ba3f2['PromiseCapability'](),this[_0x3ca3d6(0x6f5)]=!_0x5a8b5a['disableStream'],this[_0x3ca3d6(0x6b6)]=new AbortController(),this[_0x3ca3d6(0x289)]=_0xa539c3(this[_0x3ca3d6(0x2a3)]['httpHeaders']),this[_0x3ca3d6(0x289)]['append'](_0x3ca3d6(0x70b),_0x3ca3d6(0x129)+_0x398f33+'-'+(_0xb981d2-0x1));const _0x38795a=_0x5a8b5a[_0x3ca3d6(0x6a1)];fetch(_0x38795a,_0x37d57a(this[_0x3ca3d6(0x289)],this['_withCredentials'],this[_0x3ca3d6(0x6b6)]))[_0x3ca3d6(0x22d)](_0x140c1c=>{const _0x2982d3=_0x3ca3d6;if(!(0x0,_0x580dfa['validateResponseStatus'])(_0x140c1c[_0x2982d3(0x78b)]))throw(0x0,_0x580dfa['createResponseStatusError'])(_0x140c1c[_0x2982d3(0x78b)],_0x38795a);this[_0x2982d3(0x5a2)][_0x2982d3(0x442)](),this[_0x2982d3(0x300)]=_0x140c1c[_0x2982d3(0x4e7)][_0x2982d3(0x3dd)]();})[_0x3ca3d6(0x75f)](this[_0x3ca3d6(0x5a2)][_0x3ca3d6(0x282)]),this[_0x3ca3d6(0x3bf)]=null;}get[_0x321558(0x913)](){const _0x50a18d=_0x321558;return this[_0x50a18d(0x6f5)];}async[_0x321558(0x37b)](){const _0x44f741=_0x321558;await this[_0x44f741(0x5a2)][_0x44f741(0x4dd)];const {value:_0x14ea45,done:_0xbc0e2f}=await this[_0x44f741(0x300)][_0x44f741(0x37b)]();if(_0xbc0e2f)return{'value':_0x14ea45,'done':_0xbc0e2f};return this[_0x44f741(0xc7)]+=_0x14ea45[_0x44f741(0x110)],this[_0x44f741(0x3bf)]?.({'loaded':this[_0x44f741(0xc7)]}),{'value':_0x34af55(_0x14ea45),'done':![]};}['cancel'](_0x24e61f){const _0x2e4983=_0x321558;this[_0x2e4983(0x300)]?.[_0x2e4983(0x8c6)](_0x24e61f),this[_0x2e4983(0x6b6)][_0x2e4983(0x304)]();}}},(_0x4a48a3,_0x5f7bb6,_0x3437f3)=>{'use strict';const _0x222f48=a0_0x160d;Object[_0x222f48(0x430)](_0x5f7bb6,_0x222f48(0x19a),{'value':!![]}),_0x5f7bb6[_0x222f48(0x6e5)]=void 0x0,_0x5f7bb6[_0x222f48(0x29e)]=_0x47a32d,_0x5f7bb6[_0x222f48(0x98f)]=_0x91b621;var _0xb42e1e=_0x3437f3(0x1),_0x298bfa=_0x3437f3(0x87);const _0x476c4d=0x186a0,_0x4dedb6=0x1e,_0x6f0a8f=0.8,_0x35d9c9=new Map();function _0x405775(_0x33827d,_0xfbfb7e){const _0xaaec7f=_0x222f48;let _0x27870c;if(_0xfbfb7e&&_0xb42e1e[_0xaaec7f(0x7a8)][_0xaaec7f(0x5ff)])_0x27870c=new OffscreenCanvas(_0x33827d,_0x33827d)[_0xaaec7f(0x802)]('2d',{'alpha':![]});else{const _0x128b26=document['createElement']('canvas');_0x128b26['width']=_0x128b26['height']=_0x33827d,_0x27870c=_0x128b26[_0xaaec7f(0x802)]('2d',{'alpha':![]});}return _0x27870c;}function _0x20b931(_0x27a481,_0x464c63){const _0x345b1f=_0x222f48,_0x29297d=_0x35d9c9[_0x345b1f(0x8c4)](_0x27a481);if(_0x29297d)return _0x29297d;const _0x2f520d=_0x405775(_0x4dedb6,_0x464c63);_0x2f520d[_0x345b1f(0x59d)]=_0x4dedb6+_0x345b1f(0x993)+_0x27a481;const _0x19b260=_0x2f520d[_0x345b1f(0x106)]('');let _0x48d8d2=_0x19b260[_0x345b1f(0x649)],_0x4cf3ef=Math[_0x345b1f(0x346)](_0x19b260[_0x345b1f(0x760)]);if(_0x48d8d2){const _0x1df6d4=_0x48d8d2/(_0x48d8d2+_0x4cf3ef);return _0x35d9c9['set'](_0x27a481,_0x1df6d4),_0x2f520d[_0x345b1f(0x75a)]['width']=_0x2f520d[_0x345b1f(0x75a)][_0x345b1f(0x999)]=0x0,_0x1df6d4;}_0x2f520d[_0x345b1f(0xc9)]=_0x345b1f(0x276),_0x2f520d[_0x345b1f(0x726)](0x0,0x0,_0x4dedb6,_0x4dedb6),_0x2f520d[_0x345b1f(0x32e)]('g',0x0,0x0);let _0x378912=_0x2f520d[_0x345b1f(0x3fc)](0x0,0x0,_0x4dedb6,_0x4dedb6)[_0x345b1f(0x41b)];_0x4cf3ef=0x0;for(let _0x31bd00=_0x378912[_0x345b1f(0x557)]-0x1-0x3;_0x31bd00>=0x0;_0x31bd00-=0x4){if(_0x378912[_0x31bd00]>0x0){_0x4cf3ef=Math[_0x345b1f(0x213)](_0x31bd00/0x4/_0x4dedb6);break;}}_0x2f520d['clearRect'](0x0,0x0,_0x4dedb6,_0x4dedb6),_0x2f520d['strokeText']('A',0x0,_0x4dedb6),_0x378912=_0x2f520d['getImageData'](0x0,0x0,_0x4dedb6,_0x4dedb6)[_0x345b1f(0x41b)],_0x48d8d2=0x0;for(let _0x11c860=0x0,_0x4b105e=_0x378912[_0x345b1f(0x557)];_0x11c860<_0x4b105e;_0x11c860+=0x4){if(_0x378912[_0x11c860]>0x0){_0x48d8d2=_0x4dedb6-Math[_0x345b1f(0x583)](_0x11c860/0x4/_0x4dedb6);break;}}_0x2f520d[_0x345b1f(0x75a)][_0x345b1f(0x98b)]=_0x2f520d['canvas'][_0x345b1f(0x999)]=0x0;if(_0x48d8d2){const _0x48ee23=_0x48d8d2/(_0x48d8d2+_0x4cf3ef);return _0x35d9c9['set'](_0x27a481,_0x48ee23),_0x48ee23;}return _0x35d9c9[_0x345b1f(0x98e)](_0x27a481,_0x6f0a8f),_0x6f0a8f;}function _0x2a05b3(_0x5b214d,_0x50cafa,_0x813b90){const _0x74ac91=_0x222f48,_0x14b2d6=document[_0x74ac91(0x400)](_0x74ac91(0x901)),_0x4e0d54={'angle':0x0,'canvasWidth':0x0,'hasText':_0x50cafa['str']!=='','hasEOL':_0x50cafa[_0x74ac91(0x837)],'fontSize':0x0};_0x5b214d['_textDivs'][_0x74ac91(0x7d6)](_0x14b2d6);const _0x1e8068=_0xb42e1e[_0x74ac91(0x5d7)][_0x74ac91(0x5dd)](_0x5b214d[_0x74ac91(0x574)],_0x50cafa[_0x74ac91(0x5dd)]);let _0x247fdb=Math[_0x74ac91(0x27c)](_0x1e8068[0x1],_0x1e8068[0x0]);const _0x12d8cf=_0x813b90[_0x50cafa['fontName']];_0x12d8cf[_0x74ac91(0x58b)]&&(_0x247fdb+=Math['PI']/0x2);const _0x49e011=Math[_0x74ac91(0x8cb)](_0x1e8068[0x2],_0x1e8068[0x3]),_0x213c04=_0x49e011*_0x20b931(_0x12d8cf[_0x74ac91(0x3a3)],_0x5b214d[_0x74ac91(0x17a)]);let _0x59c2f8,_0x5da744;_0x247fdb===0x0?(_0x59c2f8=_0x1e8068[0x4],_0x5da744=_0x1e8068[0x5]-_0x213c04):(_0x59c2f8=_0x1e8068[0x4]+_0x213c04*Math['sin'](_0x247fdb),_0x5da744=_0x1e8068[0x5]-_0x213c04*Math[_0x74ac91(0x93e)](_0x247fdb));const _0xcbf15e=_0x74ac91(0x7bd),_0xdb09b7=_0x14b2d6[_0x74ac91(0x498)];_0x5b214d[_0x74ac91(0x909)]===_0x5b214d[_0x74ac91(0x3a9)]?(_0xdb09b7[_0x74ac91(0x4fd)]=(0x64*_0x59c2f8/_0x5b214d['_pageWidth'])[_0x74ac91(0x803)](0x2)+'%',_0xdb09b7['top']=(0x64*_0x5da744/_0x5b214d[_0x74ac91(0x39c)])[_0x74ac91(0x803)](0x2)+'%'):(_0xdb09b7[_0x74ac91(0x4fd)]=''+_0xcbf15e+_0x59c2f8[_0x74ac91(0x803)](0x2)+_0x74ac91(0x426),_0xdb09b7[_0x74ac91(0x12f)]=''+_0xcbf15e+_0x5da744[_0x74ac91(0x803)](0x2)+'px)');_0xdb09b7[_0x74ac91(0x443)]=''+_0xcbf15e+_0x49e011[_0x74ac91(0x803)](0x2)+_0x74ac91(0x426),_0xdb09b7[_0x74ac91(0x3a3)]=_0x12d8cf['fontFamily'],_0x4e0d54[_0x74ac91(0x443)]=_0x49e011,_0x14b2d6['setAttribute'](_0x74ac91(0x9e4),'presentation'),_0x14b2d6[_0x74ac91(0x8a9)]=_0x50cafa[_0x74ac91(0xcf)],_0x14b2d6['dir']=_0x50cafa[_0x74ac91(0x311)];_0x5b214d['_fontInspectorEnabled']&&(_0x14b2d6[_0x74ac91(0x811)][_0x74ac91(0x247)]=_0x50cafa[_0x74ac91(0x247)]);_0x247fdb!==0x0&&(_0x4e0d54['angle']=_0x247fdb*(0xb4/Math['PI']));let _0x53df68=![];if(_0x50cafa[_0x74ac91(0xcf)][_0x74ac91(0x557)]>0x1)_0x53df68=!![];else{if(_0x50cafa['str']!=='\x20'&&_0x50cafa[_0x74ac91(0x5dd)][0x0]!==_0x50cafa['transform'][0x3]){const _0x4147cf=Math[_0x74ac91(0x346)](_0x50cafa[_0x74ac91(0x5dd)][0x0]),_0x288641=Math['abs'](_0x50cafa[_0x74ac91(0x5dd)][0x3]);_0x4147cf!==_0x288641&&Math[_0x74ac91(0x78d)](_0x4147cf,_0x288641)/Math['min'](_0x4147cf,_0x288641)>1.5&&(_0x53df68=!![]);}}_0x53df68&&(_0x4e0d54['canvasWidth']=_0x12d8cf[_0x74ac91(0x58b)]?_0x50cafa[_0x74ac91(0x999)]:_0x50cafa[_0x74ac91(0x98b)]),_0x5b214d[_0x74ac91(0x5a8)][_0x74ac91(0x98e)](_0x14b2d6,_0x4e0d54),_0x5b214d[_0x74ac91(0x4ff)]&&_0x5b214d[_0x74ac91(0x8e6)](_0x14b2d6);}function _0x429e4a(_0x45ff41){const _0x342917=_0x222f48,{div:_0x3b4f63,scale:_0x1866ae,properties:_0x383b63,ctx:_0x1a8d41,prevFontSize:_0x263840,prevFontFamily:_0x2e3547}=_0x45ff41,{style:_0x64b0b}=_0x3b4f63;let _0x3c2b66='';if(_0x383b63[_0x342917(0x18f)]!==0x0&&_0x383b63[_0x342917(0x504)]){const {fontFamily:_0x244f9c}=_0x64b0b,{canvasWidth:_0x551a8f,fontSize:_0x3e4e8e}=_0x383b63;(_0x263840!==_0x3e4e8e||_0x2e3547!==_0x244f9c)&&(_0x1a8d41[_0x342917(0x59d)]=_0x3e4e8e*_0x1866ae+_0x342917(0x993)+_0x244f9c,_0x45ff41['prevFontSize']=_0x3e4e8e,_0x45ff41[_0x342917(0x3fe)]=_0x244f9c);const {width:_0x2cd6d5}=_0x1a8d41[_0x342917(0x106)](_0x3b4f63[_0x342917(0x8a9)]);_0x2cd6d5>0x0&&(_0x3c2b66='scaleX('+_0x551a8f*_0x1866ae/_0x2cd6d5+')');}_0x383b63['angle']!==0x0&&(_0x3c2b66='rotate('+_0x383b63[_0x342917(0x3a0)]+_0x342917(0x428)+_0x3c2b66),_0x3c2b66[_0x342917(0x557)]>0x0&&(_0x64b0b['transform']=_0x3c2b66);}function _0x238899(_0x25a942){const _0x283017=_0x222f48;if(_0x25a942[_0x283017(0x202)])return;const _0x28f512=_0x25a942['_textDivs'],_0xd01dc7=_0x25a942['_capability'],_0x280484=_0x28f512[_0x283017(0x557)];if(_0x280484>_0x476c4d){_0xd01dc7['resolve']();return;}if(!_0x25a942[_0x283017(0x4ff)])for(const _0x838c1a of _0x28f512){_0x25a942[_0x283017(0x8e6)](_0x838c1a);}_0xd01dc7[_0x283017(0x442)]();}class _0x3d6b0e{constructor(_0x1e848e){const _0x536107=_0x222f48;let {textContentSource:_0x3eba44,container:_0x2b9b8f,viewport:_0x1e700a,textDivs:_0x3c0b61,textDivProperties:_0xe5d4f4,textContentItemsStr:_0x9413ff,isOffscreenCanvasSupported:_0x589988}=_0x1e848e;this[_0x536107(0x150)]=_0x3eba44,this['_isReadableStream']=_0x3eba44 instanceof ReadableStream,this[_0x536107(0x909)]=this['_rootContainer']=_0x2b9b8f,this[_0x536107(0xd4)]=_0x3c0b61||[],this[_0x536107(0x818)]=_0x9413ff||[],this[_0x536107(0x17a)]=_0x589988,this[_0x536107(0x97e)]=!!globalThis[_0x536107(0x678)]?.[_0x536107(0x829)],this[_0x536107(0x300)]=null,this['_textDivProperties']=_0xe5d4f4||new WeakMap(),this[_0x536107(0x202)]=![],this[_0x536107(0x869)]=new _0xb42e1e[(_0x536107(0x7e3))](),this[_0x536107(0x927)]={'prevFontSize':null,'prevFontFamily':null,'div':null,'scale':_0x1e700a[_0x536107(0xc8)]*(globalThis[_0x536107(0x31d)]||0x1),'properties':null,'ctx':_0x405775(0x0,_0x589988)};const {pageWidth:_0x54eb32,pageHeight:_0xf0b64f,pageX:_0x3d0672,pageY:_0x54b817}=_0x1e700a[_0x536107(0x621)];this['_transform']=[0x1,0x0,0x0,-0x1,-_0x3d0672,_0x54b817+_0xf0b64f],this[_0x536107(0x928)]=_0x54eb32,this['_pageHeight']=_0xf0b64f,(0x0,_0x298bfa['setLayerDimensions'])(_0x2b9b8f,_0x1e700a),this[_0x536107(0x869)][_0x536107(0x4dd)][_0x536107(0x7e0)](()=>{const _0xe6a12=_0x536107;this[_0xe6a12(0x927)]=null;})[_0x536107(0x75f)](()=>{});}get[_0x222f48(0x4dd)](){return this['_capability']['promise'];}[_0x222f48(0x8c6)](){const _0x372bcc=_0x222f48;this[_0x372bcc(0x202)]=!![],this['_reader']&&(this[_0x372bcc(0x300)][_0x372bcc(0x8c6)](new _0xb42e1e[(_0x372bcc(0x980))]('TextLayer\x20task\x20cancelled.'))['catch'](()=>{}),this[_0x372bcc(0x300)]=null),this['_capability']['reject'](new _0xb42e1e[(_0x372bcc(0x980))](_0x372bcc(0x404)));}['_processItems'](_0x323246,_0xd3df2){const _0x529bce=_0x222f48;for(const _0x47a1d0 of _0x323246){if(_0x47a1d0[_0x529bce(0xcf)]===undefined){if(_0x47a1d0[_0x529bce(0x9fd)]==='beginMarkedContentProps'||_0x47a1d0[_0x529bce(0x9fd)]==='beginMarkedContent'){const _0x17ebb7=this[_0x529bce(0x909)];this[_0x529bce(0x909)]=document['createElement'](_0x529bce(0x901)),this[_0x529bce(0x909)][_0x529bce(0x2bc)][_0x529bce(0x156)](_0x529bce(0x57a)),_0x47a1d0['id']!==null&&this[_0x529bce(0x909)][_0x529bce(0x636)]('id',''+_0x47a1d0['id']),_0x17ebb7[_0x529bce(0x45e)](this[_0x529bce(0x909)]);}else _0x47a1d0[_0x529bce(0x9fd)]===_0x529bce(0x8a4)&&(this[_0x529bce(0x909)]=this[_0x529bce(0x909)][_0x529bce(0x3dc)]);continue;}this[_0x529bce(0x818)][_0x529bce(0x7d6)](_0x47a1d0['str']),_0x2a05b3(this,_0x47a1d0,_0xd3df2);}}[_0x222f48(0x8e6)](_0x10074d){const _0x38bfbc=_0x222f48,_0x940033=this[_0x38bfbc(0x927)]['properties']=this[_0x38bfbc(0x5a8)][_0x38bfbc(0x8c4)](_0x10074d);this[_0x38bfbc(0x927)][_0x38bfbc(0x903)]=_0x10074d,_0x429e4a(this[_0x38bfbc(0x927)]);_0x940033[_0x38bfbc(0x504)]&&this['_container'][_0x38bfbc(0x45e)](_0x10074d);if(_0x940033[_0x38bfbc(0x837)]){const _0x46e2da=document['createElement']('br');_0x46e2da[_0x38bfbc(0x636)](_0x38bfbc(0x9e4),_0x38bfbc(0x98c)),this[_0x38bfbc(0x909)][_0x38bfbc(0x45e)](_0x46e2da);}}[_0x222f48(0x47c)](){const _0x37f66f=_0x222f48,_0x16c628=new _0xb42e1e[(_0x37f66f(0x7e3))]();let _0x5d9a68=Object[_0x37f66f(0x77c)](null);if(this['_isReadableStream']){const _0x2f3404=()=>{const _0x2bbf46=_0x37f66f;this[_0x2bbf46(0x300)]['read']()[_0x2bbf46(0x22d)](_0x178c72=>{const _0x253847=_0x2bbf46;let {value:_0xf78bf7,done:_0x1cc46f}=_0x178c72;if(_0x1cc46f){_0x16c628['resolve']();return;}Object[_0x253847(0x9c0)](_0x5d9a68,_0xf78bf7['styles']),this[_0x253847(0x4a5)](_0xf78bf7['items'],_0x5d9a68),_0x2f3404();},_0x16c628[_0x2bbf46(0x282)]);};this['_reader']=this[_0x37f66f(0x150)][_0x37f66f(0x3dd)](),_0x2f3404();}else{if(this[_0x37f66f(0x150)]){const {items:_0x2172b6,styles:_0x2704ec}=this[_0x37f66f(0x150)];this['_processItems'](_0x2172b6,_0x2704ec),_0x16c628[_0x37f66f(0x442)]();}else throw new Error('No\x20\x22textContentSource\x22\x20parameter\x20specified.');}_0x16c628[_0x37f66f(0x4dd)][_0x37f66f(0x22d)](()=>{_0x5d9a68=null,_0x238899(this);},this['_capability'][_0x37f66f(0x282)]);}}_0x5f7bb6[_0x222f48(0x6e5)]=_0x3d6b0e;function _0x47a32d(_0x1a3af1){const _0x2af8cf=_0x222f48;!_0x1a3af1[_0x2af8cf(0x8d7)]&&(_0x1a3af1[_0x2af8cf(0x8a9)]||_0x1a3af1['textContentStream'])&&((0x0,_0x298bfa[_0x2af8cf(0x30f)])(_0x2af8cf(0x2cb)+_0x2af8cf(0x870)),_0x1a3af1[_0x2af8cf(0x8d7)]=_0x1a3af1['textContent']||_0x1a3af1[_0x2af8cf(0x17c)]);const {container:_0x268c08,viewport:_0xd25fa6}=_0x1a3af1,_0x57937a=getComputedStyle(_0x268c08),_0x37bcc0=_0x57937a[_0x2af8cf(0x1bb)]('visibility'),_0x29322b=parseFloat(_0x57937a[_0x2af8cf(0x1bb)](_0x2af8cf(0x26e)));_0x37bcc0==='visible'&&(!_0x29322b||Math[_0x2af8cf(0x346)](_0x29322b-_0xd25fa6[_0x2af8cf(0xc8)])>0.00001)&&console[_0x2af8cf(0x9e3)](_0x2af8cf(0x1c7)+'to\x20the\x20same\x20value\x20as\x20`viewport.scale`,\x20'+'either\x20on\x20the\x20`container`-element\x20itself\x20or\x20higher\x20up\x20in\x20the\x20DOM.');const _0x4b15af=new _0x3d6b0e(_0x1a3af1);return _0x4b15af[_0x2af8cf(0x47c)](),_0x4b15af;}function _0x91b621(_0x2269b8){const _0x446ec3=_0x222f48;let {container:_0x8cf6e8,viewport:_0x3596b2,textDivs:_0x93a2b0,textDivProperties:_0x303e53,isOffscreenCanvasSupported:_0x34cc8c,mustRotate:mustRotate=!![],mustRescale:mustRescale=!![]}=_0x2269b8;mustRotate&&(0x0,_0x298bfa[_0x446ec3(0x95e)])(_0x8cf6e8,{'rotation':_0x3596b2[_0x446ec3(0x7af)]});if(mustRescale){const _0x3cfc96=_0x405775(0x0,_0x34cc8c),_0x2f083c=_0x3596b2[_0x446ec3(0xc8)]*(globalThis[_0x446ec3(0x31d)]||0x1),_0x21a5f8={'prevFontSize':null,'prevFontFamily':null,'div':null,'scale':_0x2f083c,'properties':null,'ctx':_0x3cfc96};for(const _0x17249d of _0x93a2b0){_0x21a5f8['properties']=_0x303e53[_0x446ec3(0x8c4)](_0x17249d),_0x21a5f8[_0x446ec3(0x903)]=_0x17249d,_0x429e4a(_0x21a5f8);}}}},(_0x14d8c5,_0x2373f6,_0xb4085f)=>{'use strict';const _0x1696c3=a0_0x160d;Object[_0x1696c3(0x430)](_0x2373f6,_0x1696c3(0x19a),{'value':!![]}),_0x2373f6[_0x1696c3(0x3a7)]=void 0x0;var _0x1c7afa=_0xb4085f(0x1),_0x194244=_0xb4085f(0x85),_0x4419f6=_0xb4085f(0x86),_0xb2d745=_0xb4085f(0x9c),_0x3c6c3d=_0xb4085f(0xa1),_0x44c54a=_0xb4085f(0x87),_0x13c59a=_0xb4085f(0xa2);class _0x3dc78e{#accessibilityManager;#allowClick=![];#annotationLayer=null;#boundPointerup=this[_0x1696c3(0x3f7)][_0x1696c3(0x5e8)](this);#boundPointerdown=this[_0x1696c3(0x546)]['bind'](this);#editors=new Map();#hadPointerDown=![];#isCleaningUp=![];#isDisabling=![];#uiManager;static [_0x1696c3(0x271)]=![];constructor(_0x5b1b88){const _0x256f9a=_0x1696c3;let {uiManager:_0x41ec5c,pageIndex:_0x555656,div:_0x5996ae,accessibilityManager:_0x1de9d8,annotationLayer:_0x346572,viewport:_0x473705,l10n:_0x2f96f6}=_0x5b1b88;const _0x20a80a=[_0xb2d745['FreeTextEditor'],_0x3c6c3d['InkEditor'],_0x13c59a[_0x256f9a(0x254)]];if(!_0x3dc78e[_0x256f9a(0x271)]){_0x3dc78e['_initialized']=!![];for(const _0x133f86 of _0x20a80a){_0x133f86[_0x256f9a(0x86f)](_0x2f96f6);}}_0x41ec5c['registerEditorTypes'](_0x20a80a),this.#uiManager=_0x41ec5c,this[_0x256f9a(0x700)]=_0x555656,this[_0x256f9a(0x903)]=_0x5996ae,this.#accessibilityManager=_0x1de9d8,this.#annotationLayer=_0x346572,this['viewport']=_0x473705,this.#uiManager[_0x256f9a(0x5d3)](this);}get['isEmpty'](){const _0x1a74be=_0x1696c3;return this.#editors[_0x1a74be(0x87a)]===0x0;}['updateToolbar'](_0x18667e){const _0x404bdf=_0x1696c3;this.#uiManager[_0x404bdf(0x3fb)](_0x18667e);}['updateMode'](){const _0x580cca=_0x1696c3;let _0x52de43=arguments[_0x580cca(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:this.#uiManager[_0x580cca(0x59a)]();this.#cleanup(),_0x52de43===_0x1c7afa['AnnotationEditorType'][_0x580cca(0x8ac)]?(this['addInkEditorIfNeeded'](![]),this[_0x580cca(0x4d9)]()):this['enableClick'](),this.#uiManager['unselectAll'](),_0x52de43!==_0x1c7afa[_0x580cca(0x9a6)][_0x580cca(0x9f7)]&&(this['div']['classList']['toggle'](_0x580cca(0x473),_0x52de43===_0x1c7afa[_0x580cca(0x9a6)][_0x580cca(0x148)]),this['div'][_0x580cca(0x2bc)][_0x580cca(0x47a)](_0x580cca(0xd8),_0x52de43===_0x1c7afa['AnnotationEditorType'][_0x580cca(0x8ac)]),this[_0x580cca(0x903)][_0x580cca(0x2bc)][_0x580cca(0x47a)](_0x580cca(0x9ee),_0x52de43===_0x1c7afa[_0x580cca(0x9a6)][_0x580cca(0x8e8)]),this['div']['hidden']=![]);}[_0x1696c3(0x6f8)](_0x468390){const _0x438f50=_0x1696c3;if(!_0x468390&&this.#uiManager[_0x438f50(0x59a)]()!==_0x1c7afa[_0x438f50(0x9a6)][_0x438f50(0x8ac)])return;if(!_0x468390)for(const _0x29ef20 of this.#editors[_0x438f50(0x823)]()){if(_0x29ef20[_0x438f50(0x480)]()){_0x29ef20[_0x438f50(0x34b)]();return;}}const _0x5f4e38=this.#createAndAddNewEditor({'offsetX':0x0,'offsetY':0x0});_0x5f4e38[_0x438f50(0x34b)]();}[_0x1696c3(0x709)](_0x531b17){const _0x1e738c=_0x1696c3;this.#uiManager[_0x1e738c(0x709)](_0x531b17);}[_0x1696c3(0x72e)](_0x94ee67){const _0x32688c=_0x1696c3;this.#uiManager[_0x32688c(0x72e)](_0x94ee67);}[_0x1696c3(0x781)](){const _0x40ad3e=_0x1696c3;this[_0x40ad3e(0x903)][_0x40ad3e(0x498)][_0x40ad3e(0x511)]=_0x40ad3e(0x464);const _0x496c78=new Set();for(const _0x38e51a of this.#editors[_0x40ad3e(0x823)]()){_0x38e51a[_0x40ad3e(0x214)](),_0x38e51a[_0x40ad3e(0x66b)]&&_0x496c78[_0x40ad3e(0x156)](_0x38e51a['annotationElementId']);}if(!this.#annotationLayer)return;const _0x4099e5=this.#annotationLayer[_0x40ad3e(0x758)]();for(const _0x4b8b49 of _0x4099e5){_0x4b8b49['hide']();if(this.#uiManager['isDeletedAnnotationElement'](_0x4b8b49[_0x40ad3e(0x41b)]['id']))continue;if(_0x496c78['has'](_0x4b8b49[_0x40ad3e(0x41b)]['id']))continue;const _0x10289f=this[_0x40ad3e(0x7a3)](_0x4b8b49);if(!_0x10289f)continue;this['addOrRebuild'](_0x10289f),_0x10289f[_0x40ad3e(0x214)]();}}[_0x1696c3(0x5b6)](){const _0x1076ff=_0x1696c3;this.#isDisabling=!![],this[_0x1076ff(0x903)][_0x1076ff(0x498)][_0x1076ff(0x511)]='none';const _0x2095d0=new Set();for(const _0x5c794e of this.#editors[_0x1076ff(0x823)]()){_0x5c794e[_0x1076ff(0x8d0)]();if(!_0x5c794e['annotationElementId']||_0x5c794e[_0x1076ff(0x65d)]()!==null){_0x2095d0['add'](_0x5c794e[_0x1076ff(0x66b)]);continue;}this[_0x1076ff(0x6bc)](_0x5c794e[_0x1076ff(0x66b)])?.['show'](),_0x5c794e[_0x1076ff(0x10a)]();}if(this.#annotationLayer){const _0x2f443c=this.#annotationLayer[_0x1076ff(0x758)]();for(const _0x6f1281 of _0x2f443c){const {id:_0x11ca2e}=_0x6f1281[_0x1076ff(0x41b)];if(_0x2095d0['has'](_0x11ca2e)||this.#uiManager[_0x1076ff(0x7cd)](_0x11ca2e))continue;_0x6f1281[_0x1076ff(0x2a0)]();}}this.#cleanup(),this[_0x1076ff(0x480)]&&(this[_0x1076ff(0x903)][_0x1076ff(0x495)]=!![]),this.#isDisabling=![];}[_0x1696c3(0x6bc)](_0x2e55b3){const _0xf72ff2=_0x1696c3;return this.#annotationLayer?.[_0xf72ff2(0x6bc)](_0x2e55b3)||null;}[_0x1696c3(0x275)](_0x1d9f27){const _0x1f8135=_0x1696c3,_0x1d1e62=this.#uiManager['getActive']();if(_0x1d1e62===_0x1d9f27)return;this.#uiManager[_0x1f8135(0x275)](_0x1d9f27);}[_0x1696c3(0x24f)](){const _0x586c5f=_0x1696c3;this['div'][_0x586c5f(0x5cc)](_0x586c5f(0x546),this.#boundPointerdown),this[_0x586c5f(0x903)][_0x586c5f(0x5cc)]('pointerup',this.#boundPointerup);}[_0x1696c3(0x4d9)](){const _0x2a20b5=_0x1696c3;this['div'][_0x2a20b5(0x1c0)]('pointerdown',this.#boundPointerdown),this[_0x2a20b5(0x903)][_0x2a20b5(0x1c0)](_0x2a20b5(0x3f7),this.#boundPointerup);}[_0x1696c3(0x1d0)](_0x1ab719){const _0x2f71be=_0x1696c3;this.#editors[_0x2f71be(0x98e)](_0x1ab719['id'],_0x1ab719);const {annotationElementId:_0x132e7f}=_0x1ab719;_0x132e7f&&this.#uiManager[_0x2f71be(0x7cd)](_0x132e7f)&&this.#uiManager[_0x2f71be(0x5b5)](_0x1ab719);}['detach'](_0x247840){const _0x143e19=_0x1696c3;this.#editors['delete'](_0x247840['id']),this.#accessibilityManager?.[_0x143e19(0x795)](_0x247840['contentDiv']),!this.#isDisabling&&_0x247840['annotationElementId']&&this.#uiManager[_0x143e19(0x91a)](_0x247840);}['remove'](_0x37a60e){const _0x26e16b=_0x1696c3;this[_0x26e16b(0x644)](_0x37a60e),this.#uiManager[_0x26e16b(0x96c)](_0x37a60e),_0x37a60e[_0x26e16b(0x903)][_0x26e16b(0x498)][_0x26e16b(0x619)]=_0x26e16b(0x122),setTimeout(()=>{const _0x520548=_0x26e16b;_0x37a60e[_0x520548(0x903)][_0x520548(0x498)][_0x520548(0x619)]='',_0x37a60e[_0x520548(0x903)][_0x520548(0x10a)](),_0x37a60e[_0x520548(0x9a7)]=![],document[_0x520548(0x366)]===document[_0x520548(0x4e7)]&&this.#uiManager['focusMainContainer']();},0x0),!this.#isCleaningUp&&this['addInkEditorIfNeeded'](![]);}#changeParent(_0x2e124a){const _0x4bed78=_0x1696c3;if(_0x2e124a[_0x4bed78(0x4c3)]===this)return;_0x2e124a['annotationElementId']&&(this.#uiManager[_0x4bed78(0x91a)](_0x2e124a['annotationElementId']),_0x194244[_0x4bed78(0x8f0)][_0x4bed78(0x578)](_0x2e124a),_0x2e124a[_0x4bed78(0x66b)]=null),this[_0x4bed78(0x1d0)](_0x2e124a),_0x2e124a[_0x4bed78(0x4c3)]?.['detach'](_0x2e124a),_0x2e124a[_0x4bed78(0x3fd)](this),_0x2e124a[_0x4bed78(0x903)]&&_0x2e124a['isAttachedToDOM']&&(_0x2e124a[_0x4bed78(0x903)][_0x4bed78(0x10a)](),this[_0x4bed78(0x903)]['append'](_0x2e124a['div']));}[_0x1696c3(0x156)](_0x2b381a){const _0x24a529=_0x1696c3;this.#changeParent(_0x2b381a),this.#uiManager['addEditor'](_0x2b381a),this[_0x24a529(0x1d0)](_0x2b381a);if(!_0x2b381a[_0x24a529(0x9a7)]){const _0x812a14=_0x2b381a[_0x24a529(0x6c8)]();this[_0x24a529(0x903)]['append'](_0x812a14),_0x2b381a[_0x24a529(0x9a7)]=!![];}this['moveEditorInDOM'](_0x2b381a),_0x2b381a[_0x24a529(0x130)](),this.#uiManager[_0x24a529(0x7e5)](_0x2b381a);}[_0x1696c3(0x27b)](_0x1edc38){const _0x528c78=_0x1696c3;this.#accessibilityManager?.[_0x528c78(0x962)](this['div'],_0x1edc38[_0x528c78(0x903)],_0x1edc38[_0x528c78(0x1fe)],!![]);}[_0x1696c3(0x510)](_0x540a7e){const _0xd6d5ff=_0x1696c3;_0x540a7e[_0xd6d5ff(0x186)]()?_0x540a7e[_0xd6d5ff(0x9d3)]():this[_0xd6d5ff(0x156)](_0x540a7e);}[_0x1696c3(0x2bd)](_0x586935){const _0x9dc4f9=_0x1696c3,_0x32e9fe=()=>{const _0x525119=a0_0x160d;this[_0x525119(0x510)](_0x586935);},_0x57e0c8=()=>{const _0xa57abd=a0_0x160d;_0x586935[_0xa57abd(0x10a)]();};this[_0x9dc4f9(0x72e)]({'cmd':_0x32e9fe,'undo':_0x57e0c8,'mustExec':![]});}[_0x1696c3(0x260)](){const _0x5c10dc=_0x1696c3;return this.#uiManager[_0x5c10dc(0x520)]();}#createNewEditor(_0x55bb58){const _0x341102=_0x1696c3;switch(this.#uiManager[_0x341102(0x59a)]()){case _0x1c7afa[_0x341102(0x9a6)][_0x341102(0x148)]:return new _0xb2d745[(_0x341102(0x34c))](_0x55bb58);case _0x1c7afa['AnnotationEditorType'][_0x341102(0x8ac)]:return new _0x3c6c3d['InkEditor'](_0x55bb58);case _0x1c7afa[_0x341102(0x9a6)]['STAMP']:return new _0x13c59a[(_0x341102(0x254))](_0x55bb58);}return null;}[_0x1696c3(0x7a3)](_0x17a942){const _0x1337ba=_0x1696c3;switch(_0x17a942[_0x1337ba(0x417)]??_0x17a942[_0x1337ba(0x4e2)]){case _0x1c7afa[_0x1337ba(0x9a6)]['FREETEXT']:return _0xb2d745[_0x1337ba(0x34c)][_0x1337ba(0x7a3)](_0x17a942,this,this.#uiManager);case _0x1c7afa[_0x1337ba(0x9a6)]['INK']:return _0x3c6c3d['InkEditor']['deserialize'](_0x17a942,this,this.#uiManager);case _0x1c7afa['AnnotationEditorType'][_0x1337ba(0x8e8)]:return _0x13c59a[_0x1337ba(0x254)][_0x1337ba(0x7a3)](_0x17a942,this,this.#uiManager);}return null;}#createAndAddNewEditor(_0x1b5dcc){const _0x141fcd=_0x1696c3,_0x5d67a0=this[_0x141fcd(0x260)](),_0x222716=this.#createNewEditor({'parent':this,'id':_0x5d67a0,'x':_0x1b5dcc[_0x141fcd(0xdf)],'y':_0x1b5dcc[_0x141fcd(0x431)],'uiManager':this.#uiManager});return _0x222716&&this['add'](_0x222716),_0x222716;}[_0x1696c3(0x18e)](_0x4e1ab4){this.#uiManager['setSelected'](_0x4e1ab4);}[_0x1696c3(0x3f3)](_0x128c5b){const _0x571964=_0x1696c3;this.#uiManager[_0x571964(0x3f3)](_0x128c5b);}['isSelected'](_0x35d83b){const _0x59a2b0=_0x1696c3;return this.#uiManager[_0x59a2b0(0x4fe)](_0x35d83b);}[_0x1696c3(0x261)](_0x50768b){const _0x1e10da=_0x1696c3;this.#uiManager[_0x1e10da(0x261)](_0x50768b);}[_0x1696c3(0x3f7)](_0x5aa733){const _0x5a07f4=_0x1696c3,{isMac:_0x57a5b6}=_0x1c7afa['FeatureTest'][_0x5a07f4(0x5e2)];if(_0x5aa733['button']!==0x0||_0x5aa733[_0x5a07f4(0x8ca)]&&_0x57a5b6)return;if(_0x5aa733[_0x5a07f4(0x1c8)]!==this[_0x5a07f4(0x903)])return;if(!this.#hadPointerDown)return;this.#hadPointerDown=![];if(!this.#allowClick){this.#allowClick=!![];return;}this.#createAndAddNewEditor(_0x5aa733);}['pointerdown'](_0x370e8d){const _0x4fbf6a=_0x1696c3,{isMac:_0x9c72b6}=_0x1c7afa[_0x4fbf6a(0x7a8)][_0x4fbf6a(0x5e2)];if(_0x370e8d['button']!==0x0||_0x370e8d[_0x4fbf6a(0x8ca)]&&_0x9c72b6)return;if(_0x370e8d[_0x4fbf6a(0x1c8)]!==this[_0x4fbf6a(0x903)])return;this.#hadPointerDown=!![];const _0x3ff039=this.#uiManager[_0x4fbf6a(0x96e)]();this.#allowClick=!_0x3ff039||_0x3ff039['isEmpty']();}[_0x1696c3(0x91c)](_0x2a06c2){const _0x534c0b=_0x1696c3,_0x3eddf0=_0x2a06c2[_0x534c0b(0x481)][_0x534c0b(0x593)](_0x534c0b(0x813)),_0x509558=this.#uiManager[_0x534c0b(0x6b0)](_0x3eddf0);if(!_0x509558)return;_0x2a06c2['preventDefault'](),_0x2a06c2[_0x534c0b(0x481)][_0x534c0b(0x230)]='move',this.#changeParent(_0x509558);const _0x50a21a=this[_0x534c0b(0x903)]['getBoundingClientRect'](),_0x5888e4=_0x2a06c2['clientX']-_0x50a21a['x'],_0x52be1c=_0x2a06c2[_0x534c0b(0x8c9)]-_0x50a21a['y'];_0x509558[_0x534c0b(0x18d)](_0x5888e4-_0x509558[_0x534c0b(0x7f3)],_0x52be1c-_0x509558[_0x534c0b(0x469)]),this['moveEditorInDOM'](_0x509558),_0x509558['div'][_0x534c0b(0x47d)]();}[_0x1696c3(0x20e)](_0x4256ea){_0x4256ea['preventDefault']();}[_0x1696c3(0x256)](){const _0x4cc4a8=_0x1696c3;this.#uiManager[_0x4cc4a8(0x96e)]()?.[_0x4cc4a8(0x4c3)]===this&&this.#uiManager[_0x4cc4a8(0x275)](null);for(const _0x169ab9 of this.#editors['values']()){this.#accessibilityManager?.[_0x4cc4a8(0x795)](_0x169ab9['contentDiv']),_0x169ab9['setParent'](null),_0x169ab9[_0x4cc4a8(0x9a7)]=![],_0x169ab9['div'][_0x4cc4a8(0x10a)]();}this[_0x4cc4a8(0x903)]=null,this.#editors['clear'](),this.#uiManager[_0x4cc4a8(0x4ca)](this);}#cleanup(){const _0x2500ac=_0x1696c3;this.#isCleaningUp=!![];for(const _0x58bd47 of this.#editors[_0x2500ac(0x823)]()){_0x58bd47[_0x2500ac(0x480)]()&&_0x58bd47['remove']();}this.#isCleaningUp=![];}[_0x1696c3(0x6c8)](_0x111184){const _0x54268f=_0x1696c3;let {viewport:_0x1c302d}=_0x111184;this['viewport']=_0x1c302d,(0x0,_0x44c54a['setLayerDimensions'])(this['div'],_0x1c302d),(0x0,_0x4419f6[_0x54268f(0x6c1)])(this,this[_0x54268f(0x903)],[_0x54268f(0x20e),'drop']);for(const _0x1ca069 of this.#uiManager[_0x54268f(0x9f1)](this[_0x54268f(0x700)])){this[_0x54268f(0x156)](_0x1ca069);}this[_0x54268f(0x929)]();}[_0x1696c3(0x1b4)](_0xb66f06){const _0x2e48ea=_0x1696c3;let {viewport:_0x2a16cf}=_0xb66f06;this.#uiManager['commitOrRemove'](),this[_0x2e48ea(0x502)]=_0x2a16cf,(0x0,_0x44c54a[_0x2e48ea(0x95e)])(this[_0x2e48ea(0x903)],{'rotation':_0x2a16cf[_0x2e48ea(0x7af)]}),this[_0x2e48ea(0x929)]();}get['pageDimensions'](){const _0xc994e6=_0x1696c3,{pageWidth:_0x2dfab2,pageHeight:_0x206856}=this['viewport'][_0xc994e6(0x621)];return[_0x2dfab2,_0x206856];}}_0x2373f6[_0x1696c3(0x3a7)]=_0x3dc78e;},(_0x4b89e4,_0x242f87,_0x284876)=>{'use strict';const _0x36bfb8=a0_0x160d;Object[_0x36bfb8(0x430)](_0x242f87,_0x36bfb8(0x19a),{'value':!![]}),_0x242f87[_0x36bfb8(0x34c)]=void 0x0;var _0x1150c4=_0x284876(0x1),_0x27b28c=_0x284876(0x86),_0xe25bfc=_0x284876(0x85),_0x4fbfd5=_0x284876(0x9d);class _0x16ccf7 extends _0xe25bfc['AnnotationEditor']{#boundEditorDivBlur=this[_0x36bfb8(0x386)]['bind'](this);#boundEditorDivFocus=this[_0x36bfb8(0x9b1)]['bind'](this);#boundEditorDivInput=this[_0x36bfb8(0x3b1)][_0x36bfb8(0x5e8)](this);#boundEditorDivKeydown=this[_0x36bfb8(0x958)]['bind'](this);#color;#content='';#editorDivId=this['id']+_0x36bfb8(0x73b);#fontSize;#initialData=null;static ['_freeTextDefaultContent']='';static [_0x36bfb8(0x1f7)];static ['_internalPadding']=0x0;static [_0x36bfb8(0x1fb)]=null;static [_0x36bfb8(0x20a)]=0xa;static get['_keyboardManager'](){const _0x11088c=_0x36bfb8;return(0x0,_0x1150c4[_0x11088c(0x51d)])(this,_0x11088c(0x76a),new _0x27b28c[(_0x11088c(0x686))]([[['ctrl+s',_0x11088c(0x8c2),_0x11088c(0x1a0),_0x11088c(0x257)],_0x16ccf7['prototype'][_0x11088c(0x69b)],!![]],[[_0x11088c(0x3df),_0x11088c(0x2e4),'Escape',_0x11088c(0x86e)],_0x16ccf7[_0x11088c(0x821)]['commitOrRemove']]]));}static [_0x36bfb8(0x879)]=_0x36bfb8(0x41a);constructor(_0x330445){const _0x379b4d=_0x36bfb8;super({..._0x330445,'name':_0x379b4d(0x265)}),this.#color=_0x330445[_0x379b4d(0x5fe)]||_0x16ccf7[_0x379b4d(0x1fb)]||_0xe25bfc[_0x379b4d(0x8f0)][_0x379b4d(0x350)],this.#fontSize=_0x330445[_0x379b4d(0x443)]||_0x16ccf7[_0x379b4d(0x20a)];}static[_0x36bfb8(0x86f)](_0xadbfdc){const _0x305557=_0x36bfb8;this['_l10nPromise']=new Map([_0x305557(0x15c),_0x305557(0x67c)][_0x305557(0x7ec)](_0x1166eb=>[_0x1166eb,_0xadbfdc[_0x305557(0x8c4)](_0x1166eb)]));const _0x203e52=getComputedStyle(document[_0x305557(0x176)]);this[_0x305557(0x1e6)]=parseFloat(_0x203e52['getPropertyValue'](_0x305557(0x994)));}static[_0x36bfb8(0x49d)](_0x26b215,_0x1da455){const _0x352fec=_0x36bfb8;switch(_0x26b215){case _0x1150c4[_0x352fec(0x6b8)][_0x352fec(0x908)]:_0x16ccf7['_defaultFontSize']=_0x1da455;break;case _0x1150c4[_0x352fec(0x6b8)][_0x352fec(0x57d)]:_0x16ccf7[_0x352fec(0x1fb)]=_0x1da455;break;}}['updateParams'](_0x35d834,_0x539358){const _0x391a58=_0x36bfb8;switch(_0x35d834){case _0x1150c4[_0x391a58(0x6b8)][_0x391a58(0x908)]:this.#updateFontSize(_0x539358);break;case _0x1150c4['AnnotationEditorParamsType'][_0x391a58(0x57d)]:this.#updateColor(_0x539358);break;}}static get[_0x36bfb8(0x5bb)](){const _0x3fb666=_0x36bfb8;return[[_0x1150c4[_0x3fb666(0x6b8)]['FREETEXT_SIZE'],_0x16ccf7['_defaultFontSize']],[_0x1150c4['AnnotationEditorParamsType']['FREETEXT_COLOR'],_0x16ccf7[_0x3fb666(0x1fb)]||_0xe25bfc[_0x3fb666(0x8f0)][_0x3fb666(0x350)]]];}get[_0x36bfb8(0x2da)](){const _0x193399=_0x36bfb8;return[[_0x1150c4['AnnotationEditorParamsType']['FREETEXT_SIZE'],this.#fontSize],[_0x1150c4[_0x193399(0x6b8)][_0x193399(0x57d)],this.#color]];}#updateFontSize(_0x52ff11){const _0x3f3da1=_0x36bfb8,_0xc32a92=_0x32c287=>{const _0x55ee98=a0_0x160d;this[_0x55ee98(0x878)][_0x55ee98(0x498)]['fontSize']=_0x55ee98(0x8de)+_0x32c287+_0x55ee98(0x108),this[_0x55ee98(0x18d)](0x0,-(_0x32c287-this.#fontSize)*this[_0x55ee98(0x54a)]),this.#fontSize=_0x32c287,this.#setEditorDimensions();},_0x4f35c8=this.#fontSize;this['addCommands']({'cmd':()=>{_0xc32a92(_0x52ff11);},'undo':()=>{_0xc32a92(_0x4f35c8);},'mustExec':!![],'type':_0x1150c4[_0x3f3da1(0x6b8)][_0x3f3da1(0x908)],'overwriteIfSameType':!![],'keepUndo':!![]});}#updateColor(_0x1900cc){const _0x286422=_0x36bfb8,_0x13681c=this.#color;this[_0x286422(0x72e)]({'cmd':()=>{const _0x4cbc66=_0x286422;this.#color=this[_0x4cbc66(0x878)][_0x4cbc66(0x498)][_0x4cbc66(0x5fe)]=_0x1900cc;},'undo':()=>{const _0x5d0c6d=_0x286422;this.#color=this['editorDiv'][_0x5d0c6d(0x498)][_0x5d0c6d(0x5fe)]=_0x13681c;},'mustExec':!![],'type':_0x1150c4[_0x286422(0x6b8)]['FREETEXT_COLOR'],'overwriteIfSameType':!![],'keepUndo':!![]});}[_0x36bfb8(0x76e)](){const _0x56cfb6=_0x36bfb8,_0x3bfb85=this[_0x56cfb6(0x54a)];return[-_0x16ccf7[_0x56cfb6(0x1e6)]*_0x3bfb85,-(_0x16ccf7[_0x56cfb6(0x1e6)]+this.#fontSize)*_0x3bfb85];}[_0x36bfb8(0x9d3)](){const _0x2aef70=_0x36bfb8;super[_0x2aef70(0x9d3)]();if(this['div']===null)return;!this[_0x2aef70(0x9a7)]&&this[_0x2aef70(0x4c3)][_0x2aef70(0x156)](this);}[_0x36bfb8(0x8ce)](){const _0x4aed67=_0x36bfb8;if(this[_0x4aed67(0x761)]())return;this[_0x4aed67(0x4c3)][_0x4aed67(0x709)](![]),this[_0x4aed67(0x4c3)][_0x4aed67(0x3fb)](_0x1150c4[_0x4aed67(0x9a6)][_0x4aed67(0x148)]),super['enableEditMode'](),this[_0x4aed67(0x91b)][_0x4aed67(0x2bc)][_0x4aed67(0x10a)](_0x4aed67(0x829)),this[_0x4aed67(0x878)][_0x4aed67(0x341)]=!![],this[_0x4aed67(0x903)][_0x4aed67(0x7dc)]=![],this[_0x4aed67(0x903)]['removeAttribute'](_0x4aed67(0x416)),this[_0x4aed67(0x878)]['addEventListener'](_0x4aed67(0x14c),this.#boundEditorDivKeydown),this[_0x4aed67(0x878)][_0x4aed67(0x5cc)](_0x4aed67(0x47d),this.#boundEditorDivFocus),this[_0x4aed67(0x878)][_0x4aed67(0x5cc)](_0x4aed67(0x456),this.#boundEditorDivBlur),this[_0x4aed67(0x878)]['addEventListener'](_0x4aed67(0x3e6),this.#boundEditorDivInput);}[_0x36bfb8(0x3ac)](){const _0x564718=_0x36bfb8;if(!this[_0x564718(0x761)]())return;this[_0x564718(0x4c3)][_0x564718(0x709)](!![]),super[_0x564718(0x3ac)](),this[_0x564718(0x91b)][_0x564718(0x2bc)]['add'](_0x564718(0x829)),this[_0x564718(0x878)][_0x564718(0x341)]=![],this[_0x564718(0x903)][_0x564718(0x636)](_0x564718(0x416),this.#editorDivId),this['div']['draggable']=!![],this[_0x564718(0x878)][_0x564718(0x1c0)](_0x564718(0x14c),this.#boundEditorDivKeydown),this['editorDiv'][_0x564718(0x1c0)](_0x564718(0x47d),this.#boundEditorDivFocus),this['editorDiv'][_0x564718(0x1c0)](_0x564718(0x456),this.#boundEditorDivBlur),this['editorDiv'][_0x564718(0x1c0)](_0x564718(0x3e6),this.#boundEditorDivInput),this[_0x564718(0x903)]['focus']({'preventScroll':!![]}),this[_0x564718(0x844)]=![],this[_0x564718(0x4c3)][_0x564718(0x903)][_0x564718(0x2bc)][_0x564718(0x156)](_0x564718(0x473));}[_0x36bfb8(0x887)](_0x1bd66c){const _0x52d1de=_0x36bfb8;super[_0x52d1de(0x887)](_0x1bd66c),_0x1bd66c['target']!==this[_0x52d1de(0x878)]&&this[_0x52d1de(0x878)][_0x52d1de(0x47d)]();}['onceAdded'](){const _0x4ab0c5=_0x36bfb8;if(this[_0x4ab0c5(0x98b)]){this.#cheatInitialRect();return;}this[_0x4ab0c5(0x8ce)](),this[_0x4ab0c5(0x878)][_0x4ab0c5(0x47d)]();}[_0x36bfb8(0x480)](){const _0x1679fb=_0x36bfb8;return!this[_0x1679fb(0x878)]||this[_0x1679fb(0x878)]['innerText'][_0x1679fb(0x900)]()==='';}[_0x36bfb8(0x10a)](){const _0xe6909e=_0x36bfb8;this[_0xe6909e(0x844)]=![],this[_0xe6909e(0x4c3)]&&(this[_0xe6909e(0x4c3)][_0xe6909e(0x709)](!![]),this[_0xe6909e(0x4c3)][_0xe6909e(0x903)]['classList'][_0xe6909e(0x156)](_0xe6909e(0x473))),super['remove']();}#extractText(){const _0x5a07bf=_0x36bfb8,_0x351780=this[_0x5a07bf(0x878)][_0x5a07bf(0x3c5)](_0x5a07bf(0x903));if(_0x351780[_0x5a07bf(0x557)]===0x0)return this[_0x5a07bf(0x878)][_0x5a07bf(0x4ef)];const _0x2bae25=[];for(const _0x4c45ac of _0x351780){_0x2bae25[_0x5a07bf(0x7d6)](_0x4c45ac[_0x5a07bf(0x4ef)]['replace'](/\r\n?|\n/,''));}return _0x2bae25['join']('\x0a');}#setEditorDimensions(){const _0xf70db2=_0x36bfb8,[_0x3912c8,_0x5dbbb3]=this[_0xf70db2(0x956)];let _0x49ccf8;if(this[_0xf70db2(0x9a7)])_0x49ccf8=this['div'][_0xf70db2(0x16d)]();else{const {currentLayer:_0x3b1919,div:_0x29eced}=this,_0x3046c8=_0x29eced[_0xf70db2(0x498)]['display'];_0x29eced[_0xf70db2(0x498)][_0xf70db2(0x619)]=_0xf70db2(0x495),_0x3b1919[_0xf70db2(0x903)][_0xf70db2(0x45e)](this[_0xf70db2(0x903)]),_0x49ccf8=_0x29eced['getBoundingClientRect'](),_0x29eced[_0xf70db2(0x10a)](),_0x29eced[_0xf70db2(0x498)][_0xf70db2(0x619)]=_0x3046c8;}this[_0xf70db2(0x7af)]%0xb4===this[_0xf70db2(0x25e)]%0xb4?(this[_0xf70db2(0x98b)]=_0x49ccf8[_0xf70db2(0x98b)]/_0x3912c8,this[_0xf70db2(0x999)]=_0x49ccf8[_0xf70db2(0x999)]/_0x5dbbb3):(this[_0xf70db2(0x98b)]=_0x49ccf8[_0xf70db2(0x999)]/_0x3912c8,this[_0xf70db2(0x999)]=_0x49ccf8[_0xf70db2(0x98b)]/_0x5dbbb3);}[_0x36bfb8(0x3b3)](){const _0x66a95=_0x36bfb8;if(!this[_0x66a95(0x761)]())return;super[_0x66a95(0x3b3)](),this[_0x66a95(0x3ac)]();const _0x19753e=this.#content,_0x15e97c=this.#content=this.#extractText()[_0x66a95(0x99e)]();if(_0x19753e===_0x15e97c)return;const _0x1e501e=_0x19d225=>{this.#content=_0x19d225;if(!_0x19d225){this['remove']();return;}this.#setContent(),this['rebuild'](),this.#setEditorDimensions();};this['addCommands']({'cmd':()=>{_0x1e501e(_0x15e97c);},'undo':()=>{_0x1e501e(_0x19753e);},'mustExec':![]}),this.#setEditorDimensions();}[_0x36bfb8(0x729)](){const _0x4c5bf3=_0x36bfb8;return this[_0x4c5bf3(0x761)]();}[_0x36bfb8(0xc5)](){const _0x20dcee=_0x36bfb8;this['enableEditMode'](),this[_0x20dcee(0x878)]['focus']();}[_0x36bfb8(0x327)](_0x40d655){const _0x1a888e=_0x36bfb8;this[_0x1a888e(0xc5)]();}[_0x36bfb8(0x14c)](_0x486253){const _0x5d0918=_0x36bfb8;_0x486253[_0x5d0918(0x1c8)]===this[_0x5d0918(0x903)]&&_0x486253[_0x5d0918(0x725)]==='Enter'&&this['enterInEditMode']();}['editorDivKeydown'](_0x28e01a){const _0xacfe01=_0x36bfb8;_0x16ccf7[_0xacfe01(0x76a)][_0xacfe01(0x249)](this,_0x28e01a);}['editorDivFocus'](_0x2fbf46){const _0x1698f8=_0x36bfb8;this[_0x1698f8(0x844)]=!![];}['editorDivBlur'](_0x31f6ab){const _0x38f9e2=_0x36bfb8;this[_0x38f9e2(0x844)]=![];}['editorDivInput'](_0x5221eb){const _0x291e68=_0x36bfb8;this['parent'][_0x291e68(0x903)]['classList']['toggle'](_0x291e68(0x473),this[_0x291e68(0x480)]());}[_0x36bfb8(0x8d0)](){const _0x567525=_0x36bfb8;this['editorDiv'][_0x567525(0x636)](_0x567525(0x9e4),'comment'),this['editorDiv'][_0x567525(0x687)](_0x567525(0x3cb));}[_0x36bfb8(0x214)](){const _0x1c15d7=_0x36bfb8;this[_0x1c15d7(0x878)]['setAttribute'](_0x1c15d7(0x9e4),_0x1c15d7(0x33a)),this['editorDiv'][_0x1c15d7(0x636)](_0x1c15d7(0x3cb),!![]);}[_0x36bfb8(0x6c8)](){const _0x2ffae8=_0x36bfb8;if(this['div'])return this[_0x2ffae8(0x903)];let _0x3a4e9a,_0x33d9aa;this[_0x2ffae8(0x98b)]&&(_0x3a4e9a=this['x'],_0x33d9aa=this['y']);super[_0x2ffae8(0x6c8)](),this[_0x2ffae8(0x878)]=document[_0x2ffae8(0x400)](_0x2ffae8(0x903)),this[_0x2ffae8(0x878)][_0x2ffae8(0x52b)]='internal',this[_0x2ffae8(0x878)][_0x2ffae8(0x636)]('id',this.#editorDivId),this[_0x2ffae8(0x214)](),_0x16ccf7[_0x2ffae8(0x1f7)][_0x2ffae8(0x8c4)](_0x2ffae8(0x67c))['then'](_0xe70b69=>this[_0x2ffae8(0x878)]?.['setAttribute'](_0x2ffae8(0x86b),_0xe70b69)),_0x16ccf7[_0x2ffae8(0x1f7)][_0x2ffae8(0x8c4)](_0x2ffae8(0x15c))['then'](_0x42b28d=>this[_0x2ffae8(0x878)]?.[_0x2ffae8(0x636)]('default-content',_0x42b28d)),this[_0x2ffae8(0x878)][_0x2ffae8(0x341)]=!![];const {style:_0x497e84}=this['editorDiv'];_0x497e84[_0x2ffae8(0x443)]='calc('+this.#fontSize+_0x2ffae8(0x108),_0x497e84[_0x2ffae8(0x5fe)]=this.#color,this[_0x2ffae8(0x903)][_0x2ffae8(0x45e)](this['editorDiv']),this[_0x2ffae8(0x91b)]=document[_0x2ffae8(0x400)](_0x2ffae8(0x903)),this[_0x2ffae8(0x91b)][_0x2ffae8(0x2bc)][_0x2ffae8(0x156)]('overlay',_0x2ffae8(0x829)),this['div']['append'](this['overlayDiv']),(0x0,_0x27b28c['bindEvents'])(this,this[_0x2ffae8(0x903)],[_0x2ffae8(0x327),_0x2ffae8(0x14c)]);if(this[_0x2ffae8(0x98b)]){const [_0x411ad3,_0x4cc41c]=this[_0x2ffae8(0x956)];if(this[_0x2ffae8(0x66b)]){const [_0x2e966f]=this[_0x2ffae8(0x76e)]();this[_0x2ffae8(0x912)](_0x3a4e9a*_0x411ad3,_0x33d9aa*_0x4cc41c,_0x2e966f,_0x2e966f);}else this[_0x2ffae8(0x912)](_0x3a4e9a*_0x411ad3,_0x33d9aa*_0x4cc41c,this[_0x2ffae8(0x98b)]*_0x411ad3,this['height']*_0x4cc41c);this.#setContent(),this[_0x2ffae8(0x903)][_0x2ffae8(0x7dc)]=!![],this['editorDiv']['contentEditable']=![];}else this[_0x2ffae8(0x903)]['draggable']=![],this[_0x2ffae8(0x878)][_0x2ffae8(0x341)]=!![];return this[_0x2ffae8(0x903)];}#setContent(){const _0x2e4e52=_0x36bfb8;this['editorDiv'][_0x2e4e52(0x572)]();if(!this.#content)return;for(const _0x12bff5 of this.#content[_0x2e4e52(0x6db)]('\x0a')){const _0x23feed=document[_0x2e4e52(0x400)]('div');_0x23feed['append'](_0x12bff5?document[_0x2e4e52(0x8fa)](_0x12bff5):document[_0x2e4e52(0x400)]('br')),this[_0x2e4e52(0x878)][_0x2e4e52(0x45e)](_0x23feed);}}get['contentDiv'](){const _0x4150c7=_0x36bfb8;return this[_0x4150c7(0x878)];}static[_0x36bfb8(0x7a3)](_0x58f5ab,_0x2e2307,_0x134d7c){const _0x280c9b=_0x36bfb8;let _0x53c03d=null;if(_0x58f5ab instanceof _0x4fbfd5['FreeTextAnnotationElement']){const {data:{defaultAppearanceData:{fontSize:_0x34992d,fontColor:_0xbb8318},rect:_0x2dd6b3,rotation:_0x1cbd60,id:_0x470a80},textContent:_0x387f91,parent:{page:{pageNumber:_0x41a417}}}=_0x58f5ab;if(!_0x387f91||_0x387f91[_0x280c9b(0x557)]===0x0)return null;_0x53c03d=_0x58f5ab={'annotationType':_0x1150c4['AnnotationEditorType']['FREETEXT'],'color':Array['from'](_0xbb8318),'fontSize':_0x34992d,'value':_0x387f91[_0x280c9b(0x334)]('\x0a'),'pageIndex':_0x41a417-0x1,'rect':_0x2dd6b3,'rotation':_0x1cbd60,'id':_0x470a80,'deleted':![]};}const _0x11d65d=super[_0x280c9b(0x7a3)](_0x58f5ab,_0x2e2307,_0x134d7c);return _0x11d65d.#fontSize=_0x58f5ab[_0x280c9b(0x443)],_0x11d65d.#color=_0x1150c4[_0x280c9b(0x5d7)][_0x280c9b(0x86a)](..._0x58f5ab['color']),_0x11d65d.#content=_0x58f5ab[_0x280c9b(0x2b8)],_0x11d65d[_0x280c9b(0x66b)]=_0x58f5ab['id']||null,_0x11d65d.#initialData=_0x53c03d,_0x11d65d;}[_0x36bfb8(0x65d)](){const _0x1a1e05=_0x36bfb8;let _0x2d3bb2=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:![];if(this[_0x1a1e05(0x480)]())return null;if(this[_0x1a1e05(0x2f0)])return{'pageIndex':this[_0x1a1e05(0x700)],'id':this[_0x1a1e05(0x66b)],'deleted':!![]};const _0x246133=_0x16ccf7[_0x1a1e05(0x1e6)]*this[_0x1a1e05(0x54a)],_0x1c58e7=this[_0x1a1e05(0x93f)](_0x246133,_0x246133),_0x51c9f8=_0xe25bfc[_0x1a1e05(0x8f0)][_0x1a1e05(0x80b)]['convert'](this[_0x1a1e05(0x9a7)]?getComputedStyle(this[_0x1a1e05(0x878)])[_0x1a1e05(0x5fe)]:this.#color),_0x7221c4={'annotationType':_0x1150c4[_0x1a1e05(0x9a6)]['FREETEXT'],'color':_0x51c9f8,'fontSize':this.#fontSize,'value':this.#content,'pageIndex':this[_0x1a1e05(0x700)],'rect':_0x1c58e7,'rotation':this[_0x1a1e05(0x7af)]};if(_0x2d3bb2)return _0x7221c4;if(this[_0x1a1e05(0x66b)]&&!this.#hasElementChanged(_0x7221c4))return null;return _0x7221c4['id']=this[_0x1a1e05(0x66b)],_0x7221c4;}#hasElementChanged(_0x4bd078){const _0x4be150=_0x36bfb8,{value:_0x3d884a,fontSize:_0x51b701,color:_0x501802,rect:_0x2e0408,pageIndex:_0x436ce8}=this.#initialData;return _0x4bd078[_0x4be150(0x2b8)]!==_0x3d884a||_0x4bd078[_0x4be150(0x443)]!==_0x51b701||_0x4bd078[_0x4be150(0x333)][_0x4be150(0x82e)]((_0x13b1d7,_0x5a6fa3)=>Math[_0x4be150(0x346)](_0x13b1d7-_0x2e0408[_0x5a6fa3])>=0x1)||_0x4bd078[_0x4be150(0x5fe)][_0x4be150(0x82e)]((_0x3b852e,_0x3dd2ee)=>_0x3b852e!==_0x501802[_0x3dd2ee])||_0x4bd078[_0x4be150(0x700)]!==_0x436ce8;}#cheatInitialRect(){const _0xcda424=_0x36bfb8;let _0x3cd6cc=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:![];if(!this[_0xcda424(0x66b)])return;this.#setEditorDimensions();if(!_0x3cd6cc&&(this[_0xcda424(0x98b)]===0x0||this[_0xcda424(0x999)]===0x0)){setTimeout(()=>this.#cheatInitialRect(!![]),0x0);return;}const _0x4edddf=_0x16ccf7['_internalPadding']*this['parentScale'];this.#initialData[_0xcda424(0x333)]=this[_0xcda424(0x93f)](_0x4edddf,_0x4edddf);}}_0x242f87['FreeTextEditor']=_0x16ccf7;},(_0x1c86cf,_0x2c4a41,_0x5164b3)=>{'use strict';const _0x34684e=a0_0x160d;Object[_0x34684e(0x430)](_0x2c4a41,_0x34684e(0x19a),{'value':!![]}),_0x2c4a41[_0x34684e(0x3ed)]=_0x2c4a41[_0x34684e(0x301)]=_0x2c4a41['FreeTextAnnotationElement']=_0x2c4a41['AnnotationLayer']=void 0x0;var _0x20ce9d=_0x5164b3(0x1),_0x1ee1b8=_0x5164b3(0x87),_0x3196ff=_0x5164b3(0x84),_0x1b2b23=_0x5164b3(0x9e),_0x50cc29=_0x5164b3(0x9f);const _0x3d9ae1=0x3e8,_0x32407f=0x9,_0xe9026f=new WeakSet();function _0x23686a(_0x57e4dd){return{'width':_0x57e4dd[0x2]-_0x57e4dd[0x0],'height':_0x57e4dd[0x3]-_0x57e4dd[0x1]};}class _0x1fbf87{static[_0x34684e(0x77c)](_0x2905b9){const _0x5b1f3a=_0x34684e,_0x514a54=_0x2905b9[_0x5b1f3a(0x41b)][_0x5b1f3a(0x417)];switch(_0x514a54){case _0x20ce9d[_0x5b1f3a(0x9b8)]['LINK']:return new _0x23222c(_0x2905b9);case _0x20ce9d[_0x5b1f3a(0x9b8)][_0x5b1f3a(0x422)]:return new _0x57f804(_0x2905b9);case _0x20ce9d[_0x5b1f3a(0x9b8)][_0x5b1f3a(0x701)]:const _0x344182=_0x2905b9[_0x5b1f3a(0x41b)]['fieldType'];switch(_0x344182){case'Tx':return new _0x1850f8(_0x2905b9);case _0x5b1f3a(0x85a):if(_0x2905b9[_0x5b1f3a(0x41b)][_0x5b1f3a(0x164)])return new _0x589802(_0x2905b9);else{if(_0x2905b9['data']['checkBox'])return new _0x5897b2(_0x2905b9);}return new _0x3a98a7(_0x2905b9);case'Ch':return new _0x144da5(_0x2905b9);case _0x5b1f3a(0x89b):return new _0x3af51c(_0x2905b9);}return new _0x182efb(_0x2905b9);case _0x20ce9d[_0x5b1f3a(0x9b8)][_0x5b1f3a(0x11d)]:return new _0x24aaee(_0x2905b9);case _0x20ce9d[_0x5b1f3a(0x9b8)]['FREETEXT']:return new _0x56492f(_0x2905b9);case _0x20ce9d[_0x5b1f3a(0x9b8)][_0x5b1f3a(0x4d0)]:return new _0xf4a368(_0x2905b9);case _0x20ce9d[_0x5b1f3a(0x9b8)]['SQUARE']:return new _0x2ff0ee(_0x2905b9);case _0x20ce9d[_0x5b1f3a(0x9b8)][_0x5b1f3a(0x52c)]:return new _0x2b3434(_0x2905b9);case _0x20ce9d[_0x5b1f3a(0x9b8)]['POLYLINE']:return new _0x4353ee(_0x2905b9);case _0x20ce9d[_0x5b1f3a(0x9b8)][_0x5b1f3a(0x3d9)]:return new _0x46d755(_0x2905b9);case _0x20ce9d[_0x5b1f3a(0x9b8)][_0x5b1f3a(0x8ac)]:return new _0x401798(_0x2905b9);case _0x20ce9d[_0x5b1f3a(0x9b8)][_0x5b1f3a(0x85d)]:return new _0x41f05d(_0x2905b9);case _0x20ce9d[_0x5b1f3a(0x9b8)]['HIGHLIGHT']:return new _0x488503(_0x2905b9);case _0x20ce9d[_0x5b1f3a(0x9b8)][_0x5b1f3a(0x75d)]:return new _0x56d96a(_0x2905b9);case _0x20ce9d['AnnotationType'][_0x5b1f3a(0x710)]:return new _0x1d5779(_0x2905b9);case _0x20ce9d[_0x5b1f3a(0x9b8)][_0x5b1f3a(0x63d)]:return new _0x3897cf(_0x2905b9);case _0x20ce9d[_0x5b1f3a(0x9b8)][_0x5b1f3a(0x8e8)]:return new _0x4095a7(_0x2905b9);case _0x20ce9d[_0x5b1f3a(0x9b8)][_0x5b1f3a(0x84c)]:return new _0x27bed6(_0x2905b9);default:return new _0xba9c35(_0x2905b9);}}}class _0xba9c35{constructor(_0x5b0fe8){const _0x4ecc1b=_0x34684e;let {isRenderable:isRenderable=![],ignoreBorder:ignoreBorder=![],createQuadrilaterals:createQuadrilaterals=![]}=arguments[_0x4ecc1b(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:{};this['isRenderable']=isRenderable,this['data']=_0x5b0fe8[_0x4ecc1b(0x41b)],this[_0x4ecc1b(0x8ba)]=_0x5b0fe8[_0x4ecc1b(0x8ba)],this[_0x4ecc1b(0x8a6)]=_0x5b0fe8[_0x4ecc1b(0x8a6)],this[_0x4ecc1b(0x641)]=_0x5b0fe8[_0x4ecc1b(0x641)],this[_0x4ecc1b(0x33d)]=_0x5b0fe8[_0x4ecc1b(0x33d)],this['renderForms']=_0x5b0fe8[_0x4ecc1b(0x874)],this[_0x4ecc1b(0x385)]=_0x5b0fe8[_0x4ecc1b(0x385)],this[_0x4ecc1b(0x5bf)]=_0x5b0fe8[_0x4ecc1b(0x5bf)],this[_0x4ecc1b(0x4a7)]=_0x5b0fe8[_0x4ecc1b(0x4a7)],this['hasJSActions']=_0x5b0fe8[_0x4ecc1b(0x731)],this[_0x4ecc1b(0x43e)]=_0x5b0fe8['fieldObjects'],this[_0x4ecc1b(0x4c3)]=_0x5b0fe8[_0x4ecc1b(0x4c3)],isRenderable&&(this[_0x4ecc1b(0x2e0)]=this[_0x4ecc1b(0x13f)](ignoreBorder)),createQuadrilaterals&&(this['quadrilaterals']=this[_0x4ecc1b(0x1fc)](ignoreBorder));}['_createContainer'](_0x1296a7){const _0x1eaa59=_0x34684e,{data:_0x21a39e,parent:{page:_0x1457b0,viewport:_0x458f67}}=this,_0x5b7111=document[_0x1eaa59(0x400)](_0x1eaa59(0x80e));_0x5b7111['setAttribute'](_0x1eaa59(0x262),_0x21a39e['id']),_0x5b7111[_0x1eaa59(0x498)][_0x1eaa59(0x177)]=this[_0x1eaa59(0x4c3)][_0x1eaa59(0x177)]++;this['data'][_0x1eaa59(0x9c8)]&&_0x5b7111[_0x1eaa59(0x636)](_0x1eaa59(0x7a2),_0x1eaa59(0x28b));_0x21a39e[_0x1eaa59(0x764)]&&_0x5b7111['classList'][_0x1eaa59(0x156)](_0x1eaa59(0x3b0));const {pageWidth:_0x21513d,pageHeight:_0x44429d,pageX:_0x241b24,pageY:_0x123b32}=_0x458f67['rawDims'];if(!_0x21a39e['rect']||this instanceof _0x24aaee){const {rotation:_0x40d219}=_0x21a39e;return!_0x21a39e[_0x1eaa59(0x5dc)]&&_0x40d219!==0x0&&this[_0x1eaa59(0x59c)](_0x40d219,_0x5b7111),_0x5b7111;}const {width:_0x1f6a4f,height:_0x551b62}=_0x23686a(_0x21a39e[_0x1eaa59(0x333)]),_0x3d29b5=_0x20ce9d[_0x1eaa59(0x5d7)]['normalizeRect']([_0x21a39e[_0x1eaa59(0x333)][0x0],_0x1457b0[_0x1eaa59(0x6e4)][0x3]-_0x21a39e[_0x1eaa59(0x333)][0x1]+_0x1457b0[_0x1eaa59(0x6e4)][0x1],_0x21a39e[_0x1eaa59(0x333)][0x2],_0x1457b0[_0x1eaa59(0x6e4)][0x3]-_0x21a39e[_0x1eaa59(0x333)][0x3]+_0x1457b0['view'][0x1]]);if(!_0x1296a7&&_0x21a39e['borderStyle'][_0x1eaa59(0x98b)]>0x0){_0x5b7111[_0x1eaa59(0x498)][_0x1eaa59(0x603)]=_0x21a39e[_0x1eaa59(0x7e6)]['width']+'px';const _0x5aaba9=_0x21a39e['borderStyle']['horizontalCornerRadius'],_0x1de359=_0x21a39e['borderStyle'][_0x1eaa59(0x773)];if(_0x5aaba9>0x0||_0x1de359>0x0){const _0x536880=_0x1eaa59(0x8de)+_0x5aaba9+'px\x20*\x20var(--scale-factor))\x20/\x20calc('+_0x1de359+'px\x20*\x20var(--scale-factor))';_0x5b7111[_0x1eaa59(0x498)][_0x1eaa59(0x774)]=_0x536880;}else{if(this instanceof _0x589802){const _0x2ac2e5=_0x1eaa59(0x8de)+_0x1f6a4f+_0x1eaa59(0x7d9)+_0x551b62+_0x1eaa59(0x108);_0x5b7111[_0x1eaa59(0x498)][_0x1eaa59(0x774)]=_0x2ac2e5;}}switch(_0x21a39e['borderStyle']['style']){case _0x20ce9d[_0x1eaa59(0x263)][_0x1eaa59(0x2a2)]:_0x5b7111[_0x1eaa59(0x498)][_0x1eaa59(0x7e6)]='solid';break;case _0x20ce9d[_0x1eaa59(0x263)][_0x1eaa59(0x1be)]:_0x5b7111['style'][_0x1eaa59(0x7e6)]=_0x1eaa59(0x53c);break;case _0x20ce9d[_0x1eaa59(0x263)][_0x1eaa59(0x771)]:(0x0,_0x20ce9d[_0x1eaa59(0x472)])(_0x1eaa59(0x930));break;case _0x20ce9d[_0x1eaa59(0x263)]['INSET']:(0x0,_0x20ce9d[_0x1eaa59(0x472)])(_0x1eaa59(0x1da));break;case _0x20ce9d[_0x1eaa59(0x263)]['UNDERLINE']:_0x5b7111['style']['borderBottomStyle']='solid';break;default:break;}const _0x161f2c=_0x21a39e[_0x1eaa59(0x16c)]||null;_0x161f2c?_0x5b7111[_0x1eaa59(0x498)][_0x1eaa59(0x16c)]=_0x20ce9d[_0x1eaa59(0x5d7)][_0x1eaa59(0x86a)](_0x161f2c[0x0]|0x0,_0x161f2c[0x1]|0x0,_0x161f2c[0x2]|0x0):_0x5b7111[_0x1eaa59(0x498)][_0x1eaa59(0x603)]=0x0;}_0x5b7111['style'][_0x1eaa59(0x4fd)]=0x64*(_0x3d29b5[0x0]-_0x241b24)/_0x21513d+'%',_0x5b7111[_0x1eaa59(0x498)][_0x1eaa59(0x12f)]=0x64*(_0x3d29b5[0x1]-_0x123b32)/_0x44429d+'%';const {rotation:_0xf76519}=_0x21a39e;return _0x21a39e[_0x1eaa59(0x5dc)]||_0xf76519===0x0?(_0x5b7111['style'][_0x1eaa59(0x98b)]=0x64*_0x1f6a4f/_0x21513d+'%',_0x5b7111['style'][_0x1eaa59(0x999)]=0x64*_0x551b62/_0x44429d+'%'):this['setRotation'](_0xf76519,_0x5b7111),_0x5b7111;}[_0x34684e(0x59c)](_0x1ea427){const _0x4e0d61=_0x34684e;let _0x210e52=arguments[_0x4e0d61(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:this[_0x4e0d61(0x2e0)];const {pageWidth:_0xa465e8,pageHeight:_0x5eb535}=this[_0x4e0d61(0x4c3)]['viewport'][_0x4e0d61(0x621)],{width:_0x565296,height:_0x799bd1}=_0x23686a(this[_0x4e0d61(0x41b)][_0x4e0d61(0x333)]);let _0x362c46,_0x1d855a;_0x1ea427%0xb4===0x0?(_0x362c46=0x64*_0x565296/_0xa465e8,_0x1d855a=0x64*_0x799bd1/_0x5eb535):(_0x362c46=0x64*_0x799bd1/_0xa465e8,_0x1d855a=0x64*_0x565296/_0x5eb535),_0x210e52[_0x4e0d61(0x498)]['width']=_0x362c46+'%',_0x210e52[_0x4e0d61(0x498)][_0x4e0d61(0x999)]=_0x1d855a+'%',_0x210e52[_0x4e0d61(0x636)]('data-main-rotation',(0x168-_0x1ea427)%0x168);}get[_0x34684e(0x31e)](){const _0x18a12c=_0x34684e,_0x26821c=(_0x3d7854,_0x32517b,_0x47adb1)=>{const _0x264f11=a0_0x160d,_0x2f3014=_0x47adb1[_0x264f11(0x677)][_0x3d7854];_0x47adb1[_0x264f11(0x1c8)]['style'][_0x32517b]=_0x1b2b23['ColorConverters'][_0x2f3014[0x0]+_0x264f11(0x3d3)](_0x2f3014[_0x264f11(0x80c)](0x1));};return(0x0,_0x20ce9d[_0x18a12c(0x51d)])(this,_0x18a12c(0x31e),{'display':_0x24159d=>{const _0x3db58f=_0x18a12c,_0x24549b=_0x24159d[_0x3db58f(0x677)][_0x3db58f(0x619)]%0x2===0x1;this['container'][_0x3db58f(0x498)][_0x3db58f(0x269)]=_0x24549b?_0x3db58f(0x495):'visible',this[_0x3db58f(0x5bf)][_0x3db58f(0x699)](this[_0x3db58f(0x41b)]['id'],{'hidden':_0x24549b,'print':_0x24159d['detail'][_0x3db58f(0x619)]===0x0||_0x24159d['detail'][_0x3db58f(0x619)]===0x3});},'print':_0x3ccb73=>{const _0x12f761=_0x18a12c;this['annotationStorage']['setValue'](this[_0x12f761(0x41b)]['id'],{'print':_0x3ccb73['detail'][_0x12f761(0x5f8)]});},'hidden':_0x31639e=>{const _0x32c26b=_0x18a12c;this[_0x32c26b(0x2e0)][_0x32c26b(0x498)][_0x32c26b(0x269)]=_0x31639e[_0x32c26b(0x677)][_0x32c26b(0x495)]?_0x32c26b(0x495):_0x32c26b(0x6cd),this[_0x32c26b(0x5bf)][_0x32c26b(0x699)](this['data']['id'],{'hidden':_0x31639e[_0x32c26b(0x677)][_0x32c26b(0x495)]});},'focus':_0x5e497b=>{const _0x1ba8bd=_0x18a12c;setTimeout(()=>_0x5e497b[_0x1ba8bd(0x1c8)][_0x1ba8bd(0x47d)]({'preventScroll':![]}),0x0);},'userName':_0x529d13=>{const _0x236820=_0x18a12c;_0x529d13[_0x236820(0x1c8)][_0x236820(0x5d6)]=_0x529d13[_0x236820(0x677)][_0x236820(0x5d8)];},'readonly':_0x4b362a=>{const _0x5cab96=_0x18a12c;_0x4b362a['detail'][_0x5cab96(0x512)]?_0x4b362a[_0x5cab96(0x1c8)][_0x5cab96(0x636)](_0x5cab96(0x512),''):_0x4b362a['target'][_0x5cab96(0x687)]('readonly');},'required':_0x38b7d1=>{const _0x52008a=_0x18a12c;this[_0x52008a(0xce)](_0x38b7d1[_0x52008a(0x1c8)],_0x38b7d1[_0x52008a(0x677)][_0x52008a(0x447)]);},'bgColor':_0x102a28=>{const _0x235856=_0x18a12c;_0x26821c(_0x235856(0x26d),_0x235856(0x98d),_0x102a28);},'fillColor':_0x1819fe=>{const _0x5a93d1=_0x18a12c;_0x26821c(_0x5a93d1(0x631),'backgroundColor',_0x1819fe);},'fgColor':_0x171452=>{const _0x3cd254=_0x18a12c;_0x26821c('fgColor',_0x3cd254(0x5fe),_0x171452);},'textColor':_0x1b689c=>{const _0x3fd192=_0x18a12c;_0x26821c(_0x3fd192(0x8d1),_0x3fd192(0x5fe),_0x1b689c);},'borderColor':_0x1c75d7=>{const _0x2cd9c3=_0x18a12c;_0x26821c(_0x2cd9c3(0x16c),_0x2cd9c3(0x16c),_0x1c75d7);},'strokeColor':_0x5a8421=>{const _0x13e854=_0x18a12c;_0x26821c('strokeColor',_0x13e854(0x16c),_0x5a8421);},'rotation':_0x4289e0=>{const _0x9dcab=_0x18a12c,_0x3bfd90=_0x4289e0['detail'][_0x9dcab(0x7af)];this[_0x9dcab(0x59c)](_0x3bfd90),this[_0x9dcab(0x5bf)][_0x9dcab(0x699)](this[_0x9dcab(0x41b)]['id'],{'rotation':_0x3bfd90});}});}[_0x34684e(0x695)](_0x19a683,_0x1ce9e8){const _0x195f0c=_0x34684e,_0x5c3157=this['_commonActions'];for(const _0x447b5e of Object[_0x195f0c(0x30e)](_0x1ce9e8[_0x195f0c(0x677)])){const _0x90f3d3=_0x19a683[_0x447b5e]||_0x5c3157[_0x447b5e];_0x90f3d3?.(_0x1ce9e8);}}[_0x34684e(0x9ad)](_0x8711b5){const _0x56ccc1=_0x34684e;if(!this[_0x56ccc1(0x4a7)])return;const _0x1650da=this['annotationStorage']['getRawValue'](this[_0x56ccc1(0x41b)]['id']);if(!_0x1650da)return;const _0x25c520=this[_0x56ccc1(0x31e)];for(const [_0x3c8b97,_0x3c1c35]of Object[_0x56ccc1(0x816)](_0x1650da)){const _0x5915d4=_0x25c520[_0x3c8b97];if(_0x5915d4){const _0x4c9a37={'detail':{[_0x3c8b97]:_0x3c1c35},'target':_0x8711b5};_0x5915d4(_0x4c9a37),delete _0x1650da[_0x3c8b97];}}}[_0x34684e(0x1fc)](){const _0x5c0bc3=_0x34684e;let _0x5b20fd=arguments[_0x5c0bc3(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:![];if(!this[_0x5c0bc3(0x41b)]['quadPoints'])return null;const _0x41f489=[],_0x53d23c=this['data'][_0x5c0bc3(0x333)];let _0x40448b=null;for(const _0x1fc87e of this['data'][_0x5c0bc3(0x5bc)]){this[_0x5c0bc3(0x41b)][_0x5c0bc3(0x333)]=[_0x1fc87e[0x2]['x'],_0x1fc87e[0x2]['y'],_0x1fc87e[0x1]['x'],_0x1fc87e[0x1]['y']],_0x41f489[_0x5c0bc3(0x7d6)](this[_0x5c0bc3(0x13f)](_0x5b20fd)),_0x40448b||=this[_0x5c0bc3(0x41b)]['rect'];}return this[_0x5c0bc3(0x41b)][_0x5c0bc3(0x333)]=_0x53d23c,this[_0x5c0bc3(0xf5)]=_0x40448b,_0x41f489;}[_0x34684e(0x544)](){const _0xebcc20=_0x34684e,{container:_0x97e115,data:_0x288eb7}=this;_0x97e115[_0xebcc20(0x636)]('aria-haspopup','dialog');const _0x17b382=new _0x24aaee({'data':{'color':_0x288eb7['color'],'titleObj':_0x288eb7['titleObj'],'modificationDate':_0x288eb7[_0xebcc20(0x562)],'contentsObj':_0x288eb7[_0xebcc20(0x3a1)],'richText':_0x288eb7[_0xebcc20(0x68f)],'parentRect':this[_0xebcc20(0xf5)]||_0x288eb7[_0xebcc20(0x333)],'borderStyle':0x0,'id':_0xebcc20(0x2cc)+_0x288eb7['id'],'rotation':_0x288eb7[_0xebcc20(0x7af)]},'parent':this[_0xebcc20(0x4c3)],'elements':[this]});this['parent'][_0xebcc20(0x903)][_0xebcc20(0x45e)](_0x17b382[_0xebcc20(0x6c8)]());}['_renderQuadrilaterals'](_0x44c382){const _0x3ae337=_0x34684e;for(const _0x3f2be3 of this[_0x3ae337(0x931)]){_0x3f2be3[_0x3ae337(0x2bc)][_0x3ae337(0x156)](_0x44c382);}return this['quadrilaterals'];}[_0x34684e(0x6c8)](){(0x0,_0x20ce9d['unreachable'])('Abstract\x20method\x20`AnnotationElement.render`\x20called');}[_0x34684e(0x37e)](_0xd3dc19){const _0x55539a=_0x34684e;let _0x284473=arguments[_0x55539a(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:null;const _0x156400=[];if(this[_0x55539a(0x43e)]){const _0x2d0869=this['_fieldObjects'][_0xd3dc19];if(_0x2d0869)for(const {page:_0x4f5096,id:_0x2e2ed7,exportValues:_0x19add5}of _0x2d0869){if(_0x4f5096===-0x1)continue;if(_0x2e2ed7===_0x284473)continue;const _0x50db28=typeof _0x19add5===_0x55539a(0x8cd)?_0x19add5:null,_0x1818dc=document['querySelector'](_0x55539a(0x6a6)+_0x2e2ed7+'\x22]');if(_0x1818dc&&!_0xe9026f[_0x55539a(0x373)](_0x1818dc)){(0x0,_0x20ce9d[_0x55539a(0x472)])('_getElementsByName\x20-\x20element\x20not\x20allowed:\x20'+_0x2e2ed7);continue;}_0x156400[_0x55539a(0x7d6)]({'id':_0x2e2ed7,'exportValue':_0x50db28,'domElement':_0x1818dc});}return _0x156400;}for(const _0x178f80 of document[_0x55539a(0xdb)](_0xd3dc19)){const {exportValue:_0x4de939}=_0x178f80,_0xd6c45=_0x178f80[_0x55539a(0x8ae)](_0x55539a(0x9a2));if(_0xd6c45===_0x284473)continue;if(!_0xe9026f[_0x55539a(0x373)](_0x178f80))continue;_0x156400[_0x55539a(0x7d6)]({'id':_0xd6c45,'exportValue':_0x4de939,'domElement':_0x178f80});}return _0x156400;}[_0x34684e(0x2a0)](){const _0x42a9cd=_0x34684e;this[_0x42a9cd(0x2e0)]&&(this['container'][_0x42a9cd(0x495)]=![]),this[_0x42a9cd(0x895)]?.[_0x42a9cd(0x798)]();}[_0x34684e(0x9bd)](){const _0x564cd5=_0x34684e;this['container']&&(this[_0x564cd5(0x2e0)][_0x564cd5(0x495)]=!![]),this[_0x564cd5(0x895)]?.['forceHide']();}[_0x34684e(0x3c4)](){const _0x2162a5=_0x34684e;return this[_0x2162a5(0x931)]||this[_0x2162a5(0x2e0)];}['addHighlightArea'](){const _0x5196ab=_0x34684e,_0x229b3a=this['getElementsToTriggerPopup']();if(Array[_0x5196ab(0x419)](_0x229b3a))for(const _0x4a7687 of _0x229b3a){_0x4a7687[_0x5196ab(0x2bc)][_0x5196ab(0x156)](_0x5196ab(0x89e));}else _0x229b3a[_0x5196ab(0x2bc)][_0x5196ab(0x156)](_0x5196ab(0x89e));}[_0x34684e(0x64d)](){const _0x58a446=_0x34684e,{annotationEditorType:_0x52d725,data:{id:_0x48ee60}}=this;this['container'][_0x58a446(0x5cc)](_0x58a446(0x327),()=>{const _0x3c1e50=_0x58a446;this[_0x3c1e50(0x8a6)][_0x3c1e50(0x64b)]?.[_0x3c1e50(0x3c0)](_0x3c1e50(0x3f6),{'source':this,'mode':_0x52d725,'editId':_0x48ee60});});}}class _0x23222c extends _0xba9c35{constructor(_0x198fd0){const _0x3165e5=_0x34684e;let _0x2706c5=arguments[_0x3165e5(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:null;super(_0x198fd0,{'isRenderable':!![],'ignoreBorder':!!_0x2706c5?.['ignoreBorder'],'createQuadrilaterals':!![]}),this['isTooltipOnly']=_0x198fd0[_0x3165e5(0x41b)][_0x3165e5(0x11e)];}[_0x34684e(0x6c8)](){const _0x3858af=_0x34684e,{data:_0x1b4998,linkService:_0x2776f9}=this,_0x219d2e=document['createElement']('a');_0x219d2e[_0x3858af(0x636)](_0x3858af(0x9a2),_0x1b4998['id']);let _0x2b436d=![];if(_0x1b4998[_0x3858af(0x6a1)])_0x2776f9['addLinkAttributes'](_0x219d2e,_0x1b4998['url'],_0x1b4998[_0x3858af(0x4bd)]),_0x2b436d=!![];else{if(_0x1b4998[_0x3858af(0x7c7)])this[_0x3858af(0x359)](_0x219d2e,_0x1b4998[_0x3858af(0x7c7)]),_0x2b436d=!![];else{if(_0x1b4998[_0x3858af(0x536)])this[_0x3858af(0x58a)](_0x219d2e,_0x1b4998['attachment']),_0x2b436d=!![];else{if(_0x1b4998[_0x3858af(0x87c)])this.#bindSetOCGState(_0x219d2e,_0x1b4998[_0x3858af(0x87c)]),_0x2b436d=!![];else{if(_0x1b4998['dest'])this[_0x3858af(0x1e1)](_0x219d2e,_0x1b4998[_0x3858af(0x66c)]),_0x2b436d=!![];else{_0x1b4998[_0x3858af(0x521)]&&(_0x1b4998[_0x3858af(0x521)]['Action']||_0x1b4998['actions'][_0x3858af(0x8fc)]||_0x1b4998[_0x3858af(0x521)][_0x3858af(0x6b3)])&&this[_0x3858af(0x4a7)]&&this[_0x3858af(0x731)]&&(this[_0x3858af(0x852)](_0x219d2e,_0x1b4998),_0x2b436d=!![]);if(_0x1b4998[_0x3858af(0x6c9)])this['_bindResetFormAction'](_0x219d2e,_0x1b4998[_0x3858af(0x6c9)]),_0x2b436d=!![];else this[_0x3858af(0x11e)]&&!_0x2b436d&&(this[_0x3858af(0x1e1)](_0x219d2e,''),_0x2b436d=!![]);}}}}}if(this[_0x3858af(0x931)])return this[_0x3858af(0x258)]('linkAnnotation')[_0x3858af(0x7ec)]((_0x1af076,_0x7bb88e)=>{const _0x3abb01=_0x3858af,_0x1dbe26=_0x7bb88e===0x0?_0x219d2e:_0x219d2e[_0x3abb01(0x4c9)]();return _0x1af076['append'](_0x1dbe26),_0x1af076;});return this['container'][_0x3858af(0x2bc)]['add'](_0x3858af(0x746)),_0x2b436d&&this[_0x3858af(0x2e0)][_0x3858af(0x45e)](_0x219d2e),this['container'];}#setInternalLink(){const _0x142574=_0x34684e;this[_0x142574(0x2e0)][_0x142574(0x636)](_0x142574(0x675),'');}[_0x34684e(0x1e1)](_0x9d99d2,_0x194d34){const _0x535efa=_0x34684e;_0x9d99d2[_0x535efa(0x95d)]=this[_0x535efa(0x8a6)][_0x535efa(0x91d)](_0x194d34),_0x9d99d2[_0x535efa(0x62c)]=()=>{const _0x5713aa=_0x535efa;return _0x194d34&&this[_0x5713aa(0x8a6)]['goToDestination'](_0x194d34),![];},(_0x194d34||_0x194d34==='')&&this.#setInternalLink();}[_0x34684e(0x359)](_0x408915,_0x3b7f71){const _0x3fa5e6=_0x34684e;_0x408915[_0x3fa5e6(0x95d)]=this['linkService'][_0x3fa5e6(0x9e9)](''),_0x408915[_0x3fa5e6(0x62c)]=()=>{const _0x43b12f=_0x3fa5e6;return this['linkService'][_0x43b12f(0x3c9)](_0x3b7f71),![];},this.#setInternalLink();}[_0x34684e(0x58a)](_0x4f9767,_0x4de84e){const _0x15bd05=_0x34684e;_0x4f9767['href']=this[_0x15bd05(0x8a6)][_0x15bd05(0x9e9)](''),_0x4f9767['onclick']=()=>{const _0xd4b188=_0x15bd05;return this[_0xd4b188(0x641)]?.[_0xd4b188(0x42f)](this[_0xd4b188(0x2e0)],_0x4de84e[_0xd4b188(0x609)],_0x4de84e[_0xd4b188(0x5cf)]),![];},this.#setInternalLink();}#bindSetOCGState(_0x1d0dfb,_0x38d9f2){const _0x8d7cd3=_0x34684e;_0x1d0dfb[_0x8d7cd3(0x95d)]=this[_0x8d7cd3(0x8a6)]['getAnchorUrl'](''),_0x1d0dfb[_0x8d7cd3(0x62c)]=()=>{const _0x38b1b4=_0x8d7cd3;return this[_0x38b1b4(0x8a6)][_0x38b1b4(0x180)](_0x38d9f2),![];},this.#setInternalLink();}['_bindJSAction'](_0x4876f5,_0x446452){const _0x2ae562=_0x34684e;_0x4876f5['href']=this[_0x2ae562(0x8a6)]['getAnchorUrl']('');const _0x3146ed=new Map([[_0x2ae562(0x592),_0x2ae562(0x62c)],[_0x2ae562(0x8fc),_0x2ae562(0x421)],[_0x2ae562(0x6b3),_0x2ae562(0x9a1)]]);for(const _0x13c59f of Object[_0x2ae562(0x30e)](_0x446452[_0x2ae562(0x521)])){const _0x24600a=_0x3146ed[_0x2ae562(0x8c4)](_0x13c59f);if(!_0x24600a)continue;_0x4876f5[_0x24600a]=()=>{const _0x35eb64=_0x2ae562;return this[_0x35eb64(0x8a6)][_0x35eb64(0x64b)]?.['dispatch'](_0x35eb64(0x81a),{'source':this,'detail':{'id':_0x446452['id'],'name':_0x13c59f}}),![];};}!_0x4876f5[_0x2ae562(0x62c)]&&(_0x4876f5[_0x2ae562(0x62c)]=()=>![]),this.#setInternalLink();}[_0x34684e(0x2a6)](_0x24618a,_0x4b67ef){const _0x42b1cf=_0x34684e,_0x1fcbf1=_0x24618a[_0x42b1cf(0x62c)];!_0x1fcbf1&&(_0x24618a[_0x42b1cf(0x95d)]=this['linkService']['getAnchorUrl'](''));this.#setInternalLink();if(!this['_fieldObjects']){(0x0,_0x20ce9d[_0x42b1cf(0x472)])('_bindResetFormAction\x20-\x20\x22resetForm\x22\x20action\x20not\x20supported,\x20'+'ensure\x20that\x20the\x20`fieldObjects`\x20parameter\x20is\x20provided.');!_0x1fcbf1&&(_0x24618a[_0x42b1cf(0x62c)]=()=>![]);return;}_0x24618a['onclick']=()=>{const _0x374db8=_0x42b1cf;_0x1fcbf1?.();const {fields:_0xc6a4dc,refs:_0x4a9ca9,include:_0x40eae4}=_0x4b67ef,_0x26ad3c=[];if(_0xc6a4dc[_0x374db8(0x557)]!==0x0||_0x4a9ca9[_0x374db8(0x557)]!==0x0){const _0x299f82=new Set(_0x4a9ca9);for(const _0x2e9def of _0xc6a4dc){const _0x36536a=this[_0x374db8(0x43e)][_0x2e9def]||[];for(const {id:_0x17c2e7}of _0x36536a){_0x299f82[_0x374db8(0x156)](_0x17c2e7);}}for(const _0x5a3245 of Object['values'](this[_0x374db8(0x43e)])){for(const _0x49ecae of _0x5a3245){_0x299f82[_0x374db8(0x373)](_0x49ecae['id'])===_0x40eae4&&_0x26ad3c[_0x374db8(0x7d6)](_0x49ecae);}}}else for(const _0x5a0f70 of Object['values'](this[_0x374db8(0x43e)])){_0x26ad3c[_0x374db8(0x7d6)](..._0x5a0f70);}const _0x52c772=this[_0x374db8(0x5bf)],_0x54d11e=[];for(const _0x198ff3 of _0x26ad3c){const {id:_0x2d8ef1}=_0x198ff3;_0x54d11e[_0x374db8(0x7d6)](_0x2d8ef1);switch(_0x198ff3[_0x374db8(0x9fd)]){case _0x374db8(0x739):{const _0x53a9b8=_0x198ff3['defaultValue']||'';_0x52c772['setValue'](_0x2d8ef1,{'value':_0x53a9b8});break;}case _0x374db8(0x799):case _0x374db8(0x824):{const _0x5098b0=_0x198ff3[_0x374db8(0x92f)]===_0x198ff3['exportValues'];_0x52c772[_0x374db8(0x699)](_0x2d8ef1,{'value':_0x5098b0});break;}case _0x374db8(0x1d8):case'listbox':{const _0x44a018=_0x198ff3[_0x374db8(0x92f)]||'';_0x52c772[_0x374db8(0x699)](_0x2d8ef1,{'value':_0x44a018});break;}default:continue;}const _0x257a10=document[_0x374db8(0x6c7)](_0x374db8(0x6a6)+_0x2d8ef1+'\x22]');if(!_0x257a10)continue;else{if(!_0xe9026f[_0x374db8(0x373)](_0x257a10)){(0x0,_0x20ce9d[_0x374db8(0x472)])(_0x374db8(0x379)+_0x2d8ef1);continue;}}_0x257a10[_0x374db8(0x193)](new Event('resetform'));}return this[_0x374db8(0x4a7)]&&this[_0x374db8(0x8a6)][_0x374db8(0x64b)]?.[_0x374db8(0x3c0)](_0x374db8(0x81a),{'source':this,'detail':{'id':_0x374db8(0x62b),'ids':_0x54d11e,'name':_0x374db8(0x9ca)}}),![];};}}class _0x57f804 extends _0xba9c35{constructor(_0x3e38d8){const _0x42b200=_0x34684e,_0x4e27e4=!!(_0x3e38d8[_0x42b200(0x41b)][_0x42b200(0x9c8)]||_0x3e38d8[_0x42b200(0x41b)][_0x42b200(0x363)]?.['str']||_0x3e38d8[_0x42b200(0x41b)][_0x42b200(0x3a1)]?.[_0x42b200(0xcf)]||_0x3e38d8[_0x42b200(0x41b)][_0x42b200(0x68f)]?.[_0x42b200(0xcf)]);super(_0x3e38d8,{'isRenderable':_0x4e27e4});}[_0x34684e(0x6c8)](){const _0x5e06e4=_0x34684e;this[_0x5e06e4(0x2e0)][_0x5e06e4(0x2bc)][_0x5e06e4(0x156)](_0x5e06e4(0x293));const _0xcd8b34=document[_0x5e06e4(0x400)](_0x5e06e4(0x662));return _0xcd8b34['src']=this[_0x5e06e4(0x33d)]+'annotation-'+this[_0x5e06e4(0x41b)][_0x5e06e4(0x499)][_0x5e06e4(0x83c)]()+_0x5e06e4(0x3f4),_0xcd8b34[_0x5e06e4(0x5d9)]=_0x5e06e4(0x50f),_0xcd8b34[_0x5e06e4(0x811)]['l10nId']=_0x5e06e4(0x10f),_0xcd8b34[_0x5e06e4(0x811)][_0x5e06e4(0x856)]=JSON[_0x5e06e4(0x22f)]({'type':this['data'][_0x5e06e4(0x499)]}),!this[_0x5e06e4(0x41b)][_0x5e06e4(0x9c8)]&&this[_0x5e06e4(0x544)](),this['container'][_0x5e06e4(0x45e)](_0xcd8b34),this['container'];}}class _0x182efb extends _0xba9c35{['render'](){const _0x44659=_0x34684e;return this[_0x44659(0x41b)][_0x44659(0x211)]&&(this[_0x44659(0x2e0)][_0x44659(0x5d6)]=this[_0x44659(0x41b)]['alternativeText']),this[_0x44659(0x2e0)];}[_0x34684e(0x27f)](_0x1fc210){const _0x4518f0=_0x34684e;this[_0x4518f0(0x41b)][_0x4518f0(0x5dc)]&&(_0x1fc210[_0x4518f0(0x6f9)]?.[_0x4518f0(0x1fd)]===_0x4518f0(0x4c4)&&(_0x1fc210['previousSibling']['hidden']=!![]),_0x1fc210[_0x4518f0(0x495)]=![]);}[_0x34684e(0x411)](_0x2b92f9){const _0x6ea23a=_0x34684e,{isWin:_0x3811d5,isMac:_0x483160}=_0x20ce9d[_0x6ea23a(0x7a8)][_0x6ea23a(0x5e2)];return _0x3811d5&&_0x2b92f9[_0x6ea23a(0x8ca)]||_0x483160&&_0x2b92f9[_0x6ea23a(0x60b)];}['_setEventListener'](_0x2d145f,_0x313810,_0x5f5100,_0x23b697){const _0x5bc765=_0x34684e;_0x313810[_0x5bc765(0x720)](_0x5bc765(0x6d5))?_0x2d145f[_0x5bc765(0x5cc)](_0x313810,_0x42ec92=>{const _0x1c5b75=_0x5bc765;this[_0x1c5b75(0x8a6)][_0x1c5b75(0x64b)]?.[_0x1c5b75(0x3c0)](_0x1c5b75(0x81a),{'source':this,'detail':{'id':this[_0x1c5b75(0x41b)]['id'],'name':_0x5f5100,'value':_0x23b697(_0x42ec92),'shift':_0x42ec92['shiftKey'],'modifier':this[_0x1c5b75(0x411)](_0x42ec92)}});}):_0x2d145f[_0x5bc765(0x5cc)](_0x313810,_0x19ab87=>{const _0x26b279=_0x5bc765;this[_0x26b279(0x8a6)][_0x26b279(0x64b)]?.[_0x26b279(0x3c0)](_0x26b279(0x81a),{'source':this,'detail':{'id':this[_0x26b279(0x41b)]['id'],'name':_0x5f5100,'value':_0x23b697(_0x19ab87)}});});}['_setEventListeners'](_0xf403c9,_0x2a8468,_0x19916f){const _0xf6b4a8=_0x34684e;for(const [_0xe1c010,_0x287160]of _0x2a8468){(_0x287160===_0xf6b4a8(0x592)||this[_0xf6b4a8(0x41b)][_0xf6b4a8(0x521)]?.[_0x287160])&&this[_0xf6b4a8(0x794)](_0xf403c9,_0xe1c010,_0x287160,_0x19916f);}}[_0x34684e(0x209)](_0xd55daf){const _0x59b37e=_0x34684e,_0x2e9ca8=this[_0x59b37e(0x41b)]['backgroundColor']||null;_0xd55daf[_0x59b37e(0x498)][_0x59b37e(0x98d)]=_0x2e9ca8===null?_0x59b37e(0x910):_0x20ce9d[_0x59b37e(0x5d7)]['makeHexColor'](_0x2e9ca8[0x0],_0x2e9ca8[0x1],_0x2e9ca8[0x2]);}[_0x34684e(0x663)](_0x43efff){const _0x596f70=_0x34684e,_0x475a4a=[_0x596f70(0x4fd),'center','right'],{fontColor:_0x4bb417}=this[_0x596f70(0x41b)]['defaultAppearanceData'],_0x3cdf60=this[_0x596f70(0x41b)][_0x596f70(0x2ac)]['fontSize']||_0x32407f,_0x5c32d3=_0x43efff[_0x596f70(0x498)];let _0x4972aa;const _0x45c10d=0x2,_0x5249ee=_0xa752ff=>Math['round'](0xa*_0xa752ff)/0xa;if(this['data'][_0x596f70(0x203)]){const _0x48b5d0=Math[_0x596f70(0x346)](this[_0x596f70(0x41b)][_0x596f70(0x333)][0x3]-this[_0x596f70(0x41b)][_0x596f70(0x333)][0x1]-_0x45c10d),_0x3ef1cf=Math[_0x596f70(0x7df)](_0x48b5d0/(_0x20ce9d[_0x596f70(0x90b)]*_0x3cdf60))||0x1,_0x568560=_0x48b5d0/_0x3ef1cf;_0x4972aa=Math[_0x596f70(0x81b)](_0x3cdf60,_0x5249ee(_0x568560/_0x20ce9d[_0x596f70(0x90b)]));}else{const _0x3697a1=Math[_0x596f70(0x346)](this[_0x596f70(0x41b)][_0x596f70(0x333)][0x3]-this[_0x596f70(0x41b)]['rect'][0x1]-_0x45c10d);_0x4972aa=Math[_0x596f70(0x81b)](_0x3cdf60,_0x5249ee(_0x3697a1/_0x20ce9d[_0x596f70(0x90b)]));}_0x5c32d3['fontSize']=_0x596f70(0x8de)+_0x4972aa+_0x596f70(0x108),_0x5c32d3[_0x596f70(0x5fe)]=_0x20ce9d[_0x596f70(0x5d7)][_0x596f70(0x86a)](_0x4bb417[0x0],_0x4bb417[0x1],_0x4bb417[0x2]),this[_0x596f70(0x41b)][_0x596f70(0x876)]!==null&&(_0x5c32d3[_0x596f70(0x18a)]=_0x475a4a[this['data']['textAlignment']]);}[_0x34684e(0xce)](_0x17ecbd,_0x3adcaa){const _0xb24029=_0x34684e;_0x3adcaa?_0x17ecbd['setAttribute'](_0xb24029(0x447),!![]):_0x17ecbd[_0xb24029(0x687)](_0xb24029(0x447)),_0x17ecbd['setAttribute'](_0xb24029(0xc0),_0x3adcaa);}}class _0x1850f8 extends _0x182efb{constructor(_0x417c17){const _0x4d09f0=_0x34684e,_0x20d5ef=_0x417c17[_0x4d09f0(0x874)]||!_0x417c17[_0x4d09f0(0x41b)][_0x4d09f0(0x31f)]&&!!_0x417c17[_0x4d09f0(0x41b)]['fieldValue'];super(_0x417c17,{'isRenderable':_0x20d5ef});}[_0x34684e(0x356)](_0x4fb18c,_0x42c1aa,_0x3d0339,_0x343153){const _0x565be5=_0x34684e,_0x45057b=this[_0x565be5(0x5bf)];for(const _0x599b05 of this[_0x565be5(0x37e)](_0x4fb18c[_0x565be5(0x499)],_0x4fb18c['id'])){_0x599b05[_0x565be5(0x6d3)]&&(_0x599b05['domElement'][_0x42c1aa]=_0x3d0339),_0x45057b[_0x565be5(0x699)](_0x599b05['id'],{[_0x343153]:_0x3d0339});}}[_0x34684e(0x6c8)](){const _0x501501=_0x34684e,_0x53f7e8=this[_0x501501(0x5bf)],_0x4cdf37=this[_0x501501(0x41b)]['id'];this[_0x501501(0x2e0)]['classList'][_0x501501(0x156)](_0x501501(0x306));let _0x435b48=null;if(this[_0x501501(0x874)]){const _0x2a8ad2=_0x53f7e8[_0x501501(0xde)](_0x4cdf37,{'value':this[_0x501501(0x41b)][_0x501501(0x46d)]});let _0x5f0eab=_0x2a8ad2[_0x501501(0x2b8)]||'';const _0x39e3af=_0x53f7e8[_0x501501(0xde)](_0x4cdf37,{'charLimit':this[_0x501501(0x41b)][_0x501501(0x471)]})[_0x501501(0x664)];_0x39e3af&&_0x5f0eab[_0x501501(0x557)]>_0x39e3af&&(_0x5f0eab=_0x5f0eab['slice'](0x0,_0x39e3af));let _0x1fa01d=_0x2a8ad2['formattedValue']||this[_0x501501(0x41b)][_0x501501(0x8a9)]?.[_0x501501(0x334)]('\x0a')||null;_0x1fa01d&&this[_0x501501(0x41b)][_0x501501(0x838)]&&(_0x1fa01d=_0x1fa01d[_0x501501(0x8b5)](/\s+/g,''));const _0x2d4828={'userValue':_0x5f0eab,'formattedValue':_0x1fa01d,'lastCommittedValue':null,'commitKey':0x1};this[_0x501501(0x41b)]['multiLine']?(_0x435b48=document[_0x501501(0x400)](_0x501501(0x3f2)),_0x435b48[_0x501501(0x8a9)]=_0x1fa01d??_0x5f0eab,this[_0x501501(0x41b)][_0x501501(0x1f2)]&&(_0x435b48[_0x501501(0x498)]['overflowY']='hidden')):(_0x435b48=document[_0x501501(0x400)](_0x501501(0x3e6)),_0x435b48[_0x501501(0x9fd)]=_0x501501(0x739),_0x435b48['setAttribute']('value',_0x1fa01d??_0x5f0eab),this[_0x501501(0x41b)][_0x501501(0x1f2)]&&(_0x435b48['style'][_0x501501(0x4ed)]=_0x501501(0x495)));this[_0x501501(0x41b)]['hasOwnCanvas']&&(_0x435b48[_0x501501(0x495)]=!![]);_0xe9026f[_0x501501(0x156)](_0x435b48),_0x435b48[_0x501501(0x636)](_0x501501(0x9a2),_0x4cdf37),_0x435b48[_0x501501(0x93b)]=this[_0x501501(0x41b)]['readOnly'],_0x435b48[_0x501501(0x499)]=this[_0x501501(0x41b)][_0x501501(0x509)]||this[_0x501501(0x41b)][_0x501501(0x8ed)],_0x435b48[_0x501501(0x646)]=_0x3d9ae1,this[_0x501501(0xce)](_0x435b48,this[_0x501501(0x41b)][_0x501501(0x447)]);_0x39e3af&&(_0x435b48[_0x501501(0x862)]=_0x39e3af);_0x435b48[_0x501501(0x5cc)](_0x501501(0x3e6),_0x298d9b=>{const _0x122695=_0x501501;_0x53f7e8['setValue'](_0x4cdf37,{'value':_0x298d9b[_0x122695(0x1c8)]['value']}),this[_0x122695(0x356)](_0x435b48,_0x122695(0x2b8),_0x298d9b[_0x122695(0x1c8)][_0x122695(0x2b8)],_0x122695(0x2b8)),_0x2d4828[_0x122695(0x144)]=null;}),_0x435b48[_0x501501(0x5cc)]('resetform',_0x14aef4=>{const _0x48b744=_0x501501,_0xeaa032=this[_0x48b744(0x41b)][_0x48b744(0x34a)]??'';_0x435b48['value']=_0x2d4828[_0x48b744(0x941)]=_0xeaa032,_0x2d4828[_0x48b744(0x144)]=null;});let _0x275d72=_0x44c6af=>{const _0x1e9dd0=_0x501501,{formattedValue:_0x1f69fb}=_0x2d4828;_0x1f69fb!==null&&_0x1f69fb!==undefined&&(_0x44c6af['target'][_0x1e9dd0(0x2b8)]=_0x1f69fb),_0x44c6af['target'][_0x1e9dd0(0x622)]=0x0;};if(this['enableScripting']&&this['hasJSActions']){_0x435b48['addEventListener'](_0x501501(0x47d),_0x339651=>{const _0x2ab61e=_0x501501,{target:_0x9a52d1}=_0x339651;_0x2d4828[_0x2ab61e(0x941)]&&(_0x9a52d1[_0x2ab61e(0x2b8)]=_0x2d4828[_0x2ab61e(0x941)]),_0x2d4828[_0x2ab61e(0x506)]=_0x9a52d1['value'],_0x2d4828['commitKey']=0x1;}),_0x435b48[_0x501501(0x5cc)](_0x501501(0x133),_0x5aded7=>{const _0x4cfceb=_0x501501;this[_0x4cfceb(0x27f)](_0x5aded7[_0x4cfceb(0x1c8)]);const _0x2bebe0={'value'(_0x2c42c4){const _0x519238=_0x4cfceb;_0x2d4828['userValue']=_0x2c42c4[_0x519238(0x677)][_0x519238(0x2b8)]??'',_0x53f7e8['setValue'](_0x4cdf37,{'value':_0x2d4828[_0x519238(0x941)][_0x519238(0x83f)]()}),_0x2c42c4[_0x519238(0x1c8)][_0x519238(0x2b8)]=_0x2d4828[_0x519238(0x941)];},'formattedValue'(_0xdca018){const _0x191bb9=_0x4cfceb,{formattedValue:_0x170fe3}=_0xdca018[_0x191bb9(0x677)];_0x2d4828[_0x191bb9(0x144)]=_0x170fe3,_0x170fe3!==null&&_0x170fe3!==undefined&&_0xdca018[_0x191bb9(0x1c8)]!==document[_0x191bb9(0x366)]&&(_0xdca018[_0x191bb9(0x1c8)][_0x191bb9(0x2b8)]=_0x170fe3),_0x53f7e8['setValue'](_0x4cdf37,{'formattedValue':_0x170fe3});},'selRange'(_0x3ae60e){const _0x25fbfa=_0x4cfceb;_0x3ae60e[_0x25fbfa(0x1c8)]['setSelectionRange'](..._0x3ae60e[_0x25fbfa(0x677)][_0x25fbfa(0x564)]);},'charLimit':_0x2cd972=>{const _0x22d90f=_0x4cfceb,{charLimit:_0x4fb2e0}=_0x2cd972[_0x22d90f(0x677)],{target:_0x2b8aab}=_0x2cd972;if(_0x4fb2e0===0x0){_0x2b8aab[_0x22d90f(0x687)](_0x22d90f(0x862));return;}_0x2b8aab['setAttribute'](_0x22d90f(0x862),_0x4fb2e0);let _0xc008a2=_0x2d4828[_0x22d90f(0x941)];if(!_0xc008a2||_0xc008a2['length']<=_0x4fb2e0)return;_0xc008a2=_0xc008a2[_0x22d90f(0x80c)](0x0,_0x4fb2e0),_0x2b8aab[_0x22d90f(0x2b8)]=_0x2d4828[_0x22d90f(0x941)]=_0xc008a2,_0x53f7e8['setValue'](_0x4cdf37,{'value':_0xc008a2}),this[_0x22d90f(0x8a6)][_0x22d90f(0x64b)]?.[_0x22d90f(0x3c0)]('dispatcheventinsandbox',{'source':this,'detail':{'id':_0x4cdf37,'name':_0x22d90f(0x16f),'value':_0xc008a2,'willCommit':!![],'commitKey':0x1,'selStart':_0x2b8aab[_0x22d90f(0x40e)],'selEnd':_0x2b8aab['selectionEnd']}});}};this['_dispatchEventFromSandbox'](_0x2bebe0,_0x5aded7);}),_0x435b48['addEventListener'](_0x501501(0x14c),_0x237d42=>{const _0x29fb19=_0x501501;_0x2d4828['commitKey']=0x1;let _0x5f47dc=-0x1;if(_0x237d42['key']===_0x29fb19(0x508))_0x5f47dc=0x0;else{if(_0x237d42[_0x29fb19(0x725)]==='Enter'&&!this['data'][_0x29fb19(0x203)])_0x5f47dc=0x2;else _0x237d42[_0x29fb19(0x725)]===_0x29fb19(0x3e5)&&(_0x2d4828[_0x29fb19(0x67a)]=0x3);}if(_0x5f47dc===-0x1)return;const {value:_0x309c9d}=_0x237d42[_0x29fb19(0x1c8)];if(_0x2d4828['lastCommittedValue']===_0x309c9d)return;_0x2d4828['lastCommittedValue']=_0x309c9d,_0x2d4828[_0x29fb19(0x941)]=_0x309c9d,this[_0x29fb19(0x8a6)][_0x29fb19(0x64b)]?.[_0x29fb19(0x3c0)]('dispatcheventinsandbox',{'source':this,'detail':{'id':_0x4cdf37,'name':_0x29fb19(0x16f),'value':_0x309c9d,'willCommit':!![],'commitKey':_0x5f47dc,'selStart':_0x237d42[_0x29fb19(0x1c8)][_0x29fb19(0x40e)],'selEnd':_0x237d42[_0x29fb19(0x1c8)]['selectionEnd']}});});const _0x139fbb=_0x275d72;_0x275d72=null,_0x435b48[_0x501501(0x5cc)](_0x501501(0x456),_0x34aceb=>{const _0x9131e2=_0x501501;if(!_0x34aceb[_0x9131e2(0x7f5)])return;const {value:_0x31a6d6}=_0x34aceb[_0x9131e2(0x1c8)];_0x2d4828[_0x9131e2(0x941)]=_0x31a6d6,_0x2d4828[_0x9131e2(0x506)]!==_0x31a6d6&&this[_0x9131e2(0x8a6)][_0x9131e2(0x64b)]?.[_0x9131e2(0x3c0)](_0x9131e2(0x81a),{'source':this,'detail':{'id':_0x4cdf37,'name':_0x9131e2(0x16f),'value':_0x31a6d6,'willCommit':!![],'commitKey':_0x2d4828[_0x9131e2(0x67a)],'selStart':_0x34aceb['target'][_0x9131e2(0x40e)],'selEnd':_0x34aceb['target']['selectionEnd']}}),_0x139fbb(_0x34aceb);}),this['data'][_0x501501(0x521)]?.['Keystroke']&&_0x435b48[_0x501501(0x5cc)]('beforeinput',_0xea08b9=>{const _0x106c20=_0x501501;_0x2d4828['lastCommittedValue']=null;const {data:_0x177ff3,target:_0x5f3e9a}=_0xea08b9,{value:_0x4a2902,selectionStart:_0x506591,selectionEnd:_0x3e5890}=_0x5f3e9a;let _0x123614=_0x506591,_0x22b70f=_0x3e5890;switch(_0xea08b9[_0x106c20(0x7a5)]){case _0x106c20(0xa04):{const _0x202aac=_0x4a2902[_0x106c20(0x5d2)](0x0,_0x506591)[_0x106c20(0x1c6)](/\w*[^\w]*$/);_0x202aac&&(_0x123614-=_0x202aac[0x0]['length']);break;}case _0x106c20(0x2dd):{const _0x1c7ab1=_0x4a2902[_0x106c20(0x5d2)](_0x506591)[_0x106c20(0x1c6)](/^[^\w]*\w*/);_0x1c7ab1&&(_0x22b70f+=_0x1c7ab1[0x0][_0x106c20(0x557)]);break;}case _0x106c20(0x684):_0x506591===_0x3e5890&&(_0x123614-=0x1);break;case'deleteContentForward':_0x506591===_0x3e5890&&(_0x22b70f+=0x1);break;}_0xea08b9[_0x106c20(0x9af)](),this[_0x106c20(0x8a6)][_0x106c20(0x64b)]?.[_0x106c20(0x3c0)](_0x106c20(0x81a),{'source':this,'detail':{'id':_0x4cdf37,'name':_0x106c20(0x16f),'value':_0x4a2902,'change':_0x177ff3||'','willCommit':![],'selStart':_0x123614,'selEnd':_0x22b70f}});}),this['_setEventListeners'](_0x435b48,[[_0x501501(0x47d),_0x501501(0x560)],[_0x501501(0x456),'Blur'],[_0x501501(0x7ed),_0x501501(0x6b3)],[_0x501501(0x5ed),_0x501501(0x228)],[_0x501501(0x4e4),'Mouse\x20Exit'],['mouseup',_0x501501(0x8fc)]],_0x2d535d=>_0x2d535d[_0x501501(0x1c8)][_0x501501(0x2b8)]);}_0x275d72&&_0x435b48['addEventListener'](_0x501501(0x456),_0x275d72);if(this[_0x501501(0x41b)][_0x501501(0x838)]){const _0x2c4856=this['data'][_0x501501(0x333)][0x2]-this[_0x501501(0x41b)][_0x501501(0x333)][0x0],_0x57525e=_0x2c4856/_0x39e3af;_0x435b48['classList'][_0x501501(0x156)]('comb'),_0x435b48[_0x501501(0x498)][_0x501501(0x3b6)]=_0x501501(0x8de)+_0x57525e+_0x501501(0x216);}}else _0x435b48=document[_0x501501(0x400)](_0x501501(0x903)),_0x435b48[_0x501501(0x8a9)]=this[_0x501501(0x41b)]['fieldValue'],_0x435b48[_0x501501(0x498)][_0x501501(0x3ae)]=_0x501501(0x839),_0x435b48['style'][_0x501501(0x619)]=_0x501501(0x983);return this['_setTextStyle'](_0x435b48),this['_setBackgroundColor'](_0x435b48),this['_setDefaultPropertiesFromJS'](_0x435b48),this['container']['append'](_0x435b48),this[_0x501501(0x2e0)];}}class _0x3af51c extends _0x182efb{constructor(_0x172834){const _0x8a7876=_0x34684e;super(_0x172834,{'isRenderable':!!_0x172834[_0x8a7876(0x41b)][_0x8a7876(0x5dc)]});}}class _0x5897b2 extends _0x182efb{constructor(_0x113bcd){const _0x5e9066=_0x34684e;super(_0x113bcd,{'isRenderable':_0x113bcd[_0x5e9066(0x874)]});}[_0x34684e(0x6c8)](){const _0x8f3711=_0x34684e,_0x61461d=this[_0x8f3711(0x5bf)],_0x68999e=this[_0x8f3711(0x41b)],_0xc2293f=_0x68999e['id'];let _0x47537e=_0x61461d['getValue'](_0xc2293f,{'value':_0x68999e['exportValue']===_0x68999e[_0x8f3711(0x46d)]})['value'];typeof _0x47537e==='string'&&(_0x47537e=_0x47537e!=='Off',_0x61461d[_0x8f3711(0x699)](_0xc2293f,{'value':_0x47537e}));this['container']['classList'][_0x8f3711(0x156)](_0x8f3711(0x1eb),'checkBox');const _0x200620=document['createElement'](_0x8f3711(0x3e6));return _0xe9026f[_0x8f3711(0x156)](_0x200620),_0x200620[_0x8f3711(0x636)](_0x8f3711(0x9a2),_0xc2293f),_0x200620[_0x8f3711(0x93b)]=_0x68999e['readOnly'],this[_0x8f3711(0xce)](_0x200620,this['data'][_0x8f3711(0x447)]),_0x200620[_0x8f3711(0x9fd)]=_0x8f3711(0x799),_0x200620[_0x8f3711(0x499)]=_0x68999e[_0x8f3711(0x509)]||_0x68999e[_0x8f3711(0x8ed)],_0x47537e&&_0x200620['setAttribute'](_0x8f3711(0xfc),!![]),_0x200620[_0x8f3711(0x636)](_0x8f3711(0x7a7),_0x68999e[_0x8f3711(0x7a7)]),_0x200620[_0x8f3711(0x646)]=_0x3d9ae1,_0x200620[_0x8f3711(0x5cc)](_0x8f3711(0x169),_0x47f5b2=>{const _0x4e8b0e=_0x8f3711,{name:_0x27fc64,checked:_0x2fa09a}=_0x47f5b2[_0x4e8b0e(0x1c8)];for(const _0x5c4c6a of this[_0x4e8b0e(0x37e)](_0x27fc64,_0xc2293f)){const _0x16397e=_0x2fa09a&&_0x5c4c6a[_0x4e8b0e(0x7a7)]===_0x68999e['exportValue'];_0x5c4c6a[_0x4e8b0e(0x6d3)]&&(_0x5c4c6a[_0x4e8b0e(0x6d3)]['checked']=_0x16397e),_0x61461d[_0x4e8b0e(0x699)](_0x5c4c6a['id'],{'value':_0x16397e});}_0x61461d[_0x4e8b0e(0x699)](_0xc2293f,{'value':_0x2fa09a});}),_0x200620['addEventListener'](_0x8f3711(0x340),_0x41b00a=>{const _0x475e0c=_0x8f3711,_0x82dbc9=_0x68999e[_0x475e0c(0x34a)]||_0x475e0c(0x6e8);_0x41b00a[_0x475e0c(0x1c8)][_0x475e0c(0xfc)]=_0x82dbc9===_0x68999e[_0x475e0c(0x7a7)];}),this[_0x8f3711(0x4a7)]&&this[_0x8f3711(0x731)]&&(_0x200620['addEventListener'](_0x8f3711(0x133),_0xe63104=>{const _0x340fc9=_0x8f3711,_0x5564fb={'value'(_0x339468){const _0x20ba56=a0_0x160d;_0x339468[_0x20ba56(0x1c8)]['checked']=_0x339468[_0x20ba56(0x677)][_0x20ba56(0x2b8)]!==_0x20ba56(0x6e8),_0x61461d['setValue'](_0xc2293f,{'value':_0x339468[_0x20ba56(0x1c8)][_0x20ba56(0xfc)]});}};this[_0x340fc9(0x695)](_0x5564fb,_0xe63104);}),this[_0x8f3711(0x5cd)](_0x200620,[['change',_0x8f3711(0x550)],['change',_0x8f3711(0x592)],['focus','Focus'],[_0x8f3711(0x456),_0x8f3711(0x634)],['mousedown',_0x8f3711(0x6b3)],[_0x8f3711(0x5ed),_0x8f3711(0x228)],[_0x8f3711(0x4e4),_0x8f3711(0x56e)],['mouseup',_0x8f3711(0x8fc)]],_0x153419=>_0x153419['target'][_0x8f3711(0xfc)])),this[_0x8f3711(0x209)](_0x200620),this[_0x8f3711(0x9ad)](_0x200620),this['container'][_0x8f3711(0x45e)](_0x200620),this[_0x8f3711(0x2e0)];}}class _0x589802 extends _0x182efb{constructor(_0x227f5f){const _0x288c1f=_0x34684e;super(_0x227f5f,{'isRenderable':_0x227f5f[_0x288c1f(0x874)]});}[_0x34684e(0x6c8)](){const _0x57b32c=_0x34684e;this['container'][_0x57b32c(0x2bc)][_0x57b32c(0x156)](_0x57b32c(0x1eb),_0x57b32c(0x164));const _0x3aa674=this['annotationStorage'],_0x176282=this[_0x57b32c(0x41b)],_0x41ccc6=_0x176282['id'];let _0x128dd3=_0x3aa674[_0x57b32c(0xde)](_0x41ccc6,{'value':_0x176282[_0x57b32c(0x46d)]===_0x176282[_0x57b32c(0x3fa)]})[_0x57b32c(0x2b8)];typeof _0x128dd3===_0x57b32c(0x8cd)&&(_0x128dd3=_0x128dd3!==_0x176282['buttonValue'],_0x3aa674[_0x57b32c(0x699)](_0x41ccc6,{'value':_0x128dd3}));const _0x20730a=document[_0x57b32c(0x400)](_0x57b32c(0x3e6));_0xe9026f['add'](_0x20730a),_0x20730a['setAttribute'](_0x57b32c(0x9a2),_0x41ccc6),_0x20730a[_0x57b32c(0x93b)]=_0x176282[_0x57b32c(0x23f)],this['_setRequired'](_0x20730a,this['data'][_0x57b32c(0x447)]),_0x20730a['type']=_0x57b32c(0x2fe),_0x20730a[_0x57b32c(0x499)]=_0x176282[_0x57b32c(0x509)]||_0x176282[_0x57b32c(0x8ed)];_0x128dd3&&_0x20730a['setAttribute'](_0x57b32c(0xfc),!![]);_0x20730a['tabIndex']=_0x3d9ae1,_0x20730a['addEventListener'](_0x57b32c(0x169),_0x596086=>{const _0xa405f7=_0x57b32c,{name:_0x27917d,checked:_0x36dfa6}=_0x596086[_0xa405f7(0x1c8)];for(const _0x2cc839 of this[_0xa405f7(0x37e)](_0x27917d,_0x41ccc6)){_0x3aa674[_0xa405f7(0x699)](_0x2cc839['id'],{'value':![]});}_0x3aa674['setValue'](_0x41ccc6,{'value':_0x36dfa6});}),_0x20730a[_0x57b32c(0x5cc)](_0x57b32c(0x340),_0x470ee9=>{const _0x4c04fe=_0x57b32c,_0x2a849b=_0x176282[_0x4c04fe(0x34a)];_0x470ee9['target'][_0x4c04fe(0xfc)]=_0x2a849b!==null&&_0x2a849b!==undefined&&_0x2a849b===_0x176282[_0x4c04fe(0x3fa)];});if(this[_0x57b32c(0x4a7)]&&this['hasJSActions']){const _0x3f5313=_0x176282['buttonValue'];_0x20730a[_0x57b32c(0x5cc)](_0x57b32c(0x133),_0x3b7ab7=>{const _0xc5bba2={'value':_0x96697f=>{const _0x261415=a0_0x160d,_0x4fa8da=_0x3f5313===_0x96697f[_0x261415(0x677)][_0x261415(0x2b8)];for(const _0x2b2fa4 of this['_getElementsByName'](_0x96697f[_0x261415(0x1c8)][_0x261415(0x499)])){const _0x1d1514=_0x4fa8da&&_0x2b2fa4['id']===_0x41ccc6;_0x2b2fa4[_0x261415(0x6d3)]&&(_0x2b2fa4[_0x261415(0x6d3)][_0x261415(0xfc)]=_0x1d1514),_0x3aa674[_0x261415(0x699)](_0x2b2fa4['id'],{'value':_0x1d1514});}}};this['_dispatchEventFromSandbox'](_0xc5bba2,_0x3b7ab7);}),this['_setEventListeners'](_0x20730a,[[_0x57b32c(0x169),'Validate'],['change',_0x57b32c(0x592)],['focus',_0x57b32c(0x560)],[_0x57b32c(0x456),'Blur'],['mousedown','Mouse\x20Down'],[_0x57b32c(0x5ed),_0x57b32c(0x228)],['mouseleave',_0x57b32c(0x56e)],[_0x57b32c(0x45a),_0x57b32c(0x8fc)]],_0x3c8de9=>_0x3c8de9[_0x57b32c(0x1c8)][_0x57b32c(0xfc)]);}return this[_0x57b32c(0x209)](_0x20730a),this['_setDefaultPropertiesFromJS'](_0x20730a),this[_0x57b32c(0x2e0)][_0x57b32c(0x45e)](_0x20730a),this['container'];}}class _0x3a98a7 extends _0x23222c{constructor(_0x480124){const _0x531b78=_0x34684e;super(_0x480124,{'ignoreBorder':_0x480124[_0x531b78(0x41b)][_0x531b78(0x31f)]});}['render'](){const _0x20a1d0=_0x34684e,_0x23a34b=super[_0x20a1d0(0x6c8)]();_0x23a34b[_0x20a1d0(0x2bc)][_0x20a1d0(0x156)]('buttonWidgetAnnotation','pushButton');this['data'][_0x20a1d0(0x211)]&&(_0x23a34b[_0x20a1d0(0x5d6)]=this['data'][_0x20a1d0(0x211)]);const _0x26e44d=_0x23a34b['lastChild'];return this[_0x20a1d0(0x4a7)]&&this['hasJSActions']&&_0x26e44d&&(this[_0x20a1d0(0x9ad)](_0x26e44d),_0x26e44d[_0x20a1d0(0x5cc)](_0x20a1d0(0x133),_0x1d1ecd=>{const _0x1c4a51=_0x20a1d0;this[_0x1c4a51(0x695)]({},_0x1d1ecd);})),_0x23a34b;}}class _0x144da5 extends _0x182efb{constructor(_0x41a9e0){const _0x3c7803=_0x34684e;super(_0x41a9e0,{'isRenderable':_0x41a9e0[_0x3c7803(0x874)]});}[_0x34684e(0x6c8)](){const _0x45815f=_0x34684e;this[_0x45815f(0x2e0)][_0x45815f(0x2bc)][_0x45815f(0x156)]('choiceWidgetAnnotation');const _0x119dab=this[_0x45815f(0x5bf)],_0x4b477f=this[_0x45815f(0x41b)]['id'],_0x811fb=_0x119dab[_0x45815f(0xde)](_0x4b477f,{'value':this['data'][_0x45815f(0x46d)]}),_0x41e924=document[_0x45815f(0x400)](_0x45815f(0x243));_0xe9026f['add'](_0x41e924),_0x41e924['setAttribute'](_0x45815f(0x9a2),_0x4b477f),_0x41e924['disabled']=this[_0x45815f(0x41b)][_0x45815f(0x23f)],this[_0x45815f(0xce)](_0x41e924,this[_0x45815f(0x41b)][_0x45815f(0x447)]),_0x41e924[_0x45815f(0x499)]=this[_0x45815f(0x41b)][_0x45815f(0x509)]||this[_0x45815f(0x41b)][_0x45815f(0x8ed)],_0x41e924['tabIndex']=_0x3d9ae1;let _0x16adba=this[_0x45815f(0x41b)][_0x45815f(0x90c)]&&this[_0x45815f(0x41b)][_0x45815f(0x18b)][_0x45815f(0x557)]>0x0;!this[_0x45815f(0x41b)]['combo']&&(_0x41e924[_0x45815f(0x87a)]=this[_0x45815f(0x41b)][_0x45815f(0x18b)][_0x45815f(0x557)],this['data'][_0x45815f(0x490)]&&(_0x41e924[_0x45815f(0x9f2)]=!![]));_0x41e924[_0x45815f(0x5cc)]('resetform',_0x4da0ce=>{const _0x15808a=_0x45815f,_0x5eb72e=this[_0x15808a(0x41b)][_0x15808a(0x34a)];for(const _0x424dc4 of _0x41e924['options']){_0x424dc4[_0x15808a(0x78a)]=_0x424dc4[_0x15808a(0x2b8)]===_0x5eb72e;}});for(const _0x2793b7 of this[_0x45815f(0x41b)][_0x45815f(0x18b)]){const _0x908f2c=document[_0x45815f(0x400)](_0x45815f(0x131));_0x908f2c[_0x45815f(0x8a9)]=_0x2793b7[_0x45815f(0x8b1)],_0x908f2c[_0x45815f(0x2b8)]=_0x2793b7[_0x45815f(0x7a7)],_0x811fb['value'][_0x45815f(0x720)](_0x2793b7[_0x45815f(0x7a7)])&&(_0x908f2c[_0x45815f(0x636)](_0x45815f(0x78a),!![]),_0x16adba=![]),_0x41e924[_0x45815f(0x45e)](_0x908f2c);}let _0xc3e8dd=null;if(_0x16adba){const _0x1ed343=document[_0x45815f(0x400)](_0x45815f(0x131));_0x1ed343[_0x45815f(0x2b8)]='\x20',_0x1ed343[_0x45815f(0x636)]('hidden',!![]),_0x1ed343[_0x45815f(0x636)](_0x45815f(0x78a),!![]),_0x41e924['prepend'](_0x1ed343),_0xc3e8dd=()=>{const _0x3067ef=_0x45815f;_0x1ed343[_0x3067ef(0x10a)](),_0x41e924[_0x3067ef(0x1c0)](_0x3067ef(0x3e6),_0xc3e8dd),_0xc3e8dd=null;},_0x41e924[_0x45815f(0x5cc)](_0x45815f(0x3e6),_0xc3e8dd);}const _0x7e5d82=_0xdf4120=>{const _0x3e5179=_0x45815f,_0x592a38=_0xdf4120?_0x3e5179(0x2b8):_0x3e5179(0x8a9),{options:_0x2cf3dc,multiple:_0x246b17}=_0x41e924;if(!_0x246b17)return _0x2cf3dc[_0x3e5179(0x97c)]===-0x1?null:_0x2cf3dc[_0x2cf3dc[_0x3e5179(0x97c)]][_0x592a38];return Array[_0x3e5179(0x821)]['filter']['call'](_0x2cf3dc,_0x48ce=>_0x48ce[_0x3e5179(0x78a)])[_0x3e5179(0x7ec)](_0x1c975d=>_0x1c975d[_0x592a38]);};let _0x1148eb=_0x7e5d82(![]);const _0x2bb050=_0x461717=>{const _0x54d532=_0x45815f,_0x129829=_0x461717['target'][_0x54d532(0x18b)];return Array[_0x54d532(0x821)][_0x54d532(0x7ec)][_0x54d532(0x569)](_0x129829,_0x579a4c=>{const _0x44535b=_0x54d532;return{'displayValue':_0x579a4c[_0x44535b(0x8a9)],'exportValue':_0x579a4c[_0x44535b(0x2b8)]};});};this[_0x45815f(0x4a7)]&&this[_0x45815f(0x731)]?(_0x41e924[_0x45815f(0x5cc)]('updatefromsandbox',_0xe89d48=>{const _0x5443a0=_0x45815f,_0x1db04c={'value'(_0x32e7a9){const _0x486135=a0_0x160d;_0xc3e8dd?.();const _0x2d91f0=_0x32e7a9[_0x486135(0x677)]['value'],_0x3a1f4d=new Set(Array[_0x486135(0x419)](_0x2d91f0)?_0x2d91f0:[_0x2d91f0]);for(const _0x2b0293 of _0x41e924[_0x486135(0x18b)]){_0x2b0293[_0x486135(0x78a)]=_0x3a1f4d[_0x486135(0x373)](_0x2b0293[_0x486135(0x2b8)]);}_0x119dab['setValue'](_0x4b477f,{'value':_0x7e5d82(!![])}),_0x1148eb=_0x7e5d82(![]);},'multipleSelection'(_0x50f980){_0x41e924['multiple']=!![];},'remove'(_0x394375){const _0x46c786=a0_0x160d,_0x34bcb8=_0x41e924[_0x46c786(0x18b)],_0x25f272=_0x394375[_0x46c786(0x677)][_0x46c786(0x10a)];_0x34bcb8[_0x25f272][_0x46c786(0x78a)]=![],_0x41e924['remove'](_0x25f272);if(_0x34bcb8[_0x46c786(0x557)]>0x0){const _0x3885ad=Array[_0x46c786(0x821)][_0x46c786(0x5eb)][_0x46c786(0x569)](_0x34bcb8,_0x53efb2=>_0x53efb2[_0x46c786(0x78a)]);_0x3885ad===-0x1&&(_0x34bcb8[0x0][_0x46c786(0x78a)]=!![]);}_0x119dab[_0x46c786(0x699)](_0x4b477f,{'value':_0x7e5d82(!![]),'items':_0x2bb050(_0x394375)}),_0x1148eb=_0x7e5d82(![]);},'clear'(_0x3311fc){const _0x25e79c=a0_0x160d;while(_0x41e924[_0x25e79c(0x557)]!==0x0){_0x41e924[_0x25e79c(0x10a)](0x0);}_0x119dab[_0x25e79c(0x699)](_0x4b477f,{'value':null,'items':[]}),_0x1148eb=_0x7e5d82(![]);},'insert'(_0x1eb3d6){const _0x1d4a23=a0_0x160d,{index:_0x15cddd,displayValue:_0x1c1af4,exportValue:_0x1a29bf}=_0x1eb3d6[_0x1d4a23(0x677)][_0x1d4a23(0x762)],_0x7a9983=_0x41e924[_0x1d4a23(0x6be)][_0x15cddd],_0x3b9f17=document['createElement'](_0x1d4a23(0x131));_0x3b9f17[_0x1d4a23(0x8a9)]=_0x1c1af4,_0x3b9f17[_0x1d4a23(0x2b8)]=_0x1a29bf,_0x7a9983?_0x7a9983[_0x1d4a23(0x8f7)](_0x3b9f17):_0x41e924[_0x1d4a23(0x45e)](_0x3b9f17),_0x119dab[_0x1d4a23(0x699)](_0x4b477f,{'value':_0x7e5d82(!![]),'items':_0x2bb050(_0x1eb3d6)}),_0x1148eb=_0x7e5d82(![]);},'items'(_0x1c2e1f){const _0x2ecece=a0_0x160d,{items:_0x4fb57a}=_0x1c2e1f[_0x2ecece(0x677)];while(_0x41e924['length']!==0x0){_0x41e924[_0x2ecece(0x10a)](0x0);}for(const _0x20e1a5 of _0x4fb57a){const {displayValue:_0x2d13ac,exportValue:_0xf8ab4b}=_0x20e1a5,_0x5f3561=document[_0x2ecece(0x400)](_0x2ecece(0x131));_0x5f3561[_0x2ecece(0x8a9)]=_0x2d13ac,_0x5f3561[_0x2ecece(0x2b8)]=_0xf8ab4b,_0x41e924[_0x2ecece(0x45e)](_0x5f3561);}_0x41e924[_0x2ecece(0x18b)]['length']>0x0&&(_0x41e924['options'][0x0]['selected']=!![]),_0x119dab[_0x2ecece(0x699)](_0x4b477f,{'value':_0x7e5d82(!![]),'items':_0x2bb050(_0x1c2e1f)}),_0x1148eb=_0x7e5d82(![]);},'indices'(_0x13ce3d){const _0x51821e=a0_0x160d,_0x40d7ab=new Set(_0x13ce3d[_0x51821e(0x677)][_0x51821e(0x46e)]);for(const _0x62cf24 of _0x13ce3d[_0x51821e(0x1c8)][_0x51821e(0x18b)]){_0x62cf24[_0x51821e(0x78a)]=_0x40d7ab[_0x51821e(0x373)](_0x62cf24[_0x51821e(0x37c)]);}_0x119dab[_0x51821e(0x699)](_0x4b477f,{'value':_0x7e5d82(!![])}),_0x1148eb=_0x7e5d82(![]);},'editable'(_0x543a74){const _0x30500d=a0_0x160d;_0x543a74[_0x30500d(0x1c8)][_0x30500d(0x93b)]=!_0x543a74[_0x30500d(0x677)][_0x30500d(0x27d)];}};this[_0x5443a0(0x695)](_0x1db04c,_0xe89d48);}),_0x41e924[_0x45815f(0x5cc)]('input',_0x3e93d6=>{const _0x3421d0=_0x45815f,_0x25c207=_0x7e5d82(!![]);_0x119dab['setValue'](_0x4b477f,{'value':_0x25c207}),_0x3e93d6[_0x3421d0(0x9af)](),this[_0x3421d0(0x8a6)][_0x3421d0(0x64b)]?.[_0x3421d0(0x3c0)](_0x3421d0(0x81a),{'source':this,'detail':{'id':_0x4b477f,'name':_0x3421d0(0x16f),'value':_0x1148eb,'changeEx':_0x25c207,'willCommit':![],'commitKey':0x1,'keyDown':![]}});}),this[_0x45815f(0x5cd)](_0x41e924,[[_0x45815f(0x47d),_0x45815f(0x560)],['blur',_0x45815f(0x634)],[_0x45815f(0x7ed),_0x45815f(0x6b3)],[_0x45815f(0x5ed),_0x45815f(0x228)],[_0x45815f(0x4e4),_0x45815f(0x56e)],[_0x45815f(0x45a),_0x45815f(0x8fc)],[_0x45815f(0x3e6),_0x45815f(0x592)],['input',_0x45815f(0x550)]],_0x1b4744=>_0x1b4744[_0x45815f(0x1c8)]['value'])):_0x41e924['addEventListener'](_0x45815f(0x3e6),function(_0x530c97){const _0x3e0223=_0x45815f;_0x119dab[_0x3e0223(0x699)](_0x4b477f,{'value':_0x7e5d82(!![])});});if(this[_0x45815f(0x41b)]['combo'])this[_0x45815f(0x663)](_0x41e924);else{}return this[_0x45815f(0x209)](_0x41e924),this[_0x45815f(0x9ad)](_0x41e924),this[_0x45815f(0x2e0)]['append'](_0x41e924),this[_0x45815f(0x2e0)];}}class _0x24aaee extends _0xba9c35{constructor(_0x4703f5){const _0x1e9713=_0x34684e,{data:_0x2dca47,elements:_0xbaae51}=_0x4703f5,_0x56c1ae=!!(_0x2dca47['titleObj']?.['str']||_0x2dca47[_0x1e9713(0x3a1)]?.[_0x1e9713(0xcf)]||_0x2dca47[_0x1e9713(0x68f)]?.[_0x1e9713(0xcf)]);super(_0x4703f5,{'isRenderable':_0x56c1ae}),this['elements']=_0xbaae51;}['render'](){const _0xaeb1e5=_0x34684e;this[_0xaeb1e5(0x2e0)][_0xaeb1e5(0x2bc)][_0xaeb1e5(0x156)](_0xaeb1e5(0x29f));const _0x560cb4=new _0x42f658({'container':this[_0xaeb1e5(0x2e0)],'color':this[_0xaeb1e5(0x41b)][_0xaeb1e5(0x5fe)],'titleObj':this[_0xaeb1e5(0x41b)][_0xaeb1e5(0x363)],'modificationDate':this['data'][_0xaeb1e5(0x562)],'contentsObj':this['data'][_0xaeb1e5(0x3a1)],'richText':this[_0xaeb1e5(0x41b)][_0xaeb1e5(0x68f)],'rect':this[_0xaeb1e5(0x41b)][_0xaeb1e5(0x333)],'parentRect':this[_0xaeb1e5(0x41b)]['parentRect']||null,'parent':this[_0xaeb1e5(0x4c3)],'elements':this[_0xaeb1e5(0x367)],'open':this[_0xaeb1e5(0x41b)][_0xaeb1e5(0x514)]}),_0x5e460a=[];for(const _0xee5cd7 of this['elements']){_0xee5cd7[_0xaeb1e5(0x895)]=_0x560cb4,_0x5e460a['push'](_0xee5cd7['data']['id']),_0xee5cd7['addHighlightArea']();}return this[_0xaeb1e5(0x2e0)][_0xaeb1e5(0x636)]('aria-controls',_0x5e460a[_0xaeb1e5(0x334)](',')),this[_0xaeb1e5(0x2e0)];}}class _0x42f658{#dateTimePromise=null;#boundHide=this.#hide[_0x34684e(0x5e8)](this);#boundShow=this.#show[_0x34684e(0x5e8)](this);#boundToggle=this.#toggle[_0x34684e(0x5e8)](this);#color=null;#container=null;#contentsObj=null;#elements=null;#parent=null;#parentRect=null;#pinned=![];#popup=null;#rect=null;#richText=null;#titleObj=null;#wasVisible=![];constructor(_0x210d9e){const _0x3ab652=_0x34684e;let {container:_0x529dcc,color:_0x16183b,elements:_0x1dee4c,titleObj:_0x1490ae,modificationDate:_0x3cc136,contentsObj:_0x5c09fa,richText:_0x17d9ee,parent:_0x329022,rect:_0x2b7a81,parentRect:_0x2d9a49,open:_0x5e3e90}=_0x210d9e;this.#container=_0x529dcc,this.#titleObj=_0x1490ae,this.#contentsObj=_0x5c09fa,this.#richText=_0x17d9ee,this.#parent=_0x329022,this.#color=_0x16183b,this.#rect=_0x2b7a81,this.#parentRect=_0x2d9a49,this.#elements=_0x1dee4c;const _0x29ccdd=_0x1ee1b8[_0x3ab652(0x35e)]['toDateObject'](_0x3cc136);_0x29ccdd&&(this.#dateTimePromise=_0x329022['l10n'][_0x3ab652(0x8c4)](_0x3ab652(0x975),{'date':_0x29ccdd[_0x3ab652(0x489)](),'time':_0x29ccdd[_0x3ab652(0x984)]()}));this['trigger']=_0x1dee4c[_0x3ab652(0x9bf)](_0x584e76=>_0x584e76[_0x3ab652(0x3c4)]());for(const _0x3720c7 of this[_0x3ab652(0x808)]){_0x3720c7[_0x3ab652(0x5cc)](_0x3ab652(0x45d),this.#boundToggle),_0x3720c7['addEventListener'](_0x3ab652(0x5ed),this.#boundShow),_0x3720c7[_0x3ab652(0x5cc)]('mouseleave',this.#boundHide);}this.#container['hidden']=!![],_0x5e3e90&&this.#toggle();}['render'](){const _0x1999f8=_0x34684e;if(this.#popup)return;const {page:{view:_0x22ac4f},viewport:{rawDims:{pageWidth:_0x38f8dd,pageHeight:_0x1b8a62,pageX:_0xf30d4,pageY:_0x481276}}}=this.#parent,_0x355571=this.#popup=document[_0x1999f8(0x400)](_0x1999f8(0x903));_0x355571['className']=_0x1999f8(0x895);if(this.#color){const _0x8850e1=_0x355571[_0x1999f8(0x498)]['outlineColor']=_0x20ce9d['Util'][_0x1999f8(0x86a)](...this.#color);if(CSS[_0x1999f8(0x2d8)](_0x1999f8(0x3a5),'color-mix(in\x20srgb,\x20red\x2030%,\x20white)'))_0x355571['style'][_0x1999f8(0x98d)]=_0x1999f8(0x3c8)+_0x8850e1+_0x1999f8(0x3a4);else{const _0x25d7ce=0.7;_0x355571[_0x1999f8(0x498)]['backgroundColor']=_0x20ce9d[_0x1999f8(0x5d7)]['makeHexColor'](...this.#color[_0x1999f8(0x7ec)](_0x3a77e5=>Math[_0x1999f8(0x583)](_0x25d7ce*(0xff-_0x3a77e5)+_0x3a77e5)));}}const _0x91b302=document[_0x1999f8(0x400)](_0x1999f8(0x901));_0x91b302[_0x1999f8(0x52b)]=_0x1999f8(0x935);const _0x426d15=document[_0x1999f8(0x400)]('h1');_0x91b302[_0x1999f8(0x45e)](_0x426d15),{dir:_0x426d15['dir'],str:_0x426d15[_0x1999f8(0x8a9)]}=this.#titleObj,_0x355571[_0x1999f8(0x45e)](_0x91b302);if(this.#dateTimePromise){const _0x1710d6=document[_0x1999f8(0x400)](_0x1999f8(0x901));_0x1710d6[_0x1999f8(0x2bc)][_0x1999f8(0x156)](_0x1999f8(0x8d9)),this.#dateTimePromise[_0x1999f8(0x22d)](_0x31ebde=>{const _0x31ab09=_0x1999f8;_0x1710d6[_0x31ab09(0x8a9)]=_0x31ebde;}),_0x91b302['append'](_0x1710d6);}const _0x3e2854=this.#contentsObj,_0x21453f=this.#richText;if(_0x21453f?.[_0x1999f8(0xcf)]&&(!_0x3e2854?.[_0x1999f8(0xcf)]||_0x3e2854['str']===_0x21453f['str']))_0x50cc29[_0x1999f8(0x139)][_0x1999f8(0x6c8)]({'xfaHtml':_0x21453f[_0x1999f8(0x850)],'intent':_0x1999f8(0x68f),'div':_0x355571}),_0x355571[_0x1999f8(0x9d9)][_0x1999f8(0x2bc)]['add']('richText',_0x1999f8(0x57e));else{const _0x27bb7d=this[_0x1999f8(0x740)](_0x3e2854);_0x355571[_0x1999f8(0x45e)](_0x27bb7d);}let _0x7e5b84=!!this.#parentRect,_0x7c40c2=_0x7e5b84?this.#parentRect:this.#rect;for(const _0x16e6d1 of this.#elements){if(!_0x7c40c2||_0x20ce9d[_0x1999f8(0x5d7)][_0x1999f8(0x441)](_0x16e6d1[_0x1999f8(0x41b)][_0x1999f8(0x333)],_0x7c40c2)!==null){_0x7c40c2=_0x16e6d1['data']['rect'],_0x7e5b84=!![];break;}}const _0x228be8=_0x20ce9d['Util'][_0x1999f8(0x3da)]([_0x7c40c2[0x0],_0x22ac4f[0x3]-_0x7c40c2[0x1]+_0x22ac4f[0x1],_0x7c40c2[0x2],_0x22ac4f[0x3]-_0x7c40c2[0x3]+_0x22ac4f[0x1]]),_0x47601c=0x5,_0x1a8e1e=_0x7e5b84?_0x7c40c2[0x2]-_0x7c40c2[0x0]+_0x47601c:0x0,_0x25b19d=_0x228be8[0x0]+_0x1a8e1e,_0x42020a=_0x228be8[0x1],{style:_0x339126}=this.#container;_0x339126[_0x1999f8(0x4fd)]=0x64*(_0x25b19d-_0xf30d4)/_0x38f8dd+'%',_0x339126[_0x1999f8(0x12f)]=0x64*(_0x42020a-_0x481276)/_0x1b8a62+'%',this.#container[_0x1999f8(0x45e)](_0x355571);}['_formatContents'](_0x342016){const _0x5d048b=_0x34684e;let {str:_0x2aa66d,dir:_0x325668}=_0x342016;const _0x514879=document[_0x5d048b(0x400)]('p');_0x514879[_0x5d048b(0x2bc)][_0x5d048b(0x156)]('popupContent'),_0x514879['dir']=_0x325668;const _0x496a95=_0x2aa66d[_0x5d048b(0x6db)](/(?:\r\n?|\n)/);for(let _0x44ffcb=0x0,_0xcc2ac7=_0x496a95[_0x5d048b(0x557)];_0x44ffcb<_0xcc2ac7;++_0x44ffcb){const _0x14a784=_0x496a95[_0x44ffcb];_0x514879[_0x5d048b(0x45e)](document[_0x5d048b(0x8fa)](_0x14a784)),_0x44ffcb<_0xcc2ac7-0x1&&_0x514879[_0x5d048b(0x45e)](document[_0x5d048b(0x400)]('br'));}return _0x514879;}#toggle(){const _0x122500=_0x34684e;this.#pinned=!this.#pinned,this.#pinned?(this.#show(),this.#container['addEventListener'](_0x122500(0x45d),this.#boundToggle)):(this.#hide(),this.#container[_0x122500(0x1c0)](_0x122500(0x45d),this.#boundToggle));}#show(){const _0x599ecd=_0x34684e;!this.#popup&&this[_0x599ecd(0x6c8)]();if(!this['isVisible'])this.#container[_0x599ecd(0x495)]=![],this.#container[_0x599ecd(0x498)][_0x599ecd(0x177)]=parseInt(this.#container[_0x599ecd(0x498)]['zIndex'])+0x3e8;else this.#pinned&&this.#container[_0x599ecd(0x2bc)][_0x599ecd(0x156)](_0x599ecd(0x5ea));}#hide(){const _0x52157f=_0x34684e;this.#container[_0x52157f(0x2bc)]['remove'](_0x52157f(0x5ea));if(this.#pinned||!this[_0x52157f(0x6f4)])return;this.#container['hidden']=!![],this.#container[_0x52157f(0x498)][_0x52157f(0x177)]=parseInt(this.#container[_0x52157f(0x498)]['zIndex'])-0x3e8;}['forceHide'](){const _0x37928e=_0x34684e;this.#wasVisible=this[_0x37928e(0x6f4)];if(!this.#wasVisible)return;this.#container['hidden']=!![];}[_0x34684e(0x798)](){if(!this.#wasVisible)return;this.#wasVisible=![],this.#container['hidden']=![];}get[_0x34684e(0x6f4)](){return this.#container['hidden']===![];}}class _0x56492f extends _0xba9c35{constructor(_0x4deadd){const _0x2a23fd=_0x34684e,_0x3e01a4=!!(_0x4deadd[_0x2a23fd(0x41b)][_0x2a23fd(0x9c8)]||_0x4deadd[_0x2a23fd(0x41b)][_0x2a23fd(0x363)]?.[_0x2a23fd(0xcf)]||_0x4deadd[_0x2a23fd(0x41b)][_0x2a23fd(0x3a1)]?.[_0x2a23fd(0xcf)]||_0x4deadd[_0x2a23fd(0x41b)][_0x2a23fd(0x68f)]?.[_0x2a23fd(0xcf)]);super(_0x4deadd,{'isRenderable':_0x3e01a4,'ignoreBorder':!![]}),this[_0x2a23fd(0x8a9)]=_0x4deadd[_0x2a23fd(0x41b)][_0x2a23fd(0x8a9)],this[_0x2a23fd(0x4e2)]=_0x20ce9d[_0x2a23fd(0x9a6)][_0x2a23fd(0x148)];}['render'](){const _0x5c9861=_0x34684e;this['container'][_0x5c9861(0x2bc)][_0x5c9861(0x156)](_0x5c9861(0x4a9));if(this[_0x5c9861(0x8a9)]){const _0x323a8c=document[_0x5c9861(0x400)](_0x5c9861(0x903));_0x323a8c[_0x5c9861(0x2bc)][_0x5c9861(0x156)](_0x5c9861(0x4bc)),_0x323a8c[_0x5c9861(0x636)]('role',_0x5c9861(0x84a));for(const _0x2b5659 of this['textContent']){const _0x2a4f84=document[_0x5c9861(0x400)](_0x5c9861(0x901));_0x2a4f84[_0x5c9861(0x8a9)]=_0x2b5659,_0x323a8c[_0x5c9861(0x45e)](_0x2a4f84);}this['container'][_0x5c9861(0x45e)](_0x323a8c);}return!this[_0x5c9861(0x41b)]['popupRef']&&this[_0x5c9861(0x544)](),this[_0x5c9861(0x64d)](),this[_0x5c9861(0x2e0)];}}_0x2c4a41['FreeTextAnnotationElement']=_0x56492f;class _0xf4a368 extends _0xba9c35{#line=null;constructor(_0x2bd4a){const _0x4b4a9e=_0x34684e,_0x82b898=!!(_0x2bd4a['data'][_0x4b4a9e(0x9c8)]||_0x2bd4a['data']['titleObj']?.[_0x4b4a9e(0xcf)]||_0x2bd4a['data'][_0x4b4a9e(0x3a1)]?.[_0x4b4a9e(0xcf)]||_0x2bd4a[_0x4b4a9e(0x41b)]['richText']?.[_0x4b4a9e(0xcf)]);super(_0x2bd4a,{'isRenderable':_0x82b898,'ignoreBorder':!![]});}[_0x34684e(0x6c8)](){const _0x524f83=_0x34684e;this[_0x524f83(0x2e0)][_0x524f83(0x2bc)][_0x524f83(0x156)](_0x524f83(0x922));const _0x319b47=this[_0x524f83(0x41b)],{width:_0x28f2cd,height:_0x1f4cd3}=_0x23686a(_0x319b47['rect']),_0x52d96b=this[_0x524f83(0x385)][_0x524f83(0x77c)](_0x28f2cd,_0x1f4cd3,!![]),_0x4a04a9=this.#line=this[_0x524f83(0x385)][_0x524f83(0x400)]('svg:line');return _0x4a04a9[_0x524f83(0x636)]('x1',_0x319b47['rect'][0x2]-_0x319b47[_0x524f83(0x436)][0x0]),_0x4a04a9[_0x524f83(0x636)]('y1',_0x319b47[_0x524f83(0x333)][0x3]-_0x319b47[_0x524f83(0x436)][0x1]),_0x4a04a9[_0x524f83(0x636)]('x2',_0x319b47[_0x524f83(0x333)][0x2]-_0x319b47[_0x524f83(0x436)][0x2]),_0x4a04a9[_0x524f83(0x636)]('y2',_0x319b47[_0x524f83(0x333)][0x3]-_0x319b47[_0x524f83(0x436)][0x3]),_0x4a04a9[_0x524f83(0x636)]('stroke-width',_0x319b47[_0x524f83(0x7e6)][_0x524f83(0x98b)]||0x1),_0x4a04a9['setAttribute'](_0x524f83(0x849),'transparent'),_0x4a04a9[_0x524f83(0x636)](_0x524f83(0x923),_0x524f83(0x910)),_0x52d96b[_0x524f83(0x45e)](_0x4a04a9),this[_0x524f83(0x2e0)][_0x524f83(0x45e)](_0x52d96b),!_0x319b47[_0x524f83(0x9c8)]&&this[_0x524f83(0x544)](),this[_0x524f83(0x2e0)];}['getElementsToTriggerPopup'](){return this.#line;}[_0x34684e(0xf0)](){const _0x17a57c=_0x34684e;this[_0x17a57c(0x2e0)][_0x17a57c(0x2bc)][_0x17a57c(0x156)](_0x17a57c(0x89e));}}class _0x2ff0ee extends _0xba9c35{#square=null;constructor(_0xaa3eb4){const _0x1d52cf=_0x34684e,_0x2cb626=!!(_0xaa3eb4[_0x1d52cf(0x41b)]['popupRef']||_0xaa3eb4['data']['titleObj']?.['str']||_0xaa3eb4[_0x1d52cf(0x41b)][_0x1d52cf(0x3a1)]?.[_0x1d52cf(0xcf)]||_0xaa3eb4[_0x1d52cf(0x41b)][_0x1d52cf(0x68f)]?.[_0x1d52cf(0xcf)]);super(_0xaa3eb4,{'isRenderable':_0x2cb626,'ignoreBorder':!![]});}[_0x34684e(0x6c8)](){const _0x4c9d70=_0x34684e;this[_0x4c9d70(0x2e0)][_0x4c9d70(0x2bc)][_0x4c9d70(0x156)](_0x4c9d70(0x61a));const _0x1975fc=this[_0x4c9d70(0x41b)],{width:_0x504c7f,height:_0x4958e0}=_0x23686a(_0x1975fc[_0x4c9d70(0x333)]),_0x52695a=this[_0x4c9d70(0x385)][_0x4c9d70(0x77c)](_0x504c7f,_0x4958e0,!![]),_0x2398a1=_0x1975fc[_0x4c9d70(0x7e6)][_0x4c9d70(0x98b)],_0x2d7443=this.#square=this[_0x4c9d70(0x385)][_0x4c9d70(0x400)](_0x4c9d70(0x20f));return _0x2d7443[_0x4c9d70(0x636)]('x',_0x2398a1/0x2),_0x2d7443[_0x4c9d70(0x636)]('y',_0x2398a1/0x2),_0x2d7443[_0x4c9d70(0x636)](_0x4c9d70(0x98b),_0x504c7f-_0x2398a1),_0x2d7443[_0x4c9d70(0x636)]('height',_0x4958e0-_0x2398a1),_0x2d7443['setAttribute']('stroke-width',_0x2398a1||0x1),_0x2d7443[_0x4c9d70(0x636)](_0x4c9d70(0x849),_0x4c9d70(0x910)),_0x2d7443[_0x4c9d70(0x636)]('fill',_0x4c9d70(0x910)),_0x52695a[_0x4c9d70(0x45e)](_0x2d7443),this[_0x4c9d70(0x2e0)][_0x4c9d70(0x45e)](_0x52695a),!_0x1975fc[_0x4c9d70(0x9c8)]&&this[_0x4c9d70(0x544)](),this[_0x4c9d70(0x2e0)];}['getElementsToTriggerPopup'](){return this.#square;}[_0x34684e(0xf0)](){const _0x299282=_0x34684e;this['container'][_0x299282(0x2bc)][_0x299282(0x156)](_0x299282(0x89e));}}class _0x2b3434 extends _0xba9c35{#circle=null;constructor(_0x6f356){const _0x3fca5b=_0x34684e,_0x2f85be=!!(_0x6f356[_0x3fca5b(0x41b)][_0x3fca5b(0x9c8)]||_0x6f356[_0x3fca5b(0x41b)][_0x3fca5b(0x363)]?.[_0x3fca5b(0xcf)]||_0x6f356[_0x3fca5b(0x41b)][_0x3fca5b(0x3a1)]?.[_0x3fca5b(0xcf)]||_0x6f356[_0x3fca5b(0x41b)][_0x3fca5b(0x68f)]?.[_0x3fca5b(0xcf)]);super(_0x6f356,{'isRenderable':_0x2f85be,'ignoreBorder':!![]});}['render'](){const _0x3dbf03=_0x34684e;this[_0x3dbf03(0x2e0)][_0x3dbf03(0x2bc)][_0x3dbf03(0x156)](_0x3dbf03(0x3d0));const _0x4eb50f=this[_0x3dbf03(0x41b)],{width:_0x377405,height:_0x1ba99b}=_0x23686a(_0x4eb50f[_0x3dbf03(0x333)]),_0x5a09e7=this[_0x3dbf03(0x385)][_0x3dbf03(0x77c)](_0x377405,_0x1ba99b,!![]),_0x253383=_0x4eb50f['borderStyle'][_0x3dbf03(0x98b)],_0x40966b=this.#circle=this[_0x3dbf03(0x385)][_0x3dbf03(0x400)]('svg:ellipse');return _0x40966b['setAttribute']('cx',_0x377405/0x2),_0x40966b['setAttribute']('cy',_0x1ba99b/0x2),_0x40966b[_0x3dbf03(0x636)]('rx',_0x377405/0x2-_0x253383/0x2),_0x40966b[_0x3dbf03(0x636)]('ry',_0x1ba99b/0x2-_0x253383/0x2),_0x40966b[_0x3dbf03(0x636)](_0x3dbf03(0x34e),_0x253383||0x1),_0x40966b[_0x3dbf03(0x636)](_0x3dbf03(0x849),'transparent'),_0x40966b[_0x3dbf03(0x636)]('fill',_0x3dbf03(0x910)),_0x5a09e7['append'](_0x40966b),this[_0x3dbf03(0x2e0)][_0x3dbf03(0x45e)](_0x5a09e7),!_0x4eb50f[_0x3dbf03(0x9c8)]&&this[_0x3dbf03(0x544)](),this['container'];}['getElementsToTriggerPopup'](){return this.#circle;}[_0x34684e(0xf0)](){const _0x1a863a=_0x34684e;this[_0x1a863a(0x2e0)][_0x1a863a(0x2bc)][_0x1a863a(0x156)](_0x1a863a(0x89e));}}class _0x4353ee extends _0xba9c35{#polyline=null;constructor(_0x4bf1fb){const _0x1c1b22=_0x34684e,_0x9e44d9=!!(_0x4bf1fb[_0x1c1b22(0x41b)]['popupRef']||_0x4bf1fb[_0x1c1b22(0x41b)][_0x1c1b22(0x363)]?.['str']||_0x4bf1fb['data']['contentsObj']?.[_0x1c1b22(0xcf)]||_0x4bf1fb[_0x1c1b22(0x41b)][_0x1c1b22(0x68f)]?.['str']);super(_0x4bf1fb,{'isRenderable':_0x9e44d9,'ignoreBorder':!![]}),this['containerClassName']=_0x1c1b22(0x192),this[_0x1c1b22(0x4ad)]='svg:polyline';}[_0x34684e(0x6c8)](){const _0x1793d6=_0x34684e;this[_0x1793d6(0x2e0)][_0x1793d6(0x2bc)]['add'](this[_0x1793d6(0x215)]);const _0x4cd8a5=this[_0x1793d6(0x41b)],{width:_0x8cc8a9,height:_0x1a572f}=_0x23686a(_0x4cd8a5['rect']),_0x19b2fd=this[_0x1793d6(0x385)][_0x1793d6(0x77c)](_0x8cc8a9,_0x1a572f,!![]);let _0x5f23ca=[];for(const _0x4c0fda of _0x4cd8a5[_0x1793d6(0x69f)]){const _0x4dc349=_0x4c0fda['x']-_0x4cd8a5[_0x1793d6(0x333)][0x0],_0x35d7d7=_0x4cd8a5[_0x1793d6(0x333)][0x3]-_0x4c0fda['y'];_0x5f23ca[_0x1793d6(0x7d6)](_0x4dc349+','+_0x35d7d7);}_0x5f23ca=_0x5f23ca[_0x1793d6(0x334)]('\x20');const _0x45d8cb=this.#polyline=this[_0x1793d6(0x385)][_0x1793d6(0x400)](this[_0x1793d6(0x4ad)]);return _0x45d8cb[_0x1793d6(0x636)](_0x1793d6(0x97f),_0x5f23ca),_0x45d8cb[_0x1793d6(0x636)](_0x1793d6(0x34e),_0x4cd8a5[_0x1793d6(0x7e6)]['width']||0x1),_0x45d8cb[_0x1793d6(0x636)]('stroke',_0x1793d6(0x910)),_0x45d8cb[_0x1793d6(0x636)]('fill',_0x1793d6(0x910)),_0x19b2fd[_0x1793d6(0x45e)](_0x45d8cb),this[_0x1793d6(0x2e0)][_0x1793d6(0x45e)](_0x19b2fd),!_0x4cd8a5[_0x1793d6(0x9c8)]&&this['_createPopup'](_0x45d8cb,_0x4cd8a5),this[_0x1793d6(0x2e0)];}[_0x34684e(0x3c4)](){return this.#polyline;}[_0x34684e(0xf0)](){const _0x3e66a0=_0x34684e;this[_0x3e66a0(0x2e0)][_0x3e66a0(0x2bc)][_0x3e66a0(0x156)](_0x3e66a0(0x89e));}}class _0x41f05d extends _0x4353ee{constructor(_0x2c63a8){const _0x1e02b2=_0x34684e;super(_0x2c63a8),this[_0x1e02b2(0x215)]=_0x1e02b2(0x7a0),this['svgElementName']=_0x1e02b2(0x755);}}class _0x46d755 extends _0xba9c35{constructor(_0x5c70cc){const _0xe652b5=_0x34684e,_0x39434f=!!(_0x5c70cc[_0xe652b5(0x41b)][_0xe652b5(0x9c8)]||_0x5c70cc[_0xe652b5(0x41b)][_0xe652b5(0x363)]?.[_0xe652b5(0xcf)]||_0x5c70cc[_0xe652b5(0x41b)][_0xe652b5(0x3a1)]?.[_0xe652b5(0xcf)]||_0x5c70cc[_0xe652b5(0x41b)][_0xe652b5(0x68f)]?.[_0xe652b5(0xcf)]);super(_0x5c70cc,{'isRenderable':_0x39434f,'ignoreBorder':!![]});}[_0x34684e(0x6c8)](){const _0x1230e4=_0x34684e;return this['container'][_0x1230e4(0x2bc)][_0x1230e4(0x156)](_0x1230e4(0x140)),!this[_0x1230e4(0x41b)][_0x1230e4(0x9c8)]&&this[_0x1230e4(0x544)](),this[_0x1230e4(0x2e0)];}}class _0x401798 extends _0xba9c35{#polylines=[];constructor(_0x532c69){const _0x44caea=_0x34684e,_0x4ad4b5=!!(_0x532c69['data'][_0x44caea(0x9c8)]||_0x532c69[_0x44caea(0x41b)][_0x44caea(0x363)]?.[_0x44caea(0xcf)]||_0x532c69[_0x44caea(0x41b)][_0x44caea(0x3a1)]?.['str']||_0x532c69['data']['richText']?.[_0x44caea(0xcf)]);super(_0x532c69,{'isRenderable':_0x4ad4b5,'ignoreBorder':!![]}),this[_0x44caea(0x215)]=_0x44caea(0x694),this[_0x44caea(0x4ad)]=_0x44caea(0x8c7),this[_0x44caea(0x4e2)]=_0x20ce9d['AnnotationEditorType'][_0x44caea(0x8ac)];}[_0x34684e(0x6c8)](){const _0x41b455=_0x34684e;this[_0x41b455(0x2e0)][_0x41b455(0x2bc)][_0x41b455(0x156)](this[_0x41b455(0x215)]);const _0x4b73f8=this[_0x41b455(0x41b)],{width:_0x3323ef,height:_0x48c96f}=_0x23686a(_0x4b73f8[_0x41b455(0x333)]),_0x999f3f=this[_0x41b455(0x385)][_0x41b455(0x77c)](_0x3323ef,_0x48c96f,!![]);for(const _0x47e148 of _0x4b73f8[_0x41b455(0x241)]){let _0x372a92=[];for(const _0x3bc264 of _0x47e148){const _0x5d317f=_0x3bc264['x']-_0x4b73f8[_0x41b455(0x333)][0x0],_0x434d51=_0x4b73f8[_0x41b455(0x333)][0x3]-_0x3bc264['y'];_0x372a92[_0x41b455(0x7d6)](_0x5d317f+','+_0x434d51);}_0x372a92=_0x372a92[_0x41b455(0x334)]('\x20');const _0x3a26ea=this[_0x41b455(0x385)][_0x41b455(0x400)](this[_0x41b455(0x4ad)]);this.#polylines[_0x41b455(0x7d6)](_0x3a26ea),_0x3a26ea[_0x41b455(0x636)]('points',_0x372a92),_0x3a26ea[_0x41b455(0x636)](_0x41b455(0x34e),_0x4b73f8[_0x41b455(0x7e6)][_0x41b455(0x98b)]||0x1),_0x3a26ea[_0x41b455(0x636)](_0x41b455(0x849),_0x41b455(0x910)),_0x3a26ea[_0x41b455(0x636)](_0x41b455(0x923),'transparent'),!_0x4b73f8[_0x41b455(0x9c8)]&&this[_0x41b455(0x544)](_0x3a26ea,_0x4b73f8),_0x999f3f[_0x41b455(0x45e)](_0x3a26ea);}return this['container'][_0x41b455(0x45e)](_0x999f3f),this['container'];}['getElementsToTriggerPopup'](){return this.#polylines;}[_0x34684e(0xf0)](){const _0x1ef83a=_0x34684e;this['container'][_0x1ef83a(0x2bc)][_0x1ef83a(0x156)](_0x1ef83a(0x89e));}}_0x2c4a41[_0x34684e(0x301)]=_0x401798;class _0x488503 extends _0xba9c35{constructor(_0x2c1f45){const _0x39e904=_0x34684e,_0x2c7605=!!(_0x2c1f45[_0x39e904(0x41b)]['popupRef']||_0x2c1f45['data'][_0x39e904(0x363)]?.[_0x39e904(0xcf)]||_0x2c1f45[_0x39e904(0x41b)][_0x39e904(0x3a1)]?.['str']||_0x2c1f45['data'][_0x39e904(0x68f)]?.[_0x39e904(0xcf)]);super(_0x2c1f45,{'isRenderable':_0x2c7605,'ignoreBorder':!![],'createQuadrilaterals':!![]});}[_0x34684e(0x6c8)](){const _0x31f2e0=_0x34684e;!this[_0x31f2e0(0x41b)][_0x31f2e0(0x9c8)]&&this[_0x31f2e0(0x544)]();if(this['quadrilaterals'])return this[_0x31f2e0(0x258)]('highlightAnnotation');return this['container'][_0x31f2e0(0x2bc)][_0x31f2e0(0x156)](_0x31f2e0(0x19e)),this['container'];}}class _0x56d96a extends _0xba9c35{constructor(_0x1474d6){const _0xc0d1d6=_0x34684e,_0x243540=!!(_0x1474d6['data']['popupRef']||_0x1474d6[_0xc0d1d6(0x41b)][_0xc0d1d6(0x363)]?.[_0xc0d1d6(0xcf)]||_0x1474d6[_0xc0d1d6(0x41b)][_0xc0d1d6(0x3a1)]?.[_0xc0d1d6(0xcf)]||_0x1474d6[_0xc0d1d6(0x41b)][_0xc0d1d6(0x68f)]?.[_0xc0d1d6(0xcf)]);super(_0x1474d6,{'isRenderable':_0x243540,'ignoreBorder':!![],'createQuadrilaterals':!![]});}[_0x34684e(0x6c8)](){const _0x496e3b=_0x34684e;!this[_0x496e3b(0x41b)][_0x496e3b(0x9c8)]&&this[_0x496e3b(0x544)]();if(this['quadrilaterals'])return this[_0x496e3b(0x258)](_0x496e3b(0x14a));return this[_0x496e3b(0x2e0)][_0x496e3b(0x2bc)][_0x496e3b(0x156)](_0x496e3b(0x14a)),this[_0x496e3b(0x2e0)];}}class _0x1d5779 extends _0xba9c35{constructor(_0x365533){const _0x1a7758=_0x34684e,_0x4c7c52=!!(_0x365533[_0x1a7758(0x41b)][_0x1a7758(0x9c8)]||_0x365533[_0x1a7758(0x41b)][_0x1a7758(0x363)]?.[_0x1a7758(0xcf)]||_0x365533[_0x1a7758(0x41b)]['contentsObj']?.[_0x1a7758(0xcf)]||_0x365533[_0x1a7758(0x41b)]['richText']?.[_0x1a7758(0xcf)]);super(_0x365533,{'isRenderable':_0x4c7c52,'ignoreBorder':!![],'createQuadrilaterals':!![]});}[_0x34684e(0x6c8)](){const _0x366fe3=_0x34684e;!this[_0x366fe3(0x41b)]['popupRef']&&this[_0x366fe3(0x544)]();if(this['quadrilaterals'])return this[_0x366fe3(0x258)](_0x366fe3(0x7d7));return this[_0x366fe3(0x2e0)]['classList'][_0x366fe3(0x156)]('squigglyAnnotation'),this[_0x366fe3(0x2e0)];}}class _0x3897cf extends _0xba9c35{constructor(_0x219376){const _0x430abc=_0x34684e,_0xa08d78=!!(_0x219376['data'][_0x430abc(0x9c8)]||_0x219376[_0x430abc(0x41b)]['titleObj']?.['str']||_0x219376[_0x430abc(0x41b)]['contentsObj']?.[_0x430abc(0xcf)]||_0x219376[_0x430abc(0x41b)][_0x430abc(0x68f)]?.[_0x430abc(0xcf)]);super(_0x219376,{'isRenderable':_0xa08d78,'ignoreBorder':!![],'createQuadrilaterals':!![]});}['render'](){const _0x2e4691=_0x34684e;!this[_0x2e4691(0x41b)][_0x2e4691(0x9c8)]&&this['_createPopup']();if(this[_0x2e4691(0x931)])return this[_0x2e4691(0x258)](_0x2e4691(0x4cc));return this[_0x2e4691(0x2e0)][_0x2e4691(0x2bc)][_0x2e4691(0x156)](_0x2e4691(0x4cc)),this[_0x2e4691(0x2e0)];}}class _0x4095a7 extends _0xba9c35{constructor(_0x146050){const _0x4e59cd=_0x34684e,_0xbfb7b4=!!(_0x146050[_0x4e59cd(0x41b)][_0x4e59cd(0x9c8)]||_0x146050['data'][_0x4e59cd(0x363)]?.['str']||_0x146050['data'][_0x4e59cd(0x3a1)]?.['str']||_0x146050[_0x4e59cd(0x41b)]['richText']?.[_0x4e59cd(0xcf)]);super(_0x146050,{'isRenderable':_0xbfb7b4,'ignoreBorder':!![]});}[_0x34684e(0x6c8)](){const _0x1f7d3a=_0x34684e;return this[_0x1f7d3a(0x2e0)]['classList']['add'](_0x1f7d3a(0x12b)),!this['data'][_0x1f7d3a(0x9c8)]&&this[_0x1f7d3a(0x544)](),this[_0x1f7d3a(0x2e0)];}}_0x2c4a41[_0x34684e(0x3ed)]=_0x4095a7;class _0x27bed6 extends _0xba9c35{#trigger=null;constructor(_0x4b0d3d){const _0x15e640=_0x34684e;super(_0x4b0d3d,{'isRenderable':!![]});const {filename:_0x1afda6,content:_0x557af7}=this[_0x15e640(0x41b)][_0x15e640(0x151)];this[_0x15e640(0x5cf)]=(0x0,_0x1ee1b8[_0x15e640(0x598)])(_0x1afda6,!![]),this[_0x15e640(0x609)]=_0x557af7,this[_0x15e640(0x8a6)][_0x15e640(0x64b)]?.[_0x15e640(0x3c0)](_0x15e640(0x1e3),{'source':this,'filename':_0x1afda6,'content':_0x557af7});}[_0x34684e(0x6c8)](){const _0x232b28=_0x34684e;this[_0x232b28(0x2e0)]['classList'][_0x232b28(0x156)](_0x232b28(0x834));let _0x5698fe;return this['data'][_0x232b28(0x31f)]?_0x5698fe=document[_0x232b28(0x400)]('div'):(_0x5698fe=document[_0x232b28(0x400)](_0x232b28(0x662)),_0x5698fe[_0x232b28(0x5ef)]=this['imageResourcesPath']+_0x232b28(0x95c)+(/paperclip/i[_0x232b28(0x6e7)](this['data'][_0x232b28(0x499)])?_0x232b28(0x1b1):_0x232b28(0x5ee))+'.svg'),_0x5698fe['classList'][_0x232b28(0x156)](_0x232b28(0x36a)),_0x5698fe[_0x232b28(0x5cc)](_0x232b28(0x327),this[_0x232b28(0x6d2)][_0x232b28(0x5e8)](this)),this.#trigger=_0x5698fe,!this[_0x232b28(0x41b)][_0x232b28(0x9c8)]&&(this[_0x232b28(0x41b)][_0x232b28(0x363)]?.[_0x232b28(0xcf)]||this['data'][_0x232b28(0x3a1)]?.[_0x232b28(0xcf)]||this['data']['richText'])&&this[_0x232b28(0x544)](),this['container'][_0x232b28(0x45e)](_0x5698fe),this[_0x232b28(0x2e0)];}[_0x34684e(0x3c4)](){return this.#trigger;}[_0x34684e(0xf0)](){const _0x530800=_0x34684e;this[_0x530800(0x2e0)]['classList'][_0x530800(0x156)]('highlightArea');}[_0x34684e(0x6d2)](){const _0x688713=_0x34684e;this[_0x688713(0x641)]?.[_0x688713(0x42f)](this['container'],this[_0x688713(0x609)],this[_0x688713(0x5cf)]);}}class _0x2f5674{#accessibilityManager=null;#annotationCanvasMap=null;#editableAnnotations=new Map();constructor(_0x2fc710){const _0x3523eb=_0x34684e;let {div:_0x4e5455,accessibilityManager:_0x5cf163,annotationCanvasMap:_0x5e1844,l10n:_0x32e773,page:_0x3e9e38,viewport:_0x234ff5}=_0x2fc710;this[_0x3523eb(0x903)]=_0x4e5455,this.#accessibilityManager=_0x5cf163,this.#annotationCanvasMap=_0x5e1844,this['l10n']=_0x32e773,this[_0x3523eb(0x6ea)]=_0x3e9e38,this['viewport']=_0x234ff5,this['zIndex']=0x0;const {NullL10n:_0x2b831c}=_0x5164b3(0xa0);this[_0x3523eb(0x4e9)]||=_0x2b831c;}#appendElement(_0x158f84,_0x17f830){const _0x230415=_0x34684e,_0x2733f5=_0x158f84['firstChild']||_0x158f84;_0x2733f5['id']=''+_0x1ee1b8[_0x230415(0x1de)]+_0x17f830,this[_0x230415(0x903)][_0x230415(0x45e)](_0x158f84),this.#accessibilityManager?.['moveElementInDOM'](this[_0x230415(0x903)],_0x158f84,_0x2733f5,![]);}async['render'](_0x2f90c3){const _0x39c843=_0x34684e,{annotations:_0x593ec1}=_0x2f90c3,_0x2e889c=this[_0x39c843(0x903)];(0x0,_0x1ee1b8[_0x39c843(0x95e)])(_0x2e889c,this[_0x39c843(0x502)]);const _0x157a58=new Map(),_0x66fe63={'data':null,'layer':_0x2e889c,'linkService':_0x2f90c3[_0x39c843(0x8a6)],'downloadManager':_0x2f90c3[_0x39c843(0x641)],'imageResourcesPath':_0x2f90c3[_0x39c843(0x33d)]||'','renderForms':_0x2f90c3[_0x39c843(0x874)]!==![],'svgFactory':new _0x1ee1b8[(_0x39c843(0x7be))](),'annotationStorage':_0x2f90c3['annotationStorage']||new _0x3196ff['AnnotationStorage'](),'enableScripting':_0x2f90c3[_0x39c843(0x4a7)]===!![],'hasJSActions':_0x2f90c3[_0x39c843(0x731)],'fieldObjects':_0x2f90c3[_0x39c843(0x500)],'parent':this,'elements':null};for(const _0x1c5d38 of _0x593ec1){if(_0x1c5d38[_0x39c843(0x782)])continue;const _0x485018=_0x1c5d38['annotationType']===_0x20ce9d['AnnotationType'][_0x39c843(0x11d)];if(!_0x485018){const {width:_0x4bee0d,height:_0xea42cf}=_0x23686a(_0x1c5d38[_0x39c843(0x333)]);if(_0x4bee0d<=0x0||_0xea42cf<=0x0)continue;}else{const _0x15252e=_0x157a58[_0x39c843(0x8c4)](_0x1c5d38['id']);if(!_0x15252e)continue;_0x66fe63[_0x39c843(0x367)]=_0x15252e;}_0x66fe63[_0x39c843(0x41b)]=_0x1c5d38;const _0x26ddd0=_0x1fbf87[_0x39c843(0x77c)](_0x66fe63);if(!_0x26ddd0['isRenderable'])continue;if(!_0x485018&&_0x1c5d38['popupRef']){const _0x2e3ea6=_0x157a58[_0x39c843(0x8c4)](_0x1c5d38[_0x39c843(0x9c8)]);!_0x2e3ea6?_0x157a58['set'](_0x1c5d38[_0x39c843(0x9c8)],[_0x26ddd0]):_0x2e3ea6[_0x39c843(0x7d6)](_0x26ddd0);}_0x26ddd0[_0x39c843(0x4e2)]>0x0&&this.#editableAnnotations[_0x39c843(0x98e)](_0x26ddd0[_0x39c843(0x41b)]['id'],_0x26ddd0);const _0x613b76=_0x26ddd0['render']();_0x1c5d38['hidden']&&(_0x613b76[_0x39c843(0x498)]['visibility']='hidden');if(Array['isArray'](_0x613b76))for(const _0x16c8fd of _0x613b76){this.#appendElement(_0x16c8fd,_0x1c5d38['id']);}else this.#appendElement(_0x613b76,_0x1c5d38['id']);}this.#setAnnotationCanvasMap(),await this[_0x39c843(0x4e9)][_0x39c843(0x18d)](_0x2e889c);}[_0x34684e(0x1b4)](_0x268f03){const _0x5ceb0b=_0x34684e;let {viewport:_0x2bfcaa}=_0x268f03;const _0x582098=this[_0x5ceb0b(0x903)];this[_0x5ceb0b(0x502)]=_0x2bfcaa,(0x0,_0x1ee1b8['setLayerDimensions'])(_0x582098,{'rotation':_0x2bfcaa[_0x5ceb0b(0x7af)]}),this.#setAnnotationCanvasMap(),_0x582098[_0x5ceb0b(0x495)]=![];}#setAnnotationCanvasMap(){const _0x3c3a49=_0x34684e;if(!this.#annotationCanvasMap)return;const _0x39ce0e=this[_0x3c3a49(0x903)];for(const [_0x18d048,_0x51e8f2]of this.#annotationCanvasMap){const _0x2eca70=_0x39ce0e[_0x3c3a49(0x6c7)](_0x3c3a49(0x273)+_0x18d048+'\x22]');if(!_0x2eca70)continue;const {firstChild:_0x1e67e5}=_0x2eca70;if(!_0x1e67e5)_0x2eca70[_0x3c3a49(0x45e)](_0x51e8f2);else _0x1e67e5[_0x3c3a49(0x1fd)]==='CANVAS'?_0x1e67e5['replaceWith'](_0x51e8f2):_0x1e67e5[_0x3c3a49(0x8f7)](_0x51e8f2);}this.#annotationCanvasMap[_0x3c3a49(0x1ca)]();}['getEditableAnnotations'](){const _0x34d89a=_0x34684e;return Array['from'](this.#editableAnnotations[_0x34d89a(0x823)]());}['getEditableAnnotation'](_0x8219c3){const _0x53809f=_0x34684e;return this.#editableAnnotations[_0x53809f(0x8c4)](_0x8219c3);}}_0x2c4a41['AnnotationLayer']=_0x2f5674;},(_0x3544ff,_0x325490)=>{'use strict';const _0x12b0f8=a0_0x160d;Object[_0x12b0f8(0x430)](_0x325490,_0x12b0f8(0x19a),{'value':!![]}),_0x325490[_0x12b0f8(0x703)]=void 0x0;function _0x5db9cd(_0x3416c9){const _0x5d077c=_0x12b0f8;return Math[_0x5d077c(0x583)](Math['max'](0x0,Math[_0x5d077c(0x81b)](0x1,_0x3416c9))*0xff)['toString'](0x10)['padStart'](0x2,'0');}class _0xa0846d{static['CMYK_G'](_0x50f6a){const _0x5b7b9c=_0x12b0f8;let [_0x402684,_0x561be0,_0x3ec6af,_0x24a8d9]=_0x50f6a;return['G',0x1-Math[_0x5b7b9c(0x81b)](0x1,0.3*_0x402684+0.59*_0x3ec6af+0.11*_0x561be0+_0x24a8d9)];}static['G_CMYK'](_0x43640b){const _0x1a7b24=_0x12b0f8;let [_0x3c3038]=_0x43640b;return[_0x1a7b24(0x6f3),0x0,0x0,0x0,0x1-_0x3c3038];}static[_0x12b0f8(0x507)](_0x5cf391){const _0x54fb36=_0x12b0f8;let [_0x29c091]=_0x5cf391;return[_0x54fb36(0x559),_0x29c091,_0x29c091,_0x29c091];}static[_0x12b0f8(0x772)](_0x7cb5e0){let [_0xeef270]=_0x7cb5e0;const _0x27ce1f=_0x5db9cd(_0xeef270);return'#'+_0x27ce1f+_0x27ce1f+_0x27ce1f;}static['RGB_G'](_0x499e19){let [_0x15852e,_0x4c0bcf,_0x3c8c2d]=_0x499e19;return['G',0.3*_0x15852e+0.59*_0x4c0bcf+0.11*_0x3c8c2d];}static[_0x12b0f8(0x4c8)](_0x40b17f){let [_0x5c2df5,_0x50e829,_0x473db3]=_0x40b17f;const _0x42db83=_0x5db9cd(_0x5c2df5),_0x4e3fd2=_0x5db9cd(_0x50e829),_0x4c6d41=_0x5db9cd(_0x473db3);return'#'+_0x42db83+_0x4e3fd2+_0x4c6d41;}static[_0x12b0f8(0x9f8)](){const _0x153084=_0x12b0f8;return _0x153084(0x493);}static[_0x12b0f8(0x4d4)](_0x5cfeae){const _0x2337e0=_0x12b0f8;let [_0x8e1805,_0x186186,_0x255cc1,_0x6b4d8e]=_0x5cfeae;return[_0x2337e0(0x559),0x1-Math[_0x2337e0(0x81b)](0x1,_0x8e1805+_0x6b4d8e),0x1-Math['min'](0x1,_0x255cc1+_0x6b4d8e),0x1-Math[_0x2337e0(0x81b)](0x1,_0x186186+_0x6b4d8e)];}static[_0x12b0f8(0x676)](_0x12c7bc){const _0x19a385=_0x12b0f8,_0x5b107c=this['CMYK_RGB'](_0x12c7bc)[_0x19a385(0x80c)](0x1);return this[_0x19a385(0x4c8)](_0x5b107c);}static['RGB_CMYK'](_0x2d292e){const _0x57de80=_0x12b0f8;let [_0x2172a8,_0x2dc1a9,_0x166edc]=_0x2d292e;const _0x1606ab=0x1-_0x2172a8,_0x4cfbac=0x1-_0x2dc1a9,_0x5c3018=0x1-_0x166edc,_0x2a8d14=Math[_0x57de80(0x81b)](_0x1606ab,_0x4cfbac,_0x5c3018);return['CMYK',_0x1606ab,_0x4cfbac,_0x5c3018,_0x2a8d14];}}_0x325490[_0x12b0f8(0x703)]=_0xa0846d;},(_0x493ae1,_0x45af19,_0x2c7e2d)=>{'use strict';const _0x5bfea8=a0_0x160d;Object[_0x5bfea8(0x430)](_0x45af19,_0x5bfea8(0x19a),{'value':!![]}),_0x45af19[_0x5bfea8(0x139)]=void 0x0;var _0x3df9b0=_0x2c7e2d(0x93);class _0x1bd1f4{static[_0x5bfea8(0x9dd)](_0x57fb80,_0x4d16d4,_0x6e4eb1,_0x188840,_0x205a1a){const _0x21681b=_0x5bfea8,_0x3440c1=_0x188840[_0x21681b(0xde)](_0x4d16d4,{'value':null});switch(_0x6e4eb1[_0x21681b(0x499)]){case _0x21681b(0x3f2):_0x3440c1[_0x21681b(0x2b8)]!==null&&(_0x57fb80[_0x21681b(0x8a9)]=_0x3440c1[_0x21681b(0x2b8)]);if(_0x205a1a===_0x21681b(0x5f8))break;_0x57fb80[_0x21681b(0x5cc)](_0x21681b(0x3e6),_0x21d692=>{const _0x5ced6d=_0x21681b;_0x188840['setValue'](_0x4d16d4,{'value':_0x21d692[_0x5ced6d(0x1c8)][_0x5ced6d(0x2b8)]});});break;case _0x21681b(0x3e6):if(_0x6e4eb1[_0x21681b(0x6ec)]['type']===_0x21681b(0x2fe)||_0x6e4eb1[_0x21681b(0x6ec)][_0x21681b(0x9fd)]===_0x21681b(0x799)){if(_0x3440c1[_0x21681b(0x2b8)]===_0x6e4eb1[_0x21681b(0x6ec)][_0x21681b(0x80d)])_0x57fb80[_0x21681b(0x636)](_0x21681b(0xfc),!![]);else _0x3440c1['value']===_0x6e4eb1[_0x21681b(0x6ec)][_0x21681b(0x1d9)]&&_0x57fb80['removeAttribute'](_0x21681b(0xfc));if(_0x205a1a===_0x21681b(0x5f8))break;_0x57fb80['addEventListener'](_0x21681b(0x169),_0x2c2dfb=>{const _0x2a9199=_0x21681b;_0x188840[_0x2a9199(0x699)](_0x4d16d4,{'value':_0x2c2dfb[_0x2a9199(0x1c8)][_0x2a9199(0xfc)]?_0x2c2dfb[_0x2a9199(0x1c8)]['getAttribute']('xfaOn'):_0x2c2dfb[_0x2a9199(0x1c8)][_0x2a9199(0x8ae)](_0x2a9199(0x1d9))});});}else{_0x3440c1[_0x21681b(0x2b8)]!==null&&_0x57fb80[_0x21681b(0x636)]('value',_0x3440c1[_0x21681b(0x2b8)]);if(_0x205a1a===_0x21681b(0x5f8))break;_0x57fb80[_0x21681b(0x5cc)](_0x21681b(0x3e6),_0x24ad4d=>{const _0x5529b4=_0x21681b;_0x188840[_0x5529b4(0x699)](_0x4d16d4,{'value':_0x24ad4d[_0x5529b4(0x1c8)][_0x5529b4(0x2b8)]});});}break;case _0x21681b(0x243):if(_0x3440c1['value']!==null)for(const _0x2e1202 of _0x6e4eb1[_0x21681b(0x6be)]){_0x2e1202[_0x21681b(0x6ec)][_0x21681b(0x2b8)]===_0x3440c1[_0x21681b(0x2b8)]&&(_0x2e1202['attributes'][_0x21681b(0x78a)]=!![]);}_0x57fb80['addEventListener'](_0x21681b(0x3e6),_0x590277=>{const _0x1fb38c=_0x21681b,_0x114782=_0x590277[_0x1fb38c(0x1c8)][_0x1fb38c(0x18b)],_0x405e08=_0x114782[_0x1fb38c(0x97c)]===-0x1?'':_0x114782[_0x114782[_0x1fb38c(0x97c)]][_0x1fb38c(0x2b8)];_0x188840[_0x1fb38c(0x699)](_0x4d16d4,{'value':_0x405e08});});break;}}static['setAttributes'](_0x404e16){const _0x42f110=_0x5bfea8;let {html:_0x48a66d,element:_0x29e98b,storage:storage=null,intent:_0x533158,linkService:_0x1d4b25}=_0x404e16;const {attributes:_0x565fdd}=_0x29e98b,_0x1cca84=_0x48a66d instanceof HTMLAnchorElement;_0x565fdd[_0x42f110(0x9fd)]===_0x42f110(0x2fe)&&(_0x565fdd[_0x42f110(0x499)]=_0x565fdd['name']+'-'+_0x533158);for(const [_0x17333d,_0x5983f8]of Object[_0x42f110(0x816)](_0x565fdd)){if(_0x5983f8===null||_0x5983f8===undefined)continue;switch(_0x17333d){case _0x42f110(0x2f7):_0x5983f8[_0x42f110(0x557)]&&_0x48a66d['setAttribute'](_0x17333d,_0x5983f8[_0x42f110(0x334)]('\x20'));break;case _0x42f110(0x74a):break;case'id':_0x48a66d['setAttribute']('data-element-id',_0x5983f8);break;case _0x42f110(0x498):Object[_0x42f110(0x9c0)](_0x48a66d['style'],_0x5983f8);break;case _0x42f110(0x8a9):_0x48a66d['textContent']=_0x5983f8;break;default:(!_0x1cca84||_0x17333d!==_0x42f110(0x95d)&&_0x17333d!==_0x42f110(0x4bd))&&_0x48a66d['setAttribute'](_0x17333d,_0x5983f8);}}_0x1cca84&&_0x1d4b25['addLinkAttributes'](_0x48a66d,_0x565fdd[_0x42f110(0x95d)],_0x565fdd[_0x42f110(0x4bd)]),storage&&_0x565fdd[_0x42f110(0x74a)]&&this[_0x42f110(0x9dd)](_0x48a66d,_0x565fdd['dataId'],_0x29e98b,storage);}static[_0x5bfea8(0x6c8)](_0x32d369){const _0x1f9f0f=_0x5bfea8,_0x52f67f=_0x32d369[_0x1f9f0f(0x5bf)],_0x24783d=_0x32d369['linkService'],_0x33fc3a=_0x32d369[_0x1f9f0f(0x217)],_0x1d344e=_0x32d369['intent']||_0x1f9f0f(0x619),_0x4d88f9=document[_0x1f9f0f(0x400)](_0x33fc3a[_0x1f9f0f(0x499)]);_0x33fc3a['attributes']&&this[_0x1f9f0f(0x650)]({'html':_0x4d88f9,'element':_0x33fc3a,'intent':_0x1d344e,'linkService':_0x24783d});const _0xdc4eeb=[[_0x33fc3a,-0x1,_0x4d88f9]],_0xa10550=_0x32d369[_0x1f9f0f(0x903)];_0xa10550[_0x1f9f0f(0x45e)](_0x4d88f9);if(_0x32d369[_0x1f9f0f(0x502)]){const _0x256854=_0x1f9f0f(0x29c)+_0x32d369[_0x1f9f0f(0x502)][_0x1f9f0f(0x5dd)][_0x1f9f0f(0x334)](',')+')';_0xa10550[_0x1f9f0f(0x498)]['transform']=_0x256854;}_0x1d344e!==_0x1f9f0f(0x68f)&&_0xa10550['setAttribute'](_0x1f9f0f(0x2f7),_0x1f9f0f(0x7d8));const _0x36e042=[];while(_0xdc4eeb[_0x1f9f0f(0x557)]>0x0){const [_0x405fe7,_0x3823da,_0x914daa]=_0xdc4eeb['at'](-0x1);if(_0x3823da+0x1===_0x405fe7[_0x1f9f0f(0x6be)][_0x1f9f0f(0x557)]){_0xdc4eeb['pop']();continue;}const _0x42d219=_0x405fe7['children'][++_0xdc4eeb['at'](-0x1)[0x1]];if(_0x42d219===null)continue;const {name:_0x5b9add}=_0x42d219;if(_0x5b9add===_0x1f9f0f(0x807)){const _0x333642=document[_0x1f9f0f(0x8fa)](_0x42d219[_0x1f9f0f(0x2b8)]);_0x36e042[_0x1f9f0f(0x7d6)](_0x333642),_0x914daa[_0x1f9f0f(0x45e)](_0x333642);continue;}let _0x3dcc17;_0x42d219?.['attributes']?.[_0x1f9f0f(0x100)]?_0x3dcc17=document[_0x1f9f0f(0x48b)](_0x42d219[_0x1f9f0f(0x6ec)][_0x1f9f0f(0x100)],_0x5b9add):_0x3dcc17=document[_0x1f9f0f(0x400)](_0x5b9add);_0x914daa[_0x1f9f0f(0x45e)](_0x3dcc17);_0x42d219['attributes']&&this[_0x1f9f0f(0x650)]({'html':_0x3dcc17,'element':_0x42d219,'storage':_0x52f67f,'intent':_0x1d344e,'linkService':_0x24783d});if(_0x42d219['children']&&_0x42d219[_0x1f9f0f(0x6be)]['length']>0x0)_0xdc4eeb[_0x1f9f0f(0x7d6)]([_0x42d219,-0x1,_0x3dcc17]);else{if(_0x42d219[_0x1f9f0f(0x2b8)]){const _0x317c94=document[_0x1f9f0f(0x8fa)](_0x42d219[_0x1f9f0f(0x2b8)]);_0x3df9b0[_0x1f9f0f(0x205)][_0x1f9f0f(0x88e)](_0x5b9add)&&_0x36e042[_0x1f9f0f(0x7d6)](_0x317c94),_0x3dcc17[_0x1f9f0f(0x45e)](_0x317c94);}}}for(const _0x558705 of _0xa10550[_0x1f9f0f(0x70f)](_0x1f9f0f(0x2f2))){_0x558705[_0x1f9f0f(0x636)](_0x1f9f0f(0x23f),!![]);}return{'textDivs':_0x36e042};}static[_0x5bfea8(0x1b4)](_0x2b56d8){const _0x148b75=_0x5bfea8,_0x4b5b21=_0x148b75(0x29c)+_0x2b56d8[_0x148b75(0x502)][_0x148b75(0x5dd)][_0x148b75(0x334)](',')+')';_0x2b56d8[_0x148b75(0x903)][_0x148b75(0x498)]['transform']=_0x4b5b21,_0x2b56d8[_0x148b75(0x903)]['hidden']=![];}}_0x45af19[_0x5bfea8(0x139)]=_0x1bd1f4;},(_0x26449c,_0x2b3797)=>{'use strict';const _0x2f1f4b=a0_0x160d;Object[_0x2f1f4b(0x430)](_0x2b3797,_0x2f1f4b(0x19a),{'value':!![]}),_0x2b3797[_0x2f1f4b(0x173)]=void 0x0,_0x2b3797[_0x2f1f4b(0x3d4)]=_0x399da9;const _0x21d874={'of_pages':_0x2f1f4b(0x81c),'page_of_pages':_0x2f1f4b(0x7c9),'document_properties_kb':_0x2f1f4b(0x5a7),'document_properties_mb':_0x2f1f4b(0x938),'document_properties_date_string':_0x2f1f4b(0x39a),'document_properties_page_size_unit_inches':'in','document_properties_page_size_unit_millimeters':'mm','document_properties_page_size_orientation_portrait':_0x2f1f4b(0x868),'document_properties_page_size_orientation_landscape':_0x2f1f4b(0x127),'document_properties_page_size_name_a3':'A3','document_properties_page_size_name_a4':'A4','document_properties_page_size_name_letter':_0x2f1f4b(0x73f),'document_properties_page_size_name_legal':_0x2f1f4b(0x54e),'document_properties_page_size_dimension_string':_0x2f1f4b(0x753),'document_properties_page_size_dimension_name_string':_0x2f1f4b(0x716),'document_properties_linearized_yes':_0x2f1f4b(0xc2),'document_properties_linearized_no':'No','additional_layers':'Additional\x20Layers','page_landmark':_0x2f1f4b(0x880),'thumb_page_title':_0x2f1f4b(0x880),'thumb_page_canvas':'Thumbnail\x20of\x20Page\x20{{page}}','find_reached_top':_0x2f1f4b(0x181),'find_reached_bottom':_0x2f1f4b(0xd3),'find_match_count[one]':'{{current}}\x20of\x20{{total}}\x20match','find_match_count[other]':_0x2f1f4b(0x892),'find_match_count_limit[one]':_0x2f1f4b(0x4f2),'find_match_count_limit[other]':'More\x20than\x20{{limit}}\x20matches','find_not_found':_0x2f1f4b(0x981),'page_scale_width':'Page\x20Width','page_scale_fit':'Page\x20Fit','page_scale_auto':_0x2f1f4b(0x4b6),'page_scale_actual':'Actual\x20Size','page_scale_percent':_0x2f1f4b(0x8e3),'loading_error':'An\x20error\x20occurred\x20while\x20loading\x20the\x20PDF.','invalid_file_error':_0x2f1f4b(0x395),'missing_file_error':_0x2f1f4b(0x8b3),'unexpected_response_error':_0x2f1f4b(0x44e),'rendering_error':'An\x20error\x20occurred\x20while\x20rendering\x20the\x20page.','annotation_date_string':'{{date}},\x20{{time}}','printing_not_supported':_0x2f1f4b(0x665),'printing_not_ready':_0x2f1f4b(0x145),'web_fonts_disabled':_0x2f1f4b(0x219),'free_text2_default_content':_0x2f1f4b(0x14e),'editor_free_text2_aria_label':_0x2f1f4b(0x50d),'editor_ink2_aria_label':_0x2f1f4b(0x159),'editor_ink_canvas_aria_label':'User-created\x20image'};{_0x21d874[_0x2f1f4b(0x7ea)]=_0x2f1f4b(0x7b8);}function _0x399da9(_0x2ce4bc,_0x4ec3b0){const _0x2723e3=_0x2f1f4b;switch(_0x2ce4bc){case _0x2723e3(0x56d):_0x2ce4bc=_0x2723e3(0x515)+(_0x4ec3b0['total']===0x1?_0x2723e3(0x383):_0x2723e3(0x4ba))+']';break;case _0x2723e3(0x17b):_0x2ce4bc=_0x2723e3(0x23a)+(_0x4ec3b0[_0x2723e3(0x371)]===0x1?_0x2723e3(0x383):_0x2723e3(0x4ba))+']';break;}return _0x21d874[_0x2ce4bc]||'';}function _0x37056d(_0x61cad6,_0x201fbc){const _0x1ea43c=_0x2f1f4b;if(!_0x201fbc)return _0x61cad6;return _0x61cad6[_0x1ea43c(0x8b5)](/\{\{\s*(\w+)\s*\}\}/g,(_0x102e66,_0x3d4810)=>{return _0x3d4810 in _0x201fbc?_0x201fbc[_0x3d4810]:'{{'+_0x3d4810+'}}';});}const _0x214708={async 'getLanguage'(){const _0x54af10=_0x2f1f4b;return _0x54af10(0x6f0);},async 'getDirection'(){const _0x1fb4b9=_0x2f1f4b;return _0x1fb4b9(0x4db);},async 'get'(_0x178bd8){const _0x3d104b=_0x2f1f4b;let _0x1a9dae=arguments[_0x3d104b(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:null,_0x1b3bf7=arguments['length']>0x2&&arguments[0x2]!==undefined?arguments[0x2]:_0x399da9(_0x178bd8,_0x1a9dae);return _0x37056d(_0x1b3bf7,_0x1a9dae);},async 'translate'(_0x7387d8){}};_0x2b3797[_0x2f1f4b(0x173)]=_0x214708;},(_0x3372ab,_0x5447ba,_0x55ca60)=>{'use strict';const _0x36cdb6=a0_0x160d;Object['defineProperty'](_0x5447ba,_0x36cdb6(0x19a),{'value':!![]}),_0x5447ba[_0x36cdb6(0x7e1)]=void 0x0;var _0x55e52b=_0x55ca60(0x1),_0xc11234=_0x55ca60(0x85),_0x1305fa=_0x55ca60(0x9d),_0x47a576=_0x55ca60(0x86);class _0x3dd333 extends _0xc11234['AnnotationEditor']{#baseHeight=0x0;#baseWidth=0x0;#boundCanvasContextMenu=this['canvasContextMenu']['bind'](this);#boundCanvasPointermove=this[_0x36cdb6(0x21d)][_0x36cdb6(0x5e8)](this);#boundCanvasPointerleave=this[_0x36cdb6(0x9b4)][_0x36cdb6(0x5e8)](this);#boundCanvasPointerup=this[_0x36cdb6(0x738)][_0x36cdb6(0x5e8)](this);#boundCanvasPointerdown=this[_0x36cdb6(0x9b7)][_0x36cdb6(0x5e8)](this);#currentPath2D=new Path2D();#disableEditing=![];#hasSomethingToDraw=![];#isCanvasInitialized=![];#observer=null;#realWidth=0x0;#realHeight=0x0;#requestFrameCallback=null;static [_0x36cdb6(0x1fb)]=null;static [_0x36cdb6(0x73d)]=0x1;static ['_defaultThickness']=0x1;static [_0x36cdb6(0x1f7)];static ['_type']=_0x36cdb6(0x4b8);constructor(_0x24f4c8){const _0x4b3608=_0x36cdb6;super({..._0x24f4c8,'name':'inkEditor'}),this[_0x4b3608(0x5fe)]=_0x24f4c8[_0x4b3608(0x5fe)]||null,this[_0x4b3608(0x776)]=_0x24f4c8[_0x4b3608(0x776)]||null,this['opacity']=_0x24f4c8['opacity']||null,this[_0x4b3608(0xe0)]=[],this[_0x4b3608(0x2cd)]=[],this[_0x4b3608(0x543)]=[],this[_0x4b3608(0x9e6)]=[],this[_0x4b3608(0x778)]=0x1,this['translationX']=this[_0x4b3608(0x696)]=0x0,this['x']=0x0,this['y']=0x0;}static[_0x36cdb6(0x86f)](_0x996421){const _0x24190c=_0x36cdb6;this['_l10nPromise']=new Map([_0x24190c(0x52e),_0x24190c(0x357)][_0x24190c(0x7ec)](_0x14fc9c=>[_0x14fc9c,_0x996421[_0x24190c(0x8c4)](_0x14fc9c)]));}static[_0x36cdb6(0x49d)](_0x596bcf,_0x183dfc){const _0x15d341=_0x36cdb6;switch(_0x596bcf){case _0x55e52b[_0x15d341(0x6b8)]['INK_THICKNESS']:_0x3dd333['_defaultThickness']=_0x183dfc;break;case _0x55e52b[_0x15d341(0x6b8)][_0x15d341(0x7fd)]:_0x3dd333['_defaultColor']=_0x183dfc;break;case _0x55e52b['AnnotationEditorParamsType'][_0x15d341(0x4a1)]:_0x3dd333[_0x15d341(0x73d)]=_0x183dfc/0x64;break;}}['updateParams'](_0x2ab520,_0x3a076e){const _0x45a6b4=_0x36cdb6;switch(_0x2ab520){case _0x55e52b[_0x45a6b4(0x6b8)][_0x45a6b4(0x111)]:this.#updateThickness(_0x3a076e);break;case _0x55e52b[_0x45a6b4(0x6b8)][_0x45a6b4(0x7fd)]:this.#updateColor(_0x3a076e);break;case _0x55e52b[_0x45a6b4(0x6b8)][_0x45a6b4(0x4a1)]:this.#updateOpacity(_0x3a076e);break;}}static get[_0x36cdb6(0x5bb)](){const _0x150457=_0x36cdb6;return[[_0x55e52b[_0x150457(0x6b8)][_0x150457(0x111)],_0x3dd333[_0x150457(0x936)]],[_0x55e52b[_0x150457(0x6b8)][_0x150457(0x7fd)],_0x3dd333[_0x150457(0x1fb)]||_0xc11234['AnnotationEditor']['_defaultLineColor']],[_0x55e52b[_0x150457(0x6b8)]['INK_OPACITY'],Math[_0x150457(0x7df)](_0x3dd333[_0x150457(0x73d)]*0x64)]];}get[_0x36cdb6(0x2da)](){const _0x8486b5=_0x36cdb6;return[[_0x55e52b[_0x8486b5(0x6b8)][_0x8486b5(0x111)],this[_0x8486b5(0x776)]||_0x3dd333[_0x8486b5(0x936)]],[_0x55e52b[_0x8486b5(0x6b8)][_0x8486b5(0x7fd)],this['color']||_0x3dd333['_defaultColor']||_0xc11234[_0x8486b5(0x8f0)]['_defaultLineColor']],[_0x55e52b[_0x8486b5(0x6b8)][_0x8486b5(0x4a1)],Math[_0x8486b5(0x7df)](0x64*(this[_0x8486b5(0x53e)]??_0x3dd333[_0x8486b5(0x73d)]))]];}#updateThickness(_0x28e8e1){const _0xc24937=_0x36cdb6,_0x35253e=this['thickness'];this[_0xc24937(0x72e)]({'cmd':()=>{this['thickness']=_0x28e8e1,this.#fitToContent();},'undo':()=>{const _0x36ec2e=_0xc24937;this[_0x36ec2e(0x776)]=_0x35253e,this.#fitToContent();},'mustExec':!![],'type':_0x55e52b[_0xc24937(0x6b8)][_0xc24937(0x111)],'overwriteIfSameType':!![],'keepUndo':!![]});}#updateColor(_0xc451e3){const _0x1dcb02=_0x36cdb6,_0x46d644=this[_0x1dcb02(0x5fe)];this[_0x1dcb02(0x72e)]({'cmd':()=>{const _0x56aec7=_0x1dcb02;this[_0x56aec7(0x5fe)]=_0xc451e3,this.#redraw();},'undo':()=>{const _0x112f6a=_0x1dcb02;this[_0x112f6a(0x5fe)]=_0x46d644,this.#redraw();},'mustExec':!![],'type':_0x55e52b[_0x1dcb02(0x6b8)][_0x1dcb02(0x7fd)],'overwriteIfSameType':!![],'keepUndo':!![]});}#updateOpacity(_0x5a74f5){const _0x5bd0b8=_0x36cdb6;_0x5a74f5/=0x64;const _0x4e8429=this['opacity'];this[_0x5bd0b8(0x72e)]({'cmd':()=>{this['opacity']=_0x5a74f5,this.#redraw();},'undo':()=>{this['opacity']=_0x4e8429,this.#redraw();},'mustExec':!![],'type':_0x55e52b[_0x5bd0b8(0x6b8)][_0x5bd0b8(0x4a1)],'overwriteIfSameType':!![],'keepUndo':!![]});}[_0x36cdb6(0x9d3)](){const _0x2e0378=_0x36cdb6;super[_0x2e0378(0x9d3)]();if(this[_0x2e0378(0x903)]===null)return;!this[_0x2e0378(0x75a)]&&(this.#createCanvas(),this.#createObserver()),!this[_0x2e0378(0x9a7)]&&(this[_0x2e0378(0x4c3)][_0x2e0378(0x156)](this),this.#setCanvasDims()),this.#fitToContent();}[_0x36cdb6(0x10a)](){const _0x54ba8f=_0x36cdb6;if(this['canvas']===null)return;!this[_0x54ba8f(0x480)]()&&this['commit'](),this[_0x54ba8f(0x75a)][_0x54ba8f(0x98b)]=this[_0x54ba8f(0x75a)][_0x54ba8f(0x999)]=0x0,this['canvas'][_0x54ba8f(0x10a)](),this[_0x54ba8f(0x75a)]=null,this.#observer[_0x54ba8f(0x817)](),this.#observer=null,super[_0x54ba8f(0x10a)]();}[_0x36cdb6(0x3fd)](_0x4d2e93){const _0x574f66=_0x36cdb6;if(!this[_0x574f66(0x4c3)]&&_0x4d2e93)this[_0x574f66(0x5e4)][_0x574f66(0x632)](this);else this[_0x574f66(0x4c3)]&&_0x4d2e93===null&&this['_uiManager']['addShouldRescale'](this);super[_0x574f66(0x3fd)](_0x4d2e93);}['onScaleChanging'](){const _0x2ba3bd=_0x36cdb6,[_0x3cef9d,_0x28207d]=this[_0x2ba3bd(0x956)],_0x4b2569=this[_0x2ba3bd(0x98b)]*_0x3cef9d,_0xb350a0=this[_0x2ba3bd(0x999)]*_0x28207d;this[_0x2ba3bd(0x833)](_0x4b2569,_0xb350a0);}[_0x36cdb6(0x8ce)](){const _0x5e52b4=_0x36cdb6;if(this.#disableEditing||this['canvas']===null)return;super['enableEditMode'](),this[_0x5e52b4(0x903)][_0x5e52b4(0x7dc)]=![],this['canvas']['addEventListener'](_0x5e52b4(0x546),this.#boundCanvasPointerdown);}[_0x36cdb6(0x3ac)](){const _0x47ea6c=_0x36cdb6;if(!this[_0x47ea6c(0x761)]()||this[_0x47ea6c(0x75a)]===null)return;super[_0x47ea6c(0x3ac)](),this[_0x47ea6c(0x903)][_0x47ea6c(0x7dc)]=!this['isEmpty'](),this[_0x47ea6c(0x903)][_0x47ea6c(0x2bc)]['remove'](_0x47ea6c(0x756)),this[_0x47ea6c(0x75a)]['removeEventListener'](_0x47ea6c(0x546),this.#boundCanvasPointerdown);}['onceAdded'](){const _0x1e7224=_0x36cdb6;this[_0x1e7224(0x903)][_0x1e7224(0x7dc)]=!this[_0x1e7224(0x480)]();}[_0x36cdb6(0x480)](){const _0x17e5a6=_0x36cdb6;return this['paths']['length']===0x0||this[_0x17e5a6(0xe0)][_0x17e5a6(0x557)]===0x1&&this['paths'][0x0]['length']===0x0;}#getInitialBBox(){const {parentRotation:_0x494884,parentDimensions:[_0x57bd98,_0x3125ce]}=this;switch(_0x494884){case 0x5a:return[0x0,_0x3125ce,_0x3125ce,_0x57bd98];case 0xb4:return[_0x57bd98,_0x3125ce,_0x57bd98,_0x3125ce];case 0x10e:return[_0x57bd98,0x0,_0x3125ce,_0x57bd98];default:return[0x0,0x0,_0x57bd98,_0x3125ce];}}#setStroke(){const _0x5d0ea5=_0x36cdb6,{ctx:_0x230e0d,color:_0x5b5282,opacity:_0x187e1d,thickness:_0x496405,parentScale:_0x445fff,scaleFactor:_0x13a87c}=this;_0x230e0d[_0x5d0ea5(0x2ad)]=_0x496405*_0x445fff/_0x13a87c,_0x230e0d['lineCap']=_0x5d0ea5(0x7df),_0x230e0d[_0x5d0ea5(0x1f4)]=_0x5d0ea5(0x7df),_0x230e0d['miterLimit']=0xa,_0x230e0d['strokeStyle']=''+_0x5b5282+(0x0,_0x47a576[_0x5d0ea5(0x171)])(_0x187e1d);}#startDrawing(_0x493528,_0x4727a7){const _0x34927c=_0x36cdb6;this[_0x34927c(0x75a)]['addEventListener'](_0x34927c(0x56f),this.#boundCanvasContextMenu),this['canvas'][_0x34927c(0x5cc)]('pointerleave',this.#boundCanvasPointerleave),this[_0x34927c(0x75a)][_0x34927c(0x5cc)](_0x34927c(0x35d),this.#boundCanvasPointermove),this[_0x34927c(0x75a)][_0x34927c(0x5cc)](_0x34927c(0x3f7),this.#boundCanvasPointerup),this['canvas']['removeEventListener'](_0x34927c(0x546),this.#boundCanvasPointerdown),this['isEditing']=!![],!this.#isCanvasInitialized&&(this.#isCanvasInitialized=!![],this.#setCanvasDims(),this[_0x34927c(0x776)]||=_0x3dd333['_defaultThickness'],this[_0x34927c(0x5fe)]||=_0x3dd333[_0x34927c(0x1fb)]||_0xc11234[_0x34927c(0x8f0)][_0x34927c(0x350)],this[_0x34927c(0x53e)]??=_0x3dd333[_0x34927c(0x73d)]),this[_0x34927c(0x9e6)][_0x34927c(0x7d6)]([_0x493528,_0x4727a7]),this.#hasSomethingToDraw=![],this.#setStroke(),this.#requestFrameCallback=()=>{const _0x2f6124=_0x34927c;this.#drawPoints(),this.#requestFrameCallback&&window[_0x2f6124(0x75e)](this.#requestFrameCallback);},window[_0x34927c(0x75e)](this.#requestFrameCallback);}#draw(_0x2150f8,_0x5e14b0){const _0x2ae1c5=_0x36cdb6,[_0x2bdcf7,_0x42e954]=this[_0x2ae1c5(0x9e6)]['at'](-0x1);if(this[_0x2ae1c5(0x9e6)][_0x2ae1c5(0x557)]>0x1&&_0x2150f8===_0x2bdcf7&&_0x5e14b0===_0x42e954)return;const _0x88804a=this[_0x2ae1c5(0x9e6)];let _0x53052e=this.#currentPath2D;_0x88804a[_0x2ae1c5(0x7d6)]([_0x2150f8,_0x5e14b0]),this.#hasSomethingToDraw=!![];if(_0x88804a['length']<=0x2){_0x53052e['moveTo'](..._0x88804a[0x0]),_0x53052e[_0x2ae1c5(0x39f)](_0x2150f8,_0x5e14b0);return;}_0x88804a['length']===0x3&&(this.#currentPath2D=_0x53052e=new Path2D(),_0x53052e['moveTo'](..._0x88804a[0x0])),this.#makeBezierCurve(_0x53052e,..._0x88804a['at'](-0x3),..._0x88804a['at'](-0x2),_0x2150f8,_0x5e14b0);}#endPath(){const _0x529893=_0x36cdb6;if(this[_0x529893(0x9e6)][_0x529893(0x557)]===0x0)return;const _0x28658f=this[_0x529893(0x9e6)]['at'](-0x1);this.#currentPath2D[_0x529893(0x39f)](..._0x28658f);}#stopDrawing(_0x100b2e,_0x9c0164){const _0x27aceb=_0x36cdb6;this.#requestFrameCallback=null,_0x100b2e=Math[_0x27aceb(0x81b)](Math['max'](_0x100b2e,0x0),this['canvas']['width']),_0x9c0164=Math['min'](Math[_0x27aceb(0x78d)](_0x9c0164,0x0),this[_0x27aceb(0x75a)][_0x27aceb(0x999)]),this.#draw(_0x100b2e,_0x9c0164),this.#endPath();let _0x480d24;if(this['currentPath'][_0x27aceb(0x557)]!==0x1)_0x480d24=this.#generateBezierPoints();else{const _0xe23324=[_0x100b2e,_0x9c0164];_0x480d24=[[_0xe23324,_0xe23324[_0x27aceb(0x80c)](),_0xe23324[_0x27aceb(0x80c)](),_0xe23324]];}const _0x3f294b=this.#currentPath2D,_0x54fb5d=this[_0x27aceb(0x9e6)];this['currentPath']=[],this.#currentPath2D=new Path2D();const _0x39d2b4=()=>{const _0x517f93=_0x27aceb;this['allRawPaths'][_0x517f93(0x7d6)](_0x54fb5d),this[_0x517f93(0xe0)][_0x517f93(0x7d6)](_0x480d24),this[_0x517f93(0x2cd)]['push'](_0x3f294b),this[_0x517f93(0x9d3)]();},_0xbeef91=()=>{const _0xf7fb6e=_0x27aceb;this[_0xf7fb6e(0x543)][_0xf7fb6e(0x783)](),this[_0xf7fb6e(0xe0)]['pop'](),this[_0xf7fb6e(0x2cd)][_0xf7fb6e(0x783)](),this['paths'][_0xf7fb6e(0x557)]===0x0?this[_0xf7fb6e(0x10a)]():(!this['canvas']&&(this.#createCanvas(),this.#createObserver()),this.#fitToContent());};this[_0x27aceb(0x72e)]({'cmd':_0x39d2b4,'undo':_0xbeef91,'mustExec':!![]});}#drawPoints(){const _0x416311=_0x36cdb6;if(!this.#hasSomethingToDraw)return;this.#hasSomethingToDraw=![];const _0x31cdf6=Math[_0x416311(0x213)](this[_0x416311(0x776)]*this[_0x416311(0x54a)]),_0x2a0c55=this[_0x416311(0x9e6)][_0x416311(0x80c)](-0x3),_0x3c4bda=_0x2a0c55[_0x416311(0x7ec)](_0x5019b1=>_0x5019b1[0x0]),_0xb6ecea=_0x2a0c55[_0x416311(0x7ec)](_0x557571=>_0x557571[0x1]),_0x55b15b=Math[_0x416311(0x81b)](..._0x3c4bda)-_0x31cdf6,_0x33bfc2=Math['max'](..._0x3c4bda)+_0x31cdf6,_0x526da0=Math[_0x416311(0x81b)](..._0xb6ecea)-_0x31cdf6,_0x3dfd40=Math[_0x416311(0x78d)](..._0xb6ecea)+_0x31cdf6,{ctx:_0x29f92a}=this;_0x29f92a['save'](),_0x29f92a['clearRect'](0x0,0x0,this[_0x416311(0x75a)]['width'],this[_0x416311(0x75a)][_0x416311(0x999)]);for(const _0x5ac44d of this[_0x416311(0x2cd)]){_0x29f92a[_0x416311(0x849)](_0x5ac44d);}_0x29f92a[_0x416311(0x849)](this.#currentPath2D),_0x29f92a[_0x416311(0x9ab)]();}#makeBezierCurve(_0x488837,_0x1c91fc,_0x5724db,_0x4fabb0,_0x3a51ef,_0x3e87d,_0x1eb49b){const _0x3a1b98=_0x36cdb6,_0x49b73b=(_0x1c91fc+_0x4fabb0)/0x2,_0x476b46=(_0x5724db+_0x3a51ef)/0x2,_0x3e8f9e=(_0x4fabb0+_0x3e87d)/0x2,_0x385882=(_0x3a51ef+_0x1eb49b)/0x2;_0x488837[_0x3a1b98(0x3c6)](_0x49b73b+0x2*(_0x4fabb0-_0x49b73b)/0x3,_0x476b46+0x2*(_0x3a51ef-_0x476b46)/0x3,_0x3e8f9e+0x2*(_0x4fabb0-_0x3e8f9e)/0x3,_0x385882+0x2*(_0x3a51ef-_0x385882)/0x3,_0x3e8f9e,_0x385882);}#generateBezierPoints(){const _0x2baabb=_0x36cdb6,_0x32a0e3=this['currentPath'];if(_0x32a0e3[_0x2baabb(0x557)]<=0x2)return[[_0x32a0e3[0x0],_0x32a0e3[0x0],_0x32a0e3['at'](-0x1),_0x32a0e3['at'](-0x1)]];const _0x24a2c8=[];let _0x1718a9,[_0x4831a9,_0x2c431c]=_0x32a0e3[0x0];for(_0x1718a9=0x1;_0x1718a9<_0x32a0e3['length']-0x2;_0x1718a9++){const [_0x4e2916,_0x159b81]=_0x32a0e3[_0x1718a9],[_0x5ad1ce,_0x44f31b]=_0x32a0e3[_0x1718a9+0x1],_0x1335b6=(_0x4e2916+_0x5ad1ce)/0x2,_0x4f7458=(_0x159b81+_0x44f31b)/0x2,_0x45dd8b=[_0x4831a9+0x2*(_0x4e2916-_0x4831a9)/0x3,_0x2c431c+0x2*(_0x159b81-_0x2c431c)/0x3],_0x34204a=[_0x1335b6+0x2*(_0x4e2916-_0x1335b6)/0x3,_0x4f7458+0x2*(_0x159b81-_0x4f7458)/0x3];_0x24a2c8['push']([[_0x4831a9,_0x2c431c],_0x45dd8b,_0x34204a,[_0x1335b6,_0x4f7458]]),[_0x4831a9,_0x2c431c]=[_0x1335b6,_0x4f7458];}const [_0x3d19f5,_0x4f4934]=_0x32a0e3[_0x1718a9],[_0x595a6e,_0x18fe6c]=_0x32a0e3[_0x1718a9+0x1],_0x279bae=[_0x4831a9+0x2*(_0x3d19f5-_0x4831a9)/0x3,_0x2c431c+0x2*(_0x4f4934-_0x2c431c)/0x3],_0x125d24=[_0x595a6e+0x2*(_0x3d19f5-_0x595a6e)/0x3,_0x18fe6c+0x2*(_0x4f4934-_0x18fe6c)/0x3];return _0x24a2c8[_0x2baabb(0x7d6)]([[_0x4831a9,_0x2c431c],_0x279bae,_0x125d24,[_0x595a6e,_0x18fe6c]]),_0x24a2c8;}#redraw(){const _0x1a7e21=_0x36cdb6;if(this[_0x1a7e21(0x480)]()){this.#updateTransform();return;}this.#setStroke();const {canvas:_0x3f09d0,ctx:_0x2464ae}=this;_0x2464ae[_0x1a7e21(0xf1)](0x1,0x0,0x0,0x1,0x0,0x0),_0x2464ae[_0x1a7e21(0x726)](0x0,0x0,_0x3f09d0['width'],_0x3f09d0['height']),this.#updateTransform();for(const _0x384a43 of this['bezierPath2D']){_0x2464ae['stroke'](_0x384a43);}}[_0x36cdb6(0x3b3)](){const _0x4621d7=_0x36cdb6;if(this.#disableEditing)return;super[_0x4621d7(0x3b3)](),this[_0x4621d7(0x844)]=![],this['disableEditMode'](),this[_0x4621d7(0x532)](),this.#disableEditing=!![],this[_0x4621d7(0x903)]['classList']['add'](_0x4621d7(0x93b)),this.#fitToContent(!![]),this[_0x4621d7(0x4c3)][_0x4621d7(0x6f8)](!![]),this[_0x4621d7(0x4c3)][_0x4621d7(0x27b)](this),this[_0x4621d7(0x903)][_0x4621d7(0x47d)]({'preventScroll':!![]});}['focusin'](_0x58c999){const _0x1fb83b=_0x36cdb6;super[_0x1fb83b(0x887)](_0x58c999),this[_0x1fb83b(0x8ce)]();}[_0x36cdb6(0x9b7)](_0x450e5f){const _0x3942d7=_0x36cdb6;if(_0x450e5f[_0x3942d7(0x831)]!==0x0||!this[_0x3942d7(0x761)]()||this.#disableEditing)return;this[_0x3942d7(0x532)](),_0x450e5f[_0x3942d7(0x9af)](),_0x450e5f[_0x3942d7(0x9fd)]!==_0x3942d7(0x6d5)&&this[_0x3942d7(0x903)][_0x3942d7(0x47d)](),this.#startDrawing(_0x450e5f['offsetX'],_0x450e5f['offsetY']);}[_0x36cdb6(0x8e5)](_0x29bc37){const _0x5bdfa9=_0x36cdb6;_0x29bc37[_0x5bdfa9(0x9af)]();}[_0x36cdb6(0x21d)](_0x2f1557){const _0xd134d0=_0x36cdb6;_0x2f1557['preventDefault'](),this.#draw(_0x2f1557[_0xd134d0(0xdf)],_0x2f1557['offsetY']);}['canvasPointerup'](_0x1f101f){const _0x9c294b=_0x36cdb6;_0x1f101f[_0x9c294b(0x9af)](),this.#endDrawing(_0x1f101f);}[_0x36cdb6(0x9b4)](_0xcded05){this.#endDrawing(_0xcded05);}#endDrawing(_0x1c3bd1){const _0x4ddae6=_0x36cdb6;this[_0x4ddae6(0x75a)][_0x4ddae6(0x1c0)](_0x4ddae6(0x47e),this.#boundCanvasPointerleave),this['canvas'][_0x4ddae6(0x1c0)](_0x4ddae6(0x35d),this.#boundCanvasPointermove),this['canvas'][_0x4ddae6(0x1c0)](_0x4ddae6(0x3f7),this.#boundCanvasPointerup),this[_0x4ddae6(0x75a)]['addEventListener'](_0x4ddae6(0x546),this.#boundCanvasPointerdown),setTimeout(()=>{const _0x27eeed=_0x4ddae6;this[_0x27eeed(0x75a)][_0x27eeed(0x1c0)]('contextmenu',this.#boundCanvasContextMenu);},0xa),this.#stopDrawing(_0x1c3bd1[_0x4ddae6(0xdf)],_0x1c3bd1[_0x4ddae6(0x431)]),this[_0x4ddae6(0x7e5)](),this[_0x4ddae6(0x34b)]();}#createCanvas(){const _0x27c959=_0x36cdb6;this[_0x27c959(0x75a)]=document['createElement'](_0x27c959(0x75a)),this[_0x27c959(0x75a)][_0x27c959(0x98b)]=this[_0x27c959(0x75a)][_0x27c959(0x999)]=0x0,this[_0x27c959(0x75a)][_0x27c959(0x52b)]=_0x27c959(0x1a8),_0x3dd333[_0x27c959(0x1f7)][_0x27c959(0x8c4)](_0x27c959(0x52e))[_0x27c959(0x22d)](_0x3c4470=>this[_0x27c959(0x75a)]?.[_0x27c959(0x636)](_0x27c959(0x86b),_0x3c4470)),this[_0x27c959(0x903)]['append'](this['canvas']),this['ctx']=this[_0x27c959(0x75a)][_0x27c959(0x802)]('2d');}#createObserver(){const _0x5e7ec2=_0x36cdb6;this.#observer=new ResizeObserver(_0x1edd71=>{const _0x97a8d0=a0_0x160d,_0x3783d3=_0x1edd71[0x0][_0x97a8d0(0x418)];_0x3783d3[_0x97a8d0(0x98b)]&&_0x3783d3[_0x97a8d0(0x999)]&&this[_0x97a8d0(0x833)](_0x3783d3[_0x97a8d0(0x98b)],_0x3783d3[_0x97a8d0(0x999)]);}),this.#observer[_0x5e7ec2(0x9ac)](this[_0x5e7ec2(0x903)]);}['render'](){const _0x138a93=_0x36cdb6;if(this[_0x138a93(0x903)])return this['div'];let _0x3d704f,_0x2cb939;this[_0x138a93(0x98b)]&&(_0x3d704f=this['x'],_0x2cb939=this['y']);super[_0x138a93(0x6c8)](),_0x3dd333['_l10nPromise']['get'](_0x138a93(0x357))[_0x138a93(0x22d)](_0x5115f3=>this[_0x138a93(0x903)]?.[_0x138a93(0x636)](_0x138a93(0x86b),_0x5115f3));const [_0x3771aa,_0x19bd56,_0x2441f5,_0x1fb200]=this.#getInitialBBox();this[_0x138a93(0x912)](_0x3771aa,_0x19bd56,0x0,0x0),this['setDims'](_0x2441f5,_0x1fb200),this.#createCanvas();if(this[_0x138a93(0x98b)]){const [_0xcf17c8,_0x5b3e4f]=this['parentDimensions'];this[_0x138a93(0x231)](this[_0x138a93(0x98b)]*_0xcf17c8,this[_0x138a93(0x999)]*_0x5b3e4f),this[_0x138a93(0x912)](_0x3d704f*_0xcf17c8,_0x2cb939*_0x5b3e4f,this[_0x138a93(0x98b)]*_0xcf17c8,this[_0x138a93(0x999)]*_0x5b3e4f),this.#isCanvasInitialized=!![],this.#setCanvasDims(),this['setDims'](this[_0x138a93(0x98b)]*_0xcf17c8,this['height']*_0x5b3e4f),this.#redraw(),this[_0x138a93(0x903)][_0x138a93(0x2bc)][_0x138a93(0x156)](_0x138a93(0x93b));}else this[_0x138a93(0x903)][_0x138a93(0x2bc)][_0x138a93(0x156)]('editing'),this[_0x138a93(0x8ce)]();return this.#createObserver(),this[_0x138a93(0x903)];}#setCanvasDims(){const _0x4dc605=_0x36cdb6;if(!this.#isCanvasInitialized)return;const [_0x5ddc9c,_0x103ef9]=this[_0x4dc605(0x956)];this[_0x4dc605(0x75a)][_0x4dc605(0x98b)]=Math['ceil'](this[_0x4dc605(0x98b)]*_0x5ddc9c),this[_0x4dc605(0x75a)][_0x4dc605(0x999)]=Math[_0x4dc605(0x213)](this[_0x4dc605(0x999)]*_0x103ef9),this.#updateTransform();}[_0x36cdb6(0x833)](_0x2aa091,_0x152ea6){const _0x58db0e=_0x36cdb6,_0x4b443d=Math[_0x58db0e(0x7df)](_0x2aa091),_0x5e4dc1=Math[_0x58db0e(0x7df)](_0x152ea6);if(this.#realWidth===_0x4b443d&&this.#realHeight===_0x5e4dc1)return;this.#realWidth=_0x4b443d,this.#realHeight=_0x5e4dc1,this['canvas'][_0x58db0e(0x498)][_0x58db0e(0x269)]='hidden';const [_0x3da9d2,_0x16b194]=this[_0x58db0e(0x956)];this['width']=_0x2aa091/_0x3da9d2,this['height']=_0x152ea6/_0x16b194,this.#disableEditing&&this.#setScaleFactor(_0x2aa091,_0x152ea6),this.#setCanvasDims(),this.#redraw(),this['canvas'][_0x58db0e(0x498)][_0x58db0e(0x269)]=_0x58db0e(0x6cd),this[_0x58db0e(0x8d4)]();}#setScaleFactor(_0x1e1dbf,_0x382201){const _0x2ae76e=_0x36cdb6,_0x44465b=this.#getPadding(),_0x54c006=(_0x1e1dbf-_0x44465b)/this.#baseWidth,_0x57a07c=(_0x382201-_0x44465b)/this.#baseHeight;this[_0x2ae76e(0x778)]=Math['min'](_0x54c006,_0x57a07c);}#updateTransform(){const _0x27ff37=_0x36cdb6,_0x425843=this.#getPadding()/0x2;this[_0x27ff37(0x427)][_0x27ff37(0xf1)](this[_0x27ff37(0x778)],0x0,0x0,this[_0x27ff37(0x778)],this[_0x27ff37(0x1cb)]*this[_0x27ff37(0x778)]+_0x425843,this[_0x27ff37(0x696)]*this['scaleFactor']+_0x425843);}static#buildPath2D(_0xc5d392){const _0x3c793f=_0x36cdb6,_0x31a71e=new Path2D();for(let _0x301d0f=0x0,_0x5345e0=_0xc5d392[_0x3c793f(0x557)];_0x301d0f<_0x5345e0;_0x301d0f++){const [_0x1080f6,_0x4c338c,_0x33d4ad,_0xa3d55]=_0xc5d392[_0x301d0f];_0x301d0f===0x0&&_0x31a71e[_0x3c793f(0x208)](..._0x1080f6),_0x31a71e[_0x3c793f(0x3c6)](_0x4c338c[0x0],_0x4c338c[0x1],_0x33d4ad[0x0],_0x33d4ad[0x1],_0xa3d55[0x0],_0xa3d55[0x1]);}return _0x31a71e;}static#toPDFCoordinates(_0x43c1ea,_0x32f253,_0x4ed91a){const _0x54a38d=_0x36cdb6,[_0x58501d,_0x7c309f,_0x4a5310,_0x3a5aad]=_0x32f253;switch(_0x4ed91a){case 0x0:for(let _0x257af6=0x0,_0x362aa5=_0x43c1ea[_0x54a38d(0x557)];_0x257af6<_0x362aa5;_0x257af6+=0x2){_0x43c1ea[_0x257af6]+=_0x58501d,_0x43c1ea[_0x257af6+0x1]=_0x3a5aad-_0x43c1ea[_0x257af6+0x1];}break;case 0x5a:for(let _0xf18688=0x0,_0x228c26=_0x43c1ea['length'];_0xf18688<_0x228c26;_0xf18688+=0x2){const _0x55709e=_0x43c1ea[_0xf18688];_0x43c1ea[_0xf18688]=_0x43c1ea[_0xf18688+0x1]+_0x58501d,_0x43c1ea[_0xf18688+0x1]=_0x55709e+_0x7c309f;}break;case 0xb4:for(let _0x13bc8f=0x0,_0x56904c=_0x43c1ea[_0x54a38d(0x557)];_0x13bc8f<_0x56904c;_0x13bc8f+=0x2){_0x43c1ea[_0x13bc8f]=_0x4a5310-_0x43c1ea[_0x13bc8f],_0x43c1ea[_0x13bc8f+0x1]+=_0x7c309f;}break;case 0x10e:for(let _0x2c5177=0x0,_0x1cba5c=_0x43c1ea[_0x54a38d(0x557)];_0x2c5177<_0x1cba5c;_0x2c5177+=0x2){const _0x15a260=_0x43c1ea[_0x2c5177];_0x43c1ea[_0x2c5177]=_0x4a5310-_0x43c1ea[_0x2c5177+0x1],_0x43c1ea[_0x2c5177+0x1]=_0x3a5aad-_0x15a260;}break;default:throw new Error(_0x54a38d(0x21f));}return _0x43c1ea;}static#fromPDFCoordinates(_0x42e723,_0x2303b7,_0x35be2f){const _0x2ed71c=_0x36cdb6,[_0xae6b4e,_0x269c61,_0x25e1b1,_0x1dea66]=_0x2303b7;switch(_0x35be2f){case 0x0:for(let _0x2647bf=0x0,_0x291d77=_0x42e723[_0x2ed71c(0x557)];_0x2647bf<_0x291d77;_0x2647bf+=0x2){_0x42e723[_0x2647bf]-=_0xae6b4e,_0x42e723[_0x2647bf+0x1]=_0x1dea66-_0x42e723[_0x2647bf+0x1];}break;case 0x5a:for(let _0x4a80d4=0x0,_0x25ea7a=_0x42e723[_0x2ed71c(0x557)];_0x4a80d4<_0x25ea7a;_0x4a80d4+=0x2){const _0x37031d=_0x42e723[_0x4a80d4];_0x42e723[_0x4a80d4]=_0x42e723[_0x4a80d4+0x1]-_0x269c61,_0x42e723[_0x4a80d4+0x1]=_0x37031d-_0xae6b4e;}break;case 0xb4:for(let _0x3a1f13=0x0,_0x256b0e=_0x42e723[_0x2ed71c(0x557)];_0x3a1f13<_0x256b0e;_0x3a1f13+=0x2){_0x42e723[_0x3a1f13]=_0x25e1b1-_0x42e723[_0x3a1f13],_0x42e723[_0x3a1f13+0x1]-=_0x269c61;}break;case 0x10e:for(let _0x59305b=0x0,_0x1d8020=_0x42e723['length'];_0x59305b<_0x1d8020;_0x59305b+=0x2){const _0x2f88f1=_0x42e723[_0x59305b];_0x42e723[_0x59305b]=_0x1dea66-_0x42e723[_0x59305b+0x1],_0x42e723[_0x59305b+0x1]=_0x25e1b1-_0x2f88f1;}break;default:throw new Error('Invalid\x20rotation');}return _0x42e723;}#serializePaths(_0x173213,_0x2d1312,_0x49b748,_0x135c0d){const _0xf0ca5d=_0x36cdb6,_0x12fd0a=[],_0x181d9a=this[_0xf0ca5d(0x776)]/0x2,_0x5306c5=_0x173213*_0x2d1312+_0x181d9a,_0xa6d403=_0x173213*_0x49b748+_0x181d9a;for(const _0x3918a4 of this[_0xf0ca5d(0xe0)]){const _0x287cbc=[],_0x211e8f=[];for(let _0x35baf0=0x0,_0xebe440=_0x3918a4[_0xf0ca5d(0x557)];_0x35baf0<_0xebe440;_0x35baf0++){const [_0x2738e9,_0x456f9a,_0xb204d8,_0x40a47f]=_0x3918a4[_0x35baf0],_0x43e9f8=_0x173213*_0x2738e9[0x0]+_0x5306c5,_0x1931b6=_0x173213*_0x2738e9[0x1]+_0xa6d403,_0x497058=_0x173213*_0x456f9a[0x0]+_0x5306c5,_0x3dd1a8=_0x173213*_0x456f9a[0x1]+_0xa6d403,_0x4d44e5=_0x173213*_0xb204d8[0x0]+_0x5306c5,_0x72f6e7=_0x173213*_0xb204d8[0x1]+_0xa6d403,_0x222dee=_0x173213*_0x40a47f[0x0]+_0x5306c5,_0x2876a5=_0x173213*_0x40a47f[0x1]+_0xa6d403;_0x35baf0===0x0&&(_0x287cbc[_0xf0ca5d(0x7d6)](_0x43e9f8,_0x1931b6),_0x211e8f['push'](_0x43e9f8,_0x1931b6)),_0x287cbc['push'](_0x497058,_0x3dd1a8,_0x4d44e5,_0x72f6e7,_0x222dee,_0x2876a5),_0x211e8f[_0xf0ca5d(0x7d6)](_0x497058,_0x3dd1a8),_0x35baf0===_0xebe440-0x1&&_0x211e8f[_0xf0ca5d(0x7d6)](_0x222dee,_0x2876a5);}_0x12fd0a[_0xf0ca5d(0x7d6)]({'bezier':_0x3dd333.#toPDFCoordinates(_0x287cbc,_0x135c0d,this[_0xf0ca5d(0x7af)]),'points':_0x3dd333.#toPDFCoordinates(_0x211e8f,_0x135c0d,this[_0xf0ca5d(0x7af)])});}return _0x12fd0a;}#getBbox(){const _0x539d2b=_0x36cdb6;let _0x3d25b7=Infinity,_0x2fbe4e=-Infinity,_0x30e0ba=Infinity,_0x3342c5=-Infinity;for(const _0x1c9349 of this['paths']){for(const [_0x534303,_0x353e46,_0x1159f2,_0x10bc35]of _0x1c9349){const _0x10f27d=_0x55e52b[_0x539d2b(0x5d7)]['bezierBoundingBox'](..._0x534303,..._0x353e46,..._0x1159f2,..._0x10bc35);_0x3d25b7=Math[_0x539d2b(0x81b)](_0x3d25b7,_0x10f27d[0x0]),_0x30e0ba=Math['min'](_0x30e0ba,_0x10f27d[0x1]),_0x2fbe4e=Math[_0x539d2b(0x78d)](_0x2fbe4e,_0x10f27d[0x2]),_0x3342c5=Math[_0x539d2b(0x78d)](_0x3342c5,_0x10f27d[0x3]);}}return[_0x3d25b7,_0x30e0ba,_0x2fbe4e,_0x3342c5];}#getPadding(){const _0xef01c9=_0x36cdb6;return this.#disableEditing?Math[_0xef01c9(0x213)](this[_0xef01c9(0x776)]*this[_0xef01c9(0x54a)]):0x0;}#fitToContent(){const _0x29a5b4=_0x36cdb6;let _0x3ce113=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:![];if(this[_0x29a5b4(0x480)]())return;if(!this.#disableEditing){this.#redraw();return;}const _0x1f3184=this.#getBbox(),_0x3b56b6=this.#getPadding();this.#baseWidth=Math['max'](_0xc11234[_0x29a5b4(0x8f0)]['MIN_SIZE'],_0x1f3184[0x2]-_0x1f3184[0x0]),this.#baseHeight=Math[_0x29a5b4(0x78d)](_0xc11234['AnnotationEditor'][_0x29a5b4(0x527)],_0x1f3184[0x3]-_0x1f3184[0x1]);const _0x49cbcb=Math[_0x29a5b4(0x213)](_0x3b56b6+this.#baseWidth*this[_0x29a5b4(0x778)]),_0x506798=Math[_0x29a5b4(0x213)](_0x3b56b6+this.#baseHeight*this['scaleFactor']),[_0x36ea56,_0x4e197f]=this[_0x29a5b4(0x956)];this['width']=_0x49cbcb/_0x36ea56,this[_0x29a5b4(0x999)]=_0x506798/_0x4e197f,this['setAspectRatio'](_0x49cbcb,_0x506798);const _0x29375f=this[_0x29a5b4(0x1cb)],_0x1127a2=this['translationY'];this[_0x29a5b4(0x1cb)]=-_0x1f3184[0x0],this[_0x29a5b4(0x696)]=-_0x1f3184[0x1],this.#setCanvasDims(),this.#redraw(),this.#realWidth=_0x49cbcb,this.#realHeight=_0x506798,this[_0x29a5b4(0x5f7)](_0x49cbcb,_0x506798);const _0x428a1f=_0x3ce113?_0x3b56b6/this[_0x29a5b4(0x778)]/0x2:0x0;this[_0x29a5b4(0x18d)](_0x29375f-this['translationX']-_0x428a1f,_0x1127a2-this[_0x29a5b4(0x696)]-_0x428a1f);}static['deserialize'](_0x1f9fd4,_0x1debdd,_0x151da2){const _0x532f15=_0x36cdb6;if(_0x1f9fd4 instanceof _0x1305fa[_0x532f15(0x301)])return null;const _0x290bde=super[_0x532f15(0x7a3)](_0x1f9fd4,_0x1debdd,_0x151da2);_0x290bde['thickness']=_0x1f9fd4['thickness'],_0x290bde[_0x532f15(0x5fe)]=_0x55e52b['Util']['makeHexColor'](..._0x1f9fd4[_0x532f15(0x5fe)]),_0x290bde[_0x532f15(0x53e)]=_0x1f9fd4[_0x532f15(0x53e)];const [_0x5ad54d,_0xd7f3f7]=_0x290bde[_0x532f15(0x37f)],_0x2ccbc8=_0x290bde[_0x532f15(0x98b)]*_0x5ad54d,_0x30098b=_0x290bde[_0x532f15(0x999)]*_0xd7f3f7,_0x437df7=_0x290bde[_0x532f15(0x54a)],_0x3a4954=_0x1f9fd4[_0x532f15(0x776)]/0x2;_0x290bde.#disableEditing=!![],_0x290bde.#realWidth=Math['round'](_0x2ccbc8),_0x290bde.#realHeight=Math[_0x532f15(0x7df)](_0x30098b);const {paths:_0x12de63,rect:_0x56920a,rotation:_0x3ba040}=_0x1f9fd4;for(let {bezier:_0x2640ed}of _0x12de63){_0x2640ed=_0x3dd333.#fromPDFCoordinates(_0x2640ed,_0x56920a,_0x3ba040);const _0x2f2b44=[];_0x290bde['paths'][_0x532f15(0x7d6)](_0x2f2b44);let _0xa3d1da=_0x437df7*(_0x2640ed[0x0]-_0x3a4954),_0x18ff8b=_0x437df7*(_0x2640ed[0x1]-_0x3a4954);for(let _0x44678d=0x2,_0x99dab1=_0x2640ed['length'];_0x44678d<_0x99dab1;_0x44678d+=0x6){const _0x34ff70=_0x437df7*(_0x2640ed[_0x44678d]-_0x3a4954),_0x5e6c85=_0x437df7*(_0x2640ed[_0x44678d+0x1]-_0x3a4954),_0x1e14c6=_0x437df7*(_0x2640ed[_0x44678d+0x2]-_0x3a4954),_0x34ca0d=_0x437df7*(_0x2640ed[_0x44678d+0x3]-_0x3a4954),_0x18da9e=_0x437df7*(_0x2640ed[_0x44678d+0x4]-_0x3a4954),_0x1fd6d0=_0x437df7*(_0x2640ed[_0x44678d+0x5]-_0x3a4954);_0x2f2b44[_0x532f15(0x7d6)]([[_0xa3d1da,_0x18ff8b],[_0x34ff70,_0x5e6c85],[_0x1e14c6,_0x34ca0d],[_0x18da9e,_0x1fd6d0]]),_0xa3d1da=_0x18da9e,_0x18ff8b=_0x1fd6d0;}const _0x35a26a=this.#buildPath2D(_0x2f2b44);_0x290bde[_0x532f15(0x2cd)][_0x532f15(0x7d6)](_0x35a26a);}const _0x25eed4=_0x290bde.#getBbox();return _0x290bde.#baseWidth=Math[_0x532f15(0x78d)](_0xc11234[_0x532f15(0x8f0)]['MIN_SIZE'],_0x25eed4[0x2]-_0x25eed4[0x0]),_0x290bde.#baseHeight=Math[_0x532f15(0x78d)](_0xc11234['AnnotationEditor'][_0x532f15(0x527)],_0x25eed4[0x3]-_0x25eed4[0x1]),_0x290bde.#setScaleFactor(_0x2ccbc8,_0x30098b),_0x290bde;}[_0x36cdb6(0x65d)](){const _0x3bfca5=_0x36cdb6;if(this['isEmpty']())return null;const _0x38a1b7=this[_0x3bfca5(0x93f)](0x0,0x0),_0x5ede22=_0xc11234[_0x3bfca5(0x8f0)][_0x3bfca5(0x80b)][_0x3bfca5(0x836)](this[_0x3bfca5(0x427)]['strokeStyle']);return{'annotationType':_0x55e52b['AnnotationEditorType']['INK'],'color':_0x5ede22,'thickness':this[_0x3bfca5(0x776)],'opacity':this[_0x3bfca5(0x53e)],'paths':this.#serializePaths(this[_0x3bfca5(0x778)]/this[_0x3bfca5(0x54a)],this[_0x3bfca5(0x1cb)],this[_0x3bfca5(0x696)],_0x38a1b7),'pageIndex':this[_0x3bfca5(0x700)],'rect':_0x38a1b7,'rotation':this[_0x3bfca5(0x7af)]};}}_0x5447ba[_0x36cdb6(0x7e1)]=_0x3dd333;},(_0x1a421f,_0x463535,_0x42b8da)=>{'use strict';const _0x5cdb12=a0_0x160d;Object[_0x5cdb12(0x430)](_0x463535,_0x5cdb12(0x19a),{'value':!![]}),_0x463535['StampEditor']=void 0x0;var _0xa997b2=_0x42b8da(0x85),_0x15e2ee=_0x42b8da(0x1),_0x3bf4e6=_0x42b8da(0x87),_0xfb6e85=_0x42b8da(0x9d);class _0x4a84cc extends _0xa997b2[_0x5cdb12(0x8f0)]{#bitmap=null;#bitmapId=null;#bitmapPromise=null;#bitmapUrl=null;#canvas=null;#observer=null;#resizeTimeoutId=null;#isSvg=![];static [_0x5cdb12(0x879)]=_0x5cdb12(0x89f);constructor(_0x449db3){super({..._0x449db3,'name':'stampEditor'}),this.#bitmapUrl=_0x449db3['bitmapUrl'];}#getBitmap(){const _0x46c6cf=_0x5cdb12;if(this.#bitmapId){this[_0x46c6cf(0x5e4)][_0x46c6cf(0x204)]['getFromId'](this.#bitmapId)[_0x46c6cf(0x22d)](_0x474295=>{const _0x537742=_0x46c6cf;if(!_0x474295){this[_0x537742(0x10a)]();return;}this.#bitmap=_0x474295[_0x537742(0x7eb)],this.#createCanvas();});return;}if(this.#bitmapUrl){const _0x1fd645=this.#bitmapUrl;this.#bitmapUrl=null,this.#bitmapPromise=this[_0x46c6cf(0x5e4)][_0x46c6cf(0x204)][_0x46c6cf(0x2e3)](_0x1fd645)[_0x46c6cf(0x22d)](_0x31593c=>{this.#bitmapPromise=null;if(!_0x31593c){this['remove']();return;}({bitmap:this.#bitmap,id:this.#bitmapId,isSvg:this.#isSvg}=_0x31593c,this.#createCanvas());});return;}const _0x755a3d=document[_0x46c6cf(0x400)](_0x46c6cf(0x3e6));_0x755a3d[_0x46c6cf(0x9fd)]='file',_0x755a3d[_0x46c6cf(0x606)]=_0x46c6cf(0x542),this.#bitmapPromise=new Promise(_0x4ed309=>{const _0xf9bb05=_0x46c6cf;_0x755a3d['addEventListener']('change',async()=>{const _0x17c287=a0_0x160d;this.#bitmapPromise=null;if(!_0x755a3d[_0x17c287(0x5df)]||_0x755a3d[_0x17c287(0x5df)][_0x17c287(0x557)]===0x0)this[_0x17c287(0x10a)]();else{const _0x46d75b=await this[_0x17c287(0x5e4)][_0x17c287(0x204)][_0x17c287(0x682)](_0x755a3d[_0x17c287(0x5df)][0x0]);if(!_0x46d75b){this['remove']();return;}({bitmap:this.#bitmap,id:this.#bitmapId,isSvg:this.#isSvg}=_0x46d75b,this.#createCanvas());}_0x4ed309();}),_0x755a3d[_0xf9bb05(0x5cc)]('cancel',()=>{this.#bitmapPromise=null,this['remove'](),_0x4ed309();});}),_0x755a3d[_0x46c6cf(0x45d)]();}[_0x5cdb12(0x10a)](){const _0x5863a3=_0x5cdb12;this.#bitmapId&&(this.#bitmap=null,this['_uiManager'][_0x5863a3(0x204)][_0x5863a3(0x376)](this.#bitmapId),this.#canvas?.['remove'](),this.#canvas=null,this.#observer?.['disconnect'](),this.#observer=null),super['remove']();}[_0x5cdb12(0x9d3)](){const _0x1aa5d6=_0x5cdb12;super[_0x1aa5d6(0x9d3)]();if(this[_0x1aa5d6(0x903)]===null)return;this.#bitmapId&&this.#getBitmap(),!this['isAttachedToDOM']&&this[_0x1aa5d6(0x4c3)][_0x1aa5d6(0x156)](this);}['onceAdded'](){const _0x494d0d=_0x5cdb12;this[_0x494d0d(0x903)][_0x494d0d(0x7dc)]=!![],this[_0x494d0d(0x4c3)][_0x494d0d(0x2bd)](this),this[_0x494d0d(0x903)]['focus']();}[_0x5cdb12(0x480)](){return this.#bitmapPromise===null&&this.#bitmap===null&&this.#bitmapUrl===null;}['render'](){const _0xc7ca33=_0x5cdb12;if(this['div'])return this[_0xc7ca33(0x903)];let _0x305e25,_0xde2bc;this[_0xc7ca33(0x98b)]&&(_0x305e25=this['x'],_0xde2bc=this['y']);super[_0xc7ca33(0x6c8)]();this.#bitmap?this.#createCanvas():(this[_0xc7ca33(0x903)]['classList'][_0xc7ca33(0x156)](_0xc7ca33(0x1ad)),this.#getBitmap());if(this[_0xc7ca33(0x98b)]){const [_0x4d5057,_0x46ebbe]=this[_0xc7ca33(0x956)];this[_0xc7ca33(0x231)](this[_0xc7ca33(0x98b)]*_0x4d5057,this[_0xc7ca33(0x999)]*_0x46ebbe),this[_0xc7ca33(0x912)](_0x305e25*_0x4d5057,_0xde2bc*_0x46ebbe,this[_0xc7ca33(0x98b)]*_0x4d5057,this[_0xc7ca33(0x999)]*_0x46ebbe);}return this[_0xc7ca33(0x903)];}#createCanvas(){const _0x511377=_0x5cdb12,{div:_0x5c6c39}=this;let {width:_0x36167b,height:_0x45be64}=this.#bitmap;const [_0x3fa45b,_0x531915]=this[_0x511377(0x37f)],_0x17223d=0.75;if(this[_0x511377(0x98b)])_0x36167b=this[_0x511377(0x98b)]*_0x3fa45b,_0x45be64=this[_0x511377(0x999)]*_0x531915;else{if(_0x36167b>_0x17223d*_0x3fa45b||_0x45be64>_0x17223d*_0x531915){const _0x1150f5=Math[_0x511377(0x81b)](_0x17223d*_0x3fa45b/_0x36167b,_0x17223d*_0x531915/_0x45be64);_0x36167b*=_0x1150f5,_0x45be64*=_0x1150f5;}}const [_0x4facb9,_0x523836]=this[_0x511377(0x956)];this[_0x511377(0x5f7)](_0x36167b*_0x4facb9/_0x3fa45b,_0x45be64*_0x523836/_0x531915),this[_0x511377(0x231)](_0x36167b,_0x45be64);const _0x2bce03=this.#canvas=document[_0x511377(0x400)](_0x511377(0x75a));_0x5c6c39[_0x511377(0x45e)](_0x2bce03),this.#drawBitmap(_0x36167b,_0x45be64),this.#createObserver(),_0x5c6c39[_0x511377(0x2bc)][_0x511377(0x10a)]('loading');}#setDimensions(_0x1c7540,_0x326fa1){const _0x1ae5c5=_0x5cdb12,[_0x1e9d2d,_0x297c0b]=this[_0x1ae5c5(0x956)];if(Math[_0x1ae5c5(0x346)](_0x1c7540-this[_0x1ae5c5(0x98b)]*_0x1e9d2d)<0x1&&Math[_0x1ae5c5(0x346)](_0x326fa1-this[_0x1ae5c5(0x999)]*_0x297c0b)<0x1)return;this[_0x1ae5c5(0x98b)]=_0x1c7540/_0x1e9d2d,this[_0x1ae5c5(0x999)]=_0x326fa1/_0x297c0b,this[_0x1ae5c5(0x5f7)](_0x1c7540,_0x326fa1);this.#resizeTimeoutId!==null&&clearTimeout(this.#resizeTimeoutId);const _0x132215=0xc8;this.#resizeTimeoutId=setTimeout(()=>{this.#resizeTimeoutId=null,this.#drawBitmap(_0x1c7540,_0x326fa1);},_0x132215);}#scaleBitmap(_0x43b4df,_0x7b4500){const _0x5b632f=_0x5cdb12,{width:_0x375d74,height:_0x204721}=this.#bitmap;let _0x46cc2f=_0x375d74,_0x4dc337=_0x204721,_0x126710=this.#bitmap;while(_0x46cc2f>0x2*_0x43b4df||_0x4dc337>0x2*_0x7b4500){const _0x11efb4=_0x46cc2f,_0x1d7957=_0x4dc337;_0x46cc2f>0x2*_0x43b4df&&(_0x46cc2f=_0x46cc2f>=0x4000?Math[_0x5b632f(0x583)](_0x46cc2f/0x2)-0x1:Math[_0x5b632f(0x213)](_0x46cc2f/0x2));_0x4dc337>0x2*_0x7b4500&&(_0x4dc337=_0x4dc337>=0x4000?Math[_0x5b632f(0x583)](_0x4dc337/0x2)-0x1:Math[_0x5b632f(0x213)](_0x4dc337/0x2));const _0x19fd9f=new OffscreenCanvas(_0x46cc2f,_0x4dc337),_0x5204f7=_0x19fd9f[_0x5b632f(0x802)]('2d');_0x5204f7[_0x5b632f(0x545)](_0x126710,0x0,0x0,_0x11efb4,_0x1d7957,0x0,0x0,_0x46cc2f,_0x4dc337),_0x126710=_0x19fd9f[_0x5b632f(0x5de)]();}return _0x126710;}#drawBitmap(_0x31de05,_0x1ab226){const _0x15fd60=_0x5cdb12,_0x4bfd0a=this.#canvas;if(!_0x4bfd0a||_0x4bfd0a['width']===_0x31de05&&_0x4bfd0a[_0x15fd60(0x999)]===_0x1ab226)return;_0x4bfd0a['width']=_0x31de05,_0x4bfd0a[_0x15fd60(0x999)]=_0x1ab226;const _0x3b1fc0=this.#isSvg?this.#bitmap:this.#scaleBitmap(_0x31de05,_0x1ab226),_0x42da9c=_0x4bfd0a[_0x15fd60(0x802)]('2d');_0x42da9c['filter']=this['_uiManager'][_0x15fd60(0x370)],_0x42da9c[_0x15fd60(0x545)](_0x3b1fc0,0x0,0x0,_0x3b1fc0[_0x15fd60(0x98b)],_0x3b1fc0[_0x15fd60(0x999)],0x0,0x0,_0x31de05,_0x1ab226);}#serializeBitmap(_0x3ac80e){const _0x107017=_0x5cdb12;if(_0x3ac80e){if(this.#isSvg){const _0x50ccac=this[_0x107017(0x5e4)][_0x107017(0x204)][_0x107017(0x71e)](this.#bitmapId);if(_0x50ccac)return _0x50ccac;}const _0x47b612=document[_0x107017(0x400)]('canvas');({width:_0x47b612[_0x107017(0x98b)],height:_0x47b612['height']}=this.#bitmap);const _0x5aebbe=_0x47b612[_0x107017(0x802)]('2d');return _0x5aebbe[_0x107017(0x545)](this.#bitmap,0x0,0x0),_0x47b612['toDataURL']();}if(this.#isSvg){const [_0x55f6ed,_0x1f9504]=this[_0x107017(0x37f)],_0x3b4825=Math['round'](this[_0x107017(0x98b)]*_0x55f6ed*_0x3bf4e6[_0x107017(0x705)][_0x107017(0x9aa)]),_0x1193fb=Math[_0x107017(0x7df)](this['height']*_0x1f9504*_0x3bf4e6[_0x107017(0x705)][_0x107017(0x9aa)]),_0x23b486=new OffscreenCanvas(_0x3b4825,_0x1193fb),_0x386fc2=_0x23b486[_0x107017(0x802)]('2d');return _0x386fc2[_0x107017(0x545)](this.#bitmap,0x0,0x0,this.#bitmap[_0x107017(0x98b)],this.#bitmap[_0x107017(0x999)],0x0,0x0,_0x3b4825,_0x1193fb),_0x23b486[_0x107017(0x5de)]();}return structuredClone(this.#bitmap);}#createObserver(){const _0x125780=_0x5cdb12;this.#observer=new ResizeObserver(_0x581f37=>{const _0x4d492e=a0_0x160d,_0x4be665=_0x581f37[0x0]['contentRect'];_0x4be665[_0x4d492e(0x98b)]&&_0x4be665[_0x4d492e(0x999)]&&this.#setDimensions(_0x4be665['width'],_0x4be665['height']);}),this.#observer['observe'](this[_0x125780(0x903)]);}static[_0x5cdb12(0x7a3)](_0x2298e8,_0x22775d,_0x33f114){const _0x5ea56f=_0x5cdb12;if(_0x2298e8 instanceof _0xfb6e85[_0x5ea56f(0x3ed)])return null;const _0x4bef22=super[_0x5ea56f(0x7a3)](_0x2298e8,_0x22775d,_0x33f114),{rect:_0x4db67b,bitmapUrl:_0x2bde18,bitmapId:_0xfacd7,isSvg:_0x1c634c}=_0x2298e8;_0xfacd7&&_0x33f114[_0x5ea56f(0x204)]['isValidId'](_0xfacd7)?_0x4bef22.#bitmapId=_0xfacd7:_0x4bef22.#bitmapUrl=_0x2bde18;_0x4bef22.#isSvg=_0x1c634c;const [_0x292d68,_0xad5c38]=_0x4bef22[_0x5ea56f(0x37f)];return _0x4bef22[_0x5ea56f(0x98b)]=(_0x4db67b[0x2]-_0x4db67b[0x0])/_0x292d68,_0x4bef22[_0x5ea56f(0x999)]=(_0x4db67b[0x3]-_0x4db67b[0x1])/_0xad5c38,_0x4bef22;}['serialize'](){const _0x2fc68f=_0x5cdb12;let _0x159afe=arguments[_0x2fc68f(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:![],_0x1ea762=arguments[_0x2fc68f(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:null;if(this['isEmpty']())return null;const _0x55b35a={'annotationType':_0x15e2ee[_0x2fc68f(0x9a6)][_0x2fc68f(0x8e8)],'bitmapId':this.#bitmapId,'pageIndex':this[_0x2fc68f(0x700)],'rect':this[_0x2fc68f(0x93f)](0x0,0x0),'rotation':this[_0x2fc68f(0x7af)],'isSvg':this.#isSvg};if(_0x159afe)return _0x55b35a[_0x2fc68f(0x168)]=this.#serializeBitmap(!![]),_0x55b35a;if(_0x1ea762===null)return _0x55b35a;_0x1ea762[_0x2fc68f(0xf4)]||=new Map();const _0x72966b=this.#isSvg?(_0x55b35a['rect'][0x2]-_0x55b35a['rect'][0x0])*(_0x55b35a[_0x2fc68f(0x333)][0x3]-_0x55b35a['rect'][0x1]):null;if(!_0x1ea762['stamps'][_0x2fc68f(0x373)](this.#bitmapId))_0x1ea762[_0x2fc68f(0xf4)][_0x2fc68f(0x98e)](this.#bitmapId,{'area':_0x72966b,'serialized':_0x55b35a}),_0x55b35a[_0x2fc68f(0x7eb)]=this.#serializeBitmap(![]);else{if(this.#isSvg){const _0x5cbb94=_0x1ea762[_0x2fc68f(0xf4)][_0x2fc68f(0x8c4)](this.#bitmapId);_0x72966b>_0x5cbb94['area']&&(_0x5cbb94[_0x2fc68f(0x806)]=_0x72966b,_0x5cbb94[_0x2fc68f(0x4ce)]['bitmap']['close'](),_0x5cbb94[_0x2fc68f(0x4ce)][_0x2fc68f(0x7eb)]=this.#serializeBitmap(![]));}}return _0x55b35a;}}_0x463535['StampEditor']=_0x4a84cc;},(_0x1d4389,_0x3afacb,_0xfb7b59)=>{'use strict';const _0x150b74=a0_0x160d;Object['defineProperty'](_0x3afacb,_0x150b74(0x19a),{'value':!![]}),_0x3afacb['SVGGraphics']=void 0x0;var _0x57526a=_0xfb7b59(0x87),_0x41bc5e=_0xfb7b59(0x1),_0x2d7290=_0xfb7b59(0x3);;const _0x517386={'fontStyle':_0x150b74(0x102),'fontWeight':_0x150b74(0x102),'fillColor':_0x150b74(0x83d)},_0x1af505=_0x150b74(0x308),_0x13d3b1=_0x150b74(0x8af),_0x2720e0=['butt',_0x150b74(0x7df),_0x150b74(0x2c6)],_0x4a998d=[_0x150b74(0x1bc),_0x150b74(0x7df),'bevel'],_0x1e6a71=function(_0x36761d){const _0x13368a=_0x150b74;let _0x1b2fc3=arguments['length']>0x1&&arguments[0x1]!==undefined?arguments[0x1]:'',_0x33fd5a=arguments[_0x13368a(0x557)]>0x2&&arguments[0x2]!==undefined?arguments[0x2]:![];if(URL[_0x13368a(0x9c1)]&&typeof Blob!==_0x13368a(0x32c)&&!_0x33fd5a)return URL[_0x13368a(0x9c1)](new Blob([_0x36761d],{'type':_0x1b2fc3}));const _0x3c97bc=_0x13368a(0x9f4);let _0x3b91a0='data:'+_0x1b2fc3+_0x13368a(0x7ae);for(let _0x2d863b=0x0,_0x2f88b6=_0x36761d[_0x13368a(0x557)];_0x2d863b<_0x2f88b6;_0x2d863b+=0x3){const _0x16f10e=_0x36761d[_0x2d863b]&0xff,_0x5943ac=_0x36761d[_0x2d863b+0x1]&0xff,_0x295073=_0x36761d[_0x2d863b+0x2]&0xff,_0x3e432e=_0x16f10e>>0x2,_0x23a001=(_0x16f10e&0x3)<<0x4|_0x5943ac>>0x4,_0x55c45e=_0x2d863b+0x1<_0x2f88b6?(_0x5943ac&0xf)<<0x2|_0x295073>>0x6:0x40,_0x506209=_0x2d863b+0x2<_0x2f88b6?_0x295073&0x3f:0x40;_0x3b91a0+=_0x3c97bc[_0x3e432e]+_0x3c97bc[_0x23a001]+_0x3c97bc[_0x55c45e]+_0x3c97bc[_0x506209];}return _0x3b91a0;},_0x2e0f43=(function(){const _0x5ce09d=new Uint8Array([0x89,0x50,0x4e,0x47,0xd,0xa,0x1a,0xa]),_0x3fdb16=0xc,_0x1ef517=new Int32Array(0x100);for(let _0x563ddb=0x0;_0x563ddb<0x100;_0x563ddb++){let _0x52e52a=_0x563ddb;for(let _0xb6cf07=0x0;_0xb6cf07<0x8;_0xb6cf07++){_0x52e52a&0x1?_0x52e52a=0xedb88320^_0x52e52a>>0x1&0x7fffffff:_0x52e52a=_0x52e52a>>0x1&0x7fffffff;}_0x1ef517[_0x563ddb]=_0x52e52a;}function _0x327639(_0x2137bd,_0x119c26,_0x123a49){let _0x8ecbfc=-0x1;for(let _0x336d4a=_0x119c26;_0x336d4a<_0x123a49;_0x336d4a++){const _0x3cb003=(_0x8ecbfc^_0x2137bd[_0x336d4a])&0xff,_0x5d5f70=_0x1ef517[_0x3cb003];_0x8ecbfc=_0x8ecbfc>>>0x8^_0x5d5f70;}return _0x8ecbfc^-0x1;}function _0x5aef5c(_0x4633ed,_0x450421,_0x55e95f,_0x42a51e){const _0x538df9=a0_0x160d;let _0x3dad87=_0x42a51e;const _0x1c0042=_0x450421[_0x538df9(0x557)];_0x55e95f[_0x3dad87]=_0x1c0042>>0x18&0xff,_0x55e95f[_0x3dad87+0x1]=_0x1c0042>>0x10&0xff,_0x55e95f[_0x3dad87+0x2]=_0x1c0042>>0x8&0xff,_0x55e95f[_0x3dad87+0x3]=_0x1c0042&0xff,_0x3dad87+=0x4,_0x55e95f[_0x3dad87]=_0x4633ed['charCodeAt'](0x0)&0xff,_0x55e95f[_0x3dad87+0x1]=_0x4633ed[_0x538df9(0x9f3)](0x1)&0xff,_0x55e95f[_0x3dad87+0x2]=_0x4633ed[_0x538df9(0x9f3)](0x2)&0xff,_0x55e95f[_0x3dad87+0x3]=_0x4633ed['charCodeAt'](0x3)&0xff,_0x3dad87+=0x4,_0x55e95f[_0x538df9(0x98e)](_0x450421,_0x3dad87),_0x3dad87+=_0x450421[_0x538df9(0x557)];const _0x4289b3=_0x327639(_0x55e95f,_0x42a51e+0x4,_0x3dad87);_0x55e95f[_0x3dad87]=_0x4289b3>>0x18&0xff,_0x55e95f[_0x3dad87+0x1]=_0x4289b3>>0x10&0xff,_0x55e95f[_0x3dad87+0x2]=_0x4289b3>>0x8&0xff,_0x55e95f[_0x3dad87+0x3]=_0x4289b3&0xff;}function _0x3d517c(_0x5449d3,_0x1465fd,_0x191798){let _0x33a2a=0x1,_0x315333=0x0;for(let _0x12f4a9=_0x1465fd;_0x12f4a9<_0x191798;++_0x12f4a9){_0x33a2a=(_0x33a2a+(_0x5449d3[_0x12f4a9]&0xff))%0xfff1,_0x315333=(_0x315333+_0x33a2a)%0xfff1;}return _0x315333<<0x10|_0x33a2a;}function _0x26c79d(_0x3b8f2d){const _0x4ef0a7=a0_0x160d;if(!_0x2d7290[_0x4ef0a7(0x8c5)])return _0x3e076d(_0x3b8f2d);try{let _0x76cf41;parseInt(process[_0x4ef0a7(0x83a)][_0x4ef0a7(0x4d3)])>=0x8?_0x76cf41=_0x3b8f2d:_0x76cf41=Buffer[_0x4ef0a7(0x875)](_0x3b8f2d);const _0x33f082=require(_0x4ef0a7(0x848))[_0x4ef0a7(0x1a7)](_0x76cf41,{'level':0x9});return _0x33f082 instanceof Uint8Array?_0x33f082:new Uint8Array(_0x33f082);}catch(_0x55fede){(0x0,_0x41bc5e[_0x4ef0a7(0x472)])('Not\x20compressing\x20PNG\x20because\x20zlib.deflateSync\x20is\x20unavailable:\x20'+_0x55fede);}return _0x3e076d(_0x3b8f2d);}function _0x3e076d(_0x3b3e98){const _0x36cc7b=a0_0x160d;let _0x450393=_0x3b3e98[_0x36cc7b(0x557)];const _0x17c6a2=0xffff,_0xf5a766=Math[_0x36cc7b(0x213)](_0x450393/_0x17c6a2),_0x245592=new Uint8Array(0x2+_0x450393+_0xf5a766*0x5+0x4);let _0x433ce6=0x0;_0x245592[_0x433ce6++]=0x78,_0x245592[_0x433ce6++]=0x9c;let _0xbdddd1=0x0;while(_0x450393>_0x17c6a2){_0x245592[_0x433ce6++]=0x0,_0x245592[_0x433ce6++]=0xff,_0x245592[_0x433ce6++]=0xff,_0x245592[_0x433ce6++]=0x0,_0x245592[_0x433ce6++]=0x0,_0x245592[_0x36cc7b(0x98e)](_0x3b3e98[_0x36cc7b(0x47f)](_0xbdddd1,_0xbdddd1+_0x17c6a2),_0x433ce6),_0x433ce6+=_0x17c6a2,_0xbdddd1+=_0x17c6a2,_0x450393-=_0x17c6a2;}_0x245592[_0x433ce6++]=0x1,_0x245592[_0x433ce6++]=_0x450393&0xff,_0x245592[_0x433ce6++]=_0x450393>>0x8&0xff,_0x245592[_0x433ce6++]=~_0x450393&0xffff&0xff,_0x245592[_0x433ce6++]=(~_0x450393&0xffff)>>0x8&0xff,_0x245592['set'](_0x3b3e98[_0x36cc7b(0x47f)](_0xbdddd1),_0x433ce6),_0x433ce6+=_0x3b3e98[_0x36cc7b(0x557)]-_0xbdddd1;const _0x347f4d=_0x3d517c(_0x3b3e98,0x0,_0x3b3e98['length']);return _0x245592[_0x433ce6++]=_0x347f4d>>0x18&0xff,_0x245592[_0x433ce6++]=_0x347f4d>>0x10&0xff,_0x245592[_0x433ce6++]=_0x347f4d>>0x8&0xff,_0x245592[_0x433ce6++]=_0x347f4d&0xff,_0x245592;}function _0x4504bd(_0x5e13f2,_0x45a5b2,_0x4c98b1,_0x22e168){const _0xd0e714=a0_0x160d,_0x3bae3a=_0x5e13f2[_0xd0e714(0x98b)],_0x45b58a=_0x5e13f2[_0xd0e714(0x999)];let _0x5df02a,_0x4b826a,_0x3a239b;const _0x418ab1=_0x5e13f2[_0xd0e714(0x41b)];switch(_0x45a5b2){case _0x41bc5e[_0xd0e714(0x163)][_0xd0e714(0x245)]:_0x4b826a=0x0,_0x5df02a=0x1,_0x3a239b=_0x3bae3a+0x7>>0x3;break;case _0x41bc5e[_0xd0e714(0x163)][_0xd0e714(0x66e)]:_0x4b826a=0x2,_0x5df02a=0x8,_0x3a239b=_0x3bae3a*0x3;break;case _0x41bc5e[_0xd0e714(0x163)][_0xd0e714(0x617)]:_0x4b826a=0x6,_0x5df02a=0x8,_0x3a239b=_0x3bae3a*0x4;break;default:throw new Error(_0xd0e714(0x77b));}const _0x6a994d=new Uint8Array((0x1+_0x3a239b)*_0x45b58a);let _0x34abfd=0x0,_0x4d7086=0x0;for(let _0x5b4727=0x0;_0x5b4727<_0x45b58a;++_0x5b4727){_0x6a994d[_0x34abfd++]=0x0,_0x6a994d['set'](_0x418ab1[_0xd0e714(0x47f)](_0x4d7086,_0x4d7086+_0x3a239b),_0x34abfd),_0x4d7086+=_0x3a239b,_0x34abfd+=_0x3a239b;}if(_0x45a5b2===_0x41bc5e[_0xd0e714(0x163)][_0xd0e714(0x245)]&&_0x22e168){_0x34abfd=0x0;for(let _0x3761ff=0x0;_0x3761ff<_0x45b58a;_0x3761ff++){_0x34abfd++;for(let _0x2d9e8c=0x0;_0x2d9e8c<_0x3a239b;_0x2d9e8c++){_0x6a994d[_0x34abfd++]^=0xff;}}}const _0x21d836=new Uint8Array([_0x3bae3a>>0x18&0xff,_0x3bae3a>>0x10&0xff,_0x3bae3a>>0x8&0xff,_0x3bae3a&0xff,_0x45b58a>>0x18&0xff,_0x45b58a>>0x10&0xff,_0x45b58a>>0x8&0xff,_0x45b58a&0xff,_0x5df02a,_0x4b826a,0x0,0x0,0x0]),_0x28afce=_0x26c79d(_0x6a994d),_0x2e91b2=_0x5ce09d['length']+_0x3fdb16*0x3+_0x21d836[_0xd0e714(0x557)]+_0x28afce[_0xd0e714(0x557)],_0x143297=new Uint8Array(_0x2e91b2);let _0x55ff5d=0x0;return _0x143297[_0xd0e714(0x98e)](_0x5ce09d,_0x55ff5d),_0x55ff5d+=_0x5ce09d[_0xd0e714(0x557)],_0x5aef5c('IHDR',_0x21d836,_0x143297,_0x55ff5d),_0x55ff5d+=_0x3fdb16+_0x21d836[_0xd0e714(0x557)],_0x5aef5c(_0xd0e714(0x233),_0x28afce,_0x143297,_0x55ff5d),_0x55ff5d+=_0x3fdb16+_0x28afce['length'],_0x5aef5c(_0xd0e714(0x1c9),new Uint8Array(0x0),_0x143297,_0x55ff5d),_0x1e6a71(_0x143297,_0xd0e714(0x1a1),_0x4c98b1);}return function _0x135fcb(_0x465994,_0x1d1f91,_0x1f001e){const _0x275093=a0_0x160d,_0x29dc15=_0x465994[_0x275093(0x440)]===undefined?_0x41bc5e[_0x275093(0x163)][_0x275093(0x245)]:_0x465994[_0x275093(0x440)];return _0x4504bd(_0x465994,_0x29dc15,_0x1d1f91,_0x1f001e);};}());class _0xc8b0fd{constructor(){const _0x51fc8b=_0x150b74;this[_0x51fc8b(0x94d)]=0x1,this['fontWeight']=_0x517386[_0x51fc8b(0x5f0)],this['fontSize']=0x0,this['textMatrix']=_0x41bc5e[_0x51fc8b(0x2d6)],this[_0x51fc8b(0x4f3)]=_0x41bc5e[_0x51fc8b(0x6ab)],this[_0x51fc8b(0x7f7)]=0x0,this[_0x51fc8b(0x743)]=_0x41bc5e[_0x51fc8b(0x38b)][_0x51fc8b(0x61e)],this['textMatrixScale']=0x1,this['x']=0x0,this['y']=0x0,this['lineX']=0x0,this[_0x51fc8b(0x220)]=0x0,this[_0x51fc8b(0x329)]=0x0,this[_0x51fc8b(0x865)]=0x0,this[_0x51fc8b(0x494)]=0x1,this['textRise']=0x0,this[_0x51fc8b(0x631)]=_0x517386[_0x51fc8b(0x631)],this['strokeColor']=_0x51fc8b(0x83d),this[_0x51fc8b(0x587)]=0x1,this[_0x51fc8b(0x2ca)]=0x1,this['lineWidth']=0x1,this[_0x51fc8b(0x1f4)]='',this['lineCap']='',this[_0x51fc8b(0x7d2)]=0x0,this['dashArray']=[],this[_0x51fc8b(0x680)]=0x0,this[_0x51fc8b(0x438)]=[],this[_0x51fc8b(0x199)]=null,this[_0x51fc8b(0x8b2)]=null,this[_0x51fc8b(0x27a)]='';}[_0x150b74(0x461)](){const _0xe74f10=_0x150b74;return Object[_0xe74f10(0x77c)](this);}['setCurrentPoint'](_0x24cfaa,_0x47a921){this['x']=_0x24cfaa,this['y']=_0x47a921;}}function _0x1d2582(_0x583c34){const _0xbcbd40=_0x150b74;let _0x210619=[];const _0x584bc3=[];for(const _0x2309a0 of _0x583c34){if(_0x2309a0['fn']===_0xbcbd40(0x7e2)){_0x210619['push']({'fnId':0x5c,'fn':_0xbcbd40(0x4cb),'items':[]}),_0x584bc3[_0xbcbd40(0x7d6)](_0x210619),_0x210619=_0x210619['at'](-0x1)[_0xbcbd40(0x44d)];continue;}_0x2309a0['fn']===_0xbcbd40(0x9ab)?_0x210619=_0x584bc3[_0xbcbd40(0x783)]():_0x210619[_0xbcbd40(0x7d6)](_0x2309a0);}return _0x210619;}function _0x48533e(_0x141a41){const _0xbcc696=_0x150b74;if(Number[_0xbcc696(0x235)](_0x141a41))return _0x141a41[_0xbcc696(0x83f)]();const _0x241600=_0x141a41['toFixed'](0xa);let _0x5358e9=_0x241600[_0xbcc696(0x557)]-0x1;if(_0x241600[_0x5358e9]!=='0')return _0x241600;do{_0x5358e9--;}while(_0x241600[_0x5358e9]==='0');return _0x241600[_0xbcc696(0x5d2)](0x0,_0x241600[_0x5358e9]==='.'?_0x5358e9:_0x5358e9+0x1);}function _0x5473ca(_0x51fa5e){const _0x22fd04=_0x150b74;if(_0x51fa5e[0x4]===0x0&&_0x51fa5e[0x5]===0x0){if(_0x51fa5e[0x1]===0x0&&_0x51fa5e[0x2]===0x0){if(_0x51fa5e[0x0]===0x1&&_0x51fa5e[0x3]===0x1)return'';return'scale('+_0x48533e(_0x51fa5e[0x0])+'\x20'+_0x48533e(_0x51fa5e[0x3])+')';}if(_0x51fa5e[0x0]===_0x51fa5e[0x3]&&_0x51fa5e[0x1]===-_0x51fa5e[0x2]){const _0x4d630a=Math['acos'](_0x51fa5e[0x0])*0xb4/Math['PI'];return'rotate('+_0x48533e(_0x4d630a)+')';}}else{if(_0x51fa5e[0x0]===0x1&&_0x51fa5e[0x1]===0x0&&_0x51fa5e[0x2]===0x0&&_0x51fa5e[0x3]===0x1)return _0x22fd04(0x2b7)+_0x48533e(_0x51fa5e[0x4])+'\x20'+_0x48533e(_0x51fa5e[0x5])+')';}return _0x22fd04(0x29c)+_0x48533e(_0x51fa5e[0x0])+'\x20'+_0x48533e(_0x51fa5e[0x1])+'\x20'+_0x48533e(_0x51fa5e[0x2])+'\x20'+_0x48533e(_0x51fa5e[0x3])+'\x20'+_0x48533e(_0x51fa5e[0x4])+'\x20'+(_0x48533e(_0x51fa5e[0x5])+')');}let _0x2ade60=0x0,_0x2188cc=0x0,_0x491b93=0x0;class _0x52d6c5{constructor(_0x351f40,_0x44bd07){const _0x414e3b=_0x150b74;let _0x1a5b6b=arguments[_0x414e3b(0x557)]>0x2&&arguments[0x2]!==undefined?arguments[0x2]:![];(0x0,_0x57526a[_0x414e3b(0x30f)])(_0x414e3b(0x734)),this[_0x414e3b(0x385)]=new _0x57526a[(_0x414e3b(0x7be))](),this[_0x414e3b(0x835)]=new _0xc8b0fd(),this[_0x414e3b(0x516)]=_0x41bc5e[_0x414e3b(0x2d6)],this[_0x414e3b(0x90a)]=[],this['extraStack']=[],this['commonObjs']=_0x351f40,this[_0x414e3b(0xdc)]=_0x44bd07,this[_0x414e3b(0x78f)]=null,this['pendingEOFill']=![],this[_0x414e3b(0x393)]=![],this[_0x414e3b(0xc3)]=Object[_0x414e3b(0x77c)](null),this[_0x414e3b(0x1cf)]=null,this[_0x414e3b(0xd7)]=!!_0x1a5b6b,this[_0x414e3b(0x87e)]=[];for(const _0x3bb49f in _0x41bc5e[_0x414e3b(0x13d)]){this[_0x414e3b(0x87e)][_0x41bc5e[_0x414e3b(0x13d)][_0x3bb49f]]=_0x3bb49f;}}['getObject'](_0x27bd43){const _0x114bec=_0x150b74;let _0x1a59b9=arguments[_0x114bec(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:null;if(typeof _0x27bd43===_0x114bec(0x8cd))return _0x27bd43[_0x114bec(0x2aa)]('g_')?this[_0x114bec(0x53b)][_0x114bec(0x8c4)](_0x27bd43):this['objs'][_0x114bec(0x8c4)](_0x27bd43);return _0x1a59b9;}[_0x150b74(0x7e2)](){const _0x53ff74=_0x150b74;this[_0x53ff74(0x90a)][_0x53ff74(0x7d6)](this[_0x53ff74(0x516)]);const _0x5178c4=this[_0x53ff74(0x835)];this[_0x53ff74(0x1ed)]['push'](_0x5178c4),this[_0x53ff74(0x835)]=_0x5178c4[_0x53ff74(0x461)]();}[_0x150b74(0x9ab)](){const _0x5dacd7=_0x150b74;this[_0x5dacd7(0x516)]=this[_0x5dacd7(0x90a)][_0x5dacd7(0x783)](),this['current']=this['extraStack'][_0x5dacd7(0x783)](),this[_0x5dacd7(0x78f)]=null,this[_0x5dacd7(0x278)]=null;}[_0x150b74(0x4cb)](_0x3630eb){const _0x1b9a56=_0x150b74;this[_0x1b9a56(0x7e2)](),this[_0x1b9a56(0x114)](_0x3630eb),this[_0x1b9a56(0x9ab)]();}['loadDependencies'](_0x3741b5){const _0x59fa4d=_0x150b74,_0x3d3a35=_0x3741b5[_0x59fa4d(0x681)],_0x40ed0c=_0x3741b5[_0x59fa4d(0x20c)];for(let _0x27252a=0x0,_0x37394d=_0x3d3a35['length'];_0x27252a<_0x37394d;_0x27252a++){if(_0x3d3a35[_0x27252a]!==_0x41bc5e['OPS'][_0x59fa4d(0x2e2)])continue;for(const _0x18984d of _0x40ed0c[_0x27252a]){const _0x11d7a0=_0x18984d[_0x59fa4d(0x2aa)]('g_')?this[_0x59fa4d(0x53b)]:this[_0x59fa4d(0xdc)],_0x177df9=new Promise(_0x406b2f=>{_0x11d7a0['get'](_0x18984d,_0x406b2f);});this['current'][_0x59fa4d(0x438)][_0x59fa4d(0x7d6)](_0x177df9);}}return Promise[_0x59fa4d(0x586)](this[_0x59fa4d(0x835)]['dependencies']);}[_0x150b74(0x5dd)](_0x188241,_0x584017,_0x5b50a2,_0xa98256,_0x3e6274,_0x5e9be1){const _0x4663f2=_0x150b74,_0x29ef9f=[_0x188241,_0x584017,_0x5b50a2,_0xa98256,_0x3e6274,_0x5e9be1];this[_0x4663f2(0x516)]=_0x41bc5e['Util']['transform'](this['transformMatrix'],_0x29ef9f),this[_0x4663f2(0x278)]=null;}[_0x150b74(0xff)](_0x2d17a5,_0x3fa0ff){const _0x2fe41c=_0x150b74;this[_0x2fe41c(0x502)]=_0x3fa0ff;const _0x4defd0=this[_0x2fe41c(0x9f0)](_0x3fa0ff);return this[_0x2fe41c(0x2cf)](_0x2d17a5)[_0x2fe41c(0x22d)](()=>{const _0x250cca=_0x2fe41c;return this['transformMatrix']=_0x41bc5e[_0x250cca(0x2d6)],this[_0x250cca(0x114)](this[_0x250cca(0x873)](_0x2d17a5)),_0x4defd0;});}[_0x150b74(0x873)](_0x4e15e9){const _0x90c01c=_0x150b74,_0x1d10b0=this[_0x90c01c(0x87e)],_0x581056=_0x4e15e9['argsArray'],_0x295eff=_0x4e15e9['fnArray'],_0x1ec7bc=[];for(let _0x1307aa=0x0,_0x3e146a=_0x295eff['length'];_0x1307aa<_0x3e146a;_0x1307aa++){const _0x59e961=_0x295eff[_0x1307aa];_0x1ec7bc[_0x90c01c(0x7d6)]({'fnId':_0x59e961,'fn':_0x1d10b0[_0x59e961],'args':_0x581056[_0x1307aa]});}return _0x1d2582(_0x1ec7bc);}['executeOpTree'](_0x5c3050){const _0x32e8aa=_0x150b74;for(const _0x5d7b14 of _0x5c3050){const _0x8ab5e0=_0x5d7b14['fn'],_0x1c9195=_0x5d7b14[_0x32e8aa(0x8ee)],_0x3c7c4b=_0x5d7b14['args'];switch(_0x1c9195|0x0){case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x741)]:this[_0x32e8aa(0x741)]();break;case _0x41bc5e[_0x32e8aa(0x13d)]['dependency']:break;case _0x41bc5e[_0x32e8aa(0x13d)]['setLeading']:this[_0x32e8aa(0x904)](_0x3c7c4b);break;case _0x41bc5e[_0x32e8aa(0x13d)]['setLeadingMoveText']:this['setLeadingMoveText'](_0x3c7c4b[0x0],_0x3c7c4b[0x1]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x952)]:this[_0x32e8aa(0x952)](_0x3c7c4b);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x610)]:this['showText'](_0x3c7c4b[0x0]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x832)]:this[_0x32e8aa(0x610)](_0x3c7c4b[0x0]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x50b)]:this[_0x32e8aa(0x50b)]();break;case _0x41bc5e['OPS'][_0x32e8aa(0x79d)]:this['moveText'](_0x3c7c4b[0x0],_0x3c7c4b[0x1]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x449)]:this[_0x32e8aa(0x449)](_0x3c7c4b[0x0]);break;case _0x41bc5e[_0x32e8aa(0x13d)]['setWordSpacing']:this[_0x32e8aa(0x17e)](_0x3c7c4b[0x0]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x175)]:this[_0x32e8aa(0x175)](_0x3c7c4b[0x0]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x92e)]:this[_0x32e8aa(0x92e)](_0x3c7c4b[0x0],_0x3c7c4b[0x1],_0x3c7c4b[0x2],_0x3c7c4b[0x3],_0x3c7c4b[0x4],_0x3c7c4b[0x5]);break;case _0x41bc5e[_0x32e8aa(0x13d)]['setTextRise']:this[_0x32e8aa(0x178)](_0x3c7c4b[0x0]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x69e)]:this[_0x32e8aa(0x69e)](_0x3c7c4b[0x0]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x671)]:this[_0x32e8aa(0x671)](_0x3c7c4b[0x0]);break;case _0x41bc5e['OPS'][_0x32e8aa(0x597)]:this[_0x32e8aa(0x597)](_0x3c7c4b[0x0]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x571)]:this['setLineCap'](_0x3c7c4b[0x0]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x8ea)]:this[_0x32e8aa(0x8ea)](_0x3c7c4b[0x0]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x9a9)]:this[_0x32e8aa(0x9a9)](_0x3c7c4b[0x0],_0x3c7c4b[0x1],_0x3c7c4b[0x2]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x530)]:this[_0x32e8aa(0x530)](_0x3c7c4b[0x0],_0x3c7c4b[0x1],_0x3c7c4b[0x2]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x4de)]:this[_0x32e8aa(0x4de)](_0x3c7c4b);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x463)]:this[_0x32e8aa(0x463)](_0x3c7c4b);break;case _0x41bc5e[_0x32e8aa(0x13d)]['shadingFill']:this[_0x32e8aa(0x6c2)](_0x3c7c4b[0x0]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x789)]:this['setDash'](_0x3c7c4b[0x0],_0x3c7c4b[0x1]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x9fb)]:this[_0x32e8aa(0x9fb)](_0x3c7c4b[0x0]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x17f)]:this['setFlatness'](_0x3c7c4b[0x0]);break;case _0x41bc5e[_0x32e8aa(0x13d)]['setGState']:this['setGState'](_0x3c7c4b[0x0]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x923)]:this['fill']();break;case _0x41bc5e['OPS'][_0x32e8aa(0x52f)]:this[_0x32e8aa(0x52f)]();break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x849)]:this[_0x32e8aa(0x849)]();break;case _0x41bc5e['OPS'][_0x32e8aa(0x207)]:this[_0x32e8aa(0x207)]();break;case _0x41bc5e[_0x32e8aa(0x13d)]['eoFillStroke']:this[_0x32e8aa(0xe4)]();break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x8b0)]:this[_0x32e8aa(0x8b0)](_0x32e8aa(0x57b));break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x525)]:this['clip'](_0x32e8aa(0x70d));break;case _0x41bc5e['OPS'][_0x32e8aa(0x3e4)]:this[_0x32e8aa(0x3e4)]();break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x845)]:this['paintImageXObject'](_0x3c7c4b[0x0]);break;case _0x41bc5e[_0x32e8aa(0x13d)]['paintInlineImageXObject']:this[_0x32e8aa(0x661)](_0x3c7c4b[0x0]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x94b)]:this[_0x32e8aa(0x94b)](_0x3c7c4b[0x0]);break;case _0x41bc5e[_0x32e8aa(0x13d)]['paintFormXObjectBegin']:this['paintFormXObjectBegin'](_0x3c7c4b[0x0],_0x3c7c4b[0x1]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x439)]:this[_0x32e8aa(0x439)]();break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x576)]:this[_0x32e8aa(0x576)]();break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x316)]:this['closeStroke']();break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x188)]:this['closeFillStroke']();break;case _0x41bc5e['OPS']['closeEOFillStroke']:this[_0x32e8aa(0x7f8)]();break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x118)]:this[_0x32e8aa(0x118)]();break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x5dd)]:this[_0x32e8aa(0x5dd)](_0x3c7c4b[0x0],_0x3c7c4b[0x1],_0x3c7c4b[0x2],_0x3c7c4b[0x3],_0x3c7c4b[0x4],_0x3c7c4b[0x5]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x90e)]:this[_0x32e8aa(0x90e)](_0x3c7c4b[0x0],_0x3c7c4b[0x1]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x486)]:this[_0x32e8aa(0x486)]();break;case 0x5c:this['group'](_0x5d7b14[_0x32e8aa(0x44d)]);break;default:(0x0,_0x41bc5e[_0x32e8aa(0x472)])(_0x32e8aa(0x277)+_0x8ab5e0);break;}}}['setWordSpacing'](_0x57c3a3){const _0x2314b3=_0x150b74;this[_0x2314b3(0x835)][_0x2314b3(0x865)]=_0x57c3a3;}['setCharSpacing'](_0xb631c6){const _0x5a653d=_0x150b74;this['current'][_0x5a653d(0x329)]=_0xb631c6;}[_0x150b74(0x118)](){const _0x350f4c=_0x150b74;this[_0x350f4c(0x79d)](0x0,this[_0x350f4c(0x835)][_0x350f4c(0x7f7)]);}[_0x150b74(0x92e)](_0x3576d7,_0x24cdec,_0x22c38f,_0xefad42,_0x10537b,_0x299739){const _0x1b8fb9=_0x150b74,_0x5a36cd=this[_0x1b8fb9(0x835)];_0x5a36cd['textMatrix']=_0x5a36cd[_0x1b8fb9(0x7b4)]=[_0x3576d7,_0x24cdec,_0x22c38f,_0xefad42,_0x10537b,_0x299739],_0x5a36cd[_0x1b8fb9(0x67d)]=Math[_0x1b8fb9(0x8cb)](_0x3576d7,_0x24cdec),_0x5a36cd['x']=_0x5a36cd[_0x1b8fb9(0x196)]=0x0,_0x5a36cd['y']=_0x5a36cd['lineY']=0x0,_0x5a36cd[_0x1b8fb9(0x44a)]=[],_0x5a36cd[_0x1b8fb9(0x344)]=[],_0x5a36cd['tspan']=this['svgFactory'][_0x1b8fb9(0x400)](_0x1b8fb9(0x29b)),_0x5a36cd['tspan']['setAttributeNS'](null,_0x1b8fb9(0x757),_0x5a36cd[_0x1b8fb9(0x3a3)]),_0x5a36cd[_0x1b8fb9(0x688)]['setAttributeNS'](null,_0x1b8fb9(0x2e9),_0x48533e(_0x5a36cd[_0x1b8fb9(0x443)])+'px'),_0x5a36cd[_0x1b8fb9(0x688)][_0x1b8fb9(0x343)](null,'y',_0x48533e(-_0x5a36cd['y'])),_0x5a36cd[_0x1b8fb9(0x501)]=this['svgFactory']['createElement'](_0x1b8fb9(0x6a9)),_0x5a36cd[_0x1b8fb9(0x501)][_0x1b8fb9(0x45e)](_0x5a36cd['tspan']);}['beginText'](){const _0x77eb32=_0x150b74,_0x35cf20=this[_0x77eb32(0x835)];_0x35cf20['x']=_0x35cf20['lineX']=0x0,_0x35cf20['y']=_0x35cf20[_0x77eb32(0x220)]=0x0,_0x35cf20[_0x77eb32(0x5c2)]=_0x41bc5e[_0x77eb32(0x2d6)],_0x35cf20[_0x77eb32(0x7b4)]=_0x41bc5e[_0x77eb32(0x2d6)],_0x35cf20['textMatrixScale']=0x1,_0x35cf20[_0x77eb32(0x688)]=this[_0x77eb32(0x385)][_0x77eb32(0x400)](_0x77eb32(0x29b)),_0x35cf20[_0x77eb32(0x501)]=this[_0x77eb32(0x385)][_0x77eb32(0x400)](_0x77eb32(0x6a9)),_0x35cf20['txtgrp']=this['svgFactory']['createElement'](_0x77eb32(0x80a)),_0x35cf20['xcoords']=[],_0x35cf20['ycoords']=[];}[_0x150b74(0x79d)](_0x1aa0eb,_0x56bdc6){const _0x4f48b8=_0x150b74,_0x1988ad=this['current'];_0x1988ad['x']=_0x1988ad[_0x4f48b8(0x196)]+=_0x1aa0eb,_0x1988ad['y']=_0x1988ad[_0x4f48b8(0x220)]+=_0x56bdc6,_0x1988ad[_0x4f48b8(0x44a)]=[],_0x1988ad['ycoords']=[],_0x1988ad['tspan']=this[_0x4f48b8(0x385)]['createElement'](_0x4f48b8(0x29b)),_0x1988ad[_0x4f48b8(0x688)][_0x4f48b8(0x343)](null,_0x4f48b8(0x757),_0x1988ad['fontFamily']),_0x1988ad['tspan'][_0x4f48b8(0x343)](null,_0x4f48b8(0x2e9),_0x48533e(_0x1988ad['fontSize'])+'px'),_0x1988ad[_0x4f48b8(0x688)][_0x4f48b8(0x343)](null,'y',_0x48533e(-_0x1988ad['y']));}[_0x150b74(0x610)](_0x1c6836){const _0x38db64=_0x150b74,_0xe333f5=this[_0x38db64(0x835)],_0x3e12ed=_0xe333f5[_0x38db64(0x59d)],_0x392a79=_0xe333f5[_0x38db64(0x443)];if(_0x392a79===0x0)return;const _0x50e404=_0xe333f5[_0x38db64(0x94d)],_0x6392ed=_0xe333f5[_0x38db64(0x329)],_0x4919e5=_0xe333f5[_0x38db64(0x865)],_0x4dbbb2=_0xe333f5[_0x38db64(0x896)],_0x541ea3=_0xe333f5[_0x38db64(0x494)]*_0x4dbbb2,_0x2ad435=_0x3e12ed[_0x38db64(0x58b)],_0x38ea54=_0x2ad435?0x1:-0x1,_0x3d9901=_0x3e12ed[_0x38db64(0x785)],_0x1d8175=_0x392a79*_0xe333f5['fontMatrix'][0x0];let _0x34274f=0x0;for(const _0x45e3d9 of _0x1c6836){if(_0x45e3d9===null){_0x34274f+=_0x4dbbb2*_0x4919e5;continue;}else{if(typeof _0x45e3d9===_0x38db64(0x454)){_0x34274f+=_0x38ea54*_0x45e3d9*_0x392a79/0x3e8;continue;}}const _0x1c3d5f=(_0x45e3d9[_0x38db64(0x708)]?_0x4919e5:0x0)+_0x6392ed,_0x5b67be=_0x45e3d9[_0x38db64(0x74e)];let _0x398822,_0x3bcb02,_0x56f5df=_0x45e3d9['width'];if(_0x2ad435){let _0x2b175b;const _0x1df98e=_0x45e3d9['vmetric']||_0x3d9901;_0x2b175b=_0x45e3d9[_0x38db64(0x8f6)]?_0x1df98e[0x1]:_0x56f5df*0.5,_0x2b175b=-_0x2b175b*_0x1d8175;const _0x2deef2=_0x1df98e[0x2]*_0x1d8175;_0x56f5df=_0x1df98e?-_0x1df98e[0x0]:_0x56f5df,_0x398822=_0x2b175b/_0x50e404,_0x3bcb02=(_0x34274f+_0x2deef2)/_0x50e404;}else _0x398822=_0x34274f/_0x50e404,_0x3bcb02=0x0;if(_0x45e3d9[_0x38db64(0x1b6)]||_0x3e12ed[_0x38db64(0x39b)])_0xe333f5[_0x38db64(0x44a)][_0x38db64(0x7d6)](_0xe333f5['x']+_0x398822),_0x2ad435&&_0xe333f5[_0x38db64(0x344)][_0x38db64(0x7d6)](-_0xe333f5['y']+_0x3bcb02),_0xe333f5[_0x38db64(0x688)][_0x38db64(0x8a9)]+=_0x5b67be;else{}let _0x4f5e27;_0x2ad435?_0x4f5e27=_0x56f5df*_0x1d8175-_0x1c3d5f*_0x4dbbb2:_0x4f5e27=_0x56f5df*_0x1d8175+_0x1c3d5f*_0x4dbbb2,_0x34274f+=_0x4f5e27;}_0xe333f5[_0x38db64(0x688)][_0x38db64(0x343)](null,'x',_0xe333f5[_0x38db64(0x44a)][_0x38db64(0x7ec)](_0x48533e)[_0x38db64(0x334)]('\x20'));_0x2ad435?_0xe333f5[_0x38db64(0x688)][_0x38db64(0x343)](null,'y',_0xe333f5[_0x38db64(0x344)][_0x38db64(0x7ec)](_0x48533e)[_0x38db64(0x334)]('\x20')):_0xe333f5['tspan'][_0x38db64(0x343)](null,'y',_0x48533e(-_0xe333f5['y']));_0x2ad435?_0xe333f5['y']-=_0x34274f:_0xe333f5['x']+=_0x34274f*_0x541ea3;_0xe333f5[_0x38db64(0x688)][_0x38db64(0x343)](null,_0x38db64(0x757),_0xe333f5['fontFamily']),_0xe333f5['tspan'][_0x38db64(0x343)](null,_0x38db64(0x2e9),_0x48533e(_0xe333f5['fontSize'])+'px');_0xe333f5[_0x38db64(0x403)]!==_0x517386['fontStyle']&&_0xe333f5[_0x38db64(0x688)][_0x38db64(0x343)](null,_0x38db64(0x8db),_0xe333f5[_0x38db64(0x403)]);_0xe333f5[_0x38db64(0x5f0)]!==_0x517386[_0x38db64(0x5f0)]&&_0xe333f5[_0x38db64(0x688)][_0x38db64(0x343)](null,_0x38db64(0x45f),_0xe333f5[_0x38db64(0x5f0)]);const _0xfccc21=_0xe333f5['textRenderingMode']&_0x41bc5e[_0x38db64(0x38b)][_0x38db64(0x724)];if(_0xfccc21===_0x41bc5e[_0x38db64(0x38b)][_0x38db64(0x61e)]||_0xfccc21===_0x41bc5e['TextRenderingMode'][_0x38db64(0x37d)])_0xe333f5['fillColor']!==_0x517386['fillColor']&&_0xe333f5['tspan'][_0x38db64(0x343)](null,'fill',_0xe333f5[_0x38db64(0x631)]),_0xe333f5['fillAlpha']<0x1&&_0xe333f5[_0x38db64(0x688)][_0x38db64(0x343)](null,_0x38db64(0x3de),_0xe333f5[_0x38db64(0x587)]);else _0xe333f5[_0x38db64(0x743)]===_0x41bc5e[_0x38db64(0x38b)]['ADD_TO_PATH']?_0xe333f5[_0x38db64(0x688)]['setAttributeNS'](null,_0x38db64(0x923),_0x38db64(0x910)):_0xe333f5['tspan']['setAttributeNS'](null,_0x38db64(0x923),'none');if(_0xfccc21===_0x41bc5e[_0x38db64(0x38b)][_0x38db64(0x607)]||_0xfccc21===_0x41bc5e[_0x38db64(0x38b)]['FILL_STROKE']){const _0x30196a=0x1/(_0xe333f5[_0x38db64(0x67d)]||0x1);this['_setStrokeAttributes'](_0xe333f5['tspan'],_0x30196a);}let _0x2ee22e=_0xe333f5[_0x38db64(0x5c2)];_0xe333f5[_0x38db64(0x505)]!==0x0&&(_0x2ee22e=_0x2ee22e[_0x38db64(0x80c)](),_0x2ee22e[0x5]+=_0xe333f5['textRise']),_0xe333f5[_0x38db64(0x501)]['setAttributeNS'](null,_0x38db64(0x5dd),_0x5473ca(_0x2ee22e)+_0x38db64(0x453)+_0x48533e(_0x541ea3)+_0x38db64(0x358)),_0xe333f5[_0x38db64(0x501)]['setAttributeNS'](_0x1af505,'xml:space',_0x38db64(0x90d)),_0xe333f5[_0x38db64(0x501)][_0x38db64(0x45e)](_0xe333f5[_0x38db64(0x688)]),_0xe333f5['txtgrp'][_0x38db64(0x45e)](_0xe333f5[_0x38db64(0x501)]),this[_0x38db64(0x409)]()[_0x38db64(0x45e)](_0xe333f5[_0x38db64(0x501)]);}['setLeadingMoveText'](_0x46ca17,_0x110859){const _0x529b79=_0x150b74;this[_0x529b79(0x904)](-_0x110859),this[_0x529b79(0x79d)](_0x46ca17,_0x110859);}['addFontStyle'](_0x5a377b){const _0x533fef=_0x150b74;if(!_0x5a377b[_0x533fef(0x41b)])throw new Error('addFontStyle:\x20No\x20font\x20data\x20available,\x20'+_0x533fef(0x332));!this['cssStyle']&&(this[_0x533fef(0x1cf)]=this['svgFactory'][_0x533fef(0x400)](_0x533fef(0x944)),this[_0x533fef(0x1cf)][_0x533fef(0x343)](null,_0x533fef(0x9fd),_0x533fef(0x119)),this[_0x533fef(0x487)][_0x533fef(0x45e)](this[_0x533fef(0x1cf)]));const _0x565c33=_0x1e6a71(_0x5a377b[_0x533fef(0x41b)],_0x5a377b['mimetype'],this[_0x533fef(0xd7)]);this[_0x533fef(0x1cf)][_0x533fef(0x8a9)]+='@font-face\x20{\x20font-family:\x20\x22'+_0x5a377b[_0x533fef(0x625)]+'\x22;'+('\x20src:\x20url('+_0x565c33+_0x533fef(0x229));}[_0x150b74(0x952)](_0x5770d0){const _0x9bd323=_0x150b74,_0x4d3cf8=this['current'],_0x461a3f=this[_0x9bd323(0x53b)]['get'](_0x5770d0[0x0]);let _0x4dd267=_0x5770d0[0x1];_0x4d3cf8[_0x9bd323(0x59d)]=_0x461a3f;this['embedFonts']&&!_0x461a3f[_0x9bd323(0x39b)]&&!this[_0x9bd323(0xc3)][_0x461a3f[_0x9bd323(0x625)]]&&(this[_0x9bd323(0x98a)](_0x461a3f),this['embeddedFonts'][_0x461a3f[_0x9bd323(0x625)]]=_0x461a3f);_0x4d3cf8[_0x9bd323(0x4f3)]=_0x461a3f[_0x9bd323(0x4f3)]||_0x41bc5e['FONT_IDENTITY_MATRIX'];let _0x126670=_0x9bd323(0x102);if(_0x461a3f[_0x9bd323(0x3cc)])_0x126670=_0x9bd323(0x10b);else _0x461a3f['bold']&&(_0x126670='bold');const _0x4e006b=_0x461a3f['italic']?'italic':_0x9bd323(0x102);_0x4dd267<0x0?(_0x4dd267=-_0x4dd267,_0x4d3cf8[_0x9bd323(0x896)]=-0x1):_0x4d3cf8[_0x9bd323(0x896)]=0x1,_0x4d3cf8[_0x9bd323(0x443)]=_0x4dd267,_0x4d3cf8['fontFamily']=_0x461a3f['loadedName'],_0x4d3cf8[_0x9bd323(0x5f0)]=_0x126670,_0x4d3cf8[_0x9bd323(0x403)]=_0x4e006b,_0x4d3cf8[_0x9bd323(0x688)]=this[_0x9bd323(0x385)][_0x9bd323(0x400)](_0x9bd323(0x29b)),_0x4d3cf8[_0x9bd323(0x688)]['setAttributeNS'](null,'y',_0x48533e(-_0x4d3cf8['y'])),_0x4d3cf8[_0x9bd323(0x44a)]=[],_0x4d3cf8[_0x9bd323(0x344)]=[];}['endText'](){const _0x3e8803=_0x150b74,_0x262444=this['current'];_0x262444['textRenderingMode']&_0x41bc5e[_0x3e8803(0x38b)][_0x3e8803(0x830)]&&_0x262444['txtElement']?.['hasChildNodes']()&&(_0x262444['element']=_0x262444[_0x3e8803(0x501)],this[_0x3e8803(0x8b0)](_0x3e8803(0x57b)),this[_0x3e8803(0x486)]());}[_0x150b74(0x671)](_0x525b9b){_0x525b9b>0x0&&(this['current']['lineWidth']=_0x525b9b);}['setLineCap'](_0xb50dec){const _0xa653ae=_0x150b74;this[_0xa653ae(0x835)][_0xa653ae(0xc4)]=_0x2720e0[_0xb50dec];}[_0x150b74(0x597)](_0x34cc9a){const _0xf8d29e=_0x150b74;this[_0xf8d29e(0x835)][_0xf8d29e(0x1f4)]=_0x4a998d[_0x34cc9a];}['setMiterLimit'](_0x576f24){const _0x2839b3=_0x150b74;this['current'][_0x2839b3(0x7d2)]=_0x576f24;}['setStrokeAlpha'](_0x23d9f1){const _0xd99c83=_0x150b74;this[_0xd99c83(0x835)][_0xd99c83(0x2ca)]=_0x23d9f1;}[_0x150b74(0x530)](_0x34ee2e,_0x3937b4,_0x7097cc){const _0x4c6aef=_0x150b74;this[_0x4c6aef(0x835)]['strokeColor']=_0x41bc5e[_0x4c6aef(0x5d7)]['makeHexColor'](_0x34ee2e,_0x3937b4,_0x7097cc);}[_0x150b74(0x15d)](_0x42c856){const _0x13362c=_0x150b74;this[_0x13362c(0x835)][_0x13362c(0x587)]=_0x42c856;}[_0x150b74(0x9a9)](_0x3f1a9d,_0x369202,_0x5cce81){const _0x24243b=_0x150b74;this[_0x24243b(0x835)][_0x24243b(0x631)]=_0x41bc5e[_0x24243b(0x5d7)][_0x24243b(0x86a)](_0x3f1a9d,_0x369202,_0x5cce81),this['current'][_0x24243b(0x688)]=this[_0x24243b(0x385)][_0x24243b(0x400)](_0x24243b(0x29b)),this['current'][_0x24243b(0x44a)]=[],this[_0x24243b(0x835)][_0x24243b(0x344)]=[];}[_0x150b74(0x4de)](_0x377fad){const _0x356a50=_0x150b74;this[_0x356a50(0x835)]['strokeColor']=this[_0x356a50(0x3d2)](_0x377fad);}[_0x150b74(0x463)](_0x5357e4){const _0x10bbdc=_0x150b74;this[_0x10bbdc(0x835)]['fillColor']=this['_makeColorN_Pattern'](_0x5357e4);}[_0x150b74(0x6c2)](_0x5780ee){const _0x3268a6=_0x150b74,{width:_0xf2aa83,height:_0x2921c7}=this[_0x3268a6(0x502)],_0x469c57=_0x41bc5e['Util'][_0x3268a6(0x8f2)](this[_0x3268a6(0x516)]),[_0x4f1583,_0x55c157,_0x4d5d2c,_0x2e61c9]=_0x41bc5e[_0x3268a6(0x5d7)][_0x3268a6(0x847)]([0x0,0x0,_0xf2aa83,_0x2921c7],_0x469c57),_0x483a49=this['svgFactory'][_0x3268a6(0x400)](_0x3268a6(0x20f));_0x483a49['setAttributeNS'](null,'x',_0x4f1583),_0x483a49[_0x3268a6(0x343)](null,'y',_0x55c157),_0x483a49[_0x3268a6(0x343)](null,_0x3268a6(0x98b),_0x4d5d2c-_0x4f1583),_0x483a49[_0x3268a6(0x343)](null,_0x3268a6(0x999),_0x2e61c9-_0x55c157),_0x483a49[_0x3268a6(0x343)](null,_0x3268a6(0x923),this['_makeShadingPattern'](_0x5780ee)),this['current'][_0x3268a6(0x587)]<0x1&&_0x483a49[_0x3268a6(0x343)](null,_0x3268a6(0x3de),this['current'][_0x3268a6(0x587)]),this['_ensureTransformGroup']()[_0x3268a6(0x45e)](_0x483a49);}[_0x150b74(0x3d2)](_0x61f244){const _0x115026=_0x150b74;if(_0x61f244[0x0]===_0x115026(0x5ec))return this['_makeTilingPattern'](_0x61f244);return this[_0x115026(0x683)](_0x61f244);}['_makeTilingPattern'](_0x27c339){const _0x15b785=_0x150b74,_0x443fd2=_0x27c339[0x1],_0x16a548=_0x27c339[0x2],_0x23a623=_0x27c339[0x3]||_0x41bc5e[_0x15b785(0x2d6)],[_0x2d498a,_0x2f7db7,_0x504dc0,_0x94111c]=_0x27c339[0x4],_0x4b3623=_0x27c339[0x5],_0x563163=_0x27c339[0x6],_0x53536f=_0x27c339[0x7],_0x5a5bde=_0x15b785(0x68c)+_0x491b93++,[_0x1e1cb0,_0x20879a,_0x14b3eb,_0x213dba]=_0x41bc5e[_0x15b785(0x5d7)][_0x15b785(0x3da)]([..._0x41bc5e['Util'][_0x15b785(0x8a2)]([_0x2d498a,_0x2f7db7],_0x23a623),..._0x41bc5e['Util'][_0x15b785(0x8a2)]([_0x504dc0,_0x94111c],_0x23a623)]),[_0x3d41c4,_0x572d60]=_0x41bc5e[_0x15b785(0x5d7)][_0x15b785(0x424)](_0x23a623),_0x355c50=_0x4b3623*_0x3d41c4,_0x5bcb5b=_0x563163*_0x572d60,_0x15015e=this[_0x15b785(0x385)]['createElement'](_0x15b785(0x314));_0x15015e[_0x15b785(0x343)](null,'id',_0x5a5bde),_0x15015e['setAttributeNS'](null,_0x15b785(0x195),_0x15b785(0x36d)),_0x15015e['setAttributeNS'](null,_0x15b785(0x98b),_0x355c50),_0x15015e[_0x15b785(0x343)](null,_0x15b785(0x999),_0x5bcb5b),_0x15015e[_0x15b785(0x343)](null,'x',''+_0x1e1cb0),_0x15015e[_0x15b785(0x343)](null,'y',''+_0x20879a);const _0x47aa3f=this[_0x15b785(0x286)],_0x2d3ae2=this[_0x15b785(0x516)],_0x252689=this['current'][_0x15b785(0x631)],_0x4a41ba=this[_0x15b785(0x835)][_0x15b785(0x745)],_0x15bf6a=this['svgFactory'][_0x15b785(0x77c)](_0x14b3eb-_0x1e1cb0,_0x213dba-_0x20879a);this[_0x15b785(0x286)]=_0x15bf6a,this[_0x15b785(0x516)]=_0x23a623;if(_0x53536f===0x2){const _0x4f9f44=_0x41bc5e['Util']['makeHexColor'](..._0x443fd2);this[_0x15b785(0x835)][_0x15b785(0x631)]=_0x4f9f44,this[_0x15b785(0x835)]['strokeColor']=_0x4f9f44;}return this['executeOpTree'](this[_0x15b785(0x873)](_0x16a548)),this[_0x15b785(0x286)]=_0x47aa3f,this[_0x15b785(0x516)]=_0x2d3ae2,this[_0x15b785(0x835)][_0x15b785(0x631)]=_0x252689,this[_0x15b785(0x835)]['strokeColor']=_0x4a41ba,_0x15015e['append'](_0x15bf6a['childNodes'][0x0]),this[_0x15b785(0x487)][_0x15b785(0x45e)](_0x15015e),_0x15b785(0x475)+_0x5a5bde+')';}[_0x150b74(0x683)](_0x5b685d){const _0x164138=_0x150b74;typeof _0x5b685d===_0x164138(0x8cd)&&(_0x5b685d=this['objs'][_0x164138(0x8c4)](_0x5b685d));switch(_0x5b685d[0x0]){case'RadialAxial':const _0x321570=_0x164138(0x68c)+_0x491b93++;var _0x3e18f0=_0x5b685d[0x3];let _0x5ce422;switch(_0x5b685d[0x1]){case'axial':var _0x5548c4=_0x5b685d[0x4],_0x4919f3=_0x5b685d[0x5];_0x5b685d[0x3]&&_0x5b685d[0x3][_0x164138(0x557)]===0x3&&typeof _0x5b685d[0x3][0x0]===_0x164138(0x454)&&(_0x5548c4=_0x5b685d[0x3],_0x4919f3=_0x5b685d[0x4]);_0x5ce422=this[_0x164138(0x385)][_0x164138(0x400)]('svg:linearGradient'),_0x5ce422[_0x164138(0x343)](null,'id',_0x321570),_0x5ce422[_0x164138(0x343)](null,'gradientUnits',_0x164138(0x36d)),_0x5ce422[_0x164138(0x343)](null,'x1',_0x5548c4[0x0]),_0x5ce422[_0x164138(0x343)](null,'y1',_0x5548c4[0x1]),_0x5ce422['setAttributeNS'](null,'x2',_0x4919f3[0x0]),_0x5ce422[_0x164138(0x343)](null,'y2',_0x4919f3[0x1]);break;case _0x164138(0x73a):const _0x219cf9=_0x5b685d[0x4],_0xb67a67=_0x5b685d[0x5],_0x5f6be2=_0x5b685d[0x6],_0x35bc84=_0x5b685d[0x7];_0x5ce422=this[_0x164138(0x385)][_0x164138(0x400)](_0x164138(0x5f2)),_0x5ce422[_0x164138(0x343)](null,'id',_0x321570),_0x5ce422['setAttributeNS'](null,'gradientUnits',_0x164138(0x36d)),_0x5ce422[_0x164138(0x343)](null,'cx',_0xb67a67[0x0]),_0x5ce422[_0x164138(0x343)](null,'cy',_0xb67a67[0x1]),_0x5ce422[_0x164138(0x343)](null,'r',_0x35bc84),_0x5ce422['setAttributeNS'](null,'fx',_0x219cf9[0x0]),_0x5ce422[_0x164138(0x343)](null,'fy',_0x219cf9[0x1]),_0x5ce422['setAttributeNS'](null,'fr',_0x5f6be2);break;default:throw new Error(_0x164138(0x41e)+_0x5b685d[0x1]);}for(const _0x4b0e30 of _0x3e18f0){const _0x879410=this['svgFactory'][_0x164138(0x400)](_0x164138(0x5a4));_0x879410[_0x164138(0x343)](null,'offset',_0x4b0e30[0x0]),_0x879410['setAttributeNS'](null,_0x164138(0x8ad),_0x4b0e30[0x1]),_0x5ce422['append'](_0x879410);}this[_0x164138(0x487)]['append'](_0x5ce422);return _0x164138(0x475)+_0x321570+')';case _0x164138(0xa08):(0x0,_0x41bc5e[_0x164138(0x472)])(_0x164138(0x85c));return null;case _0x164138(0x9fa):return _0x164138(0x989);default:throw new Error('Unknown\x20IR\x20type:\x20'+_0x5b685d[0x0]);}}[_0x150b74(0x789)](_0x4c10f4,_0x4a4286){const _0x4e94d8=_0x150b74;this['current'][_0x4e94d8(0x5ba)]=_0x4c10f4,this[_0x4e94d8(0x835)]['dashPhase']=_0x4a4286;}[_0x150b74(0x90e)](_0x5f2430,_0x3f8ba0){const _0x10118e=_0x150b74,_0x3b41d9=this[_0x10118e(0x835)];let _0x2183c2=_0x3b41d9['x'],_0x49c806=_0x3b41d9['y'],_0x2bc0e8=[],_0x3e6fdd=0x0;for(const _0x14d262 of _0x5f2430){switch(_0x14d262|0x0){case _0x41bc5e[_0x10118e(0x13d)][_0x10118e(0x497)]:_0x2183c2=_0x3f8ba0[_0x3e6fdd++],_0x49c806=_0x3f8ba0[_0x3e6fdd++];const _0x4c22a7=_0x3f8ba0[_0x3e6fdd++],_0x1f3204=_0x3f8ba0[_0x3e6fdd++],_0x4311dc=_0x2183c2+_0x4c22a7,_0x1502bf=_0x49c806+_0x1f3204;_0x2bc0e8['push']('M',_0x48533e(_0x2183c2),_0x48533e(_0x49c806),'L',_0x48533e(_0x4311dc),_0x48533e(_0x49c806),'L',_0x48533e(_0x4311dc),_0x48533e(_0x1502bf),'L',_0x48533e(_0x2183c2),_0x48533e(_0x1502bf),'Z');break;case _0x41bc5e[_0x10118e(0x13d)][_0x10118e(0x208)]:_0x2183c2=_0x3f8ba0[_0x3e6fdd++],_0x49c806=_0x3f8ba0[_0x3e6fdd++],_0x2bc0e8['push']('M',_0x48533e(_0x2183c2),_0x48533e(_0x49c806));break;case _0x41bc5e[_0x10118e(0x13d)][_0x10118e(0x39f)]:_0x2183c2=_0x3f8ba0[_0x3e6fdd++],_0x49c806=_0x3f8ba0[_0x3e6fdd++],_0x2bc0e8[_0x10118e(0x7d6)]('L',_0x48533e(_0x2183c2),_0x48533e(_0x49c806));break;case _0x41bc5e[_0x10118e(0x13d)][_0x10118e(0x2ef)]:_0x2183c2=_0x3f8ba0[_0x3e6fdd+0x4],_0x49c806=_0x3f8ba0[_0x3e6fdd+0x5],_0x2bc0e8[_0x10118e(0x7d6)]('C',_0x48533e(_0x3f8ba0[_0x3e6fdd]),_0x48533e(_0x3f8ba0[_0x3e6fdd+0x1]),_0x48533e(_0x3f8ba0[_0x3e6fdd+0x2]),_0x48533e(_0x3f8ba0[_0x3e6fdd+0x3]),_0x48533e(_0x2183c2),_0x48533e(_0x49c806)),_0x3e6fdd+=0x6;break;case _0x41bc5e[_0x10118e(0x13d)]['curveTo2']:_0x2bc0e8['push']('C',_0x48533e(_0x2183c2),_0x48533e(_0x49c806),_0x48533e(_0x3f8ba0[_0x3e6fdd]),_0x48533e(_0x3f8ba0[_0x3e6fdd+0x1]),_0x48533e(_0x3f8ba0[_0x3e6fdd+0x2]),_0x48533e(_0x3f8ba0[_0x3e6fdd+0x3])),_0x2183c2=_0x3f8ba0[_0x3e6fdd+0x2],_0x49c806=_0x3f8ba0[_0x3e6fdd+0x3],_0x3e6fdd+=0x4;break;case _0x41bc5e[_0x10118e(0x13d)][_0x10118e(0x4c2)]:_0x2183c2=_0x3f8ba0[_0x3e6fdd+0x2],_0x49c806=_0x3f8ba0[_0x3e6fdd+0x3],_0x2bc0e8[_0x10118e(0x7d6)]('C',_0x48533e(_0x3f8ba0[_0x3e6fdd]),_0x48533e(_0x3f8ba0[_0x3e6fdd+0x1]),_0x48533e(_0x2183c2),_0x48533e(_0x49c806),_0x48533e(_0x2183c2),_0x48533e(_0x49c806)),_0x3e6fdd+=0x4;break;case _0x41bc5e[_0x10118e(0x13d)]['closePath']:_0x2bc0e8[_0x10118e(0x7d6)]('Z');break;}}_0x2bc0e8=_0x2bc0e8[_0x10118e(0x334)]('\x20'),_0x3b41d9['path']&&_0x5f2430[_0x10118e(0x557)]>0x0&&_0x5f2430[0x0]!==_0x41bc5e[_0x10118e(0x13d)][_0x10118e(0x497)]&&_0x5f2430[0x0]!==_0x41bc5e[_0x10118e(0x13d)]['moveTo']?_0x2bc0e8=_0x3b41d9['path'][_0x10118e(0x5f3)](null,'d')+_0x2bc0e8:(_0x3b41d9['path']=this[_0x10118e(0x385)][_0x10118e(0x400)](_0x10118e(0x8f9)),this[_0x10118e(0x409)]()[_0x10118e(0x45e)](_0x3b41d9[_0x10118e(0x987)])),_0x3b41d9[_0x10118e(0x987)]['setAttributeNS'](null,'d',_0x2bc0e8),_0x3b41d9[_0x10118e(0x987)]['setAttributeNS'](null,_0x10118e(0x923),_0x10118e(0x122)),_0x3b41d9['element']=_0x3b41d9[_0x10118e(0x987)],_0x3b41d9['setCurrentPoint'](_0x2183c2,_0x49c806);}['endPath'](){const _0x1f1ae7=_0x150b74,_0x30a1fa=this[_0x1f1ae7(0x835)];_0x30a1fa[_0x1f1ae7(0x987)]=null;if(!this[_0x1f1ae7(0x78f)])return;if(!_0x30a1fa[_0x1f1ae7(0x369)]){this[_0x1f1ae7(0x78f)]=null;return;}const _0xb45ad6='clippath'+_0x2ade60++,_0x4cdbb6=this[_0x1f1ae7(0x385)][_0x1f1ae7(0x400)](_0x1f1ae7(0x9e2));_0x4cdbb6[_0x1f1ae7(0x343)](null,'id',_0xb45ad6),_0x4cdbb6['setAttributeNS'](null,_0x1f1ae7(0x5dd),_0x5473ca(this[_0x1f1ae7(0x516)]));const _0x14f63c=_0x30a1fa[_0x1f1ae7(0x369)][_0x1f1ae7(0x4c9)](!![]);this[_0x1f1ae7(0x78f)]===_0x1f1ae7(0x70d)?_0x14f63c[_0x1f1ae7(0x343)](null,_0x1f1ae7(0x7ee),_0x1f1ae7(0x70d)):_0x14f63c[_0x1f1ae7(0x343)](null,'clip-rule',_0x1f1ae7(0x57b));this['pendingClip']=null,_0x4cdbb6[_0x1f1ae7(0x45e)](_0x14f63c),this[_0x1f1ae7(0x487)][_0x1f1ae7(0x45e)](_0x4cdbb6);if(_0x30a1fa[_0x1f1ae7(0x199)]){_0x30a1fa[_0x1f1ae7(0x8b2)]=null;for(const _0xc00948 of this[_0x1f1ae7(0x1ed)]){_0xc00948[_0x1f1ae7(0x8b2)]=null;}_0x4cdbb6[_0x1f1ae7(0x343)](null,_0x1f1ae7(0x45c),_0x30a1fa['activeClipUrl']);}_0x30a1fa[_0x1f1ae7(0x199)]=_0x1f1ae7(0x475)+_0xb45ad6+')',this[_0x1f1ae7(0x278)]=null;}['clip'](_0x1fb3a3){this['pendingClip']=_0x1fb3a3;}[_0x150b74(0x576)](){const _0x5de3fa=_0x150b74,_0x34e311=this[_0x5de3fa(0x835)];if(_0x34e311['path']){const _0xfb6a61=_0x34e311[_0x5de3fa(0x987)]['getAttributeNS'](null,'d')+'Z';_0x34e311[_0x5de3fa(0x987)][_0x5de3fa(0x343)](null,'d',_0xfb6a61);}}['setLeading'](_0x2654bf){const _0x4f275f=_0x150b74;this[_0x4f275f(0x835)][_0x4f275f(0x7f7)]=-_0x2654bf;}[_0x150b74(0x178)](_0x188046){const _0x3e3bfc=_0x150b74;this['current'][_0x3e3bfc(0x505)]=_0x188046;}[_0x150b74(0x69e)](_0x14a1a0){this['current']['textRenderingMode']=_0x14a1a0;}[_0x150b74(0x175)](_0x252a24){this['current']['textHScale']=_0x252a24/0x64;}['setRenderingIntent'](_0x367189){}['setFlatness'](_0x284b7c){}[_0x150b74(0x268)](_0x253314){const _0x32f85d=_0x150b74;for(const [_0x541a56,_0x48a239]of _0x253314){switch(_0x541a56){case'LW':this[_0x32f85d(0x671)](_0x48a239);break;case'LC':this['setLineCap'](_0x48a239);break;case'LJ':this[_0x32f85d(0x597)](_0x48a239);break;case'ML':this['setMiterLimit'](_0x48a239);break;case'D':this[_0x32f85d(0x789)](_0x48a239[0x0],_0x48a239[0x1]);break;case'RI':this[_0x32f85d(0x9fb)](_0x48a239);break;case'FL':this[_0x32f85d(0x17f)](_0x48a239);break;case _0x32f85d(0x538):this[_0x32f85d(0x952)](_0x48a239);break;case'CA':this[_0x32f85d(0x3be)](_0x48a239);break;case'ca':this['setFillAlpha'](_0x48a239);break;default:(0x0,_0x41bc5e[_0x32f85d(0x472)])(_0x32f85d(0x915)+_0x541a56);break;}}}[_0x150b74(0x923)](){const _0x95780=_0x150b74,_0x1fd917=this[_0x95780(0x835)];_0x1fd917[_0x95780(0x369)]&&(_0x1fd917[_0x95780(0x369)][_0x95780(0x343)](null,_0x95780(0x923),_0x1fd917[_0x95780(0x631)]),_0x1fd917[_0x95780(0x369)][_0x95780(0x343)](null,_0x95780(0x3de),_0x1fd917['fillAlpha']),this[_0x95780(0x486)]());}[_0x150b74(0x849)](){const _0x24faed=_0x150b74,_0x137e76=this[_0x24faed(0x835)];_0x137e76[_0x24faed(0x369)]&&(this[_0x24faed(0x47b)](_0x137e76[_0x24faed(0x369)]),_0x137e76[_0x24faed(0x369)][_0x24faed(0x343)](null,_0x24faed(0x923),_0x24faed(0x122)),this[_0x24faed(0x486)]());}['_setStrokeAttributes'](_0x4e6316){const _0x21cfdc=_0x150b74;let _0x10eabd=arguments[_0x21cfdc(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:0x1;const _0x3bde1a=this['current'];let _0x5d3cd4=_0x3bde1a[_0x21cfdc(0x5ba)];_0x10eabd!==0x1&&_0x5d3cd4[_0x21cfdc(0x557)]>0x0&&(_0x5d3cd4=_0x5d3cd4[_0x21cfdc(0x7ec)](function(_0x39c4a3){return _0x10eabd*_0x39c4a3;})),_0x4e6316[_0x21cfdc(0x343)](null,_0x21cfdc(0x849),_0x3bde1a['strokeColor']),_0x4e6316[_0x21cfdc(0x343)](null,_0x21cfdc(0x2ed),_0x3bde1a[_0x21cfdc(0x2ca)]),_0x4e6316[_0x21cfdc(0x343)](null,_0x21cfdc(0x5b8),_0x48533e(_0x3bde1a[_0x21cfdc(0x7d2)])),_0x4e6316[_0x21cfdc(0x343)](null,'stroke-linecap',_0x3bde1a[_0x21cfdc(0xc4)]),_0x4e6316['setAttributeNS'](null,'stroke-linejoin',_0x3bde1a[_0x21cfdc(0x1f4)]),_0x4e6316[_0x21cfdc(0x343)](null,_0x21cfdc(0x34e),_0x48533e(_0x10eabd*_0x3bde1a[_0x21cfdc(0x2ad)])+'px'),_0x4e6316[_0x21cfdc(0x343)](null,_0x21cfdc(0x96f),_0x5d3cd4[_0x21cfdc(0x7ec)](_0x48533e)[_0x21cfdc(0x334)]('\x20')),_0x4e6316[_0x21cfdc(0x343)](null,_0x21cfdc(0x754),_0x48533e(_0x10eabd*_0x3bde1a['dashPhase'])+'px');}[_0x150b74(0x52f)](){const _0x23734e=_0x150b74;this[_0x23734e(0x835)][_0x23734e(0x369)]?.[_0x23734e(0x343)](null,_0x23734e(0x389),_0x23734e(0x70d)),this['fill']();}['fillStroke'](){const _0x4ee26e=_0x150b74;this[_0x4ee26e(0x849)](),this[_0x4ee26e(0x923)]();}[_0x150b74(0xe4)](){const _0xaa9674=_0x150b74;this['current'][_0xaa9674(0x369)]?.[_0xaa9674(0x343)](null,_0xaa9674(0x389),_0xaa9674(0x70d)),this['fillStroke']();}['closeStroke'](){const _0x281e34=_0x150b74;this[_0x281e34(0x576)](),this['stroke']();}[_0x150b74(0x188)](){const _0x13f1a8=_0x150b74;this[_0x13f1a8(0x576)](),this[_0x13f1a8(0x207)]();}['closeEOFillStroke'](){const _0x59337b=_0x150b74;this[_0x59337b(0x576)](),this[_0x59337b(0xe4)]();}[_0x150b74(0x3e4)](){const _0x174412=_0x150b74,_0x2592a0=this['svgFactory'][_0x174412(0x400)]('svg:rect');_0x2592a0[_0x174412(0x343)](null,'x','0'),_0x2592a0[_0x174412(0x343)](null,'y','0'),_0x2592a0['setAttributeNS'](null,_0x174412(0x98b),'1px'),_0x2592a0[_0x174412(0x343)](null,'height',_0x174412(0x48a)),_0x2592a0[_0x174412(0x343)](null,_0x174412(0x923),this['current']['fillColor']),this[_0x174412(0x409)]()['append'](_0x2592a0);}[_0x150b74(0x845)](_0x3815ce){const _0x3e3fc6=_0x150b74,_0x3e8acb=this[_0x3e3fc6(0x3ef)](_0x3815ce);if(!_0x3e8acb){(0x0,_0x41bc5e['warn'])(_0x3e3fc6(0x9ef)+_0x3815ce+_0x3e3fc6(0x965));return;}this[_0x3e3fc6(0x661)](_0x3e8acb);}['paintInlineImageXObject'](_0x5efad5,_0x3136db){const _0x48b7ae=_0x150b74,_0x1c8414=_0x5efad5[_0x48b7ae(0x98b)],_0x1eeb39=_0x5efad5['height'],_0x1ab891=_0x2e0f43(_0x5efad5,this[_0x48b7ae(0xd7)],!!_0x3136db),_0x5e6dd0=this[_0x48b7ae(0x385)][_0x48b7ae(0x400)](_0x48b7ae(0x20f));_0x5e6dd0[_0x48b7ae(0x343)](null,'x','0'),_0x5e6dd0['setAttributeNS'](null,'y','0'),_0x5e6dd0[_0x48b7ae(0x343)](null,_0x48b7ae(0x98b),_0x48533e(_0x1c8414)),_0x5e6dd0['setAttributeNS'](null,'height',_0x48533e(_0x1eeb39)),this[_0x48b7ae(0x835)][_0x48b7ae(0x369)]=_0x5e6dd0,this[_0x48b7ae(0x8b0)](_0x48b7ae(0x57b));const _0x5f3a83=this[_0x48b7ae(0x385)]['createElement'](_0x48b7ae(0x8fd));_0x5f3a83[_0x48b7ae(0x343)](_0x13d3b1,_0x48b7ae(0xeb),_0x1ab891),_0x5f3a83[_0x48b7ae(0x343)](null,'x','0'),_0x5f3a83[_0x48b7ae(0x343)](null,'y',_0x48533e(-_0x1eeb39)),_0x5f3a83['setAttributeNS'](null,_0x48b7ae(0x98b),_0x48533e(_0x1c8414)+'px'),_0x5f3a83[_0x48b7ae(0x343)](null,'height',_0x48533e(_0x1eeb39)+'px'),_0x5f3a83[_0x48b7ae(0x343)](null,_0x48b7ae(0x5dd),_0x48b7ae(0x153)+_0x48533e(0x1/_0x1c8414)+'\x20'+_0x48533e(-0x1/_0x1eeb39)+')'),_0x3136db?_0x3136db['append'](_0x5f3a83):this['_ensureTransformGroup']()['append'](_0x5f3a83);}[_0x150b74(0x94b)](_0x1b4ded){const _0x28ec63=_0x150b74,_0x2325b8=this[_0x28ec63(0x3ef)](_0x1b4ded['data'],_0x1b4ded);if(_0x2325b8['bitmap']){(0x0,_0x41bc5e[_0x28ec63(0x472)])(_0x28ec63(0xe6)+'ensure\x20that\x20the\x20`isOffscreenCanvasSupported`\x20API\x20parameter\x20is\x20disabled.');return;}const _0x40cc01=this['current'],_0x2275ad=_0x2325b8['width'],_0x3c929e=_0x2325b8[_0x28ec63(0x999)],_0x274033=_0x40cc01[_0x28ec63(0x631)];_0x40cc01[_0x28ec63(0x27a)]=_0x28ec63(0x4c0)+_0x2188cc++;const _0x114729=this[_0x28ec63(0x385)][_0x28ec63(0x400)]('svg:mask');_0x114729[_0x28ec63(0x343)](null,'id',_0x40cc01[_0x28ec63(0x27a)]);const _0x3c32fb=this[_0x28ec63(0x385)]['createElement'](_0x28ec63(0x20f));_0x3c32fb['setAttributeNS'](null,'x','0'),_0x3c32fb[_0x28ec63(0x343)](null,'y','0'),_0x3c32fb[_0x28ec63(0x343)](null,_0x28ec63(0x98b),_0x48533e(_0x2275ad)),_0x3c32fb[_0x28ec63(0x343)](null,'height',_0x48533e(_0x3c929e)),_0x3c32fb[_0x28ec63(0x343)](null,_0x28ec63(0x923),_0x274033),_0x3c32fb[_0x28ec63(0x343)](null,'mask',_0x28ec63(0x475)+_0x40cc01['maskId']+')'),this[_0x28ec63(0x487)][_0x28ec63(0x45e)](_0x114729),this[_0x28ec63(0x409)]()[_0x28ec63(0x45e)](_0x3c32fb),this['paintInlineImageXObject'](_0x2325b8,_0x114729);}['paintFormXObjectBegin'](_0x38c759,_0x1158a4){const _0x314d5a=_0x150b74;Array['isArray'](_0x38c759)&&_0x38c759[_0x314d5a(0x557)]===0x6&&this[_0x314d5a(0x5dd)](_0x38c759[0x0],_0x38c759[0x1],_0x38c759[0x2],_0x38c759[0x3],_0x38c759[0x4],_0x38c759[0x5]);if(_0x1158a4){const _0x3e400e=_0x1158a4[0x2]-_0x1158a4[0x0],_0x354d5e=_0x1158a4[0x3]-_0x1158a4[0x1],_0x392a9c=this[_0x314d5a(0x385)][_0x314d5a(0x400)](_0x314d5a(0x20f));_0x392a9c[_0x314d5a(0x343)](null,'x',_0x1158a4[0x0]),_0x392a9c[_0x314d5a(0x343)](null,'y',_0x1158a4[0x1]),_0x392a9c[_0x314d5a(0x343)](null,'width',_0x48533e(_0x3e400e)),_0x392a9c['setAttributeNS'](null,_0x314d5a(0x999),_0x48533e(_0x354d5e)),this[_0x314d5a(0x835)][_0x314d5a(0x369)]=_0x392a9c,this[_0x314d5a(0x8b0)]('nonzero'),this[_0x314d5a(0x486)]();}}[_0x150b74(0x439)](){}[_0x150b74(0x9f0)](_0x25240b){const _0x12ab64=_0x150b74,_0x2205b1=this[_0x12ab64(0x385)]['create'](_0x25240b[_0x12ab64(0x98b)],_0x25240b[_0x12ab64(0x999)]),_0x1f1206=this[_0x12ab64(0x385)][_0x12ab64(0x400)]('svg:defs');_0x2205b1[_0x12ab64(0x45e)](_0x1f1206),this[_0x12ab64(0x487)]=_0x1f1206;const _0x8b837=this['svgFactory'][_0x12ab64(0x400)]('svg:g');return _0x8b837[_0x12ab64(0x343)](null,_0x12ab64(0x5dd),_0x5473ca(_0x25240b[_0x12ab64(0x5dd)])),_0x2205b1[_0x12ab64(0x45e)](_0x8b837),this[_0x12ab64(0x286)]=_0x8b837,_0x2205b1;}[_0x150b74(0x6ba)](){const _0x5b92dd=_0x150b74;if(!this[_0x5b92dd(0x835)][_0x5b92dd(0x8b2)]){const _0x2f94b1=this[_0x5b92dd(0x385)][_0x5b92dd(0x400)](_0x5b92dd(0x80a));_0x2f94b1['setAttributeNS'](null,_0x5b92dd(0x45c),this['current'][_0x5b92dd(0x199)]),this['svg'][_0x5b92dd(0x45e)](_0x2f94b1),this[_0x5b92dd(0x835)][_0x5b92dd(0x8b2)]=_0x2f94b1;}return this[_0x5b92dd(0x835)]['clipGroup'];}[_0x150b74(0x409)](){const _0xe222d6=_0x150b74;return!this['tgrp']&&(this[_0xe222d6(0x278)]=this[_0xe222d6(0x385)]['createElement'](_0xe222d6(0x80a)),this[_0xe222d6(0x278)][_0xe222d6(0x343)](null,_0xe222d6(0x5dd),_0x5473ca(this[_0xe222d6(0x516)])),this[_0xe222d6(0x835)]['activeClipUrl']?this[_0xe222d6(0x6ba)]()['append'](this[_0xe222d6(0x278)]):this['svg'][_0xe222d6(0x45e)](this[_0xe222d6(0x278)])),this[_0xe222d6(0x278)];}}_0x3afacb['SVGGraphics']=_0x52d6c5;}],_0x4d5884={};function _0x22c265(_0x2c34cb){const _0x3172e5=a0_0x160d;var _0x283507=_0x4d5884[_0x2c34cb];if(_0x283507!==undefined)return _0x283507['exports'];var _0x29ad22=_0x4d5884[_0x2c34cb]={'exports':{}};return _0x2c322a[_0x2c34cb][_0x3172e5(0x569)](_0x29ad22[_0x3172e5(0x5e9)],_0x29ad22,_0x29ad22[_0x3172e5(0x5e9)],_0x22c265),_0x29ad22[_0x3172e5(0x5e9)];}var _0x2b1cd2={};return((()=>{'use strict';const _0x4a3f09=a0_0x160d;var _0x8e637d=_0x2b1cd2;Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x19a),{'value':!![]}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x980),{'enumerable':!![],'get':function(){const _0x361e43=_0x4a3f09;return _0x4be29d[_0x361e43(0x980)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x3a7),{'enumerable':!![],'get':function(){const _0x3ec6dc=_0x4a3f09;return _0x400a57[_0x3ec6dc(0x3a7)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,'AnnotationEditorParamsType',{'enumerable':!![],'get':function(){const _0x41aa19=_0x4a3f09;return _0x4be29d[_0x41aa19(0x6b8)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x9a6),{'enumerable':!![],'get':function(){const _0x24f097=_0x4a3f09;return _0x4be29d[_0x24f097(0x9a6)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x73c),{'enumerable':!![],'get':function(){const _0x205564=_0x4a3f09;return _0x5edbe0[_0x205564(0x73c)];}}),Object['defineProperty'](_0x8e637d,_0x4a3f09(0x580),{'enumerable':!![],'get':function(){const _0x59911c=_0x4a3f09;return _0x583cd4[_0x59911c(0x580)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x2a5),{'enumerable':!![],'get':function(){const _0x11d3df=_0x4a3f09;return _0x4be29d[_0x11d3df(0x2a5)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x4a3),{'enumerable':!![],'get':function(){const _0x3a204b=_0x4a3f09;return _0x4be29d[_0x3a204b(0x4a3)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x7a8),{'enumerable':!![],'get':function(){return _0x4be29d['FeatureTest'];}}),Object[_0x4a3f09(0x430)](_0x8e637d,'GlobalWorkerOptions',{'enumerable':!![],'get':function(){return _0x4b40bb['GlobalWorkerOptions'];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x163),{'enumerable':!![],'get':function(){return _0x4be29d['ImageKind'];}}),Object[_0x4a3f09(0x430)](_0x8e637d,'InvalidPDFException',{'enumerable':!![],'get':function(){const _0x3a78ce=_0x4a3f09;return _0x4be29d[_0x3a78ce(0x46b)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,'MissingPDFException',{'enumerable':!![],'get':function(){const _0x2cb132=_0x4a3f09;return _0x4be29d[_0x2cb132(0x5c5)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x13d),{'enumerable':!![],'get':function(){const _0x126061=_0x4a3f09;return _0x4be29d[_0x126061(0x13d)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,'PDFDataRangeTransport',{'enumerable':!![],'get':function(){const _0x48547f=_0x4a3f09;return _0x4958d6[_0x48547f(0x7a1)];}}),Object['defineProperty'](_0x8e637d,_0x4a3f09(0x35e),{'enumerable':!![],'get':function(){return _0x20c831['PDFDateString'];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x7f1),{'enumerable':!![],'get':function(){return _0x4958d6['PDFWorker'];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x655),{'enumerable':!![],'get':function(){const _0x2c092c=_0x4a3f09;return _0x4be29d[_0x2c092c(0x655)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x305),{'enumerable':!![],'get':function(){return _0x4be29d['PermissionFlag'];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x705),{'enumerable':!![],'get':function(){const _0x443b76=_0x4a3f09;return _0x20c831[_0x443b76(0x705)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x7e3),{'enumerable':!![],'get':function(){const _0x346b83=_0x4a3f09;return _0x4be29d[_0x346b83(0x7e3)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x450),{'enumerable':!![],'get':function(){const _0x4b71e5=_0x4a3f09;return _0x20c831[_0x4b71e5(0x450)];}}),_0x8e637d[_0x4a3f09(0x1e2)]=void 0x0,Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x90f),{'enumerable':!![],'get':function(){const _0x1b4f96=_0x4a3f09;return _0x4be29d[_0x1b4f96(0x90f)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x5d7),{'enumerable':!![],'get':function(){return _0x4be29d['Util'];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x45b),{'enumerable':!![],'get':function(){const _0x24ada1=_0x4a3f09;return _0x4be29d[_0x24ada1(0x45b)];}}),Object['defineProperty'](_0x8e637d,'XfaLayer',{'enumerable':!![],'get':function(){return _0x7a54cb['XfaLayer'];}}),Object['defineProperty'](_0x8e637d,_0x4a3f09(0x407),{'enumerable':!![],'get':function(){return _0x4958d6['build'];}}),Object['defineProperty'](_0x8e637d,_0x4a3f09(0x5b0),{'enumerable':!![],'get':function(){const _0x3e80aa=_0x4a3f09;return _0x4be29d[_0x3e80aa(0x5b0)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x48c),{'enumerable':!![],'get':function(){const _0xb51739=_0x4a3f09;return _0x4958d6[_0xb51739(0x48c)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x598),{'enumerable':!![],'get':function(){const _0x438a23=_0x4a3f09;return _0x20c831[_0x438a23(0x598)];}}),Object['defineProperty'](_0x8e637d,_0x4a3f09(0x415),{'enumerable':!![],'get':function(){const _0x2864b4=_0x4a3f09;return _0x20c831[_0x2864b4(0x415)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,'getXfaPageViewport',{'enumerable':!![],'get':function(){const _0x1fed08=_0x4a3f09;return _0x20c831[_0x1fed08(0x460)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x337),{'enumerable':!![],'get':function(){const _0x1355f7=_0x4a3f09;return _0x20c831[_0x1355f7(0x337)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,'isPdfFile',{'enumerable':!![],'get':function(){const _0x3f8d8c=_0x4a3f09;return _0x20c831[_0x3f8d8c(0x2f4)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x4f0),{'enumerable':!![],'get':function(){const _0x5327f1=_0x4a3f09;return _0x20c831[_0x5327f1(0x4f0)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,'normalizeUnicode',{'enumerable':!![],'get':function(){const _0x4df966=_0x4a3f09;return _0x4be29d[_0x4df966(0x4a4)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x29e),{'enumerable':!![],'get':function(){const _0x2dc1c2=_0x4a3f09;return _0x109f81[_0x2dc1c2(0x29e)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x95e),{'enumerable':!![],'get':function(){return _0x20c831['setLayerDimensions'];}}),Object['defineProperty'](_0x8e637d,'shadow',{'enumerable':!![],'get':function(){return _0x4be29d['shadow'];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x98f),{'enumerable':!![],'get':function(){return _0x109f81['updateTextLayer'];}}),Object[_0x4a3f09(0x430)](_0x8e637d,'version',{'enumerable':!![],'get':function(){return _0x4958d6['version'];}});var _0x4be29d=_0x22c265(0x1),_0x4958d6=_0x22c265(0x83),_0x20c831=_0x22c265(0x87),_0x109f81=_0x22c265(0x9a),_0x400a57=_0x22c265(0x9b),_0x5edbe0=_0x22c265(0x86),_0x583cd4=_0x22c265(0x9d),_0x4b40bb=_0x22c265(0x8e),_0x7a54cb=_0x22c265(0x9f);const _0x46fd7b=_0x4a3f09(0x623),_0x5b345e='',_0x1c39a7=_0x22c265(0xa3)[_0x4a3f09(0x1e2)];_0x8e637d[_0x4a3f09(0x1e2)]=_0x1c39a7;})()),_0x2b1cd2;})());}));
\ No newline at end of file
diff --git a/node_modules/pdfh5/js/pdf.js b/node_modules/pdfh5/js/pdf.js
new file mode 100644
index 0000000..f23920c
--- /dev/null
+++ b/node_modules/pdfh5/js/pdf.js
@@ -0,0 +1,22 @@
+/**
+ * @licstart The following is the entire license notice for the
+ * Javascript code in this page
+ *
+ * Copyright 2021 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(t,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define("pdfjs-dist/build/pdf",[],r):"object"==typeof exports?exports["pdfjs-dist/build/pdf"]=r():t["pdfjs-dist/build/pdf"]=t.pdfjsLib=r()}(this,(function(){return(()=>{var __webpack_modules__=[,(t,r,a)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.addLinkAttributes=function addLinkAttributes(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=r.url,o=r.target,l=r.rel,c=r.enabled,d=void 0===c||c;(0,i.assert)(a&&"string"==typeof a,'addLinkAttributes: A valid "url" parameter must provided.');var h=(0,i.removeNullCharacters)(a);if(d)t.href=t.title=h;else{t.href="";t.title="Disabled: ".concat(h);t.onclick=function(){return!1}}var p="";switch(o){case g.NONE:break;case g.SELF:p="_self";break;case g.BLANK:p="_blank";break;case g.PARENT:p="_parent";break;case g.TOP:p="_top"}t.target=p;t.rel="string"==typeof l?l:u};r.deprecated=function deprecated(t){console.log("Deprecated API usage: "+t)};r.getFilenameFromUrl=function getFilenameFromUrl(t){var r=t.indexOf("#"),a=t.indexOf("?"),o=Math.min(r>0?r:t.length,a>0?a:t.length);return t.substring(t.lastIndexOf("/",o)+1,o)};r.getPdfFilenameFromUrl=function getPdfFilenameFromUrl(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"document.pdf";if("string"!=typeof t)return r;if(isDataScheme(t)){(0,i.warn)('getPdfFilenameFromUrl: ignore "data:"-URL for performance reasons.');return r}var a=/^(?:(?:[^:]+:)?\/\/[^/]+)?([^?#]*)(\?[^#]*)?(#.*)?$/,o=/[^/?#=]+\.pdf\b(?!.*\.pdf\b)/i,l=a.exec(t),u=o.exec(l[1])||o.exec(l[2])||o.exec(l[3]);if(u&&(u=u[0]).includes("%"))try{u=o.exec(decodeURIComponent(u))[0]}catch(t){}return u||r};r.getXfaPageViewport=function getXfaPageViewport(t,r){var a=r.scale,o=void 0===a?1:a,i=r.rotation,l=void 0===i?0:i,u=t.attributes.style,c=u.width,d=u.height,h=[0,0,parseInt(c),parseInt(d)];return new y({viewBox:h,scale:o,rotation:l})};r.isDataScheme=isDataScheme;r.isPdfFile=function isPdfFile(t){return"string"==typeof t&&/\.pdf$/i.test(t)};r.isValidFetchUrl=isValidFetchUrl;r.loadScript=function loadScript(t){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return new Promise((function(a,o){var i=document.createElement("script");i.src=t;i.onload=function(t){r&&i.remove();a(t)};i.onerror=function(){o(new Error("Cannot load script at: ".concat(i.src)))};(document.head||document.documentElement).appendChild(i)}))};r.StatTimer=r.RenderingCancelledException=r.PixelsPerInch=r.PDFDateString=r.PageViewport=r.LinkTarget=r.DOMSVGFactory=r.DOMStandardFontDataFactory=r.DOMCMapReaderFactory=r.DOMCanvasFactory=void 0;var o=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(a(2)),i=a(4),l=a(118);function _createForOfIteratorHelper(t,r){var a="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!a){if(Array.isArray(t)||(a=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);if("Map"===a||"Set"===a)return Array.from(t);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){a&&(t=a);var o=0,i=function F(){};return{s:i,n:function n(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function e(t){throw t},f:i}}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 l,u=!0,c=!1;return{s:function s(){a=a.call(t)},n:function n(){var t=a.next();u=t.done;return t},e:function e(t){c=!0;l=t},f:function f(){try{u||null==a.return||a.return()}finally{if(c)throw l}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}function asyncGeneratorStep(t,r,a,o,i,l,u){try{var c=t[l](u),d=c.value}catch(t){a(t);return}c.done?r(d):Promise.resolve(d).then(o,i)}function _asyncToGenerator(t){return function(){var r=this,a=arguments;return new Promise((function(o,i){var l=t.apply(r,a);function _next(t){asyncGeneratorStep(l,o,i,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(l,o,i,_next,_throw,"throw",t)}_next(void 0)}))}}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var a,o=_getPrototypeOf(t);if(r){var i=_getPrototypeOf(this).constructor;a=Reflect.construct(o,arguments,i)}else a=o.apply(this,arguments);return _possibleConstructorReturn(this,a)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var u="noopener noreferrer nofollow",c={CSS:96,PDF:72,get PDF_TO_CSS_UNITS(){return(0,i.shadow)(this,"PDF_TO_CSS_UNITS",this.CSS/this.PDF)}};r.PixelsPerInch=c;var d=function(t){_inherits(DOMCanvasFactory,t);var r=_createSuper(DOMCanvasFactory);function DOMCanvasFactory(){var t,a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=a.ownerDocument,i=void 0===o?globalThis.document:o;_classCallCheck(this,DOMCanvasFactory);(t=r.call(this))._document=i;return t}_createClass(DOMCanvasFactory,[{key:"_createCanvas",value:function _createCanvas(t,r){var a=this._document.createElement("canvas");a.width=t;a.height=r;return a}}]);return DOMCanvasFactory}(l.BaseCanvasFactory);r.DOMCanvasFactory=d;function fetchData(t){return _fetchData.apply(this,arguments)}function _fetchData(){_fetchData=_asyncToGenerator(o.default.mark((function _callee(t){var r,a,l=arguments;return o.default.wrap((function _callee$(o){for(;;)switch(o.prev=o.next){case 0:r=l.length>1&&void 0!==l[1]&&l[1];if(!isValidFetchUrl(t,document.baseURI)){o.next=21;break}o.next=4;return fetch(t);case 4:if((a=o.sent).ok){o.next=7;break}throw new Error(a.statusText);case 7:if(!r){o.next=15;break}o.t1=Uint8Array;o.next=11;return a.arrayBuffer();case 11:o.t2=o.sent;o.t0=new o.t1(o.t2);o.next=20;break;case 15:o.t3=i.stringToBytes;o.next=18;return a.text();case 18:o.t4=o.sent;o.t0=(0,o.t3)(o.t4);case 20:return o.abrupt("return",o.t0);case 21:return o.abrupt("return",new Promise((function(a,o){var l=new XMLHttpRequest;l.open("GET",t,!0);r&&(l.responseType="arraybuffer");l.onreadystatechange=function(){if(l.readyState===XMLHttpRequest.DONE){if(200===l.status||0===l.status){var t;r&&l.response?t=new Uint8Array(l.response):!r&&l.responseText&&(t=(0,i.stringToBytes)(l.responseText));if(t){a(t);return}}o(new Error(l.statusText))}};l.send(null)})));case 22:case"end":return o.stop()}}),_callee)})));return _fetchData.apply(this,arguments)}var h=function(t){_inherits(DOMCMapReaderFactory,t);var r=_createSuper(DOMCMapReaderFactory);function DOMCMapReaderFactory(){_classCallCheck(this,DOMCMapReaderFactory);return r.apply(this,arguments)}_createClass(DOMCMapReaderFactory,[{key:"_fetchData",value:function _fetchData(t,r){return fetchData(t,this.isCompressed).then((function(t){return{cMapData:t,compressionType:r}}))}}]);return DOMCMapReaderFactory}(l.BaseCMapReaderFactory);r.DOMCMapReaderFactory=h;var p=function(t){_inherits(DOMStandardFontDataFactory,t);var r=_createSuper(DOMStandardFontDataFactory);function DOMStandardFontDataFactory(){_classCallCheck(this,DOMStandardFontDataFactory);return r.apply(this,arguments)}_createClass(DOMStandardFontDataFactory,[{key:"_fetchData",value:function _fetchData(t){return fetchData(t,!0)}}]);return DOMStandardFontDataFactory}(l.BaseStandardFontDataFactory);r.DOMStandardFontDataFactory=p;var m=function(t){_inherits(DOMSVGFactory,t);var r=_createSuper(DOMSVGFactory);function DOMSVGFactory(){_classCallCheck(this,DOMSVGFactory);return r.apply(this,arguments)}_createClass(DOMSVGFactory,[{key:"_createSVG",value:function _createSVG(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}}]);return DOMSVGFactory}(l.BaseSVGFactory);r.DOMSVGFactory=m;var y=function(){function PageViewport(t){var r=t.viewBox,a=t.scale,o=t.rotation,i=t.offsetX,l=void 0===i?0:i,u=t.offsetY,c=void 0===u?0:u,d=t.dontFlip,h=void 0!==d&&d;_classCallCheck(this,PageViewport);this.viewBox=r;this.scale=a;this.rotation=o;this.offsetX=l;this.offsetY=c;var p,m,y,v,g,b,_,S,A=(r[2]+r[0])/2,C=(r[3]+r[1])/2;(o%=360)<0&&(o+=360);switch(o){case 180:p=-1;m=0;y=0;v=1;break;case 90:p=0;m=1;y=1;v=0;break;case 270:p=0;m=-1;y=-1;v=0;break;case 0:p=1;m=0;y=0;v=-1;break;default:throw new Error("PageViewport: Invalid rotation, must be a multiple of 90 degrees.")}if(h){y=-y;v=-v}if(0===p){g=Math.abs(C-r[1])*a+l;b=Math.abs(A-r[0])*a+c;_=Math.abs(r[3]-r[1])*a;S=Math.abs(r[2]-r[0])*a}else{g=Math.abs(A-r[0])*a+l;b=Math.abs(C-r[1])*a+c;_=Math.abs(r[2]-r[0])*a;S=Math.abs(r[3]-r[1])*a}this.transform=[p*a,m*a,y*a,v*a,g-p*a*A-y*a*C,b-m*a*A-v*a*C];this.width=_;this.height=S}_createClass(PageViewport,[{key:"clone",value:function clone(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.scale,a=void 0===r?this.scale:r,o=t.rotation,i=void 0===o?this.rotation:o,l=t.offsetX,u=void 0===l?this.offsetX:l,c=t.offsetY,d=void 0===c?this.offsetY:c,h=t.dontFlip,p=void 0!==h&&h;return new PageViewport({viewBox:this.viewBox.slice(),scale:a,rotation:i,offsetX:u,offsetY:d,dontFlip:p})}},{key:"convertToViewportPoint",value:function convertToViewportPoint(t,r){return i.Util.applyTransform([t,r],this.transform)}},{key:"convertToViewportRectangle",value:function convertToViewportRectangle(t){var r=i.Util.applyTransform([t[0],t[1]],this.transform),a=i.Util.applyTransform([t[2],t[3]],this.transform);return[r[0],r[1],a[0],a[1]]}},{key:"convertToPdfPoint",value:function convertToPdfPoint(t,r){return i.Util.applyInverseTransform([t,r],this.transform)}}]);return PageViewport}();r.PageViewport=y;var v=function(t){_inherits(RenderingCancelledException,t);var r=_createSuper(RenderingCancelledException);function RenderingCancelledException(t,a){var o;_classCallCheck(this,RenderingCancelledException);(o=r.call(this,t,"RenderingCancelledException")).type=a;return o}return RenderingCancelledException}(i.BaseException);r.RenderingCancelledException=v;var g={NONE:0,SELF:1,BLANK:2,PARENT:3,TOP:4};r.LinkTarget=g;function isDataScheme(t){for(var r=t.length,a=0;a<r&&""===t[a].trim();)a++;return"data:"===t.substring(a,a+5).toLowerCase()}var b,_=function(){function StatTimer(){_classCallCheck(this,StatTimer);this.started=Object.create(null);this.times=[]}_createClass(StatTimer,[{key:"time",value:function time(t){t in this.started&&(0,i.warn)("Timer is already running for ".concat(t));this.started[t]=Date.now()}},{key:"timeEnd",value:function timeEnd(t){t in this.started||(0,i.warn)("Timer has not been started for ".concat(t));this.times.push({name:t,start:this.started[t],end:Date.now()});delete this.started[t]}},{key:"toString",value:function toString(){var t,r=[],a=0,o=_createForOfIteratorHelper(this.times);try{for(o.s();!(t=o.n()).done;){var i=t.value.name;i.length>a&&(a=i.length)}}catch(t){o.e(t)}finally{o.f()}var l,u=_createForOfIteratorHelper(this.times);try{for(u.s();!(l=u.n()).done;){var c=l.value,d=c.end-c.start;r.push("".concat(c.name.padEnd(a)," ").concat(d,"ms\n"))}}catch(t){u.e(t)}finally{u.f()}return r.join("")}}]);return StatTimer}();r.StatTimer=_;function isValidFetchUrl(t,r){try{var a=(r?new URL(t,r):new URL(t)).protocol;return"http:"===a||"https:"===a}catch(t){return!1}}var S=function(){function PDFDateString(){_classCallCheck(this,PDFDateString)}_createClass(PDFDateString,null,[{key:"toDateObject",value:function toDateObject(t){if(!t||!(0,i.isString)(t))return null;b||(b=new RegExp("^D:(\\d{4})(\\d{2})?(\\d{2})?(\\d{2})?(\\d{2})?(\\d{2})?([Z|+|-])?(\\d{2})?'?(\\d{2})?'?"));var r=b.exec(t);if(!r)return null;var a=parseInt(r[1],10),o=parseInt(r[2],10);o=o>=1&&o<=12?o-1:0;var l=parseInt(r[3],10);l=l>=1&&l<=31?l:1;var u=parseInt(r[4],10);u=u>=0&&u<=23?u:0;var c=parseInt(r[5],10);c=c>=0&&c<=59?c:0;var d=parseInt(r[6],10);d=d>=0&&d<=59?d:0;var h=r[7]||"Z",p=parseInt(r[8],10);p=p>=0&&p<=23?p:0;var m=parseInt(r[9],10)||0;m=m>=0&&m<=59?m:0;if("-"===h){u+=p;c+=m}else if("+"===h){u-=p;c-=m}return new Date(Date.UTC(a,o,l,u,c,d))}}]);return PDFDateString}();r.PDFDateString=S},(t,r,a)=>{"use strict";t.exports=a(3)},(t,r,a)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}var o=function(t){var r,a=Object.prototype,o=a.hasOwnProperty,i="function"==typeof Symbol?Symbol:{},l=i.iterator||"@@iterator",u=i.asyncIterator||"@@asyncIterator",c=i.toStringTag||"@@toStringTag";function define(t,r,a){Object.defineProperty(t,r,{value:a,enumerable:!0,configurable:!0,writable:!0});return t[r]}try{define({},"")}catch(t){define=function define(t,r,a){return t[r]=a}}function wrap(t,r,a,o){var i=r&&r.prototype instanceof Generator?r:Generator,l=Object.create(i.prototype),u=new Context(o||[]);l._invoke=function makeInvokeMethod(t,r,a){var o=d;return function invoke(i,l){if(o===p)throw new Error("Generator is already running");if(o===m){if("throw"===i)throw l;return doneResult()}a.method=i;a.arg=l;for(;;){var u=a.delegate;if(u){var c=maybeInvokeDelegate(u,a);if(c){if(c===y)continue;return c}}if("next"===a.method)a.sent=a._sent=a.arg;else if("throw"===a.method){if(o===d){o=m;throw a.arg}a.dispatchException(a.arg)}else"return"===a.method&&a.abrupt("return",a.arg);o=p;var v=tryCatch(t,r,a);if("normal"===v.type){o=a.done?m:h;if(v.arg===y)continue;return{value:v.arg,done:a.done}}if("throw"===v.type){o=m;a.method="throw";a.arg=v.arg}}}}(t,a,u);return l}t.wrap=wrap;function tryCatch(t,r,a){try{return{type:"normal",arg:t.call(r,a)}}catch(t){return{type:"throw",arg:t}}}var d="suspendedStart",h="suspendedYield",p="executing",m="completed",y={};function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}var v={};define(v,l,(function(){return this}));var g=Object.getPrototypeOf,b=g&&g(g(values([])));b&&b!==a&&o.call(b,l)&&(v=b);var _=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(v);GeneratorFunction.prototype=GeneratorFunctionPrototype;define(_,"constructor",GeneratorFunctionPrototype);define(GeneratorFunctionPrototype,"constructor",GeneratorFunction);GeneratorFunction.displayName=define(GeneratorFunctionPrototype,c,"GeneratorFunction");function defineIteratorMethods(t){["next","throw","return"].forEach((function(r){define(t,r,(function(t){return this._invoke(r,t)}))}))}t.isGeneratorFunction=function(t){var r="function"==typeof t&&t.constructor;return!!r&&(r===GeneratorFunction||"GeneratorFunction"===(r.displayName||r.name))};t.mark=function(t){if(Object.setPrototypeOf)Object.setPrototypeOf(t,GeneratorFunctionPrototype);else{t.__proto__=GeneratorFunctionPrototype;define(t,c,"GeneratorFunction")}t.prototype=Object.create(_);return t};t.awrap=function(t){return{__await:t}};function AsyncIterator(t,r){function invoke(a,i,l,u){var c=tryCatch(t[a],t,i);if("throw"!==c.type){var d=c.arg,h=d.value;return h&&"object"===_typeof(h)&&o.call(h,"__await")?r.resolve(h.__await).then((function(t){invoke("next",t,l,u)}),(function(t){invoke("throw",t,l,u)})):r.resolve(h).then((function(t){d.value=t;l(d)}),(function(t){return invoke("throw",t,l,u)}))}u(c.arg)}var a;this._invoke=function enqueue(t,o){function callInvokeWithMethodAndArg(){return new r((function(r,a){invoke(t,o,r,a)}))}return a=a?a.then(callInvokeWithMethodAndArg,callInvokeWithMethodAndArg):callInvokeWithMethodAndArg()}}defineIteratorMethods(AsyncIterator.prototype);define(AsyncIterator.prototype,u,(function(){return this}));t.AsyncIterator=AsyncIterator;t.async=function(r,a,o,i,l){void 0===l&&(l=Promise);var u=new AsyncIterator(wrap(r,a,o,i),l);return t.isGeneratorFunction(a)?u:u.next().then((function(t){return t.done?t.value:u.next()}))};function maybeInvokeDelegate(t,a){var o=t.iterator[a.method];if(o===r){a.delegate=null;if("throw"===a.method){if(t.iterator.return){a.method="return";a.arg=r;maybeInvokeDelegate(t,a);if("throw"===a.method)return y}a.method="throw";a.arg=new TypeError("The iterator does not provide a 'throw' method")}return y}var i=tryCatch(o,t.iterator,a.arg);if("throw"===i.type){a.method="throw";a.arg=i.arg;a.delegate=null;return y}var l=i.arg;if(!l){a.method="throw";a.arg=new TypeError("iterator result is not an object");a.delegate=null;return y}if(!l.done)return l;a[t.resultName]=l.value;a.next=t.nextLoc;if("return"!==a.method){a.method="next";a.arg=r}a.delegate=null;return y}defineIteratorMethods(_);define(_,c,"Generator");define(_,l,(function(){return this}));define(_,"toString",(function(){return"[object Generator]"}));function pushTryEntry(t){var r={tryLoc:t[0]};1 in t&&(r.catchLoc=t[1]);if(2 in t){r.finallyLoc=t[2];r.afterLoc=t[3]}this.tryEntries.push(r)}function resetTryEntry(t){var r=t.completion||{};r.type="normal";delete r.arg;t.completion=r}function Context(t){this.tryEntries=[{tryLoc:"root"}];t.forEach(pushTryEntry,this);this.reset(!0)}t.keys=function(t){var r=[];for(var a in t)r.push(a);r.reverse();return function next(){for(;r.length;){var a=r.pop();if(a in t){next.value=a;next.done=!1;return next}}next.done=!0;return next}};function values(t){if(t){var a=t[l];if(a)return a.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var i=-1,u=function next(){for(;++i<t.length;)if(o.call(t,i)){next.value=t[i];next.done=!1;return next}next.value=r;next.done=!0;return next};return u.next=u}}return{next:doneResult}}t.values=values;function doneResult(){return{value:r,done:!0}}Context.prototype={constructor:Context,reset:function reset(t){this.prev=0;this.next=0;this.sent=this._sent=r;this.done=!1;this.delegate=null;this.method="next";this.arg=r;this.tryEntries.forEach(resetTryEntry);if(!t)for(var a in this)"t"===a.charAt(0)&&o.call(this,a)&&!isNaN(+a.slice(1))&&(this[a]=r)},stop:function stop(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function dispatchException(t){if(this.done)throw t;var a=this;function handle(o,i){u.type="throw";u.arg=t;a.next=o;if(i){a.method="next";a.arg=r}return!!i}for(var i=this.tryEntries.length-1;i>=0;--i){var l=this.tryEntries[i],u=l.completion;if("root"===l.tryLoc)return handle("end");if(l.tryLoc<=this.prev){var c=o.call(l,"catchLoc"),d=o.call(l,"finallyLoc");if(c&&d){if(this.prev<l.catchLoc)return handle(l.catchLoc,!0);if(this.prev<l.finallyLoc)return handle(l.finallyLoc)}else if(c){if(this.prev<l.catchLoc)return handle(l.catchLoc,!0)}else{if(!d)throw new Error("try statement without catch or finally");if(this.prev<l.finallyLoc)return handle(l.finallyLoc)}}}},abrupt:function abrupt(t,r){for(var a=this.tryEntries.length-1;a>=0;--a){var i=this.tryEntries[a];if(i.tryLoc<=this.prev&&o.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var l=i;break}}l&&("break"===t||"continue"===t)&&l.tryLoc<=r&&r<=l.finallyLoc&&(l=null);var u=l?l.completion:{};u.type=t;u.arg=r;if(l){this.method="next";this.next=l.finallyLoc;return y}return this.complete(u)},complete:function complete(t,r){if("throw"===t.type)throw t.arg;if("break"===t.type||"continue"===t.type)this.next=t.arg;else if("return"===t.type){this.rval=this.arg=t.arg;this.method="return";this.next="end"}else"normal"===t.type&&r&&(this.next=r);return y},finish:function finish(t){for(var r=this.tryEntries.length-1;r>=0;--r){var a=this.tryEntries[r];if(a.finallyLoc===t){this.complete(a.completion,a.afterLoc);resetTryEntry(a);return y}}},catch:function _catch(t){for(var r=this.tryEntries.length-1;r>=0;--r){var a=this.tryEntries[r];if(a.tryLoc===t){var o=a.completion;if("throw"===o.type){var i=o.arg;resetTryEntry(a)}return i}}throw new Error("illegal catch attempt")},delegateYield:function delegateYield(t,a,o){this.delegate={iterator:values(t),resultName:a,nextLoc:o};"next"===this.method&&(this.arg=r);return y}};return t}("object"===_typeof(t=a.nmd(t))?t.exports:{});try{regeneratorRuntime=o}catch(t){"object"===("undefined"==typeof globalThis?"undefined":_typeof(globalThis))?globalThis.regeneratorRuntime=o:Function("r","regeneratorRuntime = r")(o)}},(t,r,a)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.arrayByteLength=arrayByteLength;r.arraysToBytes=function arraysToBytes(t){var r=t.length;if(1===r&&t[0]instanceof Uint8Array)return t[0];for(var a=0,o=0;o<r;o++)a+=arrayByteLength(t[o]);for(var i=0,l=new Uint8Array(a),u=0;u<r;u++){var c=t[u];c instanceof Uint8Array||(c="string"==typeof c?stringToBytes(c):new Uint8Array(c));var d=c.byteLength;l.set(c,i);i+=d}return l};r.assert=assert;r.bytesToString=function bytesToString(t){assert(null!==t&&"object"===_typeof(t)&&void 0!==t.length,"Invalid argument for bytesToString");var r=t.length,a=8192;if(r<a)return String.fromCharCode.apply(null,t);for(var o=[],i=0;i<r;i+=a){var l=Math.min(i+a,r),u=t.subarray(i,l);o.push(String.fromCharCode.apply(null,u))}return o.join("")};r.createObjectURL=function createObjectURL(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(URL.createObjectURL&&!a)return URL.createObjectURL(new Blob([t],{type:r}));for(var o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",i="data:".concat(r,";base64,"),l=0,u=t.length;l<u;l+=3){var c=255&t[l],d=255&t[l+1],h=255&t[l+2],p=c>>2,m=(3&c)<<4|d>>4,y=l+1<u?(15&d)<<2|h>>6:64,v=l+2<u?63&h:64;i+=o[p]+o[m]+o[y]+o[v]}return i};r.createPromiseCapability=function createPromiseCapability(){var t=Object.create(null),r=!1;Object.defineProperty(t,"settled",{get:function get(){return r}});t.promise=new Promise((function(a,o){t.resolve=function(t){r=!0;a(t)};t.reject=function(t){r=!0;o(t)}}));return t};r.createValidAbsoluteUrl=function createValidAbsoluteUrl(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(!t)return null;try{if(a&&"string"==typeof t){if(a.addDefaultProtocol&&t.startsWith("www.")){var o=t.match(/\./g);o&&o.length>=2&&(t="http://".concat(t))}if(a.tryConvertEncoding)try{t=stringToUTF8String(t)}catch(t){}}var i=r?new URL(t,r):new URL(t);if(_isValidProtocol(i))return i}catch(t){}return null};r.escapeString=function escapeString(t){return t.replace(/([()\\\n\r])/g,(function(t){return"\n"===t?"\\n":"\r"===t?"\\r":"\\".concat(t)}))};r.getModificationDate=function getModificationDate(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Date,r=[t.getUTCFullYear().toString(),(t.getUTCMonth()+1).toString().padStart(2,"0"),t.getUTCDate().toString().padStart(2,"0"),t.getUTCHours().toString().padStart(2,"0"),t.getUTCMinutes().toString().padStart(2,"0"),t.getUTCSeconds().toString().padStart(2,"0")];return r.join("")};r.getVerbosityLevel=function getVerbosityLevel(){return i};r.info=function info(t){i>=o.INFOS&&console.log("Info: ".concat(t))};r.isArrayBuffer=function isArrayBuffer(t){return"object"===_typeof(t)&&null!==t&&void 0!==t.byteLength};r.isArrayEqual=function isArrayEqual(t,r){if(t.length!==r.length)return!1;for(var a=0,o=t.length;a<o;a++)if(t[a]!==r[a])return!1;return!0};r.isAscii=function isAscii(t){return/^[\x00-\x7F]*$/.test(t)};r.isBool=function isBool(t){return"boolean"==typeof t};r.isNum=function isNum(t){return"number"==typeof t};r.isSameOrigin=function isSameOrigin(t,r){var a;try{if(!(a=new URL(t)).origin||"null"===a.origin)return!1}catch(t){return!1}var o=new URL(r,a);return a.origin===o.origin};r.isString=function isString(t){return"string"==typeof t};r.objectFromMap=function objectFromMap(t){var r,a=Object.create(null),o=function _createForOfIteratorHelper(t,r){var a="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!a){if(Array.isArray(t)||(a=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){a&&(t=a);var o=0,i=function F(){};return{s:i,n:function n(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function e(t){throw t},f:i}}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 l,u=!0,c=!1;return{s:function s(){a=a.call(t)},n:function n(){var t=a.next();u=t.done;return t},e:function e(t){c=!0;l=t},f:function f(){try{u||null==a.return||a.return()}finally{if(c)throw l}}}}(t);try{for(o.s();!(r=o.n()).done;){var i=(c=r.value,d=2,function _arrayWithHoles(t){if(Array.isArray(t))return t}(c)||function _iterableToArrayLimit(t,r){var a=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==a)return;var o,i,l=[],u=!0,c=!1;try{for(a=a.call(t);!(u=(o=a.next()).done);u=!0){l.push(o.value);if(r&&l.length===r)break}}catch(t){c=!0;i=t}finally{try{u||null==a.return||a.return()}finally{if(c)throw i}}return l}(c,d)||_unsupportedIterableToArray(c,d)||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.")}()),l=i[0],u=i[1];a[l]=u}}catch(t){o.e(t)}finally{o.f()}var c,d;return a};r.objectSize=function objectSize(t){return Object.keys(t).length};r.removeNullCharacters=function removeNullCharacters(t){if("string"!=typeof t){warn("The argument for removeNullCharacters must be a string.");return t}return t.replace(v,"")};r.setVerbosityLevel=function setVerbosityLevel(t){Number.isInteger(t)&&(i=t)};r.shadow=shadow;r.string32=function string32(t){return String.fromCharCode(t>>24&255,t>>16&255,t>>8&255,255&t)};r.stringToBytes=stringToBytes;r.stringToPDFString=function stringToPDFString(t){var r=t.length,a=[];if("þ"===t[0]&&"ÿ"===t[1])for(var o=2;o<r;o+=2)a.push(String.fromCharCode(t.charCodeAt(o)<<8|t.charCodeAt(o+1)));else if("ÿ"===t[0]&&"þ"===t[1])for(var i=2;i<r;i+=2)a.push(String.fromCharCode(t.charCodeAt(i+1)<<8|t.charCodeAt(i)));else for(var l=0;l<r;++l){var u=A[t.charCodeAt(l)];a.push(u?String.fromCharCode(u):t.charAt(l))}return a.join("")};r.stringToUTF16BEString=function stringToUTF16BEString(t){for(var r=["þÿ"],a=0,o=t.length;a<o;a++){var i=t.charCodeAt(a);r.push(String.fromCharCode(i>>8&255),String.fromCharCode(255&i))}return r.join("")};r.stringToUTF8String=stringToUTF8String;r.unreachable=unreachable;r.utf8StringToString=function utf8StringToString(t){return unescape(encodeURIComponent(t))};r.warn=warn;r.VerbosityLevel=r.Util=r.UNSUPPORTED_FEATURES=r.UnknownErrorException=r.UnexpectedResponseException=r.TextRenderingMode=r.StreamType=r.RenderingIntentFlag=r.PermissionFlag=r.PasswordResponses=r.PasswordException=r.PageActionEventType=r.OPS=r.MissingPDFException=r.IsLittleEndianCached=r.IsEvalSupportedCached=r.InvalidPDFException=r.ImageKind=r.IDENTITY_MATRIX=r.FormatError=r.FontType=r.FONT_IDENTITY_MATRIX=r.DocumentActionEventType=r.CMapCompressionType=r.BaseException=r.AnnotationType=r.AnnotationStateModelType=r.AnnotationReviewState=r.AnnotationReplyType=r.AnnotationMode=r.AnnotationMarkedState=r.AnnotationFlag=r.AnnotationFieldFlag=r.AnnotationBorderStyleType=r.AnnotationActionEventType=r.AbortException=void 0;a(5);function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);return"Map"===a||"Set"===a?Array.from(t):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var a,o=_getPrototypeOf(t);if(r){var i=_getPrototypeOf(this).constructor;a=Reflect.construct(o,arguments,i)}else a=o.apply(this,arguments);return _possibleConstructorReturn(this,a)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}r.IDENTITY_MATRIX=[1,0,0,1,0,0];r.FONT_IDENTITY_MATRIX=[.001,0,0,.001,0,0];r.RenderingIntentFlag={ANY:1,DISPLAY:2,PRINT:4,ANNOTATIONS_FORMS:16,ANNOTATIONS_STORAGE:32,ANNOTATIONS_DISABLE:64,OPLIST:256};r.AnnotationMode={DISABLE:0,ENABLE:1,ENABLE_FORMS:2,ENABLE_STORAGE:3};r.PermissionFlag={PRINT:4,MODIFY_CONTENTS:8,COPY:16,MODIFY_ANNOTATIONS:32,FILL_INTERACTIVE_FORMS:256,COPY_FOR_ACCESSIBILITY:512,ASSEMBLE:1024,PRINT_HIGH_QUALITY:2048};r.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};r.ImageKind={GRAYSCALE_1BPP:1,RGB_24BPP:2,RGBA_32BPP:3};r.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};r.AnnotationStateModelType={MARKED:"Marked",REVIEW:"Review"};r.AnnotationMarkedState={MARKED:"Marked",UNMARKED:"Unmarked"};r.AnnotationReviewState={ACCEPTED:"Accepted",REJECTED:"Rejected",CANCELLED:"Cancelled",COMPLETED:"Completed",NONE:"None"};r.AnnotationReplyType={GROUP:"Group",REPLY:"R"};r.AnnotationFlag={INVISIBLE:1,HIDDEN:2,PRINT:4,NOZOOM:8,NOROTATE:16,NOVIEW:32,READONLY:64,LOCKED:128,TOGGLENOVIEW:256,LOCKEDCONTENTS:512};r.AnnotationFieldFlag={READONLY:1,REQUIRED:2,NOEXPORT:4,MULTILINE:4096,PASSWORD:8192,NOTOGGLETOOFF:16384,RADIO:32768,PUSHBUTTON:65536,COMBO:131072,EDIT:262144,SORT:524288,FILESELECT:1048576,MULTISELECT:2097152,DONOTSPELLCHECK:4194304,DONOTSCROLL:8388608,COMB:16777216,RICHTEXT:33554432,RADIOSINUNISON:33554432,COMMITONSELCHANGE:67108864};r.AnnotationBorderStyleType={SOLID:1,DASHED:2,BEVELED:3,INSET:4,UNDERLINE:5};r.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"};r.DocumentActionEventType={WC:"WillClose",WS:"WillSave",DS:"DidSave",WP:"WillPrint",DP:"DidPrint"};r.PageActionEventType={O:"PageOpen",C:"PageClose"};r.StreamType={UNKNOWN:"UNKNOWN",FLATE:"FLATE",LZW:"LZW",DCT:"DCT",JPX:"JPX",JBIG:"JBIG",A85:"A85",AHX:"AHX",CCF:"CCF",RLX:"RLX"};r.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"};var o={ERRORS:0,WARNINGS:1,INFOS:5};r.VerbosityLevel=o;r.CMapCompressionType={NONE:0,BINARY:1,STREAM:2};r.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};r.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"};r.PasswordResponses={NEED_PASSWORD:1,INCORRECT_PASSWORD:2};var i=o.WARNINGS;function warn(t){i>=o.WARNINGS&&console.log("Warning: ".concat(t))}function unreachable(t){throw new Error(t)}function assert(t,r){t||unreachable(r)}function _isValidProtocol(t){if(!t)return!1;switch(t.protocol){case"http:":case"https:":case"ftp:":case"mailto:":case"tel:":return!0;default:return!1}}function shadow(t,r,a){Object.defineProperty(t,r,{value:a,enumerable:!0,configurable:!0,writable:!1});return a}var l=function BaseExceptionClosure(){function BaseException(t,r){this.constructor===BaseException&&unreachable("Cannot initialize BaseException.");this.message=t;this.name=r}BaseException.prototype=new Error;BaseException.constructor=BaseException;return BaseException}();r.BaseException=l;var u=function(t){_inherits(PasswordException,t);var r=_createSuper(PasswordException);function PasswordException(t,a){var o;_classCallCheck(this,PasswordException);(o=r.call(this,t,"PasswordException")).code=a;return o}return PasswordException}(l);r.PasswordException=u;var c=function(t){_inherits(UnknownErrorException,t);var r=_createSuper(UnknownErrorException);function UnknownErrorException(t,a){var o;_classCallCheck(this,UnknownErrorException);(o=r.call(this,t,"UnknownErrorException")).details=a;return o}return UnknownErrorException}(l);r.UnknownErrorException=c;var d=function(t){_inherits(InvalidPDFException,t);var r=_createSuper(InvalidPDFException);function InvalidPDFException(t){_classCallCheck(this,InvalidPDFException);return r.call(this,t,"InvalidPDFException")}return InvalidPDFException}(l);r.InvalidPDFException=d;var h=function(t){_inherits(MissingPDFException,t);var r=_createSuper(MissingPDFException);function MissingPDFException(t){_classCallCheck(this,MissingPDFException);return r.call(this,t,"MissingPDFException")}return MissingPDFException}(l);r.MissingPDFException=h;var p=function(t){_inherits(UnexpectedResponseException,t);var r=_createSuper(UnexpectedResponseException);function UnexpectedResponseException(t,a){var o;_classCallCheck(this,UnexpectedResponseException);(o=r.call(this,t,"UnexpectedResponseException")).status=a;return o}return UnexpectedResponseException}(l);r.UnexpectedResponseException=p;var m=function(t){_inherits(FormatError,t);var r=_createSuper(FormatError);function FormatError(t){_classCallCheck(this,FormatError);return r.call(this,t,"FormatError")}return FormatError}(l);r.FormatError=m;var y=function(t){_inherits(AbortException,t);var r=_createSuper(AbortException);function AbortException(t){_classCallCheck(this,AbortException);return r.call(this,t,"AbortException")}return AbortException}(l);r.AbortException=y;var v=/\x00/g;function stringToBytes(t){assert("string"==typeof t,"Invalid argument for stringToBytes");for(var r=t.length,a=new Uint8Array(r),o=0;o<r;++o)a[o]=255&t.charCodeAt(o);return a}function arrayByteLength(t){if(void 0!==t.length)return t.length;assert(void 0!==t.byteLength,"arrayByteLength - invalid argument.");return t.byteLength}var g={get value(){return shadow(this,"value",function isLittleEndian(){var t=new Uint8Array(4);t[0]=1;return 1===new Uint32Array(t.buffer,0,1)[0]}())}};r.IsLittleEndianCached=g;var b={get value(){return shadow(this,"value",function isEvalSupported(){try{new Function("");return!0}catch(t){return!1}}())}};r.IsEvalSupportedCached=b;var _=function _toConsumableArray(t){return function _arrayWithoutHoles(t){if(Array.isArray(t))return _arrayLikeToArray(t)}(t)||function _iterableToArray(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||_unsupportedIterableToArray(t)||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.")}()}(Array(256).keys()).map((function(t){return t.toString(16).padStart(2,"0")})),S=function(){function Util(){_classCallCheck(this,Util)}!function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}(Util,null,[{key:"makeHexColor",value:function makeHexColor(t,r,a){return"#".concat(_[t]).concat(_[r]).concat(_[a])}},{key:"transform",value:function transform(t,r){return[t[0]*r[0]+t[2]*r[1],t[1]*r[0]+t[3]*r[1],t[0]*r[2]+t[2]*r[3],t[1]*r[2]+t[3]*r[3],t[0]*r[4]+t[2]*r[5]+t[4],t[1]*r[4]+t[3]*r[5]+t[5]]}},{key:"applyTransform",value:function applyTransform(t,r){return[t[0]*r[0]+t[1]*r[2]+r[4],t[0]*r[1]+t[1]*r[3]+r[5]]}},{key:"applyInverseTransform",value:function applyInverseTransform(t,r){var a=r[0]*r[3]-r[1]*r[2];return[(t[0]*r[3]-t[1]*r[2]+r[2]*r[5]-r[4]*r[3])/a,(-t[0]*r[1]+t[1]*r[0]+r[4]*r[1]-r[5]*r[0])/a]}},{key:"getAxialAlignedBoundingBox",value:function getAxialAlignedBoundingBox(t,r){var a=Util.applyTransform(t,r),o=Util.applyTransform(t.slice(2,4),r),i=Util.applyTransform([t[0],t[3]],r),l=Util.applyTransform([t[2],t[1]],r);return[Math.min(a[0],o[0],i[0],l[0]),Math.min(a[1],o[1],i[1],l[1]),Math.max(a[0],o[0],i[0],l[0]),Math.max(a[1],o[1],i[1],l[1])]}},{key:"inverseTransform",value:function inverseTransform(t){var r=t[0]*t[3]-t[1]*t[2];return[t[3]/r,-t[1]/r,-t[2]/r,t[0]/r,(t[2]*t[5]-t[4]*t[3])/r,(t[4]*t[1]-t[5]*t[0])/r]}},{key:"apply3dTransform",value:function apply3dTransform(t,r){return[t[0]*r[0]+t[1]*r[1]+t[2]*r[2],t[3]*r[0]+t[4]*r[1]+t[5]*r[2],t[6]*r[0]+t[7]*r[1]+t[8]*r[2]]}},{key:"singularValueDecompose2dScale",value:function singularValueDecompose2dScale(t){var r=[t[0],t[2],t[1],t[3]],a=t[0]*r[0]+t[1]*r[2],o=t[0]*r[1]+t[1]*r[3],i=t[2]*r[0]+t[3]*r[2],l=t[2]*r[1]+t[3]*r[3],u=(a+l)/2,c=Math.sqrt(Math.pow(a+l,2)-4*(a*l-i*o))/2,d=u+c||1,h=u-c||1;return[Math.sqrt(d),Math.sqrt(h)]}},{key:"normalizeRect",value:function normalizeRect(t){var r=t.slice(0);if(t[0]>t[2]){r[0]=t[2];r[2]=t[0]}if(t[1]>t[3]){r[1]=t[3];r[3]=t[1]}return r}},{key:"intersect",value:function intersect(t,r){function compare(t,r){return t-r}var a=[t[0],t[2],r[0],r[2]].sort(compare),o=[t[1],t[3],r[1],r[3]].sort(compare),i=[];t=Util.normalizeRect(t);r=Util.normalizeRect(r);if(!(a[0]===t[0]&&a[1]===r[0]||a[0]===r[0]&&a[1]===t[0]))return null;i[0]=a[1];i[2]=a[2];if(!(o[0]===t[1]&&o[1]===r[1]||o[0]===r[1]&&o[1]===t[1]))return null;i[1]=o[1];i[3]=o[2];return i}}]);return Util}();r.Util=S;var A=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,728,711,710,729,733,731,730,732,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8226,8224,8225,8230,8212,8211,402,8260,8249,8250,8722,8240,8222,8220,8221,8216,8217,8218,8482,64257,64258,321,338,352,376,381,305,322,339,353,382,0,8364];function stringToUTF8String(t){return decodeURIComponent(escape(t))}},(t,r,a)=>{"use strict";var o=a(6);if("undefined"==typeof globalThis||!globalThis._pdfjsCompatibilityChecked){"undefined"!=typeof globalThis&&globalThis.Math===Math||(globalThis=a(7));globalThis._pdfjsCompatibilityChecked=!0;!function checkNodeBtoa(){!globalThis.btoa&&o.isNodeJS&&(globalThis.btoa=function(t){return Buffer.from(t,"binary").toString("base64")})}();!function checkNodeAtob(){!globalThis.atob&&o.isNodeJS&&(globalThis.atob=function(t){return Buffer.from(t,"base64").toString("binary")})}();!function checkDOMMatrix(){!globalThis.DOMMatrix&&o.isNodeJS&&(globalThis.DOMMatrix=a(60))}();!function checkObjectFromEntries(){Object.fromEntries||a(61)}();!function checkPromise(){globalThis.Promise.allSettled||(globalThis.Promise=a(89))}();!function checkReadableStream(){!globalThis.ReadableStream&&o.isNodeJS&&(globalThis.ReadableStream=a(117).ReadableStream)}()}},(t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.isNodeJS=void 0;function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}var a=!("object"!==("undefined"==typeof process?"undefined":_typeof(process))||process+""!="[object process]"||process.versions.nw||process.versions.electron&&process.type&&"browser"!==process.type);r.isNodeJS=a},(t,r,a)=>{a(8);t.exports=a(10)},(t,r,a)=>{a(9)({global:!0},{globalThis:a(10)})},(t,r,a)=>{var o=a(10),i=a(11).f,l=a(40),u=a(43),c=a(34),d=a(49),h=a(59);t.exports=function(t,r){var a,p,m,y,v,g=t.target,b=t.global,_=t.stat;if(a=b?o:_?o[g]||c(g,{}):(o[g]||{}).prototype)for(p in r){y=r[p];m=t.noTargetGet?(v=i(a,p))&&v.value:a[p];if(!h(b?p:g+(_?".":"#")+p,t.forced)&&void 0!==m){if(typeof y==typeof m)continue;d(y,m)}(t.sham||m&&m.sham)&&l(y,"sham",!0);u(a,p,y,t)}}},t=>{var check=function(t){return t&&t.Math==Math&&t};t.exports=check("object"==typeof globalThis&&globalThis)||check("object"==typeof window&&window)||check("object"==typeof self&&self)||check("object"==typeof global&&global)||function(){return this}()||Function("return this")()},(t,r,a)=>{var o=a(12),i=a(14),l=a(15),u=a(16),c=a(20),d=a(35),h=a(38),p=Object.getOwnPropertyDescriptor;r.f=o?p:function getOwnPropertyDescriptor(t,r){t=u(t);r=c(r);if(h)try{return p(t,r)}catch(t){}if(d(t,r))return l(!i.f.call(t,r),t[r])}},(t,r,a)=>{var o=a(13);t.exports=!o((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},t=>{t.exports=function(t){try{return!!t()}catch(t){return!0}}},(t,r)=>{"use strict";var a={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!a.call({1:2},1);r.f=i?function propertyIsEnumerable(t){var r=o(this,t);return!!r&&r.enumerable}:a},t=>{t.exports=function(t,r){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:r}}},(t,r,a)=>{var o=a(17),i=a(19);t.exports=function(t){return o(i(t))}},(t,r,a)=>{var o=a(13),i=a(18),l="".split;t.exports=o((function(){return!Object("z").propertyIsEnumerable(0)}))?function(t){return"String"==i(t)?l.call(t,""):Object(t)}:Object},t=>{var r={}.toString;t.exports=function(t){return r.call(t).slice(8,-1)}},t=>{t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},(t,r,a)=>{var o=a(21),i=a(23);t.exports=function(t){var r=o(t,"string");return i(r)?r:String(r)}},(t,r,a)=>{var o=a(22),i=a(23),l=a(29),u=a(30)("toPrimitive");t.exports=function(t,r){if(!o(t)||i(t))return t;var a,c=t[u];if(void 0!==c){void 0===r&&(r="default");a=c.call(t,r);if(!o(a)||i(a))return a;throw TypeError("Can't convert object to primitive value")}void 0===r&&(r="number");return l(t,r)}},t=>{t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},(t,r,a)=>{var o=a(24),i=a(25);t.exports=i?function(t){return"symbol"==typeof t}:function(t){var r=o("Symbol");return"function"==typeof r&&Object(t)instanceof r}},(t,r,a)=>{var o=a(10),aFunction=function(t){return"function"==typeof t?t:void 0};t.exports=function(t,r){return arguments.length<2?aFunction(o[t]):o[t]&&o[t][r]}},(t,r,a)=>{var o=a(26);t.exports=o&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},(t,r,a)=>{var o=a(27),i=a(13);t.exports=!!Object.getOwnPropertySymbols&&!i((function(){var t=Symbol();return!String(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&o&&o<41}))},(t,r,a)=>{var o,i,l=a(10),u=a(28),c=l.process,d=l.Deno,h=c&&c.versions||d&&d.version,p=h&&h.v8;p?i=(o=p.split("."))[0]<4?1:o[0]+o[1]:u&&(!(o=u.match(/Edge\/(\d+)/))||o[1]>=74)&&(o=u.match(/Chrome\/(\d+)/))&&(i=o[1]);t.exports=i&&+i},(t,r,a)=>{var o=a(24);t.exports=o("navigator","userAgent")||""},(t,r,a)=>{var o=a(22);t.exports=function(t,r){var a,i;if("string"===r&&"function"==typeof(a=t.toString)&&!o(i=a.call(t)))return i;if("function"==typeof(a=t.valueOf)&&!o(i=a.call(t)))return i;if("string"!==r&&"function"==typeof(a=t.toString)&&!o(i=a.call(t)))return i;throw TypeError("Can't convert object to primitive value")}},(t,r,a)=>{var o=a(10),i=a(31),l=a(35),u=a(37),c=a(26),d=a(25),h=i("wks"),p=o.Symbol,m=d?p:p&&p.withoutSetter||u;t.exports=function(t){l(h,t)&&(c||"string"==typeof h[t])||(c&&l(p,t)?h[t]=p[t]:h[t]=m("Symbol."+t));return h[t]}},(t,r,a)=>{var o=a(32),i=a(33);(t.exports=function(t,r){return i[t]||(i[t]=void 0!==r?r:{})})("versions",[]).push({version:"3.17.3",mode:o?"pure":"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"})},t=>{t.exports=!1},(t,r,a)=>{var o=a(10),i=a(34),l="__core-js_shared__",u=o[l]||i(l,{});t.exports=u},(t,r,a)=>{var o=a(10);t.exports=function(t,r){try{Object.defineProperty(o,t,{value:r,configurable:!0,writable:!0})}catch(a){o[t]=r}return r}},(t,r,a)=>{var o=a(36),i={}.hasOwnProperty;t.exports=Object.hasOwn||function hasOwn(t,r){return i.call(o(t),r)}},(t,r,a)=>{var o=a(19);t.exports=function(t){return Object(o(t))}},t=>{var r=0,a=Math.random();t.exports=function(t){return"Symbol("+String(void 0===t?"":t)+")_"+(++r+a).toString(36)}},(t,r,a)=>{var o=a(12),i=a(13),l=a(39);t.exports=!o&&!i((function(){return 7!=Object.defineProperty(l("div"),"a",{get:function(){return 7}}).a}))},(t,r,a)=>{var o=a(10),i=a(22),l=o.document,u=i(l)&&i(l.createElement);t.exports=function(t){return u?l.createElement(t):{}}},(t,r,a)=>{var o=a(12),i=a(41),l=a(15);t.exports=o?function(t,r,a){return i.f(t,r,l(1,a))}:function(t,r,a){t[r]=a;return t}},(t,r,a)=>{var o=a(12),i=a(38),l=a(42),u=a(20),c=Object.defineProperty;r.f=o?c:function defineProperty(t,r,a){l(t);r=u(r);l(a);if(i)try{return c(t,r,a)}catch(t){}if("get"in a||"set"in a)throw TypeError("Accessors not supported");"value"in a&&(t[r]=a.value);return t}},(t,r,a)=>{var o=a(22);t.exports=function(t){if(!o(t))throw TypeError(String(t)+" is not an object");return t}},(t,r,a)=>{var o=a(10),i=a(40),l=a(35),u=a(34),c=a(44),d=a(45),h=d.get,p=d.enforce,m=String(String).split("String");(t.exports=function(t,r,a,c){var d,h=!!c&&!!c.unsafe,y=!!c&&!!c.enumerable,v=!!c&&!!c.noTargetGet;if("function"==typeof a){"string"!=typeof r||l(a,"name")||i(a,"name",r);(d=p(a)).source||(d.source=m.join("string"==typeof r?r:""))}if(t!==o){h?!v&&t[r]&&(y=!0):delete t[r];y?t[r]=a:i(t,r,a)}else y?t[r]=a:u(r,a)})(Function.prototype,"toString",(function toString(){return"function"==typeof this&&h(this).source||c(this)}))},(t,r,a)=>{var o=a(33),i=Function.toString;"function"!=typeof o.inspectSource&&(o.inspectSource=function(t){return i.call(t)});t.exports=o.inspectSource},(t,r,a)=>{var o,i,l,u=a(46),c=a(10),d=a(22),h=a(40),p=a(35),m=a(33),y=a(47),v=a(48),g="Object already initialized",b=c.WeakMap;if(u||m.state){var _=m.state||(m.state=new b),S=_.get,A=_.has,C=_.set;o=function(t,r){if(A.call(_,t))throw new TypeError(g);r.facade=t;C.call(_,t,r);return r};i=function(t){return S.call(_,t)||{}};l=function(t){return A.call(_,t)}}else{var k=y("state");v[k]=!0;o=function(t,r){if(p(t,k))throw new TypeError(g);r.facade=t;h(t,k,r);return r};i=function(t){return p(t,k)?t[k]:{}};l=function(t){return p(t,k)}}t.exports={set:o,get:i,has:l,enforce:function(t){return l(t)?i(t):o(t,{})},getterFor:function(t){return function(r){var a;if(!d(r)||(a=i(r)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return a}}}},(t,r,a)=>{var o=a(10),i=a(44),l=o.WeakMap;t.exports="function"==typeof l&&/native code/.test(i(l))},(t,r,a)=>{var o=a(31),i=a(37),l=o("keys");t.exports=function(t){return l[t]||(l[t]=i(t))}},t=>{t.exports={}},(t,r,a)=>{var o=a(35),i=a(50),l=a(11),u=a(41);t.exports=function(t,r){for(var a=i(r),c=u.f,d=l.f,h=0;h<a.length;h++){var p=a[h];o(t,p)||c(t,p,d(r,p))}}},(t,r,a)=>{var o=a(24),i=a(51),l=a(58),u=a(42);t.exports=o("Reflect","ownKeys")||function ownKeys(t){var r=i.f(u(t)),a=l.f;return a?r.concat(a(t)):r}},(t,r,a)=>{var o=a(52),i=a(57).concat("length","prototype");r.f=Object.getOwnPropertyNames||function getOwnPropertyNames(t){return o(t,i)}},(t,r,a)=>{var o=a(35),i=a(16),l=a(53).indexOf,u=a(48);t.exports=function(t,r){var a,c=i(t),d=0,h=[];for(a in c)!o(u,a)&&o(c,a)&&h.push(a);for(;r.length>d;)o(c,a=r[d++])&&(~l(h,a)||h.push(a));return h}},(t,r,a)=>{var o=a(16),i=a(54),l=a(56),createMethod=function(t){return function(r,a,u){var c,d=o(r),h=i(d.length),p=l(u,h);if(t&&a!=a){for(;h>p;)if((c=d[p++])!=c)return!0}else for(;h>p;p++)if((t||p in d)&&d[p]===a)return t||p||0;return!t&&-1}};t.exports={includes:createMethod(!0),indexOf:createMethod(!1)}},(t,r,a)=>{var o=a(55),i=Math.min;t.exports=function(t){return t>0?i(o(t),9007199254740991):0}},t=>{var r=Math.ceil,a=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?a:r)(t)}},(t,r,a)=>{var o=a(55),i=Math.max,l=Math.min;t.exports=function(t,r){var a=o(t);return a<0?i(a+r,0):l(a,r)}},t=>{t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},(t,r)=>{r.f=Object.getOwnPropertySymbols},(t,r,a)=>{var o=a(13),i=/#|\.prototype\./,isForced=function(t,r){var a=u[l(t)];return a==d||a!=c&&("function"==typeof r?o(r):!!r)},l=isForced.normalize=function(t){return String(t).replace(i,".").toLowerCase()},u=isForced.data={},c=isForced.NATIVE="N",d=isForced.POLYFILL="P";t.exports=isForced},(t,r,a)=>{"use strict";var o,i,l;function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}l=function(){var t=function CSSMatrix(){for(var t=[],r=arguments.length;r--;)t[r]=arguments[r];this.setIdentity();return t&&t.length&&this.setMatrixValue(t)},r={isIdentity:{configurable:!0},is2D:{configurable:!0}};r.isIdentity.get=function(){var t=this;return 1===t.m11&&0===t.m12&&0===t.m13&&0===t.m14&&0===t.m21&&1===t.m22&&0===t.m23&&0===t.m24&&0===t.m31&&0===t.m32&&1===t.m33&&0===t.m34&&0===t.m41&&0===t.m42&&0===t.m43&&1===t.m44};r.isIdentity.set=function(t){this.isIdentity=t};r.is2D.get=function(){var t=this;return 0===t.m31&&0===t.m32&&1===t.m33&&0===t.m34&&0===t.m43&&1===t.m44};r.is2D.set=function(t){this.is2D=t};Object.defineProperties(t.prototype,r);var a=t.prototype;function Translate(r,a,o){var i=new t;i.m41=r;i.e=r;i.m42=a;i.f=a;i.m43=o;return i}function Rotate(r,a,o){var i=new t,l=r*Math.PI/180,u=a*Math.PI/180,c=o*Math.PI/180,d=Math.cos(l),h=-Math.sin(l),p=Math.cos(u),m=-Math.sin(u),y=Math.cos(c),v=-Math.sin(c),g=p*y,b=-p*v;i.m11=g;i.a=g;i.m12=b;i.b=b;i.m13=m;var _=h*m*y+d*v;i.m21=_;i.c=_;var S=d*y-h*m*v;i.m22=S;i.d=S;i.m23=-h*p;i.m31=h*v-d*m*y;i.m32=h*y+d*m*v;i.m33=d*p;return i}function RotateAxisAngle(r,a,o,i){var l=new t,u=i*Math.PI/360,c=Math.sin(u),d=Math.cos(u),h=c*c,p=Math.sqrt(r*r+a*a+o*o),m=0,y=0,v=1;if(0!==p){m=r/p;y=a/p;v=o/p}var g=m*m,b=y*y,_=v*v,S=1-2*(b+_)*h;l.m11=S;l.a=S;var A=2*(r*a*h+o*c*d);l.m12=A;l.b=A;l.m13=2*(r*o*h-a*c*d);var C=2*(a*r*h-o*c*d);l.m21=C;l.c=C;var k=1-2*(_+g)*h;l.m22=k;l.d=k;l.m23=2*(a*o*h+r*c*d);l.m31=2*(o*r*h+a*c*d);l.m32=2*(o*a*h-r*c*d);l.m33=1-2*(g+b)*h;l.m14=0;l.m24=0;l.m34=0;l.m41=0;l.e=0;l.m42=0;l.f=0;l.m43=0;l.m44=1;return l}function Scale(r,a,o){var i=new t;i.m11=r;i.a=r;i.m22=a;i.d=a;i.m33=o;return i}function SkewX(r){var a=r*Math.PI/180,o=new t,i=Math.tan(a);o.m21=i;o.c=i;return o}function SkewY(r){var a=r*Math.PI/180,o=new t,i=Math.tan(a);o.m12=i;o.b=i;return o}function Multiply(r,a){var o=a.m11*r.m11+a.m12*r.m21+a.m13*r.m31+a.m14*r.m41,i=a.m11*r.m12+a.m12*r.m22+a.m13*r.m32+a.m14*r.m42,l=a.m11*r.m13+a.m12*r.m23+a.m13*r.m33+a.m14*r.m43,u=a.m11*r.m14+a.m12*r.m24+a.m13*r.m34+a.m14*r.m44,c=a.m21*r.m11+a.m22*r.m21+a.m23*r.m31+a.m24*r.m41,d=a.m21*r.m12+a.m22*r.m22+a.m23*r.m32+a.m24*r.m42,h=a.m21*r.m13+a.m22*r.m23+a.m23*r.m33+a.m24*r.m43,p=a.m21*r.m14+a.m22*r.m24+a.m23*r.m34+a.m24*r.m44,m=a.m31*r.m11+a.m32*r.m21+a.m33*r.m31+a.m34*r.m41,y=a.m31*r.m12+a.m32*r.m22+a.m33*r.m32+a.m34*r.m42,v=a.m31*r.m13+a.m32*r.m23+a.m33*r.m33+a.m34*r.m43,g=a.m31*r.m14+a.m32*r.m24+a.m33*r.m34+a.m34*r.m44,b=a.m41*r.m11+a.m42*r.m21+a.m43*r.m31+a.m44*r.m41,_=a.m41*r.m12+a.m42*r.m22+a.m43*r.m32+a.m44*r.m42,S=a.m41*r.m13+a.m42*r.m23+a.m43*r.m33+a.m44*r.m43,A=a.m41*r.m14+a.m42*r.m24+a.m43*r.m34+a.m44*r.m44;return new t([o,c,m,b,i,d,y,_,l,h,v,S,u,p,g,A])}function feedFromArray(t,r){var a=Array.from(r);if(16===a.length){var o=a[0],i=a[1],l=a[2],u=a[3],c=a[4],d=a[5],h=a[6],p=a[7],m=a[8],y=a[9],v=a[10],g=a[11],b=a[12],_=a[13],S=a[14],A=a[15];t.m11=o;t.a=o;t.m21=i;t.c=i;t.m31=l;t.m41=u;t.e=u;t.m12=c;t.b=c;t.m22=d;t.d=d;t.m32=h;t.m42=p;t.f=p;t.m13=m;t.m23=y;t.m33=v;t.m43=g;t.m14=b;t.m24=_;t.m34=S;t.m44=A}else{if(6!==a.length)throw new TypeError("CSSMatrix: expecting a 6/16 values Array");var C=a[0],k=a[1],R=a[2],w=a[3],P=a[4],x=a[5];t.m11=C;t.a=C;t.m12=k;t.b=k;t.m21=R;t.c=R;t.m22=w;t.d=w;t.m14=P;t.e=P;t.m24=x;t.f=x}return t}a.setMatrixValue=function setMatrixValue(r){var a=this;if(!r||!r.length)return a;if(r.length&&"string"==typeof r[0]&&r[0].length){var o,i,l=String(r[0]).trim();if("none"===l)return a;o=l.slice(0,l.indexOf("("));i=l.slice("matrix"===o?7:9,-1).split(",").map((function(t){return Math.abs(t)<1e-6?0:+t}));if(!([6,16].indexOf(i.length)>-1))throw new TypeError("CSSMatrix: expecting valid CSS matrix() / matrix3d() syntax");feedFromArray(a,i)}else r[0]instanceof t?feedFromArray(a,r[0].toArray()):Array.isArray(r[0])?feedFromArray(a,r[0]):Array.isArray(r)&&feedFromArray(a,r);return a};a.toString=function toString(){return(this.is2D?"matrix":"matrix3d")+"("+this.toArray(1).join(",")+")"};a.toArray=function toArray(t){var r=this;return r.is2D?[r.a,r.b,r.c,r.d,r.e,r.f]:t?[r.m11,r.m12,r.m13,r.m14,r.m21,r.m22,r.m23,r.m24,r.m31,r.m32,r.m33,r.m34,r.m41,r.m42,r.m43,r.m44]:[r.m11,r.m21,r.m31,r.m41,r.m12,r.m22,r.m32,r.m42,r.m13,r.m23,r.m33,r.m43,r.m14,r.m24,r.m34,r.m44]};a.multiply=function multiply(t){return Multiply(this,t)};a.translate=function translate(t,r,a){var o=r,i=a;null==i&&(i=0);null==o&&(o=0);return Multiply(this,Translate(t,o,i))};a.scale=function scale(t,r,a){var o=r,i=a;null==o&&(o=t);null==i&&(i=t);return Multiply(this,Scale(t,o,i))};a.rotate=function rotate(t,r,a){var o=t,i=r,l=a;null==i&&(i=0);if(null==l){l=o;o=0}return Multiply(this,Rotate(o,i,l))};a.rotateAxisAngle=function rotateAxisAngle(t,r,a,o){if(4!==arguments.length)throw new TypeError("CSSMatrix: expecting 4 values");return Multiply(this,RotateAxisAngle(t,r,a,o))};a.skewX=function skewX(t){return Multiply(this,SkewX(t))};a.skewY=function skewY(t){return Multiply(this,SkewY(t))};a.setIdentity=function setIdentity(){return feedFromArray(this,[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])};a.transformPoint=function transformPoint(t){var r=Translate(t.x,t.y,t.z);r.m44=t.w||1;return{x:(r=this.multiply(r)).m41,y:r.m42,z:r.m43,w:r.m44}};a.transform=function transform(t){var r=this,a=r.m11*t.x+r.m12*t.y+r.m13*t.z+r.m14*t.w,o=r.m21*t.x+r.m22*t.y+r.m23*t.z+r.m24*t.w,i=r.m31*t.x+r.m32*t.y+r.m33*t.z+r.m34*t.w,l=r.m41*t.x+r.m42*t.y+r.m43*t.z+r.m44*t.w;return{x:a/l,y:o/l,z:i/l,w:l}};t.Translate=Translate;t.Rotate=Rotate;t.RotateAxisAngle=RotateAxisAngle;t.Scale=Scale;t.SkewX=SkewX;t.SkewY=SkewY;t.Multiply=Multiply;t.fromMatrix=function fromMatrix(r){return new t([r.m11,r.m21,r.m31,r.m41,r.m12,r.m22,r.m32,r.m42,r.m13,r.m23,r.m33,r.m43,r.m14,r.m24,r.m34,r.m44])};t.fromArray=function fromArray(r){return feedFromArray(new t,r)};t.feedFromArray=feedFromArray;return t},"object"===_typeof(r)?t.exports=l():void 0!==(i="function"==typeof(o=l)?o.call(r,a,r,t):o)&&(t.exports=i)},(t,r,a)=>{a(62);a(77);var o=a(88);t.exports=o.Object.fromEntries},(t,r,a)=>{"use strict";var o=a(16),i=a(63),l=a(68),u=a(45),c=a(69),d="Array Iterator",h=u.set,p=u.getterFor(d);t.exports=c(Array,"Array",(function(t,r){h(this,{type:d,target:o(t),index:0,kind:r})}),(function(){var t=p(this),r=t.target,a=t.kind,o=t.index++;if(!r||o>=r.length){t.target=void 0;return{value:void 0,done:!0}}return"keys"==a?{value:o,done:!1}:"values"==a?{value:r[o],done:!1}:{value:[o,r[o]],done:!1}}),"values");l.Arguments=l.Array;i("keys");i("values");i("entries")},(t,r,a)=>{var o=a(30),i=a(64),l=a(41),u=o("unscopables"),c=Array.prototype;null==c[u]&&l.f(c,u,{configurable:!0,value:i(null)});t.exports=function(t){c[u][t]=!0}},(t,r,a)=>{var o,i=a(42),l=a(65),u=a(57),c=a(48),d=a(67),h=a(39),p=a(47),m=p("IE_PROTO"),EmptyConstructor=function(){},scriptTag=function(t){return"<script>"+t+"</"+"script>"},NullProtoObjectViaActiveX=function(t){t.write(scriptTag(""));t.close();var r=t.parentWindow.Object;t=null;return r},NullProtoObject=function(){try{o=new ActiveXObject("htmlfile")}catch(t){}NullProtoObject="undefined"!=typeof document?document.domain&&o?NullProtoObjectViaActiveX(o):function(){var t,r=h("iframe");r.style.display="none";d.appendChild(r);r.src=String("javascript:");(t=r.contentWindow.document).open();t.write(scriptTag("document.F=Object"));t.close();return t.F}():NullProtoObjectViaActiveX(o);for(var t=u.length;t--;)delete NullProtoObject.prototype[u[t]];return NullProtoObject()};c[m]=!0;t.exports=Object.create||function create(t,r){var a;if(null!==t){EmptyConstructor.prototype=i(t);a=new EmptyConstructor;EmptyConstructor.prototype=null;a[m]=t}else a=NullProtoObject();return void 0===r?a:l(a,r)}},(t,r,a)=>{var o=a(12),i=a(41),l=a(42),u=a(66);t.exports=o?Object.defineProperties:function defineProperties(t,r){l(t);for(var a,o=u(r),c=o.length,d=0;c>d;)i.f(t,a=o[d++],r[a]);return t}},(t,r,a)=>{var o=a(52),i=a(57);t.exports=Object.keys||function keys(t){return o(t,i)}},(t,r,a)=>{var o=a(24);t.exports=o("document","documentElement")},t=>{t.exports={}},(t,r,a)=>{"use strict";var o=a(9),i=a(70),l=a(72),u=a(75),c=a(74),d=a(40),h=a(43),p=a(30),m=a(32),y=a(68),v=a(71),g=v.IteratorPrototype,b=v.BUGGY_SAFARI_ITERATORS,_=p("iterator"),S="keys",A="values",C="entries",returnThis=function(){return this};t.exports=function(t,r,a,p,v,k,R){i(a,r,p);var w,P,x,getIterationMethod=function(t){if(t===v&&D)return D;if(!b&&t in O)return O[t];switch(t){case S:return function keys(){return new a(this,t)};case A:return function values(){return new a(this,t)};case C:return function entries(){return new a(this,t)}}return function(){return new a(this)}},T=r+" Iterator",E=!1,O=t.prototype,I=O[_]||O["@@iterator"]||v&&O[v],D=!b&&I||getIterationMethod(v),M="Array"==r&&O.entries||I;if(M&&(w=l(M.call(new t)))!==Object.prototype&&w.next){m||l(w)===g||(u?u(w,g):"function"!=typeof w[_]&&d(w,_,returnThis));c(w,T,!0,!0);m&&(y[T]=returnThis)}if(v==A&&I&&I.name!==A){E=!0;D=function values(){return I.call(this)}}m&&!R||O[_]===D||d(O,_,D);y[r]=D;if(v){P={values:getIterationMethod(A),keys:k?D:getIterationMethod(S),entries:getIterationMethod(C)};if(R)for(x in P)(b||E||!(x in O))&&h(O,x,P[x]);else o({target:r,proto:!0,forced:b||E},P)}return P}},(t,r,a)=>{"use strict";var o=a(71).IteratorPrototype,i=a(64),l=a(15),u=a(74),c=a(68),returnThis=function(){return this};t.exports=function(t,r,a){var d=r+" Iterator";t.prototype=i(o,{next:l(1,a)});u(t,d,!1,!0);c[d]=returnThis;return t}},(t,r,a)=>{"use strict";var o,i,l,u=a(13),c=a(64),d=a(72),h=a(40),p=a(30),m=a(32),y=p("iterator"),v=!1;[].keys&&("next"in(l=[].keys())?(i=d(d(l)))!==Object.prototype&&(o=i):v=!0);null==o||u((function(){var t={};return o[y].call(t)!==t}))?o={}:m&&(o=c(o));"function"!=typeof o[y]&&h(o,y,(function(){return this}));t.exports={IteratorPrototype:o,BUGGY_SAFARI_ITERATORS:v}},(t,r,a)=>{var o=a(35),i=a(36),l=a(47),u=a(73),c=l("IE_PROTO"),d=Object.prototype;t.exports=u?Object.getPrototypeOf:function(t){t=i(t);return o(t,c)?t[c]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?d:null}},(t,r,a)=>{var o=a(13);t.exports=!o((function(){function F(){}F.prototype.constructor=null;return Object.getPrototypeOf(new F)!==F.prototype}))},(t,r,a)=>{var o=a(41).f,i=a(35),l=a(30)("toStringTag");t.exports=function(t,r,a){t&&!i(t=a?t:t.prototype,l)&&o(t,l,{configurable:!0,value:r})}},(t,r,a)=>{var o=a(42),i=a(76);t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,r=!1,a={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(a,[]);r=a instanceof Array}catch(t){}return function setPrototypeOf(a,l){o(a);i(l);r?t.call(a,l):a.__proto__=l;return a}}():void 0)},(t,r,a)=>{var o=a(22);t.exports=function(t){if(!o(t)&&null!==t)throw TypeError("Can't set "+String(t)+" as a prototype");return t}},(t,r,a)=>{var o=a(9),i=a(78),l=a(87);o({target:"Object",stat:!0},{fromEntries:function fromEntries(t){var r={};i(t,(function(t,a){l(r,t,a)}),{AS_ENTRIES:!0});return r}})},(t,r,a)=>{var o=a(42),i=a(79),l=a(54),u=a(80),c=a(82),d=a(83),h=a(86),Result=function(t,r){this.stopped=t;this.result=r};t.exports=function(t,r,a){var p,m,y,v,g,b,_,S=a&&a.that,A=!(!a||!a.AS_ENTRIES),C=!(!a||!a.IS_ITERATOR),k=!(!a||!a.INTERRUPTED),R=u(r,S,1+A+k),stop=function(t){p&&h(p,"normal",t);return new Result(!0,t)},callFn=function(t){if(A){o(t);return k?R(t[0],t[1],stop):R(t[0],t[1])}return k?R(t,stop):R(t)};if(C)p=t;else{if("function"!=typeof(m=d(t)))throw TypeError("Target is not iterable");if(i(m)){for(y=0,v=l(t.length);v>y;y++)if((g=callFn(t[y]))&&g instanceof Result)return g;return new Result(!1)}p=c(t,m)}b=p.next;for(;!(_=b.call(p)).done;){try{g=callFn(_.value)}catch(t){h(p,"throw",t)}if("object"==typeof g&&g&&g instanceof Result)return g}return new Result(!1)}},(t,r,a)=>{var o=a(30),i=a(68),l=o("iterator"),u=Array.prototype;t.exports=function(t){return void 0!==t&&(i.Array===t||u[l]===t)}},(t,r,a)=>{var o=a(81);t.exports=function(t,r,a){o(t);if(void 0===r)return t;switch(a){case 0:return function(){return t.call(r)};case 1:return function(a){return t.call(r,a)};case 2:return function(a,o){return t.call(r,a,o)};case 3:return function(a,o,i){return t.call(r,a,o,i)}}return function(){return t.apply(r,arguments)}}},t=>{t.exports=function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not a function");return t}},(t,r,a)=>{var o=a(42),i=a(83);t.exports=function(t,r){var a=arguments.length<2?i(t):r;if("function"!=typeof a)throw TypeError(String(t)+" is not iterable");return o(a.call(t))}},(t,r,a)=>{var o=a(84),i=a(68),l=a(30)("iterator");t.exports=function(t){if(null!=t)return t[l]||t["@@iterator"]||i[o(t)]}},(t,r,a)=>{var o=a(85),i=a(18),l=a(30)("toStringTag"),u="Arguments"==i(function(){return arguments}());t.exports=o?i:function(t){var r,a,o;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(a=function(t,r){try{return t[r]}catch(t){}}(r=Object(t),l))?a:u?i(r):"Object"==(o=i(r))&&"function"==typeof r.callee?"Arguments":o}},(t,r,a)=>{var o={};o[a(30)("toStringTag")]="z";t.exports="[object z]"===String(o)},(t,r,a)=>{var o=a(42);t.exports=function(t,r,a){var i,l;o(t);try{if(void 0===(i=t.return)){if("throw"===r)throw a;return a}i=i.call(t)}catch(t){l=!0;i=t}if("throw"===r)throw a;if(l)throw i;o(i);return a}},(t,r,a)=>{"use strict";var o=a(20),i=a(41),l=a(15);t.exports=function(t,r,a){var u=o(r);u in t?i.f(t,u,l(0,a)):t[u]=a}},(t,r,a)=>{var o=a(10);t.exports=o},(t,r,a)=>{a(90);a(62);a(92);a(94);a(112);a(113);a(114);a(115);var o=a(88);t.exports=o.Promise},(t,r,a)=>{"use strict";var o=a(9),i=a(72),l=a(75),u=a(64),c=a(40),d=a(15),h=a(78),p=a(91),m=function AggregateError(t,r){var a=this;if(!(a instanceof m))return new m(t,r);l&&(a=l(new Error(void 0),i(a)));void 0!==r&&c(a,"message",p(r));var o=[];h(t,o.push,{that:o});c(a,"errors",o);return a};m.prototype=u(Error.prototype,{constructor:d(5,m),message:d(5,""),name:d(5,"AggregateError")});o({global:!0},{AggregateError:m})},(t,r,a)=>{var o=a(23);t.exports=function(t){if(o(t))throw TypeError("Cannot convert a Symbol value to a string");return String(t)}},(t,r,a)=>{var o=a(85),i=a(43),l=a(93);o||i(Object.prototype,"toString",l,{unsafe:!0})},(t,r,a)=>{"use strict";var o=a(85),i=a(84);t.exports=o?{}.toString:function toString(){return"[object "+i(this)+"]"}},(t,r,a)=>{"use strict";var o,i,l,u,c=a(9),d=a(32),h=a(10),p=a(24),m=a(95),y=a(43),v=a(96),g=a(75),b=a(74),_=a(97),S=a(22),A=a(81),C=a(98),k=a(44),R=a(78),w=a(99),P=a(100),x=a(101).set,T=a(104),E=a(107),O=a(109),I=a(108),D=a(110),M=a(45),j=a(59),L=a(30),W=a(111),B=a(103),N=a(27),q=L("species"),U="Promise",G=M.get,H=M.set,z=M.getterFor(U),V=m&&m.prototype,Y=m,X=V,Q=h.TypeError,K=h.document,J=h.process,$=I.f,Z=$,ee=!!(K&&K.createEvent&&h.dispatchEvent),te="function"==typeof PromiseRejectionEvent,re="unhandledrejection",ne=!1,ae=j(U,(function(){var t=k(Y),r=t!==String(Y);if(!r&&66===N)return!0;if(d&&!X.finally)return!0;if(N>=51&&/native code/.test(t))return!1;var a=new Y((function(t){t(1)})),FakePromise=function(t){t((function(){}),(function(){}))};(a.constructor={})[q]=FakePromise;return!(ne=a.then((function(){}))instanceof FakePromise)||!r&&W&&!te})),oe=ae||!w((function(t){Y.all(t).catch((function(){}))})),isThenable=function(t){var r;return!(!S(t)||"function"!=typeof(r=t.then))&&r},notify=function(t,r){if(!t.notified){t.notified=!0;var a=t.reactions;T((function(){for(var o=t.value,i=1==t.state,l=0;a.length>l;){var u,c,d,h=a[l++],p=i?h.ok:h.fail,m=h.resolve,y=h.reject,v=h.domain;try{if(p){if(!i){2===t.rejection&&onHandleUnhandled(t);t.rejection=1}if(!0===p)u=o;else{v&&v.enter();u=p(o);if(v){v.exit();d=!0}}u===h.promise?y(Q("Promise-chain cycle")):(c=isThenable(u))?c.call(u,m,y):m(u)}else y(o)}catch(t){v&&!d&&v.exit();y(t)}}t.reactions=[];t.notified=!1;r&&!t.rejection&&onUnhandled(t)}))}},dispatchEvent=function(t,r,a){var o,i;if(ee){(o=K.createEvent("Event")).promise=r;o.reason=a;o.initEvent(t,!1,!0);h.dispatchEvent(o)}else o={promise:r,reason:a};!te&&(i=h["on"+t])?i(o):t===re&&O("Unhandled promise rejection",a)},onUnhandled=function(t){x.call(h,(function(){var r,a=t.facade,o=t.value;if(isUnhandled(t)){r=D((function(){B?J.emit("unhandledRejection",o,a):dispatchEvent(re,a,o)}));t.rejection=B||isUnhandled(t)?2:1;if(r.error)throw r.value}}))},isUnhandled=function(t){return 1!==t.rejection&&!t.parent},onHandleUnhandled=function(t){x.call(h,(function(){var r=t.facade;B?J.emit("rejectionHandled",r):dispatchEvent("rejectionhandled",r,t.value)}))},bind=function(t,r,a){return function(o){t(r,o,a)}},internalReject=function(t,r,a){if(!t.done){t.done=!0;a&&(t=a);t.value=r;t.state=2;notify(t,!0)}},internalResolve=function(t,r,a){if(!t.done){t.done=!0;a&&(t=a);try{if(t.facade===r)throw Q("Promise can't be resolved itself");var o=isThenable(r);if(o)T((function(){var a={done:!1};try{o.call(r,bind(internalResolve,a,t),bind(internalReject,a,t))}catch(r){internalReject(a,r,t)}}));else{t.value=r;t.state=1;notify(t,!1)}}catch(r){internalReject({done:!1},r,t)}}};if(ae){X=(Y=function Promise(t){C(this,Y,U);A(t);o.call(this);var r=G(this);try{t(bind(internalResolve,r),bind(internalReject,r))}catch(t){internalReject(r,t)}}).prototype;(o=function Promise(t){H(this,{type:U,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=v(X,{then:function then(t,r){var a=z(this),o=$(P(this,Y));o.ok="function"!=typeof t||t;o.fail="function"==typeof r&&r;o.domain=B?J.domain:void 0;a.parent=!0;a.reactions.push(o);0!=a.state&&notify(a,!1);return o.promise},catch:function(t){return this.then(void 0,t)}});i=function(){var t=new o,r=G(t);this.promise=t;this.resolve=bind(internalResolve,r);this.reject=bind(internalReject,r)};I.f=$=function(t){return t===Y||t===l?new i(t):Z(t)};if(!d&&"function"==typeof m&&V!==Object.prototype){u=V.then;if(!ne){y(V,"then",(function then(t,r){var a=this;return new Y((function(t,r){u.call(a,t,r)})).then(t,r)}),{unsafe:!0});y(V,"catch",X.catch,{unsafe:!0})}try{delete V.constructor}catch(t){}g&&g(V,X)}}c({global:!0,wrap:!0,forced:ae},{Promise:Y});b(Y,U,!1,!0);_(U);l=p(U);c({target:U,stat:!0,forced:ae},{reject:function reject(t){var r=$(this);r.reject.call(void 0,t);return r.promise}});c({target:U,stat:!0,forced:d||ae},{resolve:function resolve(t){return E(d&&this===l?Y:this,t)}});c({target:U,stat:!0,forced:oe},{all:function all(t){var r=this,a=$(r),o=a.resolve,i=a.reject,l=D((function(){var a=A(r.resolve),l=[],u=0,c=1;R(t,(function(t){var d=u++,h=!1;l.push(void 0);c++;a.call(r,t).then((function(t){if(!h){h=!0;l[d]=t;--c||o(l)}}),i)}));--c||o(l)}));l.error&&i(l.value);return a.promise},race:function race(t){var r=this,a=$(r),o=a.reject,i=D((function(){var i=A(r.resolve);R(t,(function(t){i.call(r,t).then(a.resolve,o)}))}));i.error&&o(i.value);return a.promise}})},(t,r,a)=>{var o=a(10);t.exports=o.Promise},(t,r,a)=>{var o=a(43);t.exports=function(t,r,a){for(var i in r)o(t,i,r[i],a);return t}},(t,r,a)=>{"use strict";var o=a(24),i=a(41),l=a(30),u=a(12),c=l("species");t.exports=function(t){var r=o(t),a=i.f;u&&r&&!r[c]&&a(r,c,{configurable:!0,get:function(){return this}})}},t=>{t.exports=function(t,r,a){if(!(t instanceof r))throw TypeError("Incorrect "+(a?a+" ":"")+"invocation");return t}},(t,r,a)=>{var o=a(30)("iterator"),i=!1;try{var l=0,u={next:function(){return{done:!!l++}},return:function(){i=!0}};u[o]=function(){return this};Array.from(u,(function(){throw 2}))}catch(t){}t.exports=function(t,r){if(!r&&!i)return!1;var a=!1;try{var l={};l[o]=function(){return{next:function(){return{done:a=!0}}}};t(l)}catch(t){}return a}},(t,r,a)=>{var o=a(42),i=a(81),l=a(30)("species");t.exports=function(t,r){var a,u=o(t).constructor;return void 0===u||null==(a=o(u)[l])?r:i(a)}},(t,r,a)=>{var o,i,l,u,c=a(10),d=a(13),h=a(80),p=a(67),m=a(39),y=a(102),v=a(103),g=c.setImmediate,b=c.clearImmediate,_=c.process,S=c.MessageChannel,A=c.Dispatch,C=0,k={},R="onreadystatechange";try{o=c.location}catch(t){}var run=function(t){if(k.hasOwnProperty(t)){var r=k[t];delete k[t];r()}},runner=function(t){return function(){run(t)}},listener=function(t){run(t.data)},post=function(t){c.postMessage(String(t),o.protocol+"//"+o.host)};if(!g||!b){g=function setImmediate(t){for(var r=[],a=arguments.length,o=1;a>o;)r.push(arguments[o++]);k[++C]=function(){("function"==typeof t?t:Function(t)).apply(void 0,r)};i(C);return C};b=function clearImmediate(t){delete k[t]};if(v)i=function(t){_.nextTick(runner(t))};else if(A&&A.now)i=function(t){A.now(runner(t))};else if(S&&!y){u=(l=new S).port2;l.port1.onmessage=listener;i=h(u.postMessage,u,1)}else if(c.addEventListener&&"function"==typeof postMessage&&!c.importScripts&&o&&"file:"!==o.protocol&&!d(post)){i=post;c.addEventListener("message",listener,!1)}else i=R in m("script")?function(t){p.appendChild(m("script")).onreadystatechange=function(){p.removeChild(this);run(t)}}:function(t){setTimeout(runner(t),0)}}t.exports={set:g,clear:b}},(t,r,a)=>{var o=a(28);t.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(o)},(t,r,a)=>{var o=a(18),i=a(10);t.exports="process"==o(i.process)},(t,r,a)=>{var o,i,l,u,c,d,h,p,m=a(10),y=a(11).f,v=a(101).set,g=a(102),b=a(105),_=a(106),S=a(103),A=m.MutationObserver||m.WebKitMutationObserver,C=m.document,k=m.process,R=m.Promise,w=y(m,"queueMicrotask"),P=w&&w.value;if(!P){o=function(){var t,r;S&&(t=k.domain)&&t.exit();for(;i;){r=i.fn;i=i.next;try{r()}catch(t){i?u():l=void 0;throw t}}l=void 0;t&&t.enter()};if(g||S||_||!A||!C)if(!b&&R&&R.resolve){(h=R.resolve(void 0)).constructor=R;p=h.then;u=function(){p.call(h,o)}}else u=S?function(){k.nextTick(o)}:function(){v.call(m,o)};else{c=!0;d=C.createTextNode("");new A(o).observe(d,{characterData:!0});u=function(){d.data=c=!c}}}t.exports=P||function(t){var r={fn:t,next:void 0};l&&(l.next=r);if(!i){i=r;u()}l=r}},(t,r,a)=>{var o=a(28),i=a(10);t.exports=/ipad|iphone|ipod/i.test(o)&&void 0!==i.Pebble},(t,r,a)=>{var o=a(28);t.exports=/web0s(?!.*chrome)/i.test(o)},(t,r,a)=>{var o=a(42),i=a(22),l=a(108);t.exports=function(t,r){o(t);if(i(r)&&r.constructor===t)return r;var a=l.f(t);(0,a.resolve)(r);return a.promise}},(t,r,a)=>{"use strict";var o=a(81),PromiseCapability=function(t){var r,a;this.promise=new t((function(t,o){if(void 0!==r||void 0!==a)throw TypeError("Bad Promise constructor");r=t;a=o}));this.resolve=o(r);this.reject=o(a)};t.exports.f=function(t){return new PromiseCapability(t)}},(t,r,a)=>{var o=a(10);t.exports=function(t,r){var a=o.console;a&&a.error&&(1===arguments.length?a.error(t):a.error(t,r))}},t=>{t.exports=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}}},t=>{t.exports="object"==typeof window},(t,r,a)=>{"use strict";var o=a(9),i=a(81),l=a(108),u=a(110),c=a(78);o({target:"Promise",stat:!0},{allSettled:function allSettled(t){var r=this,a=l.f(r),o=a.resolve,d=a.reject,h=u((function(){var a=i(r.resolve),l=[],u=0,d=1;c(t,(function(t){var i=u++,c=!1;l.push(void 0);d++;a.call(r,t).then((function(t){if(!c){c=!0;l[i]={status:"fulfilled",value:t};--d||o(l)}}),(function(t){if(!c){c=!0;l[i]={status:"rejected",reason:t};--d||o(l)}}))}));--d||o(l)}));h.error&&d(h.value);return a.promise}})},(t,r,a)=>{"use strict";var o=a(9),i=a(81),l=a(24),u=a(108),c=a(110),d=a(78),h="No one promise resolved";o({target:"Promise",stat:!0},{any:function any(t){var r=this,a=u.f(r),o=a.resolve,p=a.reject,m=c((function(){var a=i(r.resolve),u=[],c=0,m=1,y=!1;d(t,(function(t){var i=c++,d=!1;u.push(void 0);m++;a.call(r,t).then((function(t){if(!d&&!y){y=!0;o(t)}}),(function(t){if(!d&&!y){d=!0;u[i]=t;--m||p(new(l("AggregateError"))(u,h))}}))}));--m||p(new(l("AggregateError"))(u,h))}));m.error&&p(m.value);return a.promise}})},(t,r,a)=>{"use strict";var o=a(9),i=a(32),l=a(95),u=a(13),c=a(24),d=a(100),h=a(107),p=a(43);o({target:"Promise",proto:!0,real:!0,forced:!!l&&u((function(){l.prototype.finally.call({then:function(){}},(function(){}))}))},{finally:function(t){var r=d(this,c("Promise")),a="function"==typeof t;return this.then(a?function(a){return h(r,t()).then((function(){return a}))}:t,a?function(a){return h(r,t()).then((function(){throw a}))}:t)}});if(!i&&"function"==typeof l){var m=c("Promise").prototype.finally;l.prototype.finally!==m&&p(l.prototype,"finally",m,{unsafe:!0})}},(t,r,a)=>{"use strict";var o=a(116).charAt,i=a(91),l=a(45),u=a(69),c="String Iterator",d=l.set,h=l.getterFor(c);u(String,"String",(function(t){d(this,{type:c,string:i(t),index:0})}),(function next(){var t,r=h(this),a=r.string,i=r.index;if(i>=a.length)return{value:void 0,done:!0};t=o(a,i);r.index+=t.length;return{value:t,done:!1}}))},(t,r,a)=>{var o=a(55),i=a(91),l=a(19),createMethod=function(t){return function(r,a){var u,c,d=i(l(r)),h=o(a),p=d.length;return h<0||h>=p?t?"":void 0:(u=d.charCodeAt(h))<55296||u>56319||h+1===p||(c=d.charCodeAt(h+1))<56320||c>57343?t?d.charAt(h):u:t?d.slice(h,h+2):c-56320+(u-55296<<10)+65536}};t.exports={codeAt:createMethod(!1),charAt:createMethod(!0)}},function(t,r){a=function(t){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?Symbol:function(t){return"Symbol("+t+")"};function noop(){}var a=function getGlobals(){return"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:void 0}();function typeIsObject(t){return"object"==typeof t&&null!==t||"function"==typeof t}var o=noop,i=Promise,l=Promise.prototype.then,u=Promise.resolve.bind(i),c=Promise.reject.bind(i);function newPromise(t){return new i(t)}function promiseResolvedWith(t){return u(t)}function promiseRejectedWith(t){return c(t)}function PerformPromiseThen(t,r,a){return l.call(t,r,a)}function uponPromise(t,r,a){PerformPromiseThen(PerformPromiseThen(t,r,a),void 0,o)}function uponFulfillment(t,r){uponPromise(t,r)}function uponRejection(t,r){uponPromise(t,void 0,r)}function transformPromiseWith(t,r,a){return PerformPromiseThen(t,r,a)}function setPromiseIsHandledToTrue(t){PerformPromiseThen(t,void 0,o)}var d=function(){var t=a&&a.queueMicrotask;if("function"==typeof t)return t;var r=promiseResolvedWith(void 0);return function(t){return PerformPromiseThen(r,t)}}();function reflectCall(t,r,a){if("function"!=typeof t)throw new TypeError("Argument is not a function");return Function.prototype.apply.call(t,r,a)}function promiseCall(t,r,a){try{return promiseResolvedWith(reflectCall(t,r,a))}catch(t){return promiseRejectedWith(t)}}var h=function(){function SimpleQueue(){this._cursor=0;this._size=0;this._front={_elements:[],_next:void 0};this._back=this._front;this._cursor=0;this._size=0}Object.defineProperty(SimpleQueue.prototype,"length",{get:function(){return this._size},enumerable:!1,configurable:!0});SimpleQueue.prototype.push=function(t){var r=this._back,a=r;16383===r._elements.length&&(a={_elements:[],_next:void 0});r._elements.push(t);if(a!==r){this._back=a;r._next=a}++this._size};SimpleQueue.prototype.shift=function(){var t=this._front,r=t,a=this._cursor,o=a+1,i=t._elements,l=i[a];if(16384===o){r=t._next;o=0}--this._size;this._cursor=o;t!==r&&(this._front=r);i[a]=void 0;return l};SimpleQueue.prototype.forEach=function(t){for(var r=this._cursor,a=this._front,o=a._elements;r!==o.length||void 0!==a._next;){if(r===o.length){r=0;if(0===(o=(a=a._next)._elements).length)break}t(o[r]);++r}};SimpleQueue.prototype.peek=function(){var t=this._front,r=this._cursor;return t._elements[r]};return SimpleQueue}();function ReadableStreamReaderGenericInitialize(t,r){t._ownerReadableStream=r;r._reader=t;"readable"===r._state?defaultReaderClosedPromiseInitialize(t):"closed"===r._state?function defaultReaderClosedPromiseInitializeAsResolved(t){defaultReaderClosedPromiseInitialize(t);defaultReaderClosedPromiseResolve(t)}(t):defaultReaderClosedPromiseInitializeAsRejected(t,r._storedError)}function ReadableStreamReaderGenericCancel(t,r){return ReadableStreamCancel(t._ownerReadableStream,r)}function ReadableStreamReaderGenericRelease(t){"readable"===t._ownerReadableStream._state?defaultReaderClosedPromiseReject(t,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")):function defaultReaderClosedPromiseResetToRejected(t,r){defaultReaderClosedPromiseInitializeAsRejected(t,r)}(t,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness"));t._ownerReadableStream._reader=void 0;t._ownerReadableStream=void 0}function readerLockException(t){return new TypeError("Cannot "+t+" a stream using a released reader")}function defaultReaderClosedPromiseInitialize(t){t._closedPromise=newPromise((function(r,a){t._closedPromise_resolve=r;t._closedPromise_reject=a}))}function defaultReaderClosedPromiseInitializeAsRejected(t,r){defaultReaderClosedPromiseInitialize(t);defaultReaderClosedPromiseReject(t,r)}function defaultReaderClosedPromiseReject(t,r){if(void 0!==t._closedPromise_reject){setPromiseIsHandledToTrue(t._closedPromise);t._closedPromise_reject(r);t._closedPromise_resolve=void 0;t._closedPromise_reject=void 0}}function defaultReaderClosedPromiseResolve(t){if(void 0!==t._closedPromise_resolve){t._closedPromise_resolve(void 0);t._closedPromise_resolve=void 0;t._closedPromise_reject=void 0}}var p=r("[[AbortSteps]]"),m=r("[[ErrorSteps]]"),y=r("[[CancelSteps]]"),v=r("[[PullSteps]]"),g=Number.isFinite||function(t){return"number"==typeof t&&isFinite(t)},b=Math.trunc||function(t){return t<0?Math.ceil(t):Math.floor(t)};function assertDictionary(t,r){if(void 0!==t&&!function isDictionary(t){return"object"==typeof t||"function"==typeof t}(t))throw new TypeError(r+" is not an object.")}function assertFunction(t,r){if("function"!=typeof t)throw new TypeError(r+" is not a function.")}function assertObject(t,r){if(!function isObject(t){return"object"==typeof t&&null!==t||"function"==typeof t}(t))throw new TypeError(r+" is not an object.")}function assertRequiredArgument(t,r,a){if(void 0===t)throw new TypeError("Parameter "+r+" is required in '"+a+"'.")}function assertRequiredField(t,r,a){if(void 0===t)throw new TypeError(r+" is required in '"+a+"'.")}function convertUnrestrictedDouble(t){return Number(t)}function censorNegativeZero(t){return 0===t?0:t}function convertUnsignedLongLongWithEnforceRange(t,r){var a=Number.MAX_SAFE_INTEGER,o=Number(t);o=censorNegativeZero(o);if(!g(o))throw new TypeError(r+" is not a finite number");if((o=function integerPart(t){return censorNegativeZero(b(t))}(o))<0||o>a)throw new TypeError(r+" is outside the accepted range of 0 to "+a+", inclusive");return g(o)&&0!==o?o:0}function assertReadableStream(t,r){if(!IsReadableStream(t))throw new TypeError(r+" is not a ReadableStream.")}function AcquireReadableStreamDefaultReader(t){return new A(t)}function ReadableStreamAddReadRequest(t,r){t._reader._readRequests.push(r)}function ReadableStreamFulfillReadRequest(t,r,a){var o=t._reader._readRequests.shift();a?o._closeSteps():o._chunkSteps(r)}function ReadableStreamGetNumReadRequests(t){return t._reader._readRequests.length}function ReadableStreamHasDefaultReader(t){var r=t._reader;return void 0!==r&&!!IsReadableStreamDefaultReader(r)}var _,S,A=function(){function ReadableStreamDefaultReader(t){assertRequiredArgument(t,1,"ReadableStreamDefaultReader");assertReadableStream(t,"First parameter");if(IsReadableStreamLocked(t))throw new TypeError("This stream has already been locked for exclusive reading by another reader");ReadableStreamReaderGenericInitialize(this,t);this._readRequests=new h}Object.defineProperty(ReadableStreamDefaultReader.prototype,"closed",{get:function(){return IsReadableStreamDefaultReader(this)?this._closedPromise:promiseRejectedWith(defaultReaderBrandCheckException("closed"))},enumerable:!1,configurable:!0});ReadableStreamDefaultReader.prototype.cancel=function(t){void 0===t&&(t=void 0);return IsReadableStreamDefaultReader(this)?void 0===this._ownerReadableStream?promiseRejectedWith(readerLockException("cancel")):ReadableStreamReaderGenericCancel(this,t):promiseRejectedWith(defaultReaderBrandCheckException("cancel"))};ReadableStreamDefaultReader.prototype.read=function(){if(!IsReadableStreamDefaultReader(this))return promiseRejectedWith(defaultReaderBrandCheckException("read"));if(void 0===this._ownerReadableStream)return promiseRejectedWith(readerLockException("read from"));var t,r,a=newPromise((function(a,o){t=a;r=o}));ReadableStreamDefaultReaderRead(this,{_chunkSteps:function(r){return t({value:r,done:!1})},_closeSteps:function(){return t({value:void 0,done:!0})},_errorSteps:function(t){return r(t)}});return a};ReadableStreamDefaultReader.prototype.releaseLock=function(){if(!IsReadableStreamDefaultReader(this))throw defaultReaderBrandCheckException("releaseLock");if(void 0!==this._ownerReadableStream){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)}};return ReadableStreamDefaultReader}();Object.defineProperties(A.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(A.prototype,r.toStringTag,{value:"ReadableStreamDefaultReader",configurable:!0});function IsReadableStreamDefaultReader(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_readRequests")&&t instanceof A}function ReadableStreamDefaultReaderRead(t,r){var a=t._ownerReadableStream;a._disturbed=!0;"closed"===a._state?r._closeSteps():"errored"===a._state?r._errorSteps(a._storedError):a._readableStreamController[v](r)}function defaultReaderBrandCheckException(t){return new TypeError("ReadableStreamDefaultReader.prototype."+t+" can only be used on a ReadableStreamDefaultReader")}if("symbol"==typeof r.asyncIterator){S=((_={})[r.asyncIterator]=function(){return this},_);Object.defineProperty(S,r.asyncIterator,{enumerable:!1})}var C=function(){function ReadableStreamAsyncIteratorImpl(t,r){this._ongoingPromise=void 0;this._isFinished=!1;this._reader=t;this._preventCancel=r}ReadableStreamAsyncIteratorImpl.prototype.next=function(){var t=this,nextSteps=function(){return t._nextSteps()};this._ongoingPromise=this._ongoingPromise?transformPromiseWith(this._ongoingPromise,nextSteps,nextSteps):nextSteps();return this._ongoingPromise};ReadableStreamAsyncIteratorImpl.prototype.return=function(t){var r=this,returnSteps=function(){return r._returnSteps(t)};return this._ongoingPromise?transformPromiseWith(this._ongoingPromise,returnSteps,returnSteps):returnSteps()};ReadableStreamAsyncIteratorImpl.prototype._nextSteps=function(){var t=this;if(this._isFinished)return Promise.resolve({value:void 0,done:!0});var r,a,o=this._reader;if(void 0===o._ownerReadableStream)return promiseRejectedWith(readerLockException("iterate"));var i=newPromise((function(t,o){r=t;a=o}));ReadableStreamDefaultReaderRead(o,{_chunkSteps:function(a){t._ongoingPromise=void 0;d((function(){return r({value:a,done:!1})}))},_closeSteps:function(){t._ongoingPromise=void 0;t._isFinished=!0;ReadableStreamReaderGenericRelease(o);r({value:void 0,done:!0})},_errorSteps:function(r){t._ongoingPromise=void 0;t._isFinished=!0;ReadableStreamReaderGenericRelease(o);a(r)}});return i};ReadableStreamAsyncIteratorImpl.prototype._returnSteps=function(t){if(this._isFinished)return Promise.resolve({value:t,done:!0});this._isFinished=!0;var r=this._reader;if(void 0===r._ownerReadableStream)return promiseRejectedWith(readerLockException("finish iterating"));if(!this._preventCancel){var a=ReadableStreamReaderGenericCancel(r,t);ReadableStreamReaderGenericRelease(r);return transformPromiseWith(a,(function(){return{value:t,done:!0}}))}ReadableStreamReaderGenericRelease(r);return promiseResolvedWith({value:t,done:!0})};return ReadableStreamAsyncIteratorImpl}(),k={next:function(){return IsReadableStreamAsyncIterator(this)?this._asyncIteratorImpl.next():promiseRejectedWith(streamAsyncIteratorBrandCheckException("next"))},return:function(t){return IsReadableStreamAsyncIterator(this)?this._asyncIteratorImpl.return(t):promiseRejectedWith(streamAsyncIteratorBrandCheckException("return"))}};void 0!==S&&Object.setPrototypeOf(k,S);function IsReadableStreamAsyncIterator(t){if(!typeIsObject(t))return!1;if(!Object.prototype.hasOwnProperty.call(t,"_asyncIteratorImpl"))return!1;try{return t._asyncIteratorImpl instanceof C}catch(t){return!1}}function streamAsyncIteratorBrandCheckException(t){return new TypeError("ReadableStreamAsyncIterator."+t+" can only be used on a ReadableSteamAsyncIterator")}var R=Number.isNaN||function(t){return t!=t};function CreateArrayFromList(t){return t.slice()}function CopyDataBlockBytes(t,r,a,o,i){new Uint8Array(t).set(new Uint8Array(a,o,i),r)}function ArrayBufferSlice(t,r,a){if(t.slice)return t.slice(r,a);var o=a-r,i=new ArrayBuffer(o);CopyDataBlockBytes(i,0,t,r,o);return i}function CloneAsUint8Array(t){var r=ArrayBufferSlice(t.buffer,t.byteOffset,t.byteOffset+t.byteLength);return new Uint8Array(r)}function DequeueValue(t){var r=t._queue.shift();t._queueTotalSize-=r.size;t._queueTotalSize<0&&(t._queueTotalSize=0);return r.value}function EnqueueValueWithSize(t,r,a){if(!function IsNonNegativeNumber(t){return!("number"!=typeof t||R(t)||t<0)}(a)||a===1/0)throw new RangeError("Size must be a finite, non-NaN, non-negative number.");t._queue.push({value:r,size:a});t._queueTotalSize+=a}function ResetQueue(t){t._queue=new h;t._queueTotalSize=0}var w=function(){function ReadableStreamBYOBRequest(){throw new TypeError("Illegal constructor")}Object.defineProperty(ReadableStreamBYOBRequest.prototype,"view",{get:function(){if(!IsReadableStreamBYOBRequest(this))throw byobRequestBrandCheckException("view");return this._view},enumerable:!1,configurable:!0});ReadableStreamBYOBRequest.prototype.respond=function(t){if(!IsReadableStreamBYOBRequest(this))throw byobRequestBrandCheckException("respond");assertRequiredArgument(t,1,"respond");t=convertUnsignedLongLongWithEnforceRange(t,"First parameter");if(void 0===this._associatedReadableByteStreamController)throw new TypeError("This BYOB request has been invalidated");this._view.buffer;ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController,t)};ReadableStreamBYOBRequest.prototype.respondWithNewView=function(t){if(!IsReadableStreamBYOBRequest(this))throw byobRequestBrandCheckException("respondWithNewView");assertRequiredArgument(t,1,"respondWithNewView");if(!ArrayBuffer.isView(t))throw new TypeError("You can only respond with array buffer views");if(void 0===this._associatedReadableByteStreamController)throw new TypeError("This BYOB request has been invalidated");t.buffer;ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController,t)};return ReadableStreamBYOBRequest}();Object.defineProperties(w.prototype,{respond:{enumerable:!0},respondWithNewView:{enumerable:!0},view:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(w.prototype,r.toStringTag,{value:"ReadableStreamBYOBRequest",configurable:!0});var P=function(){function ReadableByteStreamController(){throw new TypeError("Illegal constructor")}Object.defineProperty(ReadableByteStreamController.prototype,"byobRequest",{get:function(){if(!IsReadableByteStreamController(this))throw byteStreamControllerBrandCheckException("byobRequest");return ReadableByteStreamControllerGetBYOBRequest(this)},enumerable:!1,configurable:!0});Object.defineProperty(ReadableByteStreamController.prototype,"desiredSize",{get:function(){if(!IsReadableByteStreamController(this))throw byteStreamControllerBrandCheckException("desiredSize");return ReadableByteStreamControllerGetDesiredSize(this)},enumerable:!1,configurable:!0});ReadableByteStreamController.prototype.close=function(){if(!IsReadableByteStreamController(this))throw byteStreamControllerBrandCheckException("close");if(this._closeRequested)throw new TypeError("The stream has already been closed; do not close it again!");var t=this._controlledReadableByteStream._state;if("readable"!==t)throw new TypeError("The stream (in "+t+" state) is not in the readable state and cannot be closed");ReadableByteStreamControllerClose(this)};ReadableByteStreamController.prototype.enqueue=function(t){if(!IsReadableByteStreamController(this))throw byteStreamControllerBrandCheckException("enqueue");assertRequiredArgument(t,1,"enqueue");if(!ArrayBuffer.isView(t))throw new TypeError("chunk must be an array buffer view");if(0===t.byteLength)throw new TypeError("chunk must have non-zero byteLength");if(0===t.buffer.byteLength)throw new TypeError("chunk's buffer must have non-zero byteLength");if(this._closeRequested)throw new TypeError("stream is closed or draining");var r=this._controlledReadableByteStream._state;if("readable"!==r)throw new TypeError("The stream (in "+r+" state) is not in the readable state and cannot be enqueued to");ReadableByteStreamControllerEnqueue(this,t)};ReadableByteStreamController.prototype.error=function(t){void 0===t&&(t=void 0);if(!IsReadableByteStreamController(this))throw byteStreamControllerBrandCheckException("error");ReadableByteStreamControllerError(this,t)};ReadableByteStreamController.prototype[y]=function(t){ReadableByteStreamControllerClearPendingPullIntos(this);ResetQueue(this);var r=this._cancelAlgorithm(t);ReadableByteStreamControllerClearAlgorithms(this);return r};ReadableByteStreamController.prototype[v]=function(t){var r=this._controlledReadableByteStream;if(this._queueTotalSize>0){var a=this._queue.shift();this._queueTotalSize-=a.byteLength;ReadableByteStreamControllerHandleQueueDrain(this);var o=new Uint8Array(a.buffer,a.byteOffset,a.byteLength);t._chunkSteps(o)}else{var i=this._autoAllocateChunkSize;if(void 0!==i){var l=void 0;try{l=new ArrayBuffer(i)}catch(r){t._errorSteps(r);return}var u={buffer:l,bufferByteLength:i,byteOffset:0,byteLength:i,bytesFilled:0,elementSize:1,viewConstructor:Uint8Array,readerType:"default"};this._pendingPullIntos.push(u)}ReadableStreamAddReadRequest(r,t);ReadableByteStreamControllerCallPullIfNeeded(this)}};return ReadableByteStreamController}();Object.defineProperties(P.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},byobRequest:{enumerable:!0},desiredSize:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(P.prototype,r.toStringTag,{value:"ReadableByteStreamController",configurable:!0});function IsReadableByteStreamController(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_controlledReadableByteStream")&&t instanceof P}function IsReadableStreamBYOBRequest(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_associatedReadableByteStreamController")&&t instanceof w}function ReadableByteStreamControllerCallPullIfNeeded(t){var r=function ReadableByteStreamControllerShouldCallPull(t){var r=t._controlledReadableByteStream;return"readable"===r._state&&(!t._closeRequested&&(!!t._started&&(!!(ReadableStreamHasDefaultReader(r)&&ReadableStreamGetNumReadRequests(r)>0)||(!!(ReadableStreamHasBYOBReader(r)&&ReadableStreamGetNumReadIntoRequests(r)>0)||ReadableByteStreamControllerGetDesiredSize(t)>0))))}(t);if(r)if(t._pulling)t._pullAgain=!0;else{t._pulling=!0;uponPromise(t._pullAlgorithm(),(function(){t._pulling=!1;if(t._pullAgain){t._pullAgain=!1;ReadableByteStreamControllerCallPullIfNeeded(t)}}),(function(r){ReadableByteStreamControllerError(t,r)}))}}function ReadableByteStreamControllerClearPendingPullIntos(t){ReadableByteStreamControllerInvalidateBYOBRequest(t);t._pendingPullIntos=new h}function ReadableByteStreamControllerCommitPullIntoDescriptor(t,r){var a=!1;"closed"===t._state&&(a=!0);var o=ReadableByteStreamControllerConvertPullIntoDescriptor(r);"default"===r.readerType?ReadableStreamFulfillReadRequest(t,o,a):function ReadableStreamFulfillReadIntoRequest(t,r,a){var o=t._reader._readIntoRequests.shift();a?o._closeSteps(r):o._chunkSteps(r)}(t,o,a)}function ReadableByteStreamControllerConvertPullIntoDescriptor(t){var r=t.bytesFilled,a=t.elementSize;return new t.viewConstructor(t.buffer,t.byteOffset,r/a)}function ReadableByteStreamControllerEnqueueChunkToQueue(t,r,a,o){t._queue.push({buffer:r,byteOffset:a,byteLength:o});t._queueTotalSize+=o}function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(t,r){var a=r.elementSize,o=r.bytesFilled-r.bytesFilled%a,i=Math.min(t._queueTotalSize,r.byteLength-r.bytesFilled),l=r.bytesFilled+i,u=l-l%a,c=i,d=!1;if(u>o){c=u-r.bytesFilled;d=!0}for(var h=t._queue;c>0;){var p=h.peek(),m=Math.min(c,p.byteLength),y=r.byteOffset+r.bytesFilled;CopyDataBlockBytes(r.buffer,y,p.buffer,p.byteOffset,m);if(p.byteLength===m)h.shift();else{p.byteOffset+=m;p.byteLength-=m}t._queueTotalSize-=m;ReadableByteStreamControllerFillHeadPullIntoDescriptor(0,m,r);c-=m}return d}function ReadableByteStreamControllerFillHeadPullIntoDescriptor(t,r,a){a.bytesFilled+=r}function ReadableByteStreamControllerHandleQueueDrain(t){if(0===t._queueTotalSize&&t._closeRequested){ReadableByteStreamControllerClearAlgorithms(t);ReadableStreamClose(t._controlledReadableByteStream)}else ReadableByteStreamControllerCallPullIfNeeded(t)}function ReadableByteStreamControllerInvalidateBYOBRequest(t){if(null!==t._byobRequest){t._byobRequest._associatedReadableByteStreamController=void 0;t._byobRequest._view=null;t._byobRequest=null}}function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(t){for(;t._pendingPullIntos.length>0;){if(0===t._queueTotalSize)return;var r=t._pendingPullIntos.peek();if(ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(t,r)){ReadableByteStreamControllerShiftPendingPullInto(t);ReadableByteStreamControllerCommitPullIntoDescriptor(t._controlledReadableByteStream,r)}}}function ReadableByteStreamControllerRespondInternal(t,r){var a=t._pendingPullIntos.peek();ReadableByteStreamControllerInvalidateBYOBRequest(t);"closed"===t._controlledReadableByteStream._state?function ReadableByteStreamControllerRespondInClosedState(t,r){var a=t._controlledReadableByteStream;if(ReadableStreamHasBYOBReader(a))for(;ReadableStreamGetNumReadIntoRequests(a)>0;)ReadableByteStreamControllerCommitPullIntoDescriptor(a,ReadableByteStreamControllerShiftPendingPullInto(t))}(t):function ReadableByteStreamControllerRespondInReadableState(t,r,a){ReadableByteStreamControllerFillHeadPullIntoDescriptor(0,r,a);if(!(a.bytesFilled<a.elementSize)){ReadableByteStreamControllerShiftPendingPullInto(t);var o=a.bytesFilled%a.elementSize;if(o>0){var i=a.byteOffset+a.bytesFilled,l=ArrayBufferSlice(a.buffer,i-o,i);ReadableByteStreamControllerEnqueueChunkToQueue(t,l,0,l.byteLength)}a.bytesFilled-=o;ReadableByteStreamControllerCommitPullIntoDescriptor(t._controlledReadableByteStream,a);ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(t)}}(t,r,a);ReadableByteStreamControllerCallPullIfNeeded(t)}function ReadableByteStreamControllerShiftPendingPullInto(t){return t._pendingPullIntos.shift()}function ReadableByteStreamControllerClearAlgorithms(t){t._pullAlgorithm=void 0;t._cancelAlgorithm=void 0}function ReadableByteStreamControllerClose(t){var r=t._controlledReadableByteStream;if(!t._closeRequested&&"readable"===r._state)if(t._queueTotalSize>0)t._closeRequested=!0;else{if(t._pendingPullIntos.length>0&&t._pendingPullIntos.peek().bytesFilled>0){var a=new TypeError("Insufficient bytes to fill elements in the given buffer");ReadableByteStreamControllerError(t,a);throw a}ReadableByteStreamControllerClearAlgorithms(t);ReadableStreamClose(r)}}function ReadableByteStreamControllerEnqueue(t,r){var a=t._controlledReadableByteStream;if(!t._closeRequested&&"readable"===a._state){var o=r.buffer,i=r.byteOffset,l=r.byteLength,u=o;if(t._pendingPullIntos.length>0){var c=t._pendingPullIntos.peek();c.buffer;c.buffer=c.buffer}ReadableByteStreamControllerInvalidateBYOBRequest(t);if(ReadableStreamHasDefaultReader(a))0===ReadableStreamGetNumReadRequests(a)?ReadableByteStreamControllerEnqueueChunkToQueue(t,u,i,l):ReadableStreamFulfillReadRequest(a,new Uint8Array(u,i,l),!1);else if(ReadableStreamHasBYOBReader(a)){ReadableByteStreamControllerEnqueueChunkToQueue(t,u,i,l);ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(t)}else ReadableByteStreamControllerEnqueueChunkToQueue(t,u,i,l);ReadableByteStreamControllerCallPullIfNeeded(t)}}function ReadableByteStreamControllerError(t,r){var a=t._controlledReadableByteStream;if("readable"===a._state){ReadableByteStreamControllerClearPendingPullIntos(t);ResetQueue(t);ReadableByteStreamControllerClearAlgorithms(t);ReadableStreamError(a,r)}}function ReadableByteStreamControllerGetBYOBRequest(t){if(null===t._byobRequest&&t._pendingPullIntos.length>0){var r=t._pendingPullIntos.peek(),a=new Uint8Array(r.buffer,r.byteOffset+r.bytesFilled,r.byteLength-r.bytesFilled),o=Object.create(w.prototype);!function SetUpReadableStreamBYOBRequest(t,r,a){t._associatedReadableByteStreamController=r;t._view=a}(o,t,a);t._byobRequest=o}return t._byobRequest}function ReadableByteStreamControllerGetDesiredSize(t){var r=t._controlledReadableByteStream._state;return"errored"===r?null:"closed"===r?0:t._strategyHWM-t._queueTotalSize}function ReadableByteStreamControllerRespond(t,r){var a=t._pendingPullIntos.peek();if("closed"===t._controlledReadableByteStream._state){if(0!==r)throw new TypeError("bytesWritten must be 0 when calling respond() on a closed stream")}else{if(0===r)throw new TypeError("bytesWritten must be greater than 0 when calling respond() on a readable stream");if(a.bytesFilled+r>a.byteLength)throw new RangeError("bytesWritten out of range")}a.buffer=a.buffer;ReadableByteStreamControllerRespondInternal(t,r)}function ReadableByteStreamControllerRespondWithNewView(t,r){var a=t._pendingPullIntos.peek();if("closed"===t._controlledReadableByteStream._state){if(0!==r.byteLength)throw new TypeError("The view's length must be 0 when calling respondWithNewView() on a closed stream")}else if(0===r.byteLength)throw new TypeError("The view's length must be greater than 0 when calling respondWithNewView() on a readable stream");if(a.byteOffset+a.bytesFilled!==r.byteOffset)throw new RangeError("The region specified by view does not match byobRequest");if(a.bufferByteLength!==r.buffer.byteLength)throw new RangeError("The buffer of view has different capacity than byobRequest");if(a.bytesFilled+r.byteLength>a.byteLength)throw new RangeError("The region specified by view is larger than byobRequest");a.buffer=r.buffer;ReadableByteStreamControllerRespondInternal(t,r.byteLength)}function SetUpReadableByteStreamController(t,r,a,o,i,l,u){r._controlledReadableByteStream=t;r._pullAgain=!1;r._pulling=!1;r._byobRequest=null;r._queue=r._queueTotalSize=void 0;ResetQueue(r);r._closeRequested=!1;r._started=!1;r._strategyHWM=l;r._pullAlgorithm=o;r._cancelAlgorithm=i;r._autoAllocateChunkSize=u;r._pendingPullIntos=new h;t._readableStreamController=r;uponPromise(promiseResolvedWith(a()),(function(){r._started=!0;ReadableByteStreamControllerCallPullIfNeeded(r)}),(function(t){ReadableByteStreamControllerError(r,t)}))}function byobRequestBrandCheckException(t){return new TypeError("ReadableStreamBYOBRequest.prototype."+t+" can only be used on a ReadableStreamBYOBRequest")}function byteStreamControllerBrandCheckException(t){return new TypeError("ReadableByteStreamController.prototype."+t+" can only be used on a ReadableByteStreamController")}function AcquireReadableStreamBYOBReader(t){return new x(t)}function ReadableStreamAddReadIntoRequest(t,r){t._reader._readIntoRequests.push(r)}function ReadableStreamGetNumReadIntoRequests(t){return t._reader._readIntoRequests.length}function ReadableStreamHasBYOBReader(t){var r=t._reader;return void 0!==r&&!!IsReadableStreamBYOBReader(r)}var x=function(){function ReadableStreamBYOBReader(t){assertRequiredArgument(t,1,"ReadableStreamBYOBReader");assertReadableStream(t,"First parameter");if(IsReadableStreamLocked(t))throw new TypeError("This stream has already been locked for exclusive reading by another reader");if(!IsReadableByteStreamController(t._readableStreamController))throw new TypeError("Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte source");ReadableStreamReaderGenericInitialize(this,t);this._readIntoRequests=new h}Object.defineProperty(ReadableStreamBYOBReader.prototype,"closed",{get:function(){return IsReadableStreamBYOBReader(this)?this._closedPromise:promiseRejectedWith(byobReaderBrandCheckException("closed"))},enumerable:!1,configurable:!0});ReadableStreamBYOBReader.prototype.cancel=function(t){void 0===t&&(t=void 0);return IsReadableStreamBYOBReader(this)?void 0===this._ownerReadableStream?promiseRejectedWith(readerLockException("cancel")):ReadableStreamReaderGenericCancel(this,t):promiseRejectedWith(byobReaderBrandCheckException("cancel"))};ReadableStreamBYOBReader.prototype.read=function(t){if(!IsReadableStreamBYOBReader(this))return promiseRejectedWith(byobReaderBrandCheckException("read"));if(!ArrayBuffer.isView(t))return promiseRejectedWith(new TypeError("view must be an array buffer view"));if(0===t.byteLength)return promiseRejectedWith(new TypeError("view must have non-zero byteLength"));if(0===t.buffer.byteLength)return promiseRejectedWith(new TypeError("view's buffer must have non-zero byteLength"));t.buffer;if(void 0===this._ownerReadableStream)return promiseRejectedWith(readerLockException("read from"));var r,a,o=newPromise((function(t,o){r=t;a=o}));ReadableStreamBYOBReaderRead(this,t,{_chunkSteps:function(t){return r({value:t,done:!1})},_closeSteps:function(t){return r({value:t,done:!0})},_errorSteps:function(t){return a(t)}});return o};ReadableStreamBYOBReader.prototype.releaseLock=function(){if(!IsReadableStreamBYOBReader(this))throw byobReaderBrandCheckException("releaseLock");if(void 0!==this._ownerReadableStream){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)}};return ReadableStreamBYOBReader}();Object.defineProperties(x.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(x.prototype,r.toStringTag,{value:"ReadableStreamBYOBReader",configurable:!0});function IsReadableStreamBYOBReader(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_readIntoRequests")&&t instanceof x}function ReadableStreamBYOBReaderRead(t,r,a){var o=t._ownerReadableStream;o._disturbed=!0;"errored"===o._state?a._errorSteps(o._storedError):function ReadableByteStreamControllerPullInto(t,r,a){var o=t._controlledReadableByteStream,i=1;r.constructor!==DataView&&(i=r.constructor.BYTES_PER_ELEMENT);var l=r.constructor,u=r.buffer,c={buffer:u,bufferByteLength:u.byteLength,byteOffset:r.byteOffset,byteLength:r.byteLength,bytesFilled:0,elementSize:i,viewConstructor:l,readerType:"byob"};if(t._pendingPullIntos.length>0){t._pendingPullIntos.push(c);ReadableStreamAddReadIntoRequest(o,a)}else if("closed"!==o._state){if(t._queueTotalSize>0){if(ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(t,c)){var d=ReadableByteStreamControllerConvertPullIntoDescriptor(c);ReadableByteStreamControllerHandleQueueDrain(t);a._chunkSteps(d);return}if(t._closeRequested){var h=new TypeError("Insufficient bytes to fill elements in the given buffer");ReadableByteStreamControllerError(t,h);a._errorSteps(h);return}}t._pendingPullIntos.push(c);ReadableStreamAddReadIntoRequest(o,a);ReadableByteStreamControllerCallPullIfNeeded(t)}else{var p=new l(c.buffer,c.byteOffset,0);a._closeSteps(p)}}(o._readableStreamController,r,a)}function byobReaderBrandCheckException(t){return new TypeError("ReadableStreamBYOBReader.prototype."+t+" can only be used on a ReadableStreamBYOBReader")}function ExtractHighWaterMark(t,r){var a=t.highWaterMark;if(void 0===a)return r;if(R(a)||a<0)throw new RangeError("Invalid highWaterMark");return a}function ExtractSizeAlgorithm(t){var r=t.size;return r||function(){return 1}}function convertQueuingStrategy(t,r){assertDictionary(t,r);var a=null==t?void 0:t.highWaterMark,o=null==t?void 0:t.size;return{highWaterMark:void 0===a?void 0:convertUnrestrictedDouble(a),size:void 0===o?void 0:convertQueuingStrategySize(o,r+" has member 'size' that")}}function convertQueuingStrategySize(t,r){assertFunction(t,r);return function(r){return convertUnrestrictedDouble(t(r))}}function convertUnderlyingSinkAbortCallback(t,r,a){assertFunction(t,a);return function(a){return promiseCall(t,r,[a])}}function convertUnderlyingSinkCloseCallback(t,r,a){assertFunction(t,a);return function(){return promiseCall(t,r,[])}}function convertUnderlyingSinkStartCallback(t,r,a){assertFunction(t,a);return function(a){return reflectCall(t,r,[a])}}function convertUnderlyingSinkWriteCallback(t,r,a){assertFunction(t,a);return function(a,o){return promiseCall(t,r,[a,o])}}function assertWritableStream(t,r){if(!IsWritableStream(t))throw new TypeError(r+" is not a WritableStream.")}var T="function"==typeof AbortController,E=function(){function WritableStream(t,r){void 0===t&&(t={});void 0===r&&(r={});void 0===t?t=null:assertObject(t,"First parameter");var a=convertQueuingStrategy(r,"Second parameter"),o=function convertUnderlyingSink(t,r){assertDictionary(t,r);var a=null==t?void 0:t.abort,o=null==t?void 0:t.close,i=null==t?void 0:t.start,l=null==t?void 0:t.type,u=null==t?void 0:t.write;return{abort:void 0===a?void 0:convertUnderlyingSinkAbortCallback(a,t,r+" has member 'abort' that"),close:void 0===o?void 0:convertUnderlyingSinkCloseCallback(o,t,r+" has member 'close' that"),start:void 0===i?void 0:convertUnderlyingSinkStartCallback(i,t,r+" has member 'start' that"),write:void 0===u?void 0:convertUnderlyingSinkWriteCallback(u,t,r+" has member 'write' that"),type:l}}(t,"First parameter");InitializeWritableStream(this);if(void 0!==o.type)throw new RangeError("Invalid type is specified");var i=ExtractSizeAlgorithm(a);!function SetUpWritableStreamDefaultControllerFromUnderlyingSink(t,r,a,o){var i=Object.create(D.prototype),startAlgorithm=function(){},writeAlgorithm=function(){return promiseResolvedWith(void 0)},closeAlgorithm=function(){return promiseResolvedWith(void 0)},abortAlgorithm=function(){return promiseResolvedWith(void 0)};void 0!==r.start&&(startAlgorithm=function(){return r.start(i)});void 0!==r.write&&(writeAlgorithm=function(t){return r.write(t,i)});void 0!==r.close&&(closeAlgorithm=function(){return r.close()});void 0!==r.abort&&(abortAlgorithm=function(t){return r.abort(t)});SetUpWritableStreamDefaultController(t,i,startAlgorithm,writeAlgorithm,closeAlgorithm,abortAlgorithm,a,o)}(this,o,ExtractHighWaterMark(a,1),i)}Object.defineProperty(WritableStream.prototype,"locked",{get:function(){if(!IsWritableStream(this))throw streamBrandCheckException$2("locked");return IsWritableStreamLocked(this)},enumerable:!1,configurable:!0});WritableStream.prototype.abort=function(t){void 0===t&&(t=void 0);return IsWritableStream(this)?IsWritableStreamLocked(this)?promiseRejectedWith(new TypeError("Cannot abort a stream that already has a writer")):WritableStreamAbort(this,t):promiseRejectedWith(streamBrandCheckException$2("abort"))};WritableStream.prototype.close=function(){return IsWritableStream(this)?IsWritableStreamLocked(this)?promiseRejectedWith(new TypeError("Cannot close a stream that already has a writer")):WritableStreamCloseQueuedOrInFlight(this)?promiseRejectedWith(new TypeError("Cannot close an already-closing stream")):WritableStreamClose(this):promiseRejectedWith(streamBrandCheckException$2("close"))};WritableStream.prototype.getWriter=function(){if(!IsWritableStream(this))throw streamBrandCheckException$2("getWriter");return AcquireWritableStreamDefaultWriter(this)};return WritableStream}();Object.defineProperties(E.prototype,{abort:{enumerable:!0},close:{enumerable:!0},getWriter:{enumerable:!0},locked:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(E.prototype,r.toStringTag,{value:"WritableStream",configurable:!0});function AcquireWritableStreamDefaultWriter(t){return new O(t)}function InitializeWritableStream(t){t._state="writable";t._storedError=void 0;t._writer=void 0;t._writableStreamController=void 0;t._writeRequests=new h;t._inFlightWriteRequest=void 0;t._closeRequest=void 0;t._inFlightCloseRequest=void 0;t._pendingAbortRequest=void 0;t._backpressure=!1}function IsWritableStream(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_writableStreamController")&&t instanceof E}function IsWritableStreamLocked(t){return void 0!==t._writer}function WritableStreamAbort(t,r){var a;if("closed"===t._state||"errored"===t._state)return promiseResolvedWith(void 0);t._writableStreamController._abortReason=r;null===(a=t._writableStreamController._abortController)||void 0===a||a.abort();var o=t._state;if("closed"===o||"errored"===o)return promiseResolvedWith(void 0);if(void 0!==t._pendingAbortRequest)return t._pendingAbortRequest._promise;var i=!1;if("erroring"===o){i=!0;r=void 0}var l=newPromise((function(a,o){t._pendingAbortRequest={_promise:void 0,_resolve:a,_reject:o,_reason:r,_wasAlreadyErroring:i}}));t._pendingAbortRequest._promise=l;i||WritableStreamStartErroring(t,r);return l}function WritableStreamClose(t){var r=t._state;if("closed"===r||"errored"===r)return promiseRejectedWith(new TypeError("The stream (in "+r+" state) is not in the writable state and cannot be closed"));var a=newPromise((function(r,a){var o={_resolve:r,_reject:a};t._closeRequest=o})),o=t._writer;void 0!==o&&t._backpressure&&"writable"===r&&defaultWriterReadyPromiseResolve(o);!function WritableStreamDefaultControllerClose(t){EnqueueValueWithSize(t,I,0);WritableStreamDefaultControllerAdvanceQueueIfNeeded(t)}(t._writableStreamController);return a}function WritableStreamDealWithRejection(t,r){"writable"!==t._state?WritableStreamFinishErroring(t):WritableStreamStartErroring(t,r)}function WritableStreamStartErroring(t,r){var a=t._writableStreamController;t._state="erroring";t._storedError=r;var o=t._writer;void 0!==o&&WritableStreamDefaultWriterEnsureReadyPromiseRejected(o,r);!function WritableStreamHasOperationMarkedInFlight(t){return void 0!==t._inFlightWriteRequest||void 0!==t._inFlightCloseRequest}(t)&&a._started&&WritableStreamFinishErroring(t)}function WritableStreamFinishErroring(t){t._state="errored";t._writableStreamController[m]();var r=t._storedError;t._writeRequests.forEach((function(t){t._reject(r)}));t._writeRequests=new h;if(void 0!==t._pendingAbortRequest){var a=t._pendingAbortRequest;t._pendingAbortRequest=void 0;if(a._wasAlreadyErroring){a._reject(r);WritableStreamRejectCloseAndClosedPromiseIfNeeded(t)}else uponPromise(t._writableStreamController[p](a._reason),(function(){a._resolve();WritableStreamRejectCloseAndClosedPromiseIfNeeded(t)}),(function(r){a._reject(r);WritableStreamRejectCloseAndClosedPromiseIfNeeded(t)}))}else WritableStreamRejectCloseAndClosedPromiseIfNeeded(t)}function WritableStreamCloseQueuedOrInFlight(t){return void 0!==t._closeRequest||void 0!==t._inFlightCloseRequest}function WritableStreamRejectCloseAndClosedPromiseIfNeeded(t){if(void 0!==t._closeRequest){t._closeRequest._reject(t._storedError);t._closeRequest=void 0}var r=t._writer;void 0!==r&&defaultWriterClosedPromiseReject(r,t._storedError)}function WritableStreamUpdateBackpressure(t,r){var a=t._writer;void 0!==a&&r!==t._backpressure&&(r?function defaultWriterReadyPromiseReset(t){defaultWriterReadyPromiseInitialize(t)}(a):defaultWriterReadyPromiseResolve(a));t._backpressure=r}var O=function(){function WritableStreamDefaultWriter(t){assertRequiredArgument(t,1,"WritableStreamDefaultWriter");assertWritableStream(t,"First parameter");if(IsWritableStreamLocked(t))throw new TypeError("This stream has already been locked for exclusive writing by another writer");this._ownerWritableStream=t;t._writer=this;var r=t._state;if("writable"===r){!WritableStreamCloseQueuedOrInFlight(t)&&t._backpressure?defaultWriterReadyPromiseInitialize(this):defaultWriterReadyPromiseInitializeAsResolved(this);defaultWriterClosedPromiseInitialize(this)}else if("erroring"===r){defaultWriterReadyPromiseInitializeAsRejected(this,t._storedError);defaultWriterClosedPromiseInitialize(this)}else if("closed"===r){defaultWriterReadyPromiseInitializeAsResolved(this);!function defaultWriterClosedPromiseInitializeAsResolved(t){defaultWriterClosedPromiseInitialize(t);defaultWriterClosedPromiseResolve(t)}(this)}else{var a=t._storedError;defaultWriterReadyPromiseInitializeAsRejected(this,a);defaultWriterClosedPromiseInitializeAsRejected(this,a)}}Object.defineProperty(WritableStreamDefaultWriter.prototype,"closed",{get:function(){return IsWritableStreamDefaultWriter(this)?this._closedPromise:promiseRejectedWith(defaultWriterBrandCheckException("closed"))},enumerable:!1,configurable:!0});Object.defineProperty(WritableStreamDefaultWriter.prototype,"desiredSize",{get:function(){if(!IsWritableStreamDefaultWriter(this))throw defaultWriterBrandCheckException("desiredSize");if(void 0===this._ownerWritableStream)throw defaultWriterLockException("desiredSize");return function WritableStreamDefaultWriterGetDesiredSize(t){var r=t._ownerWritableStream,a=r._state;return"errored"===a||"erroring"===a?null:"closed"===a?0:WritableStreamDefaultControllerGetDesiredSize(r._writableStreamController)}(this)},enumerable:!1,configurable:!0});Object.defineProperty(WritableStreamDefaultWriter.prototype,"ready",{get:function(){return IsWritableStreamDefaultWriter(this)?this._readyPromise:promiseRejectedWith(defaultWriterBrandCheckException("ready"))},enumerable:!1,configurable:!0});WritableStreamDefaultWriter.prototype.abort=function(t){void 0===t&&(t=void 0);return IsWritableStreamDefaultWriter(this)?void 0===this._ownerWritableStream?promiseRejectedWith(defaultWriterLockException("abort")):function WritableStreamDefaultWriterAbort(t,r){return WritableStreamAbort(t._ownerWritableStream,r)}(this,t):promiseRejectedWith(defaultWriterBrandCheckException("abort"))};WritableStreamDefaultWriter.prototype.close=function(){if(!IsWritableStreamDefaultWriter(this))return promiseRejectedWith(defaultWriterBrandCheckException("close"));var t=this._ownerWritableStream;return void 0===t?promiseRejectedWith(defaultWriterLockException("close")):WritableStreamCloseQueuedOrInFlight(t)?promiseRejectedWith(new TypeError("Cannot close an already-closing stream")):WritableStreamDefaultWriterClose(this)};WritableStreamDefaultWriter.prototype.releaseLock=function(){if(!IsWritableStreamDefaultWriter(this))throw defaultWriterBrandCheckException("releaseLock");void 0!==this._ownerWritableStream&&WritableStreamDefaultWriterRelease(this)};WritableStreamDefaultWriter.prototype.write=function(t){void 0===t&&(t=void 0);return IsWritableStreamDefaultWriter(this)?void 0===this._ownerWritableStream?promiseRejectedWith(defaultWriterLockException("write to")):WritableStreamDefaultWriterWrite(this,t):promiseRejectedWith(defaultWriterBrandCheckException("write"))};return WritableStreamDefaultWriter}();Object.defineProperties(O.prototype,{abort:{enumerable:!0},close:{enumerable:!0},releaseLock:{enumerable:!0},write:{enumerable:!0},closed:{enumerable:!0},desiredSize:{enumerable:!0},ready:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(O.prototype,r.toStringTag,{value:"WritableStreamDefaultWriter",configurable:!0});function IsWritableStreamDefaultWriter(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_ownerWritableStream")&&t instanceof O}function WritableStreamDefaultWriterClose(t){return WritableStreamClose(t._ownerWritableStream)}function WritableStreamDefaultWriterEnsureClosedPromiseRejected(t,r){"pending"===t._closedPromiseState?defaultWriterClosedPromiseReject(t,r):function defaultWriterClosedPromiseResetToRejected(t,r){defaultWriterClosedPromiseInitializeAsRejected(t,r)}(t,r)}function WritableStreamDefaultWriterEnsureReadyPromiseRejected(t,r){"pending"===t._readyPromiseState?defaultWriterReadyPromiseReject(t,r):function defaultWriterReadyPromiseResetToRejected(t,r){defaultWriterReadyPromiseInitializeAsRejected(t,r)}(t,r)}function WritableStreamDefaultWriterRelease(t){var r=t._ownerWritableStream,a=new TypeError("Writer was released and can no longer be used to monitor the stream's closedness");WritableStreamDefaultWriterEnsureReadyPromiseRejected(t,a);WritableStreamDefaultWriterEnsureClosedPromiseRejected(t,a);r._writer=void 0;t._ownerWritableStream=void 0}function WritableStreamDefaultWriterWrite(t,r){var a=t._ownerWritableStream,o=a._writableStreamController,i=function WritableStreamDefaultControllerGetChunkSize(t,r){try{return t._strategySizeAlgorithm(r)}catch(r){WritableStreamDefaultControllerErrorIfNeeded(t,r);return 1}}(o,r);if(a!==t._ownerWritableStream)return promiseRejectedWith(defaultWriterLockException("write to"));var l=a._state;if("errored"===l)return promiseRejectedWith(a._storedError);if(WritableStreamCloseQueuedOrInFlight(a)||"closed"===l)return promiseRejectedWith(new TypeError("The stream is closing or closed and cannot be written to"));if("erroring"===l)return promiseRejectedWith(a._storedError);var u=function WritableStreamAddWriteRequest(t){return newPromise((function(r,a){var o={_resolve:r,_reject:a};t._writeRequests.push(o)}))}(a);!function WritableStreamDefaultControllerWrite(t,r,a){try{EnqueueValueWithSize(t,r,a)}catch(r){WritableStreamDefaultControllerErrorIfNeeded(t,r);return}var o=t._controlledWritableStream;WritableStreamCloseQueuedOrInFlight(o)||"writable"!==o._state||WritableStreamUpdateBackpressure(o,WritableStreamDefaultControllerGetBackpressure(t));WritableStreamDefaultControllerAdvanceQueueIfNeeded(t)}(o,r,i);return u}var I={},D=function(){function WritableStreamDefaultController(){throw new TypeError("Illegal constructor")}Object.defineProperty(WritableStreamDefaultController.prototype,"abortReason",{get:function(){if(!IsWritableStreamDefaultController(this))throw defaultControllerBrandCheckException$2("abortReason");return this._abortReason},enumerable:!1,configurable:!0});Object.defineProperty(WritableStreamDefaultController.prototype,"signal",{get:function(){if(!IsWritableStreamDefaultController(this))throw defaultControllerBrandCheckException$2("signal");if(void 0===this._abortController)throw new TypeError("WritableStreamDefaultController.prototype.signal is not supported");return this._abortController.signal},enumerable:!1,configurable:!0});WritableStreamDefaultController.prototype.error=function(t){void 0===t&&(t=void 0);if(!IsWritableStreamDefaultController(this))throw defaultControllerBrandCheckException$2("error");"writable"===this._controlledWritableStream._state&&WritableStreamDefaultControllerError(this,t)};WritableStreamDefaultController.prototype[p]=function(t){var r=this._abortAlgorithm(t);WritableStreamDefaultControllerClearAlgorithms(this);return r};WritableStreamDefaultController.prototype[m]=function(){ResetQueue(this)};return WritableStreamDefaultController}();Object.defineProperties(D.prototype,{error:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(D.prototype,r.toStringTag,{value:"WritableStreamDefaultController",configurable:!0});function IsWritableStreamDefaultController(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_controlledWritableStream")&&t instanceof D}function SetUpWritableStreamDefaultController(t,r,a,o,i,l,u,c){r._controlledWritableStream=t;t._writableStreamController=r;r._queue=void 0;r._queueTotalSize=void 0;ResetQueue(r);r._abortReason=void 0;r._abortController=function createAbortController(){if(T)return new AbortController}();r._started=!1;r._strategySizeAlgorithm=c;r._strategyHWM=u;r._writeAlgorithm=o;r._closeAlgorithm=i;r._abortAlgorithm=l;var d=WritableStreamDefaultControllerGetBackpressure(r);WritableStreamUpdateBackpressure(t,d);uponPromise(promiseResolvedWith(a()),(function(){r._started=!0;WritableStreamDefaultControllerAdvanceQueueIfNeeded(r)}),(function(a){r._started=!0;WritableStreamDealWithRejection(t,a)}))}function WritableStreamDefaultControllerClearAlgorithms(t){t._writeAlgorithm=void 0;t._closeAlgorithm=void 0;t._abortAlgorithm=void 0;t._strategySizeAlgorithm=void 0}function WritableStreamDefaultControllerGetDesiredSize(t){return t._strategyHWM-t._queueTotalSize}function WritableStreamDefaultControllerAdvanceQueueIfNeeded(t){var r=t._controlledWritableStream;if(t._started&&void 0===r._inFlightWriteRequest)if("erroring"!==r._state){if(0!==t._queue.length){var a=function PeekQueueValue(t){return t._queue.peek().value}(t);a===I?function WritableStreamDefaultControllerProcessClose(t){var r=t._controlledWritableStream;!function WritableStreamMarkCloseRequestInFlight(t){t._inFlightCloseRequest=t._closeRequest;t._closeRequest=void 0}(r);DequeueValue(t);var a=t._closeAlgorithm();WritableStreamDefaultControllerClearAlgorithms(t);uponPromise(a,(function(){!function WritableStreamFinishInFlightClose(t){t._inFlightCloseRequest._resolve(void 0);t._inFlightCloseRequest=void 0;if("erroring"===t._state){t._storedError=void 0;if(void 0!==t._pendingAbortRequest){t._pendingAbortRequest._resolve();t._pendingAbortRequest=void 0}}t._state="closed";var r=t._writer;void 0!==r&&defaultWriterClosedPromiseResolve(r)}(r)}),(function(t){!function WritableStreamFinishInFlightCloseWithError(t,r){t._inFlightCloseRequest._reject(r);t._inFlightCloseRequest=void 0;if(void 0!==t._pendingAbortRequest){t._pendingAbortRequest._reject(r);t._pendingAbortRequest=void 0}WritableStreamDealWithRejection(t,r)}(r,t)}))}(t):function WritableStreamDefaultControllerProcessWrite(t,r){var a=t._controlledWritableStream;!function WritableStreamMarkFirstWriteRequestInFlight(t){t._inFlightWriteRequest=t._writeRequests.shift()}(a);uponPromise(t._writeAlgorithm(r),(function(){!function WritableStreamFinishInFlightWrite(t){t._inFlightWriteRequest._resolve(void 0);t._inFlightWriteRequest=void 0}(a);var r=a._state;DequeueValue(t);if(!WritableStreamCloseQueuedOrInFlight(a)&&"writable"===r){var o=WritableStreamDefaultControllerGetBackpressure(t);WritableStreamUpdateBackpressure(a,o)}WritableStreamDefaultControllerAdvanceQueueIfNeeded(t)}),(function(r){"writable"===a._state&&WritableStreamDefaultControllerClearAlgorithms(t);!function WritableStreamFinishInFlightWriteWithError(t,r){t._inFlightWriteRequest._reject(r);t._inFlightWriteRequest=void 0;WritableStreamDealWithRejection(t,r)}(a,r)}))}(t,a)}}else WritableStreamFinishErroring(r)}function WritableStreamDefaultControllerErrorIfNeeded(t,r){"writable"===t._controlledWritableStream._state&&WritableStreamDefaultControllerError(t,r)}function WritableStreamDefaultControllerGetBackpressure(t){return WritableStreamDefaultControllerGetDesiredSize(t)<=0}function WritableStreamDefaultControllerError(t,r){var a=t._controlledWritableStream;WritableStreamDefaultControllerClearAlgorithms(t);WritableStreamStartErroring(a,r)}function streamBrandCheckException$2(t){return new TypeError("WritableStream.prototype."+t+" can only be used on a WritableStream")}function defaultControllerBrandCheckException$2(t){return new TypeError("WritableStreamDefaultController.prototype."+t+" can only be used on a WritableStreamDefaultController")}function defaultWriterBrandCheckException(t){return new TypeError("WritableStreamDefaultWriter.prototype."+t+" can only be used on a WritableStreamDefaultWriter")}function defaultWriterLockException(t){return new TypeError("Cannot "+t+" a stream using a released writer")}function defaultWriterClosedPromiseInitialize(t){t._closedPromise=newPromise((function(r,a){t._closedPromise_resolve=r;t._closedPromise_reject=a;t._closedPromiseState="pending"}))}function defaultWriterClosedPromiseInitializeAsRejected(t,r){defaultWriterClosedPromiseInitialize(t);defaultWriterClosedPromiseReject(t,r)}function defaultWriterClosedPromiseReject(t,r){if(void 0!==t._closedPromise_reject){setPromiseIsHandledToTrue(t._closedPromise);t._closedPromise_reject(r);t._closedPromise_resolve=void 0;t._closedPromise_reject=void 0;t._closedPromiseState="rejected"}}function defaultWriterClosedPromiseResolve(t){if(void 0!==t._closedPromise_resolve){t._closedPromise_resolve(void 0);t._closedPromise_resolve=void 0;t._closedPromise_reject=void 0;t._closedPromiseState="resolved"}}function defaultWriterReadyPromiseInitialize(t){t._readyPromise=newPromise((function(r,a){t._readyPromise_resolve=r;t._readyPromise_reject=a}));t._readyPromiseState="pending"}function defaultWriterReadyPromiseInitializeAsRejected(t,r){defaultWriterReadyPromiseInitialize(t);defaultWriterReadyPromiseReject(t,r)}function defaultWriterReadyPromiseInitializeAsResolved(t){defaultWriterReadyPromiseInitialize(t);defaultWriterReadyPromiseResolve(t)}function defaultWriterReadyPromiseReject(t,r){if(void 0!==t._readyPromise_reject){setPromiseIsHandledToTrue(t._readyPromise);t._readyPromise_reject(r);t._readyPromise_resolve=void 0;t._readyPromise_reject=void 0;t._readyPromiseState="rejected"}}function defaultWriterReadyPromiseResolve(t){if(void 0!==t._readyPromise_resolve){t._readyPromise_resolve(void 0);t._readyPromise_resolve=void 0;t._readyPromise_reject=void 0;t._readyPromiseState="fulfilled"}}var M="undefined"!=typeof DOMException?DOMException:void 0,j=function isDOMExceptionConstructor(t){if("function"!=typeof t&&"object"!=typeof t)return!1;try{new t;return!0}catch(t){return!1}}(M)?M:function createDOMExceptionPolyfill(){var t=function DOMException(t,r){this.message=t||"";this.name=r||"Error";Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)};t.prototype=Object.create(Error.prototype);Object.defineProperty(t.prototype,"constructor",{value:t,writable:!0,configurable:!0});return t}();function ReadableStreamPipeTo(t,r,a,o,i,l){var u=AcquireReadableStreamDefaultReader(t),c=AcquireWritableStreamDefaultWriter(r);t._disturbed=!0;var d=!1,h=promiseResolvedWith(void 0);return newPromise((function(p,m){var y;if(void 0!==l){y=function(){var a=new j("Aborted","AbortError"),l=[];o||l.push((function(){return"writable"===r._state?WritableStreamAbort(r,a):promiseResolvedWith(void 0)}));i||l.push((function(){return"readable"===t._state?ReadableStreamCancel(t,a):promiseResolvedWith(void 0)}));shutdownWithAction((function(){return Promise.all(l.map((function(t){return t()})))}),!0,a)};if(l.aborted){y();return}l.addEventListener("abort",y)}isOrBecomesErrored(t,u._closedPromise,(function(t){o?shutdown(!0,t):shutdownWithAction((function(){return WritableStreamAbort(r,t)}),!0,t)}));isOrBecomesErrored(r,c._closedPromise,(function(r){i?shutdown(!0,r):shutdownWithAction((function(){return ReadableStreamCancel(t,r)}),!0,r)}));!function isOrBecomesClosed(t,r,a){"closed"===t._state?a():uponFulfillment(r,a)}(t,u._closedPromise,(function(){a?shutdown():shutdownWithAction((function(){return function WritableStreamDefaultWriterCloseWithErrorPropagation(t){var r=t._ownerWritableStream,a=r._state;return WritableStreamCloseQueuedOrInFlight(r)||"closed"===a?promiseResolvedWith(void 0):"errored"===a?promiseRejectedWith(r._storedError):WritableStreamDefaultWriterClose(t)}(c)}))}));if(WritableStreamCloseQueuedOrInFlight(r)||"closed"===r._state){var v=new TypeError("the destination writable stream closed before all data could be piped to it");i?shutdown(!0,v):shutdownWithAction((function(){return ReadableStreamCancel(t,v)}),!0,v)}setPromiseIsHandledToTrue(function pipeLoop(){return newPromise((function(t,r){!function next(a){a?t():PerformPromiseThen(function pipeStep(){return d?promiseResolvedWith(!0):PerformPromiseThen(c._readyPromise,(function(){return newPromise((function(t,r){ReadableStreamDefaultReaderRead(u,{_chunkSteps:function(r){h=PerformPromiseThen(WritableStreamDefaultWriterWrite(c,r),void 0,noop);t(!1)},_closeSteps:function(){return t(!0)},_errorSteps:r})}))}))}(),next,r)}(!1)}))}());function waitForWritesToFinish(){var t=h;return PerformPromiseThen(h,(function(){return t!==h?waitForWritesToFinish():void 0}))}function isOrBecomesErrored(t,r,a){"errored"===t._state?a(t._storedError):uponRejection(r,a)}function shutdownWithAction(t,a,o){if(!d){d=!0;"writable"!==r._state||WritableStreamCloseQueuedOrInFlight(r)?doTheRest():uponFulfillment(waitForWritesToFinish(),doTheRest)}function doTheRest(){uponPromise(t(),(function(){return finalize(a,o)}),(function(t){return finalize(!0,t)}))}}function shutdown(t,a){if(!d){d=!0;"writable"!==r._state||WritableStreamCloseQueuedOrInFlight(r)?finalize(t,a):uponFulfillment(waitForWritesToFinish(),(function(){return finalize(t,a)}))}}function finalize(t,r){WritableStreamDefaultWriterRelease(c);ReadableStreamReaderGenericRelease(u);void 0!==l&&l.removeEventListener("abort",y);t?m(r):p(void 0)}}))}var L=function(){function ReadableStreamDefaultController(){throw new TypeError("Illegal constructor")}Object.defineProperty(ReadableStreamDefaultController.prototype,"desiredSize",{get:function(){if(!IsReadableStreamDefaultController(this))throw defaultControllerBrandCheckException$1("desiredSize");return ReadableStreamDefaultControllerGetDesiredSize(this)},enumerable:!1,configurable:!0});ReadableStreamDefaultController.prototype.close=function(){if(!IsReadableStreamDefaultController(this))throw defaultControllerBrandCheckException$1("close");if(!ReadableStreamDefaultControllerCanCloseOrEnqueue(this))throw new TypeError("The stream is not in a state that permits close");ReadableStreamDefaultControllerClose(this)};ReadableStreamDefaultController.prototype.enqueue=function(t){void 0===t&&(t=void 0);if(!IsReadableStreamDefaultController(this))throw defaultControllerBrandCheckException$1("enqueue");if(!ReadableStreamDefaultControllerCanCloseOrEnqueue(this))throw new TypeError("The stream is not in a state that permits enqueue");return ReadableStreamDefaultControllerEnqueue(this,t)};ReadableStreamDefaultController.prototype.error=function(t){void 0===t&&(t=void 0);if(!IsReadableStreamDefaultController(this))throw defaultControllerBrandCheckException$1("error");ReadableStreamDefaultControllerError(this,t)};ReadableStreamDefaultController.prototype[y]=function(t){ResetQueue(this);var r=this._cancelAlgorithm(t);ReadableStreamDefaultControllerClearAlgorithms(this);return r};ReadableStreamDefaultController.prototype[v]=function(t){var r=this._controlledReadableStream;if(this._queue.length>0){var a=DequeueValue(this);if(this._closeRequested&&0===this._queue.length){ReadableStreamDefaultControllerClearAlgorithms(this);ReadableStreamClose(r)}else ReadableStreamDefaultControllerCallPullIfNeeded(this);t._chunkSteps(a)}else{ReadableStreamAddReadRequest(r,t);ReadableStreamDefaultControllerCallPullIfNeeded(this)}};return ReadableStreamDefaultController}();Object.defineProperties(L.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},desiredSize:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(L.prototype,r.toStringTag,{value:"ReadableStreamDefaultController",configurable:!0});function IsReadableStreamDefaultController(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_controlledReadableStream")&&t instanceof L}function ReadableStreamDefaultControllerCallPullIfNeeded(t){if(ReadableStreamDefaultControllerShouldCallPull(t))if(t._pulling)t._pullAgain=!0;else{t._pulling=!0;uponPromise(t._pullAlgorithm(),(function(){t._pulling=!1;if(t._pullAgain){t._pullAgain=!1;ReadableStreamDefaultControllerCallPullIfNeeded(t)}}),(function(r){ReadableStreamDefaultControllerError(t,r)}))}}function ReadableStreamDefaultControllerShouldCallPull(t){var r=t._controlledReadableStream;return!!ReadableStreamDefaultControllerCanCloseOrEnqueue(t)&&!!t._started&&(!!(IsReadableStreamLocked(r)&&ReadableStreamGetNumReadRequests(r)>0)||ReadableStreamDefaultControllerGetDesiredSize(t)>0)}function ReadableStreamDefaultControllerClearAlgorithms(t){t._pullAlgorithm=void 0;t._cancelAlgorithm=void 0;t._strategySizeAlgorithm=void 0}function ReadableStreamDefaultControllerClose(t){if(ReadableStreamDefaultControllerCanCloseOrEnqueue(t)){var r=t._controlledReadableStream;t._closeRequested=!0;if(0===t._queue.length){ReadableStreamDefaultControllerClearAlgorithms(t);ReadableStreamClose(r)}}}function ReadableStreamDefaultControllerEnqueue(t,r){if(ReadableStreamDefaultControllerCanCloseOrEnqueue(t)){var a=t._controlledReadableStream;if(IsReadableStreamLocked(a)&&ReadableStreamGetNumReadRequests(a)>0)ReadableStreamFulfillReadRequest(a,r,!1);else{var o=void 0;try{o=t._strategySizeAlgorithm(r)}catch(r){ReadableStreamDefaultControllerError(t,r);throw r}try{EnqueueValueWithSize(t,r,o)}catch(r){ReadableStreamDefaultControllerError(t,r);throw r}}ReadableStreamDefaultControllerCallPullIfNeeded(t)}}function ReadableStreamDefaultControllerError(t,r){var a=t._controlledReadableStream;if("readable"===a._state){ResetQueue(t);ReadableStreamDefaultControllerClearAlgorithms(t);ReadableStreamError(a,r)}}function ReadableStreamDefaultControllerGetDesiredSize(t){var r=t._controlledReadableStream._state;return"errored"===r?null:"closed"===r?0:t._strategyHWM-t._queueTotalSize}function ReadableStreamDefaultControllerCanCloseOrEnqueue(t){var r=t._controlledReadableStream._state;return!t._closeRequested&&"readable"===r}function SetUpReadableStreamDefaultController(t,r,a,o,i,l,u){r._controlledReadableStream=t;r._queue=void 0;r._queueTotalSize=void 0;ResetQueue(r);r._started=!1;r._closeRequested=!1;r._pullAgain=!1;r._pulling=!1;r._strategySizeAlgorithm=u;r._strategyHWM=l;r._pullAlgorithm=o;r._cancelAlgorithm=i;t._readableStreamController=r;uponPromise(promiseResolvedWith(a()),(function(){r._started=!0;ReadableStreamDefaultControllerCallPullIfNeeded(r)}),(function(t){ReadableStreamDefaultControllerError(r,t)}))}function defaultControllerBrandCheckException$1(t){return new TypeError("ReadableStreamDefaultController.prototype."+t+" can only be used on a ReadableStreamDefaultController")}function ReadableStreamTee(t,r){return IsReadableByteStreamController(t._readableStreamController)?function ReadableByteStreamTee(t){var r,a,o,i,l,u=AcquireReadableStreamDefaultReader(t),c=!1,h=!1,p=!1,m=newPromise((function(t){l=t}));function forwardReaderError(t){uponRejection(t._closedPromise,(function(r){if(t===u){ReadableByteStreamControllerError(o._readableStreamController,r);ReadableByteStreamControllerError(i._readableStreamController,r);h&&p||l(void 0)}}))}function pullWithDefaultReader(){if(IsReadableStreamBYOBReader(u)){ReadableStreamReaderGenericRelease(u);forwardReaderError(u=AcquireReadableStreamDefaultReader(t))}ReadableStreamDefaultReaderRead(u,{_chunkSteps:function(r){d((function(){c=!1;var a=r,u=r;if(!h&&!p)try{u=CloneAsUint8Array(r)}catch(r){ReadableByteStreamControllerError(o._readableStreamController,r);ReadableByteStreamControllerError(i._readableStreamController,r);l(ReadableStreamCancel(t,r));return}h||ReadableByteStreamControllerEnqueue(o._readableStreamController,a);p||ReadableByteStreamControllerEnqueue(i._readableStreamController,u)}))},_closeSteps:function(){c=!1;h||ReadableByteStreamControllerClose(o._readableStreamController);p||ReadableByteStreamControllerClose(i._readableStreamController);o._readableStreamController._pendingPullIntos.length>0&&ReadableByteStreamControllerRespond(o._readableStreamController,0);i._readableStreamController._pendingPullIntos.length>0&&ReadableByteStreamControllerRespond(i._readableStreamController,0);h&&p||l(void 0)},_errorSteps:function(){c=!1}})}function pullWithBYOBReader(r,a){if(IsReadableStreamDefaultReader(u)){ReadableStreamReaderGenericRelease(u);forwardReaderError(u=AcquireReadableStreamBYOBReader(t))}var m=a?i:o,y=a?o:i;ReadableStreamBYOBReaderRead(u,r,{_chunkSteps:function(r){d((function(){c=!1;var o=a?p:h;if(a?h:p)o||ReadableByteStreamControllerRespondWithNewView(m._readableStreamController,r);else{var i=void 0;try{i=CloneAsUint8Array(r)}catch(r){ReadableByteStreamControllerError(m._readableStreamController,r);ReadableByteStreamControllerError(y._readableStreamController,r);l(ReadableStreamCancel(t,r));return}o||ReadableByteStreamControllerRespondWithNewView(m._readableStreamController,r);ReadableByteStreamControllerEnqueue(y._readableStreamController,i)}}))},_closeSteps:function(t){c=!1;var r=a?p:h,o=a?h:p;r||ReadableByteStreamControllerClose(m._readableStreamController);o||ReadableByteStreamControllerClose(y._readableStreamController);if(void 0!==t){r||ReadableByteStreamControllerRespondWithNewView(m._readableStreamController,t);!o&&y._readableStreamController._pendingPullIntos.length>0&&ReadableByteStreamControllerRespond(y._readableStreamController,0)}r&&o||l(void 0)},_errorSteps:function(){c=!1}})}function pull1Algorithm(){if(c)return promiseResolvedWith(void 0);c=!0;var t=ReadableByteStreamControllerGetBYOBRequest(o._readableStreamController);null===t?pullWithDefaultReader():pullWithBYOBReader(t._view,!1);return promiseResolvedWith(void 0)}function pull2Algorithm(){if(c)return promiseResolvedWith(void 0);c=!0;var t=ReadableByteStreamControllerGetBYOBRequest(i._readableStreamController);null===t?pullWithDefaultReader():pullWithBYOBReader(t._view,!0);return promiseResolvedWith(void 0)}function cancel1Algorithm(o){h=!0;r=o;if(p){var i=CreateArrayFromList([r,a]),u=ReadableStreamCancel(t,i);l(u)}return m}function cancel2Algorithm(o){p=!0;a=o;if(h){var i=CreateArrayFromList([r,a]),u=ReadableStreamCancel(t,i);l(u)}return m}function startAlgorithm(){}o=CreateReadableByteStream(startAlgorithm,pull1Algorithm,cancel1Algorithm);i=CreateReadableByteStream(startAlgorithm,pull2Algorithm,cancel2Algorithm);forwardReaderError(u);return[o,i]}(t):function ReadableStreamDefaultTee(t,r){var a,o,i,l,u,c=AcquireReadableStreamDefaultReader(t),h=!1,p=!1,m=!1,y=newPromise((function(t){u=t}));function pullAlgorithm(){if(h)return promiseResolvedWith(void 0);h=!0;ReadableStreamDefaultReaderRead(c,{_chunkSteps:function(t){d((function(){h=!1;var r=t,a=t;p||ReadableStreamDefaultControllerEnqueue(i._readableStreamController,r);m||ReadableStreamDefaultControllerEnqueue(l._readableStreamController,a)}))},_closeSteps:function(){h=!1;p||ReadableStreamDefaultControllerClose(i._readableStreamController);m||ReadableStreamDefaultControllerClose(l._readableStreamController);p&&m||u(void 0)},_errorSteps:function(){h=!1}});return promiseResolvedWith(void 0)}function cancel1Algorithm(r){p=!0;a=r;if(m){var i=CreateArrayFromList([a,o]),l=ReadableStreamCancel(t,i);u(l)}return y}function cancel2Algorithm(r){m=!0;o=r;if(p){var i=CreateArrayFromList([a,o]),l=ReadableStreamCancel(t,i);u(l)}return y}function startAlgorithm(){}i=CreateReadableStream(startAlgorithm,pullAlgorithm,cancel1Algorithm);l=CreateReadableStream(startAlgorithm,pullAlgorithm,cancel2Algorithm);uponRejection(c._closedPromise,(function(t){ReadableStreamDefaultControllerError(i._readableStreamController,t);ReadableStreamDefaultControllerError(l._readableStreamController,t);p&&m||u(void 0)}));return[i,l]}(t)}function convertUnderlyingSourceCancelCallback(t,r,a){assertFunction(t,a);return function(a){return promiseCall(t,r,[a])}}function convertUnderlyingSourcePullCallback(t,r,a){assertFunction(t,a);return function(a){return promiseCall(t,r,[a])}}function convertUnderlyingSourceStartCallback(t,r,a){assertFunction(t,a);return function(a){return reflectCall(t,r,[a])}}function convertReadableStreamType(t,r){if("bytes"!=(t=""+t))throw new TypeError(r+" '"+t+"' is not a valid enumeration value for ReadableStreamType");return t}function convertReadableStreamReaderMode(t,r){if("byob"!=(t=""+t))throw new TypeError(r+" '"+t+"' is not a valid enumeration value for ReadableStreamReaderMode");return t}function convertPipeOptions(t,r){assertDictionary(t,r);var a=null==t?void 0:t.preventAbort,o=null==t?void 0:t.preventCancel,i=null==t?void 0:t.preventClose,l=null==t?void 0:t.signal;void 0!==l&&function assertAbortSignal(t,r){if(!function isAbortSignal(t){if("object"!=typeof t||null===t)return!1;try{return"boolean"==typeof t.aborted}catch(t){return!1}}(t))throw new TypeError(r+" is not an AbortSignal.")}(l,r+" has member 'signal' that");return{preventAbort:Boolean(a),preventCancel:Boolean(o),preventClose:Boolean(i),signal:l}}var W=function(){function ReadableStream(t,r){void 0===t&&(t={});void 0===r&&(r={});void 0===t?t=null:assertObject(t,"First parameter");var a=convertQueuingStrategy(r,"Second parameter"),o=function convertUnderlyingDefaultOrByteSource(t,r){assertDictionary(t,r);var a=t,o=null==a?void 0:a.autoAllocateChunkSize,i=null==a?void 0:a.cancel,l=null==a?void 0:a.pull,u=null==a?void 0:a.start,c=null==a?void 0:a.type;return{autoAllocateChunkSize:void 0===o?void 0:convertUnsignedLongLongWithEnforceRange(o,r+" has member 'autoAllocateChunkSize' that"),cancel:void 0===i?void 0:convertUnderlyingSourceCancelCallback(i,a,r+" has member 'cancel' that"),pull:void 0===l?void 0:convertUnderlyingSourcePullCallback(l,a,r+" has member 'pull' that"),start:void 0===u?void 0:convertUnderlyingSourceStartCallback(u,a,r+" has member 'start' that"),type:void 0===c?void 0:convertReadableStreamType(c,r+" has member 'type' that")}}(t,"First parameter");InitializeReadableStream(this);if("bytes"===o.type){if(void 0!==a.size)throw new RangeError("The strategy for a byte stream cannot have a size function");!function SetUpReadableByteStreamControllerFromUnderlyingSource(t,r,a){var o=Object.create(P.prototype),startAlgorithm=function(){},pullAlgorithm=function(){return promiseResolvedWith(void 0)},cancelAlgorithm=function(){return promiseResolvedWith(void 0)};void 0!==r.start&&(startAlgorithm=function(){return r.start(o)});void 0!==r.pull&&(pullAlgorithm=function(){return r.pull(o)});void 0!==r.cancel&&(cancelAlgorithm=function(t){return r.cancel(t)});var i=r.autoAllocateChunkSize;if(0===i)throw new TypeError("autoAllocateChunkSize must be greater than 0");SetUpReadableByteStreamController(t,o,startAlgorithm,pullAlgorithm,cancelAlgorithm,a,i)}(this,o,ExtractHighWaterMark(a,0))}else{var i=ExtractSizeAlgorithm(a);!function SetUpReadableStreamDefaultControllerFromUnderlyingSource(t,r,a,o){var i=Object.create(L.prototype),startAlgorithm=function(){},pullAlgorithm=function(){return promiseResolvedWith(void 0)},cancelAlgorithm=function(){return promiseResolvedWith(void 0)};void 0!==r.start&&(startAlgorithm=function(){return r.start(i)});void 0!==r.pull&&(pullAlgorithm=function(){return r.pull(i)});void 0!==r.cancel&&(cancelAlgorithm=function(t){return r.cancel(t)});SetUpReadableStreamDefaultController(t,i,startAlgorithm,pullAlgorithm,cancelAlgorithm,a,o)}(this,o,ExtractHighWaterMark(a,1),i)}}Object.defineProperty(ReadableStream.prototype,"locked",{get:function(){if(!IsReadableStream(this))throw streamBrandCheckException$1("locked");return IsReadableStreamLocked(this)},enumerable:!1,configurable:!0});ReadableStream.prototype.cancel=function(t){void 0===t&&(t=void 0);return IsReadableStream(this)?IsReadableStreamLocked(this)?promiseRejectedWith(new TypeError("Cannot cancel a stream that already has a reader")):ReadableStreamCancel(this,t):promiseRejectedWith(streamBrandCheckException$1("cancel"))};ReadableStream.prototype.getReader=function(t){void 0===t&&(t=void 0);if(!IsReadableStream(this))throw streamBrandCheckException$1("getReader");return void 0===function convertReaderOptions(t,r){assertDictionary(t,r);var a=null==t?void 0:t.mode;return{mode:void 0===a?void 0:convertReadableStreamReaderMode(a,r+" has member 'mode' that")}}(t,"First parameter").mode?AcquireReadableStreamDefaultReader(this):AcquireReadableStreamBYOBReader(this)};ReadableStream.prototype.pipeThrough=function(t,r){void 0===r&&(r={});if(!IsReadableStream(this))throw streamBrandCheckException$1("pipeThrough");assertRequiredArgument(t,1,"pipeThrough");var a=function convertReadableWritablePair(t,r){assertDictionary(t,r);var a=null==t?void 0:t.readable;assertRequiredField(a,"readable","ReadableWritablePair");assertReadableStream(a,r+" has member 'readable' that");var o=null==t?void 0:t.writable;assertRequiredField(o,"writable","ReadableWritablePair");assertWritableStream(o,r+" has member 'writable' that");return{readable:a,writable:o}}(t,"First parameter"),o=convertPipeOptions(r,"Second parameter");if(IsReadableStreamLocked(this))throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream");if(IsWritableStreamLocked(a.writable))throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream");setPromiseIsHandledToTrue(ReadableStreamPipeTo(this,a.writable,o.preventClose,o.preventAbort,o.preventCancel,o.signal));return a.readable};ReadableStream.prototype.pipeTo=function(t,r){void 0===r&&(r={});if(!IsReadableStream(this))return promiseRejectedWith(streamBrandCheckException$1("pipeTo"));if(void 0===t)return promiseRejectedWith("Parameter 1 is required in 'pipeTo'.");if(!IsWritableStream(t))return promiseRejectedWith(new TypeError("ReadableStream.prototype.pipeTo's first argument must be a WritableStream"));var a;try{a=convertPipeOptions(r,"Second parameter")}catch(t){return promiseRejectedWith(t)}return IsReadableStreamLocked(this)?promiseRejectedWith(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream")):IsWritableStreamLocked(t)?promiseRejectedWith(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream")):ReadableStreamPipeTo(this,t,a.preventClose,a.preventAbort,a.preventCancel,a.signal)};ReadableStream.prototype.tee=function(){if(!IsReadableStream(this))throw streamBrandCheckException$1("tee");return CreateArrayFromList(ReadableStreamTee(this))};ReadableStream.prototype.values=function(t){void 0===t&&(t=void 0);if(!IsReadableStream(this))throw streamBrandCheckException$1("values");return function AcquireReadableStreamAsyncIterator(t,r){var a=AcquireReadableStreamDefaultReader(t),o=new C(a,r),i=Object.create(k);i._asyncIteratorImpl=o;return i}(this,function convertIteratorOptions(t,r){assertDictionary(t,r);var a=null==t?void 0:t.preventCancel;return{preventCancel:Boolean(a)}}(t,"First parameter").preventCancel)};return ReadableStream}();Object.defineProperties(W.prototype,{cancel:{enumerable:!0},getReader:{enumerable:!0},pipeThrough:{enumerable:!0},pipeTo:{enumerable:!0},tee:{enumerable:!0},values:{enumerable:!0},locked:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(W.prototype,r.toStringTag,{value:"ReadableStream",configurable:!0});"symbol"==typeof r.asyncIterator&&Object.defineProperty(W.prototype,r.asyncIterator,{value:W.prototype.values,writable:!0,configurable:!0});function CreateReadableStream(t,r,a,o,i){void 0===o&&(o=1);void 0===i&&(i=function(){return 1});var l=Object.create(W.prototype);InitializeReadableStream(l);SetUpReadableStreamDefaultController(l,Object.create(L.prototype),t,r,a,o,i);return l}function CreateReadableByteStream(t,r,a){var o=Object.create(W.prototype);InitializeReadableStream(o);SetUpReadableByteStreamController(o,Object.create(P.prototype),t,r,a,0,void 0);return o}function InitializeReadableStream(t){t._state="readable";t._reader=void 0;t._storedError=void 0;t._disturbed=!1}function IsReadableStream(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_readableStreamController")&&t instanceof W}function IsReadableStreamLocked(t){return void 0!==t._reader}function ReadableStreamCancel(t,r){t._disturbed=!0;if("closed"===t._state)return promiseResolvedWith(void 0);if("errored"===t._state)return promiseRejectedWith(t._storedError);ReadableStreamClose(t);var a=t._reader;if(void 0!==a&&IsReadableStreamBYOBReader(a)){a._readIntoRequests.forEach((function(t){t._closeSteps(void 0)}));a._readIntoRequests=new h}return transformPromiseWith(t._readableStreamController[y](r),noop)}function ReadableStreamClose(t){t._state="closed";var r=t._reader;if(void 0!==r){defaultReaderClosedPromiseResolve(r);if(IsReadableStreamDefaultReader(r)){r._readRequests.forEach((function(t){t._closeSteps()}));r._readRequests=new h}}}function ReadableStreamError(t,r){t._state="errored";t._storedError=r;var a=t._reader;if(void 0!==a){defaultReaderClosedPromiseReject(a,r);if(IsReadableStreamDefaultReader(a)){a._readRequests.forEach((function(t){t._errorSteps(r)}));a._readRequests=new h}else{a._readIntoRequests.forEach((function(t){t._errorSteps(r)}));a._readIntoRequests=new h}}}function streamBrandCheckException$1(t){return new TypeError("ReadableStream.prototype."+t+" can only be used on a ReadableStream")}function convertQueuingStrategyInit(t,r){assertDictionary(t,r);var a=null==t?void 0:t.highWaterMark;assertRequiredField(a,"highWaterMark","QueuingStrategyInit");return{highWaterMark:convertUnrestrictedDouble(a)}}var byteLengthSizeFunction=function(t){return t.byteLength};Object.defineProperty(byteLengthSizeFunction,"name",{value:"size",configurable:!0});var B=function(){function ByteLengthQueuingStrategy(t){assertRequiredArgument(t,1,"ByteLengthQueuingStrategy");t=convertQueuingStrategyInit(t,"First parameter");this._byteLengthQueuingStrategyHighWaterMark=t.highWaterMark}Object.defineProperty(ByteLengthQueuingStrategy.prototype,"highWaterMark",{get:function(){if(!IsByteLengthQueuingStrategy(this))throw byteLengthBrandCheckException("highWaterMark");return this._byteLengthQueuingStrategyHighWaterMark},enumerable:!1,configurable:!0});Object.defineProperty(ByteLengthQueuingStrategy.prototype,"size",{get:function(){if(!IsByteLengthQueuingStrategy(this))throw byteLengthBrandCheckException("size");return byteLengthSizeFunction},enumerable:!1,configurable:!0});return ByteLengthQueuingStrategy}();Object.defineProperties(B.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(B.prototype,r.toStringTag,{value:"ByteLengthQueuingStrategy",configurable:!0});function byteLengthBrandCheckException(t){return new TypeError("ByteLengthQueuingStrategy.prototype."+t+" can only be used on a ByteLengthQueuingStrategy")}function IsByteLengthQueuingStrategy(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_byteLengthQueuingStrategyHighWaterMark")&&t instanceof B}var countSizeFunction=function(){return 1};Object.defineProperty(countSizeFunction,"name",{value:"size",configurable:!0});var N=function(){function CountQueuingStrategy(t){assertRequiredArgument(t,1,"CountQueuingStrategy");t=convertQueuingStrategyInit(t,"First parameter");this._countQueuingStrategyHighWaterMark=t.highWaterMark}Object.defineProperty(CountQueuingStrategy.prototype,"highWaterMark",{get:function(){if(!IsCountQueuingStrategy(this))throw countBrandCheckException("highWaterMark");return this._countQueuingStrategyHighWaterMark},enumerable:!1,configurable:!0});Object.defineProperty(CountQueuingStrategy.prototype,"size",{get:function(){if(!IsCountQueuingStrategy(this))throw countBrandCheckException("size");return countSizeFunction},enumerable:!1,configurable:!0});return CountQueuingStrategy}();Object.defineProperties(N.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(N.prototype,r.toStringTag,{value:"CountQueuingStrategy",configurable:!0});function countBrandCheckException(t){return new TypeError("CountQueuingStrategy.prototype."+t+" can only be used on a CountQueuingStrategy")}function IsCountQueuingStrategy(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_countQueuingStrategyHighWaterMark")&&t instanceof N}function convertTransformerFlushCallback(t,r,a){assertFunction(t,a);return function(a){return promiseCall(t,r,[a])}}function convertTransformerStartCallback(t,r,a){assertFunction(t,a);return function(a){return reflectCall(t,r,[a])}}function convertTransformerTransformCallback(t,r,a){assertFunction(t,a);return function(a,o){return promiseCall(t,r,[a,o])}}var q=function(){function TransformStream(t,r,a){void 0===t&&(t={});void 0===r&&(r={});void 0===a&&(a={});void 0===t&&(t=null);var o=convertQueuingStrategy(r,"Second parameter"),i=convertQueuingStrategy(a,"Third parameter"),l=function convertTransformer(t,r){assertDictionary(t,r);var a=null==t?void 0:t.flush,o=null==t?void 0:t.readableType,i=null==t?void 0:t.start,l=null==t?void 0:t.transform,u=null==t?void 0:t.writableType;return{flush:void 0===a?void 0:convertTransformerFlushCallback(a,t,r+" has member 'flush' that"),readableType:o,start:void 0===i?void 0:convertTransformerStartCallback(i,t,r+" has member 'start' that"),transform:void 0===l?void 0:convertTransformerTransformCallback(l,t,r+" has member 'transform' that"),writableType:u}}(t,"First parameter");if(void 0!==l.readableType)throw new RangeError("Invalid readableType specified");if(void 0!==l.writableType)throw new RangeError("Invalid writableType specified");var u,c=ExtractHighWaterMark(i,0),d=ExtractSizeAlgorithm(i),h=ExtractHighWaterMark(o,1),p=ExtractSizeAlgorithm(o);!function InitializeTransformStream(t,r,a,o,i,l){function startAlgorithm(){return r}function writeAlgorithm(r){return function TransformStreamDefaultSinkWriteAlgorithm(t,r){var a=t._transformStreamController;return t._backpressure?transformPromiseWith(t._backpressureChangePromise,(function(){var o=t._writable;if("erroring"===o._state)throw o._storedError;return TransformStreamDefaultControllerPerformTransform(a,r)})):TransformStreamDefaultControllerPerformTransform(a,r)}(t,r)}function abortAlgorithm(r){return function TransformStreamDefaultSinkAbortAlgorithm(t,r){TransformStreamError(t,r);return promiseResolvedWith(void 0)}(t,r)}function closeAlgorithm(){return function TransformStreamDefaultSinkCloseAlgorithm(t){var r=t._readable,a=t._transformStreamController,o=a._flushAlgorithm();TransformStreamDefaultControllerClearAlgorithms(a);return transformPromiseWith(o,(function(){if("errored"===r._state)throw r._storedError;ReadableStreamDefaultControllerClose(r._readableStreamController)}),(function(a){TransformStreamError(t,a);throw r._storedError}))}(t)}t._writable=function CreateWritableStream(t,r,a,o,i,l){void 0===i&&(i=1);void 0===l&&(l=function(){return 1});var u=Object.create(E.prototype);InitializeWritableStream(u);SetUpWritableStreamDefaultController(u,Object.create(D.prototype),t,r,a,o,i,l);return u}(startAlgorithm,writeAlgorithm,closeAlgorithm,abortAlgorithm,a,o);function pullAlgorithm(){return function TransformStreamDefaultSourcePullAlgorithm(t){TransformStreamSetBackpressure(t,!1);return t._backpressureChangePromise}(t)}function cancelAlgorithm(r){TransformStreamErrorWritableAndUnblockWrite(t,r);return promiseResolvedWith(void 0)}t._readable=CreateReadableStream(startAlgorithm,pullAlgorithm,cancelAlgorithm,i,l);t._backpressure=void 0;t._backpressureChangePromise=void 0;t._backpressureChangePromise_resolve=void 0;TransformStreamSetBackpressure(t,!0);t._transformStreamController=void 0}(this,newPromise((function(t){u=t})),h,p,c,d);!function SetUpTransformStreamDefaultControllerFromTransformer(t,r){var a=Object.create(U.prototype),transformAlgorithm=function(t){try{TransformStreamDefaultControllerEnqueue(a,t);return promiseResolvedWith(void 0)}catch(t){return promiseRejectedWith(t)}},flushAlgorithm=function(){return promiseResolvedWith(void 0)};void 0!==r.transform&&(transformAlgorithm=function(t){return r.transform(t,a)});void 0!==r.flush&&(flushAlgorithm=function(){return r.flush(a)});!function SetUpTransformStreamDefaultController(t,r,a,o){r._controlledTransformStream=t;t._transformStreamController=r;r._transformAlgorithm=a;r._flushAlgorithm=o}(t,a,transformAlgorithm,flushAlgorithm)}(this,l);void 0!==l.start?u(l.start(this._transformStreamController)):u(void 0)}Object.defineProperty(TransformStream.prototype,"readable",{get:function(){if(!IsTransformStream(this))throw streamBrandCheckException("readable");return this._readable},enumerable:!1,configurable:!0});Object.defineProperty(TransformStream.prototype,"writable",{get:function(){if(!IsTransformStream(this))throw streamBrandCheckException("writable");return this._writable},enumerable:!1,configurable:!0});return TransformStream}();Object.defineProperties(q.prototype,{readable:{enumerable:!0},writable:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(q.prototype,r.toStringTag,{value:"TransformStream",configurable:!0});function IsTransformStream(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_transformStreamController")&&t instanceof q}function TransformStreamError(t,r){ReadableStreamDefaultControllerError(t._readable._readableStreamController,r);TransformStreamErrorWritableAndUnblockWrite(t,r)}function TransformStreamErrorWritableAndUnblockWrite(t,r){TransformStreamDefaultControllerClearAlgorithms(t._transformStreamController);WritableStreamDefaultControllerErrorIfNeeded(t._writable._writableStreamController,r);t._backpressure&&TransformStreamSetBackpressure(t,!1)}function TransformStreamSetBackpressure(t,r){void 0!==t._backpressureChangePromise&&t._backpressureChangePromise_resolve();t._backpressureChangePromise=newPromise((function(r){t._backpressureChangePromise_resolve=r}));t._backpressure=r}var U=function(){function TransformStreamDefaultController(){throw new TypeError("Illegal constructor")}Object.defineProperty(TransformStreamDefaultController.prototype,"desiredSize",{get:function(){if(!IsTransformStreamDefaultController(this))throw defaultControllerBrandCheckException("desiredSize");return ReadableStreamDefaultControllerGetDesiredSize(this._controlledTransformStream._readable._readableStreamController)},enumerable:!1,configurable:!0});TransformStreamDefaultController.prototype.enqueue=function(t){void 0===t&&(t=void 0);if(!IsTransformStreamDefaultController(this))throw defaultControllerBrandCheckException("enqueue");TransformStreamDefaultControllerEnqueue(this,t)};TransformStreamDefaultController.prototype.error=function(t){void 0===t&&(t=void 0);if(!IsTransformStreamDefaultController(this))throw defaultControllerBrandCheckException("error");!function TransformStreamDefaultControllerError(t,r){TransformStreamError(t._controlledTransformStream,r)}(this,t)};TransformStreamDefaultController.prototype.terminate=function(){if(!IsTransformStreamDefaultController(this))throw defaultControllerBrandCheckException("terminate");!function TransformStreamDefaultControllerTerminate(t){var r=t._controlledTransformStream;ReadableStreamDefaultControllerClose(r._readable._readableStreamController);var a=new TypeError("TransformStream terminated");TransformStreamErrorWritableAndUnblockWrite(r,a)}(this)};return TransformStreamDefaultController}();Object.defineProperties(U.prototype,{enqueue:{enumerable:!0},error:{enumerable:!0},terminate:{enumerable:!0},desiredSize:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(U.prototype,r.toStringTag,{value:"TransformStreamDefaultController",configurable:!0});function IsTransformStreamDefaultController(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_controlledTransformStream")&&t instanceof U}function TransformStreamDefaultControllerClearAlgorithms(t){t._transformAlgorithm=void 0;t._flushAlgorithm=void 0}function TransformStreamDefaultControllerEnqueue(t,r){var a=t._controlledTransformStream,o=a._readable._readableStreamController;if(!ReadableStreamDefaultControllerCanCloseOrEnqueue(o))throw new TypeError("Readable side is not in a state that permits enqueue");try{ReadableStreamDefaultControllerEnqueue(o,r)}catch(t){TransformStreamErrorWritableAndUnblockWrite(a,t);throw a._readable._storedError}var i=function ReadableStreamDefaultControllerHasBackpressure(t){return!ReadableStreamDefaultControllerShouldCallPull(t)}(o);i!==a._backpressure&&TransformStreamSetBackpressure(a,!0)}function TransformStreamDefaultControllerPerformTransform(t,r){return transformPromiseWith(t._transformAlgorithm(r),void 0,(function(r){TransformStreamError(t._controlledTransformStream,r);throw r}))}function defaultControllerBrandCheckException(t){return new TypeError("TransformStreamDefaultController.prototype."+t+" can only be used on a TransformStreamDefaultController")}function streamBrandCheckException(t){return new TypeError("TransformStream.prototype."+t+" can only be used on a TransformStream")}t.ByteLengthQueuingStrategy=B;t.CountQueuingStrategy=N;t.ReadableByteStreamController=P;t.ReadableStream=W;t.ReadableStreamBYOBReader=x;t.ReadableStreamBYOBRequest=w;t.ReadableStreamDefaultController=L;t.ReadableStreamDefaultReader=A;t.TransformStream=q;t.TransformStreamDefaultController=U;t.WritableStream=E;t.WritableStreamDefaultController=D;t.WritableStreamDefaultWriter=O;Object.defineProperty(t,"__esModule",{value:!0})},a(r);var a},(t,r,a)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.BaseSVGFactory=r.BaseStandardFontDataFactory=r.BaseCMapReaderFactory=r.BaseCanvasFactory=void 0;var o=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(a(2)),i=a(4);function asyncGeneratorStep(t,r,a,o,i,l,u){try{var c=t[l](u),d=c.value}catch(t){a(t);return}c.done?r(d):Promise.resolve(d).then(o,i)}function _asyncToGenerator(t){return function(){var r=this,a=arguments;return new Promise((function(o,i){var l=t.apply(r,a);function _next(t){asyncGeneratorStep(l,o,i,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(l,o,i,_next,_throw,"throw",t)}_next(void 0)}))}}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}var l=function(){function BaseCanvasFactory(){_classCallCheck(this,BaseCanvasFactory);this.constructor===BaseCanvasFactory&&(0,i.unreachable)("Cannot initialize BaseCanvasFactory.")}_createClass(BaseCanvasFactory,[{key:"create",value:function create(t,r){if(t<=0||r<=0)throw new Error("Invalid canvas size");var a=this._createCanvas(t,r);return{canvas:a,context:a.getContext("2d")}}},{key:"reset",value:function reset(t,r,a){if(!t.canvas)throw new Error("Canvas is not specified");if(r<=0||a<=0)throw new Error("Invalid canvas size");t.canvas.width=r;t.canvas.height=a}},{key:"destroy",value:function destroy(t){if(!t.canvas)throw new Error("Canvas is not specified");t.canvas.width=0;t.canvas.height=0;t.canvas=null;t.context=null}},{key:"_createCanvas",value:function _createCanvas(t,r){(0,i.unreachable)("Abstract method `_createCanvas` called.")}}]);return BaseCanvasFactory}();r.BaseCanvasFactory=l;var u=function(){function BaseCMapReaderFactory(t){var r=t.baseUrl,a=void 0===r?null:r,o=t.isCompressed,l=void 0!==o&&o;_classCallCheck(this,BaseCMapReaderFactory);this.constructor===BaseCMapReaderFactory&&(0,i.unreachable)("Cannot initialize BaseCMapReaderFactory.");this.baseUrl=a;this.isCompressed=l}_createClass(BaseCMapReaderFactory,[{key:"fetch",value:(t=_asyncToGenerator(o.default.mark((function _callee(t){var r,a,l,u=this;return o.default.wrap((function _callee$(o){for(;;)switch(o.prev=o.next){case 0:r=t.name;if(this.baseUrl){o.next=3;break}throw new Error('The CMap "baseUrl" parameter must be specified, ensure that the "cMapUrl" and "cMapPacked" API parameters are provided.');case 3:if(r){o.next=5;break}throw new Error("CMap name must be specified.");case 5:a=this.baseUrl+r+(this.isCompressed?".bcmap":"");l=this.isCompressed?i.CMapCompressionType.BINARY:i.CMapCompressionType.NONE;return o.abrupt("return",this._fetchData(a,l).catch((function(t){throw new Error("Unable to load ".concat(u.isCompressed?"binary ":"","CMap at: ").concat(a))})));case 8:case"end":return o.stop()}}),_callee,this)}))),function fetch(r){return t.apply(this,arguments)})},{key:"_fetchData",value:function _fetchData(t,r){(0,i.unreachable)("Abstract method `_fetchData` called.")}}]);var t;return BaseCMapReaderFactory}();r.BaseCMapReaderFactory=u;var c=function(){function BaseStandardFontDataFactory(t){var r=t.baseUrl,a=void 0===r?null:r;_classCallCheck(this,BaseStandardFontDataFactory);this.constructor===BaseStandardFontDataFactory&&(0,i.unreachable)("Cannot initialize BaseStandardFontDataFactory.");this.baseUrl=a}_createClass(BaseStandardFontDataFactory,[{key:"fetch",value:(t=_asyncToGenerator(o.default.mark((function _callee2(t){var r,a;return o.default.wrap((function _callee2$(o){for(;;)switch(o.prev=o.next){case 0:r=t.filename;if(this.baseUrl){o.next=3;break}throw new Error('The standard font "baseUrl" parameter must be specified, ensure that the "standardFontDataUrl" API parameter is provided.');case 3:if(r){o.next=5;break}throw new Error("Font filename must be specified.");case 5:a="".concat(this.baseUrl).concat(r);return o.abrupt("return",this._fetchData(a).catch((function(t){throw new Error("Unable to load font data at: ".concat(a))})));case 7:case"end":return o.stop()}}),_callee2,this)}))),function fetch(r){return t.apply(this,arguments)})},{key:"_fetchData",value:function _fetchData(t){(0,i.unreachable)("Abstract method `_fetchData` called.")}}]);var t;return BaseStandardFontDataFactory}();r.BaseStandardFontDataFactory=c;var d=function(){function BaseSVGFactory(){_classCallCheck(this,BaseSVGFactory);this.constructor===BaseSVGFactory&&(0,i.unreachable)("Cannot initialize BaseSVGFactory.")}_createClass(BaseSVGFactory,[{key:"create",value:function create(t,r){if(t<=0||r<=0)throw new Error("Invalid SVG dimensions");var a=this._createSVG("svg:svg");a.setAttribute("version","1.1");a.setAttribute("width","".concat(t,"px"));a.setAttribute("height","".concat(r,"px"));a.setAttribute("preserveAspectRatio","none");a.setAttribute("viewBox","0 0 ".concat(t," ").concat(r));return a}},{key:"createElement",value:function createElement(t){if("string"!=typeof t)throw new Error("Invalid SVG element type");return this._createSVG(t)}},{key:"_createSVG",value:function _createSVG(t){(0,i.unreachable)("Abstract method `_createSVG` called.")}}]);return BaseSVGFactory}();r.BaseSVGFactory=d},(__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.getDocument=getDocument;exports.setPDFNetworkStreamFactory=setPDFNetworkStreamFactory;exports.version=exports.RenderTask=exports.PDFWorker=exports.PDFPageProxy=exports.PDFDocumentProxy=exports.PDFDocumentLoadingTask=exports.PDFDataRangeTransport=exports.LoopbackPort=exports.DefaultStandardFontDataFactory=exports.DefaultCMapReaderFactory=exports.DefaultCanvasFactory=exports.build=void 0;var _regenerator=_interopRequireDefault(__w_pdfjs_require__(2)),_util=__w_pdfjs_require__(4),_display_utils=__w_pdfjs_require__(1),_font_loader=__w_pdfjs_require__(120),_node_utils=__w_pdfjs_require__(121),_annotation_storage=__w_pdfjs_require__(122),_canvas=__w_pdfjs_require__(123),_worker_options=__w_pdfjs_require__(125),_is_node=__w_pdfjs_require__(6),_message_handler=__w_pdfjs_require__(126),_metadata=__w_pdfjs_require__(127),_optional_content_config=__w_pdfjs_require__(128),_transport_stream=__w_pdfjs_require__(129),_xfa_text=__w_pdfjs_require__(130);function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function _toConsumableArray(t){return _arrayWithoutHoles(t)||_iterableToArray(t)||_unsupportedIterableToArray(t)||_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(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}function _arrayWithoutHoles(t){if(Array.isArray(t))return _arrayLikeToArray(t)}function _createForOfIteratorHelper(t,r){var a="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!a){if(Array.isArray(t)||(a=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){a&&(t=a);var o=0,i=function F(){};return{s:i,n:function n(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function e(t){throw t},f:i}}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 l,u=!0,c=!1;return{s:function s(){a=a.call(t)},n:function n(){var t=a.next();u=t.done;return t},e:function e(t){c=!0;l=t},f:function f(){try{u||null==a.return||a.return()}finally{if(c)throw l}}}}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}function asyncGeneratorStep(t,r,a,o,i,l,u){try{var c=t[l](u),d=c.value}catch(t){a(t);return}c.done?r(d):Promise.resolve(d).then(o,i)}function _asyncToGenerator(t){return function(){var r=this,a=arguments;return new Promise((function(o,i){var l=t.apply(r,a);function _next(t){asyncGeneratorStep(l,o,i,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(l,o,i,_next,_throw,"throw",t)}_next(void 0)}))}}function _slicedToArray(t,r){return _arrayWithHoles(t)||_iterableToArrayLimit(t,r)||_unsupportedIterableToArray(t,r)||_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 _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);return"Map"===a||"Set"===a?Array.from(t):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}function _iterableToArrayLimit(t,r){var a=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=a){var o,i,l=[],u=!0,c=!1;try{for(a=a.call(t);!(u=(o=a.next()).done);u=!0){l.push(o.value);if(r&&l.length===r)break}}catch(t){c=!0;i=t}finally{try{u||null==a.return||a.return()}finally{if(c)throw i}}return l}}function _arrayWithHoles(t){if(Array.isArray(t))return t}function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}var DEFAULT_RANGE_CHUNK_SIZE=65536,RENDERING_CANCELLED_TIMEOUT=100,DefaultCanvasFactory=_is_node.isNodeJS?_node_utils.NodeCanvasFactory:_display_utils.DOMCanvasFactory;exports.DefaultCanvasFactory=DefaultCanvasFactory;var DefaultCMapReaderFactory=_is_node.isNodeJS?_node_utils.NodeCMapReaderFactory:_display_utils.DOMCMapReaderFactory;exports.DefaultCMapReaderFactory=DefaultCMapReaderFactory;var DefaultStandardFontDataFactory=_is_node.isNodeJS?_node_utils.NodeStandardFontDataFactory:_display_utils.DOMStandardFontDataFactory,createPDFNetworkStream;exports.DefaultStandardFontDataFactory=DefaultStandardFontDataFactory;function setPDFNetworkStreamFactory(t){createPDFNetworkStream=t}function getDocument(t){var r,a=new PDFDocumentLoadingTask;if("string"==typeof t||t instanceof URL)r={url:t};else if((0,_util.isArrayBuffer)(t))r={data:t};else if(t instanceof PDFDataRangeTransport)r={range:t};else{if("object"!==_typeof(t))throw new Error("Invalid parameter in getDocument, need either string, URL, Uint8Array, or parameter object.");if(!t.url&&!t.data&&!t.range)throw new Error("Invalid parameter object: need either .data, .range or .url");r=t}var o=Object.create(null),i=null,l=null;for(var u in r){var c=r[u];switch(u){case"url":if("undefined"!=typeof window)try{o[u]=new URL(c,window.location).href;continue}catch(t){(0,_util.warn)('Cannot create valid URL: "'.concat(t,'".'))}else if("string"==typeof c||c instanceof URL){o[u]=c.toString();continue}throw new Error("Invalid PDF url data: either string or URL-object is expected in the url property.");case"range":i=c;continue;case"worker":l=c;continue;case"data":if(_is_node.isNodeJS&&"undefined"!=typeof Buffer&&c instanceof Buffer)o[u]=new Uint8Array(c);else{if(c instanceof Uint8Array)break;if("string"==typeof c)o[u]=(0,_util.stringToBytes)(c);else if("object"!==_typeof(c)||null===c||isNaN(c.length)){if(!(0,_util.isArrayBuffer)(c))throw new Error("Invalid PDF binary data: either typed array, string, or array-like object is expected in the data property.");o[u]=new Uint8Array(c)}else o[u]=new Uint8Array(c)}continue}o[u]=c}o.rangeChunkSize=o.rangeChunkSize||DEFAULT_RANGE_CHUNK_SIZE;o.CMapReaderFactory=o.CMapReaderFactory||DefaultCMapReaderFactory;o.StandardFontDataFactory=o.StandardFontDataFactory||DefaultStandardFontDataFactory;o.ignoreErrors=!0!==o.stopAtErrors;o.fontExtraProperties=!0===o.fontExtraProperties;o.pdfBug=!0===o.pdfBug;o.enableXfa=!0===o.enableXfa;("string"!=typeof o.docBaseUrl||(0,_display_utils.isDataScheme)(o.docBaseUrl))&&(o.docBaseUrl=null);Number.isInteger(o.maxImageSize)||(o.maxImageSize=-1);"boolean"!=typeof o.useWorkerFetch&&(o.useWorkerFetch=o.CMapReaderFactory===_display_utils.DOMCMapReaderFactory&&o.StandardFontDataFactory===_display_utils.DOMStandardFontDataFactory);"boolean"!=typeof o.isEvalSupported&&(o.isEvalSupported=!0);"boolean"!=typeof o.disableFontFace&&(o.disableFontFace=_is_node.isNodeJS);"boolean"!=typeof o.useSystemFonts&&(o.useSystemFonts=!_is_node.isNodeJS&&!o.disableFontFace);void 0===o.ownerDocument&&(o.ownerDocument=globalThis.document);"boolean"!=typeof o.disableRange&&(o.disableRange=!1);"boolean"!=typeof o.disableStream&&(o.disableStream=!1);"boolean"!=typeof o.disableAutoFetch&&(o.disableAutoFetch=!1);(0,_util.setVerbosityLevel)(o.verbosity);if(!l){var d={verbosity:o.verbosity,port:_worker_options.GlobalWorkerOptions.workerPort};l=d.port?PDFWorker.fromPort(d):new PDFWorker(d);a._worker=l}var h=a.docId;l.promise.then((function(){if(a.destroyed)throw new Error("Loading aborted");var t=_fetchDocument(l,o,i,h),r=new Promise((function(t){var r;i?r=new _transport_stream.PDFDataTransportStream({length:o.length,initialData:o.initialData,progressiveDone:o.progressiveDone,contentDispositionFilename:o.contentDispositionFilename,disableRange:o.disableRange,disableStream:o.disableStream},i):o.data||(r=createPDFNetworkStream({url:o.url,length:o.length,httpHeaders:o.httpHeaders,withCredentials:o.withCredentials,rangeChunkSize:o.rangeChunkSize,disableRange:o.disableRange,disableStream:o.disableStream}));t(r)}));return Promise.all([t,r]).then((function(t){var r=_slicedToArray(t,2),i=r[0],u=r[1];if(a.destroyed)throw new Error("Loading aborted");var c=new _message_handler.MessageHandler(h,i,l.port);c.postMessageTransfers=l.postMessageTransfers;var d=new WorkerTransport(c,a,u,o);a._transport=d;c.send("Ready",null)}))})).catch(a._capability.reject);return a}function _fetchDocument(t,r,a,o){return _fetchDocument2.apply(this,arguments)}function _fetchDocument2(){return(_fetchDocument2=_asyncToGenerator(_regenerator.default.mark((function _callee6(t,r,a,o){var i;return _regenerator.default.wrap((function _callee6$(l){for(;;)switch(l.prev=l.next){case 0:if(!t.destroyed){l.next=2;break}throw new Error("Worker was destroyed");case 2:if(a){r.length=a.length;r.initialData=a.initialData;r.progressiveDone=a.progressiveDone;r.contentDispositionFilename=a.contentDispositionFilename}l.next=5;return t.messageHandler.sendWithPromise("GetDocRequest",{docId:o,apiVersion:"2.11.338",source:{data:r.data,url:r.url,password:r.password,disableAutoFetch:r.disableAutoFetch,rangeChunkSize:r.rangeChunkSize,length:r.length},maxImageSize:r.maxImageSize,disableFontFace:r.disableFontFace,postMessageTransfers:t.postMessageTransfers,docBaseUrl:r.docBaseUrl,ignoreErrors:r.ignoreErrors,isEvalSupported:r.isEvalSupported,fontExtraProperties:r.fontExtraProperties,enableXfa:r.enableXfa,useSystemFonts:r.useSystemFonts,cMapUrl:r.useWorkerFetch?r.cMapUrl:null,standardFontDataUrl:r.useWorkerFetch?r.standardFontDataUrl:null});case 5:i=l.sent;if(!t.destroyed){l.next=8;break}throw new Error("Worker was destroyed");case 8:return l.abrupt("return",i);case 9:case"end":return l.stop()}}),_callee6)})))).apply(this,arguments)}var PDFDocumentLoadingTask=function(){function PDFDocumentLoadingTask(){_classCallCheck(this,PDFDocumentLoadingTask);this._capability=(0,_util.createPromiseCapability)();this._transport=null;this._worker=null;this.docId="d".concat(PDFDocumentLoadingTask.idCounters.doc++);this.destroyed=!1;this.onPassword=null;this.onProgress=null;this.onUnsupportedFeature=null}_createClass(PDFDocumentLoadingTask,[{key:"promise",get:function get(){return this._capability.promise}},{key:"destroy",value:(t=_asyncToGenerator(_regenerator.default.mark((function _callee(){var t;return _regenerator.default.wrap((function _callee$(r){for(;;)switch(r.prev=r.next){case 0:this.destroyed=!0;r.next=3;return null===(t=this._transport)||void 0===t?void 0:t.destroy();case 3:this._transport=null;if(this._worker){this._worker.destroy();this._worker=null}case 5:case"end":return r.stop()}}),_callee,this)}))),function destroy(){return t.apply(this,arguments)})}],[{key:"idCounters",get:function get(){return(0,_util.shadow)(this,"idCounters",{doc:0})}}]);var t;return PDFDocumentLoadingTask}();exports.PDFDocumentLoadingTask=PDFDocumentLoadingTask;var PDFDataRangeTransport=function(){function PDFDataRangeTransport(t,r){var a=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;_classCallCheck(this,PDFDataRangeTransport);this.length=t;this.initialData=r;this.progressiveDone=a;this.contentDispositionFilename=o;this._rangeListeners=[];this._progressListeners=[];this._progressiveReadListeners=[];this._progressiveDoneListeners=[];this._readyCapability=(0,_util.createPromiseCapability)()}_createClass(PDFDataRangeTransport,[{key:"addRangeListener",value:function addRangeListener(t){this._rangeListeners.push(t)}},{key:"addProgressListener",value:function addProgressListener(t){this._progressListeners.push(t)}},{key:"addProgressiveReadListener",value:function addProgressiveReadListener(t){this._progressiveReadListeners.push(t)}},{key:"addProgressiveDoneListener",value:function addProgressiveDoneListener(t){this._progressiveDoneListeners.push(t)}},{key:"onDataRange",value:function onDataRange(t,r){var a,o=_createForOfIteratorHelper(this._rangeListeners);try{for(o.s();!(a=o.n()).done;){(0,a.value)(t,r)}}catch(t){o.e(t)}finally{o.f()}}},{key:"onDataProgress",value:function onDataProgress(t,r){var a=this;this._readyCapability.promise.then((function(){var o,i=_createForOfIteratorHelper(a._progressListeners);try{for(i.s();!(o=i.n()).done;){(0,o.value)(t,r)}}catch(t){i.e(t)}finally{i.f()}}))}},{key:"onDataProgressiveRead",value:function onDataProgressiveRead(t){var r=this;this._readyCapability.promise.then((function(){var a,o=_createForOfIteratorHelper(r._progressiveReadListeners);try{for(o.s();!(a=o.n()).done;){(0,a.value)(t)}}catch(t){o.e(t)}finally{o.f()}}))}},{key:"onDataProgressiveDone",value:function onDataProgressiveDone(){var t=this;this._readyCapability.promise.then((function(){var r,a=_createForOfIteratorHelper(t._progressiveDoneListeners);try{for(a.s();!(r=a.n()).done;){(0,r.value)()}}catch(t){a.e(t)}finally{a.f()}}))}},{key:"transportReady",value:function transportReady(){this._readyCapability.resolve()}},{key:"requestDataRange",value:function requestDataRange(t,r){(0,_util.unreachable)("Abstract method PDFDataRangeTransport.requestDataRange")}},{key:"abort",value:function abort(){}}]);return PDFDataRangeTransport}();exports.PDFDataRangeTransport=PDFDataRangeTransport;var PDFDocumentProxy=function(){function PDFDocumentProxy(t,r){_classCallCheck(this,PDFDocumentProxy);this._pdfInfo=t;this._transport=r;Object.defineProperty(this,"fingerprint",{get:function get(){(0,_display_utils.deprecated)("`PDFDocumentProxy.fingerprint`, please use `PDFDocumentProxy.fingerprints` instead.");return this.fingerprints[0]}})}_createClass(PDFDocumentProxy,[{key:"annotationStorage",get:function get(){return this._transport.annotationStorage}},{key:"numPages",get:function get(){return this._pdfInfo.numPages}},{key:"fingerprints",get:function get(){return this._pdfInfo.fingerprints}},{key:"isPureXfa",get:function get(){return!!this._transport._htmlForXfa}},{key:"allXfaHtml",get:function get(){return this._transport._htmlForXfa}},{key:"getPage",value:function getPage(t){return this._transport.getPage(t)}},{key:"getPageIndex",value:function getPageIndex(t){return this._transport.getPageIndex(t)}},{key:"getDestinations",value:function getDestinations(){return this._transport.getDestinations()}},{key:"getDestination",value:function getDestination(t){return this._transport.getDestination(t)}},{key:"getPageLabels",value:function getPageLabels(){return this._transport.getPageLabels()}},{key:"getPageLayout",value:function getPageLayout(){return this._transport.getPageLayout()}},{key:"getPageMode",value:function getPageMode(){return this._transport.getPageMode()}},{key:"getViewerPreferences",value:function getViewerPreferences(){return this._transport.getViewerPreferences()}},{key:"getOpenAction",value:function getOpenAction(){return this._transport.getOpenAction()}},{key:"getAttachments",value:function getAttachments(){return this._transport.getAttachments()}},{key:"getJavaScript",value:function getJavaScript(){return this._transport.getJavaScript()}},{key:"getJSActions",value:function getJSActions(){return this._transport.getDocJSActions()}},{key:"getOutline",value:function getOutline(){return this._transport.getOutline()}},{key:"getOptionalContentConfig",value:function getOptionalContentConfig(){return this._transport.getOptionalContentConfig()}},{key:"getPermissions",value:function getPermissions(){return this._transport.getPermissions()}},{key:"getMetadata",value:function getMetadata(){return this._transport.getMetadata()}},{key:"getMarkInfo",value:function getMarkInfo(){return this._transport.getMarkInfo()}},{key:"getData",value:function getData(){return this._transport.getData()}},{key:"getDownloadInfo",value:function getDownloadInfo(){return this._transport.downloadInfoCapability.promise}},{key:"getStats",value:function getStats(){return this._transport.getStats()}},{key:"cleanup",value:function cleanup(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return this._transport.startCleanup(t||this.isPureXfa)}},{key:"destroy",value:function destroy(){return this.loadingTask.destroy()}},{key:"loadingParams",get:function get(){return this._transport.loadingParams}},{key:"loadingTask",get:function get(){return this._transport.loadingTask}},{key:"saveDocument",value:function saveDocument(){this._transport.annotationStorage.size<=0&&(0,_display_utils.deprecated)("saveDocument called while `annotationStorage` is empty, please use the getData-method instead.");return this._transport.saveDocument()}},{key:"getFieldObjects",value:function getFieldObjects(){return this._transport.getFieldObjects()}},{key:"hasJSActions",value:function hasJSActions(){return this._transport.hasJSActions()}},{key:"getCalculationOrderIds",value:function getCalculationOrderIds(){return this._transport.getCalculationOrderIds()}}]);return PDFDocumentProxy}();exports.PDFDocumentProxy=PDFDocumentProxy;var PDFPageProxy=function(){function PDFPageProxy(t,r,a,o){var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4];_classCallCheck(this,PDFPageProxy);this._pageIndex=t;this._pageInfo=r;this._ownerDocument=o;this._transport=a;this._stats=i?new _display_utils.StatTimer:null;this._pdfBug=i;this.commonObjs=a.commonObjs;this.objs=new PDFObjects;this.cleanupAfterRender=!1;this.pendingCleanup=!1;this._intentStates=new Map;this._annotationPromises=new Map;this.destroyed=!1}_createClass(PDFPageProxy,[{key:"pageNumber",get:function get(){return this._pageIndex+1}},{key:"rotate",get:function get(){return this._pageInfo.rotate}},{key:"ref",get:function get(){return this._pageInfo.ref}},{key:"userUnit",get:function get(){return this._pageInfo.userUnit}},{key:"view",get:function get(){return this._pageInfo.view}},{key:"getViewport",value:function getViewport(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.scale,a=t.rotation,o=void 0===a?this.rotate:a,i=t.offsetX,l=void 0===i?0:i,u=t.offsetY,c=void 0===u?0:u,d=t.dontFlip,h=void 0!==d&&d;return new _display_utils.PageViewport({viewBox:this.view,scale:r,rotation:o,offsetX:l,offsetY:c,dontFlip:h})}},{key:"getAnnotations",value:function getAnnotations(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.intent,a=void 0===r?"display":r,o=this._transport.getRenderingIntent(a),i=this._annotationPromises.get(o.cacheKey);if(!i){i=this._transport.getAnnotations(this._pageIndex,o.renderingIntent);this._annotationPromises.set(o.cacheKey,i);i=i.then((function(t){var r,a=_createForOfIteratorHelper(t);try{var o=function _loop(){var t=r.value;void 0!==t.titleObj&&Object.defineProperty(t,"title",{get:function get(){(0,_display_utils.deprecated)("`title`-property on annotation, please use `titleObj` instead.");return t.titleObj.str}});void 0!==t.contentsObj&&Object.defineProperty(t,"contents",{get:function get(){(0,_display_utils.deprecated)("`contents`-property on annotation, please use `contentsObj` instead.");return t.contentsObj.str}})};for(a.s();!(r=a.n()).done;)o()}catch(t){a.e(t)}finally{a.f()}return t}))}return i}},{key:"getJSActions",value:function getJSActions(){return this._jsActionsPromise||(this._jsActionsPromise=this._transport.getPageJSActions(this._pageIndex))}},{key:"getXfa",value:(t=_asyncToGenerator(_regenerator.default.mark((function _callee2(){var t;return _regenerator.default.wrap((function _callee2$(r){for(;;)switch(r.prev=r.next){case 0:return r.abrupt("return",(null===(t=this._transport._htmlForXfa)||void 0===t?void 0:t.children[this._pageIndex])||null);case 1:case"end":return r.stop()}}),_callee2,this)}))),function getXfa(){return t.apply(this,arguments)})},{key:"render",value:function render(t){var r,a,o,i=this,l=t.canvasContext,u=t.viewport,c=t.intent,d=void 0===c?"display":c,h=t.annotationMode,p=void 0===h?_util.AnnotationMode.ENABLE:h,m=t.transform,y=void 0===m?null:m,v=t.imageLayer,g=void 0===v?null:v,b=t.canvasFactory,_=void 0===b?null:b,S=t.background,A=void 0===S?null:S,C=t.optionalContentConfigPromise,k=void 0===C?null:C;if(void 0!==(null===(r=arguments[0])||void 0===r?void 0:r.renderInteractiveForms)){(0,_display_utils.deprecated)("render no longer accepts the `renderInteractiveForms`-option, please use the `annotationMode`-option instead.");!0===arguments[0].renderInteractiveForms&&p===_util.AnnotationMode.ENABLE&&(p=_util.AnnotationMode.ENABLE_FORMS)}if(void 0!==(null===(a=arguments[0])||void 0===a?void 0:a.includeAnnotationStorage)){(0,_display_utils.deprecated)("render no longer accepts the `includeAnnotationStorage`-option, please use the `annotationMode`-option instead.");!0===arguments[0].includeAnnotationStorage&&p===_util.AnnotationMode.ENABLE&&(p=_util.AnnotationMode.ENABLE_STORAGE)}this._stats&&this._stats.time("Overall");var R=this._transport.getRenderingIntent(d,p);this.pendingCleanup=!1;k||(k=this._transport.getOptionalContentConfig());var w=this._intentStates.get(R.cacheKey);if(!w){w=Object.create(null);this._intentStates.set(R.cacheKey,w)}if(w.streamReaderCancelTimeout){clearTimeout(w.streamReaderCancelTimeout);w.streamReaderCancelTimeout=null}var P=_||new DefaultCanvasFactory({ownerDocument:this._ownerDocument}),x=!!(R.renderingIntent&_util.RenderingIntentFlag.PRINT);if(!w.displayReadyCapability){w.displayReadyCapability=(0,_util.createPromiseCapability)();w.operatorList={fnArray:[],argsArray:[],lastChunk:!1};this._stats&&this._stats.time("Page Request");this._pumpOperatorList(R)}var T=function complete(t){w.renderTasks.delete(E);(i.cleanupAfterRender||x)&&(i.pendingCleanup=!0);i._tryCleanup();if(t){E.capability.reject(t);i._abortOperatorList({intentState:w,reason:t instanceof Error?t:new Error(t)})}else E.capability.resolve();if(i._stats){i._stats.timeEnd("Rendering");i._stats.timeEnd("Overall")}},E=new InternalRenderTask({callback:T,params:{canvasContext:l,viewport:u,transform:y,imageLayer:g,background:A},objs:this.objs,commonObjs:this.commonObjs,operatorList:w.operatorList,pageIndex:this._pageIndex,canvasFactory:P,useRequestAnimationFrame:!x,pdfBug:this._pdfBug});((o=w).renderTasks||(o.renderTasks=new Set)).add(E);var O=E.task;Promise.all([w.displayReadyCapability.promise,k]).then((function(t){var r=_slicedToArray(t,2),a=r[0],o=r[1];if(i.pendingCleanup)T();else{i._stats&&i._stats.time("Rendering");E.initializeGraphics({transparency:a,optionalContentConfig:o});E.operatorListChanged()}})).catch(T);return O}},{key:"getOperatorList",value:function getOperatorList(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.intent,a=void 0===r?"display":r,o=t.annotationMode,i=void 0===o?_util.AnnotationMode.ENABLE:o;function operatorListChanged(){if(c.operatorList.lastChunk){c.opListReadCapability.resolve(c.operatorList);c.renderTasks.delete(l)}}var l,u=this._transport.getRenderingIntent(a,i,!0),c=this._intentStates.get(u.cacheKey);if(!c){c=Object.create(null);this._intentStates.set(u.cacheKey,c)}if(!c.opListReadCapability){var d;(l=Object.create(null)).operatorListChanged=operatorListChanged;c.opListReadCapability=(0,_util.createPromiseCapability)();((d=c).renderTasks||(d.renderTasks=new Set)).add(l);c.operatorList={fnArray:[],argsArray:[],lastChunk:!1};this._stats&&this._stats.time("Page Request");this._pumpOperatorList(u)}return c.opListReadCapability.promise}},{key:"streamTextContent",value:function streamTextContent(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.normalizeWhitespace,a=void 0!==r&&r,o=t.disableCombineTextItems,i=void 0!==o&&o,l=t.includeMarkedContent,u=void 0!==l&&l,c=100;return this._transport.messageHandler.sendWithStream("GetTextContent",{pageIndex:this._pageIndex,normalizeWhitespace:!0===a,combineTextItems:!0!==i,includeMarkedContent:!0===u},{highWaterMark:c,size:function size(t){return t.items.length}})}},{key:"getTextContent",value:function getTextContent(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this._transport._htmlForXfa)return this.getXfa().then((function(t){return _xfa_text.XfaText.textContent(t)}));var r=this.streamTextContent(t);return new Promise((function(t,a){var o=r.getReader(),i={items:[],styles:Object.create(null)};!function pump(){o.read().then((function(r){var a,o=r.value;if(r.done)t(i);else{Object.assign(i.styles,o.styles);(a=i.items).push.apply(a,_toConsumableArray(o.items));pump()}}),a)}()}))}},{key:"getStructTree",value:function getStructTree(){return this._structTreePromise||(this._structTreePromise=this._transport.getStructTree(this._pageIndex))}},{key:"_destroy",value:function _destroy(){this.destroyed=!0;this._transport.pageCache[this._pageIndex]=null;var t,r=[],a=_createForOfIteratorHelper(this._intentStates.values());try{for(a.s();!(t=a.n()).done;){var o=t.value;this._abortOperatorList({intentState:o,reason:new Error("Page was destroyed."),force:!0});if(!o.opListReadCapability){var i,l=_createForOfIteratorHelper(o.renderTasks);try{for(l.s();!(i=l.n()).done;){var u=i.value;r.push(u.completed);u.cancel()}}catch(t){l.e(t)}finally{l.f()}}}}catch(t){a.e(t)}finally{a.f()}this.objs.clear();this._annotationPromises.clear();this._jsActionsPromise=null;this._structTreePromise=null;this.pendingCleanup=!1;return Promise.all(r)}},{key:"cleanup",value:function cleanup(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.pendingCleanup=!0;return this._tryCleanup(t)}},{key:"_tryCleanup",value:function _tryCleanup(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!this.pendingCleanup)return!1;var r,a=_createForOfIteratorHelper(this._intentStates.values());try{for(a.s();!(r=a.n()).done;){var o=r.value,i=o.renderTasks,l=o.operatorList;if(i.size>0||!l.lastChunk)return!1}}catch(t){a.e(t)}finally{a.f()}this._intentStates.clear();this.objs.clear();this._annotationPromises.clear();this._jsActionsPromise=null;this._structTreePromise=null;t&&this._stats&&(this._stats=new _display_utils.StatTimer);this.pendingCleanup=!1;return!0}},{key:"_startRenderPage",value:function _startRenderPage(t,r){var a=this._intentStates.get(r);if(a){this._stats&&this._stats.timeEnd("Page Request");a.displayReadyCapability&&a.displayReadyCapability.resolve(t)}}},{key:"_renderPageChunk",value:function _renderPageChunk(t,r){for(var a=0,o=t.length;a<o;a++){r.operatorList.fnArray.push(t.fnArray[a]);r.operatorList.argsArray.push(t.argsArray[a])}r.operatorList.lastChunk=t.lastChunk;var i,l=_createForOfIteratorHelper(r.renderTasks);try{for(l.s();!(i=l.n()).done;){i.value.operatorListChanged()}}catch(t){l.e(t)}finally{l.f()}t.lastChunk&&this._tryCleanup()}},{key:"_pumpOperatorList",value:function _pumpOperatorList(t){var r=this,a=t.renderingIntent,o=t.cacheKey,i=this._transport.messageHandler.sendWithStream("GetOperatorList",{pageIndex:this._pageIndex,intent:a,cacheKey:o,annotationStorage:a&_util.RenderingIntentFlag.ANNOTATIONS_STORAGE?this._transport.annotationStorage.serializable:null}).getReader(),l=this._intentStates.get(o);l.streamReader=i;!function pump(){i.read().then((function(t){var a=t.value;if(t.done)l.streamReader=null;else if(!r._transport.destroyed){r._renderPageChunk(a,l);pump()}}),(function(t){l.streamReader=null;if(!r._transport.destroyed){if(l.operatorList){l.operatorList.lastChunk=!0;var a,o=_createForOfIteratorHelper(l.renderTasks);try{for(o.s();!(a=o.n()).done;){a.value.operatorListChanged()}}catch(t){o.e(t)}finally{o.f()}r._tryCleanup()}if(l.displayReadyCapability)l.displayReadyCapability.reject(t);else{if(!l.opListReadCapability)throw t;l.opListReadCapability.reject(t)}}}))}()}},{key:"_abortOperatorList",value:function _abortOperatorList(t){var r=this,a=t.intentState,o=t.reason,i=t.force,l=void 0!==i&&i;if(a.streamReader){if(!l){if(a.renderTasks.size>0)return;if(o instanceof _display_utils.RenderingCancelledException){a.streamReaderCancelTimeout=setTimeout((function(){r._abortOperatorList({intentState:a,reason:o,force:!0});a.streamReaderCancelTimeout=null}),RENDERING_CANCELLED_TIMEOUT);return}}a.streamReader.cancel(new _util.AbortException(o.message)).catch((function(){}));a.streamReader=null;if(!this._transport.destroyed){var u,c=_createForOfIteratorHelper(this._intentStates);try{for(c.s();!(u=c.n()).done;){var d=_slicedToArray(u.value,2),h=d[0];if(d[1]===a){this._intentStates.delete(h);break}}}catch(t){c.e(t)}finally{c.f()}this.cleanup()}}}},{key:"stats",get:function get(){return this._stats}}]);var t;return PDFPageProxy}();exports.PDFPageProxy=PDFPageProxy;var LoopbackPort=function(){function LoopbackPort(){_classCallCheck(this,LoopbackPort);this._listeners=[];this._deferred=Promise.resolve(void 0)}_createClass(LoopbackPort,[{key:"postMessage",value:function postMessage(t,r){var a=this;var o=new WeakMap,i={data:function cloneValue(t){if("function"==typeof t||"symbol"===_typeof(t)||t instanceof URL)throw new Error("LoopbackPort.postMessage - cannot clone: ".concat(null==t?void 0:t.toString()));if("object"!==_typeof(t)||null===t)return t;if(o.has(t))return o.get(t);var a,i;if((a=t.buffer)&&(0,_util.isArrayBuffer)(a)){i=null!=r&&r.includes(a)?new t.constructor(a,t.byteOffset,t.byteLength):new t.constructor(t);o.set(t,i);return i}if(t instanceof Map){i=new Map;o.set(t,i);var l,u=_createForOfIteratorHelper(t);try{for(u.s();!(l=u.n()).done;){var c=_slicedToArray(l.value,2),d=c[0],h=c[1];i.set(d,cloneValue(h))}}catch(t){u.e(t)}finally{u.f()}return i}if(t instanceof Set){i=new Set;o.set(t,i);var p,m=_createForOfIteratorHelper(t);try{for(m.s();!(p=m.n()).done;){var y=p.value;i.add(cloneValue(y))}}catch(t){m.e(t)}finally{m.f()}return i}i=Array.isArray(t)?[]:Object.create(null);o.set(t,i);for(var v in t){for(var g,b=void 0,_=t;!(b=Object.getOwnPropertyDescriptor(_,v));)_=Object.getPrototypeOf(_);void 0!==b.value&&(("function"!=typeof b.value||null!==(g=t.hasOwnProperty)&&void 0!==g&&g.call(t,v))&&(i[v]=cloneValue(b.value)))}return i}(t)};this._deferred.then((function(){var t,r=_createForOfIteratorHelper(a._listeners);try{for(r.s();!(t=r.n()).done;){t.value.call(a,i)}}catch(t){r.e(t)}finally{r.f()}}))}},{key:"addEventListener",value:function addEventListener(t,r){this._listeners.push(r)}},{key:"removeEventListener",value:function removeEventListener(t,r){var a=this._listeners.indexOf(r);this._listeners.splice(a,1)}},{key:"terminate",value:function terminate(){this._listeners.length=0}}]);return LoopbackPort}();exports.LoopbackPort=LoopbackPort;var PDFWorkerUtil={isWorkerDisabled:!1,fallbackWorkerSrc:null,fakeWorkerId:0};if(_is_node.isNodeJS&&"function"==typeof require){PDFWorkerUtil.isWorkerDisabled=!0;PDFWorkerUtil.fallbackWorkerSrc="./pdf.worker.js"}else if("object"===("undefined"==typeof document?"undefined":_typeof(document))){var _document,_document$currentScri,pdfjsFilePath=null===(_document=document)||void 0===_document||null===(_document$currentScri=_document.currentScript)||void 0===_document$currentScri?void 0:_document$currentScri.src;pdfjsFilePath&&(PDFWorkerUtil.fallbackWorkerSrc=pdfjsFilePath.replace(/(\.(?:min\.)?js)(\?.*)?$/i,".worker$1$2"))}PDFWorkerUtil.createCDNWrapper=function(t){var r='importScripts("'.concat(t,'");');return URL.createObjectURL(new Blob([r]))};var PDFWorker=function(){function PDFWorker(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.name,a=void 0===r?null:r,o=t.port,i=void 0===o?null:o,l=t.verbosity,u=void 0===l?(0,_util.getVerbosityLevel)():l;_classCallCheck(this,PDFWorker);if(i&&PDFWorker._workerPorts.has(i))throw new Error("Cannot use more than one PDFWorker per port.");this.name=a;this.destroyed=!1;this.postMessageTransfers=!0;this.verbosity=u;this._readyCapability=(0,_util.createPromiseCapability)();this._port=null;this._webWorker=null;this._messageHandler=null;if(i){PDFWorker._workerPorts.set(i,this);this._initializeFromPort(i)}else this._initialize()}_createClass(PDFWorker,[{key:"promise",get:function get(){return this._readyCapability.promise}},{key:"port",get:function get(){return this._port}},{key:"messageHandler",get:function get(){return this._messageHandler}},{key:"_initializeFromPort",value:function _initializeFromPort(t){this._port=t;this._messageHandler=new _message_handler.MessageHandler("main","worker",t);this._messageHandler.on("ready",(function(){}));this._readyCapability.resolve()}},{key:"_initialize",value:function _initialize(){var t=this;if("undefined"!=typeof Worker&&!PDFWorkerUtil.isWorkerDisabled&&!PDFWorker._mainThreadWorkerMessageHandler){var r=PDFWorker.workerSrc;try{(0,_util.isSameOrigin)(window.location.href,r)||(r=PDFWorkerUtil.createCDNWrapper(new URL(r,window.location).href));var a=new Worker(r),o=new _message_handler.MessageHandler("main","worker",a),i=function terminateEarly(){a.removeEventListener("error",l);o.destroy();a.terminate();t.destroyed?t._readyCapability.reject(new Error("Worker was destroyed")):t._setupFakeWorker()},l=function onWorkerError(){t._webWorker||i()};a.addEventListener("error",l);o.on("test",(function(r){a.removeEventListener("error",l);if(t.destroyed)i();else if(r){t._messageHandler=o;t._port=a;t._webWorker=a;r.supportTransfers||(t.postMessageTransfers=!1);t._readyCapability.resolve();o.send("configure",{verbosity:t.verbosity})}else{t._setupFakeWorker();o.destroy();a.terminate()}}));o.on("ready",(function(r){a.removeEventListener("error",l);if(t.destroyed)i();else try{u()}catch(r){t._setupFakeWorker()}}));var u=function sendTest(){var r=new Uint8Array([t.postMessageTransfers?255:0]);try{o.send("test",r,[r.buffer])}catch(t){(0,_util.warn)("Cannot use postMessage transfers.");r[0]=0;o.send("test",r)}};u();return}catch(t){(0,_util.info)("The worker has been disabled.")}}this._setupFakeWorker()}},{key:"_setupFakeWorker",value:function _setupFakeWorker(){var t=this;if(!PDFWorkerUtil.isWorkerDisabled){(0,_util.warn)("Setting up fake worker.");PDFWorkerUtil.isWorkerDisabled=!0}PDFWorker._setupFakeWorkerGlobal.then((function(r){if(t.destroyed)t._readyCapability.reject(new Error("Worker was destroyed"));else{var a=new LoopbackPort;t._port=a;var o="fake".concat(PDFWorkerUtil.fakeWorkerId++),i=new _message_handler.MessageHandler(o+"_worker",o,a);r.setup(i,a);var l=new _message_handler.MessageHandler(o,o+"_worker",a);t._messageHandler=l;t._readyCapability.resolve();l.send("configure",{verbosity:t.verbosity})}})).catch((function(r){t._readyCapability.reject(new Error('Setting up fake worker failed: "'.concat(r.message,'".')))}))}},{key:"destroy",value:function destroy(){this.destroyed=!0;if(this._webWorker){this._webWorker.terminate();this._webWorker=null}PDFWorker._workerPorts.delete(this._port);this._port=null;if(this._messageHandler){this._messageHandler.destroy();this._messageHandler=null}}}],[{key:"_workerPorts",get:function get(){return(0,_util.shadow)(this,"_workerPorts",new WeakMap)}},{key:"fromPort",value:function fromPort(t){if(null==t||!t.port)throw new Error("PDFWorker.fromPort - invalid method signature.");return this._workerPorts.has(t.port)?this._workerPorts.get(t.port):new PDFWorker(t)}},{key:"workerSrc",get:function get(){if(_worker_options.GlobalWorkerOptions.workerSrc)return _worker_options.GlobalWorkerOptions.workerSrc;if(null!==PDFWorkerUtil.fallbackWorkerSrc){_is_node.isNodeJS||(0,_display_utils.deprecated)('No "GlobalWorkerOptions.workerSrc" specified.');return PDFWorkerUtil.fallbackWorkerSrc}throw new Error('No "GlobalWorkerOptions.workerSrc" specified.')}},{key:"_mainThreadWorkerMessageHandler",get:function get(){try{var t;return(null===(t=globalThis.pdfjsWorker)||void 0===t?void 0:t.WorkerMessageHandler)||null}catch(t){return null}}},{key:"_setupFakeWorkerGlobal",get:function get(){var _this10=this,loader=function(){var _ref15=_asyncToGenerator(_regenerator.default.mark((function _callee3(){var mainWorkerMessageHandler,worker;return _regenerator.default.wrap((function _callee3$(_context3){for(;;)switch(_context3.prev=_context3.next){case 0:mainWorkerMessageHandler=_this10._mainThreadWorkerMessageHandler;if(!mainWorkerMessageHandler){_context3.next=3;break}return _context3.abrupt("return",mainWorkerMessageHandler);case 3:if(!_is_node.isNodeJS||"function"!=typeof require){_context3.next=6;break}worker=eval("require")(_this10.workerSrc);return _context3.abrupt("return",worker.WorkerMessageHandler);case 6:_context3.next=8;return(0,_display_utils.loadScript)(_this10.workerSrc);case 8:return _context3.abrupt("return",window.pdfjsWorker.WorkerMessageHandler);case 9:case"end":return _context3.stop()}}),_callee3)})));return function loader(){return _ref15.apply(this,arguments)}}();return(0,_util.shadow)(this,"_setupFakeWorkerGlobal",loader())}}]);return PDFWorker}();exports.PDFWorker=PDFWorker;PDFWorker.getWorkerSrc=function(){(0,_display_utils.deprecated)("`PDFWorker.getWorkerSrc()`, please use `PDFWorker.workerSrc` instead.");return this.workerSrc};var WorkerTransport=function(){function WorkerTransport(t,r,a,o){_classCallCheck(this,WorkerTransport);this.messageHandler=t;this.loadingTask=r;this.commonObjs=new PDFObjects;this.fontLoader=new _font_loader.FontLoader({docId:r.docId,onUnsupportedFeature:this._onUnsupportedFeature.bind(this),ownerDocument:o.ownerDocument,styleElement:o.styleElement});this._params=o;if(!o.useWorkerFetch){this.CMapReaderFactory=new o.CMapReaderFactory({baseUrl:o.cMapUrl,isCompressed:o.cMapPacked});this.StandardFontDataFactory=new o.StandardFontDataFactory({baseUrl:o.standardFontDataUrl})}this.destroyed=!1;this.destroyCapability=null;this._passwordCapability=null;this._networkStream=a;this._fullReader=null;this._lastProgress=null;this.pageCache=[];this.pagePromises=[];this.downloadInfoCapability=(0,_util.createPromiseCapability)();this.setupMessageHandler()}_createClass(WorkerTransport,[{key:"annotationStorage",get:function get(){return(0,_util.shadow)(this,"annotationStorage",new _annotation_storage.AnnotationStorage)}},{key:"getRenderingIntent",value:function getRenderingIntent(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_util.AnnotationMode.ENABLE,a=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=_util.RenderingIntentFlag.DISPLAY,i="";switch(t){case"any":o=_util.RenderingIntentFlag.ANY;break;case"display":break;case"print":o=_util.RenderingIntentFlag.PRINT;break;default:(0,_util.warn)("getRenderingIntent - invalid intent: ".concat(t))}switch(r){case _util.AnnotationMode.DISABLE:o+=_util.RenderingIntentFlag.ANNOTATIONS_DISABLE;break;case _util.AnnotationMode.ENABLE:break;case _util.AnnotationMode.ENABLE_FORMS:o+=_util.RenderingIntentFlag.ANNOTATIONS_FORMS;break;case _util.AnnotationMode.ENABLE_STORAGE:o+=_util.RenderingIntentFlag.ANNOTATIONS_STORAGE;i=this.annotationStorage.lastModified;break;default:(0,_util.warn)("getRenderingIntent - invalid annotationMode: ".concat(r))}a&&(o+=_util.RenderingIntentFlag.OPLIST);return{renderingIntent:o,cacheKey:"".concat(o,"_").concat(i)}}},{key:"destroy",value:function destroy(){var t=this;if(this.destroyCapability)return this.destroyCapability.promise;this.destroyed=!0;this.destroyCapability=(0,_util.createPromiseCapability)();this._passwordCapability&&this._passwordCapability.reject(new Error("Worker was destroyed during onPassword callback"));var r,a=[],o=_createForOfIteratorHelper(this.pageCache);try{for(o.s();!(r=o.n()).done;){var i=r.value;i&&a.push(i._destroy())}}catch(t){o.e(t)}finally{o.f()}this.pageCache.length=0;this.pagePromises.length=0;this.hasOwnProperty("annotationStorage")&&this.annotationStorage.resetModified();var l=this.messageHandler.sendWithPromise("Terminate",null);a.push(l);Promise.all(a).then((function(){t.commonObjs.clear();t.fontLoader.clear();t._getFieldObjectsPromise=null;t._hasJSActionsPromise=null;t._networkStream&&t._networkStream.cancelAllRequests(new _util.AbortException("Worker was terminated."));if(t.messageHandler){t.messageHandler.destroy();t.messageHandler=null}t.destroyCapability.resolve()}),this.destroyCapability.reject);return this.destroyCapability.promise}},{key:"setupMessageHandler",value:function setupMessageHandler(){var t=this,r=this.messageHandler,a=this.loadingTask;r.on("GetReader",(function(r,a){(0,_util.assert)(t._networkStream,"GetReader - no `IPDFStream` instance available.");t._fullReader=t._networkStream.getFullReader();t._fullReader.onProgress=function(r){t._lastProgress={loaded:r.loaded,total:r.total}};a.onPull=function(){t._fullReader.read().then((function(t){var r=t.value;if(t.done)a.close();else{(0,_util.assert)((0,_util.isArrayBuffer)(r),"GetReader - expected an ArrayBuffer.");a.enqueue(new Uint8Array(r),1,[r])}})).catch((function(t){a.error(t)}))};a.onCancel=function(r){t._fullReader.cancel(r);a.ready.catch((function(r){if(!t.destroyed)throw r}))}}));r.on("ReaderHeadersReady",(function(r){var o=(0,_util.createPromiseCapability)(),i=t._fullReader;i.headersReady.then((function(){if(!i.isStreamingSupported||!i.isRangeSupported){t._lastProgress&&a.onProgress&&a.onProgress(t._lastProgress);i.onProgress=function(t){a.onProgress&&a.onProgress({loaded:t.loaded,total:t.total})}}o.resolve({isStreamingSupported:i.isStreamingSupported,isRangeSupported:i.isRangeSupported,contentLength:i.contentLength})}),o.reject);return o.promise}));r.on("GetRangeReader",(function(r,a){(0,_util.assert)(t._networkStream,"GetRangeReader - no `IPDFStream` instance available.");var o=t._networkStream.getRangeReader(r.begin,r.end);if(o){a.onPull=function(){o.read().then((function(t){var r=t.value;if(t.done)a.close();else{(0,_util.assert)((0,_util.isArrayBuffer)(r),"GetRangeReader - expected an ArrayBuffer.");a.enqueue(new Uint8Array(r),1,[r])}})).catch((function(t){a.error(t)}))};a.onCancel=function(r){o.cancel(r);a.ready.catch((function(r){if(!t.destroyed)throw r}))}}else a.close()}));r.on("GetDoc",(function(r){var o=r.pdfInfo;t._numPages=o.numPages;t._htmlForXfa=o.htmlForXfa;delete o.htmlForXfa;a._capability.resolve(new PDFDocumentProxy(o,t))}));r.on("DocException",(function(t){var r;switch(t.name){case"PasswordException":r=new _util.PasswordException(t.message,t.code);break;case"InvalidPDFException":r=new _util.InvalidPDFException(t.message);break;case"MissingPDFException":r=new _util.MissingPDFException(t.message);break;case"UnexpectedResponseException":r=new _util.UnexpectedResponseException(t.message,t.status);break;case"UnknownErrorException":r=new _util.UnknownErrorException(t.message,t.details);break;default:(0,_util.unreachable)("DocException - expected a valid Error.")}a._capability.reject(r)}));r.on("PasswordRequest",(function(r){t._passwordCapability=(0,_util.createPromiseCapability)();if(a.onPassword){try{a.onPassword((function updatePassword(r){t._passwordCapability.resolve({password:r})}),r.code)}catch(r){t._passwordCapability.reject(r)}}else t._passwordCapability.reject(new _util.PasswordException(r.message,r.code));return t._passwordCapability.promise}));r.on("DataLoaded",(function(r){a.onProgress&&a.onProgress({loaded:r.length,total:r.length});t.downloadInfoCapability.resolve(r)}));r.on("StartRenderPage",(function(r){if(!t.destroyed){t.pageCache[r.pageIndex]._startRenderPage(r.transparency,r.cacheKey)}}));r.on("commonobj",(function(a){var o;if(!t.destroyed){var i=_slicedToArray(a,3),l=i[0],u=i[1],c=i[2];if(!t.commonObjs.has(l))switch(u){case"Font":var d=t._params;if("error"in c){var h=c.error;(0,_util.warn)("Error during font loading: ".concat(h));t.commonObjs.resolve(l,h);break}var p=null;d.pdfBug&&null!==(o=globalThis.FontInspector)&&void 0!==o&&o.enabled&&(p={registerFont:function registerFont(t,r){globalThis.FontInspector.fontAdded(t,r)}});var m=new _font_loader.FontFaceObject(c,{isEvalSupported:d.isEvalSupported,disableFontFace:d.disableFontFace,ignoreErrors:d.ignoreErrors,onUnsupportedFeature:t._onUnsupportedFeature.bind(t),fontRegistry:p});t.fontLoader.bind(m).catch((function(t){return r.sendWithPromise("FontFallback",{id:l})})).finally((function(){!d.fontExtraProperties&&m.data&&(m.data=null);t.commonObjs.resolve(l,m)}));break;case"FontPath":case"Image":t.commonObjs.resolve(l,c);break;default:throw new Error("Got unknown common object type ".concat(u))}}}));r.on("obj",(function(r){var a;if(!t.destroyed){var o=_slicedToArray(r,4),i=o[0],l=o[1],u=o[2],c=o[3],d=t.pageCache[l];if(!d.objs.has(i))switch(u){case"Image":d.objs.resolve(i,c);(null==c||null===(a=c.data)||void 0===a?void 0:a.length)>8e6&&(d.cleanupAfterRender=!0);break;case"Pattern":d.objs.resolve(i,c);break;default:throw new Error("Got unknown object type ".concat(u))}}}));r.on("DocProgress",(function(r){t.destroyed||a.onProgress&&a.onProgress({loaded:r.loaded,total:r.total})}));r.on("UnsupportedFeature",this._onUnsupportedFeature.bind(this));r.on("FetchBuiltInCMap",(function(r){return t.destroyed?Promise.reject(new Error("Worker was destroyed.")):t.CMapReaderFactory?t.CMapReaderFactory.fetch(r):Promise.reject(new Error("CMapReaderFactory not initialized, see the `useWorkerFetch` parameter."))}));r.on("FetchStandardFontData",(function(r){return t.destroyed?Promise.reject(new Error("Worker was destroyed.")):t.StandardFontDataFactory?t.StandardFontDataFactory.fetch(r):Promise.reject(new Error("StandardFontDataFactory not initialized, see the `useWorkerFetch` parameter."))}))}},{key:"_onUnsupportedFeature",value:function _onUnsupportedFeature(t){var r=t.featureId;this.destroyed||this.loadingTask.onUnsupportedFeature&&this.loadingTask.onUnsupportedFeature(r)}},{key:"getData",value:function getData(){return this.messageHandler.sendWithPromise("GetData",null)}},{key:"getPage",value:function getPage(t){var r=this;if(!Number.isInteger(t)||t<=0||t>this._numPages)return Promise.reject(new Error("Invalid page request"));var a=t-1;if(a in this.pagePromises)return this.pagePromises[a];var o=this.messageHandler.sendWithPromise("GetPage",{pageIndex:a}).then((function(t){if(r.destroyed)throw new Error("Transport destroyed");var o=new PDFPageProxy(a,t,r,r._params.ownerDocument,r._params.pdfBug);r.pageCache[a]=o;return o}));this.pagePromises[a]=o;return o}},{key:"getPageIndex",value:function getPageIndex(t){return this.messageHandler.sendWithPromise("GetPageIndex",{ref:t})}},{key:"getAnnotations",value:function getAnnotations(t,r){return this.messageHandler.sendWithPromise("GetAnnotations",{pageIndex:t,intent:r})}},{key:"saveDocument",value:function saveDocument(){var t,r,a=this;return this.messageHandler.sendWithPromise("SaveDocument",{isPureXfa:!!this._htmlForXfa,numPages:this._numPages,annotationStorage:this.annotationStorage.serializable,filename:null!==(t=null===(r=this._fullReader)||void 0===r?void 0:r.filename)&&void 0!==t?t:null}).finally((function(){a.annotationStorage.resetModified()}))}},{key:"getFieldObjects",value:function getFieldObjects(){return this._getFieldObjectsPromise||(this._getFieldObjectsPromise=this.messageHandler.sendWithPromise("GetFieldObjects",null))}},{key:"hasJSActions",value:function hasJSActions(){return this._hasJSActionsPromise||(this._hasJSActionsPromise=this.messageHandler.sendWithPromise("HasJSActions",null))}},{key:"getCalculationOrderIds",value:function getCalculationOrderIds(){return this.messageHandler.sendWithPromise("GetCalculationOrderIds",null)}},{key:"getDestinations",value:function getDestinations(){return this.messageHandler.sendWithPromise("GetDestinations",null)}},{key:"getDestination",value:function getDestination(t){return"string"!=typeof t?Promise.reject(new Error("Invalid destination request.")):this.messageHandler.sendWithPromise("GetDestination",{id:t})}},{key:"getPageLabels",value:function getPageLabels(){return this.messageHandler.sendWithPromise("GetPageLabels",null)}},{key:"getPageLayout",value:function getPageLayout(){return this.messageHandler.sendWithPromise("GetPageLayout",null)}},{key:"getPageMode",value:function getPageMode(){return this.messageHandler.sendWithPromise("GetPageMode",null)}},{key:"getViewerPreferences",value:function getViewerPreferences(){return this.messageHandler.sendWithPromise("GetViewerPreferences",null)}},{key:"getOpenAction",value:function getOpenAction(){return this.messageHandler.sendWithPromise("GetOpenAction",null)}},{key:"getAttachments",value:function getAttachments(){return this.messageHandler.sendWithPromise("GetAttachments",null)}},{key:"getJavaScript",value:function getJavaScript(){return this.messageHandler.sendWithPromise("GetJavaScript",null)}},{key:"getDocJSActions",value:function getDocJSActions(){return this.messageHandler.sendWithPromise("GetDocJSActions",null)}},{key:"getPageJSActions",value:function getPageJSActions(t){return this.messageHandler.sendWithPromise("GetPageJSActions",{pageIndex:t})}},{key:"getStructTree",value:function getStructTree(t){return this.messageHandler.sendWithPromise("GetStructTree",{pageIndex:t})}},{key:"getOutline",value:function getOutline(){return this.messageHandler.sendWithPromise("GetOutline",null)}},{key:"getOptionalContentConfig",value:function getOptionalContentConfig(){return this.messageHandler.sendWithPromise("GetOptionalContentConfig",null).then((function(t){return new _optional_content_config.OptionalContentConfig(t)}))}},{key:"getPermissions",value:function getPermissions(){return this.messageHandler.sendWithPromise("GetPermissions",null)}},{key:"getMetadata",value:function getMetadata(){var t=this;return this.messageHandler.sendWithPromise("GetMetadata",null).then((function(r){var a,o,i,l;return{info:r[0],metadata:r[1]?new _metadata.Metadata(r[1]):null,contentDispositionFilename:null!==(a=null===(o=t._fullReader)||void 0===o?void 0:o.filename)&&void 0!==a?a:null,contentLength:null!==(i=null===(l=t._fullReader)||void 0===l?void 0:l.contentLength)&&void 0!==i?i:null}}))}},{key:"getMarkInfo",value:function getMarkInfo(){return this.messageHandler.sendWithPromise("GetMarkInfo",null)}},{key:"getStats",value:function getStats(){return this.messageHandler.sendWithPromise("GetStats",null)}},{key:"startCleanup",value:(t=_asyncToGenerator(_regenerator.default.mark((function _callee4(){var t,r,a,o,i=arguments;return _regenerator.default.wrap((function _callee4$(l){for(;;)switch(l.prev=l.next){case 0:t=i.length>0&&void 0!==i[0]&&i[0];l.next=3;return this.messageHandler.sendWithPromise("Cleanup",null);case 3:if(!this.destroyed){l.next=5;break}return l.abrupt("return");case 5:r=0,a=this.pageCache.length;case 6:if(!(r<a)){l.next=16;break}if(o=this.pageCache[r]){l.next=10;break}return l.abrupt("continue",13);case 10:if(o.cleanup()){l.next=13;break}throw new Error("startCleanup: Page ".concat(r+1," is currently rendering."));case 13:r++;l.next=6;break;case 16:this.commonObjs.clear();t||this.fontLoader.clear();this._getFieldObjectsPromise=null;this._hasJSActionsPromise=null;case 20:case"end":return l.stop()}}),_callee4,this)}))),function startCleanup(){return t.apply(this,arguments)})},{key:"loadingParams",get:function get(){var t=this._params;return(0,_util.shadow)(this,"loadingParams",{disableAutoFetch:t.disableAutoFetch,enableXfa:t.enableXfa})}}]);var t;return WorkerTransport}(),PDFObjects=function(){function PDFObjects(){_classCallCheck(this,PDFObjects);this._objs=Object.create(null)}_createClass(PDFObjects,[{key:"_ensureObj",value:function _ensureObj(t){return this._objs[t]?this._objs[t]:this._objs[t]={capability:(0,_util.createPromiseCapability)(),data:null,resolved:!1}}},{key:"get",value:function get(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(r){this._ensureObj(t).capability.promise.then(r);return null}var a=this._objs[t];if(!a||!a.resolved)throw new Error("Requesting object that isn't resolved yet ".concat(t,"."));return a.data}},{key:"has",value:function has(t){var r=this._objs[t];return(null==r?void 0:r.resolved)||!1}},{key:"resolve",value:function resolve(t,r){var a=this._ensureObj(t);a.resolved=!0;a.data=r;a.capability.resolve(r)}},{key:"clear",value:function clear(){this._objs=Object.create(null)}}]);return PDFObjects}(),RenderTask=function(){function RenderTask(t){_classCallCheck(this,RenderTask);this._internalRenderTask=t;this.onContinue=null}_createClass(RenderTask,[{key:"promise",get:function get(){return this._internalRenderTask.capability.promise}},{key:"cancel",value:function cancel(){this._internalRenderTask.cancel()}}]);return RenderTask}();exports.RenderTask=RenderTask;var InternalRenderTask=function(){function InternalRenderTask(t){var r=t.callback,a=t.params,o=t.objs,i=t.commonObjs,l=t.operatorList,u=t.pageIndex,c=t.canvasFactory,d=t.useRequestAnimationFrame,h=void 0!==d&&d,p=t.pdfBug,m=void 0!==p&&p;_classCallCheck(this,InternalRenderTask);this.callback=r;this.params=a;this.objs=o;this.commonObjs=i;this.operatorListIdx=null;this.operatorList=l;this._pageIndex=u;this.canvasFactory=c;this._pdfBug=m;this.running=!1;this.graphicsReadyCallback=null;this.graphicsReady=!1;this._useRequestAnimationFrame=!0===h&&"undefined"!=typeof window;this.cancelled=!1;this.capability=(0,_util.createPromiseCapability)();this.task=new RenderTask(this);this._cancelBound=this.cancel.bind(this);this._continueBound=this._continue.bind(this);this._scheduleNextBound=this._scheduleNext.bind(this);this._nextBound=this._next.bind(this);this._canvas=a.canvasContext.canvas}_createClass(InternalRenderTask,[{key:"completed",get:function get(){return this.capability.promise.catch((function(){}))}},{key:"initializeGraphics",value:function initializeGraphics(t){var r,a=t.transparency,o=void 0!==a&&a,i=t.optionalContentConfig;if(!this.cancelled){if(this._canvas){if(InternalRenderTask.canvasInUse.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.");InternalRenderTask.canvasInUse.add(this._canvas)}if(this._pdfBug&&null!==(r=globalThis.StepperManager)&&void 0!==r&&r.enabled){this.stepper=globalThis.StepperManager.create(this._pageIndex);this.stepper.init(this.operatorList);this.stepper.nextBreakPoint=this.stepper.getNextBreakPoint()}var l=this.params,u=l.canvasContext,c=l.viewport,d=l.transform,h=l.imageLayer,p=l.background;this.gfx=new _canvas.CanvasGraphics(u,this.commonObjs,this.objs,this.canvasFactory,h,i);this.gfx.beginDrawing({transform:d,viewport:c,transparency:o,background:p});this.operatorListIdx=0;this.graphicsReady=!0;this.graphicsReadyCallback&&this.graphicsReadyCallback()}}},{key:"cancel",value:function cancel(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;this.running=!1;this.cancelled=!0;this.gfx&&this.gfx.endDrawing();this._canvas&&InternalRenderTask.canvasInUse.delete(this._canvas);this.callback(t||new _display_utils.RenderingCancelledException("Rendering cancelled, page ".concat(this._pageIndex+1),"canvas"))}},{key:"operatorListChanged",value:function operatorListChanged(){if(this.graphicsReady){this.stepper&&this.stepper.updateOperatorList(this.operatorList);this.running||this._continue()}else this.graphicsReadyCallback||(this.graphicsReadyCallback=this._continueBound)}},{key:"_continue",value:function _continue(){this.running=!0;this.cancelled||(this.task.onContinue?this.task.onContinue(this._scheduleNextBound):this._scheduleNext())}},{key:"_scheduleNext",value:function _scheduleNext(){var t=this;this._useRequestAnimationFrame?window.requestAnimationFrame((function(){t._nextBound().catch(t._cancelBound)})):Promise.resolve().then(this._nextBound).catch(this._cancelBound)}},{key:"_next",value:(t=_asyncToGenerator(_regenerator.default.mark((function _callee5(){return _regenerator.default.wrap((function _callee5$(t){for(;;)switch(t.prev=t.next){case 0:if(!this.cancelled){t.next=2;break}return t.abrupt("return");case 2:this.operatorListIdx=this.gfx.executeOperatorList(this.operatorList,this.operatorListIdx,this._continueBound,this.stepper);if(this.operatorListIdx===this.operatorList.argsArray.length){this.running=!1;if(this.operatorList.lastChunk){this.gfx.endDrawing();this._canvas&&InternalRenderTask.canvasInUse.delete(this._canvas);this.callback()}}case 4:case"end":return t.stop()}}),_callee5,this)}))),function _next(){return t.apply(this,arguments)})}],[{key:"canvasInUse",get:function get(){return(0,_util.shadow)(this,"canvasInUse",new WeakSet)}}]);var t;return InternalRenderTask}(),version="2.11.338";exports.version=version;var build="dedff3c98";exports.build=build},(t,r,a)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.FontLoader=r.FontFaceObject=void 0;var o=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(a(2)),i=a(4);function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var a,o=_getPrototypeOf(t);if(r){var i=_getPrototypeOf(this).constructor;a=Reflect.construct(o,arguments,i)}else a=o.apply(this,arguments);return _possibleConstructorReturn(this,a)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function asyncGeneratorStep(t,r,a,o,i,l,u){try{var c=t[l](u),d=c.value}catch(t){a(t);return}c.done?r(d):Promise.resolve(d).then(o,i)}function _createForOfIteratorHelper(t,r){var a="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!a){if(Array.isArray(t)||(a=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);if("Map"===a||"Set"===a)return Array.from(t);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){a&&(t=a);var o=0,i=function F(){};return{s:i,n:function n(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function e(t){throw t},f:i}}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 l,u=!0,c=!1;return{s:function s(){a=a.call(t)},n:function n(){var t=a.next();u=t.done;return t},e:function e(t){c=!0;l=t},f:function f(){try{u||null==a.return||a.return()}finally{if(c)throw l}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}var l,u=function(){function BaseFontLoader(t){var r=t.docId,a=t.onUnsupportedFeature,o=t.ownerDocument,l=void 0===o?globalThis.document:o;t.styleElement;_classCallCheck(this,BaseFontLoader);this.constructor===BaseFontLoader&&(0,i.unreachable)("Cannot initialize BaseFontLoader.");this.docId=r;this._onUnsupportedFeature=a;this._document=l;this.nativeFontFaces=[];this.styleElement=null}_createClass(BaseFontLoader,[{key:"addNativeFontFace",value:function addNativeFontFace(t){this.nativeFontFaces.push(t);this._document.fonts.add(t)}},{key:"insertRule",value:function insertRule(t){var r=this.styleElement;if(!r){(r=this.styleElement=this._document.createElement("style")).id="PDFJS_FONT_STYLE_TAG_".concat(this.docId);this._document.documentElement.getElementsByTagName("head")[0].appendChild(r)}var a=r.sheet;a.insertRule(t,a.cssRules.length)}},{key:"clear",value:function clear(){var t,r=_createForOfIteratorHelper(this.nativeFontFaces);try{for(r.s();!(t=r.n()).done;){var a=t.value;this._document.fonts.delete(a)}}catch(t){r.e(t)}finally{r.f()}this.nativeFontFaces.length=0;if(this.styleElement){this.styleElement.remove();this.styleElement=null}}},{key:"bind",value:(t=function _asyncToGenerator(t){return function(){var r=this,a=arguments;return new Promise((function(o,i){var l=t.apply(r,a);function _next(t){asyncGeneratorStep(l,o,i,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(l,o,i,_next,_throw,"throw",t)}_next(void 0)}))}}(o.default.mark((function _callee(t){var r,a,l=this;return o.default.wrap((function _callee$(o){for(;;)switch(o.prev=o.next){case 0:if(!t.attached&&!t.missingFile){o.next=2;break}return o.abrupt("return");case 2:t.attached=!0;if(!this.isFontLoadingAPISupported){o.next=19;break}if(!(r=t.createNativeFontFace())){o.next=18;break}this.addNativeFontFace(r);o.prev=7;o.next=10;return r.loaded;case 10:o.next=18;break;case 12:o.prev=12;o.t0=o.catch(7);this._onUnsupportedFeature({featureId:i.UNSUPPORTED_FEATURES.errorFontLoadNative});(0,i.warn)("Failed to load font '".concat(r.family,"': '").concat(o.t0,"'."));t.disableFontFace=!0;throw o.t0;case 18:return o.abrupt("return");case 19:if(!(a=t.createFontFaceRule())){o.next=26;break}this.insertRule(a);if(!this.isSyncFontLoadingSupported){o.next=24;break}return o.abrupt("return");case 24:o.next=26;return new Promise((function(r){var o=l._queueLoadingCallback(r);l._prepareFontLoadEvent([a],[t],o)}));case 26:case"end":return o.stop()}}),_callee,this,[[7,12]])}))),function bind(r){return t.apply(this,arguments)})},{key:"_queueLoadingCallback",value:function _queueLoadingCallback(t){(0,i.unreachable)("Abstract method `_queueLoadingCallback`.")}},{key:"isFontLoadingAPISupported",get:function get(){var t,r=!(null===(t=this._document)||void 0===t||!t.fonts);return(0,i.shadow)(this,"isFontLoadingAPISupported",r)}},{key:"isSyncFontLoadingSupported",get:function get(){(0,i.unreachable)("Abstract method `isSyncFontLoadingSupported`.")}},{key:"_loadTestFont",get:function get(){(0,i.unreachable)("Abstract method `_loadTestFont`.")}},{key:"_prepareFontLoadEvent",value:function _prepareFontLoadEvent(t,r,a){(0,i.unreachable)("Abstract method `_prepareFontLoadEvent`.")}}]);var t;return BaseFontLoader}();r.FontLoader=l;r.FontLoader=l=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(GenericFontLoader,t);var r=_createSuper(GenericFontLoader);function GenericFontLoader(t){var a;_classCallCheck(this,GenericFontLoader);(a=r.call(this,t)).loadingContext={requests:[],nextRequestId:0};a.loadTestFontId=0;return a}_createClass(GenericFontLoader,[{key:"isSyncFontLoadingSupported",get:function get(){var t=!1;if("undefined"==typeof navigator)t=!0;else{var r=/Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent);(null==r?void 0:r[1])>=14&&(t=!0)}return(0,i.shadow)(this,"isSyncFontLoadingSupported",t)}},{key:"_queueLoadingCallback",value:function _queueLoadingCallback(t){var r=this.loadingContext,a={id:"pdfjs-font-loading-".concat(r.nextRequestId++),done:!1,complete:function completeRequest(){(0,i.assert)(!a.done,"completeRequest() cannot be called twice.");a.done=!0;for(;r.requests.length>0&&r.requests[0].done;){var t=r.requests.shift();setTimeout(t.callback,0)}},callback:t};r.requests.push(a);return a}},{key:"_loadTestFont",get:function get(){return(0,i.shadow)(this,"_loadTestFont",function getLoadTestFont(){return atob("T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQAFQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAAALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgAAAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACMAooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4DIP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAAAAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUAAQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgABAAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABYAAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAAAC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAAAAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQACAQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTjFQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==")}())}},{key:"_prepareFontLoadEvent",value:function _prepareFontLoadEvent(t,r,a){var o,l,u=this;function int32(t,r){return t.charCodeAt(r)<<24|t.charCodeAt(r+1)<<16|t.charCodeAt(r+2)<<8|255&t.charCodeAt(r+3)}function spliceString(t,r,a,o){return t.substring(0,r)+o+t.substring(r+a)}var c=this._document.createElement("canvas");c.width=1;c.height=1;var d=c.getContext("2d"),h=0;var p="lt".concat(Date.now()).concat(this.loadTestFontId++),m=this._loadTestFont,y=1482184792,v=int32(m=spliceString(m,976,p.length,p),16);for(o=0,l=p.length-3;o<l;o+=4)v=v-y+int32(p,o)|0;o<p.length&&(v=v-y+int32(p+"XXX",o)|0);m=spliceString(m,16,4,(0,i.string32)(v));var g="url(data:font/opentype;base64,".concat(btoa(m),");"),b='@font-face {font-family:"'.concat(p,'";src:').concat(g,"}");this.insertRule(b);var _,S=[],A=_createForOfIteratorHelper(r);try{for(A.s();!(_=A.n()).done;){var C=_.value;S.push(C.loadedName)}}catch(t){A.e(t)}finally{A.f()}S.push(p);var k=this._document.createElement("div");k.style.visibility="hidden";k.style.width=k.style.height="10px";k.style.position="absolute";k.style.top=k.style.left="0px";for(var R=0,w=S;R<w.length;R++){var P=w[R],x=this._document.createElement("span");x.textContent="Hi";x.style.fontFamily=P;k.appendChild(x)}this._document.body.appendChild(k);!function isFontReady(t,r){if(++h>30){(0,i.warn)("Load test font never loaded.");r()}else{d.font="30px "+t;d.fillText(".",0,20);d.getImageData(0,0,1,1).data[3]>0?r():setTimeout(isFontReady.bind(null,t,r))}}(p,(function(){u._document.body.removeChild(k);a.complete()}))}}]);return GenericFontLoader}(u);var c=function(){function FontFaceObject(t,r){var a=r.isEvalSupported,o=void 0===a||a,i=r.disableFontFace,l=void 0!==i&&i,u=r.ignoreErrors,c=void 0!==u&&u,d=r.onUnsupportedFeature,h=r.fontRegistry,p=void 0===h?null:h;_classCallCheck(this,FontFaceObject);this.compiledGlyphs=Object.create(null);for(var m in t)this[m]=t[m];this.isEvalSupported=!1!==o;this.disableFontFace=!0===l;this.ignoreErrors=!0===c;this._onUnsupportedFeature=d;this.fontRegistry=p}_createClass(FontFaceObject,[{key:"createNativeFontFace",value:function createNativeFontFace(){if(!this.data||this.disableFontFace)return null;var t;if(this.cssFontInfo){var r={weight:this.cssFontInfo.fontWeight};this.cssFontInfo.italicAngle&&(r.style="oblique ".concat(this.cssFontInfo.italicAngle,"deg"));t=new FontFace(this.cssFontInfo.fontFamily,this.data,r)}else t=new FontFace(this.loadedName,this.data,{});this.fontRegistry&&this.fontRegistry.registerFont(this);return t}},{key:"createFontFaceRule",value:function createFontFaceRule(){if(!this.data||this.disableFontFace)return null;var t,r=(0,i.bytesToString)(this.data),a="url(data:".concat(this.mimetype,";base64,").concat(btoa(r),");");if(this.cssFontInfo){var o="font-weight: ".concat(this.cssFontInfo.fontWeight,";");this.cssFontInfo.italicAngle&&(o+="font-style: oblique ".concat(this.cssFontInfo.italicAngle,"deg;"));t='@font-face {font-family:"'.concat(this.cssFontInfo.fontFamily,'";').concat(o,"src:").concat(a,"}")}else t='@font-face {font-family:"'.concat(this.loadedName,'";src:').concat(a,"}");this.fontRegistry&&this.fontRegistry.registerFont(this,a);return t}},{key:"getPathGenerator",value:function getPathGenerator(t,r){if(void 0!==this.compiledGlyphs[r])return this.compiledGlyphs[r];var a;try{a=t.get(this.loadedName+"_path_"+r)}catch(t){if(!this.ignoreErrors)throw t;this._onUnsupportedFeature({featureId:i.UNSUPPORTED_FEATURES.errorFontGetPath});(0,i.warn)('getPathGenerator - ignoring character: "'.concat(t,'".'));return this.compiledGlyphs[r]=function(t,r){}}if(this.isEvalSupported&&i.IsEvalSupportedCached.value){var o,l=[],u=_createForOfIteratorHelper(a);try{for(u.s();!(o=u.n()).done;){var c=o.value,d=void 0!==c.args?c.args.join(","):"";l.push("c.",c.cmd,"(",d,");\n")}}catch(t){u.e(t)}finally{u.f()}return this.compiledGlyphs[r]=new Function("c","size",l.join(""))}return this.compiledGlyphs[r]=function(t,r){var o,i=_createForOfIteratorHelper(a);try{for(i.s();!(o=i.n()).done;){var l=o.value;"scale"===l.cmd&&(l.args=[r,-r]);t[l.cmd].apply(t,l.args)}}catch(t){i.e(t)}finally{i.f()}}}}]);return FontFaceObject}();r.FontFaceObject=c},(t,r,a)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.NodeStandardFontDataFactory=r.NodeCMapReaderFactory=r.NodeCanvasFactory=void 0;var o=a(118),i=a(6),l=a(4);function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var a,o=_getPrototypeOf(t);if(r){var i=_getPrototypeOf(this).constructor;a=Reflect.construct(o,arguments,i)}else a=o.apply(this,arguments);return _possibleConstructorReturn(this,a)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}var u=function NodeCanvasFactory(){_classCallCheck(this,NodeCanvasFactory);(0,l.unreachable)("Not implemented: NodeCanvasFactory")};r.NodeCanvasFactory=u;var c=function NodeCMapReaderFactory(){_classCallCheck(this,NodeCMapReaderFactory);(0,l.unreachable)("Not implemented: NodeCMapReaderFactory")};r.NodeCMapReaderFactory=c;var d=function NodeStandardFontDataFactory(){_classCallCheck(this,NodeStandardFontDataFactory);(0,l.unreachable)("Not implemented: NodeStandardFontDataFactory")};r.NodeStandardFontDataFactory=d;if(i.isNodeJS){var h=function fetchData(t){return new Promise((function(r,a){require("fs").readFile(t,(function(t,o){!t&&o?r(new Uint8Array(o)):a(new Error(t))}))}))};r.NodeCanvasFactory=u=function(t){_inherits(NodeCanvasFactory,t);var r=_createSuper(NodeCanvasFactory);function NodeCanvasFactory(){_classCallCheck(this,NodeCanvasFactory);return r.apply(this,arguments)}_createClass(NodeCanvasFactory,[{key:"_createCanvas",value:function _createCanvas(t,r){return require("canvas").createCanvas(t,r)}}]);return NodeCanvasFactory}(o.BaseCanvasFactory);r.NodeCMapReaderFactory=c=function(t){_inherits(NodeCMapReaderFactory,t);var r=_createSuper(NodeCMapReaderFactory);function NodeCMapReaderFactory(){_classCallCheck(this,NodeCMapReaderFactory);return r.apply(this,arguments)}_createClass(NodeCMapReaderFactory,[{key:"_fetchData",value:function _fetchData(t,r){return h(t).then((function(t){return{cMapData:t,compressionType:r}}))}}]);return NodeCMapReaderFactory}(o.BaseCMapReaderFactory);r.NodeStandardFontDataFactory=d=function(t){_inherits(NodeStandardFontDataFactory,t);var r=_createSuper(NodeStandardFontDataFactory);function NodeStandardFontDataFactory(){_classCallCheck(this,NodeStandardFontDataFactory);return r.apply(this,arguments)}_createClass(NodeStandardFontDataFactory,[{key:"_fetchData",value:function _fetchData(t){return h(t)}}]);return NodeStandardFontDataFactory}(o.BaseStandardFontDataFactory)}},(t,r,a)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.AnnotationStorage=void 0;var o=a(4);function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var a=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==a)return;var o,i,l=[],u=!0,c=!1;try{for(a=a.call(t);!(u=(o=a.next()).done);u=!0){l.push(o.value);if(r&&l.length===r)break}}catch(t){c=!0;i=t}finally{try{u||null==a.return||a.return()}finally{if(c)throw i}}return l}(t,r)||function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);if("Map"===a||"Set"===a)return Array.from(t);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return _arrayLikeToArray(t,r)}(t,r)||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 _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}var i=function(){function AnnotationStorage(){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,AnnotationStorage);this._storage=new Map;this._timeStamp=Date.now();this._modified=!1;this.onSetModified=null;this.onResetModified=null}!function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}(AnnotationStorage,[{key:"getValue",value:function getValue(t,r){var a=this._storage.get(t);return void 0===a?r:Object.assign(r,a)}},{key:"setValue",value:function setValue(t,r){var a=this._storage.get(t),o=!1;if(void 0!==a)for(var i=0,l=Object.entries(r);i<l.length;i++){var u=_slicedToArray(l[i],2),c=u[0],d=u[1];if(a[c]!==d){o=!0;a[c]=d}}else{o=!0;this._storage.set(t,r)}if(o){this._timeStamp=Date.now();this._setModified()}}},{key:"getAll",value:function getAll(){return this._storage.size>0?(0,o.objectFromMap)(this._storage):null}},{key:"size",get:function get(){return this._storage.size}},{key:"_setModified",value:function _setModified(){if(!this._modified){this._modified=!0;"function"==typeof this.onSetModified&&this.onSetModified()}}},{key:"resetModified",value:function resetModified(){if(this._modified){this._modified=!1;"function"==typeof this.onResetModified&&this.onResetModified()}}},{key:"serializable",get:function get(){return this._storage.size>0?this._storage:null}},{key:"lastModified",get:function get(){return this._timeStamp.toString()}}]);return AnnotationStorage}();r.AnnotationStorage=i},(t,r,a)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.CanvasGraphics=void 0;var o=a(4),i=a(124),l=a(1);function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}function _createForOfIteratorHelper(t,r){var a="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!a){if(Array.isArray(t)||(a=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){a&&(t=a);var o=0,i=function F(){};return{s:i,n:function n(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function e(t){throw t},f:i}}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 l,u=!0,c=!1;return{s:function s(){a=a.call(t)},n:function n(){var t=a.next();u=t.done;return t},e:function e(t){c=!0;l=t},f:function f(){try{u||null==a.return||a.return()}finally{if(c)throw l}}}}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var a=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==a)return;var o,i,l=[],u=!0,c=!1;try{for(a=a.call(t);!(u=(o=a.next()).done);u=!0){l.push(o.value);if(r&&l.length===r)break}}catch(t){c=!0;i=t}finally{try{u||null==a.return||a.return()}finally{if(c)throw i}}return l}(t,r)||_unsupportedIterableToArray(t,r)||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 _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);return"Map"===a||"Set"===a?Array.from(t):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}var u=4096,c=16;function addContextCurrentTransform(t){if(!t.mozCurrentTransform){t._originalSave=t.save;t._originalRestore=t.restore;t._originalRotate=t.rotate;t._originalScale=t.scale;t._originalTranslate=t.translate;t._originalTransform=t.transform;t._originalSetTransform=t.setTransform;t._originalResetTransform=t.resetTransform;t._transformMatrix=t._transformMatrix||[1,0,0,1,0,0];t._transformStack=[];try{var r=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(t),"lineWidth");t._setLineWidth=r.set;t._getLineWidth=r.get;Object.defineProperty(t,"lineWidth",{set:function setLineWidth(t){this._setLineWidth(1.000001*t)},get:function getLineWidth(){return this._getLineWidth()}})}catch(t){}Object.defineProperty(t,"mozCurrentTransform",{get:function getCurrentTransform(){return this._transformMatrix}});Object.defineProperty(t,"mozCurrentTransformInverse",{get:function getCurrentTransformInverse(){var t=_slicedToArray(this._transformMatrix,6),r=t[0],a=t[1],o=t[2],i=t[3],l=t[4],u=t[5],c=r*i-a*o,d=a*o-r*i;return[i/c,a/d,o/d,r/c,(i*l-o*u)/d,(a*l-r*u)/c]}});t.save=function ctxSave(){var t=this._transformMatrix;this._transformStack.push(t);this._transformMatrix=t.slice(0,6);this._originalSave()};t.restore=function ctxRestore(){var t=this._transformStack.pop();if(t){this._transformMatrix=t;this._originalRestore()}};t.translate=function ctxTranslate(t,r){var a=this._transformMatrix;a[4]=a[0]*t+a[2]*r+a[4];a[5]=a[1]*t+a[3]*r+a[5];this._originalTranslate(t,r)};t.scale=function ctxScale(t,r){var a=this._transformMatrix;a[0]*=t;a[1]*=t;a[2]*=r;a[3]*=r;this._originalScale(t,r)};t.transform=function ctxTransform(r,a,o,i,l,u){var c=this._transformMatrix;this._transformMatrix=[c[0]*r+c[2]*a,c[1]*r+c[3]*a,c[0]*o+c[2]*i,c[1]*o+c[3]*i,c[0]*l+c[2]*u+c[4],c[1]*l+c[3]*u+c[5]];t._originalTransform(r,a,o,i,l,u)};t.setTransform=function ctxSetTransform(r,a,o,i,l,u){this._transformMatrix=[r,a,o,i,l,u];t._originalSetTransform(r,a,o,i,l,u)};t.resetTransform=function ctxResetTransform(){this._transformMatrix=[1,0,0,1,0,0];t._originalResetTransform()};t.rotate=function ctxRotate(t){var r=Math.cos(t),a=Math.sin(t),o=this._transformMatrix;this._transformMatrix=[o[0]*r+o[2]*a,o[1]*r+o[3]*a,o[0]*-a+o[2]*r,o[1]*-a+o[3]*r,o[4],o[5]];this._originalRotate(t)}}}var d=function(){function CachedCanvases(t){_classCallCheck(this,CachedCanvases);this.canvasFactory=t;this.cache=Object.create(null)}_createClass(CachedCanvases,[{key:"getCanvas",value:function getCanvas(t,r,a,o){var i;if(void 0!==this.cache[t]){i=this.cache[t];this.canvasFactory.reset(i,r,a);i.context.setTransform(1,0,0,1,0,0)}else{i=this.canvasFactory.create(r,a);this.cache[t]=i}o&&addContextCurrentTransform(i.context);return i}},{key:"clear",value:function clear(){for(var t in this.cache){var r=this.cache[t];this.canvasFactory.destroy(r);delete this.cache[t]}}}]);return CachedCanvases}(),h=function(){function LRUCache(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;_classCallCheck(this,LRUCache);this._cache=new Map;this._maxSize=t}_createClass(LRUCache,[{key:"has",value:function has(t){return this._cache.has(t)}},{key:"get",value:function get(t){if(this._cache.has(t)){var r=this._cache.get(t);this._cache.delete(t);this._cache.set(t,r)}return this._cache.get(t)}},{key:"set",value:function set(t,r){if(!(this._maxSize<=0)){this._cache.size+1>this._maxSize&&this._cache.delete(this._cache.keys().next().value);this._cache.set(t,r)}}},{key:"clear",value:function clear(){this._cache.clear()}}]);return LRUCache}();var p=function(){function CanvasExtraState(){_classCallCheck(this,CanvasExtraState);this.alphaIsShape=!1;this.fontSize=0;this.fontSizeScale=1;this.textMatrix=o.IDENTITY_MATRIX;this.textMatrixScale=1;this.fontMatrix=o.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=o.TextRenderingMode.FILL;this.textRise=0;this.fillColor="#000000";this.strokeColor="#000000";this.patternFill=!1;this.fillAlpha=1;this.strokeAlpha=1;this.lineWidth=1;this.activeSMask=null;this.resumeSMaskCtx=null;this.transferMaps=null}_createClass(CanvasExtraState,[{key:"clone",value:function clone(){return Object.create(this)}},{key:"setCurrentPoint",value:function setCurrentPoint(t,r){this.x=t;this.y=r}}]);return CanvasExtraState}();function putBinaryImageData(t,r){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if("undefined"!=typeof ImageData&&r instanceof ImageData)t.putImageData(r,0,0);else{var i,l,u,d,h,p,m,y,v,g=r.height,b=r.width,_=g%c,S=(g-_)/c,A=0===_?S:S+1,C=t.createImageData(b,c),k=0,R=r.data,w=C.data;if(a)switch(a.length){case 1:p=a[0];m=a[0];y=a[0];v=a[0];break;case 4:p=a[0];m=a[1];y=a[2];v=a[3]}if(r.kind===o.ImageKind.GRAYSCALE_1BPP){var P=R.byteLength,x=new Uint32Array(w.buffer,0,w.byteLength>>2),T=x.length,E=b+7>>3,O=4294967295,I=o.IsLittleEndianCached.value?4278190080:255;if(v&&255===v[0]&&0===v[255]){var D=[I,O];O=D[0];I=D[1]}for(l=0;l<A;l++){d=l<S?c:_;i=0;for(u=0;u<d;u++){for(var M=P-k,j=0,L=M>E?b:8*M-7,W=-8&L,B=0,N=0;j<W;j+=8){N=R[k++];x[i++]=128&N?O:I;x[i++]=64&N?O:I;x[i++]=32&N?O:I;x[i++]=16&N?O:I;x[i++]=8&N?O:I;x[i++]=4&N?O:I;x[i++]=2&N?O:I;x[i++]=1&N?O:I}for(;j<L;j++){if(0===B){N=R[k++];B=128}x[i++]=N&B?O:I;B>>=1}}for(;i<T;)x[i++]=0;t.putImageData(C,0,l*c)}}else if(r.kind===o.ImageKind.RGBA_32BPP){var q=!!(p||m||y);u=0;h=b*c*4;for(l=0;l<S;l++){w.set(R.subarray(k,k+h));k+=h;if(q)for(var U=0;U<h;U+=4){p&&(w[U+0]=p[w[U+0]]);m&&(w[U+1]=m[w[U+1]]);y&&(w[U+2]=y[w[U+2]])}t.putImageData(C,0,u);u+=c}if(l<A){h=b*_*4;w.set(R.subarray(k,k+h));if(q)for(var G=0;G<h;G+=4){p&&(w[G+0]=p[w[G+0]]);m&&(w[G+1]=m[w[G+1]]);y&&(w[G+2]=y[w[G+2]])}t.putImageData(C,0,u)}}else{if(r.kind!==o.ImageKind.RGB_24BPP)throw new Error("bad image kind: ".concat(r.kind));var H=!!(p||m||y);h=b*(d=c);for(l=0;l<A;l++){l>=S&&(h=b*(d=_));i=0;for(u=h;u--;){w[i++]=R[k++];w[i++]=R[k++];w[i++]=R[k++];w[i++]=255}if(H)for(var z=0;z<i;z+=4){p&&(w[z+0]=p[w[z+0]]);m&&(w[z+1]=m[w[z+1]]);y&&(w[z+2]=y[w[z+2]])}t.putImageData(C,0,l*c)}}}}function putBinaryImageMask(t,r){for(var a=r.height,o=r.width,i=a%c,l=(a-i)/c,u=0===i?l:l+1,d=t.createImageData(o,c),h=0,p=r.data,m=d.data,y=0;y<u;y++){for(var v=y<l?c:i,g=3,b=0;b<v;b++)for(var _=void 0,S=0,A=0;A<o;A++){if(!S){_=p[h++];S=128}m[g]=_&S?0:255;g+=4;S>>=1}t.putImageData(d,0,y*c)}}function copyCtxState(t,r){for(var a=["strokeStyle","fillStyle","fillRule","globalAlpha","lineWidth","lineCap","lineJoin","miterLimit","globalCompositeOperation","font"],o=0,i=a.length;o<i;o++){var l=a[o];void 0!==t[l]&&(r[l]=t[l])}if(void 0!==t.setLineDash){r.setLineDash(t.getLineDash());r.lineDashOffset=t.lineDashOffset}}function resetCtxToDefault(t){t.strokeStyle="#000000";t.fillStyle="#000000";t.fillRule="nonzero";t.globalAlpha=1;t.lineWidth=1;t.lineCap="butt";t.lineJoin="miter";t.miterLimit=10;t.globalCompositeOperation="source-over";t.font="10px sans-serif";if(void 0!==t.setLineDash){t.setLineDash([]);t.lineDashOffset=0}}function composeSMaskBackdrop(t,r,a,o){for(var i=t.length,l=3;l<i;l+=4){var u=t[l];if(0===u){t[l-3]=r;t[l-2]=a;t[l-1]=o}else if(u<255){var c=255-u;t[l-3]=t[l-3]*u+r*c>>8;t[l-2]=t[l-2]*u+a*c>>8;t[l-1]=t[l-1]*u+o*c>>8}}}function composeSMaskAlpha(t,r,a){for(var o=t.length,i=3;i<o;i+=4){var l=a?a[t[i]]:t[i];r[i]=r[i]*l*.00392156862745098|0}}function composeSMaskLuminosity(t,r,a){for(var o=t.length,i=3;i<o;i+=4){var l=77*t[i-3]+152*t[i-2]+28*t[i-1];r[i]=a?r[i]*a[l>>8]>>8:r[i]*l>>16}}function composeSMask(t,r,a){var o=r.canvas,i=r.context;t.setTransform(r.scaleX,0,0,r.scaleY,r.offsetX,r.offsetY);!function genericComposeSMask(t,r,a,o,i,l,u){var c,d=!!l,h=d?l[0]:0,p=d?l[1]:0,m=d?l[2]:0;c="Luminosity"===i?composeSMaskLuminosity:composeSMaskAlpha;for(var y=Math.min(o,Math.ceil(1048576/a)),v=0;v<o;v+=y){var g=Math.min(y,o-v),b=t.getImageData(0,v,a,g),_=r.getImageData(0,v,a,g);d&&composeSMaskBackdrop(b.data,h,p,m);c(b.data,_.data,u);t.putImageData(_,0,v)}}(i,a,o.width,o.height,r.subtype,r.backdrop,r.transferMap);t.drawImage(o,0,0)}function getImageSmoothingEnabled(t,r){var a=o.Util.singularValueDecompose2dScale(t);a[0]=Math.fround(a[0]);a[1]=Math.fround(a[1]);var i=Math.fround((globalThis.devicePixelRatio||1)*l.PixelsPerInch.PDF_TO_CSS_UNITS);return void 0!==r?r:a[0]<=i||a[1]<=i}var m=["butt","round","square"],y=["miter","round","bevel"],v={},g={},b=function(){function CanvasGraphics(t,r,a,o,i,l){_classCallCheck(this,CanvasGraphics);this.ctx=t;this.current=new p;this.stateStack=[];this.pendingClip=null;this.pendingEOFill=!1;this.res=null;this.xobjs=null;this.commonObjs=r;this.objs=a;this.canvasFactory=o;this.imageLayer=i;this.groupStack=[];this.processingType3=null;this.baseTransform=null;this.baseTransformStack=[];this.groupLevel=0;this.smaskStack=[];this.smaskCounter=0;this.tempSMask=null;this.contentVisible=!0;this.markedContentStack=[];this.optionalContentConfig=l;this.cachedCanvases=new d(this.canvasFactory);this.cachedCanvasPatterns=new h(2);this.cachedPatterns=new Map;t&&addContextCurrentTransform(t);this._cachedGetSinglePixelWidth=null}_createClass(CanvasGraphics,[{key:"beginDrawing",value:function beginDrawing(t){var r=t.transform,a=t.viewport,o=t.transparency,i=void 0!==o&&o,l=t.background,u=void 0===l?null:l,c=this.ctx.canvas.width,d=this.ctx.canvas.height;this.ctx.save();this.ctx.fillStyle=u||"rgb(255, 255, 255)";this.ctx.fillRect(0,0,c,d);this.ctx.restore();if(i){var h=this.cachedCanvases.getCanvas("transparent",c,d,!0);this.compositeCtx=this.ctx;this.transparentCanvas=h.canvas;this.ctx=h.context;this.ctx.save();this.ctx.transform.apply(this.ctx,this.compositeCtx.mozCurrentTransform)}this.ctx.save();resetCtxToDefault(this.ctx);r&&this.ctx.transform.apply(this.ctx,r);this.ctx.transform.apply(this.ctx,a.transform);this.baseTransform=this.ctx.mozCurrentTransform.slice();this._combinedScaleFactor=Math.hypot(this.baseTransform[0],this.baseTransform[2]);this.imageLayer&&this.imageLayer.beginLayout()}},{key:"executeOperatorList",value:function executeOperatorList(t,r,a,i){var l=t.argsArray,u=t.fnArray,c=r||0,d=l.length;if(d===c)return c;for(var h,p=d-c>10&&"function"==typeof a,m=p?Date.now()+15:0,y=0,v=this.commonObjs,g=this.objs;;){if(void 0!==i&&c===i.nextBreakPoint){i.breakIt(c,a);return c}if((h=u[c])!==o.OPS.dependency)this[h].apply(this,l[c]);else{var b,_=_createForOfIteratorHelper(l[c]);try{for(_.s();!(b=_.n()).done;){var S=b.value,A=S.startsWith("g_")?v:g;if(!A.has(S)){A.get(S,a);return c}}}catch(t){_.e(t)}finally{_.f()}}if(++c===d)return c;if(p&&++y>10){if(Date.now()>m){a();return c}y=0}}}},{key:"endDrawing",value:function endDrawing(){for(;this.stateStack.length||null!==this.current.activeSMask;)this.restore();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.cachedCanvasPatterns.clear();this.cachedPatterns.clear();this.imageLayer&&this.imageLayer.endLayout()}},{key:"_scaleImage",value:function _scaleImage(t,r){for(var a,o,i=t.width,l=t.height,u=Math.max(Math.hypot(r[0],r[1]),1),c=Math.max(Math.hypot(r[2],r[3]),1),d=i,h=l,p="prescale1";u>2&&d>1||c>2&&h>1;){var m=d,y=h;u>2&&d>1&&(u/=d/(m=Math.ceil(d/2)));c>2&&h>1&&(c/=h/(y=Math.ceil(h/2)));(o=(a=this.cachedCanvases.getCanvas(p,m,y)).context).clearRect(0,0,m,y);o.drawImage(t,0,0,d,h,0,0,m,y);t=a.canvas;d=m;h=y;p="prescale1"===p?"prescale2":"prescale1"}return{img:t,paintWidth:d,paintHeight:h}}},{key:"_createMaskCanvas",value:function _createMaskCanvas(t){var r=this.ctx,a=t.width,i=t.height,l=this.current.fillColor,u=this.current.patternFill,c=this.cachedCanvases.getCanvas("maskCanvas",a,i);putBinaryImageMask(c.context,t);var d=r.mozCurrentTransform,h=o.Util.transform(d,[1/a,0,0,-1/i,0,0]);h=o.Util.transform(h,[1,0,0,1,0,-i]);var p=o.Util.applyTransform([0,0],h),m=o.Util.applyTransform([a,i],h),y=o.Util.normalizeRect([p[0],p[1],m[0],m[1]]),v=Math.ceil(y[2]-y[0]),g=Math.ceil(y[3]-y[1]),b=this.cachedCanvases.getCanvas("fillCanvas",v,g,!0),_=b.context,S=Math.min(p[0],m[0]),A=Math.min(p[1],m[1]);_.translate(-S,-A);_.transform.apply(_,h);var C=this._scaleImage(c.canvas,_.mozCurrentTransformInverse);_.imageSmoothingEnabled=getImageSmoothingEnabled(_.mozCurrentTransform,t.interpolate);_.drawImage(C.img,0,0,C.img.width,C.img.height,0,0,a,i);_.globalCompositeOperation="source-in";var k=o.Util.transform(_.mozCurrentTransformInverse,[1,0,0,1,-S,-A]);_.fillStyle=u?l.getPattern(r,this,k,!1):l;_.fillRect(0,0,a,i);return{canvas:b.canvas,offsetX:Math.round(S),offsetY:Math.round(A)}}},{key:"setLineWidth",value:function setLineWidth(t){this.current.lineWidth=t;this.ctx.lineWidth=t}},{key:"setLineCap",value:function setLineCap(t){this.ctx.lineCap=m[t]}},{key:"setLineJoin",value:function setLineJoin(t){this.ctx.lineJoin=y[t]}},{key:"setMiterLimit",value:function setMiterLimit(t){this.ctx.miterLimit=t}},{key:"setDash",value:function setDash(t,r){var a=this.ctx;if(void 0!==a.setLineDash){a.setLineDash(t);a.lineDashOffset=r}}},{key:"setRenderingIntent",value:function setRenderingIntent(t){}},{key:"setFlatness",value:function setFlatness(t){}},{key:"setGState",value:function setGState(t){for(var r=0,a=t.length;r<a;r++){var o=t[r],i=o[0],l=o[1];switch(i){case"LW":this.setLineWidth(l);break;case"LC":this.setLineCap(l);break;case"LJ":this.setLineJoin(l);break;case"ML":this.setMiterLimit(l);break;case"D":this.setDash(l[0],l[1]);break;case"RI":this.setRenderingIntent(l);break;case"FL":this.setFlatness(l);break;case"Font":this.setFont(l[0],l[1]);break;case"CA":this.current.strokeAlpha=o[1];break;case"ca":this.current.fillAlpha=o[1];this.ctx.globalAlpha=o[1];break;case"BM":this.ctx.globalCompositeOperation=l;break;case"SMask":this.current.activeSMask&&(this.stateStack.length>0&&this.stateStack[this.stateStack.length-1].activeSMask===this.current.activeSMask?this.suspendSMaskGroup():this.endSMaskGroup());this.current.activeSMask=l?this.tempSMask:null;this.current.activeSMask&&this.beginSMaskGroup();this.tempSMask=null;break;case"TR":this.current.transferMaps=l}}}},{key:"beginSMaskGroup",value:function beginSMaskGroup(){var t=this.current.activeSMask,r=t.canvas.width,a=t.canvas.height,o="smaskGroupAt"+this.groupLevel,i=this.cachedCanvases.getCanvas(o,r,a,!0),l=this.ctx,u=l.mozCurrentTransform;this.ctx.save();var c=i.context;c.scale(1/t.scaleX,1/t.scaleY);c.translate(-t.offsetX,-t.offsetY);c.transform.apply(c,u);t.startTransformInverse=c.mozCurrentTransformInverse;copyCtxState(l,c);this.ctx=c;this.setGState([["BM","source-over"],["ca",1],["CA",1]]);this.groupStack.push(l);this.groupLevel++}},{key:"suspendSMaskGroup",value:function suspendSMaskGroup(){var t=this.ctx;this.groupLevel--;this.ctx=this.groupStack.pop();composeSMask(this.ctx,this.current.activeSMask,t);this.ctx.restore();this.ctx.save();copyCtxState(t,this.ctx);this.current.resumeSMaskCtx=t;var r=o.Util.transform(this.current.activeSMask.startTransformInverse,t.mozCurrentTransform);this.ctx.transform.apply(this.ctx,r);t.save();t.setTransform(1,0,0,1,0,0);t.clearRect(0,0,t.canvas.width,t.canvas.height);t.restore()}},{key:"resumeSMaskGroup",value:function resumeSMaskGroup(){var t=this.current.resumeSMaskCtx,r=this.ctx;this.ctx=t;this.groupStack.push(r);this.groupLevel++}},{key:"endSMaskGroup",value:function endSMaskGroup(){var t=this.ctx;this.groupLevel--;this.ctx=this.groupStack.pop();composeSMask(this.ctx,this.current.activeSMask,t);this.ctx.restore();copyCtxState(t,this.ctx);var r=o.Util.transform(this.current.activeSMask.startTransformInverse,t.mozCurrentTransform);this.ctx.transform.apply(this.ctx,r)}},{key:"save",value:function save(){this.ctx.save();var t=this.current;this.stateStack.push(t);this.current=t.clone();this.current.resumeSMaskCtx=null}},{key:"restore",value:function restore(){this.current.resumeSMaskCtx&&this.resumeSMaskGroup();null===this.current.activeSMask||0!==this.stateStack.length&&this.stateStack[this.stateStack.length-1].activeSMask===this.current.activeSMask||this.endSMaskGroup();if(0!==this.stateStack.length){this.current=this.stateStack.pop();this.ctx.restore();this.pendingClip=null;this._cachedGetSinglePixelWidth=null}else this.current.activeSMask=null}},{key:"transform",value:function transform(t,r,a,o,i,l){this.ctx.transform(t,r,a,o,i,l);this._cachedGetSinglePixelWidth=null}},{key:"constructPath",value:function constructPath(t,r){for(var a=this.ctx,i=this.current,l=i.x,u=i.y,c=0,d=0,h=t.length;c<h;c++)switch(0|t[c]){case o.OPS.rectangle:l=r[d++];u=r[d++];var p=r[d++],m=r[d++],y=l+p,v=u+m;a.moveTo(l,u);if(0===p||0===m)a.lineTo(y,v);else{a.lineTo(y,u);a.lineTo(y,v);a.lineTo(l,v)}a.closePath();break;case o.OPS.moveTo:l=r[d++];u=r[d++];a.moveTo(l,u);break;case o.OPS.lineTo:l=r[d++];u=r[d++];a.lineTo(l,u);break;case o.OPS.curveTo:l=r[d+4];u=r[d+5];a.bezierCurveTo(r[d],r[d+1],r[d+2],r[d+3],l,u);d+=6;break;case o.OPS.curveTo2:a.bezierCurveTo(l,u,r[d],r[d+1],r[d+2],r[d+3]);l=r[d+2];u=r[d+3];d+=4;break;case o.OPS.curveTo3:l=r[d+2];u=r[d+3];a.bezierCurveTo(r[d],r[d+1],l,u,l,u);d+=4;break;case o.OPS.closePath:a.closePath()}i.setCurrentPoint(l,u)}},{key:"closePath",value:function closePath(){this.ctx.closePath()}},{key:"stroke",value:function stroke(t){t=void 0===t||t;var r=this.ctx,a=this.current.strokeColor;r.globalAlpha=this.current.strokeAlpha;if(this.contentVisible)if("object"===_typeof(a)&&null!=a&&a.getPattern){var o=this.getSinglePixelWidth();r.save();r.strokeStyle=a.getPattern(r,this,r.mozCurrentTransformInverse);r.lineWidth=Math.max(o,this.current.lineWidth);r.stroke();r.restore()}else{var i=this.getSinglePixelWidth();if(i<0&&-i>=this.current.lineWidth){r.save();r.resetTransform();r.lineWidth=Math.round(this._combinedScaleFactor);r.stroke();r.restore()}else{r.lineWidth=Math.max(i,this.current.lineWidth);r.stroke()}}t&&this.consumePath();r.globalAlpha=this.current.fillAlpha}},{key:"closeStroke",value:function closeStroke(){this.closePath();this.stroke()}},{key:"fill",value:function fill(t){t=void 0===t||t;var r=this.ctx,a=this.current.fillColor,o=!1;if(this.current.patternFill){r.save();r.fillStyle=a.getPattern(r,this,r.mozCurrentTransformInverse);o=!0}if(this.contentVisible)if(this.pendingEOFill){r.fill("evenodd");this.pendingEOFill=!1}else r.fill();o&&r.restore();t&&this.consumePath()}},{key:"eoFill",value:function eoFill(){this.pendingEOFill=!0;this.fill()}},{key:"fillStroke",value:function fillStroke(){this.fill(!1);this.stroke(!1);this.consumePath()}},{key:"eoFillStroke",value:function eoFillStroke(){this.pendingEOFill=!0;this.fillStroke()}},{key:"closeFillStroke",value:function closeFillStroke(){this.closePath();this.fillStroke()}},{key:"closeEOFillStroke",value:function closeEOFillStroke(){this.pendingEOFill=!0;this.closePath();this.fillStroke()}},{key:"endPath",value:function endPath(){this.consumePath()}},{key:"clip",value:function clip(){this.pendingClip=v}},{key:"eoClip",value:function eoClip(){this.pendingClip=g}},{key:"beginText",value:function beginText(){this.current.textMatrix=o.IDENTITY_MATRIX;this.current.textMatrixScale=1;this.current.x=this.current.lineX=0;this.current.y=this.current.lineY=0}},{key:"endText",value:function endText(){var t=this.pendingTextPaths,r=this.ctx;if(void 0!==t){r.save();r.beginPath();for(var a=0;a<t.length;a++){var o=t[a];r.setTransform.apply(r,o.transform);r.translate(o.x,o.y);o.addToPath(r,o.fontSize)}r.restore();r.clip();r.beginPath();delete this.pendingTextPaths}else r.beginPath()}},{key:"setCharSpacing",value:function setCharSpacing(t){this.current.charSpacing=t}},{key:"setWordSpacing",value:function setWordSpacing(t){this.current.wordSpacing=t}},{key:"setHScale",value:function setHScale(t){this.current.textHScale=t/100}},{key:"setLeading",value:function setLeading(t){this.current.leading=-t}},{key:"setFont",value:function setFont(t,r){var a=this.commonObjs.get(t),i=this.current;if(!a)throw new Error("Can't find font for ".concat(t));i.fontMatrix=a.fontMatrix||o.FONT_IDENTITY_MATRIX;0!==i.fontMatrix[0]&&0!==i.fontMatrix[3]||(0,o.warn)("Invalid font matrix for font "+t);if(r<0){r=-r;i.fontDirection=-1}else i.fontDirection=1;this.current.font=a;this.current.fontSize=r;if(!a.isType3Font){var l=a.loadedName||"sans-serif",u="normal";a.black?u="900":a.bold&&(u="bold");var c=a.italic?"italic":"normal",d='"'.concat(l,'", ').concat(a.fallbackName),h=r;r<16?h=16:r>100&&(h=100);this.current.fontSizeScale=r/h;this.ctx.font="".concat(c," ").concat(u," ").concat(h,"px ").concat(d)}}},{key:"setTextRenderingMode",value:function setTextRenderingMode(t){this.current.textRenderingMode=t}},{key:"setTextRise",value:function setTextRise(t){this.current.textRise=t}},{key:"moveText",value:function moveText(t,r){this.current.x=this.current.lineX+=t;this.current.y=this.current.lineY+=r}},{key:"setLeadingMoveText",value:function setLeadingMoveText(t,r){this.setLeading(-r);this.moveText(t,r)}},{key:"setTextMatrix",value:function setTextMatrix(t,r,a,o,i,l){this.current.textMatrix=[t,r,a,o,i,l];this.current.textMatrixScale=Math.hypot(t,r);this.current.x=this.current.lineX=0;this.current.y=this.current.lineY=0}},{key:"nextLine",value:function nextLine(){this.moveText(0,this.current.leading)}},{key:"paintChar",value:function paintChar(t,r,a,i,l){var u,c=this.ctx,d=this.current,h=d.font,p=d.textRenderingMode,m=d.fontSize/d.fontSizeScale,y=p&o.TextRenderingMode.FILL_STROKE_MASK,v=!!(p&o.TextRenderingMode.ADD_TO_PATH_FLAG),g=d.patternFill&&!h.missingFile;(h.disableFontFace||v||g)&&(u=h.getPathGenerator(this.commonObjs,t));if(h.disableFontFace||g){c.save();c.translate(r,a);c.beginPath();u(c,m);i&&c.setTransform.apply(c,i);y!==o.TextRenderingMode.FILL&&y!==o.TextRenderingMode.FILL_STROKE||c.fill();if(y===o.TextRenderingMode.STROKE||y===o.TextRenderingMode.FILL_STROKE){if(l){c.resetTransform();c.lineWidth=Math.round(this._combinedScaleFactor)}c.stroke()}c.restore()}else{y!==o.TextRenderingMode.FILL&&y!==o.TextRenderingMode.FILL_STROKE||c.fillText(t,r,a);if(y===o.TextRenderingMode.STROKE||y===o.TextRenderingMode.FILL_STROKE)if(l){c.save();c.moveTo(r,a);c.resetTransform();c.lineWidth=Math.round(this._combinedScaleFactor);c.strokeText(t,0,0);c.restore()}else c.strokeText(t,r,a)}if(v){(this.pendingTextPaths||(this.pendingTextPaths=[])).push({transform:c.mozCurrentTransform,x:r,y:a,fontSize:m,addToPath:u})}}},{key:"isFontSubpixelAAEnabled",get:function get(){var t=this.cachedCanvases.getCanvas("isFontSubpixelAAEnabled",10,10).context;t.scale(1.5,1);t.fillText("I",0,10);for(var r=t.getImageData(0,0,10,10).data,a=!1,i=3;i<r.length;i+=4)if(r[i]>0&&r[i]<255){a=!0;break}return(0,o.shadow)(this,"isFontSubpixelAAEnabled",a)}},{key:"showText",value:function showText(t){var r=this.current,a=r.font;if(a.isType3Font)return this.showType3Text(t);var i=r.fontSize;if(0!==i){var l,u=this.ctx,c=r.fontSizeScale,d=r.charSpacing,h=r.wordSpacing,p=r.fontDirection,m=r.textHScale*p,y=t.length,v=a.vertical,g=v?1:-1,b=a.defaultVMetrics,_=i*r.fontMatrix[0],S=r.textRenderingMode===o.TextRenderingMode.FILL&&!a.disableFontFace&&!r.patternFill;u.save();if(r.patternFill){u.save();var A=r.fillColor.getPattern(u,this,u.mozCurrentTransformInverse);l=u.mozCurrentTransform;u.restore();u.fillStyle=A}u.transform.apply(u,r.textMatrix);u.translate(r.x,r.y+r.textRise);p>0?u.scale(m,-1):u.scale(m,1);var C=r.lineWidth,k=!1,R=r.textMatrixScale;if(0===R||0===C){var w=r.textRenderingMode&o.TextRenderingMode.FILL_STROKE_MASK;if(w===o.TextRenderingMode.STROKE||w===o.TextRenderingMode.FILL_STROKE){this._cachedGetSinglePixelWidth=null;k=(C=this.getSinglePixelWidth())<0}}else C/=R;if(1!==c){u.scale(c,c);C/=c}u.lineWidth=C;var P,x=0;for(P=0;P<y;++P){var T=t[P];if((0,o.isNum)(T))x+=g*T*i/1e3;else{var E=!1,O=(T.isSpace?h:0)+d,I=T.fontChar,D=T.accent,M=void 0,j=void 0,L=T.width;if(v){var W=T.vmetric||b,B=-(T.vmetric?W[1]:.5*L)*_,N=W[2]*_;L=W?-W[0]:L;M=B/c;j=(x+N)/c}else{M=x/c;j=0}if(a.remeasure&&L>0){var q=1e3*u.measureText(I).width/i*c;if(L<q&&this.isFontSubpixelAAEnabled){var U=L/q;E=!0;u.save();u.scale(U,1);M/=U}else L!==q&&(M+=(L-q)/2e3*i/c)}if(this.contentVisible&&(T.isInFont||a.missingFile))if(S&&!D)u.fillText(I,M,j);else{this.paintChar(I,M,j,l,k);if(D){var G=M+i*D.offset.x/c,H=j-i*D.offset.y/c;this.paintChar(D.fontChar,G,H,l,k)}}x+=v?L*_-O*p:L*_+O*p;E&&u.restore()}}v?r.y-=x:r.x+=x*m;u.restore()}}},{key:"showType3Text",value:function showType3Text(t){var r,a,i,l,u=this.ctx,c=this.current,d=c.font,h=c.fontSize,p=c.fontDirection,m=d.vertical?1:-1,y=c.charSpacing,v=c.wordSpacing,g=c.textHScale*p,b=c.fontMatrix||o.FONT_IDENTITY_MATRIX,_=t.length;if(!(c.textRenderingMode===o.TextRenderingMode.INVISIBLE)&&0!==h){this._cachedGetSinglePixelWidth=null;u.save();u.transform.apply(u,c.textMatrix);u.translate(c.x,c.y);u.scale(g,p);for(r=0;r<_;++r){a=t[r];if((0,o.isNum)(a)){l=m*a*h/1e3;this.ctx.translate(l,0);c.x+=l*g}else{var S=(a.isSpace?v:0)+y,A=d.charProcOperatorList[a.operatorListId];if(A){if(this.contentVisible){this.processingType3=a;this.save();u.scale(h,h);u.transform.apply(u,b);this.executeOperatorList(A);this.restore()}i=o.Util.applyTransform([a.width,0],b)[0]*h+S;u.translate(i,0);c.x+=i*g}else(0,o.warn)('Type3 character "'.concat(a.operatorListId,'" is not available.'))}}u.restore();this.processingType3=null}}},{key:"setCharWidth",value:function setCharWidth(t,r){}},{key:"setCharWidthAndBounds",value:function setCharWidthAndBounds(t,r,a,o,i,l){this.ctx.rect(a,o,i-a,l-o);this.clip();this.endPath()}},{key:"getColorN_Pattern",value:function getColorN_Pattern(t){var r,a=this;if("TilingPattern"===t[0]){var o=t[1],l=this.baseTransform||this.ctx.mozCurrentTransform.slice(),u={createCanvasGraphics:function createCanvasGraphics(t){return new CanvasGraphics(t,a.commonObjs,a.objs,a.canvasFactory)}};r=new i.TilingPattern(t,o,this.ctx,u,l)}else r=this._getPattern(t[1],t[2]);return r}},{key:"setStrokeColorN",value:function setStrokeColorN(){this.current.strokeColor=this.getColorN_Pattern(arguments)}},{key:"setFillColorN",value:function setFillColorN(){this.current.fillColor=this.getColorN_Pattern(arguments);this.current.patternFill=!0}},{key:"setStrokeRGBColor",value:function setStrokeRGBColor(t,r,a){var i=o.Util.makeHexColor(t,r,a);this.ctx.strokeStyle=i;this.current.strokeColor=i}},{key:"setFillRGBColor",value:function setFillRGBColor(t,r,a){var i=o.Util.makeHexColor(t,r,a);this.ctx.fillStyle=i;this.current.fillColor=i;this.current.patternFill=!1}},{key:"_getPattern",value:function _getPattern(t){var r,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(this.cachedPatterns.has(t))r=this.cachedPatterns.get(t);else{r=(0,i.getShadingPattern)(this.objs.get(t),this.cachedCanvasPatterns);this.cachedPatterns.set(t,r)}a&&(r.matrix=a);return r}},{key:"shadingFill",value:function shadingFill(t){if(this.contentVisible){var r=this.ctx;this.save();var a=this._getPattern(t);r.fillStyle=a.getPattern(r,this,r.mozCurrentTransformInverse,!0);var i=r.mozCurrentTransformInverse;if(i){var l=r.canvas,u=l.width,c=l.height,d=o.Util.applyTransform([0,0],i),h=o.Util.applyTransform([0,c],i),p=o.Util.applyTransform([u,0],i),m=o.Util.applyTransform([u,c],i),y=Math.min(d[0],h[0],p[0],m[0]),v=Math.min(d[1],h[1],p[1],m[1]),g=Math.max(d[0],h[0],p[0],m[0]),b=Math.max(d[1],h[1],p[1],m[1]);this.ctx.fillRect(y,v,g-y,b-v)}else this.ctx.fillRect(-1e10,-1e10,2e10,2e10);this.restore()}}},{key:"beginInlineImage",value:function beginInlineImage(){(0,o.unreachable)("Should not call beginInlineImage")}},{key:"beginImageData",value:function beginImageData(){(0,o.unreachable)("Should not call beginImageData")}},{key:"paintFormXObjectBegin",value:function paintFormXObjectBegin(t,r){if(this.contentVisible){this.save();this.baseTransformStack.push(this.baseTransform);Array.isArray(t)&&6===t.length&&this.transform.apply(this,t);this.baseTransform=this.ctx.mozCurrentTransform;if(r){var a=r[2]-r[0],o=r[3]-r[1];this.ctx.rect(r[0],r[1],a,o);this.clip();this.endPath()}}}},{key:"paintFormXObjectEnd",value:function paintFormXObjectEnd(){if(this.contentVisible){this.restore();this.baseTransform=this.baseTransformStack.pop()}}},{key:"beginGroup",value:function beginGroup(t){if(this.contentVisible){this.save();var r=this.ctx;t.isolated||(0,o.info)("TODO: Support non-isolated groups.");t.knockout&&(0,o.warn)("Knockout groups not supported.");var a=r.mozCurrentTransform;t.matrix&&r.transform.apply(r,t.matrix);if(!t.bbox)throw new Error("Bounding box is required.");var i=o.Util.getAxialAlignedBoundingBox(t.bbox,r.mozCurrentTransform),l=[0,0,r.canvas.width,r.canvas.height];i=o.Util.intersect(i,l)||[0,0,0,0];var c=Math.floor(i[0]),d=Math.floor(i[1]),h=Math.max(Math.ceil(i[2])-c,1),p=Math.max(Math.ceil(i[3])-d,1),m=1,y=1;if(h>u){m=h/u;h=u}if(p>u){y=p/u;p=u}var v="groupAt"+this.groupLevel;t.smask&&(v+="_smask_"+this.smaskCounter++%2);var g=this.cachedCanvases.getCanvas(v,h,p,!0),b=g.context;b.scale(1/m,1/y);b.translate(-c,-d);b.transform.apply(b,a);if(t.smask)this.smaskStack.push({canvas:g.canvas,context:b,offsetX:c,offsetY:d,scaleX:m,scaleY:y,subtype:t.smask.subtype,backdrop:t.smask.backdrop,transferMap:t.smask.transferMap||null,startTransformInverse:null});else{r.setTransform(1,0,0,1,0,0);r.translate(c,d);r.scale(m,y)}copyCtxState(r,b);this.ctx=b;this.setGState([["BM","source-over"],["ca",1],["CA",1]]);this.groupStack.push(r);this.groupLevel++;this.current.activeSMask=null}}},{key:"endGroup",value:function endGroup(t){if(this.contentVisible){this.groupLevel--;var r=this.ctx;this.ctx=this.groupStack.pop();this.ctx.imageSmoothingEnabled=!1;t.smask?this.tempSMask=this.smaskStack.pop():this.ctx.drawImage(r.canvas,0,0);this.restore()}}},{key:"beginAnnotations",value:function beginAnnotations(){this.save();this.baseTransform&&this.ctx.setTransform.apply(this.ctx,this.baseTransform)}},{key:"endAnnotations",value:function endAnnotations(){this.restore()}},{key:"beginAnnotation",value:function beginAnnotation(t,r,a,o){this.save();resetCtxToDefault(this.ctx);this.current=new p;if(Array.isArray(r)&&4===r.length){var i=r[2]-r[0],l=r[3]-r[1];this.ctx.rect(r[0],r[1],i,l);this.clip();this.endPath()}this.transform.apply(this,a);this.transform.apply(this,o)}},{key:"endAnnotation",value:function endAnnotation(){this.restore()}},{key:"paintImageMaskXObject",value:function paintImageMaskXObject(t){if(this.contentVisible){var r=this.ctx,a=t.width,o=t.height,i=this.processingType3;i&&void 0===i.compiled&&(i.compiled=a<=1e3&&o<=1e3?function compileType3Glyph(t){var r,a,o,i,l=new Uint8Array([0,2,4,0,1,0,5,4,8,10,0,8,0,2,1,0]),u=t.width,c=t.height,d=u+1,h=new Uint8Array(d*(c+1)),p=u+7&-8,m=t.data,y=new Uint8Array(p*c),v=0;for(r=0,a=m.length;r<a;r++)for(var g=m[r],b=128;b>0;){y[v++]=g&b?0:255;b>>=1}var _=0;if(0!==y[v=0]){h[0]=1;++_}for(o=1;o<u;o++){if(y[v]!==y[v+1]){h[o]=y[v]?2:1;++_}v++}if(0!==y[v]){h[o]=2;++_}for(r=1;r<c;r++){i=r*d;if(y[(v=r*p)-p]!==y[v]){h[i]=y[v]?1:8;++_}var S=(y[v]?4:0)+(y[v-p]?8:0);for(o=1;o<u;o++){if(l[S=(S>>2)+(y[v+1]?4:0)+(y[v-p+1]?8:0)]){h[i+o]=l[S];++_}v++}if(y[v-p]!==y[v]){h[i+o]=y[v]?2:4;++_}if(_>1e3)return null}i=r*d;if(0!==y[v=p*(c-1)]){h[i]=8;++_}for(o=1;o<u;o++){if(y[v]!==y[v+1]){h[i+o]=y[v]?4:8;++_}v++}if(0!==y[v]){h[i+o]=4;++_}if(_>1e3)return null;var A=new Int32Array([0,d,-1,0,-d,0,0,0,1]),C=[];for(r=0;_&&r<=c;r++){for(var k=r*d,R=k+u;k<R&&!h[k];)k++;if(k!==R){var w=[k%d,r],P=k,x=h[k];do{var T=A[x];do{k+=T}while(!h[k]);var E=h[k];if(5!==E&&10!==E){x=E;h[k]=0}else{x=E&51*x>>4;h[k]&=x>>2|x<<2}w.push(k%d,k/d|0);h[k]||--_}while(P!==k);C.push(w);--r}}return function drawOutline(t){t.save();t.scale(1/u,-1/c);t.translate(0,-c);t.beginPath();for(var r=0,a=C.length;r<a;r++){var o=C[r];t.moveTo(o[0],o[1]);for(var i=2,l=o.length;i<l;i+=2)t.lineTo(o[i],o[i+1])}t.fill();t.beginPath();t.restore()}}({data:t.data,width:a,height:o}):null);if(null!=i&&i.compiled)i.compiled(r);else{var l=this._createMaskCanvas(t),u=l.canvas;r.save();r.setTransform(1,0,0,1,0,0);r.drawImage(u,l.offsetX,l.offsetY);r.restore()}}}},{key:"paintImageMaskXObjectRepeat",value:function paintImageMaskXObjectRepeat(t,r){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,l=arguments.length>4?arguments[4]:void 0,u=arguments.length>5?arguments[5]:void 0;if(this.contentVisible){var c=this.ctx;c.save();var d=c.mozCurrentTransform;c.transform(r,a,i,l,0,0);var h=this._createMaskCanvas(t);c.setTransform(1,0,0,1,0,0);for(var p=0,m=u.length;p<m;p+=2){var y=o.Util.transform(d,[r,a,i,l,u[p],u[p+1]]),v=o.Util.applyTransform([0,0],y),g=_slicedToArray(v,2),b=g[0],_=g[1];c.drawImage(h.canvas,b,_)}c.restore()}}},{key:"paintImageMaskXObjectGroup",value:function paintImageMaskXObjectGroup(t){if(this.contentVisible)for(var r=this.ctx,a=this.current.fillColor,o=this.current.patternFill,i=0,l=t.length;i<l;i++){var u=t[i],c=u.width,d=u.height,h=this.cachedCanvases.getCanvas("maskCanvas",c,d),p=h.context;p.save();putBinaryImageMask(p,u);p.globalCompositeOperation="source-in";p.fillStyle=o?a.getPattern(p,this,r.mozCurrentTransformInverse,!1):a;p.fillRect(0,0,c,d);p.restore();r.save();r.transform.apply(r,u.transform);r.scale(1,-1);r.drawImage(h.canvas,0,0,c,d,0,-1,1,1);r.restore()}}},{key:"paintImageXObject",value:function paintImageXObject(t){if(this.contentVisible){var r=t.startsWith("g_")?this.commonObjs.get(t):this.objs.get(t);r?this.paintInlineImageXObject(r):(0,o.warn)("Dependent image isn't ready yet")}}},{key:"paintImageXObjectRepeat",value:function paintImageXObjectRepeat(t,r,a,i){if(this.contentVisible){var l=t.startsWith("g_")?this.commonObjs.get(t):this.objs.get(t);if(l){for(var u=l.width,c=l.height,d=[],h=0,p=i.length;h<p;h+=2)d.push({transform:[r,0,0,a,i[h],i[h+1]],x:0,y:0,w:u,h:c});this.paintInlineImageXObjectGroup(l,d)}else(0,o.warn)("Dependent image isn't ready yet")}}},{key:"paintInlineImageXObject",value:function paintInlineImageXObject(t){if(this.contentVisible){var r,a=t.width,o=t.height,i=this.ctx;this.save();i.scale(1/a,-1/o);if("function"==typeof HTMLElement&&t instanceof HTMLElement||!t.data)r=t;else{var l=this.cachedCanvases.getCanvas("inlineImage",a,o);putBinaryImageData(l.context,t,this.current.transferMaps);r=l.canvas}var u=this._scaleImage(r,i.mozCurrentTransformInverse);i.imageSmoothingEnabled=getImageSmoothingEnabled(i.mozCurrentTransform,t.interpolate);i.drawImage(u.img,0,0,u.paintWidth,u.paintHeight,0,-o,a,o);if(this.imageLayer){var c=this.getCanvasPosition(0,-o);this.imageLayer.appendImage({imgData:t,left:c[0],top:c[1],width:a/i.mozCurrentTransformInverse[0],height:o/i.mozCurrentTransformInverse[3]})}this.restore()}}},{key:"paintInlineImageXObjectGroup",value:function paintInlineImageXObjectGroup(t,r){if(this.contentVisible){var a=this.ctx,o=t.width,i=t.height,l=this.cachedCanvases.getCanvas("inlineImage",o,i);putBinaryImageData(l.context,t,this.current.transferMaps);for(var u=0,c=r.length;u<c;u++){var d=r[u];a.save();a.transform.apply(a,d.transform);a.scale(1,-1);a.drawImage(l.canvas,d.x,d.y,d.w,d.h,0,-1,1,1);if(this.imageLayer){var h=this.getCanvasPosition(d.x,d.y);this.imageLayer.appendImage({imgData:t,left:h[0],top:h[1],width:o,height:i})}a.restore()}}}},{key:"paintSolidColorImageMask",value:function paintSolidColorImageMask(){this.contentVisible&&this.ctx.fillRect(0,0,1,1)}},{key:"markPoint",value:function markPoint(t){}},{key:"markPointProps",value:function markPointProps(t,r){}},{key:"beginMarkedContent",value:function beginMarkedContent(t){this.markedContentStack.push({visible:!0})}},{key:"beginMarkedContentProps",value:function beginMarkedContentProps(t,r){"OC"===t?this.markedContentStack.push({visible:this.optionalContentConfig.isVisible(r)}):this.markedContentStack.push({visible:!0});this.contentVisible=this.isContentVisible()}},{key:"endMarkedContent",value:function endMarkedContent(){this.markedContentStack.pop();this.contentVisible=this.isContentVisible()}},{key:"beginCompat",value:function beginCompat(){}},{key:"endCompat",value:function endCompat(){}},{key:"consumePath",value:function consumePath(){var t=this.ctx;if(this.pendingClip){this.pendingClip===g?t.clip("evenodd"):t.clip();this.pendingClip=null}t.beginPath()}},{key:"getSinglePixelWidth",value:function getSinglePixelWidth(){if(null===this._cachedGetSinglePixelWidth){var t=this.ctx.mozCurrentTransform,r=Math.abs(t[0]*t[3]-t[2]*t[1]),a=Math.pow(t[0],2)+Math.pow(t[2],2),o=Math.pow(t[1],2)+Math.pow(t[3],2),i=Math.sqrt(Math.max(a,o))/r;a!==o&&this._combinedScaleFactor*i>1?this._cachedGetSinglePixelWidth=-this._combinedScaleFactor*i:r>Number.EPSILON?this._cachedGetSinglePixelWidth=i:this._cachedGetSinglePixelWidth=1}return this._cachedGetSinglePixelWidth}},{key:"getCanvasPosition",value:function getCanvasPosition(t,r){var a=this.ctx.mozCurrentTransform;return[a[0]*t+a[2]*r+a[4],a[1]*t+a[3]*r+a[5]]}},{key:"isContentVisible",value:function isContentVisible(){for(var t=this.markedContentStack.length-1;t>=0;t--)if(!this.markedContentStack[t].visible)return!1;return!0}}]);return CanvasGraphics}();r.CanvasGraphics=b;for(var _ in o.OPS)void 0!==b.prototype[_]&&(b.prototype[o.OPS[_]]=b.prototype[_])},(t,r,a)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.getShadingPattern=function getShadingPattern(t,r){switch(t[0]){case"RadialAxial":return new l(t,r);case"Mesh":return new u(t);case"Dummy":return new c}throw new Error("Unknown IR type: ".concat(t[0]))};r.TilingPattern=void 0;var o=a(4);function _createForOfIteratorHelper(t,r){var a="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!a){if(Array.isArray(t)||(a=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);if("Map"===a||"Set"===a)return Array.from(t);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){a&&(t=a);var o=0,i=function F(){};return{s:i,n:function n(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function e(t){throw t},f:i}}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 l,u=!0,c=!1;return{s:function s(){a=a.call(t)},n:function n(){var t=a.next();u=t.done;return t},e:function e(t){c=!0;l=t},f:function f(){try{u||null==a.return||a.return()}finally{if(c)throw l}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var a,o=_getPrototypeOf(t);if(r){var i=_getPrototypeOf(this).constructor;a=Reflect.construct(o,arguments,i)}else a=o.apply(this,arguments);return _possibleConstructorReturn(this,a)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}function applyBoundingBox(t,r){if(r&&"undefined"!=typeof Path2D){var a=r[2]-r[0],o=r[3]-r[1],i=new Path2D;i.rect(r[0],r[1],a,o);t.clip(i)}}var i=function(){function BaseShadingPattern(){_classCallCheck(this,BaseShadingPattern);this.constructor===BaseShadingPattern&&(0,o.unreachable)("Cannot initialize BaseShadingPattern.")}_createClass(BaseShadingPattern,[{key:"getPattern",value:function getPattern(){(0,o.unreachable)("Abstract method `getPattern` called.")}}]);return BaseShadingPattern}(),l=function(t){_inherits(RadialAxialShadingPattern,t);var r=_createSuper(RadialAxialShadingPattern);function RadialAxialShadingPattern(t,a){var o;_classCallCheck(this,RadialAxialShadingPattern);(o=r.call(this))._type=t[1];o._bbox=t[2];o._colorStops=t[3];o._p0=t[4];o._p1=t[5];o._r0=t[6];o._r1=t[7];o.matrix=null;o.cachedCanvasPatterns=a;return o}_createClass(RadialAxialShadingPattern,[{key:"_createGradient",value:function _createGradient(t){var r;"axial"===this._type?r=t.createLinearGradient(this._p0[0],this._p0[1],this._p1[0],this._p1[1]):"radial"===this._type&&(r=t.createRadialGradient(this._p0[0],this._p0[1],this._r0,this._p1[0],this._p1[1],this._r1));var a,o=_createForOfIteratorHelper(this._colorStops);try{for(o.s();!(a=o.n()).done;){var i=a.value;r.addColorStop(i[0],i[1])}}catch(t){o.e(t)}finally{o.f()}return r}},{key:"getPattern",value:function getPattern(t,r,a){var i,l=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(l){applyBoundingBox(t,this._bbox);i=this._createGradient(t)}else if(this.cachedCanvasPatterns.has(this))i=this.cachedCanvasPatterns.get(this);else{var u=r.cachedCanvases.getCanvas("pattern",r.ctx.canvas.width,r.ctx.canvas.height,!0),c=u.context;c.clearRect(0,0,c.canvas.width,c.canvas.height);c.beginPath();c.rect(0,0,c.canvas.width,c.canvas.height);c.setTransform.apply(c,r.baseTransform);this.matrix&&c.transform.apply(c,this.matrix);applyBoundingBox(c,this._bbox);c.fillStyle=this._createGradient(c);c.fill();i=t.createPattern(u.canvas,"repeat");this.cachedCanvasPatterns.set(this,i)}if(!l){var d=new DOMMatrix(a);try{i.setTransform(d)}catch(t){(0,o.warn)('RadialAxialShadingPattern.getPattern: "'.concat(null==t?void 0:t.message,'".'))}}return i}}]);return RadialAxialShadingPattern}(i);function drawTriangle(t,r,a,o,i,l,u,c){var d,h=r.coords,p=r.colors,m=t.data,y=4*t.width;if(h[a+1]>h[o+1]){d=a;a=o;o=d;d=l;l=u;u=d}if(h[o+1]>h[i+1]){d=o;o=i;i=d;d=u;u=c;c=d}if(h[a+1]>h[o+1]){d=a;a=o;o=d;d=l;l=u;u=d}var v=(h[a]+r.offsetX)*r.scaleX,g=(h[a+1]+r.offsetY)*r.scaleY,b=(h[o]+r.offsetX)*r.scaleX,_=(h[o+1]+r.offsetY)*r.scaleY,S=(h[i]+r.offsetX)*r.scaleX,A=(h[i+1]+r.offsetY)*r.scaleY;if(!(g>=A))for(var C,k,R,w,P,x,T,E,O=p[l],I=p[l+1],D=p[l+2],M=p[u],j=p[u+1],L=p[u+2],W=p[c],B=p[c+1],N=p[c+2],q=Math.round(g),U=Math.round(A),G=q;G<=U;G++){if(G<_){var H=void 0;C=v-(v-b)*(H=G<g?0:(g-G)/(g-_));k=O-(O-M)*H;R=I-(I-j)*H;w=D-(D-L)*H}else{var z=void 0;C=b-(b-S)*(z=G>A?1:_===A?0:(_-G)/(_-A));k=M-(M-W)*z;R=j-(j-B)*z;w=L-(L-N)*z}var V=void 0;P=v-(v-S)*(V=G<g?0:G>A?1:(g-G)/(g-A));x=O-(O-W)*V;T=I-(I-B)*V;E=D-(D-N)*V;for(var Y=Math.round(Math.min(C,P)),X=Math.round(Math.max(C,P)),Q=y*G+4*Y,K=Y;K<=X;K++){(V=(C-K)/(C-P))<0?V=0:V>1&&(V=1);m[Q++]=k-(k-x)*V|0;m[Q++]=R-(R-T)*V|0;m[Q++]=w-(w-E)*V|0;m[Q++]=255}}}function drawFigure(t,r,a){var o,i,l=r.coords,u=r.colors;switch(r.type){case"lattice":var c=r.verticesPerRow,d=Math.floor(l.length/c)-1,h=c-1;for(o=0;o<d;o++)for(var p=o*c,m=0;m<h;m++,p++){drawTriangle(t,a,l[p],l[p+1],l[p+c],u[p],u[p+1],u[p+c]);drawTriangle(t,a,l[p+c+1],l[p+1],l[p+c],u[p+c+1],u[p+1],u[p+c])}break;case"triangles":for(o=0,i=l.length;o<i;o+=3)drawTriangle(t,a,l[o],l[o+1],l[o+2],u[o],u[o+1],u[o+2]);break;default:throw new Error("illegal figure")}}var u=function(t){_inherits(MeshShadingPattern,t);var r=_createSuper(MeshShadingPattern);function MeshShadingPattern(t){var a;_classCallCheck(this,MeshShadingPattern);(a=r.call(this))._coords=t[2];a._colors=t[3];a._figures=t[4];a._bounds=t[5];a._bbox=t[7];a._background=t[8];a.matrix=null;return a}_createClass(MeshShadingPattern,[{key:"_createMeshCanvas",value:function _createMeshCanvas(t,r,a){var o=Math.floor(this._bounds[0]),i=Math.floor(this._bounds[1]),l=Math.ceil(this._bounds[2])-o,u=Math.ceil(this._bounds[3])-i,c=Math.min(Math.ceil(Math.abs(l*t[0]*1.1)),3e3),d=Math.min(Math.ceil(Math.abs(u*t[1]*1.1)),3e3),h=l/c,p=u/d,m={coords:this._coords,colors:this._colors,offsetX:-o,offsetY:-i,scaleX:1/h,scaleY:1/p},y=c+4,v=d+4,g=a.getCanvas("mesh",y,v,!1),b=g.context,_=b.createImageData(c,d);if(r)for(var S=_.data,A=0,C=S.length;A<C;A+=4){S[A]=r[0];S[A+1]=r[1];S[A+2]=r[2];S[A+3]=255}var k,R=_createForOfIteratorHelper(this._figures);try{for(R.s();!(k=R.n()).done;){drawFigure(_,k.value,m)}}catch(t){R.e(t)}finally{R.f()}b.putImageData(_,2,2);return{canvas:g.canvas,offsetX:o-2*h,offsetY:i-2*p,scaleX:h,scaleY:p}}},{key:"getPattern",value:function getPattern(t,r,a){var i,l=arguments.length>3&&void 0!==arguments[3]&&arguments[3];applyBoundingBox(t,this._bbox);if(l)i=o.Util.singularValueDecompose2dScale(t.mozCurrentTransform);else{i=o.Util.singularValueDecompose2dScale(r.baseTransform);if(this.matrix){var u=o.Util.singularValueDecompose2dScale(this.matrix);i=[i[0]*u[0],i[1]*u[1]]}}var c=this._createMeshCanvas(i,l?null:this._background,r.cachedCanvases);if(!l){t.setTransform.apply(t,r.baseTransform);this.matrix&&t.transform.apply(t,this.matrix)}t.translate(c.offsetX,c.offsetY);t.scale(c.scaleX,c.scaleY);return t.createPattern(c.canvas,"no-repeat")}}]);return MeshShadingPattern}(i),c=function(t){_inherits(DummyShadingPattern,t);var r=_createSuper(DummyShadingPattern);function DummyShadingPattern(){_classCallCheck(this,DummyShadingPattern);return r.apply(this,arguments)}_createClass(DummyShadingPattern,[{key:"getPattern",value:function getPattern(){return"hotpink"}}]);return DummyShadingPattern}(i);var d=1,h=2,p=function(){function TilingPattern(t,r,a,o,i){_classCallCheck(this,TilingPattern);this.operatorList=t[2];this.matrix=t[3]||[1,0,0,1,0,0];this.bbox=t[4];this.xstep=t[5];this.ystep=t[6];this.paintType=t[7];this.tilingType=t[8];this.color=r;this.ctx=a;this.canvasGraphicsFactory=o;this.baseTransform=i}_createClass(TilingPattern,[{key:"createPatternCanvas",value:function createPatternCanvas(t){var r=this.operatorList,a=this.bbox,i=this.xstep,l=this.ystep,u=this.paintType,c=this.tilingType,d=this.color,h=this.canvasGraphicsFactory;(0,o.info)("TilingType: "+c);var p=a[0],m=a[1],y=a[2],v=a[3],g=o.Util.singularValueDecompose2dScale(this.matrix),b=o.Util.singularValueDecompose2dScale(this.baseTransform),_=[g[0]*b[0],g[1]*b[1]],S=this.getSizeAndScale(i,this.ctx.canvas.width,_[0]),A=this.getSizeAndScale(l,this.ctx.canvas.height,_[1]),C=t.cachedCanvases.getCanvas("pattern",S.size,A.size,!0),k=C.context,R=h.createCanvasGraphics(k);R.groupLevel=t.groupLevel;this.setFillAndStrokeStyleToContext(R,u,d);var w=p,P=m,x=y,T=v;if(p<0){w=0;x+=Math.abs(p)}if(m<0){P=0;T+=Math.abs(m)}k.translate(-S.scale*w,-A.scale*P);R.transform(S.scale,0,0,A.scale,0,0);this.clipBbox(R,w,P,x,T);R.baseTransform=R.ctx.mozCurrentTransform.slice();R.executeOperatorList(r);R.endDrawing();return{canvas:C.canvas,scaleX:S.scale,scaleY:A.scale,offsetX:w,offsetY:P}}},{key:"getSizeAndScale",value:function getSizeAndScale(t,r,a){t=Math.abs(t);var o=Math.max(TilingPattern.MAX_PATTERN_SIZE,r),i=Math.ceil(t*a);i>=o?i=o:a=i/t;return{scale:a,size:i}}},{key:"clipBbox",value:function clipBbox(t,r,a,o,i){var l=o-r,u=i-a;t.ctx.rect(r,a,l,u);t.clip();t.endPath()}},{key:"setFillAndStrokeStyleToContext",value:function setFillAndStrokeStyleToContext(t,r,a){var i=t.ctx,l=t.current;switch(r){case d:var u=this.ctx;i.fillStyle=u.fillStyle;i.strokeStyle=u.strokeStyle;l.fillColor=u.fillStyle;l.strokeColor=u.strokeStyle;break;case h:var c=o.Util.makeHexColor(a[0],a[1],a[2]);i.fillStyle=c;i.strokeStyle=c;l.fillColor=c;l.strokeColor=c;break;default:throw new o.FormatError("Unsupported paint type: ".concat(r))}}},{key:"getPattern",value:function getPattern(t,r,a){var i=arguments.length>3&&void 0!==arguments[3]&&arguments[3],l=a;if(!i){l=o.Util.transform(l,r.baseTransform);this.matrix&&(l=o.Util.transform(l,this.matrix))}var u=this.createPatternCanvas(r),c=new DOMMatrix(l);c=(c=c.translate(u.offsetX,u.offsetY)).scale(1/u.scaleX,1/u.scaleY);var d=t.createPattern(u.canvas,"repeat");try{d.setTransform(c)}catch(t){(0,o.warn)('TilingPattern.getPattern: "'.concat(null==t?void 0:t.message,'".'))}return d}}],[{key:"MAX_PATTERN_SIZE",get:function get(){return(0,o.shadow)(this,"MAX_PATTERN_SIZE",3e3)}}]);return TilingPattern}();r.TilingPattern=p},(t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.GlobalWorkerOptions=void 0;var a=Object.create(null);r.GlobalWorkerOptions=a;a.workerPort=void 0===a.workerPort?null:a.workerPort;a.workerSrc=void 0===a.workerSrc?"":a.workerSrc},(t,r,a)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.MessageHandler=void 0;var o=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(a(2)),i=a(4);function asyncGeneratorStep(t,r,a,o,i,l,u){try{var c=t[l](u),d=c.value}catch(t){a(t);return}c.done?r(d):Promise.resolve(d).then(o,i)}function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}var l=1,u=2,c=1,d=2,h=3,p=4,m=5,y=6,v=7,g=8;function wrapReason(t){if(!(t instanceof Error||"object"===_typeof(t)&&null!==t)){(0,i.warn)('wrapReason: Expected "reason" to be a (possibly cloned) Error.');return t}switch(t.name){case"AbortException":return new i.AbortException(t.message);case"MissingPDFException":return new i.MissingPDFException(t.message);case"PasswordException":return new i.PasswordException(t.message,t.code);case"UnexpectedResponseException":return new i.UnexpectedResponseException(t.message,t.status);case"UnknownErrorException":return new i.UnknownErrorException(t.message,t.details);default:return new i.UnknownErrorException(t.message,t.toString())}}var b=function(){function MessageHandler(t,r,a){var o=this;!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,MessageHandler);this.sourceName=t;this.targetName=r;this.comObj=a;this.callbackId=1;this.streamId=1;this.postMessageTransfers=!0;this.streamSinks=Object.create(null);this.streamControllers=Object.create(null);this.callbackCapabilities=Object.create(null);this.actionHandler=Object.create(null);this._onComObjOnMessage=function(t){var r=t.data;if(r.targetName===o.sourceName)if(r.stream)o._processStreamMessage(r);else if(r.callback){var i=r.callbackId,c=o.callbackCapabilities[i];if(!c)throw new Error("Cannot resolve callback ".concat(i));delete o.callbackCapabilities[i];if(r.callback===l)c.resolve(r.data);else{if(r.callback!==u)throw new Error("Unexpected callback case");c.reject(wrapReason(r.reason))}}else{var d=o.actionHandler[r.action];if(!d)throw new Error("Unknown action from worker: ".concat(r.action));if(r.callbackId){var h=o.sourceName,p=r.sourceName;new Promise((function(t){t(d(r.data))})).then((function(t){a.postMessage({sourceName:h,targetName:p,callback:l,callbackId:r.callbackId,data:t})}),(function(t){a.postMessage({sourceName:h,targetName:p,callback:u,callbackId:r.callbackId,reason:wrapReason(t)})}))}else r.streamId?o._createStreamSink(r):d(r.data)}};a.addEventListener("message",this._onComObjOnMessage)}!function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}(MessageHandler,[{key:"on",value:function on(t,r){var a=this.actionHandler;if(a[t])throw new Error('There is already an actionName called "'.concat(t,'"'));a[t]=r}},{key:"send",value:function send(t,r,a){this._postMessage({sourceName:this.sourceName,targetName:this.targetName,action:t,data:r},a)}},{key:"sendWithPromise",value:function sendWithPromise(t,r,a){var o=this.callbackId++,l=(0,i.createPromiseCapability)();this.callbackCapabilities[o]=l;try{this._postMessage({sourceName:this.sourceName,targetName:this.targetName,action:t,callbackId:o,data:r},a)}catch(t){l.reject(t)}return l.promise}},{key:"sendWithStream",value:function sendWithStream(t,r,a,o){var l=this,u=this.streamId++,d=this.sourceName,h=this.targetName,p=this.comObj;return new ReadableStream({start:function start(a){var c=(0,i.createPromiseCapability)();l.streamControllers[u]={controller:a,startCall:c,pullCall:null,cancelCall:null,isClosed:!1};l._postMessage({sourceName:d,targetName:h,action:t,streamId:u,data:r,desiredSize:a.desiredSize},o);return c.promise},pull:function pull(t){var r=(0,i.createPromiseCapability)();l.streamControllers[u].pullCall=r;p.postMessage({sourceName:d,targetName:h,stream:y,streamId:u,desiredSize:t.desiredSize});return r.promise},cancel:function cancel(t){(0,i.assert)(t instanceof Error,"cancel must have a valid reason");var r=(0,i.createPromiseCapability)();l.streamControllers[u].cancelCall=r;l.streamControllers[u].isClosed=!0;p.postMessage({sourceName:d,targetName:h,stream:c,streamId:u,reason:wrapReason(t)});return r.promise}},a)}},{key:"_createStreamSink",value:function _createStreamSink(t){var r=t.streamId,a=this.sourceName,o=t.sourceName,l=this.comObj,u=this,c=this.actionHandler[t.action],d={enqueue:function enqueue(t){var l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,c=arguments.length>2?arguments[2]:void 0;if(!this.isCancelled){var d=this.desiredSize;this.desiredSize-=l;if(d>0&&this.desiredSize<=0){this.sinkCapability=(0,i.createPromiseCapability)();this.ready=this.sinkCapability.promise}u._postMessage({sourceName:a,targetName:o,stream:p,streamId:r,chunk:t},c)}},close:function close(){if(!this.isCancelled){this.isCancelled=!0;l.postMessage({sourceName:a,targetName:o,stream:h,streamId:r});delete u.streamSinks[r]}},error:function error(t){(0,i.assert)(t instanceof Error,"error must have a valid reason");if(!this.isCancelled){this.isCancelled=!0;l.postMessage({sourceName:a,targetName:o,stream:m,streamId:r,reason:wrapReason(t)})}},sinkCapability:(0,i.createPromiseCapability)(),onPull:null,onCancel:null,isCancelled:!1,desiredSize:t.desiredSize,ready:null};d.sinkCapability.resolve();d.ready=d.sinkCapability.promise;this.streamSinks[r]=d;new Promise((function(r){r(c(t.data,d))})).then((function(){l.postMessage({sourceName:a,targetName:o,stream:g,streamId:r,success:!0})}),(function(t){l.postMessage({sourceName:a,targetName:o,stream:g,streamId:r,reason:wrapReason(t)})}))}},{key:"_processStreamMessage",value:function _processStreamMessage(t){var r=t.streamId,a=this.sourceName,o=t.sourceName,l=this.comObj,u=this.streamControllers[r],b=this.streamSinks[r];switch(t.stream){case g:t.success?u.startCall.resolve():u.startCall.reject(wrapReason(t.reason));break;case v:t.success?u.pullCall.resolve():u.pullCall.reject(wrapReason(t.reason));break;case y:if(!b){l.postMessage({sourceName:a,targetName:o,stream:v,streamId:r,success:!0});break}b.desiredSize<=0&&t.desiredSize>0&&b.sinkCapability.resolve();b.desiredSize=t.desiredSize;new Promise((function(t){t(b.onPull&&b.onPull())})).then((function(){l.postMessage({sourceName:a,targetName:o,stream:v,streamId:r,success:!0})}),(function(t){l.postMessage({sourceName:a,targetName:o,stream:v,streamId:r,reason:wrapReason(t)})}));break;case p:(0,i.assert)(u,"enqueue should have stream controller");if(u.isClosed)break;u.controller.enqueue(t.chunk);break;case h:(0,i.assert)(u,"close should have stream controller");if(u.isClosed)break;u.isClosed=!0;u.controller.close();this._deleteStreamController(u,r);break;case m:(0,i.assert)(u,"error should have stream controller");u.controller.error(wrapReason(t.reason));this._deleteStreamController(u,r);break;case d:t.success?u.cancelCall.resolve():u.cancelCall.reject(wrapReason(t.reason));this._deleteStreamController(u,r);break;case c:if(!b)break;new Promise((function(r){r(b.onCancel&&b.onCancel(wrapReason(t.reason)))})).then((function(){l.postMessage({sourceName:a,targetName:o,stream:d,streamId:r,success:!0})}),(function(t){l.postMessage({sourceName:a,targetName:o,stream:d,streamId:r,reason:wrapReason(t)})}));b.sinkCapability.reject(wrapReason(t.reason));b.isCancelled=!0;delete this.streamSinks[r];break;default:throw new Error("Unexpected stream case")}}},{key:"_deleteStreamController",value:(t=function _asyncToGenerator(t){return function(){var r=this,a=arguments;return new Promise((function(o,i){var l=t.apply(r,a);function _next(t){asyncGeneratorStep(l,o,i,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(l,o,i,_next,_throw,"throw",t)}_next(void 0)}))}}(o.default.mark((function _callee(t,r){return o.default.wrap((function _callee$(a){for(;;)switch(a.prev=a.next){case 0:a.next=2;return Promise.allSettled([t.startCall&&t.startCall.promise,t.pullCall&&t.pullCall.promise,t.cancelCall&&t.cancelCall.promise]);case 2:delete this.streamControllers[r];case 3:case"end":return a.stop()}}),_callee,this)}))),function _deleteStreamController(r,a){return t.apply(this,arguments)})},{key:"_postMessage",value:function _postMessage(t,r){r&&this.postMessageTransfers?this.comObj.postMessage(t,r):this.comObj.postMessage(t)}},{key:"destroy",value:function destroy(){this.comObj.removeEventListener("message",this._onComObjOnMessage)}}]);var t;return MessageHandler}();r.MessageHandler=b},(t,r,a)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.Metadata=void 0;var o=a(4);function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}var i=function(){function Metadata(t){var r=t.parsedData,a=t.rawData;!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,Metadata);this._metadataMap=r;this._data=a}!function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}(Metadata,[{key:"getRaw",value:function getRaw(){return this._data}},{key:"get",value:function get(t){var r;return null!==(r=this._metadataMap.get(t))&&void 0!==r?r:null}},{key:"getAll",value:function getAll(){return(0,o.objectFromMap)(this._metadataMap)}},{key:"has",value:function has(t){return this._metadataMap.has(t)}}]);return Metadata}();r.Metadata=i},(t,r,a)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.OptionalContentConfig=void 0;var o=a(4);function _createForOfIteratorHelper(t,r){var a="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!a){if(Array.isArray(t)||(a=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);if("Map"===a||"Set"===a)return Array.from(t);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){a&&(t=a);var o=0,i=function F(){};return{s:i,n:function n(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function e(t){throw t},f:i}}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 l,u=!0,c=!1;return{s:function s(){a=a.call(t)},n:function n(){var t=a.next();u=t.done;return t},e:function e(t){c=!0;l=t},f:function f(){try{u||null==a.return||a.return()}finally{if(c)throw l}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}var i=function OptionalContentGroup(t,r){_classCallCheck(this,OptionalContentGroup);this.visible=!0;this.name=t;this.intent=r},l=function(){function OptionalContentConfig(t){_classCallCheck(this,OptionalContentConfig);this.name=null;this.creator=null;this._order=null;this._groups=new Map;if(null!==t){this.name=t.name;this.creator=t.creator;this._order=t.order;var r,a=_createForOfIteratorHelper(t.groups);try{for(a.s();!(r=a.n()).done;){var o=r.value;this._groups.set(o.id,new i(o.name,o.intent))}}catch(t){a.e(t)}finally{a.f()}if("OFF"===t.baseState){var l,u=_createForOfIteratorHelper(this._groups);try{for(u.s();!(l=u.n()).done;){l.value.visible=!1}}catch(t){u.e(t)}finally{u.f()}}var c,d=_createForOfIteratorHelper(t.on);try{for(d.s();!(c=d.n()).done;){var h=c.value;this._groups.get(h).visible=!0}}catch(t){d.e(t)}finally{d.f()}var p,m=_createForOfIteratorHelper(t.off);try{for(m.s();!(p=m.n()).done;){var y=p.value;this._groups.get(y).visible=!1}}catch(t){m.e(t)}finally{m.f()}}}!function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}(OptionalContentConfig,[{key:"_evaluateVisibilityExpression",value:function _evaluateVisibilityExpression(t){var r=t.length;if(r<2)return!0;for(var a=t[0],i=1;i<r;i++){var l=t[i],u=void 0;if(Array.isArray(l))u=this._evaluateVisibilityExpression(l);else{if(!this._groups.has(l)){(0,o.warn)("Optional content group not found: ".concat(l));return!0}u=this._groups.get(l).visible}switch(a){case"And":if(!u)return!1;break;case"Or":if(u)return!0;break;case"Not":return!u;default:return!0}}return"And"===a}},{key:"isVisible",value:function isVisible(t){if(0===this._groups.size)return!0;if(!t){(0,o.warn)("Optional content group not defined.");return!0}if("OCG"===t.type){if(!this._groups.has(t.id)){(0,o.warn)("Optional content group not found: ".concat(t.id));return!0}return this._groups.get(t.id).visible}if("OCMD"===t.type){if(t.expression)return this._evaluateVisibilityExpression(t.expression);if(!t.policy||"AnyOn"===t.policy){var r,a=_createForOfIteratorHelper(t.ids);try{for(a.s();!(r=a.n()).done;){var i=r.value;if(!this._groups.has(i)){(0,o.warn)("Optional content group not found: ".concat(i));return!0}if(this._groups.get(i).visible)return!0}}catch(t){a.e(t)}finally{a.f()}return!1}if("AllOn"===t.policy){var l,u=_createForOfIteratorHelper(t.ids);try{for(u.s();!(l=u.n()).done;){var c=l.value;if(!this._groups.has(c)){(0,o.warn)("Optional content group not found: ".concat(c));return!0}if(!this._groups.get(c).visible)return!1}}catch(t){u.e(t)}finally{u.f()}return!0}if("AnyOff"===t.policy){var d,h=_createForOfIteratorHelper(t.ids);try{for(h.s();!(d=h.n()).done;){var p=d.value;if(!this._groups.has(p)){(0,o.warn)("Optional content group not found: ".concat(p));return!0}if(!this._groups.get(p).visible)return!0}}catch(t){h.e(t)}finally{h.f()}return!1}if("AllOff"===t.policy){var m,y=_createForOfIteratorHelper(t.ids);try{for(y.s();!(m=y.n()).done;){var v=m.value;if(!this._groups.has(v)){(0,o.warn)("Optional content group not found: ".concat(v));return!0}if(this._groups.get(v).visible)return!1}}catch(t){y.e(t)}finally{y.f()}return!0}(0,o.warn)("Unknown optional content policy ".concat(t.policy,"."));return!0}(0,o.warn)("Unknown group type ".concat(t.type,"."));return!0}},{key:"setVisibility",value:function setVisibility(t){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this._groups.has(t)?this._groups.get(t).visible=!!r:(0,o.warn)("Optional content group not found: ".concat(t))}},{key:"getOrder",value:function getOrder(){return this._groups.size?this._order?this._order.slice():Array.from(this._groups.keys()):null}},{key:"getGroups",value:function getGroups(){return this._groups.size>0?(0,o.objectFromMap)(this._groups):null}},{key:"getGroup",value:function getGroup(t){return this._groups.get(t)||null}}]);return OptionalContentConfig}();r.OptionalContentConfig=l},(t,r,a)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.PDFDataTransportStream=void 0;var o=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(a(2)),i=a(4),l=a(1);function asyncGeneratorStep(t,r,a,o,i,l,u){try{var c=t[l](u),d=c.value}catch(t){a(t);return}c.done?r(d):Promise.resolve(d).then(o,i)}function _asyncToGenerator(t){return function(){var r=this,a=arguments;return new Promise((function(o,i){var l=t.apply(r,a);function _next(t){asyncGeneratorStep(l,o,i,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(l,o,i,_next,_throw,"throw",t)}_next(void 0)}))}}function _createForOfIteratorHelper(t,r){var a="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!a){if(Array.isArray(t)||(a=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);if("Map"===a||"Set"===a)return Array.from(t);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){a&&(t=a);var o=0,i=function F(){};return{s:i,n:function n(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function e(t){throw t},f:i}}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 l,u=!0,c=!1;return{s:function s(){a=a.call(t)},n:function n(){var t=a.next();u=t.done;return t},e:function e(t){c=!0;l=t},f:function f(){try{u||null==a.return||a.return()}finally{if(c)throw l}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}var u=function(){function PDFDataTransportStream(t,r){var a=this;_classCallCheck(this,PDFDataTransportStream);(0,i.assert)(r,'PDFDataTransportStream - missing required "pdfDataRangeTransport" argument.');this._queuedChunks=[];this._progressiveDone=t.progressiveDone||!1;this._contentDispositionFilename=t.contentDispositionFilename||null;var o=t.initialData;if((null==o?void 0:o.length)>0){var l=new Uint8Array(o).buffer;this._queuedChunks.push(l)}this._pdfDataRangeTransport=r;this._isStreamingSupported=!t.disableStream;this._isRangeSupported=!t.disableRange;this._contentLength=t.length;this._fullRequestReader=null;this._rangeReaders=[];this._pdfDataRangeTransport.addRangeListener((function(t,r){a._onReceiveData({begin:t,chunk:r})}));this._pdfDataRangeTransport.addProgressListener((function(t,r){a._onProgress({loaded:t,total:r})}));this._pdfDataRangeTransport.addProgressiveReadListener((function(t){a._onReceiveData({chunk:t})}));this._pdfDataRangeTransport.addProgressiveDoneListener((function(){a._onProgressiveDone()}));this._pdfDataRangeTransport.transportReady()}_createClass(PDFDataTransportStream,[{key:"_onReceiveData",value:function _onReceiveData(t){var r=new Uint8Array(t.chunk).buffer;if(void 0===t.begin)this._fullRequestReader?this._fullRequestReader._enqueue(r):this._queuedChunks.push(r);else{var a=this._rangeReaders.some((function(a){if(a._begin!==t.begin)return!1;a._enqueue(r);return!0}));(0,i.assert)(a,"_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.")}}},{key:"_progressiveDataLength",get:function get(){var t,r;return null!==(t=null===(r=this._fullRequestReader)||void 0===r?void 0:r._loaded)&&void 0!==t?t:0}},{key:"_onProgress",value:function _onProgress(t){if(void 0===t.total){var r=this._rangeReaders[0];null!=r&&r.onProgress&&r.onProgress({loaded:t.loaded})}else{var a=this._fullRequestReader;null!=a&&a.onProgress&&a.onProgress({loaded:t.loaded,total:t.total})}}},{key:"_onProgressiveDone",value:function _onProgressiveDone(){this._fullRequestReader&&this._fullRequestReader.progressiveDone();this._progressiveDone=!0}},{key:"_removeRangeReader",value:function _removeRangeReader(t){var r=this._rangeReaders.indexOf(t);r>=0&&this._rangeReaders.splice(r,1)}},{key:"getFullReader",value:function getFullReader(){(0,i.assert)(!this._fullRequestReader,"PDFDataTransportStream.getFullReader can only be called once.");var t=this._queuedChunks;this._queuedChunks=null;return new c(this,t,this._progressiveDone,this._contentDispositionFilename)}},{key:"getRangeReader",value:function getRangeReader(t,r){if(r<=this._progressiveDataLength)return null;var a=new d(this,t,r);this._pdfDataRangeTransport.requestDataRange(t,r);this._rangeReaders.push(a);return a}},{key:"cancelAllRequests",value:function cancelAllRequests(t){this._fullRequestReader&&this._fullRequestReader.cancel(t);var r,a=_createForOfIteratorHelper(this._rangeReaders.slice(0));try{for(a.s();!(r=a.n()).done;){r.value.cancel(t)}}catch(t){a.e(t)}finally{a.f()}this._pdfDataRangeTransport.abort()}}]);return PDFDataTransportStream}();r.PDFDataTransportStream=u;var c=function(){function PDFDataTransportStreamReader(t,r){var a=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;_classCallCheck(this,PDFDataTransportStreamReader);this._stream=t;this._done=a||!1;this._filename=(0,l.isPdfFile)(o)?o:null;this._queuedChunks=r||[];this._loaded=0;var i,u=_createForOfIteratorHelper(this._queuedChunks);try{for(u.s();!(i=u.n()).done;){var c=i.value;this._loaded+=c.byteLength}}catch(t){u.e(t)}finally{u.f()}this._requests=[];this._headersReady=Promise.resolve();t._fullRequestReader=this;this.onProgress=null}_createClass(PDFDataTransportStreamReader,[{key:"_enqueue",value:function _enqueue(t){if(!this._done){if(this._requests.length>0){this._requests.shift().resolve({value:t,done:!1})}else this._queuedChunks.push(t);this._loaded+=t.byteLength}}},{key:"headersReady",get:function get(){return this._headersReady}},{key:"filename",get:function get(){return this._filename}},{key:"isRangeSupported",get:function get(){return this._stream._isRangeSupported}},{key:"isStreamingSupported",get:function get(){return this._stream._isStreamingSupported}},{key:"contentLength",get:function get(){return this._stream._contentLength}},{key:"read",value:(t=_asyncToGenerator(o.default.mark((function _callee(){var t,r;return o.default.wrap((function _callee$(a){for(;;)switch(a.prev=a.next){case 0:if(!(this._queuedChunks.length>0)){a.next=3;break}t=this._queuedChunks.shift();return a.abrupt("return",{value:t,done:!1});case 3:if(!this._done){a.next=5;break}return a.abrupt("return",{value:void 0,done:!0});case 5:r=(0,i.createPromiseCapability)();this._requests.push(r);return a.abrupt("return",r.promise);case 8:case"end":return a.stop()}}),_callee,this)}))),function read(){return t.apply(this,arguments)})},{key:"cancel",value:function cancel(t){this._done=!0;var r,a=_createForOfIteratorHelper(this._requests);try{for(a.s();!(r=a.n()).done;){r.value.resolve({value:void 0,done:!0})}}catch(t){a.e(t)}finally{a.f()}this._requests.length=0}},{key:"progressiveDone",value:function progressiveDone(){this._done||(this._done=!0)}}]);var t;return PDFDataTransportStreamReader}(),d=function(){function PDFDataTransportStreamRangeReader(t,r,a){_classCallCheck(this,PDFDataTransportStreamRangeReader);this._stream=t;this._begin=r;this._end=a;this._queuedChunk=null;this._requests=[];this._done=!1;this.onProgress=null}_createClass(PDFDataTransportStreamRangeReader,[{key:"_enqueue",value:function _enqueue(t){if(!this._done){if(0===this._requests.length)this._queuedChunk=t;else{this._requests.shift().resolve({value:t,done:!1});var r,a=_createForOfIteratorHelper(this._requests);try{for(a.s();!(r=a.n()).done;){r.value.resolve({value:void 0,done:!0})}}catch(t){a.e(t)}finally{a.f()}this._requests.length=0}this._done=!0;this._stream._removeRangeReader(this)}}},{key:"isStreamingSupported",get:function get(){return!1}},{key:"read",value:(t=_asyncToGenerator(o.default.mark((function _callee2(){var t,r;return o.default.wrap((function _callee2$(a){for(;;)switch(a.prev=a.next){case 0:if(!this._queuedChunk){a.next=4;break}t=this._queuedChunk;this._queuedChunk=null;return a.abrupt("return",{value:t,done:!1});case 4:if(!this._done){a.next=6;break}return a.abrupt("return",{value:void 0,done:!0});case 6:r=(0,i.createPromiseCapability)();this._requests.push(r);return a.abrupt("return",r.promise);case 9:case"end":return a.stop()}}),_callee2,this)}))),function read(){return t.apply(this,arguments)})},{key:"cancel",value:function cancel(t){this._done=!0;var r,a=_createForOfIteratorHelper(this._requests);try{for(a.s();!(r=a.n()).done;){r.value.resolve({value:void 0,done:!0})}}catch(t){a.e(t)}finally{a.f()}this._requests.length=0;this._stream._removeRangeReader(this)}}]);var t;return PDFDataTransportStreamRangeReader}()},(t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.XfaText=void 0;function _createForOfIteratorHelper(t,r){var a="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!a){if(Array.isArray(t)||(a=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);if("Map"===a||"Set"===a)return Array.from(t);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){a&&(t=a);var o=0,i=function F(){};return{s:i,n:function n(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function e(t){throw t},f:i}}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 l,u=!0,c=!1;return{s:function s(){a=a.call(t)},n:function n(){var t=a.next();u=t.done;return t},e:function e(t){c=!0;l=t},f:function f(){try{u||null==a.return||a.return()}finally{if(c)throw l}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}var a=function(){function XfaText(){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,XfaText)}!function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}(XfaText,null,[{key:"textContent",value:function textContent(t){var r=[],a={items:r,styles:Object.create(null)};!function walk(t){var a;if(t){var o=null,i=t.name;if("#text"===i)o=t.value;else{if(!XfaText.shouldBuildText(i))return;null!=t&&null!==(a=t.attributes)&&void 0!==a&&a.textContent?o=t.attributes.textContent:t.value&&(o=t.value)}null!==o&&r.push({str:o});if(t.children){var l,u=_createForOfIteratorHelper(t.children);try{for(u.s();!(l=u.n()).done;){walk(l.value)}}catch(t){u.e(t)}finally{u.f()}}}}(t);return a}},{key:"shouldBuildText",value:function shouldBuildText(t){return!("textarea"===t||"input"===t||"option"===t||"select"===t)}}]);return XfaText}();r.XfaText=a},(t,r,a)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.AnnotationLayer=void 0;var o=a(4),i=a(1),l=a(122),u=a(132);function _get(t,r,a){_get="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function _get(t,r,a){var o=function _superPropBase(t,r){for(;!Object.prototype.hasOwnProperty.call(t,r)&&null!==(t=_getPrototypeOf(t)););return t}(t,r);if(o){var i=Object.getOwnPropertyDescriptor(o,r);return i.get?i.get.call(a):i.value}};return _get(t,r,a||t)}function _defineProperty(t,r,a){r in t?Object.defineProperty(t,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[r]=a;return t}function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var a=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==a)return;var o,i,l=[],u=!0,c=!1;try{for(a=a.call(t);!(u=(o=a.next()).done);u=!0){l.push(o.value);if(r&&l.length===r)break}}catch(t){c=!0;i=t}finally{try{u||null==a.return||a.return()}finally{if(c)throw i}}return l}(t,r)||_unsupportedIterableToArray(t,r)||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 _toConsumableArray(t){return function _arrayWithoutHoles(t){if(Array.isArray(t))return _arrayLikeToArray(t)}(t)||function _iterableToArray(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||_unsupportedIterableToArray(t)||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 _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var a,o=_getPrototypeOf(t);if(r){var i=_getPrototypeOf(this).constructor;a=Reflect.construct(o,arguments,i)}else a=o.apply(this,arguments);return _possibleConstructorReturn(this,a)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t)}function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function _createForOfIteratorHelper(t,r){var a="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!a){if(Array.isArray(t)||(a=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){a&&(t=a);var o=0,i=function F(){};return{s:i,n:function n(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function e(t){throw t},f:i}}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 l,u=!0,c=!1;return{s:function s(){a=a.call(t)},n:function n(){var t=a.next();u=t.done;return t},e:function e(t){c=!0;l=t},f:function f(){try{u||null==a.return||a.return()}finally{if(c)throw l}}}}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);return"Map"===a||"Set"===a?Array.from(t):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}var c=1e3,d=new WeakSet,h=function(){function AnnotationElementFactory(){_classCallCheck(this,AnnotationElementFactory)}_createClass(AnnotationElementFactory,null,[{key:"create",value:function create(t){switch(t.data.annotationType){case o.AnnotationType.LINK:return new m(t);case o.AnnotationType.TEXT:return new y(t);case o.AnnotationType.WIDGET:switch(t.data.fieldType){case"Tx":return new g(t);case"Btn":return t.data.radioButton?new _(t):t.data.checkBox?new b(t):new S(t);case"Ch":return new A(t)}return new v(t);case o.AnnotationType.POPUP:return new C(t);case o.AnnotationType.FREETEXT:return new R(t);case o.AnnotationType.LINE:return new w(t);case o.AnnotationType.SQUARE:return new P(t);case o.AnnotationType.CIRCLE:return new x(t);case o.AnnotationType.POLYLINE:return new T(t);case o.AnnotationType.CARET:return new O(t);case o.AnnotationType.INK:return new I(t);case o.AnnotationType.POLYGON:return new E(t);case o.AnnotationType.HIGHLIGHT:return new D(t);case o.AnnotationType.UNDERLINE:return new M(t);case o.AnnotationType.SQUIGGLY:return new j(t);case o.AnnotationType.STRIKEOUT:return new L(t);case o.AnnotationType.STAMP:return new W(t);case o.AnnotationType.FILEATTACHMENT:return new B(t);default:return new p(t)}}}]);return AnnotationElementFactory}(),p=function(){function AnnotationElement(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=r.isRenderable,o=void 0!==a&&a,i=r.ignoreBorder,l=void 0!==i&&i,u=r.createQuadrilaterals,c=void 0!==u&&u;_classCallCheck(this,AnnotationElement);this.isRenderable=o;this.data=t.data;this.layer=t.layer;this.page=t.page;this.viewport=t.viewport;this.linkService=t.linkService;this.downloadManager=t.downloadManager;this.imageResourcesPath=t.imageResourcesPath;this.renderForms=t.renderForms;this.svgFactory=t.svgFactory;this.annotationStorage=t.annotationStorage;this.enableScripting=t.enableScripting;this.hasJSActions=t.hasJSActions;this._fieldObjects=t.fieldObjects;this._mouseState=t.mouseState;o&&(this.container=this._createContainer(l));c&&(this.quadrilaterals=this._createQuadrilaterals(l))}_createClass(AnnotationElement,[{key:"_createContainer",value:function _createContainer(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],r=this.data,a=this.page,i=this.viewport,l=document.createElement("section"),u=r.rect[2]-r.rect[0],c=r.rect[3]-r.rect[1];l.setAttribute("data-annotation-id",r.id);var d=o.Util.normalizeRect([r.rect[0],a.view[3]-r.rect[1]+a.view[1],r.rect[2],a.view[3]-r.rect[3]+a.view[1]]);l.style.transform="matrix(".concat(i.transform.join(","),")");l.style.transformOrigin="".concat(-d[0],"px ").concat(-d[1],"px");if(!t&&r.borderStyle.width>0){l.style.borderWidth="".concat(r.borderStyle.width,"px");if(r.borderStyle.style!==o.AnnotationBorderStyleType.UNDERLINE){u-=2*r.borderStyle.width;c-=2*r.borderStyle.width}var h=r.borderStyle.horizontalCornerRadius,p=r.borderStyle.verticalCornerRadius;if(h>0||p>0){var m="".concat(h,"px / ").concat(p,"px");l.style.borderRadius=m}switch(r.borderStyle.style){case o.AnnotationBorderStyleType.SOLID:l.style.borderStyle="solid";break;case o.AnnotationBorderStyleType.DASHED:l.style.borderStyle="dashed";break;case o.AnnotationBorderStyleType.BEVELED:(0,o.warn)("Unimplemented border style: beveled");break;case o.AnnotationBorderStyleType.INSET:(0,o.warn)("Unimplemented border style: inset");break;case o.AnnotationBorderStyleType.UNDERLINE:l.style.borderBottomStyle="solid"}var y=r.borderColor||r.color||null;y?l.style.borderColor=o.Util.makeHexColor(0|r.color[0],0|r.color[1],0|r.color[2]):l.style.borderWidth=0}l.style.left="".concat(d[0],"px");l.style.top="".concat(d[1],"px");l.style.width="".concat(u,"px");l.style.height="".concat(c,"px");return l}},{key:"_createQuadrilaterals",value:function _createQuadrilaterals(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!this.data.quadPoints)return null;var r,a=[],o=this.data.rect,i=_createForOfIteratorHelper(this.data.quadPoints);try{for(i.s();!(r=i.n()).done;){var l=r.value;this.data.rect=[l[2].x,l[2].y,l[1].x,l[1].y];a.push(this._createContainer(t))}}catch(t){i.e(t)}finally{i.f()}this.data.rect=o;return a}},{key:"_createPopup",value:function _createPopup(t,r){var a=this.container;if(this.quadrilaterals){t=t||this.quadrilaterals;a=this.quadrilaterals[0]}if(!t){(t=document.createElement("div")).style.height=a.style.height;t.style.width=a.style.width;a.appendChild(t)}var o=new k({container:a,trigger:t,color:r.color,titleObj:r.titleObj,modificationDate:r.modificationDate,contentsObj:r.contentsObj,hideWrapper:!0}).render();o.style.left=a.style.width;a.appendChild(o)}},{key:"_renderQuadrilaterals",value:function _renderQuadrilaterals(t){var r,a=_createForOfIteratorHelper(this.quadrilaterals);try{for(a.s();!(r=a.n()).done;){r.value.className=t}}catch(t){a.e(t)}finally{a.f()}return this.quadrilaterals}},{key:"render",value:function render(){(0,o.unreachable)("Abstract method `AnnotationElement.render` called")}},{key:"_getElementsByName",value:function _getElementsByName(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,a=[];if(this._fieldObjects){var i=this._fieldObjects[t];if(i){var l,u=_createForOfIteratorHelper(i);try{for(u.s();!(l=u.n()).done;){var c=l.value,h=c.page,p=c.id,m=c.exportValues;if(-1!==h&&p!==r){var y="string"==typeof m?m:null,v=document.getElementById(p);!v||d.has(v)?a.push({id:p,exportValue:y,domElement:v}):(0,o.warn)("_getElementsByName - element not allowed: ".concat(p))}}}catch(t){u.e(t)}finally{u.f()}}return a}var g,b=_createForOfIteratorHelper(document.getElementsByName(t));try{for(b.s();!(g=b.n()).done;){var _=g.value,S=_.id,A=_.exportValue;S!==r&&(d.has(_)&&a.push({id:S,exportValue:A,domElement:_}))}}catch(t){b.e(t)}finally{b.f()}return a}}],[{key:"platform",get:function get(){var t="undefined"!=typeof navigator?navigator.platform:"";return(0,o.shadow)(this,"platform",{isWin:t.includes("Win"),isMac:t.includes("Mac")})}}]);return AnnotationElement}(),m=function(t){_inherits(LinkAnnotationElement,t);var r=_createSuper(LinkAnnotationElement);function LinkAnnotationElement(t){_classCallCheck(this,LinkAnnotationElement);var a=!!(t.data.url||t.data.dest||t.data.action||t.data.isTooltipOnly||t.data.resetForm||t.data.actions&&(t.data.actions.Action||t.data.actions["Mouse Up"]||t.data.actions["Mouse Down"]));return r.call(this,t,{isRenderable:a,createQuadrilaterals:!0})}_createClass(LinkAnnotationElement,[{key:"render",value:function render(){var t=this.data,r=this.linkService,a=document.createElement("a");if(t.url){var i;r.addLinkAttributes||(0,o.warn)("LinkAnnotationElement.render - missing `addLinkAttributes`-method on the `linkService`-instance.");null===(i=r.addLinkAttributes)||void 0===i||i.call(r,a,t.url,t.newWindow)}else if(t.action)this._bindNamedAction(a,t.action);else if(t.dest)this._bindLink(a,t.dest);else{var l=!1;if(t.actions&&(t.actions.Action||t.actions["Mouse Up"]||t.actions["Mouse Down"])&&this.enableScripting&&this.hasJSActions){l=!0;this._bindJSAction(a,t)}t.resetForm?this._bindResetFormAction(a,t.resetForm):l||this._bindLink(a,"")}if(this.quadrilaterals)return this._renderQuadrilaterals("linkAnnotation").map((function(t,r){var o=0===r?a:a.cloneNode();t.appendChild(o);return t}));this.container.className="linkAnnotation";this.container.appendChild(a);return this.container}},{key:"_bindLink",value:function _bindLink(t,r){var a=this;t.href=this.linkService.getDestinationHash(r);t.onclick=function(){r&&a.linkService.goToDestination(r);return!1};(r||""===r)&&(t.className="internalLink")}},{key:"_bindNamedAction",value:function _bindNamedAction(t,r){var a=this;t.href=this.linkService.getAnchorUrl("");t.onclick=function(){a.linkService.executeNamedAction(r);return!1};t.className="internalLink"}},{key:"_bindJSAction",value:function _bindJSAction(t,r){var a=this;t.href=this.linkService.getAnchorUrl("");for(var o=new Map([["Action","onclick"],["Mouse Up","onmouseup"],["Mouse Down","onmousedown"]]),i=function _loop(){var i=u[l],c=o.get(i);if(!c)return"continue";t[c]=function(){var t;null===(t=a.linkService.eventBus)||void 0===t||t.dispatch("dispatcheventinsandbox",{source:a,detail:{id:r.id,name:i}});return!1}},l=0,u=Object.keys(r.actions);l<u.length;l++)i();t.onclick||(t.onclick=function(){return!1});t.className="internalLink"}},{key:"_bindResetFormAction",value:function _bindResetFormAction(t,r){var a=this,i=t.onclick;i||(t.href=this.linkService.getAnchorUrl(""));t.className="internalLink";if(this._fieldObjects)t.onclick=function(){i&&i();var t=r.fields,o=r.refs,l=r.include,u=[];if(0!==t.length||0!==o.length){var c,h=new Set(o),p=_createForOfIteratorHelper(t);try{for(p.s();!(c=p.n()).done;){var m,y=c.value,v=_createForOfIteratorHelper(a._fieldObjects[y]||[]);try{for(v.s();!(m=v.n()).done;){var g=m.value.id;h.add(g)}}catch(t){v.e(t)}finally{v.f()}}}catch(t){p.e(t)}finally{p.f()}for(var b=0,_=Object.values(a._fieldObjects);b<_.length;b++){var S,A=_createForOfIteratorHelper(_[b]);try{for(A.s();!(S=A.n()).done;){var C=S.value;h.has(C.id)===l&&u.push(C)}}catch(t){A.e(t)}finally{A.f()}}}else for(var k=0,R=Object.values(a._fieldObjects);k<R.length;k++){var w=R[k];u.push.apply(u,_toConsumableArray(w))}for(var P=a.annotationStorage,x=[],T=0,E=u;T<E.length;T++){var O=E[T],I=O.id;x.push(I);switch(O.type){case"text":var D=O.defaultValue||"";P.setValue(I,{value:D,valueAsString:D});break;case"checkbox":case"radiobutton":var M=O.defaultValue===O.exportValues;P.setValue(I,{value:M});break;case"combobox":case"listbox":var j=O.defaultValue||"";P.setValue(I,{value:j});break;default:continue}var L=document.getElementById(I);L&&d.has(L)&&L.dispatchEvent(new Event("resetform"))}if(a.enableScripting){var W;null===(W=a.linkService.eventBus)||void 0===W||W.dispatch("dispatcheventinsandbox",{source:a,detail:{id:"app",ids:x,name:"ResetForm"}})}return!1};else{(0,o.warn)('_bindResetFormAction - "resetForm" action not supported, ensure that the `fieldObjects` parameter is provided.');i||(t.onclick=function(){return!1})}}}]);return LinkAnnotationElement}(p),y=function(t){_inherits(TextAnnotationElement,t);var r=_createSuper(TextAnnotationElement);function TextAnnotationElement(t){var a,o;_classCallCheck(this,TextAnnotationElement);var i=!!(t.data.hasPopup||null!==(a=t.data.titleObj)&&void 0!==a&&a.str||null!==(o=t.data.contentsObj)&&void 0!==o&&o.str);return r.call(this,t,{isRenderable:i})}_createClass(TextAnnotationElement,[{key:"render",value:function render(){this.container.className="textAnnotation";var t=document.createElement("img");t.style.height=this.container.style.height;t.style.width=this.container.style.width;t.src=this.imageResourcesPath+"annotation-"+this.data.name.toLowerCase()+".svg";t.alt="[{{type}} Annotation]";t.dataset.l10nId="text_annotation_type";t.dataset.l10nArgs=JSON.stringify({type:this.data.name});this.data.hasPopup||this._createPopup(t,this.data);this.container.appendChild(t);return this.container}}]);return TextAnnotationElement}(p),v=function(t){_inherits(WidgetAnnotationElement,t);var r=_createSuper(WidgetAnnotationElement);function WidgetAnnotationElement(){_classCallCheck(this,WidgetAnnotationElement);return r.apply(this,arguments)}_createClass(WidgetAnnotationElement,[{key:"render",value:function render(){this.data.alternativeText&&(this.container.title=this.data.alternativeText);return this.container}},{key:"_getKeyModifier",value:function _getKeyModifier(t){var r=p.platform,a=r.isWin,o=r.isMac;return a&&t.ctrlKey||o&&t.metaKey}},{key:"_setEventListener",value:function _setEventListener(t,r,a,o){var i=this;r.includes("mouse")?t.addEventListener(r,(function(t){var r;null===(r=i.linkService.eventBus)||void 0===r||r.dispatch("dispatcheventinsandbox",{source:i,detail:{id:i.data.id,name:a,value:o(t),shift:t.shiftKey,modifier:i._getKeyModifier(t)}})})):t.addEventListener(r,(function(t){var r;null===(r=i.linkService.eventBus)||void 0===r||r.dispatch("dispatcheventinsandbox",{source:i,detail:{id:i.data.id,name:a,value:t.target.checked}})}))}},{key:"_setEventListeners",value:function _setEventListeners(t,r,a){var o,i=_createForOfIteratorHelper(r);try{for(i.s();!(o=i.n()).done;){var l,u=_slicedToArray(o.value,2),c=u[0],d=u[1];("Action"===d||null!==(l=this.data.actions)&&void 0!==l&&l[d])&&this._setEventListener(t,c,d,a)}}catch(t){i.e(t)}finally{i.f()}}},{key:"_setBackgroundColor",value:function _setBackgroundColor(t){var r=this.data.backgroundColor||null;t.style.backgroundColor=null===r?"transparent":o.Util.makeHexColor(r[0],r[1],r[2])}},{key:"_dispatchEventFromSandbox",value:function _dispatchEventFromSandbox(t,r){for(var a=this,o=function setColor(t,r,a){var o=a.detail[t];a.target.style[r]=u.ColorConverters["".concat(o[0],"_HTML")](o.slice(1))},i={display:function display(t){var r=t.detail.display%2==1;t.target.style.visibility=r?"hidden":"visible";a.annotationStorage.setValue(a.data.id,{hidden:r,print:0===t.detail.display||3===t.detail.display})},print:function print(t){a.annotationStorage.setValue(a.data.id,{print:t.detail.print})},hidden:function hidden(t){t.target.style.visibility=t.detail.hidden?"hidden":"visible";a.annotationStorage.setValue(a.data.id,{hidden:t.detail.hidden})},focus:function focus(t){setTimeout((function(){return t.target.focus({preventScroll:!1})}),0)},userName:function userName(t){t.target.title=t.detail.userName},readonly:function readonly(t){t.detail.readonly?t.target.setAttribute("readonly",""):t.target.removeAttribute("readonly")},required:function required(t){t.detail.required?t.target.setAttribute("required",""):t.target.removeAttribute("required")},bgColor:function bgColor(t){o("bgColor","backgroundColor",t)},fillColor:function fillColor(t){o("fillColor","backgroundColor",t)},fgColor:function fgColor(t){o("fgColor","color",t)},textColor:function textColor(t){o("textColor","color",t)},borderColor:function borderColor(t){o("borderColor","borderColor",t)},strokeColor:function strokeColor(t){o("strokeColor","borderColor",t)}},l=0,c=Object.keys(r.detail);l<c.length;l++){var d=c[l],h=t[d]||i[d];h&&h(r)}}}]);return WidgetAnnotationElement}(p),g=function(t){_inherits(TextWidgetAnnotationElement,t);var r=_createSuper(TextWidgetAnnotationElement);function TextWidgetAnnotationElement(t){_classCallCheck(this,TextWidgetAnnotationElement);var a=t.renderForms||!t.data.hasAppearance&&!!t.data.fieldValue;return r.call(this,t,{isRenderable:a})}_createClass(TextWidgetAnnotationElement,[{key:"setPropertyOnSiblings",value:function setPropertyOnSiblings(t,r,a,o){var i,l=this.annotationStorage,u=_createForOfIteratorHelper(this._getElementsByName(t.name,t.id));try{for(u.s();!(i=u.n()).done;){var c=i.value;c.domElement&&(c.domElement[r]=a);l.setValue(c.id,_defineProperty({},o,a))}}catch(t){u.e(t)}finally{u.f()}}},{key:"render",value:function render(){var t=this,r=this.annotationStorage,a=this.data.id;this.container.className="textWidgetAnnotation";var o=null;if(this.renderForms){var i=r.getValue(a,{value:this.data.fieldValue,valueAsString:this.data.fieldValue}),l=i.valueAsString||i.value||"",u={userValue:null,formattedValue:null,beforeInputSelectionRange:null,beforeInputValue:null};if(this.data.multiLine)(o=document.createElement("textarea")).textContent=l;else{(o=document.createElement("input")).type="text";o.setAttribute("value",l)}d.add(o);o.disabled=this.data.readOnly;o.name=this.data.fieldName;o.tabIndex=c;u.userValue=l;o.setAttribute("id",a);o.addEventListener("input",(function(i){r.setValue(a,{value:i.target.value});t.setPropertyOnSiblings(o,"value",i.target.value,"value")}));o.addEventListener("resetform",(function(r){var a=t.data.defaultFieldValue||"";o.value=u.userValue=a;delete u.formattedValue}));var h=function blurListener(t){u.formattedValue&&(t.target.value=u.formattedValue);t.target.scrollLeft=0;u.beforeInputSelectionRange=null};if(this.enableScripting&&this.hasJSActions){var p;o.addEventListener("focus",(function(t){u.userValue&&(t.target.value=u.userValue)}));o.addEventListener("updatefromsandbox",(function(o){var i={value:function value(t){u.userValue=t.detail.value||"";r.setValue(a,{value:u.userValue.toString()});u.formattedValue||(t.target.value=u.userValue)},valueAsString:function valueAsString(t){u.formattedValue=t.detail.valueAsString||"";t.target!==document.activeElement&&(t.target.value=u.formattedValue);r.setValue(a,{formattedValue:u.formattedValue})},selRange:function selRange(t){var r=_slicedToArray(t.detail.selRange,2),a=r[0],o=r[1];a>=0&&o<t.target.value.length&&t.target.setSelectionRange(a,o)}};t._dispatchEventFromSandbox(i,o)}));o.addEventListener("keydown",(function(r){var o;u.beforeInputValue=r.target.value;var i=-1;"Escape"===r.key?i=0:"Enter"===r.key?i=2:"Tab"===r.key&&(i=3);if(-1!==i){u.userValue=r.target.value;null===(o=t.linkService.eventBus)||void 0===o||o.dispatch("dispatcheventinsandbox",{source:t,detail:{id:a,name:"Keystroke",value:r.target.value,willCommit:!0,commitKey:i,selStart:r.target.selectionStart,selEnd:r.target.selectionEnd}})}}));var m=h;h=null;o.addEventListener("blur",(function(r){if(t._mouseState.isDown){var o;u.userValue=r.target.value;null===(o=t.linkService.eventBus)||void 0===o||o.dispatch("dispatcheventinsandbox",{source:t,detail:{id:a,name:"Keystroke",value:r.target.value,willCommit:!0,commitKey:1,selStart:r.target.selectionStart,selEnd:r.target.selectionEnd}})}m(r)}));o.addEventListener("mousedown",(function(t){u.beforeInputValue=t.target.value;u.beforeInputSelectionRange=null}));o.addEventListener("keyup",(function(t){t.target.selectionStart===t.target.selectionEnd&&(u.beforeInputSelectionRange=null)}));o.addEventListener("select",(function(t){u.beforeInputSelectionRange=[t.target.selectionStart,t.target.selectionEnd]}));null!==(p=this.data.actions)&&void 0!==p&&p.Keystroke&&o.addEventListener("input",(function(r){var o,i=-1,l=-1;if(u.beforeInputSelectionRange){var c=_slicedToArray(u.beforeInputSelectionRange,2);i=c[0];l=c[1]}null===(o=t.linkService.eventBus)||void 0===o||o.dispatch("dispatcheventinsandbox",{source:t,detail:{id:a,name:"Keystroke",value:u.beforeInputValue,change:r.data,willCommit:!1,selStart:i,selEnd:l}})}));this._setEventListeners(o,[["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],(function(t){return t.target.value}))}h&&o.addEventListener("blur",h);null!==this.data.maxLen&&(o.maxLength=this.data.maxLen);if(this.data.comb){var y=(this.data.rect[2]-this.data.rect[0])/this.data.maxLen;o.classList.add("comb");o.style.letterSpacing="calc(".concat(y,"px - 1ch)")}}else{(o=document.createElement("div")).textContent=this.data.fieldValue;o.style.verticalAlign="middle";o.style.display="table-cell"}this._setTextStyle(o);this._setBackgroundColor(o);this.container.appendChild(o);return this.container}},{key:"_setTextStyle",value:function _setTextStyle(t){var r=this.data.defaultAppearanceData,a=r.fontSize,i=r.fontColor,l=t.style;a&&(l.fontSize="".concat(a,"px"));l.color=o.Util.makeHexColor(i[0],i[1],i[2]);null!==this.data.textAlignment&&(l.textAlign=["left","center","right"][this.data.textAlignment])}}]);return TextWidgetAnnotationElement}(v),b=function(t){_inherits(CheckboxWidgetAnnotationElement,t);var r=_createSuper(CheckboxWidgetAnnotationElement);function CheckboxWidgetAnnotationElement(t){_classCallCheck(this,CheckboxWidgetAnnotationElement);return r.call(this,t,{isRenderable:t.renderForms})}_createClass(CheckboxWidgetAnnotationElement,[{key:"render",value:function render(){var t=this,r=this.annotationStorage,a=this.data,o=a.id,i=r.getValue(o,{value:a.exportValue===a.fieldValue}).value;if("string"==typeof i){i="Off"!==i;r.setValue(o,{value:i})}this.container.className="buttonWidgetAnnotation checkBox";var l=document.createElement("input");d.add(l);l.disabled=a.readOnly;l.type="checkbox";l.name=a.fieldName;i&&l.setAttribute("checked",!0);l.setAttribute("id",o);l.setAttribute("exportValue",a.exportValue);l.tabIndex=c;l.addEventListener("change",(function(i){var l,u=i.target,c=u.name,d=u.checked,h=_createForOfIteratorHelper(t._getElementsByName(c,o));try{for(h.s();!(l=h.n()).done;){var p=l.value,m=d&&p.exportValue===a.exportValue;p.domElement&&(p.domElement.checked=m);r.setValue(p.id,{value:m})}}catch(t){h.e(t)}finally{h.f()}r.setValue(o,{value:d})}));l.addEventListener("resetform",(function(t){var r=a.defaultFieldValue||"Off";t.target.checked=r===a.exportValue}));if(this.enableScripting&&this.hasJSActions){l.addEventListener("updatefromsandbox",(function(a){var i={value:function value(t){t.target.checked="Off"!==t.detail.value;r.setValue(o,{value:t.target.checked})}};t._dispatchEventFromSandbox(i,a)}));this._setEventListeners(l,[["change","Validate"],["change","Action"],["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],(function(t){return t.target.checked}))}this._setBackgroundColor(l);this.container.appendChild(l);return this.container}}]);return CheckboxWidgetAnnotationElement}(v),_=function(t){_inherits(RadioButtonWidgetAnnotationElement,t);var r=_createSuper(RadioButtonWidgetAnnotationElement);function RadioButtonWidgetAnnotationElement(t){_classCallCheck(this,RadioButtonWidgetAnnotationElement);return r.call(this,t,{isRenderable:t.renderForms})}_createClass(RadioButtonWidgetAnnotationElement,[{key:"render",value:function render(){var t=this;this.container.className="buttonWidgetAnnotation radioButton";var r=this.annotationStorage,a=this.data,o=a.id,i=r.getValue(o,{value:a.fieldValue===a.buttonValue}).value;if("string"==typeof i){i=i!==a.buttonValue;r.setValue(o,{value:i})}var l=document.createElement("input");d.add(l);l.disabled=a.readOnly;l.type="radio";l.name=a.fieldName;i&&l.setAttribute("checked",!0);l.setAttribute("id",o);l.tabIndex=c;l.addEventListener("change",(function(a){var i,l=a.target,u=l.name,c=l.checked,d=_createForOfIteratorHelper(t._getElementsByName(u,o));try{for(d.s();!(i=d.n()).done;){var h=i.value;r.setValue(h.id,{value:!1})}}catch(t){d.e(t)}finally{d.f()}r.setValue(o,{value:c})}));l.addEventListener("resetform",(function(t){var r=a.defaultFieldValue;t.target.checked=null!=r&&r===a.buttonValue}));if(this.enableScripting&&this.hasJSActions){var u=a.buttonValue;l.addEventListener("updatefromsandbox",(function(a){var i={value:function value(a){var i,l=u===a.detail.value,c=_createForOfIteratorHelper(t._getElementsByName(a.target.name));try{for(c.s();!(i=c.n()).done;){var d=i.value,h=l&&d.id===o;d.domElement&&(d.domElement.checked=h);r.setValue(d.id,{value:h})}}catch(t){c.e(t)}finally{c.f()}}};t._dispatchEventFromSandbox(i,a)}));this._setEventListeners(l,[["change","Validate"],["change","Action"],["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],(function(t){return t.target.checked}))}this._setBackgroundColor(l);this.container.appendChild(l);return this.container}}]);return RadioButtonWidgetAnnotationElement}(v),S=function(t){_inherits(PushButtonWidgetAnnotationElement,t);var r=_createSuper(PushButtonWidgetAnnotationElement);function PushButtonWidgetAnnotationElement(){_classCallCheck(this,PushButtonWidgetAnnotationElement);return r.apply(this,arguments)}_createClass(PushButtonWidgetAnnotationElement,[{key:"render",value:function render(){var t=_get(_getPrototypeOf(PushButtonWidgetAnnotationElement.prototype),"render",this).call(this);t.className="buttonWidgetAnnotation pushButton";this.data.alternativeText&&(t.title=this.data.alternativeText);return t}}]);return PushButtonWidgetAnnotationElement}(m),A=function(t){_inherits(ChoiceWidgetAnnotationElement,t);var r=_createSuper(ChoiceWidgetAnnotationElement);function ChoiceWidgetAnnotationElement(t){_classCallCheck(this,ChoiceWidgetAnnotationElement);return r.call(this,t,{isRenderable:t.renderForms})}_createClass(ChoiceWidgetAnnotationElement,[{key:"render",value:function render(){var t=this;this.container.className="choiceWidgetAnnotation";var r=this.annotationStorage,a=this.data.id;r.getValue(a,{value:this.data.fieldValue.length>0?this.data.fieldValue[0]:void 0});var o=this.data.defaultAppearanceData.fontSize;o||(o=9);var i="calc(".concat(o,"px * var(--zoom-factor))"),l=document.createElement("select");d.add(l);l.disabled=this.data.readOnly;l.name=this.data.fieldName;l.setAttribute("id",a);l.tabIndex=c;l.style.fontSize="".concat(o,"px");if(!this.data.combo){l.size=this.data.options.length;this.data.multiSelect&&(l.multiple=!0)}l.addEventListener("resetform",(function(r){var a,o=t.data.defaultFieldValue,i=_createForOfIteratorHelper(l.options);try{for(i.s();!(a=i.n()).done;){var u=a.value;u.selected=u.value===o}}catch(t){i.e(t)}finally{i.f()}}));var u,h=_createForOfIteratorHelper(this.data.options);try{for(h.s();!(u=h.n()).done;){var p=u.value,m=document.createElement("option");m.textContent=p.displayValue;m.value=p.exportValue;this.data.combo&&(m.style.fontSize=i);this.data.fieldValue.includes(p.exportValue)&&m.setAttribute("selected",!0);l.appendChild(m)}}catch(t){h.e(t)}finally{h.f()}var y=function getValue(t,r){var a=r?"value":"textContent",o=t.target.options;return t.target.multiple?Array.prototype.filter.call(o,(function(t){return t.selected})).map((function(t){return t[a]})):-1===o.selectedIndex?null:o[o.selectedIndex][a]},v=function getItems(t){var r=t.target.options;return Array.prototype.map.call(r,(function(t){return{displayValue:t.textContent,exportValue:t.value}}))};if(this.enableScripting&&this.hasJSActions){l.addEventListener("updatefromsandbox",(function(o){var i={value:function value(t){var o,value=t.detail.value,i=new Set(Array.isArray(value)?value:[value]),u=_createForOfIteratorHelper(l.options);try{for(u.s();!(o=u.n()).done;){var c=o.value;c.selected=i.has(c.value)}}catch(t){u.e(t)}finally{u.f()}r.setValue(a,{value:y(t,!0)})},multipleSelection:function multipleSelection(t){l.multiple=!0},remove:function remove(t){var o=l.options,i=t.detail.remove;o[i].selected=!1;l.remove(i);if(o.length>0){var u=Array.prototype.findIndex.call(o,(function(t){return t.selected}));-1===u&&(o[0].selected=!0)}r.setValue(a,{value:y(t,!0),items:v(t)})},clear:function clear(t){for(;0!==l.length;)l.remove(0);r.setValue(a,{value:null,items:[]})},insert:function insert(t){var o=t.detail.insert,i=o.index,u=o.displayValue,c=o.exportValue,d=document.createElement("option");d.textContent=u;d.value=c;l.insertBefore(d,l.children[i]);r.setValue(a,{value:y(t,!0),items:v(t)})},items:function items(t){for(var items=t.detail.items;0!==l.length;)l.remove(0);var o,i=_createForOfIteratorHelper(items);try{for(i.s();!(o=i.n()).done;){var u=o.value,c=u.displayValue,d=u.exportValue,h=document.createElement("option");h.textContent=c;h.value=d;l.appendChild(h)}}catch(t){i.e(t)}finally{i.f()}l.options.length>0&&(l.options[0].selected=!0);r.setValue(a,{value:y(t,!0),items:v(t)})},indices:function indices(t){var o,indices=new Set(t.detail.indices),i=_createForOfIteratorHelper(t.target.options);try{for(i.s();!(o=i.n()).done;){var l=o.value;l.selected=indices.has(l.index)}}catch(t){i.e(t)}finally{i.f()}r.setValue(a,{value:y(t,!0)})},editable:function editable(t){t.target.disabled=!t.detail.editable}};t._dispatchEventFromSandbox(i,o)}));l.addEventListener("input",(function(o){var i,l=y(o,!0),u=y(o,!1);r.setValue(a,{value:l});null===(i=t.linkService.eventBus)||void 0===i||i.dispatch("dispatcheventinsandbox",{source:t,detail:{id:a,name:"Keystroke",value:u,changeEx:l,willCommit:!0,commitKey:1,keyDown:!1}})}));this._setEventListeners(l,[["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"],["input","Action"]],(function(t){return t.target.checked}))}else l.addEventListener("input",(function(t){r.setValue(a,{value:y(t)})}));this._setBackgroundColor(l);this.container.appendChild(l);return this.container}}]);return ChoiceWidgetAnnotationElement}(v),C=function(t){_inherits(PopupAnnotationElement,t);var r=_createSuper(PopupAnnotationElement);function PopupAnnotationElement(t){var a,o;_classCallCheck(this,PopupAnnotationElement);var i=!!(null!==(a=t.data.titleObj)&&void 0!==a&&a.str||null!==(o=t.data.contentsObj)&&void 0!==o&&o.str);return r.call(this,t,{isRenderable:i})}_createClass(PopupAnnotationElement,[{key:"render",value:function render(){this.container.className="popupAnnotation";if(["Line","Square","Circle","PolyLine","Polygon","Ink"].includes(this.data.parentType))return this.container;var t='[data-annotation-id="'.concat(this.data.parentId,'"]'),r=this.layer.querySelectorAll(t);if(0===r.length)return this.container;var a=new k({container:this.container,trigger:Array.from(r),color:this.data.color,titleObj:this.data.titleObj,modificationDate:this.data.modificationDate,contentsObj:this.data.contentsObj}),i=this.page,l=o.Util.normalizeRect([this.data.parentRect[0],i.view[3]-this.data.parentRect[1]+i.view[1],this.data.parentRect[2],i.view[3]-this.data.parentRect[3]+i.view[1]]),u=l[0]+this.data.parentRect[2]-this.data.parentRect[0],c=l[1];this.container.style.transformOrigin="".concat(-u,"px ").concat(-c,"px");this.container.style.left="".concat(u,"px");this.container.style.top="".concat(c,"px");this.container.appendChild(a.render());return this.container}}]);return PopupAnnotationElement}(p),k=function(){function PopupElement(t){_classCallCheck(this,PopupElement);this.container=t.container;this.trigger=t.trigger;this.color=t.color;this.titleObj=t.titleObj;this.modificationDate=t.modificationDate;this.contentsObj=t.contentsObj;this.hideWrapper=t.hideWrapper||!1;this.pinned=!1}_createClass(PopupElement,[{key:"render",value:function render(){var t=document.createElement("div");t.className="popupWrapper";this.hideElement=this.hideWrapper?t:this.container;this.hideElement.hidden=!0;var r=document.createElement("div");r.className="popup";var a=this.color;if(a){var l=.7*(255-a[0])+a[0],u=.7*(255-a[1])+a[1],c=.7*(255-a[2])+a[2];r.style.backgroundColor=o.Util.makeHexColor(0|l,0|u,0|c)}var d=document.createElement("h1");d.dir=this.titleObj.dir;d.textContent=this.titleObj.str;r.appendChild(d);var h=i.PDFDateString.toDateObject(this.modificationDate);if(h){var p=document.createElement("span");p.textContent="{{date}}, {{time}}";p.dataset.l10nId="annotation_date_string";p.dataset.l10nArgs=JSON.stringify({date:h.toLocaleDateString(),time:h.toLocaleTimeString()});r.appendChild(p)}var m=this._formatContents(this.contentsObj);r.appendChild(m);Array.isArray(this.trigger)||(this.trigger=[this.trigger]);var y,v=_createForOfIteratorHelper(this.trigger);try{for(v.s();!(y=v.n()).done;){var g=y.value;g.addEventListener("click",this._toggle.bind(this));g.addEventListener("mouseover",this._show.bind(this,!1));g.addEventListener("mouseout",this._hide.bind(this,!1))}}catch(t){v.e(t)}finally{v.f()}r.addEventListener("click",this._hide.bind(this,!0));t.appendChild(r);return t}},{key:"_formatContents",value:function _formatContents(t){var r=t.str,a=t.dir,o=document.createElement("p");o.dir=a;for(var i=r.split(/(?:\r\n?|\n)/),l=0,u=i.length;l<u;++l){var c=i[l];o.appendChild(document.createTextNode(c));l<u-1&&o.appendChild(document.createElement("br"))}return o}},{key:"_toggle",value:function _toggle(){this.pinned?this._hide(!0):this._show(!0)}},{key:"_show",value:function _show(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];t&&(this.pinned=!0);if(this.hideElement.hidden){this.hideElement.hidden=!1;this.container.style.zIndex+=1}}},{key:"_hide",value:function _hide(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];t&&(this.pinned=!1);if(!this.hideElement.hidden&&!this.pinned){this.hideElement.hidden=!0;this.container.style.zIndex-=1}}}]);return PopupElement}(),R=function(t){_inherits(FreeTextAnnotationElement,t);var r=_createSuper(FreeTextAnnotationElement);function FreeTextAnnotationElement(t){var a,o;_classCallCheck(this,FreeTextAnnotationElement);var i=!!(t.data.hasPopup||null!==(a=t.data.titleObj)&&void 0!==a&&a.str||null!==(o=t.data.contentsObj)&&void 0!==o&&o.str);return r.call(this,t,{isRenderable:i,ignoreBorder:!0})}_createClass(FreeTextAnnotationElement,[{key:"render",value:function render(){this.container.className="freeTextAnnotation";this.data.hasPopup||this._createPopup(null,this.data);return this.container}}]);return FreeTextAnnotationElement}(p),w=function(t){_inherits(LineAnnotationElement,t);var r=_createSuper(LineAnnotationElement);function LineAnnotationElement(t){var a,o;_classCallCheck(this,LineAnnotationElement);var i=!!(t.data.hasPopup||null!==(a=t.data.titleObj)&&void 0!==a&&a.str||null!==(o=t.data.contentsObj)&&void 0!==o&&o.str);return r.call(this,t,{isRenderable:i,ignoreBorder:!0})}_createClass(LineAnnotationElement,[{key:"render",value:function render(){this.container.className="lineAnnotation";var t=this.data,r=t.rect[2]-t.rect[0],a=t.rect[3]-t.rect[1],o=this.svgFactory.create(r,a),i=this.svgFactory.createElement("svg:line");i.setAttribute("x1",t.rect[2]-t.lineCoordinates[0]);i.setAttribute("y1",t.rect[3]-t.lineCoordinates[1]);i.setAttribute("x2",t.rect[2]-t.lineCoordinates[2]);i.setAttribute("y2",t.rect[3]-t.lineCoordinates[3]);i.setAttribute("stroke-width",t.borderStyle.width||1);i.setAttribute("stroke","transparent");o.appendChild(i);this.container.append(o);this._createPopup(i,t);return this.container}}]);return LineAnnotationElement}(p),P=function(t){_inherits(SquareAnnotationElement,t);var r=_createSuper(SquareAnnotationElement);function SquareAnnotationElement(t){var a,o;_classCallCheck(this,SquareAnnotationElement);var i=!!(t.data.hasPopup||null!==(a=t.data.titleObj)&&void 0!==a&&a.str||null!==(o=t.data.contentsObj)&&void 0!==o&&o.str);return r.call(this,t,{isRenderable:i,ignoreBorder:!0})}_createClass(SquareAnnotationElement,[{key:"render",value:function render(){this.container.className="squareAnnotation";var t=this.data,r=t.rect[2]-t.rect[0],a=t.rect[3]-t.rect[1],o=this.svgFactory.create(r,a),i=t.borderStyle.width,l=this.svgFactory.createElement("svg:rect");l.setAttribute("x",i/2);l.setAttribute("y",i/2);l.setAttribute("width",r-i);l.setAttribute("height",a-i);l.setAttribute("stroke-width",i||1);l.setAttribute("stroke","transparent");l.setAttribute("fill","none");o.appendChild(l);this.container.append(o);this._createPopup(l,t);return this.container}}]);return SquareAnnotationElement}(p),x=function(t){_inherits(CircleAnnotationElement,t);var r=_createSuper(CircleAnnotationElement);function CircleAnnotationElement(t){var a,o;_classCallCheck(this,CircleAnnotationElement);var i=!!(t.data.hasPopup||null!==(a=t.data.titleObj)&&void 0!==a&&a.str||null!==(o=t.data.contentsObj)&&void 0!==o&&o.str);return r.call(this,t,{isRenderable:i,ignoreBorder:!0})}_createClass(CircleAnnotationElement,[{key:"render",value:function render(){this.container.className="circleAnnotation";var t=this.data,r=t.rect[2]-t.rect[0],a=t.rect[3]-t.rect[1],o=this.svgFactory.create(r,a),i=t.borderStyle.width,l=this.svgFactory.createElement("svg:ellipse");l.setAttribute("cx",r/2);l.setAttribute("cy",a/2);l.setAttribute("rx",r/2-i/2);l.setAttribute("ry",a/2-i/2);l.setAttribute("stroke-width",i||1);l.setAttribute("stroke","transparent");l.setAttribute("fill","none");o.appendChild(l);this.container.append(o);this._createPopup(l,t);return this.container}}]);return CircleAnnotationElement}(p),T=function(t){_inherits(PolylineAnnotationElement,t);var r=_createSuper(PolylineAnnotationElement);function PolylineAnnotationElement(t){var a,o,i;_classCallCheck(this,PolylineAnnotationElement);var l=!!(t.data.hasPopup||null!==(a=t.data.titleObj)&&void 0!==a&&a.str||null!==(o=t.data.contentsObj)&&void 0!==o&&o.str);(i=r.call(this,t,{isRenderable:l,ignoreBorder:!0})).containerClassName="polylineAnnotation";i.svgElementName="svg:polyline";return i}_createClass(PolylineAnnotationElement,[{key:"render",value:function render(){this.container.className=this.containerClassName;var t,r=this.data,a=r.rect[2]-r.rect[0],o=r.rect[3]-r.rect[1],i=this.svgFactory.create(a,o),l=[],u=_createForOfIteratorHelper(r.vertices);try{for(u.s();!(t=u.n()).done;){var c=t.value,d=c.x-r.rect[0],h=r.rect[3]-c.y;l.push(d+","+h)}}catch(t){u.e(t)}finally{u.f()}l=l.join(" ");var p=this.svgFactory.createElement(this.svgElementName);p.setAttribute("points",l);p.setAttribute("stroke-width",r.borderStyle.width||1);p.setAttribute("stroke","transparent");p.setAttribute("fill","none");i.appendChild(p);this.container.append(i);this._createPopup(p,r);return this.container}}]);return PolylineAnnotationElement}(p),E=function(t){_inherits(PolygonAnnotationElement,t);var r=_createSuper(PolygonAnnotationElement);function PolygonAnnotationElement(t){var a;_classCallCheck(this,PolygonAnnotationElement);(a=r.call(this,t)).containerClassName="polygonAnnotation";a.svgElementName="svg:polygon";return a}return PolygonAnnotationElement}(T),O=function(t){_inherits(CaretAnnotationElement,t);var r=_createSuper(CaretAnnotationElement);function CaretAnnotationElement(t){var a,o;_classCallCheck(this,CaretAnnotationElement);var i=!!(t.data.hasPopup||null!==(a=t.data.titleObj)&&void 0!==a&&a.str||null!==(o=t.data.contentsObj)&&void 0!==o&&o.str);return r.call(this,t,{isRenderable:i,ignoreBorder:!0})}_createClass(CaretAnnotationElement,[{key:"render",value:function render(){this.container.className="caretAnnotation";this.data.hasPopup||this._createPopup(null,this.data);return this.container}}]);return CaretAnnotationElement}(p),I=function(t){_inherits(InkAnnotationElement,t);var r=_createSuper(InkAnnotationElement);function InkAnnotationElement(t){var a,o,i;_classCallCheck(this,InkAnnotationElement);var l=!!(t.data.hasPopup||null!==(a=t.data.titleObj)&&void 0!==a&&a.str||null!==(o=t.data.contentsObj)&&void 0!==o&&o.str);(i=r.call(this,t,{isRenderable:l,ignoreBorder:!0})).containerClassName="inkAnnotation";i.svgElementName="svg:polyline";return i}_createClass(InkAnnotationElement,[{key:"render",value:function render(){this.container.className=this.containerClassName;var t,r=this.data,a=r.rect[2]-r.rect[0],o=r.rect[3]-r.rect[1],i=this.svgFactory.create(a,o),l=_createForOfIteratorHelper(r.inkLists);try{for(l.s();!(t=l.n()).done;){var u,c=t.value,d=[],h=_createForOfIteratorHelper(c);try{for(h.s();!(u=h.n()).done;){var p=u.value,m=p.x-r.rect[0],y=r.rect[3]-p.y;d.push("".concat(m,",").concat(y))}}catch(t){h.e(t)}finally{h.f()}d=d.join(" ");var v=this.svgFactory.createElement(this.svgElementName);v.setAttribute("points",d);v.setAttribute("stroke-width",r.borderStyle.width||1);v.setAttribute("stroke","transparent");v.setAttribute("fill","none");this._createPopup(v,r);i.appendChild(v)}}catch(t){l.e(t)}finally{l.f()}this.container.append(i);return this.container}}]);return InkAnnotationElement}(p),D=function(t){_inherits(HighlightAnnotationElement,t);var r=_createSuper(HighlightAnnotationElement);function HighlightAnnotationElement(t){var a,o;_classCallCheck(this,HighlightAnnotationElement);var i=!!(t.data.hasPopup||null!==(a=t.data.titleObj)&&void 0!==a&&a.str||null!==(o=t.data.contentsObj)&&void 0!==o&&o.str);return r.call(this,t,{isRenderable:i,ignoreBorder:!0,createQuadrilaterals:!0})}_createClass(HighlightAnnotationElement,[{key:"render",value:function render(){this.data.hasPopup||this._createPopup(null,this.data);if(this.quadrilaterals)return this._renderQuadrilaterals("highlightAnnotation");this.container.className="highlightAnnotation";return this.container}}]);return HighlightAnnotationElement}(p),M=function(t){_inherits(UnderlineAnnotationElement,t);var r=_createSuper(UnderlineAnnotationElement);function UnderlineAnnotationElement(t){var a,o;_classCallCheck(this,UnderlineAnnotationElement);var i=!!(t.data.hasPopup||null!==(a=t.data.titleObj)&&void 0!==a&&a.str||null!==(o=t.data.contentsObj)&&void 0!==o&&o.str);return r.call(this,t,{isRenderable:i,ignoreBorder:!0,createQuadrilaterals:!0})}_createClass(UnderlineAnnotationElement,[{key:"render",value:function render(){this.data.hasPopup||this._createPopup(null,this.data);if(this.quadrilaterals)return this._renderQuadrilaterals("underlineAnnotation");this.container.className="underlineAnnotation";return this.container}}]);return UnderlineAnnotationElement}(p),j=function(t){_inherits(SquigglyAnnotationElement,t);var r=_createSuper(SquigglyAnnotationElement);function SquigglyAnnotationElement(t){var a,o;_classCallCheck(this,SquigglyAnnotationElement);var i=!!(t.data.hasPopup||null!==(a=t.data.titleObj)&&void 0!==a&&a.str||null!==(o=t.data.contentsObj)&&void 0!==o&&o.str);return r.call(this,t,{isRenderable:i,ignoreBorder:!0,createQuadrilaterals:!0})}_createClass(SquigglyAnnotationElement,[{key:"render",value:function render(){this.data.hasPopup||this._createPopup(null,this.data);if(this.quadrilaterals)return this._renderQuadrilaterals("squigglyAnnotation");this.container.className="squigglyAnnotation";return this.container}}]);return SquigglyAnnotationElement}(p),L=function(t){_inherits(StrikeOutAnnotationElement,t);var r=_createSuper(StrikeOutAnnotationElement);function StrikeOutAnnotationElement(t){var a,o;_classCallCheck(this,StrikeOutAnnotationElement);var i=!!(t.data.hasPopup||null!==(a=t.data.titleObj)&&void 0!==a&&a.str||null!==(o=t.data.contentsObj)&&void 0!==o&&o.str);return r.call(this,t,{isRenderable:i,ignoreBorder:!0,createQuadrilaterals:!0})}_createClass(StrikeOutAnnotationElement,[{key:"render",value:function render(){this.data.hasPopup||this._createPopup(null,this.data);if(this.quadrilaterals)return this._renderQuadrilaterals("strikeoutAnnotation");this.container.className="strikeoutAnnotation";return this.container}}]);return StrikeOutAnnotationElement}(p),W=function(t){_inherits(StampAnnotationElement,t);var r=_createSuper(StampAnnotationElement);function StampAnnotationElement(t){var a,o;_classCallCheck(this,StampAnnotationElement);var i=!!(t.data.hasPopup||null!==(a=t.data.titleObj)&&void 0!==a&&a.str||null!==(o=t.data.contentsObj)&&void 0!==o&&o.str);return r.call(this,t,{isRenderable:i,ignoreBorder:!0})}_createClass(StampAnnotationElement,[{key:"render",value:function render(){this.container.className="stampAnnotation";this.data.hasPopup||this._createPopup(null,this.data);return this.container}}]);return StampAnnotationElement}(p),B=function(t){_inherits(FileAttachmentAnnotationElement,t);var r=_createSuper(FileAttachmentAnnotationElement);function FileAttachmentAnnotationElement(t){var a,l;_classCallCheck(this,FileAttachmentAnnotationElement);var u=(l=r.call(this,t,{isRenderable:!0})).data.file,c=u.filename,d=u.content;l.filename=(0,i.getFilenameFromUrl)(c);l.content=d;null===(a=l.linkService.eventBus)||void 0===a||a.dispatch("fileattachmentannotation",{source:_assertThisInitialized(l),id:(0,o.stringToPDFString)(c),filename:c,content:d});return l}_createClass(FileAttachmentAnnotationElement,[{key:"render",value:function render(){var t,r;this.container.className="fileAttachmentAnnotation";var a=document.createElement("div");a.style.height=this.container.style.height;a.style.width=this.container.style.width;a.addEventListener("dblclick",this._download.bind(this));!this.data.hasPopup&&(null!==(t=this.data.titleObj)&&void 0!==t&&t.str||null!==(r=this.data.contentsObj)&&void 0!==r&&r.str)&&this._createPopup(a,this.data);this.container.appendChild(a);return this.container}},{key:"_download",value:function _download(){var t;null===(t=this.downloadManager)||void 0===t||t.openOrDownloadData(this.container,this.content,this.filename)}}]);return FileAttachmentAnnotationElement}(p),N=function(){function AnnotationLayer(){_classCallCheck(this,AnnotationLayer)}_createClass(AnnotationLayer,null,[{key:"render",value:function render(t){var r,a=[],u=[],c=_createForOfIteratorHelper(t.annotations);try{for(c.s();!(r=c.n()).done;){var d=r.value;d&&(d.annotationType!==o.AnnotationType.POPUP?a.push(d):u.push(d))}}catch(t){c.e(t)}finally{c.f()}u.length&&a.push.apply(a,u);for(var p=0,m=a;p<m.length;p++){var y=m[p],v=h.create({data:y,layer:t.div,page:t.page,viewport:t.viewport,linkService:t.linkService,downloadManager:t.downloadManager,imageResourcesPath:t.imageResourcesPath||"",renderForms:!1!==t.renderForms,svgFactory:new i.DOMSVGFactory,annotationStorage:t.annotationStorage||new l.AnnotationStorage,enableScripting:t.enableScripting,hasJSActions:t.hasJSActions,fieldObjects:t.fieldObjects,mouseState:t.mouseState||{isDown:!1}});if(v.isRenderable){var g=v.render();y.hidden&&(g.style.visibility="hidden");if(Array.isArray(g)){var b,_=_createForOfIteratorHelper(g);try{for(_.s();!(b=_.n()).done;){var S=b.value;t.div.appendChild(S)}}catch(t){_.e(t)}finally{_.f()}}else v instanceof C?t.div.prepend(g):t.div.appendChild(g)}}}},{key:"update",value:function update(t){var r,a="matrix(".concat(t.viewport.transform.join(","),")"),o=_createForOfIteratorHelper(t.annotations);try{for(o.s();!(r=o.n()).done;){var i=r.value,l=t.div.querySelectorAll('[data-annotation-id="'.concat(i.id,'"]'));if(l){var u,c=_createForOfIteratorHelper(l);try{for(c.s();!(u=c.n()).done;){u.value.style.transform=a}}catch(t){c.e(t)}finally{c.f()}}}}catch(t){o.e(t)}finally{o.f()}t.div.hidden=!1}}]);return AnnotationLayer}();r.AnnotationLayer=N},(t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.ColorConverters=void 0;function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var a=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==a)return;var o,i,l=[],u=!0,c=!1;try{for(a=a.call(t);!(u=(o=a.next()).done);u=!0){l.push(o.value);if(r&&l.length===r)break}}catch(t){c=!0;i=t}finally{try{u||null==a.return||a.return()}finally{if(c)throw i}}return l}(t,r)||function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);if("Map"===a||"Set"===a)return Array.from(t);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return _arrayLikeToArray(t,r)}(t,r)||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 _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}function makeColorComp(t){return Math.floor(255*Math.max(0,Math.min(1,t))).toString(16).padStart(2,"0")}var a=function(){function ColorConverters(){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,ColorConverters)}!function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}(ColorConverters,null,[{key:"CMYK_G",value:function CMYK_G(t){var r=_slicedToArray(t,4),a=r[0],o=r[1],i=r[2],l=r[3];return["G",1-Math.min(1,.3*a+.59*i+.11*o+l)]}},{key:"G_CMYK",value:function G_CMYK(t){return["CMYK",0,0,0,1-_slicedToArray(t,1)[0]]}},{key:"G_RGB",value:function G_RGB(t){var r=_slicedToArray(t,1)[0];return["RGB",r,r,r]}},{key:"G_HTML",value:function G_HTML(t){var r=makeColorComp(_slicedToArray(t,1)[0]);return"#".concat(r).concat(r).concat(r)}},{key:"RGB_G",value:function RGB_G(t){var r=_slicedToArray(t,3);return["G",.3*r[0]+.59*r[1]+.11*r[2]]}},{key:"RGB_HTML",value:function RGB_HTML(t){var r=_slicedToArray(t,3),a=r[0],o=r[1],i=r[2],l=makeColorComp(a),u=makeColorComp(o),c=makeColorComp(i);return"#".concat(l).concat(u).concat(c)}},{key:"T_HTML",value:function T_HTML(){return"#00000000"}},{key:"CMYK_RGB",value:function CMYK_RGB(t){var r=_slicedToArray(t,4),a=r[0],o=r[1],i=r[2],l=r[3];return["RGB",1-Math.min(1,a+l),1-Math.min(1,i+l),1-Math.min(1,o+l)]}},{key:"CMYK_HTML",value:function CMYK_HTML(t){return this.RGB_HTML(this.CMYK_RGB(t))}},{key:"RGB_CMYK",value:function RGB_CMYK(t){var r=_slicedToArray(t,3),a=1-r[0],o=1-r[1],i=1-r[2];return["CMYK",a,o,i,Math.min(a,o,i)]}}]);return ColorConverters}();r.ColorConverters=a},(t,r,a)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.renderTextLayer=function renderTextLayer(t){var r=new c({textContent:t.textContent,textContentStream:t.textContentStream,container:t.container,viewport:t.viewport,textDivs:t.textDivs,textContentItemsStr:t.textContentItemsStr,enhanceTextSelection:t.enhanceTextSelection});r._render(t.timeout);return r};var o=a(4);function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}function _createForOfIteratorHelper(t,r){var a="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!a){if(Array.isArray(t)||(a=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);if("Map"===a||"Set"===a)return Array.from(t);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){a&&(t=a);var o=0,i=function F(){};return{s:i,n:function n(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function e(t){throw t},f:i}}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 l,u=!0,c=!1;return{s:function s(){a=a.call(t)},n:function n(){var t=a.next();u=t.done;return t},e:function e(t){c=!0;l=t},f:function f(){try{u||null==a.return||a.return()}finally{if(c)throw l}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}var i=30,l=new Map,u=/^\s+$/g;function appendText(t,r,a,c){var d=document.createElement("span"),h=t._enhanceTextSelection?{angle:0,canvasWidth:0,hasText:""!==r.str,hasEOL:r.hasEOL,originalTransform:null,paddingBottom:0,paddingLeft:0,paddingRight:0,paddingTop:0,scale:1}:{angle:0,canvasWidth:0,hasText:""!==r.str,hasEOL:r.hasEOL};t._textDivs.push(d);var p=o.Util.transform(t._viewport.transform,r.transform),m=Math.atan2(p[1],p[0]),y=a[r.fontName];y.vertical&&(m+=Math.PI/2);var v,g,b=Math.hypot(p[2],p[3]),_=b*function getAscent(t,r){var a=l.get(t);if(a)return a;r.save();r.font="".concat(i,"px ").concat(t);var o=r.measureText(""),u=o.fontBoundingBoxAscent,c=Math.abs(o.fontBoundingBoxDescent);if(u){r.restore();var d=u/(u+c);l.set(t,d);return d}r.strokeStyle="red";r.clearRect(0,0,i,i);r.strokeText("g",0,0);var h=r.getImageData(0,0,i,i).data;c=0;for(var p=h.length-1-3;p>=0;p-=4)if(h[p]>0){c=Math.ceil(p/4/i);break}r.clearRect(0,0,i,i);r.strokeText("A",0,i);u=0;for(var m=0,y=(h=r.getImageData(0,0,i,i).data).length;m<y;m+=4)if(h[m]>0){u=i-Math.floor(m/4/i);break}r.restore();if(u){var v=u/(u+c);l.set(t,v);return v}l.set(t,.8);return.8}(y.fontFamily,c);if(0===m){v=p[4];g=p[5]-_}else{v=p[4]+_*Math.sin(m);g=p[5]-_*Math.cos(m)}d.style.left="".concat(v,"px");d.style.top="".concat(g,"px");d.style.fontSize="".concat(b,"px");d.style.fontFamily=y.fontFamily;d.setAttribute("role","presentation");d.textContent=r.str;d.dir=r.dir;t._fontInspectorEnabled&&(d.dataset.fontName=r.fontName);0!==m&&(h.angle=m*(180/Math.PI));var S=!1;if(r.str.length>1||t._enhanceTextSelection&&u.test(r.str))S=!0;else if(r.transform[0]!==r.transform[3]){var A=Math.abs(r.transform[0]),C=Math.abs(r.transform[3]);A!==C&&Math.max(A,C)/Math.min(A,C)>1.5&&(S=!0)}S&&(y.vertical?h.canvasWidth=r.height*t._viewport.scale:h.canvasWidth=r.width*t._viewport.scale);t._textDivProperties.set(d,h);t._textContentStream&&t._layoutText(d);if(t._enhanceTextSelection&&h.hasText){var k=1,R=0;if(0!==m){k=Math.cos(m);R=Math.sin(m)}var w,P,x=(y.vertical?r.height:r.width)*t._viewport.scale,T=b;if(0!==m){w=[k,R,-R,k,v,g];P=o.Util.getAxialAlignedBoundingBox([0,0,x,T],w)}else P=[v,g,v+x,g+T];t._bounds.push({left:P[0],top:P[1],right:P[2],bottom:P[3],div:d,size:[x,T],m:w})}}function render(t){if(!t._canceled){var r=t._textDivs,a=t._capability,o=r.length;if(o>1e5){t._renderingDone=!0;a.resolve()}else{if(!t._textContentStream)for(var i=0;i<o;i++)t._layoutText(r[i]);t._renderingDone=!0;a.resolve()}}}function findPositiveMin(t,r,a){for(var o=0,i=0;i<a;i++){var l=t[r++];l>0&&(o=o?Math.min(l,o):l)}return o}function expand(t){for(var r=t._bounds,a=t._viewport,i=function expandBounds(t,r,a){var o=a.map((function(t,r){return{x1:t.left,y1:t.top,x2:t.right,y2:t.bottom,index:r,x1New:void 0,x2New:void 0}}));expandBoundsLTR(t,o);var i,l=new Array(a.length),u=_createForOfIteratorHelper(o);try{for(u.s();!(i=u.n()).done;){var c=i.value,d=c.index;l[d]={left:c.x1New,top:0,right:c.x2New,bottom:0}}}catch(t){u.e(t)}finally{u.f()}a.map((function(r,a){var i=l[a],u=o[a];u.x1=r.top;u.y1=t-i.right;u.x2=r.bottom;u.y2=t-i.left;u.index=a;u.x1New=void 0;u.x2New=void 0}));expandBoundsLTR(r,o);var h,p=_createForOfIteratorHelper(o);try{for(p.s();!(h=p.n()).done;){var m=h.value,y=m.index;l[y].top=m.x1New;l[y].bottom=m.x2New}}catch(t){p.e(t)}finally{p.f()}return l}(a.width,a.height,r),l=0;l<i.length;l++){var u=r[l].div,c=t._textDivProperties.get(u);if(0!==c.angle){for(var d=i[l],h=r[l],p=h.m,m=p[0],y=p[1],v=[[0,0],[0,h.size[1]],[h.size[0],0],h.size],g=new Float64Array(64),b=0,_=v.length;b<_;b++){var S=o.Util.applyTransform(v[b],p);g[b+0]=m&&(d.left-S[0])/m;g[b+4]=y&&(d.top-S[1])/y;g[b+8]=m&&(d.right-S[0])/m;g[b+12]=y&&(d.bottom-S[1])/y;g[b+16]=y&&(d.left-S[0])/-y;g[b+20]=m&&(d.top-S[1])/m;g[b+24]=y&&(d.right-S[0])/-y;g[b+28]=m&&(d.bottom-S[1])/m;g[b+32]=m&&(d.left-S[0])/-m;g[b+36]=y&&(d.top-S[1])/-y;g[b+40]=m&&(d.right-S[0])/-m;g[b+44]=y&&(d.bottom-S[1])/-y;g[b+48]=y&&(d.left-S[0])/y;g[b+52]=m&&(d.top-S[1])/-m;g[b+56]=y&&(d.right-S[0])/y;g[b+60]=m&&(d.bottom-S[1])/-m}var A=1+Math.min(Math.abs(m),Math.abs(y));c.paddingLeft=findPositiveMin(g,32,16)/A;c.paddingTop=findPositiveMin(g,48,16)/A;c.paddingRight=findPositiveMin(g,0,16)/A;c.paddingBottom=findPositiveMin(g,16,16)/A;t._textDivProperties.set(u,c)}else{c.paddingLeft=r[l].left-i[l].left;c.paddingTop=r[l].top-i[l].top;c.paddingRight=i[l].right-r[l].right;c.paddingBottom=i[l].bottom-r[l].bottom;t._textDivProperties.set(u,c)}}}function expandBoundsLTR(t,r){r.sort((function(t,r){return t.x1-r.x1||t.index-r.index}));var a,o=[{start:-1/0,end:1/0,boundary:{x1:-1/0,y1:-1/0,x2:0,y2:1/0,index:-1,x1New:0,x2New:0}}],i=_createForOfIteratorHelper(r);try{for(i.s();!(a=i.n()).done;){for(var l=a.value,u=0;u<o.length&&o[u].end<=l.y1;)u++;for(var c=o.length-1;c>=0&&o[c].start>=l.y2;)c--;var d=void 0,h=void 0,p=void 0,m=void 0,y=-1/0;for(p=u;p<=c;p++){h=(d=o[p]).boundary;var v=void 0;(v=h.x2>l.x1?h.index>l.index?h.x1New:l.x1:void 0===h.x2New?(h.x2+l.x1)/2:h.x2New)>y&&(y=v)}l.x1New=y;for(p=u;p<=c;p++)void 0===(h=(d=o[p]).boundary).x2New?h.x2>l.x1?h.index>l.index&&(h.x2New=h.x2):h.x2New=y:h.x2New>y&&(h.x2New=Math.max(y,h.x2));var g=[],b=null;for(p=u;p<=c;p++){var _=(h=(d=o[p]).boundary).x2>l.x2?h:l;if(b===_)g[g.length-1].end=d.end;else{g.push({start:d.start,end:d.end,boundary:_});b=_}}if(o[u].start<l.y1){g[0].start=l.y1;g.unshift({start:o[u].start,end:l.y1,boundary:o[u].boundary})}if(l.y2<o[c].end){g[g.length-1].end=l.y2;g.push({start:l.y2,end:o[c].end,boundary:o[c].boundary})}for(p=u;p<=c;p++)if(void 0===(h=(d=o[p]).boundary).x2New){var S=!1;for(m=u-1;!S&&m>=0&&o[m].start>=h.y1;m--)S=o[m].boundary===h;for(m=c+1;!S&&m<o.length&&o[m].end<=h.y2;m++)S=o[m].boundary===h;for(m=0;!S&&m<g.length;m++)S=g[m].boundary===h;S||(h.x2New=y)}Array.prototype.splice.apply(o,[u,c-u+1].concat(g))}}catch(t){i.e(t)}finally{i.f()}for(var A=0,C=o;A<C.length;A++){var k=C[A].boundary;void 0===k.x2New&&(k.x2New=Math.max(t,k.x2))}}var c=function(){function TextLayerRenderTask(t){var r,a=this,i=t.textContent,l=t.textContentStream,u=t.container,c=t.viewport,d=t.textDivs,h=t.textContentItemsStr,p=t.enhanceTextSelection;!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,TextLayerRenderTask);this._textContent=i;this._textContentStream=l;this._container=u;this._document=u.ownerDocument;this._viewport=c;this._textDivs=d||[];this._textContentItemsStr=h||[];this._enhanceTextSelection=!!p;this._fontInspectorEnabled=!(null===(r=globalThis.FontInspector)||void 0===r||!r.enabled);this._reader=null;this._layoutTextLastFontSize=null;this._layoutTextLastFontFamily=null;this._layoutTextCtx=null;this._textDivProperties=new WeakMap;this._renderingDone=!1;this._canceled=!1;this._capability=(0,o.createPromiseCapability)();this._renderTimer=null;this._bounds=[];this._capability.promise.finally((function(){a._enhanceTextSelection||(a._textDivProperties=null);if(a._layoutTextCtx){a._layoutTextCtx.canvas.width=0;a._layoutTextCtx.canvas.height=0;a._layoutTextCtx=null}})).catch((function(){}))}!function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}(TextLayerRenderTask,[{key:"promise",get:function get(){return this._capability.promise}},{key:"cancel",value:function cancel(){this._canceled=!0;if(this._reader){this._reader.cancel(new o.AbortException("TextLayer task cancelled.")).catch((function(){}));this._reader=null}if(null!==this._renderTimer){clearTimeout(this._renderTimer);this._renderTimer=null}this._capability.reject(new Error("TextLayer task cancelled."))}},{key:"_processItems",value:function _processItems(t,r){for(var a=0,o=t.length;a<o;a++)if(void 0!==t[a].str){this._textContentItemsStr.push(t[a].str);appendText(this,t[a],r,this._layoutTextCtx)}else if("beginMarkedContentProps"===t[a].type||"beginMarkedContent"===t[a].type){var i=this._container;this._container=document.createElement("span");this._container.classList.add("markedContent");null!==t[a].id&&this._container.setAttribute("id","".concat(t[a].id));i.appendChild(this._container)}else"endMarkedContent"===t[a].type&&(this._container=this._container.parentNode)}},{key:"_layoutText",value:function _layoutText(t){var r=this._textDivProperties.get(t),a="";if(0!==r.canvasWidth&&r.hasText){var o=t.style,i=o.fontSize,l=o.fontFamily;if(i!==this._layoutTextLastFontSize||l!==this._layoutTextLastFontFamily){this._layoutTextCtx.font="".concat(i," ").concat(l);this._layoutTextLastFontSize=i;this._layoutTextLastFontFamily=l}var u=this._layoutTextCtx.measureText(t.textContent).width;if(u>0){var c=r.canvasWidth/u;this._enhanceTextSelection&&(r.scale=c);a="scaleX(".concat(c,")")}}0!==r.angle&&(a="rotate(".concat(r.angle,"deg) ").concat(a));if(a.length>0){this._enhanceTextSelection&&(r.originalTransform=a);t.style.transform=a}r.hasText&&this._container.appendChild(t);if(r.hasEOL){var d=document.createElement("br");d.setAttribute("role","presentation");this._container.appendChild(d)}}},{key:"_render",value:function _render(){var t=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,a=(0,o.createPromiseCapability)(),l=Object.create(null),u=this._document.createElement("canvas");u.height=u.width=i;u.mozOpaque=!0;this._layoutTextCtx=u.getContext("2d",{alpha:!1});if(this._textContent){var c=this._textContent.items,d=this._textContent.styles;this._processItems(c,d);a.resolve()}else{if(!this._textContentStream)throw new Error('Neither "textContent" nor "textContentStream" parameters specified.');var h=function pump(){t._reader.read().then((function(r){var o=r.value;if(r.done)a.resolve();else{Object.assign(l,o.styles);t._processItems(o.items,l);pump()}}),a.reject)};this._reader=this._textContentStream.getReader();h()}a.promise.then((function(){l=null;r?t._renderTimer=setTimeout((function(){render(t);t._renderTimer=null}),r):render(t)}),this._capability.reject)}},{key:"expandTextDivs",value:function expandTextDivs(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(this._enhanceTextSelection&&this._renderingDone){if(null!==this._bounds){expand(this);this._bounds=null}for(var r=[],a=[],o=0,i=this._textDivs.length;o<i;o++){var l=this._textDivs[o],u=this._textDivProperties.get(l);if(u.hasText)if(t){r.length=0;a.length=0;u.originalTransform&&r.push(u.originalTransform);if(u.paddingTop>0){a.push("".concat(u.paddingTop,"px"));r.push("translateY(".concat(-u.paddingTop,"px)"))}else a.push(0);u.paddingRight>0?a.push("".concat(u.paddingRight/u.scale,"px")):a.push(0);u.paddingBottom>0?a.push("".concat(u.paddingBottom,"px")):a.push(0);if(u.paddingLeft>0){a.push("".concat(u.paddingLeft/u.scale,"px"));r.push("translateX(".concat(-u.paddingLeft/u.scale,"px)"))}else a.push(0);l.style.padding=a.join(" ");r.length&&(l.style.transform=r.join(" "))}else{l.style.padding=null;l.style.transform=u.originalTransform}}}}}]);return TextLayerRenderTask}()},(t,r,a)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.SVGGraphics=void 0;var o=a(4),i=a(1),l=a(6);function _toConsumableArray(t){return function _arrayWithoutHoles(t){if(Array.isArray(t))return _arrayLikeToArray(t)}(t)||function _iterableToArray(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||_unsupportedIterableToArray(t)||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 _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var a=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==a)return;var o,i,l=[],u=!0,c=!1;try{for(a=a.call(t);!(u=(o=a.next()).done);u=!0){l.push(o.value);if(r&&l.length===r)break}}catch(t){c=!0;i=t}finally{try{u||null==a.return||a.return()}finally{if(c)throw i}}return l}(t,r)||_unsupportedIterableToArray(t,r)||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 _createForOfIteratorHelper(t,r){var a="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!a){if(Array.isArray(t)||(a=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){a&&(t=a);var o=0,i=function F(){};return{s:i,n:function n(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function e(t){throw t},f:i}}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 l,u=!0,c=!1;return{s:function s(){a=a.call(t)},n:function n(){var t=a.next();u=t.done;return t},e:function e(t){c=!0;l=t},f:function f(){try{u||null==a.return||a.return()}finally{if(c)throw l}}}}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);return"Map"===a||"Set"===a?Array.from(t):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}var u=function SVGGraphics(){_classCallCheck(this,SVGGraphics);(0,o.unreachable)("Not implemented: SVGGraphics")};r.SVGGraphics=u;var c=function pf(t){if(Number.isInteger(t))return t.toString();var r=t.toFixed(10),a=r.length-1;if("0"!==r[a])return r;do{a--}while("0"===r[a]);return r.substring(0,"."===r[a]?a:a+1)},d=function pm(t){if(0===t[4]&&0===t[5]){if(0===t[1]&&0===t[2])return 1===t[0]&&1===t[3]?"":"scale(".concat(c(t[0])," ").concat(c(t[3]),")");if(t[0]===t[3]&&t[1]===-t[2]){var r=180*Math.acos(t[0])/Math.PI;return"rotate(".concat(c(r),")")}}else if(1===t[0]&&0===t[1]&&0===t[2]&&1===t[3])return"translate(".concat(c(t[4])," ").concat(c(t[5]),")");return"matrix(".concat(c(t[0])," ").concat(c(t[1])," ").concat(c(t[2])," ").concat(c(t[3])," ").concat(c(t[4])," ")+"".concat(c(t[5]),")")},h={fontStyle:"normal",fontWeight:"normal",fillColor:"#000000"},p=["butt","round","square"],m=["miter","round","bevel"],y=function(){for(var t=new Uint8Array([137,80,78,71,13,10,26,10]),r=new Int32Array(256),a=0;a<256;a++){for(var i=a,u=0;u<8;u++)i=1&i?3988292384^i>>1&2147483647:i>>1&2147483647;r[a]=i}function writePngChunk(t,a,o,i){var l=i,u=a.length;o[l]=u>>24&255;o[l+1]=u>>16&255;o[l+2]=u>>8&255;o[l+3]=255&u;o[l+=4]=255&t.charCodeAt(0);o[l+1]=255&t.charCodeAt(1);o[l+2]=255&t.charCodeAt(2);o[l+3]=255&t.charCodeAt(3);l+=4;o.set(a,l);var c=function crc32(t,a,o){for(var i=-1,l=a;l<o;l++){var u=255&(i^t[l]);i=i>>>8^r[u]}return-1^i}(o,i+4,l+=a.length);o[l]=c>>24&255;o[l+1]=c>>16&255;o[l+2]=c>>8&255;o[l+3]=255&c}function deflateSyncUncompressed(t){var r=t.length,a=65535,o=Math.ceil(r/a),i=new Uint8Array(2+r+5*o+4),l=0;i[l++]=120;i[l++]=156;for(var u=0;r>a;){i[l++]=0;i[l++]=255;i[l++]=255;i[l++]=0;i[l++]=0;i.set(t.subarray(u,u+a),l);l+=a;u+=a;r-=a}i[l++]=1;i[l++]=255&r;i[l++]=r>>8&255;i[l++]=255&~r;i[l++]=(65535&~r)>>8&255;i.set(t.subarray(u),l);l+=t.length-u;var c=function adler32(t,r,a){for(var o=1,i=0,l=r;l<a;++l)i=(i+(o=(o+(255&t[l]))%65521))%65521;return i<<16|o}(t,0,t.length);i[l++]=c>>24&255;i[l++]=c>>16&255;i[l++]=c>>8&255;i[l++]=255&c;return i}function encode(r,a,i,u){var c,d,h,p=r.width,m=r.height,y=r.data;switch(a){case o.ImageKind.GRAYSCALE_1BPP:d=0;c=1;h=p+7>>3;break;case o.ImageKind.RGB_24BPP:d=2;c=8;h=3*p;break;case o.ImageKind.RGBA_32BPP:d=6;c=8;h=4*p;break;default:throw new Error("invalid format")}for(var v=new Uint8Array((1+h)*m),g=0,b=0,_=0;_<m;++_){v[g++]=0;v.set(y.subarray(b,b+h),g);b+=h;g+=h}if(a===o.ImageKind.GRAYSCALE_1BPP&&u){g=0;for(var S=0;S<m;S++){g++;for(var A=0;A<h;A++)v[g++]^=255}}var C=new Uint8Array([p>>24&255,p>>16&255,p>>8&255,255&p,m>>24&255,m>>16&255,m>>8&255,255&m,c,d,0,0,0]),k=function deflateSync(t){if(!l.isNodeJS)return deflateSyncUncompressed(t);try{var r;r=parseInt(process.versions.node)>=8?t:Buffer.from(t);var a=require("zlib").deflateSync(r,{level:9});return a instanceof Uint8Array?a:new Uint8Array(a)}catch(t){(0,o.warn)("Not compressing PNG because zlib.deflateSync is unavailable: "+t)}return deflateSyncUncompressed(t)}(v),R=t.length+36+C.length+k.length,w=new Uint8Array(R),P=0;w.set(t,P);writePngChunk("IHDR",C,w,P+=t.length);writePngChunk("IDATA",k,w,P+=12+C.length);P+=12+k.length;writePngChunk("IEND",new Uint8Array(0),w,P);return(0,o.createObjectURL)(w,"image/png",i)}return function convertImgDataToPng(t,r,a){return encode(t,void 0===t.kind?o.ImageKind.GRAYSCALE_1BPP:t.kind,r,a)}}(),v=function(){function SVGExtraState(){_classCallCheck(this,SVGExtraState);this.fontSizeScale=1;this.fontWeight=h.fontWeight;this.fontSize=0;this.textMatrix=o.IDENTITY_MATRIX;this.fontMatrix=o.FONT_IDENTITY_MATRIX;this.leading=0;this.textRenderingMode=o.TextRenderingMode.FILL;this.textMatrixScale=1;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=h.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=""}_createClass(SVGExtraState,[{key:"clone",value:function clone(){return Object.create(this)}},{key:"setCurrentPoint",value:function setCurrentPoint(t,r){this.x=t;this.y=r}}]);return SVGExtraState}(),g=0,b=0,_=0;r.SVGGraphics=u=function(){function SVGGraphics(t,r){var a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];_classCallCheck(this,SVGGraphics);this.svgFactory=new i.DOMSVGFactory;this.current=new v;this.transformMatrix=o.IDENTITY_MATRIX;this.transformStack=[];this.extraStack=[];this.commonObjs=t;this.objs=r;this.pendingClip=null;this.pendingEOFill=!1;this.embedFonts=!1;this.embeddedFonts=Object.create(null);this.cssStyle=null;this.forceDataSchema=!!a;this._operatorIdMapping=[];for(var l in o.OPS)this._operatorIdMapping[o.OPS[l]]=l}_createClass(SVGGraphics,[{key:"save",value:function save(){this.transformStack.push(this.transformMatrix);var t=this.current;this.extraStack.push(t);this.current=t.clone()}},{key:"restore",value:function restore(){this.transformMatrix=this.transformStack.pop();this.current=this.extraStack.pop();this.pendingClip=null;this.tgrp=null}},{key:"group",value:function group(t){this.save();this.executeOpTree(t);this.restore()}},{key:"loadDependencies",value:function loadDependencies(t){for(var r=this,a=t.fnArray,i=t.argsArray,l=0,u=a.length;l<u;l++)if(a[l]===o.OPS.dependency){var c,d=_createForOfIteratorHelper(i[l]);try{var h=function _loop(){var t=c.value,a=t.startsWith("g_")?r.commonObjs:r.objs,o=new Promise((function(r){a.get(t,r)}));r.current.dependencies.push(o)};for(d.s();!(c=d.n()).done;)h()}catch(t){d.e(t)}finally{d.f()}}return Promise.all(this.current.dependencies)}},{key:"transform",value:function transform(t,r,a,i,l,u){var c=[t,r,a,i,l,u];this.transformMatrix=o.Util.transform(this.transformMatrix,c);this.tgrp=null}},{key:"getSVG",value:function getSVG(t,r){var a=this;this.viewport=r;var i=this._initialize(r);return this.loadDependencies(t).then((function(){a.transformMatrix=o.IDENTITY_MATRIX;a.executeOpTree(a.convertOpList(t));return i}))}},{key:"convertOpList",value:function convertOpList(t){for(var r=this._operatorIdMapping,a=t.argsArray,o=t.fnArray,i=[],l=0,u=o.length;l<u;l++){var c=o[l];i.push({fnId:c,fn:r[c],args:a[l]})}return function opListToTree(t){var r,a=[],o=[],i=_createForOfIteratorHelper(t);try{for(i.s();!(r=i.n()).done;){var l=r.value;if("save"!==l.fn)"restore"===l.fn?a=o.pop():a.push(l);else{a.push({fnId:92,fn:"group",items:[]});o.push(a);a=a[a.length-1].items}}}catch(t){i.e(t)}finally{i.f()}return a}(i)}},{key:"executeOpTree",value:function executeOpTree(t){var r,a=_createForOfIteratorHelper(t);try{for(a.s();!(r=a.n()).done;){var i=r.value,l=i.fn,u=i.fnId,c=i.args;switch(0|u){case o.OPS.beginText:this.beginText();break;case o.OPS.dependency:break;case o.OPS.setLeading:this.setLeading(c);break;case o.OPS.setLeadingMoveText:this.setLeadingMoveText(c[0],c[1]);break;case o.OPS.setFont:this.setFont(c);break;case o.OPS.showText:case o.OPS.showSpacedText:this.showText(c[0]);break;case o.OPS.endText:this.endText();break;case o.OPS.moveText:this.moveText(c[0],c[1]);break;case o.OPS.setCharSpacing:this.setCharSpacing(c[0]);break;case o.OPS.setWordSpacing:this.setWordSpacing(c[0]);break;case o.OPS.setHScale:this.setHScale(c[0]);break;case o.OPS.setTextMatrix:this.setTextMatrix(c[0],c[1],c[2],c[3],c[4],c[5]);break;case o.OPS.setTextRise:this.setTextRise(c[0]);break;case o.OPS.setTextRenderingMode:this.setTextRenderingMode(c[0]);break;case o.OPS.setLineWidth:this.setLineWidth(c[0]);break;case o.OPS.setLineJoin:this.setLineJoin(c[0]);break;case o.OPS.setLineCap:this.setLineCap(c[0]);break;case o.OPS.setMiterLimit:this.setMiterLimit(c[0]);break;case o.OPS.setFillRGBColor:this.setFillRGBColor(c[0],c[1],c[2]);break;case o.OPS.setStrokeRGBColor:this.setStrokeRGBColor(c[0],c[1],c[2]);break;case o.OPS.setStrokeColorN:this.setStrokeColorN(c);break;case o.OPS.setFillColorN:this.setFillColorN(c);break;case o.OPS.shadingFill:this.shadingFill(c[0]);break;case o.OPS.setDash:this.setDash(c[0],c[1]);break;case o.OPS.setRenderingIntent:this.setRenderingIntent(c[0]);break;case o.OPS.setFlatness:this.setFlatness(c[0]);break;case o.OPS.setGState:this.setGState(c[0]);break;case o.OPS.fill:this.fill();break;case o.OPS.eoFill:this.eoFill();break;case o.OPS.stroke:this.stroke();break;case o.OPS.fillStroke:this.fillStroke();break;case o.OPS.eoFillStroke:this.eoFillStroke();break;case o.OPS.clip:this.clip("nonzero");break;case o.OPS.eoClip:this.clip("evenodd");break;case o.OPS.paintSolidColorImageMask:this.paintSolidColorImageMask();break;case o.OPS.paintImageXObject:this.paintImageXObject(c[0]);break;case o.OPS.paintInlineImageXObject:this.paintInlineImageXObject(c[0]);break;case o.OPS.paintImageMaskXObject:this.paintImageMaskXObject(c[0]);break;case o.OPS.paintFormXObjectBegin:this.paintFormXObjectBegin(c[0],c[1]);break;case o.OPS.paintFormXObjectEnd:this.paintFormXObjectEnd();break;case o.OPS.closePath:this.closePath();break;case o.OPS.closeStroke:this.closeStroke();break;case o.OPS.closeFillStroke:this.closeFillStroke();break;case o.OPS.closeEOFillStroke:this.closeEOFillStroke();break;case o.OPS.nextLine:this.nextLine();break;case o.OPS.transform:this.transform(c[0],c[1],c[2],c[3],c[4],c[5]);break;case o.OPS.constructPath:this.constructPath(c[0],c[1]);break;case o.OPS.endPath:this.endPath();break;case 92:this.group(i.items);break;default:(0,o.warn)("Unimplemented operator ".concat(l))}}}catch(t){a.e(t)}finally{a.f()}}},{key:"setWordSpacing",value:function setWordSpacing(t){this.current.wordSpacing=t}},{key:"setCharSpacing",value:function setCharSpacing(t){this.current.charSpacing=t}},{key:"nextLine",value:function nextLine(){this.moveText(0,this.current.leading)}},{key:"setTextMatrix",value:function setTextMatrix(t,r,a,o,i,l){var u=this.current;u.textMatrix=u.lineMatrix=[t,r,a,o,i,l];u.textMatrixScale=Math.hypot(t,r);u.x=u.lineX=0;u.y=u.lineY=0;u.xcoords=[];u.ycoords=[];u.tspan=this.svgFactory.createElement("svg:tspan");u.tspan.setAttributeNS(null,"font-family",u.fontFamily);u.tspan.setAttributeNS(null,"font-size","".concat(c(u.fontSize),"px"));u.tspan.setAttributeNS(null,"y",c(-u.y));u.txtElement=this.svgFactory.createElement("svg:text");u.txtElement.appendChild(u.tspan)}},{key:"beginText",value:function beginText(){var t=this.current;t.x=t.lineX=0;t.y=t.lineY=0;t.textMatrix=o.IDENTITY_MATRIX;t.lineMatrix=o.IDENTITY_MATRIX;t.textMatrixScale=1;t.tspan=this.svgFactory.createElement("svg:tspan");t.txtElement=this.svgFactory.createElement("svg:text");t.txtgrp=this.svgFactory.createElement("svg:g");t.xcoords=[];t.ycoords=[]}},{key:"moveText",value:function moveText(t,r){var a=this.current;a.x=a.lineX+=t;a.y=a.lineY+=r;a.xcoords=[];a.ycoords=[];a.tspan=this.svgFactory.createElement("svg:tspan");a.tspan.setAttributeNS(null,"font-family",a.fontFamily);a.tspan.setAttributeNS(null,"font-size","".concat(c(a.fontSize),"px"));a.tspan.setAttributeNS(null,"y",c(-a.y))}},{key:"showText",value:function showText(t){var r=this.current,a=r.font,i=r.fontSize;if(0!==i){var l,u=r.fontSizeScale,p=r.charSpacing,m=r.wordSpacing,y=r.fontDirection,v=r.textHScale*y,g=a.vertical,b=g?1:-1,_=a.defaultVMetrics,S=i*r.fontMatrix[0],A=0,C=_createForOfIteratorHelper(t);try{for(C.s();!(l=C.n()).done;){var k=l.value;if(null!==k)if((0,o.isNum)(k))A+=b*k*i/1e3;else{var R=(k.isSpace?m:0)+p,w=k.fontChar,P=void 0,x=void 0,T=k.width;if(g){var E=void 0,O=k.vmetric||_;E=-(E=k.vmetric?O[1]:.5*T)*S;var I=O[2]*S;T=O?-O[0]:T;P=E/u;x=(A+I)/u}else{P=A/u;x=0}if(k.isInFont||a.missingFile){r.xcoords.push(r.x+P);g&&r.ycoords.push(-r.y+x);r.tspan.textContent+=w}A+=g?T*S-R*y:T*S+R*y}else A+=y*m}}catch(t){C.e(t)}finally{C.f()}r.tspan.setAttributeNS(null,"x",r.xcoords.map(c).join(" "));g?r.tspan.setAttributeNS(null,"y",r.ycoords.map(c).join(" ")):r.tspan.setAttributeNS(null,"y",c(-r.y));g?r.y-=A:r.x+=A*v;r.tspan.setAttributeNS(null,"font-family",r.fontFamily);r.tspan.setAttributeNS(null,"font-size","".concat(c(r.fontSize),"px"));r.fontStyle!==h.fontStyle&&r.tspan.setAttributeNS(null,"font-style",r.fontStyle);r.fontWeight!==h.fontWeight&&r.tspan.setAttributeNS(null,"font-weight",r.fontWeight);var D=r.textRenderingMode&o.TextRenderingMode.FILL_STROKE_MASK;if(D===o.TextRenderingMode.FILL||D===o.TextRenderingMode.FILL_STROKE){r.fillColor!==h.fillColor&&r.tspan.setAttributeNS(null,"fill",r.fillColor);r.fillAlpha<1&&r.tspan.setAttributeNS(null,"fill-opacity",r.fillAlpha)}else r.textRenderingMode===o.TextRenderingMode.ADD_TO_PATH?r.tspan.setAttributeNS(null,"fill","transparent"):r.tspan.setAttributeNS(null,"fill","none");if(D===o.TextRenderingMode.STROKE||D===o.TextRenderingMode.FILL_STROKE){var M=1/(r.textMatrixScale||1);this._setStrokeAttributes(r.tspan,M)}var j=r.textMatrix;0!==r.textRise&&((j=j.slice())[5]+=r.textRise);r.txtElement.setAttributeNS(null,"transform","".concat(d(j)," scale(").concat(c(v),", -1)"));r.txtElement.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve");r.txtElement.appendChild(r.tspan);r.txtgrp.appendChild(r.txtElement);this._ensureTransformGroup().appendChild(r.txtElement)}}},{key:"setLeadingMoveText",value:function setLeadingMoveText(t,r){this.setLeading(-r);this.moveText(t,r)}},{key:"addFontStyle",value:function addFontStyle(t){if(!t.data)throw new Error('addFontStyle: No font data available, ensure that the "fontExtraProperties" API parameter is set.');if(!this.cssStyle){this.cssStyle=this.svgFactory.createElement("svg:style");this.cssStyle.setAttributeNS(null,"type","text/css");this.defs.appendChild(this.cssStyle)}var r=(0,o.createObjectURL)(t.data,t.mimetype,this.forceDataSchema);this.cssStyle.textContent+='@font-face { font-family: "'.concat(t.loadedName,'";')+" src: url(".concat(r,"); }\n")}},{key:"setFont",value:function setFont(t){var r=this.current,a=this.commonObjs.get(t[0]),i=t[1];r.font=a;if(this.embedFonts&&!a.missingFile&&!this.embeddedFonts[a.loadedName]){this.addFontStyle(a);this.embeddedFonts[a.loadedName]=a}r.fontMatrix=a.fontMatrix||o.FONT_IDENTITY_MATRIX;var l="normal";a.black?l="900":a.bold&&(l="bold");var u=a.italic?"italic":"normal";if(i<0){i=-i;r.fontDirection=-1}else r.fontDirection=1;r.fontSize=i;r.fontFamily=a.loadedName;r.fontWeight=l;r.fontStyle=u;r.tspan=this.svgFactory.createElement("svg:tspan");r.tspan.setAttributeNS(null,"y",c(-r.y));r.xcoords=[];r.ycoords=[]}},{key:"endText",value:function endText(){var t,r=this.current;if(r.textRenderingMode&o.TextRenderingMode.ADD_TO_PATH_FLAG&&null!==(t=r.txtElement)&&void 0!==t&&t.hasChildNodes()){r.element=r.txtElement;this.clip("nonzero");this.endPath()}}},{key:"setLineWidth",value:function setLineWidth(t){t>0&&(this.current.lineWidth=t)}},{key:"setLineCap",value:function setLineCap(t){this.current.lineCap=p[t]}},{key:"setLineJoin",value:function setLineJoin(t){this.current.lineJoin=m[t]}},{key:"setMiterLimit",value:function setMiterLimit(t){this.current.miterLimit=t}},{key:"setStrokeAlpha",value:function setStrokeAlpha(t){this.current.strokeAlpha=t}},{key:"setStrokeRGBColor",value:function setStrokeRGBColor(t,r,a){this.current.strokeColor=o.Util.makeHexColor(t,r,a)}},{key:"setFillAlpha",value:function setFillAlpha(t){this.current.fillAlpha=t}},{key:"setFillRGBColor",value:function setFillRGBColor(t,r,a){this.current.fillColor=o.Util.makeHexColor(t,r,a);this.current.tspan=this.svgFactory.createElement("svg:tspan");this.current.xcoords=[];this.current.ycoords=[]}},{key:"setStrokeColorN",value:function setStrokeColorN(t){this.current.strokeColor=this._makeColorN_Pattern(t)}},{key:"setFillColorN",value:function setFillColorN(t){this.current.fillColor=this._makeColorN_Pattern(t)}},{key:"shadingFill",value:function shadingFill(t){var r=this.viewport.width,a=this.viewport.height,i=o.Util.inverseTransform(this.transformMatrix),l=o.Util.applyTransform([0,0],i),u=o.Util.applyTransform([0,a],i),c=o.Util.applyTransform([r,0],i),d=o.Util.applyTransform([r,a],i),h=Math.min(l[0],u[0],c[0],d[0]),p=Math.min(l[1],u[1],c[1],d[1]),m=Math.max(l[0],u[0],c[0],d[0]),y=Math.max(l[1],u[1],c[1],d[1]),v=this.svgFactory.createElement("svg:rect");v.setAttributeNS(null,"x",h);v.setAttributeNS(null,"y",p);v.setAttributeNS(null,"width",m-h);v.setAttributeNS(null,"height",y-p);v.setAttributeNS(null,"fill",this._makeShadingPattern(t));this.current.fillAlpha<1&&v.setAttributeNS(null,"fill-opacity",this.current.fillAlpha);this._ensureTransformGroup().appendChild(v)}},{key:"_makeColorN_Pattern",value:function _makeColorN_Pattern(t){return"TilingPattern"===t[0]?this._makeTilingPattern(t):this._makeShadingPattern(t)}},{key:"_makeTilingPattern",value:function _makeTilingPattern(t){var r=t[1],a=t[2],i=t[3]||o.IDENTITY_MATRIX,l=_slicedToArray(t[4],4),u=l[0],c=l[1],d=l[2],h=l[3],p=t[5],m=t[6],y=t[7],v="shading".concat(_++),g=_slicedToArray(o.Util.normalizeRect([].concat(_toConsumableArray(o.Util.applyTransform([u,c],i)),_toConsumableArray(o.Util.applyTransform([d,h],i)))),4),b=g[0],S=g[1],A=g[2],C=g[3],k=_slicedToArray(o.Util.singularValueDecompose2dScale(i),2),R=p*k[0],w=m*k[1],P=this.svgFactory.createElement("svg:pattern");P.setAttributeNS(null,"id",v);P.setAttributeNS(null,"patternUnits","userSpaceOnUse");P.setAttributeNS(null,"width",R);P.setAttributeNS(null,"height",w);P.setAttributeNS(null,"x","".concat(b));P.setAttributeNS(null,"y","".concat(S));var x=this.svg,T=this.transformMatrix,E=this.current.fillColor,O=this.current.strokeColor,I=this.svgFactory.create(A-b,C-S);this.svg=I;this.transformMatrix=i;if(2===y){var D=o.Util.makeHexColor.apply(o.Util,_toConsumableArray(r));this.current.fillColor=D;this.current.strokeColor=D}this.executeOpTree(this.convertOpList(a));this.svg=x;this.transformMatrix=T;this.current.fillColor=E;this.current.strokeColor=O;P.appendChild(I.childNodes[0]);this.defs.appendChild(P);return"url(#".concat(v,")")}},{key:"_makeShadingPattern",value:function _makeShadingPattern(t){switch(t[0]){case"RadialAxial":var r,a="shading".concat(_++),i=t[3];switch(t[1]){case"axial":var l=t[4],u=t[5];(r=this.svgFactory.createElement("svg:linearGradient")).setAttributeNS(null,"id",a);r.setAttributeNS(null,"gradientUnits","userSpaceOnUse");r.setAttributeNS(null,"x1",l[0]);r.setAttributeNS(null,"y1",l[1]);r.setAttributeNS(null,"x2",u[0]);r.setAttributeNS(null,"y2",u[1]);break;case"radial":var c=t[4],d=t[5],h=t[6],p=t[7];(r=this.svgFactory.createElement("svg:radialGradient")).setAttributeNS(null,"id",a);r.setAttributeNS(null,"gradientUnits","userSpaceOnUse");r.setAttributeNS(null,"cx",d[0]);r.setAttributeNS(null,"cy",d[1]);r.setAttributeNS(null,"r",p);r.setAttributeNS(null,"fx",c[0]);r.setAttributeNS(null,"fy",c[1]);r.setAttributeNS(null,"fr",h);break;default:throw new Error("Unknown RadialAxial type: ".concat(t[1]))}var m,y=_createForOfIteratorHelper(i);try{for(y.s();!(m=y.n()).done;){var v=m.value,g=this.svgFactory.createElement("svg:stop");g.setAttributeNS(null,"offset",v[0]);g.setAttributeNS(null,"stop-color",v[1]);r.appendChild(g)}}catch(t){y.e(t)}finally{y.f()}this.defs.appendChild(r);return"url(#".concat(a,")");case"Mesh":(0,o.warn)("Unimplemented pattern Mesh");return null;case"Dummy":return"hotpink";default:throw new Error("Unknown IR type: ".concat(t[0]))}}},{key:"setDash",value:function setDash(t,r){this.current.dashArray=t;this.current.dashPhase=r}},{key:"constructPath",value:function constructPath(t,r){var a,i=this.current,l=i.x,u=i.y,d=[],h=0,p=_createForOfIteratorHelper(t);try{for(p.s();!(a=p.n()).done;){switch(0|a.value){case o.OPS.rectangle:l=r[h++];u=r[h++];var m=r[h++],y=r[h++],v=l+m,g=u+y;d.push("M",c(l),c(u),"L",c(v),c(u),"L",c(v),c(g),"L",c(l),c(g),"Z");break;case o.OPS.moveTo:l=r[h++];u=r[h++];d.push("M",c(l),c(u));break;case o.OPS.lineTo:l=r[h++];u=r[h++];d.push("L",c(l),c(u));break;case o.OPS.curveTo:l=r[h+4];u=r[h+5];d.push("C",c(r[h]),c(r[h+1]),c(r[h+2]),c(r[h+3]),c(l),c(u));h+=6;break;case o.OPS.curveTo2:d.push("C",c(l),c(u),c(r[h]),c(r[h+1]),c(r[h+2]),c(r[h+3]));l=r[h+2];u=r[h+3];h+=4;break;case o.OPS.curveTo3:l=r[h+2];u=r[h+3];d.push("C",c(r[h]),c(r[h+1]),c(l),c(u),c(l),c(u));h+=4;break;case o.OPS.closePath:d.push("Z")}}}catch(t){p.e(t)}finally{p.f()}d=d.join(" ");if(i.path&&t.length>0&&t[0]!==o.OPS.rectangle&&t[0]!==o.OPS.moveTo)d=i.path.getAttributeNS(null,"d")+d;else{i.path=this.svgFactory.createElement("svg:path");this._ensureTransformGroup().appendChild(i.path)}i.path.setAttributeNS(null,"d",d);i.path.setAttributeNS(null,"fill","none");i.element=i.path;i.setCurrentPoint(l,u)}},{key:"endPath",value:function endPath(){var t=this.current;t.path=null;if(this.pendingClip)if(t.element){var r="clippath".concat(g++),a=this.svgFactory.createElement("svg:clipPath");a.setAttributeNS(null,"id",r);a.setAttributeNS(null,"transform",d(this.transformMatrix));var o=t.element.cloneNode(!0);"evenodd"===this.pendingClip?o.setAttributeNS(null,"clip-rule","evenodd"):o.setAttributeNS(null,"clip-rule","nonzero");this.pendingClip=null;a.appendChild(o);this.defs.appendChild(a);if(t.activeClipUrl){t.clipGroup=null;var i,l=_createForOfIteratorHelper(this.extraStack);try{for(l.s();!(i=l.n()).done;){i.value.clipGroup=null}}catch(t){l.e(t)}finally{l.f()}a.setAttributeNS(null,"clip-path",t.activeClipUrl)}t.activeClipUrl="url(#".concat(r,")");this.tgrp=null}else this.pendingClip=null}},{key:"clip",value:function clip(t){this.pendingClip=t}},{key:"closePath",value:function closePath(){var t=this.current;if(t.path){var r="".concat(t.path.getAttributeNS(null,"d"),"Z");t.path.setAttributeNS(null,"d",r)}}},{key:"setLeading",value:function setLeading(t){this.current.leading=-t}},{key:"setTextRise",value:function setTextRise(t){this.current.textRise=t}},{key:"setTextRenderingMode",value:function setTextRenderingMode(t){this.current.textRenderingMode=t}},{key:"setHScale",value:function setHScale(t){this.current.textHScale=t/100}},{key:"setRenderingIntent",value:function setRenderingIntent(t){}},{key:"setFlatness",value:function setFlatness(t){}},{key:"setGState",value:function setGState(t){var r,a=_createForOfIteratorHelper(t);try{for(a.s();!(r=a.n()).done;){var i=_slicedToArray(r.value,2),l=i[0],u=i[1];switch(l){case"LW":this.setLineWidth(u);break;case"LC":this.setLineCap(u);break;case"LJ":this.setLineJoin(u);break;case"ML":this.setMiterLimit(u);break;case"D":this.setDash(u[0],u[1]);break;case"RI":this.setRenderingIntent(u);break;case"FL":this.setFlatness(u);break;case"Font":this.setFont(u);break;case"CA":this.setStrokeAlpha(u);break;case"ca":this.setFillAlpha(u);break;default:(0,o.warn)("Unimplemented graphic state operator ".concat(l))}}}catch(t){a.e(t)}finally{a.f()}}},{key:"fill",value:function fill(){var t=this.current;if(t.element){t.element.setAttributeNS(null,"fill",t.fillColor);t.element.setAttributeNS(null,"fill-opacity",t.fillAlpha);this.endPath()}}},{key:"stroke",value:function stroke(){var t=this.current;if(t.element){this._setStrokeAttributes(t.element);t.element.setAttributeNS(null,"fill","none");this.endPath()}}},{key:"_setStrokeAttributes",value:function _setStrokeAttributes(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,a=this.current,o=a.dashArray;1!==r&&o.length>0&&(o=o.map((function(t){return r*t})));t.setAttributeNS(null,"stroke",a.strokeColor);t.setAttributeNS(null,"stroke-opacity",a.strokeAlpha);t.setAttributeNS(null,"stroke-miterlimit",c(a.miterLimit));t.setAttributeNS(null,"stroke-linecap",a.lineCap);t.setAttributeNS(null,"stroke-linejoin",a.lineJoin);t.setAttributeNS(null,"stroke-width",c(r*a.lineWidth)+"px");t.setAttributeNS(null,"stroke-dasharray",o.map(c).join(" "));t.setAttributeNS(null,"stroke-dashoffset",c(r*a.dashPhase)+"px")}},{key:"eoFill",value:function eoFill(){this.current.element&&this.current.element.setAttributeNS(null,"fill-rule","evenodd");this.fill()}},{key:"fillStroke",value:function fillStroke(){this.stroke();this.fill()}},{key:"eoFillStroke",value:function eoFillStroke(){this.current.element&&this.current.element.setAttributeNS(null,"fill-rule","evenodd");this.fillStroke()}},{key:"closeStroke",value:function closeStroke(){this.closePath();this.stroke()}},{key:"closeFillStroke",value:function closeFillStroke(){this.closePath();this.fillStroke()}},{key:"closeEOFillStroke",value:function closeEOFillStroke(){this.closePath();this.eoFillStroke()}},{key:"paintSolidColorImageMask",value:function paintSolidColorImageMask(){var t=this.svgFactory.createElement("svg:rect");t.setAttributeNS(null,"x","0");t.setAttributeNS(null,"y","0");t.setAttributeNS(null,"width","1px");t.setAttributeNS(null,"height","1px");t.setAttributeNS(null,"fill",this.current.fillColor);this._ensureTransformGroup().appendChild(t)}},{key:"paintImageXObject",value:function paintImageXObject(t){var r=t.startsWith("g_")?this.commonObjs.get(t):this.objs.get(t);r?this.paintInlineImageXObject(r):(0,o.warn)("Dependent image with object ID ".concat(t," is not ready yet"))}},{key:"paintInlineImageXObject",value:function paintInlineImageXObject(t,r){var a=t.width,o=t.height,i=y(t,this.forceDataSchema,!!r),l=this.svgFactory.createElement("svg:rect");l.setAttributeNS(null,"x","0");l.setAttributeNS(null,"y","0");l.setAttributeNS(null,"width",c(a));l.setAttributeNS(null,"height",c(o));this.current.element=l;this.clip("nonzero");var u=this.svgFactory.createElement("svg:image");u.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",i);u.setAttributeNS(null,"x","0");u.setAttributeNS(null,"y",c(-o));u.setAttributeNS(null,"width",c(a)+"px");u.setAttributeNS(null,"height",c(o)+"px");u.setAttributeNS(null,"transform","scale(".concat(c(1/a)," ").concat(c(-1/o),")"));r?r.appendChild(u):this._ensureTransformGroup().appendChild(u)}},{key:"paintImageMaskXObject",value:function paintImageMaskXObject(t){var r=this.current,a=t.width,o=t.height,i=r.fillColor;r.maskId="mask".concat(b++);var l=this.svgFactory.createElement("svg:mask");l.setAttributeNS(null,"id",r.maskId);var u=this.svgFactory.createElement("svg:rect");u.setAttributeNS(null,"x","0");u.setAttributeNS(null,"y","0");u.setAttributeNS(null,"width",c(a));u.setAttributeNS(null,"height",c(o));u.setAttributeNS(null,"fill",i);u.setAttributeNS(null,"mask","url(#".concat(r.maskId,")"));this.defs.appendChild(l);this._ensureTransformGroup().appendChild(u);this.paintInlineImageXObject(t,l)}},{key:"paintFormXObjectBegin",value:function paintFormXObjectBegin(t,r){Array.isArray(t)&&6===t.length&&this.transform(t[0],t[1],t[2],t[3],t[4],t[5]);if(r){var a=r[2]-r[0],o=r[3]-r[1],i=this.svgFactory.createElement("svg:rect");i.setAttributeNS(null,"x",r[0]);i.setAttributeNS(null,"y",r[1]);i.setAttributeNS(null,"width",c(a));i.setAttributeNS(null,"height",c(o));this.current.element=i;this.clip("nonzero");this.endPath()}}},{key:"paintFormXObjectEnd",value:function paintFormXObjectEnd(){}},{key:"_initialize",value:function _initialize(t){var r=this.svgFactory.create(t.width,t.height),a=this.svgFactory.createElement("svg:defs");r.appendChild(a);this.defs=a;var o=this.svgFactory.createElement("svg:g");o.setAttributeNS(null,"transform",d(t.transform));r.appendChild(o);this.svg=o;return r}},{key:"_ensureClipGroup",value:function _ensureClipGroup(){if(!this.current.clipGroup){var t=this.svgFactory.createElement("svg:g");t.setAttributeNS(null,"clip-path",this.current.activeClipUrl);this.svg.appendChild(t);this.current.clipGroup=t}return this.current.clipGroup}},{key:"_ensureTransformGroup",value:function _ensureTransformGroup(){if(!this.tgrp){this.tgrp=this.svgFactory.createElement("svg:g");this.tgrp.setAttributeNS(null,"transform",d(this.transformMatrix));this.current.activeClipUrl?this._ensureClipGroup().appendChild(this.tgrp):this.svg.appendChild(this.tgrp)}return this.tgrp}}]);return SVGGraphics}()},(t,r,a)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.XfaLayer=void 0;var o=a(4),i=a(130);function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var a=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==a)return;var o,i,l=[],u=!0,c=!1;try{for(a=a.call(t);!(u=(o=a.next()).done);u=!0){l.push(o.value);if(r&&l.length===r)break}}catch(t){c=!0;i=t}finally{try{u||null==a.return||a.return()}finally{if(c)throw i}}return l}(t,r)||_unsupportedIterableToArray(t,r)||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 _createForOfIteratorHelper(t,r){var a="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!a){if(Array.isArray(t)||(a=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){a&&(t=a);var o=0,i=function F(){};return{s:i,n:function n(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function e(t){throw t},f:i}}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 l,u=!0,c=!1;return{s:function s(){a=a.call(t)},n:function n(){var t=a.next();u=t.done;return t},e:function e(t){c=!0;l=t},f:function f(){try{u||null==a.return||a.return()}finally{if(c)throw l}}}}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);return"Map"===a||"Set"===a?Array.from(t):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}var l=function(){function XfaLayer(){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,XfaLayer)}!function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}(XfaLayer,null,[{key:"setupStorage",value:function setupStorage(t,r,a,o,i){var l=o.getValue(r,{value:null});switch(a.name){case"textarea":null!==l.value&&(t.textContent=l.value);if("print"===i)break;t.addEventListener("input",(function(t){o.setValue(r,{value:t.target.value})}));break;case"input":if("radio"===a.attributes.type||"checkbox"===a.attributes.type){l.value===a.attributes.xfaOn?t.setAttribute("checked",!0):l.value===a.attributes.xfaOff&&t.removeAttribute("checked");if("print"===i)break;t.addEventListener("change",(function(t){o.setValue(r,{value:t.target.checked?t.target.getAttribute("xfaOn"):t.target.getAttribute("xfaOff")})}))}else{null!==l.value&&t.setAttribute("value",l.value);if("print"===i)break;t.addEventListener("input",(function(t){o.setValue(r,{value:t.target.value})}))}break;case"select":if(null!==l.value){var u,c=_createForOfIteratorHelper(a.children);try{for(c.s();!(u=c.n()).done;){var d=u.value;d.attributes.value===l.value&&(d.attributes.selected=!0)}}catch(t){c.e(t)}finally{c.f()}}t.addEventListener("input",(function(t){var a=t.target.options,i=-1===a.selectedIndex?"":a[a.selectedIndex].value;o.setValue(r,{value:i})}))}}},{key:"setAttributes",value:function setAttributes(t){var r=t.html,a=t.element,i=t.storage,l=void 0===i?null:i,u=t.intent,c=t.linkService,d=a.attributes,h=r instanceof HTMLAnchorElement;"radio"===d.type&&(d.name="".concat(d.name,"-").concat(u));for(var p=0,m=Object.entries(d);p<m.length;p++){var y=_slicedToArray(m[p],2),v=y[0],g=y[1];if(null!=g&&"dataId"!==v)if("style"!==v)if("textContent"===v)r.textContent=g;else if("class"===v)r.setAttribute(v,g.join(" "));else{if(h&&("href"===v||"newWindow"===v))continue;r.setAttribute(v,g)}else Object.assign(r.style,g)}if(h){var b;c.addLinkAttributes||(0,o.warn)("XfaLayer.setAttribute - missing `addLinkAttributes`-method on the `linkService`-instance.");null===(b=c.addLinkAttributes)||void 0===b||b.call(c,r,d.href,d.newWindow)}l&&d.dataId&&this.setupStorage(r,d.dataId,a,l)}},{key:"render",value:function render(t){var r=t.annotationStorage,a=t.linkService,o=t.xfa,l=t.intent||"display",u=document.createElement(o.name);o.attributes&&this.setAttributes({html:u,element:o,intent:l,linkService:a});var c=[[o,-1,u]],d=t.div;d.appendChild(u);var h="matrix(".concat(t.viewport.transform.join(","),")");d.style.transform=h;d.setAttribute("class","xfaLayer xfaFont");for(var p=[];c.length>0;){var m,y=_slicedToArray(c[c.length-1],3),v=y[0],g=y[1],b=y[2];if(g+1!==v.children.length){var _=v.children[++c[c.length-1][1]];if(null!==_){var S=_.name;if("#text"!==S){var A=void 0;A=null!=_&&null!==(m=_.attributes)&&void 0!==m&&m.xmlns?document.createElementNS(_.attributes.xmlns,S):document.createElement(S);b.appendChild(A);_.attributes&&this.setAttributes({html:A,element:_,storage:r,intent:l,linkService:a});if(_.children&&_.children.length>0)c.push([_,-1,A]);else if(_.value){var C=document.createTextNode(_.value);i.XfaText.shouldBuildText(S)&&p.push(C);A.appendChild(C)}}else{var k=document.createTextNode(_.value);p.push(k);b.appendChild(k)}}}else c.pop()}var R,w=_createForOfIteratorHelper(d.querySelectorAll(".xfaNonInteractive input, .xfaNonInteractive textarea"));try{for(w.s();!(R=w.n()).done;){R.value.setAttribute("readOnly",!0)}}catch(t){w.e(t)}finally{w.f()}return{textDivs:p}}},{key:"update",value:function update(t){var r="matrix(".concat(t.viewport.transform.join(","),")");t.div.style.transform=r;t.div.hidden=!1}}]);return XfaLayer}();r.XfaLayer=l},(t,r,a)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.PDFNodeStream=void 0;var o=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(a(2)),i=a(4),l=a(137);function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var a,o=_getPrototypeOf(t);if(r){var i=_getPrototypeOf(this).constructor;a=Reflect.construct(o,arguments,i)}else a=o.apply(this,arguments);return _possibleConstructorReturn(this,a)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function asyncGeneratorStep(t,r,a,o,i,l,u){try{var c=t[l](u),d=c.value}catch(t){a(t);return}c.done?r(d):Promise.resolve(d).then(o,i)}function _asyncToGenerator(t){return function(){var r=this,a=arguments;return new Promise((function(o,i){var l=t.apply(r,a);function _next(t){asyncGeneratorStep(l,o,i,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(l,o,i,_next,_throw,"throw",t)}_next(void 0)}))}}function _createForOfIteratorHelper(t,r){var a="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!a){if(Array.isArray(t)||(a=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);if("Map"===a||"Set"===a)return Array.from(t);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){a&&(t=a);var o=0,i=function F(){};return{s:i,n:function n(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function e(t){throw t},f:i}}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 l,u=!0,c=!1;return{s:function s(){a=a.call(t)},n:function n(){var t=a.next();u=t.done;return t},e:function e(t){c=!0;l=t},f:function f(){try{u||null==a.return||a.return()}finally{if(c)throw l}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}var u=require("fs"),c=require("http"),d=require("https"),h=require("url"),p=/^file:\/\/\/[a-zA-Z]:\//;var m=function(){function PDFNodeStream(t){_classCallCheck(this,PDFNodeStream);this.source=t;this.url=function parseUrl(t){var r=h.parse(t);if("file:"===r.protocol||r.host)return r;if(/^[a-z]:[/\\]/i.test(t))return h.parse("file:///".concat(t));r.host||(r.protocol="file:");return r}(t.url);this.isHttp="http:"===this.url.protocol||"https:"===this.url.protocol;this.isFsUrl="file:"===this.url.protocol;this.httpHeaders=this.isHttp&&t.httpHeaders||{};this._fullRequestReader=null;this._rangeRequestReaders=[]}_createClass(PDFNodeStream,[{key:"_progressiveDataLength",get:function get(){var t,r;return null!==(t=null===(r=this._fullRequestReader)||void 0===r?void 0:r._loaded)&&void 0!==t?t:0}},{key:"getFullReader",value:function getFullReader(){(0,i.assert)(!this._fullRequestReader,"PDFNodeStream.getFullReader can only be called once.");this._fullRequestReader=this.isFsUrl?new _(this):new g(this);return this._fullRequestReader}},{key:"getRangeReader",value:function getRangeReader(t,r){if(r<=this._progressiveDataLength)return null;var a=this.isFsUrl?new S(this,t,r):new b(this,t,r);this._rangeRequestReaders.push(a);return a}},{key:"cancelAllRequests",value:function cancelAllRequests(t){this._fullRequestReader&&this._fullRequestReader.cancel(t);var r,a=_createForOfIteratorHelper(this._rangeRequestReaders.slice(0));try{for(a.s();!(r=a.n()).done;){r.value.cancel(t)}}catch(t){a.e(t)}finally{a.f()}}}]);return PDFNodeStream}();r.PDFNodeStream=m;var y=function(){function BaseFullReader(t){_classCallCheck(this,BaseFullReader);this._url=t.url;this._done=!1;this._storedError=null;this.onProgress=null;var r=t.source;this._contentLength=r.length;this._loaded=0;this._filename=null;this._disableRange=r.disableRange||!1;this._rangeChunkSize=r.rangeChunkSize;this._rangeChunkSize||this._disableRange||(this._disableRange=!0);this._isStreamingSupported=!r.disableStream;this._isRangeSupported=!r.disableRange;this._readableStream=null;this._readCapability=(0,i.createPromiseCapability)();this._headersCapability=(0,i.createPromiseCapability)()}_createClass(BaseFullReader,[{key:"headersReady",get:function get(){return this._headersCapability.promise}},{key:"filename",get:function get(){return this._filename}},{key:"contentLength",get:function get(){return this._contentLength}},{key:"isRangeSupported",get:function get(){return this._isRangeSupported}},{key:"isStreamingSupported",get:function get(){return this._isStreamingSupported}},{key:"read",value:(t=_asyncToGenerator(o.default.mark((function _callee(){var t,r;return o.default.wrap((function _callee$(a){for(;;)switch(a.prev=a.next){case 0:a.next=2;return this._readCapability.promise;case 2:if(!this._done){a.next=4;break}return a.abrupt("return",{value:void 0,done:!0});case 4:if(!this._storedError){a.next=6;break}throw this._storedError;case 6:if(null!==(t=this._readableStream.read())){a.next=10;break}this._readCapability=(0,i.createPromiseCapability)();return a.abrupt("return",this.read());case 10:this._loaded+=t.length;this.onProgress&&this.onProgress({loaded:this._loaded,total:this._contentLength});r=new Uint8Array(t).buffer;return a.abrupt("return",{value:r,done:!1});case 14:case"end":return a.stop()}}),_callee,this)}))),function read(){return t.apply(this,arguments)})},{key:"cancel",value:function cancel(t){this._readableStream?this._readableStream.destroy(t):this._error(t)}},{key:"_error",value:function _error(t){this._storedError=t;this._readCapability.resolve()}},{key:"_setReadableStream",value:function _setReadableStream(t){var r=this;this._readableStream=t;t.on("readable",(function(){r._readCapability.resolve()}));t.on("end",(function(){t.destroy();r._done=!0;r._readCapability.resolve()}));t.on("error",(function(t){r._error(t)}));!this._isStreamingSupported&&this._isRangeSupported&&this._error(new i.AbortException("streaming is disabled"));this._storedError&&this._readableStream.destroy(this._storedError)}}]);var t;return BaseFullReader}(),v=function(){function BaseRangeReader(t){_classCallCheck(this,BaseRangeReader);this._url=t.url;this._done=!1;this._storedError=null;this.onProgress=null;this._loaded=0;this._readableStream=null;this._readCapability=(0,i.createPromiseCapability)();var r=t.source;this._isStreamingSupported=!r.disableStream}_createClass(BaseRangeReader,[{key:"isStreamingSupported",get:function get(){return this._isStreamingSupported}},{key:"read",value:(t=_asyncToGenerator(o.default.mark((function _callee2(){var t,r;return o.default.wrap((function _callee2$(a){for(;;)switch(a.prev=a.next){case 0:a.next=2;return this._readCapability.promise;case 2:if(!this._done){a.next=4;break}return a.abrupt("return",{value:void 0,done:!0});case 4:if(!this._storedError){a.next=6;break}throw this._storedError;case 6:if(null!==(t=this._readableStream.read())){a.next=10;break}this._readCapability=(0,i.createPromiseCapability)();return a.abrupt("return",this.read());case 10:this._loaded+=t.length;this.onProgress&&this.onProgress({loaded:this._loaded});r=new Uint8Array(t).buffer;return a.abrupt("return",{value:r,done:!1});case 14:case"end":return a.stop()}}),_callee2,this)}))),function read(){return t.apply(this,arguments)})},{key:"cancel",value:function cancel(t){this._readableStream?this._readableStream.destroy(t):this._error(t)}},{key:"_error",value:function _error(t){this._storedError=t;this._readCapability.resolve()}},{key:"_setReadableStream",value:function _setReadableStream(t){var r=this;this._readableStream=t;t.on("readable",(function(){r._readCapability.resolve()}));t.on("end",(function(){t.destroy();r._done=!0;r._readCapability.resolve()}));t.on("error",(function(t){r._error(t)}));this._storedError&&this._readableStream.destroy(this._storedError)}}]);var t;return BaseRangeReader}();function createRequestOptions(t,r){return{protocol:t.protocol,auth:t.auth,host:t.hostname,port:t.port,path:t.path,method:"GET",headers:r}}var g=function(t){_inherits(PDFNodeStreamFullReader,t);var r=_createSuper(PDFNodeStreamFullReader);function PDFNodeStreamFullReader(t){var a;_classCallCheck(this,PDFNodeStreamFullReader);var o=function handleResponse(r){if(404!==r.statusCode){a._headersCapability.resolve();a._setReadableStream(r);var o=function getResponseHeader(t){return a._readableStream.headers[t.toLowerCase()]},u=(0,l.validateRangeRequestCapabilities)({getResponseHeader:o,isHttp:t.isHttp,rangeChunkSize:a._rangeChunkSize,disableRange:a._disableRange}),c=u.allowRangeRequests,d=u.suggestedLength;a._isRangeSupported=c;a._contentLength=d||a._contentLength;a._filename=(0,l.extractFilenameFromHeader)(o)}else{var h=new i.MissingPDFException('Missing PDF "'.concat(a._url,'".'));a._storedError=h;a._headersCapability.reject(h)}};(a=r.call(this,t))._request=null;"http:"===a._url.protocol?a._request=c.request(createRequestOptions(a._url,t.httpHeaders),o):a._request=d.request(createRequestOptions(a._url,t.httpHeaders),o);a._request.on("error",(function(t){a._storedError=t;a._headersCapability.reject(t)}));a._request.end();return a}return PDFNodeStreamFullReader}(y),b=function(t){_inherits(PDFNodeStreamRangeReader,t);var r=_createSuper(PDFNodeStreamRangeReader);function PDFNodeStreamRangeReader(t,a,o){var l;_classCallCheck(this,PDFNodeStreamRangeReader);(l=r.call(this,t))._httpHeaders={};for(var u in t.httpHeaders){var h=t.httpHeaders[u];void 0!==h&&(l._httpHeaders[u]=h)}l._httpHeaders.Range="bytes=".concat(a,"-").concat(o-1);var p=function handleResponse(t){if(404!==t.statusCode)l._setReadableStream(t);else{var r=new i.MissingPDFException('Missing PDF "'.concat(l._url,'".'));l._storedError=r}};l._request=null;"http:"===l._url.protocol?l._request=c.request(createRequestOptions(l._url,l._httpHeaders),p):l._request=d.request(createRequestOptions(l._url,l._httpHeaders),p);l._request.on("error",(function(t){l._storedError=t}));l._request.end();return l}return PDFNodeStreamRangeReader}(v),_=function(t){_inherits(PDFNodeStreamFsFullReader,t);var r=_createSuper(PDFNodeStreamFsFullReader);function PDFNodeStreamFsFullReader(t){var a;_classCallCheck(this,PDFNodeStreamFsFullReader);a=r.call(this,t);var o=decodeURIComponent(a._url.path);p.test(a._url.href)&&(o=o.replace(/^\//,""));u.lstat(o,(function(t,r){if(t){"ENOENT"===t.code&&(t=new i.MissingPDFException('Missing PDF "'.concat(o,'".')));a._storedError=t;a._headersCapability.reject(t)}else{a._contentLength=r.size;a._setReadableStream(u.createReadStream(o));a._headersCapability.resolve()}}));return a}return PDFNodeStreamFsFullReader}(y),S=function(t){_inherits(PDFNodeStreamFsRangeReader,t);var r=_createSuper(PDFNodeStreamFsRangeReader);function PDFNodeStreamFsRangeReader(t,a,o){var i;_classCallCheck(this,PDFNodeStreamFsRangeReader);i=r.call(this,t);var l=decodeURIComponent(i._url.path);p.test(i._url.href)&&(l=l.replace(/^\//,""));i._setReadableStream(u.createReadStream(l,{start:a,end:o-1}));return i}return PDFNodeStreamFsRangeReader}(v)},(t,r,a)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.createResponseStatusError=function createResponseStatusError(t,r){if(404===t||0===t&&r.startsWith("file:"))return new o.MissingPDFException('Missing PDF "'+r+'".');return new o.UnexpectedResponseException("Unexpected server response (".concat(t,') while retrieving PDF "').concat(r,'".'),t)};r.extractFilenameFromHeader=function extractFilenameFromHeader(t){var r=t("Content-Disposition");if(r){var a=(0,i.getFilenameFromContentDispositionHeader)(r);if(a.includes("%"))try{a=decodeURIComponent(a)}catch(t){}if((0,l.isPdfFile)(a))return a}return null};r.validateRangeRequestCapabilities=function validateRangeRequestCapabilities(t){var r=t.getResponseHeader,a=t.isHttp,i=t.rangeChunkSize,l=t.disableRange;(0,o.assert)(i>0,"Range chunk size must be larger than zero");var u={allowRangeRequests:!1,suggestedLength:void 0},c=parseInt(r("Content-Length"),10);if(!Number.isInteger(c))return u;u.suggestedLength=c;if(c<=2*i)return u;if(l||!a)return u;if("bytes"!==r("Accept-Ranges"))return u;if("identity"!==(r("Content-Encoding")||"identity"))return u;u.allowRangeRequests=!0;return u};r.validateResponseStatus=function validateResponseStatus(t){return 200===t||206===t};var o=a(4),i=a(138),l=a(1)},(t,r,a)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.getFilenameFromContentDispositionHeader=function getFilenameFromContentDispositionHeader(t){var r=!0,a=toParamRegExp("filename\\*","i").exec(t);if(a){var i=rfc2616unquote(a=a[1]);return fixupEncoding(i=rfc2047decode(i=rfc5987decode(i=unescape(i))))}if(a=function rfc2231getparam(t){var r,a=[],o=toParamRegExp("filename\\*((?!0\\d)\\d+)(\\*?)","ig");for(;null!==(r=o.exec(t));){var i=_slicedToArray(r,4),l=i[1],u=i[2],c=i[3];if((l=parseInt(l,10))in a){if(0===l)break}else a[l]=[u,c]}for(var d=[],h=0;h<a.length&&h in a;++h){var p=_slicedToArray(a[h],2),m=p[0],y=p[1];y=rfc2616unquote(y);if(m){y=unescape(y);0===h&&(y=rfc5987decode(y))}d.push(y)}return d.join("")}(t)){return fixupEncoding(rfc2047decode(a))}if(a=toParamRegExp("filename","i").exec(t)){var l=rfc2616unquote(a=a[1]);return fixupEncoding(l=rfc2047decode(l))}function toParamRegExp(t,r){return new RegExp("(?:^|;)\\s*"+t+'\\s*=\\s*([^";\\s][^;\\s]*|"(?:[^"\\\\]|\\\\"?)+"?)',r)}function textdecode(t,a){if(t){if(!/^[\x00-\xFF]+$/.test(a))return a;try{var i=new TextDecoder(t,{fatal:!0}),l=(0,o.stringToBytes)(a);a=i.decode(l);r=!1}catch(o){if(/^utf-?8$/i.test(t))try{a=decodeURIComponent(escape(a));r=!1}catch(t){}}}return a}function fixupEncoding(t){if(r&&/[\x80-\xff]/.test(t)){t=textdecode("utf-8",t);r&&(t=textdecode("iso-8859-1",t))}return t}function rfc2616unquote(t){if(t.startsWith('"')){for(var r=t.slice(1).split('\\"'),a=0;a<r.length;++a){var o=r[a].indexOf('"');if(-1!==o){r[a]=r[a].slice(0,o);r.length=a+1}r[a]=r[a].replace(/\\(.)/g,"$1")}t=r.join('"')}return t}function rfc5987decode(t){var r=t.indexOf("'");return-1===r?t:textdecode(t.slice(0,r),t.slice(r+1).replace(/^[^']*'/,""))}function rfc2047decode(t){return!t.startsWith("=?")||/[\x00-\x19\x80-\xff]/.test(t)?t:t.replace(/=\?([\w-]*)\?([QqBb])\?((?:[^?]|\?(?!=))*)\?=/g,(function(t,r,a,o){if("q"===a||"Q"===a)return textdecode(r,o=(o=o.replace(/_/g," ")).replace(/=([0-9a-fA-F]{2})/g,(function(t,r){return String.fromCharCode(parseInt(r,16))})));try{o=atob(o)}catch(t){}return textdecode(r,o)}))}return""};var o=a(4);function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var a=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==a)return;var o,i,l=[],u=!0,c=!1;try{for(a=a.call(t);!(u=(o=a.next()).done);u=!0){l.push(o.value);if(r&&l.length===r)break}}catch(t){c=!0;i=t}finally{try{u||null==a.return||a.return()}finally{if(c)throw i}}return l}(t,r)||function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);if("Map"===a||"Set"===a)return Array.from(t);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return _arrayLikeToArray(t,r)}(t,r)||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 _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}},(t,r,a)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.PDFNetworkStream=void 0;var o=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(a(2)),i=a(4),l=a(137);function asyncGeneratorStep(t,r,a,o,i,l,u){try{var c=t[l](u),d=c.value}catch(t){a(t);return}c.done?r(d):Promise.resolve(d).then(o,i)}function _asyncToGenerator(t){return function(){var r=this,a=arguments;return new Promise((function(o,i){var l=t.apply(r,a);function _next(t){asyncGeneratorStep(l,o,i,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(l,o,i,_next,_throw,"throw",t)}_next(void 0)}))}}function _createForOfIteratorHelper(t,r){var a="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!a){if(Array.isArray(t)||(a=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);if("Map"===a||"Set"===a)return Array.from(t);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){a&&(t=a);var o=0,i=function F(){};return{s:i,n:function n(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function e(t){throw t},f:i}}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 l,u=!0,c=!1;return{s:function s(){a=a.call(t)},n:function n(){var t=a.next();u=t.done;return t},e:function e(t){c=!0;l=t},f:function f(){try{u||null==a.return||a.return()}finally{if(c)throw l}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}var u=function(){function NetworkManager(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};_classCallCheck(this,NetworkManager);this.url=t;this.isHttp=/^https?:/i.test(t);this.httpHeaders=this.isHttp&&r.httpHeaders||Object.create(null);this.withCredentials=r.withCredentials||!1;this.getXhr=r.getXhr||function NetworkManager_getXhr(){return new XMLHttpRequest};this.currXhrId=0;this.pendingRequests=Object.create(null)}_createClass(NetworkManager,[{key:"requestRange",value:function requestRange(t,r,a){var o={begin:t,end:r};for(var i in a)o[i]=a[i];return this.request(o)}},{key:"requestFull",value:function requestFull(t){return this.request(t)}},{key:"request",value:function request(t){var r=this.getXhr(),a=this.currXhrId++,o=this.pendingRequests[a]={xhr:r};r.open("GET",this.url);r.withCredentials=this.withCredentials;for(var i in this.httpHeaders){var l=this.httpHeaders[i];void 0!==l&&r.setRequestHeader(i,l)}if(this.isHttp&&"begin"in t&&"end"in t){r.setRequestHeader("Range","bytes=".concat(t.begin,"-").concat(t.end-1));o.expectedStatus=206}else o.expectedStatus=200;r.responseType="arraybuffer";t.onError&&(r.onerror=function(a){t.onError(r.status)});r.onreadystatechange=this.onStateChange.bind(this,a);r.onprogress=this.onProgress.bind(this,a);o.onHeadersReceived=t.onHeadersReceived;o.onDone=t.onDone;o.onError=t.onError;o.onProgress=t.onProgress;r.send(null);return a}},{key:"onProgress",value:function onProgress(t,r){var a,o=this.pendingRequests[t];o&&(null===(a=o.onProgress)||void 0===a||a.call(o,r))}},{key:"onStateChange",value:function onStateChange(t,r){var a=this.pendingRequests[t];if(a){var o=a.xhr;if(o.readyState>=2&&a.onHeadersReceived){a.onHeadersReceived();delete a.onHeadersReceived}if(4===o.readyState&&t in this.pendingRequests){delete this.pendingRequests[t];if(0===o.status&&this.isHttp){var l;null===(l=a.onError)||void 0===l||l.call(a,o.status)}else{var u=o.status||200;if(200===u&&206===a.expectedStatus||u===a.expectedStatus){var c=function getArrayBuffer(t){var r=t.response;return"string"!=typeof r?r:(0,i.stringToBytes)(r).buffer}(o);if(206===u){var d=o.getResponseHeader("Content-Range"),h=/bytes (\d+)-(\d+)\/(\d+)/.exec(d);a.onDone({begin:parseInt(h[1],10),chunk:c})}else if(c)a.onDone({begin:0,chunk:c});else{var p;null===(p=a.onError)||void 0===p||p.call(a,o.status)}}else{var m;null===(m=a.onError)||void 0===m||m.call(a,o.status)}}}}}},{key:"getRequestXhr",value:function getRequestXhr(t){return this.pendingRequests[t].xhr}},{key:"isPendingRequest",value:function isPendingRequest(t){return t in this.pendingRequests}},{key:"abortRequest",value:function abortRequest(t){var r=this.pendingRequests[t].xhr;delete this.pendingRequests[t];r.abort()}}]);return NetworkManager}(),c=function(){function PDFNetworkStream(t){_classCallCheck(this,PDFNetworkStream);this._source=t;this._manager=new u(t.url,{httpHeaders:t.httpHeaders,withCredentials:t.withCredentials});this._rangeChunkSize=t.rangeChunkSize;this._fullRequestReader=null;this._rangeRequestReaders=[]}_createClass(PDFNetworkStream,[{key:"_onRangeRequestReaderClosed",value:function _onRangeRequestReaderClosed(t){var r=this._rangeRequestReaders.indexOf(t);r>=0&&this._rangeRequestReaders.splice(r,1)}},{key:"getFullReader",value:function getFullReader(){(0,i.assert)(!this._fullRequestReader,"PDFNetworkStream.getFullReader can only be called once.");this._fullRequestReader=new d(this._manager,this._source);return this._fullRequestReader}},{key:"getRangeReader",value:function getRangeReader(t,r){var a=new h(this._manager,t,r);a.onClosed=this._onRangeRequestReaderClosed.bind(this);this._rangeRequestReaders.push(a);return a}},{key:"cancelAllRequests",value:function cancelAllRequests(t){var r;null===(r=this._fullRequestReader)||void 0===r||r.cancel(t);var a,o=_createForOfIteratorHelper(this._rangeRequestReaders.slice(0));try{for(o.s();!(a=o.n()).done;){a.value.cancel(t)}}catch(t){o.e(t)}finally{o.f()}}}]);return PDFNetworkStream}();r.PDFNetworkStream=c;var d=function(){function PDFNetworkStreamFullRequestReader(t,r){_classCallCheck(this,PDFNetworkStreamFullRequestReader);this._manager=t;var a={onHeadersReceived:this._onHeadersReceived.bind(this),onDone:this._onDone.bind(this),onError:this._onError.bind(this),onProgress:this._onProgress.bind(this)};this._url=r.url;this._fullRequestId=t.requestFull(a);this._headersReceivedCapability=(0,i.createPromiseCapability)();this._disableRange=r.disableRange||!1;this._contentLength=r.length;this._rangeChunkSize=r.rangeChunkSize;this._rangeChunkSize||this._disableRange||(this._disableRange=!0);this._isStreamingSupported=!1;this._isRangeSupported=!1;this._cachedChunks=[];this._requests=[];this._done=!1;this._storedError=void 0;this._filename=null;this.onProgress=null}_createClass(PDFNetworkStreamFullRequestReader,[{key:"_onHeadersReceived",value:function _onHeadersReceived(){var t=this._fullRequestId,r=this._manager.getRequestXhr(t),a=function getResponseHeader(t){return r.getResponseHeader(t)},o=(0,l.validateRangeRequestCapabilities)({getResponseHeader:a,isHttp:this._manager.isHttp,rangeChunkSize:this._rangeChunkSize,disableRange:this._disableRange}),i=o.allowRangeRequests,u=o.suggestedLength;i&&(this._isRangeSupported=!0);this._contentLength=u||this._contentLength;this._filename=(0,l.extractFilenameFromHeader)(a);this._isRangeSupported&&this._manager.abortRequest(t);this._headersReceivedCapability.resolve()}},{key:"_onDone",value:function _onDone(t){if(t)if(this._requests.length>0){this._requests.shift().resolve({value:t.chunk,done:!1})}else this._cachedChunks.push(t.chunk);this._done=!0;if(!(this._cachedChunks.length>0)){var r,a=_createForOfIteratorHelper(this._requests);try{for(a.s();!(r=a.n()).done;){r.value.resolve({value:void 0,done:!0})}}catch(t){a.e(t)}finally{a.f()}this._requests.length=0}}},{key:"_onError",value:function _onError(t){this._storedError=(0,l.createResponseStatusError)(t,this._url);this._headersReceivedCapability.reject(this._storedError);var r,a=_createForOfIteratorHelper(this._requests);try{for(a.s();!(r=a.n()).done;){r.value.reject(this._storedError)}}catch(t){a.e(t)}finally{a.f()}this._requests.length=0;this._cachedChunks.length=0}},{key:"_onProgress",value:function _onProgress(t){var r;null===(r=this.onProgress)||void 0===r||r.call(this,{loaded:t.loaded,total:t.lengthComputable?t.total:this._contentLength})}},{key:"filename",get:function get(){return this._filename}},{key:"isRangeSupported",get:function get(){return this._isRangeSupported}},{key:"isStreamingSupported",get:function get(){return this._isStreamingSupported}},{key:"contentLength",get:function get(){return this._contentLength}},{key:"headersReady",get:function get(){return this._headersReceivedCapability.promise}},{key:"read",value:(t=_asyncToGenerator(o.default.mark((function _callee(){var t,r;return o.default.wrap((function _callee$(a){for(;;)switch(a.prev=a.next){case 0:if(!this._storedError){a.next=2;break}throw this._storedError;case 2:if(!(this._cachedChunks.length>0)){a.next=5;break}t=this._cachedChunks.shift();return a.abrupt("return",{value:t,done:!1});case 5:if(!this._done){a.next=7;break}return a.abrupt("return",{value:void 0,done:!0});case 7:r=(0,i.createPromiseCapability)();this._requests.push(r);return a.abrupt("return",r.promise);case 10:case"end":return a.stop()}}),_callee,this)}))),function read(){return t.apply(this,arguments)})},{key:"cancel",value:function cancel(t){this._done=!0;this._headersReceivedCapability.reject(t);var r,a=_createForOfIteratorHelper(this._requests);try{for(a.s();!(r=a.n()).done;){r.value.resolve({value:void 0,done:!0})}}catch(t){a.e(t)}finally{a.f()}this._requests.length=0;this._manager.isPendingRequest(this._fullRequestId)&&this._manager.abortRequest(this._fullRequestId);this._fullRequestReader=null}}]);var t;return PDFNetworkStreamFullRequestReader}(),h=function(){function PDFNetworkStreamRangeRequestReader(t,r,a){_classCallCheck(this,PDFNetworkStreamRangeRequestReader);this._manager=t;var o={onDone:this._onDone.bind(this),onError:this._onError.bind(this),onProgress:this._onProgress.bind(this)};this._url=t.url;this._requestId=t.requestRange(r,a,o);this._requests=[];this._queuedChunk=null;this._done=!1;this._storedError=void 0;this.onProgress=null;this.onClosed=null}_createClass(PDFNetworkStreamRangeRequestReader,[{key:"_close",value:function _close(){var t;null===(t=this.onClosed)||void 0===t||t.call(this,this)}},{key:"_onDone",value:function _onDone(t){var r=t.chunk;if(this._requests.length>0){this._requests.shift().resolve({value:r,done:!1})}else this._queuedChunk=r;this._done=!0;var a,o=_createForOfIteratorHelper(this._requests);try{for(o.s();!(a=o.n()).done;){a.value.resolve({value:void 0,done:!0})}}catch(t){o.e(t)}finally{o.f()}this._requests.length=0;this._close()}},{key:"_onError",value:function _onError(t){this._storedError=(0,l.createResponseStatusError)(t,this._url);var r,a=_createForOfIteratorHelper(this._requests);try{for(a.s();!(r=a.n()).done;){r.value.reject(this._storedError)}}catch(t){a.e(t)}finally{a.f()}this._requests.length=0;this._queuedChunk=null}},{key:"_onProgress",value:function _onProgress(t){if(!this.isStreamingSupported){var r;null===(r=this.onProgress)||void 0===r||r.call(this,{loaded:t.loaded})}}},{key:"isStreamingSupported",get:function get(){return!1}},{key:"read",value:(t=_asyncToGenerator(o.default.mark((function _callee2(){var t,r;return o.default.wrap((function _callee2$(a){for(;;)switch(a.prev=a.next){case 0:if(!this._storedError){a.next=2;break}throw this._storedError;case 2:if(null===this._queuedChunk){a.next=6;break}t=this._queuedChunk;this._queuedChunk=null;return a.abrupt("return",{value:t,done:!1});case 6:if(!this._done){a.next=8;break}return a.abrupt("return",{value:void 0,done:!0});case 8:r=(0,i.createPromiseCapability)();this._requests.push(r);return a.abrupt("return",r.promise);case 11:case"end":return a.stop()}}),_callee2,this)}))),function read(){return t.apply(this,arguments)})},{key:"cancel",value:function cancel(t){this._done=!0;var r,a=_createForOfIteratorHelper(this._requests);try{for(a.s();!(r=a.n()).done;){r.value.resolve({value:void 0,done:!0})}}catch(t){a.e(t)}finally{a.f()}this._requests.length=0;this._manager.isPendingRequest(this._requestId)&&this._manager.abortRequest(this._requestId);this._close()}}]);var t;return PDFNetworkStreamRangeRequestReader}()},(t,r,a)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.PDFFetchStream=void 0;var o=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(a(2)),i=a(4),l=a(137);function asyncGeneratorStep(t,r,a,o,i,l,u){try{var c=t[l](u),d=c.value}catch(t){a(t);return}c.done?r(d):Promise.resolve(d).then(o,i)}function _asyncToGenerator(t){return function(){var r=this,a=arguments;return new Promise((function(o,i){var l=t.apply(r,a);function _next(t){asyncGeneratorStep(l,o,i,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(l,o,i,_next,_throw,"throw",t)}_next(void 0)}))}}function _createForOfIteratorHelper(t,r){var a="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!a){if(Array.isArray(t)||(a=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);if("Map"===a||"Set"===a)return Array.from(t);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){a&&(t=a);var o=0,i=function F(){};return{s:i,n:function n(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function e(t){throw t},f:i}}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 l,u=!0,c=!1;return{s:function s(){a=a.call(t)},n:function n(){var t=a.next();u=t.done;return t},e:function e(t){c=!0;l=t},f:function f(){try{u||null==a.return||a.return()}finally{if(c)throw l}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}function createFetchOptions(t,r,a){return{method:"GET",headers:t,signal:null==a?void 0:a.signal,mode:"cors",credentials:r?"include":"same-origin",redirect:"follow"}}function createHeaders(t){var r=new Headers;for(var a in t){var o=t[a];void 0!==o&&r.append(a,o)}return r}var u=function(){function PDFFetchStream(t){_classCallCheck(this,PDFFetchStream);this.source=t;this.isHttp=/^https?:/i.test(t.url);this.httpHeaders=this.isHttp&&t.httpHeaders||{};this._fullRequestReader=null;this._rangeRequestReaders=[]}_createClass(PDFFetchStream,[{key:"_progressiveDataLength",get:function get(){var t,r;return null!==(t=null===(r=this._fullRequestReader)||void 0===r?void 0:r._loaded)&&void 0!==t?t:0}},{key:"getFullReader",value:function getFullReader(){(0,i.assert)(!this._fullRequestReader,"PDFFetchStream.getFullReader can only be called once.");this._fullRequestReader=new c(this);return this._fullRequestReader}},{key:"getRangeReader",value:function getRangeReader(t,r){if(r<=this._progressiveDataLength)return null;var a=new d(this,t,r);this._rangeRequestReaders.push(a);return a}},{key:"cancelAllRequests",value:function cancelAllRequests(t){this._fullRequestReader&&this._fullRequestReader.cancel(t);var r,a=_createForOfIteratorHelper(this._rangeRequestReaders.slice(0));try{for(a.s();!(r=a.n()).done;){r.value.cancel(t)}}catch(t){a.e(t)}finally{a.f()}}}]);return PDFFetchStream}();r.PDFFetchStream=u;var c=function(){function PDFFetchStreamReader(t){var r=this;_classCallCheck(this,PDFFetchStreamReader);this._stream=t;this._reader=null;this._loaded=0;this._filename=null;var a=t.source;this._withCredentials=a.withCredentials||!1;this._contentLength=a.length;this._headersCapability=(0,i.createPromiseCapability)();this._disableRange=a.disableRange||!1;this._rangeChunkSize=a.rangeChunkSize;this._rangeChunkSize||this._disableRange||(this._disableRange=!0);"undefined"!=typeof AbortController&&(this._abortController=new AbortController);this._isStreamingSupported=!a.disableStream;this._isRangeSupported=!a.disableRange;this._headers=createHeaders(this._stream.httpHeaders);var o=a.url;fetch(o,createFetchOptions(this._headers,this._withCredentials,this._abortController)).then((function(t){if(!(0,l.validateResponseStatus)(t.status))throw(0,l.createResponseStatusError)(t.status,o);r._reader=t.body.getReader();r._headersCapability.resolve();var a=function getResponseHeader(r){return t.headers.get(r)},u=(0,l.validateRangeRequestCapabilities)({getResponseHeader:a,isHttp:r._stream.isHttp,rangeChunkSize:r._rangeChunkSize,disableRange:r._disableRange}),c=u.allowRangeRequests,d=u.suggestedLength;r._isRangeSupported=c;r._contentLength=d||r._contentLength;r._filename=(0,l.extractFilenameFromHeader)(a);!r._isStreamingSupported&&r._isRangeSupported&&r.cancel(new i.AbortException("Streaming is disabled."))})).catch(this._headersCapability.reject);this.onProgress=null}_createClass(PDFFetchStreamReader,[{key:"headersReady",get:function get(){return this._headersCapability.promise}},{key:"filename",get:function get(){return this._filename}},{key:"contentLength",get:function get(){return this._contentLength}},{key:"isRangeSupported",get:function get(){return this._isRangeSupported}},{key:"isStreamingSupported",get:function get(){return this._isStreamingSupported}},{key:"read",value:(t=_asyncToGenerator(o.default.mark((function _callee(){var t,r,a,i;return o.default.wrap((function _callee$(o){for(;;)switch(o.prev=o.next){case 0:o.next=2;return this._headersCapability.promise;case 2:o.next=4;return this._reader.read();case 4:t=o.sent;r=t.value;if(!(a=t.done)){o.next=9;break}return o.abrupt("return",{value:r,done:a});case 9:this._loaded+=r.byteLength;this.onProgress&&this.onProgress({loaded:this._loaded,total:this._contentLength});i=new Uint8Array(r).buffer;return o.abrupt("return",{value:i,done:!1});case 13:case"end":return o.stop()}}),_callee,this)}))),function read(){return t.apply(this,arguments)})},{key:"cancel",value:function cancel(t){this._reader&&this._reader.cancel(t);this._abortController&&this._abortController.abort()}}]);var t;return PDFFetchStreamReader}(),d=function(){function PDFFetchStreamRangeReader(t,r,a){var o=this;_classCallCheck(this,PDFFetchStreamRangeReader);this._stream=t;this._reader=null;this._loaded=0;var u=t.source;this._withCredentials=u.withCredentials||!1;this._readCapability=(0,i.createPromiseCapability)();this._isStreamingSupported=!u.disableStream;"undefined"!=typeof AbortController&&(this._abortController=new AbortController);this._headers=createHeaders(this._stream.httpHeaders);this._headers.append("Range","bytes=".concat(r,"-").concat(a-1));var c=u.url;fetch(c,createFetchOptions(this._headers,this._withCredentials,this._abortController)).then((function(t){if(!(0,l.validateResponseStatus)(t.status))throw(0,l.createResponseStatusError)(t.status,c);o._readCapability.resolve();o._reader=t.body.getReader()})).catch(this._readCapability.reject);this.onProgress=null}_createClass(PDFFetchStreamRangeReader,[{key:"isStreamingSupported",get:function get(){return this._isStreamingSupported}},{key:"read",value:(t=_asyncToGenerator(o.default.mark((function _callee2(){var t,r,a,i;return o.default.wrap((function _callee2$(o){for(;;)switch(o.prev=o.next){case 0:o.next=2;return this._readCapability.promise;case 2:o.next=4;return this._reader.read();case 4:t=o.sent;r=t.value;if(!(a=t.done)){o.next=9;break}return o.abrupt("return",{value:r,done:a});case 9:this._loaded+=r.byteLength;this.onProgress&&this.onProgress({loaded:this._loaded});i=new Uint8Array(r).buffer;return o.abrupt("return",{value:i,done:!1});case 13:case"end":return o.stop()}}),_callee2,this)}))),function read(){return t.apply(this,arguments)})},{key:"cancel",value:function cancel(t){this._reader&&this._reader.cancel(t);this._abortController&&this._abortController.abort()}}]);var t;return PDFFetchStreamRangeReader}()}],__webpack_module_cache__={};function __w_pdfjs_require__(t){var r=__webpack_module_cache__[t];if(void 0!==r)return r.exports;var a=__webpack_module_cache__[t]={id:t,loaded:!1,exports:{}};__webpack_modules__[t].call(a.exports,a,a.exports,__w_pdfjs_require__);a.loaded=!0;return a.exports}__w_pdfjs_require__.nmd=t=>{t.paths=[];t.children||(t.children=[]);return t};var __webpack_exports__={};(()=>{"use strict";var t=__webpack_exports__;Object.defineProperty(t,"__esModule",{value:!0});Object.defineProperty(t,"addLinkAttributes",{enumerable:!0,get:function get(){return r.addLinkAttributes}});Object.defineProperty(t,"getFilenameFromUrl",{enumerable:!0,get:function get(){return r.getFilenameFromUrl}});Object.defineProperty(t,"getPdfFilenameFromUrl",{enumerable:!0,get:function get(){return r.getPdfFilenameFromUrl}});Object.defineProperty(t,"getXfaPageViewport",{enumerable:!0,get:function get(){return r.getXfaPageViewport}});Object.defineProperty(t,"isPdfFile",{enumerable:!0,get:function get(){return r.isPdfFile}});Object.defineProperty(t,"LinkTarget",{enumerable:!0,get:function get(){return r.LinkTarget}});Object.defineProperty(t,"loadScript",{enumerable:!0,get:function get(){return r.loadScript}});Object.defineProperty(t,"PDFDateString",{enumerable:!0,get:function get(){return r.PDFDateString}});Object.defineProperty(t,"PixelsPerInch",{enumerable:!0,get:function get(){return r.PixelsPerInch}});Object.defineProperty(t,"RenderingCancelledException",{enumerable:!0,get:function get(){return r.RenderingCancelledException}});Object.defineProperty(t,"AnnotationMode",{enumerable:!0,get:function get(){return a.AnnotationMode}});Object.defineProperty(t,"CMapCompressionType",{enumerable:!0,get:function get(){return a.CMapCompressionType}});Object.defineProperty(t,"createObjectURL",{enumerable:!0,get:function get(){return a.createObjectURL}});Object.defineProperty(t,"createPromiseCapability",{enumerable:!0,get:function get(){return a.createPromiseCapability}});Object.defineProperty(t,"createValidAbsoluteUrl",{enumerable:!0,get:function get(){return a.createValidAbsoluteUrl}});Object.defineProperty(t,"InvalidPDFException",{enumerable:!0,get:function get(){return a.InvalidPDFException}});Object.defineProperty(t,"MissingPDFException",{enumerable:!0,get:function get(){return a.MissingPDFException}});Object.defineProperty(t,"OPS",{enumerable:!0,get:function get(){return a.OPS}});Object.defineProperty(t,"PasswordResponses",{enumerable:!0,get:function get(){return a.PasswordResponses}});Object.defineProperty(t,"PermissionFlag",{enumerable:!0,get:function get(){return a.PermissionFlag}});Object.defineProperty(t,"removeNullCharacters",{enumerable:!0,get:function get(){return a.removeNullCharacters}});Object.defineProperty(t,"shadow",{enumerable:!0,get:function get(){return a.shadow}});Object.defineProperty(t,"UnexpectedResponseException",{enumerable:!0,get:function get(){return a.UnexpectedResponseException}});Object.defineProperty(t,"UNSUPPORTED_FEATURES",{enumerable:!0,get:function get(){return a.UNSUPPORTED_FEATURES}});Object.defineProperty(t,"Util",{enumerable:!0,get:function get(){return a.Util}});Object.defineProperty(t,"VerbosityLevel",{enumerable:!0,get:function get(){return a.VerbosityLevel}});Object.defineProperty(t,"build",{enumerable:!0,get:function get(){return o.build}});Object.defineProperty(t,"getDocument",{enumerable:!0,get:function get(){return o.getDocument}});Object.defineProperty(t,"LoopbackPort",{enumerable:!0,get:function get(){return o.LoopbackPort}});Object.defineProperty(t,"PDFDataRangeTransport",{enumerable:!0,get:function get(){return o.PDFDataRangeTransport}});Object.defineProperty(t,"PDFWorker",{enumerable:!0,get:function get(){return o.PDFWorker}});Object.defineProperty(t,"version",{enumerable:!0,get:function get(){return o.version}});Object.defineProperty(t,"AnnotationLayer",{enumerable:!0,get:function get(){return i.AnnotationLayer}});Object.defineProperty(t,"GlobalWorkerOptions",{enumerable:!0,get:function get(){return l.GlobalWorkerOptions}});Object.defineProperty(t,"renderTextLayer",{enumerable:!0,get:function get(){return c.renderTextLayer}});Object.defineProperty(t,"SVGGraphics",{enumerable:!0,get:function get(){return d.SVGGraphics}});Object.defineProperty(t,"XfaLayer",{enumerable:!0,get:function get(){return h.XfaLayer}});var r=__w_pdfjs_require__(1),a=__w_pdfjs_require__(4),o=__w_pdfjs_require__(119),i=__w_pdfjs_require__(131),l=__w_pdfjs_require__(125),u=__w_pdfjs_require__(6),c=__w_pdfjs_require__(133),d=__w_pdfjs_require__(134),h=__w_pdfjs_require__(135);if(u.isNodeJS){var p=__w_pdfjs_require__(136).PDFNodeStream;(0,o.setPDFNetworkStreamFactory)((function(t){return new p(t)}))}else{var m=__w_pdfjs_require__(139).PDFNetworkStream,y=__w_pdfjs_require__(140).PDFFetchStream;(0,o.setPDFNetworkStreamFactory)((function(t){return(0,r.isValidFetchUrl)(t.url)?new y(t):new m(t)}))}})();return __webpack_exports__})()}));
\ No newline at end of file
diff --git a/node_modules/pdfh5/js/pdf.worker.js b/node_modules/pdfh5/js/pdf.worker.js
new file mode 100644
index 0000000..13323db
--- /dev/null
+++ b/node_modules/pdfh5/js/pdf.worker.js
@@ -0,0 +1,22 @@
+/**
+ * @licstart The following is the entire license notice for the
+ * Javascript code in this page
+ *
+ * Copyright 2021 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(t,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define("pdfjs-dist/build/pdf.worker",[],r):"object"==typeof exports?exports["pdfjs-dist/build/pdf.worker"]=r():t["pdfjs-dist/build/pdf.worker"]=t.pdfjsWorker=r()}(this,(function(){return(()=>{var t=[,(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.WorkerTask=r.WorkerMessageHandler=void 0;var l=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(o(2)),c=o(4),u=o(118),h=o(120),d=o(184),m=o(6),g=o(212),y=o(213),v=o(122);function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}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 u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _toArray(t){return _arrayWithHoles(t)||function _iterableToArray(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||_unsupportedIterableToArray(t)||_nonIterableRest()}function _slicedToArray(t,r){return _arrayWithHoles(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||_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 _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _arrayWithHoles(t){if(Array.isArray(t))return t}function asyncGeneratorStep(t,r,o,l,c,u,h){try{var d=t[u](h),m=d.value}catch(t){o(t);return}d.done?r(m):Promise.resolve(m).then(l,c)}function _asyncToGenerator(t){return function(){var r=this,o=arguments;return new Promise((function(l,c){var u=t.apply(r,o);function _next(t){asyncGeneratorStep(u,l,c,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(u,l,c,_next,_throw,"throw",t)}_next(void 0)}))}}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var S=function(){function WorkerTask(t){_classCallCheck(this,WorkerTask);this.name=t;this.terminated=!1;this._capability=(0,c.createPromiseCapability)()}_createClass(WorkerTask,[{key:"finished",get:function get(){return this._capability.promise}},{key:"finish",value:function finish(){this._capability.resolve()}},{key:"terminate",value:function terminate(){this.terminated=!0}},{key:"ensureNotTerminated",value:function ensureNotTerminated(){if(this.terminated)throw new Error("Worker task was terminated")}}]);return WorkerTask}();r.WorkerTask=S;var _=function(){function WorkerMessageHandler(){_classCallCheck(this,WorkerMessageHandler)}_createClass(WorkerMessageHandler,null,[{key:"setup",value:function setup(t,r){var o=!1;t.on("test",(function wphSetupTest(r){if(!o){o=!0;if(r instanceof Uint8Array){var l=255===r[0];t.postMessageTransfers=l;t.send("test",{supportTransfers:l})}else t.send("test",null)}}));t.on("configure",(function wphConfigure(t){(0,c.setVerbosityLevel)(t.verbosity)}));t.on("GetDocRequest",(function wphSetupDoc(t){return WorkerMessageHandler.createDocumentHandler(t,r)}))}},{key:"createDocumentHandler",value:function createDocumentHandler(t,r){var o,m=!1,_=null,k=[],C=(0,c.getVerbosityLevel)(),w=t.apiVersion,x="2.11.338";if(w!==x)throw new Error('The API version "'.concat(w,'" does not match ')+'the Worker version "'.concat(x,'".'));var O=[];for(var T in[])O.push(T);if(O.length)throw new Error("The `Array.prototype` contains unexpected enumerable properties: "+O.join(", ")+"; thus breaking e.g. `for...in` iteration of `Array`s.");var R=t.docId,E=t.docBaseUrl,M=t.docId+"_worker",D=new g.MessageHandler(M,R,r);D.postMessageTransfers=t.postMessageTransfers;function ensureNotTerminated(){if(m)throw new Error("Worker was terminated")}function startWorkerTask(t){k.push(t)}function finishWorkerTask(t){t.finish();var r=k.indexOf(t);k.splice(r,1)}function loadDocument(t){return _loadDocument.apply(this,arguments)}function _loadDocument(){return(_loadDocument=_asyncToGenerator(l.default.mark((function _callee(t){var r,c,u,h,d,m,g;return l.default.wrap((function _callee$(l){for(;;)switch(l.prev=l.next){case 0:l.next=2;return o.ensureDoc("checkHeader");case 2:l.next=4;return o.ensureDoc("parseStartXRef");case 4:l.next=6;return o.ensureDoc("parse",[t]);case 6:if(t){l.next=9;break}l.next=9;return o.ensureDoc("checkFirstPage");case 9:l.next=11;return o.ensureDoc("isPureXfa");case 11:if(!(r=l.sent)){l.next=17;break}startWorkerTask(c=new S("loadXfaFonts"));l.next=17;return Promise.all([o.loadXfaFonts(D,c).catch((function(t){})).then((function(){return finishWorkerTask(c)})),o.loadXfaImages()]);case 17:l.next=19;return Promise.all([o.ensureDoc("numPages"),o.ensureDoc("fingerprints")]);case 19:u=l.sent;h=_slicedToArray(u,2);d=h[0];m=h[1];if(!r){l.next=29;break}l.next=26;return o.ensureDoc("htmlForXfa");case 26:l.t0=l.sent;l.next=30;break;case 29:l.t0=null;case 30:g=l.t0;return l.abrupt("return",{numPages:d,fingerprints:m,htmlForXfa:g});case 32:case"end":return l.stop()}}),_callee)})))).apply(this,arguments)}function getPdfManager(t,r,o){var l,u=(0,c.createPromiseCapability)(),d=t.source;if(d.data){try{l=new h.LocalPdfManager(R,d.data,d.password,r,o,E);u.resolve(l)}catch(t){u.reject(t)}return u.promise}var m,g=[];try{m=new y.PDFWorkerStream(D)}catch(t){u.reject(t);return u.promise}var v=m.getFullReader();v.headersReady.then((function(){if(v.isRangeSupported){var t=d.disableAutoFetch||v.isStreamingSupported;l=new h.NetworkPdfManager(R,m,{msgHandler:D,password:d.password,length:v.contentLength,disableAutoFetch:t,rangeChunkSize:d.rangeChunkSize},r,o,E);for(var c=0;c<g.length;c++)l.sendProgressiveData(g[c]);g=[];u.resolve(l);_=null}})).catch((function(t){u.reject(t);_=null}));var S=0;new Promise((function(t,m){v.read().then((function readChunk(t){var y=t.value,k=t.done;try{ensureNotTerminated();if(k){l||function flushChunks(){var t=(0,c.arraysToBytes)(g);d.length&&t.length!==d.length&&(0,c.warn)("reported HTTP length is different from actual");try{l=new h.LocalPdfManager(R,t,d.password,r,o,E);u.resolve(l)}catch(t){u.reject(t)}g=[]}();_=null;return}S+=(0,c.arrayByteLength)(y);v.isStreamingSupported||D.send("DocProgress",{loaded:S,total:Math.max(S,v.contentLength||0)});l?l.sendProgressiveData(y):g.push(y);v.read().then(readChunk,m)}catch(t){m(t)}}),m)})).catch((function(t){u.reject(t);_=null}));_=function cancelXHRs(t){m.cancelAllRequests(t)};return u.promise}D.on("GetPage",(function wphSetupGetPage(t){return o.getPage(t.pageIndex).then((function(t){return Promise.all([o.ensure(t,"rotate"),o.ensure(t,"ref"),o.ensure(t,"userUnit"),o.ensure(t,"view")]).then((function(t){var r=_slicedToArray(t,4);return{rotate:r[0],ref:r[1],userUnit:r[2],view:r[3]}}))}))}));D.on("GetPageIndex",(function wphSetupGetPageIndex(t){var r=t.ref,l=u.Ref.get(r.num,r.gen);return o.ensureCatalog("getPageIndex",[l])}));D.on("GetDestinations",(function wphSetupGetDestinations(t){return o.ensureCatalog("destinations")}));D.on("GetDestination",(function wphSetupGetDestination(t){return o.ensureCatalog("getDestination",[t.id])}));D.on("GetPageLabels",(function wphSetupGetPageLabels(t){return o.ensureCatalog("pageLabels")}));D.on("GetPageLayout",(function wphSetupGetPageLayout(t){return o.ensureCatalog("pageLayout")}));D.on("GetPageMode",(function wphSetupGetPageMode(t){return o.ensureCatalog("pageMode")}));D.on("GetViewerPreferences",(function(t){return o.ensureCatalog("viewerPreferences")}));D.on("GetOpenAction",(function(t){return o.ensureCatalog("openAction")}));D.on("GetAttachments",(function wphSetupGetAttachments(t){return o.ensureCatalog("attachments")}));D.on("GetJavaScript",(function wphSetupGetJavaScript(t){return o.ensureCatalog("javaScript")}));D.on("GetDocJSActions",(function wphSetupGetDocJSActions(t){return o.ensureCatalog("jsActions")}));D.on("GetPageJSActions",(function(t){var r=t.pageIndex;return o.getPage(r).then((function(t){return o.ensure(t,"jsActions")}))}));D.on("GetOutline",(function wphSetupGetOutline(t){return o.ensureCatalog("documentOutline")}));D.on("GetOptionalContentConfig",(function(t){return o.ensureCatalog("optionalContentConfig")}));D.on("GetPermissions",(function(t){return o.ensureCatalog("permissions")}));D.on("GetMetadata",(function wphSetupGetMetadata(t){return Promise.all([o.ensureDoc("documentInfo"),o.ensureCatalog("metadata")])}));D.on("GetMarkInfo",(function wphSetupGetMarkInfo(t){return o.ensureCatalog("markInfo")}));D.on("GetData",(function wphSetupGetData(t){o.requestLoadedStream();return o.onLoadedStream().then((function(t){return t.bytes}))}));D.on("GetStats",(function wphSetupGetStats(t){return o.ensureXRef("stats")}));D.on("GetAnnotations",(function(t){var r=t.pageIndex,l=t.intent;return o.getPage(r).then((function(t){return t.getAnnotationsData(l)}))}));D.on("GetFieldObjects",(function(t){return o.ensureDoc("fieldObjects")}));D.on("HasJSActions",(function(t){return o.ensureDoc("hasJSActions")}));D.on("GetCalculationOrderIds",(function(t){return o.ensureDoc("calculationOrderIds")}));D.on("SaveDocument",(function(t){var r=t.isPureXfa,l=t.numPages,h=t.annotationStorage,m=t.filename;o.requestLoadedStream();var g=[o.onLoadedStream(),o.ensureCatalog("acroForm"),o.ensureCatalog("acroFormRef"),o.ensureDoc("xref"),o.ensureDoc("startXRef")];if(r)g.push(o.serializeXfaData(h));else for(var y=function _loop(t){g.push(o.getPage(t).then((function(r){var o=new S("Save: page ".concat(t));return r.save(D,o,h).finally((function(){finishWorkerTask(o)}))})))},v=0;v<l;v++)y(v);return Promise.all(g).then((function(t){var o=_toArray(t),l=o[0],h=o[1],g=o[2],y=o[3],v=o[4],S=o.slice(5),_=[],k=null;if(r){if(!(k=S[0]))return l.bytes}else{var C,w=_createForOfIteratorHelper(S);try{for(w.s();!(C=w.n()).done;){_=C.value.filter((function(t){return null!==t})).reduce((function(t,r){return t.concat(r)}),_)}}catch(t){w.e(t)}finally{w.f()}if(0===_.length)return l.bytes}var x=h instanceof u.Dict&&h.get("XFA")||null,O=null,T=!1;if(Array.isArray(x)){for(var R=0,E=x.length;R<E;R+=2)if("datasets"===x[R]){O=x[R+1];g=null;T=!0}null===O&&(O=y.getNewRef())}else if(x){g=null;(0,c.warn)("Unsupported XFA type.")}var M=Object.create(null);if(y.trailer){var D=Object.create(null),j=y.trailer.get("Info")||null;j instanceof u.Dict&&j.forEach((function(t,r){(0,c.isString)(t)&&(0,c.isString)(r)&&(D[t]=(0,c.stringToPDFString)(r))}));M={rootRef:y.trailer.getRaw("Root")||null,encryptRef:y.trailer.getRaw("Encrypt")||null,newRef:y.getNewRef(),infoRef:y.trailer.getRaw("Info")||null,info:D,fileIds:y.trailer.get("ID")||null,startXRef:v,filename:m}}y.resetNewRef();return(0,d.incrementalUpdate)({originalData:l.bytes,xrefInfo:M,newRefs:_,xref:y,hasXfa:!!x,xfaDatasetsRef:O,hasXfaDatasetsEntry:T,acroFormRef:g,acroForm:h,xfaData:k})}))}));D.on("GetOperatorList",(function wphSetupRenderPage(t,r){var l=t.pageIndex;o.getPage(l).then((function(o){var u=new S("GetOperatorList: page ".concat(l));startWorkerTask(u);var h=C>=c.VerbosityLevel.INFOS?Date.now():0;o.getOperatorList({handler:D,sink:r,task:u,intent:t.intent,cacheKey:t.cacheKey,annotationStorage:t.annotationStorage}).then((function(t){finishWorkerTask(u);h&&(0,c.info)("page=".concat(l+1," - getOperatorList: time=")+"".concat(Date.now()-h,"ms, len=").concat(t.length));r.close()}),(function(t){finishWorkerTask(u);if(!u.terminated){D.send("UnsupportedFeature",{featureId:c.UNSUPPORTED_FEATURES.errorOperatorList});r.error(t)}}))}))}));D.on("GetTextContent",(function wphExtractText(t,r){var l=t.pageIndex;o.getPage(l).then((function(o){var u=new S("GetTextContent: page "+l);startWorkerTask(u);var h=C>=c.VerbosityLevel.INFOS?Date.now():0;o.extractTextContent({handler:D,task:u,sink:r,normalizeWhitespace:t.normalizeWhitespace,includeMarkedContent:t.includeMarkedContent,combineTextItems:t.combineTextItems}).then((function(){finishWorkerTask(u);h&&(0,c.info)("page=".concat(l+1," - getTextContent: time=")+"".concat(Date.now()-h,"ms"));r.close()}),(function(t){finishWorkerTask(u);u.terminated||r.error(t)}))}))}));D.on("GetStructTree",(function wphGetStructTree(t){return o.getPage(t.pageIndex).then((function(t){return o.ensure(t,"getStructTree")}))}));D.on("FontFallback",(function(t){return o.fontFallback(t.id,D)}));D.on("Cleanup",(function wphCleanup(t){return o.cleanup(!0)}));D.on("Terminate",(function wphTerminate(t){m=!0;var r=[];if(o){o.terminate(new c.AbortException("Worker was terminated."));var l=o.cleanup();r.push(l);o=null}else(0,u.clearPrimitiveCaches)();_&&_(new c.AbortException("Worker was terminated."));var h,d=_createForOfIteratorHelper(k);try{for(d.s();!(h=d.n()).done;){var g=h.value;r.push(g.finished);g.terminate()}}catch(t){d.e(t)}finally{d.f()}return Promise.all(r).then((function(){D.destroy();D=null}))}));D.on("Ready",(function wphReady(r){!function setupDoc(t){function onSuccess(t){ensureNotTerminated();D.send("GetDoc",{pdfInfo:t})}function onFailure(t){ensureNotTerminated();if(t instanceof c.PasswordException){var r=new S("PasswordException: response ".concat(t.code));startWorkerTask(r);D.sendWithPromise("PasswordRequest",t).then((function(t){var l=t.password;finishWorkerTask(r);o.updatePassword(l);pdfManagerReady()})).catch((function(){finishWorkerTask(r);D.send("DocException",t)}))}else t instanceof c.InvalidPDFException||t instanceof c.MissingPDFException||t instanceof c.UnexpectedResponseException||t instanceof c.UnknownErrorException?D.send("DocException",t):D.send("DocException",new c.UnknownErrorException(t.message,t.toString()))}function pdfManagerReady(){ensureNotTerminated();loadDocument(!1).then(onSuccess,(function(t){ensureNotTerminated();if(t instanceof v.XRefParseException){o.requestLoadedStream();o.onLoadedStream().then((function(){ensureNotTerminated();loadDocument(!0).then(onSuccess,onFailure)}))}else onFailure(t)}))}ensureNotTerminated();getPdfManager(t,{maxImageSize:t.maxImageSize,disableFontFace:t.disableFontFace,ignoreErrors:t.ignoreErrors,isEvalSupported:t.isEvalSupported,fontExtraProperties:t.fontExtraProperties,useSystemFonts:t.useSystemFonts,cMapUrl:t.cMapUrl,standardFontDataUrl:t.standardFontDataUrl},t.enableXfa).then((function(t){if(m){t.terminate(new c.AbortException("Worker was terminated."));throw new Error("Worker was terminated")}(o=t).onLoadedStream().then((function(t){D.send("DataLoaded",{length:t.bytes.byteLength})}))})).then(pdfManagerReady,onFailure)}(t);t=null}));return M}},{key:"initializeFromPort",value:function initializeFromPort(t){var r=new g.MessageHandler("worker","main",t);WorkerMessageHandler.setup(r,t);r.send("ready",null)}}]);return WorkerMessageHandler}();r.WorkerMessageHandler=_;"undefined"==typeof window&&!m.isNodeJS&&"undefined"!=typeof self&&function isMessagePort(t){return"function"==typeof t.postMessage&&"onmessage"in t}(self)&&_.initializeFromPort(self)},(t,r,o)=>{"use strict";t.exports=o(3)},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}var l=function(t){var r,o=Object.prototype,l=o.hasOwnProperty,c="function"==typeof Symbol?Symbol:{},u=c.iterator||"@@iterator",h=c.asyncIterator||"@@asyncIterator",d=c.toStringTag||"@@toStringTag";function define(t,r,o){Object.defineProperty(t,r,{value:o,enumerable:!0,configurable:!0,writable:!0});return t[r]}try{define({},"")}catch(t){define=function define(t,r,o){return t[r]=o}}function wrap(t,r,o,l){var c=r&&r.prototype instanceof Generator?r:Generator,u=Object.create(c.prototype),h=new Context(l||[]);u._invoke=function makeInvokeMethod(t,r,o){var l=m;return function invoke(c,u){if(l===y)throw new Error("Generator is already running");if(l===v){if("throw"===c)throw u;return doneResult()}o.method=c;o.arg=u;for(;;){var h=o.delegate;if(h){var d=maybeInvokeDelegate(h,o);if(d){if(d===S)continue;return d}}if("next"===o.method)o.sent=o._sent=o.arg;else if("throw"===o.method){if(l===m){l=v;throw o.arg}o.dispatchException(o.arg)}else"return"===o.method&&o.abrupt("return",o.arg);l=y;var _=tryCatch(t,r,o);if("normal"===_.type){l=o.done?v:g;if(_.arg===S)continue;return{value:_.arg,done:o.done}}if("throw"===_.type){l=v;o.method="throw";o.arg=_.arg}}}}(t,o,h);return u}t.wrap=wrap;function tryCatch(t,r,o){try{return{type:"normal",arg:t.call(r,o)}}catch(t){return{type:"throw",arg:t}}}var m="suspendedStart",g="suspendedYield",y="executing",v="completed",S={};function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}var _={};define(_,u,(function(){return this}));var k=Object.getPrototypeOf,C=k&&k(k(values([])));C&&C!==o&&l.call(C,u)&&(_=C);var w=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(_);GeneratorFunction.prototype=GeneratorFunctionPrototype;define(w,"constructor",GeneratorFunctionPrototype);define(GeneratorFunctionPrototype,"constructor",GeneratorFunction);GeneratorFunction.displayName=define(GeneratorFunctionPrototype,d,"GeneratorFunction");function defineIteratorMethods(t){["next","throw","return"].forEach((function(r){define(t,r,(function(t){return this._invoke(r,t)}))}))}t.isGeneratorFunction=function(t){var r="function"==typeof t&&t.constructor;return!!r&&(r===GeneratorFunction||"GeneratorFunction"===(r.displayName||r.name))};t.mark=function(t){if(Object.setPrototypeOf)Object.setPrototypeOf(t,GeneratorFunctionPrototype);else{t.__proto__=GeneratorFunctionPrototype;define(t,d,"GeneratorFunction")}t.prototype=Object.create(w);return t};t.awrap=function(t){return{__await:t}};function AsyncIterator(t,r){function invoke(o,c,u,h){var d=tryCatch(t[o],t,c);if("throw"!==d.type){var m=d.arg,g=m.value;return g&&"object"===_typeof(g)&&l.call(g,"__await")?r.resolve(g.__await).then((function(t){invoke("next",t,u,h)}),(function(t){invoke("throw",t,u,h)})):r.resolve(g).then((function(t){m.value=t;u(m)}),(function(t){return invoke("throw",t,u,h)}))}h(d.arg)}var o;this._invoke=function enqueue(t,l){function callInvokeWithMethodAndArg(){return new r((function(r,o){invoke(t,l,r,o)}))}return o=o?o.then(callInvokeWithMethodAndArg,callInvokeWithMethodAndArg):callInvokeWithMethodAndArg()}}defineIteratorMethods(AsyncIterator.prototype);define(AsyncIterator.prototype,h,(function(){return this}));t.AsyncIterator=AsyncIterator;t.async=function(r,o,l,c,u){void 0===u&&(u=Promise);var h=new AsyncIterator(wrap(r,o,l,c),u);return t.isGeneratorFunction(o)?h:h.next().then((function(t){return t.done?t.value:h.next()}))};function maybeInvokeDelegate(t,o){var l=t.iterator[o.method];if(l===r){o.delegate=null;if("throw"===o.method){if(t.iterator.return){o.method="return";o.arg=r;maybeInvokeDelegate(t,o);if("throw"===o.method)return S}o.method="throw";o.arg=new TypeError("The iterator does not provide a 'throw' method")}return S}var c=tryCatch(l,t.iterator,o.arg);if("throw"===c.type){o.method="throw";o.arg=c.arg;o.delegate=null;return S}var u=c.arg;if(!u){o.method="throw";o.arg=new TypeError("iterator result is not an object");o.delegate=null;return S}if(!u.done)return u;o[t.resultName]=u.value;o.next=t.nextLoc;if("return"!==o.method){o.method="next";o.arg=r}o.delegate=null;return S}defineIteratorMethods(w);define(w,d,"Generator");define(w,u,(function(){return this}));define(w,"toString",(function(){return"[object Generator]"}));function pushTryEntry(t){var r={tryLoc:t[0]};1 in t&&(r.catchLoc=t[1]);if(2 in t){r.finallyLoc=t[2];r.afterLoc=t[3]}this.tryEntries.push(r)}function resetTryEntry(t){var r=t.completion||{};r.type="normal";delete r.arg;t.completion=r}function Context(t){this.tryEntries=[{tryLoc:"root"}];t.forEach(pushTryEntry,this);this.reset(!0)}t.keys=function(t){var r=[];for(var o in t)r.push(o);r.reverse();return function next(){for(;r.length;){var o=r.pop();if(o in t){next.value=o;next.done=!1;return next}}next.done=!0;return next}};function values(t){if(t){var o=t[u];if(o)return o.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var c=-1,h=function next(){for(;++c<t.length;)if(l.call(t,c)){next.value=t[c];next.done=!1;return next}next.value=r;next.done=!0;return next};return h.next=h}}return{next:doneResult}}t.values=values;function doneResult(){return{value:r,done:!0}}Context.prototype={constructor:Context,reset:function reset(t){this.prev=0;this.next=0;this.sent=this._sent=r;this.done=!1;this.delegate=null;this.method="next";this.arg=r;this.tryEntries.forEach(resetTryEntry);if(!t)for(var o in this)"t"===o.charAt(0)&&l.call(this,o)&&!isNaN(+o.slice(1))&&(this[o]=r)},stop:function stop(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function dispatchException(t){if(this.done)throw t;var o=this;function handle(l,c){h.type="throw";h.arg=t;o.next=l;if(c){o.method="next";o.arg=r}return!!c}for(var c=this.tryEntries.length-1;c>=0;--c){var u=this.tryEntries[c],h=u.completion;if("root"===u.tryLoc)return handle("end");if(u.tryLoc<=this.prev){var d=l.call(u,"catchLoc"),m=l.call(u,"finallyLoc");if(d&&m){if(this.prev<u.catchLoc)return handle(u.catchLoc,!0);if(this.prev<u.finallyLoc)return handle(u.finallyLoc)}else if(d){if(this.prev<u.catchLoc)return handle(u.catchLoc,!0)}else{if(!m)throw new Error("try statement without catch or finally");if(this.prev<u.finallyLoc)return handle(u.finallyLoc)}}}},abrupt:function abrupt(t,r){for(var o=this.tryEntries.length-1;o>=0;--o){var c=this.tryEntries[o];if(c.tryLoc<=this.prev&&l.call(c,"finallyLoc")&&this.prev<c.finallyLoc){var u=c;break}}u&&("break"===t||"continue"===t)&&u.tryLoc<=r&&r<=u.finallyLoc&&(u=null);var h=u?u.completion:{};h.type=t;h.arg=r;if(u){this.method="next";this.next=u.finallyLoc;return S}return this.complete(h)},complete:function complete(t,r){if("throw"===t.type)throw t.arg;if("break"===t.type||"continue"===t.type)this.next=t.arg;else if("return"===t.type){this.rval=this.arg=t.arg;this.method="return";this.next="end"}else"normal"===t.type&&r&&(this.next=r);return S},finish:function finish(t){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.finallyLoc===t){this.complete(o.completion,o.afterLoc);resetTryEntry(o);return S}}},catch:function _catch(t){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc===t){var l=o.completion;if("throw"===l.type){var c=l.arg;resetTryEntry(o)}return c}}throw new Error("illegal catch attempt")},delegateYield:function delegateYield(t,o,l){this.delegate={iterator:values(t),resultName:o,nextLoc:l};"next"===this.method&&(this.arg=r);return S}};return t}("object"===_typeof(t=o.nmd(t))?t.exports:{});try{regeneratorRuntime=l}catch(t){"object"===("undefined"==typeof globalThis?"undefined":_typeof(globalThis))?globalThis.regeneratorRuntime=l:Function("r","regeneratorRuntime = r")(l)}},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.arrayByteLength=arrayByteLength;r.arraysToBytes=function arraysToBytes(t){var r=t.length;if(1===r&&t[0]instanceof Uint8Array)return t[0];for(var o=0,l=0;l<r;l++)o+=arrayByteLength(t[l]);for(var c=0,u=new Uint8Array(o),h=0;h<r;h++){var d=t[h];d instanceof Uint8Array||(d="string"==typeof d?stringToBytes(d):new Uint8Array(d));var m=d.byteLength;u.set(d,c);c+=m}return u};r.assert=assert;r.bytesToString=function bytesToString(t){assert(null!==t&&"object"===_typeof(t)&&void 0!==t.length,"Invalid argument for bytesToString");var r=t.length,o=8192;if(r<o)return String.fromCharCode.apply(null,t);for(var l=[],c=0;c<r;c+=o){var u=Math.min(c+o,r),h=t.subarray(c,u);l.push(String.fromCharCode.apply(null,h))}return l.join("")};r.createObjectURL=function createObjectURL(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",o=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(URL.createObjectURL&&!o)return URL.createObjectURL(new Blob([t],{type:r}));for(var l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",c="data:".concat(r,";base64,"),u=0,h=t.length;u<h;u+=3){var d=255&t[u],m=255&t[u+1],g=255&t[u+2],y=d>>2,v=(3&d)<<4|m>>4,S=u+1<h?(15&m)<<2|g>>6:64,_=u+2<h?63&g:64;c+=l[y]+l[v]+l[S]+l[_]}return c};r.createPromiseCapability=function createPromiseCapability(){var t=Object.create(null),r=!1;Object.defineProperty(t,"settled",{get:function get(){return r}});t.promise=new Promise((function(o,l){t.resolve=function(t){r=!0;o(t)};t.reject=function(t){r=!0;l(t)}}));return t};r.createValidAbsoluteUrl=function createValidAbsoluteUrl(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(!t)return null;try{if(o&&"string"==typeof t){if(o.addDefaultProtocol&&t.startsWith("www.")){var l=t.match(/\./g);l&&l.length>=2&&(t="http://".concat(t))}if(o.tryConvertEncoding)try{t=stringToUTF8String(t)}catch(t){}}var c=r?new URL(t,r):new URL(t);if(_isValidProtocol(c))return c}catch(t){}return null};r.escapeString=function escapeString(t){return t.replace(/([()\\\n\r])/g,(function(t){return"\n"===t?"\\n":"\r"===t?"\\r":"\\".concat(t)}))};r.getModificationDate=function getModificationDate(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Date,r=[t.getUTCFullYear().toString(),(t.getUTCMonth()+1).toString().padStart(2,"0"),t.getUTCDate().toString().padStart(2,"0"),t.getUTCHours().toString().padStart(2,"0"),t.getUTCMinutes().toString().padStart(2,"0"),t.getUTCSeconds().toString().padStart(2,"0")];return r.join("")};r.getVerbosityLevel=function getVerbosityLevel(){return c};r.info=function info(t){c>=l.INFOS&&console.log("Info: ".concat(t))};r.isArrayBuffer=function isArrayBuffer(t){return"object"===_typeof(t)&&null!==t&&void 0!==t.byteLength};r.isArrayEqual=function isArrayEqual(t,r){if(t.length!==r.length)return!1;for(var o=0,l=t.length;o<l;o++)if(t[o]!==r[o])return!1;return!0};r.isAscii=function isAscii(t){return/^[\x00-\x7F]*$/.test(t)};r.isBool=function isBool(t){return"boolean"==typeof t};r.isNum=function isNum(t){return"number"==typeof t};r.isSameOrigin=function isSameOrigin(t,r){var o;try{if(!(o=new URL(t)).origin||"null"===o.origin)return!1}catch(t){return!1}var l=new URL(r,o);return o.origin===l.origin};r.isString=function isString(t){return"string"==typeof t};r.objectFromMap=function objectFromMap(t){var r,o=Object.create(null),l=function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}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 u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}(t);try{for(l.s();!(r=l.n()).done;){var c=(d=r.value,m=2,function _arrayWithHoles(t){if(Array.isArray(t))return t}(d)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(d,m)||_unsupportedIterableToArray(d,m)||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.")}()),u=c[0],h=c[1];o[u]=h}}catch(t){l.e(t)}finally{l.f()}var d,m;return o};r.objectSize=function objectSize(t){return Object.keys(t).length};r.removeNullCharacters=function removeNullCharacters(t){if("string"!=typeof t){warn("The argument for removeNullCharacters must be a string.");return t}return t.replace(_,"")};r.setVerbosityLevel=function setVerbosityLevel(t){Number.isInteger(t)&&(c=t)};r.shadow=shadow;r.string32=function string32(t){return String.fromCharCode(t>>24&255,t>>16&255,t>>8&255,255&t)};r.stringToBytes=stringToBytes;r.stringToPDFString=function stringToPDFString(t){var r=t.length,o=[];if("þ"===t[0]&&"ÿ"===t[1])for(var l=2;l<r;l+=2)o.push(String.fromCharCode(t.charCodeAt(l)<<8|t.charCodeAt(l+1)));else if("ÿ"===t[0]&&"þ"===t[1])for(var c=2;c<r;c+=2)o.push(String.fromCharCode(t.charCodeAt(c+1)<<8|t.charCodeAt(c)));else for(var u=0;u<r;++u){var h=O[t.charCodeAt(u)];o.push(h?String.fromCharCode(h):t.charAt(u))}return o.join("")};r.stringToUTF16BEString=function stringToUTF16BEString(t){for(var r=["þÿ"],o=0,l=t.length;o<l;o++){var c=t.charCodeAt(o);r.push(String.fromCharCode(c>>8&255),String.fromCharCode(255&c))}return r.join("")};r.stringToUTF8String=stringToUTF8String;r.unreachable=unreachable;r.utf8StringToString=function utf8StringToString(t){return unescape(encodeURIComponent(t))};r.warn=warn;r.VerbosityLevel=r.Util=r.UNSUPPORTED_FEATURES=r.UnknownErrorException=r.UnexpectedResponseException=r.TextRenderingMode=r.StreamType=r.RenderingIntentFlag=r.PermissionFlag=r.PasswordResponses=r.PasswordException=r.PageActionEventType=r.OPS=r.MissingPDFException=r.IsLittleEndianCached=r.IsEvalSupportedCached=r.InvalidPDFException=r.ImageKind=r.IDENTITY_MATRIX=r.FormatError=r.FontType=r.FONT_IDENTITY_MATRIX=r.DocumentActionEventType=r.CMapCompressionType=r.BaseException=r.AnnotationType=r.AnnotationStateModelType=r.AnnotationReviewState=r.AnnotationReplyType=r.AnnotationMode=r.AnnotationMarkedState=r.AnnotationFlag=r.AnnotationFieldFlag=r.AnnotationBorderStyleType=r.AnnotationActionEventType=r.AbortException=void 0;o(5);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}r.IDENTITY_MATRIX=[1,0,0,1,0,0];r.FONT_IDENTITY_MATRIX=[.001,0,0,.001,0,0];r.RenderingIntentFlag={ANY:1,DISPLAY:2,PRINT:4,ANNOTATIONS_FORMS:16,ANNOTATIONS_STORAGE:32,ANNOTATIONS_DISABLE:64,OPLIST:256};r.AnnotationMode={DISABLE:0,ENABLE:1,ENABLE_FORMS:2,ENABLE_STORAGE:3};r.PermissionFlag={PRINT:4,MODIFY_CONTENTS:8,COPY:16,MODIFY_ANNOTATIONS:32,FILL_INTERACTIVE_FORMS:256,COPY_FOR_ACCESSIBILITY:512,ASSEMBLE:1024,PRINT_HIGH_QUALITY:2048};r.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};r.ImageKind={GRAYSCALE_1BPP:1,RGB_24BPP:2,RGBA_32BPP:3};r.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};r.AnnotationStateModelType={MARKED:"Marked",REVIEW:"Review"};r.AnnotationMarkedState={MARKED:"Marked",UNMARKED:"Unmarked"};r.AnnotationReviewState={ACCEPTED:"Accepted",REJECTED:"Rejected",CANCELLED:"Cancelled",COMPLETED:"Completed",NONE:"None"};r.AnnotationReplyType={GROUP:"Group",REPLY:"R"};r.AnnotationFlag={INVISIBLE:1,HIDDEN:2,PRINT:4,NOZOOM:8,NOROTATE:16,NOVIEW:32,READONLY:64,LOCKED:128,TOGGLENOVIEW:256,LOCKEDCONTENTS:512};r.AnnotationFieldFlag={READONLY:1,REQUIRED:2,NOEXPORT:4,MULTILINE:4096,PASSWORD:8192,NOTOGGLETOOFF:16384,RADIO:32768,PUSHBUTTON:65536,COMBO:131072,EDIT:262144,SORT:524288,FILESELECT:1048576,MULTISELECT:2097152,DONOTSPELLCHECK:4194304,DONOTSCROLL:8388608,COMB:16777216,RICHTEXT:33554432,RADIOSINUNISON:33554432,COMMITONSELCHANGE:67108864};r.AnnotationBorderStyleType={SOLID:1,DASHED:2,BEVELED:3,INSET:4,UNDERLINE:5};r.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"};r.DocumentActionEventType={WC:"WillClose",WS:"WillSave",DS:"DidSave",WP:"WillPrint",DP:"DidPrint"};r.PageActionEventType={O:"PageOpen",C:"PageClose"};r.StreamType={UNKNOWN:"UNKNOWN",FLATE:"FLATE",LZW:"LZW",DCT:"DCT",JPX:"JPX",JBIG:"JBIG",A85:"A85",AHX:"AHX",CCF:"CCF",RLX:"RLX"};r.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"};var l={ERRORS:0,WARNINGS:1,INFOS:5};r.VerbosityLevel=l;r.CMapCompressionType={NONE:0,BINARY:1,STREAM:2};r.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};r.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"};r.PasswordResponses={NEED_PASSWORD:1,INCORRECT_PASSWORD:2};var c=l.WARNINGS;function warn(t){c>=l.WARNINGS&&console.log("Warning: ".concat(t))}function unreachable(t){throw new Error(t)}function assert(t,r){t||unreachable(r)}function _isValidProtocol(t){if(!t)return!1;switch(t.protocol){case"http:":case"https:":case"ftp:":case"mailto:":case"tel:":return!0;default:return!1}}function shadow(t,r,o){Object.defineProperty(t,r,{value:o,enumerable:!0,configurable:!0,writable:!1});return o}var u=function BaseExceptionClosure(){function BaseException(t,r){this.constructor===BaseException&&unreachable("Cannot initialize BaseException.");this.message=t;this.name=r}BaseException.prototype=new Error;BaseException.constructor=BaseException;return BaseException}();r.BaseException=u;var h=function(t){_inherits(PasswordException,t);var r=_createSuper(PasswordException);function PasswordException(t,o){var l;_classCallCheck(this,PasswordException);(l=r.call(this,t,"PasswordException")).code=o;return l}return PasswordException}(u);r.PasswordException=h;var d=function(t){_inherits(UnknownErrorException,t);var r=_createSuper(UnknownErrorException);function UnknownErrorException(t,o){var l;_classCallCheck(this,UnknownErrorException);(l=r.call(this,t,"UnknownErrorException")).details=o;return l}return UnknownErrorException}(u);r.UnknownErrorException=d;var m=function(t){_inherits(InvalidPDFException,t);var r=_createSuper(InvalidPDFException);function InvalidPDFException(t){_classCallCheck(this,InvalidPDFException);return r.call(this,t,"InvalidPDFException")}return InvalidPDFException}(u);r.InvalidPDFException=m;var g=function(t){_inherits(MissingPDFException,t);var r=_createSuper(MissingPDFException);function MissingPDFException(t){_classCallCheck(this,MissingPDFException);return r.call(this,t,"MissingPDFException")}return MissingPDFException}(u);r.MissingPDFException=g;var y=function(t){_inherits(UnexpectedResponseException,t);var r=_createSuper(UnexpectedResponseException);function UnexpectedResponseException(t,o){var l;_classCallCheck(this,UnexpectedResponseException);(l=r.call(this,t,"UnexpectedResponseException")).status=o;return l}return UnexpectedResponseException}(u);r.UnexpectedResponseException=y;var v=function(t){_inherits(FormatError,t);var r=_createSuper(FormatError);function FormatError(t){_classCallCheck(this,FormatError);return r.call(this,t,"FormatError")}return FormatError}(u);r.FormatError=v;var S=function(t){_inherits(AbortException,t);var r=_createSuper(AbortException);function AbortException(t){_classCallCheck(this,AbortException);return r.call(this,t,"AbortException")}return AbortException}(u);r.AbortException=S;var _=/\x00/g;function stringToBytes(t){assert("string"==typeof t,"Invalid argument for stringToBytes");for(var r=t.length,o=new Uint8Array(r),l=0;l<r;++l)o[l]=255&t.charCodeAt(l);return o}function arrayByteLength(t){if(void 0!==t.length)return t.length;assert(void 0!==t.byteLength,"arrayByteLength - invalid argument.");return t.byteLength}var k={get value(){return shadow(this,"value",function isLittleEndian(){var t=new Uint8Array(4);t[0]=1;return 1===new Uint32Array(t.buffer,0,1)[0]}())}};r.IsLittleEndianCached=k;var C={get value(){return shadow(this,"value",function isEvalSupported(){try{new Function("");return!0}catch(t){return!1}}())}};r.IsEvalSupportedCached=C;var w=function _toConsumableArray(t){return function _arrayWithoutHoles(t){if(Array.isArray(t))return _arrayLikeToArray(t)}(t)||function _iterableToArray(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||_unsupportedIterableToArray(t)||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.")}()}(Array(256).keys()).map((function(t){return t.toString(16).padStart(2,"0")})),x=function(){function Util(){_classCallCheck(this,Util)}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(Util,null,[{key:"makeHexColor",value:function makeHexColor(t,r,o){return"#".concat(w[t]).concat(w[r]).concat(w[o])}},{key:"transform",value:function transform(t,r){return[t[0]*r[0]+t[2]*r[1],t[1]*r[0]+t[3]*r[1],t[0]*r[2]+t[2]*r[3],t[1]*r[2]+t[3]*r[3],t[0]*r[4]+t[2]*r[5]+t[4],t[1]*r[4]+t[3]*r[5]+t[5]]}},{key:"applyTransform",value:function applyTransform(t,r){return[t[0]*r[0]+t[1]*r[2]+r[4],t[0]*r[1]+t[1]*r[3]+r[5]]}},{key:"applyInverseTransform",value:function applyInverseTransform(t,r){var o=r[0]*r[3]-r[1]*r[2];return[(t[0]*r[3]-t[1]*r[2]+r[2]*r[5]-r[4]*r[3])/o,(-t[0]*r[1]+t[1]*r[0]+r[4]*r[1]-r[5]*r[0])/o]}},{key:"getAxialAlignedBoundingBox",value:function getAxialAlignedBoundingBox(t,r){var o=Util.applyTransform(t,r),l=Util.applyTransform(t.slice(2,4),r),c=Util.applyTransform([t[0],t[3]],r),u=Util.applyTransform([t[2],t[1]],r);return[Math.min(o[0],l[0],c[0],u[0]),Math.min(o[1],l[1],c[1],u[1]),Math.max(o[0],l[0],c[0],u[0]),Math.max(o[1],l[1],c[1],u[1])]}},{key:"inverseTransform",value:function inverseTransform(t){var r=t[0]*t[3]-t[1]*t[2];return[t[3]/r,-t[1]/r,-t[2]/r,t[0]/r,(t[2]*t[5]-t[4]*t[3])/r,(t[4]*t[1]-t[5]*t[0])/r]}},{key:"apply3dTransform",value:function apply3dTransform(t,r){return[t[0]*r[0]+t[1]*r[1]+t[2]*r[2],t[3]*r[0]+t[4]*r[1]+t[5]*r[2],t[6]*r[0]+t[7]*r[1]+t[8]*r[2]]}},{key:"singularValueDecompose2dScale",value:function singularValueDecompose2dScale(t){var r=[t[0],t[2],t[1],t[3]],o=t[0]*r[0]+t[1]*r[2],l=t[0]*r[1]+t[1]*r[3],c=t[2]*r[0]+t[3]*r[2],u=t[2]*r[1]+t[3]*r[3],h=(o+u)/2,d=Math.sqrt(Math.pow(o+u,2)-4*(o*u-c*l))/2,m=h+d||1,g=h-d||1;return[Math.sqrt(m),Math.sqrt(g)]}},{key:"normalizeRect",value:function normalizeRect(t){var r=t.slice(0);if(t[0]>t[2]){r[0]=t[2];r[2]=t[0]}if(t[1]>t[3]){r[1]=t[3];r[3]=t[1]}return r}},{key:"intersect",value:function intersect(t,r){function compare(t,r){return t-r}var o=[t[0],t[2],r[0],r[2]].sort(compare),l=[t[1],t[3],r[1],r[3]].sort(compare),c=[];t=Util.normalizeRect(t);r=Util.normalizeRect(r);if(!(o[0]===t[0]&&o[1]===r[0]||o[0]===r[0]&&o[1]===t[0]))return null;c[0]=o[1];c[2]=o[2];if(!(l[0]===t[1]&&l[1]===r[1]||l[0]===r[1]&&l[1]===t[1]))return null;c[1]=l[1];c[3]=l[2];return c}}]);return Util}();r.Util=x;var O=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,728,711,710,729,733,731,730,732,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8226,8224,8225,8230,8212,8211,402,8260,8249,8250,8722,8240,8222,8220,8221,8216,8217,8218,8482,64257,64258,321,338,352,376,381,305,322,339,353,382,0,8364];function stringToUTF8String(t){return decodeURIComponent(escape(t))}},(t,r,o)=>{"use strict";var l=o(6);if("undefined"==typeof globalThis||!globalThis._pdfjsCompatibilityChecked){"undefined"!=typeof globalThis&&globalThis.Math===Math||(globalThis=o(7));globalThis._pdfjsCompatibilityChecked=!0;!function checkNodeBtoa(){!globalThis.btoa&&l.isNodeJS&&(globalThis.btoa=function(t){return Buffer.from(t,"binary").toString("base64")})}();!function checkNodeAtob(){!globalThis.atob&&l.isNodeJS&&(globalThis.atob=function(t){return Buffer.from(t,"base64").toString("binary")})}();!function checkDOMMatrix(){!globalThis.DOMMatrix&&l.isNodeJS&&(globalThis.DOMMatrix=o(60))}();!function checkObjectFromEntries(){Object.fromEntries||o(61)}();!function checkPromise(){globalThis.Promise.allSettled||(globalThis.Promise=o(89))}();!function checkReadableStream(){!globalThis.ReadableStream&&l.isNodeJS&&(globalThis.ReadableStream=o(117).ReadableStream)}()}},(t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.isNodeJS=void 0;function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}var o=!("object"!==("undefined"==typeof process?"undefined":_typeof(process))||process+""!="[object process]"||process.versions.nw||process.versions.electron&&process.type&&"browser"!==process.type);r.isNodeJS=o},(t,r,o)=>{o(8);t.exports=o(10)},(t,r,o)=>{o(9)({global:!0},{globalThis:o(10)})},(t,r,o)=>{var l=o(10),c=o(11).f,u=o(40),h=o(43),d=o(34),m=o(49),g=o(59);t.exports=function(t,r){var o,y,v,S,_,k=t.target,C=t.global,w=t.stat;if(o=C?l:w?l[k]||d(k,{}):(l[k]||{}).prototype)for(y in r){S=r[y];v=t.noTargetGet?(_=c(o,y))&&_.value:o[y];if(!g(C?y:k+(w?".":"#")+y,t.forced)&&void 0!==v){if(typeof S==typeof v)continue;m(S,v)}(t.sham||v&&v.sham)&&u(S,"sham",!0);h(o,y,S,t)}}},t=>{var check=function(t){return t&&t.Math==Math&&t};t.exports=check("object"==typeof globalThis&&globalThis)||check("object"==typeof window&&window)||check("object"==typeof self&&self)||check("object"==typeof global&&global)||function(){return this}()||Function("return this")()},(t,r,o)=>{var l=o(12),c=o(14),u=o(15),h=o(16),d=o(20),m=o(35),g=o(38),y=Object.getOwnPropertyDescriptor;r.f=l?y:function getOwnPropertyDescriptor(t,r){t=h(t);r=d(r);if(g)try{return y(t,r)}catch(t){}if(m(t,r))return u(!c.f.call(t,r),t[r])}},(t,r,o)=>{var l=o(13);t.exports=!l((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},t=>{t.exports=function(t){try{return!!t()}catch(t){return!0}}},(t,r)=>{"use strict";var o={}.propertyIsEnumerable,l=Object.getOwnPropertyDescriptor,c=l&&!o.call({1:2},1);r.f=c?function propertyIsEnumerable(t){var r=l(this,t);return!!r&&r.enumerable}:o},t=>{t.exports=function(t,r){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:r}}},(t,r,o)=>{var l=o(17),c=o(19);t.exports=function(t){return l(c(t))}},(t,r,o)=>{var l=o(13),c=o(18),u="".split;t.exports=l((function(){return!Object("z").propertyIsEnumerable(0)}))?function(t){return"String"==c(t)?u.call(t,""):Object(t)}:Object},t=>{var r={}.toString;t.exports=function(t){return r.call(t).slice(8,-1)}},t=>{t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},(t,r,o)=>{var l=o(21),c=o(23);t.exports=function(t){var r=l(t,"string");return c(r)?r:String(r)}},(t,r,o)=>{var l=o(22),c=o(23),u=o(29),h=o(30)("toPrimitive");t.exports=function(t,r){if(!l(t)||c(t))return t;var o,d=t[h];if(void 0!==d){void 0===r&&(r="default");o=d.call(t,r);if(!l(o)||c(o))return o;throw TypeError("Can't convert object to primitive value")}void 0===r&&(r="number");return u(t,r)}},t=>{t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},(t,r,o)=>{var l=o(24),c=o(25);t.exports=c?function(t){return"symbol"==typeof t}:function(t){var r=l("Symbol");return"function"==typeof r&&Object(t)instanceof r}},(t,r,o)=>{var l=o(10),aFunction=function(t){return"function"==typeof t?t:void 0};t.exports=function(t,r){return arguments.length<2?aFunction(l[t]):l[t]&&l[t][r]}},(t,r,o)=>{var l=o(26);t.exports=l&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},(t,r,o)=>{var l=o(27),c=o(13);t.exports=!!Object.getOwnPropertySymbols&&!c((function(){var t=Symbol();return!String(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&l&&l<41}))},(t,r,o)=>{var l,c,u=o(10),h=o(28),d=u.process,m=u.Deno,g=d&&d.versions||m&&m.version,y=g&&g.v8;y?c=(l=y.split("."))[0]<4?1:l[0]+l[1]:h&&(!(l=h.match(/Edge\/(\d+)/))||l[1]>=74)&&(l=h.match(/Chrome\/(\d+)/))&&(c=l[1]);t.exports=c&&+c},(t,r,o)=>{var l=o(24);t.exports=l("navigator","userAgent")||""},(t,r,o)=>{var l=o(22);t.exports=function(t,r){var o,c;if("string"===r&&"function"==typeof(o=t.toString)&&!l(c=o.call(t)))return c;if("function"==typeof(o=t.valueOf)&&!l(c=o.call(t)))return c;if("string"!==r&&"function"==typeof(o=t.toString)&&!l(c=o.call(t)))return c;throw TypeError("Can't convert object to primitive value")}},(t,r,o)=>{var l=o(10),c=o(31),u=o(35),h=o(37),d=o(26),m=o(25),g=c("wks"),y=l.Symbol,v=m?y:y&&y.withoutSetter||h;t.exports=function(t){u(g,t)&&(d||"string"==typeof g[t])||(d&&u(y,t)?g[t]=y[t]:g[t]=v("Symbol."+t));return g[t]}},(t,r,o)=>{var l=o(32),c=o(33);(t.exports=function(t,r){return c[t]||(c[t]=void 0!==r?r:{})})("versions",[]).push({version:"3.17.3",mode:l?"pure":"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"})},t=>{t.exports=!1},(t,r,o)=>{var l=o(10),c=o(34),u="__core-js_shared__",h=l[u]||c(u,{});t.exports=h},(t,r,o)=>{var l=o(10);t.exports=function(t,r){try{Object.defineProperty(l,t,{value:r,configurable:!0,writable:!0})}catch(o){l[t]=r}return r}},(t,r,o)=>{var l=o(36),c={}.hasOwnProperty;t.exports=Object.hasOwn||function hasOwn(t,r){return c.call(l(t),r)}},(t,r,o)=>{var l=o(19);t.exports=function(t){return Object(l(t))}},t=>{var r=0,o=Math.random();t.exports=function(t){return"Symbol("+String(void 0===t?"":t)+")_"+(++r+o).toString(36)}},(t,r,o)=>{var l=o(12),c=o(13),u=o(39);t.exports=!l&&!c((function(){return 7!=Object.defineProperty(u("div"),"a",{get:function(){return 7}}).a}))},(t,r,o)=>{var l=o(10),c=o(22),u=l.document,h=c(u)&&c(u.createElement);t.exports=function(t){return h?u.createElement(t):{}}},(t,r,o)=>{var l=o(12),c=o(41),u=o(15);t.exports=l?function(t,r,o){return c.f(t,r,u(1,o))}:function(t,r,o){t[r]=o;return t}},(t,r,o)=>{var l=o(12),c=o(38),u=o(42),h=o(20),d=Object.defineProperty;r.f=l?d:function defineProperty(t,r,o){u(t);r=h(r);u(o);if(c)try{return d(t,r,o)}catch(t){}if("get"in o||"set"in o)throw TypeError("Accessors not supported");"value"in o&&(t[r]=o.value);return t}},(t,r,o)=>{var l=o(22);t.exports=function(t){if(!l(t))throw TypeError(String(t)+" is not an object");return t}},(t,r,o)=>{var l=o(10),c=o(40),u=o(35),h=o(34),d=o(44),m=o(45),g=m.get,y=m.enforce,v=String(String).split("String");(t.exports=function(t,r,o,d){var m,g=!!d&&!!d.unsafe,S=!!d&&!!d.enumerable,_=!!d&&!!d.noTargetGet;if("function"==typeof o){"string"!=typeof r||u(o,"name")||c(o,"name",r);(m=y(o)).source||(m.source=v.join("string"==typeof r?r:""))}if(t!==l){g?!_&&t[r]&&(S=!0):delete t[r];S?t[r]=o:c(t,r,o)}else S?t[r]=o:h(r,o)})(Function.prototype,"toString",(function toString(){return"function"==typeof this&&g(this).source||d(this)}))},(t,r,o)=>{var l=o(33),c=Function.toString;"function"!=typeof l.inspectSource&&(l.inspectSource=function(t){return c.call(t)});t.exports=l.inspectSource},(t,r,o)=>{var l,c,u,h=o(46),d=o(10),m=o(22),g=o(40),y=o(35),v=o(33),S=o(47),_=o(48),k="Object already initialized",C=d.WeakMap;if(h||v.state){var w=v.state||(v.state=new C),x=w.get,O=w.has,T=w.set;l=function(t,r){if(O.call(w,t))throw new TypeError(k);r.facade=t;T.call(w,t,r);return r};c=function(t){return x.call(w,t)||{}};u=function(t){return O.call(w,t)}}else{var R=S("state");_[R]=!0;l=function(t,r){if(y(t,R))throw new TypeError(k);r.facade=t;g(t,R,r);return r};c=function(t){return y(t,R)?t[R]:{}};u=function(t){return y(t,R)}}t.exports={set:l,get:c,has:u,enforce:function(t){return u(t)?c(t):l(t,{})},getterFor:function(t){return function(r){var o;if(!m(r)||(o=c(r)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return o}}}},(t,r,o)=>{var l=o(10),c=o(44),u=l.WeakMap;t.exports="function"==typeof u&&/native code/.test(c(u))},(t,r,o)=>{var l=o(31),c=o(37),u=l("keys");t.exports=function(t){return u[t]||(u[t]=c(t))}},t=>{t.exports={}},(t,r,o)=>{var l=o(35),c=o(50),u=o(11),h=o(41);t.exports=function(t,r){for(var o=c(r),d=h.f,m=u.f,g=0;g<o.length;g++){var y=o[g];l(t,y)||d(t,y,m(r,y))}}},(t,r,o)=>{var l=o(24),c=o(51),u=o(58),h=o(42);t.exports=l("Reflect","ownKeys")||function ownKeys(t){var r=c.f(h(t)),o=u.f;return o?r.concat(o(t)):r}},(t,r,o)=>{var l=o(52),c=o(57).concat("length","prototype");r.f=Object.getOwnPropertyNames||function getOwnPropertyNames(t){return l(t,c)}},(t,r,o)=>{var l=o(35),c=o(16),u=o(53).indexOf,h=o(48);t.exports=function(t,r){var o,d=c(t),m=0,g=[];for(o in d)!l(h,o)&&l(d,o)&&g.push(o);for(;r.length>m;)l(d,o=r[m++])&&(~u(g,o)||g.push(o));return g}},(t,r,o)=>{var l=o(16),c=o(54),u=o(56),createMethod=function(t){return function(r,o,h){var d,m=l(r),g=c(m.length),y=u(h,g);if(t&&o!=o){for(;g>y;)if((d=m[y++])!=d)return!0}else for(;g>y;y++)if((t||y in m)&&m[y]===o)return t||y||0;return!t&&-1}};t.exports={includes:createMethod(!0),indexOf:createMethod(!1)}},(t,r,o)=>{var l=o(55),c=Math.min;t.exports=function(t){return t>0?c(l(t),9007199254740991):0}},t=>{var r=Math.ceil,o=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?o:r)(t)}},(t,r,o)=>{var l=o(55),c=Math.max,u=Math.min;t.exports=function(t,r){var o=l(t);return o<0?c(o+r,0):u(o,r)}},t=>{t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},(t,r)=>{r.f=Object.getOwnPropertySymbols},(t,r,o)=>{var l=o(13),c=/#|\.prototype\./,isForced=function(t,r){var o=h[u(t)];return o==m||o!=d&&("function"==typeof r?l(r):!!r)},u=isForced.normalize=function(t){return String(t).replace(c,".").toLowerCase()},h=isForced.data={},d=isForced.NATIVE="N",m=isForced.POLYFILL="P";t.exports=isForced},(t,r,o)=>{"use strict";var l,c,u;function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}u=function(){var t=function CSSMatrix(){for(var t=[],r=arguments.length;r--;)t[r]=arguments[r];this.setIdentity();return t&&t.length&&this.setMatrixValue(t)},r={isIdentity:{configurable:!0},is2D:{configurable:!0}};r.isIdentity.get=function(){var t=this;return 1===t.m11&&0===t.m12&&0===t.m13&&0===t.m14&&0===t.m21&&1===t.m22&&0===t.m23&&0===t.m24&&0===t.m31&&0===t.m32&&1===t.m33&&0===t.m34&&0===t.m41&&0===t.m42&&0===t.m43&&1===t.m44};r.isIdentity.set=function(t){this.isIdentity=t};r.is2D.get=function(){var t=this;return 0===t.m31&&0===t.m32&&1===t.m33&&0===t.m34&&0===t.m43&&1===t.m44};r.is2D.set=function(t){this.is2D=t};Object.defineProperties(t.prototype,r);var o=t.prototype;function Translate(r,o,l){var c=new t;c.m41=r;c.e=r;c.m42=o;c.f=o;c.m43=l;return c}function Rotate(r,o,l){var c=new t,u=r*Math.PI/180,h=o*Math.PI/180,d=l*Math.PI/180,m=Math.cos(u),g=-Math.sin(u),y=Math.cos(h),v=-Math.sin(h),S=Math.cos(d),_=-Math.sin(d),k=y*S,C=-y*_;c.m11=k;c.a=k;c.m12=C;c.b=C;c.m13=v;var w=g*v*S+m*_;c.m21=w;c.c=w;var x=m*S-g*v*_;c.m22=x;c.d=x;c.m23=-g*y;c.m31=g*_-m*v*S;c.m32=g*S+m*v*_;c.m33=m*y;return c}function RotateAxisAngle(r,o,l,c){var u=new t,h=c*Math.PI/360,d=Math.sin(h),m=Math.cos(h),g=d*d,y=Math.sqrt(r*r+o*o+l*l),v=0,S=0,_=1;if(0!==y){v=r/y;S=o/y;_=l/y}var k=v*v,C=S*S,w=_*_,x=1-2*(C+w)*g;u.m11=x;u.a=x;var O=2*(r*o*g+l*d*m);u.m12=O;u.b=O;u.m13=2*(r*l*g-o*d*m);var T=2*(o*r*g-l*d*m);u.m21=T;u.c=T;var R=1-2*(w+k)*g;u.m22=R;u.d=R;u.m23=2*(o*l*g+r*d*m);u.m31=2*(l*r*g+o*d*m);u.m32=2*(l*o*g-r*d*m);u.m33=1-2*(k+C)*g;u.m14=0;u.m24=0;u.m34=0;u.m41=0;u.e=0;u.m42=0;u.f=0;u.m43=0;u.m44=1;return u}function Scale(r,o,l){var c=new t;c.m11=r;c.a=r;c.m22=o;c.d=o;c.m33=l;return c}function SkewX(r){var o=r*Math.PI/180,l=new t,c=Math.tan(o);l.m21=c;l.c=c;return l}function SkewY(r){var o=r*Math.PI/180,l=new t,c=Math.tan(o);l.m12=c;l.b=c;return l}function Multiply(r,o){var l=o.m11*r.m11+o.m12*r.m21+o.m13*r.m31+o.m14*r.m41,c=o.m11*r.m12+o.m12*r.m22+o.m13*r.m32+o.m14*r.m42,u=o.m11*r.m13+o.m12*r.m23+o.m13*r.m33+o.m14*r.m43,h=o.m11*r.m14+o.m12*r.m24+o.m13*r.m34+o.m14*r.m44,d=o.m21*r.m11+o.m22*r.m21+o.m23*r.m31+o.m24*r.m41,m=o.m21*r.m12+o.m22*r.m22+o.m23*r.m32+o.m24*r.m42,g=o.m21*r.m13+o.m22*r.m23+o.m23*r.m33+o.m24*r.m43,y=o.m21*r.m14+o.m22*r.m24+o.m23*r.m34+o.m24*r.m44,v=o.m31*r.m11+o.m32*r.m21+o.m33*r.m31+o.m34*r.m41,S=o.m31*r.m12+o.m32*r.m22+o.m33*r.m32+o.m34*r.m42,_=o.m31*r.m13+o.m32*r.m23+o.m33*r.m33+o.m34*r.m43,k=o.m31*r.m14+o.m32*r.m24+o.m33*r.m34+o.m34*r.m44,C=o.m41*r.m11+o.m42*r.m21+o.m43*r.m31+o.m44*r.m41,w=o.m41*r.m12+o.m42*r.m22+o.m43*r.m32+o.m44*r.m42,x=o.m41*r.m13+o.m42*r.m23+o.m43*r.m33+o.m44*r.m43,O=o.m41*r.m14+o.m42*r.m24+o.m43*r.m34+o.m44*r.m44;return new t([l,d,v,C,c,m,S,w,u,g,_,x,h,y,k,O])}function feedFromArray(t,r){var o=Array.from(r);if(16===o.length){var l=o[0],c=o[1],u=o[2],h=o[3],d=o[4],m=o[5],g=o[6],y=o[7],v=o[8],S=o[9],_=o[10],k=o[11],C=o[12],w=o[13],x=o[14],O=o[15];t.m11=l;t.a=l;t.m21=c;t.c=c;t.m31=u;t.m41=h;t.e=h;t.m12=d;t.b=d;t.m22=m;t.d=m;t.m32=g;t.m42=y;t.f=y;t.m13=v;t.m23=S;t.m33=_;t.m43=k;t.m14=C;t.m24=w;t.m34=x;t.m44=O}else{if(6!==o.length)throw new TypeError("CSSMatrix: expecting a 6/16 values Array");var T=o[0],R=o[1],E=o[2],M=o[3],D=o[4],j=o[5];t.m11=T;t.a=T;t.m12=R;t.b=R;t.m21=E;t.c=E;t.m22=M;t.d=M;t.m14=D;t.e=D;t.m24=j;t.f=j}return t}o.setMatrixValue=function setMatrixValue(r){var o=this;if(!r||!r.length)return o;if(r.length&&"string"==typeof r[0]&&r[0].length){var l,c,u=String(r[0]).trim();if("none"===u)return o;l=u.slice(0,u.indexOf("("));c=u.slice("matrix"===l?7:9,-1).split(",").map((function(t){return Math.abs(t)<1e-6?0:+t}));if(!([6,16].indexOf(c.length)>-1))throw new TypeError("CSSMatrix: expecting valid CSS matrix() / matrix3d() syntax");feedFromArray(o,c)}else r[0]instanceof t?feedFromArray(o,r[0].toArray()):Array.isArray(r[0])?feedFromArray(o,r[0]):Array.isArray(r)&&feedFromArray(o,r);return o};o.toString=function toString(){return(this.is2D?"matrix":"matrix3d")+"("+this.toArray(1).join(",")+")"};o.toArray=function toArray(t){var r=this;return r.is2D?[r.a,r.b,r.c,r.d,r.e,r.f]:t?[r.m11,r.m12,r.m13,r.m14,r.m21,r.m22,r.m23,r.m24,r.m31,r.m32,r.m33,r.m34,r.m41,r.m42,r.m43,r.m44]:[r.m11,r.m21,r.m31,r.m41,r.m12,r.m22,r.m32,r.m42,r.m13,r.m23,r.m33,r.m43,r.m14,r.m24,r.m34,r.m44]};o.multiply=function multiply(t){return Multiply(this,t)};o.translate=function translate(t,r,o){var l=r,c=o;null==c&&(c=0);null==l&&(l=0);return Multiply(this,Translate(t,l,c))};o.scale=function scale(t,r,o){var l=r,c=o;null==l&&(l=t);null==c&&(c=t);return Multiply(this,Scale(t,l,c))};o.rotate=function rotate(t,r,o){var l=t,c=r,u=o;null==c&&(c=0);if(null==u){u=l;l=0}return Multiply(this,Rotate(l,c,u))};o.rotateAxisAngle=function rotateAxisAngle(t,r,o,l){if(4!==arguments.length)throw new TypeError("CSSMatrix: expecting 4 values");return Multiply(this,RotateAxisAngle(t,r,o,l))};o.skewX=function skewX(t){return Multiply(this,SkewX(t))};o.skewY=function skewY(t){return Multiply(this,SkewY(t))};o.setIdentity=function setIdentity(){return feedFromArray(this,[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])};o.transformPoint=function transformPoint(t){var r=Translate(t.x,t.y,t.z);r.m44=t.w||1;return{x:(r=this.multiply(r)).m41,y:r.m42,z:r.m43,w:r.m44}};o.transform=function transform(t){var r=this,o=r.m11*t.x+r.m12*t.y+r.m13*t.z+r.m14*t.w,l=r.m21*t.x+r.m22*t.y+r.m23*t.z+r.m24*t.w,c=r.m31*t.x+r.m32*t.y+r.m33*t.z+r.m34*t.w,u=r.m41*t.x+r.m42*t.y+r.m43*t.z+r.m44*t.w;return{x:o/u,y:l/u,z:c/u,w:u}};t.Translate=Translate;t.Rotate=Rotate;t.RotateAxisAngle=RotateAxisAngle;t.Scale=Scale;t.SkewX=SkewX;t.SkewY=SkewY;t.Multiply=Multiply;t.fromMatrix=function fromMatrix(r){return new t([r.m11,r.m21,r.m31,r.m41,r.m12,r.m22,r.m32,r.m42,r.m13,r.m23,r.m33,r.m43,r.m14,r.m24,r.m34,r.m44])};t.fromArray=function fromArray(r){return feedFromArray(new t,r)};t.feedFromArray=feedFromArray;return t},"object"===_typeof(r)?t.exports=u():void 0!==(c="function"==typeof(l=u)?l.call(r,o,r,t):l)&&(t.exports=c)},(t,r,o)=>{o(62);o(77);var l=o(88);t.exports=l.Object.fromEntries},(t,r,o)=>{"use strict";var l=o(16),c=o(63),u=o(68),h=o(45),d=o(69),m="Array Iterator",g=h.set,y=h.getterFor(m);t.exports=d(Array,"Array",(function(t,r){g(this,{type:m,target:l(t),index:0,kind:r})}),(function(){var t=y(this),r=t.target,o=t.kind,l=t.index++;if(!r||l>=r.length){t.target=void 0;return{value:void 0,done:!0}}return"keys"==o?{value:l,done:!1}:"values"==o?{value:r[l],done:!1}:{value:[l,r[l]],done:!1}}),"values");u.Arguments=u.Array;c("keys");c("values");c("entries")},(t,r,o)=>{var l=o(30),c=o(64),u=o(41),h=l("unscopables"),d=Array.prototype;null==d[h]&&u.f(d,h,{configurable:!0,value:c(null)});t.exports=function(t){d[h][t]=!0}},(t,r,o)=>{var l,c=o(42),u=o(65),h=o(57),d=o(48),m=o(67),g=o(39),y=o(47),v=y("IE_PROTO"),EmptyConstructor=function(){},scriptTag=function(t){return"<script>"+t+"</"+"script>"},NullProtoObjectViaActiveX=function(t){t.write(scriptTag(""));t.close();var r=t.parentWindow.Object;t=null;return r},NullProtoObject=function(){try{l=new ActiveXObject("htmlfile")}catch(t){}NullProtoObject="undefined"!=typeof document?document.domain&&l?NullProtoObjectViaActiveX(l):function(){var t,r=g("iframe");r.style.display="none";m.appendChild(r);r.src=String("javascript:");(t=r.contentWindow.document).open();t.write(scriptTag("document.F=Object"));t.close();return t.F}():NullProtoObjectViaActiveX(l);for(var t=h.length;t--;)delete NullProtoObject.prototype[h[t]];return NullProtoObject()};d[v]=!0;t.exports=Object.create||function create(t,r){var o;if(null!==t){EmptyConstructor.prototype=c(t);o=new EmptyConstructor;EmptyConstructor.prototype=null;o[v]=t}else o=NullProtoObject();return void 0===r?o:u(o,r)}},(t,r,o)=>{var l=o(12),c=o(41),u=o(42),h=o(66);t.exports=l?Object.defineProperties:function defineProperties(t,r){u(t);for(var o,l=h(r),d=l.length,m=0;d>m;)c.f(t,o=l[m++],r[o]);return t}},(t,r,o)=>{var l=o(52),c=o(57);t.exports=Object.keys||function keys(t){return l(t,c)}},(t,r,o)=>{var l=o(24);t.exports=l("document","documentElement")},t=>{t.exports={}},(t,r,o)=>{"use strict";var l=o(9),c=o(70),u=o(72),h=o(75),d=o(74),m=o(40),g=o(43),y=o(30),v=o(32),S=o(68),_=o(71),k=_.IteratorPrototype,C=_.BUGGY_SAFARI_ITERATORS,w=y("iterator"),x="keys",O="values",T="entries",returnThis=function(){return this};t.exports=function(t,r,o,y,_,R,E){c(o,r,y);var M,D,j,getIterationMethod=function(t){if(t===_&&W)return W;if(!C&&t in U)return U[t];switch(t){case x:return function keys(){return new o(this,t)};case O:return function values(){return new o(this,t)};case T:return function entries(){return new o(this,t)}}return function(){return new o(this)}},L=r+" Iterator",N=!1,U=t.prototype,H=U[w]||U["@@iterator"]||_&&U[_],W=!C&&H||getIterationMethod(_),$="Array"==r&&U.entries||H;if($&&(M=u($.call(new t)))!==Object.prototype&&M.next){v||u(M)===k||(h?h(M,k):"function"!=typeof M[w]&&m(M,w,returnThis));d(M,L,!0,!0);v&&(S[L]=returnThis)}if(_==O&&H&&H.name!==O){N=!0;W=function values(){return H.call(this)}}v&&!E||U[w]===W||m(U,w,W);S[r]=W;if(_){D={values:getIterationMethod(O),keys:R?W:getIterationMethod(x),entries:getIterationMethod(T)};if(E)for(j in D)(C||N||!(j in U))&&g(U,j,D[j]);else l({target:r,proto:!0,forced:C||N},D)}return D}},(t,r,o)=>{"use strict";var l=o(71).IteratorPrototype,c=o(64),u=o(15),h=o(74),d=o(68),returnThis=function(){return this};t.exports=function(t,r,o){var m=r+" Iterator";t.prototype=c(l,{next:u(1,o)});h(t,m,!1,!0);d[m]=returnThis;return t}},(t,r,o)=>{"use strict";var l,c,u,h=o(13),d=o(64),m=o(72),g=o(40),y=o(30),v=o(32),S=y("iterator"),_=!1;[].keys&&("next"in(u=[].keys())?(c=m(m(u)))!==Object.prototype&&(l=c):_=!0);null==l||h((function(){var t={};return l[S].call(t)!==t}))?l={}:v&&(l=d(l));"function"!=typeof l[S]&&g(l,S,(function(){return this}));t.exports={IteratorPrototype:l,BUGGY_SAFARI_ITERATORS:_}},(t,r,o)=>{var l=o(35),c=o(36),u=o(47),h=o(73),d=u("IE_PROTO"),m=Object.prototype;t.exports=h?Object.getPrototypeOf:function(t){t=c(t);return l(t,d)?t[d]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?m:null}},(t,r,o)=>{var l=o(13);t.exports=!l((function(){function F(){}F.prototype.constructor=null;return Object.getPrototypeOf(new F)!==F.prototype}))},(t,r,o)=>{var l=o(41).f,c=o(35),u=o(30)("toStringTag");t.exports=function(t,r,o){t&&!c(t=o?t:t.prototype,u)&&l(t,u,{configurable:!0,value:r})}},(t,r,o)=>{var l=o(42),c=o(76);t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,r=!1,o={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(o,[]);r=o instanceof Array}catch(t){}return function setPrototypeOf(o,u){l(o);c(u);r?t.call(o,u):o.__proto__=u;return o}}():void 0)},(t,r,o)=>{var l=o(22);t.exports=function(t){if(!l(t)&&null!==t)throw TypeError("Can't set "+String(t)+" as a prototype");return t}},(t,r,o)=>{var l=o(9),c=o(78),u=o(87);l({target:"Object",stat:!0},{fromEntries:function fromEntries(t){var r={};c(t,(function(t,o){u(r,t,o)}),{AS_ENTRIES:!0});return r}})},(t,r,o)=>{var l=o(42),c=o(79),u=o(54),h=o(80),d=o(82),m=o(83),g=o(86),Result=function(t,r){this.stopped=t;this.result=r};t.exports=function(t,r,o){var y,v,S,_,k,C,w,x=o&&o.that,O=!(!o||!o.AS_ENTRIES),T=!(!o||!o.IS_ITERATOR),R=!(!o||!o.INTERRUPTED),E=h(r,x,1+O+R),stop=function(t){y&&g(y,"normal",t);return new Result(!0,t)},callFn=function(t){if(O){l(t);return R?E(t[0],t[1],stop):E(t[0],t[1])}return R?E(t,stop):E(t)};if(T)y=t;else{if("function"!=typeof(v=m(t)))throw TypeError("Target is not iterable");if(c(v)){for(S=0,_=u(t.length);_>S;S++)if((k=callFn(t[S]))&&k instanceof Result)return k;return new Result(!1)}y=d(t,v)}C=y.next;for(;!(w=C.call(y)).done;){try{k=callFn(w.value)}catch(t){g(y,"throw",t)}if("object"==typeof k&&k&&k instanceof Result)return k}return new Result(!1)}},(t,r,o)=>{var l=o(30),c=o(68),u=l("iterator"),h=Array.prototype;t.exports=function(t){return void 0!==t&&(c.Array===t||h[u]===t)}},(t,r,o)=>{var l=o(81);t.exports=function(t,r,o){l(t);if(void 0===r)return t;switch(o){case 0:return function(){return t.call(r)};case 1:return function(o){return t.call(r,o)};case 2:return function(o,l){return t.call(r,o,l)};case 3:return function(o,l,c){return t.call(r,o,l,c)}}return function(){return t.apply(r,arguments)}}},t=>{t.exports=function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not a function");return t}},(t,r,o)=>{var l=o(42),c=o(83);t.exports=function(t,r){var o=arguments.length<2?c(t):r;if("function"!=typeof o)throw TypeError(String(t)+" is not iterable");return l(o.call(t))}},(t,r,o)=>{var l=o(84),c=o(68),u=o(30)("iterator");t.exports=function(t){if(null!=t)return t[u]||t["@@iterator"]||c[l(t)]}},(t,r,o)=>{var l=o(85),c=o(18),u=o(30)("toStringTag"),h="Arguments"==c(function(){return arguments}());t.exports=l?c:function(t){var r,o,l;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(o=function(t,r){try{return t[r]}catch(t){}}(r=Object(t),u))?o:h?c(r):"Object"==(l=c(r))&&"function"==typeof r.callee?"Arguments":l}},(t,r,o)=>{var l={};l[o(30)("toStringTag")]="z";t.exports="[object z]"===String(l)},(t,r,o)=>{var l=o(42);t.exports=function(t,r,o){var c,u;l(t);try{if(void 0===(c=t.return)){if("throw"===r)throw o;return o}c=c.call(t)}catch(t){u=!0;c=t}if("throw"===r)throw o;if(u)throw c;l(c);return o}},(t,r,o)=>{"use strict";var l=o(20),c=o(41),u=o(15);t.exports=function(t,r,o){var h=l(r);h in t?c.f(t,h,u(0,o)):t[h]=o}},(t,r,o)=>{var l=o(10);t.exports=l},(t,r,o)=>{o(90);o(62);o(92);o(94);o(112);o(113);o(114);o(115);var l=o(88);t.exports=l.Promise},(t,r,o)=>{"use strict";var l=o(9),c=o(72),u=o(75),h=o(64),d=o(40),m=o(15),g=o(78),y=o(91),v=function AggregateError(t,r){var o=this;if(!(o instanceof v))return new v(t,r);u&&(o=u(new Error(void 0),c(o)));void 0!==r&&d(o,"message",y(r));var l=[];g(t,l.push,{that:l});d(o,"errors",l);return o};v.prototype=h(Error.prototype,{constructor:m(5,v),message:m(5,""),name:m(5,"AggregateError")});l({global:!0},{AggregateError:v})},(t,r,o)=>{var l=o(23);t.exports=function(t){if(l(t))throw TypeError("Cannot convert a Symbol value to a string");return String(t)}},(t,r,o)=>{var l=o(85),c=o(43),u=o(93);l||c(Object.prototype,"toString",u,{unsafe:!0})},(t,r,o)=>{"use strict";var l=o(85),c=o(84);t.exports=l?{}.toString:function toString(){return"[object "+c(this)+"]"}},(t,r,o)=>{"use strict";var l,c,u,h,d=o(9),m=o(32),g=o(10),y=o(24),v=o(95),S=o(43),_=o(96),k=o(75),C=o(74),w=o(97),x=o(22),O=o(81),T=o(98),R=o(44),E=o(78),M=o(99),D=o(100),j=o(101).set,L=o(104),N=o(107),U=o(109),H=o(108),W=o(110),$=o(45),q=o(59),X=o(30),z=o(111),G=o(103),V=o(27),Y=X("species"),K="Promise",J=$.get,Q=$.set,Z=$.getterFor(K),ee=v&&v.prototype,te=v,re=ee,ae=g.TypeError,ne=g.document,ie=g.process,oe=H.f,se=oe,le=!!(ne&&ne.createEvent&&g.dispatchEvent),ce="function"==typeof PromiseRejectionEvent,ue="unhandledrejection",fe=!1,he=q(K,(function(){var t=R(te),r=t!==String(te);if(!r&&66===V)return!0;if(m&&!re.finally)return!0;if(V>=51&&/native code/.test(t))return!1;var o=new te((function(t){t(1)})),FakePromise=function(t){t((function(){}),(function(){}))};(o.constructor={})[Y]=FakePromise;return!(fe=o.then((function(){}))instanceof FakePromise)||!r&&z&&!ce})),de=he||!M((function(t){te.all(t).catch((function(){}))})),isThenable=function(t){var r;return!(!x(t)||"function"!=typeof(r=t.then))&&r},notify=function(t,r){if(!t.notified){t.notified=!0;var o=t.reactions;L((function(){for(var l=t.value,c=1==t.state,u=0;o.length>u;){var h,d,m,g=o[u++],y=c?g.ok:g.fail,v=g.resolve,S=g.reject,_=g.domain;try{if(y){if(!c){2===t.rejection&&onHandleUnhandled(t);t.rejection=1}if(!0===y)h=l;else{_&&_.enter();h=y(l);if(_){_.exit();m=!0}}h===g.promise?S(ae("Promise-chain cycle")):(d=isThenable(h))?d.call(h,v,S):v(h)}else S(l)}catch(t){_&&!m&&_.exit();S(t)}}t.reactions=[];t.notified=!1;r&&!t.rejection&&onUnhandled(t)}))}},dispatchEvent=function(t,r,o){var l,c;if(le){(l=ne.createEvent("Event")).promise=r;l.reason=o;l.initEvent(t,!1,!0);g.dispatchEvent(l)}else l={promise:r,reason:o};!ce&&(c=g["on"+t])?c(l):t===ue&&U("Unhandled promise rejection",o)},onUnhandled=function(t){j.call(g,(function(){var r,o=t.facade,l=t.value;if(isUnhandled(t)){r=W((function(){G?ie.emit("unhandledRejection",l,o):dispatchEvent(ue,o,l)}));t.rejection=G||isUnhandled(t)?2:1;if(r.error)throw r.value}}))},isUnhandled=function(t){return 1!==t.rejection&&!t.parent},onHandleUnhandled=function(t){j.call(g,(function(){var r=t.facade;G?ie.emit("rejectionHandled",r):dispatchEvent("rejectionhandled",r,t.value)}))},bind=function(t,r,o){return function(l){t(r,l,o)}},internalReject=function(t,r,o){if(!t.done){t.done=!0;o&&(t=o);t.value=r;t.state=2;notify(t,!0)}},internalResolve=function(t,r,o){if(!t.done){t.done=!0;o&&(t=o);try{if(t.facade===r)throw ae("Promise can't be resolved itself");var l=isThenable(r);if(l)L((function(){var o={done:!1};try{l.call(r,bind(internalResolve,o,t),bind(internalReject,o,t))}catch(r){internalReject(o,r,t)}}));else{t.value=r;t.state=1;notify(t,!1)}}catch(r){internalReject({done:!1},r,t)}}};if(he){re=(te=function Promise(t){T(this,te,K);O(t);l.call(this);var r=J(this);try{t(bind(internalResolve,r),bind(internalReject,r))}catch(t){internalReject(r,t)}}).prototype;(l=function Promise(t){Q(this,{type:K,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=_(re,{then:function then(t,r){var o=Z(this),l=oe(D(this,te));l.ok="function"!=typeof t||t;l.fail="function"==typeof r&&r;l.domain=G?ie.domain:void 0;o.parent=!0;o.reactions.push(l);0!=o.state&&notify(o,!1);return l.promise},catch:function(t){return this.then(void 0,t)}});c=function(){var t=new l,r=J(t);this.promise=t;this.resolve=bind(internalResolve,r);this.reject=bind(internalReject,r)};H.f=oe=function(t){return t===te||t===u?new c(t):se(t)};if(!m&&"function"==typeof v&&ee!==Object.prototype){h=ee.then;if(!fe){S(ee,"then",(function then(t,r){var o=this;return new te((function(t,r){h.call(o,t,r)})).then(t,r)}),{unsafe:!0});S(ee,"catch",re.catch,{unsafe:!0})}try{delete ee.constructor}catch(t){}k&&k(ee,re)}}d({global:!0,wrap:!0,forced:he},{Promise:te});C(te,K,!1,!0);w(K);u=y(K);d({target:K,stat:!0,forced:he},{reject:function reject(t){var r=oe(this);r.reject.call(void 0,t);return r.promise}});d({target:K,stat:!0,forced:m||he},{resolve:function resolve(t){return N(m&&this===u?te:this,t)}});d({target:K,stat:!0,forced:de},{all:function all(t){var r=this,o=oe(r),l=o.resolve,c=o.reject,u=W((function(){var o=O(r.resolve),u=[],h=0,d=1;E(t,(function(t){var m=h++,g=!1;u.push(void 0);d++;o.call(r,t).then((function(t){if(!g){g=!0;u[m]=t;--d||l(u)}}),c)}));--d||l(u)}));u.error&&c(u.value);return o.promise},race:function race(t){var r=this,o=oe(r),l=o.reject,c=W((function(){var c=O(r.resolve);E(t,(function(t){c.call(r,t).then(o.resolve,l)}))}));c.error&&l(c.value);return o.promise}})},(t,r,o)=>{var l=o(10);t.exports=l.Promise},(t,r,o)=>{var l=o(43);t.exports=function(t,r,o){for(var c in r)l(t,c,r[c],o);return t}},(t,r,o)=>{"use strict";var l=o(24),c=o(41),u=o(30),h=o(12),d=u("species");t.exports=function(t){var r=l(t),o=c.f;h&&r&&!r[d]&&o(r,d,{configurable:!0,get:function(){return this}})}},t=>{t.exports=function(t,r,o){if(!(t instanceof r))throw TypeError("Incorrect "+(o?o+" ":"")+"invocation");return t}},(t,r,o)=>{var l=o(30)("iterator"),c=!1;try{var u=0,h={next:function(){return{done:!!u++}},return:function(){c=!0}};h[l]=function(){return this};Array.from(h,(function(){throw 2}))}catch(t){}t.exports=function(t,r){if(!r&&!c)return!1;var o=!1;try{var u={};u[l]=function(){return{next:function(){return{done:o=!0}}}};t(u)}catch(t){}return o}},(t,r,o)=>{var l=o(42),c=o(81),u=o(30)("species");t.exports=function(t,r){var o,h=l(t).constructor;return void 0===h||null==(o=l(h)[u])?r:c(o)}},(t,r,o)=>{var l,c,u,h,d=o(10),m=o(13),g=o(80),y=o(67),v=o(39),S=o(102),_=o(103),k=d.setImmediate,C=d.clearImmediate,w=d.process,x=d.MessageChannel,O=d.Dispatch,T=0,R={},E="onreadystatechange";try{l=d.location}catch(t){}var run=function(t){if(R.hasOwnProperty(t)){var r=R[t];delete R[t];r()}},runner=function(t){return function(){run(t)}},listener=function(t){run(t.data)},post=function(t){d.postMessage(String(t),l.protocol+"//"+l.host)};if(!k||!C){k=function setImmediate(t){for(var r=[],o=arguments.length,l=1;o>l;)r.push(arguments[l++]);R[++T]=function(){("function"==typeof t?t:Function(t)).apply(void 0,r)};c(T);return T};C=function clearImmediate(t){delete R[t]};if(_)c=function(t){w.nextTick(runner(t))};else if(O&&O.now)c=function(t){O.now(runner(t))};else if(x&&!S){h=(u=new x).port2;u.port1.onmessage=listener;c=g(h.postMessage,h,1)}else if(d.addEventListener&&"function"==typeof postMessage&&!d.importScripts&&l&&"file:"!==l.protocol&&!m(post)){c=post;d.addEventListener("message",listener,!1)}else c=E in v("script")?function(t){y.appendChild(v("script")).onreadystatechange=function(){y.removeChild(this);run(t)}}:function(t){setTimeout(runner(t),0)}}t.exports={set:k,clear:C}},(t,r,o)=>{var l=o(28);t.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(l)},(t,r,o)=>{var l=o(18),c=o(10);t.exports="process"==l(c.process)},(t,r,o)=>{var l,c,u,h,d,m,g,y,v=o(10),S=o(11).f,_=o(101).set,k=o(102),C=o(105),w=o(106),x=o(103),O=v.MutationObserver||v.WebKitMutationObserver,T=v.document,R=v.process,E=v.Promise,M=S(v,"queueMicrotask"),D=M&&M.value;if(!D){l=function(){var t,r;x&&(t=R.domain)&&t.exit();for(;c;){r=c.fn;c=c.next;try{r()}catch(t){c?h():u=void 0;throw t}}u=void 0;t&&t.enter()};if(k||x||w||!O||!T)if(!C&&E&&E.resolve){(g=E.resolve(void 0)).constructor=E;y=g.then;h=function(){y.call(g,l)}}else h=x?function(){R.nextTick(l)}:function(){_.call(v,l)};else{d=!0;m=T.createTextNode("");new O(l).observe(m,{characterData:!0});h=function(){m.data=d=!d}}}t.exports=D||function(t){var r={fn:t,next:void 0};u&&(u.next=r);if(!c){c=r;h()}u=r}},(t,r,o)=>{var l=o(28),c=o(10);t.exports=/ipad|iphone|ipod/i.test(l)&&void 0!==c.Pebble},(t,r,o)=>{var l=o(28);t.exports=/web0s(?!.*chrome)/i.test(l)},(t,r,o)=>{var l=o(42),c=o(22),u=o(108);t.exports=function(t,r){l(t);if(c(r)&&r.constructor===t)return r;var o=u.f(t);(0,o.resolve)(r);return o.promise}},(t,r,o)=>{"use strict";var l=o(81),PromiseCapability=function(t){var r,o;this.promise=new t((function(t,l){if(void 0!==r||void 0!==o)throw TypeError("Bad Promise constructor");r=t;o=l}));this.resolve=l(r);this.reject=l(o)};t.exports.f=function(t){return new PromiseCapability(t)}},(t,r,o)=>{var l=o(10);t.exports=function(t,r){var o=l.console;o&&o.error&&(1===arguments.length?o.error(t):o.error(t,r))}},t=>{t.exports=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}}},t=>{t.exports="object"==typeof window},(t,r,o)=>{"use strict";var l=o(9),c=o(81),u=o(108),h=o(110),d=o(78);l({target:"Promise",stat:!0},{allSettled:function allSettled(t){var r=this,o=u.f(r),l=o.resolve,m=o.reject,g=h((function(){var o=c(r.resolve),u=[],h=0,m=1;d(t,(function(t){var c=h++,d=!1;u.push(void 0);m++;o.call(r,t).then((function(t){if(!d){d=!0;u[c]={status:"fulfilled",value:t};--m||l(u)}}),(function(t){if(!d){d=!0;u[c]={status:"rejected",reason:t};--m||l(u)}}))}));--m||l(u)}));g.error&&m(g.value);return o.promise}})},(t,r,o)=>{"use strict";var l=o(9),c=o(81),u=o(24),h=o(108),d=o(110),m=o(78),g="No one promise resolved";l({target:"Promise",stat:!0},{any:function any(t){var r=this,o=h.f(r),l=o.resolve,y=o.reject,v=d((function(){var o=c(r.resolve),h=[],d=0,v=1,S=!1;m(t,(function(t){var c=d++,m=!1;h.push(void 0);v++;o.call(r,t).then((function(t){if(!m&&!S){S=!0;l(t)}}),(function(t){if(!m&&!S){m=!0;h[c]=t;--v||y(new(u("AggregateError"))(h,g))}}))}));--v||y(new(u("AggregateError"))(h,g))}));v.error&&y(v.value);return o.promise}})},(t,r,o)=>{"use strict";var l=o(9),c=o(32),u=o(95),h=o(13),d=o(24),m=o(100),g=o(107),y=o(43);l({target:"Promise",proto:!0,real:!0,forced:!!u&&h((function(){u.prototype.finally.call({then:function(){}},(function(){}))}))},{finally:function(t){var r=m(this,d("Promise")),o="function"==typeof t;return this.then(o?function(o){return g(r,t()).then((function(){return o}))}:t,o?function(o){return g(r,t()).then((function(){throw o}))}:t)}});if(!c&&"function"==typeof u){var v=d("Promise").prototype.finally;u.prototype.finally!==v&&y(u.prototype,"finally",v,{unsafe:!0})}},(t,r,o)=>{"use strict";var l=o(116).charAt,c=o(91),u=o(45),h=o(69),d="String Iterator",m=u.set,g=u.getterFor(d);h(String,"String",(function(t){m(this,{type:d,string:c(t),index:0})}),(function next(){var t,r=g(this),o=r.string,c=r.index;if(c>=o.length)return{value:void 0,done:!0};t=l(o,c);r.index+=t.length;return{value:t,done:!1}}))},(t,r,o)=>{var l=o(55),c=o(91),u=o(19),createMethod=function(t){return function(r,o){var h,d,m=c(u(r)),g=l(o),y=m.length;return g<0||g>=y?t?"":void 0:(h=m.charCodeAt(g))<55296||h>56319||g+1===y||(d=m.charCodeAt(g+1))<56320||d>57343?t?m.charAt(g):h:t?m.slice(g,g+2):d-56320+(h-55296<<10)+65536}};t.exports={codeAt:createMethod(!1),charAt:createMethod(!0)}},function(t,r){o=function(t){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?Symbol:function(t){return"Symbol("+t+")"};function noop(){}var o=function getGlobals(){return"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:void 0}();function typeIsObject(t){return"object"==typeof t&&null!==t||"function"==typeof t}var l=noop,c=Promise,u=Promise.prototype.then,h=Promise.resolve.bind(c),d=Promise.reject.bind(c);function newPromise(t){return new c(t)}function promiseResolvedWith(t){return h(t)}function promiseRejectedWith(t){return d(t)}function PerformPromiseThen(t,r,o){return u.call(t,r,o)}function uponPromise(t,r,o){PerformPromiseThen(PerformPromiseThen(t,r,o),void 0,l)}function uponFulfillment(t,r){uponPromise(t,r)}function uponRejection(t,r){uponPromise(t,void 0,r)}function transformPromiseWith(t,r,o){return PerformPromiseThen(t,r,o)}function setPromiseIsHandledToTrue(t){PerformPromiseThen(t,void 0,l)}var m=function(){var t=o&&o.queueMicrotask;if("function"==typeof t)return t;var r=promiseResolvedWith(void 0);return function(t){return PerformPromiseThen(r,t)}}();function reflectCall(t,r,o){if("function"!=typeof t)throw new TypeError("Argument is not a function");return Function.prototype.apply.call(t,r,o)}function promiseCall(t,r,o){try{return promiseResolvedWith(reflectCall(t,r,o))}catch(t){return promiseRejectedWith(t)}}var g=function(){function SimpleQueue(){this._cursor=0;this._size=0;this._front={_elements:[],_next:void 0};this._back=this._front;this._cursor=0;this._size=0}Object.defineProperty(SimpleQueue.prototype,"length",{get:function(){return this._size},enumerable:!1,configurable:!0});SimpleQueue.prototype.push=function(t){var r=this._back,o=r;16383===r._elements.length&&(o={_elements:[],_next:void 0});r._elements.push(t);if(o!==r){this._back=o;r._next=o}++this._size};SimpleQueue.prototype.shift=function(){var t=this._front,r=t,o=this._cursor,l=o+1,c=t._elements,u=c[o];if(16384===l){r=t._next;l=0}--this._size;this._cursor=l;t!==r&&(this._front=r);c[o]=void 0;return u};SimpleQueue.prototype.forEach=function(t){for(var r=this._cursor,o=this._front,l=o._elements;r!==l.length||void 0!==o._next;){if(r===l.length){r=0;if(0===(l=(o=o._next)._elements).length)break}t(l[r]);++r}};SimpleQueue.prototype.peek=function(){var t=this._front,r=this._cursor;return t._elements[r]};return SimpleQueue}();function ReadableStreamReaderGenericInitialize(t,r){t._ownerReadableStream=r;r._reader=t;"readable"===r._state?defaultReaderClosedPromiseInitialize(t):"closed"===r._state?function defaultReaderClosedPromiseInitializeAsResolved(t){defaultReaderClosedPromiseInitialize(t);defaultReaderClosedPromiseResolve(t)}(t):defaultReaderClosedPromiseInitializeAsRejected(t,r._storedError)}function ReadableStreamReaderGenericCancel(t,r){return ReadableStreamCancel(t._ownerReadableStream,r)}function ReadableStreamReaderGenericRelease(t){"readable"===t._ownerReadableStream._state?defaultReaderClosedPromiseReject(t,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")):function defaultReaderClosedPromiseResetToRejected(t,r){defaultReaderClosedPromiseInitializeAsRejected(t,r)}(t,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness"));t._ownerReadableStream._reader=void 0;t._ownerReadableStream=void 0}function readerLockException(t){return new TypeError("Cannot "+t+" a stream using a released reader")}function defaultReaderClosedPromiseInitialize(t){t._closedPromise=newPromise((function(r,o){t._closedPromise_resolve=r;t._closedPromise_reject=o}))}function defaultReaderClosedPromiseInitializeAsRejected(t,r){defaultReaderClosedPromiseInitialize(t);defaultReaderClosedPromiseReject(t,r)}function defaultReaderClosedPromiseReject(t,r){if(void 0!==t._closedPromise_reject){setPromiseIsHandledToTrue(t._closedPromise);t._closedPromise_reject(r);t._closedPromise_resolve=void 0;t._closedPromise_reject=void 0}}function defaultReaderClosedPromiseResolve(t){if(void 0!==t._closedPromise_resolve){t._closedPromise_resolve(void 0);t._closedPromise_resolve=void 0;t._closedPromise_reject=void 0}}var y=r("[[AbortSteps]]"),v=r("[[ErrorSteps]]"),S=r("[[CancelSteps]]"),_=r("[[PullSteps]]"),k=Number.isFinite||function(t){return"number"==typeof t&&isFinite(t)},C=Math.trunc||function(t){return t<0?Math.ceil(t):Math.floor(t)};function assertDictionary(t,r){if(void 0!==t&&!function isDictionary(t){return"object"==typeof t||"function"==typeof t}(t))throw new TypeError(r+" is not an object.")}function assertFunction(t,r){if("function"!=typeof t)throw new TypeError(r+" is not a function.")}function assertObject(t,r){if(!function isObject(t){return"object"==typeof t&&null!==t||"function"==typeof t}(t))throw new TypeError(r+" is not an object.")}function assertRequiredArgument(t,r,o){if(void 0===t)throw new TypeError("Parameter "+r+" is required in '"+o+"'.")}function assertRequiredField(t,r,o){if(void 0===t)throw new TypeError(r+" is required in '"+o+"'.")}function convertUnrestrictedDouble(t){return Number(t)}function censorNegativeZero(t){return 0===t?0:t}function convertUnsignedLongLongWithEnforceRange(t,r){var o=Number.MAX_SAFE_INTEGER,l=Number(t);l=censorNegativeZero(l);if(!k(l))throw new TypeError(r+" is not a finite number");if((l=function integerPart(t){return censorNegativeZero(C(t))}(l))<0||l>o)throw new TypeError(r+" is outside the accepted range of 0 to "+o+", inclusive");return k(l)&&0!==l?l:0}function assertReadableStream(t,r){if(!IsReadableStream(t))throw new TypeError(r+" is not a ReadableStream.")}function AcquireReadableStreamDefaultReader(t){return new O(t)}function ReadableStreamAddReadRequest(t,r){t._reader._readRequests.push(r)}function ReadableStreamFulfillReadRequest(t,r,o){var l=t._reader._readRequests.shift();o?l._closeSteps():l._chunkSteps(r)}function ReadableStreamGetNumReadRequests(t){return t._reader._readRequests.length}function ReadableStreamHasDefaultReader(t){var r=t._reader;return void 0!==r&&!!IsReadableStreamDefaultReader(r)}var w,x,O=function(){function ReadableStreamDefaultReader(t){assertRequiredArgument(t,1,"ReadableStreamDefaultReader");assertReadableStream(t,"First parameter");if(IsReadableStreamLocked(t))throw new TypeError("This stream has already been locked for exclusive reading by another reader");ReadableStreamReaderGenericInitialize(this,t);this._readRequests=new g}Object.defineProperty(ReadableStreamDefaultReader.prototype,"closed",{get:function(){return IsReadableStreamDefaultReader(this)?this._closedPromise:promiseRejectedWith(defaultReaderBrandCheckException("closed"))},enumerable:!1,configurable:!0});ReadableStreamDefaultReader.prototype.cancel=function(t){void 0===t&&(t=void 0);return IsReadableStreamDefaultReader(this)?void 0===this._ownerReadableStream?promiseRejectedWith(readerLockException("cancel")):ReadableStreamReaderGenericCancel(this,t):promiseRejectedWith(defaultReaderBrandCheckException("cancel"))};ReadableStreamDefaultReader.prototype.read=function(){if(!IsReadableStreamDefaultReader(this))return promiseRejectedWith(defaultReaderBrandCheckException("read"));if(void 0===this._ownerReadableStream)return promiseRejectedWith(readerLockException("read from"));var t,r,o=newPromise((function(o,l){t=o;r=l}));ReadableStreamDefaultReaderRead(this,{_chunkSteps:function(r){return t({value:r,done:!1})},_closeSteps:function(){return t({value:void 0,done:!0})},_errorSteps:function(t){return r(t)}});return o};ReadableStreamDefaultReader.prototype.releaseLock=function(){if(!IsReadableStreamDefaultReader(this))throw defaultReaderBrandCheckException("releaseLock");if(void 0!==this._ownerReadableStream){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)}};return ReadableStreamDefaultReader}();Object.defineProperties(O.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(O.prototype,r.toStringTag,{value:"ReadableStreamDefaultReader",configurable:!0});function IsReadableStreamDefaultReader(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_readRequests")&&t instanceof O}function ReadableStreamDefaultReaderRead(t,r){var o=t._ownerReadableStream;o._disturbed=!0;"closed"===o._state?r._closeSteps():"errored"===o._state?r._errorSteps(o._storedError):o._readableStreamController[_](r)}function defaultReaderBrandCheckException(t){return new TypeError("ReadableStreamDefaultReader.prototype."+t+" can only be used on a ReadableStreamDefaultReader")}if("symbol"==typeof r.asyncIterator){x=((w={})[r.asyncIterator]=function(){return this},w);Object.defineProperty(x,r.asyncIterator,{enumerable:!1})}var T=function(){function ReadableStreamAsyncIteratorImpl(t,r){this._ongoingPromise=void 0;this._isFinished=!1;this._reader=t;this._preventCancel=r}ReadableStreamAsyncIteratorImpl.prototype.next=function(){var t=this,nextSteps=function(){return t._nextSteps()};this._ongoingPromise=this._ongoingPromise?transformPromiseWith(this._ongoingPromise,nextSteps,nextSteps):nextSteps();return this._ongoingPromise};ReadableStreamAsyncIteratorImpl.prototype.return=function(t){var r=this,returnSteps=function(){return r._returnSteps(t)};return this._ongoingPromise?transformPromiseWith(this._ongoingPromise,returnSteps,returnSteps):returnSteps()};ReadableStreamAsyncIteratorImpl.prototype._nextSteps=function(){var t=this;if(this._isFinished)return Promise.resolve({value:void 0,done:!0});var r,o,l=this._reader;if(void 0===l._ownerReadableStream)return promiseRejectedWith(readerLockException("iterate"));var c=newPromise((function(t,l){r=t;o=l}));ReadableStreamDefaultReaderRead(l,{_chunkSteps:function(o){t._ongoingPromise=void 0;m((function(){return r({value:o,done:!1})}))},_closeSteps:function(){t._ongoingPromise=void 0;t._isFinished=!0;ReadableStreamReaderGenericRelease(l);r({value:void 0,done:!0})},_errorSteps:function(r){t._ongoingPromise=void 0;t._isFinished=!0;ReadableStreamReaderGenericRelease(l);o(r)}});return c};ReadableStreamAsyncIteratorImpl.prototype._returnSteps=function(t){if(this._isFinished)return Promise.resolve({value:t,done:!0});this._isFinished=!0;var r=this._reader;if(void 0===r._ownerReadableStream)return promiseRejectedWith(readerLockException("finish iterating"));if(!this._preventCancel){var o=ReadableStreamReaderGenericCancel(r,t);ReadableStreamReaderGenericRelease(r);return transformPromiseWith(o,(function(){return{value:t,done:!0}}))}ReadableStreamReaderGenericRelease(r);return promiseResolvedWith({value:t,done:!0})};return ReadableStreamAsyncIteratorImpl}(),R={next:function(){return IsReadableStreamAsyncIterator(this)?this._asyncIteratorImpl.next():promiseRejectedWith(streamAsyncIteratorBrandCheckException("next"))},return:function(t){return IsReadableStreamAsyncIterator(this)?this._asyncIteratorImpl.return(t):promiseRejectedWith(streamAsyncIteratorBrandCheckException("return"))}};void 0!==x&&Object.setPrototypeOf(R,x);function IsReadableStreamAsyncIterator(t){if(!typeIsObject(t))return!1;if(!Object.prototype.hasOwnProperty.call(t,"_asyncIteratorImpl"))return!1;try{return t._asyncIteratorImpl instanceof T}catch(t){return!1}}function streamAsyncIteratorBrandCheckException(t){return new TypeError("ReadableStreamAsyncIterator."+t+" can only be used on a ReadableSteamAsyncIterator")}var E=Number.isNaN||function(t){return t!=t};function CreateArrayFromList(t){return t.slice()}function CopyDataBlockBytes(t,r,o,l,c){new Uint8Array(t).set(new Uint8Array(o,l,c),r)}function ArrayBufferSlice(t,r,o){if(t.slice)return t.slice(r,o);var l=o-r,c=new ArrayBuffer(l);CopyDataBlockBytes(c,0,t,r,l);return c}function CloneAsUint8Array(t){var r=ArrayBufferSlice(t.buffer,t.byteOffset,t.byteOffset+t.byteLength);return new Uint8Array(r)}function DequeueValue(t){var r=t._queue.shift();t._queueTotalSize-=r.size;t._queueTotalSize<0&&(t._queueTotalSize=0);return r.value}function EnqueueValueWithSize(t,r,o){if(!function IsNonNegativeNumber(t){return!("number"!=typeof t||E(t)||t<0)}(o)||o===1/0)throw new RangeError("Size must be a finite, non-NaN, non-negative number.");t._queue.push({value:r,size:o});t._queueTotalSize+=o}function ResetQueue(t){t._queue=new g;t._queueTotalSize=0}var M=function(){function ReadableStreamBYOBRequest(){throw new TypeError("Illegal constructor")}Object.defineProperty(ReadableStreamBYOBRequest.prototype,"view",{get:function(){if(!IsReadableStreamBYOBRequest(this))throw byobRequestBrandCheckException("view");return this._view},enumerable:!1,configurable:!0});ReadableStreamBYOBRequest.prototype.respond=function(t){if(!IsReadableStreamBYOBRequest(this))throw byobRequestBrandCheckException("respond");assertRequiredArgument(t,1,"respond");t=convertUnsignedLongLongWithEnforceRange(t,"First parameter");if(void 0===this._associatedReadableByteStreamController)throw new TypeError("This BYOB request has been invalidated");this._view.buffer;ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController,t)};ReadableStreamBYOBRequest.prototype.respondWithNewView=function(t){if(!IsReadableStreamBYOBRequest(this))throw byobRequestBrandCheckException("respondWithNewView");assertRequiredArgument(t,1,"respondWithNewView");if(!ArrayBuffer.isView(t))throw new TypeError("You can only respond with array buffer views");if(void 0===this._associatedReadableByteStreamController)throw new TypeError("This BYOB request has been invalidated");t.buffer;ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController,t)};return ReadableStreamBYOBRequest}();Object.defineProperties(M.prototype,{respond:{enumerable:!0},respondWithNewView:{enumerable:!0},view:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(M.prototype,r.toStringTag,{value:"ReadableStreamBYOBRequest",configurable:!0});var D=function(){function ReadableByteStreamController(){throw new TypeError("Illegal constructor")}Object.defineProperty(ReadableByteStreamController.prototype,"byobRequest",{get:function(){if(!IsReadableByteStreamController(this))throw byteStreamControllerBrandCheckException("byobRequest");return ReadableByteStreamControllerGetBYOBRequest(this)},enumerable:!1,configurable:!0});Object.defineProperty(ReadableByteStreamController.prototype,"desiredSize",{get:function(){if(!IsReadableByteStreamController(this))throw byteStreamControllerBrandCheckException("desiredSize");return ReadableByteStreamControllerGetDesiredSize(this)},enumerable:!1,configurable:!0});ReadableByteStreamController.prototype.close=function(){if(!IsReadableByteStreamController(this))throw byteStreamControllerBrandCheckException("close");if(this._closeRequested)throw new TypeError("The stream has already been closed; do not close it again!");var t=this._controlledReadableByteStream._state;if("readable"!==t)throw new TypeError("The stream (in "+t+" state) is not in the readable state and cannot be closed");ReadableByteStreamControllerClose(this)};ReadableByteStreamController.prototype.enqueue=function(t){if(!IsReadableByteStreamController(this))throw byteStreamControllerBrandCheckException("enqueue");assertRequiredArgument(t,1,"enqueue");if(!ArrayBuffer.isView(t))throw new TypeError("chunk must be an array buffer view");if(0===t.byteLength)throw new TypeError("chunk must have non-zero byteLength");if(0===t.buffer.byteLength)throw new TypeError("chunk's buffer must have non-zero byteLength");if(this._closeRequested)throw new TypeError("stream is closed or draining");var r=this._controlledReadableByteStream._state;if("readable"!==r)throw new TypeError("The stream (in "+r+" state) is not in the readable state and cannot be enqueued to");ReadableByteStreamControllerEnqueue(this,t)};ReadableByteStreamController.prototype.error=function(t){void 0===t&&(t=void 0);if(!IsReadableByteStreamController(this))throw byteStreamControllerBrandCheckException("error");ReadableByteStreamControllerError(this,t)};ReadableByteStreamController.prototype[S]=function(t){ReadableByteStreamControllerClearPendingPullIntos(this);ResetQueue(this);var r=this._cancelAlgorithm(t);ReadableByteStreamControllerClearAlgorithms(this);return r};ReadableByteStreamController.prototype[_]=function(t){var r=this._controlledReadableByteStream;if(this._queueTotalSize>0){var o=this._queue.shift();this._queueTotalSize-=o.byteLength;ReadableByteStreamControllerHandleQueueDrain(this);var l=new Uint8Array(o.buffer,o.byteOffset,o.byteLength);t._chunkSteps(l)}else{var c=this._autoAllocateChunkSize;if(void 0!==c){var u=void 0;try{u=new ArrayBuffer(c)}catch(r){t._errorSteps(r);return}var h={buffer:u,bufferByteLength:c,byteOffset:0,byteLength:c,bytesFilled:0,elementSize:1,viewConstructor:Uint8Array,readerType:"default"};this._pendingPullIntos.push(h)}ReadableStreamAddReadRequest(r,t);ReadableByteStreamControllerCallPullIfNeeded(this)}};return ReadableByteStreamController}();Object.defineProperties(D.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},byobRequest:{enumerable:!0},desiredSize:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(D.prototype,r.toStringTag,{value:"ReadableByteStreamController",configurable:!0});function IsReadableByteStreamController(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_controlledReadableByteStream")&&t instanceof D}function IsReadableStreamBYOBRequest(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_associatedReadableByteStreamController")&&t instanceof M}function ReadableByteStreamControllerCallPullIfNeeded(t){var r=function ReadableByteStreamControllerShouldCallPull(t){var r=t._controlledReadableByteStream;return"readable"===r._state&&(!t._closeRequested&&(!!t._started&&(!!(ReadableStreamHasDefaultReader(r)&&ReadableStreamGetNumReadRequests(r)>0)||(!!(ReadableStreamHasBYOBReader(r)&&ReadableStreamGetNumReadIntoRequests(r)>0)||ReadableByteStreamControllerGetDesiredSize(t)>0))))}(t);if(r)if(t._pulling)t._pullAgain=!0;else{t._pulling=!0;uponPromise(t._pullAlgorithm(),(function(){t._pulling=!1;if(t._pullAgain){t._pullAgain=!1;ReadableByteStreamControllerCallPullIfNeeded(t)}}),(function(r){ReadableByteStreamControllerError(t,r)}))}}function ReadableByteStreamControllerClearPendingPullIntos(t){ReadableByteStreamControllerInvalidateBYOBRequest(t);t._pendingPullIntos=new g}function ReadableByteStreamControllerCommitPullIntoDescriptor(t,r){var o=!1;"closed"===t._state&&(o=!0);var l=ReadableByteStreamControllerConvertPullIntoDescriptor(r);"default"===r.readerType?ReadableStreamFulfillReadRequest(t,l,o):function ReadableStreamFulfillReadIntoRequest(t,r,o){var l=t._reader._readIntoRequests.shift();o?l._closeSteps(r):l._chunkSteps(r)}(t,l,o)}function ReadableByteStreamControllerConvertPullIntoDescriptor(t){var r=t.bytesFilled,o=t.elementSize;return new t.viewConstructor(t.buffer,t.byteOffset,r/o)}function ReadableByteStreamControllerEnqueueChunkToQueue(t,r,o,l){t._queue.push({buffer:r,byteOffset:o,byteLength:l});t._queueTotalSize+=l}function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(t,r){var o=r.elementSize,l=r.bytesFilled-r.bytesFilled%o,c=Math.min(t._queueTotalSize,r.byteLength-r.bytesFilled),u=r.bytesFilled+c,h=u-u%o,d=c,m=!1;if(h>l){d=h-r.bytesFilled;m=!0}for(var g=t._queue;d>0;){var y=g.peek(),v=Math.min(d,y.byteLength),S=r.byteOffset+r.bytesFilled;CopyDataBlockBytes(r.buffer,S,y.buffer,y.byteOffset,v);if(y.byteLength===v)g.shift();else{y.byteOffset+=v;y.byteLength-=v}t._queueTotalSize-=v;ReadableByteStreamControllerFillHeadPullIntoDescriptor(0,v,r);d-=v}return m}function ReadableByteStreamControllerFillHeadPullIntoDescriptor(t,r,o){o.bytesFilled+=r}function ReadableByteStreamControllerHandleQueueDrain(t){if(0===t._queueTotalSize&&t._closeRequested){ReadableByteStreamControllerClearAlgorithms(t);ReadableStreamClose(t._controlledReadableByteStream)}else ReadableByteStreamControllerCallPullIfNeeded(t)}function ReadableByteStreamControllerInvalidateBYOBRequest(t){if(null!==t._byobRequest){t._byobRequest._associatedReadableByteStreamController=void 0;t._byobRequest._view=null;t._byobRequest=null}}function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(t){for(;t._pendingPullIntos.length>0;){if(0===t._queueTotalSize)return;var r=t._pendingPullIntos.peek();if(ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(t,r)){ReadableByteStreamControllerShiftPendingPullInto(t);ReadableByteStreamControllerCommitPullIntoDescriptor(t._controlledReadableByteStream,r)}}}function ReadableByteStreamControllerRespondInternal(t,r){var o=t._pendingPullIntos.peek();ReadableByteStreamControllerInvalidateBYOBRequest(t);"closed"===t._controlledReadableByteStream._state?function ReadableByteStreamControllerRespondInClosedState(t,r){var o=t._controlledReadableByteStream;if(ReadableStreamHasBYOBReader(o))for(;ReadableStreamGetNumReadIntoRequests(o)>0;)ReadableByteStreamControllerCommitPullIntoDescriptor(o,ReadableByteStreamControllerShiftPendingPullInto(t))}(t):function ReadableByteStreamControllerRespondInReadableState(t,r,o){ReadableByteStreamControllerFillHeadPullIntoDescriptor(0,r,o);if(!(o.bytesFilled<o.elementSize)){ReadableByteStreamControllerShiftPendingPullInto(t);var l=o.bytesFilled%o.elementSize;if(l>0){var c=o.byteOffset+o.bytesFilled,u=ArrayBufferSlice(o.buffer,c-l,c);ReadableByteStreamControllerEnqueueChunkToQueue(t,u,0,u.byteLength)}o.bytesFilled-=l;ReadableByteStreamControllerCommitPullIntoDescriptor(t._controlledReadableByteStream,o);ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(t)}}(t,r,o);ReadableByteStreamControllerCallPullIfNeeded(t)}function ReadableByteStreamControllerShiftPendingPullInto(t){return t._pendingPullIntos.shift()}function ReadableByteStreamControllerClearAlgorithms(t){t._pullAlgorithm=void 0;t._cancelAlgorithm=void 0}function ReadableByteStreamControllerClose(t){var r=t._controlledReadableByteStream;if(!t._closeRequested&&"readable"===r._state)if(t._queueTotalSize>0)t._closeRequested=!0;else{if(t._pendingPullIntos.length>0&&t._pendingPullIntos.peek().bytesFilled>0){var o=new TypeError("Insufficient bytes to fill elements in the given buffer");ReadableByteStreamControllerError(t,o);throw o}ReadableByteStreamControllerClearAlgorithms(t);ReadableStreamClose(r)}}function ReadableByteStreamControllerEnqueue(t,r){var o=t._controlledReadableByteStream;if(!t._closeRequested&&"readable"===o._state){var l=r.buffer,c=r.byteOffset,u=r.byteLength,h=l;if(t._pendingPullIntos.length>0){var d=t._pendingPullIntos.peek();d.buffer;d.buffer=d.buffer}ReadableByteStreamControllerInvalidateBYOBRequest(t);if(ReadableStreamHasDefaultReader(o))0===ReadableStreamGetNumReadRequests(o)?ReadableByteStreamControllerEnqueueChunkToQueue(t,h,c,u):ReadableStreamFulfillReadRequest(o,new Uint8Array(h,c,u),!1);else if(ReadableStreamHasBYOBReader(o)){ReadableByteStreamControllerEnqueueChunkToQueue(t,h,c,u);ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(t)}else ReadableByteStreamControllerEnqueueChunkToQueue(t,h,c,u);ReadableByteStreamControllerCallPullIfNeeded(t)}}function ReadableByteStreamControllerError(t,r){var o=t._controlledReadableByteStream;if("readable"===o._state){ReadableByteStreamControllerClearPendingPullIntos(t);ResetQueue(t);ReadableByteStreamControllerClearAlgorithms(t);ReadableStreamError(o,r)}}function ReadableByteStreamControllerGetBYOBRequest(t){if(null===t._byobRequest&&t._pendingPullIntos.length>0){var r=t._pendingPullIntos.peek(),o=new Uint8Array(r.buffer,r.byteOffset+r.bytesFilled,r.byteLength-r.bytesFilled),l=Object.create(M.prototype);!function SetUpReadableStreamBYOBRequest(t,r,o){t._associatedReadableByteStreamController=r;t._view=o}(l,t,o);t._byobRequest=l}return t._byobRequest}function ReadableByteStreamControllerGetDesiredSize(t){var r=t._controlledReadableByteStream._state;return"errored"===r?null:"closed"===r?0:t._strategyHWM-t._queueTotalSize}function ReadableByteStreamControllerRespond(t,r){var o=t._pendingPullIntos.peek();if("closed"===t._controlledReadableByteStream._state){if(0!==r)throw new TypeError("bytesWritten must be 0 when calling respond() on a closed stream")}else{if(0===r)throw new TypeError("bytesWritten must be greater than 0 when calling respond() on a readable stream");if(o.bytesFilled+r>o.byteLength)throw new RangeError("bytesWritten out of range")}o.buffer=o.buffer;ReadableByteStreamControllerRespondInternal(t,r)}function ReadableByteStreamControllerRespondWithNewView(t,r){var o=t._pendingPullIntos.peek();if("closed"===t._controlledReadableByteStream._state){if(0!==r.byteLength)throw new TypeError("The view's length must be 0 when calling respondWithNewView() on a closed stream")}else if(0===r.byteLength)throw new TypeError("The view's length must be greater than 0 when calling respondWithNewView() on a readable stream");if(o.byteOffset+o.bytesFilled!==r.byteOffset)throw new RangeError("The region specified by view does not match byobRequest");if(o.bufferByteLength!==r.buffer.byteLength)throw new RangeError("The buffer of view has different capacity than byobRequest");if(o.bytesFilled+r.byteLength>o.byteLength)throw new RangeError("The region specified by view is larger than byobRequest");o.buffer=r.buffer;ReadableByteStreamControllerRespondInternal(t,r.byteLength)}function SetUpReadableByteStreamController(t,r,o,l,c,u,h){r._controlledReadableByteStream=t;r._pullAgain=!1;r._pulling=!1;r._byobRequest=null;r._queue=r._queueTotalSize=void 0;ResetQueue(r);r._closeRequested=!1;r._started=!1;r._strategyHWM=u;r._pullAlgorithm=l;r._cancelAlgorithm=c;r._autoAllocateChunkSize=h;r._pendingPullIntos=new g;t._readableStreamController=r;uponPromise(promiseResolvedWith(o()),(function(){r._started=!0;ReadableByteStreamControllerCallPullIfNeeded(r)}),(function(t){ReadableByteStreamControllerError(r,t)}))}function byobRequestBrandCheckException(t){return new TypeError("ReadableStreamBYOBRequest.prototype."+t+" can only be used on a ReadableStreamBYOBRequest")}function byteStreamControllerBrandCheckException(t){return new TypeError("ReadableByteStreamController.prototype."+t+" can only be used on a ReadableByteStreamController")}function AcquireReadableStreamBYOBReader(t){return new j(t)}function ReadableStreamAddReadIntoRequest(t,r){t._reader._readIntoRequests.push(r)}function ReadableStreamGetNumReadIntoRequests(t){return t._reader._readIntoRequests.length}function ReadableStreamHasBYOBReader(t){var r=t._reader;return void 0!==r&&!!IsReadableStreamBYOBReader(r)}var j=function(){function ReadableStreamBYOBReader(t){assertRequiredArgument(t,1,"ReadableStreamBYOBReader");assertReadableStream(t,"First parameter");if(IsReadableStreamLocked(t))throw new TypeError("This stream has already been locked for exclusive reading by another reader");if(!IsReadableByteStreamController(t._readableStreamController))throw new TypeError("Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte source");ReadableStreamReaderGenericInitialize(this,t);this._readIntoRequests=new g}Object.defineProperty(ReadableStreamBYOBReader.prototype,"closed",{get:function(){return IsReadableStreamBYOBReader(this)?this._closedPromise:promiseRejectedWith(byobReaderBrandCheckException("closed"))},enumerable:!1,configurable:!0});ReadableStreamBYOBReader.prototype.cancel=function(t){void 0===t&&(t=void 0);return IsReadableStreamBYOBReader(this)?void 0===this._ownerReadableStream?promiseRejectedWith(readerLockException("cancel")):ReadableStreamReaderGenericCancel(this,t):promiseRejectedWith(byobReaderBrandCheckException("cancel"))};ReadableStreamBYOBReader.prototype.read=function(t){if(!IsReadableStreamBYOBReader(this))return promiseRejectedWith(byobReaderBrandCheckException("read"));if(!ArrayBuffer.isView(t))return promiseRejectedWith(new TypeError("view must be an array buffer view"));if(0===t.byteLength)return promiseRejectedWith(new TypeError("view must have non-zero byteLength"));if(0===t.buffer.byteLength)return promiseRejectedWith(new TypeError("view's buffer must have non-zero byteLength"));t.buffer;if(void 0===this._ownerReadableStream)return promiseRejectedWith(readerLockException("read from"));var r,o,l=newPromise((function(t,l){r=t;o=l}));ReadableStreamBYOBReaderRead(this,t,{_chunkSteps:function(t){return r({value:t,done:!1})},_closeSteps:function(t){return r({value:t,done:!0})},_errorSteps:function(t){return o(t)}});return l};ReadableStreamBYOBReader.prototype.releaseLock=function(){if(!IsReadableStreamBYOBReader(this))throw byobReaderBrandCheckException("releaseLock");if(void 0!==this._ownerReadableStream){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)}};return ReadableStreamBYOBReader}();Object.defineProperties(j.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(j.prototype,r.toStringTag,{value:"ReadableStreamBYOBReader",configurable:!0});function IsReadableStreamBYOBReader(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_readIntoRequests")&&t instanceof j}function ReadableStreamBYOBReaderRead(t,r,o){var l=t._ownerReadableStream;l._disturbed=!0;"errored"===l._state?o._errorSteps(l._storedError):function ReadableByteStreamControllerPullInto(t,r,o){var l=t._controlledReadableByteStream,c=1;r.constructor!==DataView&&(c=r.constructor.BYTES_PER_ELEMENT);var u=r.constructor,h=r.buffer,d={buffer:h,bufferByteLength:h.byteLength,byteOffset:r.byteOffset,byteLength:r.byteLength,bytesFilled:0,elementSize:c,viewConstructor:u,readerType:"byob"};if(t._pendingPullIntos.length>0){t._pendingPullIntos.push(d);ReadableStreamAddReadIntoRequest(l,o)}else if("closed"!==l._state){if(t._queueTotalSize>0){if(ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(t,d)){var m=ReadableByteStreamControllerConvertPullIntoDescriptor(d);ReadableByteStreamControllerHandleQueueDrain(t);o._chunkSteps(m);return}if(t._closeRequested){var g=new TypeError("Insufficient bytes to fill elements in the given buffer");ReadableByteStreamControllerError(t,g);o._errorSteps(g);return}}t._pendingPullIntos.push(d);ReadableStreamAddReadIntoRequest(l,o);ReadableByteStreamControllerCallPullIfNeeded(t)}else{var y=new u(d.buffer,d.byteOffset,0);o._closeSteps(y)}}(l._readableStreamController,r,o)}function byobReaderBrandCheckException(t){return new TypeError("ReadableStreamBYOBReader.prototype."+t+" can only be used on a ReadableStreamBYOBReader")}function ExtractHighWaterMark(t,r){var o=t.highWaterMark;if(void 0===o)return r;if(E(o)||o<0)throw new RangeError("Invalid highWaterMark");return o}function ExtractSizeAlgorithm(t){var r=t.size;return r||function(){return 1}}function convertQueuingStrategy(t,r){assertDictionary(t,r);var o=null==t?void 0:t.highWaterMark,l=null==t?void 0:t.size;return{highWaterMark:void 0===o?void 0:convertUnrestrictedDouble(o),size:void 0===l?void 0:convertQueuingStrategySize(l,r+" has member 'size' that")}}function convertQueuingStrategySize(t,r){assertFunction(t,r);return function(r){return convertUnrestrictedDouble(t(r))}}function convertUnderlyingSinkAbortCallback(t,r,o){assertFunction(t,o);return function(o){return promiseCall(t,r,[o])}}function convertUnderlyingSinkCloseCallback(t,r,o){assertFunction(t,o);return function(){return promiseCall(t,r,[])}}function convertUnderlyingSinkStartCallback(t,r,o){assertFunction(t,o);return function(o){return reflectCall(t,r,[o])}}function convertUnderlyingSinkWriteCallback(t,r,o){assertFunction(t,o);return function(o,l){return promiseCall(t,r,[o,l])}}function assertWritableStream(t,r){if(!IsWritableStream(t))throw new TypeError(r+" is not a WritableStream.")}var L="function"==typeof AbortController,N=function(){function WritableStream(t,r){void 0===t&&(t={});void 0===r&&(r={});void 0===t?t=null:assertObject(t,"First parameter");var o=convertQueuingStrategy(r,"Second parameter"),l=function convertUnderlyingSink(t,r){assertDictionary(t,r);var o=null==t?void 0:t.abort,l=null==t?void 0:t.close,c=null==t?void 0:t.start,u=null==t?void 0:t.type,h=null==t?void 0:t.write;return{abort:void 0===o?void 0:convertUnderlyingSinkAbortCallback(o,t,r+" has member 'abort' that"),close:void 0===l?void 0:convertUnderlyingSinkCloseCallback(l,t,r+" has member 'close' that"),start:void 0===c?void 0:convertUnderlyingSinkStartCallback(c,t,r+" has member 'start' that"),write:void 0===h?void 0:convertUnderlyingSinkWriteCallback(h,t,r+" has member 'write' that"),type:u}}(t,"First parameter");InitializeWritableStream(this);if(void 0!==l.type)throw new RangeError("Invalid type is specified");var c=ExtractSizeAlgorithm(o);!function SetUpWritableStreamDefaultControllerFromUnderlyingSink(t,r,o,l){var c=Object.create(W.prototype),startAlgorithm=function(){},writeAlgorithm=function(){return promiseResolvedWith(void 0)},closeAlgorithm=function(){return promiseResolvedWith(void 0)},abortAlgorithm=function(){return promiseResolvedWith(void 0)};void 0!==r.start&&(startAlgorithm=function(){return r.start(c)});void 0!==r.write&&(writeAlgorithm=function(t){return r.write(t,c)});void 0!==r.close&&(closeAlgorithm=function(){return r.close()});void 0!==r.abort&&(abortAlgorithm=function(t){return r.abort(t)});SetUpWritableStreamDefaultController(t,c,startAlgorithm,writeAlgorithm,closeAlgorithm,abortAlgorithm,o,l)}(this,l,ExtractHighWaterMark(o,1),c)}Object.defineProperty(WritableStream.prototype,"locked",{get:function(){if(!IsWritableStream(this))throw streamBrandCheckException$2("locked");return IsWritableStreamLocked(this)},enumerable:!1,configurable:!0});WritableStream.prototype.abort=function(t){void 0===t&&(t=void 0);return IsWritableStream(this)?IsWritableStreamLocked(this)?promiseRejectedWith(new TypeError("Cannot abort a stream that already has a writer")):WritableStreamAbort(this,t):promiseRejectedWith(streamBrandCheckException$2("abort"))};WritableStream.prototype.close=function(){return IsWritableStream(this)?IsWritableStreamLocked(this)?promiseRejectedWith(new TypeError("Cannot close a stream that already has a writer")):WritableStreamCloseQueuedOrInFlight(this)?promiseRejectedWith(new TypeError("Cannot close an already-closing stream")):WritableStreamClose(this):promiseRejectedWith(streamBrandCheckException$2("close"))};WritableStream.prototype.getWriter=function(){if(!IsWritableStream(this))throw streamBrandCheckException$2("getWriter");return AcquireWritableStreamDefaultWriter(this)};return WritableStream}();Object.defineProperties(N.prototype,{abort:{enumerable:!0},close:{enumerable:!0},getWriter:{enumerable:!0},locked:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(N.prototype,r.toStringTag,{value:"WritableStream",configurable:!0});function AcquireWritableStreamDefaultWriter(t){return new U(t)}function InitializeWritableStream(t){t._state="writable";t._storedError=void 0;t._writer=void 0;t._writableStreamController=void 0;t._writeRequests=new g;t._inFlightWriteRequest=void 0;t._closeRequest=void 0;t._inFlightCloseRequest=void 0;t._pendingAbortRequest=void 0;t._backpressure=!1}function IsWritableStream(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_writableStreamController")&&t instanceof N}function IsWritableStreamLocked(t){return void 0!==t._writer}function WritableStreamAbort(t,r){var o;if("closed"===t._state||"errored"===t._state)return promiseResolvedWith(void 0);t._writableStreamController._abortReason=r;null===(o=t._writableStreamController._abortController)||void 0===o||o.abort();var l=t._state;if("closed"===l||"errored"===l)return promiseResolvedWith(void 0);if(void 0!==t._pendingAbortRequest)return t._pendingAbortRequest._promise;var c=!1;if("erroring"===l){c=!0;r=void 0}var u=newPromise((function(o,l){t._pendingAbortRequest={_promise:void 0,_resolve:o,_reject:l,_reason:r,_wasAlreadyErroring:c}}));t._pendingAbortRequest._promise=u;c||WritableStreamStartErroring(t,r);return u}function WritableStreamClose(t){var r=t._state;if("closed"===r||"errored"===r)return promiseRejectedWith(new TypeError("The stream (in "+r+" state) is not in the writable state and cannot be closed"));var o=newPromise((function(r,o){var l={_resolve:r,_reject:o};t._closeRequest=l})),l=t._writer;void 0!==l&&t._backpressure&&"writable"===r&&defaultWriterReadyPromiseResolve(l);!function WritableStreamDefaultControllerClose(t){EnqueueValueWithSize(t,H,0);WritableStreamDefaultControllerAdvanceQueueIfNeeded(t)}(t._writableStreamController);return o}function WritableStreamDealWithRejection(t,r){"writable"!==t._state?WritableStreamFinishErroring(t):WritableStreamStartErroring(t,r)}function WritableStreamStartErroring(t,r){var o=t._writableStreamController;t._state="erroring";t._storedError=r;var l=t._writer;void 0!==l&&WritableStreamDefaultWriterEnsureReadyPromiseRejected(l,r);!function WritableStreamHasOperationMarkedInFlight(t){return void 0!==t._inFlightWriteRequest||void 0!==t._inFlightCloseRequest}(t)&&o._started&&WritableStreamFinishErroring(t)}function WritableStreamFinishErroring(t){t._state="errored";t._writableStreamController[v]();var r=t._storedError;t._writeRequests.forEach((function(t){t._reject(r)}));t._writeRequests=new g;if(void 0!==t._pendingAbortRequest){var o=t._pendingAbortRequest;t._pendingAbortRequest=void 0;if(o._wasAlreadyErroring){o._reject(r);WritableStreamRejectCloseAndClosedPromiseIfNeeded(t)}else uponPromise(t._writableStreamController[y](o._reason),(function(){o._resolve();WritableStreamRejectCloseAndClosedPromiseIfNeeded(t)}),(function(r){o._reject(r);WritableStreamRejectCloseAndClosedPromiseIfNeeded(t)}))}else WritableStreamRejectCloseAndClosedPromiseIfNeeded(t)}function WritableStreamCloseQueuedOrInFlight(t){return void 0!==t._closeRequest||void 0!==t._inFlightCloseRequest}function WritableStreamRejectCloseAndClosedPromiseIfNeeded(t){if(void 0!==t._closeRequest){t._closeRequest._reject(t._storedError);t._closeRequest=void 0}var r=t._writer;void 0!==r&&defaultWriterClosedPromiseReject(r,t._storedError)}function WritableStreamUpdateBackpressure(t,r){var o=t._writer;void 0!==o&&r!==t._backpressure&&(r?function defaultWriterReadyPromiseReset(t){defaultWriterReadyPromiseInitialize(t)}(o):defaultWriterReadyPromiseResolve(o));t._backpressure=r}var U=function(){function WritableStreamDefaultWriter(t){assertRequiredArgument(t,1,"WritableStreamDefaultWriter");assertWritableStream(t,"First parameter");if(IsWritableStreamLocked(t))throw new TypeError("This stream has already been locked for exclusive writing by another writer");this._ownerWritableStream=t;t._writer=this;var r=t._state;if("writable"===r){!WritableStreamCloseQueuedOrInFlight(t)&&t._backpressure?defaultWriterReadyPromiseInitialize(this):defaultWriterReadyPromiseInitializeAsResolved(this);defaultWriterClosedPromiseInitialize(this)}else if("erroring"===r){defaultWriterReadyPromiseInitializeAsRejected(this,t._storedError);defaultWriterClosedPromiseInitialize(this)}else if("closed"===r){defaultWriterReadyPromiseInitializeAsResolved(this);!function defaultWriterClosedPromiseInitializeAsResolved(t){defaultWriterClosedPromiseInitialize(t);defaultWriterClosedPromiseResolve(t)}(this)}else{var o=t._storedError;defaultWriterReadyPromiseInitializeAsRejected(this,o);defaultWriterClosedPromiseInitializeAsRejected(this,o)}}Object.defineProperty(WritableStreamDefaultWriter.prototype,"closed",{get:function(){return IsWritableStreamDefaultWriter(this)?this._closedPromise:promiseRejectedWith(defaultWriterBrandCheckException("closed"))},enumerable:!1,configurable:!0});Object.defineProperty(WritableStreamDefaultWriter.prototype,"desiredSize",{get:function(){if(!IsWritableStreamDefaultWriter(this))throw defaultWriterBrandCheckException("desiredSize");if(void 0===this._ownerWritableStream)throw defaultWriterLockException("desiredSize");return function WritableStreamDefaultWriterGetDesiredSize(t){var r=t._ownerWritableStream,o=r._state;return"errored"===o||"erroring"===o?null:"closed"===o?0:WritableStreamDefaultControllerGetDesiredSize(r._writableStreamController)}(this)},enumerable:!1,configurable:!0});Object.defineProperty(WritableStreamDefaultWriter.prototype,"ready",{get:function(){return IsWritableStreamDefaultWriter(this)?this._readyPromise:promiseRejectedWith(defaultWriterBrandCheckException("ready"))},enumerable:!1,configurable:!0});WritableStreamDefaultWriter.prototype.abort=function(t){void 0===t&&(t=void 0);return IsWritableStreamDefaultWriter(this)?void 0===this._ownerWritableStream?promiseRejectedWith(defaultWriterLockException("abort")):function WritableStreamDefaultWriterAbort(t,r){return WritableStreamAbort(t._ownerWritableStream,r)}(this,t):promiseRejectedWith(defaultWriterBrandCheckException("abort"))};WritableStreamDefaultWriter.prototype.close=function(){if(!IsWritableStreamDefaultWriter(this))return promiseRejectedWith(defaultWriterBrandCheckException("close"));var t=this._ownerWritableStream;return void 0===t?promiseRejectedWith(defaultWriterLockException("close")):WritableStreamCloseQueuedOrInFlight(t)?promiseRejectedWith(new TypeError("Cannot close an already-closing stream")):WritableStreamDefaultWriterClose(this)};WritableStreamDefaultWriter.prototype.releaseLock=function(){if(!IsWritableStreamDefaultWriter(this))throw defaultWriterBrandCheckException("releaseLock");void 0!==this._ownerWritableStream&&WritableStreamDefaultWriterRelease(this)};WritableStreamDefaultWriter.prototype.write=function(t){void 0===t&&(t=void 0);return IsWritableStreamDefaultWriter(this)?void 0===this._ownerWritableStream?promiseRejectedWith(defaultWriterLockException("write to")):WritableStreamDefaultWriterWrite(this,t):promiseRejectedWith(defaultWriterBrandCheckException("write"))};return WritableStreamDefaultWriter}();Object.defineProperties(U.prototype,{abort:{enumerable:!0},close:{enumerable:!0},releaseLock:{enumerable:!0},write:{enumerable:!0},closed:{enumerable:!0},desiredSize:{enumerable:!0},ready:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(U.prototype,r.toStringTag,{value:"WritableStreamDefaultWriter",configurable:!0});function IsWritableStreamDefaultWriter(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_ownerWritableStream")&&t instanceof U}function WritableStreamDefaultWriterClose(t){return WritableStreamClose(t._ownerWritableStream)}function WritableStreamDefaultWriterEnsureClosedPromiseRejected(t,r){"pending"===t._closedPromiseState?defaultWriterClosedPromiseReject(t,r):function defaultWriterClosedPromiseResetToRejected(t,r){defaultWriterClosedPromiseInitializeAsRejected(t,r)}(t,r)}function WritableStreamDefaultWriterEnsureReadyPromiseRejected(t,r){"pending"===t._readyPromiseState?defaultWriterReadyPromiseReject(t,r):function defaultWriterReadyPromiseResetToRejected(t,r){defaultWriterReadyPromiseInitializeAsRejected(t,r)}(t,r)}function WritableStreamDefaultWriterRelease(t){var r=t._ownerWritableStream,o=new TypeError("Writer was released and can no longer be used to monitor the stream's closedness");WritableStreamDefaultWriterEnsureReadyPromiseRejected(t,o);WritableStreamDefaultWriterEnsureClosedPromiseRejected(t,o);r._writer=void 0;t._ownerWritableStream=void 0}function WritableStreamDefaultWriterWrite(t,r){var o=t._ownerWritableStream,l=o._writableStreamController,c=function WritableStreamDefaultControllerGetChunkSize(t,r){try{return t._strategySizeAlgorithm(r)}catch(r){WritableStreamDefaultControllerErrorIfNeeded(t,r);return 1}}(l,r);if(o!==t._ownerWritableStream)return promiseRejectedWith(defaultWriterLockException("write to"));var u=o._state;if("errored"===u)return promiseRejectedWith(o._storedError);if(WritableStreamCloseQueuedOrInFlight(o)||"closed"===u)return promiseRejectedWith(new TypeError("The stream is closing or closed and cannot be written to"));if("erroring"===u)return promiseRejectedWith(o._storedError);var h=function WritableStreamAddWriteRequest(t){return newPromise((function(r,o){var l={_resolve:r,_reject:o};t._writeRequests.push(l)}))}(o);!function WritableStreamDefaultControllerWrite(t,r,o){try{EnqueueValueWithSize(t,r,o)}catch(r){WritableStreamDefaultControllerErrorIfNeeded(t,r);return}var l=t._controlledWritableStream;WritableStreamCloseQueuedOrInFlight(l)||"writable"!==l._state||WritableStreamUpdateBackpressure(l,WritableStreamDefaultControllerGetBackpressure(t));WritableStreamDefaultControllerAdvanceQueueIfNeeded(t)}(l,r,c);return h}var H={},W=function(){function WritableStreamDefaultController(){throw new TypeError("Illegal constructor")}Object.defineProperty(WritableStreamDefaultController.prototype,"abortReason",{get:function(){if(!IsWritableStreamDefaultController(this))throw defaultControllerBrandCheckException$2("abortReason");return this._abortReason},enumerable:!1,configurable:!0});Object.defineProperty(WritableStreamDefaultController.prototype,"signal",{get:function(){if(!IsWritableStreamDefaultController(this))throw defaultControllerBrandCheckException$2("signal");if(void 0===this._abortController)throw new TypeError("WritableStreamDefaultController.prototype.signal is not supported");return this._abortController.signal},enumerable:!1,configurable:!0});WritableStreamDefaultController.prototype.error=function(t){void 0===t&&(t=void 0);if(!IsWritableStreamDefaultController(this))throw defaultControllerBrandCheckException$2("error");"writable"===this._controlledWritableStream._state&&WritableStreamDefaultControllerError(this,t)};WritableStreamDefaultController.prototype[y]=function(t){var r=this._abortAlgorithm(t);WritableStreamDefaultControllerClearAlgorithms(this);return r};WritableStreamDefaultController.prototype[v]=function(){ResetQueue(this)};return WritableStreamDefaultController}();Object.defineProperties(W.prototype,{error:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(W.prototype,r.toStringTag,{value:"WritableStreamDefaultController",configurable:!0});function IsWritableStreamDefaultController(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_controlledWritableStream")&&t instanceof W}function SetUpWritableStreamDefaultController(t,r,o,l,c,u,h,d){r._controlledWritableStream=t;t._writableStreamController=r;r._queue=void 0;r._queueTotalSize=void 0;ResetQueue(r);r._abortReason=void 0;r._abortController=function createAbortController(){if(L)return new AbortController}();r._started=!1;r._strategySizeAlgorithm=d;r._strategyHWM=h;r._writeAlgorithm=l;r._closeAlgorithm=c;r._abortAlgorithm=u;var m=WritableStreamDefaultControllerGetBackpressure(r);WritableStreamUpdateBackpressure(t,m);uponPromise(promiseResolvedWith(o()),(function(){r._started=!0;WritableStreamDefaultControllerAdvanceQueueIfNeeded(r)}),(function(o){r._started=!0;WritableStreamDealWithRejection(t,o)}))}function WritableStreamDefaultControllerClearAlgorithms(t){t._writeAlgorithm=void 0;t._closeAlgorithm=void 0;t._abortAlgorithm=void 0;t._strategySizeAlgorithm=void 0}function WritableStreamDefaultControllerGetDesiredSize(t){return t._strategyHWM-t._queueTotalSize}function WritableStreamDefaultControllerAdvanceQueueIfNeeded(t){var r=t._controlledWritableStream;if(t._started&&void 0===r._inFlightWriteRequest)if("erroring"!==r._state){if(0!==t._queue.length){var o=function PeekQueueValue(t){return t._queue.peek().value}(t);o===H?function WritableStreamDefaultControllerProcessClose(t){var r=t._controlledWritableStream;!function WritableStreamMarkCloseRequestInFlight(t){t._inFlightCloseRequest=t._closeRequest;t._closeRequest=void 0}(r);DequeueValue(t);var o=t._closeAlgorithm();WritableStreamDefaultControllerClearAlgorithms(t);uponPromise(o,(function(){!function WritableStreamFinishInFlightClose(t){t._inFlightCloseRequest._resolve(void 0);t._inFlightCloseRequest=void 0;if("erroring"===t._state){t._storedError=void 0;if(void 0!==t._pendingAbortRequest){t._pendingAbortRequest._resolve();t._pendingAbortRequest=void 0}}t._state="closed";var r=t._writer;void 0!==r&&defaultWriterClosedPromiseResolve(r)}(r)}),(function(t){!function WritableStreamFinishInFlightCloseWithError(t,r){t._inFlightCloseRequest._reject(r);t._inFlightCloseRequest=void 0;if(void 0!==t._pendingAbortRequest){t._pendingAbortRequest._reject(r);t._pendingAbortRequest=void 0}WritableStreamDealWithRejection(t,r)}(r,t)}))}(t):function WritableStreamDefaultControllerProcessWrite(t,r){var o=t._controlledWritableStream;!function WritableStreamMarkFirstWriteRequestInFlight(t){t._inFlightWriteRequest=t._writeRequests.shift()}(o);uponPromise(t._writeAlgorithm(r),(function(){!function WritableStreamFinishInFlightWrite(t){t._inFlightWriteRequest._resolve(void 0);t._inFlightWriteRequest=void 0}(o);var r=o._state;DequeueValue(t);if(!WritableStreamCloseQueuedOrInFlight(o)&&"writable"===r){var l=WritableStreamDefaultControllerGetBackpressure(t);WritableStreamUpdateBackpressure(o,l)}WritableStreamDefaultControllerAdvanceQueueIfNeeded(t)}),(function(r){"writable"===o._state&&WritableStreamDefaultControllerClearAlgorithms(t);!function WritableStreamFinishInFlightWriteWithError(t,r){t._inFlightWriteRequest._reject(r);t._inFlightWriteRequest=void 0;WritableStreamDealWithRejection(t,r)}(o,r)}))}(t,o)}}else WritableStreamFinishErroring(r)}function WritableStreamDefaultControllerErrorIfNeeded(t,r){"writable"===t._controlledWritableStream._state&&WritableStreamDefaultControllerError(t,r)}function WritableStreamDefaultControllerGetBackpressure(t){return WritableStreamDefaultControllerGetDesiredSize(t)<=0}function WritableStreamDefaultControllerError(t,r){var o=t._controlledWritableStream;WritableStreamDefaultControllerClearAlgorithms(t);WritableStreamStartErroring(o,r)}function streamBrandCheckException$2(t){return new TypeError("WritableStream.prototype."+t+" can only be used on a WritableStream")}function defaultControllerBrandCheckException$2(t){return new TypeError("WritableStreamDefaultController.prototype."+t+" can only be used on a WritableStreamDefaultController")}function defaultWriterBrandCheckException(t){return new TypeError("WritableStreamDefaultWriter.prototype."+t+" can only be used on a WritableStreamDefaultWriter")}function defaultWriterLockException(t){return new TypeError("Cannot "+t+" a stream using a released writer")}function defaultWriterClosedPromiseInitialize(t){t._closedPromise=newPromise((function(r,o){t._closedPromise_resolve=r;t._closedPromise_reject=o;t._closedPromiseState="pending"}))}function defaultWriterClosedPromiseInitializeAsRejected(t,r){defaultWriterClosedPromiseInitialize(t);defaultWriterClosedPromiseReject(t,r)}function defaultWriterClosedPromiseReject(t,r){if(void 0!==t._closedPromise_reject){setPromiseIsHandledToTrue(t._closedPromise);t._closedPromise_reject(r);t._closedPromise_resolve=void 0;t._closedPromise_reject=void 0;t._closedPromiseState="rejected"}}function defaultWriterClosedPromiseResolve(t){if(void 0!==t._closedPromise_resolve){t._closedPromise_resolve(void 0);t._closedPromise_resolve=void 0;t._closedPromise_reject=void 0;t._closedPromiseState="resolved"}}function defaultWriterReadyPromiseInitialize(t){t._readyPromise=newPromise((function(r,o){t._readyPromise_resolve=r;t._readyPromise_reject=o}));t._readyPromiseState="pending"}function defaultWriterReadyPromiseInitializeAsRejected(t,r){defaultWriterReadyPromiseInitialize(t);defaultWriterReadyPromiseReject(t,r)}function defaultWriterReadyPromiseInitializeAsResolved(t){defaultWriterReadyPromiseInitialize(t);defaultWriterReadyPromiseResolve(t)}function defaultWriterReadyPromiseReject(t,r){if(void 0!==t._readyPromise_reject){setPromiseIsHandledToTrue(t._readyPromise);t._readyPromise_reject(r);t._readyPromise_resolve=void 0;t._readyPromise_reject=void 0;t._readyPromiseState="rejected"}}function defaultWriterReadyPromiseResolve(t){if(void 0!==t._readyPromise_resolve){t._readyPromise_resolve(void 0);t._readyPromise_resolve=void 0;t._readyPromise_reject=void 0;t._readyPromiseState="fulfilled"}}var $="undefined"!=typeof DOMException?DOMException:void 0,q=function isDOMExceptionConstructor(t){if("function"!=typeof t&&"object"!=typeof t)return!1;try{new t;return!0}catch(t){return!1}}($)?$:function createDOMExceptionPolyfill(){var t=function DOMException(t,r){this.message=t||"";this.name=r||"Error";Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)};t.prototype=Object.create(Error.prototype);Object.defineProperty(t.prototype,"constructor",{value:t,writable:!0,configurable:!0});return t}();function ReadableStreamPipeTo(t,r,o,l,c,u){var h=AcquireReadableStreamDefaultReader(t),d=AcquireWritableStreamDefaultWriter(r);t._disturbed=!0;var m=!1,g=promiseResolvedWith(void 0);return newPromise((function(y,v){var S;if(void 0!==u){S=function(){var o=new q("Aborted","AbortError"),u=[];l||u.push((function(){return"writable"===r._state?WritableStreamAbort(r,o):promiseResolvedWith(void 0)}));c||u.push((function(){return"readable"===t._state?ReadableStreamCancel(t,o):promiseResolvedWith(void 0)}));shutdownWithAction((function(){return Promise.all(u.map((function(t){return t()})))}),!0,o)};if(u.aborted){S();return}u.addEventListener("abort",S)}isOrBecomesErrored(t,h._closedPromise,(function(t){l?shutdown(!0,t):shutdownWithAction((function(){return WritableStreamAbort(r,t)}),!0,t)}));isOrBecomesErrored(r,d._closedPromise,(function(r){c?shutdown(!0,r):shutdownWithAction((function(){return ReadableStreamCancel(t,r)}),!0,r)}));!function isOrBecomesClosed(t,r,o){"closed"===t._state?o():uponFulfillment(r,o)}(t,h._closedPromise,(function(){o?shutdown():shutdownWithAction((function(){return function WritableStreamDefaultWriterCloseWithErrorPropagation(t){var r=t._ownerWritableStream,o=r._state;return WritableStreamCloseQueuedOrInFlight(r)||"closed"===o?promiseResolvedWith(void 0):"errored"===o?promiseRejectedWith(r._storedError):WritableStreamDefaultWriterClose(t)}(d)}))}));if(WritableStreamCloseQueuedOrInFlight(r)||"closed"===r._state){var _=new TypeError("the destination writable stream closed before all data could be piped to it");c?shutdown(!0,_):shutdownWithAction((function(){return ReadableStreamCancel(t,_)}),!0,_)}setPromiseIsHandledToTrue(function pipeLoop(){return newPromise((function(t,r){!function next(o){o?t():PerformPromiseThen(function pipeStep(){return m?promiseResolvedWith(!0):PerformPromiseThen(d._readyPromise,(function(){return newPromise((function(t,r){ReadableStreamDefaultReaderRead(h,{_chunkSteps:function(r){g=PerformPromiseThen(WritableStreamDefaultWriterWrite(d,r),void 0,noop);t(!1)},_closeSteps:function(){return t(!0)},_errorSteps:r})}))}))}(),next,r)}(!1)}))}());function waitForWritesToFinish(){var t=g;return PerformPromiseThen(g,(function(){return t!==g?waitForWritesToFinish():void 0}))}function isOrBecomesErrored(t,r,o){"errored"===t._state?o(t._storedError):uponRejection(r,o)}function shutdownWithAction(t,o,l){if(!m){m=!0;"writable"!==r._state||WritableStreamCloseQueuedOrInFlight(r)?doTheRest():uponFulfillment(waitForWritesToFinish(),doTheRest)}function doTheRest(){uponPromise(t(),(function(){return finalize(o,l)}),(function(t){return finalize(!0,t)}))}}function shutdown(t,o){if(!m){m=!0;"writable"!==r._state||WritableStreamCloseQueuedOrInFlight(r)?finalize(t,o):uponFulfillment(waitForWritesToFinish(),(function(){return finalize(t,o)}))}}function finalize(t,r){WritableStreamDefaultWriterRelease(d);ReadableStreamReaderGenericRelease(h);void 0!==u&&u.removeEventListener("abort",S);t?v(r):y(void 0)}}))}var X=function(){function ReadableStreamDefaultController(){throw new TypeError("Illegal constructor")}Object.defineProperty(ReadableStreamDefaultController.prototype,"desiredSize",{get:function(){if(!IsReadableStreamDefaultController(this))throw defaultControllerBrandCheckException$1("desiredSize");return ReadableStreamDefaultControllerGetDesiredSize(this)},enumerable:!1,configurable:!0});ReadableStreamDefaultController.prototype.close=function(){if(!IsReadableStreamDefaultController(this))throw defaultControllerBrandCheckException$1("close");if(!ReadableStreamDefaultControllerCanCloseOrEnqueue(this))throw new TypeError("The stream is not in a state that permits close");ReadableStreamDefaultControllerClose(this)};ReadableStreamDefaultController.prototype.enqueue=function(t){void 0===t&&(t=void 0);if(!IsReadableStreamDefaultController(this))throw defaultControllerBrandCheckException$1("enqueue");if(!ReadableStreamDefaultControllerCanCloseOrEnqueue(this))throw new TypeError("The stream is not in a state that permits enqueue");return ReadableStreamDefaultControllerEnqueue(this,t)};ReadableStreamDefaultController.prototype.error=function(t){void 0===t&&(t=void 0);if(!IsReadableStreamDefaultController(this))throw defaultControllerBrandCheckException$1("error");ReadableStreamDefaultControllerError(this,t)};ReadableStreamDefaultController.prototype[S]=function(t){ResetQueue(this);var r=this._cancelAlgorithm(t);ReadableStreamDefaultControllerClearAlgorithms(this);return r};ReadableStreamDefaultController.prototype[_]=function(t){var r=this._controlledReadableStream;if(this._queue.length>0){var o=DequeueValue(this);if(this._closeRequested&&0===this._queue.length){ReadableStreamDefaultControllerClearAlgorithms(this);ReadableStreamClose(r)}else ReadableStreamDefaultControllerCallPullIfNeeded(this);t._chunkSteps(o)}else{ReadableStreamAddReadRequest(r,t);ReadableStreamDefaultControllerCallPullIfNeeded(this)}};return ReadableStreamDefaultController}();Object.defineProperties(X.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},desiredSize:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(X.prototype,r.toStringTag,{value:"ReadableStreamDefaultController",configurable:!0});function IsReadableStreamDefaultController(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_controlledReadableStream")&&t instanceof X}function ReadableStreamDefaultControllerCallPullIfNeeded(t){if(ReadableStreamDefaultControllerShouldCallPull(t))if(t._pulling)t._pullAgain=!0;else{t._pulling=!0;uponPromise(t._pullAlgorithm(),(function(){t._pulling=!1;if(t._pullAgain){t._pullAgain=!1;ReadableStreamDefaultControllerCallPullIfNeeded(t)}}),(function(r){ReadableStreamDefaultControllerError(t,r)}))}}function ReadableStreamDefaultControllerShouldCallPull(t){var r=t._controlledReadableStream;return!!ReadableStreamDefaultControllerCanCloseOrEnqueue(t)&&!!t._started&&(!!(IsReadableStreamLocked(r)&&ReadableStreamGetNumReadRequests(r)>0)||ReadableStreamDefaultControllerGetDesiredSize(t)>0)}function ReadableStreamDefaultControllerClearAlgorithms(t){t._pullAlgorithm=void 0;t._cancelAlgorithm=void 0;t._strategySizeAlgorithm=void 0}function ReadableStreamDefaultControllerClose(t){if(ReadableStreamDefaultControllerCanCloseOrEnqueue(t)){var r=t._controlledReadableStream;t._closeRequested=!0;if(0===t._queue.length){ReadableStreamDefaultControllerClearAlgorithms(t);ReadableStreamClose(r)}}}function ReadableStreamDefaultControllerEnqueue(t,r){if(ReadableStreamDefaultControllerCanCloseOrEnqueue(t)){var o=t._controlledReadableStream;if(IsReadableStreamLocked(o)&&ReadableStreamGetNumReadRequests(o)>0)ReadableStreamFulfillReadRequest(o,r,!1);else{var l=void 0;try{l=t._strategySizeAlgorithm(r)}catch(r){ReadableStreamDefaultControllerError(t,r);throw r}try{EnqueueValueWithSize(t,r,l)}catch(r){ReadableStreamDefaultControllerError(t,r);throw r}}ReadableStreamDefaultControllerCallPullIfNeeded(t)}}function ReadableStreamDefaultControllerError(t,r){var o=t._controlledReadableStream;if("readable"===o._state){ResetQueue(t);ReadableStreamDefaultControllerClearAlgorithms(t);ReadableStreamError(o,r)}}function ReadableStreamDefaultControllerGetDesiredSize(t){var r=t._controlledReadableStream._state;return"errored"===r?null:"closed"===r?0:t._strategyHWM-t._queueTotalSize}function ReadableStreamDefaultControllerCanCloseOrEnqueue(t){var r=t._controlledReadableStream._state;return!t._closeRequested&&"readable"===r}function SetUpReadableStreamDefaultController(t,r,o,l,c,u,h){r._controlledReadableStream=t;r._queue=void 0;r._queueTotalSize=void 0;ResetQueue(r);r._started=!1;r._closeRequested=!1;r._pullAgain=!1;r._pulling=!1;r._strategySizeAlgorithm=h;r._strategyHWM=u;r._pullAlgorithm=l;r._cancelAlgorithm=c;t._readableStreamController=r;uponPromise(promiseResolvedWith(o()),(function(){r._started=!0;ReadableStreamDefaultControllerCallPullIfNeeded(r)}),(function(t){ReadableStreamDefaultControllerError(r,t)}))}function defaultControllerBrandCheckException$1(t){return new TypeError("ReadableStreamDefaultController.prototype."+t+" can only be used on a ReadableStreamDefaultController")}function ReadableStreamTee(t,r){return IsReadableByteStreamController(t._readableStreamController)?function ReadableByteStreamTee(t){var r,o,l,c,u,h=AcquireReadableStreamDefaultReader(t),d=!1,g=!1,y=!1,v=newPromise((function(t){u=t}));function forwardReaderError(t){uponRejection(t._closedPromise,(function(r){if(t===h){ReadableByteStreamControllerError(l._readableStreamController,r);ReadableByteStreamControllerError(c._readableStreamController,r);g&&y||u(void 0)}}))}function pullWithDefaultReader(){if(IsReadableStreamBYOBReader(h)){ReadableStreamReaderGenericRelease(h);forwardReaderError(h=AcquireReadableStreamDefaultReader(t))}ReadableStreamDefaultReaderRead(h,{_chunkSteps:function(r){m((function(){d=!1;var o=r,h=r;if(!g&&!y)try{h=CloneAsUint8Array(r)}catch(r){ReadableByteStreamControllerError(l._readableStreamController,r);ReadableByteStreamControllerError(c._readableStreamController,r);u(ReadableStreamCancel(t,r));return}g||ReadableByteStreamControllerEnqueue(l._readableStreamController,o);y||ReadableByteStreamControllerEnqueue(c._readableStreamController,h)}))},_closeSteps:function(){d=!1;g||ReadableByteStreamControllerClose(l._readableStreamController);y||ReadableByteStreamControllerClose(c._readableStreamController);l._readableStreamController._pendingPullIntos.length>0&&ReadableByteStreamControllerRespond(l._readableStreamController,0);c._readableStreamController._pendingPullIntos.length>0&&ReadableByteStreamControllerRespond(c._readableStreamController,0);g&&y||u(void 0)},_errorSteps:function(){d=!1}})}function pullWithBYOBReader(r,o){if(IsReadableStreamDefaultReader(h)){ReadableStreamReaderGenericRelease(h);forwardReaderError(h=AcquireReadableStreamBYOBReader(t))}var v=o?c:l,S=o?l:c;ReadableStreamBYOBReaderRead(h,r,{_chunkSteps:function(r){m((function(){d=!1;var l=o?y:g;if(o?g:y)l||ReadableByteStreamControllerRespondWithNewView(v._readableStreamController,r);else{var c=void 0;try{c=CloneAsUint8Array(r)}catch(r){ReadableByteStreamControllerError(v._readableStreamController,r);ReadableByteStreamControllerError(S._readableStreamController,r);u(ReadableStreamCancel(t,r));return}l||ReadableByteStreamControllerRespondWithNewView(v._readableStreamController,r);ReadableByteStreamControllerEnqueue(S._readableStreamController,c)}}))},_closeSteps:function(t){d=!1;var r=o?y:g,l=o?g:y;r||ReadableByteStreamControllerClose(v._readableStreamController);l||ReadableByteStreamControllerClose(S._readableStreamController);if(void 0!==t){r||ReadableByteStreamControllerRespondWithNewView(v._readableStreamController,t);!l&&S._readableStreamController._pendingPullIntos.length>0&&ReadableByteStreamControllerRespond(S._readableStreamController,0)}r&&l||u(void 0)},_errorSteps:function(){d=!1}})}function pull1Algorithm(){if(d)return promiseResolvedWith(void 0);d=!0;var t=ReadableByteStreamControllerGetBYOBRequest(l._readableStreamController);null===t?pullWithDefaultReader():pullWithBYOBReader(t._view,!1);return promiseResolvedWith(void 0)}function pull2Algorithm(){if(d)return promiseResolvedWith(void 0);d=!0;var t=ReadableByteStreamControllerGetBYOBRequest(c._readableStreamController);null===t?pullWithDefaultReader():pullWithBYOBReader(t._view,!0);return promiseResolvedWith(void 0)}function cancel1Algorithm(l){g=!0;r=l;if(y){var c=CreateArrayFromList([r,o]),h=ReadableStreamCancel(t,c);u(h)}return v}function cancel2Algorithm(l){y=!0;o=l;if(g){var c=CreateArrayFromList([r,o]),h=ReadableStreamCancel(t,c);u(h)}return v}function startAlgorithm(){}l=CreateReadableByteStream(startAlgorithm,pull1Algorithm,cancel1Algorithm);c=CreateReadableByteStream(startAlgorithm,pull2Algorithm,cancel2Algorithm);forwardReaderError(h);return[l,c]}(t):function ReadableStreamDefaultTee(t,r){var o,l,c,u,h,d=AcquireReadableStreamDefaultReader(t),g=!1,y=!1,v=!1,S=newPromise((function(t){h=t}));function pullAlgorithm(){if(g)return promiseResolvedWith(void 0);g=!0;ReadableStreamDefaultReaderRead(d,{_chunkSteps:function(t){m((function(){g=!1;var r=t,o=t;y||ReadableStreamDefaultControllerEnqueue(c._readableStreamController,r);v||ReadableStreamDefaultControllerEnqueue(u._readableStreamController,o)}))},_closeSteps:function(){g=!1;y||ReadableStreamDefaultControllerClose(c._readableStreamController);v||ReadableStreamDefaultControllerClose(u._readableStreamController);y&&v||h(void 0)},_errorSteps:function(){g=!1}});return promiseResolvedWith(void 0)}function cancel1Algorithm(r){y=!0;o=r;if(v){var c=CreateArrayFromList([o,l]),u=ReadableStreamCancel(t,c);h(u)}return S}function cancel2Algorithm(r){v=!0;l=r;if(y){var c=CreateArrayFromList([o,l]),u=ReadableStreamCancel(t,c);h(u)}return S}function startAlgorithm(){}c=CreateReadableStream(startAlgorithm,pullAlgorithm,cancel1Algorithm);u=CreateReadableStream(startAlgorithm,pullAlgorithm,cancel2Algorithm);uponRejection(d._closedPromise,(function(t){ReadableStreamDefaultControllerError(c._readableStreamController,t);ReadableStreamDefaultControllerError(u._readableStreamController,t);y&&v||h(void 0)}));return[c,u]}(t)}function convertUnderlyingSourceCancelCallback(t,r,o){assertFunction(t,o);return function(o){return promiseCall(t,r,[o])}}function convertUnderlyingSourcePullCallback(t,r,o){assertFunction(t,o);return function(o){return promiseCall(t,r,[o])}}function convertUnderlyingSourceStartCallback(t,r,o){assertFunction(t,o);return function(o){return reflectCall(t,r,[o])}}function convertReadableStreamType(t,r){if("bytes"!=(t=""+t))throw new TypeError(r+" '"+t+"' is not a valid enumeration value for ReadableStreamType");return t}function convertReadableStreamReaderMode(t,r){if("byob"!=(t=""+t))throw new TypeError(r+" '"+t+"' is not a valid enumeration value for ReadableStreamReaderMode");return t}function convertPipeOptions(t,r){assertDictionary(t,r);var o=null==t?void 0:t.preventAbort,l=null==t?void 0:t.preventCancel,c=null==t?void 0:t.preventClose,u=null==t?void 0:t.signal;void 0!==u&&function assertAbortSignal(t,r){if(!function isAbortSignal(t){if("object"!=typeof t||null===t)return!1;try{return"boolean"==typeof t.aborted}catch(t){return!1}}(t))throw new TypeError(r+" is not an AbortSignal.")}(u,r+" has member 'signal' that");return{preventAbort:Boolean(o),preventCancel:Boolean(l),preventClose:Boolean(c),signal:u}}var z=function(){function ReadableStream(t,r){void 0===t&&(t={});void 0===r&&(r={});void 0===t?t=null:assertObject(t,"First parameter");var o=convertQueuingStrategy(r,"Second parameter"),l=function convertUnderlyingDefaultOrByteSource(t,r){assertDictionary(t,r);var o=t,l=null==o?void 0:o.autoAllocateChunkSize,c=null==o?void 0:o.cancel,u=null==o?void 0:o.pull,h=null==o?void 0:o.start,d=null==o?void 0:o.type;return{autoAllocateChunkSize:void 0===l?void 0:convertUnsignedLongLongWithEnforceRange(l,r+" has member 'autoAllocateChunkSize' that"),cancel:void 0===c?void 0:convertUnderlyingSourceCancelCallback(c,o,r+" has member 'cancel' that"),pull:void 0===u?void 0:convertUnderlyingSourcePullCallback(u,o,r+" has member 'pull' that"),start:void 0===h?void 0:convertUnderlyingSourceStartCallback(h,o,r+" has member 'start' that"),type:void 0===d?void 0:convertReadableStreamType(d,r+" has member 'type' that")}}(t,"First parameter");InitializeReadableStream(this);if("bytes"===l.type){if(void 0!==o.size)throw new RangeError("The strategy for a byte stream cannot have a size function");!function SetUpReadableByteStreamControllerFromUnderlyingSource(t,r,o){var l=Object.create(D.prototype),startAlgorithm=function(){},pullAlgorithm=function(){return promiseResolvedWith(void 0)},cancelAlgorithm=function(){return promiseResolvedWith(void 0)};void 0!==r.start&&(startAlgorithm=function(){return r.start(l)});void 0!==r.pull&&(pullAlgorithm=function(){return r.pull(l)});void 0!==r.cancel&&(cancelAlgorithm=function(t){return r.cancel(t)});var c=r.autoAllocateChunkSize;if(0===c)throw new TypeError("autoAllocateChunkSize must be greater than 0");SetUpReadableByteStreamController(t,l,startAlgorithm,pullAlgorithm,cancelAlgorithm,o,c)}(this,l,ExtractHighWaterMark(o,0))}else{var c=ExtractSizeAlgorithm(o);!function SetUpReadableStreamDefaultControllerFromUnderlyingSource(t,r,o,l){var c=Object.create(X.prototype),startAlgorithm=function(){},pullAlgorithm=function(){return promiseResolvedWith(void 0)},cancelAlgorithm=function(){return promiseResolvedWith(void 0)};void 0!==r.start&&(startAlgorithm=function(){return r.start(c)});void 0!==r.pull&&(pullAlgorithm=function(){return r.pull(c)});void 0!==r.cancel&&(cancelAlgorithm=function(t){return r.cancel(t)});SetUpReadableStreamDefaultController(t,c,startAlgorithm,pullAlgorithm,cancelAlgorithm,o,l)}(this,l,ExtractHighWaterMark(o,1),c)}}Object.defineProperty(ReadableStream.prototype,"locked",{get:function(){if(!IsReadableStream(this))throw streamBrandCheckException$1("locked");return IsReadableStreamLocked(this)},enumerable:!1,configurable:!0});ReadableStream.prototype.cancel=function(t){void 0===t&&(t=void 0);return IsReadableStream(this)?IsReadableStreamLocked(this)?promiseRejectedWith(new TypeError("Cannot cancel a stream that already has a reader")):ReadableStreamCancel(this,t):promiseRejectedWith(streamBrandCheckException$1("cancel"))};ReadableStream.prototype.getReader=function(t){void 0===t&&(t=void 0);if(!IsReadableStream(this))throw streamBrandCheckException$1("getReader");return void 0===function convertReaderOptions(t,r){assertDictionary(t,r);var o=null==t?void 0:t.mode;return{mode:void 0===o?void 0:convertReadableStreamReaderMode(o,r+" has member 'mode' that")}}(t,"First parameter").mode?AcquireReadableStreamDefaultReader(this):AcquireReadableStreamBYOBReader(this)};ReadableStream.prototype.pipeThrough=function(t,r){void 0===r&&(r={});if(!IsReadableStream(this))throw streamBrandCheckException$1("pipeThrough");assertRequiredArgument(t,1,"pipeThrough");var o=function convertReadableWritablePair(t,r){assertDictionary(t,r);var o=null==t?void 0:t.readable;assertRequiredField(o,"readable","ReadableWritablePair");assertReadableStream(o,r+" has member 'readable' that");var l=null==t?void 0:t.writable;assertRequiredField(l,"writable","ReadableWritablePair");assertWritableStream(l,r+" has member 'writable' that");return{readable:o,writable:l}}(t,"First parameter"),l=convertPipeOptions(r,"Second parameter");if(IsReadableStreamLocked(this))throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream");if(IsWritableStreamLocked(o.writable))throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream");setPromiseIsHandledToTrue(ReadableStreamPipeTo(this,o.writable,l.preventClose,l.preventAbort,l.preventCancel,l.signal));return o.readable};ReadableStream.prototype.pipeTo=function(t,r){void 0===r&&(r={});if(!IsReadableStream(this))return promiseRejectedWith(streamBrandCheckException$1("pipeTo"));if(void 0===t)return promiseRejectedWith("Parameter 1 is required in 'pipeTo'.");if(!IsWritableStream(t))return promiseRejectedWith(new TypeError("ReadableStream.prototype.pipeTo's first argument must be a WritableStream"));var o;try{o=convertPipeOptions(r,"Second parameter")}catch(t){return promiseRejectedWith(t)}return IsReadableStreamLocked(this)?promiseRejectedWith(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream")):IsWritableStreamLocked(t)?promiseRejectedWith(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream")):ReadableStreamPipeTo(this,t,o.preventClose,o.preventAbort,o.preventCancel,o.signal)};ReadableStream.prototype.tee=function(){if(!IsReadableStream(this))throw streamBrandCheckException$1("tee");return CreateArrayFromList(ReadableStreamTee(this))};ReadableStream.prototype.values=function(t){void 0===t&&(t=void 0);if(!IsReadableStream(this))throw streamBrandCheckException$1("values");return function AcquireReadableStreamAsyncIterator(t,r){var o=AcquireReadableStreamDefaultReader(t),l=new T(o,r),c=Object.create(R);c._asyncIteratorImpl=l;return c}(this,function convertIteratorOptions(t,r){assertDictionary(t,r);var o=null==t?void 0:t.preventCancel;return{preventCancel:Boolean(o)}}(t,"First parameter").preventCancel)};return ReadableStream}();Object.defineProperties(z.prototype,{cancel:{enumerable:!0},getReader:{enumerable:!0},pipeThrough:{enumerable:!0},pipeTo:{enumerable:!0},tee:{enumerable:!0},values:{enumerable:!0},locked:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(z.prototype,r.toStringTag,{value:"ReadableStream",configurable:!0});"symbol"==typeof r.asyncIterator&&Object.defineProperty(z.prototype,r.asyncIterator,{value:z.prototype.values,writable:!0,configurable:!0});function CreateReadableStream(t,r,o,l,c){void 0===l&&(l=1);void 0===c&&(c=function(){return 1});var u=Object.create(z.prototype);InitializeReadableStream(u);SetUpReadableStreamDefaultController(u,Object.create(X.prototype),t,r,o,l,c);return u}function CreateReadableByteStream(t,r,o){var l=Object.create(z.prototype);InitializeReadableStream(l);SetUpReadableByteStreamController(l,Object.create(D.prototype),t,r,o,0,void 0);return l}function InitializeReadableStream(t){t._state="readable";t._reader=void 0;t._storedError=void 0;t._disturbed=!1}function IsReadableStream(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_readableStreamController")&&t instanceof z}function IsReadableStreamLocked(t){return void 0!==t._reader}function ReadableStreamCancel(t,r){t._disturbed=!0;if("closed"===t._state)return promiseResolvedWith(void 0);if("errored"===t._state)return promiseRejectedWith(t._storedError);ReadableStreamClose(t);var o=t._reader;if(void 0!==o&&IsReadableStreamBYOBReader(o)){o._readIntoRequests.forEach((function(t){t._closeSteps(void 0)}));o._readIntoRequests=new g}return transformPromiseWith(t._readableStreamController[S](r),noop)}function ReadableStreamClose(t){t._state="closed";var r=t._reader;if(void 0!==r){defaultReaderClosedPromiseResolve(r);if(IsReadableStreamDefaultReader(r)){r._readRequests.forEach((function(t){t._closeSteps()}));r._readRequests=new g}}}function ReadableStreamError(t,r){t._state="errored";t._storedError=r;var o=t._reader;if(void 0!==o){defaultReaderClosedPromiseReject(o,r);if(IsReadableStreamDefaultReader(o)){o._readRequests.forEach((function(t){t._errorSteps(r)}));o._readRequests=new g}else{o._readIntoRequests.forEach((function(t){t._errorSteps(r)}));o._readIntoRequests=new g}}}function streamBrandCheckException$1(t){return new TypeError("ReadableStream.prototype."+t+" can only be used on a ReadableStream")}function convertQueuingStrategyInit(t,r){assertDictionary(t,r);var o=null==t?void 0:t.highWaterMark;assertRequiredField(o,"highWaterMark","QueuingStrategyInit");return{highWaterMark:convertUnrestrictedDouble(o)}}var byteLengthSizeFunction=function(t){return t.byteLength};Object.defineProperty(byteLengthSizeFunction,"name",{value:"size",configurable:!0});var G=function(){function ByteLengthQueuingStrategy(t){assertRequiredArgument(t,1,"ByteLengthQueuingStrategy");t=convertQueuingStrategyInit(t,"First parameter");this._byteLengthQueuingStrategyHighWaterMark=t.highWaterMark}Object.defineProperty(ByteLengthQueuingStrategy.prototype,"highWaterMark",{get:function(){if(!IsByteLengthQueuingStrategy(this))throw byteLengthBrandCheckException("highWaterMark");return this._byteLengthQueuingStrategyHighWaterMark},enumerable:!1,configurable:!0});Object.defineProperty(ByteLengthQueuingStrategy.prototype,"size",{get:function(){if(!IsByteLengthQueuingStrategy(this))throw byteLengthBrandCheckException("size");return byteLengthSizeFunction},enumerable:!1,configurable:!0});return ByteLengthQueuingStrategy}();Object.defineProperties(G.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(G.prototype,r.toStringTag,{value:"ByteLengthQueuingStrategy",configurable:!0});function byteLengthBrandCheckException(t){return new TypeError("ByteLengthQueuingStrategy.prototype."+t+" can only be used on a ByteLengthQueuingStrategy")}function IsByteLengthQueuingStrategy(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_byteLengthQueuingStrategyHighWaterMark")&&t instanceof G}var countSizeFunction=function(){return 1};Object.defineProperty(countSizeFunction,"name",{value:"size",configurable:!0});var V=function(){function CountQueuingStrategy(t){assertRequiredArgument(t,1,"CountQueuingStrategy");t=convertQueuingStrategyInit(t,"First parameter");this._countQueuingStrategyHighWaterMark=t.highWaterMark}Object.defineProperty(CountQueuingStrategy.prototype,"highWaterMark",{get:function(){if(!IsCountQueuingStrategy(this))throw countBrandCheckException("highWaterMark");return this._countQueuingStrategyHighWaterMark},enumerable:!1,configurable:!0});Object.defineProperty(CountQueuingStrategy.prototype,"size",{get:function(){if(!IsCountQueuingStrategy(this))throw countBrandCheckException("size");return countSizeFunction},enumerable:!1,configurable:!0});return CountQueuingStrategy}();Object.defineProperties(V.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(V.prototype,r.toStringTag,{value:"CountQueuingStrategy",configurable:!0});function countBrandCheckException(t){return new TypeError("CountQueuingStrategy.prototype."+t+" can only be used on a CountQueuingStrategy")}function IsCountQueuingStrategy(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_countQueuingStrategyHighWaterMark")&&t instanceof V}function convertTransformerFlushCallback(t,r,o){assertFunction(t,o);return function(o){return promiseCall(t,r,[o])}}function convertTransformerStartCallback(t,r,o){assertFunction(t,o);return function(o){return reflectCall(t,r,[o])}}function convertTransformerTransformCallback(t,r,o){assertFunction(t,o);return function(o,l){return promiseCall(t,r,[o,l])}}var Y=function(){function TransformStream(t,r,o){void 0===t&&(t={});void 0===r&&(r={});void 0===o&&(o={});void 0===t&&(t=null);var l=convertQueuingStrategy(r,"Second parameter"),c=convertQueuingStrategy(o,"Third parameter"),u=function convertTransformer(t,r){assertDictionary(t,r);var o=null==t?void 0:t.flush,l=null==t?void 0:t.readableType,c=null==t?void 0:t.start,u=null==t?void 0:t.transform,h=null==t?void 0:t.writableType;return{flush:void 0===o?void 0:convertTransformerFlushCallback(o,t,r+" has member 'flush' that"),readableType:l,start:void 0===c?void 0:convertTransformerStartCallback(c,t,r+" has member 'start' that"),transform:void 0===u?void 0:convertTransformerTransformCallback(u,t,r+" has member 'transform' that"),writableType:h}}(t,"First parameter");if(void 0!==u.readableType)throw new RangeError("Invalid readableType specified");if(void 0!==u.writableType)throw new RangeError("Invalid writableType specified");var h,d=ExtractHighWaterMark(c,0),m=ExtractSizeAlgorithm(c),g=ExtractHighWaterMark(l,1),y=ExtractSizeAlgorithm(l);!function InitializeTransformStream(t,r,o,l,c,u){function startAlgorithm(){return r}function writeAlgorithm(r){return function TransformStreamDefaultSinkWriteAlgorithm(t,r){var o=t._transformStreamController;return t._backpressure?transformPromiseWith(t._backpressureChangePromise,(function(){var l=t._writable;if("erroring"===l._state)throw l._storedError;return TransformStreamDefaultControllerPerformTransform(o,r)})):TransformStreamDefaultControllerPerformTransform(o,r)}(t,r)}function abortAlgorithm(r){return function TransformStreamDefaultSinkAbortAlgorithm(t,r){TransformStreamError(t,r);return promiseResolvedWith(void 0)}(t,r)}function closeAlgorithm(){return function TransformStreamDefaultSinkCloseAlgorithm(t){var r=t._readable,o=t._transformStreamController,l=o._flushAlgorithm();TransformStreamDefaultControllerClearAlgorithms(o);return transformPromiseWith(l,(function(){if("errored"===r._state)throw r._storedError;ReadableStreamDefaultControllerClose(r._readableStreamController)}),(function(o){TransformStreamError(t,o);throw r._storedError}))}(t)}t._writable=function CreateWritableStream(t,r,o,l,c,u){void 0===c&&(c=1);void 0===u&&(u=function(){return 1});var h=Object.create(N.prototype);InitializeWritableStream(h);SetUpWritableStreamDefaultController(h,Object.create(W.prototype),t,r,o,l,c,u);return h}(startAlgorithm,writeAlgorithm,closeAlgorithm,abortAlgorithm,o,l);function pullAlgorithm(){return function TransformStreamDefaultSourcePullAlgorithm(t){TransformStreamSetBackpressure(t,!1);return t._backpressureChangePromise}(t)}function cancelAlgorithm(r){TransformStreamErrorWritableAndUnblockWrite(t,r);return promiseResolvedWith(void 0)}t._readable=CreateReadableStream(startAlgorithm,pullAlgorithm,cancelAlgorithm,c,u);t._backpressure=void 0;t._backpressureChangePromise=void 0;t._backpressureChangePromise_resolve=void 0;TransformStreamSetBackpressure(t,!0);t._transformStreamController=void 0}(this,newPromise((function(t){h=t})),g,y,d,m);!function SetUpTransformStreamDefaultControllerFromTransformer(t,r){var o=Object.create(K.prototype),transformAlgorithm=function(t){try{TransformStreamDefaultControllerEnqueue(o,t);return promiseResolvedWith(void 0)}catch(t){return promiseRejectedWith(t)}},flushAlgorithm=function(){return promiseResolvedWith(void 0)};void 0!==r.transform&&(transformAlgorithm=function(t){return r.transform(t,o)});void 0!==r.flush&&(flushAlgorithm=function(){return r.flush(o)});!function SetUpTransformStreamDefaultController(t,r,o,l){r._controlledTransformStream=t;t._transformStreamController=r;r._transformAlgorithm=o;r._flushAlgorithm=l}(t,o,transformAlgorithm,flushAlgorithm)}(this,u);void 0!==u.start?h(u.start(this._transformStreamController)):h(void 0)}Object.defineProperty(TransformStream.prototype,"readable",{get:function(){if(!IsTransformStream(this))throw streamBrandCheckException("readable");return this._readable},enumerable:!1,configurable:!0});Object.defineProperty(TransformStream.prototype,"writable",{get:function(){if(!IsTransformStream(this))throw streamBrandCheckException("writable");return this._writable},enumerable:!1,configurable:!0});return TransformStream}();Object.defineProperties(Y.prototype,{readable:{enumerable:!0},writable:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(Y.prototype,r.toStringTag,{value:"TransformStream",configurable:!0});function IsTransformStream(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_transformStreamController")&&t instanceof Y}function TransformStreamError(t,r){ReadableStreamDefaultControllerError(t._readable._readableStreamController,r);TransformStreamErrorWritableAndUnblockWrite(t,r)}function TransformStreamErrorWritableAndUnblockWrite(t,r){TransformStreamDefaultControllerClearAlgorithms(t._transformStreamController);WritableStreamDefaultControllerErrorIfNeeded(t._writable._writableStreamController,r);t._backpressure&&TransformStreamSetBackpressure(t,!1)}function TransformStreamSetBackpressure(t,r){void 0!==t._backpressureChangePromise&&t._backpressureChangePromise_resolve();t._backpressureChangePromise=newPromise((function(r){t._backpressureChangePromise_resolve=r}));t._backpressure=r}var K=function(){function TransformStreamDefaultController(){throw new TypeError("Illegal constructor")}Object.defineProperty(TransformStreamDefaultController.prototype,"desiredSize",{get:function(){if(!IsTransformStreamDefaultController(this))throw defaultControllerBrandCheckException("desiredSize");return ReadableStreamDefaultControllerGetDesiredSize(this._controlledTransformStream._readable._readableStreamController)},enumerable:!1,configurable:!0});TransformStreamDefaultController.prototype.enqueue=function(t){void 0===t&&(t=void 0);if(!IsTransformStreamDefaultController(this))throw defaultControllerBrandCheckException("enqueue");TransformStreamDefaultControllerEnqueue(this,t)};TransformStreamDefaultController.prototype.error=function(t){void 0===t&&(t=void 0);if(!IsTransformStreamDefaultController(this))throw defaultControllerBrandCheckException("error");!function TransformStreamDefaultControllerError(t,r){TransformStreamError(t._controlledTransformStream,r)}(this,t)};TransformStreamDefaultController.prototype.terminate=function(){if(!IsTransformStreamDefaultController(this))throw defaultControllerBrandCheckException("terminate");!function TransformStreamDefaultControllerTerminate(t){var r=t._controlledTransformStream;ReadableStreamDefaultControllerClose(r._readable._readableStreamController);var o=new TypeError("TransformStream terminated");TransformStreamErrorWritableAndUnblockWrite(r,o)}(this)};return TransformStreamDefaultController}();Object.defineProperties(K.prototype,{enqueue:{enumerable:!0},error:{enumerable:!0},terminate:{enumerable:!0},desiredSize:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(K.prototype,r.toStringTag,{value:"TransformStreamDefaultController",configurable:!0});function IsTransformStreamDefaultController(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_controlledTransformStream")&&t instanceof K}function TransformStreamDefaultControllerClearAlgorithms(t){t._transformAlgorithm=void 0;t._flushAlgorithm=void 0}function TransformStreamDefaultControllerEnqueue(t,r){var o=t._controlledTransformStream,l=o._readable._readableStreamController;if(!ReadableStreamDefaultControllerCanCloseOrEnqueue(l))throw new TypeError("Readable side is not in a state that permits enqueue");try{ReadableStreamDefaultControllerEnqueue(l,r)}catch(t){TransformStreamErrorWritableAndUnblockWrite(o,t);throw o._readable._storedError}var c=function ReadableStreamDefaultControllerHasBackpressure(t){return!ReadableStreamDefaultControllerShouldCallPull(t)}(l);c!==o._backpressure&&TransformStreamSetBackpressure(o,!0)}function TransformStreamDefaultControllerPerformTransform(t,r){return transformPromiseWith(t._transformAlgorithm(r),void 0,(function(r){TransformStreamError(t._controlledTransformStream,r);throw r}))}function defaultControllerBrandCheckException(t){return new TypeError("TransformStreamDefaultController.prototype."+t+" can only be used on a TransformStreamDefaultController")}function streamBrandCheckException(t){return new TypeError("TransformStream.prototype."+t+" can only be used on a TransformStream")}t.ByteLengthQueuingStrategy=G;t.CountQueuingStrategy=V;t.ReadableByteStreamController=D;t.ReadableStream=z;t.ReadableStreamBYOBReader=j;t.ReadableStreamBYOBRequest=M;t.ReadableStreamDefaultController=X;t.ReadableStreamDefaultReader=O;t.TransformStream=Y;t.TransformStreamDefaultController=K;t.WritableStream=N;t.WritableStreamDefaultController=W;t.WritableStreamDefaultWriter=U;Object.defineProperty(t,"__esModule",{value:!0})},o(r);var o},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.clearPrimitiveCaches=function clearPrimitiveCaches(){m._clearCache();d._clearCache();v._clearCache()};r.isCmd=function isCmd(t,r){return t instanceof m&&(void 0===r||t.cmd===r)};r.isDict=function isDict(t,r){return t instanceof y&&(void 0===r||isName(t.get("Type"),r))};r.isName=isName;r.isRef=function isRef(t){return t instanceof v};r.isRefsEqual=function isRefsEqual(t,r){return t.num===r.num&&t.gen===r.gen};r.isStream=function isStream(t){return t instanceof u.BaseStream};r.RefSetCache=r.RefSet=r.Ref=r.Name=r.EOF=r.Dict=r.Cmd=void 0;var l=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(o(2)),c=o(4),u=o(119);function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||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 _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}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 u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function asyncGeneratorStep(t,r,o,l,c,u,h){try{var d=t[u](h),m=d.value}catch(t){o(t);return}d.done?r(m):Promise.resolve(m).then(l,c)}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var h=Symbol("EOF");r.EOF=h;var d=function NameClosure(){var t=Object.create(null);return function(){function Name(t){_classCallCheck(this,Name);this.name=t}_createClass(Name,null,[{key:"get",value:function get(r){var o=t[r];return o||(t[r]=new Name(r))}},{key:"_clearCache",value:function _clearCache(){t=Object.create(null)}}]);return Name}()}();r.Name=d;var m=function CmdClosure(){var t=Object.create(null);return function(){function Cmd(t){_classCallCheck(this,Cmd);this.cmd=t}_createClass(Cmd,null,[{key:"get",value:function get(r){var o=t[r];return o||(t[r]=new Cmd(r))}},{key:"_clearCache",value:function _clearCache(){t=Object.create(null)}}]);return Cmd}()}();r.Cmd=m;var g=function nonSerializableClosure(){return g},y=function(){function Dict(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;_classCallCheck(this,Dict);this._map=Object.create(null);this.xref=t;this.objId=null;this.suppressEncryption=!1;this.__nonSerializable__=g}_createClass(Dict,[{key:"assignXref",value:function assignXref(t){this.xref=t}},{key:"size",get:function get(){return Object.keys(this._map).length}},{key:"get",value:function get(t,r,o){var l=this._map[t];void 0===l&&void 0!==r&&void 0===(l=this._map[r])&&void 0!==o&&(l=this._map[o]);return l instanceof v&&this.xref?this.xref.fetch(l,this.suppressEncryption):l}},{key:"getAsync",value:(t=function _asyncToGenerator(t){return function(){var r=this,o=arguments;return new Promise((function(l,c){var u=t.apply(r,o);function _next(t){asyncGeneratorStep(u,l,c,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(u,l,c,_next,_throw,"throw",t)}_next(void 0)}))}}(l.default.mark((function _callee(t,r,o){var c;return l.default.wrap((function _callee$(l){for(;;)switch(l.prev=l.next){case 0:void 0===(c=this._map[t])&&void 0!==r&&void 0===(c=this._map[r])&&void 0!==o&&(c=this._map[o]);if(!(c instanceof v&&this.xref)){l.next=4;break}return l.abrupt("return",this.xref.fetchAsync(c,this.suppressEncryption));case 4:return l.abrupt("return",c);case 5:case"end":return l.stop()}}),_callee,this)}))),function getAsync(r,o,l){return t.apply(this,arguments)})},{key:"getArray",value:function getArray(t,r,o){var l=this._map[t];void 0===l&&void 0!==r&&void 0===(l=this._map[r])&&void 0!==o&&(l=this._map[o]);l instanceof v&&this.xref&&(l=this.xref.fetch(l,this.suppressEncryption));if(Array.isArray(l))for(var c=0,u=(l=l.slice()).length;c<u;c++)l[c]instanceof v&&this.xref&&(l[c]=this.xref.fetch(l[c],this.suppressEncryption));return l}},{key:"getRaw",value:function getRaw(t){return this._map[t]}},{key:"getKeys",value:function getKeys(){return Object.keys(this._map)}},{key:"getRawValues",value:function getRawValues(){return Object.values(this._map)}},{key:"set",value:function set(t,r){this._map[t]=r}},{key:"has",value:function has(t){return void 0!==this._map[t]}},{key:"forEach",value:function forEach(t){for(var r in this._map)t(r,this.get(r))}}],[{key:"empty",get:function get(){var t=new Dict(null);t.set=function(t,r){(0,c.unreachable)("Should not call `set` on the empty dictionary.")};return(0,c.shadow)(this,"empty",t)}},{key:"merge",value:function merge(t){var r,o=t.xref,l=t.dictArray,c=t.mergeSubDicts,u=void 0!==c&&c,h=new Dict(o),d=new Map,m=_createForOfIteratorHelper(l);try{for(m.s();!(r=m.n()).done;){var g=r.value;if(g instanceof Dict)for(var y=0,v=Object.entries(g._map);y<v.length;y++){var S=_slicedToArray(v[y],2),_=S[0],k=S[1],C=d.get(_);if(void 0===C){C=[];d.set(_,C)}else if(!(u&&k instanceof Dict))continue;C.push(k)}}}catch(t){m.e(t)}finally{m.f()}var w,x=_createForOfIteratorHelper(d);try{for(x.s();!(w=x.n()).done;){var O=_slicedToArray(w.value,2),T=O[0],R=O[1];if(1!==R.length&&R[0]instanceof Dict){var E,M=new Dict(o),D=_createForOfIteratorHelper(R);try{for(D.s();!(E=D.n()).done;)for(var j=E.value,L=0,N=Object.entries(j._map);L<N.length;L++){var U=_slicedToArray(N[L],2),H=U[0],W=U[1];void 0===M._map[H]&&(M._map[H]=W)}}catch(t){D.e(t)}finally{D.f()}M.size>0&&(h._map[T]=M)}else h._map[T]=R[0]}}catch(t){x.e(t)}finally{x.f()}d.clear();return h.size>0?h:Dict.empty}}]);var t;return Dict}();r.Dict=y;var v=function RefClosure(){var t=Object.create(null);return function(){function Ref(t,r){_classCallCheck(this,Ref);this.num=t;this.gen=r}_createClass(Ref,[{key:"toString",value:function toString(){return 0===this.gen?"".concat(this.num,"R"):"".concat(this.num,"R").concat(this.gen)}}],[{key:"get",value:function get(r,o){var l=0===o?"".concat(r,"R"):"".concat(r,"R").concat(o),c=t[l];return c||(t[l]=new Ref(r,o))}},{key:"_clearCache",value:function _clearCache(){t=Object.create(null)}}]);return Ref}()}();r.Ref=v;var S=function(){function RefSet(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;_classCallCheck(this,RefSet);this._set=new Set(t&&t._set)}_createClass(RefSet,[{key:"has",value:function has(t){return this._set.has(t.toString())}},{key:"put",value:function put(t){this._set.add(t.toString())}},{key:"remove",value:function remove(t){this._set.delete(t.toString())}},{key:"forEach",value:function forEach(t){var r,o=_createForOfIteratorHelper(this._set.values());try{for(o.s();!(r=o.n()).done;){t(r.value)}}catch(t){o.e(t)}finally{o.f()}}},{key:"clear",value:function clear(){this._set.clear()}}]);return RefSet}();r.RefSet=S;var _=function(){function RefSetCache(){_classCallCheck(this,RefSetCache);this._map=new Map}_createClass(RefSetCache,[{key:"size",get:function get(){return this._map.size}},{key:"get",value:function get(t){return this._map.get(t.toString())}},{key:"has",value:function has(t){return this._map.has(t.toString())}},{key:"put",value:function put(t,r){this._map.set(t.toString(),r)}},{key:"putAlias",value:function putAlias(t,r){this._map.set(t.toString(),this.get(r))}},{key:"forEach",value:function forEach(t){var r,o=_createForOfIteratorHelper(this._map.values());try{for(o.s();!(r=o.n()).done;){t(r.value)}}catch(t){o.e(t)}finally{o.f()}}},{key:"clear",value:function clear(){this._map.clear()}}]);return RefSetCache}();r.RefSetCache=_;function isName(t,r){return t instanceof d&&(void 0===r||t.name===r)}},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.BaseStream=void 0;var l=o(4);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}var c=function(){function BaseStream(){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,BaseStream);this.constructor===BaseStream&&(0,l.unreachable)("Cannot initialize BaseStream.")}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(BaseStream,[{key:"length",get:function get(){(0,l.unreachable)("Abstract getter `length` accessed")}},{key:"isEmpty",get:function get(){(0,l.unreachable)("Abstract getter `isEmpty` accessed")}},{key:"isDataLoaded",get:function get(){return(0,l.shadow)(this,"isDataLoaded",!0)}},{key:"getByte",value:function getByte(){(0,l.unreachable)("Abstract method `getByte` called")}},{key:"getBytes",value:function getBytes(t){(0,l.unreachable)("Abstract method `getBytes` called")}},{key:"peekByte",value:function peekByte(){var t=this.getByte();-1!==t&&this.pos--;return t}},{key:"peekBytes",value:function peekBytes(t){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=this.getBytes(t,r);this.pos-=o.length;return o}},{key:"getUint16",value:function getUint16(){var t=this.getByte(),r=this.getByte();return-1===t||-1===r?-1:(t<<8)+r}},{key:"getInt32",value:function getInt32(){return(this.getByte()<<24)+(this.getByte()<<16)+(this.getByte()<<8)+this.getByte()}},{key:"getByteRange",value:function getByteRange(t,r){(0,l.unreachable)("Abstract method `getByteRange` called")}},{key:"getString",value:function getString(t){return(0,l.bytesToString)(this.getBytes(t,!1))}},{key:"skip",value:function skip(t){this.pos+=t||1}},{key:"reset",value:function reset(){(0,l.unreachable)("Abstract method `reset` called")}},{key:"moveStart",value:function moveStart(){(0,l.unreachable)("Abstract method `moveStart` called")}},{key:"makeSubStream",value:function makeSubStream(t,r){(0,l.unreachable)("Abstract method `makeSubStream` called")}},{key:"getBaseStreams",value:function getBaseStreams(){return null}}]);return BaseStream}();r.BaseStream=c},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.NetworkPdfManager=r.LocalPdfManager=void 0;var l=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(o(2)),c=o(4),u=o(121),h=o(122),d=o(124),m=o(123);function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t)}function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function asyncGeneratorStep(t,r,o,l,c,u,h){try{var d=t[u](h),m=d.value}catch(t){o(t);return}d.done?r(m):Promise.resolve(m).then(l,c)}function _asyncToGenerator(t){return function(){var r=this,o=arguments;return new Promise((function(l,c){var u=t.apply(r,o);function _next(t){asyncGeneratorStep(u,l,c,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(u,l,c,_next,_throw,"throw",t)}_next(void 0)}))}}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}function parseDocBaseUrl(t){if(t){var r=(0,c.createValidAbsoluteUrl)(t);if(r)return r.href;(0,c.warn)('Invalid absolute docBaseUrl: "'.concat(t,'".'))}return null}var g=function(){function BasePdfManager(){_classCallCheck(this,BasePdfManager);this.constructor===BasePdfManager&&(0,c.unreachable)("Cannot initialize BasePdfManager.")}_createClass(BasePdfManager,[{key:"docId",get:function get(){return this._docId}},{key:"password",get:function get(){return this._password}},{key:"docBaseUrl",get:function get(){return this._docBaseUrl}},{key:"onLoadedStream",value:function onLoadedStream(){(0,c.unreachable)("Abstract method `onLoadedStream` called")}},{key:"ensureDoc",value:function ensureDoc(t,r){return this.ensure(this.pdfDocument,t,r)}},{key:"ensureXRef",value:function ensureXRef(t,r){return this.ensure(this.pdfDocument.xref,t,r)}},{key:"ensureCatalog",value:function ensureCatalog(t,r){return this.ensure(this.pdfDocument.catalog,t,r)}},{key:"getPage",value:function getPage(t){return this.pdfDocument.getPage(t)}},{key:"fontFallback",value:function fontFallback(t,r){return this.pdfDocument.fontFallback(t,r)}},{key:"loadXfaFonts",value:function loadXfaFonts(t,r){return this.pdfDocument.loadXfaFonts(t,r)}},{key:"loadXfaImages",value:function loadXfaImages(){return this.pdfDocument.loadXfaImages()}},{key:"serializeXfaData",value:function serializeXfaData(t){return this.pdfDocument.serializeXfaData(t)}},{key:"cleanup",value:function cleanup(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return this.pdfDocument.cleanup(t)}},{key:"ensure",value:(t=_asyncToGenerator(l.default.mark((function _callee(t,r,o){return l.default.wrap((function _callee$(t){for(;;)switch(t.prev=t.next){case 0:(0,c.unreachable)("Abstract method `ensure` called");case 1:case"end":return t.stop()}}),_callee)}))),function ensure(r,o,l){return t.apply(this,arguments)})},{key:"requestRange",value:function requestRange(t,r){(0,c.unreachable)("Abstract method `requestRange` called")}},{key:"requestLoadedStream",value:function requestLoadedStream(){(0,c.unreachable)("Abstract method `requestLoadedStream` called")}},{key:"sendProgressiveData",value:function sendProgressiveData(t){(0,c.unreachable)("Abstract method `sendProgressiveData` called")}},{key:"updatePassword",value:function updatePassword(t){this._password=t}},{key:"terminate",value:function terminate(t){(0,c.unreachable)("Abstract method `terminate` called")}}]);var t;return BasePdfManager}(),y=function(t){_inherits(LocalPdfManager,t);var r,o=_createSuper(LocalPdfManager);function LocalPdfManager(t,r,l,c,u,h){var g;_classCallCheck(this,LocalPdfManager);(g=o.call(this))._docId=t;g._password=l;g._docBaseUrl=parseDocBaseUrl(h);g.evaluatorOptions=c;g.enableXfa=u;var y=new m.Stream(r);g.pdfDocument=new d.PDFDocument(_assertThisInitialized(g),y);g._loadedStreamPromise=Promise.resolve(y);return g}_createClass(LocalPdfManager,[{key:"ensure",value:(r=_asyncToGenerator(l.default.mark((function _callee2(t,r,o){var c;return l.default.wrap((function _callee2$(l){for(;;)switch(l.prev=l.next){case 0:if("function"!=typeof(c=t[r])){l.next=3;break}return l.abrupt("return",c.apply(t,o));case 3:return l.abrupt("return",c);case 4:case"end":return l.stop()}}),_callee2)}))),function ensure(t,o,l){return r.apply(this,arguments)})},{key:"requestRange",value:function requestRange(t,r){return Promise.resolve()}},{key:"requestLoadedStream",value:function requestLoadedStream(){}},{key:"onLoadedStream",value:function onLoadedStream(){return this._loadedStreamPromise}},{key:"terminate",value:function terminate(t){}}]);return LocalPdfManager}(g);r.LocalPdfManager=y;var v=function(t){_inherits(NetworkPdfManager,t);var r,o=_createSuper(NetworkPdfManager);function NetworkPdfManager(t,r,l,c,h,m){var g;_classCallCheck(this,NetworkPdfManager);(g=o.call(this))._docId=t;g._password=l.password;g._docBaseUrl=parseDocBaseUrl(m);g.msgHandler=l.msgHandler;g.evaluatorOptions=c;g.enableXfa=h;g.streamManager=new u.ChunkedStreamManager(r,{msgHandler:l.msgHandler,length:l.length,disableAutoFetch:l.disableAutoFetch,rangeChunkSize:l.rangeChunkSize});g.pdfDocument=new d.PDFDocument(_assertThisInitialized(g),g.streamManager.getStream());return g}_createClass(NetworkPdfManager,[{key:"ensure",value:(r=_asyncToGenerator(l.default.mark((function _callee3(t,r,o){var c;return l.default.wrap((function _callee3$(l){for(;;)switch(l.prev=l.next){case 0:l.prev=0;if("function"!=typeof(c=t[r])){l.next=4;break}return l.abrupt("return",c.apply(t,o));case 4:return l.abrupt("return",c);case 7:l.prev=7;l.t0=l.catch(0);if(l.t0 instanceof h.MissingDataException){l.next=11;break}throw l.t0;case 11:l.next=13;return this.requestRange(l.t0.begin,l.t0.end);case 13:return l.abrupt("return",this.ensure(t,r,o));case 14:case"end":return l.stop()}}),_callee3,this,[[0,7]])}))),function ensure(t,o,l){return r.apply(this,arguments)})},{key:"requestRange",value:function requestRange(t,r){return this.streamManager.requestRange(t,r)}},{key:"requestLoadedStream",value:function requestLoadedStream(){this.streamManager.requestAllChunks()}},{key:"sendProgressiveData",value:function sendProgressiveData(t){this.streamManager.onReceiveData({chunk:t})}},{key:"onLoadedStream",value:function onLoadedStream(){return this.streamManager.onLoadedStream()}},{key:"terminate",value:function terminate(t){this.streamManager.abort(t)}}]);return NetworkPdfManager}(g);r.NetworkPdfManager=v},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.ChunkedStreamManager=r.ChunkedStream=void 0;var l=o(4),c=o(122);function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);if("Map"===o||"Set"===o)return Array.from(t);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}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 u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var u=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(ChunkedStream,t);var r=_createSuper(ChunkedStream);function ChunkedStream(t,o,l){var c;_classCallCheck(this,ChunkedStream);(c=r.call(this,new Uint8Array(t),0,t,null)).chunkSize=o;c._loadedChunks=new Set;c.numChunks=Math.ceil(t/o);c.manager=l;c.progressiveDataLength=0;c.lastSuccessfulEnsureByteChunk=-1;return c}_createClass(ChunkedStream,[{key:"getMissingChunks",value:function getMissingChunks(){for(var t=[],r=0,o=this.numChunks;r<o;++r)this._loadedChunks.has(r)||t.push(r);return t}},{key:"numChunksLoaded",get:function get(){return this._loadedChunks.size}},{key:"isDataLoaded",get:function get(){return this.numChunksLoaded===this.numChunks}},{key:"onReceiveData",value:function onReceiveData(t,r){var o=this.chunkSize;if(t%o!=0)throw new Error("Bad begin offset: ".concat(t));var l=t+r.byteLength;if(l%o!=0&&l!==this.bytes.length)throw new Error("Bad end offset: ".concat(l));this.bytes.set(new Uint8Array(r),t);for(var c=Math.floor(t/o),u=Math.floor((l-1)/o)+1,h=c;h<u;++h)this._loadedChunks.add(h)}},{key:"onReceiveProgressiveData",value:function onReceiveProgressiveData(t){var r=this.progressiveDataLength,o=Math.floor(r/this.chunkSize);this.bytes.set(new Uint8Array(t),r);r+=t.byteLength;this.progressiveDataLength=r;for(var l=r>=this.end?this.numChunks:Math.floor(r/this.chunkSize),c=o;c<l;++c)this._loadedChunks.add(c)}},{key:"ensureByte",value:function ensureByte(t){if(!(t<this.progressiveDataLength)){var r=Math.floor(t/this.chunkSize);if(r!==this.lastSuccessfulEnsureByteChunk){if(!this._loadedChunks.has(r))throw new c.MissingDataException(t,t+1);this.lastSuccessfulEnsureByteChunk=r}}}},{key:"ensureRange",value:function ensureRange(t,r){if(!(t>=r||r<=this.progressiveDataLength))for(var o=this.chunkSize,l=Math.floor(t/o),u=Math.floor((r-1)/o)+1,h=l;h<u;++h)if(!this._loadedChunks.has(h))throw new c.MissingDataException(t,r)}},{key:"nextEmptyChunk",value:function nextEmptyChunk(t){for(var r=this.numChunks,o=0;o<r;++o){var l=(t+o)%r;if(!this._loadedChunks.has(l))return l}return null}},{key:"hasChunk",value:function hasChunk(t){return this._loadedChunks.has(t)}},{key:"getByte",value:function getByte(){var t=this.pos;if(t>=this.end)return-1;t>=this.progressiveDataLength&&this.ensureByte(t);return this.bytes[this.pos++]}},{key:"getBytes",value:function getBytes(t){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=this.bytes,l=this.pos,c=this.end;if(!t){c>this.progressiveDataLength&&this.ensureRange(l,c);var u=o.subarray(l,c);return r?new Uint8ClampedArray(u):u}var h=l+t;h>c&&(h=c);h>this.progressiveDataLength&&this.ensureRange(l,h);this.pos=h;var d=o.subarray(l,h);return r?new Uint8ClampedArray(d):d}},{key:"getByteRange",value:function getByteRange(t,r){t<0&&(t=0);r>this.end&&(r=this.end);r>this.progressiveDataLength&&this.ensureRange(t,r);return this.bytes.subarray(t,r)}},{key:"makeSubStream",value:function makeSubStream(t,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;r?t+r>this.progressiveDataLength&&this.ensureRange(t,t+r):t>=this.progressiveDataLength&&this.ensureByte(t);function ChunkedStreamSubstream(){}ChunkedStreamSubstream.prototype=Object.create(this);ChunkedStreamSubstream.prototype.getMissingChunks=function(){for(var t=this.chunkSize,r=Math.floor(this.start/t),o=Math.floor((this.end-1)/t)+1,l=[],c=r;c<o;++c)this._loadedChunks.has(c)||l.push(c);return l};Object.defineProperty(ChunkedStreamSubstream.prototype,"isDataLoaded",{get:function get(){return this.numChunksLoaded===this.numChunks||0===this.getMissingChunks().length},configurable:!0});var l=new ChunkedStreamSubstream;l.pos=l.start=t;l.end=t+r||this.end;l.dict=o;return l}},{key:"getBaseStreams",value:function getBaseStreams(){return[this]}}]);return ChunkedStream}(o(123).Stream);r.ChunkedStream=u;var h=function(){function ChunkedStreamManager(t,r){_classCallCheck(this,ChunkedStreamManager);this.length=r.length;this.chunkSize=r.rangeChunkSize;this.stream=new u(this.length,this.chunkSize,this);this.pdfNetworkStream=t;this.disableAutoFetch=r.disableAutoFetch;this.msgHandler=r.msgHandler;this.currRequestId=0;this._chunksNeededByRequest=new Map;this._requestsByChunk=new Map;this._promisesByRequest=new Map;this.progressiveDataLength=0;this.aborted=!1;this._loadedStreamCapability=(0,l.createPromiseCapability)()}_createClass(ChunkedStreamManager,[{key:"onLoadedStream",value:function onLoadedStream(){return this._loadedStreamCapability.promise}},{key:"sendRequest",value:function sendRequest(t,r){var o=this,c=this.pdfNetworkStream.getRangeReader(t,r);c.isStreamingSupported||(c.onProgress=this.onProgress.bind(this));var u=[],h=0;return new Promise((function(t,r){c.read().then((function readChunk(d){try{if(!d.done){var m=d.value;u.push(m);h+=(0,l.arrayByteLength)(m);c.isStreamingSupported&&o.onProgress({loaded:h});c.read().then(readChunk,r);return}var g=(0,l.arraysToBytes)(u);u=null;t(g)}catch(t){r(t)}}),r)})).then((function(r){o.aborted||o.onReceiveData({chunk:r,begin:t})}))}},{key:"requestAllChunks",value:function requestAllChunks(){var t=this.stream.getMissingChunks();this._requestChunks(t);return this._loadedStreamCapability.promise}},{key:"_requestChunks",value:function _requestChunks(t){var r=this,o=this.currRequestId++,c=new Set;this._chunksNeededByRequest.set(o,c);var u,h=_createForOfIteratorHelper(t);try{for(h.s();!(u=h.n()).done;){var d=u.value;this.stream.hasChunk(d)||c.add(d)}}catch(t){h.e(t)}finally{h.f()}if(0===c.size)return Promise.resolve();var m=(0,l.createPromiseCapability)();this._promisesByRequest.set(o,m);var g,y=[],v=_createForOfIteratorHelper(c);try{for(v.s();!(g=v.n()).done;){var S=g.value,_=this._requestsByChunk.get(S);if(!_){_=[];this._requestsByChunk.set(S,_);y.push(S)}_.push(o)}}catch(t){v.e(t)}finally{v.f()}if(y.length>0){var k,C=_createForOfIteratorHelper(this.groupChunks(y));try{for(C.s();!(k=C.n()).done;){var w=k.value,x=w.beginChunk*this.chunkSize,O=Math.min(w.endChunk*this.chunkSize,this.length);this.sendRequest(x,O).catch(m.reject)}}catch(t){C.e(t)}finally{C.f()}}return m.promise.catch((function(t){if(!r.aborted)throw t}))}},{key:"getStream",value:function getStream(){return this.stream}},{key:"requestRange",value:function requestRange(t,r){r=Math.min(r,this.length);for(var o=this.getBeginChunk(t),l=this.getEndChunk(r),c=[],u=o;u<l;++u)c.push(u);return this._requestChunks(c)}},{key:"requestRanges",value:function requestRanges(){var t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],o=[],l=_createForOfIteratorHelper(r);try{for(l.s();!(t=l.n()).done;)for(var c=t.value,u=this.getBeginChunk(c.begin),h=this.getEndChunk(c.end),d=u;d<h;++d)o.includes(d)||o.push(d)}catch(t){l.e(t)}finally{l.f()}o.sort((function(t,r){return t-r}));return this._requestChunks(o)}},{key:"groupChunks",value:function groupChunks(t){for(var r=[],o=-1,l=-1,c=0,u=t.length;c<u;++c){var h=t[c];o<0&&(o=h);if(l>=0&&l+1!==h){r.push({beginChunk:o,endChunk:l+1});o=h}c+1===t.length&&r.push({beginChunk:o,endChunk:h+1});l=h}return r}},{key:"onProgress",value:function onProgress(t){this.msgHandler.send("DocProgress",{loaded:this.stream.numChunksLoaded*this.chunkSize+t.loaded,total:this.length})}},{key:"onReceiveData",value:function onReceiveData(t){var r=t.chunk,o=void 0===t.begin,l=o?this.progressiveDataLength:t.begin,c=l+r.byteLength,u=Math.floor(l/this.chunkSize),h=c<this.length?Math.floor(c/this.chunkSize):Math.ceil(c/this.chunkSize);if(o){this.stream.onReceiveProgressiveData(r);this.progressiveDataLength=c}else this.stream.onReceiveData(l,r);this.stream.isDataLoaded&&this._loadedStreamCapability.resolve(this.stream);for(var d=[],m=u;m<h;++m){var g=this._requestsByChunk.get(m);if(g){this._requestsByChunk.delete(m);var y,v=_createForOfIteratorHelper(g);try{for(v.s();!(y=v.n()).done;){var S=y.value,_=this._chunksNeededByRequest.get(S);_.has(m)&&_.delete(m);_.size>0||d.push(S)}}catch(t){v.e(t)}finally{v.f()}}}if(!this.disableAutoFetch&&0===this._requestsByChunk.size){var k;if(1===this.stream.numChunksLoaded){var C=this.stream.numChunks-1;this.stream.hasChunk(C)||(k=C)}else k=this.stream.nextEmptyChunk(h);Number.isInteger(k)&&this._requestChunks([k])}for(var w=0,x=d;w<x.length;w++){var O=x[w],T=this._promisesByRequest.get(O);this._promisesByRequest.delete(O);T.resolve()}this.msgHandler.send("DocProgress",{loaded:this.stream.numChunksLoaded*this.chunkSize,total:this.length})}},{key:"onError",value:function onError(t){this._loadedStreamCapability.reject(t)}},{key:"getBeginChunk",value:function getBeginChunk(t){return Math.floor(t/this.chunkSize)}},{key:"getEndChunk",value:function getEndChunk(t){return Math.floor((t-1)/this.chunkSize)+1}},{key:"abort",value:function abort(t){this.aborted=!0;this.pdfNetworkStream&&this.pdfNetworkStream.cancelAllRequests(t);var r,o=_createForOfIteratorHelper(this._promisesByRequest.values());try{for(o.s();!(r=o.n()).done;){r.value.reject(t)}}catch(t){o.e(t)}finally{o.f()}}}]);return ChunkedStreamManager}();r.ChunkedStreamManager=h},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.collectActions=function collectActions(t,r,o){var u=Object.create(null),h=getInheritableProperty({dict:r,key:"AA",stopWhenFound:!1});if(h)for(var d=h.length-1;d>=0;d--){var m=h[d];if(m instanceof c.Dict){var g,y=_createForOfIteratorHelper(m.getKeys());try{for(y.s();!(g=y.n()).done;){var v=g.value,S=o[v];if(S){var _=m.getRaw(v),k=new c.RefSet,C=[];_collectJS(_,t,C,k);C.length>0&&(u[S]=C)}}}catch(t){y.e(t)}finally{y.f()}}}if(r.has("A")){var w=r.get("A"),x=new c.RefSet,O=[];_collectJS(w,t,O,x);O.length>0&&(u.Action=O)}return(0,l.objectSize)(u)>0?u:null};r.encodeToXmlString=function encodeToXmlString(t){for(var r=[],o=0,l=0,c=t.length;l<c;l++){var u=t.codePointAt(l);if(32<=u&&u<=126){var h=y[u];if(h){o<l&&r.push(t.substring(o,l));r.push(h);o=l+1}}else{o<l&&r.push(t.substring(o,l));r.push("&#x".concat(u.toString(16).toUpperCase(),";"));u>55295&&(u<57344||u>65533)&&l++;o=l+1}}if(0===r.length)return t;o<t.length&&r.push(t.substring(o,t.length));return r.join("")};r.escapePDFName=function escapePDFName(t){for(var r=[],o=0,l=0,c=t.length;l<c;l++){var u=t.charCodeAt(l);if(u<33||u>126||35===u||40===u||41===u||60===u||62===u||91===u||93===u||123===u||125===u||47===u||37===u){o<l&&r.push(t.substring(o,l));r.push("#".concat(u.toString(16)));o=l+1}}if(0===r.length)return t;o<t.length&&r.push(t.substring(o,t.length));return r.join("")};r.getArrayLookupTableFactory=function getArrayLookupTableFactory(t){var r;return function(){if(t){var o=t();t=null;r=Object.create(null);for(var l=0,c=o.length;l<c;l+=2)r[o[l]]=o[l+1];o=null}return r}};r.getInheritableProperty=getInheritableProperty;r.getLookupTableFactory=function getLookupTableFactory(t){var r;return function(){if(t){r=Object.create(null);t(r);t=null}return r}};r.isWhiteSpace=function isWhiteSpace(t){return 32===t||9===t||13===t||10===t};r.log2=function log2(t){if(t<=0)return 0;return Math.ceil(Math.log2(t))};r.parseXFAPath=function parseXFAPath(t){var r=/(.+)\[(\d+)\]$/;return t.split(".").map((function(t){var o=t.match(r);return o?{name:o[1],pos:parseInt(o[2],10)}:{name:t,pos:0}}))};r.readInt8=function readInt8(t,r){return t[r]<<24>>24};r.readUint16=function readUint16(t,r){return t[r]<<8|t[r+1]};r.readUint32=function readUint32(t,r){return(t[r]<<24|t[r+1]<<16|t[r+2]<<8|t[r+3])>>>0};r.recoverJsURL=function recoverJsURL(t){var r=new RegExp("^\\s*("+["app.launchURL","window.open","xfa.host.gotoURL"].join("|").split(".").join("\\.")+")\\((?:'|\")([^'\"]*)(?:'|\")(?:,\\s*(\\w+)\\)|\\))","i").exec(t);if(r&&r[2]){var o=r[2],l=!1;"true"===r[3]&&"app.launchURL"===r[1]&&(l=!0);return{url:o,newWindow:l}}return null};r.toRomanNumerals=function toRomanNumerals(t){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];(0,l.assert)(Number.isInteger(t)&&t>0,"The number should be a positive integer.");var o,c=[];for(;t>=1e3;){t-=1e3;c.push("M")}o=t/100|0;t%=100;c.push(g[o]);o=t/10|0;t%=10;c.push(g[10+o]);c.push(g[20+t]);var u=c.join("");return r?u.toLowerCase():u};r.validateCSSFont=function validateCSSFont(t){var r=new Set(["100","200","300","400","500","600","700","800","900","1000","normal","bold","bolder","lighter"]),o=t.fontFamily,c=t.fontWeight,u=t.italicAngle;if(/^".*"$/.test(o)){if(/[^\\]"/.test(o.slice(1,o.length-1))){(0,l.warn)('XFA - FontFamily contains some unescaped ": '.concat(o,"."));return!1}}else if(/^'.*'$/.test(o)){if(/[^\\]'/.test(o.slice(1,o.length-1))){(0,l.warn)("XFA - FontFamily contains some unescaped ': ".concat(o,"."));return!1}}else{var h,d=_createForOfIteratorHelper(o.split(/[ \t]+/));try{for(d.s();!(h=d.n()).done;){var m=h.value;if(/^(\d|(-(\d|-)))/.test(m)||!/^[\w-\\]+$/.test(m)){(0,l.warn)("XFA - FontFamily contains some invalid <custom-ident>: ".concat(o,"."));return!1}}}catch(t){d.e(t)}finally{d.f()}}var g=c?c.toString():"";t.fontWeight=r.has(g)?g:"400";var y=parseFloat(u);t.italicAngle=isNaN(y)||y<-90||y>90?"14":u.toString();return!0};r.XRefParseException=r.XRefEntryException=r.ParserEOFException=r.MissingDataException=void 0;var l=o(4),c=o(118);function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);if("Map"===o||"Set"===o)return Array.from(t);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}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 u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var u=function(t){_inherits(MissingDataException,t);var r=_createSuper(MissingDataException);function MissingDataException(t,o){var l;_classCallCheck(this,MissingDataException);(l=r.call(this,"Missing data [".concat(t,", ").concat(o,")"),"MissingDataException")).begin=t;l.end=o;return l}return MissingDataException}(l.BaseException);r.MissingDataException=u;var h=function(t){_inherits(ParserEOFException,t);var r=_createSuper(ParserEOFException);function ParserEOFException(t){_classCallCheck(this,ParserEOFException);return r.call(this,t,"ParserEOFException")}return ParserEOFException}(l.BaseException);r.ParserEOFException=h;var d=function(t){_inherits(XRefEntryException,t);var r=_createSuper(XRefEntryException);function XRefEntryException(t){_classCallCheck(this,XRefEntryException);return r.call(this,t,"XRefEntryException")}return XRefEntryException}(l.BaseException);r.XRefEntryException=d;var m=function(t){_inherits(XRefParseException,t);var r=_createSuper(XRefParseException);function XRefParseException(t){_classCallCheck(this,XRefParseException);return r.call(this,t,"XRefParseException")}return XRefParseException}(l.BaseException);r.XRefParseException=m;function getInheritableProperty(t){for(var r,o=t.dict,l=t.key,u=t.getArray,h=void 0!==u&&u,d=t.stopWhenFound,m=void 0===d||d,g=new c.RefSet;o instanceof c.Dict&&(!o.objId||!g.has(o.objId));){o.objId&&g.put(o.objId);var y=h?o.getArray(l):o.get(l);if(void 0!==y){if(m)return y;r||(r=[]);r.push(y)}o=o.get("Parent")}return r}var g=["","C","CC","CCC","CD","D","DC","DCC","DCCC","CM","","X","XX","XXX","XL","L","LX","LXX","LXXX","XC","","I","II","III","IV","V","VI","VII","VIII","IX"];function _collectJS(t,r,o,u){if(t){var h=null;if((0,c.isRef)(t)){if(u.has(t))return;h=t;u.put(h);t=r.fetch(t)}if(Array.isArray(t)){var d,m=_createForOfIteratorHelper(t);try{for(m.s();!(d=m.n()).done;){_collectJS(d.value,r,o,u)}}catch(t){m.e(t)}finally{m.f()}}else if(t instanceof c.Dict){if((0,c.isName)(t.get("S"),"JavaScript")&&t.has("JS")){var g,y=t.get("JS");g=(0,c.isStream)(y)?y.getString():y;(g=(0,l.stringToPDFString)(g))&&o.push(g)}_collectJS(t.getRaw("Next"),r,o,u)}h&&u.remove(h)}}var y={60:"&lt;",62:"&gt;",38:"&amp;",34:"&quot;",39:"&apos;"}},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.StringStream=r.Stream=r.NullStream=void 0;var l=o(119),c=o(4);function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var u=function(t){_inherits(Stream,t);var r=_createSuper(Stream);function Stream(t,o,l,c){var u;_classCallCheck(this,Stream);(u=r.call(this)).bytes=t instanceof Uint8Array?t:new Uint8Array(t);u.start=o||0;u.pos=u.start;u.end=o+l||u.bytes.length;u.dict=c;return u}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(Stream,[{key:"length",get:function get(){return this.end-this.start}},{key:"isEmpty",get:function get(){return 0===this.length}},{key:"getByte",value:function getByte(){return this.pos>=this.end?-1:this.bytes[this.pos++]}},{key:"getBytes",value:function getBytes(t){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=this.bytes,l=this.pos,c=this.end;if(!t){var u=o.subarray(l,c);return r?new Uint8ClampedArray(u):u}var h=l+t;h>c&&(h=c);this.pos=h;var d=o.subarray(l,h);return r?new Uint8ClampedArray(d):d}},{key:"getByteRange",value:function getByteRange(t,r){t<0&&(t=0);r>this.end&&(r=this.end);return this.bytes.subarray(t,r)}},{key:"reset",value:function reset(){this.pos=this.start}},{key:"moveStart",value:function moveStart(){this.start=this.pos}},{key:"makeSubStream",value:function makeSubStream(t,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return new Stream(this.bytes.buffer,t,r,o)}}]);return Stream}(l.BaseStream);r.Stream=u;var h=function(t){_inherits(StringStream,t);var r=_createSuper(StringStream);function StringStream(t){_classCallCheck(this,StringStream);return r.call(this,(0,c.stringToBytes)(t))}return StringStream}(u);r.StringStream=h;var d=function(t){_inherits(NullStream,t);var r=_createSuper(NullStream);function NullStream(){_classCallCheck(this,NullStream);return r.call(this,new Uint8Array(0))}return NullStream}(u);r.NullStream=d},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.PDFDocument=r.Page=void 0;var l=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(o(2)),c=o(4),u=o(118),h=o(122),d=o(125),m=o(123),g=o(135),y=o(119),v=o(185),S=o(177),_=o(140),k=o(183),C=o(175),w=o(138),x=o(142),O=o(182),T=o(187),R=o(211);function asyncGeneratorStep(t,r,o,l,c,u,h){try{var d=t[u](h),m=d.value}catch(t){o(t);return}d.done?r(m):Promise.resolve(m).then(l,c)}function _asyncToGenerator(t){return function(){var r=this,o=arguments;return new Promise((function(l,c){var u=t.apply(r,o);function _next(t){asyncGeneratorStep(u,l,c,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(u,l,c,_next,_throw,"throw",t)}_next(void 0)}))}}function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||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 _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}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 u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var E=[0,0,612,792],M=function(){function Page(t){var r=t.pdfManager,o=t.xref,l=t.pageIndex,c=t.pageDict,u=t.ref,h=t.globalIdFactory,d=t.fontCache,m=t.builtInCMapCache,g=t.standardFontDataCache,y=t.globalImageCache,v=t.nonBlendModesSet,S=t.xfaFactory;_classCallCheck(this,Page);this.pdfManager=r;this.pageIndex=l;this.pageDict=c;this.xref=o;this.ref=u;this.fontCache=d;this.builtInCMapCache=m;this.standardFontDataCache=g;this.globalImageCache=y;this.nonBlendModesSet=v;this.evaluatorOptions=r.evaluatorOptions;this.resourcesPromise=null;this.xfaFactory=S;var _={obj:0};this._localIdFactory=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(_class,t);var r=_createSuper(_class);function _class(){_classCallCheck(this,_class);return r.apply(this,arguments)}_createClass(_class,null,[{key:"createObjId",value:function createObjId(){return"p".concat(l,"_").concat(++_.obj)}},{key:"getPageObjId",value:function getPageObjId(){return"page".concat(u.toString())}}]);return _class}(h)}_createClass(Page,[{key:"_getInheritableProperty",value:function _getInheritableProperty(t){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=(0,h.getInheritableProperty)({dict:this.pageDict,key:t,getArray:r,stopWhenFound:!1});return Array.isArray(o)?1!==o.length&&(0,u.isDict)(o[0])?u.Dict.merge({xref:this.xref,dictArray:o}):o[0]:o}},{key:"content",get:function get(){return this.pageDict.getArray("Contents")}},{key:"resources",get:function get(){return(0,c.shadow)(this,"resources",this._getInheritableProperty("Resources")||u.Dict.empty)}},{key:"_getBoundingBox",value:function _getBoundingBox(t){if(this.xfaData)return this.xfaData.bbox;var r=this._getInheritableProperty(t,!0);if(Array.isArray(r)&&4===r.length){if(r[2]-r[0]!=0&&r[3]-r[1]!=0)return r;(0,c.warn)("Empty /".concat(t," entry."))}return null}},{key:"mediaBox",get:function get(){return(0,c.shadow)(this,"mediaBox",this._getBoundingBox("MediaBox")||E)}},{key:"cropBox",get:function get(){return(0,c.shadow)(this,"cropBox",this._getBoundingBox("CropBox")||this.mediaBox)}},{key:"userUnit",get:function get(){var t=this.pageDict.get("UserUnit");(!(0,c.isNum)(t)||t<=0)&&(t=1);return(0,c.shadow)(this,"userUnit",t)}},{key:"view",get:function get(){var t,r=this.cropBox,o=this.mediaBox;if(r===o||(0,c.isArrayEqual)(r,o))t=o;else{var l=c.Util.intersect(r,o);l&&l[2]-l[0]!=0&&l[3]-l[1]!=0?t=l:(0,c.warn)("Empty /CropBox and /MediaBox intersection.")}return(0,c.shadow)(this,"view",t||o)}},{key:"rotate",get:function get(){var t=this._getInheritableProperty("Rotate")||0;t%90!=0?t=0:t>=360?t%=360:t<0&&(t=(t%360+360)%360);return(0,c.shadow)(this,"rotate",t)}},{key:"_onSubStreamError",value:function _onSubStreamError(t,r,o){if(!this.evaluatorOptions.ignoreErrors)throw r;t.send("UnsupportedFeature",{featureId:c.UNSUPPORTED_FEATURES.errorContentSubStream});(0,c.warn)("getContentStream - ignoring sub-stream (".concat(o,'): "').concat(r,'".'))}},{key:"getContentStream",value:function getContentStream(t){var r=this;return this.pdfManager.ensure(this,"content").then((function(o){return o instanceof y.BaseStream?o:Array.isArray(o)?new x.StreamsSequenceStream(o,r._onSubStreamError.bind(r,t)):new m.NullStream}))}},{key:"xfaData",get:function get(){return this.xfaFactory?(0,c.shadow)(this,"xfaData",{bbox:this.xfaFactory.getBoundingBox(this.pageIndex)}):(0,c.shadow)(this,"xfaData",null)}},{key:"save",value:function save(t,r,o){var l=new w.PartialEvaluator({xref:this.xref,handler:t,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,options:this.evaluatorOptions});return this._parsedAnnotations.then((function(t){var u,h=[],d=_createForOfIteratorHelper(t);try{for(d.s();!(u=d.n()).done;){var m=u.value;m.mustBePrinted(o)&&h.push(m.save(l,r,o).catch((function(t){(0,c.warn)("save - ignoring annotation data during "+'"'.concat(r.name,'" task: "').concat(t,'".'));return null})))}}catch(t){d.e(t)}finally{d.f()}return Promise.all(h)}))}},{key:"loadResources",value:function loadResources(t){var r=this;this.resourcesPromise||(this.resourcesPromise=this.pdfManager.ensure(this,"resources"));return this.resourcesPromise.then((function(){return new k.ObjectLoader(r.resources,t,r.xref).load()}))}},{key:"getOperatorList",value:function getOperatorList(t){var r=this,o=t.handler,l=t.sink,u=t.task,h=t.intent,d=t.cacheKey,m=t.annotationStorage,g=void 0===m?null:m,y=this.getContentStream(o),v=this.loadResources(["ColorSpace","ExtGState","Font","Pattern","Properties","Shading","XObject"]),S=new w.PartialEvaluator({xref:this.xref,handler:o,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,options:this.evaluatorOptions}),_=Promise.all([y,v]).then((function(t){var c=_slicedToArray(t,1)[0],m=new C.OperatorList(h,l);o.send("StartRenderPage",{transparency:S.hasBlendModes(r.resources,r.nonBlendModesSet),pageIndex:r.pageIndex,cacheKey:d});return S.getOperatorList({stream:c,task:u,resources:r.resources,operatorList:m}).then((function(){return m}))}));return Promise.all([_,this._parsedAnnotations]).then((function(t){var r=_slicedToArray(t,2),o=r[0],l=r[1];if(0===l.length||h&c.RenderingIntentFlag.ANNOTATIONS_DISABLE){o.flush(!0);return{length:o.totalLength}}var d,m=!!(h&c.RenderingIntentFlag.ANNOTATIONS_FORMS),y=!!(h&c.RenderingIntentFlag.ANY),v=!!(h&c.RenderingIntentFlag.DISPLAY),_=!!(h&c.RenderingIntentFlag.PRINT),k=[],C=_createForOfIteratorHelper(l);try{for(C.s();!(d=C.n()).done;){var w=d.value;(y||v&&w.mustBeViewed(g)||_&&w.mustBePrinted(g))&&k.push(w.getOperatorList(S,u,m,g).catch((function(t){(0,c.warn)("getOperatorList - ignoring annotation data during "+'"'.concat(u.name,'" task: "').concat(t,'".'));return null})))}}catch(t){C.e(t)}finally{C.f()}return Promise.all(k).then((function(t){o.addOp(c.OPS.beginAnnotations,[]);var r,l=_createForOfIteratorHelper(t);try{for(l.s();!(r=l.n()).done;){var u=r.value;o.addOpList(u)}}catch(t){l.e(t)}finally{l.f()}o.addOp(c.OPS.endAnnotations,[]);o.flush(!0);return{length:o.totalLength}}))}))}},{key:"extractTextContent",value:function extractTextContent(t){var r=this,o=t.handler,l=t.task,c=t.normalizeWhitespace,u=t.includeMarkedContent,h=t.sink,d=t.combineTextItems,m=this.getContentStream(o),g=this.loadResources(["ExtGState","Font","Properties","XObject"]);return Promise.all([m,g]).then((function(t){var m=_slicedToArray(t,1)[0];return new w.PartialEvaluator({xref:r.xref,handler:o,pageIndex:r.pageIndex,idFactory:r._localIdFactory,fontCache:r.fontCache,builtInCMapCache:r.builtInCMapCache,standardFontDataCache:r.standardFontDataCache,globalImageCache:r.globalImageCache,options:r.evaluatorOptions}).getTextContent({stream:m,task:l,resources:r.resources,normalizeWhitespace:c,includeMarkedContent:u,combineTextItems:d,sink:h})}))}},{key:"getStructTree",value:(t=_asyncToGenerator(l.default.mark((function _callee(){var t,r;return l.default.wrap((function _callee$(o){for(;;)switch(o.prev=o.next){case 0:o.next=2;return this.pdfManager.ensureCatalog("structTreeRoot");case 2:if(t=o.sent){o.next=5;break}return o.abrupt("return",null);case 5:o.next=7;return this.pdfManager.ensure(this,"_parseStructTree",[t]);case 7:r=o.sent;return o.abrupt("return",r.serializable);case 9:case"end":return o.stop()}}),_callee,this)}))),function getStructTree(){return t.apply(this,arguments)})},{key:"_parseStructTree",value:function _parseStructTree(t){var r=new O.StructTreePage(t,this.pageDict);r.parse();return r}},{key:"getAnnotationsData",value:function getAnnotationsData(t){return this._parsedAnnotations.then((function(r){var o=[];if(0===r.length)return o;var l,u=!!(t&c.RenderingIntentFlag.ANY),h=!!(t&c.RenderingIntentFlag.DISPLAY),d=!!(t&c.RenderingIntentFlag.PRINT),m=_createForOfIteratorHelper(r);try{for(m.s();!(l=m.n()).done;){var g=l.value;(u||h&&g.viewable||d&&g.printable)&&o.push(g.data)}}catch(t){m.e(t)}finally{m.f()}return o}))}},{key:"annotations",get:function get(){var t=this._getInheritableProperty("Annots");return(0,c.shadow)(this,"annotations",Array.isArray(t)?t:[])}},{key:"_parsedAnnotations",get:function get(){var t=this,r=this.pdfManager.ensure(this,"annotations").then((function(){var r,o=[],l=_createForOfIteratorHelper(t.annotations);try{for(l.s();!(r=l.n()).done;){var u=r.value;o.push(g.AnnotationFactory.create(t.xref,u,t.pdfManager,t._localIdFactory,!1).catch((function(t){(0,c.warn)('_parsedAnnotations: "'.concat(t,'".'));return null})))}}catch(t){l.e(t)}finally{l.f()}return Promise.all(o).then((function(t){return t.filter((function(t){return!!t}))}))}));return(0,c.shadow)(this,"_parsedAnnotations",r)}},{key:"jsActions",get:function get(){var t=(0,h.collectActions)(this.xref,this.pageDict,c.PageActionEventType);return(0,c.shadow)(this,"jsActions",t)}}]);var t;return Page}();r.Page=M;var D=new Uint8Array([37,80,68,70,45]),j=new Uint8Array([115,116,97,114,116,120,114,101,102]),L=new Uint8Array([101,110,100,111,98,106]),N=/^[1-9]\.\d$/;function find(t,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1024,l=arguments.length>3&&void 0!==arguments[3]&&arguments[3],c=r.length,u=t.peekBytes(o),h=u.length-c;if(h<=0)return!1;if(l)for(var d=c-1,m=u.length-1;m>=d;){for(var g=0;g<c&&u[m-g]===r[d-g];)g++;if(g>=c){t.pos+=m-d;return!0}m--}else for(var y=0;y<=h;){for(var v=0;v<c&&u[y+v]===r[v];)v++;if(v>=c){t.pos+=y;return!0}y++}return!1}var U=function(){function PDFDocument(t,r){_classCallCheck(this,PDFDocument);var o;if((0,u.isStream)(r))o=r;else{if(!(0,c.isArrayBuffer)(r))throw new Error("PDFDocument: Unknown argument type");o=new m.Stream(r)}if(o.length<=0)throw new c.InvalidPDFException("The PDF file is empty, i.e. its size is zero bytes.");this.pdfManager=t;this.stream=o;this.xref=new R.XRef(o,t);this._pagePromises=[];this._version=null;var l={font:0};this._globalIdFactory=function(){function _class2(){_classCallCheck(this,_class2)}_createClass(_class2,null,[{key:"getDocId",value:function getDocId(){return"g_".concat(t.docId)}},{key:"createFontId",value:function createFontId(){return"f".concat(++l.font)}},{key:"createObjId",value:function createObjId(){(0,c.unreachable)("Abstract method `createObjId` called.")}},{key:"getPageObjId",value:function getPageObjId(){(0,c.unreachable)("Abstract method `getPageObjId` called.")}}]);return _class2}()}_createClass(PDFDocument,[{key:"parse",value:function parse(t){this.xref.parse(t);this.catalog=new S.Catalog(this.pdfManager,this.xref);this.catalog.version&&(this._version=this.catalog.version)}},{key:"linearization",get:function get(){var t=null;try{t=_.Linearization.create(this.stream)}catch(t){if(t instanceof h.MissingDataException)throw t;(0,c.info)(t)}return(0,c.shadow)(this,"linearization",t)}},{key:"startXRef",get:function get(){var t=this.stream,r=0;if(this.linearization){t.reset();find(t,L)&&(r=t.pos+6-t.start)}else{for(var o=j.length,l=!1,u=t.end;!l&&u>0;){(u-=1024-o)<0&&(u=0);t.pos=u;l=find(t,j,1024,!0)}if(l){t.skip(9);var d;do{d=t.getByte()}while((0,h.isWhiteSpace)(d));for(var m="";d>=32&&d<=57;){m+=String.fromCharCode(d);d=t.getByte()}r=parseInt(m,10);isNaN(r)&&(r=0)}}return(0,c.shadow)(this,"startXRef",r)}},{key:"checkHeader",value:function checkHeader(){var t=this.stream;t.reset();if(find(t,D)){t.moveStart();for(var r,o="";(r=t.getByte())>32&&!(o.length>=12);)o+=String.fromCharCode(r);this._version||(this._version=o.substring(5))}}},{key:"parseStartXRef",value:function parseStartXRef(){this.xref.setStartXRef(this.startXRef)}},{key:"numPages",get:function get(){if(this.xfaFactory)return(0,c.shadow)(this,"numPages",this.xfaFactory.numberPages);var t=this.linearization,r=t?t.numPages:this.catalog.numPages;return(0,c.shadow)(this,"numPages",r)}},{key:"_hasOnlyDocumentSignatures",value:function _hasOnlyDocumentSignatures(t){var r=this,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,l=10;return!!Array.isArray(t)&&t.every((function(t){if(!((t=r.xref.fetchIfRef(t))instanceof u.Dict))return!1;if(t.has("Kids")){if(++o>l){(0,c.warn)("_hasOnlyDocumentSignatures: maximum recursion depth reached");return!1}return r._hasOnlyDocumentSignatures(t.get("Kids"),o)}var h=(0,u.isName)(t.get("FT"),"Sig"),d=t.get("Rect"),m=Array.isArray(d)&&d.every((function(t){return 0===t}));return h&&m}))}},{key:"xfaData",get:function get(){var t=this.catalog.acroForm;if(!t)return null;var r=t.get("XFA"),o={"xdp:xdp":"",template:"",datasets:"",config:"",connectionSet:"",localeSet:"",stylesheet:"","/xdp:xdp":""};if((0,u.isStream)(r)&&!r.isEmpty)try{o["xdp:xdp"]=(0,c.stringToUTF8String)(r.getString());return o}catch(t){(0,c.warn)("XFA - Invalid utf-8 string.");return null}if(!Array.isArray(r)||0===r.length)return null;for(var l=0,h=r.length;l<h;l+=2){var d=void 0;d=0===l?"xdp:xdp":l===h-2?"/xdp:xdp":r[l];if(o.hasOwnProperty(d)){var m=this.xref.fetchIfRef(r[l+1]);if((0,u.isStream)(m)&&!m.isEmpty)try{o[d]=(0,c.stringToUTF8String)(m.getString())}catch(t){(0,c.warn)("XFA - Invalid utf-8 string.");return null}}}return o}},{key:"xfaFactory",get:function get(){if(this.pdfManager.enableXfa&&this.catalog.needsRendering&&this.formInfo.hasXfa&&!this.formInfo.hasAcroForm){var t=this.xfaData;return(0,c.shadow)(this,"xfaFactory",t?new T.XFAFactory(t):null)}return(0,c.shadow)(this,"xfaFaxtory",null)}},{key:"isPureXfa",get:function get(){return this.xfaFactory&&this.xfaFactory.isValid()}},{key:"htmlForXfa",get:function get(){return this.xfaFactory?this.xfaFactory.getPages():null}},{key:"loadXfaImages",value:(x=_asyncToGenerator(l.default.mark((function _callee2(){var t,r,o,c,h,d,m,g;return l.default.wrap((function _callee2$(l){for(;;)switch(l.prev=l.next){case 0:l.next=2;return this.pdfManager.ensureCatalog("xfaImages");case 2:if(t=l.sent){l.next=5;break}return l.abrupt("return");case 5:r=t.getKeys();o=new k.ObjectLoader(t,r,this.xref);l.next=9;return o.load();case 9:c=new Map;h=_createForOfIteratorHelper(r);l.prev=11;h.s();case 13:if((d=h.n()).done){l.next=21;break}m=d.value;g=t.get(m);if((0,u.isStream)(g)){l.next=18;break}return l.abrupt("continue",19);case 18:c.set(m,g.getBytes());case 19:l.next=13;break;case 21:l.next=26;break;case 23:l.prev=23;l.t0=l.catch(11);h.e(l.t0);case 26:l.prev=26;h.f();return l.finish(26);case 29:this.xfaFactory.setImages(c);case 30:case"end":return l.stop()}}),_callee2,this,[[11,23,26,29]])}))),function loadXfaImages(){return x.apply(this,arguments)})},{key:"loadXfaFonts",value:(y=_asyncToGenerator(l.default.mark((function _callee3(t,r){var o,m,g,y,v,S,_,x,O,T,R,E,M,D,j,L,N,U,H,W,$,q,X,z,G,V,Y,K,J,Q,Z,ee,te,re;return l.default.wrap((function _callee3$(l){for(;;)switch(l.prev=l.next){case 0:l.next=2;return this.pdfManager.ensureCatalog("acroForm");case 2:if(o=l.sent){l.next=5;break}return l.abrupt("return");case 5:l.next=7;return o.getAsync("DR");case 7:if((m=l.sent)instanceof u.Dict){l.next=10;break}return l.abrupt("return");case 10:g=new k.ObjectLoader(m,["Font"],this.xref);l.next=13;return g.load();case 13:if((y=m.get("Font"))instanceof u.Dict){l.next=16;break}return l.abrupt("return");case 16:(v=Object.assign(Object.create(null),this.pdfManager.evaluatorOptions)).useSystemFonts=!1;S=new w.PartialEvaluator({xref:this.xref,handler:t,pageIndex:-1,idFactory:this._globalIdFactory,fontCache:this.catalog.fontCache,builtInCMapCache:this.catalog.builtInCMapCache,standardFontDataCache:this.catalog.standardFontDataCache,options:v});_=new C.OperatorList;x=[];l.t0=function clone(){return this};O={get font(){return x[x.length-1]},set font(t){x.push(t)},clone:l.t0};T=new Map;y.forEach((function(t,r){T.set(t,r)}));R=[];E=_createForOfIteratorHelper(T);l.prev=27;E.s();case 29:if((M=E.n()).done){l.next=44;break}D=_slicedToArray(M.value,2),j=D[0],L=D[1];if((N=L.get("FontDescriptor"))instanceof u.Dict){l.next=34;break}return l.abrupt("continue",42);case 34:U=(U=N.get("FontFamily")).replace(/[ ]+(\d)/g,"$1");H=N.get("FontWeight");W=-N.get("ItalicAngle");$={fontFamily:U,fontWeight:H,italicAngle:W};if((0,h.validateCSSFont)($)){l.next=41;break}return l.abrupt("continue",42);case 41:R.push(S.handleSetFont(m,[u.Name.get(j),1],null,_,r,O,null,$).catch((function(t){(0,c.warn)('loadXfaFonts: "'.concat(t,'".'));return null})));case 42:l.next=29;break;case 44:l.next=49;break;case 46:l.prev=46;l.t1=l.catch(27);E.e(l.t1);case 49:l.prev=49;E.f();return l.finish(49);case 52:l.next=54;return Promise.all(R);case 54:if(q=this.xfaFactory.setFonts(x)){l.next=57;break}return l.abrupt("return");case 57:v.ignoreErrors=!0;R.length=0;x.length=0;X=new Set;z=_createForOfIteratorHelper(q);try{for(z.s();!(G=z.n()).done;){V=G.value;(0,d.getXfaFontName)("".concat(V,"-Regular"))||X.add(V)}}catch(t){z.e(t)}finally{z.f()}X.size&&q.push("PdfJS-Fallback");Y=_createForOfIteratorHelper(q);l.prev=65;Y.s();case 67:if((K=Y.n()).done){l.next=74;break}J=K.value;if(!X.has(J)){l.next=71;break}return l.abrupt("continue",72);case 71:for(Q=0,Z=[{name:"Regular",fontWeight:400,italicAngle:0},{name:"Bold",fontWeight:700,italicAngle:0},{name:"Italic",fontWeight:400,italicAngle:12},{name:"BoldItalic",fontWeight:700,italicAngle:12}];Q<Z.length;Q++){ee=Z[Q];te="".concat(J,"-").concat(ee.name);re=(0,d.getXfaFontDict)(te);R.push(S.handleSetFont(m,[u.Name.get(te),1],null,_,r,O,re,{fontFamily:J,fontWeight:ee.fontWeight,italicAngle:ee.italicAngle}).catch((function(t){(0,c.warn)('loadXfaFonts: "'.concat(t,'".'));return null})))}case 72:l.next=67;break;case 74:l.next=79;break;case 76:l.prev=76;l.t2=l.catch(65);Y.e(l.t2);case 79:l.prev=79;Y.f();return l.finish(79);case 82:l.next=84;return Promise.all(R);case 84:this.xfaFactory.appendFonts(x,X);case 85:case"end":return l.stop()}}),_callee3,this,[[27,46,49,52],[65,76,79,82]])}))),function loadXfaFonts(t,r){return y.apply(this,arguments)})},{key:"serializeXfaData",value:(o=_asyncToGenerator(l.default.mark((function _callee4(t){return l.default.wrap((function _callee4$(r){for(;;)switch(r.prev=r.next){case 0:if(!this.xfaFactory){r.next=2;break}return r.abrupt("return",this.xfaFactory.serializeData(t));case 2:return r.abrupt("return",null);case 3:case"end":return r.stop()}}),_callee4,this)}))),function serializeXfaData(t){return o.apply(this,arguments)})},{key:"formInfo",get:function get(){var t={hasFields:!1,hasAcroForm:!1,hasXfa:!1,hasSignatures:!1},r=this.catalog.acroForm;if(!r)return(0,c.shadow)(this,"formInfo",t);try{var o=r.get("Fields"),l=Array.isArray(o)&&o.length>0;t.hasFields=l;var d=r.get("XFA");t.hasXfa=Array.isArray(d)&&d.length>0||(0,u.isStream)(d)&&!d.isEmpty;var m=!!(1&r.get("SigFlags")),g=m&&this._hasOnlyDocumentSignatures(o);t.hasAcroForm=l&&!g;t.hasSignatures=m}catch(t){if(t instanceof h.MissingDataException)throw t;(0,c.warn)('Cannot fetch form information: "'.concat(t,'".'))}return(0,c.shadow)(this,"formInfo",t)}},{key:"documentInfo",get:function get(){var t={Title:c.isString,Author:c.isString,Subject:c.isString,Keywords:c.isString,Creator:c.isString,Producer:c.isString,CreationDate:c.isString,ModDate:c.isString,Trapped:u.isName},r=this._version;if("string"!=typeof r||!N.test(r)){(0,c.warn)("Invalid PDF header version number: ".concat(r));r=null}var o,l={PDFFormatVersion:r,IsLinearized:!!this.linearization,IsAcroFormPresent:this.formInfo.hasAcroForm,IsXFAPresent:this.formInfo.hasXfa,IsCollectionPresent:!!this.catalog.collection,IsSignaturesPresent:this.formInfo.hasSignatures};try{o=this.xref.trailer.get("Info")}catch(t){if(t instanceof h.MissingDataException)throw t;(0,c.info)("The document information dictionary is invalid.")}if((0,u.isDict)(o)){var d,m=_createForOfIteratorHelper(o.getKeys());try{for(m.s();!(d=m.n()).done;){var g=d.value,y=o.get(g);if(t[g])t[g](y)?l[g]="string"!=typeof y?y:(0,c.stringToPDFString)(y):(0,c.info)('Bad value in document info for "'.concat(g,'".'));else if("string"==typeof g){var v=void 0;if((0,c.isString)(y))v=(0,c.stringToPDFString)(y);else{if(!((0,u.isName)(y)||(0,c.isNum)(y)||(0,c.isBool)(y))){(0,c.info)('Unsupported value in document info for (custom) "'.concat(g,'".'));continue}v=y}l.Custom||(l.Custom=Object.create(null));l.Custom[g]=v}}}catch(t){m.e(t)}finally{m.f()}}return(0,c.shadow)(this,"documentInfo",l)}},{key:"fingerprints",get:function get(){function validate(t){return"string"==typeof t&&t.length>0&&"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"!==t}function hexString(t){for(var r=[],o=0,l=t.length;o<l;o++){var c=t[o].toString(16);r.push(c.padStart(2,"0"))}return r.join("")}var t,r,o=this.xref.trailer.get("ID");if(Array.isArray(o)&&validate(o[0])){t=(0,c.stringToBytes)(o[0]);o[1]!==o[0]&&validate(o[1])&&(r=(0,c.stringToBytes)(o[1]))}else t=(0,v.calculateMD5)(this.stream.getByteRange(0,1024),0,1024);return(0,c.shadow)(this,"fingerprints",[hexString(t),r?hexString(r):null])}},{key:"_getLinearizationPage",value:function _getLinearizationPage(t){var r=this.catalog,o=this.linearization,l=u.Ref.get(o.objectNumberFirst,0);return this.xref.fetchAsync(l).then((function(t){if((0,u.isDict)(t,"Page")||(0,u.isDict)(t)&&!t.has("Type")&&t.has("Contents")){l&&!r.pageKidsCountCache.has(l)&&r.pageKidsCountCache.put(l,1);return[t,l]}throw new c.FormatError("The Linearization dictionary doesn't point to a valid Page dictionary.")})).catch((function(o){(0,c.info)(o);return r.getPageDict(t)}))}},{key:"getPage",value:function getPage(t){var r=this;if(void 0!==this._pagePromises[t])return this._pagePromises[t];var o=this.catalog,l=this.linearization;if(this.xfaFactory)return Promise.resolve(new M({pdfManager:this.pdfManager,xref:this.xref,pageIndex:t,pageDict:u.Dict.empty,ref:null,globalIdFactory:this._globalIdFactory,fontCache:o.fontCache,builtInCMapCache:o.builtInCMapCache,standardFontDataCache:o.standardFontDataCache,globalImageCache:o.globalImageCache,nonBlendModesSet:o.nonBlendModesSet,xfaFactory:this.xfaFactory}));var c=l&&l.pageFirst===t?this._getLinearizationPage(t):o.getPageDict(t);return this._pagePromises[t]=c.then((function(l){var c=_slicedToArray(l,2),u=c[0],h=c[1];return new M({pdfManager:r.pdfManager,xref:r.xref,pageIndex:t,pageDict:u,ref:h,globalIdFactory:r._globalIdFactory,fontCache:o.fontCache,builtInCMapCache:o.builtInCMapCache,standardFontDataCache:o.standardFontDataCache,globalImageCache:o.globalImageCache,nonBlendModesSet:o.nonBlendModesSet,xfaFactory:null})}))}},{key:"checkFirstPage",value:function checkFirstPage(){var t=this;return this.getPage(0).catch(function(){var r=_asyncToGenerator(l.default.mark((function _callee5(r){return l.default.wrap((function _callee5$(o){for(;;)switch(o.prev=o.next){case 0:if(!(r instanceof h.XRefEntryException)){o.next=5;break}t._pagePromises.length=0;o.next=4;return t.cleanup();case 4:throw new h.XRefParseException;case 5:case"end":return o.stop()}}),_callee5)})));return function(t){return r.apply(this,arguments)}}())}},{key:"fontFallback",value:function fontFallback(t,r){return this.catalog.fontFallback(t,r)}},{key:"cleanup",value:(r=_asyncToGenerator(l.default.mark((function _callee6(){var t,r=arguments;return l.default.wrap((function _callee6$(o){for(;;)switch(o.prev=o.next){case 0:t=r.length>0&&void 0!==r[0]&&r[0];return o.abrupt("return",this.catalog?this.catalog.cleanup(t):(0,u.clearPrimitiveCaches)());case 2:case"end":return o.stop()}}),_callee6,this)}))),function cleanup(){return r.apply(this,arguments)})},{key:"_collectFieldObjects",value:function _collectFieldObjects(t,r,o){var l=this.xref.fetchIfRef(r);if(l.has("T")){var u=(0,c.stringToPDFString)(l.get("T"));t=""===t?u:"".concat(t,".").concat(u)}o.has(t)||o.set(t,[]);o.get(t).push(g.AnnotationFactory.create(this.xref,r,this.pdfManager,this._localIdFactory,!0).then((function(t){return t&&t.getFieldObject()})).catch((function(t){(0,c.warn)('_collectFieldObjects: "'.concat(t,'".'));return null})));if(l.has("Kids")){var h,d=_createForOfIteratorHelper(l.get("Kids"));try{for(d.s();!(h=d.n()).done;){var m=h.value;this._collectFieldObjects(t,m,o)}}catch(t){d.e(t)}finally{d.f()}}}},{key:"fieldObjects",get:function get(){if(!this.formInfo.hasFields)return(0,c.shadow)(this,"fieldObjects",Promise.resolve(null));var t,r=Object.create(null),o=new Map,l=_createForOfIteratorHelper(this.catalog.acroForm.get("Fields"));try{for(l.s();!(t=l.n()).done;){var u=t.value;this._collectFieldObjects("",u,o)}}catch(t){l.e(t)}finally{l.f()}var h,d=[],m=_createForOfIteratorHelper(o);try{var g=function _loop(){var t=_slicedToArray(h.value,2),o=t[0],l=t[1];d.push(Promise.all(l).then((function(t){(t=t.filter((function(t){return!!t}))).length>0&&(r[o]=t)})))};for(m.s();!(h=m.n()).done;)g()}catch(t){m.e(t)}finally{m.f()}return(0,c.shadow)(this,"fieldObjects",Promise.all(d).then((function(){return r})))}},{key:"hasJSActions",get:function get(){var t=this.pdfManager.ensureDoc("_parseHasJSActions");return(0,c.shadow)(this,"hasJSActions",t)}},{key:"_parseHasJSActions",value:(t=_asyncToGenerator(l.default.mark((function _callee7(){var t,r,o,c;return l.default.wrap((function _callee7$(l){for(;;)switch(l.prev=l.next){case 0:l.next=2;return Promise.all([this.pdfManager.ensureCatalog("jsActions"),this.pdfManager.ensureDoc("fieldObjects")]);case 2:t=l.sent;r=_slicedToArray(t,2);o=r[0];c=r[1];if(!o){l.next=8;break}return l.abrupt("return",!0);case 8:if(!c){l.next=10;break}return l.abrupt("return",Object.values(c).some((function(t){return t.some((function(t){return null!==t.actions}))})));case 10:return l.abrupt("return",!1);case 11:case"end":return l.stop()}}),_callee7,this)}))),function _parseHasJSActions(){return t.apply(this,arguments)})},{key:"calculationOrderIds",get:function get(){var t=this.catalog.acroForm;if(!t||!t.has("CO"))return(0,c.shadow)(this,"calculationOrderIds",null);var r=t.get("CO");if(!Array.isArray(r)||0===r.length)return(0,c.shadow)(this,"calculationOrderIds",null);var o=r.filter(u.isRef).map((function(t){return t.toString()}));return 0===o.length?(0,c.shadow)(this,"calculationOrderIds",null):(0,c.shadow)(this,"calculationOrderIds",o)}}]);var t,r,o,y,x;return PDFDocument}();r.PDFDocument=U},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.getXfaFontDict=function getXfaFontDict(t){var r=function getXfaFontWidths(t){var r=getXfaFontName(t);if(!r)return null;var o,l=r.baseWidths,c=r.baseMapping,u=r.factors;o=u?l.map((function(t,r){return t*u[r]})):l;var h,d,m=-2,g=[],y=function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}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 u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}(c.map((function(t,r){return[t,r]})).sort((function(t,r){return _slicedToArray(t,1)[0]-_slicedToArray(r,1)[0]})));try{for(y.s();!(d=y.n()).done;){var v=_slicedToArray(d.value,2),S=v[0],_=v[1];if(-1!==S)if(S===m+1){h.push(o[_]);m+=1}else{m=S;h=[o[_]];g.push(S,h)}}}catch(t){y.e(t)}finally{y.f()}return g}(t),o=new c.Dict(null);o.set("BaseFont",c.Name.get(t));o.set("Type",c.Name.get("Font"));o.set("Subtype",c.Name.get("CIDFontType2"));o.set("Encoding",c.Name.get("Identity-H"));o.set("CIDToGIDMap",c.Name.get("Identity"));o.set("W",r);o.set("FirstChar",r[0]);o.set("LastChar",r[r.length-2]+r[r.length-1].length-1);var l=new c.Dict(null);o.set("FontDescriptor",l);var u=new c.Dict(null);u.set("Ordering","Identity");u.set("Registry","Adobe");u.set("Supplement",0);o.set("CIDSystemInfo",u);return o};r.getXfaFontName=getXfaFontName;var l=o(126),c=o(118),u=o(127),h=o(128),d=o(129),m=o(130),g=o(122),y=o(131);function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||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 _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}var v=(0,g.getLookupTableFactory)((function(t){t["MyriadPro-Regular"]=t["PdfJS-Fallback-Regular"]={name:"LiberationSans-Regular",factors:d.MyriadProRegularFactors,baseWidths:h.LiberationSansRegularWidths,baseMapping:h.LiberationSansRegularMapping,metrics:d.MyriadProRegularMetrics};t["MyriadPro-Bold"]=t["PdfJS-Fallback-Bold"]={name:"LiberationSans-Bold",factors:d.MyriadProBoldFactors,baseWidths:h.LiberationSansBoldWidths,baseMapping:h.LiberationSansBoldMapping,metrics:d.MyriadProBoldMetrics};t["MyriadPro-It"]=t["MyriadPro-Italic"]=t["PdfJS-Fallback-Italic"]={name:"LiberationSans-Italic",factors:d.MyriadProItalicFactors,baseWidths:h.LiberationSansItalicWidths,baseMapping:h.LiberationSansItalicMapping,metrics:d.MyriadProItalicMetrics};t["MyriadPro-BoldIt"]=t["MyriadPro-BoldItalic"]=t["PdfJS-Fallback-BoldItalic"]={name:"LiberationSans-BoldItalic",factors:d.MyriadProBoldItalicFactors,baseWidths:h.LiberationSansBoldItalicWidths,baseMapping:h.LiberationSansBoldItalicMapping,metrics:d.MyriadProBoldItalicMetrics};t.ArialMT=t.Arial=t["Arial-Regular"]={name:"LiberationSans-Regular",baseWidths:h.LiberationSansRegularWidths,baseMapping:h.LiberationSansRegularMapping};t["Arial-BoldMT"]=t["Arial-Bold"]={name:"LiberationSans-Bold",baseWidths:h.LiberationSansBoldWidths,baseMapping:h.LiberationSansBoldMapping};t["Arial-ItalicMT"]=t["Arial-Italic"]={name:"LiberationSans-Italic",baseWidths:h.LiberationSansItalicWidths,baseMapping:h.LiberationSansItalicMapping};t["Arial-BoldItalicMT"]=t["Arial-BoldItalic"]={name:"LiberationSans-BoldItalic",baseWidths:h.LiberationSansBoldItalicWidths,baseMapping:h.LiberationSansBoldItalicMapping};t["Calibri-Regular"]={name:"LiberationSans-Regular",factors:l.CalibriRegularFactors,baseWidths:h.LiberationSansRegularWidths,baseMapping:h.LiberationSansRegularMapping,metrics:l.CalibriRegularMetrics};t["Calibri-Bold"]={name:"LiberationSans-Bold",factors:l.CalibriBoldFactors,baseWidths:h.LiberationSansBoldWidths,baseMapping:h.LiberationSansBoldMapping,metrics:l.CalibriBoldMetrics};t["Calibri-Italic"]={name:"LiberationSans-Italic",factors:l.CalibriItalicFactors,baseWidths:h.LiberationSansItalicWidths,baseMapping:h.LiberationSansItalicMapping,metrics:l.CalibriItalicMetrics};t["Calibri-BoldItalic"]={name:"LiberationSans-BoldItalic",factors:l.CalibriBoldItalicFactors,baseWidths:h.LiberationSansBoldItalicWidths,baseMapping:h.LiberationSansBoldItalicMapping,metrics:l.CalibriBoldItalicMetrics};t["Segoeui-Regular"]={name:"LiberationSans-Regular",factors:m.SegoeuiRegularFactors,baseWidths:h.LiberationSansRegularWidths,baseMapping:h.LiberationSansRegularMapping,metrics:m.SegoeuiRegularMetrics};t["Segoeui-Bold"]={name:"LiberationSans-Bold",factors:m.SegoeuiBoldFactors,baseWidths:h.LiberationSansBoldWidths,baseMapping:h.LiberationSansBoldMapping,metrics:m.SegoeuiBoldMetrics};t["Segoeui-Italic"]={name:"LiberationSans-Italic",factors:m.SegoeuiItalicFactors,baseWidths:h.LiberationSansItalicWidths,baseMapping:h.LiberationSansItalicMapping,metrics:m.SegoeuiItalicMetrics};t["Segoeui-BoldItalic"]={name:"LiberationSans-BoldItalic",factors:m.SegoeuiBoldItalicFactors,baseWidths:h.LiberationSansBoldItalicWidths,baseMapping:h.LiberationSansBoldItalicMapping,metrics:m.SegoeuiBoldItalicMetrics};t["Helvetica-Regular"]=t.Helvetica={name:"LiberationSans-Regular",factors:u.HelveticaRegularFactors,baseWidths:h.LiberationSansRegularWidths,baseMapping:h.LiberationSansRegularMapping,metrics:u.HelveticaRegularMetrics};t["Helvetica-Bold"]={name:"LiberationSans-Bold",factors:u.HelveticaBoldFactors,baseWidths:h.LiberationSansBoldWidths,baseMapping:h.LiberationSansBoldMapping,metrics:u.HelveticaBoldMetrics};t["Helvetica-Italic"]={name:"LiberationSans-Italic",factors:u.HelveticaItalicFactors,baseWidths:h.LiberationSansItalicWidths,baseMapping:h.LiberationSansItalicMapping,metrics:u.HelveticaItalicMetrics};t["Helvetica-BoldItalic"]={name:"LiberationSans-BoldItalic",factors:u.HelveticaBoldItalicFactors,baseWidths:h.LiberationSansBoldItalicWidths,baseMapping:h.LiberationSansBoldItalicMapping,metrics:u.HelveticaBoldItalicMetrics}}));function getXfaFontName(t){var r=(0,y.normalizeFontName)(t);return v()[r]}},(t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.CalibriRegularMetrics=r.CalibriRegularFactors=r.CalibriItalicMetrics=r.CalibriItalicFactors=r.CalibriBoldMetrics=r.CalibriBoldItalicMetrics=r.CalibriBoldItalicFactors=r.CalibriBoldFactors=void 0;r.CalibriBoldFactors=[1.3877,1,1,1,.97801,.92482,.89552,.91133,.81988,.97566,.98152,.93548,.93548,1.2798,.85284,.92794,1,.96134,1.54657,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.82845,.82845,.85284,.85284,.85284,.75859,.92138,.83908,.7762,.73293,.87289,.73133,.7514,.81921,.87356,.95958,.59526,.75727,.69225,1.04924,.9121,.86943,.79795,.88198,.77958,.70864,.81055,.90399,.88653,.96017,.82577,.77892,.78257,.97507,1.54657,.97507,.85284,.89552,.90176,.88762,.8785,.75241,.8785,.90518,.95015,.77618,.8785,.88401,.91916,.86304,.88401,.91488,.8785,.8801,.8785,.8785,.91343,.7173,1.04106,.8785,.85075,.95794,.82616,.85162,.79492,.88331,1.69808,.88331,.85284,.97801,.89552,.91133,.89552,.91133,1.7801,.89552,1.24487,1.13254,1.12401,.96839,.85284,.68787,.70645,.85592,.90747,1.01466,1.0088,.90323,1,1.07463,1,.91056,.75806,1.19118,.96839,.78864,.82845,.84133,.75859,.83908,.83908,.83908,.83908,.83908,.83908,.77539,.73293,.73133,.73133,.73133,.73133,.95958,.95958,.95958,.95958,.88506,.9121,.86943,.86943,.86943,.86943,.86943,.85284,.87508,.90399,.90399,.90399,.90399,.77892,.79795,.90807,.88762,.88762,.88762,.88762,.88762,.88762,.8715,.75241,.90518,.90518,.90518,.90518,.88401,.88401,.88401,.88401,.8785,.8785,.8801,.8801,.8801,.8801,.8801,.90747,.89049,.8785,.8785,.8785,.8785,.85162,.8785,.85162,.83908,.88762,.83908,.88762,.83908,.88762,.73293,.75241,.73293,.75241,.73293,.75241,.73293,.75241,.87289,.83016,.88506,.93125,.73133,.90518,.73133,.90518,.73133,.90518,.73133,.90518,.73133,.90518,.81921,.77618,.81921,.77618,.81921,.77618,1,1,.87356,.8785,.91075,.89608,.95958,.88401,.95958,.88401,.95958,.88401,.95958,.88401,.95958,.88401,.76229,.90167,.59526,.91916,1,1,.86304,.69225,.88401,1,1,.70424,.79468,.91926,.88175,.70823,.94903,.9121,.8785,1,1,.9121,.8785,.87802,.88656,.8785,.86943,.8801,.86943,.8801,.86943,.8801,.87402,.89291,.77958,.91343,1,1,.77958,.91343,.70864,.7173,.70864,.7173,.70864,.7173,.70864,.7173,1,1,.81055,.75841,.81055,1.06452,.90399,.8785,.90399,.8785,.90399,.8785,.90399,.8785,.90399,.8785,.90399,.8785,.96017,.95794,.77892,.85162,.77892,.78257,.79492,.78257,.79492,.78257,.79492,.9297,.56892,.83908,.88762,.77539,.8715,.87508,.89049,1,1,.81055,1.04106,1.20528,1.20528,1,1.15543,.70674,.98387,.94721,1.33431,1.45894,.95161,1.06303,.83908,.80352,.57184,.6965,.56289,.82001,.56029,.81235,1.02988,.83908,.7762,.68156,.80367,.73133,.78257,.87356,.86943,.95958,.75727,.89019,1.04924,.9121,.7648,.86943,.87356,.79795,.78275,.81055,.77892,.9762,.82577,.99819,.84896,.95958,.77892,.96108,1.01407,.89049,1.02988,.94211,.96108,.8936,.84021,.87842,.96399,.79109,.89049,1.00813,1.02988,.86077,.87445,.92099,.84723,.86513,.8801,.75638,.85714,.78216,.79586,.87965,.94211,.97747,.78287,.97926,.84971,1.02988,.94211,.8801,.94211,.84971,.73133,1,1,1,1,1,1,1,1,1,1,1,1,.90264,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.90518,1,1,1,1,1,1,1,1,1,1,1,1,.90548,1,1,1,1,1,1,.96017,.95794,.96017,.95794,.96017,.95794,.77892,.85162,1,1,.89552,.90527,1,.90363,.92794,.92794,.92794,.92794,.87012,.87012,.87012,.89552,.89552,1.42259,.71143,1.06152,1,1,1.03372,1.03372,.97171,1.4956,2.2807,.93835,.83406,.91133,.84107,.91133,1,1,1,.72021,1,1.23108,.83489,.88525,.88525,.81499,.90527,1.81055,.90527,1.81055,1.31006,1.53711,.94434,1.08696,1,.95018,.77192,.85284,.90747,1.17534,.69825,.9716,1.37077,.90747,.90747,.85356,.90747,.90747,1.44947,.85284,.8941,.8941,.70572,.8,.70572,.70572,.70572,.70572,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.99862,.99862,1,1,1,1,1,1.08004,.91027,1,1,1,.99862,1,1,1,1,1,1,1,1,1,1,1,1,.90727,.90727,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];r.CalibriBoldMetrics={lineHeight:1.2207,lineGap:.2207};r.CalibriBoldItalicFactors=[1.3877,1,1,1,.97801,.92482,.89552,.91133,.81988,.97566,.98152,.93548,.93548,1.2798,.85284,.92794,1,.96134,1.56239,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.82845,.82845,.85284,.85284,.85284,.75859,.92138,.83908,.7762,.71805,.87289,.73133,.7514,.81921,.87356,.95958,.59526,.75727,.69225,1.04924,.90872,.85938,.79795,.87068,.77958,.69766,.81055,.90399,.88653,.96068,.82577,.77892,.78257,.97507,1.529,.97507,.85284,.89552,.90176,.94908,.86411,.74012,.86411,.88323,.95015,.86411,.86331,.88401,.91916,.86304,.88401,.9039,.86331,.86331,.86411,.86411,.90464,.70852,1.04106,.86331,.84372,.95794,.82616,.84548,.79492,.88331,1.69808,.88331,.85284,.97801,.89552,.91133,.89552,.91133,1.7801,.89552,1.24487,1.13254,1.19129,.96839,.85284,.68787,.70645,.85592,.90747,1.01466,1.0088,.90323,1,1.07463,1,.91056,.75806,1.19118,.96839,.78864,.82845,.84133,.75859,.83908,.83908,.83908,.83908,.83908,.83908,.77539,.71805,.73133,.73133,.73133,.73133,.95958,.95958,.95958,.95958,.88506,.90872,.85938,.85938,.85938,.85938,.85938,.85284,.87068,.90399,.90399,.90399,.90399,.77892,.79795,.90807,.94908,.94908,.94908,.94908,.94908,.94908,.85887,.74012,.88323,.88323,.88323,.88323,.88401,.88401,.88401,.88401,.8785,.86331,.86331,.86331,.86331,.86331,.86331,.90747,.89049,.86331,.86331,.86331,.86331,.84548,.86411,.84548,.83908,.94908,.83908,.94908,.83908,.94908,.71805,.74012,.71805,.74012,.71805,.74012,.71805,.74012,.87289,.79538,.88506,.92726,.73133,.88323,.73133,.88323,.73133,.88323,.73133,.88323,.73133,.88323,.81921,.86411,.81921,.86411,.81921,.86411,1,1,.87356,.86331,.91075,.8777,.95958,.88401,.95958,.88401,.95958,.88401,.95958,.88401,.95958,.88401,.76467,.90167,.59526,.91916,1,1,.86304,.69225,.88401,1,1,.70424,.77312,.91926,.88175,.70823,.94903,.90872,.86331,1,1,.90872,.86331,.86906,.88116,.86331,.85938,.86331,.85938,.86331,.85938,.86331,.87402,.86549,.77958,.90464,1,1,.77958,.90464,.69766,.70852,.69766,.70852,.69766,.70852,.69766,.70852,1,1,.81055,.75841,.81055,1.06452,.90399,.86331,.90399,.86331,.90399,.86331,.90399,.86331,.90399,.86331,.90399,.86331,.96068,.95794,.77892,.84548,.77892,.78257,.79492,.78257,.79492,.78257,.79492,.9297,.56892,.83908,.94908,.77539,.85887,.87068,.89049,1,1,.81055,1.04106,1.20528,1.20528,1,1.15543,.70088,.98387,.94721,1.33431,1.45894,.95161,1.48387,.83908,.80352,.57118,.6965,.56347,.79179,.55853,.80346,1.02988,.83908,.7762,.67174,.86036,.73133,.78257,.87356,.86441,.95958,.75727,.89019,1.04924,.90872,.74889,.85938,.87891,.79795,.7957,.81055,.77892,.97447,.82577,.97466,.87179,.95958,.77892,.94252,.95612,.8753,1.02988,.92733,.94252,.87411,.84021,.8728,.95612,.74081,.8753,1.02189,1.02988,.84814,.87445,.91822,.84723,.85668,.86331,.81344,.87581,.76422,.82046,.96057,.92733,.99375,.78022,.95452,.86015,1.02988,.92733,.86331,.92733,.86015,.73133,1,1,1,1,1,1,1,1,1,1,1,1,.90631,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.88323,1,1,1,1,1,1,1,1,1,1,1,1,.85174,1,1,1,1,1,1,.96068,.95794,.96068,.95794,.96068,.95794,.77892,.84548,1,1,.89552,.90527,1,.90363,.92794,.92794,.92794,.89807,.87012,.87012,.87012,.89552,.89552,1.42259,.71094,1.06152,1,1,1.03372,1.03372,.97171,1.4956,2.2807,.92972,.83406,.91133,.83326,.91133,1,1,1,.72021,1,1.23108,.83489,.88525,.88525,.81499,.90616,1.81055,.90527,1.81055,1.3107,1.53711,.94434,1.08696,1,.95018,.77192,.85284,.90747,1.17534,.69825,.9716,1.37077,.90747,.90747,.85356,.90747,.90747,1.44947,.85284,.8941,.8941,.70572,.8,.70572,.70572,.70572,.70572,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.99862,.99862,1,1,1,1,1,1.08004,.91027,1,1,1,.99862,1,1,1,1,1,1,1,1,1,1,1,1,.90727,.90727,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];r.CalibriBoldItalicMetrics={lineHeight:1.2207,lineGap:.2207};r.CalibriItalicFactors=[1.3877,1,1,1,1.17223,1.1293,.89552,.91133,.80395,1.02269,1.15601,.91056,.91056,1.2798,.85284,.89807,1,.90861,1.39543,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.96309,.96309,.85284,.85284,.85284,.83319,.88071,.8675,.81552,.72346,.85193,.73206,.7522,.81105,.86275,.90685,.6377,.77892,.75593,1.02638,.89249,.84118,.77452,.85374,.75186,.67789,.79776,.88844,.85066,.94309,.77818,.7306,.76659,1.10369,1.38313,1.10369,1.06139,.89552,.8739,.9245,.9245,.83203,.9245,.85865,1.09842,.9245,.9245,1.03297,1.07692,.90918,1.03297,.94959,.9245,.92274,.9245,.9245,1.02933,.77832,1.20562,.9245,.8916,.98986,.86621,.89453,.79004,.94152,1.77256,.94152,.85284,.97801,.89552,.91133,.89552,.91133,1.91729,.89552,1.17889,1.13254,1.16359,.92098,.85284,.68787,.71353,.84737,.90747,1.0088,1.0044,.87683,1,1.09091,1,.92229,.739,1.15642,.92098,.76288,.80504,.80972,.75859,.8675,.8675,.8675,.8675,.8675,.8675,.76318,.72346,.73206,.73206,.73206,.73206,.90685,.90685,.90685,.90685,.86477,.89249,.84118,.84118,.84118,.84118,.84118,.85284,.84557,.88844,.88844,.88844,.88844,.7306,.77452,.86331,.9245,.9245,.9245,.9245,.9245,.9245,.84843,.83203,.85865,.85865,.85865,.85865,.82601,.82601,.82601,.82601,.94469,.9245,.92274,.92274,.92274,.92274,.92274,.90747,.86651,.9245,.9245,.9245,.9245,.89453,.9245,.89453,.8675,.9245,.8675,.9245,.8675,.9245,.72346,.83203,.72346,.83203,.72346,.83203,.72346,.83203,.85193,.8875,.86477,.99034,.73206,.85865,.73206,.85865,.73206,.85865,.73206,.85865,.73206,.85865,.81105,.9245,.81105,.9245,.81105,.9245,1,1,.86275,.9245,.90872,.93591,.90685,.82601,.90685,.82601,.90685,.82601,.90685,1.03297,.90685,.82601,.77896,1.05611,.6377,1.07692,1,1,.90918,.75593,1.03297,1,1,.76032,.9375,.98156,.93407,.77261,1.11429,.89249,.9245,1,1,.89249,.9245,.92534,.86698,.9245,.84118,.92274,.84118,.92274,.84118,.92274,.8667,.86291,.75186,1.02933,1,1,.75186,1.02933,.67789,.77832,.67789,.77832,.67789,.77832,.67789,.77832,1,1,.79776,.97655,.79776,1.23023,.88844,.9245,.88844,.9245,.88844,.9245,.88844,.9245,.88844,.9245,.88844,.9245,.94309,.98986,.7306,.89453,.7306,.76659,.79004,.76659,.79004,.76659,.79004,1.09231,.54873,.8675,.9245,.76318,.84843,.84557,.86651,1,1,.79776,1.20562,1.18622,1.18622,1,1.1437,.67009,.96334,.93695,1.35191,1.40909,.95161,1.48387,.8675,.90861,.6192,.7363,.64824,.82411,.56321,.85696,1.23516,.8675,.81552,.7286,.84134,.73206,.76659,.86275,.84369,.90685,.77892,.85871,1.02638,.89249,.75828,.84118,.85984,.77452,.76466,.79776,.7306,.90782,.77818,.903,.87291,.90685,.7306,.99058,1.03667,.94635,1.23516,.9849,.99058,.92393,.8916,.942,1.03667,.75026,.94635,1.0297,1.23516,.90918,.94048,.98217,.89746,.84153,.92274,.82507,.88832,.84438,.88178,1.03525,.9849,1.00225,.78086,.97248,.89404,1.23516,.9849,.92274,.9849,.89404,.73206,1,1,1,1,1,1,1,1,1,1,1,1,.89693,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.85865,1,1,1,1,1,1,1,1,1,1,1,1,.90933,1,1,1,1,1,1,.94309,.98986,.94309,.98986,.94309,.98986,.7306,.89453,1,1,.89552,.90527,1,.90186,1.12308,1.12308,1.12308,1.12308,1.2566,1.2566,1.2566,.89552,.89552,1.42259,.68994,1.03809,1,1,1.0176,1.0176,1.11523,1.4956,2.01462,.97858,.82616,.91133,.83437,.91133,1,1,1,.70508,1,1.23108,.79801,.84426,.84426,.774,.90572,1.81055,.90749,1.81055,1.28809,1.55469,.94434,1.07806,1,.97094,.7589,.85284,.90747,1.19658,.69825,.97622,1.33512,.90747,.90747,.85284,.90747,.90747,1.44947,.85284,.8941,.8941,.70572,.8,.70572,.70572,.70572,.70572,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.99862,.99862,1,1,1,1,1,1.0336,.91027,1,1,1,.99862,1,1,1,1,1,1,1,1,1,1,1,1,1.05859,1.05859,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];r.CalibriItalicMetrics={lineHeight:1.2207,lineGap:.2207};r.CalibriRegularFactors=[1.3877,1,1,1,1.17223,1.1293,.89552,.91133,.80395,1.02269,1.15601,.91056,.91056,1.2798,.85284,.89807,1,.90861,1.39016,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.96309,.96309,.85284,.85284,.85284,.83319,.88071,.8675,.81552,.73834,.85193,.73206,.7522,.81105,.86275,.90685,.6377,.77892,.75593,1.02638,.89385,.85122,.77452,.86503,.75186,.68887,.79776,.88844,.85066,.94258,.77818,.7306,.76659,1.10369,1.39016,1.10369,1.06139,.89552,.8739,.86128,.94469,.8457,.94469,.89464,1.09842,.84636,.94469,1.03297,1.07692,.90918,1.03297,.95897,.94469,.9482,.94469,.94469,1.04692,.78223,1.20562,.94469,.90332,.98986,.86621,.90527,.79004,.94152,1.77256,.94152,.85284,.97801,.89552,.91133,.89552,.91133,1.91729,.89552,1.17889,1.13254,1.08707,.92098,.85284,.68787,.71353,.84737,.90747,1.0088,1.0044,.87683,1,1.09091,1,.92229,.739,1.15642,.92098,.76288,.80504,.80972,.75859,.8675,.8675,.8675,.8675,.8675,.8675,.76318,.73834,.73206,.73206,.73206,.73206,.90685,.90685,.90685,.90685,.86477,.89385,.85122,.85122,.85122,.85122,.85122,.85284,.85311,.88844,.88844,.88844,.88844,.7306,.77452,.86331,.86128,.86128,.86128,.86128,.86128,.86128,.8693,.8457,.89464,.89464,.89464,.89464,.82601,.82601,.82601,.82601,.94469,.94469,.9482,.9482,.9482,.9482,.9482,.90747,.86651,.94469,.94469,.94469,.94469,.90527,.94469,.90527,.8675,.86128,.8675,.86128,.8675,.86128,.73834,.8457,.73834,.8457,.73834,.8457,.73834,.8457,.85193,.92454,.86477,.9921,.73206,.89464,.73206,.89464,.73206,.89464,.73206,.89464,.73206,.89464,.81105,.84636,.81105,.84636,.81105,.84636,1,1,.86275,.94469,.90872,.95786,.90685,.82601,.90685,.82601,.90685,.82601,.90685,1.03297,.90685,.82601,.77741,1.05611,.6377,1.07692,1,1,.90918,.75593,1.03297,1,1,.76032,.90452,.98156,1.11842,.77261,1.11429,.89385,.94469,1,1,.89385,.94469,.95877,.86901,.94469,.85122,.9482,.85122,.9482,.85122,.9482,.8667,.90016,.75186,1.04692,1,1,.75186,1.04692,.68887,.78223,.68887,.78223,.68887,.78223,.68887,.78223,1,1,.79776,.92188,.79776,1.23023,.88844,.94469,.88844,.94469,.88844,.94469,.88844,.94469,.88844,.94469,.88844,.94469,.94258,.98986,.7306,.90527,.7306,.76659,.79004,.76659,.79004,.76659,.79004,1.09231,.54873,.8675,.86128,.76318,.8693,.85311,.86651,1,1,.79776,1.20562,1.18622,1.18622,1,1.1437,.67742,.96334,.93695,1.35191,1.40909,.95161,1.48387,.86686,.90861,.62267,.74359,.65649,.85498,.56963,.88254,1.23516,.8675,.81552,.75443,.84503,.73206,.76659,.86275,.85122,.90685,.77892,.85746,1.02638,.89385,.75657,.85122,.86275,.77452,.74171,.79776,.7306,.95165,.77818,.89772,.88831,.90685,.7306,.98142,1.02191,.96576,1.23516,.99018,.98142,.9236,.89258,.94035,1.02191,.78848,.96576,.9561,1.23516,.90918,.92578,.95424,.89746,.83969,.9482,.80113,.89442,.85208,.86155,.98022,.99018,1.00452,.81209,.99247,.89181,1.23516,.99018,.9482,.99018,.89181,.73206,1,1,1,1,1,1,1,1,1,1,1,1,.88844,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.89464,1,1,1,1,1,1,1,1,1,1,1,1,.96766,1,1,1,1,1,1,.94258,.98986,.94258,.98986,.94258,.98986,.7306,.90527,1,1,.89552,.90527,1,.90186,1.12308,1.12308,1.12308,1.12308,1.2566,1.2566,1.2566,.89552,.89552,1.42259,.69043,1.03809,1,1,1.0176,1.0176,1.11523,1.4956,2.01462,.99331,.82616,.91133,.84286,.91133,1,1,1,.70508,1,1.23108,.79801,.84426,.84426,.774,.90527,1.81055,.90527,1.81055,1.28809,1.55469,.94434,1.07806,1,.97094,.7589,.85284,.90747,1.19658,.69825,.97622,1.33512,.90747,.90747,.85356,.90747,.90747,1.44947,.85284,.8941,.8941,.70572,.8,.70572,.70572,.70572,.70572,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.99862,.99862,1,1,1,1,1,1.0336,.91027,1,1,1,.99862,1,1,1,1,1,1,1,1,1,1,1,1,1.05859,1.05859,1,1,1,1.07185,.99413,.96334,1.08065,1,1,1,1,1,1,1,1,1,1,1];r.CalibriRegularMetrics={lineHeight:1.2207,lineGap:.2207}},(t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.HelveticaRegularMetrics=r.HelveticaRegularFactors=r.HelveticaItalicMetrics=r.HelveticaItalicFactors=r.HelveticaBoldMetrics=r.HelveticaBoldItalicMetrics=r.HelveticaBoldItalicFactors=r.HelveticaBoldFactors=void 0;r.HelveticaBoldFactors=[.76116,1,1,1.0006,.99998,.99974,.99973,.99973,.99982,.99977,1.00087,.99998,.99998,.99959,1.00003,1.0006,.99998,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99998,1,1.00003,1.00003,1.00003,1.00026,.9999,.99977,.99977,.99977,.99977,1.00001,1.00026,1.00022,.99977,1.0006,.99973,.99977,1.00026,.99999,.99977,1.00022,1.00001,1.00022,.99977,1.00001,1.00026,.99977,1.00001,1.00016,1.00001,1.00001,1.00026,.99998,1.0006,.99998,1.00003,.99973,.99998,.99973,1.00026,.99973,1.00026,.99973,.99998,1.00026,1.00026,1.0006,1.0006,.99973,1.0006,.99982,1.00026,1.00026,1.00026,1.00026,.99959,.99973,.99998,1.00026,.99973,1.00022,.99973,.99973,1,.99959,1.00077,.99959,1.00003,.99998,.99973,.99973,.99973,.99973,1.00077,.99973,.99998,1.00025,.99968,.99973,1.00003,1.00025,.60299,1.00024,1.06409,1,1,.99998,1,.99973,1.0006,.99998,1,.99936,.99973,1.00002,1.00002,1.00002,1.00026,.99977,.99977,.99977,.99977,.99977,.99977,1,.99977,1.00001,1.00001,1.00001,1.00001,1.0006,1.0006,1.0006,1.0006,.99977,.99977,1.00022,1.00022,1.00022,1.00022,1.00022,1.00003,1.00022,.99977,.99977,.99977,.99977,1.00001,1.00001,1.00026,.99973,.99973,.99973,.99973,.99973,.99973,.99982,.99973,.99973,.99973,.99973,.99973,1.0006,1.0006,1.0006,1.0006,1.00026,1.00026,1.00026,1.00026,1.00026,1.00026,1.00026,1.06409,1.00026,1.00026,1.00026,1.00026,1.00026,.99973,1.00026,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,1.03374,.99977,1.00026,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,.99977,1.00026,.99977,1.00026,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.00042,.99973,.99973,1.0006,.99977,.99973,.99973,1.00026,1.0006,1.00026,1.0006,1.00026,1.03828,1.00026,.99999,1.00026,1.0006,.99977,1.00026,.99977,1.00026,.99977,1.00026,.9993,.9998,1.00026,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,1,1.00016,.99977,.99959,.99977,.99959,.99977,.99959,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00026,.99998,1.00026,.8121,1.00026,.99998,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,1.00016,1.00022,1.00001,.99973,1.00001,1.00026,1,1.00026,1,1.00026,1,1.0006,.99973,.99977,.99973,1,.99982,1.00022,1.00026,1.00001,.99973,1.00026,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,1.00034,.99977,1,.99997,1.00026,1.00078,1.00036,.99973,1.00013,1.0006,.99977,.99977,.99988,.85148,1.00001,1.00026,.99977,1.00022,1.0006,.99977,1.00001,.99999,.99977,1.00069,1.00022,.99977,1.00001,.99984,1.00026,1.00001,1.00024,1.00001,.9999,1,1.0006,1.00001,1.00041,.99962,1.00026,1.0006,.99995,1.00041,.99942,.99973,.99927,1.00082,.99902,1.00026,1.00087,1.0006,1.00069,.99973,.99867,.99973,.9993,1.00026,1.00049,1.00056,1,.99988,.99935,.99995,.99954,1.00055,.99945,1.00032,1.0006,.99995,1.00026,.99995,1.00032,1.00001,1.00008,.99971,1.00019,.9994,1.00001,1.0006,1.00044,.99973,1.00023,1.00047,1,.99942,.99561,.99989,1.00035,.99977,1.00035,.99977,1.00019,.99944,1.00001,1.00021,.99926,1.00035,1.00035,.99942,1.00048,.99999,.99977,1.00022,1.00035,1.00001,.99977,1.00026,.99989,1.00057,1.00001,.99936,1.00052,1.00012,.99996,1.00043,1,1.00035,.9994,.99976,1.00035,.99973,1.00052,1.00041,1.00119,1.00037,.99973,1.00002,.99986,1.00041,1.00041,.99902,.9996,1.00034,.99999,1.00026,.99999,1.00026,.99973,1.00052,.99973,1,.99973,1.00041,1.00075,.9994,1.0003,.99999,1,1.00041,.99955,1,.99915,.99973,.99973,1.00026,1.00119,.99955,.99973,1.0006,.99911,1.0006,1.00026,.99972,1.00026,.99902,1.00041,.99973,.99999,1,1,1.00038,1.0005,1.00016,1.00022,1.00016,1.00022,1.00016,1.00022,1.00001,.99973,1,1,.99973,1,1,.99955,1.0006,1.0006,1.0006,1.0006,1,1,1,.99973,.99973,.99972,1,1,1.00106,.99999,.99998,.99998,.99999,.99998,1.66475,1,.99973,.99973,1.00023,.99973,.99971,1.00047,1.00023,1,.99991,.99984,1.00002,1.00002,1.00002,1.00002,1,1,1,1,1,1,1,.99972,1,1.20985,1.39713,1.00003,1.00031,1.00015,1,.99561,1.00027,1.00031,1.00031,.99915,1.00031,1.00031,.99999,1.00003,.99999,.99999,1.41144,1.6,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.40579,1.40579,1.36625,.99999,1,.99861,.99861,1,1.00026,1.00026,1.00026,1.00026,.99972,.99999,.99999,.99999,.99999,1.40483,1,.99977,1.00054,1,1,.99953,.99962,1.00042,.9995,1,1,1,1,1,1,1,1,.99998,.99998,.99998,.99998,1,1,1,1,1,1,1,1,1,1,1];r.HelveticaBoldMetrics={lineHeight:1.2,lineGap:.2};r.HelveticaBoldItalicFactors=[.76116,1,1,1.0006,.99998,.99974,.99973,.99973,.99982,.99977,1.00087,.99998,.99998,.99959,1.00003,1.0006,.99998,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99998,1,1.00003,1.00003,1.00003,1.00026,.9999,.99977,.99977,.99977,.99977,1.00001,1.00026,1.00022,.99977,1.0006,.99973,.99977,1.00026,.99999,.99977,1.00022,1.00001,1.00022,.99977,1.00001,1.00026,.99977,1.00001,1.00016,1.00001,1.00001,1.00026,.99998,1.0006,.99998,1.00003,.99973,.99998,.99973,1.00026,.99973,1.00026,.99973,.99998,1.00026,1.00026,1.0006,1.0006,.99973,1.0006,.99982,1.00026,1.00026,1.00026,1.00026,.99959,.99973,.99998,1.00026,.99973,1.00022,.99973,.99973,1,.99959,1.00077,.99959,1.00003,.99998,.99973,.99973,.99973,.99973,1.00077,.99973,.99998,1.00025,.99968,.99973,1.00003,1.00025,.60299,1.00024,1.06409,1,1,.99998,1,.99973,1.0006,.99998,1,.99936,.99973,1.00002,1.00002,1.00002,1.00026,.99977,.99977,.99977,.99977,.99977,.99977,1,.99977,1.00001,1.00001,1.00001,1.00001,1.0006,1.0006,1.0006,1.0006,.99977,.99977,1.00022,1.00022,1.00022,1.00022,1.00022,1.00003,1.00022,.99977,.99977,.99977,.99977,1.00001,1.00001,1.00026,.99973,.99973,.99973,.99973,.99973,.99973,.99982,.99973,.99973,.99973,.99973,.99973,1.0006,1.0006,1.0006,1.0006,1.00026,1.00026,1.00026,1.00026,1.00026,1.00026,1.00026,1.06409,1.00026,1.00026,1.00026,1.00026,1.00026,.99973,1.00026,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,1.0044,.99977,1.00026,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,.99977,1.00026,.99977,1.00026,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,.99971,.99973,.99973,1.0006,.99977,.99973,.99973,1.00026,1.0006,1.00026,1.0006,1.00026,1.01011,1.00026,.99999,1.00026,1.0006,.99977,1.00026,.99977,1.00026,.99977,1.00026,.9993,.9998,1.00026,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,1,1.00016,.99977,.99959,.99977,.99959,.99977,.99959,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00026,.99998,1.00026,.8121,1.00026,.99998,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,1.00016,1.00022,1.00001,.99973,1.00001,1.00026,1,1.00026,1,1.00026,1,1.0006,.99973,.99977,.99973,1,.99982,1.00022,1.00026,1.00001,.99973,1.00026,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99977,1,1,1.00026,.99969,.99972,.99981,.9998,1.0006,.99977,.99977,1.00022,.91155,1.00001,1.00026,.99977,1.00022,1.0006,.99977,1.00001,.99999,.99977,.99966,1.00022,1.00032,1.00001,.99944,1.00026,1.00001,.99968,1.00001,1.00047,1,1.0006,1.00001,.99981,1.00101,1.00026,1.0006,.99948,.99981,1.00064,.99973,.99942,1.00101,1.00061,1.00026,1.00069,1.0006,1.00014,.99973,1.01322,.99973,1.00065,1.00026,1.00012,.99923,1,1.00064,1.00076,.99948,1.00055,1.00063,1.00007,.99943,1.0006,.99948,1.00026,.99948,.99943,1.00001,1.00001,1.00029,1.00038,1.00035,1.00001,1.0006,1.0006,.99973,.99978,1.00001,1.00057,.99989,.99967,.99964,.99967,.99977,.99999,.99977,1.00038,.99977,1.00001,.99973,1.00066,.99967,.99967,1.00041,.99998,.99999,.99977,1.00022,.99967,1.00001,.99977,1.00026,.99964,1.00031,1.00001,.99999,.99999,1,1.00023,1,1,.99999,1.00035,1.00001,.99999,.99973,.99977,.99999,1.00058,.99973,.99973,.99955,.9995,1.00026,1.00026,1.00032,.99989,1.00034,.99999,1.00026,1.00026,1.00026,.99973,.45998,.99973,1.00026,.99973,1.00001,.99999,.99982,.99994,.99996,1,1.00042,1.00044,1.00029,1.00023,.99973,.99973,1.00026,.99949,1.00002,.99973,1.0006,1.0006,1.0006,.99975,1.00026,1.00026,1.00032,.98685,.99973,1.00026,1,1,.99966,1.00044,1.00016,1.00022,1.00016,1.00022,1.00016,1.00022,1.00001,.99973,1,1,.99973,1,1,.99955,1.0006,1.0006,1.0006,1.0006,1,1,1,.99973,.99973,.99972,1,1,1.00106,.99999,.99998,.99998,.99999,.99998,1.66475,1,.99973,.99973,1,.99973,.99971,.99978,1,1,.99991,.99984,1.00002,1.00002,1.00002,1.00002,1.00098,1,1,1,1.00049,1,1,.99972,1,1.20985,1.39713,1.00003,1.00031,1.00015,1,.99561,1.00027,1.00031,1.00031,.99915,1.00031,1.00031,.99999,1.00003,.99999,.99999,1.41144,1.6,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.40579,1.40579,1.36625,.99999,1,.99861,.99861,1,1.00026,1.00026,1.00026,1.00026,.99972,.99999,.99999,.99999,.99999,1.40483,1,.99977,1.00054,1,1,.99953,.99962,1.00042,.9995,1,1,1,1,1,1,1,1,.99998,.99998,.99998,.99998,1,1,1,1,1,1,1,1,1,1,1];r.HelveticaBoldItalicMetrics={lineHeight:1.35,lineGap:.2};r.HelveticaItalicFactors=[.76116,1,1,1.0006,1.0006,1.00006,.99973,.99973,.99982,1.00001,1.00043,.99998,.99998,.99959,1.00003,1.0006,.99998,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,1.0006,1,1.00003,1.00003,1.00003,.99973,.99987,1.00001,1.00001,.99977,.99977,1.00001,1.00026,1.00022,.99977,1.0006,1,1.00001,.99973,.99999,.99977,1.00022,1.00001,1.00022,.99977,1.00001,1.00026,.99977,1.00001,1.00016,1.00001,1.00001,1.00026,1.0006,1.0006,1.0006,.99949,.99973,.99998,.99973,.99973,1,.99973,.99973,1.0006,.99973,.99973,.99924,.99924,1,.99924,.99999,.99973,.99973,.99973,.99973,.99998,1,1.0006,.99973,1,.99977,1,1,1,1.00005,1.0009,1.00005,1.00003,.99998,.99973,.99973,.99973,.99973,1.0009,.99973,.99998,1.00025,.99968,.99973,1.00003,1.00025,.60299,1.00024,1.06409,1,1,.99998,1,.9998,1.0006,.99998,1,.99936,.99973,1.00002,1.00002,1.00002,1.00026,1.00001,1.00001,1.00001,1.00001,1.00001,1.00001,1,.99977,1.00001,1.00001,1.00001,1.00001,1.0006,1.0006,1.0006,1.0006,.99977,.99977,1.00022,1.00022,1.00022,1.00022,1.00022,1.00003,1.00022,.99977,.99977,.99977,.99977,1.00001,1.00001,1.00026,.99973,.99973,.99973,.99973,.99973,.99973,.99982,1,.99973,.99973,.99973,.99973,1.0006,1.0006,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,1.06409,1.00026,.99973,.99973,.99973,.99973,1,.99973,1,1.00001,.99973,1.00001,.99973,1.00001,.99973,.99977,1,.99977,1,.99977,1,.99977,1,.99977,1.0288,.99977,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,.99977,.99973,.99977,.99973,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,.99924,1.0006,1.0006,.99946,1.00034,1,.99924,1.00001,1,1,.99973,.99924,.99973,.99924,.99973,1.06311,.99973,1.00024,.99973,.99924,.99977,.99973,.99977,.99973,.99977,.99973,1.00041,.9998,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,1,1.00016,.99977,.99998,.99977,.99998,.99977,.99998,1.00001,1,1.00001,1,1.00001,1,1.00001,1,1.00026,1.0006,1.00026,.89547,1.00026,1.0006,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,1.00016,.99977,1.00001,1,1.00001,1.00026,1,1.00026,1,1.00026,1,.99924,.99973,1.00001,.99973,1,.99982,1.00022,1.00026,1.00001,1,1.00026,1.0006,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,1.00001,1,1.00054,.99977,1.00084,1.00007,.99973,1.00013,.99924,1.00001,1.00001,.99945,.91221,1.00001,1.00026,.99977,1.00022,1.0006,1.00001,1.00001,.99999,.99977,.99933,1.00022,1.00054,1.00001,1.00065,1.00026,1.00001,1.0001,1.00001,1.00052,1,1.0006,1.00001,.99945,.99897,.99968,.99924,1.00036,.99945,.99949,1,1.0006,.99897,.99918,.99968,.99911,.99924,1,.99962,1.01487,1,1.0005,.99973,1.00012,1.00043,1,.99995,.99994,1.00036,.99947,1.00019,1.00063,1.00025,.99924,1.00036,.99973,1.00036,1.00025,1.00001,1.00001,1.00027,1.0001,1.00068,1.00001,1.0006,1.0006,1,1.00008,.99957,.99972,.9994,.99954,.99975,1.00051,1.00001,1.00019,1.00001,1.0001,.99986,1.00001,1.00001,1.00038,.99954,.99954,.9994,1.00066,.99999,.99977,1.00022,1.00054,1.00001,.99977,1.00026,.99975,1.0001,1.00001,.99993,.9995,.99955,1.00016,.99978,.99974,1.00019,1.00022,.99955,1.00053,.99973,1.00089,1.00005,.99967,1.00048,.99973,1.00002,1.00034,.99973,.99973,.99964,1.00006,1.00066,.99947,.99973,.98894,.99973,1,.44898,1,.99946,1,1.00039,1.00082,.99991,.99991,.99985,1.00022,1.00023,1.00061,1.00006,.99966,.99973,.99973,.99973,1.00019,1.0008,1,.99924,.99924,.99924,.99983,1.00044,.99973,.99964,.98332,1,.99973,1,1,.99962,.99895,1.00016,.99977,1.00016,.99977,1.00016,.99977,1.00001,1,1,1,.99973,1,1,.99955,.99924,.99924,.99924,.99924,.99998,.99998,.99998,.99973,.99973,.99972,1,1,1.00267,.99999,.99998,.99998,1,.99998,1.66475,1,.99973,.99973,1.00023,.99973,1.00423,.99925,.99999,1,.99991,.99984,1.00002,1.00002,1.00002,1.00002,1.00049,1,1.00245,1,1,1,1,.96329,1,1.20985,1.39713,1.00003,.8254,1.00015,1,1.00035,1.00027,1.00031,1.00031,1.00003,1.00031,1.00031,.99999,1.00003,.99999,.99999,1.41144,1.6,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.40579,1.40579,1.36625,.99999,1,.99861,.99861,1,1.00026,1.00026,1.00026,1.00026,.95317,.99999,.99999,.99999,.99999,1.40483,1,.99977,1.00054,1,1,.99953,.99962,1.00042,.9995,1,1,1,1,1,1,1,1,.99998,.99998,.99998,.99998,1,1,1,1,1,1,1,1,1,1,1];r.HelveticaItalicMetrics={lineHeight:1.35,lineGap:.2};r.HelveticaRegularFactors=[.76116,1,1,1.0006,1.0006,1.00006,.99973,.99973,.99982,1.00001,1.00043,.99998,.99998,.99959,1.00003,1.0006,.99998,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,1.0006,1,1.00003,1.00003,1.00003,.99973,.99987,1.00001,1.00001,.99977,.99977,1.00001,1.00026,1.00022,.99977,1.0006,1,1.00001,.99973,.99999,.99977,1.00022,1.00001,1.00022,.99977,1.00001,1.00026,.99977,1.00001,1.00016,1.00001,1.00001,1.00026,1.0006,1.0006,1.0006,.99949,.99973,.99998,.99973,.99973,1,.99973,.99973,1.0006,.99973,.99973,.99924,.99924,1,.99924,.99999,.99973,.99973,.99973,.99973,.99998,1,1.0006,.99973,1,.99977,1,1,1,1.00005,1.0009,1.00005,1.00003,.99998,.99973,.99973,.99973,.99973,1.0009,.99973,.99998,1.00025,.99968,.99973,1.00003,1.00025,.60299,1.00024,1.06409,1,1,.99998,1,.9998,1.0006,.99998,1,.99936,.99973,1.00002,1.00002,1.00002,1.00026,1.00001,1.00001,1.00001,1.00001,1.00001,1.00001,1,.99977,1.00001,1.00001,1.00001,1.00001,1.0006,1.0006,1.0006,1.0006,.99977,.99977,1.00022,1.00022,1.00022,1.00022,1.00022,1.00003,1.00022,.99977,.99977,.99977,.99977,1.00001,1.00001,1.00026,.99973,.99973,.99973,.99973,.99973,.99973,.99982,1,.99973,.99973,.99973,.99973,1.0006,1.0006,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,1.06409,1.00026,.99973,.99973,.99973,.99973,1,.99973,1,1.00001,.99973,1.00001,.99973,1.00001,.99973,.99977,1,.99977,1,.99977,1,.99977,1,.99977,1.04596,.99977,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,.99977,.99973,.99977,.99973,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,.99924,1.0006,1.0006,1.00019,1.00034,1,.99924,1.00001,1,1,.99973,.99924,.99973,.99924,.99973,1.02572,.99973,1.00005,.99973,.99924,.99977,.99973,.99977,.99973,.99977,.99973,.99999,.9998,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,1,1.00016,.99977,.99998,.99977,.99998,.99977,.99998,1.00001,1,1.00001,1,1.00001,1,1.00001,1,1.00026,1.0006,1.00026,.84533,1.00026,1.0006,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,1.00016,.99977,1.00001,1,1.00001,1.00026,1,1.00026,1,1.00026,1,.99924,.99973,1.00001,.99973,1,.99982,1.00022,1.00026,1.00001,1,1.00026,1.0006,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99928,1,.99977,1.00013,1.00055,.99947,.99945,.99941,.99924,1.00001,1.00001,1.0004,.91621,1.00001,1.00026,.99977,1.00022,1.0006,1.00001,1.00005,.99999,.99977,1.00015,1.00022,.99977,1.00001,.99973,1.00026,1.00001,1.00019,1.00001,.99946,1,1.0006,1.00001,.99978,1.00045,.99973,.99924,1.00023,.99978,.99966,1,1.00065,1.00045,1.00019,.99973,.99973,.99924,1,1,.96499,1,1.00055,.99973,1.00008,1.00027,1,.9997,.99995,1.00023,.99933,1.00019,1.00015,1.00031,.99924,1.00023,.99973,1.00023,1.00031,1.00001,.99928,1.00029,1.00092,1.00035,1.00001,1.0006,1.0006,1,.99988,.99975,1,1.00082,.99561,.9996,1.00035,1.00001,.99962,1.00001,1.00092,.99964,1.00001,.99963,.99999,1.00035,1.00035,1.00082,.99962,.99999,.99977,1.00022,1.00035,1.00001,.99977,1.00026,.9996,.99967,1.00001,1.00034,1.00074,1.00054,1.00053,1.00063,.99971,.99962,1.00035,.99975,.99977,.99973,1.00043,.99953,1.0007,.99915,.99973,1.00008,.99892,1.00073,1.00073,1.00114,.99915,1.00073,.99955,.99973,1.00092,.99973,1,.99998,1,1.0003,1,1.00043,1.00001,.99969,1.0003,1,1.00035,1.00001,.9995,1,1.00092,.99973,.99973,.99973,1.0007,.9995,1,.99924,1.0006,.99924,.99972,1.00062,.99973,1.00114,1.00073,1,.99955,1,1,1.00047,.99968,1.00016,.99977,1.00016,.99977,1.00016,.99977,1.00001,1,1,1,.99973,1,1,.99955,.99924,.99924,.99924,.99924,.99998,.99998,.99998,.99973,.99973,.99972,1,1,1.00267,.99999,.99998,.99998,1,.99998,1.66475,1,.99973,.99973,1.00023,.99973,.99971,.99925,1.00023,1,.99991,.99984,1.00002,1.00002,1.00002,1.00002,1,1,1,1,1,1,1,.96329,1,1.20985,1.39713,1.00003,.8254,1.00015,1,1.00035,1.00027,1.00031,1.00031,.99915,1.00031,1.00031,.99999,1.00003,.99999,.99999,1.41144,1.6,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.40579,1.40579,1.36625,.99999,1,.99861,.99861,1,1.00026,1.00026,1.00026,1.00026,.95317,.99999,.99999,.99999,.99999,1.40483,1,.99977,1.00054,1,1,.99953,.99962,1.00042,.9995,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];r.HelveticaRegularMetrics={lineHeight:1.2,lineGap:.2}},(t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.LiberationSansRegularWidths=r.LiberationSansRegularMapping=r.LiberationSansItalicWidths=r.LiberationSansItalicMapping=r.LiberationSansBoldWidths=r.LiberationSansBoldMapping=r.LiberationSansBoldItalicWidths=r.LiberationSansBoldItalicMapping=void 0;r.LiberationSansBoldWidths=[365,0,333,278,333,474,556,556,889,722,238,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,333,333,584,584,584,611,975,722,722,722,722,667,611,778,722,278,556,722,611,833,722,778,667,778,722,667,611,722,667,944,667,667,611,333,278,333,584,556,333,556,611,556,611,556,333,611,611,278,278,556,278,889,611,611,611,611,389,556,333,611,556,778,556,556,500,389,280,389,584,333,556,556,556,556,280,556,333,737,370,556,584,737,552,400,549,333,333,333,576,556,278,333,333,365,556,834,834,834,611,722,722,722,722,722,722,1e3,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,556,556,556,556,556,278,278,278,278,611,611,611,611,611,611,611,549,611,611,611,611,611,556,611,556,722,556,722,556,722,556,722,556,722,556,722,556,722,556,722,719,722,611,667,556,667,556,667,556,667,556,667,556,778,611,778,611,778,611,778,611,722,611,722,611,278,278,278,278,278,278,278,278,278,278,785,556,556,278,722,556,556,611,278,611,278,611,385,611,479,611,278,722,611,722,611,722,611,708,723,611,778,611,778,611,778,611,1e3,944,722,389,722,389,722,389,667,556,667,556,667,556,667,556,611,333,611,479,611,333,722,611,722,611,722,611,722,611,722,611,722,611,944,778,667,556,667,611,500,611,500,611,500,278,556,722,556,1e3,889,778,611,667,556,611,333,333,333,333,333,333,333,333,333,333,333,465,722,333,853,906,474,825,927,838,278,722,722,601,719,667,611,722,778,278,722,667,833,722,644,778,722,667,600,611,667,821,667,809,802,278,667,615,451,611,278,582,615,610,556,606,475,460,611,541,278,558,556,612,556,445,611,766,619,520,684,446,582,715,576,753,845,278,582,611,582,845,667,669,885,567,711,667,278,276,556,1094,1062,875,610,722,622,719,722,719,722,567,712,667,904,626,719,719,610,702,833,722,778,719,667,722,611,622,854,667,730,703,1005,1019,870,979,719,711,1031,719,556,618,615,417,635,556,709,497,615,615,500,635,740,604,611,604,611,556,490,556,875,556,615,581,833,844,729,854,615,552,854,583,556,556,611,417,552,556,278,281,278,969,906,611,500,615,556,604,778,611,487,447,944,778,944,778,944,778,667,556,333,333,556,1e3,1e3,552,278,278,278,278,500,500,500,556,556,350,1e3,1e3,240,479,333,333,604,333,167,396,556,556,1094,556,885,489,1115,1e3,768,600,834,834,834,834,1e3,500,1e3,500,1e3,500,500,494,612,823,713,584,549,713,979,722,274,549,549,583,549,549,604,584,604,604,708,625,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,729,604,604,354,354,1e3,990,990,990,990,494,604,604,604,604,354,1021,1052,917,750,750,531,656,594,510,500,750,750,611,611,333,333,333,333,333,333,333,333,222,222,333,333,333,333,333,333,333,333];r.LiberationSansBoldMapping=[-1,-1,-1,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,402,506,507,508,509,510,511,536,537,538,539,710,711,713,728,729,730,731,732,733,900,901,902,903,904,905,906,908,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1138,1139,1168,1169,7808,7809,7810,7811,7812,7813,7922,7923,8208,8209,8211,8212,8213,8215,8216,8217,8218,8219,8220,8221,8222,8224,8225,8226,8230,8240,8242,8243,8249,8250,8252,8254,8260,8319,8355,8356,8359,8364,8453,8467,8470,8482,8486,8494,8539,8540,8541,8542,8592,8593,8594,8595,8596,8597,8616,8706,8710,8719,8721,8722,8730,8734,8735,8745,8747,8776,8800,8801,8804,8805,8962,8976,8992,8993,9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9600,9604,9608,9612,9616,9617,9618,9619,9632,9633,9642,9643,9644,9650,9658,9660,9668,9674,9675,9679,9688,9689,9702,9786,9787,9788,9792,9794,9824,9827,9829,9830,9834,9835,9836,61441,61442,61445,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];r.LiberationSansBoldItalicWidths=[365,0,333,278,333,474,556,556,889,722,238,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,333,333,584,584,584,611,975,722,722,722,722,667,611,778,722,278,556,722,611,833,722,778,667,778,722,667,611,722,667,944,667,667,611,333,278,333,584,556,333,556,611,556,611,556,333,611,611,278,278,556,278,889,611,611,611,611,389,556,333,611,556,778,556,556,500,389,280,389,584,333,556,556,556,556,280,556,333,737,370,556,584,737,552,400,549,333,333,333,576,556,278,333,333,365,556,834,834,834,611,722,722,722,722,722,722,1e3,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,556,556,556,556,556,278,278,278,278,611,611,611,611,611,611,611,549,611,611,611,611,611,556,611,556,722,556,722,556,722,556,722,556,722,556,722,556,722,556,722,740,722,611,667,556,667,556,667,556,667,556,667,556,778,611,778,611,778,611,778,611,722,611,722,611,278,278,278,278,278,278,278,278,278,278,782,556,556,278,722,556,556,611,278,611,278,611,396,611,479,611,278,722,611,722,611,722,611,708,723,611,778,611,778,611,778,611,1e3,944,722,389,722,389,722,389,667,556,667,556,667,556,667,556,611,333,611,479,611,333,722,611,722,611,722,611,722,611,722,611,722,611,944,778,667,556,667,611,500,611,500,611,500,278,556,722,556,1e3,889,778,611,667,556,611,333,333,333,333,333,333,333,333,333,333,333,333,722,333,854,906,473,844,930,847,278,722,722,610,671,667,611,722,778,278,722,667,833,722,657,778,718,667,590,611,667,822,667,829,781,278,667,620,479,611,278,591,620,621,556,610,479,492,611,558,278,566,556,603,556,450,611,712,605,532,664,409,591,704,578,773,834,278,591,611,591,834,667,667,886,614,719,667,278,278,556,1094,1042,854,622,719,677,719,722,708,722,614,722,667,927,643,719,719,615,687,833,722,778,719,667,722,611,677,781,667,729,708,979,989,854,1e3,708,719,1042,729,556,619,604,534,618,556,736,510,611,611,507,622,740,604,611,611,611,556,889,556,885,556,646,583,889,935,707,854,594,552,865,589,556,556,611,469,563,556,278,278,278,969,906,611,507,619,556,611,778,611,575,467,944,778,944,778,944,778,667,556,333,333,556,1e3,1e3,552,278,278,278,278,500,500,500,556,556,350,1e3,1e3,240,479,333,333,604,333,167,396,556,556,1104,556,885,516,1146,1e3,768,600,834,834,834,834,999,500,1e3,500,1e3,500,500,494,612,823,713,584,549,713,979,722,274,549,549,583,549,549,604,584,604,604,708,625,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,729,604,604,354,354,1e3,990,990,990,990,494,604,604,604,604,354,1021,1052,917,750,750,531,656,594,510,500,750,750,611,611,333,333,333,333,333,333,333,333,222,222,333,333,333,333,333,333,333,333];r.LiberationSansBoldItalicMapping=[-1,-1,-1,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,402,506,507,508,509,510,511,536,537,538,539,710,711,713,728,729,730,731,732,733,900,901,902,903,904,905,906,908,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1138,1139,1168,1169,7808,7809,7810,7811,7812,7813,7922,7923,8208,8209,8211,8212,8213,8215,8216,8217,8218,8219,8220,8221,8222,8224,8225,8226,8230,8240,8242,8243,8249,8250,8252,8254,8260,8319,8355,8356,8359,8364,8453,8467,8470,8482,8486,8494,8539,8540,8541,8542,8592,8593,8594,8595,8596,8597,8616,8706,8710,8719,8721,8722,8730,8734,8735,8745,8747,8776,8800,8801,8804,8805,8962,8976,8992,8993,9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9600,9604,9608,9612,9616,9617,9618,9619,9632,9633,9642,9643,9644,9650,9658,9660,9668,9674,9675,9679,9688,9689,9702,9786,9787,9788,9792,9794,9824,9827,9829,9830,9834,9835,9836,61441,61442,61445,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];r.LiberationSansItalicWidths=[365,0,333,278,278,355,556,556,889,667,191,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,278,278,584,584,584,556,1015,667,667,722,722,667,611,778,722,278,500,667,556,833,722,778,667,778,722,667,611,722,667,944,667,667,611,278,278,278,469,556,333,556,556,500,556,556,278,556,556,222,222,500,222,833,556,556,556,556,333,500,278,556,500,722,500,500,500,334,260,334,584,333,556,556,556,556,260,556,333,737,370,556,584,737,552,400,549,333,333,333,576,537,278,333,333,365,556,834,834,834,611,667,667,667,667,667,667,1e3,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,500,556,556,556,556,278,278,278,278,556,556,556,556,556,556,556,549,611,556,556,556,556,500,556,500,667,556,667,556,667,556,722,500,722,500,722,500,722,500,722,625,722,556,667,556,667,556,667,556,667,556,667,556,778,556,778,556,778,556,778,556,722,556,722,556,278,278,278,278,278,278,278,222,278,278,733,444,500,222,667,500,500,556,222,556,222,556,281,556,400,556,222,722,556,722,556,722,556,615,723,556,778,556,778,556,778,556,1e3,944,722,333,722,333,722,333,667,500,667,500,667,500,667,500,611,278,611,354,611,278,722,556,722,556,722,556,722,556,722,556,722,556,944,722,667,500,667,611,500,611,500,611,500,222,556,667,556,1e3,889,778,611,667,500,611,278,333,333,333,333,333,333,333,333,333,333,333,667,278,789,846,389,794,865,775,222,667,667,570,671,667,611,722,778,278,667,667,833,722,648,778,725,667,600,611,667,837,667,831,761,278,667,570,439,555,222,550,570,571,500,556,439,463,555,542,222,500,492,548,500,447,556,670,573,486,603,374,550,652,546,728,779,222,550,556,550,779,667,667,843,544,708,667,278,278,500,1066,982,844,589,715,639,724,667,651,667,544,704,667,917,614,715,715,589,686,833,722,778,725,667,722,611,639,795,667,727,673,920,923,805,886,651,694,1022,682,556,562,522,493,553,556,688,465,556,556,472,564,686,550,556,556,556,500,833,500,835,500,572,518,830,851,621,736,526,492,752,534,556,556,556,378,496,500,222,222,222,910,828,556,472,565,500,556,778,556,492,339,944,722,944,722,944,722,667,500,333,333,556,1e3,1e3,552,222,222,222,222,333,333,333,556,556,350,1e3,1e3,188,354,333,333,500,333,167,365,556,556,1094,556,885,323,1083,1e3,768,600,834,834,834,834,1e3,500,998,500,1e3,500,500,494,612,823,713,584,549,713,979,719,274,549,549,584,549,549,604,584,604,604,708,625,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,729,604,604,354,354,1e3,990,990,990,990,494,604,604,604,604,354,1021,1052,917,750,750,531,656,594,510,500,750,750,500,500,333,333,333,333,333,333,333,333,222,222,294,294,324,324,316,328,398,285];r.LiberationSansItalicMapping=[-1,-1,-1,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,402,506,507,508,509,510,511,536,537,538,539,710,711,713,728,729,730,731,732,733,900,901,902,903,904,905,906,908,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1138,1139,1168,1169,7808,7809,7810,7811,7812,7813,7922,7923,8208,8209,8211,8212,8213,8215,8216,8217,8218,8219,8220,8221,8222,8224,8225,8226,8230,8240,8242,8243,8249,8250,8252,8254,8260,8319,8355,8356,8359,8364,8453,8467,8470,8482,8486,8494,8539,8540,8541,8542,8592,8593,8594,8595,8596,8597,8616,8706,8710,8719,8721,8722,8730,8734,8735,8745,8747,8776,8800,8801,8804,8805,8962,8976,8992,8993,9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9600,9604,9608,9612,9616,9617,9618,9619,9632,9633,9642,9643,9644,9650,9658,9660,9668,9674,9675,9679,9688,9689,9702,9786,9787,9788,9792,9794,9824,9827,9829,9830,9834,9835,9836,61441,61442,61445,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];r.LiberationSansRegularWidths=[365,0,333,278,278,355,556,556,889,667,191,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,278,278,584,584,584,556,1015,667,667,722,722,667,611,778,722,278,500,667,556,833,722,778,667,778,722,667,611,722,667,944,667,667,611,278,278,278,469,556,333,556,556,500,556,556,278,556,556,222,222,500,222,833,556,556,556,556,333,500,278,556,500,722,500,500,500,334,260,334,584,333,556,556,556,556,260,556,333,737,370,556,584,737,552,400,549,333,333,333,576,537,278,333,333,365,556,834,834,834,611,667,667,667,667,667,667,1e3,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,500,556,556,556,556,278,278,278,278,556,556,556,556,556,556,556,549,611,556,556,556,556,500,556,500,667,556,667,556,667,556,722,500,722,500,722,500,722,500,722,615,722,556,667,556,667,556,667,556,667,556,667,556,778,556,778,556,778,556,778,556,722,556,722,556,278,278,278,278,278,278,278,222,278,278,735,444,500,222,667,500,500,556,222,556,222,556,292,556,334,556,222,722,556,722,556,722,556,604,723,556,778,556,778,556,778,556,1e3,944,722,333,722,333,722,333,667,500,667,500,667,500,667,500,611,278,611,375,611,278,722,556,722,556,722,556,722,556,722,556,722,556,944,722,667,500,667,611,500,611,500,611,500,222,556,667,556,1e3,889,778,611,667,500,611,278,333,333,333,333,333,333,333,333,333,333,333,667,278,784,838,384,774,855,752,222,667,667,551,668,667,611,722,778,278,667,668,833,722,650,778,722,667,618,611,667,798,667,835,748,278,667,578,446,556,222,547,578,575,500,557,446,441,556,556,222,500,500,576,500,448,556,690,569,482,617,395,547,648,525,713,781,222,547,556,547,781,667,667,865,542,719,667,278,278,500,1057,1010,854,583,722,635,719,667,656,667,542,677,667,923,604,719,719,583,656,833,722,778,719,667,722,611,635,760,667,740,667,917,938,792,885,656,719,1010,722,556,573,531,365,583,556,669,458,559,559,438,583,688,552,556,542,556,500,458,500,823,500,573,521,802,823,625,719,521,510,750,542,556,556,556,365,510,500,222,278,222,906,812,556,438,559,500,552,778,556,489,411,944,722,944,722,944,722,667,500,333,333,556,1e3,1e3,552,222,222,222,222,333,333,333,556,556,350,1e3,1e3,188,354,333,333,500,333,167,365,556,556,1094,556,885,323,1073,1e3,768,600,834,834,834,834,1e3,500,1e3,500,1e3,500,500,494,612,823,713,584,549,713,979,719,274,549,549,583,549,549,604,584,604,604,708,625,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,729,604,604,354,354,1e3,990,990,990,990,494,604,604,604,604,354,1021,1052,917,750,750,531,656,594,510,500,750,750,500,500,333,333,333,333,333,333,333,333,222,222,294,294,324,324,316,328,398,285];r.LiberationSansRegularMapping=[-1,-1,-1,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,402,506,507,508,509,510,511,536,537,538,539,710,711,713,728,729,730,731,732,733,900,901,902,903,904,905,906,908,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1138,1139,1168,1169,7808,7809,7810,7811,7812,7813,7922,7923,8208,8209,8211,8212,8213,8215,8216,8217,8218,8219,8220,8221,8222,8224,8225,8226,8230,8240,8242,8243,8249,8250,8252,8254,8260,8319,8355,8356,8359,8364,8453,8467,8470,8482,8486,8494,8539,8540,8541,8542,8592,8593,8594,8595,8596,8597,8616,8706,8710,8719,8721,8722,8730,8734,8735,8745,8747,8776,8800,8801,8804,8805,8962,8976,8992,8993,9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9600,9604,9608,9612,9616,9617,9618,9619,9632,9633,9642,9643,9644,9650,9658,9660,9668,9674,9675,9679,9688,9689,9702,9786,9787,9788,9792,9794,9824,9827,9829,9830,9834,9835,9836,61441,61442,61445,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]},(t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.MyriadProRegularMetrics=r.MyriadProRegularFactors=r.MyriadProItalicMetrics=r.MyriadProItalicFactors=r.MyriadProBoldMetrics=r.MyriadProBoldItalicMetrics=r.MyriadProBoldItalicFactors=r.MyriadProBoldFactors=void 0;r.MyriadProBoldFactors=[1.36898,1,1,.72706,.80479,.83734,.98894,.99793,.9897,.93884,.86209,.94292,.94292,1.16661,1.02058,.93582,.96694,.93582,1.19137,.99793,.99793,.99793,.99793,.99793,.99793,.99793,.99793,.99793,.99793,.78076,.78076,1.02058,1.02058,1.02058,.72851,.78966,.90838,.83637,.82391,.96376,.80061,.86275,.8768,.95407,1.0258,.73901,.85022,.83655,1.0156,.95546,.92179,.87107,.92179,.82114,.8096,.89713,.94438,.95353,.94083,.91905,.90406,.9446,.94292,1.18777,.94292,1.02058,.89903,.90088,.94938,.97898,.81093,.97571,.94938,1.024,.9577,.95933,.98621,1.0474,.97455,.98981,.9672,.95933,.9446,.97898,.97407,.97646,.78036,1.10208,.95442,.95298,.97579,.9332,.94039,.938,.80687,1.01149,.80687,1.02058,.80479,.99793,.99793,.99793,.99793,1.01149,1.00872,.90088,.91882,1.0213,.8361,1.02058,.62295,.54324,.89022,1.08595,1,1,.90088,1,.97455,.93582,.90088,1,1.05686,.8361,.99642,.99642,.99642,.72851,.90838,.90838,.90838,.90838,.90838,.90838,.868,.82391,.80061,.80061,.80061,.80061,1.0258,1.0258,1.0258,1.0258,.97484,.95546,.92179,.92179,.92179,.92179,.92179,1.02058,.92179,.94438,.94438,.94438,.94438,.90406,.86958,.98225,.94938,.94938,.94938,.94938,.94938,.94938,.9031,.81093,.94938,.94938,.94938,.94938,.98621,.98621,.98621,.98621,.93969,.95933,.9446,.9446,.9446,.9446,.9446,1.08595,.9446,.95442,.95442,.95442,.95442,.94039,.97898,.94039,.90838,.94938,.90838,.94938,.90838,.94938,.82391,.81093,.82391,.81093,.82391,.81093,.82391,.81093,.96376,.84313,.97484,.97571,.80061,.94938,.80061,.94938,.80061,.94938,.80061,.94938,.80061,.94938,.8768,.9577,.8768,.9577,.8768,.9577,1,1,.95407,.95933,.97069,.95933,1.0258,.98621,1.0258,.98621,1.0258,.98621,1.0258,.98621,1.0258,.98621,.887,1.01591,.73901,1.0474,1,1,.97455,.83655,.98981,1,1,.83655,.73977,.83655,.73903,.84638,1.033,.95546,.95933,1,1,.95546,.95933,.8271,.95417,.95933,.92179,.9446,.92179,.9446,.92179,.9446,.936,.91964,.82114,.97646,1,1,.82114,.97646,.8096,.78036,.8096,.78036,1,1,.8096,.78036,1,1,.89713,.77452,.89713,1.10208,.94438,.95442,.94438,.95442,.94438,.95442,.94438,.95442,.94438,.95442,.94438,.95442,.94083,.97579,.90406,.94039,.90406,.9446,.938,.9446,.938,.9446,.938,1,.99793,.90838,.94938,.868,.9031,.92179,.9446,1,1,.89713,1.10208,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90989,.9358,.91945,.83181,.75261,.87992,.82976,.96034,.83689,.97268,1.0078,.90838,.83637,.8019,.90157,.80061,.9446,.95407,.92436,1.0258,.85022,.97153,1.0156,.95546,.89192,.92179,.92361,.87107,.96318,.89713,.93704,.95638,.91905,.91709,.92796,1.0258,.93704,.94836,1.0373,.95933,1.0078,.95871,.94836,.96174,.92601,.9498,.98607,.95776,.95933,1.05453,1.0078,.98275,.9314,.95617,.91701,1.05993,.9446,.78367,.9553,1,.86832,1.0128,.95871,.99394,.87548,.96361,.86774,1.0078,.95871,.9446,.95871,.86774,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.94083,.97579,.94083,.97579,.94083,.97579,.90406,.94039,.96694,1,.89903,1,1,1,.93582,.93582,.93582,1,.908,.908,.918,.94219,.94219,.96544,1,1.285,1,1,.81079,.81079,1,1,.74854,1,1,1,1,.99793,1,1,1,.65,1,1.36145,1,1,1,1,1,1,1,1,1,1,1,1.17173,1,.80535,.76169,1.02058,1.0732,1.05486,1,1,1.30692,1.08595,1.08595,1,1.08595,1.08595,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.16161,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];r.MyriadProBoldMetrics={lineHeight:1.2,lineGap:.2};r.MyriadProBoldItalicFactors=[1.36898,1,1,.66227,.80779,.81625,.97276,.97276,.97733,.92222,.83266,.94292,.94292,1.16148,1.02058,.93582,.96694,.93582,1.17337,.97276,.97276,.97276,.97276,.97276,.97276,.97276,.97276,.97276,.97276,.78076,.78076,1.02058,1.02058,1.02058,.71541,.76813,.85576,.80591,.80729,.94299,.77512,.83655,.86523,.92222,.98621,.71743,.81698,.79726,.98558,.92222,.90637,.83809,.90637,.80729,.76463,.86275,.90699,.91605,.9154,.85308,.85458,.90531,.94292,1.21296,.94292,1.02058,.89903,1.18616,.99613,.91677,.78216,.91677,.90083,.98796,.9135,.92168,.95381,.98981,.95298,.95381,.93459,.92168,.91513,.92004,.91677,.95077,.748,1.04502,.91677,.92061,.94236,.89544,.89364,.9,.80687,.8578,.80687,1.02058,.80779,.97276,.97276,.97276,.97276,.8578,.99973,1.18616,.91339,1.08074,.82891,1.02058,.55509,.71526,.89022,1.08595,1,1,1.18616,1,.96736,.93582,1.18616,1,1.04864,.82711,.99043,.99043,.99043,.71541,.85576,.85576,.85576,.85576,.85576,.85576,.845,.80729,.77512,.77512,.77512,.77512,.98621,.98621,.98621,.98621,.95961,.92222,.90637,.90637,.90637,.90637,.90637,1.02058,.90251,.90699,.90699,.90699,.90699,.85458,.83659,.94951,.99613,.99613,.99613,.99613,.99613,.99613,.85811,.78216,.90083,.90083,.90083,.90083,.95381,.95381,.95381,.95381,.9135,.92168,.91513,.91513,.91513,.91513,.91513,1.08595,.91677,.91677,.91677,.91677,.91677,.89364,.92332,.89364,.85576,.99613,.85576,.99613,.85576,.99613,.80729,.78216,.80729,.78216,.80729,.78216,.80729,.78216,.94299,.76783,.95961,.91677,.77512,.90083,.77512,.90083,.77512,.90083,.77512,.90083,.77512,.90083,.86523,.9135,.86523,.9135,.86523,.9135,1,1,.92222,.92168,.92222,.92168,.98621,.95381,.98621,.95381,.98621,.95381,.98621,.95381,.98621,.95381,.86036,.97096,.71743,.98981,1,1,.95298,.79726,.95381,1,1,.79726,.6894,.79726,.74321,.81691,1.0006,.92222,.92168,1,1,.92222,.92168,.79464,.92098,.92168,.90637,.91513,.90637,.91513,.90637,.91513,.909,.87514,.80729,.95077,1,1,.80729,.95077,.76463,.748,.76463,.748,1,1,.76463,.748,1,1,.86275,.72651,.86275,1.04502,.90699,.91677,.90699,.91677,.90699,.91677,.90699,.91677,.90699,.91677,.90699,.91677,.9154,.94236,.85458,.89364,.85458,.90531,.9,.90531,.9,.90531,.9,1,.97276,.85576,.99613,.845,.85811,.90251,.91677,1,1,.86275,1.04502,1.18616,1.18616,1.18616,1.18616,1.18616,1.18616,1.18616,1.18616,1.18616,1.00899,1.30628,.85576,.80178,.66862,.7927,.69323,.88127,.72459,.89711,.95381,.85576,.80591,.7805,.94729,.77512,.90531,.92222,.90637,.98621,.81698,.92655,.98558,.92222,.85359,.90637,.90976,.83809,.94523,.86275,.83509,.93157,.85308,.83392,.92346,.98621,.83509,.92886,.91324,.92168,.95381,.90646,.92886,.90557,.86847,.90276,.91324,.86842,.92168,.99531,.95381,.9224,.85408,.92699,.86847,1.0051,.91513,.80487,.93481,1,.88159,1.05214,.90646,.97355,.81539,.89398,.85923,.95381,.90646,.91513,.90646,.85923,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.9154,.94236,.9154,.94236,.9154,.94236,.85458,.89364,.96694,1,.89903,1,1,1,.91782,.91782,.91782,1,.896,.896,.896,.9332,.9332,.95973,1,1.26,1,1,.80479,.80178,1,1,.85633,1,1,1,1,.97276,1,1,1,.698,1,1.36145,1,1,1,1,1,1,1,1,1,1,1,1.14542,1,.79199,.78694,1.02058,1.03493,1.05486,1,1,1.23026,1.08595,1.08595,1,1.08595,1.08595,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.20006,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];r.MyriadProBoldItalicMetrics={lineHeight:1.2,lineGap:.2};r.MyriadProItalicFactors=[1.36898,1,1,.65507,.84943,.85639,.88465,.88465,.86936,.88307,.86948,.85283,.85283,1.06383,1.02058,.75945,.9219,.75945,1.17337,.88465,.88465,.88465,.88465,.88465,.88465,.88465,.88465,.88465,.88465,.75945,.75945,1.02058,1.02058,1.02058,.69046,.70926,.85158,.77812,.76852,.89591,.70466,.76125,.80094,.86822,.83864,.728,.77212,.79475,.93637,.87514,.8588,.76013,.8588,.72421,.69866,.77598,.85991,.80811,.87832,.78112,.77512,.8562,1.0222,1.18417,1.0222,1.27014,.89903,1.15012,.93859,.94399,.846,.94399,.81453,1.0186,.94219,.96017,1.03075,1.02175,.912,1.03075,.96998,.96017,.93859,.94399,.94399,.95493,.746,1.12658,.94578,.91,.979,.882,.882,.83,.85034,.83537,.85034,1.02058,.70869,.88465,.88465,.88465,.88465,.83537,.90083,1.15012,.9161,.94565,.73541,1.02058,.53609,.69353,.79519,1.08595,1,1,1.15012,1,.91974,.75945,1.15012,1,.9446,.73361,.9005,.9005,.9005,.62864,.85158,.85158,.85158,.85158,.85158,.85158,.773,.76852,.70466,.70466,.70466,.70466,.83864,.83864,.83864,.83864,.90561,.87514,.8588,.8588,.8588,.8588,.8588,1.02058,.85751,.85991,.85991,.85991,.85991,.77512,.76013,.88075,.93859,.93859,.93859,.93859,.93859,.93859,.8075,.846,.81453,.81453,.81453,.81453,.82424,.82424,.82424,.82424,.9278,.96017,.93859,.93859,.93859,.93859,.93859,1.08595,.8562,.94578,.94578,.94578,.94578,.882,.94578,.882,.85158,.93859,.85158,.93859,.85158,.93859,.76852,.846,.76852,.846,.76852,.846,.76852,.846,.89591,.8544,.90561,.94399,.70466,.81453,.70466,.81453,.70466,.81453,.70466,.81453,.70466,.81453,.80094,.94219,.80094,.94219,.80094,.94219,1,1,.86822,.96017,.86822,.96017,.83864,.82424,.83864,.82424,.83864,.82424,.83864,1.03075,.83864,.82424,.81402,1.02738,.728,1.02175,1,1,.912,.79475,1.03075,1,1,.79475,.83911,.79475,.66266,.80553,1.06676,.87514,.96017,1,1,.87514,.96017,.86865,.87396,.96017,.8588,.93859,.8588,.93859,.8588,.93859,.867,.84759,.72421,.95493,1,1,.72421,.95493,.69866,.746,.69866,.746,1,1,.69866,.746,1,1,.77598,.88417,.77598,1.12658,.85991,.94578,.85991,.94578,.85991,.94578,.85991,.94578,.85991,.94578,.85991,.94578,.87832,.979,.77512,.882,.77512,.8562,.83,.8562,.83,.8562,.83,1,.88465,.85158,.93859,.773,.8075,.85751,.8562,1,1,.77598,1.12658,1.15012,1.15012,1.15012,1.15012,1.15012,1.15313,1.15012,1.15012,1.15012,1.08106,1.03901,.85158,.77025,.62264,.7646,.65351,.86026,.69461,.89947,1.03075,.85158,.77812,.76449,.88836,.70466,.8562,.86822,.8588,.83864,.77212,.85308,.93637,.87514,.82352,.8588,.85701,.76013,.89058,.77598,.8156,.82565,.78112,.77899,.89386,.83864,.8156,.9486,.92388,.96186,1.03075,.91123,.9486,.93298,.878,.93942,.92388,.84596,.96186,.95119,1.03075,.922,.88787,.95829,.88,.93559,.93859,.78815,.93758,1,.89217,1.03737,.91123,.93969,.77487,.85769,.86799,1.03075,.91123,.93859,.91123,.86799,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.87832,.979,.87832,.979,.87832,.979,.77512,.882,.9219,1,.89903,1,1,1,.87321,.87321,.87321,1,1.027,1.027,1.027,.86847,.86847,.79121,1,1.124,1,1,.73572,.73572,1,1,.85034,1,1,1,1,.88465,1,1,1,.669,1,1.36145,1,1,1,1,1,1,1,1,1,1,1,1.04828,1,.74948,.75187,1.02058,.98391,1.02119,1,1,1.06233,1.08595,1.08595,1,1.08595,1.08595,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.05233,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];r.MyriadProItalicMetrics={lineHeight:1.2,lineGap:.2};r.MyriadProRegularFactors=[1.36898,1,1,.76305,.82784,.94935,.89364,.92241,.89073,.90706,.98472,.85283,.85283,1.0664,1.02058,.74505,.9219,.74505,1.23456,.92241,.92241,.92241,.92241,.92241,.92241,.92241,.92241,.92241,.92241,.74505,.74505,1.02058,1.02058,1.02058,.73002,.72601,.91755,.8126,.80314,.92222,.73764,.79726,.83051,.90284,.86023,.74,.8126,.84869,.96518,.91115,.8858,.79761,.8858,.74498,.73914,.81363,.89591,.83659,.89633,.85608,.8111,.90531,1.0222,1.22736,1.0222,1.27014,.89903,.90088,.86667,1.0231,.896,1.01411,.90083,1.05099,1.00512,.99793,1.05326,1.09377,.938,1.06226,1.00119,.99793,.98714,1.0231,1.01231,.98196,.792,1.19137,.99074,.962,1.01915,.926,.942,.856,.85034,.92006,.85034,1.02058,.69067,.92241,.92241,.92241,.92241,.92006,.9332,.90088,.91882,.93484,.75339,1.02058,.56866,.54324,.79519,1.08595,1,1,.90088,1,.95325,.74505,.90088,1,.97198,.75339,.91009,.91009,.91009,.66466,.91755,.91755,.91755,.91755,.91755,.91755,.788,.80314,.73764,.73764,.73764,.73764,.86023,.86023,.86023,.86023,.92915,.91115,.8858,.8858,.8858,.8858,.8858,1.02058,.8858,.89591,.89591,.89591,.89591,.8111,.79611,.89713,.86667,.86667,.86667,.86667,.86667,.86667,.86936,.896,.90083,.90083,.90083,.90083,.84224,.84224,.84224,.84224,.97276,.99793,.98714,.98714,.98714,.98714,.98714,1.08595,.89876,.99074,.99074,.99074,.99074,.942,1.0231,.942,.91755,.86667,.91755,.86667,.91755,.86667,.80314,.896,.80314,.896,.80314,.896,.80314,.896,.92222,.93372,.92915,1.01411,.73764,.90083,.73764,.90083,.73764,.90083,.73764,.90083,.73764,.90083,.83051,1.00512,.83051,1.00512,.83051,1.00512,1,1,.90284,.99793,.90976,.99793,.86023,.84224,.86023,.84224,.86023,.84224,.86023,1.05326,.86023,.84224,.82873,1.07469,.74,1.09377,1,1,.938,.84869,1.06226,1,1,.84869,.83704,.84869,.81441,.85588,1.08927,.91115,.99793,1,1,.91115,.99793,.91887,.90991,.99793,.8858,.98714,.8858,.98714,.8858,.98714,.894,.91434,.74498,.98196,1,1,.74498,.98196,.73914,.792,.73914,.792,1,1,.73914,.792,1,1,.81363,.904,.81363,1.19137,.89591,.99074,.89591,.99074,.89591,.99074,.89591,.99074,.89591,.99074,.89591,.99074,.89633,1.01915,.8111,.942,.8111,.90531,.856,.90531,.856,.90531,.856,1,.92241,.91755,.86667,.788,.86936,.8858,.89876,1,1,.81363,1.19137,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90388,1.03901,.92138,.78105,.7154,.86169,.80513,.94007,.82528,.98612,1.06226,.91755,.8126,.81884,.92819,.73764,.90531,.90284,.8858,.86023,.8126,.91172,.96518,.91115,.83089,.8858,.87791,.79761,.89297,.81363,.88157,.89992,.85608,.81992,.94307,.86023,.88157,.95308,.98699,.99793,1.06226,.95817,.95308,.97358,.928,.98088,.98699,.92761,.99793,.96017,1.06226,.986,.944,.95978,.938,.96705,.98714,.80442,.98972,1,.89762,1.04552,.95817,.99007,.87064,.91879,.88888,1.06226,.95817,.98714,.95817,.88888,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.89633,1.01915,.89633,1.01915,.89633,1.01915,.8111,.942,.9219,1,.89903,1,1,1,.93173,.93173,.93173,1,1.06304,1.06304,1.06904,.89903,.89903,.80549,1,1.156,1,1,.76575,.76575,1,1,.72458,1,1,1,1,.92241,1,1,1,.619,1,1.36145,1,1,1,1,1,1,1,1,1,1,1,1.07257,1,.74705,.71119,1.02058,1.024,1.02119,1,1,1.1536,1.08595,1.08595,1,1.08595,1.08595,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.05638,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];r.MyriadProRegularMetrics={lineHeight:1.2,lineGap:.2}},(t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.SegoeuiRegularMetrics=r.SegoeuiRegularFactors=r.SegoeuiItalicMetrics=r.SegoeuiItalicFactors=r.SegoeuiBoldMetrics=r.SegoeuiBoldItalicMetrics=r.SegoeuiBoldItalicFactors=r.SegoeuiBoldFactors=void 0;r.SegoeuiBoldFactors=[1.76738,1,1,.99297,.9824,1.04016,1.06497,1.03424,.97529,1.17647,1.23203,1.1085,1.1085,1.16939,1.2107,.9754,1.21408,.9754,1.59578,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,.81378,.81378,1.2107,1.2107,1.2107,.71703,.97847,.97363,.88776,.8641,1.02096,.79795,.85132,.914,1.06085,1.1406,.8007,.89858,.83693,1.14889,1.09398,.97489,.92094,.97489,.90399,.84041,.95923,1.00135,1,1.06467,.98243,.90996,.99361,1.1085,1.56942,1.1085,1.2107,.74627,.94282,.96752,1.01519,.86304,1.01359,.97278,1.15103,1.01359,.98561,1.02285,1.02285,1.00527,1.02285,1.0302,.99041,1.0008,1.01519,1.01359,1.02258,.79104,1.16862,.99041,.97454,1.02511,.99298,.96752,.95801,.94856,1.16579,.94856,1.2107,.9824,1.03424,1.03424,1,1.03424,1.16579,.8727,1.3871,1.18622,1.10818,1.04478,1.2107,1.18622,.75155,.94994,1.28826,1.21408,1.21408,.91056,1,.91572,.9754,.64663,1.18328,1.24866,1.04478,1.14169,1.15749,1.17389,.71703,.97363,.97363,.97363,.97363,.97363,.97363,.93506,.8641,.79795,.79795,.79795,.79795,1.1406,1.1406,1.1406,1.1406,1.02096,1.09398,.97426,.97426,.97426,.97426,.97426,1.2107,.97489,1.00135,1.00135,1.00135,1.00135,.90996,.92094,1.02798,.96752,.96752,.96752,.96752,.96752,.96752,.93136,.86304,.97278,.97278,.97278,.97278,1.02285,1.02285,1.02285,1.02285,.97122,.99041,1,1,1,1,1,1.28826,1.0008,.99041,.99041,.99041,.99041,.96752,1.01519,.96752,.97363,.96752,.97363,.96752,.97363,.96752,.8641,.86304,.8641,.86304,.8641,.86304,.8641,.86304,1.02096,1.03057,1.02096,1.03517,.79795,.97278,.79795,.97278,.79795,.97278,.79795,.97278,.79795,.97278,.914,1.01359,.914,1.01359,.914,1.01359,1,1,1.06085,.98561,1.06085,1.00879,1.1406,1.02285,1.1406,1.02285,1.1406,1.02285,1.1406,1.02285,1.1406,1.02285,.97138,1.08692,.8007,1.02285,1,1,1.00527,.83693,1.02285,1,1,.83693,.9455,.83693,.90418,.83693,1.13005,1.09398,.99041,1,1,1.09398,.99041,.96692,1.09251,.99041,.97489,1.0008,.97489,1.0008,.97489,1.0008,.93994,.97931,.90399,1.02258,1,1,.90399,1.02258,.84041,.79104,.84041,.79104,.84041,.79104,.84041,.79104,1,1,.95923,1.07034,.95923,1.16862,1.00135,.99041,1.00135,.99041,1.00135,.99041,1.00135,.99041,1.00135,.99041,1.00135,.99041,1.06467,1.02511,.90996,.96752,.90996,.99361,.95801,.99361,.95801,.99361,.95801,1.07733,1.03424,.97363,.96752,.93506,.93136,.97489,1.0008,1,1,.95923,1.16862,1.15103,1.15103,1.01173,1.03959,.75953,.81378,.79912,1.15103,1.21994,.95161,.87815,1.01149,.81525,.7676,.98167,1.01134,1.02546,.84097,1.03089,1.18102,.97363,.88776,.85134,.97826,.79795,.99361,1.06085,.97489,1.1406,.89858,1.0388,1.14889,1.09398,.86039,.97489,1.0595,.92094,.94793,.95923,.90996,.99346,.98243,1.02112,.95493,1.1406,.90996,1.03574,1.02597,1.0008,1.18102,1.06628,1.03574,1.0192,1.01932,1.00886,.97531,1.0106,1.0008,1.13189,1.18102,1.02277,.98683,1.0016,.99561,1.07237,1.0008,.90434,.99921,.93803,.8965,1.23085,1.06628,1.04983,.96268,1.0499,.98439,1.18102,1.06628,1.0008,1.06628,.98439,.79795,1,1,1,1,1,1,1,1,1,1,1,1,1.09466,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.97278,1,1,1,1,1,1,1,1,1,1,1,1,1.02065,1,1,1,1,1,1,1.06467,1.02511,1.06467,1.02511,1.06467,1.02511,.90996,.96752,1,1.21408,.89903,1,1,.75155,1.04394,1.04394,1.04394,1.04394,.98633,.98633,.98633,.73047,.73047,1.20642,.91211,1.25635,1.222,1.02956,1.03372,1.03372,.96039,1.24633,1,1.12454,.93503,1.03424,1.19687,1.03424,1,1,1,.771,1,1,1.15749,1.15749,1.15749,1.10948,.86279,.94434,.86279,.94434,.86182,1,1,1.16897,1,.96085,.90137,1.2107,1.18416,1.13973,.69825,.9716,2.10339,1.29004,1.29004,1.21172,1.29004,1.29004,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.42603,1,.99862,.99862,1,.87025,.87025,.87025,.87025,1.18874,1.42603,1,1.42603,1.42603,.99862,1,1,1,1,1,1.2886,1.04315,1.15296,1.34163,1,1,1,1.09193,1.09193,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];r.SegoeuiBoldMetrics={lineHeight:1.33008,lineGap:0};r.SegoeuiBoldItalicFactors=[1.76738,1,1,.98946,1.03959,1.04016,1.02809,1.036,.97639,1.10953,1.23203,1.11144,1.11144,1.16939,1.21237,.9754,1.21261,.9754,1.59754,1.036,1.036,1.036,1.036,1.036,1.036,1.036,1.036,1.036,1.036,.81378,.81378,1.21237,1.21237,1.21237,.73541,.97847,.97363,.89723,.87897,1.0426,.79429,.85292,.91149,1.05815,1.1406,.79631,.90128,.83853,1.04396,1.10615,.97552,.94436,.97552,.88641,.80527,.96083,1.00135,1,1.06777,.9817,.91142,.99361,1.11144,1.57293,1.11144,1.21237,.74627,1.31818,1.06585,.97042,.83055,.97042,.93503,1.1261,.97042,.97922,1.14236,.94552,1.01054,1.14236,1.02471,.97922,.94165,.97042,.97042,1.0276,.78929,1.1261,.97922,.95874,1.02197,.98507,.96752,.97168,.95107,1.16579,.95107,1.21237,1.03959,1.036,1.036,1,1.036,1.16579,.87357,1.31818,1.18754,1.26781,1.05356,1.21237,1.18622,.79487,.94994,1.29004,1.24047,1.24047,1.31818,1,.91484,.9754,1.31818,1.1349,1.24866,1.05356,1.13934,1.15574,1.17389,.73541,.97363,.97363,.97363,.97363,.97363,.97363,.94385,.87897,.79429,.79429,.79429,.79429,1.1406,1.1406,1.1406,1.1406,1.0426,1.10615,.97552,.97552,.97552,.97552,.97552,1.21237,.97552,1.00135,1.00135,1.00135,1.00135,.91142,.94436,.98721,1.06585,1.06585,1.06585,1.06585,1.06585,1.06585,.96705,.83055,.93503,.93503,.93503,.93503,1.14236,1.14236,1.14236,1.14236,.93125,.97922,.94165,.94165,.94165,.94165,.94165,1.29004,.94165,.97922,.97922,.97922,.97922,.96752,.97042,.96752,.97363,1.06585,.97363,1.06585,.97363,1.06585,.87897,.83055,.87897,.83055,.87897,.83055,.87897,.83055,1.0426,1.0033,1.0426,.97042,.79429,.93503,.79429,.93503,.79429,.93503,.79429,.93503,.79429,.93503,.91149,.97042,.91149,.97042,.91149,.97042,1,1,1.05815,.97922,1.05815,.97922,1.1406,1.14236,1.1406,1.14236,1.1406,1.14236,1.1406,1.14236,1.1406,1.14236,.97441,1.04302,.79631,1.01582,1,1,1.01054,.83853,1.14236,1,1,.83853,1.09125,.83853,.90418,.83853,1.19508,1.10615,.97922,1,1,1.10615,.97922,1.01034,1.10466,.97922,.97552,.94165,.97552,.94165,.97552,.94165,.91602,.91981,.88641,1.0276,1,1,.88641,1.0276,.80527,.78929,.80527,.78929,.80527,.78929,.80527,.78929,1,1,.96083,1.05403,.95923,1.16862,1.00135,.97922,1.00135,.97922,1.00135,.97922,1.00135,.97922,1.00135,.97922,1.00135,.97922,1.06777,1.02197,.91142,.96752,.91142,.99361,.97168,.99361,.97168,.99361,.97168,1.23199,1.036,.97363,1.06585,.94385,.96705,.97552,.94165,1,1,.96083,1.1261,1.31818,1.31818,1.31818,1.31818,1.31818,1.31818,1.31818,1.31818,1.31818,.95161,1.27126,1.00811,.83284,.77702,.99137,.95253,1.0347,.86142,1.07205,1.14236,.97363,.89723,.86869,1.09818,.79429,.99361,1.05815,.97552,1.1406,.90128,1.06662,1.04396,1.10615,.84918,.97552,1.04694,.94436,.98015,.96083,.91142,1.00356,.9817,1.01945,.98999,1.1406,.91142,1.04961,.9898,1.00639,1.14236,1.07514,1.04961,.99607,1.02897,1.008,.9898,.95134,1.00639,1.11121,1.14236,1.00518,.97981,1.02186,1,1.08578,.94165,.99314,.98387,.93028,.93377,1.35125,1.07514,1.10687,.93491,1.04232,1.00351,1.14236,1.07514,.94165,1.07514,1.00351,.79429,1,1,1,1,1,1,1,1,1,1,1,1,1.09097,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.93503,1,1,1,1,1,1,1,1,1,1,1,1,.96609,1,1,1,1,1,1,1.06777,1.02197,1.06777,1.02197,1.06777,1.02197,.91142,.96752,1,1.21261,.89903,1,1,.75155,1.04745,1.04745,1.04745,1.04394,.98633,.98633,.98633,.72959,.72959,1.20502,.91406,1.26514,1.222,1.02956,1.03372,1.03372,.96039,1.24633,1,1.09125,.93327,1.03336,1.16541,1.036,1,1,1,.771,1,1,1.15574,1.15574,1.15574,1.15574,.86364,.94434,.86279,.94434,.86224,1,1,1.16798,1,.96085,.90068,1.21237,1.18416,1.13904,.69825,.9716,2.10339,1.29004,1.29004,1.21339,1.29004,1.29004,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.42603,1,.99862,.99862,1,.87025,.87025,.87025,.87025,1.18775,1.42603,1,1.42603,1.42603,.99862,1,1,1,1,1,1.2886,1.04315,1.15296,1.34163,1,1,1,1.13269,1.13269,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];r.SegoeuiBoldItalicMetrics={lineHeight:1.33008,lineGap:0};r.SegoeuiItalicFactors=[1.76738,1,1,.98946,1.14763,1.05365,1.06234,.96927,.92586,1.15373,1.18414,.91349,.91349,1.07403,1.17308,.78383,1.20088,.78383,1.42531,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.78383,.78383,1.17308,1.17308,1.17308,.77349,.94565,.94729,.85944,.88506,.9858,.74817,.80016,.88449,.98039,.95782,.69238,.89898,.83231,.98183,1.03989,.96924,.86237,.96924,.80595,.74524,.86091,.95402,.94143,.98448,.8858,.83089,.93285,1.0949,1.39016,1.0949,1.45994,.74627,1.04839,.97454,.97454,.87207,.97454,.87533,1.06151,.97454,1.00176,1.16484,1.08132,.98047,1.16484,1.02989,1.01054,.96225,.97454,.97454,1.06598,.79004,1.16344,1.00351,.94629,.9973,.91016,.96777,.9043,.91082,.92481,.91082,1.17308,.95748,.96927,.96927,1,.96927,.92481,.80597,1.04839,1.23393,1.1781,.9245,1.17308,1.20808,.63218,.94261,1.24822,1.09971,1.09971,1.04839,1,.85273,.78032,1.04839,1.09971,1.22326,.9245,1.09836,1.13525,1.15222,.70424,.94729,.94729,.94729,.94729,.94729,.94729,.85498,.88506,.74817,.74817,.74817,.74817,.95782,.95782,.95782,.95782,.9858,1.03989,.96924,.96924,.96924,.96924,.96924,1.17308,.96924,.95402,.95402,.95402,.95402,.83089,.86237,.88409,.97454,.97454,.97454,.97454,.97454,.97454,.92916,.87207,.87533,.87533,.87533,.87533,.93146,.93146,.93146,.93146,.93854,1.01054,.96225,.96225,.96225,.96225,.96225,1.24822,.8761,1.00351,1.00351,1.00351,1.00351,.96777,.97454,.96777,.94729,.97454,.94729,.97454,.94729,.97454,.88506,.87207,.88506,.87207,.88506,.87207,.88506,.87207,.9858,.95391,.9858,.97454,.74817,.87533,.74817,.87533,.74817,.87533,.74817,.87533,.74817,.87533,.88449,.97454,.88449,.97454,.88449,.97454,1,1,.98039,1.00176,.98039,1.00176,.95782,.93146,.95782,.93146,.95782,.93146,.95782,1.16484,.95782,.93146,.84421,1.12761,.69238,1.08132,1,1,.98047,.83231,1.16484,1,1,.84723,1.04861,.84723,.78755,.83231,1.23736,1.03989,1.01054,1,1,1.03989,1.01054,.9857,1.03849,1.01054,.96924,.96225,.96924,.96225,.96924,.96225,.92383,.90171,.80595,1.06598,1,1,.80595,1.06598,.74524,.79004,.74524,.79004,.74524,.79004,.74524,.79004,1,1,.86091,1.02759,.85771,1.16344,.95402,1.00351,.95402,1.00351,.95402,1.00351,.95402,1.00351,.95402,1.00351,.95402,1.00351,.98448,.9973,.83089,.96777,.83089,.93285,.9043,.93285,.9043,.93285,.9043,1.31868,.96927,.94729,.97454,.85498,.92916,.96924,.8761,1,1,.86091,1.16344,1.04839,1.04839,1.04839,1.04839,1.04839,1.04839,1.04839,1.04839,1.04839,.81965,.81965,.94729,.78032,.71022,.90883,.84171,.99877,.77596,1.05734,1.2,.94729,.85944,.82791,.9607,.74817,.93285,.98039,.96924,.95782,.89898,.98316,.98183,1.03989,.78614,.96924,.97642,.86237,.86075,.86091,.83089,.90082,.8858,.97296,1.01284,.95782,.83089,1.0976,1.04,1.03342,1.2,1.0675,1.0976,.98205,1.03809,1.05097,1.04,.95364,1.03342,1.05401,1.2,1.02148,1.0119,1.04724,1.0127,1.02732,.96225,.8965,.97783,.93574,.94818,1.30679,1.0675,1.11826,.99821,1.0557,1.0326,1.2,1.0675,.96225,1.0675,1.0326,.74817,1,1,1,1,1,1,1,1,1,1,1,1,1.03754,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.87533,1,1,1,1,1,1,1,1,1,1,1,1,.98705,1,1,1,1,1,1,.98448,.9973,.98448,.9973,.98448,.9973,.83089,.96777,1,1.20088,.89903,1,1,.75155,.94945,.94945,.94945,.94945,1.12317,1.12317,1.12317,.67603,.67603,1.15621,.73584,1.21191,1.22135,1.06483,.94868,.94868,.95996,1.24633,1,1.07497,.87709,.96927,1.01473,.96927,1,1,1,.77295,1,1,1.09836,1.09836,1.09836,1.01522,.86321,.94434,.8649,.94434,.86182,1,1,1.083,1,.91578,.86438,1.17308,1.18416,1.14589,.69825,.97622,1.96791,1.24822,1.24822,1.17308,1.24822,1.24822,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.42603,1,.99862,.99862,1,.87025,.87025,.87025,.87025,1.17984,1.42603,1,1.42603,1.42603,.99862,1,1,1,1,1,1.2886,1.04315,1.15296,1.34163,1,1,1,1.10742,1.10742,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];r.SegoeuiItalicMetrics={lineHeight:1.33008,lineGap:0};r.SegoeuiRegularFactors=[1.76738,1,1,.98594,1.02285,1.10454,1.06234,.96927,.92037,1.19985,1.2046,.90616,.90616,1.07152,1.1714,.78032,1.20088,.78032,1.40246,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.78032,.78032,1.1714,1.1714,1.1714,.80597,.94084,.96706,.85944,.85734,.97093,.75842,.79936,.88198,.9831,.95782,.71387,.86969,.84636,1.07796,1.03584,.96924,.83968,.96924,.82826,.79649,.85771,.95132,.93119,.98965,.88433,.8287,.93365,1.08612,1.3638,1.08612,1.45786,.74627,.80499,.91484,1.05707,.92383,1.05882,.9403,1.12654,1.05882,1.01756,1.09011,1.09011,.99414,1.09011,1.034,1.01756,1.05356,1.05707,1.05882,1.04399,.84863,1.21968,1.01756,.95801,1.00068,.91797,.96777,.9043,.90351,.92105,.90351,1.1714,.85337,.96927,.96927,.99912,.96927,.92105,.80597,1.2434,1.20808,1.05937,.90957,1.1714,1.20808,.75155,.94261,1.24644,1.09971,1.09971,.84751,1,.85273,.78032,.61584,1.05425,1.17914,.90957,1.08665,1.11593,1.14169,.73381,.96706,.96706,.96706,.96706,.96706,.96706,.86035,.85734,.75842,.75842,.75842,.75842,.95782,.95782,.95782,.95782,.97093,1.03584,.96924,.96924,.96924,.96924,.96924,1.1714,.96924,.95132,.95132,.95132,.95132,.8287,.83968,.89049,.91484,.91484,.91484,.91484,.91484,.91484,.93575,.92383,.9403,.9403,.9403,.9403,.8717,.8717,.8717,.8717,1.00527,1.01756,1.05356,1.05356,1.05356,1.05356,1.05356,1.24644,.95923,1.01756,1.01756,1.01756,1.01756,.96777,1.05707,.96777,.96706,.91484,.96706,.91484,.96706,.91484,.85734,.92383,.85734,.92383,.85734,.92383,.85734,.92383,.97093,1.0969,.97093,1.05882,.75842,.9403,.75842,.9403,.75842,.9403,.75842,.9403,.75842,.9403,.88198,1.05882,.88198,1.05882,.88198,1.05882,1,1,.9831,1.01756,.9831,1.01756,.95782,.8717,.95782,.8717,.95782,.8717,.95782,1.09011,.95782,.8717,.84784,1.11551,.71387,1.09011,1,1,.99414,.84636,1.09011,1,1,.84636,1.0536,.84636,.94298,.84636,1.23297,1.03584,1.01756,1,1,1.03584,1.01756,1.00323,1.03444,1.01756,.96924,1.05356,.96924,1.05356,.96924,1.05356,.93066,.98293,.82826,1.04399,1,1,.82826,1.04399,.79649,.84863,.79649,.84863,.79649,.84863,.79649,.84863,1,1,.85771,1.17318,.85771,1.21968,.95132,1.01756,.95132,1.01756,.95132,1.01756,.95132,1.01756,.95132,1.01756,.95132,1.01756,.98965,1.00068,.8287,.96777,.8287,.93365,.9043,.93365,.9043,.93365,.9043,1.08571,.96927,.96706,.91484,.86035,.93575,.96924,.95923,1,1,.85771,1.21968,1.11437,1.11437,.93109,.91202,.60411,.84164,.55572,1.01173,.97361,.81818,.81818,.96635,.78032,.72727,.92366,.98601,1.03405,.77968,1.09799,1.2,.96706,.85944,.85638,.96491,.75842,.93365,.9831,.96924,.95782,.86969,.94152,1.07796,1.03584,.78437,.96924,.98715,.83968,.83491,.85771,.8287,.94492,.88433,.9287,1.0098,.95782,.8287,1.0625,.98248,1.03424,1.2,1.01071,1.0625,.95246,1.03809,1.04912,.98248,1.00221,1.03424,1.05443,1.2,1.04785,.99609,1.00169,1.05176,.99346,1.05356,.9087,1.03004,.95542,.93117,1.23362,1.01071,1.07831,1.02512,1.05205,1.03502,1.2,1.01071,1.05356,1.01071,1.03502,.75842,1,1,1,1,1,1,1,1,1,1,1,1,1.03719,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.9403,1,1,1,1,1,1,1,1,1,1,1,1,1.04021,1,1,1,1,1,1,.98965,1.00068,.98965,1.00068,.98965,1.00068,.8287,.96777,1,1.20088,.89903,1,1,.75155,1.03077,1.03077,1.03077,1.03077,1.13196,1.13196,1.13196,.67428,.67428,1.16039,.73291,1.20996,1.22135,1.06483,.94868,.94868,.95996,1.24633,1,1.07497,.87796,.96927,1.01518,.96927,1,1,1,.77295,1,1,1.10539,1.10539,1.11358,1.06967,.86279,.94434,.86279,.94434,.86182,1,1,1.083,1,.91578,.86507,1.1714,1.18416,1.14589,.69825,.97622,1.9697,1.24822,1.24822,1.17238,1.24822,1.24822,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.42603,1,.99862,.99862,1,.87025,.87025,.87025,.87025,1.18083,1.42603,1,1.42603,1.42603,.99862,1,1,1,1,1,1.2886,1.04315,1.15296,1.34163,1,1,1,1.10938,1.10938,1,1,1,1.05425,1.09971,1.09971,1.09971,1,1,1,1,1,1,1,1,1,1,1];r.SegoeuiRegularMetrics={lineHeight:1.33008,lineGap:0}},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.getFontType=function getFontType(t,r){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2];switch(t){case"Type1":return o?l.FontType.TYPE1STANDARD:"Type1C"===r?l.FontType.TYPE1C:l.FontType.TYPE1;case"CIDFontType0":return"CIDFontType0C"===r?l.FontType.CIDFONTTYPE0C:l.FontType.CIDFONTTYPE0;case"OpenType":return l.FontType.OPENTYPE;case"TrueType":return l.FontType.TRUETYPE;case"CIDFontType2":return l.FontType.CIDFONTTYPE2;case"MMType1":return l.FontType.MMTYPE1;case"Type0":return l.FontType.TYPE0;default:return l.FontType.UNKNOWN}};r.normalizeFontName=function normalizeFontName(t){return t.replace(/[,_]/g,"-").replace(/\s/g,"")};r.recoverGlyphName=recoverGlyphName;r.type1FontGlyphMapping=function type1FontGlyphMapping(t,r,o){var l,h,m,g=Object.create(null),y=!!(t.flags&d.Symbolic);if(t.isInternalFont){m=r;for(h=0;h<m.length;h++){l=o.indexOf(m[h]);g[h]=l>=0?l:0}}else if(t.baseEncodingName){m=(0,c.getEncoding)(t.baseEncodingName);for(h=0;h<m.length;h++){l=o.indexOf(m[h]);g[h]=l>=0?l:0}}else if(y)for(h in r)g[h]=r[h];else{m=c.StandardEncoding;for(h=0;h<m.length;h++){l=o.indexOf(m[h]);g[h]=l>=0?l:0}}var v,S=t.differences;if(S)for(h in S){var _=S[h];if(-1===(l=o.indexOf(_))){v||(v=(0,u.getGlyphsUnicode)());var k=recoverGlyphName(_,v);k!==_&&(l=o.indexOf(k))}g[h]=l>=0?l:0}return g};r.SEAC_ANALYSIS_ENABLED=r.MacStandardGlyphOrdering=r.FontFlags=void 0;var l=o(4),c=o(132),u=o(133),h=o(134);r.SEAC_ANALYSIS_ENABLED=!0;var d={FixedPitch:1,Serif:2,Symbolic:4,Script:8,Nonsymbolic:32,Italic:64,AllCap:65536,SmallCap:131072,ForceBold:262144};r.FontFlags=d;r.MacStandardGlyphOrdering=[".notdef",".null","nonmarkingreturn","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","nonbreakingspace","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron","Lslash","lslash","Scaron","scaron","Zcaron","zcaron","brokenbar","Eth","eth","Yacute","yacute","Thorn","thorn","minus","multiply","onesuperior","twosuperior","threesuperior","onehalf","onequarter","threequarters","franc","Gbreve","gbreve","Idotaccent","Scedilla","scedilla","Cacute","cacute","Ccaron","ccaron","dcroat"];function recoverGlyphName(t,r){if(void 0!==r[t])return t;var o=(0,h.getUnicodeForGlyph)(t,r);if(-1!==o)for(var c in r)if(r[c]===o)return c;(0,l.info)("Unable to recover a standard glyph name for: "+t);return t}},(t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.getEncoding=function getEncoding(t){switch(t){case"WinAnsiEncoding":return h;case"StandardEncoding":return u;case"MacRomanEncoding":return c;case"SymbolSetEncoding":return d;case"ZapfDingbatsEncoding":return m;case"ExpertEncoding":return o;case"MacExpertEncoding":return l;default:return null}};r.ZapfDingbatsEncoding=r.WinAnsiEncoding=r.SymbolSetEncoding=r.StandardEncoding=r.MacRomanEncoding=r.ExpertEncoding=void 0;var o=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","","asuperior","bsuperior","centsuperior","dsuperior","esuperior","","","","isuperior","","","lsuperior","msuperior","nsuperior","osuperior","","","rsuperior","ssuperior","tsuperior","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdownsmall","centoldstyle","Lslashsmall","","","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","","Dotaccentsmall","","","Macronsmall","","","figuredash","hypheninferior","","","Ogoneksmall","Ringsmall","Cedillasmall","","","","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"];r.ExpertEncoding=o;var l=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","centoldstyle","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","","threequartersemdash","","questionsmall","","","","","Ethsmall","","","onequarter","onehalf","threequarters","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","","","","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hypheninferior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","asuperior","centsuperior","","","","","Aacutesmall","Agravesmall","Acircumflexsmall","Adieresissmall","Atildesmall","Aringsmall","Ccedillasmall","Eacutesmall","Egravesmall","Ecircumflexsmall","Edieresissmall","Iacutesmall","Igravesmall","Icircumflexsmall","Idieresissmall","Ntildesmall","Oacutesmall","Ogravesmall","Ocircumflexsmall","Odieresissmall","Otildesmall","Uacutesmall","Ugravesmall","Ucircumflexsmall","Udieresissmall","","eightsuperior","fourinferior","threeinferior","sixinferior","eightinferior","seveninferior","Scaronsmall","","centinferior","twoinferior","","Dieresissmall","","Caronsmall","osuperior","fiveinferior","","commainferior","periodinferior","Yacutesmall","","dollarinferior","","","Thornsmall","","nineinferior","zeroinferior","Zcaronsmall","AEsmall","Oslashsmall","questiondownsmall","oneinferior","Lslashsmall","","","","","","","Cedillasmall","","","","","","OEsmall","figuredash","hyphensuperior","","","","","exclamdownsmall","","Ydieresissmall","","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","ninesuperior","zerosuperior","","esuperior","rsuperior","tsuperior","","","isuperior","ssuperior","dsuperior","","","","","","lsuperior","Ogoneksmall","Brevesmall","Macronsmall","bsuperior","nsuperior","msuperior","commasuperior","periodsuperior","Dotaccentsmall","Ringsmall","","","",""],c=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","space","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron"];r.MacRomanEncoding=c;var u=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","","endash","dagger","daggerdbl","periodcentered","","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","","questiondown","","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","","ring","cedilla","","hungarumlaut","ogonek","caron","emdash","","","","","","","","","","","","","","","","","AE","","ordfeminine","","","","","Lslash","Oslash","OE","ordmasculine","","","","","","ae","","","","dotlessi","","","lslash","oslash","oe","germandbls","","","",""];r.StandardEncoding=u;var h=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","bullet","Euro","bullet","quotesinglbase","florin","quotedblbase","ellipsis","dagger","daggerdbl","circumflex","perthousand","Scaron","guilsinglleft","OE","bullet","Zcaron","bullet","bullet","quoteleft","quoteright","quotedblleft","quotedblright","bullet","endash","emdash","tilde","trademark","scaron","guilsinglright","oe","bullet","zcaron","Ydieresis","space","exclamdown","cent","sterling","currency","yen","brokenbar","section","dieresis","copyright","ordfeminine","guillemotleft","logicalnot","hyphen","registered","macron","degree","plusminus","twosuperior","threesuperior","acute","mu","paragraph","periodcentered","cedilla","onesuperior","ordmasculine","guillemotright","onequarter","onehalf","threequarters","questiondown","Agrave","Aacute","Acircumflex","Atilde","Adieresis","Aring","AE","Ccedilla","Egrave","Eacute","Ecircumflex","Edieresis","Igrave","Iacute","Icircumflex","Idieresis","Eth","Ntilde","Ograve","Oacute","Ocircumflex","Otilde","Odieresis","multiply","Oslash","Ugrave","Uacute","Ucircumflex","Udieresis","Yacute","Thorn","germandbls","agrave","aacute","acircumflex","atilde","adieresis","aring","ae","ccedilla","egrave","eacute","ecircumflex","edieresis","igrave","iacute","icircumflex","idieresis","eth","ntilde","ograve","oacute","ocircumflex","otilde","odieresis","divide","oslash","ugrave","uacute","ucircumflex","udieresis","yacute","thorn","ydieresis"];r.WinAnsiEncoding=h;var d=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","universal","numbersign","existential","percent","ampersand","suchthat","parenleft","parenright","asteriskmath","plus","comma","minus","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","congruent","Alpha","Beta","Chi","Delta","Epsilon","Phi","Gamma","Eta","Iota","theta1","Kappa","Lambda","Mu","Nu","Omicron","Pi","Theta","Rho","Sigma","Tau","Upsilon","sigma1","Omega","Xi","Psi","Zeta","bracketleft","therefore","bracketright","perpendicular","underscore","radicalex","alpha","beta","chi","delta","epsilon","phi","gamma","eta","iota","phi1","kappa","lambda","mu","nu","omicron","pi","theta","rho","sigma","tau","upsilon","omega1","omega","xi","psi","zeta","braceleft","bar","braceright","similar","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Euro","Upsilon1","minute","lessequal","fraction","infinity","florin","club","diamond","heart","spade","arrowboth","arrowleft","arrowup","arrowright","arrowdown","degree","plusminus","second","greaterequal","multiply","proportional","partialdiff","bullet","divide","notequal","equivalence","approxequal","ellipsis","arrowvertex","arrowhorizex","carriagereturn","aleph","Ifraktur","Rfraktur","weierstrass","circlemultiply","circleplus","emptyset","intersection","union","propersuperset","reflexsuperset","notsubset","propersubset","reflexsubset","element","notelement","angle","gradient","registerserif","copyrightserif","trademarkserif","product","radical","dotmath","logicalnot","logicaland","logicalor","arrowdblboth","arrowdblleft","arrowdblup","arrowdblright","arrowdbldown","lozenge","angleleft","registersans","copyrightsans","trademarksans","summation","parenlefttp","parenleftex","parenleftbt","bracketlefttp","bracketleftex","bracketleftbt","bracelefttp","braceleftmid","braceleftbt","braceex","","angleright","integral","integraltp","integralex","integralbt","parenrighttp","parenrightex","parenrightbt","bracketrighttp","bracketrightex","bracketrightbt","bracerighttp","bracerightmid","bracerightbt",""];r.SymbolSetEncoding=d;var m=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","a1","a2","a202","a3","a4","a5","a119","a118","a117","a11","a12","a13","a14","a15","a16","a105","a17","a18","a19","a20","a21","a22","a23","a24","a25","a26","a27","a28","a6","a7","a8","a9","a10","a29","a30","a31","a32","a33","a34","a35","a36","a37","a38","a39","a40","a41","a42","a43","a44","a45","a46","a47","a48","a49","a50","a51","a52","a53","a54","a55","a56","a57","a58","a59","a60","a61","a62","a63","a64","a65","a66","a67","a68","a69","a70","a71","a72","a73","a74","a203","a75","a204","a76","a77","a78","a79","a81","a82","a83","a84","a97","a98","a99","a100","","a89","a90","a93","a94","a91","a92","a205","a85","a206","a86","a87","a88","a95","a96","","","","","","","","","","","","","","","","","","","","a101","a102","a103","a104","a106","a107","a108","a112","a111","a110","a109","a120","a121","a122","a123","a124","a125","a126","a127","a128","a129","a130","a131","a132","a133","a134","a135","a136","a137","a138","a139","a140","a141","a142","a143","a144","a145","a146","a147","a148","a149","a150","a151","a152","a153","a154","a155","a156","a157","a158","a159","a160","a161","a163","a164","a196","a165","a192","a166","a167","a168","a169","a170","a171","a172","a173","a162","a174","a175","a176","a177","a178","a179","a193","a180","a199","a181","a200","a182","","a201","a183","a184","a197","a185","a194","a198","a186","a195","a187","a188","a189","a190","a191",""];r.ZapfDingbatsEncoding=m},(t,r,o)=>{"use strict";o.r(r);o.d(r,{getDingbatsGlyphsUnicode:()=>u,getGlyphsUnicode:()=>c});var l=o(122);const c=(0,l.getArrayLookupTableFactory)((function(){return["A",65,"AE",198,"AEacute",508,"AEmacron",482,"AEsmall",63462,"Aacute",193,"Aacutesmall",63457,"Abreve",258,"Abreveacute",7854,"Abrevecyrillic",1232,"Abrevedotbelow",7862,"Abrevegrave",7856,"Abrevehookabove",7858,"Abrevetilde",7860,"Acaron",461,"Acircle",9398,"Acircumflex",194,"Acircumflexacute",7844,"Acircumflexdotbelow",7852,"Acircumflexgrave",7846,"Acircumflexhookabove",7848,"Acircumflexsmall",63458,"Acircumflextilde",7850,"Acute",63177,"Acutesmall",63412,"Acyrillic",1040,"Adblgrave",512,"Adieresis",196,"Adieresiscyrillic",1234,"Adieresismacron",478,"Adieresissmall",63460,"Adotbelow",7840,"Adotmacron",480,"Agrave",192,"Agravesmall",63456,"Ahookabove",7842,"Aiecyrillic",1236,"Ainvertedbreve",514,"Alpha",913,"Alphatonos",902,"Amacron",256,"Amonospace",65313,"Aogonek",260,"Aring",197,"Aringacute",506,"Aringbelow",7680,"Aringsmall",63461,"Asmall",63329,"Atilde",195,"Atildesmall",63459,"Aybarmenian",1329,"B",66,"Bcircle",9399,"Bdotaccent",7682,"Bdotbelow",7684,"Becyrillic",1041,"Benarmenian",1330,"Beta",914,"Bhook",385,"Blinebelow",7686,"Bmonospace",65314,"Brevesmall",63220,"Bsmall",63330,"Btopbar",386,"C",67,"Caarmenian",1342,"Cacute",262,"Caron",63178,"Caronsmall",63221,"Ccaron",268,"Ccedilla",199,"Ccedillaacute",7688,"Ccedillasmall",63463,"Ccircle",9400,"Ccircumflex",264,"Cdot",266,"Cdotaccent",266,"Cedillasmall",63416,"Chaarmenian",1353,"Cheabkhasiancyrillic",1212,"Checyrillic",1063,"Chedescenderabkhasiancyrillic",1214,"Chedescendercyrillic",1206,"Chedieresiscyrillic",1268,"Cheharmenian",1347,"Chekhakassiancyrillic",1227,"Cheverticalstrokecyrillic",1208,"Chi",935,"Chook",391,"Circumflexsmall",63222,"Cmonospace",65315,"Coarmenian",1361,"Csmall",63331,"D",68,"DZ",497,"DZcaron",452,"Daarmenian",1332,"Dafrican",393,"Dcaron",270,"Dcedilla",7696,"Dcircle",9401,"Dcircumflexbelow",7698,"Dcroat",272,"Ddotaccent",7690,"Ddotbelow",7692,"Decyrillic",1044,"Deicoptic",1006,"Delta",8710,"Deltagreek",916,"Dhook",394,"Dieresis",63179,"DieresisAcute",63180,"DieresisGrave",63181,"Dieresissmall",63400,"Digammagreek",988,"Djecyrillic",1026,"Dlinebelow",7694,"Dmonospace",65316,"Dotaccentsmall",63223,"Dslash",272,"Dsmall",63332,"Dtopbar",395,"Dz",498,"Dzcaron",453,"Dzeabkhasiancyrillic",1248,"Dzecyrillic",1029,"Dzhecyrillic",1039,"E",69,"Eacute",201,"Eacutesmall",63465,"Ebreve",276,"Ecaron",282,"Ecedillabreve",7708,"Echarmenian",1333,"Ecircle",9402,"Ecircumflex",202,"Ecircumflexacute",7870,"Ecircumflexbelow",7704,"Ecircumflexdotbelow",7878,"Ecircumflexgrave",7872,"Ecircumflexhookabove",7874,"Ecircumflexsmall",63466,"Ecircumflextilde",7876,"Ecyrillic",1028,"Edblgrave",516,"Edieresis",203,"Edieresissmall",63467,"Edot",278,"Edotaccent",278,"Edotbelow",7864,"Efcyrillic",1060,"Egrave",200,"Egravesmall",63464,"Eharmenian",1335,"Ehookabove",7866,"Eightroman",8551,"Einvertedbreve",518,"Eiotifiedcyrillic",1124,"Elcyrillic",1051,"Elevenroman",8554,"Emacron",274,"Emacronacute",7702,"Emacrongrave",7700,"Emcyrillic",1052,"Emonospace",65317,"Encyrillic",1053,"Endescendercyrillic",1186,"Eng",330,"Enghecyrillic",1188,"Enhookcyrillic",1223,"Eogonek",280,"Eopen",400,"Epsilon",917,"Epsilontonos",904,"Ercyrillic",1056,"Ereversed",398,"Ereversedcyrillic",1069,"Escyrillic",1057,"Esdescendercyrillic",1194,"Esh",425,"Esmall",63333,"Eta",919,"Etarmenian",1336,"Etatonos",905,"Eth",208,"Ethsmall",63472,"Etilde",7868,"Etildebelow",7706,"Euro",8364,"Ezh",439,"Ezhcaron",494,"Ezhreversed",440,"F",70,"Fcircle",9403,"Fdotaccent",7710,"Feharmenian",1366,"Feicoptic",996,"Fhook",401,"Fitacyrillic",1138,"Fiveroman",8548,"Fmonospace",65318,"Fourroman",8547,"Fsmall",63334,"G",71,"GBsquare",13191,"Gacute",500,"Gamma",915,"Gammaafrican",404,"Gangiacoptic",1002,"Gbreve",286,"Gcaron",486,"Gcedilla",290,"Gcircle",9404,"Gcircumflex",284,"Gcommaaccent",290,"Gdot",288,"Gdotaccent",288,"Gecyrillic",1043,"Ghadarmenian",1346,"Ghemiddlehookcyrillic",1172,"Ghestrokecyrillic",1170,"Gheupturncyrillic",1168,"Ghook",403,"Gimarmenian",1331,"Gjecyrillic",1027,"Gmacron",7712,"Gmonospace",65319,"Grave",63182,"Gravesmall",63328,"Gsmall",63335,"Gsmallhook",667,"Gstroke",484,"H",72,"H18533",9679,"H18543",9642,"H18551",9643,"H22073",9633,"HPsquare",13259,"Haabkhasiancyrillic",1192,"Hadescendercyrillic",1202,"Hardsigncyrillic",1066,"Hbar",294,"Hbrevebelow",7722,"Hcedilla",7720,"Hcircle",9405,"Hcircumflex",292,"Hdieresis",7718,"Hdotaccent",7714,"Hdotbelow",7716,"Hmonospace",65320,"Hoarmenian",1344,"Horicoptic",1e3,"Hsmall",63336,"Hungarumlaut",63183,"Hungarumlautsmall",63224,"Hzsquare",13200,"I",73,"IAcyrillic",1071,"IJ",306,"IUcyrillic",1070,"Iacute",205,"Iacutesmall",63469,"Ibreve",300,"Icaron",463,"Icircle",9406,"Icircumflex",206,"Icircumflexsmall",63470,"Icyrillic",1030,"Idblgrave",520,"Idieresis",207,"Idieresisacute",7726,"Idieresiscyrillic",1252,"Idieresissmall",63471,"Idot",304,"Idotaccent",304,"Idotbelow",7882,"Iebrevecyrillic",1238,"Iecyrillic",1045,"Ifraktur",8465,"Igrave",204,"Igravesmall",63468,"Ihookabove",7880,"Iicyrillic",1048,"Iinvertedbreve",522,"Iishortcyrillic",1049,"Imacron",298,"Imacroncyrillic",1250,"Imonospace",65321,"Iniarmenian",1339,"Iocyrillic",1025,"Iogonek",302,"Iota",921,"Iotaafrican",406,"Iotadieresis",938,"Iotatonos",906,"Ismall",63337,"Istroke",407,"Itilde",296,"Itildebelow",7724,"Izhitsacyrillic",1140,"Izhitsadblgravecyrillic",1142,"J",74,"Jaarmenian",1345,"Jcircle",9407,"Jcircumflex",308,"Jecyrillic",1032,"Jheharmenian",1355,"Jmonospace",65322,"Jsmall",63338,"K",75,"KBsquare",13189,"KKsquare",13261,"Kabashkircyrillic",1184,"Kacute",7728,"Kacyrillic",1050,"Kadescendercyrillic",1178,"Kahookcyrillic",1219,"Kappa",922,"Kastrokecyrillic",1182,"Kaverticalstrokecyrillic",1180,"Kcaron",488,"Kcedilla",310,"Kcircle",9408,"Kcommaaccent",310,"Kdotbelow",7730,"Keharmenian",1364,"Kenarmenian",1343,"Khacyrillic",1061,"Kheicoptic",998,"Khook",408,"Kjecyrillic",1036,"Klinebelow",7732,"Kmonospace",65323,"Koppacyrillic",1152,"Koppagreek",990,"Ksicyrillic",1134,"Ksmall",63339,"L",76,"LJ",455,"LL",63167,"Lacute",313,"Lambda",923,"Lcaron",317,"Lcedilla",315,"Lcircle",9409,"Lcircumflexbelow",7740,"Lcommaaccent",315,"Ldot",319,"Ldotaccent",319,"Ldotbelow",7734,"Ldotbelowmacron",7736,"Liwnarmenian",1340,"Lj",456,"Ljecyrillic",1033,"Llinebelow",7738,"Lmonospace",65324,"Lslash",321,"Lslashsmall",63225,"Lsmall",63340,"M",77,"MBsquare",13190,"Macron",63184,"Macronsmall",63407,"Macute",7742,"Mcircle",9410,"Mdotaccent",7744,"Mdotbelow",7746,"Menarmenian",1348,"Mmonospace",65325,"Msmall",63341,"Mturned",412,"Mu",924,"N",78,"NJ",458,"Nacute",323,"Ncaron",327,"Ncedilla",325,"Ncircle",9411,"Ncircumflexbelow",7754,"Ncommaaccent",325,"Ndotaccent",7748,"Ndotbelow",7750,"Nhookleft",413,"Nineroman",8552,"Nj",459,"Njecyrillic",1034,"Nlinebelow",7752,"Nmonospace",65326,"Nowarmenian",1350,"Nsmall",63342,"Ntilde",209,"Ntildesmall",63473,"Nu",925,"O",79,"OE",338,"OEsmall",63226,"Oacute",211,"Oacutesmall",63475,"Obarredcyrillic",1256,"Obarreddieresiscyrillic",1258,"Obreve",334,"Ocaron",465,"Ocenteredtilde",415,"Ocircle",9412,"Ocircumflex",212,"Ocircumflexacute",7888,"Ocircumflexdotbelow",7896,"Ocircumflexgrave",7890,"Ocircumflexhookabove",7892,"Ocircumflexsmall",63476,"Ocircumflextilde",7894,"Ocyrillic",1054,"Odblacute",336,"Odblgrave",524,"Odieresis",214,"Odieresiscyrillic",1254,"Odieresissmall",63478,"Odotbelow",7884,"Ogoneksmall",63227,"Ograve",210,"Ogravesmall",63474,"Oharmenian",1365,"Ohm",8486,"Ohookabove",7886,"Ohorn",416,"Ohornacute",7898,"Ohorndotbelow",7906,"Ohorngrave",7900,"Ohornhookabove",7902,"Ohorntilde",7904,"Ohungarumlaut",336,"Oi",418,"Oinvertedbreve",526,"Omacron",332,"Omacronacute",7762,"Omacrongrave",7760,"Omega",8486,"Omegacyrillic",1120,"Omegagreek",937,"Omegaroundcyrillic",1146,"Omegatitlocyrillic",1148,"Omegatonos",911,"Omicron",927,"Omicrontonos",908,"Omonospace",65327,"Oneroman",8544,"Oogonek",490,"Oogonekmacron",492,"Oopen",390,"Oslash",216,"Oslashacute",510,"Oslashsmall",63480,"Osmall",63343,"Ostrokeacute",510,"Otcyrillic",1150,"Otilde",213,"Otildeacute",7756,"Otildedieresis",7758,"Otildesmall",63477,"P",80,"Pacute",7764,"Pcircle",9413,"Pdotaccent",7766,"Pecyrillic",1055,"Peharmenian",1354,"Pemiddlehookcyrillic",1190,"Phi",934,"Phook",420,"Pi",928,"Piwrarmenian",1363,"Pmonospace",65328,"Psi",936,"Psicyrillic",1136,"Psmall",63344,"Q",81,"Qcircle",9414,"Qmonospace",65329,"Qsmall",63345,"R",82,"Raarmenian",1356,"Racute",340,"Rcaron",344,"Rcedilla",342,"Rcircle",9415,"Rcommaaccent",342,"Rdblgrave",528,"Rdotaccent",7768,"Rdotbelow",7770,"Rdotbelowmacron",7772,"Reharmenian",1360,"Rfraktur",8476,"Rho",929,"Ringsmall",63228,"Rinvertedbreve",530,"Rlinebelow",7774,"Rmonospace",65330,"Rsmall",63346,"Rsmallinverted",641,"Rsmallinvertedsuperior",694,"S",83,"SF010000",9484,"SF020000",9492,"SF030000",9488,"SF040000",9496,"SF050000",9532,"SF060000",9516,"SF070000",9524,"SF080000",9500,"SF090000",9508,"SF100000",9472,"SF110000",9474,"SF190000",9569,"SF200000",9570,"SF210000",9558,"SF220000",9557,"SF230000",9571,"SF240000",9553,"SF250000",9559,"SF260000",9565,"SF270000",9564,"SF280000",9563,"SF360000",9566,"SF370000",9567,"SF380000",9562,"SF390000",9556,"SF400000",9577,"SF410000",9574,"SF420000",9568,"SF430000",9552,"SF440000",9580,"SF450000",9575,"SF460000",9576,"SF470000",9572,"SF480000",9573,"SF490000",9561,"SF500000",9560,"SF510000",9554,"SF520000",9555,"SF530000",9579,"SF540000",9578,"Sacute",346,"Sacutedotaccent",7780,"Sampigreek",992,"Scaron",352,"Scarondotaccent",7782,"Scaronsmall",63229,"Scedilla",350,"Schwa",399,"Schwacyrillic",1240,"Schwadieresiscyrillic",1242,"Scircle",9416,"Scircumflex",348,"Scommaaccent",536,"Sdotaccent",7776,"Sdotbelow",7778,"Sdotbelowdotaccent",7784,"Seharmenian",1357,"Sevenroman",8550,"Shaarmenian",1351,"Shacyrillic",1064,"Shchacyrillic",1065,"Sheicoptic",994,"Shhacyrillic",1210,"Shimacoptic",1004,"Sigma",931,"Sixroman",8549,"Smonospace",65331,"Softsigncyrillic",1068,"Ssmall",63347,"Stigmagreek",986,"T",84,"Tau",932,"Tbar",358,"Tcaron",356,"Tcedilla",354,"Tcircle",9417,"Tcircumflexbelow",7792,"Tcommaaccent",354,"Tdotaccent",7786,"Tdotbelow",7788,"Tecyrillic",1058,"Tedescendercyrillic",1196,"Tenroman",8553,"Tetsecyrillic",1204,"Theta",920,"Thook",428,"Thorn",222,"Thornsmall",63486,"Threeroman",8546,"Tildesmall",63230,"Tiwnarmenian",1359,"Tlinebelow",7790,"Tmonospace",65332,"Toarmenian",1337,"Tonefive",444,"Tonesix",388,"Tonetwo",423,"Tretroflexhook",430,"Tsecyrillic",1062,"Tshecyrillic",1035,"Tsmall",63348,"Twelveroman",8555,"Tworoman",8545,"U",85,"Uacute",218,"Uacutesmall",63482,"Ubreve",364,"Ucaron",467,"Ucircle",9418,"Ucircumflex",219,"Ucircumflexbelow",7798,"Ucircumflexsmall",63483,"Ucyrillic",1059,"Udblacute",368,"Udblgrave",532,"Udieresis",220,"Udieresisacute",471,"Udieresisbelow",7794,"Udieresiscaron",473,"Udieresiscyrillic",1264,"Udieresisgrave",475,"Udieresismacron",469,"Udieresissmall",63484,"Udotbelow",7908,"Ugrave",217,"Ugravesmall",63481,"Uhookabove",7910,"Uhorn",431,"Uhornacute",7912,"Uhorndotbelow",7920,"Uhorngrave",7914,"Uhornhookabove",7916,"Uhorntilde",7918,"Uhungarumlaut",368,"Uhungarumlautcyrillic",1266,"Uinvertedbreve",534,"Ukcyrillic",1144,"Umacron",362,"Umacroncyrillic",1262,"Umacrondieresis",7802,"Umonospace",65333,"Uogonek",370,"Upsilon",933,"Upsilon1",978,"Upsilonacutehooksymbolgreek",979,"Upsilonafrican",433,"Upsilondieresis",939,"Upsilondieresishooksymbolgreek",980,"Upsilonhooksymbol",978,"Upsilontonos",910,"Uring",366,"Ushortcyrillic",1038,"Usmall",63349,"Ustraightcyrillic",1198,"Ustraightstrokecyrillic",1200,"Utilde",360,"Utildeacute",7800,"Utildebelow",7796,"V",86,"Vcircle",9419,"Vdotbelow",7806,"Vecyrillic",1042,"Vewarmenian",1358,"Vhook",434,"Vmonospace",65334,"Voarmenian",1352,"Vsmall",63350,"Vtilde",7804,"W",87,"Wacute",7810,"Wcircle",9420,"Wcircumflex",372,"Wdieresis",7812,"Wdotaccent",7814,"Wdotbelow",7816,"Wgrave",7808,"Wmonospace",65335,"Wsmall",63351,"X",88,"Xcircle",9421,"Xdieresis",7820,"Xdotaccent",7818,"Xeharmenian",1341,"Xi",926,"Xmonospace",65336,"Xsmall",63352,"Y",89,"Yacute",221,"Yacutesmall",63485,"Yatcyrillic",1122,"Ycircle",9422,"Ycircumflex",374,"Ydieresis",376,"Ydieresissmall",63487,"Ydotaccent",7822,"Ydotbelow",7924,"Yericyrillic",1067,"Yerudieresiscyrillic",1272,"Ygrave",7922,"Yhook",435,"Yhookabove",7926,"Yiarmenian",1349,"Yicyrillic",1031,"Yiwnarmenian",1362,"Ymonospace",65337,"Ysmall",63353,"Ytilde",7928,"Yusbigcyrillic",1130,"Yusbigiotifiedcyrillic",1132,"Yuslittlecyrillic",1126,"Yuslittleiotifiedcyrillic",1128,"Z",90,"Zaarmenian",1334,"Zacute",377,"Zcaron",381,"Zcaronsmall",63231,"Zcircle",9423,"Zcircumflex",7824,"Zdot",379,"Zdotaccent",379,"Zdotbelow",7826,"Zecyrillic",1047,"Zedescendercyrillic",1176,"Zedieresiscyrillic",1246,"Zeta",918,"Zhearmenian",1338,"Zhebrevecyrillic",1217,"Zhecyrillic",1046,"Zhedescendercyrillic",1174,"Zhedieresiscyrillic",1244,"Zlinebelow",7828,"Zmonospace",65338,"Zsmall",63354,"Zstroke",437,"a",97,"aabengali",2438,"aacute",225,"aadeva",2310,"aagujarati",2694,"aagurmukhi",2566,"aamatragurmukhi",2622,"aarusquare",13059,"aavowelsignbengali",2494,"aavowelsigndeva",2366,"aavowelsigngujarati",2750,"abbreviationmarkarmenian",1375,"abbreviationsigndeva",2416,"abengali",2437,"abopomofo",12570,"abreve",259,"abreveacute",7855,"abrevecyrillic",1233,"abrevedotbelow",7863,"abrevegrave",7857,"abrevehookabove",7859,"abrevetilde",7861,"acaron",462,"acircle",9424,"acircumflex",226,"acircumflexacute",7845,"acircumflexdotbelow",7853,"acircumflexgrave",7847,"acircumflexhookabove",7849,"acircumflextilde",7851,"acute",180,"acutebelowcmb",791,"acutecmb",769,"acutecomb",769,"acutedeva",2388,"acutelowmod",719,"acutetonecmb",833,"acyrillic",1072,"adblgrave",513,"addakgurmukhi",2673,"adeva",2309,"adieresis",228,"adieresiscyrillic",1235,"adieresismacron",479,"adotbelow",7841,"adotmacron",481,"ae",230,"aeacute",509,"aekorean",12624,"aemacron",483,"afii00208",8213,"afii08941",8356,"afii10017",1040,"afii10018",1041,"afii10019",1042,"afii10020",1043,"afii10021",1044,"afii10022",1045,"afii10023",1025,"afii10024",1046,"afii10025",1047,"afii10026",1048,"afii10027",1049,"afii10028",1050,"afii10029",1051,"afii10030",1052,"afii10031",1053,"afii10032",1054,"afii10033",1055,"afii10034",1056,"afii10035",1057,"afii10036",1058,"afii10037",1059,"afii10038",1060,"afii10039",1061,"afii10040",1062,"afii10041",1063,"afii10042",1064,"afii10043",1065,"afii10044",1066,"afii10045",1067,"afii10046",1068,"afii10047",1069,"afii10048",1070,"afii10049",1071,"afii10050",1168,"afii10051",1026,"afii10052",1027,"afii10053",1028,"afii10054",1029,"afii10055",1030,"afii10056",1031,"afii10057",1032,"afii10058",1033,"afii10059",1034,"afii10060",1035,"afii10061",1036,"afii10062",1038,"afii10063",63172,"afii10064",63173,"afii10065",1072,"afii10066",1073,"afii10067",1074,"afii10068",1075,"afii10069",1076,"afii10070",1077,"afii10071",1105,"afii10072",1078,"afii10073",1079,"afii10074",1080,"afii10075",1081,"afii10076",1082,"afii10077",1083,"afii10078",1084,"afii10079",1085,"afii10080",1086,"afii10081",1087,"afii10082",1088,"afii10083",1089,"afii10084",1090,"afii10085",1091,"afii10086",1092,"afii10087",1093,"afii10088",1094,"afii10089",1095,"afii10090",1096,"afii10091",1097,"afii10092",1098,"afii10093",1099,"afii10094",1100,"afii10095",1101,"afii10096",1102,"afii10097",1103,"afii10098",1169,"afii10099",1106,"afii10100",1107,"afii10101",1108,"afii10102",1109,"afii10103",1110,"afii10104",1111,"afii10105",1112,"afii10106",1113,"afii10107",1114,"afii10108",1115,"afii10109",1116,"afii10110",1118,"afii10145",1039,"afii10146",1122,"afii10147",1138,"afii10148",1140,"afii10192",63174,"afii10193",1119,"afii10194",1123,"afii10195",1139,"afii10196",1141,"afii10831",63175,"afii10832",63176,"afii10846",1241,"afii299",8206,"afii300",8207,"afii301",8205,"afii57381",1642,"afii57388",1548,"afii57392",1632,"afii57393",1633,"afii57394",1634,"afii57395",1635,"afii57396",1636,"afii57397",1637,"afii57398",1638,"afii57399",1639,"afii57400",1640,"afii57401",1641,"afii57403",1563,"afii57407",1567,"afii57409",1569,"afii57410",1570,"afii57411",1571,"afii57412",1572,"afii57413",1573,"afii57414",1574,"afii57415",1575,"afii57416",1576,"afii57417",1577,"afii57418",1578,"afii57419",1579,"afii57420",1580,"afii57421",1581,"afii57422",1582,"afii57423",1583,"afii57424",1584,"afii57425",1585,"afii57426",1586,"afii57427",1587,"afii57428",1588,"afii57429",1589,"afii57430",1590,"afii57431",1591,"afii57432",1592,"afii57433",1593,"afii57434",1594,"afii57440",1600,"afii57441",1601,"afii57442",1602,"afii57443",1603,"afii57444",1604,"afii57445",1605,"afii57446",1606,"afii57448",1608,"afii57449",1609,"afii57450",1610,"afii57451",1611,"afii57452",1612,"afii57453",1613,"afii57454",1614,"afii57455",1615,"afii57456",1616,"afii57457",1617,"afii57458",1618,"afii57470",1607,"afii57505",1700,"afii57506",1662,"afii57507",1670,"afii57508",1688,"afii57509",1711,"afii57511",1657,"afii57512",1672,"afii57513",1681,"afii57514",1722,"afii57519",1746,"afii57534",1749,"afii57636",8362,"afii57645",1470,"afii57658",1475,"afii57664",1488,"afii57665",1489,"afii57666",1490,"afii57667",1491,"afii57668",1492,"afii57669",1493,"afii57670",1494,"afii57671",1495,"afii57672",1496,"afii57673",1497,"afii57674",1498,"afii57675",1499,"afii57676",1500,"afii57677",1501,"afii57678",1502,"afii57679",1503,"afii57680",1504,"afii57681",1505,"afii57682",1506,"afii57683",1507,"afii57684",1508,"afii57685",1509,"afii57686",1510,"afii57687",1511,"afii57688",1512,"afii57689",1513,"afii57690",1514,"afii57694",64298,"afii57695",64299,"afii57700",64331,"afii57705",64287,"afii57716",1520,"afii57717",1521,"afii57718",1522,"afii57723",64309,"afii57793",1460,"afii57794",1461,"afii57795",1462,"afii57796",1467,"afii57797",1464,"afii57798",1463,"afii57799",1456,"afii57800",1458,"afii57801",1457,"afii57802",1459,"afii57803",1474,"afii57804",1473,"afii57806",1465,"afii57807",1468,"afii57839",1469,"afii57841",1471,"afii57842",1472,"afii57929",700,"afii61248",8453,"afii61289",8467,"afii61352",8470,"afii61573",8236,"afii61574",8237,"afii61575",8238,"afii61664",8204,"afii63167",1645,"afii64937",701,"agrave",224,"agujarati",2693,"agurmukhi",2565,"ahiragana",12354,"ahookabove",7843,"aibengali",2448,"aibopomofo",12574,"aideva",2320,"aiecyrillic",1237,"aigujarati",2704,"aigurmukhi",2576,"aimatragurmukhi",2632,"ainarabic",1593,"ainfinalarabic",65226,"aininitialarabic",65227,"ainmedialarabic",65228,"ainvertedbreve",515,"aivowelsignbengali",2504,"aivowelsigndeva",2376,"aivowelsigngujarati",2760,"akatakana",12450,"akatakanahalfwidth",65393,"akorean",12623,"alef",1488,"alefarabic",1575,"alefdageshhebrew",64304,"aleffinalarabic",65166,"alefhamzaabovearabic",1571,"alefhamzaabovefinalarabic",65156,"alefhamzabelowarabic",1573,"alefhamzabelowfinalarabic",65160,"alefhebrew",1488,"aleflamedhebrew",64335,"alefmaddaabovearabic",1570,"alefmaddaabovefinalarabic",65154,"alefmaksuraarabic",1609,"alefmaksurafinalarabic",65264,"alefmaksurainitialarabic",65267,"alefmaksuramedialarabic",65268,"alefpatahhebrew",64302,"alefqamatshebrew",64303,"aleph",8501,"allequal",8780,"alpha",945,"alphatonos",940,"amacron",257,"amonospace",65345,"ampersand",38,"ampersandmonospace",65286,"ampersandsmall",63270,"amsquare",13250,"anbopomofo",12578,"angbopomofo",12580,"angbracketleft",12296,"angbracketright",12297,"angkhankhuthai",3674,"angle",8736,"anglebracketleft",12296,"anglebracketleftvertical",65087,"anglebracketright",12297,"anglebracketrightvertical",65088,"angleleft",9001,"angleright",9002,"angstrom",8491,"anoteleia",903,"anudattadeva",2386,"anusvarabengali",2434,"anusvaradeva",2306,"anusvaragujarati",2690,"aogonek",261,"apaatosquare",13056,"aparen",9372,"apostrophearmenian",1370,"apostrophemod",700,"apple",63743,"approaches",8784,"approxequal",8776,"approxequalorimage",8786,"approximatelyequal",8773,"araeaekorean",12686,"araeakorean",12685,"arc",8978,"arighthalfring",7834,"aring",229,"aringacute",507,"aringbelow",7681,"arrowboth",8596,"arrowdashdown",8675,"arrowdashleft",8672,"arrowdashright",8674,"arrowdashup",8673,"arrowdblboth",8660,"arrowdbldown",8659,"arrowdblleft",8656,"arrowdblright",8658,"arrowdblup",8657,"arrowdown",8595,"arrowdownleft",8601,"arrowdownright",8600,"arrowdownwhite",8681,"arrowheaddownmod",709,"arrowheadleftmod",706,"arrowheadrightmod",707,"arrowheadupmod",708,"arrowhorizex",63719,"arrowleft",8592,"arrowleftdbl",8656,"arrowleftdblstroke",8653,"arrowleftoverright",8646,"arrowleftwhite",8678,"arrowright",8594,"arrowrightdblstroke",8655,"arrowrightheavy",10142,"arrowrightoverleft",8644,"arrowrightwhite",8680,"arrowtableft",8676,"arrowtabright",8677,"arrowup",8593,"arrowupdn",8597,"arrowupdnbse",8616,"arrowupdownbase",8616,"arrowupleft",8598,"arrowupleftofdown",8645,"arrowupright",8599,"arrowupwhite",8679,"arrowvertex",63718,"asciicircum",94,"asciicircummonospace",65342,"asciitilde",126,"asciitildemonospace",65374,"ascript",593,"ascriptturned",594,"asmallhiragana",12353,"asmallkatakana",12449,"asmallkatakanahalfwidth",65383,"asterisk",42,"asteriskaltonearabic",1645,"asteriskarabic",1645,"asteriskmath",8727,"asteriskmonospace",65290,"asterisksmall",65121,"asterism",8258,"asuperior",63209,"asymptoticallyequal",8771,"at",64,"atilde",227,"atmonospace",65312,"atsmall",65131,"aturned",592,"aubengali",2452,"aubopomofo",12576,"audeva",2324,"augujarati",2708,"augurmukhi",2580,"aulengthmarkbengali",2519,"aumatragurmukhi",2636,"auvowelsignbengali",2508,"auvowelsigndeva",2380,"auvowelsigngujarati",2764,"avagrahadeva",2365,"aybarmenian",1377,"ayin",1506,"ayinaltonehebrew",64288,"ayinhebrew",1506,"b",98,"babengali",2476,"backslash",92,"backslashmonospace",65340,"badeva",2348,"bagujarati",2732,"bagurmukhi",2604,"bahiragana",12400,"bahtthai",3647,"bakatakana",12496,"bar",124,"barmonospace",65372,"bbopomofo",12549,"bcircle",9425,"bdotaccent",7683,"bdotbelow",7685,"beamedsixteenthnotes",9836,"because",8757,"becyrillic",1073,"beharabic",1576,"behfinalarabic",65168,"behinitialarabic",65169,"behiragana",12409,"behmedialarabic",65170,"behmeeminitialarabic",64671,"behmeemisolatedarabic",64520,"behnoonfinalarabic",64621,"bekatakana",12505,"benarmenian",1378,"bet",1489,"beta",946,"betasymbolgreek",976,"betdagesh",64305,"betdageshhebrew",64305,"bethebrew",1489,"betrafehebrew",64332,"bhabengali",2477,"bhadeva",2349,"bhagujarati",2733,"bhagurmukhi",2605,"bhook",595,"bihiragana",12403,"bikatakana",12499,"bilabialclick",664,"bindigurmukhi",2562,"birusquare",13105,"blackcircle",9679,"blackdiamond",9670,"blackdownpointingtriangle",9660,"blackleftpointingpointer",9668,"blackleftpointingtriangle",9664,"blacklenticularbracketleft",12304,"blacklenticularbracketleftvertical",65083,"blacklenticularbracketright",12305,"blacklenticularbracketrightvertical",65084,"blacklowerlefttriangle",9699,"blacklowerrighttriangle",9698,"blackrectangle",9644,"blackrightpointingpointer",9658,"blackrightpointingtriangle",9654,"blacksmallsquare",9642,"blacksmilingface",9787,"blacksquare",9632,"blackstar",9733,"blackupperlefttriangle",9700,"blackupperrighttriangle",9701,"blackuppointingsmalltriangle",9652,"blackuppointingtriangle",9650,"blank",9251,"blinebelow",7687,"block",9608,"bmonospace",65346,"bobaimaithai",3610,"bohiragana",12412,"bokatakana",12508,"bparen",9373,"bqsquare",13251,"braceex",63732,"braceleft",123,"braceleftbt",63731,"braceleftmid",63730,"braceleftmonospace",65371,"braceleftsmall",65115,"bracelefttp",63729,"braceleftvertical",65079,"braceright",125,"bracerightbt",63742,"bracerightmid",63741,"bracerightmonospace",65373,"bracerightsmall",65116,"bracerighttp",63740,"bracerightvertical",65080,"bracketleft",91,"bracketleftbt",63728,"bracketleftex",63727,"bracketleftmonospace",65339,"bracketlefttp",63726,"bracketright",93,"bracketrightbt",63739,"bracketrightex",63738,"bracketrightmonospace",65341,"bracketrighttp",63737,"breve",728,"brevebelowcmb",814,"brevecmb",774,"breveinvertedbelowcmb",815,"breveinvertedcmb",785,"breveinverteddoublecmb",865,"bridgebelowcmb",810,"bridgeinvertedbelowcmb",826,"brokenbar",166,"bstroke",384,"bsuperior",63210,"btopbar",387,"buhiragana",12406,"bukatakana",12502,"bullet",8226,"bulletinverse",9688,"bulletoperator",8729,"bullseye",9678,"c",99,"caarmenian",1390,"cabengali",2458,"cacute",263,"cadeva",2330,"cagujarati",2714,"cagurmukhi",2586,"calsquare",13192,"candrabindubengali",2433,"candrabinducmb",784,"candrabindudeva",2305,"candrabindugujarati",2689,"capslock",8682,"careof",8453,"caron",711,"caronbelowcmb",812,"caroncmb",780,"carriagereturn",8629,"cbopomofo",12568,"ccaron",269,"ccedilla",231,"ccedillaacute",7689,"ccircle",9426,"ccircumflex",265,"ccurl",597,"cdot",267,"cdotaccent",267,"cdsquare",13253,"cedilla",184,"cedillacmb",807,"cent",162,"centigrade",8451,"centinferior",63199,"centmonospace",65504,"centoldstyle",63394,"centsuperior",63200,"chaarmenian",1401,"chabengali",2459,"chadeva",2331,"chagujarati",2715,"chagurmukhi",2587,"chbopomofo",12564,"cheabkhasiancyrillic",1213,"checkmark",10003,"checyrillic",1095,"chedescenderabkhasiancyrillic",1215,"chedescendercyrillic",1207,"chedieresiscyrillic",1269,"cheharmenian",1395,"chekhakassiancyrillic",1228,"cheverticalstrokecyrillic",1209,"chi",967,"chieuchacirclekorean",12919,"chieuchaparenkorean",12823,"chieuchcirclekorean",12905,"chieuchkorean",12618,"chieuchparenkorean",12809,"chochangthai",3594,"chochanthai",3592,"chochingthai",3593,"chochoethai",3596,"chook",392,"cieucacirclekorean",12918,"cieucaparenkorean",12822,"cieuccirclekorean",12904,"cieuckorean",12616,"cieucparenkorean",12808,"cieucuparenkorean",12828,"circle",9675,"circlecopyrt",169,"circlemultiply",8855,"circleot",8857,"circleplus",8853,"circlepostalmark",12342,"circlewithlefthalfblack",9680,"circlewithrighthalfblack",9681,"circumflex",710,"circumflexbelowcmb",813,"circumflexcmb",770,"clear",8999,"clickalveolar",450,"clickdental",448,"clicklateral",449,"clickretroflex",451,"club",9827,"clubsuitblack",9827,"clubsuitwhite",9831,"cmcubedsquare",13220,"cmonospace",65347,"cmsquaredsquare",13216,"coarmenian",1409,"colon",58,"colonmonetary",8353,"colonmonospace",65306,"colonsign",8353,"colonsmall",65109,"colontriangularhalfmod",721,"colontriangularmod",720,"comma",44,"commaabovecmb",787,"commaaboverightcmb",789,"commaaccent",63171,"commaarabic",1548,"commaarmenian",1373,"commainferior",63201,"commamonospace",65292,"commareversedabovecmb",788,"commareversedmod",701,"commasmall",65104,"commasuperior",63202,"commaturnedabovecmb",786,"commaturnedmod",699,"compass",9788,"congruent",8773,"contourintegral",8750,"control",8963,"controlACK",6,"controlBEL",7,"controlBS",8,"controlCAN",24,"controlCR",13,"controlDC1",17,"controlDC2",18,"controlDC3",19,"controlDC4",20,"controlDEL",127,"controlDLE",16,"controlEM",25,"controlENQ",5,"controlEOT",4,"controlESC",27,"controlETB",23,"controlETX",3,"controlFF",12,"controlFS",28,"controlGS",29,"controlHT",9,"controlLF",10,"controlNAK",21,"controlNULL",0,"controlRS",30,"controlSI",15,"controlSO",14,"controlSOT",2,"controlSTX",1,"controlSUB",26,"controlSYN",22,"controlUS",31,"controlVT",11,"copyright",169,"copyrightsans",63721,"copyrightserif",63193,"cornerbracketleft",12300,"cornerbracketlefthalfwidth",65378,"cornerbracketleftvertical",65089,"cornerbracketright",12301,"cornerbracketrighthalfwidth",65379,"cornerbracketrightvertical",65090,"corporationsquare",13183,"cosquare",13255,"coverkgsquare",13254,"cparen",9374,"cruzeiro",8354,"cstretched",663,"curlyand",8911,"curlyor",8910,"currency",164,"cyrBreve",63185,"cyrFlex",63186,"cyrbreve",63188,"cyrflex",63189,"d",100,"daarmenian",1380,"dabengali",2470,"dadarabic",1590,"dadeva",2342,"dadfinalarabic",65214,"dadinitialarabic",65215,"dadmedialarabic",65216,"dagesh",1468,"dageshhebrew",1468,"dagger",8224,"daggerdbl",8225,"dagujarati",2726,"dagurmukhi",2598,"dahiragana",12384,"dakatakana",12480,"dalarabic",1583,"dalet",1491,"daletdagesh",64307,"daletdageshhebrew",64307,"dalethebrew",1491,"dalfinalarabic",65194,"dammaarabic",1615,"dammalowarabic",1615,"dammatanaltonearabic",1612,"dammatanarabic",1612,"danda",2404,"dargahebrew",1447,"dargalefthebrew",1447,"dasiapneumatacyrilliccmb",1157,"dblGrave",63187,"dblanglebracketleft",12298,"dblanglebracketleftvertical",65085,"dblanglebracketright",12299,"dblanglebracketrightvertical",65086,"dblarchinvertedbelowcmb",811,"dblarrowleft",8660,"dblarrowright",8658,"dbldanda",2405,"dblgrave",63190,"dblgravecmb",783,"dblintegral",8748,"dbllowline",8215,"dbllowlinecmb",819,"dbloverlinecmb",831,"dblprimemod",698,"dblverticalbar",8214,"dblverticallineabovecmb",782,"dbopomofo",12553,"dbsquare",13256,"dcaron",271,"dcedilla",7697,"dcircle",9427,"dcircumflexbelow",7699,"dcroat",273,"ddabengali",2465,"ddadeva",2337,"ddagujarati",2721,"ddagurmukhi",2593,"ddalarabic",1672,"ddalfinalarabic",64393,"dddhadeva",2396,"ddhabengali",2466,"ddhadeva",2338,"ddhagujarati",2722,"ddhagurmukhi",2594,"ddotaccent",7691,"ddotbelow",7693,"decimalseparatorarabic",1643,"decimalseparatorpersian",1643,"decyrillic",1076,"degree",176,"dehihebrew",1453,"dehiragana",12391,"deicoptic",1007,"dekatakana",12487,"deleteleft",9003,"deleteright",8998,"delta",948,"deltaturned",397,"denominatorminusonenumeratorbengali",2552,"dezh",676,"dhabengali",2471,"dhadeva",2343,"dhagujarati",2727,"dhagurmukhi",2599,"dhook",599,"dialytikatonos",901,"dialytikatonoscmb",836,"diamond",9830,"diamondsuitwhite",9826,"dieresis",168,"dieresisacute",63191,"dieresisbelowcmb",804,"dieresiscmb",776,"dieresisgrave",63192,"dieresistonos",901,"dihiragana",12386,"dikatakana",12482,"dittomark",12291,"divide",247,"divides",8739,"divisionslash",8725,"djecyrillic",1106,"dkshade",9619,"dlinebelow",7695,"dlsquare",13207,"dmacron",273,"dmonospace",65348,"dnblock",9604,"dochadathai",3598,"dodekthai",3604,"dohiragana",12393,"dokatakana",12489,"dollar",36,"dollarinferior",63203,"dollarmonospace",65284,"dollaroldstyle",63268,"dollarsmall",65129,"dollarsuperior",63204,"dong",8363,"dorusquare",13094,"dotaccent",729,"dotaccentcmb",775,"dotbelowcmb",803,"dotbelowcomb",803,"dotkatakana",12539,"dotlessi",305,"dotlessj",63166,"dotlessjstrokehook",644,"dotmath",8901,"dottedcircle",9676,"doubleyodpatah",64287,"doubleyodpatahhebrew",64287,"downtackbelowcmb",798,"downtackmod",725,"dparen",9375,"dsuperior",63211,"dtail",598,"dtopbar",396,"duhiragana",12389,"dukatakana",12485,"dz",499,"dzaltone",675,"dzcaron",454,"dzcurl",677,"dzeabkhasiancyrillic",1249,"dzecyrillic",1109,"dzhecyrillic",1119,"e",101,"eacute",233,"earth",9793,"ebengali",2447,"ebopomofo",12572,"ebreve",277,"ecandradeva",2317,"ecandragujarati",2701,"ecandravowelsigndeva",2373,"ecandravowelsigngujarati",2757,"ecaron",283,"ecedillabreve",7709,"echarmenian",1381,"echyiwnarmenian",1415,"ecircle",9428,"ecircumflex",234,"ecircumflexacute",7871,"ecircumflexbelow",7705,"ecircumflexdotbelow",7879,"ecircumflexgrave",7873,"ecircumflexhookabove",7875,"ecircumflextilde",7877,"ecyrillic",1108,"edblgrave",517,"edeva",2319,"edieresis",235,"edot",279,"edotaccent",279,"edotbelow",7865,"eegurmukhi",2575,"eematragurmukhi",2631,"efcyrillic",1092,"egrave",232,"egujarati",2703,"eharmenian",1383,"ehbopomofo",12573,"ehiragana",12360,"ehookabove",7867,"eibopomofo",12575,"eight",56,"eightarabic",1640,"eightbengali",2542,"eightcircle",9319,"eightcircleinversesansserif",10129,"eightdeva",2414,"eighteencircle",9329,"eighteenparen",9349,"eighteenperiod",9369,"eightgujarati",2798,"eightgurmukhi",2670,"eighthackarabic",1640,"eighthangzhou",12328,"eighthnotebeamed",9835,"eightideographicparen",12839,"eightinferior",8328,"eightmonospace",65304,"eightoldstyle",63288,"eightparen",9339,"eightperiod",9359,"eightpersian",1784,"eightroman",8567,"eightsuperior",8312,"eightthai",3672,"einvertedbreve",519,"eiotifiedcyrillic",1125,"ekatakana",12456,"ekatakanahalfwidth",65396,"ekonkargurmukhi",2676,"ekorean",12628,"elcyrillic",1083,"element",8712,"elevencircle",9322,"elevenparen",9342,"elevenperiod",9362,"elevenroman",8570,"ellipsis",8230,"ellipsisvertical",8942,"emacron",275,"emacronacute",7703,"emacrongrave",7701,"emcyrillic",1084,"emdash",8212,"emdashvertical",65073,"emonospace",65349,"emphasismarkarmenian",1371,"emptyset",8709,"enbopomofo",12579,"encyrillic",1085,"endash",8211,"endashvertical",65074,"endescendercyrillic",1187,"eng",331,"engbopomofo",12581,"enghecyrillic",1189,"enhookcyrillic",1224,"enspace",8194,"eogonek",281,"eokorean",12627,"eopen",603,"eopenclosed",666,"eopenreversed",604,"eopenreversedclosed",606,"eopenreversedhook",605,"eparen",9376,"epsilon",949,"epsilontonos",941,"equal",61,"equalmonospace",65309,"equalsmall",65126,"equalsuperior",8316,"equivalence",8801,"erbopomofo",12582,"ercyrillic",1088,"ereversed",600,"ereversedcyrillic",1101,"escyrillic",1089,"esdescendercyrillic",1195,"esh",643,"eshcurl",646,"eshortdeva",2318,"eshortvowelsigndeva",2374,"eshreversedloop",426,"eshsquatreversed",645,"esmallhiragana",12359,"esmallkatakana",12455,"esmallkatakanahalfwidth",65386,"estimated",8494,"esuperior",63212,"eta",951,"etarmenian",1384,"etatonos",942,"eth",240,"etilde",7869,"etildebelow",7707,"etnahtafoukhhebrew",1425,"etnahtafoukhlefthebrew",1425,"etnahtahebrew",1425,"etnahtalefthebrew",1425,"eturned",477,"eukorean",12641,"euro",8364,"evowelsignbengali",2503,"evowelsigndeva",2375,"evowelsigngujarati",2759,"exclam",33,"exclamarmenian",1372,"exclamdbl",8252,"exclamdown",161,"exclamdownsmall",63393,"exclammonospace",65281,"exclamsmall",63265,"existential",8707,"ezh",658,"ezhcaron",495,"ezhcurl",659,"ezhreversed",441,"ezhtail",442,"f",102,"fadeva",2398,"fagurmukhi",2654,"fahrenheit",8457,"fathaarabic",1614,"fathalowarabic",1614,"fathatanarabic",1611,"fbopomofo",12552,"fcircle",9429,"fdotaccent",7711,"feharabic",1601,"feharmenian",1414,"fehfinalarabic",65234,"fehinitialarabic",65235,"fehmedialarabic",65236,"feicoptic",997,"female",9792,"ff",64256,"f_f",64256,"ffi",64259,"ffl",64260,"fi",64257,"fifteencircle",9326,"fifteenparen",9346,"fifteenperiod",9366,"figuredash",8210,"filledbox",9632,"filledrect",9644,"finalkaf",1498,"finalkafdagesh",64314,"finalkafdageshhebrew",64314,"finalkafhebrew",1498,"finalmem",1501,"finalmemhebrew",1501,"finalnun",1503,"finalnunhebrew",1503,"finalpe",1507,"finalpehebrew",1507,"finaltsadi",1509,"finaltsadihebrew",1509,"firsttonechinese",713,"fisheye",9673,"fitacyrillic",1139,"five",53,"fivearabic",1637,"fivebengali",2539,"fivecircle",9316,"fivecircleinversesansserif",10126,"fivedeva",2411,"fiveeighths",8541,"fivegujarati",2795,"fivegurmukhi",2667,"fivehackarabic",1637,"fivehangzhou",12325,"fiveideographicparen",12836,"fiveinferior",8325,"fivemonospace",65301,"fiveoldstyle",63285,"fiveparen",9336,"fiveperiod",9356,"fivepersian",1781,"fiveroman",8564,"fivesuperior",8309,"fivethai",3669,"fl",64258,"florin",402,"fmonospace",65350,"fmsquare",13209,"fofanthai",3615,"fofathai",3613,"fongmanthai",3663,"forall",8704,"four",52,"fourarabic",1636,"fourbengali",2538,"fourcircle",9315,"fourcircleinversesansserif",10125,"fourdeva",2410,"fourgujarati",2794,"fourgurmukhi",2666,"fourhackarabic",1636,"fourhangzhou",12324,"fourideographicparen",12835,"fourinferior",8324,"fourmonospace",65300,"fournumeratorbengali",2551,"fouroldstyle",63284,"fourparen",9335,"fourperiod",9355,"fourpersian",1780,"fourroman",8563,"foursuperior",8308,"fourteencircle",9325,"fourteenparen",9345,"fourteenperiod",9365,"fourthai",3668,"fourthtonechinese",715,"fparen",9377,"fraction",8260,"franc",8355,"g",103,"gabengali",2455,"gacute",501,"gadeva",2327,"gafarabic",1711,"gaffinalarabic",64403,"gafinitialarabic",64404,"gafmedialarabic",64405,"gagujarati",2711,"gagurmukhi",2583,"gahiragana",12364,"gakatakana",12460,"gamma",947,"gammalatinsmall",611,"gammasuperior",736,"gangiacoptic",1003,"gbopomofo",12557,"gbreve",287,"gcaron",487,"gcedilla",291,"gcircle",9430,"gcircumflex",285,"gcommaaccent",291,"gdot",289,"gdotaccent",289,"gecyrillic",1075,"gehiragana",12370,"gekatakana",12466,"geometricallyequal",8785,"gereshaccenthebrew",1436,"gereshhebrew",1523,"gereshmuqdamhebrew",1437,"germandbls",223,"gershayimaccenthebrew",1438,"gershayimhebrew",1524,"getamark",12307,"ghabengali",2456,"ghadarmenian",1394,"ghadeva",2328,"ghagujarati",2712,"ghagurmukhi",2584,"ghainarabic",1594,"ghainfinalarabic",65230,"ghaininitialarabic",65231,"ghainmedialarabic",65232,"ghemiddlehookcyrillic",1173,"ghestrokecyrillic",1171,"gheupturncyrillic",1169,"ghhadeva",2394,"ghhagurmukhi",2650,"ghook",608,"ghzsquare",13203,"gihiragana",12366,"gikatakana",12462,"gimarmenian",1379,"gimel",1490,"gimeldagesh",64306,"gimeldageshhebrew",64306,"gimelhebrew",1490,"gjecyrillic",1107,"glottalinvertedstroke",446,"glottalstop",660,"glottalstopinverted",662,"glottalstopmod",704,"glottalstopreversed",661,"glottalstopreversedmod",705,"glottalstopreversedsuperior",740,"glottalstopstroke",673,"glottalstopstrokereversed",674,"gmacron",7713,"gmonospace",65351,"gohiragana",12372,"gokatakana",12468,"gparen",9378,"gpasquare",13228,"gradient",8711,"grave",96,"gravebelowcmb",790,"gravecmb",768,"gravecomb",768,"gravedeva",2387,"gravelowmod",718,"gravemonospace",65344,"gravetonecmb",832,"greater",62,"greaterequal",8805,"greaterequalorless",8923,"greatermonospace",65310,"greaterorequivalent",8819,"greaterorless",8823,"greateroverequal",8807,"greatersmall",65125,"gscript",609,"gstroke",485,"guhiragana",12368,"guillemotleft",171,"guillemotright",187,"guilsinglleft",8249,"guilsinglright",8250,"gukatakana",12464,"guramusquare",13080,"gysquare",13257,"h",104,"haabkhasiancyrillic",1193,"haaltonearabic",1729,"habengali",2489,"hadescendercyrillic",1203,"hadeva",2361,"hagujarati",2745,"hagurmukhi",2617,"haharabic",1581,"hahfinalarabic",65186,"hahinitialarabic",65187,"hahiragana",12399,"hahmedialarabic",65188,"haitusquare",13098,"hakatakana",12495,"hakatakanahalfwidth",65418,"halantgurmukhi",2637,"hamzaarabic",1569,"hamzalowarabic",1569,"hangulfiller",12644,"hardsigncyrillic",1098,"harpoonleftbarbup",8636,"harpoonrightbarbup",8640,"hasquare",13258,"hatafpatah",1458,"hatafpatah16",1458,"hatafpatah23",1458,"hatafpatah2f",1458,"hatafpatahhebrew",1458,"hatafpatahnarrowhebrew",1458,"hatafpatahquarterhebrew",1458,"hatafpatahwidehebrew",1458,"hatafqamats",1459,"hatafqamats1b",1459,"hatafqamats28",1459,"hatafqamats34",1459,"hatafqamatshebrew",1459,"hatafqamatsnarrowhebrew",1459,"hatafqamatsquarterhebrew",1459,"hatafqamatswidehebrew",1459,"hatafsegol",1457,"hatafsegol17",1457,"hatafsegol24",1457,"hatafsegol30",1457,"hatafsegolhebrew",1457,"hatafsegolnarrowhebrew",1457,"hatafsegolquarterhebrew",1457,"hatafsegolwidehebrew",1457,"hbar",295,"hbopomofo",12559,"hbrevebelow",7723,"hcedilla",7721,"hcircle",9431,"hcircumflex",293,"hdieresis",7719,"hdotaccent",7715,"hdotbelow",7717,"he",1492,"heart",9829,"heartsuitblack",9829,"heartsuitwhite",9825,"hedagesh",64308,"hedageshhebrew",64308,"hehaltonearabic",1729,"heharabic",1607,"hehebrew",1492,"hehfinalaltonearabic",64423,"hehfinalalttwoarabic",65258,"hehfinalarabic",65258,"hehhamzaabovefinalarabic",64421,"hehhamzaaboveisolatedarabic",64420,"hehinitialaltonearabic",64424,"hehinitialarabic",65259,"hehiragana",12408,"hehmedialaltonearabic",64425,"hehmedialarabic",65260,"heiseierasquare",13179,"hekatakana",12504,"hekatakanahalfwidth",65421,"hekutaarusquare",13110,"henghook",615,"herutusquare",13113,"het",1495,"hethebrew",1495,"hhook",614,"hhooksuperior",689,"hieuhacirclekorean",12923,"hieuhaparenkorean",12827,"hieuhcirclekorean",12909,"hieuhkorean",12622,"hieuhparenkorean",12813,"hihiragana",12402,"hikatakana",12498,"hikatakanahalfwidth",65419,"hiriq",1460,"hiriq14",1460,"hiriq21",1460,"hiriq2d",1460,"hiriqhebrew",1460,"hiriqnarrowhebrew",1460,"hiriqquarterhebrew",1460,"hiriqwidehebrew",1460,"hlinebelow",7830,"hmonospace",65352,"hoarmenian",1392,"hohipthai",3627,"hohiragana",12411,"hokatakana",12507,"hokatakanahalfwidth",65422,"holam",1465,"holam19",1465,"holam26",1465,"holam32",1465,"holamhebrew",1465,"holamnarrowhebrew",1465,"holamquarterhebrew",1465,"holamwidehebrew",1465,"honokhukthai",3630,"hookabovecomb",777,"hookcmb",777,"hookpalatalizedbelowcmb",801,"hookretroflexbelowcmb",802,"hoonsquare",13122,"horicoptic",1001,"horizontalbar",8213,"horncmb",795,"hotsprings",9832,"house",8962,"hparen",9379,"hsuperior",688,"hturned",613,"huhiragana",12405,"huiitosquare",13107,"hukatakana",12501,"hukatakanahalfwidth",65420,"hungarumlaut",733,"hungarumlautcmb",779,"hv",405,"hyphen",45,"hypheninferior",63205,"hyphenmonospace",65293,"hyphensmall",65123,"hyphensuperior",63206,"hyphentwo",8208,"i",105,"iacute",237,"iacyrillic",1103,"ibengali",2439,"ibopomofo",12583,"ibreve",301,"icaron",464,"icircle",9432,"icircumflex",238,"icyrillic",1110,"idblgrave",521,"ideographearthcircle",12943,"ideographfirecircle",12939,"ideographicallianceparen",12863,"ideographiccallparen",12858,"ideographiccentrecircle",12965,"ideographicclose",12294,"ideographiccomma",12289,"ideographiccommaleft",65380,"ideographiccongratulationparen",12855,"ideographiccorrectcircle",12963,"ideographicearthparen",12847,"ideographicenterpriseparen",12861,"ideographicexcellentcircle",12957,"ideographicfestivalparen",12864,"ideographicfinancialcircle",12950,"ideographicfinancialparen",12854,"ideographicfireparen",12843,"ideographichaveparen",12850,"ideographichighcircle",12964,"ideographiciterationmark",12293,"ideographiclaborcircle",12952,"ideographiclaborparen",12856,"ideographicleftcircle",12967,"ideographiclowcircle",12966,"ideographicmedicinecircle",12969,"ideographicmetalparen",12846,"ideographicmoonparen",12842,"ideographicnameparen",12852,"ideographicperiod",12290,"ideographicprintcircle",12958,"ideographicreachparen",12867,"ideographicrepresentparen",12857,"ideographicresourceparen",12862,"ideographicrightcircle",12968,"ideographicsecretcircle",12953,"ideographicselfparen",12866,"ideographicsocietyparen",12851,"ideographicspace",12288,"ideographicspecialparen",12853,"ideographicstockparen",12849,"ideographicstudyparen",12859,"ideographicsunparen",12848,"ideographicsuperviseparen",12860,"ideographicwaterparen",12844,"ideographicwoodparen",12845,"ideographiczero",12295,"ideographmetalcircle",12942,"ideographmooncircle",12938,"ideographnamecircle",12948,"ideographsuncircle",12944,"ideographwatercircle",12940,"ideographwoodcircle",12941,"ideva",2311,"idieresis",239,"idieresisacute",7727,"idieresiscyrillic",1253,"idotbelow",7883,"iebrevecyrillic",1239,"iecyrillic",1077,"ieungacirclekorean",12917,"ieungaparenkorean",12821,"ieungcirclekorean",12903,"ieungkorean",12615,"ieungparenkorean",12807,"igrave",236,"igujarati",2695,"igurmukhi",2567,"ihiragana",12356,"ihookabove",7881,"iibengali",2440,"iicyrillic",1080,"iideva",2312,"iigujarati",2696,"iigurmukhi",2568,"iimatragurmukhi",2624,"iinvertedbreve",523,"iishortcyrillic",1081,"iivowelsignbengali",2496,"iivowelsigndeva",2368,"iivowelsigngujarati",2752,"ij",307,"ikatakana",12452,"ikatakanahalfwidth",65394,"ikorean",12643,"ilde",732,"iluyhebrew",1452,"imacron",299,"imacroncyrillic",1251,"imageorapproximatelyequal",8787,"imatragurmukhi",2623,"imonospace",65353,"increment",8710,"infinity",8734,"iniarmenian",1387,"integral",8747,"integralbottom",8993,"integralbt",8993,"integralex",63733,"integraltop",8992,"integraltp",8992,"intersection",8745,"intisquare",13061,"invbullet",9688,"invcircle",9689,"invsmileface",9787,"iocyrillic",1105,"iogonek",303,"iota",953,"iotadieresis",970,"iotadieresistonos",912,"iotalatin",617,"iotatonos",943,"iparen",9380,"irigurmukhi",2674,"ismallhiragana",12355,"ismallkatakana",12451,"ismallkatakanahalfwidth",65384,"issharbengali",2554,"istroke",616,"isuperior",63213,"iterationhiragana",12445,"iterationkatakana",12541,"itilde",297,"itildebelow",7725,"iubopomofo",12585,"iucyrillic",1102,"ivowelsignbengali",2495,"ivowelsigndeva",2367,"ivowelsigngujarati",2751,"izhitsacyrillic",1141,"izhitsadblgravecyrillic",1143,"j",106,"jaarmenian",1393,"jabengali",2460,"jadeva",2332,"jagujarati",2716,"jagurmukhi",2588,"jbopomofo",12560,"jcaron",496,"jcircle",9433,"jcircumflex",309,"jcrossedtail",669,"jdotlessstroke",607,"jecyrillic",1112,"jeemarabic",1580,"jeemfinalarabic",65182,"jeeminitialarabic",65183,"jeemmedialarabic",65184,"jeharabic",1688,"jehfinalarabic",64395,"jhabengali",2461,"jhadeva",2333,"jhagujarati",2717,"jhagurmukhi",2589,"jheharmenian",1403,"jis",12292,"jmonospace",65354,"jparen",9381,"jsuperior",690,"k",107,"kabashkircyrillic",1185,"kabengali",2453,"kacute",7729,"kacyrillic",1082,"kadescendercyrillic",1179,"kadeva",2325,"kaf",1499,"kafarabic",1603,"kafdagesh",64315,"kafdageshhebrew",64315,"kaffinalarabic",65242,"kafhebrew",1499,"kafinitialarabic",65243,"kafmedialarabic",65244,"kafrafehebrew",64333,"kagujarati",2709,"kagurmukhi",2581,"kahiragana",12363,"kahookcyrillic",1220,"kakatakana",12459,"kakatakanahalfwidth",65398,"kappa",954,"kappasymbolgreek",1008,"kapyeounmieumkorean",12657,"kapyeounphieuphkorean",12676,"kapyeounpieupkorean",12664,"kapyeounssangpieupkorean",12665,"karoriisquare",13069,"kashidaautoarabic",1600,"kashidaautonosidebearingarabic",1600,"kasmallkatakana",12533,"kasquare",13188,"kasraarabic",1616,"kasratanarabic",1613,"kastrokecyrillic",1183,"katahiraprolongmarkhalfwidth",65392,"kaverticalstrokecyrillic",1181,"kbopomofo",12558,"kcalsquare",13193,"kcaron",489,"kcedilla",311,"kcircle",9434,"kcommaaccent",311,"kdotbelow",7731,"keharmenian",1412,"kehiragana",12369,"kekatakana",12465,"kekatakanahalfwidth",65401,"kenarmenian",1391,"kesmallkatakana",12534,"kgreenlandic",312,"khabengali",2454,"khacyrillic",1093,"khadeva",2326,"khagujarati",2710,"khagurmukhi",2582,"khaharabic",1582,"khahfinalarabic",65190,"khahinitialarabic",65191,"khahmedialarabic",65192,"kheicoptic",999,"khhadeva",2393,"khhagurmukhi",2649,"khieukhacirclekorean",12920,"khieukhaparenkorean",12824,"khieukhcirclekorean",12906,"khieukhkorean",12619,"khieukhparenkorean",12810,"khokhaithai",3586,"khokhonthai",3589,"khokhuatthai",3587,"khokhwaithai",3588,"khomutthai",3675,"khook",409,"khorakhangthai",3590,"khzsquare",13201,"kihiragana",12365,"kikatakana",12461,"kikatakanahalfwidth",65399,"kiroguramusquare",13077,"kiromeetorusquare",13078,"kirosquare",13076,"kiyeokacirclekorean",12910,"kiyeokaparenkorean",12814,"kiyeokcirclekorean",12896,"kiyeokkorean",12593,"kiyeokparenkorean",12800,"kiyeoksioskorean",12595,"kjecyrillic",1116,"klinebelow",7733,"klsquare",13208,"kmcubedsquare",13222,"kmonospace",65355,"kmsquaredsquare",13218,"kohiragana",12371,"kohmsquare",13248,"kokaithai",3585,"kokatakana",12467,"kokatakanahalfwidth",65402,"kooposquare",13086,"koppacyrillic",1153,"koreanstandardsymbol",12927,"koroniscmb",835,"kparen",9382,"kpasquare",13226,"ksicyrillic",1135,"ktsquare",13263,"kturned",670,"kuhiragana",12367,"kukatakana",12463,"kukatakanahalfwidth",65400,"kvsquare",13240,"kwsquare",13246,"l",108,"labengali",2482,"lacute",314,"ladeva",2354,"lagujarati",2738,"lagurmukhi",2610,"lakkhangyaothai",3653,"lamaleffinalarabic",65276,"lamalefhamzaabovefinalarabic",65272,"lamalefhamzaaboveisolatedarabic",65271,"lamalefhamzabelowfinalarabic",65274,"lamalefhamzabelowisolatedarabic",65273,"lamalefisolatedarabic",65275,"lamalefmaddaabovefinalarabic",65270,"lamalefmaddaaboveisolatedarabic",65269,"lamarabic",1604,"lambda",955,"lambdastroke",411,"lamed",1500,"lameddagesh",64316,"lameddageshhebrew",64316,"lamedhebrew",1500,"lamfinalarabic",65246,"lamhahinitialarabic",64714,"laminitialarabic",65247,"lamjeeminitialarabic",64713,"lamkhahinitialarabic",64715,"lamlamhehisolatedarabic",65010,"lammedialarabic",65248,"lammeemhahinitialarabic",64904,"lammeeminitialarabic",64716,"largecircle",9711,"lbar",410,"lbelt",620,"lbopomofo",12556,"lcaron",318,"lcedilla",316,"lcircle",9435,"lcircumflexbelow",7741,"lcommaaccent",316,"ldot",320,"ldotaccent",320,"ldotbelow",7735,"ldotbelowmacron",7737,"leftangleabovecmb",794,"lefttackbelowcmb",792,"less",60,"lessequal",8804,"lessequalorgreater",8922,"lessmonospace",65308,"lessorequivalent",8818,"lessorgreater",8822,"lessoverequal",8806,"lesssmall",65124,"lezh",622,"lfblock",9612,"lhookretroflex",621,"lira",8356,"liwnarmenian",1388,"lj",457,"ljecyrillic",1113,"ll",63168,"lladeva",2355,"llagujarati",2739,"llinebelow",7739,"llladeva",2356,"llvocalicbengali",2529,"llvocalicdeva",2401,"llvocalicvowelsignbengali",2531,"llvocalicvowelsigndeva",2403,"lmiddletilde",619,"lmonospace",65356,"lmsquare",13264,"lochulathai",3628,"logicaland",8743,"logicalnot",172,"logicalnotreversed",8976,"logicalor",8744,"lolingthai",3621,"longs",383,"lowlinecenterline",65102,"lowlinecmb",818,"lowlinedashed",65101,"lozenge",9674,"lparen",9383,"lslash",322,"lsquare",8467,"lsuperior",63214,"ltshade",9617,"luthai",3622,"lvocalicbengali",2444,"lvocalicdeva",2316,"lvocalicvowelsignbengali",2530,"lvocalicvowelsigndeva",2402,"lxsquare",13267,"m",109,"mabengali",2478,"macron",175,"macronbelowcmb",817,"macroncmb",772,"macronlowmod",717,"macronmonospace",65507,"macute",7743,"madeva",2350,"magujarati",2734,"magurmukhi",2606,"mahapakhhebrew",1444,"mahapakhlefthebrew",1444,"mahiragana",12414,"maichattawalowleftthai",63637,"maichattawalowrightthai",63636,"maichattawathai",3659,"maichattawaupperleftthai",63635,"maieklowleftthai",63628,"maieklowrightthai",63627,"maiekthai",3656,"maiekupperleftthai",63626,"maihanakatleftthai",63620,"maihanakatthai",3633,"maitaikhuleftthai",63625,"maitaikhuthai",3655,"maitholowleftthai",63631,"maitholowrightthai",63630,"maithothai",3657,"maithoupperleftthai",63629,"maitrilowleftthai",63634,"maitrilowrightthai",63633,"maitrithai",3658,"maitriupperleftthai",63632,"maiyamokthai",3654,"makatakana",12510,"makatakanahalfwidth",65423,"male",9794,"mansyonsquare",13127,"maqafhebrew",1470,"mars",9794,"masoracirclehebrew",1455,"masquare",13187,"mbopomofo",12551,"mbsquare",13268,"mcircle",9436,"mcubedsquare",13221,"mdotaccent",7745,"mdotbelow",7747,"meemarabic",1605,"meemfinalarabic",65250,"meeminitialarabic",65251,"meemmedialarabic",65252,"meemmeeminitialarabic",64721,"meemmeemisolatedarabic",64584,"meetorusquare",13133,"mehiragana",12417,"meizierasquare",13182,"mekatakana",12513,"mekatakanahalfwidth",65426,"mem",1502,"memdagesh",64318,"memdageshhebrew",64318,"memhebrew",1502,"menarmenian",1396,"merkhahebrew",1445,"merkhakefulahebrew",1446,"merkhakefulalefthebrew",1446,"merkhalefthebrew",1445,"mhook",625,"mhzsquare",13202,"middledotkatakanahalfwidth",65381,"middot",183,"mieumacirclekorean",12914,"mieumaparenkorean",12818,"mieumcirclekorean",12900,"mieumkorean",12609,"mieumpansioskorean",12656,"mieumparenkorean",12804,"mieumpieupkorean",12654,"mieumsioskorean",12655,"mihiragana",12415,"mikatakana",12511,"mikatakanahalfwidth",65424,"minus",8722,"minusbelowcmb",800,"minuscircle",8854,"minusmod",727,"minusplus",8723,"minute",8242,"miribaarusquare",13130,"mirisquare",13129,"mlonglegturned",624,"mlsquare",13206,"mmcubedsquare",13219,"mmonospace",65357,"mmsquaredsquare",13215,"mohiragana",12418,"mohmsquare",13249,"mokatakana",12514,"mokatakanahalfwidth",65427,"molsquare",13270,"momathai",3617,"moverssquare",13223,"moverssquaredsquare",13224,"mparen",9384,"mpasquare",13227,"mssquare",13235,"msuperior",63215,"mturned",623,"mu",181,"mu1",181,"muasquare",13186,"muchgreater",8811,"muchless",8810,"mufsquare",13196,"mugreek",956,"mugsquare",13197,"muhiragana",12416,"mukatakana",12512,"mukatakanahalfwidth",65425,"mulsquare",13205,"multiply",215,"mumsquare",13211,"munahhebrew",1443,"munahlefthebrew",1443,"musicalnote",9834,"musicalnotedbl",9835,"musicflatsign",9837,"musicsharpsign",9839,"mussquare",13234,"muvsquare",13238,"muwsquare",13244,"mvmegasquare",13241,"mvsquare",13239,"mwmegasquare",13247,"mwsquare",13245,"n",110,"nabengali",2472,"nabla",8711,"nacute",324,"nadeva",2344,"nagujarati",2728,"nagurmukhi",2600,"nahiragana",12394,"nakatakana",12490,"nakatakanahalfwidth",65413,"napostrophe",329,"nasquare",13185,"nbopomofo",12555,"nbspace",160,"ncaron",328,"ncedilla",326,"ncircle",9437,"ncircumflexbelow",7755,"ncommaaccent",326,"ndotaccent",7749,"ndotbelow",7751,"nehiragana",12397,"nekatakana",12493,"nekatakanahalfwidth",65416,"newsheqelsign",8362,"nfsquare",13195,"ngabengali",2457,"ngadeva",2329,"ngagujarati",2713,"ngagurmukhi",2585,"ngonguthai",3591,"nhiragana",12435,"nhookleft",626,"nhookretroflex",627,"nieunacirclekorean",12911,"nieunaparenkorean",12815,"nieuncieuckorean",12597,"nieuncirclekorean",12897,"nieunhieuhkorean",12598,"nieunkorean",12596,"nieunpansioskorean",12648,"nieunparenkorean",12801,"nieunsioskorean",12647,"nieuntikeutkorean",12646,"nihiragana",12395,"nikatakana",12491,"nikatakanahalfwidth",65414,"nikhahitleftthai",63641,"nikhahitthai",3661,"nine",57,"ninearabic",1641,"ninebengali",2543,"ninecircle",9320,"ninecircleinversesansserif",10130,"ninedeva",2415,"ninegujarati",2799,"ninegurmukhi",2671,"ninehackarabic",1641,"ninehangzhou",12329,"nineideographicparen",12840,"nineinferior",8329,"ninemonospace",65305,"nineoldstyle",63289,"nineparen",9340,"nineperiod",9360,"ninepersian",1785,"nineroman",8568,"ninesuperior",8313,"nineteencircle",9330,"nineteenparen",9350,"nineteenperiod",9370,"ninethai",3673,"nj",460,"njecyrillic",1114,"nkatakana",12531,"nkatakanahalfwidth",65437,"nlegrightlong",414,"nlinebelow",7753,"nmonospace",65358,"nmsquare",13210,"nnabengali",2467,"nnadeva",2339,"nnagujarati",2723,"nnagurmukhi",2595,"nnnadeva",2345,"nohiragana",12398,"nokatakana",12494,"nokatakanahalfwidth",65417,"nonbreakingspace",160,"nonenthai",3603,"nonuthai",3609,"noonarabic",1606,"noonfinalarabic",65254,"noonghunnaarabic",1722,"noonghunnafinalarabic",64415,"nooninitialarabic",65255,"noonjeeminitialarabic",64722,"noonjeemisolatedarabic",64587,"noonmedialarabic",65256,"noonmeeminitialarabic",64725,"noonmeemisolatedarabic",64590,"noonnoonfinalarabic",64653,"notcontains",8716,"notelement",8713,"notelementof",8713,"notequal",8800,"notgreater",8815,"notgreaternorequal",8817,"notgreaternorless",8825,"notidentical",8802,"notless",8814,"notlessnorequal",8816,"notparallel",8742,"notprecedes",8832,"notsubset",8836,"notsucceeds",8833,"notsuperset",8837,"nowarmenian",1398,"nparen",9385,"nssquare",13233,"nsuperior",8319,"ntilde",241,"nu",957,"nuhiragana",12396,"nukatakana",12492,"nukatakanahalfwidth",65415,"nuktabengali",2492,"nuktadeva",2364,"nuktagujarati",2748,"nuktagurmukhi",2620,"numbersign",35,"numbersignmonospace",65283,"numbersignsmall",65119,"numeralsigngreek",884,"numeralsignlowergreek",885,"numero",8470,"nun",1504,"nundagesh",64320,"nundageshhebrew",64320,"nunhebrew",1504,"nvsquare",13237,"nwsquare",13243,"nyabengali",2462,"nyadeva",2334,"nyagujarati",2718,"nyagurmukhi",2590,"o",111,"oacute",243,"oangthai",3629,"obarred",629,"obarredcyrillic",1257,"obarreddieresiscyrillic",1259,"obengali",2451,"obopomofo",12571,"obreve",335,"ocandradeva",2321,"ocandragujarati",2705,"ocandravowelsigndeva",2377,"ocandravowelsigngujarati",2761,"ocaron",466,"ocircle",9438,"ocircumflex",244,"ocircumflexacute",7889,"ocircumflexdotbelow",7897,"ocircumflexgrave",7891,"ocircumflexhookabove",7893,"ocircumflextilde",7895,"ocyrillic",1086,"odblacute",337,"odblgrave",525,"odeva",2323,"odieresis",246,"odieresiscyrillic",1255,"odotbelow",7885,"oe",339,"oekorean",12634,"ogonek",731,"ogonekcmb",808,"ograve",242,"ogujarati",2707,"oharmenian",1413,"ohiragana",12362,"ohookabove",7887,"ohorn",417,"ohornacute",7899,"ohorndotbelow",7907,"ohorngrave",7901,"ohornhookabove",7903,"ohorntilde",7905,"ohungarumlaut",337,"oi",419,"oinvertedbreve",527,"okatakana",12458,"okatakanahalfwidth",65397,"okorean",12631,"olehebrew",1451,"omacron",333,"omacronacute",7763,"omacrongrave",7761,"omdeva",2384,"omega",969,"omega1",982,"omegacyrillic",1121,"omegalatinclosed",631,"omegaroundcyrillic",1147,"omegatitlocyrillic",1149,"omegatonos",974,"omgujarati",2768,"omicron",959,"omicrontonos",972,"omonospace",65359,"one",49,"onearabic",1633,"onebengali",2535,"onecircle",9312,"onecircleinversesansserif",10122,"onedeva",2407,"onedotenleader",8228,"oneeighth",8539,"onefitted",63196,"onegujarati",2791,"onegurmukhi",2663,"onehackarabic",1633,"onehalf",189,"onehangzhou",12321,"oneideographicparen",12832,"oneinferior",8321,"onemonospace",65297,"onenumeratorbengali",2548,"oneoldstyle",63281,"oneparen",9332,"oneperiod",9352,"onepersian",1777,"onequarter",188,"oneroman",8560,"onesuperior",185,"onethai",3665,"onethird",8531,"oogonek",491,"oogonekmacron",493,"oogurmukhi",2579,"oomatragurmukhi",2635,"oopen",596,"oparen",9386,"openbullet",9702,"option",8997,"ordfeminine",170,"ordmasculine",186,"orthogonal",8735,"oshortdeva",2322,"oshortvowelsigndeva",2378,"oslash",248,"oslashacute",511,"osmallhiragana",12361,"osmallkatakana",12457,"osmallkatakanahalfwidth",65387,"ostrokeacute",511,"osuperior",63216,"otcyrillic",1151,"otilde",245,"otildeacute",7757,"otildedieresis",7759,"oubopomofo",12577,"overline",8254,"overlinecenterline",65098,"overlinecmb",773,"overlinedashed",65097,"overlinedblwavy",65100,"overlinewavy",65099,"overscore",175,"ovowelsignbengali",2507,"ovowelsigndeva",2379,"ovowelsigngujarati",2763,"p",112,"paampssquare",13184,"paasentosquare",13099,"pabengali",2474,"pacute",7765,"padeva",2346,"pagedown",8671,"pageup",8670,"pagujarati",2730,"pagurmukhi",2602,"pahiragana",12401,"paiyannoithai",3631,"pakatakana",12497,"palatalizationcyrilliccmb",1156,"palochkacyrillic",1216,"pansioskorean",12671,"paragraph",182,"parallel",8741,"parenleft",40,"parenleftaltonearabic",64830,"parenleftbt",63725,"parenleftex",63724,"parenleftinferior",8333,"parenleftmonospace",65288,"parenleftsmall",65113,"parenleftsuperior",8317,"parenlefttp",63723,"parenleftvertical",65077,"parenright",41,"parenrightaltonearabic",64831,"parenrightbt",63736,"parenrightex",63735,"parenrightinferior",8334,"parenrightmonospace",65289,"parenrightsmall",65114,"parenrightsuperior",8318,"parenrighttp",63734,"parenrightvertical",65078,"partialdiff",8706,"paseqhebrew",1472,"pashtahebrew",1433,"pasquare",13225,"patah",1463,"patah11",1463,"patah1d",1463,"patah2a",1463,"patahhebrew",1463,"patahnarrowhebrew",1463,"patahquarterhebrew",1463,"patahwidehebrew",1463,"pazerhebrew",1441,"pbopomofo",12550,"pcircle",9439,"pdotaccent",7767,"pe",1508,"pecyrillic",1087,"pedagesh",64324,"pedageshhebrew",64324,"peezisquare",13115,"pefinaldageshhebrew",64323,"peharabic",1662,"peharmenian",1402,"pehebrew",1508,"pehfinalarabic",64343,"pehinitialarabic",64344,"pehiragana",12410,"pehmedialarabic",64345,"pekatakana",12506,"pemiddlehookcyrillic",1191,"perafehebrew",64334,"percent",37,"percentarabic",1642,"percentmonospace",65285,"percentsmall",65130,"period",46,"periodarmenian",1417,"periodcentered",183,"periodhalfwidth",65377,"periodinferior",63207,"periodmonospace",65294,"periodsmall",65106,"periodsuperior",63208,"perispomenigreekcmb",834,"perpendicular",8869,"perthousand",8240,"peseta",8359,"pfsquare",13194,"phabengali",2475,"phadeva",2347,"phagujarati",2731,"phagurmukhi",2603,"phi",966,"phi1",981,"phieuphacirclekorean",12922,"phieuphaparenkorean",12826,"phieuphcirclekorean",12908,"phieuphkorean",12621,"phieuphparenkorean",12812,"philatin",632,"phinthuthai",3642,"phisymbolgreek",981,"phook",421,"phophanthai",3614,"phophungthai",3612,"phosamphaothai",3616,"pi",960,"pieupacirclekorean",12915,"pieupaparenkorean",12819,"pieupcieuckorean",12662,"pieupcirclekorean",12901,"pieupkiyeokkorean",12658,"pieupkorean",12610,"pieupparenkorean",12805,"pieupsioskiyeokkorean",12660,"pieupsioskorean",12612,"pieupsiostikeutkorean",12661,"pieupthieuthkorean",12663,"pieuptikeutkorean",12659,"pihiragana",12404,"pikatakana",12500,"pisymbolgreek",982,"piwrarmenian",1411,"plus",43,"plusbelowcmb",799,"pluscircle",8853,"plusminus",177,"plusmod",726,"plusmonospace",65291,"plussmall",65122,"plussuperior",8314,"pmonospace",65360,"pmsquare",13272,"pohiragana",12413,"pointingindexdownwhite",9759,"pointingindexleftwhite",9756,"pointingindexrightwhite",9758,"pointingindexupwhite",9757,"pokatakana",12509,"poplathai",3611,"postalmark",12306,"postalmarkface",12320,"pparen",9387,"precedes",8826,"prescription",8478,"primemod",697,"primereversed",8245,"product",8719,"projective",8965,"prolongedkana",12540,"propellor",8984,"propersubset",8834,"propersuperset",8835,"proportion",8759,"proportional",8733,"psi",968,"psicyrillic",1137,"psilipneumatacyrilliccmb",1158,"pssquare",13232,"puhiragana",12407,"pukatakana",12503,"pvsquare",13236,"pwsquare",13242,"q",113,"qadeva",2392,"qadmahebrew",1448,"qafarabic",1602,"qaffinalarabic",65238,"qafinitialarabic",65239,"qafmedialarabic",65240,"qamats",1464,"qamats10",1464,"qamats1a",1464,"qamats1c",1464,"qamats27",1464,"qamats29",1464,"qamats33",1464,"qamatsde",1464,"qamatshebrew",1464,"qamatsnarrowhebrew",1464,"qamatsqatanhebrew",1464,"qamatsqatannarrowhebrew",1464,"qamatsqatanquarterhebrew",1464,"qamatsqatanwidehebrew",1464,"qamatsquarterhebrew",1464,"qamatswidehebrew",1464,"qarneyparahebrew",1439,"qbopomofo",12561,"qcircle",9440,"qhook",672,"qmonospace",65361,"qof",1511,"qofdagesh",64327,"qofdageshhebrew",64327,"qofhebrew",1511,"qparen",9388,"quarternote",9833,"qubuts",1467,"qubuts18",1467,"qubuts25",1467,"qubuts31",1467,"qubutshebrew",1467,"qubutsnarrowhebrew",1467,"qubutsquarterhebrew",1467,"qubutswidehebrew",1467,"question",63,"questionarabic",1567,"questionarmenian",1374,"questiondown",191,"questiondownsmall",63423,"questiongreek",894,"questionmonospace",65311,"questionsmall",63295,"quotedbl",34,"quotedblbase",8222,"quotedblleft",8220,"quotedblmonospace",65282,"quotedblprime",12318,"quotedblprimereversed",12317,"quotedblright",8221,"quoteleft",8216,"quoteleftreversed",8219,"quotereversed",8219,"quoteright",8217,"quoterightn",329,"quotesinglbase",8218,"quotesingle",39,"quotesinglemonospace",65287,"r",114,"raarmenian",1404,"rabengali",2480,"racute",341,"radeva",2352,"radical",8730,"radicalex",63717,"radoverssquare",13230,"radoverssquaredsquare",13231,"radsquare",13229,"rafe",1471,"rafehebrew",1471,"ragujarati",2736,"ragurmukhi",2608,"rahiragana",12425,"rakatakana",12521,"rakatakanahalfwidth",65431,"ralowerdiagonalbengali",2545,"ramiddlediagonalbengali",2544,"ramshorn",612,"ratio",8758,"rbopomofo",12566,"rcaron",345,"rcedilla",343,"rcircle",9441,"rcommaaccent",343,"rdblgrave",529,"rdotaccent",7769,"rdotbelow",7771,"rdotbelowmacron",7773,"referencemark",8251,"reflexsubset",8838,"reflexsuperset",8839,"registered",174,"registersans",63720,"registerserif",63194,"reharabic",1585,"reharmenian",1408,"rehfinalarabic",65198,"rehiragana",12428,"rekatakana",12524,"rekatakanahalfwidth",65434,"resh",1512,"reshdageshhebrew",64328,"reshhebrew",1512,"reversedtilde",8765,"reviahebrew",1431,"reviamugrashhebrew",1431,"revlogicalnot",8976,"rfishhook",638,"rfishhookreversed",639,"rhabengali",2525,"rhadeva",2397,"rho",961,"rhook",637,"rhookturned",635,"rhookturnedsuperior",693,"rhosymbolgreek",1009,"rhotichookmod",734,"rieulacirclekorean",12913,"rieulaparenkorean",12817,"rieulcirclekorean",12899,"rieulhieuhkorean",12608,"rieulkiyeokkorean",12602,"rieulkiyeoksioskorean",12649,"rieulkorean",12601,"rieulmieumkorean",12603,"rieulpansioskorean",12652,"rieulparenkorean",12803,"rieulphieuphkorean",12607,"rieulpieupkorean",12604,"rieulpieupsioskorean",12651,"rieulsioskorean",12605,"rieulthieuthkorean",12606,"rieultikeutkorean",12650,"rieulyeorinhieuhkorean",12653,"rightangle",8735,"righttackbelowcmb",793,"righttriangle",8895,"rihiragana",12426,"rikatakana",12522,"rikatakanahalfwidth",65432,"ring",730,"ringbelowcmb",805,"ringcmb",778,"ringhalfleft",703,"ringhalfleftarmenian",1369,"ringhalfleftbelowcmb",796,"ringhalfleftcentered",723,"ringhalfright",702,"ringhalfrightbelowcmb",825,"ringhalfrightcentered",722,"rinvertedbreve",531,"rittorusquare",13137,"rlinebelow",7775,"rlongleg",636,"rlonglegturned",634,"rmonospace",65362,"rohiragana",12429,"rokatakana",12525,"rokatakanahalfwidth",65435,"roruathai",3619,"rparen",9389,"rrabengali",2524,"rradeva",2353,"rragurmukhi",2652,"rreharabic",1681,"rrehfinalarabic",64397,"rrvocalicbengali",2528,"rrvocalicdeva",2400,"rrvocalicgujarati",2784,"rrvocalicvowelsignbengali",2500,"rrvocalicvowelsigndeva",2372,"rrvocalicvowelsigngujarati",2756,"rsuperior",63217,"rtblock",9616,"rturned",633,"rturnedsuperior",692,"ruhiragana",12427,"rukatakana",12523,"rukatakanahalfwidth",65433,"rupeemarkbengali",2546,"rupeesignbengali",2547,"rupiah",63197,"ruthai",3620,"rvocalicbengali",2443,"rvocalicdeva",2315,"rvocalicgujarati",2699,"rvocalicvowelsignbengali",2499,"rvocalicvowelsigndeva",2371,"rvocalicvowelsigngujarati",2755,"s",115,"sabengali",2488,"sacute",347,"sacutedotaccent",7781,"sadarabic",1589,"sadeva",2360,"sadfinalarabic",65210,"sadinitialarabic",65211,"sadmedialarabic",65212,"sagujarati",2744,"sagurmukhi",2616,"sahiragana",12373,"sakatakana",12469,"sakatakanahalfwidth",65403,"sallallahoualayhewasallamarabic",65018,"samekh",1505,"samekhdagesh",64321,"samekhdageshhebrew",64321,"samekhhebrew",1505,"saraaathai",3634,"saraaethai",3649,"saraaimaimalaithai",3652,"saraaimaimuanthai",3651,"saraamthai",3635,"saraathai",3632,"saraethai",3648,"saraiileftthai",63622,"saraiithai",3637,"saraileftthai",63621,"saraithai",3636,"saraothai",3650,"saraueeleftthai",63624,"saraueethai",3639,"saraueleftthai",63623,"sarauethai",3638,"sarauthai",3640,"sarauuthai",3641,"sbopomofo",12569,"scaron",353,"scarondotaccent",7783,"scedilla",351,"schwa",601,"schwacyrillic",1241,"schwadieresiscyrillic",1243,"schwahook",602,"scircle",9442,"scircumflex",349,"scommaaccent",537,"sdotaccent",7777,"sdotbelow",7779,"sdotbelowdotaccent",7785,"seagullbelowcmb",828,"second",8243,"secondtonechinese",714,"section",167,"seenarabic",1587,"seenfinalarabic",65202,"seeninitialarabic",65203,"seenmedialarabic",65204,"segol",1462,"segol13",1462,"segol1f",1462,"segol2c",1462,"segolhebrew",1462,"segolnarrowhebrew",1462,"segolquarterhebrew",1462,"segoltahebrew",1426,"segolwidehebrew",1462,"seharmenian",1405,"sehiragana",12379,"sekatakana",12475,"sekatakanahalfwidth",65406,"semicolon",59,"semicolonarabic",1563,"semicolonmonospace",65307,"semicolonsmall",65108,"semivoicedmarkkana",12444,"semivoicedmarkkanahalfwidth",65439,"sentisquare",13090,"sentosquare",13091,"seven",55,"sevenarabic",1639,"sevenbengali",2541,"sevencircle",9318,"sevencircleinversesansserif",10128,"sevendeva",2413,"seveneighths",8542,"sevengujarati",2797,"sevengurmukhi",2669,"sevenhackarabic",1639,"sevenhangzhou",12327,"sevenideographicparen",12838,"seveninferior",8327,"sevenmonospace",65303,"sevenoldstyle",63287,"sevenparen",9338,"sevenperiod",9358,"sevenpersian",1783,"sevenroman",8566,"sevensuperior",8311,"seventeencircle",9328,"seventeenparen",9348,"seventeenperiod",9368,"seventhai",3671,"sfthyphen",173,"shaarmenian",1399,"shabengali",2486,"shacyrillic",1096,"shaddaarabic",1617,"shaddadammaarabic",64609,"shaddadammatanarabic",64606,"shaddafathaarabic",64608,"shaddakasraarabic",64610,"shaddakasratanarabic",64607,"shade",9618,"shadedark",9619,"shadelight",9617,"shademedium",9618,"shadeva",2358,"shagujarati",2742,"shagurmukhi",2614,"shalshelethebrew",1427,"shbopomofo",12565,"shchacyrillic",1097,"sheenarabic",1588,"sheenfinalarabic",65206,"sheeninitialarabic",65207,"sheenmedialarabic",65208,"sheicoptic",995,"sheqel",8362,"sheqelhebrew",8362,"sheva",1456,"sheva115",1456,"sheva15",1456,"sheva22",1456,"sheva2e",1456,"shevahebrew",1456,"shevanarrowhebrew",1456,"shevaquarterhebrew",1456,"shevawidehebrew",1456,"shhacyrillic",1211,"shimacoptic",1005,"shin",1513,"shindagesh",64329,"shindageshhebrew",64329,"shindageshshindot",64300,"shindageshshindothebrew",64300,"shindageshsindot",64301,"shindageshsindothebrew",64301,"shindothebrew",1473,"shinhebrew",1513,"shinshindot",64298,"shinshindothebrew",64298,"shinsindot",64299,"shinsindothebrew",64299,"shook",642,"sigma",963,"sigma1",962,"sigmafinal",962,"sigmalunatesymbolgreek",1010,"sihiragana",12375,"sikatakana",12471,"sikatakanahalfwidth",65404,"siluqhebrew",1469,"siluqlefthebrew",1469,"similar",8764,"sindothebrew",1474,"siosacirclekorean",12916,"siosaparenkorean",12820,"sioscieuckorean",12670,"sioscirclekorean",12902,"sioskiyeokkorean",12666,"sioskorean",12613,"siosnieunkorean",12667,"siosparenkorean",12806,"siospieupkorean",12669,"siostikeutkorean",12668,"six",54,"sixarabic",1638,"sixbengali",2540,"sixcircle",9317,"sixcircleinversesansserif",10127,"sixdeva",2412,"sixgujarati",2796,"sixgurmukhi",2668,"sixhackarabic",1638,"sixhangzhou",12326,"sixideographicparen",12837,"sixinferior",8326,"sixmonospace",65302,"sixoldstyle",63286,"sixparen",9337,"sixperiod",9357,"sixpersian",1782,"sixroman",8565,"sixsuperior",8310,"sixteencircle",9327,"sixteencurrencydenominatorbengali",2553,"sixteenparen",9347,"sixteenperiod",9367,"sixthai",3670,"slash",47,"slashmonospace",65295,"slong",383,"slongdotaccent",7835,"smileface",9786,"smonospace",65363,"sofpasuqhebrew",1475,"softhyphen",173,"softsigncyrillic",1100,"sohiragana",12381,"sokatakana",12477,"sokatakanahalfwidth",65407,"soliduslongoverlaycmb",824,"solidusshortoverlaycmb",823,"sorusithai",3625,"sosalathai",3624,"sosothai",3595,"sosuathai",3626,"space",32,"spacehackarabic",32,"spade",9824,"spadesuitblack",9824,"spadesuitwhite",9828,"sparen",9390,"squarebelowcmb",827,"squarecc",13252,"squarecm",13213,"squarediagonalcrosshatchfill",9641,"squarehorizontalfill",9636,"squarekg",13199,"squarekm",13214,"squarekmcapital",13262,"squareln",13265,"squarelog",13266,"squaremg",13198,"squaremil",13269,"squaremm",13212,"squaremsquared",13217,"squareorthogonalcrosshatchfill",9638,"squareupperlefttolowerrightfill",9639,"squareupperrighttolowerleftfill",9640,"squareverticalfill",9637,"squarewhitewithsmallblack",9635,"srsquare",13275,"ssabengali",2487,"ssadeva",2359,"ssagujarati",2743,"ssangcieuckorean",12617,"ssanghieuhkorean",12677,"ssangieungkorean",12672,"ssangkiyeokkorean",12594,"ssangnieunkorean",12645,"ssangpieupkorean",12611,"ssangsioskorean",12614,"ssangtikeutkorean",12600,"ssuperior",63218,"sterling",163,"sterlingmonospace",65505,"strokelongoverlaycmb",822,"strokeshortoverlaycmb",821,"subset",8834,"subsetnotequal",8842,"subsetorequal",8838,"succeeds",8827,"suchthat",8715,"suhiragana",12377,"sukatakana",12473,"sukatakanahalfwidth",65405,"sukunarabic",1618,"summation",8721,"sun",9788,"superset",8835,"supersetnotequal",8843,"supersetorequal",8839,"svsquare",13276,"syouwaerasquare",13180,"t",116,"tabengali",2468,"tackdown",8868,"tackleft",8867,"tadeva",2340,"tagujarati",2724,"tagurmukhi",2596,"taharabic",1591,"tahfinalarabic",65218,"tahinitialarabic",65219,"tahiragana",12383,"tahmedialarabic",65220,"taisyouerasquare",13181,"takatakana",12479,"takatakanahalfwidth",65408,"tatweelarabic",1600,"tau",964,"tav",1514,"tavdages",64330,"tavdagesh",64330,"tavdageshhebrew",64330,"tavhebrew",1514,"tbar",359,"tbopomofo",12554,"tcaron",357,"tccurl",680,"tcedilla",355,"tcheharabic",1670,"tchehfinalarabic",64379,"tchehinitialarabic",64380,"tchehmedialarabic",64381,"tcircle",9443,"tcircumflexbelow",7793,"tcommaaccent",355,"tdieresis",7831,"tdotaccent",7787,"tdotbelow",7789,"tecyrillic",1090,"tedescendercyrillic",1197,"teharabic",1578,"tehfinalarabic",65174,"tehhahinitialarabic",64674,"tehhahisolatedarabic",64524,"tehinitialarabic",65175,"tehiragana",12390,"tehjeeminitialarabic",64673,"tehjeemisolatedarabic",64523,"tehmarbutaarabic",1577,"tehmarbutafinalarabic",65172,"tehmedialarabic",65176,"tehmeeminitialarabic",64676,"tehmeemisolatedarabic",64526,"tehnoonfinalarabic",64627,"tekatakana",12486,"tekatakanahalfwidth",65411,"telephone",8481,"telephoneblack",9742,"telishagedolahebrew",1440,"telishaqetanahebrew",1449,"tencircle",9321,"tenideographicparen",12841,"tenparen",9341,"tenperiod",9361,"tenroman",8569,"tesh",679,"tet",1496,"tetdagesh",64312,"tetdageshhebrew",64312,"tethebrew",1496,"tetsecyrillic",1205,"tevirhebrew",1435,"tevirlefthebrew",1435,"thabengali",2469,"thadeva",2341,"thagujarati",2725,"thagurmukhi",2597,"thalarabic",1584,"thalfinalarabic",65196,"thanthakhatlowleftthai",63640,"thanthakhatlowrightthai",63639,"thanthakhatthai",3660,"thanthakhatupperleftthai",63638,"theharabic",1579,"thehfinalarabic",65178,"thehinitialarabic",65179,"thehmedialarabic",65180,"thereexists",8707,"therefore",8756,"theta",952,"theta1",977,"thetasymbolgreek",977,"thieuthacirclekorean",12921,"thieuthaparenkorean",12825,"thieuthcirclekorean",12907,"thieuthkorean",12620,"thieuthparenkorean",12811,"thirteencircle",9324,"thirteenparen",9344,"thirteenperiod",9364,"thonangmonthothai",3601,"thook",429,"thophuthaothai",3602,"thorn",254,"thothahanthai",3607,"thothanthai",3600,"thothongthai",3608,"thothungthai",3606,"thousandcyrillic",1154,"thousandsseparatorarabic",1644,"thousandsseparatorpersian",1644,"three",51,"threearabic",1635,"threebengali",2537,"threecircle",9314,"threecircleinversesansserif",10124,"threedeva",2409,"threeeighths",8540,"threegujarati",2793,"threegurmukhi",2665,"threehackarabic",1635,"threehangzhou",12323,"threeideographicparen",12834,"threeinferior",8323,"threemonospace",65299,"threenumeratorbengali",2550,"threeoldstyle",63283,"threeparen",9334,"threeperiod",9354,"threepersian",1779,"threequarters",190,"threequartersemdash",63198,"threeroman",8562,"threesuperior",179,"threethai",3667,"thzsquare",13204,"tihiragana",12385,"tikatakana",12481,"tikatakanahalfwidth",65409,"tikeutacirclekorean",12912,"tikeutaparenkorean",12816,"tikeutcirclekorean",12898,"tikeutkorean",12599,"tikeutparenkorean",12802,"tilde",732,"tildebelowcmb",816,"tildecmb",771,"tildecomb",771,"tildedoublecmb",864,"tildeoperator",8764,"tildeoverlaycmb",820,"tildeverticalcmb",830,"timescircle",8855,"tipehahebrew",1430,"tipehalefthebrew",1430,"tippigurmukhi",2672,"titlocyrilliccmb",1155,"tiwnarmenian",1407,"tlinebelow",7791,"tmonospace",65364,"toarmenian",1385,"tohiragana",12392,"tokatakana",12488,"tokatakanahalfwidth",65412,"tonebarextrahighmod",741,"tonebarextralowmod",745,"tonebarhighmod",742,"tonebarlowmod",744,"tonebarmidmod",743,"tonefive",445,"tonesix",389,"tonetwo",424,"tonos",900,"tonsquare",13095,"topatakthai",3599,"tortoiseshellbracketleft",12308,"tortoiseshellbracketleftsmall",65117,"tortoiseshellbracketleftvertical",65081,"tortoiseshellbracketright",12309,"tortoiseshellbracketrightsmall",65118,"tortoiseshellbracketrightvertical",65082,"totaothai",3605,"tpalatalhook",427,"tparen",9391,"trademark",8482,"trademarksans",63722,"trademarkserif",63195,"tretroflexhook",648,"triagdn",9660,"triaglf",9668,"triagrt",9658,"triagup",9650,"ts",678,"tsadi",1510,"tsadidagesh",64326,"tsadidageshhebrew",64326,"tsadihebrew",1510,"tsecyrillic",1094,"tsere",1461,"tsere12",1461,"tsere1e",1461,"tsere2b",1461,"tserehebrew",1461,"tserenarrowhebrew",1461,"tserequarterhebrew",1461,"tserewidehebrew",1461,"tshecyrillic",1115,"tsuperior",63219,"ttabengali",2463,"ttadeva",2335,"ttagujarati",2719,"ttagurmukhi",2591,"tteharabic",1657,"ttehfinalarabic",64359,"ttehinitialarabic",64360,"ttehmedialarabic",64361,"tthabengali",2464,"tthadeva",2336,"tthagujarati",2720,"tthagurmukhi",2592,"tturned",647,"tuhiragana",12388,"tukatakana",12484,"tukatakanahalfwidth",65410,"tusmallhiragana",12387,"tusmallkatakana",12483,"tusmallkatakanahalfwidth",65391,"twelvecircle",9323,"twelveparen",9343,"twelveperiod",9363,"twelveroman",8571,"twentycircle",9331,"twentyhangzhou",21316,"twentyparen",9351,"twentyperiod",9371,"two",50,"twoarabic",1634,"twobengali",2536,"twocircle",9313,"twocircleinversesansserif",10123,"twodeva",2408,"twodotenleader",8229,"twodotleader",8229,"twodotleadervertical",65072,"twogujarati",2792,"twogurmukhi",2664,"twohackarabic",1634,"twohangzhou",12322,"twoideographicparen",12833,"twoinferior",8322,"twomonospace",65298,"twonumeratorbengali",2549,"twooldstyle",63282,"twoparen",9333,"twoperiod",9353,"twopersian",1778,"tworoman",8561,"twostroke",443,"twosuperior",178,"twothai",3666,"twothirds",8532,"u",117,"uacute",250,"ubar",649,"ubengali",2441,"ubopomofo",12584,"ubreve",365,"ucaron",468,"ucircle",9444,"ucircumflex",251,"ucircumflexbelow",7799,"ucyrillic",1091,"udattadeva",2385,"udblacute",369,"udblgrave",533,"udeva",2313,"udieresis",252,"udieresisacute",472,"udieresisbelow",7795,"udieresiscaron",474,"udieresiscyrillic",1265,"udieresisgrave",476,"udieresismacron",470,"udotbelow",7909,"ugrave",249,"ugujarati",2697,"ugurmukhi",2569,"uhiragana",12358,"uhookabove",7911,"uhorn",432,"uhornacute",7913,"uhorndotbelow",7921,"uhorngrave",7915,"uhornhookabove",7917,"uhorntilde",7919,"uhungarumlaut",369,"uhungarumlautcyrillic",1267,"uinvertedbreve",535,"ukatakana",12454,"ukatakanahalfwidth",65395,"ukcyrillic",1145,"ukorean",12636,"umacron",363,"umacroncyrillic",1263,"umacrondieresis",7803,"umatragurmukhi",2625,"umonospace",65365,"underscore",95,"underscoredbl",8215,"underscoremonospace",65343,"underscorevertical",65075,"underscorewavy",65103,"union",8746,"universal",8704,"uogonek",371,"uparen",9392,"upblock",9600,"upperdothebrew",1476,"upsilon",965,"upsilondieresis",971,"upsilondieresistonos",944,"upsilonlatin",650,"upsilontonos",973,"uptackbelowcmb",797,"uptackmod",724,"uragurmukhi",2675,"uring",367,"ushortcyrillic",1118,"usmallhiragana",12357,"usmallkatakana",12453,"usmallkatakanahalfwidth",65385,"ustraightcyrillic",1199,"ustraightstrokecyrillic",1201,"utilde",361,"utildeacute",7801,"utildebelow",7797,"uubengali",2442,"uudeva",2314,"uugujarati",2698,"uugurmukhi",2570,"uumatragurmukhi",2626,"uuvowelsignbengali",2498,"uuvowelsigndeva",2370,"uuvowelsigngujarati",2754,"uvowelsignbengali",2497,"uvowelsigndeva",2369,"uvowelsigngujarati",2753,"v",118,"vadeva",2357,"vagujarati",2741,"vagurmukhi",2613,"vakatakana",12535,"vav",1493,"vavdagesh",64309,"vavdagesh65",64309,"vavdageshhebrew",64309,"vavhebrew",1493,"vavholam",64331,"vavholamhebrew",64331,"vavvavhebrew",1520,"vavyodhebrew",1521,"vcircle",9445,"vdotbelow",7807,"vecyrillic",1074,"veharabic",1700,"vehfinalarabic",64363,"vehinitialarabic",64364,"vehmedialarabic",64365,"vekatakana",12537,"venus",9792,"verticalbar",124,"verticallineabovecmb",781,"verticallinebelowcmb",809,"verticallinelowmod",716,"verticallinemod",712,"vewarmenian",1406,"vhook",651,"vikatakana",12536,"viramabengali",2509,"viramadeva",2381,"viramagujarati",2765,"visargabengali",2435,"visargadeva",2307,"visargagujarati",2691,"vmonospace",65366,"voarmenian",1400,"voicediterationhiragana",12446,"voicediterationkatakana",12542,"voicedmarkkana",12443,"voicedmarkkanahalfwidth",65438,"vokatakana",12538,"vparen",9393,"vtilde",7805,"vturned",652,"vuhiragana",12436,"vukatakana",12532,"w",119,"wacute",7811,"waekorean",12633,"wahiragana",12431,"wakatakana",12527,"wakatakanahalfwidth",65436,"wakorean",12632,"wasmallhiragana",12430,"wasmallkatakana",12526,"wattosquare",13143,"wavedash",12316,"wavyunderscorevertical",65076,"wawarabic",1608,"wawfinalarabic",65262,"wawhamzaabovearabic",1572,"wawhamzaabovefinalarabic",65158,"wbsquare",13277,"wcircle",9446,"wcircumflex",373,"wdieresis",7813,"wdotaccent",7815,"wdotbelow",7817,"wehiragana",12433,"weierstrass",8472,"wekatakana",12529,"wekorean",12638,"weokorean",12637,"wgrave",7809,"whitebullet",9702,"whitecircle",9675,"whitecircleinverse",9689,"whitecornerbracketleft",12302,"whitecornerbracketleftvertical",65091,"whitecornerbracketright",12303,"whitecornerbracketrightvertical",65092,"whitediamond",9671,"whitediamondcontainingblacksmalldiamond",9672,"whitedownpointingsmalltriangle",9663,"whitedownpointingtriangle",9661,"whiteleftpointingsmalltriangle",9667,"whiteleftpointingtriangle",9665,"whitelenticularbracketleft",12310,"whitelenticularbracketright",12311,"whiterightpointingsmalltriangle",9657,"whiterightpointingtriangle",9655,"whitesmallsquare",9643,"whitesmilingface",9786,"whitesquare",9633,"whitestar",9734,"whitetelephone",9743,"whitetortoiseshellbracketleft",12312,"whitetortoiseshellbracketright",12313,"whiteuppointingsmalltriangle",9653,"whiteuppointingtriangle",9651,"wihiragana",12432,"wikatakana",12528,"wikorean",12639,"wmonospace",65367,"wohiragana",12434,"wokatakana",12530,"wokatakanahalfwidth",65382,"won",8361,"wonmonospace",65510,"wowaenthai",3623,"wparen",9394,"wring",7832,"wsuperior",695,"wturned",653,"wynn",447,"x",120,"xabovecmb",829,"xbopomofo",12562,"xcircle",9447,"xdieresis",7821,"xdotaccent",7819,"xeharmenian",1389,"xi",958,"xmonospace",65368,"xparen",9395,"xsuperior",739,"y",121,"yaadosquare",13134,"yabengali",2479,"yacute",253,"yadeva",2351,"yaekorean",12626,"yagujarati",2735,"yagurmukhi",2607,"yahiragana",12420,"yakatakana",12516,"yakatakanahalfwidth",65428,"yakorean",12625,"yamakkanthai",3662,"yasmallhiragana",12419,"yasmallkatakana",12515,"yasmallkatakanahalfwidth",65388,"yatcyrillic",1123,"ycircle",9448,"ycircumflex",375,"ydieresis",255,"ydotaccent",7823,"ydotbelow",7925,"yeharabic",1610,"yehbarreearabic",1746,"yehbarreefinalarabic",64431,"yehfinalarabic",65266,"yehhamzaabovearabic",1574,"yehhamzaabovefinalarabic",65162,"yehhamzaaboveinitialarabic",65163,"yehhamzaabovemedialarabic",65164,"yehinitialarabic",65267,"yehmedialarabic",65268,"yehmeeminitialarabic",64733,"yehmeemisolatedarabic",64600,"yehnoonfinalarabic",64660,"yehthreedotsbelowarabic",1745,"yekorean",12630,"yen",165,"yenmonospace",65509,"yeokorean",12629,"yeorinhieuhkorean",12678,"yerahbenyomohebrew",1450,"yerahbenyomolefthebrew",1450,"yericyrillic",1099,"yerudieresiscyrillic",1273,"yesieungkorean",12673,"yesieungpansioskorean",12675,"yesieungsioskorean",12674,"yetivhebrew",1434,"ygrave",7923,"yhook",436,"yhookabove",7927,"yiarmenian",1397,"yicyrillic",1111,"yikorean",12642,"yinyang",9775,"yiwnarmenian",1410,"ymonospace",65369,"yod",1497,"yoddagesh",64313,"yoddageshhebrew",64313,"yodhebrew",1497,"yodyodhebrew",1522,"yodyodpatahhebrew",64287,"yohiragana",12424,"yoikorean",12681,"yokatakana",12520,"yokatakanahalfwidth",65430,"yokorean",12635,"yosmallhiragana",12423,"yosmallkatakana",12519,"yosmallkatakanahalfwidth",65390,"yotgreek",1011,"yoyaekorean",12680,"yoyakorean",12679,"yoyakthai",3618,"yoyingthai",3597,"yparen",9396,"ypogegrammeni",890,"ypogegrammenigreekcmb",837,"yr",422,"yring",7833,"ysuperior",696,"ytilde",7929,"yturned",654,"yuhiragana",12422,"yuikorean",12684,"yukatakana",12518,"yukatakanahalfwidth",65429,"yukorean",12640,"yusbigcyrillic",1131,"yusbigiotifiedcyrillic",1133,"yuslittlecyrillic",1127,"yuslittleiotifiedcyrillic",1129,"yusmallhiragana",12421,"yusmallkatakana",12517,"yusmallkatakanahalfwidth",65389,"yuyekorean",12683,"yuyeokorean",12682,"yyabengali",2527,"yyadeva",2399,"z",122,"zaarmenian",1382,"zacute",378,"zadeva",2395,"zagurmukhi",2651,"zaharabic",1592,"zahfinalarabic",65222,"zahinitialarabic",65223,"zahiragana",12374,"zahmedialarabic",65224,"zainarabic",1586,"zainfinalarabic",65200,"zakatakana",12470,"zaqefgadolhebrew",1429,"zaqefqatanhebrew",1428,"zarqahebrew",1432,"zayin",1494,"zayindagesh",64310,"zayindageshhebrew",64310,"zayinhebrew",1494,"zbopomofo",12567,"zcaron",382,"zcircle",9449,"zcircumflex",7825,"zcurl",657,"zdot",380,"zdotaccent",380,"zdotbelow",7827,"zecyrillic",1079,"zedescendercyrillic",1177,"zedieresiscyrillic",1247,"zehiragana",12380,"zekatakana",12476,"zero",48,"zeroarabic",1632,"zerobengali",2534,"zerodeva",2406,"zerogujarati",2790,"zerogurmukhi",2662,"zerohackarabic",1632,"zeroinferior",8320,"zeromonospace",65296,"zerooldstyle",63280,"zeropersian",1776,"zerosuperior",8304,"zerothai",3664,"zerowidthjoiner",65279,"zerowidthnonjoiner",8204,"zerowidthspace",8203,"zeta",950,"zhbopomofo",12563,"zhearmenian",1386,"zhebrevecyrillic",1218,"zhecyrillic",1078,"zhedescendercyrillic",1175,"zhedieresiscyrillic",1245,"zihiragana",12376,"zikatakana",12472,"zinorhebrew",1454,"zlinebelow",7829,"zmonospace",65370,"zohiragana",12382,"zokatakana",12478,"zparen",9397,"zretroflexhook",656,"zstroke",438,"zuhiragana",12378,"zukatakana",12474,".notdef",0,"angbracketleftbig",9001,"angbracketleftBig",9001,"angbracketleftbigg",9001,"angbracketleftBigg",9001,"angbracketrightBig",9002,"angbracketrightbig",9002,"angbracketrightBigg",9002,"angbracketrightbigg",9002,"arrowhookleft",8618,"arrowhookright",8617,"arrowlefttophalf",8636,"arrowleftbothalf",8637,"arrownortheast",8599,"arrownorthwest",8598,"arrowrighttophalf",8640,"arrowrightbothalf",8641,"arrowsoutheast",8600,"arrowsouthwest",8601,"backslashbig",8726,"backslashBig",8726,"backslashBigg",8726,"backslashbigg",8726,"bardbl",8214,"bracehtipdownleft",65079,"bracehtipdownright",65079,"bracehtipupleft",65080,"bracehtipupright",65080,"braceleftBig",123,"braceleftbig",123,"braceleftbigg",123,"braceleftBigg",123,"bracerightBig",125,"bracerightbig",125,"bracerightbigg",125,"bracerightBigg",125,"bracketleftbig",91,"bracketleftBig",91,"bracketleftbigg",91,"bracketleftBigg",91,"bracketrightBig",93,"bracketrightbig",93,"bracketrightbigg",93,"bracketrightBigg",93,"ceilingleftbig",8968,"ceilingleftBig",8968,"ceilingleftBigg",8968,"ceilingleftbigg",8968,"ceilingrightbig",8969,"ceilingrightBig",8969,"ceilingrightbigg",8969,"ceilingrightBigg",8969,"circledotdisplay",8857,"circledottext",8857,"circlemultiplydisplay",8855,"circlemultiplytext",8855,"circleplusdisplay",8853,"circleplustext",8853,"contintegraldisplay",8750,"contintegraltext",8750,"coproductdisplay",8720,"coproducttext",8720,"floorleftBig",8970,"floorleftbig",8970,"floorleftbigg",8970,"floorleftBigg",8970,"floorrightbig",8971,"floorrightBig",8971,"floorrightBigg",8971,"floorrightbigg",8971,"hatwide",770,"hatwider",770,"hatwidest",770,"intercal",7488,"integraldisplay",8747,"integraltext",8747,"intersectiondisplay",8898,"intersectiontext",8898,"logicalanddisplay",8743,"logicalandtext",8743,"logicalordisplay",8744,"logicalortext",8744,"parenleftBig",40,"parenleftbig",40,"parenleftBigg",40,"parenleftbigg",40,"parenrightBig",41,"parenrightbig",41,"parenrightBigg",41,"parenrightbigg",41,"prime",8242,"productdisplay",8719,"producttext",8719,"radicalbig",8730,"radicalBig",8730,"radicalBigg",8730,"radicalbigg",8730,"radicalbt",8730,"radicaltp",8730,"radicalvertex",8730,"slashbig",47,"slashBig",47,"slashBigg",47,"slashbigg",47,"summationdisplay",8721,"summationtext",8721,"tildewide",732,"tildewider",732,"tildewidest",732,"uniondisplay",8899,"unionmultidisplay",8846,"unionmultitext",8846,"unionsqdisplay",8852,"unionsqtext",8852,"uniontext",8899,"vextenddouble",8741,"vextendsingle",8739]})),u=(0,l.getArrayLookupTableFactory)((function(){return["space",32,"a1",9985,"a2",9986,"a202",9987,"a3",9988,"a4",9742,"a5",9990,"a119",9991,"a118",9992,"a117",9993,"a11",9755,"a12",9758,"a13",9996,"a14",9997,"a15",9998,"a16",9999,"a105",1e4,"a17",10001,"a18",10002,"a19",10003,"a20",10004,"a21",10005,"a22",10006,"a23",10007,"a24",10008,"a25",10009,"a26",10010,"a27",10011,"a28",10012,"a6",10013,"a7",10014,"a8",10015,"a9",10016,"a10",10017,"a29",10018,"a30",10019,"a31",10020,"a32",10021,"a33",10022,"a34",10023,"a35",9733,"a36",10025,"a37",10026,"a38",10027,"a39",10028,"a40",10029,"a41",10030,"a42",10031,"a43",10032,"a44",10033,"a45",10034,"a46",10035,"a47",10036,"a48",10037,"a49",10038,"a50",10039,"a51",10040,"a52",10041,"a53",10042,"a54",10043,"a55",10044,"a56",10045,"a57",10046,"a58",10047,"a59",10048,"a60",10049,"a61",10050,"a62",10051,"a63",10052,"a64",10053,"a65",10054,"a66",10055,"a67",10056,"a68",10057,"a69",10058,"a70",10059,"a71",9679,"a72",10061,"a73",9632,"a74",10063,"a203",10064,"a75",10065,"a204",10066,"a76",9650,"a77",9660,"a78",9670,"a79",10070,"a81",9687,"a82",10072,"a83",10073,"a84",10074,"a97",10075,"a98",10076,"a99",10077,"a100",10078,"a101",10081,"a102",10082,"a103",10083,"a104",10084,"a106",10085,"a107",10086,"a108",10087,"a112",9827,"a111",9830,"a110",9829,"a109",9824,"a120",9312,"a121",9313,"a122",9314,"a123",9315,"a124",9316,"a125",9317,"a126",9318,"a127",9319,"a128",9320,"a129",9321,"a130",10102,"a131",10103,"a132",10104,"a133",10105,"a134",10106,"a135",10107,"a136",10108,"a137",10109,"a138",10110,"a139",10111,"a140",10112,"a141",10113,"a142",10114,"a143",10115,"a144",10116,"a145",10117,"a146",10118,"a147",10119,"a148",10120,"a149",10121,"a150",10122,"a151",10123,"a152",10124,"a153",10125,"a154",10126,"a155",10127,"a156",10128,"a157",10129,"a158",10130,"a159",10131,"a160",10132,"a161",8594,"a163",8596,"a164",8597,"a196",10136,"a165",10137,"a192",10138,"a166",10139,"a167",10140,"a168",10141,"a169",10142,"a170",10143,"a171",10144,"a172",10145,"a173",10146,"a162",10147,"a174",10148,"a175",10149,"a176",10150,"a177",10151,"a178",10152,"a179",10153,"a193",10154,"a180",10155,"a199",10156,"a181",10157,"a200",10158,"a182",10159,"a201",10161,"a183",10162,"a184",10163,"a197",10164,"a185",10165,"a194",10166,"a198",10167,"a186",10168,"a195",10169,"a187",10170,"a188",10171,"a189",10172,"a190",10173,"a191",10174,"a89",10088,"a90",10089,"a93",10090,"a94",10091,"a91",10092,"a92",10093,"a205",10094,"a85",10095,"a206",10096,"a86",10097,"a87",10098,"a88",10099,"a95",10100,"a96",10101,".notdef",0]}))},(t,r,o)=>{"use strict";o.r(r);o.d(r,{getNormalizedUnicodes:()=>h,getUnicodeForGlyph:()=>getUnicodeForGlyph,getUnicodeRangeFor:()=>getUnicodeRangeFor,mapSpecialUnicodeValues:()=>mapSpecialUnicodeValues,reverseIfRtl:()=>reverseIfRtl});var l=o(122);const c=(0,l.getLookupTableFactory)((function(t){t[63721]=169;t[63193]=169;t[63720]=174;t[63194]=174;t[63722]=8482;t[63195]=8482;t[63729]=9127;t[63730]=9128;t[63731]=9129;t[63740]=9131;t[63741]=9132;t[63742]=9133;t[63726]=9121;t[63727]=9122;t[63728]=9123;t[63737]=9124;t[63738]=9125;t[63739]=9126;t[63723]=9115;t[63724]=9116;t[63725]=9117;t[63734]=9118;t[63735]=9119;t[63736]=9120}));function mapSpecialUnicodeValues(t){return t>=65520&&t<=65535?0:t>=62976&&t<=63743?c()[t]||t:173===t?45:t}function getUnicodeForGlyph(t,r){let o=r[t];if(void 0!==o)return o;if(!t)return-1;if("u"===t[0]){const r=t.length;let l;if(7===r&&"n"===t[1]&&"i"===t[2])l=t.substring(3);else{if(!(r>=5&&r<=7))return-1;l=t.substring(1)}if(l===l.toUpperCase()){o=parseInt(l,16);if(o>=0)return o}}return-1}const u=[{begin:0,end:127},{begin:128,end:255},{begin:256,end:383},{begin:384,end:591},{begin:592,end:687},{begin:688,end:767},{begin:768,end:879},{begin:880,end:1023},{begin:11392,end:11519},{begin:1024,end:1279},{begin:1328,end:1423},{begin:1424,end:1535},{begin:42240,end:42559},{begin:1536,end:1791},{begin:1984,end:2047},{begin:2304,end:2431},{begin:2432,end:2559},{begin:2560,end:2687},{begin:2688,end:2815},{begin:2816,end:2943},{begin:2944,end:3071},{begin:3072,end:3199},{begin:3200,end:3327},{begin:3328,end:3455},{begin:3584,end:3711},{begin:3712,end:3839},{begin:4256,end:4351},{begin:6912,end:7039},{begin:4352,end:4607},{begin:7680,end:7935},{begin:7936,end:8191},{begin:8192,end:8303},{begin:8304,end:8351},{begin:8352,end:8399},{begin:8400,end:8447},{begin:8448,end:8527},{begin:8528,end:8591},{begin:8592,end:8703},{begin:8704,end:8959},{begin:8960,end:9215},{begin:9216,end:9279},{begin:9280,end:9311},{begin:9312,end:9471},{begin:9472,end:9599},{begin:9600,end:9631},{begin:9632,end:9727},{begin:9728,end:9983},{begin:9984,end:10175},{begin:12288,end:12351},{begin:12352,end:12447},{begin:12448,end:12543},{begin:12544,end:12591},{begin:12592,end:12687},{begin:43072,end:43135},{begin:12800,end:13055},{begin:13056,end:13311},{begin:44032,end:55215},{begin:55296,end:57343},{begin:67840,end:67871},{begin:19968,end:40959},{begin:57344,end:63743},{begin:12736,end:12783},{begin:64256,end:64335},{begin:64336,end:65023},{begin:65056,end:65071},{begin:65040,end:65055},{begin:65104,end:65135},{begin:65136,end:65279},{begin:65280,end:65519},{begin:65520,end:65535},{begin:3840,end:4095},{begin:1792,end:1871},{begin:1920,end:1983},{begin:3456,end:3583},{begin:4096,end:4255},{begin:4608,end:4991},{begin:5024,end:5119},{begin:5120,end:5759},{begin:5760,end:5791},{begin:5792,end:5887},{begin:6016,end:6143},{begin:6144,end:6319},{begin:10240,end:10495},{begin:40960,end:42127},{begin:5888,end:5919},{begin:66304,end:66351},{begin:66352,end:66383},{begin:66560,end:66639},{begin:118784,end:119039},{begin:119808,end:120831},{begin:1044480,end:1048573},{begin:65024,end:65039},{begin:917504,end:917631},{begin:6400,end:6479},{begin:6480,end:6527},{begin:6528,end:6623},{begin:6656,end:6687},{begin:11264,end:11359},{begin:11568,end:11647},{begin:19904,end:19967},{begin:43008,end:43055},{begin:65536,end:65663},{begin:65856,end:65935},{begin:66432,end:66463},{begin:66464,end:66527},{begin:66640,end:66687},{begin:66688,end:66735},{begin:67584,end:67647},{begin:68096,end:68191},{begin:119552,end:119647},{begin:73728,end:74751},{begin:119648,end:119679},{begin:7040,end:7103},{begin:7168,end:7247},{begin:7248,end:7295},{begin:43136,end:43231},{begin:43264,end:43311},{begin:43312,end:43359},{begin:43520,end:43615},{begin:65936,end:65999},{begin:66e3,end:66047},{begin:66208,end:66271},{begin:127024,end:127135}];function getUnicodeRangeFor(t){for(let r=0,o=u.length;r<o;r++){const o=u[r];if(t>=o.begin&&t<o.end)return r}return-1}const h=(0,l.getArrayLookupTableFactory)((function(){return["¨"," ̈","¯"," ̄","´"," ́","µ","μ","¸"," ̧","IJ","IJ","ij","ij","Ŀ","L·","ŀ","l·","ʼn","ʼn","ſ","s","DŽ","DŽ","Dž","Dž","dž","dž","LJ","LJ","Lj","Lj","lj","lj","NJ","NJ","Nj","Nj","nj","nj","DZ","DZ","Dz","Dz","dz","dz","˘"," ̆","˙"," ̇","˚"," ̊","˛"," ̨","˜"," ̃","˝"," ̋","ͺ"," ͅ","΄"," ́","ϐ","β","ϑ","θ","ϒ","Υ","ϕ","φ","ϖ","π","ϰ","κ","ϱ","ρ","ϲ","ς","ϴ","Θ","ϵ","ε","Ϲ","Σ","և","եւ","ٵ","اٴ","ٶ","وٴ","ٷ","ۇٴ","ٸ","يٴ","ำ","ํา","ຳ","ໍາ","ໜ","ຫນ","ໝ","ຫມ","ཷ","ྲཱྀ","ཹ","ླཱྀ","ẚ","aʾ","᾽"," ̓","᾿"," ̓","῀"," ͂","῾"," ̔"," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ","‗"," ̳","․",".","‥","..","…","...","″","′′","‴","′′′","‶","‵‵","‷","‵‵‵","‼","!!","‾"," ̅","⁇","??","⁈","?!","⁉","!?","⁗","′′′′"," "," ","₨","Rs","℀","a/c","℁","a/s","℃","°C","℅","c/o","℆","c/u","ℇ","Ɛ","℉","°F","№","No","℡","TEL","ℵ","א","ℶ","ב","ℷ","ג","ℸ","ד","℻","FAX","Ⅰ","I","Ⅱ","II","Ⅲ","III","Ⅳ","IV","Ⅴ","V","Ⅵ","VI","Ⅶ","VII","Ⅷ","VIII","Ⅸ","IX","Ⅹ","X","Ⅺ","XI","Ⅻ","XII","Ⅼ","L","Ⅽ","C","Ⅾ","D","Ⅿ","M","ⅰ","i","ⅱ","ii","ⅲ","iii","ⅳ","iv","ⅴ","v","ⅵ","vi","ⅶ","vii","ⅷ","viii","ⅸ","ix","ⅹ","x","ⅺ","xi","ⅻ","xii","ⅼ","l","ⅽ","c","ⅾ","d","ⅿ","m","∬","∫∫","∭","∫∫∫","∯","∮∮","∰","∮∮∮","⑴","(1)","⑵","(2)","⑶","(3)","⑷","(4)","⑸","(5)","⑹","(6)","⑺","(7)","⑻","(8)","⑼","(9)","⑽","(10)","⑾","(11)","⑿","(12)","⒀","(13)","⒁","(14)","⒂","(15)","⒃","(16)","⒄","(17)","⒅","(18)","⒆","(19)","⒇","(20)","⒈","1.","⒉","2.","⒊","3.","⒋","4.","⒌","5.","⒍","6.","⒎","7.","⒏","8.","⒐","9.","⒑","10.","⒒","11.","⒓","12.","⒔","13.","⒕","14.","⒖","15.","⒗","16.","⒘","17.","⒙","18.","⒚","19.","⒛","20.","⒜","(a)","⒝","(b)","⒞","(c)","⒟","(d)","⒠","(e)","⒡","(f)","⒢","(g)","⒣","(h)","⒤","(i)","⒥","(j)","⒦","(k)","⒧","(l)","⒨","(m)","⒩","(n)","⒪","(o)","⒫","(p)","⒬","(q)","⒭","(r)","⒮","(s)","⒯","(t)","⒰","(u)","⒱","(v)","⒲","(w)","⒳","(x)","⒴","(y)","⒵","(z)","⨌","∫∫∫∫","⩴","::=","⩵","==","⩶","===","⺟","母","⻳","龟","⼀","一","⼁","丨","⼂","丶","⼃","丿","⼄","乙","⼅","亅","⼆","二","⼇","亠","⼈","人","⼉","儿","⼊","入","⼋","八","⼌","冂","⼍","冖","⼎","冫","⼏","几","⼐","凵","⼑","刀","⼒","力","⼓","勹","⼔","匕","⼕","匚","⼖","匸","⼗","十","⼘","卜","⼙","卩","⼚","厂","⼛","厶","⼜","又","⼝","口","⼞","囗","⼟","土","⼠","士","⼡","夂","⼢","夊","⼣","夕","⼤","大","⼥","女","⼦","子","⼧","宀","⼨","寸","⼩","小","⼪","尢","⼫","尸","⼬","屮","⼭","山","⼮","巛","⼯","工","⼰","己","⼱","巾","⼲","干","⼳","幺","⼴","广","⼵","廴","⼶","廾","⼷","弋","⼸","弓","⼹","彐","⼺","彡","⼻","彳","⼼","心","⼽","戈","⼾","戶","⼿","手","⽀","支","⽁","攴","⽂","文","⽃","斗","⽄","斤","⽅","方","⽆","无","⽇","日","⽈","曰","⽉","月","⽊","木","⽋","欠","⽌","止","⽍","歹","⽎","殳","⽏","毋","⽐","比","⽑","毛","⽒","氏","⽓","气","⽔","水","⽕","火","⽖","爪","⽗","父","⽘","爻","⽙","爿","⽚","片","⽛","牙","⽜","牛","⽝","犬","⽞","玄","⽟","玉","⽠","瓜","⽡","瓦","⽢","甘","⽣","生","⽤","用","⽥","田","⽦","疋","⽧","疒","⽨","癶","⽩","白","⽪","皮","⽫","皿","⽬","目","⽭","矛","⽮","矢","⽯","石","⽰","示","⽱","禸","⽲","禾","⽳","穴","⽴","立","⽵","竹","⽶","米","⽷","糸","⽸","缶","⽹","网","⽺","羊","⽻","羽","⽼","老","⽽","而","⽾","耒","⽿","耳","⾀","聿","⾁","肉","⾂","臣","⾃","自","⾄","至","⾅","臼","⾆","舌","⾇","舛","⾈","舟","⾉","艮","⾊","色","⾋","艸","⾌","虍","⾍","虫","⾎","血","⾏","行","⾐","衣","⾑","襾","⾒","見","⾓","角","⾔","言","⾕","谷","⾖","豆","⾗","豕","⾘","豸","⾙","貝","⾚","赤","⾛","走","⾜","足","⾝","身","⾞","車","⾟","辛","⾠","辰","⾡","辵","⾢","邑","⾣","酉","⾤","釆","⾥","里","⾦","金","⾧","長","⾨","門","⾩","阜","⾪","隶","⾫","隹","⾬","雨","⾭","靑","⾮","非","⾯","面","⾰","革","⾱","韋","⾲","韭","⾳","音","⾴","頁","⾵","風","⾶","飛","⾷","食","⾸","首","⾹","香","⾺","馬","⾻","骨","⾼","高","⾽","髟","⾾","鬥","⾿","鬯","⿀","鬲","⿁","鬼","⿂","魚","⿃","鳥","⿄","鹵","⿅","鹿","⿆","麥","⿇","麻","⿈","黃","⿉","黍","⿊","黑","⿋","黹","⿌","黽","⿍","鼎","⿎","鼓","⿏","鼠","⿐","鼻","⿑","齊","⿒","齒","⿓","龍","⿔","龜","⿕","龠","〶","〒","〸","十","〹","卄","〺","卅","゛"," ゙","゜"," ゚","ㄱ","ᄀ","ㄲ","ᄁ","ㄳ","ᆪ","ㄴ","ᄂ","ㄵ","ᆬ","ㄶ","ᆭ","ㄷ","ᄃ","ㄸ","ᄄ","ㄹ","ᄅ","ㄺ","ᆰ","ㄻ","ᆱ","ㄼ","ᆲ","ㄽ","ᆳ","ㄾ","ᆴ","ㄿ","ᆵ","ㅀ","ᄚ","ㅁ","ᄆ","ㅂ","ᄇ","ㅃ","ᄈ","ㅄ","ᄡ","ㅅ","ᄉ","ㅆ","ᄊ","ㅇ","ᄋ","ㅈ","ᄌ","ㅉ","ᄍ","ㅊ","ᄎ","ㅋ","ᄏ","ㅌ","ᄐ","ㅍ","ᄑ","ㅎ","ᄒ","ㅏ","ᅡ","ㅐ","ᅢ","ㅑ","ᅣ","ㅒ","ᅤ","ㅓ","ᅥ","ㅔ","ᅦ","ㅕ","ᅧ","ㅖ","ᅨ","ㅗ","ᅩ","ㅘ","ᅪ","ㅙ","ᅫ","ㅚ","ᅬ","ㅛ","ᅭ","ㅜ","ᅮ","ㅝ","ᅯ","ㅞ","ᅰ","ㅟ","ᅱ","ㅠ","ᅲ","ㅡ","ᅳ","ㅢ","ᅴ","ㅣ","ᅵ","ㅤ","ᅠ","ㅥ","ᄔ","ㅦ","ᄕ","ㅧ","ᇇ","ㅨ","ᇈ","ㅩ","ᇌ","ㅪ","ᇎ","ㅫ","ᇓ","ㅬ","ᇗ","ㅭ","ᇙ","ㅮ","ᄜ","ㅯ","ᇝ","ㅰ","ᇟ","ㅱ","ᄝ","ㅲ","ᄞ","ㅳ","ᄠ","ㅴ","ᄢ","ㅵ","ᄣ","ㅶ","ᄧ","ㅷ","ᄩ","ㅸ","ᄫ","ㅹ","ᄬ","ㅺ","ᄭ","ㅻ","ᄮ","ㅼ","ᄯ","ㅽ","ᄲ","ㅾ","ᄶ","ㅿ","ᅀ","ㆀ","ᅇ","ㆁ","ᅌ","ㆂ","ᇱ","ㆃ","ᇲ","ㆄ","ᅗ","ㆅ","ᅘ","ㆆ","ᅙ","ㆇ","ᆄ","ㆈ","ᆅ","ㆉ","ᆈ","ㆊ","ᆑ","ㆋ","ᆒ","ㆌ","ᆔ","ㆍ","ᆞ","ㆎ","ᆡ","㈀","(ᄀ)","㈁","(ᄂ)","㈂","(ᄃ)","㈃","(ᄅ)","㈄","(ᄆ)","㈅","(ᄇ)","㈆","(ᄉ)","㈇","(ᄋ)","㈈","(ᄌ)","㈉","(ᄎ)","㈊","(ᄏ)","㈋","(ᄐ)","㈌","(ᄑ)","㈍","(ᄒ)","㈎","(가)","㈏","(나)","㈐","(다)","㈑","(라)","㈒","(마)","㈓","(바)","㈔","(사)","㈕","(아)","㈖","(자)","㈗","(차)","㈘","(카)","㈙","(타)","㈚","(파)","㈛","(하)","㈜","(주)","㈝","(오전)","㈞","(오후)","㈠","(一)","㈡","(二)","㈢","(三)","㈣","(四)","㈤","(五)","㈥","(六)","㈦","(七)","㈧","(八)","㈨","(九)","㈩","(十)","㈪","(月)","㈫","(火)","㈬","(水)","㈭","(木)","㈮","(金)","㈯","(土)","㈰","(日)","㈱","(株)","㈲","(有)","㈳","(社)","㈴","(名)","㈵","(特)","㈶","(財)","㈷","(祝)","㈸","(労)","㈹","(代)","㈺","(呼)","㈻","(学)","㈼","(監)","㈽","(企)","㈾","(資)","㈿","(協)","㉀","(祭)","㉁","(休)","㉂","(自)","㉃","(至)","㋀","1月","㋁","2月","㋂","3月","㋃","4月","㋄","5月","㋅","6月","㋆","7月","㋇","8月","㋈","9月","㋉","10月","㋊","11月","㋋","12月","㍘","0点","㍙","1点","㍚","2点","㍛","3点","㍜","4点","㍝","5点","㍞","6点","㍟","7点","㍠","8点","㍡","9点","㍢","10点","㍣","11点","㍤","12点","㍥","13点","㍦","14点","㍧","15点","㍨","16点","㍩","17点","㍪","18点","㍫","19点","㍬","20点","㍭","21点","㍮","22点","㍯","23点","㍰","24点","㏠","1日","㏡","2日","㏢","3日","㏣","4日","㏤","5日","㏥","6日","㏦","7日","㏧","8日","㏨","9日","㏩","10日","㏪","11日","㏫","12日","㏬","13日","㏭","14日","㏮","15日","㏯","16日","㏰","17日","㏱","18日","㏲","19日","㏳","20日","㏴","21日","㏵","22日","㏶","23日","㏷","24日","㏸","25日","㏹","26日","㏺","27日","㏻","28日","㏼","29日","㏽","30日","㏾","31日","ff","ff","fi","fi","fl","fl","ffi","ffi","ffl","ffl","ſt","ſt","st","st","ﬓ","մն","ﬔ","մե","ﬕ","մի","ﬖ","վն","ﬗ","մխ","ﭏ","אל","ﭐ","ٱ","ﭑ","ٱ","ﭒ","ٻ","ﭓ","ٻ","ﭔ","ٻ","ﭕ","ٻ","ﭖ","پ","ﭗ","پ","ﭘ","پ","ﭙ","پ","ﭚ","ڀ","ﭛ","ڀ","ﭜ","ڀ","ﭝ","ڀ","ﭞ","ٺ","ﭟ","ٺ","ﭠ","ٺ","ﭡ","ٺ","ﭢ","ٿ","ﭣ","ٿ","ﭤ","ٿ","ﭥ","ٿ","ﭦ","ٹ","ﭧ","ٹ","ﭨ","ٹ","ﭩ","ٹ","ﭪ","ڤ","ﭫ","ڤ","ﭬ","ڤ","ﭭ","ڤ","ﭮ","ڦ","ﭯ","ڦ","ﭰ","ڦ","ﭱ","ڦ","ﭲ","ڄ","ﭳ","ڄ","ﭴ","ڄ","ﭵ","ڄ","ﭶ","ڃ","ﭷ","ڃ","ﭸ","ڃ","ﭹ","ڃ","ﭺ","چ","ﭻ","چ","ﭼ","چ","ﭽ","چ","ﭾ","ڇ","ﭿ","ڇ","ﮀ","ڇ","ﮁ","ڇ","ﮂ","ڍ","ﮃ","ڍ","ﮄ","ڌ","ﮅ","ڌ","ﮆ","ڎ","ﮇ","ڎ","ﮈ","ڈ","ﮉ","ڈ","ﮊ","ژ","ﮋ","ژ","ﮌ","ڑ","ﮍ","ڑ","ﮎ","ک","ﮏ","ک","ﮐ","ک","ﮑ","ک","ﮒ","گ","ﮓ","گ","ﮔ","گ","ﮕ","گ","ﮖ","ڳ","ﮗ","ڳ","ﮘ","ڳ","ﮙ","ڳ","ﮚ","ڱ","ﮛ","ڱ","ﮜ","ڱ","ﮝ","ڱ","ﮞ","ں","ﮟ","ں","ﮠ","ڻ","ﮡ","ڻ","ﮢ","ڻ","ﮣ","ڻ","ﮤ","ۀ","ﮥ","ۀ","ﮦ","ہ","ﮧ","ہ","ﮨ","ہ","ﮩ","ہ","ﮪ","ھ","ﮫ","ھ","ﮬ","ھ","ﮭ","ھ","ﮮ","ے","ﮯ","ے","ﮰ","ۓ","ﮱ","ۓ","ﯓ","ڭ","ﯔ","ڭ","ﯕ","ڭ","ﯖ","ڭ","ﯗ","ۇ","ﯘ","ۇ","ﯙ","ۆ","ﯚ","ۆ","ﯛ","ۈ","ﯜ","ۈ","ﯝ","ٷ","ﯞ","ۋ","ﯟ","ۋ","ﯠ","ۅ","ﯡ","ۅ","ﯢ","ۉ","ﯣ","ۉ","ﯤ","ې","ﯥ","ې","ﯦ","ې","ﯧ","ې","ﯨ","ى","ﯩ","ى","ﯪ","ئا","ﯫ","ئا","ﯬ","ئە","ﯭ","ئە","ﯮ","ئو","ﯯ","ئو","ﯰ","ئۇ","ﯱ","ئۇ","ﯲ","ئۆ","ﯳ","ئۆ","ﯴ","ئۈ","ﯵ","ئۈ","ﯶ","ئې","ﯷ","ئې","ﯸ","ئې","ﯹ","ئى","ﯺ","ئى","ﯻ","ئى","ﯼ","ی","ﯽ","ی","ﯾ","ی","ﯿ","ی","ﰀ","ئج","ﰁ","ئح","ﰂ","ئم","ﰃ","ئى","ﰄ","ئي","ﰅ","بج","ﰆ","بح","ﰇ","بخ","ﰈ","بم","ﰉ","بى","ﰊ","بي","ﰋ","تج","ﰌ","تح","ﰍ","تخ","ﰎ","تم","ﰏ","تى","ﰐ","تي","ﰑ","ثج","ﰒ","ثم","ﰓ","ثى","ﰔ","ثي","ﰕ","جح","ﰖ","جم","ﰗ","حج","ﰘ","حم","ﰙ","خج","ﰚ","خح","ﰛ","خم","ﰜ","سج","ﰝ","سح","ﰞ","سخ","ﰟ","سم","ﰠ","صح","ﰡ","صم","ﰢ","ضج","ﰣ","ضح","ﰤ","ضخ","ﰥ","ضم","ﰦ","طح","ﰧ","طم","ﰨ","ظم","ﰩ","عج","ﰪ","عم","ﰫ","غج","ﰬ","غم","ﰭ","فج","ﰮ","فح","ﰯ","فخ","ﰰ","فم","ﰱ","فى","ﰲ","في","ﰳ","قح","ﰴ","قم","ﰵ","قى","ﰶ","قي","ﰷ","كا","ﰸ","كج","ﰹ","كح","ﰺ","كخ","ﰻ","كل","ﰼ","كم","ﰽ","كى","ﰾ","كي","ﰿ","لج","ﱀ","لح","ﱁ","لخ","ﱂ","لم","ﱃ","لى","ﱄ","لي","ﱅ","مج","ﱆ","مح","ﱇ","مخ","ﱈ","مم","ﱉ","مى","ﱊ","مي","ﱋ","نج","ﱌ","نح","ﱍ","نخ","ﱎ","نم","ﱏ","نى","ﱐ","ني","ﱑ","هج","ﱒ","هم","ﱓ","هى","ﱔ","هي","ﱕ","يج","ﱖ","يح","ﱗ","يخ","ﱘ","يم","ﱙ","يى","ﱚ","يي","ﱛ","ذٰ","ﱜ","رٰ","ﱝ","ىٰ","ﱞ"," ٌّ","ﱟ"," ٍّ","ﱠ"," َّ","ﱡ"," ُّ","ﱢ"," ِّ","ﱣ"," ّٰ","ﱤ","ئر","ﱥ","ئز","ﱦ","ئم","ﱧ","ئن","ﱨ","ئى","ﱩ","ئي","ﱪ","بر","ﱫ","بز","ﱬ","بم","ﱭ","بن","ﱮ","بى","ﱯ","بي","ﱰ","تر","ﱱ","تز","ﱲ","تم","ﱳ","تن","ﱴ","تى","ﱵ","تي","ﱶ","ثر","ﱷ","ثز","ﱸ","ثم","ﱹ","ثن","ﱺ","ثى","ﱻ","ثي","ﱼ","فى","ﱽ","في","ﱾ","قى","ﱿ","قي","ﲀ","كا","ﲁ","كل","ﲂ","كم","ﲃ","كى","ﲄ","كي","ﲅ","لم","ﲆ","لى","ﲇ","لي","ﲈ","ما","ﲉ","مم","ﲊ","نر","ﲋ","نز","ﲌ","نم","ﲍ","نن","ﲎ","نى","ﲏ","ني","ﲐ","ىٰ","ﲑ","ير","ﲒ","يز","ﲓ","يم","ﲔ","ين","ﲕ","يى","ﲖ","يي","ﲗ","ئج","ﲘ","ئح","ﲙ","ئخ","ﲚ","ئم","ﲛ","ئه","ﲜ","بج","ﲝ","بح","ﲞ","بخ","ﲟ","بم","ﲠ","به","ﲡ","تج","ﲢ","تح","ﲣ","تخ","ﲤ","تم","ﲥ","ته","ﲦ","ثم","ﲧ","جح","ﲨ","جم","ﲩ","حج","ﲪ","حم","ﲫ","خج","ﲬ","خم","ﲭ","سج","ﲮ","سح","ﲯ","سخ","ﲰ","سم","ﲱ","صح","ﲲ","صخ","ﲳ","صم","ﲴ","ضج","ﲵ","ضح","ﲶ","ضخ","ﲷ","ضم","ﲸ","طح","ﲹ","ظم","ﲺ","عج","ﲻ","عم","ﲼ","غج","ﲽ","غم","ﲾ","فج","ﲿ","فح","ﳀ","فخ","ﳁ","فم","ﳂ","قح","ﳃ","قم","ﳄ","كج","ﳅ","كح","ﳆ","كخ","ﳇ","كل","ﳈ","كم","ﳉ","لج","ﳊ","لح","ﳋ","لخ","ﳌ","لم","ﳍ","له","ﳎ","مج","ﳏ","مح","ﳐ","مخ","ﳑ","مم","ﳒ","نج","ﳓ","نح","ﳔ","نخ","ﳕ","نم","ﳖ","نه","ﳗ","هج","ﳘ","هم","ﳙ","هٰ","ﳚ","يج","ﳛ","يح","ﳜ","يخ","ﳝ","يم","ﳞ","يه","ﳟ","ئم","ﳠ","ئه","ﳡ","بم","ﳢ","به","ﳣ","تم","ﳤ","ته","ﳥ","ثم","ﳦ","ثه","ﳧ","سم","ﳨ","سه","ﳩ","شم","ﳪ","شه","ﳫ","كل","ﳬ","كم","ﳭ","لم","ﳮ","نم","ﳯ","نه","ﳰ","يم","ﳱ","يه","ﳲ","ـَّ","ﳳ","ـُّ","ﳴ","ـِّ","ﳵ","طى","ﳶ","طي","ﳷ","عى","ﳸ","عي","ﳹ","غى","ﳺ","غي","ﳻ","سى","ﳼ","سي","ﳽ","شى","ﳾ","شي","ﳿ","حى","ﴀ","حي","ﴁ","جى","ﴂ","جي","ﴃ","خى","ﴄ","خي","ﴅ","صى","ﴆ","صي","ﴇ","ضى","ﴈ","ضي","ﴉ","شج","ﴊ","شح","ﴋ","شخ","ﴌ","شم","ﴍ","شر","ﴎ","سر","ﴏ","صر","ﴐ","ضر","ﴑ","طى","ﴒ","طي","ﴓ","عى","ﴔ","عي","ﴕ","غى","ﴖ","غي","ﴗ","سى","ﴘ","سي","ﴙ","شى","ﴚ","شي","ﴛ","حى","ﴜ","حي","ﴝ","جى","ﴞ","جي","ﴟ","خى","ﴠ","خي","ﴡ","صى","ﴢ","صي","ﴣ","ضى","ﴤ","ضي","ﴥ","شج","ﴦ","شح","ﴧ","شخ","ﴨ","شم","ﴩ","شر","ﴪ","سر","ﴫ","صر","ﴬ","ضر","ﴭ","شج","ﴮ","شح","ﴯ","شخ","ﴰ","شم","ﴱ","سه","ﴲ","شه","ﴳ","طم","ﴴ","سج","ﴵ","سح","ﴶ","سخ","ﴷ","شج","ﴸ","شح","ﴹ","شخ","ﴺ","طم","ﴻ","ظم","ﴼ","اً","ﴽ","اً","ﵐ","تجم","ﵑ","تحج","ﵒ","تحج","ﵓ","تحم","ﵔ","تخم","ﵕ","تمج","ﵖ","تمح","ﵗ","تمخ","ﵘ","جمح","ﵙ","جمح","ﵚ","حمي","ﵛ","حمى","ﵜ","سحج","ﵝ","سجح","ﵞ","سجى","ﵟ","سمح","ﵠ","سمح","ﵡ","سمج","ﵢ","سمم","ﵣ","سمم","ﵤ","صحح","ﵥ","صحح","ﵦ","صمم","ﵧ","شحم","ﵨ","شحم","ﵩ","شجي","ﵪ","شمخ","ﵫ","شمخ","ﵬ","شمم","ﵭ","شمم","ﵮ","ضحى","ﵯ","ضخم","ﵰ","ضخم","ﵱ","طمح","ﵲ","طمح","ﵳ","طمم","ﵴ","طمي","ﵵ","عجم","ﵶ","عمم","ﵷ","عمم","ﵸ","عمى","ﵹ","غمم","ﵺ","غمي","ﵻ","غمى","ﵼ","فخم","ﵽ","فخم","ﵾ","قمح","ﵿ","قمم","ﶀ","لحم","ﶁ","لحي","ﶂ","لحى","ﶃ","لجج","ﶄ","لجج","ﶅ","لخم","ﶆ","لخم","ﶇ","لمح","ﶈ","لمح","ﶉ","محج","ﶊ","محم","ﶋ","محي","ﶌ","مجح","ﶍ","مجم","ﶎ","مخج","ﶏ","مخم","ﶒ","مجخ","ﶓ","همج","ﶔ","همم","ﶕ","نحم","ﶖ","نحى","ﶗ","نجم","ﶘ","نجم","ﶙ","نجى","ﶚ","نمي","ﶛ","نمى","ﶜ","يمم","ﶝ","يمم","ﶞ","بخي","ﶟ","تجي","ﶠ","تجى","ﶡ","تخي","ﶢ","تخى","ﶣ","تمي","ﶤ","تمى","ﶥ","جمي","ﶦ","جحى","ﶧ","جمى","ﶨ","سخى","ﶩ","صحي","ﶪ","شحي","ﶫ","ضحي","ﶬ","لجي","ﶭ","لمي","ﶮ","يحي","ﶯ","يجي","ﶰ","يمي","ﶱ","ممي","ﶲ","قمي","ﶳ","نحي","ﶴ","قمح","ﶵ","لحم","ﶶ","عمي","ﶷ","كمي","ﶸ","نجح","ﶹ","مخي","ﶺ","لجم","ﶻ","كمم","ﶼ","لجم","ﶽ","نجح","ﶾ","جحي","ﶿ","حجي","ﷀ","مجي","ﷁ","فمي","ﷂ","بحي","ﷃ","كمم","ﷄ","عجم","ﷅ","صمم","ﷆ","سخي","ﷇ","نجي","﹉","‾","﹊","‾","﹋","‾","﹌","‾","﹍","_","﹎","_","﹏","_","ﺀ","ء","ﺁ","آ","ﺂ","آ","ﺃ","أ","ﺄ","أ","ﺅ","ؤ","ﺆ","ؤ","ﺇ","إ","ﺈ","إ","ﺉ","ئ","ﺊ","ئ","ﺋ","ئ","ﺌ","ئ","ﺍ","ا","ﺎ","ا","ﺏ","ب","ﺐ","ب","ﺑ","ب","ﺒ","ب","ﺓ","ة","ﺔ","ة","ﺕ","ت","ﺖ","ت","ﺗ","ت","ﺘ","ت","ﺙ","ث","ﺚ","ث","ﺛ","ث","ﺜ","ث","ﺝ","ج","ﺞ","ج","ﺟ","ج","ﺠ","ج","ﺡ","ح","ﺢ","ح","ﺣ","ح","ﺤ","ح","ﺥ","خ","ﺦ","خ","ﺧ","خ","ﺨ","خ","ﺩ","د","ﺪ","د","ﺫ","ذ","ﺬ","ذ","ﺭ","ر","ﺮ","ر","ﺯ","ز","ﺰ","ز","ﺱ","س","ﺲ","س","ﺳ","س","ﺴ","س","ﺵ","ش","ﺶ","ش","ﺷ","ش","ﺸ","ش","ﺹ","ص","ﺺ","ص","ﺻ","ص","ﺼ","ص","ﺽ","ض","ﺾ","ض","ﺿ","ض","ﻀ","ض","ﻁ","ط","ﻂ","ط","ﻃ","ط","ﻄ","ط","ﻅ","ظ","ﻆ","ظ","ﻇ","ظ","ﻈ","ظ","ﻉ","ع","ﻊ","ع","ﻋ","ع","ﻌ","ع","ﻍ","غ","ﻎ","غ","ﻏ","غ","ﻐ","غ","ﻑ","ف","ﻒ","ف","ﻓ","ف","ﻔ","ف","ﻕ","ق","ﻖ","ق","ﻗ","ق","ﻘ","ق","ﻙ","ك","ﻚ","ك","ﻛ","ك","ﻜ","ك","ﻝ","ل","ﻞ","ل","ﻟ","ل","ﻠ","ل","ﻡ","م","ﻢ","م","ﻣ","م","ﻤ","م","ﻥ","ن","ﻦ","ن","ﻧ","ن","ﻨ","ن","ﻩ","ه","ﻪ","ه","ﻫ","ه","ﻬ","ه","ﻭ","و","ﻮ","و","ﻯ","ى","ﻰ","ى","ﻱ","ي","ﻲ","ي","ﻳ","ي","ﻴ","ي","ﻵ","لآ","ﻶ","لآ","ﻷ","لأ","ﻸ","لأ","ﻹ","لإ","ﻺ","لإ","ﻻ","لا","ﻼ","لا"]}));function reverseIfRtl(t){const r=t.length;if(r<=1||!function isRTLRangeFor(t){let r=u[13];if(t>=r.begin&&t<r.end)return!0;r=u[11];return t>=r.begin&&t<r.end}(t.charCodeAt(0)))return t;const o=[];for(let l=r-1;l>=0;l--)o.push(t[l]);return o.join("")}},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.getQuadPoints=getQuadPoints;r.MarkupAnnotation=r.AnnotationFactory=r.AnnotationBorderStyle=r.Annotation=void 0;var l=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(o(2)),c=o(4),u=o(122),h=o(136),d=o(118),m=o(172),g=o(177),y=o(137),v=o(179),S=o(183),_=o(175),k=o(123),C=o(184);function _get(t,r,o){_get="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function _get(t,r,o){var l=function _superPropBase(t,r){for(;!Object.prototype.hasOwnProperty.call(t,r)&&null!==(t=_getPrototypeOf(t)););return t}(t,r);if(l){var c=Object.getOwnPropertyDescriptor(l,r);return c.get?c.get.call(o):c.value}};return _get(t,r,o||t)}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}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 u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function asyncGeneratorStep(t,r,o,l,c,u,h){try{var d=t[u](h),m=d.value}catch(t){o(t);return}d.done?r(m):Promise.resolve(m).then(l,c)}function _asyncToGenerator(t){return function(){var r=this,o=arguments;return new Promise((function(l,c){var u=t.apply(r,o);function _next(t){asyncGeneratorStep(u,l,c,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(u,l,c,_next,_throw,"throw",t)}_next(void 0)}))}}function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||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 _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var w=function(){function AnnotationFactory(){_classCallCheck(this,AnnotationFactory)}_createClass(AnnotationFactory,null,[{key:"create",value:function create(t,r,o,l,c){var u=this;return Promise.all([o.ensureCatalog("acroForm"),c?this._getPageIndex(t,r,o):-1]).then((function(h){var d=_slicedToArray(h,2),m=d[0],g=d[1];return o.ensure(u,"_create",[t,r,o,l,m,c,g])}))}},{key:"_create",value:function _create(t,r,o,l,h,m){var g=arguments.length>6&&void 0!==arguments[6]?arguments[6]:-1,y=t.fetchIfRef(r);if((0,d.isDict)(y)){var v=(0,d.isRef)(r)?r.toString():"annot_".concat(l.createObjId()),S=y.get("Subtype"),_={xref:t,ref:r,dict:y,subtype:S=(0,d.isName)(S)?S.name:null,id:v,pdfManager:o,acroForm:h instanceof d.Dict?h:d.Dict.empty,collectFields:m,pageIndex:g};switch(S){case"Link":return new N(_);case"Text":return new L(_);case"Widget":var k=(0,u.getInheritableProperty)({dict:y,key:"FT"});switch(k=(0,d.isName)(k)?k.name:null){case"Tx":return new E(_);case"Btn":return new M(_);case"Ch":return new D(_);case"Sig":return new j(_)}(0,c.warn)('Unimplemented widget field type "'.concat(k,'", ')+"falling back to base field type.");return new R(_);case"Popup":return new U(_);case"FreeText":return new H(_);case"Line":return new W(_);case"Square":return new $(_);case"Circle":return new q(_);case"PolyLine":return new X(_);case"Polygon":return new z(_);case"Caret":return new G(_);case"Ink":return new V(_);case"Highlight":return new Y(_);case"Underline":return new K(_);case"Squiggly":return new J(_);case"StrikeOut":return new Q(_);case"Stamp":return new Z(_);case"FileAttachment":return new ee(_);default:m||(S?(0,c.warn)('Unimplemented annotation type "'.concat(S,'", ')+"falling back to base annotation."):(0,c.warn)("Annotation is missing the required /Subtype."));return new x(_)}}}},{key:"_getPageIndex",value:(t=_asyncToGenerator(l.default.mark((function _callee(t,r,o){var u,h,m;return l.default.wrap((function _callee$(l){for(;;)switch(l.prev=l.next){case 0:l.prev=0;l.next=3;return t.fetchIfRefAsync(r);case 3:u=l.sent;if((0,d.isDict)(u)){l.next=6;break}return l.abrupt("return",-1);case 6:h=u.getRaw("P");if((0,d.isRef)(h)){l.next=9;break}return l.abrupt("return",-1);case 9:l.next=11;return o.ensureCatalog("getPageIndex",[h]);case 11:m=l.sent;return l.abrupt("return",m);case 15:l.prev=15;l.t0=l.catch(0);(0,c.warn)('_getPageIndex: "'.concat(l.t0,'".'));return l.abrupt("return",-1);case 19:case"end":return l.stop()}}),_callee,null,[[0,15]])}))),function _getPageIndex(r,o,l){return t.apply(this,arguments)})}]);var t;return AnnotationFactory}();r.AnnotationFactory=w;function getRgbColor(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Uint8ClampedArray(3);if(!Array.isArray(t))return r;var o=r||new Uint8ClampedArray(3);switch(t.length){case 0:return null;case 1:y.ColorSpace.singletons.gray.getRgbItem(t,0,o,0);return o;case 3:y.ColorSpace.singletons.rgb.getRgbItem(t,0,o,0);return o;case 4:y.ColorSpace.singletons.cmyk.getRgbItem(t,0,o,0);return o;default:return r}}function getQuadPoints(t,r){if(!t.has("QuadPoints"))return null;var o=t.getArray("QuadPoints");if(!Array.isArray(o)||0===o.length||o.length%8>0)return null;for(var l=[],c=0,u=o.length/8;c<u;c++){l.push([]);for(var h=8*c,d=8*c+8;h<d;h+=2){var m=o[h],g=o[h+1];if(null!==r&&(m<r[0]||m>r[2]||g<r[1]||g>r[3]))return null;l[c].push({x:m,y:g})}}return l.map((function(t){var r=t.reduce((function(t,r){var o=_slicedToArray(t,4),l=o[0],c=o[1],u=o[2],h=o[3];return[Math.min(l,r.x),Math.max(c,r.x),Math.min(u,r.y),Math.max(h,r.y)]}),[Number.MAX_VALUE,Number.MIN_VALUE,Number.MAX_VALUE,Number.MIN_VALUE]),o=_slicedToArray(r,4),l=o[0],c=o[1],u=o[2],h=o[3];return[{x:l,y:h},{x:c,y:h},{x:l,y:u},{x:c,y:u}]}))}function getTransformMatrix(t,r,o){var l=_slicedToArray(c.Util.getAxialAlignedBoundingBox(r,o),4),u=l[0],h=l[1],d=l[2],m=l[3];if(u===d||h===m)return[1,0,0,1,t[0],t[1]];var g=(t[2]-t[0])/(d-u),y=(t[3]-t[1])/(m-h);return[g,0,0,y,t[0]-u*g,t[1]-h*y]}var x=function(){function Annotation(t){_classCallCheck(this,Annotation);var r=t.dict;this.setTitle(r.get("T"));this.setContents(r.get("Contents"));this.setModificationDate(r.get("M"));this.setFlags(r.get("F"));this.setRectangle(r.getArray("Rect"));this.setColor(r.getArray("C"));this.setBorderStyle(r);this.setAppearance(r);this.setBorderAndBackgroundColors(r.get("MK"));this._streams=[];this.appearance&&this._streams.push(this.appearance);this.data={annotationFlags:this.flags,borderStyle:this.borderStyle,color:this.color,backgroundColor:this.backgroundColor,borderColor:this.borderColor,contentsObj:this._contents,hasAppearance:!!this.appearance,id:t.id,modificationDate:this.modificationDate,rect:this.rectangle,subtype:t.subtype};if(t.collectFields){var o=r.get("Kids");if(Array.isArray(o)){var l,h=[],m=_createForOfIteratorHelper(o);try{for(m.s();!(l=m.n()).done;){var g=l.value;(0,d.isRef)(g)&&h.push(g.toString())}}catch(t){m.e(t)}finally{m.f()}0!==h.length&&(this.data.kidIds=h)}this.data.actions=(0,u.collectActions)(t.xref,r,c.AnnotationActionEventType);this.data.fieldName=this._constructFieldName(r);this.data.pageIndex=t.pageIndex}this._fallbackFontDict=null}_createClass(Annotation,[{key:"_hasFlag",value:function _hasFlag(t,r){return!!(t&r)}},{key:"_isViewable",value:function _isViewable(t){return!this._hasFlag(t,c.AnnotationFlag.INVISIBLE)&&!this._hasFlag(t,c.AnnotationFlag.NOVIEW)}},{key:"_isPrintable",value:function _isPrintable(t){return this._hasFlag(t,c.AnnotationFlag.PRINT)&&!this._hasFlag(t,c.AnnotationFlag.INVISIBLE)}},{key:"mustBeViewed",value:function mustBeViewed(t){var r=t&&t.get(this.data.id);return r&&void 0!==r.hidden?!r.hidden:this.viewable&&!this._hasFlag(this.flags,c.AnnotationFlag.HIDDEN)}},{key:"mustBePrinted",value:function mustBePrinted(t){var r=t&&t.get(this.data.id);return r&&void 0!==r.print?r.print:this.printable}},{key:"viewable",get:function get(){return null!==this.data.quadPoints&&(0===this.flags||this._isViewable(this.flags))}},{key:"printable",get:function get(){return null!==this.data.quadPoints&&(0!==this.flags&&this._isPrintable(this.flags))}},{key:"_parseStringHelper",value:function _parseStringHelper(t){var r="string"==typeof t?(0,c.stringToPDFString)(t):"";return{str:r,dir:r&&"rtl"===(0,m.bidi)(r).dir?"rtl":"ltr"}}},{key:"setTitle",value:function setTitle(t){this._title=this._parseStringHelper(t)}},{key:"setContents",value:function setContents(t){this._contents=this._parseStringHelper(t)}},{key:"setModificationDate",value:function setModificationDate(t){this.modificationDate=(0,c.isString)(t)?t:null}},{key:"setFlags",value:function setFlags(t){this.flags=Number.isInteger(t)&&t>0?t:0}},{key:"hasFlag",value:function hasFlag(t){return this._hasFlag(this.flags,t)}},{key:"setRectangle",value:function setRectangle(t){Array.isArray(t)&&4===t.length?this.rectangle=c.Util.normalizeRect(t):this.rectangle=[0,0,0,0]}},{key:"setColor",value:function setColor(t){this.color=getRgbColor(t)}},{key:"setBorderAndBackgroundColors",value:function setBorderAndBackgroundColors(t){if(t instanceof d.Dict){this.borderColor=getRgbColor(t.getArray("BC"),null);this.backgroundColor=getRgbColor(t.getArray("BG"),null)}else this.borderColor=this.backgroundColor=null}},{key:"setBorderStyle",value:function setBorderStyle(t){this.borderStyle=new O;if((0,d.isDict)(t))if(t.has("BS")){var r=t.get("BS"),o=r.get("Type");if(!o||(0,d.isName)(o,"Border")){this.borderStyle.setWidth(r.get("W"),this.rectangle);this.borderStyle.setStyle(r.get("S"));this.borderStyle.setDashArray(r.getArray("D"))}}else if(t.has("Border")){var l=t.getArray("Border");if(Array.isArray(l)&&l.length>=3){this.borderStyle.setHorizontalCornerRadius(l[0]);this.borderStyle.setVerticalCornerRadius(l[1]);this.borderStyle.setWidth(l[2],this.rectangle);4===l.length&&this.borderStyle.setDashArray(l[3])}}else this.borderStyle.setWidth(0)}},{key:"setAppearance",value:function setAppearance(t){this.appearance=null;var r=t.get("AP");if((0,d.isDict)(r)){var o=r.get("N");if((0,d.isStream)(o))this.appearance=o;else if((0,d.isDict)(o)){var l=t.get("AS");(0,d.isName)(l)&&o.has(l.name)&&(this.appearance=o.get(l.name))}}}},{key:"loadResources",value:function loadResources(t){return this.appearance.dict.getAsync("Resources").then((function(r){if(r){return new S.ObjectLoader(r,t,r.xref).load().then((function(){return r}))}}))}},{key:"getOperatorList",value:function getOperatorList(t,r,o,l){var u=this;if(!this.appearance)return Promise.resolve(new _.OperatorList);var h=this.appearance,d=this.data,m=h.dict,g=this.loadResources(["ExtGState","ColorSpace","Pattern","Shading","XObject","Font"]),y=m.getArray("BBox")||[0,0,1,1],v=m.getArray("Matrix")||[1,0,0,1,0,0],S=getTransformMatrix(d.rect,y,v);return g.then((function(o){var l=new _.OperatorList;l.addOp(c.OPS.beginAnnotation,[d.id,d.rect,S,v]);return t.getOperatorList({stream:h,task:r,resources:o,operatorList:l,fallbackFontDict:u._fallbackFontDict}).then((function(){l.addOp(c.OPS.endAnnotation,[]);u.reset();return l}))}))}},{key:"save",value:(t=_asyncToGenerator(l.default.mark((function _callee2(t,r,o){return l.default.wrap((function _callee2$(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",null);case 1:case"end":return t.stop()}}),_callee2)}))),function save(r,o,l){return t.apply(this,arguments)})},{key:"getFieldObject",value:function getFieldObject(){return this.data.kidIds?{id:this.data.id,actions:this.data.actions,name:this.data.fieldName,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,type:"",kidIds:this.data.kidIds,page:this.data.pageIndex}:null}},{key:"reset",value:function reset(){var t,r=_createForOfIteratorHelper(this._streams);try{for(r.s();!(t=r.n()).done;){t.value.reset()}}catch(t){r.e(t)}finally{r.f()}}},{key:"_constructFieldName",value:function _constructFieldName(t){if(!t.has("T")&&!t.has("Parent")){(0,c.warn)("Unknown field name, falling back to empty field name.");return""}if(!t.has("Parent"))return(0,c.stringToPDFString)(t.get("T"));var r=[];t.has("T")&&r.unshift((0,c.stringToPDFString)(t.get("T")));var o=t,l=new d.RefSet;t.objId&&l.put(t.objId);for(;o.has("Parent")&&(o=o.get("Parent"))instanceof d.Dict&&(!o.objId||!l.has(o.objId));){o.objId&&l.put(o.objId);o.has("T")&&r.unshift((0,c.stringToPDFString)(o.get("T")))}return r.join(".")}}]);var t;return Annotation}();r.Annotation=x;var O=function(){function AnnotationBorderStyle(){_classCallCheck(this,AnnotationBorderStyle);this.width=1;this.style=c.AnnotationBorderStyleType.SOLID;this.dashArray=[3];this.horizontalCornerRadius=0;this.verticalCornerRadius=0}_createClass(AnnotationBorderStyle,[{key:"setWidth",value:function setWidth(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0,0,0,0];if((0,d.isName)(t))this.width=0;else if(Number.isInteger(t)){if(t>0){var o=(r[2]-r[0])/2,l=(r[3]-r[1])/2;if(o>0&&l>0&&(t>o||t>l)){(0,c.warn)("AnnotationBorderStyle.setWidth - ignoring width: ".concat(t));t=1}}this.width=t}}},{key:"setStyle",value:function setStyle(t){if((0,d.isName)(t))switch(t.name){case"S":this.style=c.AnnotationBorderStyleType.SOLID;break;case"D":this.style=c.AnnotationBorderStyleType.DASHED;break;case"B":this.style=c.AnnotationBorderStyleType.BEVELED;break;case"I":this.style=c.AnnotationBorderStyleType.INSET;break;case"U":this.style=c.AnnotationBorderStyleType.UNDERLINE}}},{key:"setDashArray",value:function setDashArray(t){if(Array.isArray(t)&&t.length>0){var r,o=!0,l=!0,c=_createForOfIteratorHelper(t);try{for(c.s();!(r=c.n()).done;){var u=r.value;if(!(+u>=0)){o=!1;break}u>0&&(l=!1)}}catch(t){c.e(t)}finally{c.f()}o&&!l?this.dashArray=t:this.width=0}else t&&(this.width=0)}},{key:"setHorizontalCornerRadius",value:function setHorizontalCornerRadius(t){Number.isInteger(t)&&(this.horizontalCornerRadius=t)}},{key:"setVerticalCornerRadius",value:function setVerticalCornerRadius(t){Number.isInteger(t)&&(this.verticalCornerRadius=t)}}]);return AnnotationBorderStyle}();r.AnnotationBorderStyle=O;var T=function(t){_inherits(MarkupAnnotation,t);var r=_createSuper(MarkupAnnotation);function MarkupAnnotation(t){var o;_classCallCheck(this,MarkupAnnotation);o=r.call(this,t);var l=t.dict;if(l.has("IRT")){var u=l.getRaw("IRT");o.data.inReplyTo=(0,d.isRef)(u)?u.toString():null;var h=l.get("RT");o.data.replyType=(0,d.isName)(h)?h.name:c.AnnotationReplyType.REPLY}if(o.data.replyType===c.AnnotationReplyType.GROUP){var m=l.get("IRT");o.setTitle(m.get("T"));o.data.titleObj=o._title;o.setContents(m.get("Contents"));o.data.contentsObj=o._contents;if(m.has("CreationDate")){o.setCreationDate(m.get("CreationDate"));o.data.creationDate=o.creationDate}else o.data.creationDate=null;if(m.has("M")){o.setModificationDate(m.get("M"));o.data.modificationDate=o.modificationDate}else o.data.modificationDate=null;o.data.hasPopup=m.has("Popup");if(m.has("C")){o.setColor(m.getArray("C"));o.data.color=o.color}else o.data.color=null}else{o.data.titleObj=o._title;o.setCreationDate(l.get("CreationDate"));o.data.creationDate=o.creationDate;o.data.hasPopup=l.has("Popup");l.has("C")||(o.data.color=null)}return o}_createClass(MarkupAnnotation,[{key:"setCreationDate",value:function setCreationDate(t){this.creationDate=(0,c.isString)(t)?t:null}},{key:"_setDefaultAppearance",value:function _setDefaultAppearance(t){var r=t.xref,o=t.extra,l=t.strokeColor,c=t.fillColor,u=t.blendMode,h=t.strokeAlpha,m=t.fillAlpha,g=t.pointsCallback,y=Number.MAX_VALUE,v=Number.MAX_VALUE,S=Number.MIN_VALUE,_=Number.MIN_VALUE,C=["q"];o&&C.push(o);l&&C.push("".concat(l[0]," ").concat(l[1]," ").concat(l[2]," RG"));c&&C.push("".concat(c[0]," ").concat(c[1]," ").concat(c[2]," rg"));var w=this.data.quadPoints;w||(w=[[{x:this.rectangle[0],y:this.rectangle[3]},{x:this.rectangle[2],y:this.rectangle[3]},{x:this.rectangle[0],y:this.rectangle[1]},{x:this.rectangle[2],y:this.rectangle[1]}]]);var x,O=_createForOfIteratorHelper(w);try{for(O.s();!(x=O.n()).done;){var T=_slicedToArray(g(C,x.value),4),R=T[0],E=T[1],M=T[2],D=T[3];y=Math.min(y,R);S=Math.max(S,E);v=Math.min(v,M);_=Math.max(_,D)}}catch(t){O.e(t)}finally{O.f()}C.push("Q");var j=new d.Dict(r),L=new d.Dict(r);L.set("Subtype",d.Name.get("Form"));var N=new k.StringStream(C.join(" "));N.dict=L;j.set("Fm0",N);var U=new d.Dict(r);u&&U.set("BM",d.Name.get(u));"number"==typeof h&&U.set("CA",h);"number"==typeof m&&U.set("ca",m);var H=new d.Dict(r);H.set("GS0",U);var W=new d.Dict(r);W.set("ExtGState",H);W.set("XObject",j);var $=new d.Dict(r);$.set("Resources",W);var q=this.data.rect=[y,v,S,_];$.set("BBox",q);this.appearance=new k.StringStream("/GS0 gs /Fm0 Do");this.appearance.dict=$;this._streams.push(this.appearance,N)}}]);return MarkupAnnotation}(x);r.MarkupAnnotation=T;var R=function(t){_inherits(WidgetAnnotation,t);var r,o,m,g=_createSuper(WidgetAnnotation);function WidgetAnnotation(t){var r;_classCallCheck(this,WidgetAnnotation);r=g.call(this,t);var o=t.dict,l=r.data;r.ref=t.ref;l.annotationType=c.AnnotationType.WIDGET;void 0===l.fieldName&&(l.fieldName=r._constructFieldName(o));void 0===l.actions&&(l.actions=(0,u.collectActions)(t.xref,o,c.AnnotationActionEventType));var m=(0,u.getInheritableProperty)({dict:o,key:"V",getArray:!0});l.fieldValue=r._decodeFormValue(m);var y=(0,u.getInheritableProperty)({dict:o,key:"DV",getArray:!0});l.defaultFieldValue=r._decodeFormValue(y);void 0===m&&null!==l.defaultFieldValue&&(l.fieldValue=l.defaultFieldValue);l.alternativeText=(0,c.stringToPDFString)(o.get("TU")||"");var v=(0,u.getInheritableProperty)({dict:o,key:"DA"})||t.acroForm.get("DA");r._defaultAppearance=(0,c.isString)(v)?v:"";l.defaultAppearanceData=(0,h.parseDefaultAppearance)(r._defaultAppearance);var S=(0,u.getInheritableProperty)({dict:o,key:"FT"});l.fieldType=(0,d.isName)(S)?S.name:null;var _=(0,u.getInheritableProperty)({dict:o,key:"DR"}),k=t.acroForm.get("DR"),C=r.appearance&&r.appearance.dict.get("Resources");r._fieldResources={localResources:_,acroFormResources:k,appearanceResources:C,mergedResources:d.Dict.merge({xref:t.xref,dictArray:[_,C,k],mergeSubDicts:!0})};l.fieldFlags=(0,u.getInheritableProperty)({dict:o,key:"Ff"});(!Number.isInteger(l.fieldFlags)||l.fieldFlags<0)&&(l.fieldFlags=0);l.readOnly=r.hasFieldFlag(c.AnnotationFieldFlag.READONLY);l.hidden=r._hasFlag(l.annotationFlags,c.AnnotationFlag.HIDDEN);return r}_createClass(WidgetAnnotation,[{key:"_decodeFormValue",value:function _decodeFormValue(t){return Array.isArray(t)?t.filter((function(t){return(0,c.isString)(t)})).map((function(t){return(0,c.stringToPDFString)(t)})):(0,d.isName)(t)?(0,c.stringToPDFString)(t.name):(0,c.isString)(t)?(0,c.stringToPDFString)(t):null}},{key:"hasFieldFlag",value:function hasFieldFlag(t){return!!(this.data.fieldFlags&t)}},{key:"getOperatorList",value:function getOperatorList(t,r,o,l){var u=this;return!o||this instanceof j?this._hasText?this._getAppearance(t,r,l).then((function(h){if(u.appearance&&null===h)return _get(_getPrototypeOf(WidgetAnnotation.prototype),"getOperatorList",u).call(u,t,r,o,l);var d=new _.OperatorList;if(!u._defaultAppearance||null===h)return d;var m=[1,0,0,1,0,0],g=[0,0,u.data.rect[2]-u.data.rect[0],u.data.rect[3]-u.data.rect[1]],y=getTransformMatrix(u.data.rect,g,m);d.addOp(c.OPS.beginAnnotation,[u.data.id,u.data.rect,y,m]);var v=new k.StringStream(h);return t.getOperatorList({stream:v,task:r,resources:u._fieldResources.mergedResources,operatorList:d}).then((function(){d.addOp(c.OPS.endAnnotation,[]);return d}))})):_get(_getPrototypeOf(WidgetAnnotation.prototype),"getOperatorList",this).call(this,t,r,o,l):Promise.resolve(new _.OperatorList)}},{key:"save",value:(m=_asyncToGenerator(l.default.mark((function _callee3(t,r,o){var u,h,m,g,y,v,S,_,k,w,x,O,T,R,E;return l.default.wrap((function _callee3$(l){for(;;)switch(l.prev=l.next){case 0:if(o){l.next=2;break}return l.abrupt("return",null);case 2:u=o.get(this.data.id);if((h=u&&u.value)!==this.data.fieldValue&&void 0!==h){l.next=6;break}return l.abrupt("return",null);case 6:l.next=8;return this._getAppearance(t,r,o);case 8:if(null!==(m=l.sent)){l.next=11;break}return l.abrupt("return",null);case 11:g=t.xref;y=g.fetchIfRef(this.ref);if((0,d.isDict)(y)){l.next=15;break}return l.abrupt("return",null);case 15:v=[0,0,this.data.rect[2]-this.data.rect[0],this.data.rect[3]-this.data.rect[1]];S={path:(0,c.stringToPDFString)(y.get("T")||""),value:h};_=g.getNewRef();(k=new d.Dict(g)).set("N",_);w=g.encrypt;x=null;O=null;if(w){x=w.createCipherTransform(this.ref.num,this.ref.gen);O=w.createCipherTransform(_.num,_.gen);m=O.encryptString(m)}y.set("V",(0,c.isAscii)(h)?h:(0,c.stringToUTF16BEString)(h));y.set("AP",k);y.set("M","D:".concat((0,c.getModificationDate)()));(T=new d.Dict(g)).set("Length",m.length);T.set("Subtype",d.Name.get("Form"));T.set("Resources",this._getSaveFieldResources(g));T.set("BBox",v);R=["".concat(this.ref.num," ").concat(this.ref.gen," obj\n")];(0,C.writeDict)(y,R,x);R.push("\nendobj\n");E=["".concat(_.num," ").concat(_.gen," obj\n")];(0,C.writeDict)(T,E,O);E.push(" stream\n",m,"\nendstream\nendobj\n");return l.abrupt("return",[{ref:this.ref,data:R.join(""),xfa:S},{ref:_,data:E.join(""),xfa:null}]);case 39:case"end":return l.stop()}}),_callee3,this)}))),function save(t,r,o){return m.apply(this,arguments)})},{key:"_getAppearance",value:(o=_asyncToGenerator(l.default.mark((function _callee4(t,r,o){var u,d,m,g,y,v,S,_,k,C,w,x,O,T,R,E,M,D;return l.default.wrap((function _callee4$(l){for(;;)switch(l.prev=l.next){case 0:u=this.hasFieldFlag(c.AnnotationFieldFlag.PASSWORD);if(o&&!u){l.next=3;break}return l.abrupt("return",null);case 3:d=o.get(this.data.id);if(void 0!==(m=d&&d.value)){l.next=7;break}return l.abrupt("return",null);case 7:if(""!==(m=m.trim())){l.next=10;break}return l.abrupt("return","");case 10:g=-1;this.data.multiLine&&(g=m.split(/\r\n|\r|\n/).length);v=y=2;S=this.data.rect[3]-this.data.rect[1];_=this.data.rect[2]-this.data.rect[0];this._defaultAppearance||(this.data.defaultAppearanceData=(0,h.parseDefaultAppearance)(this._defaultAppearance="/Helvetica 0 Tf 0 g"));k=this._computeFontSize(S,g),C=_slicedToArray(k,2),w=C[0],x=C[1];l.next=20;return this._getFontData(t,r);case 20:O=l.sent;T=O.descent;isNaN(T)&&(T=0);R=y+Math.abs(T)*x;E=this.data.textAlignment;if(!this.data.multiLine){l.next=27;break}return l.abrupt("return",this._getMultilineAppearance(w,m,O,x,_,S,E,v,R));case 27:M=O.encodeString(m).join("");if(!this.data.comb){l.next=30;break}return l.abrupt("return",this._getCombAppearance(w,O,M,_,v,R));case 30:if(!(0===E||E>2)){l.next=32;break}return l.abrupt("return","/Tx BMC q BT "+w+" 1 0 0 1 ".concat(v," ").concat(R," Tm (").concat((0,c.escapeString)(M),") Tj")+" ET Q EMC");case 32:D=this._renderText(M,O,x,_,E,v,R);return l.abrupt("return","/Tx BMC q BT "+w+" 1 0 0 1 0 0 Tm ".concat(D)+" ET Q EMC");case 34:case"end":return l.stop()}}),_callee4,this)}))),function _getAppearance(t,r,l){return o.apply(this,arguments)})},{key:"_getFontData",value:(r=_asyncToGenerator(l.default.mark((function _callee5(t,r){var o,c,u,h,m;return l.default.wrap((function _callee5$(l){for(;;)switch(l.prev=l.next){case 0:o=new _.OperatorList;c={font:null,clone:function clone(){return this}};u=this.data.defaultAppearanceData,h=u.fontName,m=u.fontSize;l.next=5;return t.handleSetFont(this._fieldResources.mergedResources,[h&&d.Name.get(h),m],null,o,r,c,null);case 5:return l.abrupt("return",c.font);case 6:case"end":return l.stop()}}),_callee5,this)}))),function _getFontData(t,o){return r.apply(this,arguments)})},{key:"_computeFontSize",value:function _computeFontSize(t,r){var o=this.data.defaultAppearanceData.fontSize;if(!o){var l=function roundWithOneDigit(t){return Math.round(10*t)/10};if(-1===r)o=l(.8*t);else{var c=(o=10)/.8,u=Math.round(t/c);o=l(.8*(c=t/(u=Math.max(u,r))))}var d=this.data.defaultAppearanceData,m=d.fontName,g=d.fontColor;this._defaultAppearance=(0,h.createDefaultAppearance)({fontSize:o,fontName:m,fontColor:g})}return[this._defaultAppearance,o]}},{key:"_renderText",value:function _renderText(t,r,o,l,u,h,d){var m,g,y=o/1e3,v=0,S=_createForOfIteratorHelper(r.charsToGlyphs(t));try{for(S.s();!(m=S.n()).done;){v+=m.value.width*y}}catch(t){S.e(t)}finally{S.f()}g=(g=1===u?(l-v)/2:2===u?l-v-h:h).toFixed(2);d=d.toFixed(2);return"".concat(g," ").concat(d," Td (").concat((0,c.escapeString)(t),") Tj")}},{key:"_getSaveFieldResources",value:function _getSaveFieldResources(t){var r=this._fieldResources,o=r.localResources,l=r.appearanceResources,c=r.acroFormResources,u=this.data.defaultAppearanceData&&this.data.defaultAppearanceData.fontName;if(!u)return o||d.Dict.empty;for(var h=0,m=[o,l];h<m.length;h++){var g=m[h];if(g instanceof d.Dict){var y=g.get("Font");if(y instanceof d.Dict&&y.has(u))return g}}if(c instanceof d.Dict){var v=c.get("Font");if(v instanceof d.Dict&&v.has(u)){var S=new d.Dict(t);S.set(u,v.getRaw(u));var _=new d.Dict(t);_.set("Font",S);return d.Dict.merge({xref:t,dictArray:[_,o],mergeSubDicts:!0})}}return o||d.Dict.empty}},{key:"getFieldObject",value:function getFieldObject(){return null}}]);return WidgetAnnotation}(x),E=function(t){_inherits(TextWidgetAnnotation,t);var r=_createSuper(TextWidgetAnnotation);function TextWidgetAnnotation(t){var o;_classCallCheck(this,TextWidgetAnnotation);(o=r.call(this,t))._hasText=!0;var l=t.dict;(0,c.isString)(o.data.fieldValue)||(o.data.fieldValue="");var h=(0,u.getInheritableProperty)({dict:l,key:"Q"});(!Number.isInteger(h)||h<0||h>2)&&(h=null);o.data.textAlignment=h;var d=(0,u.getInheritableProperty)({dict:l,key:"MaxLen"});(!Number.isInteger(d)||d<0)&&(d=null);o.data.maxLen=d;o.data.multiLine=o.hasFieldFlag(c.AnnotationFieldFlag.MULTILINE);o.data.comb=o.hasFieldFlag(c.AnnotationFieldFlag.COMB)&&!o.hasFieldFlag(c.AnnotationFieldFlag.MULTILINE)&&!o.hasFieldFlag(c.AnnotationFieldFlag.PASSWORD)&&!o.hasFieldFlag(c.AnnotationFieldFlag.FILESELECT)&&null!==o.data.maxLen;return o}_createClass(TextWidgetAnnotation,[{key:"_getCombAppearance",value:function _getCombAppearance(t,r,o,l,u,h){var d,m=(l/this.data.maxLen).toFixed(2),g=[],y=_createForOfIteratorHelper(r.getCharPositions(o));try{for(y.s();!(d=y.n()).done;){var v=_slicedToArray(d.value,2),S=v[0],_=v[1];g.push("(".concat((0,c.escapeString)(o.substring(S,_)),") Tj"))}}catch(t){y.e(t)}finally{y.f()}var k=g.join(" ".concat(m," 0 Td "));return"/Tx BMC q BT "+t+" 1 0 0 1 ".concat(u," ").concat(h," Tm ").concat(k)+" ET Q EMC"}},{key:"_getMultilineAppearance",value:function _getMultilineAppearance(t,r,o,l,c,u,h,d,m){var g,y=[],v=c-2*d,S=_createForOfIteratorHelper(r.split(/\r\n|\r|\n/));try{for(S.s();!(g=S.n()).done;){var _,k=g.value,C=_createForOfIteratorHelper(this._splitLine(k,o,l,v));try{for(C.s();!(_=C.n()).done;){var w=_.value,x=0===y.length?d:0;y.push(this._renderText(w,o,l,c,h,x,-l))}}catch(t){C.e(t)}finally{C.f()}}}catch(t){S.e(t)}finally{S.f()}var O=y.join("\n");return"/Tx BMC q BT "+t+" 1 0 0 1 0 ".concat(u," Tm ").concat(O)+" ET Q EMC"}},{key:"_splitLine",value:function _splitLine(t,r,o,l){t=r.encodeString(t).join("");var c=r.charsToGlyphs(t);if(c.length<=1)return[t];for(var u=r.getCharPositions(t),h=o/1e3,d=[],m=-1,g=-1,y=-1,v=0,S=0,_=0,k=c.length;_<k;_++){var C=_slicedToArray(u[_],2),w=C[0],x=C[1],O=c[_],T=O.width*h;if(" "===O.unicode)if(S+T>l){d.push(t.substring(v,w));v=w;S=T;m=-1;y=-1}else{S+=T;m=w;g=x;y=_}else if(S+T>l)if(-1!==m){d.push(t.substring(v,g));v=g;_=y+1;m=-1;S=0}else{d.push(t.substring(v,w));v=w;S=T}else S+=T}v<t.length&&d.push(t.substring(v,t.length));return d}},{key:"getFieldObject",value:function getFieldObject(){return{id:this.data.id,value:this.data.fieldValue,defaultValue:this.data.defaultFieldValue,multiline:this.data.multiLine,password:this.hasFieldFlag(c.AnnotationFieldFlag.PASSWORD),charLimit:this.data.maxLen,comb:this.data.comb,editable:!this.data.readOnly,hidden:this.data.hidden,name:this.data.fieldName,rect:this.data.rect,actions:this.data.actions,page:this.data.pageIndex,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,type:"text"}}}]);return TextWidgetAnnotation}(R),M=function(t){_inherits(ButtonWidgetAnnotation,t);var r,o,u,h,m=_createSuper(ButtonWidgetAnnotation);function ButtonWidgetAnnotation(t){var r;_classCallCheck(this,ButtonWidgetAnnotation);(r=m.call(this,t)).checkedAppearance=null;r.uncheckedAppearance=null;r.data.checkBox=!r.hasFieldFlag(c.AnnotationFieldFlag.RADIO)&&!r.hasFieldFlag(c.AnnotationFieldFlag.PUSHBUTTON);r.data.radioButton=r.hasFieldFlag(c.AnnotationFieldFlag.RADIO)&&!r.hasFieldFlag(c.AnnotationFieldFlag.PUSHBUTTON);r.data.pushButton=r.hasFieldFlag(c.AnnotationFieldFlag.PUSHBUTTON);r.data.isTooltipOnly=!1;r.data.checkBox?r._processCheckBox(t):r.data.radioButton?r._processRadioButton(t):r.data.pushButton?r._processPushButton(t):(0,c.warn)("Invalid field flags for button widget annotation");return r}_createClass(ButtonWidgetAnnotation,[{key:"getOperatorList",value:(h=_asyncToGenerator(l.default.mark((function _callee6(t,r,o,c){var u,h,d,m,g;return l.default.wrap((function _callee6$(l){for(;;)switch(l.prev=l.next){case 0:if(!this.data.pushButton){l.next=2;break}return l.abrupt("return",_get(_getPrototypeOf(ButtonWidgetAnnotation.prototype),"getOperatorList",this).call(this,t,r,!1,c));case 2:u=null;if(c){h=c.get(this.data.id);u=h?h.value:null}if(null!==u){l.next=8;break}if(!this.appearance){l.next=7;break}return l.abrupt("return",_get(_getPrototypeOf(ButtonWidgetAnnotation.prototype),"getOperatorList",this).call(this,t,r,o,c));case 7:u=this.data.checkBox?this.data.fieldValue===this.data.exportValue:this.data.fieldValue===this.data.buttonValue;case 8:if(!(d=u?this.checkedAppearance:this.uncheckedAppearance)){l.next=15;break}m=this.appearance;this.appearance=d;g=_get(_getPrototypeOf(ButtonWidgetAnnotation.prototype),"getOperatorList",this).call(this,t,r,o,c);this.appearance=m;return l.abrupt("return",g);case 15:return l.abrupt("return",new _.OperatorList);case 16:case"end":return l.stop()}}),_callee6,this)}))),function getOperatorList(t,r,o,l){return h.apply(this,arguments)})},{key:"save",value:(u=_asyncToGenerator(l.default.mark((function _callee7(t,r,o){return l.default.wrap((function _callee7$(l){for(;;)switch(l.prev=l.next){case 0:if(!this.data.checkBox){l.next=2;break}return l.abrupt("return",this._saveCheckbox(t,r,o));case 2:if(!this.data.radioButton){l.next=4;break}return l.abrupt("return",this._saveRadioButton(t,r,o));case 4:return l.abrupt("return",null);case 5:case"end":return l.stop()}}),_callee7,this)}))),function save(t,r,o){return u.apply(this,arguments)})},{key:"_saveCheckbox",value:(o=_asyncToGenerator(l.default.mark((function _callee8(t,r,o){var u,h,m,g,y,v,S,_;return l.default.wrap((function _callee8$(r){for(;;)switch(r.prev=r.next){case 0:if(o){r.next=2;break}return r.abrupt("return",null);case 2:u=o.get(this.data.id);if(void 0!==(h=u&&u.value)){r.next=6;break}return r.abrupt("return",null);case 6:if(this.data.fieldValue===this.data.exportValue!==h){r.next=9;break}return r.abrupt("return",null);case 9:m=t.xref.fetchIfRef(this.ref);if((0,d.isDict)(m)){r.next=12;break}return r.abrupt("return",null);case 12:g={path:(0,c.stringToPDFString)(m.get("T")||""),value:h?this.data.exportValue:""};y=d.Name.get(h?this.data.exportValue:"Off");m.set("V",y);m.set("AS",y);m.set("M","D:".concat((0,c.getModificationDate)()));v=t.xref.encrypt;S=null;v&&(S=v.createCipherTransform(this.ref.num,this.ref.gen));_=["".concat(this.ref.num," ").concat(this.ref.gen," obj\n")];(0,C.writeDict)(m,_,S);_.push("\nendobj\n");return r.abrupt("return",[{ref:this.ref,data:_.join(""),xfa:g}]);case 24:case"end":return r.stop()}}),_callee8,this)}))),function _saveCheckbox(t,r,l){return o.apply(this,arguments)})},{key:"_saveRadioButton",value:(r=_asyncToGenerator(l.default.mark((function _callee9(t,r,o){var u,h,m,g,y,v,S,_,k,w,x,O;return l.default.wrap((function _callee9$(r){for(;;)switch(r.prev=r.next){case 0:if(o){r.next=2;break}return r.abrupt("return",null);case 2:u=o.get(this.data.id);if(void 0!==(h=u&&u.value)){r.next=6;break}return r.abrupt("return",null);case 6:if(this.data.fieldValue===this.data.buttonValue!==h){r.next=9;break}return r.abrupt("return",null);case 9:m=t.xref.fetchIfRef(this.ref);if((0,d.isDict)(m)){r.next=12;break}return r.abrupt("return",null);case 12:g={path:(0,c.stringToPDFString)(m.get("T")||""),value:h?this.data.buttonValue:""};y=d.Name.get(h?this.data.buttonValue:"Off");v=null;S=t.xref.encrypt;if(h)if((0,d.isRef)(this.parent)){_=t.xref.fetch(this.parent);k=null;S&&(k=S.createCipherTransform(this.parent.num,this.parent.gen));_.set("V",y);v=["".concat(this.parent.num," ").concat(this.parent.gen," obj\n")];(0,C.writeDict)(_,v,k);v.push("\nendobj\n")}else(0,d.isDict)(this.parent)&&this.parent.set("V",y);m.set("AS",y);m.set("M","D:".concat((0,c.getModificationDate)()));w=null;S&&(w=S.createCipherTransform(this.ref.num,this.ref.gen));x=["".concat(this.ref.num," ").concat(this.ref.gen," obj\n")];(0,C.writeDict)(m,x,w);x.push("\nendobj\n");O=[{ref:this.ref,data:x.join(""),xfa:g}];null!==v&&O.push({ref:this.parent,data:v.join(""),xfa:null});return r.abrupt("return",O);case 27:case"end":return r.stop()}}),_callee9,this)}))),function _saveRadioButton(t,o,l){return r.apply(this,arguments)})},{key:"_getDefaultCheckedAppearance",value:function _getDefaultCheckedAppearance(t,r){var o,l,u=this.data.rect[2]-this.data.rect[0],h=this.data.rect[3]-this.data.rect[1],m=[0,0,u,h],g=.8*Math.min(u,h);if("check"===r){o={width:.755*g,height:.705*g};l="3"}else if("disc"===r){o={width:.791*g,height:.705*g};l="l"}else(0,c.unreachable)("_getDefaultCheckedAppearance - unsupported type: ".concat(r));var y=(u-o.width)/2,v=(h-o.height)/2,S="q BT /PdfJsZaDb ".concat(g," Tf 0 g ").concat(y," ").concat(v," Td (").concat(l,") Tj ET Q"),_=new d.Dict(t.xref);_.set("FormType",1);_.set("Subtype",d.Name.get("Form"));_.set("Type",d.Name.get("XObject"));_.set("BBox",m);_.set("Matrix",[1,0,0,1,0,0]);_.set("Length",S.length);var C=new d.Dict(t.xref),w=new d.Dict(t.xref);w.set("PdfJsZaDb",this.fallbackFontDict);C.set("Font",w);_.set("Resources",C);this.checkedAppearance=new k.StringStream(S);this.checkedAppearance.dict=_;this._streams.push(this.checkedAppearance)}},{key:"_processCheckBox",value:function _processCheckBox(t){var r=t.dict.get("AP");if((0,d.isDict)(r)){var o=r.get("N");if((0,d.isDict)(o)){var l=this._decodeFormValue(t.dict.get("AS"));"string"==typeof l&&(this.data.fieldValue=l);var c=null!==this.data.fieldValue&&"Off"!==this.data.fieldValue?this.data.fieldValue:"Yes",u=o.getKeys();if(0===u.length)u.push("Off",c);else if(1===u.length)"Off"===u[0]?u.push(c):u.unshift("Off");else if(u.includes(c)){u.length=0;u.push("Off",c)}else{var h=u.find((function(t){return"Off"!==t}));u.length=0;u.push("Off",h)}u.includes(this.data.fieldValue)||(this.data.fieldValue="Off");this.data.exportValue=u[1];this.checkedAppearance=o.get(this.data.exportValue)||null;this.uncheckedAppearance=o.get("Off")||null;this.checkedAppearance?this._streams.push(this.checkedAppearance):this._getDefaultCheckedAppearance(t,"check");this.uncheckedAppearance&&this._streams.push(this.uncheckedAppearance);this._fallbackFontDict=this.fallbackFontDict}}}},{key:"_processRadioButton",value:function _processRadioButton(t){this.data.fieldValue=this.data.buttonValue=null;var r=t.dict.get("Parent");if((0,d.isDict)(r)){this.parent=t.dict.getRaw("Parent");var o=r.get("V");(0,d.isName)(o)&&(this.data.fieldValue=this._decodeFormValue(o))}var l=t.dict.get("AP");if((0,d.isDict)(l)){var c=l.get("N");if((0,d.isDict)(c)){var u,h=_createForOfIteratorHelper(c.getKeys());try{for(h.s();!(u=h.n()).done;){var m=u.value;if("Off"!==m){this.data.buttonValue=this._decodeFormValue(m);break}}}catch(t){h.e(t)}finally{h.f()}this.checkedAppearance=c.get(this.data.buttonValue)||null;this.uncheckedAppearance=c.get("Off")||null;this.checkedAppearance?this._streams.push(this.checkedAppearance):this._getDefaultCheckedAppearance(t,"disc");this.uncheckedAppearance&&this._streams.push(this.uncheckedAppearance);this._fallbackFontDict=this.fallbackFontDict}}}},{key:"_processPushButton",value:function _processPushButton(t){if(t.dict.has("A")||t.dict.has("AA")||this.data.alternativeText){this.data.isTooltipOnly=!t.dict.has("A")&&!t.dict.has("AA");g.Catalog.parseDestDictionary({destDict:t.dict,resultObj:this.data,docBaseUrl:t.pdfManager.docBaseUrl})}else(0,c.warn)("Push buttons without action dictionaries are not supported")}},{key:"getFieldObject",value:function getFieldObject(){var t,r="button";if(this.data.checkBox){r="checkbox";t=this.data.exportValue}else if(this.data.radioButton){r="radiobutton";t=this.data.buttonValue}return{id:this.data.id,value:this.data.fieldValue||"Off",defaultValue:this.data.defaultFieldValue,exportValues:t,editable:!this.data.readOnly,name:this.data.fieldName,rect:this.data.rect,hidden:this.data.hidden,actions:this.data.actions,page:this.data.pageIndex,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,type:r}}},{key:"fallbackFontDict",get:function get(){var t=new d.Dict;t.set("BaseFont",d.Name.get("ZapfDingbats"));t.set("Type",d.Name.get("FallbackType"));t.set("Subtype",d.Name.get("FallbackType"));t.set("Encoding",d.Name.get("ZapfDingbatsEncoding"));return(0,c.shadow)(this,"fallbackFontDict",t)}}]);return ButtonWidgetAnnotation}(R),D=function(t){_inherits(ChoiceWidgetAnnotation,t);var r=_createSuper(ChoiceWidgetAnnotation);function ChoiceWidgetAnnotation(t){var o;_classCallCheck(this,ChoiceWidgetAnnotation);(o=r.call(this,t)).data.options=[];var l=(0,u.getInheritableProperty)({dict:t.dict,key:"Opt"});if(Array.isArray(l))for(var h=t.xref,d=0,m=l.length;d<m;d++){var g=h.fetchIfRef(l[d]),y=Array.isArray(g);o.data.options[d]={exportValue:o._decodeFormValue(y?h.fetchIfRef(g[0]):g),displayValue:o._decodeFormValue(y?h.fetchIfRef(g[1]):g)}}(0,c.isString)(o.data.fieldValue)?o.data.fieldValue=[o.data.fieldValue]:o.data.fieldValue||(o.data.fieldValue=[]);o.data.combo=o.hasFieldFlag(c.AnnotationFieldFlag.COMBO);o.data.multiSelect=o.hasFieldFlag(c.AnnotationFieldFlag.MULTISELECT);o._hasText=!0;return o}_createClass(ChoiceWidgetAnnotation,[{key:"getFieldObject",value:function getFieldObject(){var t=this.data.combo?"combobox":"listbox",r=this.data.fieldValue.length>0?this.data.fieldValue[0]:null;return{id:this.data.id,value:r,defaultValue:this.data.defaultFieldValue,editable:!this.data.readOnly,name:this.data.fieldName,rect:this.data.rect,numItems:this.data.fieldValue.length,multipleSelection:this.data.multiSelect,hidden:this.data.hidden,actions:this.data.actions,items:this.data.options,page:this.data.pageIndex,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,type:t}}}]);return ChoiceWidgetAnnotation}(R),j=function(t){_inherits(SignatureWidgetAnnotation,t);var r=_createSuper(SignatureWidgetAnnotation);function SignatureWidgetAnnotation(t){var o;_classCallCheck(this,SignatureWidgetAnnotation);(o=r.call(this,t)).data.fieldValue=null;return o}_createClass(SignatureWidgetAnnotation,[{key:"getFieldObject",value:function getFieldObject(){return{id:this.data.id,value:null,page:this.data.pageIndex,type:"signature"}}}]);return SignatureWidgetAnnotation}(R),L=function(t){_inherits(TextAnnotation,t);var r=_createSuper(TextAnnotation);function TextAnnotation(t){var o;_classCallCheck(this,TextAnnotation);o=r.call(this,t);var l=t.dict;o.data.annotationType=c.AnnotationType.TEXT;if(o.data.hasAppearance)o.data.name="NoIcon";else{o.data.rect[1]=o.data.rect[3]-22;o.data.rect[2]=o.data.rect[0]+22;o.data.name=l.has("Name")?l.get("Name").name:"Note"}if(l.has("State")){o.data.state=l.get("State")||null;o.data.stateModel=l.get("StateModel")||null}else{o.data.state=null;o.data.stateModel=null}return o}return TextAnnotation}(T),N=function(t){_inherits(LinkAnnotation,t);var r=_createSuper(LinkAnnotation);function LinkAnnotation(t){var o;_classCallCheck(this,LinkAnnotation);(o=r.call(this,t)).data.annotationType=c.AnnotationType.LINK;var l=getQuadPoints(t.dict,o.rectangle);l&&(o.data.quadPoints=l);g.Catalog.parseDestDictionary({destDict:t.dict,resultObj:o.data,docBaseUrl:t.pdfManager.docBaseUrl});return o}return LinkAnnotation}(x),U=function(t){_inherits(PopupAnnotation,t);var r=_createSuper(PopupAnnotation);function PopupAnnotation(t){var o;_classCallCheck(this,PopupAnnotation);(o=r.call(this,t)).data.annotationType=c.AnnotationType.POPUP;var l=t.dict.get("Parent");if(!l){(0,c.warn)("Popup annotation has a missing or invalid parent annotation.");return _possibleConstructorReturn(o)}var u=l.get("Subtype");o.data.parentType=(0,d.isName)(u)?u.name:null;var h=t.dict.getRaw("Parent");o.data.parentId=(0,d.isRef)(h)?h.toString():null;var m=l.getArray("Rect");Array.isArray(m)&&4===m.length?o.data.parentRect=c.Util.normalizeRect(m):o.data.parentRect=[0,0,0,0];var g=l.get("RT");(0,d.isName)(g,c.AnnotationReplyType.GROUP)&&(l=l.get("IRT"));if(l.has("M")){o.setModificationDate(l.get("M"));o.data.modificationDate=o.modificationDate}else o.data.modificationDate=null;if(l.has("C")){o.setColor(l.getArray("C"));o.data.color=o.color}else o.data.color=null;if(!o.viewable){var y=l.get("F");o._isViewable(y)&&o.setFlags(y)}o.setTitle(l.get("T"));o.data.titleObj=o._title;o.setContents(l.get("Contents"));o.data.contentsObj=o._contents;return o}return PopupAnnotation}(x),H=function(t){_inherits(FreeTextAnnotation,t);var r=_createSuper(FreeTextAnnotation);function FreeTextAnnotation(t){var o;_classCallCheck(this,FreeTextAnnotation);(o=r.call(this,t)).data.annotationType=c.AnnotationType.FREETEXT;return o}return FreeTextAnnotation}(T),W=function(t){_inherits(LineAnnotation,t);var r=_createSuper(LineAnnotation);function LineAnnotation(t){var o;_classCallCheck(this,LineAnnotation);(o=r.call(this,t)).data.annotationType=c.AnnotationType.LINE;var l=t.dict.getArray("L");o.data.lineCoordinates=c.Util.normalizeRect(l);if(!o.appearance){var u=o.color?Array.from(o.color).map((function(t){return t/255})):[0,0,0],h=t.dict.get("CA"),d=null,m=t.dict.getArray("IC");m&&(d=(m=getRgbColor(m,null))?Array.from(m).map((function(t){return t/255})):null);var g=d?h:null,y=o.borderStyle.width||1,v=2*y,S=[o.data.lineCoordinates[0]-v,o.data.lineCoordinates[1]-v,o.data.lineCoordinates[2]+v,o.data.lineCoordinates[3]+v];c.Util.intersect(o.rectangle,S)||(o.rectangle=S);o._setDefaultAppearance({xref:t.xref,extra:"".concat(y," w"),strokeColor:u,fillColor:d,strokeAlpha:h,fillAlpha:g,pointsCallback:function pointsCallback(t,r){t.push("".concat(l[0]," ").concat(l[1]," m"),"".concat(l[2]," ").concat(l[3]," l"),"S");return[r[0].x-y,r[1].x+y,r[3].y-y,r[1].y+y]}})}return o}return LineAnnotation}(T),$=function(t){_inherits(SquareAnnotation,t);var r=_createSuper(SquareAnnotation);function SquareAnnotation(t){var o;_classCallCheck(this,SquareAnnotation);(o=r.call(this,t)).data.annotationType=c.AnnotationType.SQUARE;if(!o.appearance){var l=o.color?Array.from(o.color).map((function(t){return t/255})):[0,0,0],u=t.dict.get("CA"),h=null,d=t.dict.getArray("IC");if(d){d=getRgbColor(d,null);h=d?Array.from(d).map((function(t){return t/255})):null}var m=h?u:null;o._setDefaultAppearance({xref:t.xref,extra:"".concat(o.borderStyle.width," w"),strokeColor:l,fillColor:h,strokeAlpha:u,fillAlpha:m,pointsCallback:function pointsCallback(t,r){var l=r[2].x+o.borderStyle.width/2,c=r[2].y+o.borderStyle.width/2,u=r[3].x-r[2].x-o.borderStyle.width,d=r[1].y-r[3].y-o.borderStyle.width;t.push("".concat(l," ").concat(c," ").concat(u," ").concat(d," re"));h?t.push("B"):t.push("S");return[r[0].x,r[1].x,r[3].y,r[1].y]}})}return o}return SquareAnnotation}(T),q=function(t){_inherits(CircleAnnotation,t);var r=_createSuper(CircleAnnotation);function CircleAnnotation(t){var o;_classCallCheck(this,CircleAnnotation);(o=r.call(this,t)).data.annotationType=c.AnnotationType.CIRCLE;if(!o.appearance){var l=o.color?Array.from(o.color).map((function(t){return t/255})):[0,0,0],u=t.dict.get("CA"),h=null,d=t.dict.getArray("IC");if(d){d=getRgbColor(d,null);h=d?Array.from(d).map((function(t){return t/255})):null}var m=h?u:null,g=4/3*Math.tan(Math.PI/8);o._setDefaultAppearance({xref:t.xref,extra:"".concat(o.borderStyle.width," w"),strokeColor:l,fillColor:h,strokeAlpha:u,fillAlpha:m,pointsCallback:function pointsCallback(t,r){var l=r[0].x+o.borderStyle.width/2,c=r[0].y-o.borderStyle.width/2,u=r[3].x-o.borderStyle.width/2,d=r[3].y+o.borderStyle.width/2,m=l+(u-l)/2,y=c+(d-c)/2,v=(u-l)/2*g,S=(d-c)/2*g;t.push("".concat(m," ").concat(d," m"),"".concat(m+v," ").concat(d," ").concat(u," ").concat(y+S," ").concat(u," ").concat(y," c"),"".concat(u," ").concat(y-S," ").concat(m+v," ").concat(c," ").concat(m," ").concat(c," c"),"".concat(m-v," ").concat(c," ").concat(l," ").concat(y-S," ").concat(l," ").concat(y," c"),"".concat(l," ").concat(y+S," ").concat(m-v," ").concat(d," ").concat(m," ").concat(d," c"),"h");h?t.push("B"):t.push("S");return[r[0].x,r[1].x,r[3].y,r[1].y]}})}return o}return CircleAnnotation}(T),X=function(t){_inherits(PolylineAnnotation,t);var r=_createSuper(PolylineAnnotation);function PolylineAnnotation(t){var o;_classCallCheck(this,PolylineAnnotation);(o=r.call(this,t)).data.annotationType=c.AnnotationType.POLYLINE;o.data.vertices=[];var l=t.dict.getArray("Vertices");if(!Array.isArray(l))return _possibleConstructorReturn(o);for(var u=0,h=l.length;u<h;u+=2)o.data.vertices.push({x:l[u],y:l[u+1]});if(!o.appearance){var d,m=o.color?Array.from(o.color).map((function(t){return t/255})):[0,0,0],g=t.dict.get("CA"),y=o.borderStyle.width||1,v=2*y,S=[1/0,1/0,-1/0,-1/0],_=_createForOfIteratorHelper(o.data.vertices);try{for(_.s();!(d=_.n()).done;){var k=d.value;S[0]=Math.min(S[0],k.x-v);S[1]=Math.min(S[1],k.y-v);S[2]=Math.max(S[2],k.x+v);S[3]=Math.max(S[3],k.y+v)}}catch(t){_.e(t)}finally{_.f()}c.Util.intersect(o.rectangle,S)||(o.rectangle=S);o._setDefaultAppearance({xref:t.xref,extra:"".concat(y," w"),strokeColor:m,strokeAlpha:g,pointsCallback:function pointsCallback(t,r){for(var l=o.data.vertices,c=0,u=l.length;c<u;c++)t.push("".concat(l[c].x," ").concat(l[c].y," ").concat(0===c?"m":"l"));t.push("S");return[r[0].x,r[1].x,r[3].y,r[1].y]}})}return o}return PolylineAnnotation}(T),z=function(t){_inherits(PolygonAnnotation,t);var r=_createSuper(PolygonAnnotation);function PolygonAnnotation(t){var o;_classCallCheck(this,PolygonAnnotation);(o=r.call(this,t)).data.annotationType=c.AnnotationType.POLYGON;return o}return PolygonAnnotation}(X),G=function(t){_inherits(CaretAnnotation,t);var r=_createSuper(CaretAnnotation);function CaretAnnotation(t){var o;_classCallCheck(this,CaretAnnotation);(o=r.call(this,t)).data.annotationType=c.AnnotationType.CARET;return o}return CaretAnnotation}(T),V=function(t){_inherits(InkAnnotation,t);var r=_createSuper(InkAnnotation);function InkAnnotation(t){var o;_classCallCheck(this,InkAnnotation);(o=r.call(this,t)).data.annotationType=c.AnnotationType.INK;o.data.inkLists=[];var l=t.dict.getArray("InkList");if(!Array.isArray(l))return _possibleConstructorReturn(o);for(var u=t.xref,h=0,d=l.length;h<d;++h){o.data.inkLists.push([]);for(var m=0,g=l[h].length;m<g;m+=2)o.data.inkLists[h].push({x:u.fetchIfRef(l[h][m]),y:u.fetchIfRef(l[h][m+1])})}if(!o.appearance){var y,v=o.color?Array.from(o.color).map((function(t){return t/255})):[0,0,0],S=t.dict.get("CA"),_=o.borderStyle.width||1,k=2*_,C=[1/0,1/0,-1/0,-1/0],w=_createForOfIteratorHelper(o.data.inkLists);try{for(w.s();!(y=w.n()).done;){var x,O=_createForOfIteratorHelper(y.value);try{for(O.s();!(x=O.n()).done;){var T=x.value;C[0]=Math.min(C[0],T.x-k);C[1]=Math.min(C[1],T.y-k);C[2]=Math.max(C[2],T.x+k);C[3]=Math.max(C[3],T.y+k)}}catch(t){O.e(t)}finally{O.f()}}}catch(t){w.e(t)}finally{w.f()}c.Util.intersect(o.rectangle,C)||(o.rectangle=C);o._setDefaultAppearance({xref:t.xref,extra:"".concat(_," w"),strokeColor:v,strokeAlpha:S,pointsCallback:function pointsCallback(t,r){var l,c=_createForOfIteratorHelper(o.data.inkLists);try{for(c.s();!(l=c.n()).done;){for(var u=l.value,h=0,d=u.length;h<d;h++)t.push("".concat(u[h].x," ").concat(u[h].y," ").concat(0===h?"m":"l"));t.push("S")}}catch(t){c.e(t)}finally{c.f()}return[r[0].x,r[1].x,r[3].y,r[1].y]}})}return o}return InkAnnotation}(T),Y=function(t){_inherits(HighlightAnnotation,t);var r=_createSuper(HighlightAnnotation);function HighlightAnnotation(t){var o;_classCallCheck(this,HighlightAnnotation);(o=r.call(this,t)).data.annotationType=c.AnnotationType.HIGHLIGHT;if(o.data.quadPoints=getQuadPoints(t.dict,null)){var l=o.appearance&&o.appearance.dict.get("Resources");if(!o.appearance||!l||!l.has("ExtGState")){o.appearance&&(0,c.warn)("HighlightAnnotation - ignoring built-in appearance stream.");var u=o.color?Array.from(o.color).map((function(t){return t/255})):[1,1,0],h=t.dict.get("CA");o._setDefaultAppearance({xref:t.xref,fillColor:u,blendMode:"Multiply",fillAlpha:h,pointsCallback:function pointsCallback(t,r){t.push("".concat(r[0].x," ").concat(r[0].y," m"),"".concat(r[1].x," ").concat(r[1].y," l"),"".concat(r[3].x," ").concat(r[3].y," l"),"".concat(r[2].x," ").concat(r[2].y," l"),"f");return[r[0].x,r[1].x,r[3].y,r[1].y]}})}}else o.data.hasPopup=!1;return o}return HighlightAnnotation}(T),K=function(t){_inherits(UnderlineAnnotation,t);var r=_createSuper(UnderlineAnnotation);function UnderlineAnnotation(t){var o;_classCallCheck(this,UnderlineAnnotation);(o=r.call(this,t)).data.annotationType=c.AnnotationType.UNDERLINE;if(o.data.quadPoints=getQuadPoints(t.dict,null)){if(!o.appearance){var l=o.color?Array.from(o.color).map((function(t){return t/255})):[0,0,0],u=t.dict.get("CA");o._setDefaultAppearance({xref:t.xref,extra:"[] 0 d 1 w",strokeColor:l,strokeAlpha:u,pointsCallback:function pointsCallback(t,r){t.push("".concat(r[2].x," ").concat(r[2].y," m"),"".concat(r[3].x," ").concat(r[3].y," l"),"S");return[r[0].x,r[1].x,r[3].y,r[1].y]}})}}else o.data.hasPopup=!1;return o}return UnderlineAnnotation}(T),J=function(t){_inherits(SquigglyAnnotation,t);var r=_createSuper(SquigglyAnnotation);function SquigglyAnnotation(t){var o;_classCallCheck(this,SquigglyAnnotation);(o=r.call(this,t)).data.annotationType=c.AnnotationType.SQUIGGLY;if(o.data.quadPoints=getQuadPoints(t.dict,null)){if(!o.appearance){var l=o.color?Array.from(o.color).map((function(t){return t/255})):[0,0,0],u=t.dict.get("CA");o._setDefaultAppearance({xref:t.xref,extra:"[] 0 d 1 w",strokeColor:l,strokeAlpha:u,pointsCallback:function pointsCallback(t,r){var o=(r[0].y-r[2].y)/6,l=o,c=r[2].x,u=r[2].y,h=r[3].x;t.push("".concat(c," ").concat(u+l," m"));do{c+=2;l=0===l?o:0;t.push("".concat(c," ").concat(u+l," l"))}while(c<h);t.push("S");return[r[2].x,h,u-2*o,u+2*o]}})}}else o.data.hasPopup=!1;return o}return SquigglyAnnotation}(T),Q=function(t){_inherits(StrikeOutAnnotation,t);var r=_createSuper(StrikeOutAnnotation);function StrikeOutAnnotation(t){var o;_classCallCheck(this,StrikeOutAnnotation);(o=r.call(this,t)).data.annotationType=c.AnnotationType.STRIKEOUT;if(o.data.quadPoints=getQuadPoints(t.dict,null)){if(!o.appearance){var l=o.color?Array.from(o.color).map((function(t){return t/255})):[0,0,0],u=t.dict.get("CA");o._setDefaultAppearance({xref:t.xref,extra:"[] 0 d 1 w",strokeColor:l,strokeAlpha:u,pointsCallback:function pointsCallback(t,r){t.push("".concat((r[0].x+r[2].x)/2," ")+"".concat((r[0].y+r[2].y)/2," m"),"".concat((r[1].x+r[3].x)/2," ")+"".concat((r[1].y+r[3].y)/2," l"),"S");return[r[0].x,r[1].x,r[3].y,r[1].y]}})}}else o.data.hasPopup=!1;return o}return StrikeOutAnnotation}(T),Z=function(t){_inherits(StampAnnotation,t);var r=_createSuper(StampAnnotation);function StampAnnotation(t){var o;_classCallCheck(this,StampAnnotation);(o=r.call(this,t)).data.annotationType=c.AnnotationType.STAMP;return o}return StampAnnotation}(T),ee=function(t){_inherits(FileAttachmentAnnotation,t);var r=_createSuper(FileAttachmentAnnotation);function FileAttachmentAnnotation(t){var o;_classCallCheck(this,FileAttachmentAnnotation);o=r.call(this,t);var l=new v.FileSpec(t.dict.get("FS"),t.xref);o.data.annotationType=c.AnnotationType.FILEATTACHMENT;o.data.file=l.serializable;return o}return FileAttachmentAnnotation}(T)},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.createDefaultAppearance=function createDefaultAppearance(t){var r,o=t.fontSize,l=t.fontName,c=t.fontColor;r=c.every((function(t){return 0===t}))?"0 g":Array.from(c).map((function(t){return(t/255).toFixed(2)})).join(" ")+" rg";return"/".concat((0,u.escapePDFName)(l)," ").concat(o," Tf ").concat(r)};r.parseDefaultAppearance=function parseDefaultAppearance(t){return new g(t).parse()};var l=o(4),c=o(137),u=o(122),h=o(138),d=o(118),m=o(123);function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);if("Map"===o||"Set"===o)return Array.from(t);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return _arrayLikeToArray(t,r)}(t,r)||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 _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var g=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(DefaultAppearanceEvaluator,t);var r=_createSuper(DefaultAppearanceEvaluator);function DefaultAppearanceEvaluator(t){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,DefaultAppearanceEvaluator);return r.call(this,new m.StringStream(t))}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(DefaultAppearanceEvaluator,[{key:"parse",value:function parse(){var t={fn:0,args:[]},r={fontSize:0,fontName:"",fontColor:new Uint8ClampedArray(3)};try{for(;;){t.args.length=0;if(!this.read(t))break;if(0===this.savedStatesDepth){var o=t.fn,u=t.args;switch(0|o){case l.OPS.setFont:var h=_slicedToArray(u,2),m=h[0],g=h[1];m instanceof d.Name&&(r.fontName=m.name);"number"==typeof g&&g>0&&(r.fontSize=g);break;case l.OPS.setFillRGBColor:c.ColorSpace.singletons.rgb.getRgbItem(u,0,r.fontColor,0);break;case l.OPS.setFillGray:c.ColorSpace.singletons.gray.getRgbItem(u,0,r.fontColor,0);break;case l.OPS.setFillColorSpace:c.ColorSpace.singletons.cmyk.getRgbItem(u,0,r.fontColor,0)}}}}catch(t){(0,l.warn)('parseDefaultAppearance - ignoring errors: "'.concat(t,'".'))}return r}}]);return DefaultAppearanceEvaluator}(h.EvaluatorPreprocessor)},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.ColorSpace=void 0;var l=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(o(2)),c=o(4),u=o(118),h=o(122);function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function asyncGeneratorStep(t,r,o,l,c,u,h){try{var d=t[u](h),m=d.value}catch(t){o(t);return}d.done?r(m):Promise.resolve(m).then(l,c)}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var d=function(){function ColorSpace(t,r){_classCallCheck(this,ColorSpace);this.constructor===ColorSpace&&(0,c.unreachable)("Cannot initialize ColorSpace.");this.name=t;this.numComps=r}_createClass(ColorSpace,[{key:"getRgb",value:function getRgb(t,r){var o=new Uint8ClampedArray(3);this.getRgbItem(t,r,o,0);return o}},{key:"getRgbItem",value:function getRgbItem(t,r,o,l){(0,c.unreachable)("Should not call ColorSpace.getRgbItem")}},{key:"getRgbBuffer",value:function getRgbBuffer(t,r,o,l,u,h,d){(0,c.unreachable)("Should not call ColorSpace.getRgbBuffer")}},{key:"getOutputLength",value:function getOutputLength(t,r){(0,c.unreachable)("Should not call ColorSpace.getOutputLength")}},{key:"isPassthrough",value:function isPassthrough(t){return!1}},{key:"isDefaultDecode",value:function isDefaultDecode(t,r){return ColorSpace.isDefaultDecode(t,this.numComps)}},{key:"fillRgb",value:function fillRgb(t,r,o,l,c,u,h,d,m){var g=r*o,y=null,v=1<<h,S=o!==c||r!==l;if(this.isPassthrough(h))y=d;else if(1===this.numComps&&g>v&&"DeviceGray"!==this.name&&"DeviceRGB"!==this.name){for(var _=h<=8?new Uint8Array(v):new Uint16Array(v),k=0;k<v;k++)_[k]=k;var C=new Uint8ClampedArray(3*v);this.getRgbBuffer(_,0,v,C,0,h,0);if(S){y=new Uint8Array(3*g);for(var w=0,x=0;x<g;++x){var O=3*d[x];y[w++]=C[O];y[w++]=C[O+1];y[w++]=C[O+2]}}else for(var T=0,R=0;R<g;++R){var E=3*d[R];t[T++]=C[E];t[T++]=C[E+1];t[T++]=C[E+2];T+=m}}else if(S){y=new Uint8ClampedArray(3*g);this.getRgbBuffer(d,0,g,y,0,h,0)}else this.getRgbBuffer(d,0,l*u,t,0,h,m);if(y)if(S)!function resizeRgbImage(t,r,o,l,c,u,h){h=1!==h?0:h;for(var d,m=o/c,g=l/u,y=0,v=new Uint16Array(c),S=3*o,_=0;_<c;_++)v[_]=3*Math.floor(_*m);for(var k=0;k<u;k++)for(var C=Math.floor(k*g)*S,w=0;w<c;w++){d=C+v[w];r[y++]=t[d++];r[y++]=t[d++];r[y++]=t[d++];y+=h}}(y,t,r,o,l,c,m);else for(var M=0,D=0,j=0,L=l*u;j<L;j++){t[M++]=y[D++];t[M++]=y[D++];t[M++]=y[D++];M+=m}}},{key:"usesZeroToOneRange",get:function get(){return(0,c.shadow)(this,"usesZeroToOneRange",!0)}}],[{key:"_cache",value:function _cache(t,r,o,l){if(!o)throw new Error('ColorSpace._cache - expected "localColorSpaceCache" argument.');if(!l)throw new Error('ColorSpace._cache - expected "parsedColorSpace" argument.');var c,h;if(t instanceof u.Ref){h=t;t=r.fetch(t)}t instanceof u.Name&&(c=t.name);(c||h)&&o.set(c,h,l)}},{key:"getCached",value:function getCached(t,r,o){if(!o)throw new Error('ColorSpace.getCached - expected "localColorSpaceCache" argument.');if(t instanceof u.Ref){var l=o.getByRef(t);if(l)return l;try{t=r.fetch(t)}catch(t){if(t instanceof h.MissingDataException)throw t}}if(t instanceof u.Name){var c=o.getByName(t.name);if(c)return c}return null}},{key:"parseAsync",value:(t=function _asyncToGenerator(t){return function(){var r=this,o=arguments;return new Promise((function(l,c){var u=t.apply(r,o);function _next(t){asyncGeneratorStep(u,l,c,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(u,l,c,_next,_throw,"throw",t)}_next(void 0)}))}}(l.default.mark((function _callee(t){var r,o,c,u,h,d,m;return l.default.wrap((function _callee$(l){for(;;)switch(l.prev=l.next){case 0:r=t.cs,o=t.xref,c=t.resources,u=void 0===c?null:c,h=t.pdfFunctionFactory,d=t.localColorSpaceCache;m=this._parse(r,o,u,h);this._cache(r,o,d,m);return l.abrupt("return",m);case 4:case"end":return l.stop()}}),_callee,this)}))),function parseAsync(r){return t.apply(this,arguments)})},{key:"parse",value:function parse(t){var r=t.cs,o=t.xref,l=t.resources,c=void 0===l?null:l,u=t.pdfFunctionFactory,h=t.localColorSpaceCache,d=this.getCached(r,o,h);if(d)return d;var m=this._parse(r,o,c,u);this._cache(r,o,h,m);return m}},{key:"_parse",value:function _parse(t,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,l=arguments.length>3?arguments[3]:void 0;t=r.fetchIfRef(t);if((0,u.isName)(t))switch(t.name){case"DeviceGray":case"G":return this.singletons.gray;case"DeviceRGB":case"RGB":return this.singletons.rgb;case"DeviceCMYK":case"CMYK":return this.singletons.cmyk;case"Pattern":return new g(null);default:if((0,u.isDict)(o)){var h=o.get("ColorSpace");if((0,u.isDict)(h)){var d=h.get(t.name);if(d){if((0,u.isName)(d))return this._parse(d,r,o,l);t=d;break}}}throw new c.FormatError("Unrecognized ColorSpace: ".concat(t.name))}if(Array.isArray(t)){var v,S,_,x,O,T,R=r.fetchIfRef(t[0]).name;switch(R){case"DeviceGray":case"G":return this.singletons.gray;case"DeviceRGB":case"RGB":return this.singletons.rgb;case"DeviceCMYK":case"CMYK":return this.singletons.cmyk;case"CalGray":x=(v=r.fetchIfRef(t[1])).getArray("WhitePoint");O=v.getArray("BlackPoint");T=v.get("Gamma");return new k(x,O,T);case"CalRGB":x=(v=r.fetchIfRef(t[1])).getArray("WhitePoint");O=v.getArray("BlackPoint");T=v.getArray("Gamma");var E=v.getArray("Matrix");return new C(x,O,T,E);case"ICCBased":var M=r.fetchIfRef(t[1]),D=M.dict;S=D.get("N");var j=D.get("Alternate");if(j){var L=this._parse(j,r,o,l);if(L.numComps===S)return L;(0,c.warn)("ICCBased color space: Ignoring incorrect /Alternate entry.")}if(1===S)return this.singletons.gray;if(3===S)return this.singletons.rgb;if(4===S)return this.singletons.cmyk;break;case"Pattern":(_=t[1]||null)&&(_=this._parse(_,r,o,l));return new g(_);case"Indexed":case"I":_=this._parse(t[1],r,o,l);var N=r.fetchIfRef(t[2])+1,U=r.fetchIfRef(t[3]);return new y(_,N,U);case"Separation":case"DeviceN":var H=r.fetchIfRef(t[1]);S=Array.isArray(H)?H.length:1;_=this._parse(t[2],r,o,l);var W=l.create(t[3]);return new m(S,_,W);case"Lab":x=(v=r.fetchIfRef(t[1])).getArray("WhitePoint");O=v.getArray("BlackPoint");var $=v.getArray("Range");return new w(x,O,$);default:throw new c.FormatError("Unimplemented ColorSpace object: ".concat(R))}}throw new c.FormatError("Unrecognized ColorSpace object: ".concat(t))}},{key:"isDefaultDecode",value:function isDefaultDecode(t,r){if(!Array.isArray(t))return!0;if(2*r!==t.length){(0,c.warn)("The decode map is not the correct length");return!0}for(var o=0,l=t.length;o<l;o+=2)if(0!==t[o]||1!==t[o+1])return!1;return!0}},{key:"singletons",get:function get(){return(0,c.shadow)(this,"singletons",{get gray(){return(0,c.shadow)(this,"gray",new v)},get rgb(){return(0,c.shadow)(this,"rgb",new S)},get cmyk(){return(0,c.shadow)(this,"cmyk",new _)}})}}]);var t;return ColorSpace}();r.ColorSpace=d;var m=function(t){_inherits(AlternateCS,t);var r=_createSuper(AlternateCS);function AlternateCS(t,o,l){var c;_classCallCheck(this,AlternateCS);(c=r.call(this,"Alternate",t)).base=o;c.tintFn=l;c.tmpBuf=new Float32Array(o.numComps);return c}_createClass(AlternateCS,[{key:"getRgbItem",value:function getRgbItem(t,r,o,l){var c=this.tmpBuf;this.tintFn(t,r,c,0);this.base.getRgbItem(c,0,o,l)}},{key:"getRgbBuffer",value:function getRgbBuffer(t,r,o,l,c,u,h){var d,m,g=this.tintFn,y=this.base,v=1/((1<<u)-1),S=y.numComps,_=y.usesZeroToOneRange,k=(y.isPassthrough(8)||!_)&&0===h,C=k?c:0,w=k?l:new Uint8ClampedArray(S*o),x=this.numComps,O=new Float32Array(x),T=new Float32Array(S);for(d=0;d<o;d++){for(m=0;m<x;m++)O[m]=t[r++]*v;g(O,0,T,0);if(_)for(m=0;m<S;m++)w[C++]=255*T[m];else{y.getRgbItem(T,0,w,C);C+=S}}k||y.getRgbBuffer(w,0,o,l,c,8,h)}},{key:"getOutputLength",value:function getOutputLength(t,r){return this.base.getOutputLength(t*this.base.numComps/this.numComps,r)}}]);return AlternateCS}(d),g=function(t){_inherits(PatternCS,t);var r=_createSuper(PatternCS);function PatternCS(t){var o;_classCallCheck(this,PatternCS);(o=r.call(this,"Pattern",null)).base=t;return o}_createClass(PatternCS,[{key:"isDefaultDecode",value:function isDefaultDecode(t,r){(0,c.unreachable)("Should not call PatternCS.isDefaultDecode")}}]);return PatternCS}(d),y=function(t){_inherits(IndexedCS,t);var r=_createSuper(IndexedCS);function IndexedCS(t,o,l){var h;_classCallCheck(this,IndexedCS);(h=r.call(this,"Indexed",1)).base=t;h.highVal=o;var d=t.numComps*o;h.lookup=new Uint8Array(d);if((0,u.isStream)(l)){var m=l.getBytes(d);h.lookup.set(m)}else{if("string"!=typeof l)throw new c.FormatError("IndexedCS - unrecognized lookup table: ".concat(l));for(var g=0;g<d;++g)h.lookup[g]=255&l.charCodeAt(g)}return h}_createClass(IndexedCS,[{key:"getRgbItem",value:function getRgbItem(t,r,o,l){var c=this.base.numComps,u=t[r]*c;this.base.getRgbBuffer(this.lookup,u,1,o,l,8,0)}},{key:"getRgbBuffer",value:function getRgbBuffer(t,r,o,l,c,u,h){for(var d=this.base,m=d.numComps,g=d.getOutputLength(m,h),y=this.lookup,v=0;v<o;++v){var S=t[r++]*m;d.getRgbBuffer(y,S,1,l,c,8,h);c+=g}}},{key:"getOutputLength",value:function getOutputLength(t,r){return this.base.getOutputLength(t*this.base.numComps,r)}},{key:"isDefaultDecode",value:function isDefaultDecode(t,r){if(!Array.isArray(t))return!0;if(2!==t.length){(0,c.warn)("Decode map length is not correct");return!0}if(!Number.isInteger(r)||r<1){(0,c.warn)("Bits per component is not correct");return!0}return 0===t[0]&&t[1]===(1<<r)-1}}]);return IndexedCS}(d),v=function(t){_inherits(DeviceGrayCS,t);var r=_createSuper(DeviceGrayCS);function DeviceGrayCS(){_classCallCheck(this,DeviceGrayCS);return r.call(this,"DeviceGray",1)}_createClass(DeviceGrayCS,[{key:"getRgbItem",value:function getRgbItem(t,r,o,l){var c=255*t[r];o[l]=o[l+1]=o[l+2]=c}},{key:"getRgbBuffer",value:function getRgbBuffer(t,r,o,l,c,u,h){for(var d=255/((1<<u)-1),m=r,g=c,y=0;y<o;++y){var v=d*t[m++];l[g++]=v;l[g++]=v;l[g++]=v;g+=h}}},{key:"getOutputLength",value:function getOutputLength(t,r){return t*(3+r)}}]);return DeviceGrayCS}(d),S=function(t){_inherits(DeviceRgbCS,t);var r=_createSuper(DeviceRgbCS);function DeviceRgbCS(){_classCallCheck(this,DeviceRgbCS);return r.call(this,"DeviceRGB",3)}_createClass(DeviceRgbCS,[{key:"getRgbItem",value:function getRgbItem(t,r,o,l){o[l]=255*t[r];o[l+1]=255*t[r+1];o[l+2]=255*t[r+2]}},{key:"getRgbBuffer",value:function getRgbBuffer(t,r,o,l,c,u,h){if(8!==u||0!==h)for(var d=255/((1<<u)-1),m=r,g=c,y=0;y<o;++y){l[g++]=d*t[m++];l[g++]=d*t[m++];l[g++]=d*t[m++];g+=h}else l.set(t.subarray(r,r+3*o),c)}},{key:"getOutputLength",value:function getOutputLength(t,r){return t*(3+r)/3|0}},{key:"isPassthrough",value:function isPassthrough(t){return 8===t}}]);return DeviceRgbCS}(d),_=function DeviceCmykCSClosure(){function convertToRgb(t,r,o,l,c){var u=t[r]*o,h=t[r+1]*o,d=t[r+2]*o,m=t[r+3]*o;l[c]=255+u*(-4.387332384609988*u+54.48615194189176*h+18.82290502165302*d+212.25662451639585*m-285.2331026137004)+h*(1.7149763477362134*h-5.6096736904047315*d+-17.873870861415444*m-5.497006427196366)+d*(-2.5217340131683033*d-21.248923337353073*m+17.5119270841813)+m*(-21.86122147463605*m-189.48180835922747);l[c+1]=255+u*(8.841041422036149*u+60.118027045597366*h+6.871425592049007*d+31.159100130055922*m-79.2970844816548)+h*(-15.310361306967817*h+17.575251261109482*d+131.35250912493976*m-190.9453302588951)+d*(4.444339102852739*d+9.8632861493405*m-24.86741582555878)+m*(-20.737325471181034*m-187.80453709719578);l[c+2]=255+u*(.8842522430003296*u+8.078677503112928*h+30.89978309703729*d-.23883238689178934*m-14.183576799673286)+h*(10.49593273432072*h+63.02378494754052*d+50.606957656360734*m-112.23884253719248)+d*(.03296041114873217*d+115.60384449646641*m-193.58209356861505)+m*(-22.33816807309886*m-180.12613974708367)}return function(t){_inherits(DeviceCmykCS,t);var r=_createSuper(DeviceCmykCS);function DeviceCmykCS(){_classCallCheck(this,DeviceCmykCS);return r.call(this,"DeviceCMYK",4)}_createClass(DeviceCmykCS,[{key:"getRgbItem",value:function getRgbItem(t,r,o,l){convertToRgb(t,r,1,o,l)}},{key:"getRgbBuffer",value:function getRgbBuffer(t,r,o,l,c,u,h){for(var d=1/((1<<u)-1),m=0;m<o;m++){convertToRgb(t,r,d,l,c);r+=4;c+=3+h}}},{key:"getOutputLength",value:function getOutputLength(t,r){return t/4*(3+r)|0}}]);return DeviceCmykCS}(d)}(),k=function CalGrayCSClosure(){function convertToRgb(t,r,o,l,c,u){var h=r[o]*u,d=Math.pow(h,t.G),m=t.YW*d,g=Math.max(295.8*Math.pow(m,.3333333333333333)-40.8,0);l[c]=g;l[c+1]=g;l[c+2]=g}return function(t){_inherits(CalGrayCS,t);var r=_createSuper(CalGrayCS);function CalGrayCS(t,o,l){var u;_classCallCheck(this,CalGrayCS);u=r.call(this,"CalGray",1);if(!t)throw new c.FormatError("WhitePoint missing - required for color space CalGray");o=o||[0,0,0];l=l||1;u.XW=t[0];u.YW=t[1];u.ZW=t[2];u.XB=o[0];u.YB=o[1];u.ZB=o[2];u.G=l;if(u.XW<0||u.ZW<0||1!==u.YW)throw new c.FormatError("Invalid WhitePoint components for ".concat(u.name)+", no fallback available");if(u.XB<0||u.YB<0||u.ZB<0){(0,c.info)("Invalid BlackPoint for ".concat(u.name,", falling back to default."));u.XB=u.YB=u.ZB=0}0===u.XB&&0===u.YB&&0===u.ZB||(0,c.warn)("".concat(u.name,", BlackPoint: XB: ").concat(u.XB,", YB: ").concat(u.YB,", ")+"ZB: ".concat(u.ZB,", only default values are supported."));if(u.G<1){(0,c.info)("Invalid Gamma: ".concat(u.G," for ").concat(u.name,", ")+"falling back to default.");u.G=1}return u}_createClass(CalGrayCS,[{key:"getRgbItem",value:function getRgbItem(t,r,o,l){convertToRgb(this,t,r,o,l,1)}},{key:"getRgbBuffer",value:function getRgbBuffer(t,r,o,l,c,u,h){for(var d=1/((1<<u)-1),m=0;m<o;++m){convertToRgb(this,t,r,l,c,d);r+=1;c+=3+h}}},{key:"getOutputLength",value:function getOutputLength(t,r){return t*(3+r)}}]);return CalGrayCS}(d)}(),C=function CalRGBCSClosure(){var t=new Float32Array([.8951,.2664,-.1614,-.7502,1.7135,.0367,.0389,-.0685,1.0296]),r=new Float32Array([.9869929,-.1470543,.1599627,.4323053,.5183603,.0492912,-.0085287,.0400428,.9684867]),o=new Float32Array([3.2404542,-1.5371385,-.4985314,-.969266,1.8760108,.041556,.0556434,-.2040259,1.0572252]),l=new Float32Array([1,1,1]),u=new Float32Array(3),h=new Float32Array(3),m=new Float32Array(3),g=Math.pow(24/116,3)/8;function matrixProduct(t,r,o){o[0]=t[0]*r[0]+t[1]*r[1]+t[2]*r[2];o[1]=t[3]*r[0]+t[4]*r[1]+t[5]*r[2];o[2]=t[6]*r[0]+t[7]*r[1]+t[8]*r[2]}function sRGBTransferFunction(t){return t<=.0031308?adjustToRange(0,1,12.92*t):t>=.99554525?1:adjustToRange(0,1,1.055*Math.pow(t,1/2.4)-.055)}function adjustToRange(t,r,o){return Math.max(t,Math.min(r,o))}function decodeL(t){return t<0?-decodeL(-t):t>8?Math.pow((t+16)/116,3):t*g}function convertToRgb(c,d,g,y,v,S){var _=adjustToRange(0,1,d[g]*S),k=adjustToRange(0,1,d[g+1]*S),C=adjustToRange(0,1,d[g+2]*S),w=1===_?1:Math.pow(_,c.GR),x=1===k?1:Math.pow(k,c.GG),O=1===C?1:Math.pow(C,c.GB),T=c.MXA*w+c.MXB*x+c.MXC*O,R=c.MYA*w+c.MYB*x+c.MYC*O,E=c.MZA*w+c.MZB*x+c.MZC*O,M=h;M[0]=T;M[1]=R;M[2]=E;var D=m;!function normalizeWhitePointToFlat(o,l,c){if(1!==o[0]||1!==o[2]){var h=c;matrixProduct(t,l,h);var d=u;!function convertToFlat(t,r,o){o[0]=1*r[0]/t[0];o[1]=1*r[1]/t[1];o[2]=1*r[2]/t[2]}(o,h,d);matrixProduct(r,d,c)}else{c[0]=l[0];c[1]=l[1];c[2]=l[2]}}(c.whitePoint,M,D);var j=h;!function compensateBlackPoint(t,r,o){if(0!==t[0]||0!==t[1]||0!==t[2]){var l=decodeL(0),c=(1-l)/(1-decodeL(t[0])),u=1-c,h=(1-l)/(1-decodeL(t[1])),d=1-h,m=(1-l)/(1-decodeL(t[2])),g=1-m;o[0]=r[0]*c+u;o[1]=r[1]*h+d;o[2]=r[2]*m+g}else{o[0]=r[0];o[1]=r[1];o[2]=r[2]}}(c.blackPoint,D,j);var L=m;!function normalizeWhitePointToD65(o,l,c){var h=c;matrixProduct(t,l,h);var d=u;!function convertToD65(t,r,o){o[0]=.95047*r[0]/t[0];o[1]=1*r[1]/t[1];o[2]=1.08883*r[2]/t[2]}(o,h,d);matrixProduct(r,d,c)}(l,j,L);var N=h;matrixProduct(o,L,N);y[v]=255*sRGBTransferFunction(N[0]);y[v+1]=255*sRGBTransferFunction(N[1]);y[v+2]=255*sRGBTransferFunction(N[2])}return function(t){_inherits(CalRGBCS,t);var r=_createSuper(CalRGBCS);function CalRGBCS(t,o,l,u){var h;_classCallCheck(this,CalRGBCS);h=r.call(this,"CalRGB",3);if(!t)throw new c.FormatError("WhitePoint missing - required for color space CalRGB");o=o||new Float32Array(3);l=l||new Float32Array([1,1,1]);u=u||new Float32Array([1,0,0,0,1,0,0,0,1]);var d=t[0],m=t[1],g=t[2];h.whitePoint=t;var y=o[0],v=o[1],S=o[2];h.blackPoint=o;h.GR=l[0];h.GG=l[1];h.GB=l[2];h.MXA=u[0];h.MYA=u[1];h.MZA=u[2];h.MXB=u[3];h.MYB=u[4];h.MZB=u[5];h.MXC=u[6];h.MYC=u[7];h.MZC=u[8];if(d<0||g<0||1!==m)throw new c.FormatError("Invalid WhitePoint components for ".concat(h.name)+", no fallback available");if(y<0||v<0||S<0){(0,c.info)("Invalid BlackPoint for ".concat(h.name," [").concat(y,", ").concat(v,", ").concat(S,"], ")+"falling back to default.");h.blackPoint=new Float32Array(3)}if(h.GR<0||h.GG<0||h.GB<0){(0,c.info)("Invalid Gamma [".concat(h.GR,", ").concat(h.GG,", ").concat(h.GB,"] for ")+"".concat(h.name,", falling back to default."));h.GR=h.GG=h.GB=1}return h}_createClass(CalRGBCS,[{key:"getRgbItem",value:function getRgbItem(t,r,o,l){convertToRgb(this,t,r,o,l,1)}},{key:"getRgbBuffer",value:function getRgbBuffer(t,r,o,l,c,u,h){for(var d=1/((1<<u)-1),m=0;m<o;++m){convertToRgb(this,t,r,l,c,d);r+=3;c+=3+h}}},{key:"getOutputLength",value:function getOutputLength(t,r){return t*(3+r)/3|0}}]);return CalRGBCS}(d)}(),w=function LabCSClosure(){function fn_g(t){return t>=6/29?Math.pow(t,3):108/841*(t-4/29)}function decode(t,r,o,l){return o+t*(l-o)/r}function convertToRgb(t,r,o,l,c,u){var h=r[o],d=r[o+1],m=r[o+2];if(!1!==l){h=decode(h,l,0,100);d=decode(d,l,t.amin,t.amax);m=decode(m,l,t.bmin,t.bmax)}d>t.amax?d=t.amax:d<t.amin&&(d=t.amin);m>t.bmax?m=t.bmax:m<t.bmin&&(m=t.bmin);var g,y,v,S=(h+16)/116,_=S+d/500,k=S-m/200,C=t.XW*fn_g(_),w=t.YW*fn_g(S),x=t.ZW*fn_g(k);if(t.ZW<1){g=3.1339*C+-1.617*w+-.4906*x;y=-.9785*C+1.916*w+.0333*x;v=.072*C+-.229*w+1.4057*x}else{g=3.2406*C+-1.5372*w+-.4986*x;y=-.9689*C+1.8758*w+.0415*x;v=.0557*C+-.204*w+1.057*x}c[u]=255*Math.sqrt(g);c[u+1]=255*Math.sqrt(y);c[u+2]=255*Math.sqrt(v)}return function(t){_inherits(LabCS,t);var r=_createSuper(LabCS);function LabCS(t,o,l){var u;_classCallCheck(this,LabCS);u=r.call(this,"Lab",3);if(!t)throw new c.FormatError("WhitePoint missing - required for color space Lab");o=o||[0,0,0];l=l||[-100,100,-100,100];u.XW=t[0];u.YW=t[1];u.ZW=t[2];u.amin=l[0];u.amax=l[1];u.bmin=l[2];u.bmax=l[3];u.XB=o[0];u.YB=o[1];u.ZB=o[2];if(u.XW<0||u.ZW<0||1!==u.YW)throw new c.FormatError("Invalid WhitePoint components, no fallback available");if(u.XB<0||u.YB<0||u.ZB<0){(0,c.info)("Invalid BlackPoint, falling back to default");u.XB=u.YB=u.ZB=0}if(u.amin>u.amax||u.bmin>u.bmax){(0,c.info)("Invalid Range, falling back to defaults");u.amin=-100;u.amax=100;u.bmin=-100;u.bmax=100}return u}_createClass(LabCS,[{key:"getRgbItem",value:function getRgbItem(t,r,o,l){convertToRgb(this,t,r,!1,o,l)}},{key:"getRgbBuffer",value:function getRgbBuffer(t,r,o,l,c,u,h){for(var d=(1<<u)-1,m=0;m<o;m++){convertToRgb(this,t,r,d,l,c);r+=3;c+=3+h}}},{key:"getOutputLength",value:function getOutputLength(t,r){return t*(3+r)/3|0}},{key:"isDefaultDecode",value:function isDefaultDecode(t,r){return!0}},{key:"usesZeroToOneRange",get:function get(){return(0,c.shadow)(this,"usesZeroToOneRange",!1)}}]);return LabCS}(d)}()},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.PartialEvaluator=r.EvaluatorPreprocessor=void 0;var l=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(o(2)),c=o(4),u=o(139),h=o(118),d=o(157),m=o(131),g=o(132),y=o(160),v=o(134),S=o(168),_=o(125),k=o(161),C=o(169),w=o(140),x=o(171),O=o(123),T=o(172),R=o(137),E=o(142),M=o(133),D=o(122),j=o(173),L=o(174),N=o(175),U=o(176);function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||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 asyncGeneratorStep(t,r,o,l,c,u,h){try{var d=t[u](h),m=d.value}catch(t){o(t);return}d.done?r(m):Promise.resolve(m).then(l,c)}function _asyncToGenerator(t){return function(){var r=this,o=arguments;return new Promise((function(l,c){var u=t.apply(r,o);function _next(t){asyncGeneratorStep(u,l,c,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(u,l,c,_next,_throw,"throw",t)}_next(void 0)}))}}function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}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 u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var H=Object.freeze({maxImageSize:-1,disableFontFace:!1,ignoreErrors:!1,isEvalSupported:!0,fontExtraProperties:!1,useSystemFonts:!0,cMapUrl:null,standardFontDataUrl:null}),W=1,$=2,q=Promise.resolve();function normalizeBlendMode(t){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(Array.isArray(t)){for(var o=0,l=t.length;o<l;o++){var u=normalizeBlendMode(t[o],!0);if(u)return u}(0,c.warn)("Unsupported blend mode Array: ".concat(t));return"source-over"}if(!(0,h.isName)(t))return r?null:"source-over";switch(t.name){case"Normal":case"Compatible":return"source-over";case"Multiply":return"multiply";case"Screen":return"screen";case"Overlay":return"overlay";case"Darken":return"darken";case"Lighten":return"lighten";case"ColorDodge":return"color-dodge";case"ColorBurn":return"color-burn";case"HardLight":return"hard-light";case"SoftLight":return"soft-light";case"Difference":return"difference";case"Exclusion":return"exclusion";case"Hue":return"hue";case"Saturation":return"saturation";case"Color":return"color";case"Luminosity":return"luminosity"}if(r)return null;(0,c.warn)("Unsupported blend mode: ".concat(t.name));return"source-over"}var X=function(){function TimeSlotManager(){_classCallCheck(this,TimeSlotManager);this.reset()}_createClass(TimeSlotManager,[{key:"check",value:function check(){if(++this.checked<TimeSlotManager.CHECK_TIME_EVERY)return!1;this.checked=0;return this.endTime<=Date.now()}},{key:"reset",value:function reset(){this.endTime=Date.now()+TimeSlotManager.TIME_SLOT_DURATION_MS;this.checked=0}}],[{key:"TIME_SLOT_DURATION_MS",get:function get(){return(0,c.shadow)(this,"TIME_SLOT_DURATION_MS",20)}},{key:"CHECK_TIME_EVERY",get:function get(){return(0,c.shadow)(this,"CHECK_TIME_EVERY",100)}}]);return TimeSlotManager}(),z=function(){function PartialEvaluator(t){var r=t.xref,o=t.handler,l=t.pageIndex,c=t.idFactory,u=t.fontCache,h=t.builtInCMapCache,d=t.standardFontDataCache,m=t.globalImageCache,g=t.options,y=void 0===g?null:g;_classCallCheck(this,PartialEvaluator);this.xref=r;this.handler=o;this.pageIndex=l;this.idFactory=c;this.fontCache=u;this.builtInCMapCache=h;this.standardFontDataCache=d;this.globalImageCache=m;this.options=y||H;this.parsingType3Font=!1;this._fetchBuiltInCMapBound=this.fetchBuiltInCMap.bind(this)}_createClass(PartialEvaluator,[{key:"_pdfFunctionFactory",get:function get(){var t=new C.PDFFunctionFactory({xref:this.xref,isEvalSupported:this.options.isEvalSupported});return(0,c.shadow)(this,"_pdfFunctionFactory",t)}},{key:"clone",value:function clone(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,r=Object.create(this);r.options=Object.assign(Object.create(null),this.options,t);return r}},{key:"hasBlendModes",value:function hasBlendModes(t,r){if(!(t instanceof h.Dict))return!1;if(t.objId&&r.has(t.objId))return!1;var o=new h.RefSet(r);t.objId&&o.put(t.objId);for(var l=[t],u=this.xref;l.length;){var d=l.shift(),m=d.get("ExtGState");if(m instanceof h.Dict){var g,y=_createForOfIteratorHelper(m.getRawValues());try{for(y.s();!(g=y.n()).done;){var v=g.value;if(v instanceof h.Ref){if(o.has(v))continue;try{v=u.fetch(v)}catch(t){o.put(v);(0,c.info)('hasBlendModes - ignoring ExtGState: "'.concat(t,'".'));continue}}if(v instanceof h.Dict){v.objId&&o.put(v.objId);var S=v.get("BM");if(S instanceof h.Name){if("Normal"!==S.name)return!0}else if(void 0!==S&&Array.isArray(S)){var _,k=_createForOfIteratorHelper(S);try{for(k.s();!(_=k.n()).done;){var C=_.value;if(C instanceof h.Name&&"Normal"!==C.name)return!0}}catch(t){k.e(t)}finally{k.f()}}}}}catch(t){y.e(t)}finally{y.f()}}var w=d.get("XObject");if(w instanceof h.Dict){var x,O=_createForOfIteratorHelper(w.getRawValues());try{for(O.s();!(x=O.n()).done;){var T=x.value;if(T instanceof h.Ref){if(o.has(T))continue;try{T=u.fetch(T)}catch(t){o.put(T);(0,c.info)('hasBlendModes - ignoring XObject: "'.concat(t,'".'));continue}}if((0,h.isStream)(T)){T.dict.objId&&o.put(T.dict.objId);var R=T.dict.get("Resources");if(R instanceof h.Dict&&(!R.objId||!o.has(R.objId))){l.push(R);R.objId&&o.put(R.objId)}}}}catch(t){O.e(t)}finally{O.f()}}}o.forEach((function(t){r.put(t)}));return!1}},{key:"fetchBuiltInCMap",value:(Z=_asyncToGenerator(l.default.mark((function _callee(t){var r,o,u,h;return l.default.wrap((function _callee$(l){for(;;)switch(l.prev=l.next){case 0:if(!(r=this.builtInCMapCache.get(t))){l.next=3;break}return l.abrupt("return",r);case 3:if(null===this.options.cMapUrl){l.next=19;break}u="".concat(this.options.cMapUrl).concat(t,".bcmap");l.next=7;return fetch(u);case 7:if((h=l.sent).ok){l.next=10;break}throw new Error('fetchBuiltInCMap: failed to fetch file "'.concat(u,'" with "').concat(h.statusText,'".'));case 10:l.t0=Uint8Array;l.next=13;return h.arrayBuffer();case 13:l.t1=l.sent;l.t2=new l.t0(l.t1);l.t3=c.CMapCompressionType.BINARY;o={cMapData:l.t2,compressionType:l.t3};l.next=22;break;case 19:l.next=21;return this.handler.sendWithPromise("FetchBuiltInCMap",{name:t});case 21:o=l.sent;case 22:o.compressionType!==c.CMapCompressionType.NONE&&this.builtInCMapCache.set(t,o);return l.abrupt("return",o);case 24:case"end":return l.stop()}}),_callee,this)}))),function fetchBuiltInCMap(t){return Z.apply(this,arguments)})},{key:"fetchStandardFontData",value:(Q=_asyncToGenerator(l.default.mark((function _callee2(t){var r,o,u,h,d,m;return l.default.wrap((function _callee2$(l){for(;;)switch(l.prev=l.next){case 0:if(!(r=this.standardFontDataCache.get(t))){l.next=3;break}return l.abrupt("return",new O.Stream(r));case 3:if(!this.options.useSystemFonts||"Symbol"===t||"ZapfDingbats"===t){l.next=5;break}return l.abrupt("return",null);case 5:o=(0,y.getFontNameToFileMap)(),u=o[t];if(null===this.options.standardFontDataUrl){l.next=20;break}d="".concat(this.options.standardFontDataUrl).concat(u);l.next=10;return fetch(d);case 10:if((m=l.sent).ok){l.next=15;break}(0,c.warn)('fetchStandardFontData: failed to fetch file "'.concat(d,'" with "').concat(m.statusText,'".'));l.next=18;break;case 15:l.next=17;return m.arrayBuffer();case 17:h=l.sent;case 18:l.next=29;break;case 20:l.prev=20;l.next=23;return this.handler.sendWithPromise("FetchStandardFontData",{filename:u});case 23:h=l.sent;l.next=29;break;case 26:l.prev=26;l.t0=l.catch(20);(0,c.warn)('fetchStandardFontData: failed to fetch file "'.concat(u,'" with "').concat(l.t0,'".'));case 29:if(h){l.next=31;break}return l.abrupt("return",null);case 31:this.standardFontDataCache.set(t,h);return l.abrupt("return",new O.Stream(h));case 33:case"end":return l.stop()}}),_callee2,this,[[20,26]])}))),function fetchStandardFontData(t){return Q.apply(this,arguments)})},{key:"buildFormXObject",value:(z=_asyncToGenerator(l.default.mark((function _callee3(t,r,o,u,d,m,g){var y,v,S,_,k,C,w,x,O,T;return l.default.wrap((function _callee3$(l){for(;;)switch(l.prev=l.next){case 0:y=r.dict;v=y.getArray("Matrix");S=y.getArray("BBox");S=Array.isArray(S)&&4===S.length?c.Util.normalizeRect(S):null;if(!y.has("OC")){l.next=8;break}l.next=7;return this.parseMarkedContentProps(y.get("OC"),t);case 7:_=l.sent;case 8:void 0!==_&&u.addOp(c.OPS.beginMarkedContentProps,["OC",_]);if(!(C=y.get("Group"))){l.next=29;break}k={matrix:v,bbox:S,smask:o,isolated:!1,knockout:!1};w=C.get("S");x=null;if(!(0,h.isName)(w,"Transparency")){l.next=27;break}k.isolated=C.get("I")||!1;k.knockout=C.get("K")||!1;if(!C.has("CS")){l.next=27;break}O=C.getRaw("CS");if(!(T=R.ColorSpace.getCached(O,this.xref,g))){l.next=24;break}x=T;l.next=27;break;case 24:l.next=26;return this.parseColorSpace({cs:O,resources:t,localColorSpaceCache:g});case 26:x=l.sent;case 27:if(o&&o.backdrop){x=x||R.ColorSpace.singletons.rgb;o.backdrop=x.getRgb(o.backdrop,0)}u.addOp(c.OPS.beginGroup,[k]);case 29:u.addOp(c.OPS.paintFormXObjectBegin,[v,S]);return l.abrupt("return",this.getOperatorList({stream:r,task:d,resources:y.get("Resources")||t,operatorList:u,initialState:m}).then((function(){u.addOp(c.OPS.paintFormXObjectEnd,[]);C&&u.addOp(c.OPS.endGroup,[k]);void 0!==_&&u.addOp(c.OPS.endMarkedContent,[])})));case 31:case"end":return l.stop()}}),_callee3,this)}))),function buildFormXObject(t,r,o,l,c,u,h){return z.apply(this,arguments)})},{key:"_sendImgData",value:function _sendImgData(t,r){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],l=r?[r.data.buffer]:null;return this.parsingType3Font||o?this.handler.send("commonobj",[t,"Image",r],l):this.handler.send("obj",[t,this.pageIndex,"Image",r],l)}},{key:"buildPaintImageXObject",value:(D=_asyncToGenerator(l.default.mark((function _callee4(t){var r,o,u,h,d,m,g,y,v,S,_,k,C,w,x,O,T,R,M,D,j,L,N,H,W,$,q,X,z=this;return l.default.wrap((function _callee4$(l){for(;;)switch(l.prev=l.next){case 0:r=t.resources,o=t.image,u=t.isInline,h=void 0!==u&&u,d=t.operatorList,m=t.cacheKey,g=t.localImageCache,y=t.localColorSpaceCache;v=o.dict;S=v.objId;_=v.get("Width","W");k=v.get("Height","H");if(_&&(0,c.isNum)(_)&&k&&(0,c.isNum)(k)){l.next=8;break}(0,c.warn)("Image dimensions are missing, or not numbers.");return l.abrupt("return");case 8:if(!(-1!==(C=this.options.maxImageSize)&&_*k>C)){l.next=12;break}(0,c.warn)("Image exceeded maximum allowed size and was removed.");return l.abrupt("return");case 12:if(!v.has("OC")){l.next=16;break}l.next=15;return this.parseMarkedContentProps(v.get("OC"),r);case 15:w=l.sent;case 16:void 0!==w&&d.addOp(c.OPS.beginMarkedContentProps,["OC",w]);x=v.get("ImageMask","IM")||!1;O=v.get("Interpolate","I");if(!x){l.next=32;break}M=v.get("Width","W");D=v.get("Height","H");j=M+7>>3;L=o.getBytes(j*D,!0);N=v.getArray("Decode","D");(T=U.PDFImage.createMask({imgArray:L,width:M,height:D,imageIsFromDecodeStream:o instanceof E.DecodeStream,inverseDecode:!!N&&N[0]>0,interpolate:O})).cached=!!m;R=[T];d.addOp(c.OPS.paintImageMaskXObject,R);m&&g.set(m,S,{fn:c.OPS.paintImageMaskXObject,args:R});void 0!==w&&d.addOp(c.OPS.endMarkedContent,[]);return l.abrupt("return");case 32:H=v.get("SMask","SM")||!1;W=v.get("Mask")||!1;if(!h||H||W||!(_+k<200)){l.next=41;break}$=new U.PDFImage({xref:this.xref,res:r,image:o,isInline:h,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:y});T=$.createImageData(!0);d.addOp(c.OPS.paintInlineImageXObject,[T]);void 0!==w&&d.addOp(c.OPS.endMarkedContent,[]);return l.abrupt("return");case 41:q="img_".concat(this.idFactory.createObjId()),X=!1;this.parsingType3Font?q="".concat(this.idFactory.getDocId(),"_type3_").concat(q):S&&(X=this.globalImageCache.shouldCache(S,this.pageIndex))&&(q="".concat(this.idFactory.getDocId(),"_").concat(q));d.addDependency(q);R=[q,_,k];U.PDFImage.buildImage({xref:this.xref,res:r,image:o,isInline:h,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:y}).then((function(t){T=t.createImageData(!1);m&&S&&X&&z.globalImageCache.addByteSize(S,T.data.length);return z._sendImgData(q,T,X)})).catch((function(t){(0,c.warn)('Unable to decode image "'.concat(q,'": "').concat(t,'".'));return z._sendImgData(q,null,X)}));d.addOp(c.OPS.paintImageXObject,R);if(m){g.set(m,S,{fn:c.OPS.paintImageXObject,args:R});if(S){(0,c.assert)(!h,"Cannot cache an inline image globally.");this.globalImageCache.addPageIndex(S,this.pageIndex);X&&this.globalImageCache.setData(S,{objId:q,fn:c.OPS.paintImageXObject,args:R,byteSize:0})}}void 0!==w&&d.addOp(c.OPS.endMarkedContent,[]);case 49:case"end":return l.stop()}}),_callee4,this)}))),function buildPaintImageXObject(t){return D.apply(this,arguments)})},{key:"handleSMask",value:function handleSMask(t,r,o,l,c,u){var h=t.get("G"),d={subtype:t.get("S").name,backdrop:t.get("BC")},m=t.get("TR");if((0,C.isPDFFunction)(m)){for(var g=this._pdfFunctionFactory.create(m),y=new Uint8Array(256),v=new Float32Array(1),S=0;S<256;S++){v[0]=S/255;g(v,0,v,0);y[S]=255*v[0]|0}d.transferMap=y}return this.buildFormXObject(r,h,d,o,l,c.state.clone(),u)}},{key:"handleTransferFunction",value:function handleTransferFunction(t){var r;if(Array.isArray(t))r=t;else{if(!(0,C.isPDFFunction)(t))return null;r=[t]}var o,l=[],c=0,u=0,d=_createForOfIteratorHelper(r);try{for(d.s();!(o=d.n()).done;){var m=o.value,g=this.xref.fetchIfRef(m);c++;if((0,h.isName)(g,"Identity"))l.push(null);else{if(!(0,C.isPDFFunction)(g))return null;for(var y=this._pdfFunctionFactory.create(g),v=new Uint8Array(256),S=new Float32Array(1),_=0;_<256;_++){S[0]=_/255;y(S,0,S,0);v[_]=255*S[0]|0}l.push(v);u++}}}catch(t){d.e(t)}finally{d.f()}return 1!==c&&4!==c||0===u?null:l}},{key:"handleTilingType",value:function handleTilingType(t,r,o,l,u,d,m,g){var y=this,v=new N.OperatorList,_=h.Dict.merge({xref:this.xref,dictArray:[u.get("Resources"),o]});return this.getOperatorList({stream:l,task:m,resources:_,operatorList:v}).then((function(){var o=v.getIR(),l=(0,S.getTilingPatternIR)(o,u,r);d.addDependencies(v.dependencies);d.addOp(t,l);u.objId&&g.set(null,u.objId,{operatorListIR:o,dict:u})})).catch((function(t){if(!(t instanceof c.AbortException)){if(!y.options.ignoreErrors)throw t;y.handler.send("UnsupportedFeature",{featureId:c.UNSUPPORTED_FEATURES.errorTilingPattern});(0,c.warn)('handleTilingType - ignoring pattern: "'.concat(t,'".'))}}))}},{key:"handleSetFont",value:function handleSetFont(t,r,o,l,u,m){var g=this,y=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,v=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,S=r&&r[0]instanceof h.Name?r[0].name:null;return this.loadFont(S,o,t,y,v).then((function(r){return r.font.isType3Font?r.loadType3Data(g,t,u).then((function(){l.addDependencies(r.type3Dependencies);return r})).catch((function(t){g.handler.send("UnsupportedFeature",{featureId:c.UNSUPPORTED_FEATURES.errorFontLoadType3});return new G({loadedName:"g_font_error",font:new d.ErrorFont("Type3 font load error: ".concat(t)),dict:r.font,evaluatorOptions:g.options})})):r})).then((function(t){m.font=t.font;t.send(g.handler);return t.loadedName}))}},{key:"handleText",value:function handleText(t,r){var o=r.font,l=o.charsToGlyphs(t);if(o.data){(!!(r.textRenderingMode&c.TextRenderingMode.ADD_TO_PATH_FLAG)||"Pattern"===r.fillColorSpace.name||o.disableFontFace||this.options.disableFontFace)&&PartialEvaluator.buildFontPaths(o,l,this.handler,this.options)}return l}},{key:"ensureStateFont",value:function ensureStateFont(t){if(!t.font){var r=new c.FormatError("Missing setFont (Tf) operator before text rendering operator.");if(!this.options.ignoreErrors)throw r;this.handler.send("UnsupportedFeature",{featureId:c.UNSUPPORTED_FEATURES.errorFontState});(0,c.warn)('ensureStateFont: "'.concat(r,'".'))}}},{key:"setGState",value:(w=_asyncToGenerator(l.default.mark((function _callee5(t){var r,o,u,d,m,g,y,v,S,_,k,C,w,x,O,T,R=this;return l.default.wrap((function _callee5$(l){for(;;)switch(l.prev=l.next){case 0:r=t.resources,o=t.gState,u=t.operatorList,d=t.cacheKey,m=t.task,g=t.stateManager,y=t.localGStateCache,v=t.localColorSpaceCache;S=o.objId;_=!0;k=[];C=o.getKeys();w=Promise.resolve();x=function _loop(t,l){var d=C[t],y=o.get(d);switch(d){case"Type":break;case"LW":case"LC":case"LJ":case"ML":case"D":case"RI":case"FL":case"CA":case"ca":k.push([d,y]);break;case"Font":_=!1;w=w.then((function(){return R.handleSetFont(r,null,y[0],u,m,g.state).then((function(t){u.addDependency(t);k.push([d,[t,y[1]]])}))}));break;case"BM":k.push([d,normalizeBlendMode(y)]);break;case"SMask":if((0,h.isName)(y,"None")){k.push([d,!1]);break}if((0,h.isDict)(y)){_=!1;w=w.then((function(){return R.handleSMask(y,r,u,m,g,v)}));k.push([d,!0])}else(0,c.warn)("Unsupported SMask type");break;case"TR":var S=R.handleTransferFunction(y);k.push([d,S]);break;case"OP":case"op":case"OPM":case"BG":case"BG2":case"UCR":case"UCR2":case"TR2":case"HT":case"SM":case"SA":case"AIS":case"TK":(0,c.info)("graphic state operator "+d);break;default:(0,c.info)("Unknown graphic state operator "+d)}};for(O=0,T=C.length;O<T;O++)x(O);return l.abrupt("return",w.then((function(){k.length>0&&u.addOp(c.OPS.setGState,[k]);_&&y.set(d,S,k)})));case 9:case"end":return l.stop()}}),_callee5)}))),function setGState(t){return w.apply(this,arguments)})},{key:"loadFont",value:function loadFont(t,r,o){var u,g=this,y=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,v=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,S=function(){var o=_asyncToGenerator(l.default.mark((function _callee6(){return l.default.wrap((function _callee6$(o){for(;;)switch(o.prev=o.next){case 0:return o.abrupt("return",new G({loadedName:"g_font_error",font:new d.ErrorFont('Font "'.concat(t,'" is not available.')),dict:r,evaluatorOptions:g.options}));case 1:case"end":return o.stop()}}),_callee6)})));return function errorFont(){return o.apply(this,arguments)}}(),_=this.xref;if(r){if(!(0,h.isRef)(r))throw new c.FormatError('The "font" object should be a reference.');u=r}else{var k=o.get("Font");k&&(u=k.getRaw(t))}if(!u){var C='Font "'.concat(t||r&&r.toString(),'" is not available');if(!this.options.ignoreErrors&&!this.parsingType3Font){(0,c.warn)("".concat(C,"."));return S()}this.handler.send("UnsupportedFeature",{featureId:c.UNSUPPORTED_FEATURES.errorFontMissing});(0,c.warn)("".concat(C," -- attempting to fallback to a default font."));u=y||PartialEvaluator.fallbackFontDict}if(this.fontCache.has(u))return this.fontCache.get(u);r=_.fetchIfRef(u);if(!(0,h.isDict)(r))return S();if(r.cacheKey&&this.fontCache.has(r.cacheKey))return this.fontCache.get(r.cacheKey);var w,x=(0,c.createPromiseCapability)();try{(w=this.preEvaluateFont(r)).cssFontInfo=v}catch(t){(0,c.warn)('loadFont - preEvaluateFont failed: "'.concat(t,'".'));return S()}var O,T=w,R=T.descriptor,E=T.hash,M=(0,h.isRef)(u);M&&(O="f".concat(u.toString()));if(E&&(0,h.isDict)(R)){R.fontAliases||(R.fontAliases=Object.create(null));var D=R.fontAliases;if(D[E]){var j=D[E].aliasRef;if(M&&j&&this.fontCache.has(j)){this.fontCache.putAlias(u,j);return this.fontCache.get(u)}}else D[E]={fontID:this.idFactory.createFontId()};M&&(D[E].aliasRef=u);O=D[E].fontID}if(M)this.fontCache.put(u,x.promise);else{O||(O=this.idFactory.createFontId());r.cacheKey="cacheKey_".concat(O);this.fontCache.put(r.cacheKey,x.promise)}(0,c.assert)(O&&O.startsWith("f"),'The "fontID" must be (correctly) defined.');r.loadedName="".concat(this.idFactory.getDocId(),"_").concat(O);this.translateFont(w).then((function(t){if(void 0!==t.fontType){_.stats.fontTypes[t.fontType]=!0}x.resolve(new G({loadedName:r.loadedName,font:t,dict:r,evaluatorOptions:g.options}))})).catch((function(t){g.handler.send("UnsupportedFeature",{featureId:c.UNSUPPORTED_FEATURES.errorFontTranslate});(0,c.warn)('loadFont - translateFont failed: "'.concat(t,'".'));try{var o=R&&R.get("FontFile3"),l=o&&o.get("Subtype"),u=(0,m.getFontType)(w.type,l&&l.name);_.stats.fontTypes[u]=!0}catch(t){}x.resolve(new G({loadedName:r.loadedName,font:new d.ErrorFont(t instanceof Error?t.message:t),dict:r,evaluatorOptions:g.options}))}));return x.promise}},{key:"buildPath",value:function buildPath(t,r,o){var l=arguments.length>3&&void 0!==arguments[3]&&arguments[3],u=t.length-1;o||(o=[]);if(u<0||t.fnArray[u]!==c.OPS.constructPath){if(l){(0,c.warn)('Encountered path operator "'.concat(r,'" inside of a text object.'));t.addOp(c.OPS.save,null)}t.addOp(c.OPS.constructPath,[[r],o]);l&&t.addOp(c.OPS.restore,null)}else{var h=t.argsArray[u];h[0].push(r);Array.prototype.push.apply(h[1],o)}}},{key:"parseColorSpace",value:function parseColorSpace(t){var r=this,o=t.cs,l=t.resources,u=t.localColorSpaceCache;return R.ColorSpace.parseAsync({cs:o,xref:this.xref,resources:l,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:u}).catch((function(t){if(t instanceof c.AbortException)return null;if(r.options.ignoreErrors){r.handler.send("UnsupportedFeature",{featureId:c.UNSUPPORTED_FEATURES.errorColorSpace});(0,c.warn)('parseColorSpace - ignoring ColorSpace: "'.concat(t,'".'));return null}throw t}))}},{key:"parseShading",value:function parseShading(t){var r=t.shading,o=t.resources,l=t.localColorSpaceCache,c=t.localShadingPatternCache,u=c.get(r);if(!u){var h=S.Pattern.parseShading(r,this.xref,o,this.handler,this._pdfFunctionFactory,l).getIR();u="pattern_".concat(this.idFactory.createObjId());c.set(r,u);this.handler.send("obj",[u,this.pageIndex,"Pattern",h])}return u}},{key:"handleColorN",value:function handleColorN(t,r,o,l,u,d,m,g,y,v){var _=o.pop();if(_ instanceof h.Name){var k=u.getRaw(_.name),C=k instanceof h.Ref&&y.getByRef(k);if(C)try{var w=l.base?l.base.getRgb(o,0):null,x=(0,S.getTilingPatternIR)(C.operatorListIR,C.dict,w);t.addOp(r,x);return}catch(t){}var O=this.xref.fetchIfRef(k);if(O){var T=(0,h.isStream)(O)?O.dict:O,R=T.get("PatternType");if(R===W){var E=l.base?l.base.getRgb(o,0):null;return this.handleTilingType(r,E,d,O,T,t,m,y)}if(R===$){var M=T.get("Shading"),D=T.getArray("Matrix"),j=this.parseShading({shading:M,resources:d,localColorSpaceCache:g,localShadingPatternCache:v});t.addOp(r,["Shading",j,D]);return}throw new c.FormatError("Unknown PatternType: ".concat(R))}}throw new c.FormatError("Unknown PatternName: ".concat(_))}},{key:"_parseVisibilityExpression",value:function _parseVisibilityExpression(t,r,o){if(++r>10)(0,c.warn)("Visibility expression is too deeply nested");else{var l=t.length,u=this.xref.fetchIfRef(t[0]);if(l<2||!(0,h.isName)(u))(0,c.warn)("Invalid visibility expression");else{switch(u.name){case"And":case"Or":case"Not":o.push(u.name);break;default:(0,c.warn)("Invalid operator ".concat(u.name," in visibility expression"));return}for(var d=1;d<l;d++){var m=t[d],g=this.xref.fetchIfRef(m);if(Array.isArray(g)){var y=[];o.push(y);this._parseVisibilityExpression(g,r,y)}else(0,h.isRef)(m)&&o.push(m.toString())}}}}},{key:"parseMarkedContentProps",value:(o=_asyncToGenerator(l.default.mark((function _callee7(t,r){var o,u,d,m,g,y,v,S,_,k;return l.default.wrap((function _callee7$(l){for(;;)switch(l.prev=l.next){case 0:if(!(0,h.isName)(t)){l.next=5;break}u=r.get("Properties");o=u.get(t.name);l.next=10;break;case 5:if(!(0,h.isDict)(t)){l.next=9;break}o=t;l.next=10;break;case 9:throw new c.FormatError("Optional content properties malformed.");case 10:if("OCG"!==(d=o.get("Type").name)){l.next=15;break}return l.abrupt("return",{type:d,id:o.objId});case 15:if("OCMD"!==d){l.next=31;break}m=o.get("VE");if(!Array.isArray(m)){l.next=22;break}g=[];this._parseVisibilityExpression(m,0,g);if(!(g.length>0)){l.next=22;break}return l.abrupt("return",{type:"OCMD",expression:g});case 22:y=o.get("OCGs");if(!Array.isArray(y)&&!(0,h.isDict)(y)){l.next=29;break}v=[];if(Array.isArray(y)){S=_createForOfIteratorHelper(y);try{for(S.s();!(_=S.n()).done;){k=_.value;v.push(k.toString())}}catch(t){S.e(t)}finally{S.f()}}else v.push(y.objId);return l.abrupt("return",{type:d,ids:v,policy:(0,h.isName)(o.get("P"))?o.get("P").name:null,expression:null});case 29:if(!(0,h.isRef)(y)){l.next=31;break}return l.abrupt("return",{type:d,id:y.toString()});case 31:return l.abrupt("return",null);case 32:case"end":return l.stop()}}),_callee7,this)}))),function parseMarkedContentProps(t,r){return o.apply(this,arguments)})},{key:"getOperatorList",value:function getOperatorList(t){var r=this,o=t.stream,l=t.task,u=t.resources,d=t.operatorList,m=t.initialState,g=void 0===m?null:m,y=t.fallbackFontDict,v=void 0===y?null:y;u=u||h.Dict.empty;g=g||new K;if(!d)throw new Error('getOperatorList: missing "operatorList" parameter');var S=this,_=this.xref,k=!1,C=new x.LocalImageCache,w=new x.LocalColorSpaceCache,O=new x.LocalGStateCache,T=new x.LocalTilingPatternCache,E=new Map,M=u.get("XObject")||h.Dict.empty,D=u.get("Pattern")||h.Dict.empty,j=new V(g),L=new J(o,_,j),N=new X;function closePendingRestoreOPS(t){for(var r=0,o=L.savedStatesDepth;r<o;r++)d.addOp(c.OPS.restore,[])}return new Promise((function promiseBody(t,r){var o=function next(o){Promise.all([o,d.ready]).then((function(){try{promiseBody(t,r)}catch(t){r(t)}}),r)};l.ensureNotTerminated();N.reset();for(var m,g,y,x,U,H,W={};!(m=N.check());){W.args=null;if(!L.read(W))break;var $=W.args,X=W.fn;switch(0|X){case c.OPS.paintXObject:H=$[0]instanceof h.Name;U=$[0].name;if(H){var z=C.getByName(U);if(z){d.addOp(z.fn,z.args);$=null;continue}}o(new Promise((function(t,r){if(!H)throw new c.FormatError("XObject must be referred to by name.");var o=M.getRaw(U);if(o instanceof h.Ref){var m=C.getByRef(o);if(m){d.addOp(m.fn,m.args);t();return}var g=S.globalImageCache.getData(o,S.pageIndex);if(g){d.addDependency(g.objId);d.addOp(g.fn,g.args);t();return}o=_.fetch(o)}if(!(0,h.isStream)(o))throw new c.FormatError("XObject should be a stream");var y=o.dict.get("Subtype");if(!(0,h.isName)(y))throw new c.FormatError("XObject should have a Name subtype");if("Form"!==y.name)if("Image"!==y.name){if("PS"!==y.name)throw new c.FormatError("Unhandled XObject subtype ".concat(y.name));(0,c.info)("Ignored XObject subtype PS");t()}else S.buildPaintImageXObject({resources:u,image:o,operatorList:d,cacheKey:U,localImageCache:C,localColorSpaceCache:w}).then(t,r);else{j.save();S.buildFormXObject(u,o,null,d,l,j.state.clone(),w).then((function(){j.restore();t()}),r)}})).catch((function(t){if(!(t instanceof c.AbortException)){if(!S.options.ignoreErrors)throw t;S.handler.send("UnsupportedFeature",{featureId:c.UNSUPPORTED_FEATURES.errorXObject});(0,c.warn)('getOperatorList - ignoring XObject: "'.concat(t,'".'))}})));return;case c.OPS.setFont:var G=$[1];o(S.handleSetFont(u,$,null,d,l,j.state,v).then((function(t){d.addDependency(t);d.addOp(c.OPS.setFont,[t,G])})));return;case c.OPS.beginText:k=!0;break;case c.OPS.endText:k=!1;break;case c.OPS.endInlineImage:var V=$[0].cacheKey;if(V){var Y=C.getByName(V);if(Y){d.addOp(Y.fn,Y.args);$=null;continue}}o(S.buildPaintImageXObject({resources:u,image:$[0],isInline:!0,operatorList:d,cacheKey:V,localImageCache:C,localColorSpaceCache:w}));return;case c.OPS.showText:if(!j.state.font){S.ensureStateFont(j.state);continue}$[0]=S.handleText($[0],j.state);break;case c.OPS.showSpacedText:if(!j.state.font){S.ensureStateFont(j.state);continue}var K=$[0],J=[],Q=K.length,Z=j.state;for(g=0;g<Q;++g){var ee=K[g];(0,c.isString)(ee)?Array.prototype.push.apply(J,S.handleText(ee,Z)):(0,c.isNum)(ee)&&J.push(ee)}$[0]=J;X=c.OPS.showText;break;case c.OPS.nextLineShowText:if(!j.state.font){S.ensureStateFont(j.state);continue}d.addOp(c.OPS.nextLine);$[0]=S.handleText($[0],j.state);X=c.OPS.showText;break;case c.OPS.nextLineSetSpacingShowText:if(!j.state.font){S.ensureStateFont(j.state);continue}d.addOp(c.OPS.nextLine);d.addOp(c.OPS.setWordSpacing,[$.shift()]);d.addOp(c.OPS.setCharSpacing,[$.shift()]);$[0]=S.handleText($[0],j.state);X=c.OPS.showText;break;case c.OPS.setTextRenderingMode:j.state.textRenderingMode=$[0];break;case c.OPS.setFillColorSpace:var te=R.ColorSpace.getCached($[0],_,w);if(te){j.state.fillColorSpace=te;continue}o(S.parseColorSpace({cs:$[0],resources:u,localColorSpaceCache:w}).then((function(t){t&&(j.state.fillColorSpace=t)})));return;case c.OPS.setStrokeColorSpace:var re=R.ColorSpace.getCached($[0],_,w);if(re){j.state.strokeColorSpace=re;continue}o(S.parseColorSpace({cs:$[0],resources:u,localColorSpaceCache:w}).then((function(t){t&&(j.state.strokeColorSpace=t)})));return;case c.OPS.setFillColor:$=(x=j.state.fillColorSpace).getRgb($,0);X=c.OPS.setFillRGBColor;break;case c.OPS.setStrokeColor:$=(x=j.state.strokeColorSpace).getRgb($,0);X=c.OPS.setStrokeRGBColor;break;case c.OPS.setFillGray:j.state.fillColorSpace=R.ColorSpace.singletons.gray;$=R.ColorSpace.singletons.gray.getRgb($,0);X=c.OPS.setFillRGBColor;break;case c.OPS.setStrokeGray:j.state.strokeColorSpace=R.ColorSpace.singletons.gray;$=R.ColorSpace.singletons.gray.getRgb($,0);X=c.OPS.setStrokeRGBColor;break;case c.OPS.setFillCMYKColor:j.state.fillColorSpace=R.ColorSpace.singletons.cmyk;$=R.ColorSpace.singletons.cmyk.getRgb($,0);X=c.OPS.setFillRGBColor;break;case c.OPS.setStrokeCMYKColor:j.state.strokeColorSpace=R.ColorSpace.singletons.cmyk;$=R.ColorSpace.singletons.cmyk.getRgb($,0);X=c.OPS.setStrokeRGBColor;break;case c.OPS.setFillRGBColor:j.state.fillColorSpace=R.ColorSpace.singletons.rgb;$=R.ColorSpace.singletons.rgb.getRgb($,0);break;case c.OPS.setStrokeRGBColor:j.state.strokeColorSpace=R.ColorSpace.singletons.rgb;$=R.ColorSpace.singletons.rgb.getRgb($,0);break;case c.OPS.setFillColorN:if("Pattern"===(x=j.state.fillColorSpace).name){o(S.handleColorN(d,c.OPS.setFillColorN,$,x,D,u,l,w,T,E));return}$=x.getRgb($,0);X=c.OPS.setFillRGBColor;break;case c.OPS.setStrokeColorN:if("Pattern"===(x=j.state.strokeColorSpace).name){o(S.handleColorN(d,c.OPS.setStrokeColorN,$,x,D,u,l,w,T,E));return}$=x.getRgb($,0);X=c.OPS.setStrokeRGBColor;break;case c.OPS.shadingFill:var ae=u.get("Shading");if(!ae)throw new c.FormatError("No shading resource found");var ne=ae.get($[0].name);if(!ne)throw new c.FormatError("No shading object found");$=[S.parseShading({shading:ne,resources:u,localColorSpaceCache:w,localShadingPatternCache:E})];X=c.OPS.shadingFill;break;case c.OPS.setGState:H=$[0]instanceof h.Name;U=$[0].name;if(H){var ie=O.getByName(U);if(ie){ie.length>0&&d.addOp(c.OPS.setGState,[ie]);$=null;continue}}o(new Promise((function(t,r){if(!H)throw new c.FormatError("GState must be referred to by name.");var o=u.get("ExtGState");if(!(o instanceof h.Dict))throw new c.FormatError("ExtGState should be a dictionary.");var m=o.get(U);if(!(m instanceof h.Dict))throw new c.FormatError("GState should be a dictionary.");S.setGState({resources:u,gState:m,operatorList:d,cacheKey:U,task:l,stateManager:j,localGStateCache:O,localColorSpaceCache:w}).then(t,r)})).catch((function(t){if(!(t instanceof c.AbortException)){if(!S.options.ignoreErrors)throw t;S.handler.send("UnsupportedFeature",{featureId:c.UNSUPPORTED_FEATURES.errorExtGState});(0,c.warn)('getOperatorList - ignoring ExtGState: "'.concat(t,'".'))}})));return;case c.OPS.moveTo:case c.OPS.lineTo:case c.OPS.curveTo:case c.OPS.curveTo2:case c.OPS.curveTo3:case c.OPS.closePath:case c.OPS.rectangle:S.buildPath(d,X,$,k);continue;case c.OPS.markPoint:case c.OPS.markPointProps:case c.OPS.beginCompat:case c.OPS.endCompat:continue;case c.OPS.beginMarkedContentProps:if(!(0,h.isName)($[0])){(0,c.warn)("Expected name for beginMarkedContentProps arg0=".concat($[0]));continue}if("OC"===$[0].name){o(S.parseMarkedContentProps($[1],u).then((function(t){d.addOp(c.OPS.beginMarkedContentProps,["OC",t])})).catch((function(t){if(!(t instanceof c.AbortException)){if(!S.options.ignoreErrors)throw t;S.handler.send("UnsupportedFeature",{featureId:c.UNSUPPORTED_FEATURES.errorMarkedContent});(0,c.warn)('getOperatorList - ignoring beginMarkedContentProps: "'.concat(t,'".'))}})));return}$=[$[0].name,$[1]instanceof h.Dict?$[1].get("MCID"):null];break;case c.OPS.beginMarkedContent:case c.OPS.endMarkedContent:default:if(null!==$){for(g=0,y=$.length;g<y&&!($[g]instanceof h.Dict);g++);if(g<y){(0,c.warn)("getOperatorList - ignoring operator: "+X);continue}}}d.addOp(X,$)}if(m)o(q);else{closePendingRestoreOPS();t()}})).catch((function(t){if(!(t instanceof c.AbortException)){if(!r.options.ignoreErrors)throw t;r.handler.send("UnsupportedFeature",{featureId:c.UNSUPPORTED_FEATURES.errorOperatorList});(0,c.warn)('getOperatorList - ignoring errors during "'.concat(l.name,'" ')+'task: "'.concat(t,'".'));closePendingRestoreOPS()}}))}},{key:"getTextContent",value:function getTextContent(t){var r=this,o=t.stream,l=t.task,u=t.resources,d=t.stateManager,m=void 0===d?null:d,g=t.normalizeWhitespace,y=void 0!==g&&g,S=t.combineTextItems,_=void 0!==S&&S,k=t.includeMarkedContent,C=void 0!==k&&k,w=t.sink,O=t.seenStyles,R=void 0===O?new Set:O;u=u||h.Dict.empty;m=m||new V(new Y);var E,M=/\s/g,D={items:[],styles:Object.create(null)},j={initialized:!1,str:[],totalWidth:0,totalHeight:0,width:0,height:0,vertical:!1,lastCharSize:0,prevTransform:null,textAdvanceScale:0,spaceWidth:0,spaceInFlowMin:0,spaceInFlowMax:0,trackingSpaceMin:1/0,transform:null,fontName:null,hasEOL:!1,isLastCharWhiteSpace:!1},L=this,N=this.xref,U=[],H=null,W=new x.LocalImageCache,$=new x.LocalGStateCache,z=new J(o,N,m);function getCurrentTextTransform(){var t=E.font,r=[E.fontSize*E.textHScale,0,0,E.fontSize,0,E.textRise];if(t.isType3Font&&(E.fontSize<=1||t.isCharBBox)&&!(0,c.isArrayEqual)(E.fontMatrix,c.FONT_IDENTITY_MATRIX)){var o=t.bbox[3]-t.bbox[1];o>0&&(r[3]*=o*E.fontMatrix[3])}return c.Util.transform(E.ctm,c.Util.transform(E.textMatrix,r))}function ensureTextContentItem(){if(j.initialized)return j;var t=E.font,r=t.loadedName;if(!R.has(r)){R.add(r);D.styles[r]={fontFamily:t.fallbackName,ascent:t.ascent,descent:t.descent,vertical:t.vertical}}j.fontName=r;var o=j.transform=getCurrentTextTransform();if(t.vertical){j.width=j.totalWidth=Math.hypot(o[0],o[1]);j.height=j.totalHeight=0;j.vertical=!0}else{j.width=j.totalWidth=0;j.height=j.totalHeight=Math.hypot(o[2],o[3]);j.vertical=!1}var l=Math.hypot(E.textLineMatrix[0],E.textLineMatrix[1]),c=Math.hypot(E.ctm[0],E.ctm[1]);j.textAdvanceScale=c*l;j.lastCharSize=j.lastCharSize||0;var u=t.spaceWidth/1e3*E.fontSize;if(u){j.spaceWidth=u;j.trackingSpaceMin=.3*u;j.spaceInFlowMin=.3*u;j.spaceInFlowMax=1.3*u}else{j.spaceWidth=0;j.trackingSpaceMin=1/0}j.hasEOL=!1;j.initialized=!0;return j}function updateAdvanceScale(){if(j.initialized){var t=Math.hypot(E.textLineMatrix[0],E.textLineMatrix[1]),r=Math.hypot(E.ctm[0],E.ctm[1])*t;if(r!==j.textAdvanceScale){if(j.vertical){j.totalHeight+=j.height*j.textAdvanceScale;j.height=0}else{j.totalWidth+=j.width*j.textAdvanceScale;j.width=0}j.textAdvanceScale=r}}}function runBidiTransform(t){var r=t.str.join(""),o=(0,T.bidi)(r,-1,t.vertical);return{str:y?function replaceWhitespace(t){for(var r,o=t.length,l=0;l<o&&(r=t.charCodeAt(l))>=32&&r<=127;)l++;return l<o?t.replace(M," "):t}(o.str):o.str,dir:o.dir,width:t.totalWidth,height:t.totalHeight,transform:t.transform,fontName:t.fontName,hasEOL:t.hasEOL}}function handleSetFont(t,r){return L.loadFont(t,r,u).then((function(t){return t.font.isType3Font?t.loadType3Data(L,u,l).catch((function(){})).then((function(){return t})):t})).then((function(t){E.font=t.font;E.fontMatrix=t.font.fontMatrix||c.FONT_IDENTITY_MATRIX}))}function buildTextContentItem(t){var r=t.chars,o=t.extraSpacing,l=t.isFirstChunk,c=E.font;if(r){var u=(0,v.getNormalizedUnicodes)(),h=c.charsToGlyphs(r),d=E.fontMatrix[0]*E.fontSize;l&&function compareWithLastPosition(t){if(_&&E.font&&j.prevTransform){var r=getCurrentTextTransform(),o=r[4],l=r[5],c=j.prevTransform[4],u=j.prevTransform[5];if(c!==o||u!==l){var h=(o-c)/j.textAdvanceScale,d=(l-u)/j.textAdvanceScale,m=-.5*j.lastCharSize;if(E.font.vertical){if(Math.abs(h)>j.width/j.textAdvanceScale){appendEOL();return}if(m>d)return;if(d>j.trackingSpaceMin)j.height+=d;else if(!addFakeSpaces(d,0,j.prevTransform))if(0===j.str.length){D.items.push({str:" ",dir:"ltr",width:0,height:d,transform:j.prevTransform,fontName:j.fontName,hasEOL:!1});j.isLastCharWhiteSpace=!0}else j.height+=d}else if(Math.abs(d)>j.height/j.textAdvanceScale)appendEOL();else if(!(m>h))if(h<=j.trackingSpaceMin)j.width+=h;else if(!addFakeSpaces(h,0,j.prevTransform))if(0===j.str.length){D.items.push({str:" ",dir:"ltr",width:h,height:0,transform:j.prevTransform,fontName:j.fontName,hasEOL:!1});j.isLastCharWhiteSpace=!0}else j.width+=h}}}();for(var m=ensureTextContentItem(),g=0,y=0,S=0,k=h.length;S<k;S++){var C=h[S],w=E.charSpacing+(S===k-1?o:0),x=C.unicode;if(C.isSpace){w+=E.wordSpacing;m.isLastCharWhiteSpace=!0}else{x=u[x]||x;x=(0,v.reverseIfRtl)(x);m.isLastCharWhiteSpace=!1}m.str.push(x);var O=(c.vertical&&C.vmetric?C.vmetric[0]:C.width)*d;if(c.vertical){E.translateTextMatrix(0,O);O=Math.abs(O)}else{O*=E.textHScale;E.translateTextMatrix(O,0)}g+=O;if(w){c.vertical||(w*=E.textHScale);O+=w;var T=w>j.trackingSpaceMin&&addFakeSpaces(w,g);c.vertical?E.translateTextMatrix(0,w):E.translateTextMatrix(w,0);if(T){m=ensureTextContentItem();g=0}else g+=w}y=O}m.lastCharSize=y;c.vertical?m.height+=g:m.width+=g;m.prevTransform=getCurrentTextTransform()}else{var R=E.charSpacing+o;R&&(c.vertical?E.translateTextMatrix(0,R):E.translateTextMatrix(R*E.textHScale,0))}}function appendEOL(){if(j.initialized){j.hasEOL=!0;flushTextContentItem()}else D.items.push({str:"",dir:"ltr",width:0,height:0,transform:getCurrentTextTransform(),fontName:E.font.loadedName,hasEOL:!0});j.isLastCharWhiteSpace=!1;j.lastCharSize=0}function addFakeSpaces(t,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(j.spaceInFlowMin<=t&&t<=j.spaceInFlowMax){if(j.initialized){j.str.push(" ");j.isLastCharWhiteSpace=!0}return!1}var l=j.fontName,c=0;t*=j.textAdvanceScale;if(j.vertical){j.height+=r;c=t;t=0}else j.width+=r;flushTextContentItem();if(j.isLastCharWhiteSpace)return!0;j.isLastCharWhiteSpace=!0;D.items.push({str:" ",dir:"ltr",width:t,height:c,transform:o||getCurrentTextTransform(),fontName:l,hasEOL:!1});return!0}function flushTextContentItem(){if(j.initialized&&j.str){j.vertical?j.totalHeight+=j.height*j.textAdvanceScale:j.totalWidth+=j.width*j.textAdvanceScale;D.items.push(runBidiTransform(j));j.initialized=!1;j.str.length=0}}function enqueueChunk(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],r=D.items.length;if(0!==r&&!(t&&r<10)){w.enqueue(D,r);D.items=[];D.styles=Object.create(null)}}var G=new X;return new Promise((function promiseBody(t,r){var o=function next(o){enqueueChunk(!0);Promise.all([o,w.ready]).then((function(){try{promiseBody(t,r)}catch(t){r(t)}}),r)};l.ensureNotTerminated();G.reset();for(var d,g={},v=[];!(d=G.check());){v.length=0;g.args=v;if(!z.read(g))break;E=m.state;var S=g.fn;v=g.args;switch(0|S){case c.OPS.setFont:var k=v[0].name,x=v[1];if(E.font&&k===E.fontName&&x===E.fontSize)break;flushTextContentItem();E.fontName=k;E.fontSize=x;o(handleSetFont(k,null));return;case c.OPS.setTextRise:flushTextContentItem();E.textRise=v[0];break;case c.OPS.setHScale:flushTextContentItem();E.textHScale=v[0]/100;break;case c.OPS.setLeading:flushTextContentItem();E.leading=v[0];break;case c.OPS.moveText:E.translateTextLineMatrix(v[0],v[1]);E.textMatrix=E.textLineMatrix.slice();break;case c.OPS.setLeadingMoveText:flushTextContentItem();E.leading=-v[1];E.translateTextLineMatrix(v[0],v[1]);E.textMatrix=E.textLineMatrix.slice();break;case c.OPS.nextLine:appendEOL();E.carriageReturn();break;case c.OPS.setTextMatrix:E.setTextMatrix(v[0],v[1],v[2],v[3],v[4],v[5]);E.setTextLineMatrix(v[0],v[1],v[2],v[3],v[4],v[5]);updateAdvanceScale();break;case c.OPS.setCharSpacing:E.charSpacing=v[0];break;case c.OPS.setWordSpacing:E.wordSpacing=v[0];break;case c.OPS.beginText:flushTextContentItem();E.textMatrix=c.IDENTITY_MATRIX.slice();E.textLineMatrix=c.IDENTITY_MATRIX.slice();break;case c.OPS.showSpacedText:if(!m.state.font){L.ensureStateFont(m.state);continue}for(var O=(E.font.vertical?1:-1)*E.fontSize/1e3,T=v[0],M=!0,X=0,Y=T.length;X<Y-1;X++){var K=T[X];if("string"==typeof K)U.push(K);else if("number"==typeof K&&0!==K){var J=U.join("");U.length=0;buildTextContentItem({chars:J,extraSpacing:K*O,isFirstChunk:M});J&&M&&(M=!1)}}var Q=T[T.length-1];"string"==typeof Q&&U.push(Q);if(U.length>0){var Z=U.join("");U.length=0;buildTextContentItem({chars:Z,extraSpacing:0,isFirstChunk:M})}break;case c.OPS.showText:if(!m.state.font){L.ensureStateFont(m.state);continue}buildTextContentItem({chars:v[0],extraSpacing:0,isFirstChunk:!0});break;case c.OPS.nextLineShowText:if(!m.state.font){L.ensureStateFont(m.state);continue}j.hasEOL=!0;flushTextContentItem();E.carriageReturn();buildTextContentItem({chars:v[0],extraSpacing:0,isFirstChunk:!0});break;case c.OPS.nextLineSetSpacingShowText:if(!m.state.font){L.ensureStateFont(m.state);continue}j.hasEOL=!0;flushTextContentItem();E.wordSpacing=v[0];E.charSpacing=v[1];E.carriageReturn();buildTextContentItem({chars:v[2],extraSpacing:0,isFirstChunk:!0});break;case c.OPS.paintXObject:flushTextContentItem();H||(H=u.get("XObject")||h.Dict.empty);var ee=v[0]instanceof h.Name,te=v[0].name;if(ee&&W.getByName(te))break;o(new Promise((function(t,r){if(!ee)throw new c.FormatError("XObject must be referred to by name.");var o=H.getRaw(te);if(o instanceof h.Ref){if(W.getByRef(o)){t();return}if(L.globalImageCache.getData(o,L.pageIndex)){t();return}o=N.fetch(o)}if(!(0,h.isStream)(o))throw new c.FormatError("XObject should be a stream");var d=o.dict.get("Subtype");if(!(0,h.isName)(d))throw new c.FormatError("XObject should have a Name subtype");if("Form"===d.name){var g=m.state.clone(),v=new V(g),S=o.dict.getArray("Matrix");Array.isArray(S)&&6===S.length&&v.transform(S);enqueueChunk();var k={enqueueInvoked:!1,enqueue:function enqueue(t,r){this.enqueueInvoked=!0;w.enqueue(t,r)},get desiredSize(){return w.desiredSize},get ready(){return w.ready}};L.getTextContent({stream:o,task:l,resources:o.dict.get("Resources")||u,stateManager:v,normalizeWhitespace:y,combineTextItems:_,includeMarkedContent:C,sink:k,seenStyles:R}).then((function(){k.enqueueInvoked||W.set(te,o.dict.objId,!0);t()}),r)}else{W.set(te,o.dict.objId,!0);t()}})).catch((function(t){if(!(t instanceof c.AbortException)){if(!L.options.ignoreErrors)throw t;(0,c.warn)('getTextContent - ignoring XObject: "'.concat(t,'".'))}})));return;case c.OPS.setGState:ee=v[0]instanceof h.Name;te=v[0].name;if(ee&&$.getByName(te))break;o(new Promise((function(t,r){if(!ee)throw new c.FormatError("GState must be referred to by name.");var o=u.get("ExtGState");if(!(o instanceof h.Dict))throw new c.FormatError("ExtGState should be a dictionary.");var l=o.get(te);if(!(l instanceof h.Dict))throw new c.FormatError("GState should be a dictionary.");var d=l.get("Font");if(d){flushTextContentItem();E.fontName=null;E.fontSize=d[1];handleSetFont(null,d[0]).then(t,r)}else{$.set(te,l.objId,!0);t()}})).catch((function(t){if(!(t instanceof c.AbortException)){if(!L.options.ignoreErrors)throw t;(0,c.warn)('getTextContent - ignoring ExtGState: "'.concat(t,'".'))}})));return;case c.OPS.beginMarkedContent:C&&D.items.push({type:"beginMarkedContent",tag:(0,h.isName)(v[0])?v[0].name:null});break;case c.OPS.beginMarkedContentProps:if(C){flushTextContentItem();var re=null;(0,h.isDict)(v[1])&&(re=v[1].get("MCID"));D.items.push({type:"beginMarkedContentProps",id:Number.isInteger(re)?"".concat(L.idFactory.getPageObjId(),"_mcid").concat(re):null,tag:(0,h.isName)(v[0])?v[0].name:null})}break;case c.OPS.endMarkedContent:if(C){flushTextContentItem();D.items.push({type:"endMarkedContent"})}}if(D.items.length>=w.desiredSize){d=!0;break}}if(d)o(q);else{flushTextContentItem();enqueueChunk();t()}})).catch((function(t){if(!(t instanceof c.AbortException)){if(!r.options.ignoreErrors)throw t;(0,c.warn)('getTextContent - ignoring errors during "'.concat(l.name,'" ')+'task: "'.concat(t,'".'));flushTextContentItem();enqueueChunk()}}))}},{key:"extractDataStructures",value:function extractDataStructures(t,r,o){var l,u=this,d=this.xref,y=this.readToUnicode(o.toUnicode||t.get("ToUnicode")||r.get("ToUnicode"));if(o.composite){var v=t.get("CIDSystemInfo");(0,h.isDict)(v)&&(o.cidSystemInfo={registry:(0,c.stringToPDFString)(v.get("Registry")),ordering:(0,c.stringToPDFString)(v.get("Ordering")),supplement:v.get("Supplement")});var S=t.get("CIDToGIDMap");(0,h.isStream)(S)&&(l=S.getBytes())}var _,k=[],C=null;if(t.has("Encoding")){_=t.get("Encoding");if((0,h.isDict)(_)){C=_.get("BaseEncoding");C=(0,h.isName)(C)?C.name:null;if(_.has("Differences"))for(var w=_.get("Differences"),x=0,O=0,T=w.length;O<T;O++){var R=d.fetchIfRef(w[O]);if((0,c.isNum)(R))x=R;else{if(!(0,h.isName)(R))throw new c.FormatError("Invalid entry in 'Differences' array: ".concat(R));k[x++]=R.name}}}else{if(!(0,h.isName)(_))throw new c.FormatError("Encoding is not a Name nor a Dict");C=_.name}"MacRomanEncoding"!==C&&"MacExpertEncoding"!==C&&"WinAnsiEncoding"!==C&&(C=null)}if(C)o.defaultEncoding=(0,g.getEncoding)(C);else{var E=!!(o.flags&m.FontFlags.Symbolic),M=!!(o.flags&m.FontFlags.Nonsymbolic);_=g.StandardEncoding;"TrueType"!==o.type||M||(_=g.WinAnsiEncoding);if(E){_=g.MacRomanEncoding;o.file&&!o.isInternalFont||(/Symbol/i.test(o.name)?_=g.SymbolSetEncoding:/Dingbats|Wingdings/i.test(o.name)&&(_=g.ZapfDingbatsEncoding))}o.defaultEncoding=_}o.differences=k;o.baseEncodingName=C;o.hasEncoding=!!C||k.length>0;o.dict=t;return y.then((function(t){o.toUnicode=t;return u.buildToUnicode(o)})).then((function(t){o.toUnicode=t;l&&(o.cidToGidMap=u.readCidToGidMap(l,t));return o}))}},{key:"_simpleFontToUnicode",value:function _simpleFontToUnicode(t){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];(0,c.assert)(!t.composite,"Must be a simple font.");var o=[],l=t.defaultEncoding.slice(),u=t.baseEncodingName,h=t.differences;for(var d in h){var m=h[d];".notdef"!==m&&(l[d]=m)}var y=(0,M.getGlyphsUnicode)();for(var S in l){var _=l[S];if(""!==_)if(void 0!==y[_])o[S]=String.fromCharCode(y[_]);else{var k=0;switch(_[0]){case"G":3===_.length&&(k=parseInt(_.substring(1),16));break;case"g":5===_.length&&(k=parseInt(_.substring(1),16));break;case"C":case"c":if(_.length>=3&&_.length<=4){var C=_.substring(1);if(r){k=parseInt(C,16);break}k=+C;if(Number.isNaN(k)&&Number.isInteger(parseInt(C,16)))return this._simpleFontToUnicode(t,!0)}break;default:var w=(0,v.getUnicodeForGlyph)(_,y);-1!==w&&(k=w)}if(k>0&&k<=1114111&&Number.isInteger(k)){if(u&&k===+S){var x=(0,g.getEncoding)(u);if(x&&(_=x[S])){o[S]=String.fromCharCode(y[_]);continue}}o[S]=String.fromCodePoint(k)}}}return o}},{key:"buildToUnicode",value:(r=_asyncToGenerator(l.default.mark((function _callee8(t){var r,o,d,m,g,y;return l.default.wrap((function _callee8$(l){for(;;)switch(l.prev=l.next){case 0:t.hasIncludedToUnicodeMap=!!t.toUnicode&&t.toUnicode.length>0;if(!t.hasIncludedToUnicodeMap){l.next=4;break}!t.composite&&t.hasEncoding&&(t.fallbackToUnicode=this._simpleFontToUnicode(t));return l.abrupt("return",t.toUnicode);case 4:if(t.composite){l.next=6;break}return l.abrupt("return",new k.ToUnicodeMap(this._simpleFontToUnicode(t)));case 6:if(!t.composite||(!t.cMap.builtInCMap||t.cMap instanceof u.IdentityCMap)&&("Adobe"!==t.cidSystemInfo.registry||"GB1"!==t.cidSystemInfo.ordering&&"CNS1"!==t.cidSystemInfo.ordering&&"Japan1"!==t.cidSystemInfo.ordering&&"Korea1"!==t.cidSystemInfo.ordering)){l.next=15;break}r=t.cidSystemInfo,o=r.registry,d=r.ordering;m=h.Name.get("".concat(o,"-").concat(d,"-UCS2"));l.next=11;return u.CMapFactory.create({encoding:m,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null});case 11:g=l.sent;y=[];t.cMap.forEach((function(t,r){if(r>65535)throw new c.FormatError("Max size of CID is 65,535");var o=g.lookup(r);o&&(y[t]=String.fromCharCode((o.charCodeAt(0)<<8)+o.charCodeAt(1)))}));return l.abrupt("return",new k.ToUnicodeMap(y));case 15:return l.abrupt("return",new k.IdentityToUnicodeMap(t.firstChar,t.lastChar));case 16:case"end":return l.stop()}}),_callee8,this)}))),function buildToUnicode(t){return r.apply(this,arguments)})},{key:"readToUnicode",value:function readToUnicode(t){var r=this;return t?(0,h.isName)(t)?u.CMapFactory.create({encoding:t,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null}).then((function(t){return t instanceof u.IdentityCMap?new k.IdentityToUnicodeMap(0,65535):new k.ToUnicodeMap(t.getMap())})):(0,h.isStream)(t)?u.CMapFactory.create({encoding:t,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null}).then((function(t){if(t instanceof u.IdentityCMap)return new k.IdentityToUnicodeMap(0,65535);var r=new Array(t.length);t.forEach((function(t,o){if("number"!=typeof o){for(var l=[],c=0;c<o.length;c+=2){var u=o.charCodeAt(c)<<8|o.charCodeAt(c+1);if(55296==(63488&u)){c+=2;var h=o.charCodeAt(c)<<8|o.charCodeAt(c+1);l.push(((1023&u)<<10)+(1023&h)+65536)}else l.push(u)}r[t]=String.fromCodePoint.apply(String,l)}else r[t]=String.fromCodePoint(o)}));return new k.ToUnicodeMap(r)}),(function(t){if(t instanceof c.AbortException)return null;if(r.options.ignoreErrors){r.handler.send("UnsupportedFeature",{featureId:c.UNSUPPORTED_FEATURES.errorFontToUnicode});(0,c.warn)('readToUnicode - ignoring ToUnicode data: "'.concat(t,'".'));return null}throw t})):Promise.resolve(null):Promise.resolve(null)}},{key:"readCidToGidMap",value:function readCidToGidMap(t,r){for(var o=[],l=0,c=t.length;l<c;l++){var u=t[l++]<<8|t[l],h=l>>1;(0!==u||r.has(h))&&(o[h]=u)}return o}},{key:"extractWidths",value:function extractWidths(t,r,o){var l,c,u,d,g,y,v,S,_=this.xref,k=[],C=0,w=[];if(o.composite){C=t.has("DW")?t.get("DW"):1e3;if(S=t.get("W"))for(c=0,u=S.length;c<u;c++){y=_.fetchIfRef(S[c++]);v=_.fetchIfRef(S[c]);if(Array.isArray(v))for(d=0,g=v.length;d<g;d++)k[y++]=_.fetchIfRef(v[d]);else{var x=_.fetchIfRef(S[++c]);for(d=y;d<=v;d++)k[d]=x}}if(o.vertical){var O=t.getArray("DW2")||[880,-1e3];l=[O[1],.5*C,O[0]];if(O=t.get("W2"))for(c=0,u=O.length;c<u;c++){y=_.fetchIfRef(O[c++]);v=_.fetchIfRef(O[c]);if(Array.isArray(v))for(d=0,g=v.length;d<g;d++)w[y++]=[_.fetchIfRef(v[d++]),_.fetchIfRef(v[d++]),_.fetchIfRef(v[d])];else{var T=[_.fetchIfRef(O[++c]),_.fetchIfRef(O[++c]),_.fetchIfRef(O[++c])];for(d=y;d<=v;d++)w[d]=T}}}}else{var R=o.firstChar;if(S=t.get("Widths")){d=R;for(c=0,u=S.length;c<u;c++)k[d++]=_.fetchIfRef(S[c]);C=parseFloat(r.get("MissingWidth"))||0}else{var E=t.get("BaseFont");if((0,h.isName)(E)){var M=this.getBaseFontMetrics(E.name);k=this.buildCharCodeToWidth(M.widths,o);C=M.defaultWidth}}}var D=!0,j=C;for(var L in k){var N=k[L];if(N)if(j){if(j!==N){D=!1;break}}else j=N}D&&(o.flags|=m.FontFlags.FixedPitch);o.defaultWidth=C;o.widths=k;o.defaultVMetrics=l;o.vmetrics=w}},{key:"isSerifFont",value:function isSerifFont(t){var r=t.split("-")[0];return r in(0,y.getSerifFonts)()||-1!==r.search(/serif/gi)}},{key:"getBaseFontMetrics",value:function getBaseFontMetrics(t){var r=0,o=Object.create(null),l=!1,u=(0,y.getStdFontMap)()[t]||t,h=(0,j.getMetrics)();u in h||(u=this.isSerifFont(t)?"Times-Roman":"Helvetica");var d=h[u];if((0,c.isNum)(d)){r=d;l=!0}else o=d();return{defaultWidth:r,monospace:l,widths:o}}},{key:"buildCharCodeToWidth",value:function buildCharCodeToWidth(t,r){for(var o=Object.create(null),l=r.differences,c=r.defaultEncoding,u=0;u<256;u++)u in l&&t[l[u]]?o[u]=t[l[u]]:u in c&&t[c[u]]&&(o[u]=t[c[u]]);return o}},{key:"preEvaluateFont",value:function preEvaluateFont(t){var r=t,o=t.get("Subtype");if(!(0,h.isName)(o))throw new c.FormatError("invalid font Subtype");var l,u,d=!1;if("Type0"===o.name){var m=t.get("DescendantFonts");if(!m)throw new c.FormatError("Descendant fonts are not specified");if(!((t=Array.isArray(m)?this.xref.fetchIfRef(m[0]):m)instanceof h.Dict))throw new c.FormatError("Descendant font is not a dictionary.");o=t.get("Subtype");if(!(0,h.isName)(o))throw new c.FormatError("invalid font Subtype");d=!0}var g=t.get("FirstChar")||0,y=t.get("LastChar")||(d?65535:255),v=t.get("FontDescriptor");if(v){l=new L.MurmurHash3_64;var S=r.getRaw("Encoding");if((0,h.isName)(S))l.update(S.name);else if((0,h.isRef)(S))l.update(S.toString());else if((0,h.isDict)(S)){var _,k=_createForOfIteratorHelper(S.getRawValues());try{for(k.s();!(_=k.n()).done;){var C=_.value;if((0,h.isName)(C))l.update(C.name);else if((0,h.isRef)(C))l.update(C.toString());else if(Array.isArray(C)){for(var w=C.length,x=new Array(w),O=0;O<w;O++){var T=C[O];(0,h.isName)(T)?x[O]=T.name:((0,c.isNum)(T)||(0,h.isRef)(T))&&(x[O]=T.toString())}l.update(x.join())}}}catch(t){k.e(t)}finally{k.f()}}l.update("".concat(g,"-").concat(y));u=t.get("ToUnicode")||r.get("ToUnicode");if((0,h.isStream)(u)){var R=u.str||u,E=R.buffer?new Uint8Array(R.buffer.buffer,0,R.bufferLength):new Uint8Array(R.bytes.buffer,R.start,R.end-R.start);l.update(E)}else(0,h.isName)(u)&&l.update(u.name);var M=t.get("Widths")||r.get("Widths");if(Array.isArray(M)){var D,j=[],N=_createForOfIteratorHelper(M);try{for(N.s();!(D=N.n()).done;){var U=D.value;((0,c.isNum)(U)||(0,h.isRef)(U))&&j.push(U.toString())}}catch(t){N.e(t)}finally{N.f()}l.update(j.join())}if(d){l.update("compositeFont");var H=t.get("W")||r.get("W");if(Array.isArray(H)){var W,$=[],q=_createForOfIteratorHelper(H);try{for(q.s();!(W=q.n()).done;){var X=W.value;if((0,c.isNum)(X)||(0,h.isRef)(X))$.push(X.toString());else if(Array.isArray(X)){var z,G=[],V=_createForOfIteratorHelper(X);try{for(V.s();!(z=V.n()).done;){var Y=z.value;((0,c.isNum)(Y)||(0,h.isRef)(Y))&&G.push(Y.toString())}}catch(t){V.e(t)}finally{V.f()}$.push("[".concat(G.join(),"]"))}}}catch(t){q.e(t)}finally{q.f()}l.update($.join())}}}return{descriptor:v,dict:t,baseDict:r,composite:d,type:o.name,firstChar:g,lastChar:y,toUnicode:u,hash:l?l.hexdigest():""}}},{key:"translateFont",value:(t=_asyncToGenerator(l.default.mark((function _callee9(t){var r,o,g,v,S,k,C,w,x,T,R,E,M,D,j,L,N,U,H,W,$,q,X,z,G,V,Y,K,J,Q,Z,ee,te,re,ae,ne=this;return l.default.wrap((function _callee9$(l){for(;;)switch(l.prev=l.next){case 0:r=t.descriptor,o=t.dict,g=t.baseDict,v=t.composite,S=t.type,k=t.firstChar,C=t.lastChar,w=t.toUnicode,x=t.cssFontInfo;T="Type3"===S;if(r){l.next=27;break}if(!T){l.next=9;break}(r=new h.Dict(null)).set("FontName",h.Name.get(S));r.set("FontBBox",o.getArray("FontBBox")||[0,0,0,0]);l.next=27;break;case 9:E=o.get("BaseFont");if((0,h.isName)(E)){l.next=12;break}throw new c.FormatError("Base font is not specified");case 12:E=E.name.replace(/[,_]/g,"-");M=this.getBaseFontMetrics(E);D=E.split("-")[0];j=(this.isSerifFont(D)?m.FontFlags.Serif:0)|(M.monospace?m.FontFlags.FixedPitch:0)|((0,y.getSymbolsFonts)()[D]?m.FontFlags.Symbolic:m.FontFlags.Nonsymbolic);R={type:S,name:E,loadedName:g.loadedName,widths:M.widths,defaultWidth:M.defaultWidth,isSimulatedFlags:!0,flags:j,firstChar:k,lastChar:C,toUnicode:w,xHeight:0,capHeight:0,italicAngle:0,isType3Font:T};L=o.get("Widths");N=(0,y.getStandardFontName)(E);U=null;if(!N){l.next=26;break}R.isStandardFont=!0;l.next=24;return this.fetchStandardFontData(N);case 24:U=l.sent;R.isInternalFont=!!U;case 26:return l.abrupt("return",this.extractDataStructures(o,o,R).then((function(t){if(L){for(var r=[],o=k,l=0,c=L.length;l<c;l++)r[o++]=ne.xref.fetchIfRef(L[l]);t.widths=r}else t.widths=ne.buildCharCodeToWidth(M.widths,t);return new d.Font(E,U,t)})));case 27:H=r.get("FontName");W=o.get("BaseFont");(0,c.isString)(H)&&(H=h.Name.get(H));(0,c.isString)(W)&&(W=h.Name.get(W));if(!T){$=H&&H.name;q=W&&W.name;if($!==q){(0,c.info)("The FontDescriptor's FontName is \"".concat($,'" but ')+"should be the same as the Font's BaseFont \"".concat(q,'".'));$&&q&&q.startsWith($)&&(H=W)}}H=H||W;if((0,h.isName)(H)){l.next=35;break}throw new c.FormatError("invalid font name");case 35:l.prev=35;X=r.get("FontFile","FontFile2","FontFile3");l.next=45;break;case 39:l.prev=39;l.t0=l.catch(35);if(this.options.ignoreErrors){l.next=43;break}throw l.t0;case 43:(0,c.warn)('translateFont - fetching "'.concat(H.name,'" font file: "').concat(l.t0,'".'));X=new O.NullStream;case 45:K=!1;J=!1;Q=null;if(!X){l.next=52;break}if(X.dict){(Z=X.dict.get("Subtype"))instanceof h.Name&&(z=Z.name);G=X.dict.get("Length1");V=X.dict.get("Length2");Y=X.dict.get("Length3")}l.next=74;break;case 52:if(!x){l.next=66;break}if(!(ee=(0,_.getXfaFontName)(H.name))){l.next=64;break}x.fontFamily="".concat(x.fontFamily,"-PdfJS-XFA");x.metrics=ee.metrics||null;Q=ee.factors||null;l.next=60;return this.fetchStandardFontData(ee.name);case 60:X=l.sent;J=!!X;g=o=(0,_.getXfaFontDict)(H.name);v=!0;case 64:l.next=74;break;case 66:if(T){l.next=74;break}if(!(te=(0,y.getStandardFontName)(H.name))){l.next=74;break}K=!0;l.next=72;return this.fetchStandardFontData(te);case 72:X=l.sent;J=!!X;case 74:R={type:S,name:H.name,subtype:z,file:X,length1:G,length2:V,length3:Y,isStandardFont:K,isInternalFont:J,loadedName:g.loadedName,composite:v,fixedPitch:!1,fontMatrix:o.getArray("FontMatrix")||c.FONT_IDENTITY_MATRIX,firstChar:k,lastChar:C,toUnicode:w,bbox:r.getArray("FontBBox")||o.getArray("FontBBox"),ascent:r.get("Ascent"),descent:r.get("Descent"),xHeight:r.get("XHeight")||0,capHeight:r.get("CapHeight")||0,flags:r.get("Flags"),italicAngle:r.get("ItalicAngle")||0,isType3Font:T,cssFontInfo:x,scaleFactors:Q};if(!v){l.next=83;break}re=g.get("Encoding");(0,h.isName)(re)&&(R.cidEncoding=re.name);l.next=80;return u.CMapFactory.create({encoding:re,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null});case 80:ae=l.sent;R.cMap=ae;R.vertical=R.cMap.vertical;case 83:return l.abrupt("return",this.extractDataStructures(o,g,R).then((function(t){ne.extractWidths(o,r,t);return new d.Font(H.name,X,t)})));case 84:case"end":return l.stop()}}),_callee9,this,[[35,39]])}))),function translateFont(r){return t.apply(this,arguments)})}],[{key:"buildFontPaths",value:function buildFontPaths(t,r,o,l){function buildPath(r){var u="".concat(t.loadedName,"_path_").concat(r);try{if(t.renderer.hasBuiltPath(r))return;o.send("commonobj",[u,"FontPath",t.renderer.getPathJs(r)])}catch(t){if(l.ignoreErrors){o.send("UnsupportedFeature",{featureId:c.UNSUPPORTED_FEATURES.errorFontBuildPath});(0,c.warn)("buildFontPaths - ignoring ".concat(u,' glyph: "').concat(t,'".'));return}throw t}}var u,h=_createForOfIteratorHelper(r);try{for(h.s();!(u=h.n()).done;){var d=u.value;buildPath(d.fontChar);var m=d.accent;m&&m.fontChar&&buildPath(m.fontChar)}}catch(t){h.e(t)}finally{h.f()}}},{key:"fallbackFontDict",get:function get(){var t=new h.Dict;t.set("BaseFont",h.Name.get("PDFJS-FallbackFont"));t.set("Type",h.Name.get("FallbackType"));t.set("Subtype",h.Name.get("FallbackType"));t.set("Encoding",h.Name.get("WinAnsiEncoding"));return(0,c.shadow)(this,"fallbackFontDict",t)}}]);var t,r,o,w,D,z,Q,Z;return PartialEvaluator}();r.PartialEvaluator=z;var G=function(){function TranslatedFont(t){var r=t.loadedName,o=t.font,l=t.dict,c=t.evaluatorOptions;_classCallCheck(this,TranslatedFont);this.loadedName=r;this.font=o;this.dict=l;this._evaluatorOptions=c||H;this.type3Loaded=null;this.type3Dependencies=o.isType3Font?new Set:null;this.sent=!1}_createClass(TranslatedFont,[{key:"send",value:function send(t){if(!this.sent){this.sent=!0;t.send("commonobj",[this.loadedName,"Font",this.font.exportData(this._evaluatorOptions.fontExtraProperties)])}}},{key:"fallback",value:function fallback(t){if(this.font.data){this.font.disableFontFace=!0;z.buildFontPaths(this.font,this.font.glyphCacheValues,t,this._evaluatorOptions)}}},{key:"loadType3Data",value:function loadType3Data(t,r,o){var l=this;if(this.type3Loaded)return this.type3Loaded;if(!this.font.isType3Font)throw new Error("Must be a Type3 font.");var u=t.clone({ignoreErrors:!1});u.parsingType3Font=!0;var h,d=this.font,m=this.type3Dependencies,g=Promise.resolve(),y=this.dict.get("CharProcs"),v=this.dict.get("Resources")||r,S=Object.create(null),_=!d.bbox||(0,c.isArrayEqual)(d.bbox,[0,0,0,0]),k=_createForOfIteratorHelper(y.getKeys());try{var C=function _loop2(){var t=h.value;g=g.then((function(){var r=y.get(t),h=new N.OperatorList;return u.getOperatorList({stream:r,task:o,resources:v,operatorList:h}).then((function(){h.fnArray[0]===c.OPS.setCharWidthAndBounds&&l._removeType3ColorOperators(h,_);S[t]=h.getIR();var r,o=_createForOfIteratorHelper(h.dependencies);try{for(o.s();!(r=o.n()).done;){var u=r.value;m.add(u)}}catch(t){o.e(t)}finally{o.f()}})).catch((function(r){(0,c.warn)('Type3 font resource "'.concat(t,'" is not available.'));var o=new N.OperatorList;S[t]=o.getIR()}))}))};for(k.s();!(h=k.n()).done;)C()}catch(t){k.e(t)}finally{k.f()}this.type3Loaded=g.then((function(){d.charProcOperatorList=S;if(l._bbox){d.isCharBBox=!0;d.bbox=l._bbox}}));return this.type3Loaded}},{key:"_removeType3ColorOperators",value:function _removeType3ColorOperators(t){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(r){this._bbox||(this._bbox=[1/0,1/0,-1/0,-1/0]);var o=c.Util.normalizeRect(t.argsArray[0].slice(2));this._bbox[0]=Math.min(this._bbox[0],o[0]);this._bbox[1]=Math.min(this._bbox[1],o[1]);this._bbox[2]=Math.max(this._bbox[2],o[2]);this._bbox[3]=Math.max(this._bbox[3],o[3])}for(var l=1,u=t.length;l<u;){switch(t.fnArray[l]){case c.OPS.setStrokeColorSpace:case c.OPS.setFillColorSpace:case c.OPS.setStrokeColor:case c.OPS.setStrokeColorN:case c.OPS.setFillColor:case c.OPS.setFillColorN:case c.OPS.setStrokeGray:case c.OPS.setFillGray:case c.OPS.setStrokeRGBColor:case c.OPS.setFillRGBColor:case c.OPS.setStrokeCMYKColor:case c.OPS.setFillCMYKColor:case c.OPS.shadingFill:case c.OPS.setRenderingIntent:t.fnArray.splice(l,1);t.argsArray.splice(l,1);u--;continue;case c.OPS.setGState:for(var h=_slicedToArray(t.argsArray[l],1),d=h[0],m=0,g=d.length;m<g;){var y=_slicedToArray(d[m],1),v=y[0];switch(v){case"TR":case"TR2":case"HT":case"BG":case"BG2":case"UCR":case"UCR2":d.splice(m,1);g--;continue}m++}}l++}}}]);return TranslatedFont}(),V=function(){function StateManager(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new K;_classCallCheck(this,StateManager);this.state=t;this.stateStack=[]}_createClass(StateManager,[{key:"save",value:function save(){var t=this.state;this.stateStack.push(this.state);this.state=t.clone()}},{key:"restore",value:function restore(){var t=this.stateStack.pop();t&&(this.state=t)}},{key:"transform",value:function transform(t){this.state.ctm=c.Util.transform(this.state.ctm,t)}}]);return StateManager}(),Y=function(){function TextState(){_classCallCheck(this,TextState);this.ctm=new Float32Array(c.IDENTITY_MATRIX);this.fontName=null;this.fontSize=0;this.font=null;this.fontMatrix=c.FONT_IDENTITY_MATRIX;this.textMatrix=c.IDENTITY_MATRIX.slice();this.textLineMatrix=c.IDENTITY_MATRIX.slice();this.charSpacing=0;this.wordSpacing=0;this.leading=0;this.textHScale=1;this.textRise=0}_createClass(TextState,[{key:"setTextMatrix",value:function setTextMatrix(t,r,o,l,c,u){var h=this.textMatrix;h[0]=t;h[1]=r;h[2]=o;h[3]=l;h[4]=c;h[5]=u}},{key:"setTextLineMatrix",value:function setTextLineMatrix(t,r,o,l,c,u){var h=this.textLineMatrix;h[0]=t;h[1]=r;h[2]=o;h[3]=l;h[4]=c;h[5]=u}},{key:"translateTextMatrix",value:function translateTextMatrix(t,r){var o=this.textMatrix;o[4]=o[0]*t+o[2]*r+o[4];o[5]=o[1]*t+o[3]*r+o[5]}},{key:"translateTextLineMatrix",value:function translateTextLineMatrix(t,r){var o=this.textLineMatrix;o[4]=o[0]*t+o[2]*r+o[4];o[5]=o[1]*t+o[3]*r+o[5]}},{key:"carriageReturn",value:function carriageReturn(){this.translateTextLineMatrix(0,-this.leading);this.textMatrix=this.textLineMatrix.slice()}},{key:"clone",value:function clone(){var clone=Object.create(this);clone.textMatrix=this.textMatrix.slice();clone.textLineMatrix=this.textLineMatrix.slice();clone.fontMatrix=this.fontMatrix.slice();return clone}}]);return TextState}(),K=function(){function EvalState(){_classCallCheck(this,EvalState);this.ctm=new Float32Array(c.IDENTITY_MATRIX);this.font=null;this.textRenderingMode=c.TextRenderingMode.FILL;this.fillColorSpace=R.ColorSpace.singletons.gray;this.strokeColorSpace=R.ColorSpace.singletons.gray}_createClass(EvalState,[{key:"clone",value:function clone(){return Object.create(this)}}]);return EvalState}(),J=function(){function EvaluatorPreprocessor(t,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:new V;_classCallCheck(this,EvaluatorPreprocessor);this.parser=new w.Parser({lexer:new w.Lexer(t,EvaluatorPreprocessor.opMap),xref:r});this.stateManager=o;this.nonProcessedArgs=[];this._numInvalidPathOPS=0}_createClass(EvaluatorPreprocessor,[{key:"savedStatesDepth",get:function get(){return this.stateManager.stateStack.length}},{key:"read",value:function read(t){for(var r=t.args;;){var o=this.parser.getObj();if(o instanceof h.Cmd){var l=o.cmd,u=EvaluatorPreprocessor.opMap[l];if(!u){(0,c.warn)('Unknown command "'.concat(l,'".'));continue}var d=u.id,m=u.numArgs,g=null!==r?r.length:0;if(u.variableArgs)g>m&&(0,c.info)("Command ".concat(l,": expected [0, ").concat(m,"] args, ")+"but received ".concat(g," args."));else{if(g!==m){for(var y=this.nonProcessedArgs;g>m;){y.push(r.shift());g--}for(;g<m&&0!==y.length;){null===r&&(r=[]);r.unshift(y.pop());g++}}if(g<m){var v="command ".concat(l,": expected ").concat(m," args, ")+"but received ".concat(g," args.");if(d>=c.OPS.moveTo&&d<=c.OPS.endPath&&++this._numInvalidPathOPS>EvaluatorPreprocessor.MAX_INVALID_PATH_OPS)throw new c.FormatError("Invalid ".concat(v));(0,c.warn)("Skipping ".concat(v));null!==r&&(r.length=0);continue}}this.preprocessCommand(d,r);t.fn=d;t.args=r;return!0}if(o===h.EOF)return!1;if(null!==o){null===r&&(r=[]);r.push(o);if(r.length>33)throw new c.FormatError("Too many arguments")}}}},{key:"preprocessCommand",value:function preprocessCommand(t,r){switch(0|t){case c.OPS.save:this.stateManager.save();break;case c.OPS.restore:this.stateManager.restore();break;case c.OPS.transform:this.stateManager.transform(r)}}}],[{key:"opMap",get:function get(){var t=(0,D.getLookupTableFactory)((function(t){t.w={id:c.OPS.setLineWidth,numArgs:1,variableArgs:!1};t.J={id:c.OPS.setLineCap,numArgs:1,variableArgs:!1};t.j={id:c.OPS.setLineJoin,numArgs:1,variableArgs:!1};t.M={id:c.OPS.setMiterLimit,numArgs:1,variableArgs:!1};t.d={id:c.OPS.setDash,numArgs:2,variableArgs:!1};t.ri={id:c.OPS.setRenderingIntent,numArgs:1,variableArgs:!1};t.i={id:c.OPS.setFlatness,numArgs:1,variableArgs:!1};t.gs={id:c.OPS.setGState,numArgs:1,variableArgs:!1};t.q={id:c.OPS.save,numArgs:0,variableArgs:!1};t.Q={id:c.OPS.restore,numArgs:0,variableArgs:!1};t.cm={id:c.OPS.transform,numArgs:6,variableArgs:!1};t.m={id:c.OPS.moveTo,numArgs:2,variableArgs:!1};t.l={id:c.OPS.lineTo,numArgs:2,variableArgs:!1};t.c={id:c.OPS.curveTo,numArgs:6,variableArgs:!1};t.v={id:c.OPS.curveTo2,numArgs:4,variableArgs:!1};t.y={id:c.OPS.curveTo3,numArgs:4,variableArgs:!1};t.h={id:c.OPS.closePath,numArgs:0,variableArgs:!1};t.re={id:c.OPS.rectangle,numArgs:4,variableArgs:!1};t.S={id:c.OPS.stroke,numArgs:0,variableArgs:!1};t.s={id:c.OPS.closeStroke,numArgs:0,variableArgs:!1};t.f={id:c.OPS.fill,numArgs:0,variableArgs:!1};t.F={id:c.OPS.fill,numArgs:0,variableArgs:!1};t["f*"]={id:c.OPS.eoFill,numArgs:0,variableArgs:!1};t.B={id:c.OPS.fillStroke,numArgs:0,variableArgs:!1};t["B*"]={id:c.OPS.eoFillStroke,numArgs:0,variableArgs:!1};t.b={id:c.OPS.closeFillStroke,numArgs:0,variableArgs:!1};t["b*"]={id:c.OPS.closeEOFillStroke,numArgs:0,variableArgs:!1};t.n={id:c.OPS.endPath,numArgs:0,variableArgs:!1};t.W={id:c.OPS.clip,numArgs:0,variableArgs:!1};t["W*"]={id:c.OPS.eoClip,numArgs:0,variableArgs:!1};t.BT={id:c.OPS.beginText,numArgs:0,variableArgs:!1};t.ET={id:c.OPS.endText,numArgs:0,variableArgs:!1};t.Tc={id:c.OPS.setCharSpacing,numArgs:1,variableArgs:!1};t.Tw={id:c.OPS.setWordSpacing,numArgs:1,variableArgs:!1};t.Tz={id:c.OPS.setHScale,numArgs:1,variableArgs:!1};t.TL={id:c.OPS.setLeading,numArgs:1,variableArgs:!1};t.Tf={id:c.OPS.setFont,numArgs:2,variableArgs:!1};t.Tr={id:c.OPS.setTextRenderingMode,numArgs:1,variableArgs:!1};t.Ts={id:c.OPS.setTextRise,numArgs:1,variableArgs:!1};t.Td={id:c.OPS.moveText,numArgs:2,variableArgs:!1};t.TD={id:c.OPS.setLeadingMoveText,numArgs:2,variableArgs:!1};t.Tm={id:c.OPS.setTextMatrix,numArgs:6,variableArgs:!1};t["T*"]={id:c.OPS.nextLine,numArgs:0,variableArgs:!1};t.Tj={id:c.OPS.showText,numArgs:1,variableArgs:!1};t.TJ={id:c.OPS.showSpacedText,numArgs:1,variableArgs:!1};t["'"]={id:c.OPS.nextLineShowText,numArgs:1,variableArgs:!1};t['"']={id:c.OPS.nextLineSetSpacingShowText,numArgs:3,variableArgs:!1};t.d0={id:c.OPS.setCharWidth,numArgs:2,variableArgs:!1};t.d1={id:c.OPS.setCharWidthAndBounds,numArgs:6,variableArgs:!1};t.CS={id:c.OPS.setStrokeColorSpace,numArgs:1,variableArgs:!1};t.cs={id:c.OPS.setFillColorSpace,numArgs:1,variableArgs:!1};t.SC={id:c.OPS.setStrokeColor,numArgs:4,variableArgs:!0};t.SCN={id:c.OPS.setStrokeColorN,numArgs:33,variableArgs:!0};t.sc={id:c.OPS.setFillColor,numArgs:4,variableArgs:!0};t.scn={id:c.OPS.setFillColorN,numArgs:33,variableArgs:!0};t.G={id:c.OPS.setStrokeGray,numArgs:1,variableArgs:!1};t.g={id:c.OPS.setFillGray,numArgs:1,variableArgs:!1};t.RG={id:c.OPS.setStrokeRGBColor,numArgs:3,variableArgs:!1};t.rg={id:c.OPS.setFillRGBColor,numArgs:3,variableArgs:!1};t.K={id:c.OPS.setStrokeCMYKColor,numArgs:4,variableArgs:!1};t.k={id:c.OPS.setFillCMYKColor,numArgs:4,variableArgs:!1};t.sh={id:c.OPS.shadingFill,numArgs:1,variableArgs:!1};t.BI={id:c.OPS.beginInlineImage,numArgs:0,variableArgs:!1};t.ID={id:c.OPS.beginImageData,numArgs:0,variableArgs:!1};t.EI={id:c.OPS.endInlineImage,numArgs:1,variableArgs:!1};t.Do={id:c.OPS.paintXObject,numArgs:1,variableArgs:!1};t.MP={id:c.OPS.markPoint,numArgs:1,variableArgs:!1};t.DP={id:c.OPS.markPointProps,numArgs:2,variableArgs:!1};t.BMC={id:c.OPS.beginMarkedContent,numArgs:1,variableArgs:!1};t.BDC={id:c.OPS.beginMarkedContentProps,numArgs:2,variableArgs:!1};t.EMC={id:c.OPS.endMarkedContent,numArgs:0,variableArgs:!1};t.BX={id:c.OPS.beginCompat,numArgs:0,variableArgs:!1};t.EX={id:c.OPS.endCompat,numArgs:0,variableArgs:!1};t.BM=null;t.BD=null;t.true=null;t.fa=null;t.fal=null;t.fals=null;t.false=null;t.nu=null;t.nul=null;t.null=null}));return(0,c.shadow)(this,"opMap",t())}},{key:"MAX_INVALID_PATH_OPS",get:function get(){return(0,c.shadow)(this,"MAX_INVALID_PATH_OPS",20)}}]);return EvaluatorPreprocessor}();r.EvaluatorPreprocessor=J},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.IdentityCMap=r.CMapFactory=r.CMap=void 0;var l=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(o(2)),c=o(4),u=o(118),h=o(140),d=o(122),m=o(123);function asyncGeneratorStep(t,r,o,l,c,u,h){try{var d=t[u](h),m=d.value}catch(t){o(t);return}d.done?r(m):Promise.resolve(m).then(l,c)}function _asyncToGenerator(t){return function(){var r=this,o=arguments;return new Promise((function(l,c){var u=t.apply(r,o);function _next(t){asyncGeneratorStep(u,l,c,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(u,l,c,_next,_throw,"throw",t)}_next(void 0)}))}}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var g=["Adobe-GB1-UCS2","Adobe-CNS1-UCS2","Adobe-Japan1-UCS2","Adobe-Korea1-UCS2","78-EUC-H","78-EUC-V","78-H","78-RKSJ-H","78-RKSJ-V","78-V","78ms-RKSJ-H","78ms-RKSJ-V","83pv-RKSJ-H","90ms-RKSJ-H","90ms-RKSJ-V","90msp-RKSJ-H","90msp-RKSJ-V","90pv-RKSJ-H","90pv-RKSJ-V","Add-H","Add-RKSJ-H","Add-RKSJ-V","Add-V","Adobe-CNS1-0","Adobe-CNS1-1","Adobe-CNS1-2","Adobe-CNS1-3","Adobe-CNS1-4","Adobe-CNS1-5","Adobe-CNS1-6","Adobe-GB1-0","Adobe-GB1-1","Adobe-GB1-2","Adobe-GB1-3","Adobe-GB1-4","Adobe-GB1-5","Adobe-Japan1-0","Adobe-Japan1-1","Adobe-Japan1-2","Adobe-Japan1-3","Adobe-Japan1-4","Adobe-Japan1-5","Adobe-Japan1-6","Adobe-Korea1-0","Adobe-Korea1-1","Adobe-Korea1-2","B5-H","B5-V","B5pc-H","B5pc-V","CNS-EUC-H","CNS-EUC-V","CNS1-H","CNS1-V","CNS2-H","CNS2-V","ETHK-B5-H","ETHK-B5-V","ETen-B5-H","ETen-B5-V","ETenms-B5-H","ETenms-B5-V","EUC-H","EUC-V","Ext-H","Ext-RKSJ-H","Ext-RKSJ-V","Ext-V","GB-EUC-H","GB-EUC-V","GB-H","GB-V","GBK-EUC-H","GBK-EUC-V","GBK2K-H","GBK2K-V","GBKp-EUC-H","GBKp-EUC-V","GBT-EUC-H","GBT-EUC-V","GBT-H","GBT-V","GBTpc-EUC-H","GBTpc-EUC-V","GBpc-EUC-H","GBpc-EUC-V","H","HKdla-B5-H","HKdla-B5-V","HKdlb-B5-H","HKdlb-B5-V","HKgccs-B5-H","HKgccs-B5-V","HKm314-B5-H","HKm314-B5-V","HKm471-B5-H","HKm471-B5-V","HKscs-B5-H","HKscs-B5-V","Hankaku","Hiragana","KSC-EUC-H","KSC-EUC-V","KSC-H","KSC-Johab-H","KSC-Johab-V","KSC-V","KSCms-UHC-H","KSCms-UHC-HW-H","KSCms-UHC-HW-V","KSCms-UHC-V","KSCpc-EUC-H","KSCpc-EUC-V","Katakana","NWP-H","NWP-V","RKSJ-H","RKSJ-V","Roman","UniCNS-UCS2-H","UniCNS-UCS2-V","UniCNS-UTF16-H","UniCNS-UTF16-V","UniCNS-UTF32-H","UniCNS-UTF32-V","UniCNS-UTF8-H","UniCNS-UTF8-V","UniGB-UCS2-H","UniGB-UCS2-V","UniGB-UTF16-H","UniGB-UTF16-V","UniGB-UTF32-H","UniGB-UTF32-V","UniGB-UTF8-H","UniGB-UTF8-V","UniJIS-UCS2-H","UniJIS-UCS2-HW-H","UniJIS-UCS2-HW-V","UniJIS-UCS2-V","UniJIS-UTF16-H","UniJIS-UTF16-V","UniJIS-UTF32-H","UniJIS-UTF32-V","UniJIS-UTF8-H","UniJIS-UTF8-V","UniJIS2004-UTF16-H","UniJIS2004-UTF16-V","UniJIS2004-UTF32-H","UniJIS2004-UTF32-V","UniJIS2004-UTF8-H","UniJIS2004-UTF8-V","UniJISPro-UCS2-HW-V","UniJISPro-UCS2-V","UniJISPro-UTF8-V","UniJISX0213-UTF32-H","UniJISX0213-UTF32-V","UniJISX02132004-UTF32-H","UniJISX02132004-UTF32-V","UniKS-UCS2-H","UniKS-UCS2-V","UniKS-UTF16-H","UniKS-UTF16-V","UniKS-UTF32-H","UniKS-UTF32-V","UniKS-UTF8-H","UniKS-UTF8-V","V","WP-Symbol"],y=Math.pow(2,24)-1,v=function(){function CMap(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];_classCallCheck(this,CMap);this.codespaceRanges=[[],[],[],[]];this.numCodespaceRanges=0;this._map=[];this.name="";this.vertical=!1;this.useCMap=null;this.builtInCMap=t}_createClass(CMap,[{key:"addCodespaceRange",value:function addCodespaceRange(t,r,o){this.codespaceRanges[t-1].push(r,o);this.numCodespaceRanges++}},{key:"mapCidRange",value:function mapCidRange(t,r,o){if(r-t>y)throw new Error("mapCidRange - ignoring data above MAX_MAP_RANGE.");for(;t<=r;)this._map[t++]=o++}},{key:"mapBfRange",value:function mapBfRange(t,r,o){if(r-t>y)throw new Error("mapBfRange - ignoring data above MAX_MAP_RANGE.");for(var l=o.length-1;t<=r;){this._map[t++]=o;o=o.substring(0,l)+String.fromCharCode(o.charCodeAt(l)+1)}}},{key:"mapBfRangeToArray",value:function mapBfRangeToArray(t,r,o){if(r-t>y)throw new Error("mapBfRangeToArray - ignoring data above MAX_MAP_RANGE.");for(var l=o.length,c=0;t<=r&&c<l;){this._map[t]=o[c++];++t}}},{key:"mapOne",value:function mapOne(t,r){this._map[t]=r}},{key:"lookup",value:function lookup(t){return this._map[t]}},{key:"contains",value:function contains(t){return void 0!==this._map[t]}},{key:"forEach",value:function forEach(t){var r=this._map,o=r.length;if(o<=65536)for(var l=0;l<o;l++)void 0!==r[l]&&t(l,r[l]);else for(var c in r)t(c,r[c])}},{key:"charCodeOf",value:function charCodeOf(t){var r=this._map;if(r.length<=65536)return r.indexOf(t);for(var o in r)if(r[o]===t)return 0|o;return-1}},{key:"getMap",value:function getMap(){return this._map}},{key:"readCharCode",value:function readCharCode(t,r,o){for(var l=0,c=this.codespaceRanges,u=0,h=c.length;u<h;u++){l=(l<<8|t.charCodeAt(r+u))>>>0;for(var d=c[u],m=0,g=d.length;m<g;){var y=d[m++],v=d[m++];if(l>=y&&l<=v){o.charcode=l;o.length=u+1;return}}}o.charcode=0;o.length=1}},{key:"getCharCodeLength",value:function getCharCodeLength(t){for(var r=this.codespaceRanges,o=0,l=r.length;o<l;o++)for(var c=r[o],u=0,h=c.length;u<h;){var d=c[u++],m=c[u++];if(t>=d&&t<=m)return o+1}return 1}},{key:"length",get:function get(){return this._map.length}},{key:"isIdentityCMap",get:function get(){if("Identity-H"!==this.name&&"Identity-V"!==this.name)return!1;if(65536!==this._map.length)return!1;for(var t=0;t<65536;t++)if(this._map[t]!==t)return!1;return!0}}]);return CMap}();r.CMap=v;var S=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(IdentityCMap,t);var r=_createSuper(IdentityCMap);function IdentityCMap(t,o){var l;_classCallCheck(this,IdentityCMap);(l=r.call(this)).vertical=t;l.addCodespaceRange(o,0,65535);return l}_createClass(IdentityCMap,[{key:"mapCidRange",value:function mapCidRange(t,r,o){(0,c.unreachable)("should not call mapCidRange")}},{key:"mapBfRange",value:function mapBfRange(t,r,o){(0,c.unreachable)("should not call mapBfRange")}},{key:"mapBfRangeToArray",value:function mapBfRangeToArray(t,r,o){(0,c.unreachable)("should not call mapBfRangeToArray")}},{key:"mapOne",value:function mapOne(t,r){(0,c.unreachable)("should not call mapCidOne")}},{key:"lookup",value:function lookup(t){return Number.isInteger(t)&&t<=65535?t:void 0}},{key:"contains",value:function contains(t){return Number.isInteger(t)&&t<=65535}},{key:"forEach",value:function forEach(t){for(var r=0;r<=65535;r++)t(r,r)}},{key:"charCodeOf",value:function charCodeOf(t){return Number.isInteger(t)&&t<=65535?t:-1}},{key:"getMap",value:function getMap(){for(var t=new Array(65536),r=0;r<=65535;r++)t[r]=r;return t}},{key:"length",get:function get(){return 65536}},{key:"isIdentityCMap",get:function get(){(0,c.unreachable)("should not access .isIdentityCMap")}}]);return IdentityCMap}(v);r.IdentityCMap=S;var _=function BinaryCMapReaderClosure(){function hexToInt(t,r){for(var o=0,l=0;l<=r;l++)o=o<<8|t[l];return o>>>0}function hexToStr(t,r){return 1===r?String.fromCharCode(t[0],t[1]):3===r?String.fromCharCode(t[0],t[1],t[2],t[3]):String.fromCharCode.apply(null,t.subarray(0,r+1))}function addHex(t,r,o){for(var l=0,c=o;c>=0;c--){l+=t[c]+r[c];t[c]=255&l;l>>=8}}function incHex(t,r){for(var o=1,l=r;l>=0&&o>0;l--){o+=t[l];t[l]=255&o;o>>=8}}var t=16,r=function(){function BinaryCMapStream(t){_classCallCheck(this,BinaryCMapStream);this.buffer=t;this.pos=0;this.end=t.length;this.tmpBuf=new Uint8Array(19)}_createClass(BinaryCMapStream,[{key:"readByte",value:function readByte(){return this.pos>=this.end?-1:this.buffer[this.pos++]}},{key:"readNumber",value:function readNumber(){var t,r=0;do{var o=this.readByte();if(o<0)throw new c.FormatError("unexpected EOF in bcmap");t=!(128&o);r=r<<7|127&o}while(!t);return r}},{key:"readSigned",value:function readSigned(){var t=this.readNumber();return 1&t?~(t>>>1):t>>>1}},{key:"readHex",value:function readHex(t,r){t.set(this.buffer.subarray(this.pos,this.pos+r+1));this.pos+=r+1}},{key:"readHexNumber",value:function readHexNumber(t,r){var o,l=this.tmpBuf,u=0;do{var h=this.readByte();if(h<0)throw new c.FormatError("unexpected EOF in bcmap");o=!(128&h);l[u++]=127&h}while(!o);for(var d=r,m=0,g=0;d>=0;){for(;g<8&&l.length>0;){m|=l[--u]<<g;g+=7}t[d]=255&m;d--;m>>=8;g-=8}}},{key:"readHexSigned",value:function readHexSigned(t,r){this.readHexNumber(t,r);for(var o=1&t[r]?255:0,l=0,c=0;c<=r;c++){l=(1&l)<<8|t[c];t[c]=l>>1^o}}},{key:"readString",value:function readString(){for(var t=this.readNumber(),r="",o=0;o<t;o++)r+=String.fromCharCode(this.readNumber());return r}}]);return BinaryCMapStream}(),o=function(){function BinaryCMapReader(){_classCallCheck(this,BinaryCMapReader)}_createClass(BinaryCMapReader,[{key:"process",value:(o=_asyncToGenerator(l.default.mark((function _callee(o,c,u){var h,d,m,g,y,v,S,_,k,C,w,x,O,T,R,E,M,D,j,L,N;return l.default.wrap((function _callee$(l){for(;;)switch(l.prev=l.next){case 0:h=new r(o);d=h.readByte();c.vertical=!!(1&d);m=null;g=new Uint8Array(t);y=new Uint8Array(t);v=new Uint8Array(t);S=new Uint8Array(t);_=new Uint8Array(t);case 9:if(!((C=h.readByte())>=0)){l.next=68;break}if(7!=(w=C>>5)){l.next=20;break}l.t0=31&C;l.next=0===l.t0?15:1===l.t0?17:19;break;case 15:h.readString();return l.abrupt("break",19);case 17:m=h.readString();return l.abrupt("break",19);case 19:return l.abrupt("continue",9);case 20:x=!!(16&C);if(!(1+(O=15&C)>t)){l.next=24;break}throw new Error("BinaryCMapReader.process: Invalid dataSize.");case 24:T=1;R=h.readNumber();l.t1=w;l.next=0===l.t1?29:1===l.t1?35:2===l.t1?41:3===l.t1?46:4===l.t1?53:5===l.t1?58:65;break;case 29:h.readHex(g,O);h.readHexNumber(y,O);addHex(y,g,O);c.addCodespaceRange(O+1,hexToInt(g,O),hexToInt(y,O));for(E=1;E<R;E++){incHex(y,O);h.readHexNumber(g,O);addHex(g,y,O);h.readHexNumber(y,O);addHex(y,g,O);c.addCodespaceRange(O+1,hexToInt(g,O),hexToInt(y,O))}return l.abrupt("break",66);case 35:h.readHex(g,O);h.readHexNumber(y,O);addHex(y,g,O);h.readNumber();for(M=1;M<R;M++){incHex(y,O);h.readHexNumber(g,O);addHex(g,y,O);h.readHexNumber(y,O);addHex(y,g,O);h.readNumber()}return l.abrupt("break",66);case 41:h.readHex(v,O);k=h.readNumber();c.mapOne(hexToInt(v,O),k);for(D=1;D<R;D++){incHex(v,O);if(!x){h.readHexNumber(_,O);addHex(v,_,O)}k=h.readSigned()+(k+1);c.mapOne(hexToInt(v,O),k)}return l.abrupt("break",66);case 46:h.readHex(g,O);h.readHexNumber(y,O);addHex(y,g,O);k=h.readNumber();c.mapCidRange(hexToInt(g,O),hexToInt(y,O),k);for(j=1;j<R;j++){incHex(y,O);if(x)g.set(y);else{h.readHexNumber(g,O);addHex(g,y,O)}h.readHexNumber(y,O);addHex(y,g,O);k=h.readNumber();c.mapCidRange(hexToInt(g,O),hexToInt(y,O),k)}return l.abrupt("break",66);case 53:h.readHex(v,T);h.readHex(S,O);c.mapOne(hexToInt(v,T),hexToStr(S,O));for(L=1;L<R;L++){incHex(v,T);if(!x){h.readHexNumber(_,T);addHex(v,_,T)}incHex(S,O);h.readHexSigned(_,O);addHex(S,_,O);c.mapOne(hexToInt(v,T),hexToStr(S,O))}return l.abrupt("break",66);case 58:h.readHex(g,T);h.readHexNumber(y,T);addHex(y,g,T);h.readHex(S,O);c.mapBfRange(hexToInt(g,T),hexToInt(y,T),hexToStr(S,O));for(N=1;N<R;N++){incHex(y,T);if(x)g.set(y);else{h.readHexNumber(g,T);addHex(g,y,T)}h.readHexNumber(y,T);addHex(y,g,T);h.readHex(S,O);c.mapBfRange(hexToInt(g,T),hexToInt(y,T),hexToStr(S,O))}return l.abrupt("break",66);case 65:throw new Error("BinaryCMapReader.process - unknown type: ".concat(w));case 66:l.next=9;break;case 68:if(!m){l.next=70;break}return l.abrupt("return",u(m));case 70:return l.abrupt("return",c);case 71:case"end":return l.stop()}}),_callee)}))),function process(t,r,l){return o.apply(this,arguments)})}]);var o;return BinaryCMapReader}();return o}(),k=function CMapFactoryClosure(){function strToInt(t){for(var r=0,o=0;o<t.length;o++)r=r<<8|t.charCodeAt(o);return r>>>0}function expectString(t){if(!(0,c.isString)(t))throw new c.FormatError("Malformed CMap: expected string.")}function expectInt(t){if(!Number.isInteger(t))throw new c.FormatError("Malformed CMap: expected int.")}function parseBfChar(t,r){for(;;){var o=r.getObj();if(o===u.EOF)break;if((0,u.isCmd)(o,"endbfchar"))return;expectString(o);var l=strToInt(o);expectString(o=r.getObj());var c=o;t.mapOne(l,c)}}function parseBfRange(t,r){for(;;){var o=r.getObj();if(o===u.EOF)break;if((0,u.isCmd)(o,"endbfrange"))return;expectString(o);var l=strToInt(o);expectString(o=r.getObj());var h=strToInt(o);o=r.getObj();if(Number.isInteger(o)||(0,c.isString)(o)){var d=Number.isInteger(o)?String.fromCharCode(o):o;t.mapBfRange(l,h,d)}else{if(!(0,u.isCmd)(o,"["))break;o=r.getObj();for(var m=[];!(0,u.isCmd)(o,"]")&&o!==u.EOF;){m.push(o);o=r.getObj()}t.mapBfRangeToArray(l,h,m)}}throw new c.FormatError("Invalid bf range.")}function parseCidChar(t,r){for(;;){var o=r.getObj();if(o===u.EOF)break;if((0,u.isCmd)(o,"endcidchar"))return;expectString(o);var l=strToInt(o);expectInt(o=r.getObj());var c=o;t.mapOne(l,c)}}function parseCidRange(t,r){for(;;){var o=r.getObj();if(o===u.EOF)break;if((0,u.isCmd)(o,"endcidrange"))return;expectString(o);var l=strToInt(o);expectString(o=r.getObj());var c=strToInt(o);expectInt(o=r.getObj());var h=o;t.mapCidRange(l,c,h)}}function parseCodespaceRange(t,r){for(;;){var o=r.getObj();if(o===u.EOF)break;if((0,u.isCmd)(o,"endcodespacerange"))return;if(!(0,c.isString)(o))break;var l=strToInt(o);o=r.getObj();if(!(0,c.isString)(o))break;var h=strToInt(o);t.addCodespaceRange(o.length,l,h)}throw new c.FormatError("Invalid codespace range.")}function parseWMode(t,r){var o=r.getObj();Number.isInteger(o)&&(t.vertical=!!o)}function parseCMapName(t,r){var o=r.getObj();(0,u.isName)(o)&&(0,c.isString)(o.name)&&(t.name=o.name)}function parseCMap(t,r,o,l){return _parseCMap.apply(this,arguments)}function _parseCMap(){return(_parseCMap=_asyncToGenerator(l.default.mark((function _callee3(t,r,o,h){var m,g,y;return l.default.wrap((function _callee3$(l){for(;;)switch(l.prev=l.next){case 0:0;l.prev=1;if((y=r.getObj())!==u.EOF){l.next=7;break}return l.abrupt("break",39);case 7:if(!(0,u.isName)(y)){l.next=12;break}"WMode"===y.name?parseWMode(t,r):"CMapName"===y.name&&parseCMapName(t,r);m=y;l.next=29;break;case 12:if(!(0,u.isCmd)(y)){l.next=29;break}l.t0=y.cmd;l.next="endcmap"===l.t0?16:"usecmap"===l.t0?17:"begincodespacerange"===l.t0?19:"beginbfchar"===l.t0?21:"begincidchar"===l.t0?23:"beginbfrange"===l.t0?25:"begincidrange"===l.t0?27:29;break;case 16:return l.abrupt("break",39);case 17:(0,u.isName)(m)&&(g=m.name);return l.abrupt("break",29);case 19:parseCodespaceRange(t,r);return l.abrupt("break",29);case 21:parseBfChar(t,r);return l.abrupt("break",29);case 23:parseCidChar(t,r);return l.abrupt("break",29);case 25:parseBfRange(t,r);return l.abrupt("break",29);case 27:parseCidRange(t,r);return l.abrupt("break",29);case 29:l.next=37;break;case 31:l.prev=31;l.t1=l.catch(1);if(!(l.t1 instanceof d.MissingDataException)){l.next=35;break}throw l.t1;case 35:(0,c.warn)("Invalid cMap data: "+l.t1);return l.abrupt("continue",0);case 37:l.next=0;break;case 39:!h&&g&&(h=g);if(!h){l.next=42;break}return l.abrupt("return",extendCMap(t,o,h));case 42:return l.abrupt("return",t);case 43:case"end":return l.stop()}}),_callee3,null,[[1,31]])})))).apply(this,arguments)}function extendCMap(t,r,o){return _extendCMap.apply(this,arguments)}function _extendCMap(){return(_extendCMap=_asyncToGenerator(l.default.mark((function _callee4(t,r,o){var c,u;return l.default.wrap((function _callee4$(l){for(;;)switch(l.prev=l.next){case 0:l.next=2;return createBuiltInCMap(o,r);case 2:t.useCMap=l.sent;if(0===t.numCodespaceRanges){c=t.useCMap.codespaceRanges;for(u=0;u<c.length;u++)t.codespaceRanges[u]=c[u].slice();t.numCodespaceRanges=t.useCMap.numCodespaceRanges}t.useCMap.forEach((function(r,o){t.contains(r)||t.mapOne(r,t.useCMap.lookup(r))}));return l.abrupt("return",t);case 6:case"end":return l.stop()}}),_callee4)})))).apply(this,arguments)}function createBuiltInCMap(t,r){return _createBuiltInCMap.apply(this,arguments)}function _createBuiltInCMap(){return(_createBuiltInCMap=_asyncToGenerator(l.default.mark((function _callee5(t,r){var o,u,d,y,k;return l.default.wrap((function _callee5$(l){for(;;)switch(l.prev=l.next){case 0:if("Identity-H"!==t){l.next=4;break}return l.abrupt("return",new S(!1,2));case 4:if("Identity-V"!==t){l.next=6;break}return l.abrupt("return",new S(!0,2));case 6:if(g.includes(t)){l.next=8;break}throw new Error("Unknown CMap name: "+t);case 8:if(r){l.next=10;break}throw new Error("Built-in CMap parameters are not provided.");case 10:l.next=12;return r(t);case 12:o=l.sent;u=o.cMapData;d=o.compressionType;y=new v(!0);if(d!==c.CMapCompressionType.BINARY){l.next=18;break}return l.abrupt("return",(new _).process(u,y,(function(t){return extendCMap(y,r,t)})));case 18:if(d!==c.CMapCompressionType.NONE){l.next=21;break}k=new h.Lexer(new m.Stream(u));return l.abrupt("return",parseCMap(y,k,r,null));case 21:throw new Error("TODO: Only BINARY/NONE CMap compression is currently supported.");case 22:case"end":return l.stop()}}),_callee5)})))).apply(this,arguments)}return{create:function create(t){return _asyncToGenerator(l.default.mark((function _callee2(){var r,o,c,d;return l.default.wrap((function _callee2$(l){for(;;)switch(l.prev=l.next){case 0:r=t.encoding;o=t.fetchBuiltInCMap;c=t.useCMap;if(!(0,u.isName)(r)){l.next=7;break}return l.abrupt("return",createBuiltInCMap(r.name,o));case 7:if(!(0,u.isStream)(r)){l.next=14;break}l.next=10;return parseCMap(new v,new h.Lexer(r),o,c);case 10:if(!(d=l.sent).isIdentityCMap){l.next=13;break}return l.abrupt("return",createBuiltInCMap(d.name,o));case 13:return l.abrupt("return",d);case 14:throw new Error("Encoding required.");case 15:case"end":return l.stop()}}),_callee2)})))()}}}();r.CMapFactory=k},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.Parser=r.Linearization=r.Lexer=void 0;var l=o(4),c=o(118),u=o(122),h=o(141),d=o(143),m=o(144),g=o(146),y=o(147),v=o(150),S=o(152),_=o(154),k=o(123),C=o(155),w=o(156);function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}function computeAdler32(t){for(var r=t.length,o=1,l=0,c=0;c<r;++c)l+=o+=255&t[c];return l%65521<<16|o%65521}var x=function(){function Parser(t){var r=t.lexer,o=t.xref,l=t.allowStreams,c=void 0!==l&&l,u=t.recoveryMode,h=void 0!==u&&u;_classCallCheck(this,Parser);this.lexer=r;this.xref=o;this.allowStreams=c;this.recoveryMode=h;this.imageCache=Object.create(null);this.refill()}_createClass(Parser,[{key:"refill",value:function refill(){this.buf1=this.lexer.getObj();this.buf2=this.lexer.getObj()}},{key:"shift",value:function shift(){if(this.buf2 instanceof c.Cmd&&"ID"===this.buf2.cmd){this.buf1=this.buf2;this.buf2=null}else{this.buf1=this.buf2;this.buf2=this.lexer.getObj()}}},{key:"tryShift",value:function tryShift(){try{this.shift();return!0}catch(t){if(t instanceof u.MissingDataException)throw t;return!1}}},{key:"getObj",value:function getObj(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,r=this.buf1;this.shift();if(r instanceof c.Cmd)switch(r.cmd){case"BI":return this.makeInlineImage(t);case"[":for(var o=[];!(0,c.isCmd)(this.buf1,"]")&&this.buf1!==c.EOF;)o.push(this.getObj(t));if(this.buf1===c.EOF){if(this.recoveryMode)return o;throw new u.ParserEOFException("End of file inside array.")}this.shift();return o;case"<<":for(var h=new c.Dict(this.xref);!(0,c.isCmd)(this.buf1,">>")&&this.buf1!==c.EOF;)if((0,c.isName)(this.buf1)){var d=this.buf1.name;this.shift();if(this.buf1===c.EOF)break;h.set(d,this.getObj(t))}else{(0,l.info)("Malformed dictionary: key must be a name object");this.shift()}if(this.buf1===c.EOF){if(this.recoveryMode)return h;throw new u.ParserEOFException("End of file inside dictionary.")}if((0,c.isCmd)(this.buf2,"stream"))return this.allowStreams?this.makeStream(h,t):h;this.shift();return h;default:return r}if(Number.isInteger(r)){if(Number.isInteger(this.buf1)&&(0,c.isCmd)(this.buf2,"R")){var m=c.Ref.get(r,this.buf1);this.shift();this.shift();return m}return r}return"string"==typeof r&&t?t.decryptString(r):r}},{key:"findDefaultInlineStreamEnd",value:function findDefaultInlineStreamEnd(t){for(var r,o,h=this.lexer,d=t.pos,m=0;-1!==(r=t.getByte());)if(0===m)m=69===r?1:0;else if(1===m)m=73===r?2:0;else{(0,l.assert)(2===m,"findDefaultInlineStreamEnd - invalid state.");if(32===r||10===r||13===r){o=t.pos;for(var g=t.peekBytes(10),y=0,v=g.length;y<v;y++)if((0!==(r=g[y])||0===g[y+1])&&10!==r&&13!==r&&(r<32||r>127)){m=0;break}if(2!==m)continue;if(h.knownCommands){var S=h.peekObj();S instanceof c.Cmd&&!h.knownCommands[S.cmd]&&(m=0)}else(0,l.warn)("findDefaultInlineStreamEnd - `lexer.knownCommands` is undefined.");if(2===m)break}else m=0}if(-1===r){(0,l.warn)("findDefaultInlineStreamEnd: Reached the end of the stream without finding a valid EI marker");if(o){(0,l.warn)('... trying to recover by using the last "EI" occurrence.');t.skip(-(t.pos-o))}}var _=4;t.skip(-_);r=t.peekByte();t.skip(_);(0,u.isWhiteSpace)(r)||_--;return t.pos-_-d}},{key:"findDCTDecodeInlineStreamEnd",value:function findDCTDecodeInlineStreamEnd(t){for(var r,o,c=t.pos,u=!1;-1!==(r=t.getByte());)if(255===r){switch(t.getByte()){case 0:break;case 255:t.skip(-1);break;case 217:u=!0;break;case 192:case 193:case 194:case 195:case 197:case 198:case 199:case 201:case 202:case 203:case 205:case 206:case 207:case 196:case 204:case 218:case 219:case 220:case 221:case 222:case 223:case 224:case 225:case 226:case 227:case 228:case 229:case 230:case 231:case 232:case 233:case 234:case 235:case 236:case 237:case 238:case 239:case 254:(o=t.getUint16())>2?t.skip(o-2):t.skip(-2)}if(u)break}var h=t.pos-c;if(-1===r){(0,l.warn)("Inline DCTDecode image stream: EOI marker not found, searching for /EI/ instead.");t.skip(-h);return this.findDefaultInlineStreamEnd(t)}this.inlineStreamSkipEI(t);return h}},{key:"findASCII85DecodeInlineStreamEnd",value:function findASCII85DecodeInlineStreamEnd(t){for(var r,o=t.pos;-1!==(r=t.getByte());)if(126===r){var c=t.pos;r=t.peekByte();for(;(0,u.isWhiteSpace)(r);){t.skip();r=t.peekByte()}if(62===r){t.skip();break}if(t.pos>c){var h=t.peekBytes(2);if(69===h[0]&&73===h[1])break}}var d=t.pos-o;if(-1===r){(0,l.warn)("Inline ASCII85Decode image stream: EOD marker not found, searching for /EI/ instead.");t.skip(-d);return this.findDefaultInlineStreamEnd(t)}this.inlineStreamSkipEI(t);return d}},{key:"findASCIIHexDecodeInlineStreamEnd",value:function findASCIIHexDecodeInlineStreamEnd(t){for(var r,o=t.pos;-1!==(r=t.getByte())&&62!==r;);var c=t.pos-o;if(-1===r){(0,l.warn)("Inline ASCIIHexDecode image stream: EOD marker not found, searching for /EI/ instead.");t.skip(-c);return this.findDefaultInlineStreamEnd(t)}this.inlineStreamSkipEI(t);return c}},{key:"inlineStreamSkipEI",value:function inlineStreamSkipEI(t){for(var r,o=0;-1!==(r=t.getByte());)if(0===o)o=69===r?1:0;else if(1===o)o=73===r?2:0;else if(2===o)break}},{key:"makeInlineImage",value:function makeInlineImage(t){for(var r,o=this.lexer,u=o.stream,h=new c.Dict(this.xref);!(0,c.isCmd)(this.buf1,"ID")&&this.buf1!==c.EOF;){if(!(0,c.isName)(this.buf1))throw new l.FormatError("Dictionary key must be a name object");var d=this.buf1.name;this.shift();if(this.buf1===c.EOF)break;h.set(d,this.getObj(t))}-1!==o.beginInlineImagePos&&(r=u.pos-o.beginInlineImagePos);var m,g=h.get("Filter","F");if((0,c.isName)(g))m=g.name;else if(Array.isArray(g)){var y=this.xref.fetchIfRef(g[0]);(0,c.isName)(y)&&(m=y.name)}var v,S=u.pos;v="DCTDecode"===m||"DCT"===m?this.findDCTDecodeInlineStreamEnd(u):"ASCII85Decode"===m||"A85"===m?this.findASCII85DecodeInlineStreamEnd(u):"ASCIIHexDecode"===m||"AHx"===m?this.findASCIIHexDecodeInlineStreamEnd(u):this.findDefaultInlineStreamEnd(u);var _,k=u.makeSubStream(S,v,h);if(v<1e3&&r<5552){var C=k.getBytes();k.reset();var w=u.pos;u.pos=o.beginInlineImagePos;var x=u.getBytes(r);u.pos=w;_=computeAdler32(C)+"_"+computeAdler32(x);var O=this.imageCache[_];if(void 0!==O){this.buf2=c.Cmd.get("EI");this.shift();O.reset();return O}}t&&(k=t.createStream(k,v));(k=this.filter(k,h,v)).dict=h;if(void 0!==_){k.cacheKey="inline_".concat(v,"_").concat(_);this.imageCache[_]=k}this.buf2=c.Cmd.get("EI");this.shift();return k}},{key:"_findStreamLength",value:function _findStreamLength(t,r){var o=this.lexer.stream;o.pos=t;for(var l=r.length;o.pos<o.end;){var c=o.peekBytes(2048),u=c.length-l;if(u<=0)break;for(var h=0;h<u;){for(var d=0;d<l&&c[h+d]===r[d];)d++;if(d>=l){o.pos+=h;return o.pos-t}h++}o.pos+=u}return-1}},{key:"makeStream",value:function makeStream(t,r){var o=this.lexer,h=o.stream;o.skipToNextLine();var d=h.pos-1,m=t.get("Length");if(!Number.isInteger(m)){(0,l.info)('Bad length "'.concat(m,'" in stream'));m=0}h.pos=d+m;o.nextChar();if(this.tryShift()&&(0,c.isCmd)(this.buf2,"endstream"))this.shift();else{var g=new Uint8Array([101,110,100,115,116,114,101,97,109]),y=this._findStreamLength(d,g);if(y<0){for(var v=1;v<=1;v++){var S=g.length-v,_=g.slice(0,S),k=this._findStreamLength(d,_);if(k>=0){var C=h.peekBytes(S+1)[S];if(!(0,u.isWhiteSpace)(C))break;(0,l.info)('Found "'.concat((0,l.bytesToString)(_),'" when ')+"searching for endstream command.");y=k;break}}if(y<0)throw new l.FormatError("Missing endstream command.")}m=y;o.nextChar();this.shift();this.shift()}this.shift();h=h.makeSubStream(d,m,t);r&&(h=r.createStream(h,m));(h=this.filter(h,t,m)).dict=t;return h}},{key:"filter",value:function filter(t,r,o){var filter=r.get("Filter","F"),u=r.get("DecodeParms","DP");if((0,c.isName)(filter)){Array.isArray(u)&&(0,l.warn)("/DecodeParms should not contain an Array, when /Filter contains a Name.");return this.makeFilter(t,filter.name,o,u)}var h=o;if(Array.isArray(filter))for(var d=filter,m=u,g=0,y=d.length;g<y;++g){filter=this.xref.fetchIfRef(d[g]);if(!(0,c.isName)(filter))throw new l.FormatError('Bad filter name "'.concat(filter,'"'));u=null;Array.isArray(m)&&g in m&&(u=this.xref.fetchIfRef(m[g]));t=this.makeFilter(t,filter.name,h,u);h=null}return t}},{key:"makeFilter",value:function makeFilter(t,r,o,c){if(0===o){(0,l.warn)('Empty "'.concat(r,'" stream.'));return new k.NullStream}try{var x=this.xref.stats.streamTypes;if("FlateDecode"===r||"Fl"===r){x[l.StreamType.FLATE]=!0;return c?new C.PredictorStream(new g.FlateStream(t,o),o,c):new g.FlateStream(t,o)}if("LZWDecode"===r||"LZW"===r){x[l.StreamType.LZW]=!0;var O=1;if(c){c.has("EarlyChange")&&(O=c.get("EarlyChange"));return new C.PredictorStream(new _.LZWStream(t,o,O),o,c)}return new _.LZWStream(t,o,O)}if("DCTDecode"===r||"DCT"===r){x[l.StreamType.DCT]=!0;return new v.JpegStream(t,o,c)}if("JPXDecode"===r||"JPX"===r){x[l.StreamType.JPX]=!0;return new S.JpxStream(t,o,c)}if("ASCII85Decode"===r||"A85"===r){x[l.StreamType.A85]=!0;return new h.Ascii85Stream(t,o)}if("ASCIIHexDecode"===r||"AHx"===r){x[l.StreamType.AHX]=!0;return new d.AsciiHexStream(t,o)}if("CCITTFaxDecode"===r||"CCF"===r){x[l.StreamType.CCF]=!0;return new m.CCITTFaxStream(t,o,c)}if("RunLengthDecode"===r||"RL"===r){x[l.StreamType.RLX]=!0;return new w.RunLengthStream(t,o)}if("JBIG2Decode"===r){x[l.StreamType.JBIG]=!0;return new y.Jbig2Stream(t,o,c)}(0,l.warn)('Filter "'.concat(r,'" is not supported.'));return t}catch(t){if(t instanceof u.MissingDataException)throw t;(0,l.warn)('Invalid stream: "'.concat(t,'"'));return new k.NullStream}}}]);return Parser}();r.Parser=x;var O=[1,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,2,0,0,2,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];function toHexDigit(t){return t>=48&&t<=57?15&t:t>=65&&t<=70||t>=97&&t<=102?9+(15&t):-1}var T=function(){function Lexer(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;_classCallCheck(this,Lexer);this.stream=t;this.nextChar();this.strBuf=[];this.knownCommands=r;this._hexStringNumWarn=0;this.beginInlineImagePos=-1}_createClass(Lexer,[{key:"nextChar",value:function nextChar(){return this.currentChar=this.stream.getByte()}},{key:"peekChar",value:function peekChar(){return this.stream.peekByte()}},{key:"getNumber",value:function getNumber(){var t=this.currentChar,r=!1,o=0,c=0;if(45===t){c=-1;45===(t=this.nextChar())&&(t=this.nextChar())}else if(43===t){c=1;t=this.nextChar()}if(10===t||13===t)do{t=this.nextChar()}while(10===t||13===t);if(46===t){o=10;t=this.nextChar()}if(t<48||t>57){if(10===o&&0===c&&((0,u.isWhiteSpace)(t)||-1===t)){(0,l.warn)("Lexer.getNumber - treating a single decimal point as zero.");return 0}throw new l.FormatError("Invalid number: ".concat(String.fromCharCode(t)," (charCode ").concat(t,")"))}c=c||1;for(var h=t-48,d=0,m=1;(t=this.nextChar())>=0;)if(t>=48&&t<=57){var g=t-48;if(r)d=10*d+g;else{0!==o&&(o*=10);h=10*h+g}}else if(46===t){if(0!==o)break;o=1}else if(45===t)(0,l.warn)("Badly formatted number: minus sign in the middle");else{if(69!==t&&101!==t)break;if(43===(t=this.peekChar())||45===t){m=45===t?-1:1;this.nextChar()}else if(t<48||t>57)break;r=!0}0!==o&&(h/=o);r&&(h*=Math.pow(10,m*d));return c*h}},{key:"getString",value:function getString(){var t=1,r=!1,o=this.strBuf;o.length=0;for(var c=this.nextChar();;){var u=!1;switch(0|c){case-1:(0,l.warn)("Unterminated string");r=!0;break;case 40:++t;o.push("(");break;case 41:if(0==--t){this.nextChar();r=!0}else o.push(")");break;case 92:switch(c=this.nextChar()){case-1:(0,l.warn)("Unterminated string");r=!0;break;case 110:o.push("\n");break;case 114:o.push("\r");break;case 116:o.push("\t");break;case 98:o.push("\b");break;case 102:o.push("\f");break;case 92:case 40:case 41:o.push(String.fromCharCode(c));break;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:var h=15&c;u=!0;if((c=this.nextChar())>=48&&c<=55){h=(h<<3)+(15&c);if((c=this.nextChar())>=48&&c<=55){u=!1;h=(h<<3)+(15&c)}}o.push(String.fromCharCode(h));break;case 13:10===this.peekChar()&&this.nextChar();break;case 10:break;default:o.push(String.fromCharCode(c))}break;default:o.push(String.fromCharCode(c))}if(r)break;u||(c=this.nextChar())}return o.join("")}},{key:"getName",value:function getName(){var t,r,o=this.strBuf;o.length=0;for(;(t=this.nextChar())>=0&&!O[t];)if(35===t){t=this.nextChar();if(O[t]){(0,l.warn)("Lexer_getName: NUMBER SIGN (#) should be followed by a hexadecimal number.");o.push("#");break}var u=toHexDigit(t);if(-1!==u){r=t;var h=toHexDigit(t=this.nextChar());if(-1===h){(0,l.warn)("Lexer_getName: Illegal digit (".concat(String.fromCharCode(t),") ")+"in hexadecimal number.");o.push("#",String.fromCharCode(r));if(O[t])break;o.push(String.fromCharCode(t));continue}o.push(String.fromCharCode(u<<4|h))}else o.push("#",String.fromCharCode(t))}else o.push(String.fromCharCode(t));o.length>127?(0,l.warn)("Name token is longer than allowed by the spec: ".concat(o.length)):0===o.length&&(0,l.warn)("Name token is empty.");return c.Name.get(o.join(""))}},{key:"_hexStringWarn",value:function _hexStringWarn(t){5!=this._hexStringNumWarn++?this._hexStringNumWarn>5||(0,l.warn)("getHexString - ignoring invalid character: ".concat(t)):(0,l.warn)("getHexString - ignoring additional invalid characters.")}},{key:"getHexString",value:function getHexString(){var t=this.strBuf;t.length=0;var r,o,c=this.currentChar,u=!0;this._hexStringNumWarn=0;for(;;){if(c<0){(0,l.warn)("Unterminated hex string");break}if(62===c){this.nextChar();break}if(1!==O[c]){if(u){if(-1===(r=toHexDigit(c))){this._hexStringWarn(c);c=this.nextChar();continue}}else{if(-1===(o=toHexDigit(c))){this._hexStringWarn(c);c=this.nextChar();continue}t.push(String.fromCharCode(r<<4|o))}u=!u;c=this.nextChar()}else c=this.nextChar()}return t.join("")}},{key:"getObj",value:function getObj(){for(var t=!1,r=this.currentChar;;){if(r<0)return c.EOF;if(t)10!==r&&13!==r||(t=!1);else if(37===r)t=!0;else if(1!==O[r])break;r=this.nextChar()}switch(0|r){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 43:case 45:case 46:return this.getNumber();case 40:return this.getString();case 47:return this.getName();case 91:this.nextChar();return c.Cmd.get("[");case 93:this.nextChar();return c.Cmd.get("]");case 60:if(60===(r=this.nextChar())){this.nextChar();return c.Cmd.get("<<")}return this.getHexString();case 62:if(62===(r=this.nextChar())){this.nextChar();return c.Cmd.get(">>")}return c.Cmd.get(">");case 123:this.nextChar();return c.Cmd.get("{");case 125:this.nextChar();return c.Cmd.get("}");case 41:this.nextChar();throw new l.FormatError("Illegal character: ".concat(r))}var o=String.fromCharCode(r);if(r<32||r>127){var u=this.peekChar();if(u>=32&&u<=127){this.nextChar();return c.Cmd.get(o)}}for(var h=this.knownCommands,d=h&&void 0!==h[o];(r=this.nextChar())>=0&&!O[r];){var m=o+String.fromCharCode(r);if(d&&void 0===h[m])break;if(128===o.length)throw new l.FormatError("Command token too long: ".concat(o.length));o=m;d=h&&void 0!==h[o]}if("true"===o)return!0;if("false"===o)return!1;if("null"===o)return null;"BI"===o&&(this.beginInlineImagePos=this.stream.pos);return c.Cmd.get(o)}},{key:"peekObj",value:function peekObj(){var t,r=this.stream.pos,o=this.currentChar,c=this.beginInlineImagePos;try{t=this.getObj()}catch(t){if(t instanceof u.MissingDataException)throw t;(0,l.warn)("peekObj: ".concat(t))}this.stream.pos=r;this.currentChar=o;this.beginInlineImagePos=c;return t}},{key:"skipToNextLine",value:function skipToNextLine(){for(var t=this.currentChar;t>=0;){if(13===t){10===(t=this.nextChar())&&this.nextChar();break}if(10===t){this.nextChar();break}t=this.nextChar()}}}]);return Lexer}();r.Lexer=T;var R=function(){function Linearization(){_classCallCheck(this,Linearization)}_createClass(Linearization,null,[{key:"create",value:function create(t){function getInt(t,r){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],l=t.get(r);if(Number.isInteger(l)&&(o?l>=0:l>0))return l;throw new Error('The "'.concat(r,'" parameter in the linearization ')+"dictionary is invalid.")}var r,o,u=new x({lexer:new T(t),xref:null}),h=u.getObj(),d=u.getObj(),m=u.getObj(),g=u.getObj();if(!(Number.isInteger(h)&&Number.isInteger(d)&&(0,c.isCmd)(m,"obj")&&(0,c.isDict)(g)&&(0,l.isNum)(r=g.get("Linearized"))&&r>0))return null;if((o=getInt(g,"L"))!==t.length)throw new Error('The "L" parameter in the linearization dictionary does not equal the stream length.');return{length:o,hints:function getHints(t){var r,o=t.get("H");if(Array.isArray(o)&&(2===(r=o.length)||4===r)){for(var l=0;l<r;l++){var c=o[l];if(!(Number.isInteger(c)&&c>0))throw new Error("Hint (".concat(l,") in the linearization dictionary is invalid."))}return o}throw new Error("Hint array in the linearization dictionary is invalid.")}(g),objectNumberFirst:getInt(g,"O"),endFirst:getInt(g,"E"),numPages:getInt(g,"N"),mainXRefEntriesOffset:getInt(g,"T"),pageFirst:g.has("P")?getInt(g,"P",!0):0}}}]);return Linearization}();r.Linearization=R},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.Ascii85Stream=void 0;var l=o(142),c=o(122);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var u=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(Ascii85Stream,t);var r=_createSuper(Ascii85Stream);function Ascii85Stream(t,o){var l;!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,Ascii85Stream);o&&(o*=.8);(l=r.call(this,o)).str=t;l.dict=t.dict;l.input=new Uint8Array(5);return l}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(Ascii85Stream,[{key:"readBlock",value:function readBlock(){for(var t=this.str,r=t.getByte();(0,c.isWhiteSpace)(r);)r=t.getByte();if(-1!==r&&126!==r){var o,l,u=this.bufferLength;if(122===r){o=this.ensureBuffer(u+4);for(l=0;l<4;++l)o[u+l]=0;this.bufferLength+=4}else{var h=this.input;h[0]=r;for(l=1;l<5;++l){r=t.getByte();for(;(0,c.isWhiteSpace)(r);)r=t.getByte();h[l]=r;if(-1===r||126===r)break}o=this.ensureBuffer(u+l-1);this.bufferLength+=l-1;if(l<5){for(;l<5;++l)h[l]=117;this.eof=!0}var d=0;for(l=0;l<5;++l)d=85*d+(h[l]-33);for(l=3;l>=0;--l){o[u+l]=255&d;d>>=8}}}else this.eof=!0}}]);return Ascii85Stream}(l.DecodeStream);r.Ascii85Stream=u},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.StreamsSequenceStream=r.DecodeStream=void 0;var l=o(119),c=o(123);function _toConsumableArray(t){return function _arrayWithoutHoles(t){if(Array.isArray(t))return _arrayLikeToArray(t)}(t)||function _iterableToArray(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||_unsupportedIterableToArray(t)||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 _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}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 u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var u=new Uint8Array(0),h=function(t){_inherits(DecodeStream,t);var r=_createSuper(DecodeStream);function DecodeStream(t){var o;_classCallCheck(this,DecodeStream);(o=r.call(this))._rawMinBufferLength=t||0;o.pos=0;o.bufferLength=0;o.eof=!1;o.buffer=u;o.minBufferLength=512;if(t)for(;o.minBufferLength<t;)o.minBufferLength*=2;return o}_createClass(DecodeStream,[{key:"isEmpty",get:function get(){for(;!this.eof&&0===this.bufferLength;)this.readBlock();return 0===this.bufferLength}},{key:"ensureBuffer",value:function ensureBuffer(t){var r=this.buffer;if(t<=r.byteLength)return r;for(var o=this.minBufferLength;o<t;)o*=2;var l=new Uint8Array(o);l.set(r);return this.buffer=l}},{key:"getByte",value:function getByte(){for(var t=this.pos;this.bufferLength<=t;){if(this.eof)return-1;this.readBlock()}return this.buffer[this.pos++]}},{key:"getBytes",value:function getBytes(t){var r,o=arguments.length>1&&void 0!==arguments[1]&&arguments[1],l=this.pos;if(t){this.ensureBuffer(l+t);r=l+t;for(;!this.eof&&this.bufferLength<r;)this.readBlock();var c=this.bufferLength;r>c&&(r=c)}else{for(;!this.eof;)this.readBlock();r=this.bufferLength}this.pos=r;var u=this.buffer.subarray(l,r);return!o||u instanceof Uint8ClampedArray?u:new Uint8ClampedArray(u)}},{key:"reset",value:function reset(){this.pos=0}},{key:"makeSubStream",value:function makeSubStream(t,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(void 0===r)for(;!this.eof;)this.readBlock();else for(var l=t+r;this.bufferLength<=l&&!this.eof;)this.readBlock();return new c.Stream(this.buffer,t,r,o)}},{key:"getBaseStreams",value:function getBaseStreams(){return this.str?this.str.getBaseStreams():null}}]);return DecodeStream}(l.BaseStream);r.DecodeStream=h;var d=function(t){_inherits(StreamsSequenceStream,t);var r=_createSuper(StreamsSequenceStream);function StreamsSequenceStream(t){var o,l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;_classCallCheck(this,StreamsSequenceStream);var c,u=0,d=_createForOfIteratorHelper(t);try{for(d.s();!(c=d.n()).done;){var m=c.value;u+=m instanceof h?m._rawMinBufferLength:m.length}}catch(t){d.e(t)}finally{d.f()}(o=r.call(this,u)).streams=t;o._onError=l;return o}_createClass(StreamsSequenceStream,[{key:"readBlock",value:function readBlock(){var t=this.streams;if(0!==t.length){var r,o=t.shift();try{r=o.getBytes()}catch(t){if(this._onError){this._onError(t,o.dict&&o.dict.objId);return}throw t}var l=this.bufferLength,c=l+r.length;this.ensureBuffer(c).set(r,l);this.bufferLength=c}else this.eof=!0}},{key:"getBaseStreams",value:function getBaseStreams(){var t,r=[],o=_createForOfIteratorHelper(this.streams);try{for(o.s();!(t=o.n()).done;){var l=t.value.getBaseStreams();l&&r.push.apply(r,_toConsumableArray(l))}}catch(t){o.e(t)}finally{o.f()}return r.length>0?r:null}}]);return StreamsSequenceStream}(h);r.StreamsSequenceStream=d},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.AsciiHexStream=void 0;function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);if("Map"===o||"Set"===o)return Array.from(t);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}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 u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var l=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(AsciiHexStream,t);var r=_createSuper(AsciiHexStream);function AsciiHexStream(t,o){var l;!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,AsciiHexStream);o&&(o*=.5);(l=r.call(this,o)).str=t;l.dict=t.dict;l.firstDigit=-1;return l}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(AsciiHexStream,[{key:"readBlock",value:function readBlock(){var t=this.str.getBytes(8e3);if(t.length){var r,o=t.length+1>>1,l=this.ensureBuffer(this.bufferLength+o),c=this.bufferLength,u=this.firstDigit,h=_createForOfIteratorHelper(t);try{for(h.s();!(r=h.n()).done;){var d=r.value,m=void 0;if(d>=48&&d<=57)m=15&d;else{if(!(d>=65&&d<=70||d>=97&&d<=102)){if(62===d){this.eof=!0;break}continue}m=9+(15&d)}if(u<0)u=m;else{l[c++]=u<<4|m;u=-1}}}catch(t){h.e(t)}finally{h.f()}if(u>=0&&this.eof){l[c++]=u<<4;u=-1}this.firstDigit=u;this.bufferLength=c}else this.eof=!0}}]);return AsciiHexStream}(o(142).DecodeStream);r.AsciiHexStream=l},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.CCITTFaxStream=void 0;var l=o(118),c=o(145);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var u=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(CCITTFaxStream,t);var r=_createSuper(CCITTFaxStream);function CCITTFaxStream(t,o,u){var h;!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,CCITTFaxStream);(h=r.call(this,o)).str=t;h.dict=t.dict;(0,l.isDict)(u)||(u=l.Dict.empty);var d={next:function next(){return t.getByte()}};h.ccittFaxDecoder=new c.CCITTFaxDecoder(d,{K:u.get("K"),EndOfLine:u.get("EndOfLine"),EncodedByteAlign:u.get("EncodedByteAlign"),Columns:u.get("Columns"),Rows:u.get("Rows"),EndOfBlock:u.get("EndOfBlock"),BlackIs1:u.get("BlackIs1")});return h}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(CCITTFaxStream,[{key:"readBlock",value:function readBlock(){for(;!this.eof;){var t=this.ccittFaxDecoder.readNextChar();if(-1===t){this.eof=!0;return}this.ensureBuffer(this.bufferLength+1);this.buffer[this.bufferLength++]=t}}}]);return CCITTFaxStream}(o(142).DecodeStream);r.CCITTFaxStream=u},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.CCITTFaxDecoder=void 0;var l=o(4);function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}var c=-1,u=[[-1,-1],[-1,-1],[7,8],[7,7],[6,6],[6,6],[6,5],[6,5],[4,0],[4,0],[4,0],[4,0],[4,0],[4,0],[4,0],[4,0],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2]],h=[[-1,-1],[12,-2],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[12,1984],[12,2048],[12,2112],[12,2176],[12,2240],[12,2304],[11,1856],[11,1856],[11,1920],[11,1920],[12,2368],[12,2432],[12,2496],[12,2560]],d=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[8,29],[8,29],[8,30],[8,30],[8,45],[8,45],[8,46],[8,46],[7,22],[7,22],[7,22],[7,22],[7,23],[7,23],[7,23],[7,23],[8,47],[8,47],[8,48],[8,48],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[7,20],[7,20],[7,20],[7,20],[8,33],[8,33],[8,34],[8,34],[8,35],[8,35],[8,36],[8,36],[8,37],[8,37],[8,38],[8,38],[7,19],[7,19],[7,19],[7,19],[8,31],[8,31],[8,32],[8,32],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[8,53],[8,53],[8,54],[8,54],[7,26],[7,26],[7,26],[7,26],[8,39],[8,39],[8,40],[8,40],[8,41],[8,41],[8,42],[8,42],[8,43],[8,43],[8,44],[8,44],[7,21],[7,21],[7,21],[7,21],[7,28],[7,28],[7,28],[7,28],[8,61],[8,61],[8,62],[8,62],[8,63],[8,63],[8,0],[8,0],[8,320],[8,320],[8,384],[8,384],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[7,27],[7,27],[7,27],[7,27],[8,59],[8,59],[8,60],[8,60],[9,1472],[9,1536],[9,1600],[9,1728],[7,18],[7,18],[7,18],[7,18],[7,24],[7,24],[7,24],[7,24],[8,49],[8,49],[8,50],[8,50],[8,51],[8,51],[8,52],[8,52],[7,25],[7,25],[7,25],[7,25],[8,55],[8,55],[8,56],[8,56],[8,57],[8,57],[8,58],[8,58],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[8,448],[8,448],[8,512],[8,512],[9,704],[9,768],[8,640],[8,640],[8,576],[8,576],[9,832],[9,896],[9,960],[9,1024],[9,1088],[9,1152],[9,1216],[9,1280],[9,1344],[9,1408],[7,256],[7,256],[7,256],[7,256],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7]],m=[[-1,-1],[-1,-1],[12,-2],[12,-2],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[11,1792],[11,1792],[12,1984],[12,1984],[12,2048],[12,2048],[12,2112],[12,2112],[12,2176],[12,2176],[12,2240],[12,2240],[12,2304],[12,2304],[11,1856],[11,1856],[11,1856],[11,1856],[11,1920],[11,1920],[11,1920],[11,1920],[12,2368],[12,2368],[12,2432],[12,2432],[12,2496],[12,2496],[12,2560],[12,2560],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[12,52],[12,52],[13,640],[13,704],[13,768],[13,832],[12,55],[12,55],[12,56],[12,56],[13,1280],[13,1344],[13,1408],[13,1472],[12,59],[12,59],[12,60],[12,60],[13,1536],[13,1600],[11,24],[11,24],[11,24],[11,24],[11,25],[11,25],[11,25],[11,25],[13,1664],[13,1728],[12,320],[12,320],[12,384],[12,384],[12,448],[12,448],[13,512],[13,576],[12,53],[12,53],[12,54],[12,54],[13,896],[13,960],[13,1024],[13,1088],[13,1152],[13,1216],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64]],g=[[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[11,23],[11,23],[12,50],[12,51],[12,44],[12,45],[12,46],[12,47],[12,57],[12,58],[12,61],[12,256],[10,16],[10,16],[10,16],[10,16],[10,17],[10,17],[10,17],[10,17],[12,48],[12,49],[12,62],[12,63],[12,30],[12,31],[12,32],[12,33],[12,40],[12,41],[11,22],[11,22],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[12,128],[12,192],[12,26],[12,27],[12,28],[12,29],[11,19],[11,19],[11,20],[11,20],[12,34],[12,35],[12,36],[12,37],[12,38],[12,39],[11,21],[11,21],[12,42],[12,43],[10,0],[10,0],[10,0],[10,0],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12]],y=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[6,9],[6,8],[5,7],[5,7],[4,6],[4,6],[4,6],[4,6],[4,5],[4,5],[4,5],[4,5],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2]],v=function(){function CCITTFaxDecoder(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};_classCallCheck(this,CCITTFaxDecoder);if(!t||"function"!=typeof t.next)throw new Error('CCITTFaxDecoder - invalid "source" parameter.');this.source=t;this.eof=!1;this.encoding=r.K||0;this.eoline=r.EndOfLine||!1;this.byteAlign=r.EncodedByteAlign||!1;this.columns=r.Columns||1728;this.rows=r.Rows||0;var o,l=r.EndOfBlock;null==l&&(l=!0);this.eoblock=l;this.black=r.BlackIs1||!1;this.codingLine=new Uint32Array(this.columns+1);this.refLine=new Uint32Array(this.columns+2);this.codingLine[0]=this.columns;this.codingPos=0;this.row=0;this.nextLine2D=this.encoding<0;this.inputBits=0;this.inputBuf=0;this.outputBits=0;this.rowsDone=!1;for(;0===(o=this._lookBits(12));)this._eatBits(1);1===o&&this._eatBits(12);if(this.encoding>0){this.nextLine2D=!this._lookBits(1);this._eatBits(1)}}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(CCITTFaxDecoder,[{key:"readNextChar",value:function readNextChar(){if(this.eof)return-1;var t,r,o,u,h,d=this.refLine,m=this.codingLine,g=this.columns;if(0===this.outputBits){this.rowsDone&&(this.eof=!0);if(this.eof)return-1;this.err=!1;var y,v,S;if(this.nextLine2D){for(u=0;m[u]<g;++u)d[u]=m[u];d[u++]=g;d[u]=g;m[0]=0;this.codingPos=0;t=0;r=0;for(;m[this.codingPos]<g;)switch(y=this._getTwoDimCode()){case 0:this._addPixels(d[t+1],r);d[t+1]<g&&(t+=2);break;case 1:y=v=0;if(r){do{y+=S=this._getBlackCode()}while(S>=64);do{v+=S=this._getWhiteCode()}while(S>=64)}else{do{y+=S=this._getWhiteCode()}while(S>=64);do{v+=S=this._getBlackCode()}while(S>=64)}this._addPixels(m[this.codingPos]+y,r);m[this.codingPos]<g&&this._addPixels(m[this.codingPos]+v,1^r);for(;d[t]<=m[this.codingPos]&&d[t]<g;)t+=2;break;case 7:this._addPixels(d[t]+3,r);r^=1;if(m[this.codingPos]<g){++t;for(;d[t]<=m[this.codingPos]&&d[t]<g;)t+=2}break;case 5:this._addPixels(d[t]+2,r);r^=1;if(m[this.codingPos]<g){++t;for(;d[t]<=m[this.codingPos]&&d[t]<g;)t+=2}break;case 3:this._addPixels(d[t]+1,r);r^=1;if(m[this.codingPos]<g){++t;for(;d[t]<=m[this.codingPos]&&d[t]<g;)t+=2}break;case 2:this._addPixels(d[t],r);r^=1;if(m[this.codingPos]<g){++t;for(;d[t]<=m[this.codingPos]&&d[t]<g;)t+=2}break;case 8:this._addPixelsNeg(d[t]-3,r);r^=1;if(m[this.codingPos]<g){t>0?--t:++t;for(;d[t]<=m[this.codingPos]&&d[t]<g;)t+=2}break;case 6:this._addPixelsNeg(d[t]-2,r);r^=1;if(m[this.codingPos]<g){t>0?--t:++t;for(;d[t]<=m[this.codingPos]&&d[t]<g;)t+=2}break;case 4:this._addPixelsNeg(d[t]-1,r);r^=1;if(m[this.codingPos]<g){t>0?--t:++t;for(;d[t]<=m[this.codingPos]&&d[t]<g;)t+=2}break;case c:this._addPixels(g,0);this.eof=!0;break;default:(0,l.info)("bad 2d code");this._addPixels(g,0);this.err=!0}}else{m[0]=0;this.codingPos=0;r=0;for(;m[this.codingPos]<g;){y=0;if(r)do{y+=S=this._getBlackCode()}while(S>=64);else do{y+=S=this._getWhiteCode()}while(S>=64);this._addPixels(m[this.codingPos]+y,r);r^=1}}var _=!1;this.byteAlign&&(this.inputBits&=-8);if(this.eoblock||this.row!==this.rows-1){y=this._lookBits(12);if(this.eoline)for(;y!==c&&1!==y;){this._eatBits(1);y=this._lookBits(12)}else for(;0===y;){this._eatBits(1);y=this._lookBits(12)}if(1===y){this._eatBits(12);_=!0}else y===c&&(this.eof=!0)}else this.rowsDone=!0;if(!this.eof&&this.encoding>0&&!this.rowsDone){this.nextLine2D=!this._lookBits(1);this._eatBits(1)}if(this.eoblock&&_&&this.byteAlign){if(1===(y=this._lookBits(12))){this._eatBits(12);if(this.encoding>0){this._lookBits(1);this._eatBits(1)}if(this.encoding>=0)for(u=0;u<4;++u){1!==(y=this._lookBits(12))&&(0,l.info)("bad rtc code: "+y);this._eatBits(12);if(this.encoding>0){this._lookBits(1);this._eatBits(1)}}this.eof=!0}}else if(this.err&&this.eoline){for(;;){if((y=this._lookBits(13))===c){this.eof=!0;return-1}if(y>>1==1)break;this._eatBits(1)}this._eatBits(12);if(this.encoding>0){this._eatBits(1);this.nextLine2D=!(1&y)}}m[0]>0?this.outputBits=m[this.codingPos=0]:this.outputBits=m[this.codingPos=1];this.row++}if(this.outputBits>=8){h=1&this.codingPos?0:255;this.outputBits-=8;if(0===this.outputBits&&m[this.codingPos]<g){this.codingPos++;this.outputBits=m[this.codingPos]-m[this.codingPos-1]}}else{o=8;h=0;do{if(this.outputBits>o){h<<=o;1&this.codingPos||(h|=255>>8-o);this.outputBits-=o;o=0}else{h<<=this.outputBits;1&this.codingPos||(h|=255>>8-this.outputBits);o-=this.outputBits;this.outputBits=0;if(m[this.codingPos]<g){this.codingPos++;this.outputBits=m[this.codingPos]-m[this.codingPos-1]}else if(o>0){h<<=o;o=0}}}while(o)}this.black&&(h^=255);return h}},{key:"_addPixels",value:function _addPixels(t,r){var o=this.codingLine,c=this.codingPos;if(t>o[c]){if(t>this.columns){(0,l.info)("row is wrong length");this.err=!0;t=this.columns}1&c^r&&++c;o[c]=t}this.codingPos=c}},{key:"_addPixelsNeg",value:function _addPixelsNeg(t,r){var o=this.codingLine,c=this.codingPos;if(t>o[c]){if(t>this.columns){(0,l.info)("row is wrong length");this.err=!0;t=this.columns}1&c^r&&++c;o[c]=t}else if(t<o[c]){if(t<0){(0,l.info)("invalid code");this.err=!0;t=0}for(;c>0&&t<o[c-1];)--c;o[c]=t}this.codingPos=c}},{key:"_findTableCode",value:function _findTableCode(t,r,o,l){for(var u=l||0,h=t;h<=r;++h){var d=this._lookBits(h);if(d===c)return[!0,1,!1];h<r&&(d<<=r-h);if(!u||d>=u){var m=o[d-u];if(m[0]===h){this._eatBits(h);return[!0,m[1],!0]}}}return[!1,0,!1]}},{key:"_getTwoDimCode",value:function _getTwoDimCode(){var t,r=0;if(this.eoblock){r=this._lookBits(7);if((t=u[r])&&t[0]>0){this._eatBits(t[0]);return t[1]}}else{var o=this._findTableCode(1,7,u);if(o[0]&&o[2])return o[1]}(0,l.info)("Bad two dim code");return c}},{key:"_getWhiteCode",value:function _getWhiteCode(){var t,r=0;if(this.eoblock){if((r=this._lookBits(12))===c)return 1;if((t=r>>5==0?h[r]:d[r>>3])[0]>0){this._eatBits(t[0]);return t[1]}}else{var o=this._findTableCode(1,9,d);if(o[0])return o[1];if((o=this._findTableCode(11,12,h))[0])return o[1]}(0,l.info)("bad white code");this._eatBits(1);return 1}},{key:"_getBlackCode",value:function _getBlackCode(){var t,r;if(this.eoblock){if((t=this._lookBits(13))===c)return 1;if((r=t>>7==0?m[t]:t>>9==0&&t>>7!=0?g[(t>>1)-64]:y[t>>7])[0]>0){this._eatBits(r[0]);return r[1]}}else{var o=this._findTableCode(2,6,y);if(o[0])return o[1];if((o=this._findTableCode(7,12,g,64))[0])return o[1];if((o=this._findTableCode(10,13,m))[0])return o[1]}(0,l.info)("bad black code");this._eatBits(1);return 1}},{key:"_lookBits",value:function _lookBits(t){for(var r;this.inputBits<t;){if(-1===(r=this.source.next()))return 0===this.inputBits?c:this.inputBuf<<t-this.inputBits&65535>>16-t;this.inputBuf=this.inputBuf<<8|r;this.inputBits+=8}return this.inputBuf>>this.inputBits-t&65535>>16-t}},{key:"_eatBits",value:function _eatBits(t){(this.inputBits-=t)<0&&(this.inputBits=0)}}]);return CCITTFaxDecoder}();r.CCITTFaxDecoder=v},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.FlateStream=void 0;var l=o(142),c=o(4);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var u=new Int32Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),h=new Int32Array([3,4,5,6,7,8,9,10,65547,65549,65551,65553,131091,131095,131099,131103,196643,196651,196659,196667,262211,262227,262243,262259,327811,327843,327875,327907,258,258,258]),d=new Int32Array([1,2,3,4,65541,65543,131081,131085,196625,196633,262177,262193,327745,327777,393345,393409,459009,459137,524801,525057,590849,591361,657409,658433,724993,727041,794625,798721,868353,876545]),m=[new Int32Array([459008,524368,524304,524568,459024,524400,524336,590016,459016,524384,524320,589984,524288,524416,524352,590048,459012,524376,524312,589968,459028,524408,524344,590032,459020,524392,524328,59e4,524296,524424,524360,590064,459010,524372,524308,524572,459026,524404,524340,590024,459018,524388,524324,589992,524292,524420,524356,590056,459014,524380,524316,589976,459030,524412,524348,590040,459022,524396,524332,590008,524300,524428,524364,590072,459009,524370,524306,524570,459025,524402,524338,590020,459017,524386,524322,589988,524290,524418,524354,590052,459013,524378,524314,589972,459029,524410,524346,590036,459021,524394,524330,590004,524298,524426,524362,590068,459011,524374,524310,524574,459027,524406,524342,590028,459019,524390,524326,589996,524294,524422,524358,590060,459015,524382,524318,589980,459031,524414,524350,590044,459023,524398,524334,590012,524302,524430,524366,590076,459008,524369,524305,524569,459024,524401,524337,590018,459016,524385,524321,589986,524289,524417,524353,590050,459012,524377,524313,589970,459028,524409,524345,590034,459020,524393,524329,590002,524297,524425,524361,590066,459010,524373,524309,524573,459026,524405,524341,590026,459018,524389,524325,589994,524293,524421,524357,590058,459014,524381,524317,589978,459030,524413,524349,590042,459022,524397,524333,590010,524301,524429,524365,590074,459009,524371,524307,524571,459025,524403,524339,590022,459017,524387,524323,589990,524291,524419,524355,590054,459013,524379,524315,589974,459029,524411,524347,590038,459021,524395,524331,590006,524299,524427,524363,590070,459011,524375,524311,524575,459027,524407,524343,590030,459019,524391,524327,589998,524295,524423,524359,590062,459015,524383,524319,589982,459031,524415,524351,590046,459023,524399,524335,590014,524303,524431,524367,590078,459008,524368,524304,524568,459024,524400,524336,590017,459016,524384,524320,589985,524288,524416,524352,590049,459012,524376,524312,589969,459028,524408,524344,590033,459020,524392,524328,590001,524296,524424,524360,590065,459010,524372,524308,524572,459026,524404,524340,590025,459018,524388,524324,589993,524292,524420,524356,590057,459014,524380,524316,589977,459030,524412,524348,590041,459022,524396,524332,590009,524300,524428,524364,590073,459009,524370,524306,524570,459025,524402,524338,590021,459017,524386,524322,589989,524290,524418,524354,590053,459013,524378,524314,589973,459029,524410,524346,590037,459021,524394,524330,590005,524298,524426,524362,590069,459011,524374,524310,524574,459027,524406,524342,590029,459019,524390,524326,589997,524294,524422,524358,590061,459015,524382,524318,589981,459031,524414,524350,590045,459023,524398,524334,590013,524302,524430,524366,590077,459008,524369,524305,524569,459024,524401,524337,590019,459016,524385,524321,589987,524289,524417,524353,590051,459012,524377,524313,589971,459028,524409,524345,590035,459020,524393,524329,590003,524297,524425,524361,590067,459010,524373,524309,524573,459026,524405,524341,590027,459018,524389,524325,589995,524293,524421,524357,590059,459014,524381,524317,589979,459030,524413,524349,590043,459022,524397,524333,590011,524301,524429,524365,590075,459009,524371,524307,524571,459025,524403,524339,590023,459017,524387,524323,589991,524291,524419,524355,590055,459013,524379,524315,589975,459029,524411,524347,590039,459021,524395,524331,590007,524299,524427,524363,590071,459011,524375,524311,524575,459027,524407,524343,590031,459019,524391,524327,589999,524295,524423,524359,590063,459015,524383,524319,589983,459031,524415,524351,590047,459023,524399,524335,590015,524303,524431,524367,590079]),9],g=[new Int32Array([327680,327696,327688,327704,327684,327700,327692,327708,327682,327698,327690,327706,327686,327702,327694,0,327681,327697,327689,327705,327685,327701,327693,327709,327683,327699,327691,327707,327687,327703,327695,0]),5],y=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(FlateStream,t);var r=_createSuper(FlateStream);function FlateStream(t,o){var l;!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,FlateStream);(l=r.call(this,o)).str=t;l.dict=t.dict;var u=t.getByte(),h=t.getByte();if(-1===u||-1===h)throw new c.FormatError("Invalid header in flate stream: ".concat(u,", ").concat(h));if(8!=(15&u))throw new c.FormatError("Unknown compression method in flate stream: ".concat(u,", ").concat(h));if(((u<<8)+h)%31!=0)throw new c.FormatError("Bad FCHECK in flate stream: ".concat(u,", ").concat(h));if(32&h)throw new c.FormatError("FDICT bit set in flate stream: ".concat(u,", ").concat(h));l.codeSize=0;l.codeBuf=0;return l}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(FlateStream,[{key:"getBits",value:function getBits(t){for(var r,o=this.str,l=this.codeSize,u=this.codeBuf;l<t;){if(-1===(r=o.getByte()))throw new c.FormatError("Bad encoding in flate stream");u|=r<<l;l+=8}r=u&(1<<t)-1;this.codeBuf=u>>t;this.codeSize=l-=t;return r}},{key:"getCode",value:function getCode(t){for(var r,o=this.str,l=t[0],u=t[1],h=this.codeSize,d=this.codeBuf;h<u&&-1!==(r=o.getByte());){d|=r<<h;h+=8}var m=l[d&(1<<u)-1],g=m>>16,y=65535&m;if(g<1||h<g)throw new c.FormatError("Bad encoding in flate stream");this.codeBuf=d>>g;this.codeSize=h-g;return y}},{key:"generateHuffmanTable",value:function generateHuffmanTable(t){var r,o=t.length,l=0;for(r=0;r<o;++r)t[r]>l&&(l=t[r]);for(var c=1<<l,u=new Int32Array(c),h=1,d=0,m=2;h<=l;++h,d<<=1,m<<=1)for(var g=0;g<o;++g)if(t[g]===h){var y=0,v=d;for(r=0;r<h;++r){y=y<<1|1&v;v>>=1}for(r=y;r<c;r+=m)u[r]=h<<16|g;++d}return[u,l]}},{key:"readBlock",value:function readBlock(){var t,r,o=this.str,l=this.getBits(3);1&l&&(this.eof=!0);if(0!==(l>>=1)){var y,v;if(1===l){y=m;v=g}else{if(2!==l)throw new c.FormatError("Unknown block type in flate stream");var S,_=this.getBits(5)+257,k=this.getBits(5)+1,C=this.getBits(4)+4,w=new Uint8Array(u.length);for(S=0;S<C;++S)w[u[S]]=this.getBits(3);var x=this.generateHuffmanTable(w);r=0;S=0;for(var O,T,R,E=_+k,M=new Uint8Array(E);S<E;){var D=this.getCode(x);if(16===D){O=2;T=3;R=r}else if(17===D){O=3;T=3;R=r=0}else{if(18!==D){M[S++]=r=D;continue}O=7;T=11;R=r=0}for(var j=this.getBits(O)+T;j-- >0;)M[S++]=R}y=this.generateHuffmanTable(M.subarray(0,_));v=this.generateHuffmanTable(M.subarray(_,E))}for(var L=(t=this.buffer)?t.length:0,N=this.bufferLength;;){var U=this.getCode(y);if(U<256){N+1>=L&&(L=(t=this.ensureBuffer(N+1)).length);t[N++]=U}else{if(256===U){this.bufferLength=N;return}var H=(U=h[U-=257])>>16;H>0&&(H=this.getBits(H));r=(65535&U)+H;U=this.getCode(v);(H=(U=d[U])>>16)>0&&(H=this.getBits(H));var W=(65535&U)+H;N+r>=L&&(L=(t=this.ensureBuffer(N+r)).length);for(var $=0;$<r;++$,++N)t[N]=t[N-W]}}}else{var q;if(-1===(q=o.getByte()))throw new c.FormatError("Bad block header in flate stream");var X=q;if(-1===(q=o.getByte()))throw new c.FormatError("Bad block header in flate stream");X|=q<<8;if(-1===(q=o.getByte()))throw new c.FormatError("Bad block header in flate stream");var z=q;if(-1===(q=o.getByte()))throw new c.FormatError("Bad block header in flate stream");if((z|=q<<8)!==(65535&~X)&&(0!==X||0!==z))throw new c.FormatError("Bad uncompressed block length in flate stream");this.codeBuf=0;this.codeSize=0;var G=this.bufferLength,V=G+X;t=this.ensureBuffer(V);this.bufferLength=V;if(0===X)-1===o.peekByte()&&(this.eof=!0);else{var Y=o.getBytes(X);t.set(Y,G);Y.length<X&&(this.eof=!0)}}}}]);return FlateStream}(l.DecodeStream);r.FlateStream=y},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.Jbig2Stream=void 0;var l=o(118),c=o(142),u=o(148),h=o(4);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var d=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(Jbig2Stream,t);var r=_createSuper(Jbig2Stream);function Jbig2Stream(t,o,l){var c;!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,Jbig2Stream);(c=r.call(this,o)).stream=t;c.dict=t.dict;c.maybeLength=o;c.params=l;return c}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(Jbig2Stream,[{key:"bytes",get:function get(){return(0,h.shadow)(this,"bytes",this.stream.getBytes(this.maybeLength))}},{key:"ensureBuffer",value:function ensureBuffer(t){}},{key:"readBlock",value:function readBlock(){if(!this.eof){var t=new u.Jbig2Image,r=[];if((0,l.isDict)(this.params)){var o=this.params.get("JBIG2Globals");if((0,l.isStream)(o)){var c=o.getBytes();r.push({data:c,start:0,end:c.length})}}r.push({data:this.bytes,start:0,end:this.bytes.length});for(var h=t.parseChunks(r),d=h.length,m=0;m<d;m++)h[m]^=255;this.buffer=h;this.bufferLength=d;this.eof=!0}}}]);return Jbig2Stream}(c.DecodeStream);r.Jbig2Stream=d},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.Jbig2Image=void 0;var l=o(4),c=o(122),u=o(149),h=o(145);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var d=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(Jbig2Error,t);var r=_createSuper(Jbig2Error);function Jbig2Error(t){_classCallCheck(this,Jbig2Error);return r.call(this,"JBIG2 error: ".concat(t),"Jbig2Error")}return Jbig2Error}(l.BaseException),m=function(){function ContextCache(){_classCallCheck(this,ContextCache)}_createClass(ContextCache,[{key:"getContexts",value:function getContexts(t){return t in this?this[t]:this[t]=new Int8Array(65536)}}]);return ContextCache}(),g=function(){function DecodingContext(t,r,o){_classCallCheck(this,DecodingContext);this.data=t;this.start=r;this.end=o}_createClass(DecodingContext,[{key:"decoder",get:function get(){var t=new u.ArithmeticDecoder(this.data,this.start,this.end);return(0,l.shadow)(this,"decoder",t)}},{key:"contextCache",get:function get(){var t=new m;return(0,l.shadow)(this,"contextCache",t)}}]);return DecodingContext}();function decodeInteger(t,r,o){var l=t.getContexts(r),c=1;function readBits(t){for(var r=0,u=0;u<t;u++){var h=o.readBit(l,c);c=c<256?c<<1|h:511&(c<<1|h)|256;r=r<<1|h}return r>>>0}var u=readBits(1),h=readBits(1)?readBits(1)?readBits(1)?readBits(1)?readBits(1)?readBits(32)+4436:readBits(12)+340:readBits(8)+84:readBits(6)+20:readBits(4)+4:readBits(2);return 0===u?h:h>0?-h:null}function decodeIAID(t,r,o){for(var l=t.getContexts("IAID"),c=1,u=0;u<o;u++){c=c<<1|r.readBit(l,c)}return o<31?c&(1<<o)-1:2147483647&c}var y=["SymbolDictionary",null,null,null,"IntermediateTextRegion",null,"ImmediateTextRegion","ImmediateLosslessTextRegion",null,null,null,null,null,null,null,null,"PatternDictionary",null,null,null,"IntermediateHalftoneRegion",null,"ImmediateHalftoneRegion","ImmediateLosslessHalftoneRegion",null,null,null,null,null,null,null,null,null,null,null,null,"IntermediateGenericRegion",null,"ImmediateGenericRegion","ImmediateLosslessGenericRegion","IntermediateGenericRefinementRegion",null,"ImmediateGenericRefinementRegion","ImmediateLosslessGenericRefinementRegion",null,null,null,null,"PageInformation","EndOfPage","EndOfStripe","EndOfFile","Profiles","Tables",null,null,null,null,null,null,null,null,"Extension"],v=[[{x:-1,y:-2},{x:0,y:-2},{x:1,y:-2},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:2,y:-1},{x:-4,y:0},{x:-3,y:0},{x:-2,y:0},{x:-1,y:0}],[{x:-1,y:-2},{x:0,y:-2},{x:1,y:-2},{x:2,y:-2},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:2,y:-1},{x:-3,y:0},{x:-2,y:0},{x:-1,y:0}],[{x:-1,y:-2},{x:0,y:-2},{x:1,y:-2},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:-2,y:0},{x:-1,y:0}],[{x:-3,y:-1},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:-4,y:0},{x:-3,y:0},{x:-2,y:0},{x:-1,y:0}]],S=[{coding:[{x:0,y:-1},{x:1,y:-1},{x:-1,y:0}],reference:[{x:0,y:-1},{x:1,y:-1},{x:-1,y:0},{x:0,y:0},{x:1,y:0},{x:-1,y:1},{x:0,y:1},{x:1,y:1}]},{coding:[{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:-1,y:0}],reference:[{x:0,y:-1},{x:-1,y:0},{x:0,y:0},{x:1,y:0},{x:0,y:1},{x:1,y:1}]}],_=[39717,1941,229,405],k=[32,8];function decodeBitmap(t,r,o,l,c,u,h,d){if(t){return decodeMMRBitmap(new E(d.data,d.start,d.end),r,o,!1)}if(0===l&&!u&&!c&&4===h.length&&3===h[0].x&&-1===h[0].y&&-3===h[1].x&&-1===h[1].y&&2===h[2].x&&-2===h[2].y&&-2===h[3].x&&-2===h[3].y)return function decodeBitmapTemplate0(t,r,o){var l,c,u,h,d,m,g,y=o.decoder,v=o.contextCache.getContexts("GB"),S=[];for(c=0;c<r;c++){d=S[c]=new Uint8Array(t);m=c<1?d:S[c-1];l=(g=c<2?d:S[c-2])[0]<<13|g[1]<<12|g[2]<<11|m[0]<<7|m[1]<<6|m[2]<<5|m[3]<<4;for(u=0;u<t;u++){d[u]=h=y.readBit(v,l);l=(31735&l)<<1|(u+3<t?g[u+3]<<11:0)|(u+4<t?m[u+4]<<4:0)|h}}return S}(r,o,d);var m=!!u,g=v[l].concat(h);g.sort((function(t,r){return t.y-r.y||t.x-r.x}));var y,S,k=g.length,C=new Int8Array(k),w=new Int8Array(k),x=[],O=0,T=0,R=0,M=0;for(S=0;S<k;S++){C[S]=g[S].x;w[S]=g[S].y;T=Math.min(T,g[S].x);R=Math.max(R,g[S].x);M=Math.min(M,g[S].y);S<k-1&&g[S].y===g[S+1].y&&g[S].x===g[S+1].x-1?O|=1<<k-1-S:x.push(S)}var D=x.length,j=new Int8Array(D),L=new Int8Array(D),N=new Uint16Array(D);for(y=0;y<D;y++){S=x[y];j[y]=g[S].x;L[y]=g[S].y;N[y]=1<<k-1-S}for(var U,H,W,$,q,X=-T,z=-M,G=r-R,V=_[l],Y=new Uint8Array(r),K=[],J=d.decoder,Q=d.contextCache.getContexts("GB"),Z=0,ee=0,te=0;te<o;te++){if(c){if(Z^=J.readBit(Q,V)){K.push(Y);continue}}Y=new Uint8Array(Y);K.push(Y);for(U=0;U<r;U++)if(m&&u[te][U])Y[U]=0;else{if(U>=X&&U<G&&te>=z){ee=ee<<1&O;for(S=0;S<D;S++){H=te+L[S];W=U+j[S];($=K[H][W])&&(ee|=$=N[S])}}else{ee=0;q=k-1;for(S=0;S<k;S++,q--)(W=U+C[S])>=0&&W<r&&(H=te+w[S])>=0&&($=K[H][W])&&(ee|=$<<q)}var re=J.readBit(Q,ee);Y[U]=re}}return K}function decodeRefinement(t,r,o,l,c,u,h,m,g){var y=S[o].coding;0===o&&(y=y.concat([m[0]]));var v,_=y.length,C=new Int32Array(_),w=new Int32Array(_);for(v=0;v<_;v++){C[v]=y[v].x;w[v]=y[v].y}var x=S[o].reference;0===o&&(x=x.concat([m[1]]));var O=x.length,T=new Int32Array(O),R=new Int32Array(O);for(v=0;v<O;v++){T[v]=x[v].x;R[v]=x[v].y}for(var E=l[0].length,M=l.length,D=k[o],j=[],L=g.decoder,N=g.contextCache.getContexts("GR"),U=0,H=0;H<r;H++){if(h){if(U^=L.readBit(N,D))throw new d("prediction is not supported")}var W=new Uint8Array(t);j.push(W);for(var $=0;$<t;$++){var q=void 0,X=void 0,z=0;for(v=0;v<_;v++){q=H+w[v];X=$+C[v];q<0||X<0||X>=t?z<<=1:z=z<<1|j[q][X]}for(v=0;v<O;v++){q=H+R[v]-u;X=$+T[v]-c;q<0||q>=M||X<0||X>=E?z<<=1:z=z<<1|l[q][X]}var G=L.readBit(N,z);W[$]=G}}return j}function decodeTextRegion(t,r,o,l,c,u,h,m,g,y,v,S,_,k,C,w,x,O,T){if(t&&r)throw new d("refinement with Huffman is not supported");var R,E,M=[];for(R=0;R<l;R++){E=new Uint8Array(o);if(c)for(var D=0;D<o;D++)E[D]=c;M.push(E)}var j=x.decoder,L=x.contextCache,N=t?-k.tableDeltaT.decode(T):-decodeInteger(L,"IADT",j),U=0;R=0;for(;R<u;){N+=t?k.tableDeltaT.decode(T):decodeInteger(L,"IADT",j);for(var H=U+=t?k.tableFirstS.decode(T):decodeInteger(L,"IAFS",j);;){var W=0;h>1&&(W=t?T.readBits(O):decodeInteger(L,"IAIT",j));var $=h*N+W,q=t?k.symbolIDTable.decode(T):decodeIAID(L,j,g),X=r&&(t?T.readBit():decodeInteger(L,"IARI",j)),z=m[q],G=z[0].length,V=z.length;if(X){var Y=decodeInteger(L,"IARDW",j),K=decodeInteger(L,"IARDH",j);z=decodeRefinement(G+=Y,V+=K,C,z,(Y>>1)+decodeInteger(L,"IARDX",j),(K>>1)+decodeInteger(L,"IARDY",j),!1,w,x)}var J=$-(1&S?0:V-1),Q=H-(2&S?G-1:0),Z=void 0,ee=void 0,te=void 0;if(y){for(Z=0;Z<V;Z++)if(E=M[Q+Z]){te=z[Z];var re=Math.min(o-J,G);switch(_){case 0:for(ee=0;ee<re;ee++)E[J+ee]|=te[ee];break;case 2:for(ee=0;ee<re;ee++)E[J+ee]^=te[ee];break;default:throw new d("operator ".concat(_," is not supported"))}}H+=V-1}else{for(ee=0;ee<V;ee++)if(E=M[J+ee]){te=z[ee];switch(_){case 0:for(Z=0;Z<G;Z++)E[Q+Z]|=te[Z];break;case 2:for(Z=0;Z<G;Z++)E[Q+Z]^=te[Z];break;default:throw new d("operator ".concat(_," is not supported"))}}H+=G-1}R++;var ae=t?k.tableDeltaS.decode(T):decodeInteger(L,"IADS",j);if(null===ae)break;H+=ae+v}}return M}function readSegmentHeader(t,r){var o={};o.number=(0,c.readUint32)(t,r);var l=t[r+4],u=63&l;if(!y[u])throw new d("invalid segment type: "+u);o.type=u;o.typeName=y[u];o.deferredNonRetain=!!(128&l);var h=!!(64&l),m=t[r+5],g=m>>5&7,v=[31&m],S=r+6;if(7===m){g=536870911&(0,c.readUint32)(t,S-1);S+=3;var _=g+7>>3;v[0]=t[S++];for(;--_>0;)v.push(t[S++])}else if(5===m||6===m)throw new d("invalid referred-to flags");o.retainBits=v;var k=4;o.number<=256?k=1:o.number<=65536&&(k=2);var w,x,O=[];for(w=0;w<g;w++){var T=void 0;T=1===k?t[S]:2===k?(0,c.readUint16)(t,S):(0,c.readUint32)(t,S);O.push(T);S+=k}o.referredTo=O;if(h){o.pageAssociation=(0,c.readUint32)(t,S);S+=4}else o.pageAssociation=t[S++];o.length=(0,c.readUint32)(t,S);S+=4;if(4294967295===o.length){if(38!==u)throw new d("invalid unknown segment length");var R=readRegionSegmentInformation(t,S),E=!!(1&t[S+C]),M=new Uint8Array(6);if(!E){M[0]=255;M[1]=172}M[2]=R.height>>>24&255;M[3]=R.height>>16&255;M[4]=R.height>>8&255;M[5]=255&R.height;for(w=S,x=t.length;w<x;w++){for(var D=0;D<6&&M[D]===t[w+D];)D++;if(6===D){o.length=w+6;break}}if(4294967295===o.length)throw new d("segment end was not found")}o.headerEnd=S;return o}function readSegments(t,r,o,l){for(var c=[],u=o;u<l;){var h=readSegmentHeader(r,u);u=h.headerEnd;var d={header:h,data:r};if(!t.randomAccess){d.start=u;u+=h.length;d.end=u}c.push(d);if(51===h.type)break}if(t.randomAccess)for(var m=0,g=c.length;m<g;m++){c[m].start=u;u+=c[m].header.length;c[m].end=u}return c}function readRegionSegmentInformation(t,r){return{width:(0,c.readUint32)(t,r),height:(0,c.readUint32)(t,r+4),x:(0,c.readUint32)(t,r+8),y:(0,c.readUint32)(t,r+12),combinationOperator:7&t[r+16]}}var C=17;function processSegment(t,r){var o,l,u,h,m=t.header,g=t.data,y=t.end,v=t.start;switch(m.type){case 0:var S={},_=(0,c.readUint16)(g,v);S.huffman=!!(1&_);S.refinement=!!(2&_);S.huffmanDHSelector=_>>2&3;S.huffmanDWSelector=_>>4&3;S.bitmapSizeSelector=_>>6&1;S.aggregationInstancesSelector=_>>7&1;S.bitmapCodingContextUsed=!!(256&_);S.bitmapCodingContextRetained=!!(512&_);S.template=_>>10&3;S.refinementTemplate=_>>12&1;v+=2;if(!S.huffman){h=0===S.template?4:1;l=[];for(u=0;u<h;u++){l.push({x:(0,c.readInt8)(g,v),y:(0,c.readInt8)(g,v+1)});v+=2}S.at=l}if(S.refinement&&!S.refinementTemplate){l=[];for(u=0;u<2;u++){l.push({x:(0,c.readInt8)(g,v),y:(0,c.readInt8)(g,v+1)});v+=2}S.refinementAt=l}S.numberOfExportedSymbols=(0,c.readUint32)(g,v);v+=4;S.numberOfNewSymbols=(0,c.readUint32)(g,v);v+=4;o=[S,m.number,m.referredTo,g,v,y];break;case 6:case 7:var k={};k.info=readRegionSegmentInformation(g,v);v+=C;var w=(0,c.readUint16)(g,v);v+=2;k.huffman=!!(1&w);k.refinement=!!(2&w);k.logStripSize=w>>2&3;k.stripSize=1<<k.logStripSize;k.referenceCorner=w>>4&3;k.transposed=!!(64&w);k.combinationOperator=w>>7&3;k.defaultPixelValue=w>>9&1;k.dsOffset=w<<17>>27;k.refinementTemplate=w>>15&1;if(k.huffman){var x=(0,c.readUint16)(g,v);v+=2;k.huffmanFS=3&x;k.huffmanDS=x>>2&3;k.huffmanDT=x>>4&3;k.huffmanRefinementDW=x>>6&3;k.huffmanRefinementDH=x>>8&3;k.huffmanRefinementDX=x>>10&3;k.huffmanRefinementDY=x>>12&3;k.huffmanRefinementSizeSelector=!!(16384&x)}if(k.refinement&&!k.refinementTemplate){l=[];for(u=0;u<2;u++){l.push({x:(0,c.readInt8)(g,v),y:(0,c.readInt8)(g,v+1)});v+=2}k.refinementAt=l}k.numberOfSymbolInstances=(0,c.readUint32)(g,v);v+=4;o=[k,m.referredTo,g,v,y];break;case 16:var O={},T=g[v++];O.mmr=!!(1&T);O.template=T>>1&3;O.patternWidth=g[v++];O.patternHeight=g[v++];O.maxPatternIndex=(0,c.readUint32)(g,v);v+=4;o=[O,m.number,g,v,y];break;case 22:case 23:var R={};R.info=readRegionSegmentInformation(g,v);v+=C;var E=g[v++];R.mmr=!!(1&E);R.template=E>>1&3;R.enableSkip=!!(8&E);R.combinationOperator=E>>4&7;R.defaultPixelValue=E>>7&1;R.gridWidth=(0,c.readUint32)(g,v);v+=4;R.gridHeight=(0,c.readUint32)(g,v);v+=4;R.gridOffsetX=4294967295&(0,c.readUint32)(g,v);v+=4;R.gridOffsetY=4294967295&(0,c.readUint32)(g,v);v+=4;R.gridVectorX=(0,c.readUint16)(g,v);v+=2;R.gridVectorY=(0,c.readUint16)(g,v);v+=2;o=[R,m.referredTo,g,v,y];break;case 38:case 39:var M={};M.info=readRegionSegmentInformation(g,v);v+=C;var D=g[v++];M.mmr=!!(1&D);M.template=D>>1&3;M.prediction=!!(8&D);if(!M.mmr){h=0===M.template?4:1;l=[];for(u=0;u<h;u++){l.push({x:(0,c.readInt8)(g,v),y:(0,c.readInt8)(g,v+1)});v+=2}M.at=l}o=[M,g,v,y];break;case 48:var j={width:(0,c.readUint32)(g,v),height:(0,c.readUint32)(g,v+4),resolutionX:(0,c.readUint32)(g,v+8),resolutionY:(0,c.readUint32)(g,v+12)};4294967295===j.height&&delete j.height;var L=g[v+16];(0,c.readUint16)(g,v+17);j.lossless=!!(1&L);j.refinement=!!(2&L);j.defaultPixelValue=L>>2&1;j.combinationOperator=L>>3&3;j.requiresBuffer=!!(32&L);j.combinationOperatorOverride=!!(64&L);o=[j];break;case 49:case 50:case 51:break;case 53:o=[m.number,g,v,y];break;case 62:break;default:throw new d("segment type ".concat(m.typeName,"(").concat(m.type,")")+" is not implemented")}var N="on"+m.typeName;N in r&&r[N].apply(r,o)}function processSegments(t,r){for(var o=0,l=t.length;o<l;o++)processSegment(t[o],r)}var w=function(){function SimpleSegmentVisitor(){_classCallCheck(this,SimpleSegmentVisitor)}_createClass(SimpleSegmentVisitor,[{key:"onPageInformation",value:function onPageInformation(t){this.currentPageInfo=t;var r=t.width+7>>3,o=new Uint8ClampedArray(r*t.height);if(t.defaultPixelValue)for(var l=0,c=o.length;l<c;l++)o[l]=255;this.buffer=o}},{key:"drawBitmap",value:function drawBitmap(t,r){var o,l,c,u,h=this.currentPageInfo,m=t.width,g=t.height,y=h.width+7>>3,v=h.combinationOperatorOverride?t.combinationOperator:h.combinationOperator,S=this.buffer,_=128>>(7&t.x),k=t.y*y+(t.x>>3);switch(v){case 0:for(o=0;o<g;o++){c=_;u=k;for(l=0;l<m;l++){r[o][l]&&(S[u]|=c);if(!(c>>=1)){c=128;u++}}k+=y}break;case 2:for(o=0;o<g;o++){c=_;u=k;for(l=0;l<m;l++){r[o][l]&&(S[u]^=c);if(!(c>>=1)){c=128;u++}}k+=y}break;default:throw new d("operator ".concat(v," is not supported"))}}},{key:"onImmediateGenericRegion",value:function onImmediateGenericRegion(t,r,o,l){var c=t.info,u=new g(r,o,l),h=decodeBitmap(t.mmr,c.width,c.height,t.template,t.prediction,null,t.at,u);this.drawBitmap(c,h)}},{key:"onImmediateLosslessGenericRegion",value:function onImmediateLosslessGenericRegion(){this.onImmediateGenericRegion.apply(this,arguments)}},{key:"onSymbolDictionary",value:function onSymbolDictionary(t,r,o,l,u,h){var m,y;if(t.huffman){m=function getSymbolDictionaryHuffmanTables(t,r,o){var l,c,u,h,m=0;switch(t.huffmanDHSelector){case 0:case 1:l=getStandardTable(t.huffmanDHSelector+4);break;case 3:l=getCustomHuffmanTable(m,r,o);m++;break;default:throw new d("invalid Huffman DH selector")}switch(t.huffmanDWSelector){case 0:case 1:c=getStandardTable(t.huffmanDWSelector+2);break;case 3:c=getCustomHuffmanTable(m,r,o);m++;break;default:throw new d("invalid Huffman DW selector")}if(t.bitmapSizeSelector){u=getCustomHuffmanTable(m,r,o);m++}else u=getStandardTable(1);h=t.aggregationInstancesSelector?getCustomHuffmanTable(m,r,o):getStandardTable(1);return{tableDeltaHeight:l,tableDeltaWidth:c,tableBitmapSize:u,tableAggregateInstances:h}}(t,o,this.customTables);y=new E(l,u,h)}var v=this.symbols;v||(this.symbols=v={});for(var S=[],_=0,k=o.length;_<k;_++){var C=v[o[_]];C&&(S=S.concat(C))}var w=new g(l,u,h);v[r]=function decodeSymbolDictionary(t,r,o,l,u,h,m,g,y,v,S,_){if(t&&r)throw new d("symbol refinement with Huffman is not supported");var k,C,w=[],x=0,O=(0,c.log2)(o.length+l),T=S.decoder,R=S.contextCache;if(t){k=getStandardTable(1);C=[];O=Math.max(O,1)}for(;w.length<l;){x+=t?h.tableDeltaHeight.decode(_):decodeInteger(R,"IADH",T);for(var E=0,M=0,D=t?C.length:0;;){var j=t?h.tableDeltaWidth.decode(_):decodeInteger(R,"IADW",T);if(null===j)break;M+=E+=j;var L=void 0;if(r){var N=decodeInteger(R,"IAAI",T);if(N>1)L=decodeTextRegion(t,r,E,x,0,N,1,o.concat(w),O,0,0,1,0,h,y,v,S,0,_);else{var U=decodeIAID(R,T,O),H=decodeInteger(R,"IARDX",T),W=decodeInteger(R,"IARDY",T);L=decodeRefinement(E,x,y,U<o.length?o[U]:w[U-o.length],H,W,!1,v,S)}w.push(L)}else if(t)C.push(E);else{L=decodeBitmap(!1,E,x,m,!1,null,g,S);w.push(L)}}if(t&&!r){var $=h.tableBitmapSize.decode(_);_.byteAlign();var q=void 0;if(0===$)q=readUncompressedBitmap(_,M,x);else{var X=_.end,z=_.position+$;_.end=z;q=decodeMMRBitmap(_,M,x,!1);_.end=X;_.position=z}var G=C.length;if(D===G-1)w.push(q);else{var V=void 0,Y=void 0,K=0,J=void 0,Q=void 0;for(V=D;V<G;V++){J=K+C[V];Q=[];for(Y=0;Y<x;Y++)Q.push(q[Y].subarray(K,J));w.push(Q);K=J}}}}for(var Z,ee,te=[],re=[],ae=!1,ne=o.length+l;re.length<ne;){for(var ie=t?k.decode(_):decodeInteger(R,"IAEX",T);ie--;)re.push(ae);ae=!ae}for(Z=0,ee=o.length;Z<ee;Z++)re[Z]&&te.push(o[Z]);for(var oe=0;oe<l;Z++,oe++)re[Z]&&te.push(w[oe]);return te}(t.huffman,t.refinement,S,t.numberOfNewSymbols,t.numberOfExportedSymbols,m,t.template,t.at,t.refinementTemplate,t.refinementAt,w,y)}},{key:"onImmediateTextRegion",value:function onImmediateTextRegion(t,r,o,l,u){for(var h,m,y=t.info,v=this.symbols,S=[],_=0,k=r.length;_<k;_++){var C=v[r[_]];C&&(S=S.concat(C))}var w=(0,c.log2)(S.length);if(t.huffman){m=new E(o,l,u);h=function getTextRegionHuffmanTables(t,r,o,l,c){for(var u=[],h=0;h<=34;h++){var m=c.readBits(4);u.push(new x([h,m,0,0]))}var g=new T(u,!1);u.length=0;for(var y=0;y<l;){var v=g.decode(c);if(v>=32){var S=void 0,_=void 0,k=void 0;switch(v){case 32:if(0===y)throw new d("no previous value in symbol ID table");_=c.readBits(2)+3;S=u[y-1].prefixLength;break;case 33:_=c.readBits(3)+3;S=0;break;case 34:_=c.readBits(7)+11;S=0;break;default:throw new d("invalid code length in symbol ID table")}for(k=0;k<_;k++){u.push(new x([y,S,0,0]));y++}}else{u.push(new x([y,v,0,0]));y++}}c.byteAlign();var C,w,O,R=new T(u,!1),E=0;switch(t.huffmanFS){case 0:case 1:C=getStandardTable(t.huffmanFS+6);break;case 3:C=getCustomHuffmanTable(E,r,o);E++;break;default:throw new d("invalid Huffman FS selector")}switch(t.huffmanDS){case 0:case 1:case 2:w=getStandardTable(t.huffmanDS+8);break;case 3:w=getCustomHuffmanTable(E,r,o);E++;break;default:throw new d("invalid Huffman DS selector")}switch(t.huffmanDT){case 0:case 1:case 2:O=getStandardTable(t.huffmanDT+11);break;case 3:O=getCustomHuffmanTable(E,r,o);E++;break;default:throw new d("invalid Huffman DT selector")}if(t.refinement)throw new d("refinement with Huffman is not supported");return{symbolIDTable:R,tableFirstS:C,tableDeltaS:w,tableDeltaT:O}}(t,r,this.customTables,S.length,m)}var O=new g(o,l,u),R=decodeTextRegion(t.huffman,t.refinement,y.width,y.height,t.defaultPixelValue,t.numberOfSymbolInstances,t.stripSize,S,w,t.transposed,t.dsOffset,t.referenceCorner,t.combinationOperator,h,t.refinementTemplate,t.refinementAt,O,t.logStripSize,m);this.drawBitmap(y,R)}},{key:"onImmediateLosslessTextRegion",value:function onImmediateLosslessTextRegion(){this.onImmediateTextRegion.apply(this,arguments)}},{key:"onPatternDictionary",value:function onPatternDictionary(t,r,o,l,c){var u=this.patterns;u||(this.patterns=u={});var h=new g(o,l,c);u[r]=function decodePatternDictionary(t,r,o,l,c,u){var h=[];if(!t){h.push({x:-r,y:0});0===c&&h.push({x:-3,y:-1},{x:2,y:-2},{x:-2,y:-2})}for(var d=decodeBitmap(t,(l+1)*r,o,c,!1,null,h,u),m=[],g=0;g<=l;g++){for(var y=[],v=r*g,S=v+r,_=0;_<o;_++)y.push(d[_].subarray(v,S));m.push(y)}return m}(t.mmr,t.patternWidth,t.patternHeight,t.maxPatternIndex,t.template,h)}},{key:"onImmediateHalftoneRegion",value:function onImmediateHalftoneRegion(t,r,o,l,u){var h=this.patterns[r[0]],m=t.info,y=new g(o,l,u),v=function decodeHalftoneRegion(t,r,o,l,u,h,m,g,y,v,S,_,k,C,w){if(m)throw new d("skip is not supported");if(0!==g)throw new d('operator "'.concat(g,'" is not supported in halftone region'));var x,O,T,R=[];for(x=0;x<u;x++){T=new Uint8Array(l);if(h)for(O=0;O<l;O++)T[O]=h;R.push(T)}var M=r.length,D=r[0],j=D[0].length,L=D.length,N=(0,c.log2)(M),U=[];if(!t){U.push({x:o<=1?3:2,y:-1});0===o&&U.push({x:-3,y:-1},{x:2,y:-2},{x:-2,y:-2})}var H,W,$,q,X,z,G,V,Y,K,J,Q=[];t&&(H=new E(w.data,w.start,w.end));for(x=N-1;x>=0;x--){W=t?decodeMMRBitmap(H,y,v,!0):decodeBitmap(!1,y,v,o,!1,null,U,w);Q[x]=W}for($=0;$<v;$++)for(q=0;q<y;q++){X=0;z=0;for(O=N-1;O>=0;O--)z|=(X^=Q[O][$][q])<<O;G=r[z];Y=_+$*k-q*C>>8;if((V=S+$*C+q*k>>8)>=0&&V+j<=l&&Y>=0&&Y+L<=u)for(x=0;x<L;x++){J=R[Y+x];K=G[x];for(O=0;O<j;O++)J[V+O]|=K[O]}else{var Z=void 0,ee=void 0;for(x=0;x<L;x++)if(!((ee=Y+x)<0||ee>=u)){J=R[ee];K=G[x];for(O=0;O<j;O++)(Z=V+O)>=0&&Z<l&&(J[Z]|=K[O])}}}return R}(t.mmr,h,t.template,m.width,m.height,t.defaultPixelValue,t.enableSkip,t.combinationOperator,t.gridWidth,t.gridHeight,t.gridOffsetX,t.gridOffsetY,t.gridVectorX,t.gridVectorY,y);this.drawBitmap(m,v)}},{key:"onImmediateLosslessHalftoneRegion",value:function onImmediateLosslessHalftoneRegion(){this.onImmediateHalftoneRegion.apply(this,arguments)}},{key:"onTables",value:function onTables(t,r,o,l){var u=this.customTables;u||(this.customTables=u={});u[t]=function decodeTablesSegment(t,r,o){var l,u,h=t[r],d=4294967295&(0,c.readUint32)(t,r+1),m=4294967295&(0,c.readUint32)(t,r+5),g=new E(t,r+9,o),y=1+(h>>1&7),v=1+(h>>4&7),S=[],_=d;do{l=g.readBits(y);u=g.readBits(v);S.push(new x([_,l,u,0]));_+=1<<u}while(_<m);l=g.readBits(y);S.push(new x([d-1,l,32,0,"lower"]));l=g.readBits(y);S.push(new x([m,l,32,0]));if(1&h){l=g.readBits(y);S.push(new x([l,0]))}return new T(S,!1)}(r,o,l)}}]);return SimpleSegmentVisitor}(),x=function HuffmanLine(t){_classCallCheck(this,HuffmanLine);if(2===t.length){this.isOOB=!0;this.rangeLow=0;this.prefixLength=t[0];this.rangeLength=0;this.prefixCode=t[1];this.isLowerRange=!1}else{this.isOOB=!1;this.rangeLow=t[0];this.prefixLength=t[1];this.rangeLength=t[2];this.prefixCode=t[3];this.isLowerRange="lower"===t[4]}},O=function(){function HuffmanTreeNode(t){_classCallCheck(this,HuffmanTreeNode);this.children=[];if(t){this.isLeaf=!0;this.rangeLength=t.rangeLength;this.rangeLow=t.rangeLow;this.isLowerRange=t.isLowerRange;this.isOOB=t.isOOB}else this.isLeaf=!1}_createClass(HuffmanTreeNode,[{key:"buildTree",value:function buildTree(t,r){var o=t.prefixCode>>r&1;if(r<=0)this.children[o]=new HuffmanTreeNode(t);else{var l=this.children[o];l||(this.children[o]=l=new HuffmanTreeNode(null));l.buildTree(t,r-1)}}},{key:"decodeNode",value:function decodeNode(t){if(this.isLeaf){if(this.isOOB)return null;var r=t.readBits(this.rangeLength);return this.rangeLow+(this.isLowerRange?-r:r)}var o=this.children[t.readBit()];if(!o)throw new d("invalid Huffman data");return o.decodeNode(t)}}]);return HuffmanTreeNode}(),T=function(){function HuffmanTable(t,r){_classCallCheck(this,HuffmanTable);r||this.assignPrefixCodes(t);this.rootNode=new O(null);for(var o=0,l=t.length;o<l;o++){var c=t[o];c.prefixLength>0&&this.rootNode.buildTree(c,c.prefixLength-1)}}_createClass(HuffmanTable,[{key:"decode",value:function decode(t){return this.rootNode.decodeNode(t)}},{key:"assignPrefixCodes",value:function assignPrefixCodes(t){for(var r=t.length,o=0,l=0;l<r;l++)o=Math.max(o,t[l].prefixLength);for(var c=new Uint32Array(o+1),u=0;u<r;u++)c[t[u].prefixLength]++;var h,d,m,g=1,y=0;c[0]=0;for(;g<=o;){h=y=y+c[g-1]<<1;d=0;for(;d<r;){if((m=t[d]).prefixLength===g){m.prefixCode=h;h++}d++}g++}}}]);return HuffmanTable}();var R={};function getStandardTable(t){var r,o=R[t];if(o)return o;switch(t){case 1:r=[[0,1,4,0],[16,2,8,2],[272,3,16,6],[65808,3,32,7]];break;case 2:r=[[0,1,0,0],[1,2,0,2],[2,3,0,6],[3,4,3,14],[11,5,6,30],[75,6,32,62],[6,63]];break;case 3:r=[[-256,8,8,254],[0,1,0,0],[1,2,0,2],[2,3,0,6],[3,4,3,14],[11,5,6,30],[-257,8,32,255,"lower"],[75,7,32,126],[6,62]];break;case 4:r=[[1,1,0,0],[2,2,0,2],[3,3,0,6],[4,4,3,14],[12,5,6,30],[76,5,32,31]];break;case 5:r=[[-255,7,8,126],[1,1,0,0],[2,2,0,2],[3,3,0,6],[4,4,3,14],[12,5,6,30],[-256,7,32,127,"lower"],[76,6,32,62]];break;case 6:r=[[-2048,5,10,28],[-1024,4,9,8],[-512,4,8,9],[-256,4,7,10],[-128,5,6,29],[-64,5,5,30],[-32,4,5,11],[0,2,7,0],[128,3,7,2],[256,3,8,3],[512,4,9,12],[1024,4,10,13],[-2049,6,32,62,"lower"],[2048,6,32,63]];break;case 7:r=[[-1024,4,9,8],[-512,3,8,0],[-256,4,7,9],[-128,5,6,26],[-64,5,5,27],[-32,4,5,10],[0,4,5,11],[32,5,5,28],[64,5,6,29],[128,4,7,12],[256,3,8,1],[512,3,9,2],[1024,3,10,3],[-1025,5,32,30,"lower"],[2048,5,32,31]];break;case 8:r=[[-15,8,3,252],[-7,9,1,508],[-5,8,1,253],[-3,9,0,509],[-2,7,0,124],[-1,4,0,10],[0,2,1,0],[2,5,0,26],[3,6,0,58],[4,3,4,4],[20,6,1,59],[22,4,4,11],[38,4,5,12],[70,5,6,27],[134,5,7,28],[262,6,7,60],[390,7,8,125],[646,6,10,61],[-16,9,32,510,"lower"],[1670,9,32,511],[2,1]];break;case 9:r=[[-31,8,4,252],[-15,9,2,508],[-11,8,2,253],[-7,9,1,509],[-5,7,1,124],[-3,4,1,10],[-1,3,1,2],[1,3,1,3],[3,5,1,26],[5,6,1,58],[7,3,5,4],[39,6,2,59],[43,4,5,11],[75,4,6,12],[139,5,7,27],[267,5,8,28],[523,6,8,60],[779,7,9,125],[1291,6,11,61],[-32,9,32,510,"lower"],[3339,9,32,511],[2,0]];break;case 10:r=[[-21,7,4,122],[-5,8,0,252],[-4,7,0,123],[-3,5,0,24],[-2,2,2,0],[2,5,0,25],[3,6,0,54],[4,7,0,124],[5,8,0,253],[6,2,6,1],[70,5,5,26],[102,6,5,55],[134,6,6,56],[198,6,7,57],[326,6,8,58],[582,6,9,59],[1094,6,10,60],[2118,7,11,125],[-22,8,32,254,"lower"],[4166,8,32,255],[2,2]];break;case 11:r=[[1,1,0,0],[2,2,1,2],[4,4,0,12],[5,4,1,13],[7,5,1,28],[9,5,2,29],[13,6,2,60],[17,7,2,122],[21,7,3,123],[29,7,4,124],[45,7,5,125],[77,7,6,126],[141,7,32,127]];break;case 12:r=[[1,1,0,0],[2,2,0,2],[3,3,1,6],[5,5,0,28],[6,5,1,29],[8,6,1,60],[10,7,0,122],[11,7,1,123],[13,7,2,124],[17,7,3,125],[25,7,4,126],[41,8,5,254],[73,8,32,255]];break;case 13:r=[[1,1,0,0],[2,3,0,4],[3,4,0,12],[4,5,0,28],[5,4,1,13],[7,3,3,5],[15,6,1,58],[17,6,2,59],[21,6,3,60],[29,6,4,61],[45,6,5,62],[77,7,6,126],[141,7,32,127]];break;case 14:r=[[-2,3,0,4],[-1,3,0,5],[0,1,0,0],[1,3,0,6],[2,3,0,7]];break;case 15:r=[[-24,7,4,124],[-8,6,2,60],[-4,5,1,28],[-2,4,0,12],[-1,3,0,4],[0,1,0,0],[1,3,0,5],[2,4,0,13],[3,5,1,29],[5,6,2,61],[9,7,4,125],[-25,7,32,126,"lower"],[25,7,32,127]];break;default:throw new d("standard table B.".concat(t," does not exist"))}for(var l=0,c=r.length;l<c;l++)r[l]=new x(r[l]);o=new T(r,!0);R[t]=o;return o}var E=function(){function Reader(t,r,o){_classCallCheck(this,Reader);this.data=t;this.start=r;this.end=o;this.position=r;this.shift=-1;this.currentByte=0}_createClass(Reader,[{key:"readBit",value:function readBit(){if(this.shift<0){if(this.position>=this.end)throw new d("end of data while reading bit");this.currentByte=this.data[this.position++];this.shift=7}var t=this.currentByte>>this.shift&1;this.shift--;return t}},{key:"readBits",value:function readBits(t){var r,o=0;for(r=t-1;r>=0;r--)o|=this.readBit()<<r;return o}},{key:"byteAlign",value:function byteAlign(){this.shift=-1}},{key:"next",value:function next(){return this.position>=this.end?-1:this.data[this.position++]}}]);return Reader}();function getCustomHuffmanTable(t,r,o){for(var l=0,c=0,u=r.length;c<u;c++){var h=o[r[c]];if(h){if(t===l)return h;l++}}throw new d("can't find custom Huffman table")}function readUncompressedBitmap(t,r,o){for(var l=[],c=0;c<o;c++){var u=new Uint8Array(r);l.push(u);for(var h=0;h<r;h++)u[h]=t.readBit();t.byteAlign()}return l}function decodeMMRBitmap(t,r,o,l){for(var c,u={K:-1,Columns:r,Rows:o,BlackIs1:!0,EndOfBlock:l},d=new h.CCITTFaxDecoder(t,u),m=[],g=!1,y=0;y<o;y++){var v=new Uint8Array(r);m.push(v);for(var S=-1,_=0;_<r;_++){if(S<0){if(-1===(c=d.readNextChar())){c=0;g=!0}S=7}v[_]=c>>S&1;S--}}if(l&&!g)for(var k=0;k<5&&-1!==d.readNextChar();k++);return m}var M=function(){function Jbig2Image(){_classCallCheck(this,Jbig2Image)}_createClass(Jbig2Image,[{key:"parseChunks",value:function parseChunks(t){return function parseJbig2Chunks(t){for(var r=new w,o=0,l=t.length;o<l;o++){var c=t[o];processSegments(readSegments({},c.data,c.start,c.end),r)}return r.buffer}(t)}},{key:"parse",value:function parse(t){var r=function parseJbig2(t){var r=t.length,o=0;if(151!==t[o]||74!==t[o+1]||66!==t[o+2]||50!==t[o+3]||13!==t[o+4]||10!==t[o+5]||26!==t[o+6]||10!==t[o+7])throw new d("parseJbig2 - invalid header.");var l=Object.create(null);o+=8;var u=t[o++];l.randomAccess=!(1&u);if(!(2&u)){l.numberOfPages=(0,c.readUint32)(t,o);o+=4}var h=readSegments(l,t,o,r),m=new w;processSegments(h,m);for(var g=m.currentPageInfo,y=g.width,v=g.height,S=m.buffer,_=new Uint8ClampedArray(y*v),k=0,C=0,x=0;x<v;x++)for(var O=0,T=void 0,R=0;R<y;R++){if(!O){O=128;T=S[C++]}_[k++]=T&O?0:255;O>>=1}return{imgData:_,width:y,height:v}}(t),o=r.imgData,l=r.width,u=r.height;this.width=l;this.height=u;return o}}]);return Jbig2Image}();r.Jbig2Image=M},(t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.ArithmeticDecoder=void 0;function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}var o=[{qe:22017,nmps:1,nlps:1,switchFlag:1},{qe:13313,nmps:2,nlps:6,switchFlag:0},{qe:6145,nmps:3,nlps:9,switchFlag:0},{qe:2753,nmps:4,nlps:12,switchFlag:0},{qe:1313,nmps:5,nlps:29,switchFlag:0},{qe:545,nmps:38,nlps:33,switchFlag:0},{qe:22017,nmps:7,nlps:6,switchFlag:1},{qe:21505,nmps:8,nlps:14,switchFlag:0},{qe:18433,nmps:9,nlps:14,switchFlag:0},{qe:14337,nmps:10,nlps:14,switchFlag:0},{qe:12289,nmps:11,nlps:17,switchFlag:0},{qe:9217,nmps:12,nlps:18,switchFlag:0},{qe:7169,nmps:13,nlps:20,switchFlag:0},{qe:5633,nmps:29,nlps:21,switchFlag:0},{qe:22017,nmps:15,nlps:14,switchFlag:1},{qe:21505,nmps:16,nlps:14,switchFlag:0},{qe:20737,nmps:17,nlps:15,switchFlag:0},{qe:18433,nmps:18,nlps:16,switchFlag:0},{qe:14337,nmps:19,nlps:17,switchFlag:0},{qe:13313,nmps:20,nlps:18,switchFlag:0},{qe:12289,nmps:21,nlps:19,switchFlag:0},{qe:10241,nmps:22,nlps:19,switchFlag:0},{qe:9217,nmps:23,nlps:20,switchFlag:0},{qe:8705,nmps:24,nlps:21,switchFlag:0},{qe:7169,nmps:25,nlps:22,switchFlag:0},{qe:6145,nmps:26,nlps:23,switchFlag:0},{qe:5633,nmps:27,nlps:24,switchFlag:0},{qe:5121,nmps:28,nlps:25,switchFlag:0},{qe:4609,nmps:29,nlps:26,switchFlag:0},{qe:4353,nmps:30,nlps:27,switchFlag:0},{qe:2753,nmps:31,nlps:28,switchFlag:0},{qe:2497,nmps:32,nlps:29,switchFlag:0},{qe:2209,nmps:33,nlps:30,switchFlag:0},{qe:1313,nmps:34,nlps:31,switchFlag:0},{qe:1089,nmps:35,nlps:32,switchFlag:0},{qe:673,nmps:36,nlps:33,switchFlag:0},{qe:545,nmps:37,nlps:34,switchFlag:0},{qe:321,nmps:38,nlps:35,switchFlag:0},{qe:273,nmps:39,nlps:36,switchFlag:0},{qe:133,nmps:40,nlps:37,switchFlag:0},{qe:73,nmps:41,nlps:38,switchFlag:0},{qe:37,nmps:42,nlps:39,switchFlag:0},{qe:21,nmps:43,nlps:40,switchFlag:0},{qe:9,nmps:44,nlps:41,switchFlag:0},{qe:5,nmps:45,nlps:42,switchFlag:0},{qe:1,nmps:45,nlps:43,switchFlag:0},{qe:22017,nmps:46,nlps:46,switchFlag:0}],l=function(){function ArithmeticDecoder(t,r,o){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,ArithmeticDecoder);this.data=t;this.bp=r;this.dataEnd=o;this.chigh=t[r];this.clow=0;this.byteIn();this.chigh=this.chigh<<7&65535|this.clow>>9&127;this.clow=this.clow<<7&65535;this.ct-=7;this.a=32768}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(ArithmeticDecoder,[{key:"byteIn",value:function byteIn(){var t=this.data,r=this.bp;if(255===t[r])if(t[r+1]>143){this.clow+=65280;this.ct=8}else{r++;this.clow+=t[r]<<9;this.ct=7;this.bp=r}else{r++;this.clow+=r<this.dataEnd?t[r]<<8:65280;this.ct=8;this.bp=r}if(this.clow>65535){this.chigh+=this.clow>>16;this.clow&=65535}}},{key:"readBit",value:function readBit(t,r){var l,c=t[r]>>1,u=1&t[r],h=o[c],d=h.qe,m=this.a-d;if(this.chigh<d)if(m<d){m=d;l=u;c=h.nmps}else{m=d;l=1^u;1===h.switchFlag&&(u=l);c=h.nlps}else{this.chigh-=d;if(0!=(32768&m)){this.a=m;return u}if(m<d){l=1^u;1===h.switchFlag&&(u=l);c=h.nlps}else{l=u;c=h.nmps}}do{0===this.ct&&this.byteIn();m<<=1;this.chigh=this.chigh<<1&65535|this.clow>>15&1;this.clow=this.clow<<1&65535;this.ct--}while(0==(32768&m));this.a=m;t[r]=c<<1|u;return l}}]);return ArithmeticDecoder}();r.ArithmeticDecoder=l},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.JpegStream=void 0;var l=o(142),c=o(118),u=o(151),h=o(4);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var d=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(JpegStream,t);var r=_createSuper(JpegStream);function JpegStream(t,o,l){var c,u;!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,JpegStream);for(;-1!==(u=t.getByte());)if(255===u){t.skip(-1);break}(c=r.call(this,o)).stream=t;c.dict=t.dict;c.maybeLength=o;c.params=l;return c}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(JpegStream,[{key:"bytes",get:function get(){return(0,h.shadow)(this,"bytes",this.stream.getBytes(this.maybeLength))}},{key:"ensureBuffer",value:function ensureBuffer(t){}},{key:"readBlock",value:function readBlock(){if(!this.eof){var t={decodeTransform:void 0,colorTransform:void 0},r=this.dict.getArray("Decode","D");if(this.forceRGB&&Array.isArray(r)){for(var o=this.dict.get("BitsPerComponent")||8,l=r.length,h=new Int32Array(l),d=!1,m=(1<<o)-1,g=0;g<l;g+=2){h[g]=256*(r[g+1]-r[g])|0;h[g+1]=r[g]*m|0;256===h[g]&&0===h[g+1]||(d=!0)}d&&(t.decodeTransform=h)}if((0,c.isDict)(this.params)){var y=this.params.get("ColorTransform");Number.isInteger(y)&&(t.colorTransform=y)}var v=new u.JpegImage(t);v.parse(this.bytes);var S=v.getData({width:this.drawWidth,height:this.drawHeight,forceRGB:this.forceRGB,isSourcePDF:!0});this.buffer=S;this.bufferLength=S.length;this.eof=!0}}}]);return JpegStream}(l.DecodeStream);r.JpegStream=d},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.JpegImage=void 0;var l=o(4),c=o(122);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var u=function(t){_inherits(JpegError,t);var r=_createSuper(JpegError);function JpegError(t){_classCallCheck(this,JpegError);return r.call(this,"JPEG error: ".concat(t),"JpegError")}return JpegError}(l.BaseException),h=function(t){_inherits(DNLMarkerError,t);var r=_createSuper(DNLMarkerError);function DNLMarkerError(t,o){var l;_classCallCheck(this,DNLMarkerError);(l=r.call(this,t,"DNLMarkerError")).scanLines=o;return l}return DNLMarkerError}(l.BaseException),d=function(t){_inherits(EOIMarkerError,t);var r=_createSuper(EOIMarkerError);function EOIMarkerError(t){_classCallCheck(this,EOIMarkerError);return r.call(this,t,"EOIMarkerError")}return EOIMarkerError}(l.BaseException),m=new Uint8Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),g=4017,y=799,v=3406,S=2276,_=1567,k=3784,C=5793,w=2896;function buildHuffmanTable(t,r){for(var o,l,c=0,u=16;u>0&&!t[u-1];)u--;var h,d=[{children:[],index:0}],m=d[0];for(o=0;o<u;o++){for(l=0;l<t[o];l++){(m=d.pop()).children[m.index]=r[c];for(;m.index>0;)m=d.pop();m.index++;d.push(m);for(;d.length<=o;){d.push(h={children:[],index:0});m.children[m.index]=h.children;m=h}c++}if(o+1<u){d.push(h={children:[],index:0});m.children[m.index]=h.children;m=h}}return d[0].children}function getBlockBufferOffset(t,r,o){return 64*((t.blocksPerLine+1)*r+o)}function decodeScan(t,r,o,g,y,v,S,_,k){var C=arguments.length>9&&void 0!==arguments[9]&&arguments[9],w=o.mcusPerLine,x=o.progressive,O=r,T=0,R=0;function readBit(){if(R>0){R--;return T>>R&1}if(255===(T=t[r++])){var l=t[r++];if(l){if(220===l&&C){r+=2;var m=(0,c.readUint16)(t,r);r+=2;if(m>0&&m!==o.scanLines)throw new h("Found DNL marker (0xFFDC) while parsing scan data",m)}else if(217===l){if(C){var g=j*(8===o.precision?8:0);if(g>0&&Math.round(o.scanLines/g)>=10)throw new h("Found EOI marker (0xFFD9) while parsing scan data, possibly caused by incorrect `scanLines` parameter",g)}throw new d("Found EOI marker (0xFFD9) while parsing scan data")}throw new u("unexpected marker ".concat((T<<8|l).toString(16)))}}R=7;return T>>>7}function decodeHuffman(t){for(var r=t;;){switch(_typeof(r=r[readBit()])){case"number":return r;case"object":continue}throw new u("invalid huffman sequence")}}function receive(t){for(var r=0;t>0;){r=r<<1|readBit();t--}return r}function receiveAndExtend(t){if(1===t)return 1===readBit()?1:-1;var r=receive(t);return r>=1<<t-1?r:r+(-1<<t)+1}function decodeBaseline(t,r){var o=decodeHuffman(t.huffmanTableDC),l=0===o?0:receiveAndExtend(o);t.blockData[r]=t.pred+=l;for(var c=1;c<64;){var u=decodeHuffman(t.huffmanTableAC),h=15&u,d=u>>4;if(0!==h){var g=m[c+=d];t.blockData[r+g]=receiveAndExtend(h);c++}else{if(d<15)break;c+=16}}}function decodeDCFirst(t,r){var o=decodeHuffman(t.huffmanTableDC),l=0===o?0:receiveAndExtend(o)<<k;t.blockData[r]=t.pred+=l}function decodeDCSuccessive(t,r){t.blockData[r]|=readBit()<<k}var E=0;function decodeACFirst(t,r){if(E>0)E--;else for(var o=v,l=S;o<=l;){var c=decodeHuffman(t.huffmanTableAC),u=15&c,h=c>>4;if(0!==u){var d=m[o+=h];t.blockData[r+d]=receiveAndExtend(u)*(1<<k);o++}else{if(h<15){E=receive(h)+(1<<h)-1;break}o+=16}}}var M,D=0;function decodeACSuccessive(t,r){for(var o,l,c=v,h=S,d=0;c<=h;){var g=r+m[c],y=t.blockData[g]<0?-1:1;switch(D){case 0:d=(l=decodeHuffman(t.huffmanTableAC))>>4;if(0===(o=15&l))if(d<15){E=receive(d)+(1<<d);D=4}else{d=16;D=1}else{if(1!==o)throw new u("invalid ACn encoding");M=receiveAndExtend(o);D=d?2:3}continue;case 1:case 2:t.blockData[g]?t.blockData[g]+=y*(readBit()<<k):0===--d&&(D=2===D?3:0);break;case 3:if(t.blockData[g])t.blockData[g]+=y*(readBit()<<k);else{t.blockData[g]=M<<k;D=0}break;case 4:t.blockData[g]&&(t.blockData[g]+=y*(readBit()<<k))}c++}4===D&&0===--E&&(D=0)}var j=0;function decodeMcu(t,r,o,l,c){var u=o%w;j=(o/w|0)*t.v+l;var h=u*t.h+c;r(t,getBlockBufferOffset(t,j,h))}function decodeBlock(t,r,o){j=o/t.blocksPerLine|0;var l=o%t.blocksPerLine;r(t,getBlockBufferOffset(t,j,l))}var L,N,U,H,W,$,q=g.length;$=x?0===v?0===_?decodeDCFirst:decodeDCSuccessive:0===_?decodeACFirst:decodeACSuccessive:decodeBaseline;var X,z,G,V,Y=0;z=1===q?g[0].blocksPerLine*g[0].blocksPerColumn:w*o.mcusPerColumn;for(;Y<=z;){var K=y?Math.min(z-Y,y):z;if(K>0){for(N=0;N<q;N++)g[N].pred=0;E=0;if(1===q){L=g[0];for(W=0;W<K;W++){decodeBlock(L,$,Y);Y++}}else for(W=0;W<K;W++){for(N=0;N<q;N++){G=(L=g[N]).h;V=L.v;for(U=0;U<V;U++)for(H=0;H<G;H++)decodeMcu(L,$,Y,U,H)}Y++}}R=0;if(!(X=findNextFileMarker(t,r)))break;if(X.invalid){var J=K>0?"unexpected":"excessive";(0,l.warn)("decodeScan - ".concat(J," MCU data, current marker is: ").concat(X.invalid));r=X.offset}if(!(X.marker>=65488&&X.marker<=65495))break;r+=2}return r-O}function quantizeAndInverse(t,r,o){var l,c,h,d,m,x,O,T,R,E,M,D,j,L,N,U,H,W=t.quantizationTable,$=t.blockData;if(!W)throw new u("missing required Quantization Table.");for(var q=0;q<64;q+=8){R=$[r+q];E=$[r+q+1];M=$[r+q+2];D=$[r+q+3];j=$[r+q+4];L=$[r+q+5];N=$[r+q+6];U=$[r+q+7];R*=W[q];if(0!=(E|M|D|j|L|N|U)){E*=W[q+1];M*=W[q+2];D*=W[q+3];j*=W[q+4];L*=W[q+5];N*=W[q+6];U*=W[q+7];c=(l=(l=C*R+128>>8)+(c=C*j+128>>8)+1>>1)-c;H=(h=M)*k+(d=N)*_+128>>8;h=h*_-d*k+128>>8;O=(m=(m=w*(E-U)+128>>8)+(O=L<<4)+1>>1)-O;x=(T=(T=w*(E+U)+128>>8)+(x=D<<4)+1>>1)-x;d=(l=l+(d=H)+1>>1)-d;h=(c=c+h+1>>1)-h;H=m*S+T*v+2048>>12;m=m*v-T*S+2048>>12;T=H;H=x*y+O*g+2048>>12;x=x*g-O*y+2048>>12;O=H;o[q]=l+T;o[q+7]=l-T;o[q+1]=c+O;o[q+6]=c-O;o[q+2]=h+x;o[q+5]=h-x;o[q+3]=d+m;o[q+4]=d-m}else{H=C*R+512>>10;o[q]=H;o[q+1]=H;o[q+2]=H;o[q+3]=H;o[q+4]=H;o[q+5]=H;o[q+6]=H;o[q+7]=H}}for(var X=0;X<8;++X){R=o[X];if(0!=((E=o[X+8])|(M=o[X+16])|(D=o[X+24])|(j=o[X+32])|(L=o[X+40])|(N=o[X+48])|(U=o[X+56]))){c=(l=4112+((l=C*R+2048>>12)+(c=C*j+2048>>12)+1>>1))-c;H=(h=M)*k+(d=N)*_+2048>>12;h=h*_-d*k+2048>>12;d=H;O=(m=(m=w*(E-U)+2048>>12)+(O=L)+1>>1)-O;x=(T=(T=w*(E+U)+2048>>12)+(x=D)+1>>1)-x;H=m*S+T*v+2048>>12;m=m*v-T*S+2048>>12;T=H;H=x*y+O*g+2048>>12;x=x*g-O*y+2048>>12;(R=(l=l+d+1>>1)+T)<16?R=0:R>=4080?R=255:R>>=4;(E=(c=c+h+1>>1)+(O=H))<16?E=0:E>=4080?E=255:E>>=4;(M=(h=c-h)+x)<16?M=0:M>=4080?M=255:M>>=4;(D=(d=l-d)+m)<16?D=0:D>=4080?D=255:D>>=4;(j=d-m)<16?j=0:j>=4080?j=255:j>>=4;(L=h-x)<16?L=0:L>=4080?L=255:L>>=4;(N=c-O)<16?N=0:N>=4080?N=255:N>>=4;(U=l-T)<16?U=0:U>=4080?U=255:U>>=4;$[r+X]=R;$[r+X+8]=E;$[r+X+16]=M;$[r+X+24]=D;$[r+X+32]=j;$[r+X+40]=L;$[r+X+48]=N;$[r+X+56]=U}else{H=(H=C*R+8192>>14)<-2040?0:H>=2024?255:H+2056>>4;$[r+X]=H;$[r+X+8]=H;$[r+X+16]=H;$[r+X+24]=H;$[r+X+32]=H;$[r+X+40]=H;$[r+X+48]=H;$[r+X+56]=H}}}function buildComponentData(t,r){for(var o=r.blocksPerLine,l=r.blocksPerColumn,c=new Int16Array(64),u=0;u<l;u++)for(var h=0;h<o;h++){quantizeAndInverse(r,getBlockBufferOffset(r,u,h),c)}return r.blockData}function findNextFileMarker(t,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:r,l=t.length-1,u=o<r?o:r;if(r>=l)return null;var h=(0,c.readUint16)(t,r);if(h>=65472&&h<=65534)return{invalid:null,marker:h,offset:r};for(var d=(0,c.readUint16)(t,u);!(d>=65472&&d<=65534);){if(++u>=l)return null;d=(0,c.readUint16)(t,u)}return{invalid:h.toString(16),marker:d,offset:u}}var x=function(){function JpegImage(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.decodeTransform,o=void 0===r?null:r,l=t.colorTransform,c=void 0===l?-1:l;_classCallCheck(this,JpegImage);this._decodeTransform=o;this._colorTransform=c}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(JpegImage,[{key:"parse",value:function parse(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=r.dnlScanLines,g=void 0===o?null:o;function readDataBlock(){var r=(0,c.readUint16)(t,S),o=(S+=2)+r-2,u=findNextFileMarker(t,o,S);if(u&&u.invalid){(0,l.warn)("readDataBlock - incorrect length, current marker is: "+u.invalid);o=u.offset}var h=t.subarray(S,o);S+=h.length;return h}function prepareComponents(t){for(var r=Math.ceil(t.samplesPerLine/8/t.maxH),o=Math.ceil(t.scanLines/8/t.maxV),l=0,c=t.components.length;l<c;l++){var u=t.components[l],h=Math.ceil(Math.ceil(t.samplesPerLine/8)*u.h/t.maxH),d=Math.ceil(Math.ceil(t.scanLines/8)*u.v/t.maxV),m=r*u.h,g=64*(o*u.v)*(m+1);u.blockData=new Int16Array(g);u.blocksPerLine=h;u.blocksPerColumn=d}t.mcusPerLine=r;t.mcusPerColumn=o}var y,v,S=0,_=null,k=null,C=0,w=[],x=[],O=[],T=(0,c.readUint16)(t,S);S+=2;if(65496!==T)throw new u("SOI not found");T=(0,c.readUint16)(t,S);S+=2;e:for(;65497!==T;){var R=void 0,E=void 0,M=void 0;switch(T){case 65504:case 65505:case 65506:case 65507:case 65508:case 65509:case 65510:case 65511:case 65512:case 65513:case 65514:case 65515:case 65516:case 65517:case 65518:case 65519:case 65534:var D=readDataBlock();65504===T&&74===D[0]&&70===D[1]&&73===D[2]&&70===D[3]&&0===D[4]&&(_={version:{major:D[5],minor:D[6]},densityUnits:D[7],xDensity:D[8]<<8|D[9],yDensity:D[10]<<8|D[11],thumbWidth:D[12],thumbHeight:D[13],thumbData:D.subarray(14,14+3*D[12]*D[13])});65518===T&&65===D[0]&&100===D[1]&&111===D[2]&&98===D[3]&&101===D[4]&&(k={version:D[5]<<8|D[6],flags0:D[7]<<8|D[8],flags1:D[9]<<8|D[10],transformCode:D[11]});break;case 65499:for(var j=(0,c.readUint16)(t,S),L=j+(S+=2)-2;S<L;){var N=t[S++],U=new Uint16Array(64);if(N>>4==0)for(E=0;E<64;E++)U[m[E]]=t[S++];else{if(N>>4!=1)throw new u("DQT - invalid table spec");for(E=0;E<64;E++){U[m[E]]=(0,c.readUint16)(t,S);S+=2}}w[15&N]=U}break;case 65472:case 65473:case 65474:if(y)throw new u("Only single frame JPEGs supported");S+=2;(y={}).extended=65473===T;y.progressive=65474===T;y.precision=t[S++];var H=(0,c.readUint16)(t,S);S+=2;y.scanLines=g||H;y.samplesPerLine=(0,c.readUint16)(t,S);S+=2;y.components=[];y.componentIds={};var W=t[S++],$=0,q=0;for(R=0;R<W;R++){var X=t[S],z=t[S+1]>>4,G=15&t[S+1];$<z&&($=z);q<G&&(q=G);var V=t[S+2];M=y.components.push({h:z,v:G,quantizationId:V,quantizationTable:null});y.componentIds[X]=M-1;S+=3}y.maxH=$;y.maxV=q;prepareComponents(y);break;case 65476:var Y=(0,c.readUint16)(t,S);S+=2;for(R=2;R<Y;){var K=t[S++],J=new Uint8Array(16),Q=0;for(E=0;E<16;E++,S++)Q+=J[E]=t[S];var Z=new Uint8Array(Q);for(E=0;E<Q;E++,S++)Z[E]=t[S];R+=17+Q;(K>>4==0?O:x)[15&K]=buildHuffmanTable(J,Z)}break;case 65501:S+=2;v=(0,c.readUint16)(t,S);S+=2;break;case 65498:var ee=1==++C&&!g;S+=2;var te=t[S++],re=[];for(R=0;R<te;R++){var ae=t[S++],ne=y.componentIds[ae],ie=y.components[ne];ie.index=ae;var oe=t[S++];ie.huffmanTableDC=O[oe>>4];ie.huffmanTableAC=x[15&oe];re.push(ie)}var se=t[S++],le=t[S++],ce=t[S++];try{var ue=decodeScan(t,S,y,re,v,se,le,ce>>4,15&ce,ee);S+=ue}catch(r){if(r instanceof h){(0,l.warn)("".concat(r.message," -- attempting to re-parse the JPEG image."));return this.parse(t,{dnlScanLines:r.scanLines})}if(r instanceof d){(0,l.warn)("".concat(r.message," -- ignoring the rest of the image data."));break e}throw r}break;case 65500:S+=4;break;case 65535:255!==t[S]&&S--;break;default:var fe=findNextFileMarker(t,S-2,S-3);if(fe&&fe.invalid){(0,l.warn)("JpegImage.parse - unexpected data, current marker is: "+fe.invalid);S=fe.offset;break}if(!fe||S>=t.length-1){(0,l.warn)("JpegImage.parse - reached the end of the image data without finding an EOI marker (0xFFD9).");break e}throw new u("JpegImage.parse - unknown marker: "+T.toString(16))}T=(0,c.readUint16)(t,S);S+=2}this.width=y.samplesPerLine;this.height=y.scanLines;this.jfif=_;this.adobe=k;this.components=[];for(var he=0,de=y.components.length;he<de;he++){var pe=y.components[he],me=w[pe.quantizationId];me&&(pe.quantizationTable=me);this.components.push({index:pe.index,output:buildComponentData(0,pe),scaleX:pe.h/y.maxH,scaleY:pe.v/y.maxV,blocksPerLine:pe.blocksPerLine,blocksPerColumn:pe.blocksPerColumn})}this.numComponents=this.components.length}},{key:"_getLinearizedBlockData",value:function _getLinearizedBlockData(t,r){var o,l,c,u,h,d,m,g,y,v,S,_,k=arguments.length>2&&void 0!==arguments[2]&&arguments[2],C=this.width/t,w=this.height/r,x=0,O=this.components.length,T=t*r*O,R=new Uint8ClampedArray(T),E=new Uint32Array(t),M=4294967288;for(m=0;m<O;m++){l=(o=this.components[m]).scaleX*C;c=o.scaleY*w;x=m;S=o.output;u=o.blocksPerLine+1<<3;if(l!==_){for(h=0;h<t;h++){g=0|h*l;E[h]=(g&M)<<3|7&g}_=l}for(d=0;d<r;d++){v=u*((g=0|d*c)&M)|(7&g)<<3;for(h=0;h<t;h++){R[x]=S[v+E[h]];x+=O}}}var D=this._decodeTransform;k||4!==O||D||(D=new Int32Array([-256,255,-256,255,-256,255,-256,255]));if(D)for(m=0;m<T;)for(g=0,y=0;g<O;g++,m++,y+=2)R[m]=(R[m]*D[y]>>8)+D[y+1];return R}},{key:"_isColorConversionNeeded",get:function get(){return this.adobe?!!this.adobe.transformCode:3===this.numComponents?0!==this._colorTransform&&(82!==this.components[0].index||71!==this.components[1].index||66!==this.components[2].index):1===this._colorTransform}},{key:"_convertYccToRgb",value:function _convertYccToRgb(t){for(var r,o,l,c=0,u=t.length;c<u;c+=3){r=t[c];o=t[c+1];l=t[c+2];t[c]=r-179.456+1.402*l;t[c+1]=r+135.459-.344*o-.714*l;t[c+2]=r-226.816+1.772*o}return t}},{key:"_convertYcckToRgb",value:function _convertYcckToRgb(t){for(var r,o,l,c,u=0,h=0,d=t.length;h<d;h+=4){r=t[h];o=t[h+1];l=t[h+2];c=t[h+3];t[u++]=o*(-660635669420364e-19*o+.000437130475926232*l-54080610064599e-18*r+.00048449797120281*c-.154362151871126)-122.67195406894+l*(-.000957964378445773*l+.000817076911346625*r-.00477271405408747*c+1.53380253221734)+r*(.000961250184130688*r-.00266257332283933*c+.48357088451265)+c*(-.000336197177618394*c+.484791561490776);t[u++]=107.268039397724+o*(219927104525741e-19*o-.000640992018297945*l+.000659397001245577*r+.000426105652938837*c-.176491792462875)+l*(-.000778269941513683*l+.00130872261408275*r+.000770482631801132*c-.151051492775562)+r*(.00126935368114843*r-.00265090189010898*c+.25802910206845)+c*(-.000318913117588328*c-.213742400323665);t[u++]=o*(-.000570115196973677*o-263409051004589e-19*l+.0020741088115012*r-.00288260236853442*c+.814272968359295)-20.810012546947+l*(-153496057440975e-19*l-.000132689043961446*r+.000560833691242812*c-.195152027534049)+r*(.00174418132927582*r-.00255243321439347*c+.116935020465145)+c*(-.000343531996510555*c+.24165260232407)}return t.subarray(0,u)}},{key:"_convertYcckToCmyk",value:function _convertYcckToCmyk(t){for(var r,o,l,c=0,u=t.length;c<u;c+=4){r=t[c];o=t[c+1];l=t[c+2];t[c]=434.456-r-1.402*l;t[c+1]=119.541-r+.344*o+.714*l;t[c+2]=481.816-r-1.772*o}return t}},{key:"_convertCmykToRgb",value:function _convertCmykToRgb(t){for(var r,o,l,c,u=0,h=0,d=t.length;h<d;h+=4){r=t[h];o=t[h+1];l=t[h+2];c=t[h+3];t[u++]=255+r*(-6747147073602441e-20*r+.0008379262121013727*o+.0002894718188643294*l+.003264231057537806*c-1.1185611867203937)+o*(26374107616089405e-21*o-8626949158638572e-20*l-.0002748769067499491*c-.02155688794978967)+l*(-3878099212869363e-20*l-.0003267808279485286*c+.0686742238595345)-c*(.0003361971776183937*c+.7430659151342254);t[u++]=255+r*(.00013596372813588848*r+.000924537132573585*o+.00010567359618683593*l+.0004791864687436512*c-.3109689587515875)+o*(-.00023545346108370344*o+.0002702845253534714*l+.0020200308977307156*c-.7488052167015494)+l*(6834815998235662e-20*l+.00015168452363460973*c-.09751927774728933)-c*(.0003189131175883281*c+.7364883807733168);t[u++]=255+r*(13598650411385307e-21*r+.00012423956175490851*o+.0004751985097583589*l-36729317476630422e-22*c-.05562186980264034)+o*(.00016141380598724676*o+.0009692239130725186*l+.0007782692450036253*c-.44015232367526463)+l*(5.068882914068769e-7*l+.0017778369011375071*c-.7591454649749609)-c*(.0003435319965105553*c+.7063770186160144)}return t.subarray(0,u)}},{key:"getData",value:function getData(t){var r=t.width,o=t.height,l=t.forceRGB,c=void 0!==l&&l,h=t.isSourcePDF,d=void 0!==h&&h;if(this.numComponents>4)throw new u("Unsupported color mode");var m=this._getLinearizedBlockData(r,o,d);if(1===this.numComponents&&c){for(var g=m.length,y=new Uint8ClampedArray(3*g),v=0,S=0;S<g;S++){var _=m[S];y[v++]=_;y[v++]=_;y[v++]=_}return y}if(3===this.numComponents&&this._isColorConversionNeeded)return this._convertYccToRgb(m);if(4===this.numComponents){if(this._isColorConversionNeeded)return c?this._convertYcckToRgb(m):this._convertYcckToCmyk(m);if(c)return this._convertCmykToRgb(m)}return m}}]);return JpegImage}();r.JpegImage=x},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.JpxStream=void 0;var l=o(142),c=o(153),u=o(4);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var h=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(JpxStream,t);var r=_createSuper(JpxStream);function JpxStream(t,o,l){var c;!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,JpxStream);(c=r.call(this,o)).stream=t;c.dict=t.dict;c.maybeLength=o;c.params=l;return c}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(JpxStream,[{key:"bytes",get:function get(){return(0,u.shadow)(this,"bytes",this.stream.getBytes(this.maybeLength))}},{key:"ensureBuffer",value:function ensureBuffer(t){}},{key:"readBlock",value:function readBlock(){if(!this.eof){var t=new c.JpxImage;t.parse(this.bytes);var r=t.width,o=t.height,l=t.componentsCount,u=t.tiles.length;if(1===u)this.buffer=t.tiles[0].items;else{for(var h=new Uint8ClampedArray(r*o*l),d=0;d<u;d++)for(var m=t.tiles[d],g=m.width,y=m.height,v=m.left,S=m.top,_=m.items,k=0,C=(r*S+v)*l,w=r*l,x=g*l,O=0;O<y;O++){var T=_.subarray(k,k+x);h.set(T,C);k+=x;C+=w}this.buffer=h}this.bufferLength=this.buffer.length;this.eof=!0}}}]);return JpxStream}(l.DecodeStream);r.JpxStream=h},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.JpxImage=void 0;var l=o(4),c=o(122),u=o(149);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var h=function(t){_inherits(JpxError,t);var r=_createSuper(JpxError);function JpxError(t){_classCallCheck(this,JpxError);return r.call(this,"JPX error: ".concat(t),"JpxError")}return JpxError}(l.BaseException),d={LL:0,LH:1,HL:1,HH:2},m=function(){function JpxImage(){_classCallCheck(this,JpxImage);this.failOnCorruptedImage=!1}_createClass(JpxImage,[{key:"parse",value:function parse(t){if(65359!==(0,c.readUint16)(t,0))for(var r=t.length,o=0;o<r;){var u=8,d=(0,c.readUint32)(t,o),m=(0,c.readUint32)(t,o+4);o+=u;if(1===d){d=4294967296*(0,c.readUint32)(t,o)+(0,c.readUint32)(t,o+4);o+=8;u+=8}0===d&&(d=r-o+u);if(d<u)throw new h("Invalid box field size");var g=d-u,y=!0;switch(m){case 1785737832:y=!1;break;case 1668246642:var v=t[o];if(1===v){var S=(0,c.readUint32)(t,o+3);switch(S){case 16:case 17:case 18:break;default:(0,l.warn)("Unknown colorspace "+S)}}else 2===v&&(0,l.info)("ICC profile not supported");break;case 1785737827:this.parseCodestream(t,o,o+g);break;case 1783636e3:218793738!==(0,c.readUint32)(t,o)&&(0,l.warn)("Invalid JP2 signature");break;case 1783634458:case 1718909296:case 1920099697:case 1919251232:case 1768449138:break;default:var _=String.fromCharCode(m>>24&255,m>>16&255,m>>8&255,255&m);(0,l.warn)("Unsupported header type ".concat(m," (").concat(_,")."))}y&&(o+=g)}else this.parseCodestream(t,0,t.length)}},{key:"parseImageProperties",value:function parseImageProperties(t){for(var r=t.getByte();r>=0;){if(65361===(r<<8|(r=t.getByte()))){t.skip(4);var o=t.getInt32()>>>0,l=t.getInt32()>>>0,c=t.getInt32()>>>0,u=t.getInt32()>>>0;t.skip(16);var d=t.getUint16();this.width=o-c;this.height=l-u;this.componentsCount=d;this.bitsPerComponent=8;return}}throw new h("No size marker found in JPX stream")}},{key:"parseCodestream",value:function parseCodestream(t,r,o){var u={},d=!1;try{for(var m=r;m+1<o;){var g=(0,c.readUint16)(t,m);m+=2;var y=0,v=void 0,S=void 0,_=void 0,k=void 0,C=void 0,w=void 0;switch(g){case 65359:u.mainHeader=!0;break;case 65497:break;case 65361:y=(0,c.readUint16)(t,m);var x={};x.Xsiz=(0,c.readUint32)(t,m+4);x.Ysiz=(0,c.readUint32)(t,m+8);x.XOsiz=(0,c.readUint32)(t,m+12);x.YOsiz=(0,c.readUint32)(t,m+16);x.XTsiz=(0,c.readUint32)(t,m+20);x.YTsiz=(0,c.readUint32)(t,m+24);x.XTOsiz=(0,c.readUint32)(t,m+28);x.YTOsiz=(0,c.readUint32)(t,m+32);var O=(0,c.readUint16)(t,m+36);x.Csiz=O;var T=[];v=m+38;for(var R=0;R<O;R++){var E={precision:1+(127&t[v]),isSigned:!!(128&t[v]),XRsiz:t[v+1],YRsiz:t[v+2]};v+=3;calculateComponentDimensions(E,x);T.push(E)}u.SIZ=x;u.components=T;calculateTileGrids(u,T);u.QCC=[];u.COC=[];break;case 65372:y=(0,c.readUint16)(t,m);var M={};v=m+2;switch(31&(S=t[v++])){case 0:k=8;C=!0;break;case 1:k=16;C=!1;break;case 2:k=16;C=!0;break;default:throw new Error("Invalid SQcd value "+S)}M.noQuantization=8===k;M.scalarExpounded=C;M.guardBits=S>>5;_=[];for(;v<y+m;){var D={};if(8===k){D.epsilon=t[v++]>>3;D.mu=0}else{D.epsilon=t[v]>>3;D.mu=(7&t[v])<<8|t[v+1];v+=2}_.push(D)}M.SPqcds=_;if(u.mainHeader)u.QCD=M;else{u.currentTile.QCD=M;u.currentTile.QCC=[]}break;case 65373:y=(0,c.readUint16)(t,m);var j={};v=m+2;var L=void 0;if(u.SIZ.Csiz<257)L=t[v++];else{L=(0,c.readUint16)(t,v);v+=2}switch(31&(S=t[v++])){case 0:k=8;C=!0;break;case 1:k=16;C=!1;break;case 2:k=16;C=!0;break;default:throw new Error("Invalid SQcd value "+S)}j.noQuantization=8===k;j.scalarExpounded=C;j.guardBits=S>>5;_=[];for(;v<y+m;){var N={};if(8===k){N.epsilon=t[v++]>>3;N.mu=0}else{N.epsilon=t[v]>>3;N.mu=(7&t[v])<<8|t[v+1];v+=2}_.push(N)}j.SPqcds=_;u.mainHeader?u.QCC[L]=j:u.currentTile.QCC[L]=j;break;case 65362:y=(0,c.readUint16)(t,m);var U={};v=m+2;var H=t[v++];U.entropyCoderWithCustomPrecincts=!!(1&H);U.sopMarkerUsed=!!(2&H);U.ephMarkerUsed=!!(4&H);U.progressionOrder=t[v++];U.layersCount=(0,c.readUint16)(t,v);v+=2;U.multipleComponentTransform=t[v++];U.decompositionLevelsCount=t[v++];U.xcb=2+(15&t[v++]);U.ycb=2+(15&t[v++]);var W=t[v++];U.selectiveArithmeticCodingBypass=!!(1&W);U.resetContextProbabilities=!!(2&W);U.terminationOnEachCodingPass=!!(4&W);U.verticallyStripe=!!(8&W);U.predictableTermination=!!(16&W);U.segmentationSymbolUsed=!!(32&W);U.reversibleTransformation=t[v++];if(U.entropyCoderWithCustomPrecincts){for(var $=[];v<y+m;){var q=t[v++];$.push({PPx:15&q,PPy:q>>4})}U.precinctsSizes=$}var X=[];U.selectiveArithmeticCodingBypass&&X.push("selectiveArithmeticCodingBypass");U.resetContextProbabilities&&X.push("resetContextProbabilities");U.terminationOnEachCodingPass&&X.push("terminationOnEachCodingPass");U.verticallyStripe&&X.push("verticallyStripe");U.predictableTermination&&X.push("predictableTermination");if(X.length>0){d=!0;(0,l.warn)("JPX: Unsupported COD options (".concat(X.join(", "),")."))}if(u.mainHeader)u.COD=U;else{u.currentTile.COD=U;u.currentTile.COC=[]}break;case 65424:y=(0,c.readUint16)(t,m);(w={}).index=(0,c.readUint16)(t,m+2);w.length=(0,c.readUint32)(t,m+4);w.dataEnd=w.length+m-2;w.partIndex=t[m+8];w.partsCount=t[m+9];u.mainHeader=!1;if(0===w.partIndex){w.COD=u.COD;w.COC=u.COC.slice(0);w.QCD=u.QCD;w.QCC=u.QCC.slice(0)}u.currentTile=w;break;case 65427:if(0===(w=u.currentTile).partIndex){initializeTile(u,w.index);buildPackets(u)}parseTilePackets(u,t,m,y=w.dataEnd-m);break;case 65363:(0,l.warn)("JPX: Codestream code 0xFF53 (COC) is not implemented.");case 65365:case 65367:case 65368:case 65380:y=(0,c.readUint16)(t,m);break;default:throw new Error("Unknown codestream code: "+g.toString(16))}m+=y}}catch(t){if(d||this.failOnCorruptedImage)throw new h(t.message);(0,l.warn)('JPX: Trying to recover from: "'.concat(t.message,'".'))}this.tiles=function transformComponents(t){for(var r=t.SIZ,o=t.components,l=r.Csiz,c=[],u=0,h=t.tiles.length;u<h;u++){for(var d=t.tiles[u],m=[],g=0;g<l;g++)m[g]=transformTile(t,d,g);var y=m[0],v=new Uint8ClampedArray(y.items.length*l),S={left:y.left,top:y.top,width:y.width,height:y.height,items:v},_=void 0,k=void 0,C=0,w=void 0,x=void 0,O=void 0,T=void 0,R=void 0;if(d.codingStyleDefaultParameters.multipleComponentTransform){var E=4===l,M=m[0].items,D=m[1].items,j=m[2].items,L=E?m[3].items:null;k=.5+(128<<(_=o[0].precision-8));var N=d.components[0],U=l-3;x=M.length;if(N.codingStyleParameters.reversibleTransformation)for(w=0;w<x;w++,C+=U){O=M[w]+k;T=D[w];var H=O-((R=j[w])+T>>2);v[C++]=H+R>>_;v[C++]=H>>_;v[C++]=H+T>>_}else for(w=0;w<x;w++,C+=U){O=M[w]+k;T=D[w];R=j[w];v[C++]=O+1.402*R>>_;v[C++]=O-.34413*T-.71414*R>>_;v[C++]=O+1.772*T>>_}if(E)for(w=0,C=3;w<x;w++,C+=4)v[C]=L[w]+k>>_}else for(var W=0;W<l;W++){var $=m[W].items;k=.5+(128<<(_=o[W].precision-8));for(C=W,w=0,x=$.length;w<x;w++){v[C]=$[w]+k>>_;C+=l}}c.push(S)}return c}(u);this.width=u.SIZ.Xsiz-u.SIZ.XOsiz;this.height=u.SIZ.Ysiz-u.SIZ.YOsiz;this.componentsCount=u.SIZ.Csiz}}]);return JpxImage}();r.JpxImage=m;function calculateComponentDimensions(t,r){t.x0=Math.ceil(r.XOsiz/t.XRsiz);t.x1=Math.ceil(r.Xsiz/t.XRsiz);t.y0=Math.ceil(r.YOsiz/t.YRsiz);t.y1=Math.ceil(r.Ysiz/t.YRsiz);t.width=t.x1-t.x0;t.height=t.y1-t.y0}function calculateTileGrids(t,r){for(var o,l=t.SIZ,c=[],u=Math.ceil((l.Xsiz-l.XTOsiz)/l.XTsiz),h=Math.ceil((l.Ysiz-l.YTOsiz)/l.YTsiz),d=0;d<h;d++)for(var m=0;m<u;m++){(o={}).tx0=Math.max(l.XTOsiz+m*l.XTsiz,l.XOsiz);o.ty0=Math.max(l.YTOsiz+d*l.YTsiz,l.YOsiz);o.tx1=Math.min(l.XTOsiz+(m+1)*l.XTsiz,l.Xsiz);o.ty1=Math.min(l.YTOsiz+(d+1)*l.YTsiz,l.Ysiz);o.width=o.tx1-o.tx0;o.height=o.ty1-o.ty0;o.components=[];c.push(o)}t.tiles=c;for(var g=0,y=l.Csiz;g<y;g++)for(var v=r[g],S=0,_=c.length;S<_;S++){var k={};o=c[S];k.tcx0=Math.ceil(o.tx0/v.XRsiz);k.tcy0=Math.ceil(o.ty0/v.YRsiz);k.tcx1=Math.ceil(o.tx1/v.XRsiz);k.tcy1=Math.ceil(o.ty1/v.YRsiz);k.width=k.tcx1-k.tcx0;k.height=k.tcy1-k.tcy0;o.components[g]=k}}function getBlocksDimensions(t,r,o){var l=r.codingStyleParameters,c={};if(l.entropyCoderWithCustomPrecincts){c.PPx=l.precinctsSizes[o].PPx;c.PPy=l.precinctsSizes[o].PPy}else{c.PPx=15;c.PPy=15}c.xcb_=o>0?Math.min(l.xcb,c.PPx-1):Math.min(l.xcb,c.PPx);c.ycb_=o>0?Math.min(l.ycb,c.PPy-1):Math.min(l.ycb,c.PPy);return c}function buildPrecincts(t,r,o){var l=1<<o.PPx,c=1<<o.PPy,u=0===r.resLevel,h=1<<o.PPx+(u?0:-1),d=1<<o.PPy+(u?0:-1),m=r.trx1>r.trx0?Math.ceil(r.trx1/l)-Math.floor(r.trx0/l):0,g=r.try1>r.try0?Math.ceil(r.try1/c)-Math.floor(r.try0/c):0,y=m*g;r.precinctParameters={precinctWidth:l,precinctHeight:c,numprecinctswide:m,numprecinctshigh:g,numprecincts:y,precinctWidthInSubband:h,precinctHeightInSubband:d}}function buildCodeblocks(t,r,o){var l,c,u,h,d=o.xcb_,m=o.ycb_,g=1<<d,y=1<<m,v=r.tbx0>>d,S=r.tby0>>m,_=r.tbx1+g-1>>d,k=r.tby1+y-1>>m,C=r.resolution.precinctParameters,w=[],x=[];for(c=S;c<k;c++)for(l=v;l<_;l++){(u={cbx:l,cby:c,tbx0:g*l,tby0:y*c,tbx1:g*(l+1),tby1:y*(c+1)}).tbx0_=Math.max(r.tbx0,u.tbx0);u.tby0_=Math.max(r.tby0,u.tby0);u.tbx1_=Math.min(r.tbx1,u.tbx1);u.tby1_=Math.min(r.tby1,u.tby1);h=Math.floor((u.tbx0_-r.tbx0)/C.precinctWidthInSubband)+Math.floor((u.tby0_-r.tby0)/C.precinctHeightInSubband)*C.numprecinctswide;u.precinctNumber=h;u.subbandType=r.type;u.Lblock=3;if(!(u.tbx1_<=u.tbx0_||u.tby1_<=u.tby0_)){w.push(u);var O=x[h];if(void 0!==O){l<O.cbxMin?O.cbxMin=l:l>O.cbxMax&&(O.cbxMax=l);c<O.cbyMin?O.cbxMin=c:c>O.cbyMax&&(O.cbyMax=c)}else x[h]=O={cbxMin:l,cbyMin:c,cbxMax:l,cbyMax:c};u.precinct=O}}r.codeblockParameters={codeblockWidth:d,codeblockHeight:m,numcodeblockwide:_-v+1,numcodeblockhigh:k-S+1};r.codeblocks=w;r.precincts=x}function createPacket(t,r,o){for(var l=[],c=t.subbands,u=0,h=c.length;u<h;u++)for(var d=c[u].codeblocks,m=0,g=d.length;m<g;m++){var y=d[m];y.precinctNumber===r&&l.push(y)}return{layerNumber:o,codeblocks:l}}function LayerResolutionComponentPositionIterator(t){for(var r=t.SIZ,o=t.currentTile.index,l=t.tiles[o],c=l.codingStyleDefaultParameters.layersCount,u=r.Csiz,d=0,m=0;m<u;m++)d=Math.max(d,l.components[m].codingStyleParameters.decompositionLevelsCount);var g=0,y=0,v=0,S=0;this.nextPacket=function JpxImage_nextPacket(){for(;g<c;g++){for(;y<=d;y++){for(;v<u;v++){var t=l.components[v];if(!(y>t.codingStyleParameters.decompositionLevelsCount)){for(var r=t.resolutions[y],o=r.precinctParameters.numprecincts;S<o;){var m=createPacket(r,S,g);S++;return m}S=0}}v=0}y=0}throw new h("Out of packets")}}function ResolutionLayerComponentPositionIterator(t){for(var r=t.SIZ,o=t.currentTile.index,l=t.tiles[o],c=l.codingStyleDefaultParameters.layersCount,u=r.Csiz,d=0,m=0;m<u;m++)d=Math.max(d,l.components[m].codingStyleParameters.decompositionLevelsCount);var g=0,y=0,v=0,S=0;this.nextPacket=function JpxImage_nextPacket(){for(;g<=d;g++){for(;y<c;y++){for(;v<u;v++){var t=l.components[v];if(!(g>t.codingStyleParameters.decompositionLevelsCount)){for(var r=t.resolutions[g],o=r.precinctParameters.numprecincts;S<o;){var m=createPacket(r,S,y);S++;return m}S=0}}v=0}y=0}throw new h("Out of packets")}}function ResolutionPositionComponentLayerIterator(t){var r,o,l,c,u=t.SIZ,d=t.currentTile.index,m=t.tiles[d],g=m.codingStyleDefaultParameters.layersCount,y=u.Csiz,v=0;for(l=0;l<y;l++){var S=m.components[l];v=Math.max(v,S.codingStyleParameters.decompositionLevelsCount)}var _=new Int32Array(v+1);for(o=0;o<=v;++o){var k=0;for(l=0;l<y;++l){var C=m.components[l].resolutions;o<C.length&&(k=Math.max(k,C[o].precinctParameters.numprecincts))}_[o]=k}r=0;o=0;l=0;c=0;this.nextPacket=function JpxImage_nextPacket(){for(;o<=v;o++){for(;c<_[o];c++){for(;l<y;l++){var t=m.components[l];if(!(o>t.codingStyleParameters.decompositionLevelsCount)){var u=t.resolutions[o],d=u.precinctParameters.numprecincts;if(!(c>=d)){for(;r<g;){var S=createPacket(u,c,r);r++;return S}r=0}}}l=0}c=0}throw new h("Out of packets")}}function PositionComponentResolutionLayerIterator(t){var r=t.SIZ,o=t.currentTile.index,l=t.tiles[o],c=l.codingStyleDefaultParameters.layersCount,u=r.Csiz,d=getPrecinctSizesInImageScale(l),m=d,g=0,y=0,v=0,S=0,_=0;this.nextPacket=function JpxImage_nextPacket(){for(;_<m.maxNumHigh;_++){for(;S<m.maxNumWide;S++){for(;v<u;v++){for(var t=l.components[v],r=t.codingStyleParameters.decompositionLevelsCount;y<=r;y++){var o=t.resolutions[y],k=d.components[v].resolutions[y],C=getPrecinctIndexIfExist(S,_,k,m,o);if(null!==C){for(;g<c;){var w=createPacket(o,C,g);g++;return w}g=0}}y=0}v=0}S=0}throw new h("Out of packets")}}function ComponentPositionResolutionLayerIterator(t){var r=t.SIZ,o=t.currentTile.index,l=t.tiles[o],c=l.codingStyleDefaultParameters.layersCount,u=r.Csiz,d=getPrecinctSizesInImageScale(l),m=0,g=0,y=0,v=0,S=0;this.nextPacket=function JpxImage_nextPacket(){for(;y<u;++y){for(var t=l.components[y],r=d.components[y],o=t.codingStyleParameters.decompositionLevelsCount;S<r.maxNumHigh;S++){for(;v<r.maxNumWide;v++){for(;g<=o;g++){var _=t.resolutions[g],k=r.resolutions[g],C=getPrecinctIndexIfExist(v,S,k,r,_);if(null!==C){for(;m<c;){var w=createPacket(_,C,m);m++;return w}m=0}}g=0}v=0}S=0}throw new h("Out of packets")}}function getPrecinctIndexIfExist(t,r,o,l,c){var u=t*l.minWidth,h=r*l.minHeight;if(u%o.width!=0||h%o.height!=0)return null;var d=h/o.width*c.precinctParameters.numprecinctswide;return u/o.height+d}function getPrecinctSizesInImageScale(t){for(var r=t.components.length,o=Number.MAX_VALUE,l=Number.MAX_VALUE,c=0,u=0,h=new Array(r),d=0;d<r;d++){for(var m=t.components[d],g=m.codingStyleParameters.decompositionLevelsCount,y=new Array(g+1),v=Number.MAX_VALUE,S=Number.MAX_VALUE,_=0,k=0,C=1,w=g;w>=0;--w){var x=m.resolutions[w],O=C*x.precinctParameters.precinctWidth,T=C*x.precinctParameters.precinctHeight;v=Math.min(v,O);S=Math.min(S,T);_=Math.max(_,x.precinctParameters.numprecinctswide);k=Math.max(k,x.precinctParameters.numprecinctshigh);y[w]={width:O,height:T};C<<=1}o=Math.min(o,v);l=Math.min(l,S);c=Math.max(c,_);u=Math.max(u,k);h[d]={resolutions:y,minWidth:v,minHeight:S,maxNumWide:_,maxNumHigh:k}}return{components:h,minWidth:o,minHeight:l,maxNumWide:c,maxNumHigh:u}}function buildPackets(t){for(var r=t.SIZ,o=t.currentTile.index,l=t.tiles[o],c=r.Csiz,u=0;u<c;u++){for(var d=l.components[u],m=d.codingStyleParameters.decompositionLevelsCount,g=[],y=[],v=0;v<=m;v++){var S=getBlocksDimensions(0,d,v),_={},k=1<<m-v;_.trx0=Math.ceil(d.tcx0/k);_.try0=Math.ceil(d.tcy0/k);_.trx1=Math.ceil(d.tcx1/k);_.try1=Math.ceil(d.tcy1/k);_.resLevel=v;buildPrecincts(0,_,S);g.push(_);var C=void 0;if(0===v){(C={}).type="LL";C.tbx0=Math.ceil(d.tcx0/k);C.tby0=Math.ceil(d.tcy0/k);C.tbx1=Math.ceil(d.tcx1/k);C.tby1=Math.ceil(d.tcy1/k);C.resolution=_;buildCodeblocks(0,C,S);y.push(C);_.subbands=[C]}else{var w=1<<m-v+1,x=[];(C={}).type="HL";C.tbx0=Math.ceil(d.tcx0/w-.5);C.tby0=Math.ceil(d.tcy0/w);C.tbx1=Math.ceil(d.tcx1/w-.5);C.tby1=Math.ceil(d.tcy1/w);C.resolution=_;buildCodeblocks(0,C,S);y.push(C);x.push(C);(C={}).type="LH";C.tbx0=Math.ceil(d.tcx0/w);C.tby0=Math.ceil(d.tcy0/w-.5);C.tbx1=Math.ceil(d.tcx1/w);C.tby1=Math.ceil(d.tcy1/w-.5);C.resolution=_;buildCodeblocks(0,C,S);y.push(C);x.push(C);(C={}).type="HH";C.tbx0=Math.ceil(d.tcx0/w-.5);C.tby0=Math.ceil(d.tcy0/w-.5);C.tbx1=Math.ceil(d.tcx1/w-.5);C.tby1=Math.ceil(d.tcy1/w-.5);C.resolution=_;buildCodeblocks(0,C,S);y.push(C);x.push(C);_.subbands=x}}d.resolutions=g;d.subbands=y}var O=l.codingStyleDefaultParameters.progressionOrder;switch(O){case 0:l.packetsIterator=new LayerResolutionComponentPositionIterator(t);break;case 1:l.packetsIterator=new ResolutionLayerComponentPositionIterator(t);break;case 2:l.packetsIterator=new ResolutionPositionComponentLayerIterator(t);break;case 3:l.packetsIterator=new PositionComponentResolutionLayerIterator(t);break;case 4:l.packetsIterator=new ComponentPositionResolutionLayerIterator(t);break;default:throw new h("Unsupported progression order ".concat(O))}}function parseTilePackets(t,r,o,l){var u,d=0,m=0,v=!1;function readBits(t){for(;m<t;){var l=r[o+d];d++;if(v){u=u<<7|l;m+=7;v=!1}else{u=u<<8|l;m+=8}255===l&&(v=!0)}return u>>>(m-=t)&(1<<t)-1}function skipMarkerIfEqual(t){if(255===r[o+d-1]&&r[o+d]===t){skipBytes(1);return!0}if(255===r[o+d]&&r[o+d+1]===t){skipBytes(2);return!0}return!1}function skipBytes(t){d+=t}function alignToByte(){m=0;if(v){d++;v=!1}}function readCodingpasses(){if(0===readBits(1))return 1;if(0===readBits(1))return 2;var t=readBits(2);return t<3?t+3:(t=readBits(5))<31?t+6:(t=readBits(7))+37}for(var S=t.currentTile.index,_=t.tiles[S],k=t.COD.sopMarkerUsed,C=t.COD.ephMarkerUsed,w=_.packetsIterator;d<l;){alignToByte();k&&skipMarkerIfEqual(145)&&skipBytes(4);var x=w.nextPacket();if(readBits(1)){for(var O=x.layerNumber,T=[],R=void 0,E=0,M=x.codeblocks.length;E<M;E++){var D=(R=x.codeblocks[E]).precinct,j=R.cbx-D.cbxMin,L=R.cby-D.cbyMin,N=!1,U=!1,H=void 0;if(void 0!==R.included)N=!!readBits(1);else{var W=void 0;if(void 0!==(D=R.precinct).inclusionTree)W=D.inclusionTree;else{var $=D.cbxMax-D.cbxMin+1,q=D.cbyMax-D.cbyMin+1;W=new y($,q,O);H=new g($,q);D.inclusionTree=W;D.zeroBitPlanesTree=H;for(var X=0;X<O;X++)if(0!==readBits(1))throw new h("Invalid tag tree")}if(W.reset(j,L,O))for(;;){if(!readBits(1)){W.incrementValue(O);break}if(!W.nextLevel()){R.included=!0;N=U=!0;break}}}if(N){if(U){(H=D.zeroBitPlanesTree).reset(j,L);for(;;)if(readBits(1)){if(!H.nextLevel())break}else H.incrementValue();R.zeroBitPlanes=H.value}for(var z=readCodingpasses();readBits(1);)R.Lblock++;var G=(0,c.log2)(z),V=readBits((z<1<<G?G-1:G)+R.Lblock);T.push({codeblock:R,codingpasses:z,dataLength:V})}}alignToByte();C&&skipMarkerIfEqual(146);for(;T.length>0;){var Y=T.shift();void 0===(R=Y.codeblock).data&&(R.data=[]);R.data.push({data:r,start:o+d,end:o+d+Y.dataLength,codingpasses:Y.codingpasses});d+=Y.dataLength}}}return d}function copyCoefficients(t,r,o,l,c,h,d,m){for(var g=l.tbx0,y=l.tby0,S=l.tbx1-l.tbx0,_=l.codeblocks,k="H"===l.type.charAt(0)?1:0,C="H"===l.type.charAt(1)?r:0,w=0,x=_.length;w<x;++w){var O=_[w],T=O.tbx1_-O.tbx0_,R=O.tby1_-O.tby0_;if(0!==T&&0!==R&&void 0!==O.data){var E=new v(T,R,O.subbandType,O.zeroBitPlanes,h),M=2,D=O.data,j=0,L=0,N=void 0,U=void 0,H=void 0;for(N=0,U=D.length;N<U;N++){j+=(H=D[N]).end-H.start;L+=H.codingpasses}var W=new Uint8Array(j),$=0;for(N=0,U=D.length;N<U;N++){var q=(H=D[N]).data.subarray(H.start,H.end);W.set(q,$);$+=q.length}var X=new u.ArithmeticDecoder(W,0,j);E.setDecoder(X);for(N=0;N<L;N++){switch(M){case 0:E.runSignificancePropagationPass();break;case 1:E.runMagnitudeRefinementPass();break;case 2:E.runCleanupPass();m&&E.checkSegmentationSymbol()}M=(M+1)%3}var z=O.tbx0_-g+(O.tby0_-y)*S,G=E.coefficentsSign,V=E.coefficentsMagnitude,Y=E.bitsDecoded,K=d?0:.5,J=void 0,Q=void 0,Z=void 0;$=0;var ee="LL"!==l.type;for(N=0;N<R;N++){var te=2*(z/S|0)*(r-S)+k+C;for(J=0;J<T;J++){if(0!==(Q=V[$])){Q=(Q+K)*c;0!==G[$]&&(Q=-Q);Z=Y[$];var re=ee?te+(z<<1):z;t[re]=d&&Z>=h?Q:Q*(1<<h-Z)}z++;$++}z+=S-T}}}}function transformTile(t,r,o){for(var l=r.components[o],c=l.codingStyleParameters,u=l.quantizationParameters,h=c.decompositionLevelsCount,m=u.SPqcds,g=u.scalarExpounded,y=u.guardBits,v=c.segmentationSymbolUsed,S=t.components[o].precision,C=c.reversibleTransformation,w=C?new k:new _,x=[],O=0,T=0;T<=h;T++){for(var R=l.resolutions[T],E=R.trx1-R.trx0,M=R.try1-R.try0,D=new Float32Array(E*M),j=0,L=R.subbands.length;j<L;j++){var N=void 0,U=void 0;if(g){N=m[O].mu;U=m[O].epsilon;O++}else{N=m[0].mu;U=m[0].epsilon+(T>0?1-T:0)}var H=R.subbands[j],W=d[H.type];copyCoefficients(D,E,0,H,C?1:Math.pow(2,S+W-U)*(1+N/2048),y+U-1,C,v)}x.push({width:E,height:M,items:D})}var $=w.calculate(x,l.tcx0,l.tcy0);return{left:l.tcx0,top:l.tcy0,width:$.width,height:$.height,items:$.items}}function initializeTile(t,r){for(var o=t.SIZ.Csiz,l=t.tiles[r],c=0;c<o;c++){var u=l.components[c],h=void 0!==t.currentTile.QCC[c]?t.currentTile.QCC[c]:t.currentTile.QCD;u.quantizationParameters=h;var d=void 0!==t.currentTile.COC[c]?t.currentTile.COC[c]:t.currentTile.COD;u.codingStyleParameters=d}l.codingStyleDefaultParameters=t.currentTile.COD}var g=function(){function TagTree(t,r){_classCallCheck(this,TagTree);var o=(0,c.log2)(Math.max(t,r))+1;this.levels=[];for(var l=0;l<o;l++){var u={width:t,height:r,items:[]};this.levels.push(u);t=Math.ceil(t/2);r=Math.ceil(r/2)}}_createClass(TagTree,[{key:"reset",value:function reset(t,r){for(var o,l=0,c=0;l<this.levels.length;){var u=t+r*(o=this.levels[l]).width;if(void 0!==o.items[u]){c=o.items[u];break}o.index=u;t>>=1;r>>=1;l++}l--;(o=this.levels[l]).items[o.index]=c;this.currentLevel=l;delete this.value}},{key:"incrementValue",value:function incrementValue(){var t=this.levels[this.currentLevel];t.items[t.index]++}},{key:"nextLevel",value:function nextLevel(){var t=this.currentLevel,r=this.levels[t],o=r.items[r.index];if(--t<0){this.value=o;return!1}this.currentLevel=t;(r=this.levels[t]).items[r.index]=o;return!0}}]);return TagTree}(),y=function(){function InclusionTree(t,r,o){_classCallCheck(this,InclusionTree);var l=(0,c.log2)(Math.max(t,r))+1;this.levels=[];for(var u=0;u<l;u++){for(var h=new Uint8Array(t*r),d=0,m=h.length;d<m;d++)h[d]=o;var g={width:t,height:r,items:h};this.levels.push(g);t=Math.ceil(t/2);r=Math.ceil(r/2)}}_createClass(InclusionTree,[{key:"reset",value:function reset(t,r,o){for(var l=0;l<this.levels.length;){var c=this.levels[l],u=t+r*c.width;c.index=u;var h=c.items[u];if(255===h)break;if(h>o){this.currentLevel=l;this.propagateValues();return!1}t>>=1;r>>=1;l++}this.currentLevel=l-1;return!0}},{key:"incrementValue",value:function incrementValue(t){var r=this.levels[this.currentLevel];r.items[r.index]=t+1;this.propagateValues()}},{key:"propagateValues",value:function propagateValues(){for(var t=this.currentLevel,r=this.levels[t],o=r.items[r.index];--t>=0;)(r=this.levels[t]).items[r.index]=o}},{key:"nextLevel",value:function nextLevel(){var t=this.currentLevel,r=this.levels[t],o=r.items[r.index];r.items[r.index]=255;if(--t<0)return!1;this.currentLevel=t;(r=this.levels[t]).items[r.index]=o;return!0}}]);return InclusionTree}(),v=function BitModelClosure(){var t=17,r=new Uint8Array([0,5,8,0,3,7,8,0,4,7,8,0,0,0,0,0,1,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8]),o=new Uint8Array([0,3,4,0,5,7,7,0,8,8,8,0,0,0,0,0,1,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8]),l=new Uint8Array([0,1,2,0,1,2,2,0,2,2,2,0,0,0,0,0,3,4,5,0,4,5,5,0,5,5,5,0,0,0,0,0,6,7,7,0,7,7,7,0,7,7,7,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8]);return function(){function BitModel(t,c,u,h,d){_classCallCheck(this,BitModel);this.width=t;this.height=c;var m;m="HH"===u?l:"HL"===u?o:r;this.contextLabelTable=m;var g,y=t*c;this.neighborsSignificance=new Uint8Array(y);this.coefficentsSign=new Uint8Array(y);g=d>14?new Uint32Array(y):d>6?new Uint16Array(y):new Uint8Array(y);this.coefficentsMagnitude=g;this.processingFlags=new Uint8Array(y);var v=new Uint8Array(y);if(0!==h)for(var S=0;S<y;S++)v[S]=h;this.bitsDecoded=v;this.reset()}_createClass(BitModel,[{key:"setDecoder",value:function setDecoder(t){this.decoder=t}},{key:"reset",value:function reset(){this.contexts=new Int8Array(19);this.contexts[0]=8;this.contexts[17]=92;this.contexts[18]=6}},{key:"setNeighborsSignificance",value:function setNeighborsSignificance(t,r,o){var l,c=this.neighborsSignificance,u=this.width,h=this.height,d=r>0,m=r+1<u;if(t>0){l=o-u;d&&(c[l-1]+=16);m&&(c[l+1]+=16);c[l]+=4}if(t+1<h){l=o+u;d&&(c[l-1]+=16);m&&(c[l+1]+=16);c[l]+=4}d&&(c[o-1]+=1);m&&(c[o+1]+=1);c[o]|=128}},{key:"runSignificancePropagationPass",value:function runSignificancePropagationPass(){for(var t=this.decoder,r=this.width,o=this.height,l=this.coefficentsMagnitude,c=this.coefficentsSign,u=this.neighborsSignificance,h=this.processingFlags,d=this.contexts,m=this.contextLabelTable,g=this.bitsDecoded,y=0;y<o;y+=4)for(var v=0;v<r;v++)for(var S=y*r+v,_=0;_<4;_++,S+=r){var k=y+_;if(k>=o)break;h[S]&=-2;if(!l[S]&&u[S]){var C=m[u[S]];if(t.readBit(d,C)){var w=this.decodeSignBit(k,v,S);c[S]=w;l[S]=1;this.setNeighborsSignificance(k,v,S);h[S]|=2}g[S]++;h[S]|=1}}}},{key:"decodeSignBit",value:function decodeSignBit(t,r,o){var l,c,u,h,d,m,g=this.width,y=this.height,v=this.coefficentsMagnitude,S=this.coefficentsSign;h=r>0&&0!==v[o-1];if(r+1<g&&0!==v[o+1]){u=S[o+1];l=h?1-u-(c=S[o-1]):1-u-u}else l=h?1-(c=S[o-1])-c:0;var _=3*l;h=t>0&&0!==v[o-g];if(t+1<y&&0!==v[o+g]){u=S[o+g];l=h?1-u-(c=S[o-g])+_:1-u-u+_}else l=h?1-(c=S[o-g])-c+_:_;if(l>=0){d=9+l;m=this.decoder.readBit(this.contexts,d)}else{d=9-l;m=1^this.decoder.readBit(this.contexts,d)}return m}},{key:"runMagnitudeRefinementPass",value:function runMagnitudeRefinementPass(){for(var t,r=this.decoder,o=this.width,l=this.height,c=this.coefficentsMagnitude,u=this.neighborsSignificance,h=this.contexts,d=this.bitsDecoded,m=this.processingFlags,g=o*l,y=4*o,v=0;v<g;v=t){t=Math.min(g,v+y);for(var S=0;S<o;S++)for(var _=v+S;_<t;_+=o)if(c[_]&&0==(1&m[_])){var k=16;if(0!=(2&m[_])){m[_]^=2;k=0===(127&u[_])?15:14}var C=r.readBit(h,k);c[_]=c[_]<<1|C;d[_]++;m[_]|=1}}}},{key:"runCleanupPass",value:function runCleanupPass(){for(var r,o=this.decoder,l=this.width,c=this.height,u=this.neighborsSignificance,h=this.coefficentsMagnitude,d=this.coefficentsSign,m=this.contexts,g=this.contextLabelTable,y=this.bitsDecoded,v=this.processingFlags,S=l,_=2*l,k=3*l,C=0;C<c;C=r){r=Math.min(C+4,c);for(var w=C*l,x=C+3<c,O=0;O<l;O++){var T=w+O,R=0,E=T,M=C,D=void 0;if(x&&0===v[T]&&0===v[T+S]&&0===v[T+_]&&0===v[T+k]&&0===u[T]&&0===u[T+S]&&0===u[T+_]&&0===u[T+k]){if(!o.readBit(m,18)){y[T]++;y[T+S]++;y[T+_]++;y[T+k]++;continue}if(0!==(R=o.readBit(m,t)<<1|o.readBit(m,t))){M=C+R;E+=R*l}D=this.decodeSignBit(M,O,E);d[E]=D;h[E]=1;this.setNeighborsSignificance(M,O,E);v[E]|=2;E=T;for(var j=C;j<=M;j++,E+=l)y[E]++;R++}for(M=C+R;M<r;M++,E+=l)if(!h[E]&&0==(1&v[E])){var L=g[u[E]];if(1===o.readBit(m,L)){D=this.decodeSignBit(M,O,E);d[E]=D;h[E]=1;this.setNeighborsSignificance(M,O,E);v[E]|=2}y[E]++}}}}},{key:"checkSegmentationSymbol",value:function checkSegmentationSymbol(){var r=this.decoder,o=this.contexts;if(10!==(r.readBit(o,t)<<3|r.readBit(o,t)<<2|r.readBit(o,t)<<1|r.readBit(o,t)))throw new h("Invalid segmentation symbol")}}]);return BitModel}()}(),S=function(){function Transform(){_classCallCheck(this,Transform);this.constructor===Transform&&(0,l.unreachable)("Cannot initialize Transform.")}_createClass(Transform,[{key:"calculate",value:function calculate(t,r,o){for(var l=t[0],c=1,u=t.length;c<u;c++)l=this.iterate(l,t[c],r,o);return l}},{key:"extend",value:function extend(t,r,o){var l=r-1,c=r+1,u=r+o-2,h=r+o;t[l--]=t[c++];t[h++]=t[u--];t[l--]=t[c++];t[h++]=t[u--];t[l--]=t[c++];t[h++]=t[u--];t[l]=t[c];t[h]=t[u]}},{key:"filter",value:function filter(t,r,o){(0,l.unreachable)("Abstract method `filter` called")}},{key:"iterate",value:function iterate(t,r,o,l){var c,u,h,d,m,g,y=t.width,v=t.height,S=t.items,_=r.width,k=r.height,C=r.items;for(h=0,c=0;c<v;c++){d=2*c*_;for(u=0;u<y;u++,h++,d+=2)C[d]=S[h]}S=t.items=null;var w=new Float32Array(_+8);if(1===_){if(0!=(1&o))for(g=0,h=0;g<k;g++,h+=_)C[h]*=.5}else for(g=0,h=0;g<k;g++,h+=_){w.set(C.subarray(h,h+_),4);this.extend(w,4,_);this.filter(w,4,_);C.set(w.subarray(4,4+_),h)}var x=16,O=[];for(c=0;c<x;c++)O.push(new Float32Array(k+8));var T,R=0;t=4+k;if(1===k){if(0!=(1&l))for(m=0;m<_;m++)C[m]*=.5}else for(m=0;m<_;m++){if(0===R){x=Math.min(_-m,x);for(h=m,d=4;d<t;h+=_,d++)for(T=0;T<x;T++)O[T][d]=C[h+T];R=x}var E=O[--R];this.extend(E,4,k);this.filter(E,4,k);if(0===R){h=m-x+1;for(d=4;d<t;h+=_,d++)for(T=0;T<x;T++)C[h+T]=O[T][d]}}return{width:_,height:k,items:C}}}]);return Transform}(),_=function(t){_inherits(IrreversibleTransform,t);var r=_createSuper(IrreversibleTransform);function IrreversibleTransform(){_classCallCheck(this,IrreversibleTransform);return r.apply(this,arguments)}_createClass(IrreversibleTransform,[{key:"filter",value:function filter(t,r,o){var l,c,u,h,d=o>>1,m=-1.586134342059924,g=-.052980118572961,y=.882911075530934,v=.443506852043971,S=1.230174104914001;l=(r|=0)-3;for(c=d+4;c--;l+=2)t[l]*=.8128930661159609;u=v*t[(l=r-2)-1];for(c=d+3;c--;l+=2){h=v*t[l+1];t[l]=S*t[l]-u-h;if(!c--)break;u=v*t[(l+=2)+1];t[l]=S*t[l]-u-h}u=y*t[(l=r-1)-1];for(c=d+2;c--;l+=2){h=y*t[l+1];t[l]-=u+h;if(!c--)break;u=y*t[(l+=2)+1];t[l]-=u+h}u=g*t[(l=r)-1];for(c=d+1;c--;l+=2){h=g*t[l+1];t[l]-=u+h;if(!c--)break;u=g*t[(l+=2)+1];t[l]-=u+h}if(0!==d){u=m*t[(l=r+1)-1];for(c=d;c--;l+=2){h=m*t[l+1];t[l]-=u+h;if(!c--)break;u=m*t[(l+=2)+1];t[l]-=u+h}}}}]);return IrreversibleTransform}(S),k=function(t){_inherits(ReversibleTransform,t);var r=_createSuper(ReversibleTransform);function ReversibleTransform(){_classCallCheck(this,ReversibleTransform);return r.apply(this,arguments)}_createClass(ReversibleTransform,[{key:"filter",value:function filter(t,r,o){var l,c,u=o>>1;for(l=r|=0,c=u+1;c--;l+=2)t[l]-=t[l-1]+t[l+1]+2>>2;for(l=r+1,c=u;c--;l+=2)t[l]+=t[l-1]+t[l+1]>>1}}]);return ReversibleTransform}(S)},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.LZWStream=void 0;function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var l=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(LZWStream,t);var r=_createSuper(LZWStream);function LZWStream(t,o,l){var c;!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,LZWStream);(c=r.call(this,o)).str=t;c.dict=t.dict;c.cachedData=0;c.bitsCached=0;for(var u=4096,h={earlyChange:l,codeLength:9,nextCode:258,dictionaryValues:new Uint8Array(u),dictionaryLengths:new Uint16Array(u),dictionaryPrevCodes:new Uint16Array(u),currentSequence:new Uint8Array(u),currentSequenceLength:0},d=0;d<256;++d){h.dictionaryValues[d]=d;h.dictionaryLengths[d]=1}c.lzwState=h;return c}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(LZWStream,[{key:"readBits",value:function readBits(t){for(var r=this.bitsCached,o=this.cachedData;r<t;){var l=this.str.getByte();if(-1===l){this.eof=!0;return null}o=o<<8|l;r+=8}this.bitsCached=r-=t;this.cachedData=o;this.lastCode=null;return o>>>r&(1<<t)-1}},{key:"readBlock",value:function readBlock(){var t,r,o,l=1024,c=this.lzwState;if(c){var u=c.earlyChange,h=c.nextCode,d=c.dictionaryValues,m=c.dictionaryLengths,g=c.dictionaryPrevCodes,y=c.codeLength,v=c.prevCode,S=c.currentSequence,_=c.currentSequenceLength,k=0,C=this.bufferLength,w=this.ensureBuffer(this.bufferLength+l);for(t=0;t<512;t++){var x=this.readBits(y),O=_>0;if(x<256){S[0]=x;_=1}else{if(!(x>=258)){if(256===x){y=9;h=258;_=0;continue}this.eof=!0;delete this.lzwState;break}if(x<h)for(r=(_=m[x])-1,o=x;r>=0;r--){S[r]=d[o];o=g[o]}else S[_++]=S[0]}if(O){g[h]=v;m[h]=m[v]+1;d[h]=S[0];y=++h+u&h+u-1?y:0|Math.min(Math.log(h+u)/.6931471805599453+1,12)}v=x;if(l<(k+=_)){do{l+=512}while(l<k);w=this.ensureBuffer(this.bufferLength+l)}for(r=0;r<_;r++)w[C++]=S[r]}c.nextCode=h;c.codeLength=y;c.prevCode=v;c.currentSequenceLength=_;this.bufferLength=C}}}]);return LZWStream}(o(142).DecodeStream);r.LZWStream=l},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.PredictorStream=void 0;var l=o(142),c=o(4),u=o(118);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t)}function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var h=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(PredictorStream,t);var r=_createSuper(PredictorStream);function PredictorStream(t,o,l){var h;!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,PredictorStream);h=r.call(this,o);if(!(0,u.isDict)(l))return _possibleConstructorReturn(h,t);var d=h.predictor=l.get("Predictor")||1;if(d<=1)return _possibleConstructorReturn(h,t);if(2!==d&&(d<10||d>15))throw new c.FormatError("Unsupported predictor: ".concat(d));h.readBlock=2===d?h.readBlockTiff:h.readBlockPng;h.str=t;h.dict=t.dict;var m=h.colors=l.get("Colors")||1,g=h.bits=l.get("BitsPerComponent")||8,y=h.columns=l.get("Columns")||1;h.pixBytes=m*g+7>>3;h.rowBytes=y*m*g+7>>3;return _possibleConstructorReturn(h,_assertThisInitialized(h))}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(PredictorStream,[{key:"readBlockTiff",value:function readBlockTiff(){var t=this.rowBytes,r=this.bufferLength,o=this.ensureBuffer(r+t),l=this.bits,c=this.colors,u=this.str.getBytes(t);this.eof=!u.length;if(!this.eof){var h,d=0,m=0,g=0,y=0,v=r;if(1===l&&1===c)for(h=0;h<t;++h){var S=u[h]^d;S^=S>>1;S^=S>>2;d=(1&(S^=S>>4))<<7;o[v++]=S}else if(8===l){for(h=0;h<c;++h)o[v++]=u[h];for(;h<t;++h){o[v]=o[v-c]+u[h];v++}}else if(16===l){var _=2*c;for(h=0;h<_;++h)o[v++]=u[h];for(;h<t;h+=2){var k=((255&u[h])<<8)+(255&u[h+1])+((255&o[v-_])<<8)+(255&o[v-_+1]);o[v++]=k>>8&255;o[v++]=255&k}}else{var C=new Uint8Array(c+1),w=(1<<l)-1,x=0,O=r,T=this.columns;for(h=0;h<T;++h)for(var R=0;R<c;++R){if(g<l){d=d<<8|255&u[x++];g+=8}C[R]=C[R]+(d>>g-l)&w;g-=l;m=m<<l|C[R];if((y+=l)>=8){o[O++]=m>>y-8&255;y-=8}}y>0&&(o[O++]=(m<<8-y)+(d&(1<<8-y)-1))}this.bufferLength+=t}}},{key:"readBlockPng",value:function readBlockPng(){var t=this.rowBytes,r=this.pixBytes,o=this.str.getByte(),l=this.str.getBytes(t);this.eof=!l.length;if(!this.eof){var u=this.bufferLength,h=this.ensureBuffer(u+t),d=h.subarray(u-t,u);0===d.length&&(d=new Uint8Array(t));var m,g,y,v=u;switch(o){case 0:for(m=0;m<t;++m)h[v++]=l[m];break;case 1:for(m=0;m<r;++m)h[v++]=l[m];for(;m<t;++m){h[v]=h[v-r]+l[m]&255;v++}break;case 2:for(m=0;m<t;++m)h[v++]=d[m]+l[m]&255;break;case 3:for(m=0;m<r;++m)h[v++]=(d[m]>>1)+l[m];for(;m<t;++m){h[v]=(d[m]+h[v-r]>>1)+l[m]&255;v++}break;case 4:for(m=0;m<r;++m){g=d[m];y=l[m];h[v++]=g+y}for(;m<t;++m){g=d[m];var S=d[m-r],_=h[v-r],k=_+g-S,C=k-_;C<0&&(C=-C);var w=k-g;w<0&&(w=-w);var x=k-S;x<0&&(x=-x);y=l[m];h[v++]=C<=w&&C<=x?_+y:w<=x?g+y:S+y}break;default:throw new c.FormatError("Unsupported predictor: ".concat(o))}this.bufferLength+=t}}}]);return PredictorStream}(l.DecodeStream);r.PredictorStream=h},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.RunLengthStream=void 0;function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var l=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(RunLengthStream,t);var r=_createSuper(RunLengthStream);function RunLengthStream(t,o){var l;!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,RunLengthStream);(l=r.call(this,o)).str=t;l.dict=t.dict;return l}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(RunLengthStream,[{key:"readBlock",value:function readBlock(){var t=this.str.getBytes(2);if(!t||t.length<2||128===t[0])this.eof=!0;else{var r,o=this.bufferLength,l=t[0];if(l<128){(r=this.ensureBuffer(o+l+1))[o++]=t[1];if(l>0){var c=this.str.getBytes(l);r.set(c,o);o+=l}}else{l=257-l;var u=t[1];r=this.ensureBuffer(o+l+1);for(var h=0;h<l;h++)r[o++]=u}this.bufferLength=o}}}]);return RunLengthStream}(o(142).DecodeStream);r.RunLengthStream=l},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.Font=r.ErrorFont=void 0;var l=o(4),c=o(158),u=o(131),h=o(133),d=o(132),m=o(160),g=o(134),y=o(161),v=o(162),S=o(163),_=o(164),k=o(139),C=o(165),w=o(122),x=o(123),O=o(166);function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||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 _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}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 u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var T=[[57344,63743],[1048576,1114109]],R=1e3,E=["ascent","bbox","black","bold","charProcOperatorList","composite","cssFontInfo","data","defaultVMetrics","defaultWidth","descent","fallbackName","fontMatrix","fontType","isType3Font","italic","loadedName","mimetype","missingFile","name","remeasure","subtype","type","vertical"],M=["cMap","defaultEncoding","differences","isMonospace","isSerifFont","isSymbolicFont","seacMap","toFontChar","toUnicode","vmetrics","widths"];function adjustWidths(t){if(t.fontMatrix&&t.fontMatrix[0]!==l.FONT_IDENTITY_MATRIX[0]){var r=.001/t.fontMatrix[0],o=t.widths;for(var c in o)o[c]*=r;t.defaultWidth*=r}}function amendFallbackToUnicode(t){if(t.fallbackToUnicode&&!(t.toUnicode instanceof y.IdentityToUnicodeMap)){var r=[];for(var o in t.fallbackToUnicode)t.toUnicode.has(o)||(r[o]=t.fallbackToUnicode[o]);r.length>0&&t.toUnicode.amend(r)}}var D=function(){function Glyph(t,r,o,l,c,u,h,d,m){_classCallCheck(this,Glyph);this.originalCharCode=t;this.fontChar=r;this.unicode=o;this.accent=l;this.width=c;this.vmetric=u;this.operatorListId=h;this.isSpace=d;this.isInFont=m}_createClass(Glyph,[{key:"matchesForCache",value:function matchesForCache(t,r,o,l,c,u,h,d,m){return this.originalCharCode===t&&this.fontChar===r&&this.unicode===o&&this.accent===l&&this.width===c&&this.vmetric===u&&this.operatorListId===h&&this.isSpace===d&&this.isInFont===m}}]);return Glyph}();function int16(t,r){return(t<<8)+r}function writeSignedInt16(t,r,o){t[r+1]=o;t[r]=o>>>8}function signedInt16(t,r){var o=(t<<8)+r;return 32768&o?o-65536:o}function string16(t){return String.fromCharCode(t>>8&255,255&t)}function safeString16(t){t>32767?t=32767:t<-32768&&(t=-32768);return String.fromCharCode(t>>8&255,255&t)}function isTrueTypeCollectionFile(t){var r=t.peekBytes(4);return"ttcf"===(0,l.bytesToString)(r)}function getFontFileType(t,r){var o,c,u=r.type,h=r.subtype,d=r.composite;if(function isTrueTypeFile(t){var r=t.peekBytes(4);return 65536===(0,w.readUint32)(r,0)||"true"===(0,l.bytesToString)(r)}(t)||isTrueTypeCollectionFile(t))o=d?"CIDFontType2":"TrueType";else if(function isOpenTypeFile(t){var r=t.peekBytes(4);return"OTTO"===(0,l.bytesToString)(r)}(t))o=d?"CIDFontType2":"OpenType";else if(function isType1File(t){var r=t.peekBytes(2);return 37===r[0]&&33===r[1]||128===r[0]&&1===r[1]}(t))o=d?"CIDFontType0":"MMType1"===u?"MMType1":"Type1";else if(function isCFFFile(t){var r=t.peekBytes(4);return r[0]>=1&&r[3]>=1&&r[3]<=4}(t))if(d){o="CIDFontType0";c="CIDFontType0C"}else{o="MMType1"===u?"MMType1":"Type1";c="Type1C"}else{(0,l.warn)("getFontFileType: Unable to detect correct font file Type/Subtype.");o=u;c=h}return[o,c]}function applyStandardFontGlyphMap(t,r){for(var o in r)t[+o]=r[o]}function buildToFontChar(t,r,o){for(var l,c=[],u=0,h=t.length;u<h;u++)-1!==(l=(0,g.getUnicodeForGlyph)(t[u],r))&&(c[u]=l);for(var d in o)-1!==(l=(0,g.getUnicodeForGlyph)(o[d],r))&&(c[+d]=l);return c}function convertCidString(t,r){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2];switch(r.length){case 1:return r.charCodeAt(0);case 2:return r.charCodeAt(0)<<8|r.charCodeAt(1)}var c="Unsupported CID string (charCode ".concat(t,'): "').concat(r,'".');if(o)throw new l.FormatError(c);(0,l.warn)(c);return r}function adjustMapping(t,r,o){var c=Object.create(null),u=[],h=0,d=T[h][0],m=T[h][1];for(var g in t){var y=t[g|=0];if(r(y)){if(d>m){if(++h>=T.length){(0,l.warn)("Ran out of space in font private use area.");break}d=T[h][0];m=T[h][1]}var v=d++;0===y&&(y=o);c[v]=y;u[g]=v}}return{toFontChar:u,charCodeToGlyphId:c,nextAvailableFontCharCode:d}}function createCmapTable(t,r){var o,c,u,h,d=function getRanges(t,r){var o=[];for(var l in t)t[l]>=r||o.push({fontCharCode:0|l,glyphId:t[l]});0===o.length&&o.push({fontCharCode:0,glyphId:0});o.sort((function fontGetRangesSort(t,r){return t.fontCharCode-r.fontCharCode}));for(var c=[],u=o.length,h=0;h<u;){var d=o[h].fontCharCode,m=[o[h].glyphId];++h;for(var g=d;h<u&&g+1===o[h].fontCharCode;){m.push(o[h].glyphId);++h;if(65535==++g)break}c.push([d,g,m])}return c}(t,r),m=d[d.length-1][1]>65535?2:1,g="\0\0"+string16(m)+"\0\0"+(0,l.string32)(4+8*m);for(o=d.length-1;o>=0&&!(d[o][0]<=65535);--o);var y=o+1;d[o][0]<65535&&65535===d[o][1]&&(d[o][1]=65534);var v,S,_,k,w=d[o][1]<65535?1:0,x=y+w,O=C.OpenTypeFileBuilder.getSearchParams(x,2),T="",R="",E="",M="",D="",j=0;for(o=0,c=y;o<c;o++){S=(v=d[o])[0];_=v[1];T+=string16(S);R+=string16(_);var L=!0;for(u=1,h=(k=v[2]).length;u<h;++u)if(k[u]!==k[u-1]+1){L=!1;break}if(L){E+=string16(k[0]-S&65535);M+=string16(0)}else{var N=2*(x-o)+2*j;j+=_-S+1;E+=string16(0);M+=string16(N);for(u=0,h=k.length;u<h;++u)D+=string16(k[u])}}if(w>0){R+="ÿÿ";T+="ÿÿ";E+="\0";M+="\0\0"}var U="\0\0"+string16(2*x)+string16(O.range)+string16(O.entry)+string16(O.rangeShift)+R+"\0\0"+T+E+M+D,H="",W="";if(m>1){g+="\0\0\n"+(0,l.string32)(4+8*m+4+U.length);H="";for(o=0,c=d.length;o<c;o++){S=(v=d[o])[0];var $=(k=v[2])[0];for(u=1,h=k.length;u<h;++u)if(k[u]!==k[u-1]+1){_=v[0]+u-1;H+=(0,l.string32)(S)+(0,l.string32)(_)+(0,l.string32)($);S=_+1;$=k[u]}H+=(0,l.string32)(S)+(0,l.string32)(v[1])+(0,l.string32)($)}W="\0\f\0\0"+(0,l.string32)(H.length+16)+"\0\0\0\0"+(0,l.string32)(H.length/12)}return g+"\0"+string16(U.length+4)+U+W+H}function createOS2Table(t,r,o){o=o||{unitsPerEm:0,yMax:0,yMin:0,ascent:0,descent:0};var c=0,u=0,h=0,d=0,m=null,y=0;if(r){for(var v in r){(m>(v|=0)||!m)&&(m=v);y<v&&(y=v);var S=(0,g.getUnicodeRangeFor)(v);if(S<32)c|=1<<S;else if(S<64)u|=1<<S-32;else if(S<96)h|=1<<S-64;else{if(!(S<123))throw new l.FormatError("Unicode ranges Bits > 123 are reserved for internal usage");d|=1<<S-96}}y>65535&&(y=65535)}else{m=0;y=255}var _=t.bbox||[0,0,0,0],k=o.unitsPerEm||1/(t.fontMatrix||l.FONT_IDENTITY_MATRIX)[0],C=t.ascentScaled?1:k/R,w=o.ascent||Math.round(C*(t.ascent||_[3])),x=o.descent||Math.round(C*(t.descent||_[1]));x>0&&t.descent>0&&_[1]<0&&(x=-x);var O=o.yMax||w,T=-o.yMin||-x;return"\0$ô\0\0\0Š»\0\0\0ŒŠ»\0\0ß\x001\0\0\0\0"+String.fromCharCode(t.fixedPitch?9:0)+"\0\0\0\0\0\0"+(0,l.string32)(c)+(0,l.string32)(u)+(0,l.string32)(h)+(0,l.string32)(d)+"*21*"+string16(t.italicAngle?1:0)+string16(m||t.firstChar)+string16(y||t.lastChar)+string16(w)+string16(x)+"\0d"+string16(O)+string16(T)+"\0\0\0\0\0\0\0\0"+string16(t.xHeight)+string16(t.capHeight)+string16(0)+string16(m||t.firstChar)+"\0"}function createPostTable(t){var r=Math.floor(t.italicAngle*Math.pow(2,16));return"\0\0\0"+(0,l.string32)(r)+"\0\0\0\0"+(0,l.string32)(t.fixedPitch?1:0)+"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}function createPostscriptName(t){return t.replace(/[^\x21-\x7E]|[[\](){}<>/%]/g,"").slice(0,63)}function createNameTable(t,r){r||(r=[[],[]]);var o,l,c,u,h,d=[r[0][0]||"Original licence",r[0][1]||t,r[0][2]||"Unknown",r[0][3]||"uniqueID",r[0][4]||t,r[0][5]||"Version 0.11",r[0][6]||createPostscriptName(t),r[0][7]||"Unknown",r[0][8]||"Unknown",r[0][9]||"Unknown"],m=[];for(o=0,l=d.length;o<l;o++){var g=[];for(c=0,u=(h=r[1][o]||d[o]).length;c<u;c++)g.push(string16(h.charCodeAt(c)));m.push(g.join(""))}var y=[d,m],v=["\0","\0"],S=["\0\0","\0"],_=["\0\0","\t"],k=d.length*v.length,C="\0\0"+string16(k)+string16(12*k+6),w=0;for(o=0,l=v.length;o<l;o++){var x=y[o];for(c=0,u=x.length;c<u;c++){h=x[c];C+=v[o]+S[o]+_[o]+string16(c)+string16(h.length)+string16(w);w+=h.length}}return C+=d.join("")+m.join("")}var j=function(){function Font(t,r,o){_classCallCheck(this,Font);this.name=t;this.psName=null;this.mimetype=null;this.disableFontFace=!1;this.loadedName=o.loadedName;this.isType3Font=o.isType3Font;this.missingFile=!1;this.cssFontInfo=o.cssFontInfo;this._charsCache=Object.create(null);this._glyphCache=Object.create(null);var c=!!(o.flags&u.FontFlags.Serif);if(!c&&!o.isSimulatedFlags){var h,d=t.replace(/[,_]/g,"-").split("-")[0],g=(0,m.getSerifFonts)(),y=_createForOfIteratorHelper(d.split("+"));try{for(y.s();!(h=y.n()).done;){if(g[h.value]){c=!0;break}}}catch(t){y.e(t)}finally{y.f()}}this.isSerifFont=c;this.isSymbolicFont=!!(o.flags&u.FontFlags.Symbolic);this.isMonospace=!!(o.flags&u.FontFlags.FixedPitch);var S=o.type,_=o.subtype;this.type=S;this.subtype=_;var k="sans-serif";this.isMonospace?k="monospace":this.isSerifFont&&(k="serif");this.fallbackName=k;this.differences=o.differences;this.widths=o.widths;this.defaultWidth=o.defaultWidth;this.composite=o.composite;this.cMap=o.cMap;this.capHeight=o.capHeight/R;this.ascent=o.ascent/R;this.descent=o.descent/R;this.lineHeight=this.ascent-this.descent;this.fontMatrix=o.fontMatrix;this.bbox=o.bbox;this.defaultEncoding=o.defaultEncoding;this.toUnicode=o.toUnicode;this.toFontChar=[];if("Type3"!==o.type){this.cidEncoding=o.cidEncoding||"";this.vertical=!!o.vertical;if(this.vertical){this.vmetrics=o.vmetrics;this.defaultVMetrics=o.defaultVMetrics}if(r&&!r.isEmpty){var C,w=_slicedToArray(getFontFileType(r,o),2);S=w[0];_=w[1];S===this.type&&_===this.subtype||(0,l.info)("Inconsistent font file Type/SubType, expected: "+"".concat(this.type,"/").concat(this.subtype," but found: ").concat(S,"/").concat(_,"."));try{switch(S){case"MMType1":(0,l.info)("MMType1 font ("+t+"), falling back to Type1.");case"Type1":case"CIDFontType0":this.mimetype="font/opentype";var x="Type1C"===_||"CIDFontType0C"===_?new v.CFFFont(r,o):new O.Type1Font(t,r,o);adjustWidths(o);C=this.convert(t,x,o);break;case"OpenType":case"TrueType":case"CIDFontType2":this.mimetype="font/opentype";C=this.checkAndRepair(t,r,o);if(this.isOpenType){adjustWidths(o);S="OpenType"}break;default:throw new l.FormatError("Font ".concat(S," is not supported"))}}catch(t){(0,l.warn)(t);this.fallbackToSystemFont(o);return}amendFallbackToUnicode(o);this.data=C;this.fontType=(0,u.getFontType)(S,_,o.isStandardFont);this.fontMatrix=o.fontMatrix;this.widths=o.widths;this.defaultWidth=o.defaultWidth;this.toUnicode=o.toUnicode;this.seacMap=o.seacMap}else{r&&(0,l.warn)('Font file is empty in "'+t+'" ('+this.loadedName+")");this.fallbackToSystemFont(o)}}else{for(var T=0;T<256;T++)this.toFontChar[T]=this.differences[T]||o.defaultEncoding[T];this.fontType=l.FontType.TYPE3}}_createClass(Font,[{key:"renderer",get:function get(){var t=S.FontRendererFactory.create(this,u.SEAC_ANALYSIS_ENABLED);return(0,l.shadow)(this,"renderer",t)}},{key:"exportData",value:function exportData(){var t,r,o,l=arguments.length>0&&void 0!==arguments[0]&&arguments[0],c=l?[].concat(E,M):E,u=Object.create(null),h=_createForOfIteratorHelper(c);try{for(h.s();!(o=h.n()).done;)void 0!==(r=this[t=o.value])&&(u[t]=r)}catch(t){h.e(t)}finally{h.f()}return u}},{key:"fallbackToSystemFont",value:function fallbackToSystemFont(t){var r=this;this.missingFile=!0;var o=this.name,c=this.type,v=this.subtype,S=(0,u.normalizeFontName)(o),_=(0,m.getStdFontMap)(),k=(0,m.getNonStdFontMap)(),C=!!_[S],w=!(!k[S]||!_[k[S]]);S=_[S]||k[S]||S;this.bold=-1!==S.search(/bold/gi);this.italic=-1!==S.search(/oblique/gi)||-1!==S.search(/italic/gi);this.black=-1!==o.search(/Black/g);var x=-1!==o.search(/Narrow/g);this.remeasure=(!C||x)&&Object.keys(this.widths).length>0;if((C||w)&&"CIDFontType2"===c&&this.cidEncoding.startsWith("Identity-")){var O=t.cidToGidMap,T=[];applyStandardFontGlyphMap(T,(0,m.getGlyphMapForStandardFonts)());/Arial-?Black/i.test(o)?applyStandardFontGlyphMap(T,(0,m.getSupplementalGlyphMapForArialBlack)()):/Calibri/i.test(o)&&applyStandardFontGlyphMap(T,(0,m.getSupplementalGlyphMapForCalibri)());if(O){for(var R in T){var E=T[R];void 0!==O[E]&&(T[+R]=O[E])}O.length!==this.toUnicode.length&&t.hasIncludedToUnicodeMap&&this.toUnicode instanceof y.IdentityToUnicodeMap&&this.toUnicode.forEach((function(t,r){var o=T[t];void 0===O[o]&&(T[+t]=r)}))}this.toUnicode instanceof y.IdentityToUnicodeMap||this.toUnicode.forEach((function(t,r){T[+t]=r}));this.toFontChar=T;this.toUnicode=new y.ToUnicodeMap(T)}else if(/Symbol/i.test(S))this.toFontChar=buildToFontChar(d.SymbolSetEncoding,(0,h.getGlyphsUnicode)(),this.differences);else if(/Dingbats/i.test(S)){/Wingdings/i.test(o)&&(0,l.warn)("Non-embedded Wingdings font, falling back to ZapfDingbats.");this.toFontChar=buildToFontChar(d.ZapfDingbatsEncoding,(0,h.getDingbatsGlyphsUnicode)(),this.differences)}else if(C){var M=buildToFontChar(this.defaultEncoding,(0,h.getGlyphsUnicode)(),this.differences);"CIDFontType2"!==c||this.cidEncoding.startsWith("Identity-")||this.toUnicode instanceof y.IdentityToUnicodeMap||this.toUnicode.forEach((function(t,r){M[+t]=r}));this.toFontChar=M}else{var D=(0,h.getGlyphsUnicode)(),j=[];this.toUnicode.forEach((function(t,o){if(!r.composite){var l=r.differences[t]||r.defaultEncoding[t],c=(0,g.getUnicodeForGlyph)(l,D);-1!==c&&(o=c)}j[+t]=o}));this.composite&&this.toUnicode instanceof y.IdentityToUnicodeMap&&/Verdana/i.test(o)&&applyStandardFontGlyphMap(j,(0,m.getGlyphMapForStandardFonts)());this.toFontChar=j}amendFallbackToUnicode(t);this.loadedName=S.split("-")[0];this.fontType=(0,u.getFontType)(c,v,t.isStandardFont)}},{key:"checkAndRepair",value:function checkAndRepair(t,r,o){var m=["OS/2","cmap","head","hhea","hmtx","maxp","name","post","loca","glyf","fpgm","prep","cvt ","CFF "];function readTables(t,r){var o=Object.create(null);o["OS/2"]=null;o.cmap=null;o.head=null;o.hhea=null;o.hmtx=null;o.maxp=null;o.name=null;o.post=null;for(var l=0;l<r;l++){var c=readTableEntry(t);m.includes(c.tag)&&(0!==c.length&&(o[c.tag]=c))}return o}function readTableEntry(t){var r=t.getString(4),o=t.getInt32()>>>0,l=t.getInt32()>>>0,c=t.getInt32()>>>0,u=t.pos;t.pos=t.start?t.start:0;t.skip(l);var h=t.getBytes(c);t.pos=u;if("head"===r){h[8]=h[9]=h[10]=h[11]=0;h[17]|=32}return{tag:r,checksum:o,length:c,offset:l,data:h}}function readOpenTypeHeader(t){return{version:t.getString(4),numTables:t.getUint16(),searchRange:t.getUint16(),entrySelector:t.getUint16(),rangeShift:t.getUint16()}}function sanitizeGlyph(t,r,o,l,c,u){var h={length:0,sizeOfInstructions:0};if(o-r<=12)return h;var d=t.subarray(r,o),m=signedInt16(d[0],d[1]);if(m<0){writeSignedInt16(d,0,m=-1);l.set(d,c);h.length=d.length;return h}var g,y=10,v=0;for(g=0;g<m;g++){v=(d[y]<<8|d[y+1])+1;y+=2}var S=y,_=d[y]<<8|d[y+1];h.sizeOfInstructions=_;var k=y+=2+_,C=0;for(g=0;g<v;g++){var w=d[y++];192&w&&(d[y-1]=63&w);var x=2;2&w?x=1:16&w&&(x=0);var O=2;4&w?O=1:32&w&&(O=0);var T=x+O;C+=T;if(8&w){var R=d[y++];g+=R;C+=R*T}}if(0===C)return h;var E=y+C;if(E>d.length)return h;if(!u&&_>0){l.set(d.subarray(0,S),c);l.set([0,0],c+S);l.set(d.subarray(k,E),c+S+2);E-=_;d.length-E>3&&(E=E+3&-4);h.length=E;return h}if(d.length-E>3){E=E+3&-4;l.set(d.subarray(0,E),c);h.length=E;return h}l.set(d,c);h.length=d.length;return h}function readNameTable(t){var o=(r.start?r.start:0)+t.offset;r.pos=o;var l=[[],[]],c=t.length,u=o+c;if(0!==r.getUint16()||c<6)return l;var h,d,m=r.getUint16(),g=r.getUint16(),y=[];for(h=0;h<m&&r.pos+12<=u;h++){var v={platform:r.getUint16(),encoding:r.getUint16(),language:r.getUint16(),name:r.getUint16(),length:r.getUint16(),offset:r.getUint16()};(1===v.platform&&0===v.encoding&&0===v.language||3===v.platform&&1===v.encoding&&1033===v.language)&&y.push(v)}for(h=0,d=y.length;h<d;h++){var S=y[h];if(!(S.length<=0)){var _=o+g+S.offset;if(!(_+S.length>u)){r.pos=_;var k=S.name;if(S.encoding){for(var C="",w=0,x=S.length;w<x;w+=2)C+=String.fromCharCode(r.getUint16());l[1][k]=C}else l[0][k]=r.getString(S.length)}}}return l}var g,S,w,O,T=[0,0,0,0,0,0,0,0,-2,-2,-2,-2,0,0,-2,-5,-1,-1,-1,-1,-1,-1,-1,-1,0,0,-1,0,-1,-1,-1,-1,1,-1,-999,0,1,0,-1,-2,0,-1,-2,-1,-1,0,-1,-1,0,0,-999,-999,-1,-1,-1,-1,-2,-999,-2,-2,-999,0,-2,-2,0,0,-2,0,-2,0,0,0,-2,-1,-1,1,1,0,0,-1,-1,-1,-1,-1,-1,-1,0,0,-1,0,-1,-1,0,-999,-1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,-2,-999,-999,-999,-999,-999,-1,-1,-2,-2,0,0,0,0,-1,-1,-999,-2,-2,0,0,-1,-2,-2,0,0,0,-1,-1,-1,-2];function sanitizeTTProgram(t,r){for(var o,c,u,h,d,m=t.data,g=0,y=0,v=0,S=[],_=[],k=[],C=r.tooComplexToFollowFunctions,w=!1,x=0,O=0,R=m.length;g<R;){var E=m[g++];if(64===E){c=m[g++];if(w||O)g+=c;else for(o=0;o<c;o++)S.push(m[g++])}else if(65===E){c=m[g++];if(w||O)g+=2*c;else for(o=0;o<c;o++){u=m[g++];S.push(u<<8|m[g++])}}else if(176==(248&E)){c=E-176+1;if(w||O)g+=c;else for(o=0;o<c;o++)S.push(m[g++])}else if(184==(248&E)){c=E-184+1;if(w||O)g+=2*c;else for(o=0;o<c;o++){u=m[g++];S.push(u<<8|m[g++])}}else if(43!==E||C)if(44!==E||C){if(45===E)if(w){w=!1;y=g}else{if(!(d=_.pop())){(0,l.warn)("TT: ENDF bad stack");r.hintsValid=!1;return}h=k.pop();m=d.data;g=d.i;r.functionsStackDeltas[h]=S.length-d.stackTop}else if(137===E){if(w||O){(0,l.warn)("TT: nested IDEFs not allowed");C=!0}w=!0;v=g}else if(88===E)++x;else if(27===E)O=x;else if(89===E){O===x&&(O=0);--x}else if(28===E&&!w&&!O){var M=S[S.length-1];M>0&&(g+=M-1)}}else{if(w||O){(0,l.warn)("TT: nested FDEFs not allowed");C=!0}w=!0;v=g;h=S.pop();r.functionsDefined[h]={data:m,i:g}}else if(!w&&!O){h=S[S.length-1];if(isNaN(h))(0,l.info)("TT: CALL empty stack (or invalid entry).");else{r.functionsUsed[h]=!0;if(h in r.functionsStackDeltas){var D=S.length+r.functionsStackDeltas[h];if(D<0){(0,l.warn)("TT: CALL invalid functions stack delta.");r.hintsValid=!1;return}S.length=D}else if(h in r.functionsDefined&&!k.includes(h)){_.push({data:m,i:g,stackTop:S.length-1});k.push(h);if(!(d=r.functionsDefined[h])){(0,l.warn)("TT: CALL non-existent function");r.hintsValid=!1;return}m=d.data;g=d.i}}}if(!w&&!O){var j=0;E<=142?j=T[E]:E>=192&&E<=223?j=-1:E>=224&&(j=-2);if(E>=113&&E<=117){c=S.pop();isNaN(c)||(j=2*-c)}for(;j<0&&S.length>0;){S.pop();j++}for(;j>0;){S.push(NaN);j--}}}r.tooComplexToFollowFunctions=C;var L=[m];g>m.length&&L.push(new Uint8Array(g-m.length));if(v>y){(0,l.warn)("TT: complementing a missing function tail");L.push(new Uint8Array([34,45]))}!function foldTTTable(t,r){if(r.length>1){var o,l,c=0;for(o=0,l=r.length;o<l;o++)c+=r[o].length;c=c+3&-4;var u=new Uint8Array(c),h=0;for(o=0,l=r.length;o<l;o++){u.set(r[o],h);h+=r[o].length}t.data=u;t.length=c}}(t,L)}if(isTrueTypeCollectionFile(r=new x.Stream(new Uint8Array(r.getBytes())))){var R=function readTrueTypeCollectionData(t,r){for(var o,c=function readTrueTypeCollectionHeader(t){var r=t.getString(4);(0,l.assert)("ttcf"===r,"Must be a TrueType Collection font.");for(var o=t.getUint16(),c=t.getUint16(),u=t.getInt32()>>>0,h=[],d=0;d<u;d++)h.push(t.getInt32()>>>0);var m={ttcTag:r,majorVersion:o,minorVersion:c,numFonts:u,offsetTable:h};switch(o){case 1:return m;case 2:m.dsigTag=t.getInt32()>>>0;m.dsigLength=t.getInt32()>>>0;m.dsigOffset=t.getInt32()>>>0;return m}throw new l.FormatError("Invalid TrueType Collection majorVersion: ".concat(o,"."))}(t),u=c.numFonts,h=c.offsetTable,d=r.split("+"),m=0;m<u;m++){t.pos=(t.start||0)+h[m];var g=readOpenTypeHeader(t),y=readTables(t,g.numTables);if(!y.name)throw new l.FormatError('TrueType Collection font must contain a "name" table.');for(var v=readNameTable(y.name),S=0,_=v.length;S<_;S++)for(var k=0,C=v[S].length;k<C;k++){var w=v[S][k]&&v[S][k].replace(/\s/g,"");if(w){if(w===r)return{header:g,tables:y};if(!(d.length<2)){var x,O=_createForOfIteratorHelper(d);try{for(O.s();!(x=O.n()).done;){var T=x.value;w===T&&(o={name:T,header:g,tables:y})}}catch(t){O.e(t)}finally{O.f()}}}}}if(o){(0,l.warn)('TrueType Collection does not contain "'.concat(r,'" font, ')+'falling back to "'.concat(o.name,'" font instead.'));return{header:o.header,tables:o.tables}}throw new l.FormatError('TrueType Collection does not contain "'.concat(r,'" font.'))}(r,this.name);g=R.header;S=R.tables}else{g=readOpenTypeHeader(r);S=readTables(r,g.numTables)}var E=!S["CFF "];if(E){if(!S.loca)throw new l.FormatError('Required "loca" table is not found');if(!S.glyf){(0,l.warn)('Required "glyf" table is not found -- trying to recover.');S.glyf={tag:"glyf",data:new Uint8Array(0)}}this.isOpenType=!1}else{var M=o.composite&&((o.cidToGidMap||[]).length>0||!(o.cMap instanceof k.IdentityCMap));if("OTTO"===g.version&&!M||!S.head||!S.hhea||!S.maxp||!S.post){O=new x.Stream(S["CFF "].data);w=new v.CFFFont(O,o);adjustWidths(o);return this.convert(t,w,o)}delete S.glyf;delete S.loca;delete S.fpgm;delete S.prep;delete S["cvt "];this.isOpenType=!0}if(!S.maxp)throw new l.FormatError('Required "maxp" table is not found');r.pos=(r.start||0)+S.maxp.offset;var D=r.getInt32(),j=r.getUint16();if(o.scaleFactors&&o.scaleFactors.length===j&&E){var L=o.scaleFactors,N=int16(S.head.data[50],S.head.data[51]),U=new _.GlyfTable({glyfTable:S.glyf.data,isGlyphLocationsLong:N,locaTable:S.loca.data,numGlyphs:j});U.scale(L);var H=U.write(),W=H.glyf,$=H.loca,q=H.isLocationLong;S.glyf.data=W;S.loca.data=$;if(q!==!!N){S.head.data[50]=0;S.head.data[51]=q?1:0}for(var X=S.hmtx.data,z=0;z<j;z++){var G=4*z,V=Math.round(L[z]*int16(X[G],X[G+1]));X[G]=V>>8&255;X[G+1]=255&V;writeSignedInt16(X,G+2,Math.round(L[z]*signedInt16(X[G+2],X[G+3])))}}var Y=j+1,K=!0;if(Y>65535){K=!1;Y=j;(0,l.warn)("Not enough space in glyfs to duplicate first glyph.")}var J=0,Q=0;if(D>=65536&&S.maxp.length>=22){r.pos+=8;if(r.getUint16()>2){S.maxp.data[14]=0;S.maxp.data[15]=2}r.pos+=4;J=r.getUint16();r.pos+=4;Q=r.getUint16()}S.maxp.data[4]=Y>>8;S.maxp.data[5]=255&Y;var Z=function sanitizeTTPrograms(t,r,o,c){var u={functionsDefined:[],functionsUsed:[],functionsStackDeltas:[],tooComplexToFollowFunctions:!1,hintsValid:!0};t&&sanitizeTTProgram(t,u);r&&sanitizeTTProgram(r,u);t&&function checkInvalidFunctions(t,r){if(!t.tooComplexToFollowFunctions)if(t.functionsDefined.length>r){(0,l.warn)("TT: more functions defined than expected");t.hintsValid=!1}else for(var o=0,c=t.functionsUsed.length;o<c;o++){if(o>r){(0,l.warn)("TT: invalid function id: "+o);t.hintsValid=!1;return}if(t.functionsUsed[o]&&!t.functionsDefined[o]){(0,l.warn)("TT: undefined function: "+o);t.hintsValid=!1;return}}}(u,c);if(o&&1&o.length){var h=new Uint8Array(o.length+1);h.set(o.data);o.data=h}return u.hintsValid}(S.fpgm,S.prep,S["cvt "],J);if(!Z){delete S.fpgm;delete S.prep;delete S["cvt "]}!function sanitizeMetrics(t,r,o,c,u,h){if(r){t.pos=(t.start?t.start:0)+r.offset;t.pos+=4;t.pos+=2;t.pos+=2;t.pos+=2;t.pos+=2;t.pos+=2;t.pos+=2;t.pos+=2;t.pos+=2;t.pos+=2;var d=t.getUint16();t.pos+=8;t.pos+=2;var m=t.getUint16();if(0!==d){if(!(2&int16(c.data[44],c.data[45]))){r.data[22]=0;r.data[23]=0}}if(m>u){(0,l.info)("The numOfMetrics (".concat(m,") should not be ")+"greater than the numGlyphs (".concat(u,")."));m=u;r.data[34]=(65280&m)>>8;r.data[35]=255&m}var g=u-m-(o.length-4*m>>1);if(g>0){var y=new Uint8Array(o.length+2*g);y.set(o.data);if(h){y[o.length]=o.data[2];y[o.length+1]=o.data[3]}o.data=y}}else o&&(o.data=null)}(r,S.hhea,S.hmtx,S.head,Y,K);if(!S.head)throw new l.FormatError('Required "head" table is not found');!function sanitizeHead(t,r,o){var c=t.data,u=function int32(t,r,o,l){return(t<<24)+(r<<16)+(o<<8)+l}(c[0],c[1],c[2],c[3]);if(u>>16!=1){(0,l.info)("Attempting to fix invalid version in head table: "+u);c[0]=0;c[1]=1;c[2]=0;c[3]=0}var h=int16(c[50],c[51]);if(h<0||h>1){(0,l.info)("Attempting to fix invalid indexToLocFormat in head table: "+h);var d=r+1;if(o===d<<1){c[50]=0;c[51]=0}else{if(o!==d<<2)throw new l.FormatError("Could not fix indexToLocFormat: "+h);c[50]=0;c[51]=1}}}(S.head,j,E?S.loca.length:0);var ee=Object.create(null);if(E){var te=int16(S.head.data[50],S.head.data[51]),re=function sanitizeGlyphLocations(t,r,o,l,c,u,h){var d,m,g;if(l){d=4;m=function fontItemDecodeLong(t,r){return t[r]<<24|t[r+1]<<16|t[r+2]<<8|t[r+3]};g=function fontItemEncodeLong(t,r,o){t[r]=o>>>24&255;t[r+1]=o>>16&255;t[r+2]=o>>8&255;t[r+3]=255&o}}else{d=2;m=function fontItemDecode(t,r){return t[r]<<9|t[r+1]<<1};g=function fontItemEncode(t,r,o){t[r]=o>>9&255;t[r+1]=o>>1&255}}var y=u?o+1:o,v=d*(1+y),S=new Uint8Array(v);S.set(t.data.subarray(0,v));t.data=S;var _,k,C=r.data,w=C.length,x=new Uint8Array(w),O=[];for(_=0,k=0;_<o+1;_++,k+=d){var T=m(S,k);T>w&&(T=w);O.push({index:_,offset:T,endOffset:0})}O.sort((function(t,r){return t.offset-r.offset}));for(_=0;_<o;_++)O[_].endOffset=O[_+1].offset;O.sort((function(t,r){return t.index-r.index}));var R=Object.create(null),E=0;g(S,0,E);for(_=0,k=d;_<o;_++,k+=d){var M=sanitizeGlyph(C,O[_].offset,O[_].endOffset,x,E,c),D=M.length;0===D&&(R[_]=!0);M.sizeOfInstructions>h&&(h=M.sizeOfInstructions);g(S,k,E+=D)}if(0===E){var j=new Uint8Array([0,1,0,0,0,0,0,0,0,0,0,0,0,0,49,0]);for(_=0,k=d;_<y;_++,k+=d)g(S,k,j.length);r.data=j}else if(u){var L=m(S,d);if(x.length>L+E)r.data=x.subarray(0,L+E);else{r.data=new Uint8Array(L+E);r.data.set(x.subarray(0,E))}r.data.set(x.subarray(0,L),E);g(t.data,S.length-d,E+L)}else r.data=x.subarray(0,E);return{missingGlyphs:R,maxSizeOfInstructions:h}}(S.loca,S.glyf,j,te,Z,K,Q);ee=re.missingGlyphs;if(D>=65536&&S.maxp.length>=22){S.maxp.data[26]=re.maxSizeOfInstructions>>8;S.maxp.data[27]=255&re.maxSizeOfInstructions}}if(!S.hhea)throw new l.FormatError('Required "hhea" table is not found');if(0===S.hhea.data[10]&&0===S.hhea.data[11]){S.hhea.data[10]=255;S.hhea.data[11]=255}var ae={unitsPerEm:int16(S.head.data[18],S.head.data[19]),yMax:int16(S.head.data[42],S.head.data[43]),yMin:signedInt16(S.head.data[38],S.head.data[39]),ascent:signedInt16(S.hhea.data[4],S.hhea.data[5]),descent:signedInt16(S.hhea.data[6],S.hhea.data[7]),lineGap:signedInt16(S.hhea.data[8],S.hhea.data[9])};this.ascent=ae.ascent/ae.unitsPerEm;this.descent=ae.descent/ae.unitsPerEm;this.lineGap=ae.lineGap/ae.unitsPerEm;if(this.cssFontInfo&&this.cssFontInfo.lineHeight){this.lineHeight=this.cssFontInfo.metrics.lineHeight;this.lineGap=this.cssFontInfo.metrics.lineGap}else this.lineHeight=this.ascent-this.descent+this.lineGap;S.post&&function readPostScriptTable(t,o,c){var h=(r.start?r.start:0)+t.offset;r.pos=h;var d,m=h+t.length,g=r.getInt32();r.skip(28);var y,v=!0;switch(g){case 65536:d=u.MacStandardGlyphOrdering;break;case 131072:var S=r.getUint16();if(S!==c){v=!1;break}var _=[];for(y=0;y<S;++y){var k=r.getUint16();if(k>=32768){v=!1;break}_.push(k)}if(!v)break;for(var C=[],w=[];r.pos<m;){var x=r.getByte();w.length=x;for(y=0;y<x;++y)w[y]=String.fromCharCode(r.getByte());C.push(w.join(""))}d=[];for(y=0;y<S;++y){var O=_[y];O<258?d.push(u.MacStandardGlyphOrdering[O]):d.push(C[O-258])}break;case 196608:break;default:(0,l.warn)("Unknown/unsupported post table version "+g);v=!1;o.defaultEncoding&&(d=o.defaultEncoding)}o.glyphNames=d;return v}(S.post,o,j);S.post={tag:"post",data:createPostTable(o)};var ne=[];function hasGlyph(t){return!ee[t]}if(o.composite){var ie=o.cidToGidMap||[],oe=0===ie.length;o.cMap.forEach((function(t,r){"string"==typeof r&&(r=convertCidString(t,r,!0));if(r>65535)throw new l.FormatError("Max size of CID is 65,535");var o=-1;oe?o=r:void 0!==ie[r]&&(o=ie[r]);o>=0&&o<j&&hasGlyph(o)&&(ne[t]=o)}))}else{var se=function readCmapTable(t,r,o,c){if(!t){(0,l.warn)("No cmap table available.");return{platformId:-1,encodingId:-1,mappings:[],hasShortCmap:!1}}var u,h=(r.start?r.start:0)+t.offset;r.pos=h;r.skip(2);for(var d,m=r.getUint16(),g=!1,y=0;y<m;y++){var v=r.getUint16(),S=r.getUint16(),_=r.getInt32()>>>0,k=!1;if(!d||d.platformId!==v||d.encodingId!==S){if(0!==v||0!==S&&1!==S&&3!==S)if(1===v&&0===S)k=!0;else if(3!==v||1!==S||!c&&d){if(o&&3===v&&0===S){k=!0;var C=!0;if(y<m-1){var w=r.peekBytes(2);int16(w[0],w[1])<v&&(C=!1)}C&&(g=!0)}}else{k=!0;o||(g=!0)}else k=!0;k&&(d={platformId:v,encodingId:S,offset:_});if(g)break}}d&&(r.pos=h+d.offset);if(!d||-1===r.peekByte()){(0,l.warn)("Could not find a preferred cmap table.");return{platformId:-1,encodingId:-1,mappings:[],hasShortCmap:!1}}var x=r.getUint16();r.skip(4);var O,T,R=!1,E=[];if(0===x){for(O=0;O<256;O++){var M=r.getByte();M&&E.push({charCode:O,glyphId:M})}R=!0}else if(4===x){var D=r.getUint16()>>1;r.skip(6);var j,L=[];for(j=0;j<D;j++)L.push({end:r.getUint16()});r.skip(2);for(j=0;j<D;j++)L[j].start=r.getUint16();for(j=0;j<D;j++)L[j].delta=r.getUint16();var N,U=0;for(j=0;j<D;j++){u=L[j];var H=r.getUint16();if(H){N=(H>>1)-(D-j);u.offsetIndex=N;U=Math.max(U,N+u.end-u.start+1)}else u.offsetIndex=-1}var W=[];for(O=0;O<U;O++)W.push(r.getUint16());for(j=0;j<D;j++){h=(u=L[j]).start;var $=u.end,q=u.delta;N=u.offsetIndex;for(O=h;O<=$;O++)if(65535!==O){T=(T=N<0?O:W[N+O-h])+q&65535;E.push({charCode:O,glyphId:T})}}}else{if(6!==x){(0,l.warn)("cmap table has unsupported format: "+x);return{platformId:-1,encodingId:-1,mappings:[],hasShortCmap:!1}}var X=r.getUint16(),z=r.getUint16();for(O=0;O<z;O++){T=r.getUint16();var G=X+O;E.push({charCode:G,glyphId:T})}}E.sort((function(t,r){return t.charCode-r.charCode}));for(var V=1;V<E.length;V++)if(E[V-1].charCode===E[V].charCode){E.splice(V,1);V--}return{platformId:d.platformId,encodingId:d.encodingId,mappings:E,hasShortCmap:R}}(S.cmap,r,this.isSymbolicFont,o.hasEncoding),le=se.platformId,ce=se.encodingId,ue=se.mappings,fe=ue.length,he=[],de=!1;!o.hasEncoding||"MacRomanEncoding"!==o.baseEncodingName&&"WinAnsiEncoding"!==o.baseEncodingName||(he=(0,d.getEncoding)(o.baseEncodingName));if(o.hasEncoding&&!this.isSymbolicFont&&(3===le&&1===ce||1===le&&0===ce))for(var pe=(0,h.getGlyphsUnicode)(),me=0;me<256;me++){var ge=void 0;if(ge=void 0!==this.differences[me]?this.differences[me]:he.length&&""!==he[me]?he[me]:d.StandardEncoding[me]){var ye=(0,u.recoverGlyphName)(ge,pe),ve=void 0;3===le&&1===ce?ve=pe[ye]:1===le&&0===ce&&(ve=d.MacRomanEncoding.indexOf(ye));if(void 0===ve){if(!o.glyphNames&&o.hasIncludedToUnicodeMap&&!(this.toUnicode instanceof y.IdentityToUnicodeMap)){var be=this.toUnicode.get(me);be&&(ve=be.codePointAt(0))}if(void 0===ve)continue}for(var Se=0;Se<fe;++Se)if(ue[Se].charCode===ve){ne[me]=ue[Se].glyphId;break}}}else if(0===le){for(var _e=0;_e<fe;++_e)ne[ue[_e].charCode]=ue[_e].glyphId;de=!0}else for(var ke=0;ke<fe;++ke){var Ce=ue[ke].charCode;3===le&&Ce>=61440&&Ce<=61695&&(Ce&=255);ne[Ce]=ue[ke].glyphId}if(o.glyphNames&&(he.length||this.differences.length))for(var we=0;we<256;++we)if(de||void 0===ne[we]){var Ae=this.differences[we]||he[we];if(Ae){var xe=o.glyphNames.indexOf(Ae);xe>0&&hasGlyph(xe)&&(ne[we]=xe)}}}0===ne.length&&(ne[0]=0);var Oe=Y-1;K||(Oe=0);if(!o.cssFontInfo){var Pe=adjustMapping(ne,hasGlyph,Oe);this.toFontChar=Pe.toFontChar;S.cmap={tag:"cmap",data:createCmapTable(Pe.charCodeToGlyphId,Y)};S["OS/2"]&&function validateOS2Table(t,r){r.pos=(r.start||0)+t.offset;var o=r.getUint16();r.skip(60);var l=r.getUint16();if(o<4&&768&l)return!1;if(r.getUint16()>r.getUint16())return!1;r.skip(6);if(0===r.getUint16())return!1;t.data[8]=t.data[9]=0;return!0}(S["OS/2"],r)||(S["OS/2"]={tag:"OS/2",data:createOS2Table(o,Pe.charCodeToGlyphId,ae)})}if(!E)try{O=new x.Stream(S["CFF "].data);(w=new c.CFFParser(O,o,u.SEAC_ANALYSIS_ENABLED).parse()).duplicateFirstGlyph();var Te=new c.CFFCompiler(w);S["CFF "].data=Te.compile()}catch(t){(0,l.warn)("Failed to compile font "+o.loadedName)}if(S.name){var Ie=readNameTable(S.name);S.name.data=createNameTable(t,Ie);this.psName=Ie[0][6]||null}else S.name={tag:"name",data:createNameTable(this.name)};var Fe=new C.OpenTypeFileBuilder(g.version);for(var Re in S)Fe.addTable(Re,S[Re].data);return Fe.toArray()}},{key:"convert",value:function convert(t,r,o){o.fixedPitch=!1;o.builtInEncoding&&function adjustToUnicode(t,r){if(!(t.isInternalFont||r===t.defaultEncoding||t.toUnicode instanceof y.IdentityToUnicodeMap)){var o=[],l=(0,h.getGlyphsUnicode)();for(var c in r){if(t.hasIncludedToUnicodeMap){if(t.toUnicode.has(c))continue}else if(t.hasEncoding&&(0===t.differences.length||void 0!==t.differences[c]))continue;var u=r[c],d=(0,g.getUnicodeForGlyph)(u,l);-1!==d&&(o[c]=String.fromCharCode(d))}o.length>0&&t.toUnicode.amend(o)}}(o,o.builtInEncoding);var c=1;r instanceof v.CFFFont&&(c=r.numGlyphs-1);var m=r.getGlyphMapping(o),S=null,_=m;if(!o.cssFontInfo){S=adjustMapping(m,r.hasGlyphId.bind(r),c);this.toFontChar=S.toFontChar;_=S.charCodeToGlyphId}var k=r.numGlyphs;function getCharCodes(t,r){var o=null;for(var l in t)if(r===t[l]){o||(o=[]);o.push(0|l)}return o}function createCharCode(t,r){for(var o in t)if(r===t[o])return 0|o;S.charCodeToGlyphId[S.nextAvailableFontCharCode]=r;return S.nextAvailableFontCharCode++}var w=r.seacs;if(S&&u.SEAC_ANALYSIS_ENABLED&&w&&w.length){var x=o.fontMatrix||l.FONT_IDENTITY_MATRIX,O=r.getCharset(),T=Object.create(null);for(var R in w){var E=w[R|=0],M=d.StandardEncoding[E[2]],D=d.StandardEncoding[E[3]],j=O.indexOf(M),L=O.indexOf(D);if(!(j<0||L<0)){var N={x:E[0]*x[0]+E[1]*x[2]+x[4],y:E[0]*x[1]+E[1]*x[3]+x[5]},U=getCharCodes(m,R);if(U)for(var H=0,W=U.length;H<W;H++){var $=U[H],q=S.charCodeToGlyphId,X=createCharCode(q,j),z=createCharCode(q,L);T[$]={baseFontCharCode:X,accentFontCharCode:z,accentOffset:N}}}}o.seacMap=T}var G=1/(o.fontMatrix||l.FONT_IDENTITY_MATRIX)[0],V=new C.OpenTypeFileBuilder("OTTO");V.addTable("CFF ",r.data);V.addTable("OS/2",createOS2Table(o,_));V.addTable("cmap",createCmapTable(_,k));V.addTable("head","\0\0\0\0\0\0\0\0\0\0_<õ\0\0"+safeString16(G)+"\0\0\0\0ž\v~'\0\0\0\0ž\v~'\0\0"+safeString16(o.descent)+"ÿ"+safeString16(o.ascent)+string16(o.italicAngle?2:0)+"\0\0\0\0\0\0\0");V.addTable("hhea","\0\0\0"+safeString16(o.ascent)+safeString16(o.descent)+"\0\0ÿÿ\0\0\0\0\0\0"+safeString16(o.capHeight)+safeString16(Math.tan(o.italicAngle)*o.xHeight)+"\0\0\0\0\0\0\0\0\0\0\0\0"+string16(k));V.addTable("hmtx",function fontFieldsHmtx(){for(var t=r.charstrings,o=r.cff?r.cff.widths:null,l="\0\0\0\0",c=1,u=k;c<u;c++){var h=0;if(t){var d=t[c-1];h="width"in d?d.width:0}else o&&(h=Math.ceil(o[c]||0));l+=string16(h)+string16(0)}return l}());V.addTable("maxp","\0\0P\0"+string16(k));V.addTable("name",createNameTable(t));V.addTable("post",createPostTable(o));return V.toArray()}},{key:"spaceWidth",get:function get(){for(var t,r=["space","minus","one","i","I"],o=0,c=r.length;o<c;o++){var u=r[o];if(u in this.widths){t=this.widths[u];break}var d=(0,h.getGlyphsUnicode)()[u],m=0;this.composite&&this.cMap.contains(d)&&"string"==typeof(m=this.cMap.lookup(d))&&(m=convertCidString(d,m));!m&&this.toUnicode&&(m=this.toUnicode.charCodeOf(d));m<=0&&(m=d);if(t=this.widths[m])break}t=t||this.defaultWidth;return(0,l.shadow)(this,"spaceWidth",t)}},{key:"_charToGlyph",value:function _charToGlyph(t){var r,o,c,u=arguments.length>1&&void 0!==arguments[1]&&arguments[1],h=t;this.cMap&&this.cMap.contains(t)&&"string"==typeof(h=this.cMap.lookup(t))&&(h=convertCidString(t,h));o=this.widths[h];o=(0,l.isNum)(o)?o:this.defaultWidth;var d=this.vmetrics&&this.vmetrics[h],m=this.toUnicode.get(t)||t;"number"==typeof m&&(m=String.fromCharCode(m));var y=void 0!==this.toFontChar[t];r=this.toFontChar[t]||t;if(this.missingFile){var v=this.differences[t]||this.defaultEncoding[t];".notdef"!==v&&""!==v||"Type1"!==this.type||(r=32);r=(0,g.mapSpecialUnicodeValues)(r)}this.isType3Font&&(c=r);var S=null;if(this.seacMap&&this.seacMap[t]){y=!0;var _=this.seacMap[t];r=_.baseFontCharCode;S={fontChar:String.fromCodePoint(_.accentFontCharCode),offset:_.accentOffset}}var k="";"number"==typeof r&&(r<=1114111?k=String.fromCodePoint(r):(0,l.warn)("charToGlyph - invalid fontCharCode: ".concat(r)));var C=this._glyphCache[t];if(!C||!C.matchesForCache(t,k,m,S,o,d,c,u,y)){C=new D(t,k,m,S,o,d,c,u,y);this._glyphCache[t]=C}return C}},{key:"charsToGlyphs",value:function charsToGlyphs(t){var r=this._charsCache[t];if(r)return r;r=[];if(this.cMap)for(var o=Object.create(null),l=t.length,c=0;c<l;){this.cMap.readCharCode(t,c,o);var u=o.charcode,h=o.length;c+=h;var d=this._charToGlyph(u,1===h&&32===t.charCodeAt(c-1));r.push(d)}else for(var m=0,g=t.length;m<g;++m){var y=t.charCodeAt(m),v=this._charToGlyph(y,32===y);r.push(v)}return this._charsCache[t]=r}},{key:"getCharPositions",value:function getCharPositions(t){var r=[];if(this.cMap)for(var o=Object.create(null),l=0;l<t.length;){this.cMap.readCharCode(t,l,o);var c=o.length;r.push([l,l+c]);l+=c}else for(var u=0,h=t.length;u<h;++u)r.push([u,u+1]);return r}},{key:"glyphCacheValues",get:function get(){return Object.values(this._glyphCache)}},{key:"encodeString",value:function encodeString(t){for(var r=this,o=[],l=[],c=function hasCurrentBufErrors(){return o.length%2==1},u=this.toUnicode instanceof y.IdentityToUnicodeMap?function(t){return r.toUnicode.charCodeOf(t)}:function(t){return r.toUnicode.charCodeOf(String.fromCodePoint(t))},h=0,d=t.length;h<d;h++){var m=t.codePointAt(h);m>55295&&(m<57344||m>65533)&&h++;if(this.toUnicode){var g=u(m);if(-1!==g){if(c()){o.push(l.join(""));l.length=0}for(var v=(this.cMap?this.cMap.getCharCodeLength(g):1)-1;v>=0;v--)l.push(String.fromCharCode(g>>8*v&255));continue}}if(!c()){o.push(l.join(""));l.length=0}l.push(String.fromCodePoint(m))}o.push(l.join(""));return o}}]);return Font}();r.Font=j;var L=function(){function ErrorFont(t){_classCallCheck(this,ErrorFont);this.error=t;this.loadedName="g_font_error";this.missingFile=!0}_createClass(ErrorFont,[{key:"charsToGlyphs",value:function charsToGlyphs(){return[]}},{key:"encodeString",value:function encodeString(t){return[t]}},{key:"exportData",value:function exportData(){return{error:this.error}}}]);return ErrorFont}();r.ErrorFont=L},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.CFFTopDict=r.CFFStrings=r.CFFStandardStrings=r.CFFPrivateDict=r.CFFParser=r.CFFIndex=r.CFFHeader=r.CFFFDSelect=r.CFFCompiler=r.CFFCharset=r.CFF=void 0;var l=o(4),c=o(159),u=o(132);function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var h=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall","001.000","001.001","001.002","001.003","Black","Bold","Book","Light","Medium","Regular","Roman","Semibold"];r.CFFStandardStrings=h;var d=391,m=function CFFParserClosure(){var t=[null,{id:"hstem",min:2,stackClearing:!0,stem:!0},null,{id:"vstem",min:2,stackClearing:!0,stem:!0},{id:"vmoveto",min:1,stackClearing:!0},{id:"rlineto",min:2,resetStack:!0},{id:"hlineto",min:1,resetStack:!0},{id:"vlineto",min:1,resetStack:!0},{id:"rrcurveto",min:6,resetStack:!0},null,{id:"callsubr",min:1,undefStack:!0},{id:"return",min:0,undefStack:!0},null,null,{id:"endchar",min:0,stackClearing:!0},null,null,null,{id:"hstemhm",min:2,stackClearing:!0,stem:!0},{id:"hintmask",min:0,stackClearing:!0},{id:"cntrmask",min:0,stackClearing:!0},{id:"rmoveto",min:2,stackClearing:!0},{id:"hmoveto",min:1,stackClearing:!0},{id:"vstemhm",min:2,stackClearing:!0,stem:!0},{id:"rcurveline",min:8,resetStack:!0},{id:"rlinecurve",min:8,resetStack:!0},{id:"vvcurveto",min:4,resetStack:!0},{id:"hhcurveto",min:4,resetStack:!0},null,{id:"callgsubr",min:1,undefStack:!0},{id:"vhcurveto",min:4,resetStack:!0},{id:"hvcurveto",min:4,resetStack:!0}],r=[null,null,null,{id:"and",min:2,stackDelta:-1},{id:"or",min:2,stackDelta:-1},{id:"not",min:1,stackDelta:0},null,null,null,{id:"abs",min:1,stackDelta:0},{id:"add",min:2,stackDelta:-1,stackFn:function stack_div(t,r){t[r-2]=t[r-2]+t[r-1]}},{id:"sub",min:2,stackDelta:-1,stackFn:function stack_div(t,r){t[r-2]=t[r-2]-t[r-1]}},{id:"div",min:2,stackDelta:-1,stackFn:function stack_div(t,r){t[r-2]=t[r-2]/t[r-1]}},null,{id:"neg",min:1,stackDelta:0,stackFn:function stack_div(t,r){t[r-1]=-t[r-1]}},{id:"eq",min:2,stackDelta:-1},null,null,{id:"drop",min:1,stackDelta:-1},null,{id:"put",min:2,stackDelta:-2},{id:"get",min:1,stackDelta:0},{id:"ifelse",min:4,stackDelta:-3},{id:"random",min:0,stackDelta:1},{id:"mul",min:2,stackDelta:-1,stackFn:function stack_div(t,r){t[r-2]=t[r-2]*t[r-1]}},null,{id:"sqrt",min:1,stackDelta:0},{id:"dup",min:1,stackDelta:1},{id:"exch",min:2,stackDelta:0},{id:"index",min:2,stackDelta:0},{id:"roll",min:3,stackDelta:-2},null,null,null,{id:"hflex",min:7,resetStack:!0},{id:"flex",min:13,resetStack:!0},{id:"hflex1",min:9,resetStack:!0},{id:"flex1",min:11,resetStack:!0}];return function(){function CFFParser(t,r,o){_classCallCheck(this,CFFParser);this.bytes=t.getBytes();this.properties=r;this.seacAnalysisEnabled=!!o}_createClass(CFFParser,[{key:"parse",value:function parse(){var t=this.properties,r=new g;this.cff=r;var o=this.parseHeader(),l=this.parseIndex(o.endPos),c=this.parseIndex(l.endPos),u=this.parseIndex(c.endPos),h=this.parseIndex(u.endPos),d=this.parseDict(c.obj.get(0)),m=this.createDict(k,d,r.strings);r.header=o.obj;r.names=this.parseNameIndex(l.obj);r.strings=this.parseStringIndex(u.obj);r.topDict=m;r.globalSubrIndex=h.obj;this.parsePrivateDict(r.topDict);r.isCIDFont=m.hasName("ROS");var y=m.getByName("CharStrings"),v=this.parseIndex(y).obj,S=m.getByName("FontMatrix");S&&(t.fontMatrix=S);var _,C,w=m.getByName("FontBBox");if(w){t.ascent=Math.max(w[3],w[1]);t.descent=Math.min(w[1],w[3]);t.ascentScaled=!0}if(r.isCIDFont){for(var x=this.parseIndex(m.getByName("FDArray")).obj,O=0,T=x.count;O<T;++O){var R=x.get(O),E=this.createDict(k,this.parseDict(R),r.strings);this.parsePrivateDict(E);r.fdArray.push(E)}C=null;_=this.parseCharsets(m.getByName("charset"),v.count,r.strings,!0);r.fdSelect=this.parseFDSelect(m.getByName("FDSelect"),v.count)}else{_=this.parseCharsets(m.getByName("charset"),v.count,r.strings,!1);C=this.parseEncoding(m.getByName("Encoding"),t,r.strings,_.charset)}r.charset=_;r.encoding=C;var M=this.parseCharStrings({charStrings:v,localSubrIndex:m.privateDict.subrsIndex,globalSubrIndex:h.obj,fdSelect:r.fdSelect,fdArray:r.fdArray,privateDict:m.privateDict});r.charStrings=M.charStrings;r.seacs=M.seacs;r.widths=M.widths;return r}},{key:"parseHeader",value:function parseHeader(){for(var t=this.bytes,r=t.length,o=0;o<r&&1!==t[o];)++o;if(o>=r)throw new l.FormatError("Invalid CFF header");if(0!==o){(0,l.info)("cff data is shifted");t=t.subarray(o);this.bytes=t}var c=t[0],u=t[1],h=t[2],d=t[3];return{obj:new y(c,u,h,d),endPos:h}}},{key:"parseDict",value:function parseDict(t){var r=0;function parseOperand(){var o=t[r++];if(30===o)return function parseFloatOperand(){var o="",l=15,c=["0","1","2","3","4","5","6","7","8","9",".","E","E-",null,"-"],u=t.length;for(;r<u;){var h=t[r++],d=h>>4,m=15&h;if(d===l)break;o+=c[d];if(m===l)break;o+=c[m]}return parseFloat(o)}();if(28===o)return o=((o=t[r++])<<24|t[r++]<<16)>>16;if(29===o)return o=(o=(o=(o=t[r++])<<8|t[r++])<<8|t[r++])<<8|t[r++];if(o>=32&&o<=246)return o-139;if(o>=247&&o<=250)return 256*(o-247)+t[r++]+108;if(o>=251&&o<=254)return-256*(o-251)-t[r++]-108;(0,l.warn)('CFFParser_parseDict: "'+o+'" is a reserved command.');return NaN}var o=[],c=[];r=0;for(var u=t.length;r<u;){var h=t[r];if(h<=21){12===h&&(h=h<<8|t[++r]);c.push([h,o]);o=[];++r}else o.push(parseOperand())}return c}},{key:"parseIndex",value:function parseIndex(t){var r,o,l=new S,c=this.bytes,u=c[t++]<<8|c[t++],h=[],d=t;if(0!==u){var m=c[t++],g=t+(u+1)*m-1;for(r=0,o=u+1;r<o;++r){for(var y=0,v=0;v<m;++v){y<<=8;y+=c[t++]}h.push(g+y)}d=h[u]}for(r=0,o=h.length-1;r<o;++r){var _=h[r],k=h[r+1];l.add(c.subarray(_,k))}return{obj:l,endPos:d}}},{key:"parseNameIndex",value:function parseNameIndex(t){for(var r=[],o=0,c=t.count;o<c;++o){var u=t.get(o);r.push((0,l.bytesToString)(u))}return r}},{key:"parseStringIndex",value:function parseStringIndex(t){for(var r=new v,o=0,c=t.count;o<c;++o){var u=t.get(o);r.add((0,l.bytesToString)(u))}return r}},{key:"createDict",value:function createDict(t,r,o){for(var l=new t(o),c=0,u=r.length;c<u;++c){var h=r[c],d=h[0],m=h[1];l.setByKey(d,m)}return l}},{key:"parseCharString",value:function parseCharString(o,c,u,h){if(!c||o.callDepth>10)return!1;for(var d=o.stackSize,m=o.stack,g=c.length,y=0;y<g;){var v=c[y++],S=null;if(12===v){var _=c[y++];if(0===_){c[y-2]=139;c[y-1]=22;d=0}else S=r[_]}else if(28===v){m[d]=(c[y]<<24|c[y+1]<<16)>>16;y+=2;d++}else if(14===v){if(d>=4){d-=4;if(this.seacAnalysisEnabled){o.seac=m.slice(d,d+4);return!1}}S=t[v]}else if(v>=32&&v<=246){m[d]=v-139;d++}else if(v>=247&&v<=254){m[d]=v<251?(v-247<<8)+c[y]+108:-(v-251<<8)-c[y]-108;y++;d++}else if(255===v){m[d]=(c[y]<<24|c[y+1]<<16|c[y+2]<<8|c[y+3])/65536;y+=4;d++}else if(19===v||20===v){o.hints+=d>>1;y+=o.hints+7>>3;d%=2;S=t[v]}else{if(10===v||29===v){var k=void 0;if(!(k=10===v?u:h)){S=t[v];(0,l.warn)("Missing subrsIndex for "+S.id);return!1}var C=32768;k.count<1240?C=107:k.count<33900&&(C=1131);var w=m[--d]+C;if(w<0||w>=k.count||isNaN(w)){S=t[v];(0,l.warn)("Out of bounds subrIndex for "+S.id);return!1}o.stackSize=d;o.callDepth++;if(!this.parseCharString(o,k.get(w),u,h))return!1;o.callDepth--;d=o.stackSize;continue}if(11===v){o.stackSize=d;return!0}if(0===v&&y===c.length){c[y-1]=14;S=t[14]}else S=t[v]}if(S){if(S.stem){o.hints+=d>>1;if(3===v||23===v)o.hasVStems=!0;else if(o.hasVStems&&(1===v||18===v)){(0,l.warn)("CFF stem hints are in wrong order");c[y-1]=1===v?3:23}}if("min"in S&&!o.undefStack&&d<S.min){(0,l.warn)("Not enough parameters for "+S.id+"; actual: "+d+", expected: "+S.min);if(0===d){c[y-1]=14;return!0}return!1}if(o.firstStackClearing&&S.stackClearing){o.firstStackClearing=!1;(d-=S.min)>=2&&S.stem?d%=2:d>1&&(0,l.warn)("Found too many parameters for stack-clearing command");d>0&&(o.width=m[d-1])}if("stackDelta"in S){"stackFn"in S&&S.stackFn(m,d);d+=S.stackDelta}else if(S.stackClearing)d=0;else if(S.resetStack){d=0;o.undefStack=!1}else if(S.undefStack){d=0;o.undefStack=!0;o.firstStackClearing=!1}}}o.stackSize=d;return!0}},{key:"parseCharStrings",value:function parseCharStrings(t){for(var r=t.charStrings,o=t.localSubrIndex,c=t.globalSubrIndex,u=t.fdSelect,h=t.fdArray,d=t.privateDict,m=[],g=[],y=r.count,v=0;v<y;v++){var S=r.get(v),_={callDepth:0,stackSize:0,stack:[],undefStack:!0,hints:0,firstStackClearing:!0,seac:null,width:null,hasVStems:!1},k=!0,C=null,w=d;if(u&&h.length){var x=u.getFDIndex(v);if(-1===x){(0,l.warn)("Glyph index is not in fd select.");k=!1}if(x>=h.length){(0,l.warn)("Invalid fd index for glyph index.");k=!1}k&&(C=(w=h[x].privateDict).subrsIndex)}else o&&(C=o);k&&(k=this.parseCharString(_,S,C,c));if(null!==_.width){var O=w.getByName("nominalWidthX");g[v]=O+_.width}else{var T=w.getByName("defaultWidthX");g[v]=T}null!==_.seac&&(m[v]=_.seac);k||r.set(v,new Uint8Array([14]))}return{charStrings:r,seacs:m,widths:g}}},{key:"emptyPrivateDictionary",value:function emptyPrivateDictionary(t){var r=this.createDict(C,[],t.strings);t.setByKey(18,[0,0]);t.privateDict=r}},{key:"parsePrivateDict",value:function parsePrivateDict(t){if(t.hasName("Private")){var r=t.getByName("Private");if(Array.isArray(r)&&2===r.length){var o=r[0],l=r[1];if(0===o||l>=this.bytes.length)this.emptyPrivateDictionary(t);else{var c=l+o,u=this.bytes.subarray(l,c),h=this.parseDict(u),d=this.createDict(C,h,t.strings);t.privateDict=d;if(d.getByName("Subrs")){var m=d.getByName("Subrs"),g=l+m;if(0===m||g>=this.bytes.length)this.emptyPrivateDictionary(t);else{var y=this.parseIndex(g);d.subrsIndex=y.obj}}}}else t.removeByName("Private")}else this.emptyPrivateDictionary(t)}},{key:"parseCharsets",value:function parseCharsets(t,r,o,u){if(0===t)return new x(!0,w.ISO_ADOBE,c.ISOAdobeCharset);if(1===t)return new x(!0,w.EXPERT,c.ExpertCharset);if(2===t)return new x(!0,w.EXPERT_SUBSET,c.ExpertSubsetCharset);var h,d,m,g=this.bytes,y=t,v=g[t++],S=[u?0:".notdef"];r-=1;switch(v){case 0:for(m=0;m<r;m++){h=g[t++]<<8|g[t++];S.push(u?h:o.get(h))}break;case 1:for(;S.length<=r;){h=g[t++]<<8|g[t++];d=g[t++];for(m=0;m<=d;m++)S.push(u?h++:o.get(h++))}break;case 2:for(;S.length<=r;){h=g[t++]<<8|g[t++];d=g[t++]<<8|g[t++];for(m=0;m<=d;m++)S.push(u?h++:o.get(h++))}break;default:throw new l.FormatError("Unknown charset format")}var _=t,k=g.subarray(y,_);return new x(!1,v,S,k)}},{key:"parseEncoding",value:function parseEncoding(t,r,o,c){var h,d,m,g=Object.create(null),y=this.bytes,v=!1,S=null;if(0===t||1===t){v=!0;h=t;var _=t?u.ExpertEncoding:u.StandardEncoding;for(d=0,m=c.length;d<m;d++){var k=_.indexOf(c[d]);-1!==k&&(g[k]=d)}}else{var C=t;switch(127&(h=y[t++])){case 0:var w=y[t++];for(d=1;d<=w;d++)g[y[t++]]=d;break;case 1:var x=y[t++],T=1;for(d=0;d<x;d++)for(var R=y[t++],E=y[t++],M=R;M<=R+E;M++)g[M]=T++;break;default:throw new l.FormatError("Unknown encoding format: ".concat(h," in CFF"))}var D=t;if(128&h){y[C]&=127;!function readSupplement(){var r=y[t++];for(d=0;d<r;d++){var l=y[t++],u=(y[t++]<<8)+(255&y[t++]);g[l]=c.indexOf(o.get(u))}}()}S=y.subarray(C,D)}return new O(v,h&=127,g,S)}},{key:"parseFDSelect",value:function parseFDSelect(t,r){var o,c=this.bytes,u=c[t++],h=[];switch(u){case 0:for(o=0;o<r;++o){var d=c[t++];h.push(d)}break;case 3:var m=c[t++]<<8|c[t++];for(o=0;o<m;++o){var g=c[t++]<<8|c[t++];if(0===o&&0!==g){(0,l.warn)("parseFDSelect: The first range must have a first GID of 0 -- trying to recover.");g=0}for(var y=c[t++],v=c[t]<<8|c[t+1],S=g;S<v;++S)h.push(y)}t+=2;break;default:throw new l.FormatError('parseFDSelect: Unknown format "'.concat(u,'".'))}if(h.length!==r)throw new l.FormatError("parseFDSelect: Invalid font data.");return new T(u,h)}}]);return CFFParser}()}();r.CFFParser=m;var g=function(){function CFF(){_classCallCheck(this,CFF);this.header=null;this.names=[];this.topDict=null;this.strings=new v;this.globalSubrIndex=null;this.encoding=null;this.charset=null;this.charStrings=null;this.fdArray=[];this.fdSelect=null;this.isCIDFont=!1}_createClass(CFF,[{key:"duplicateFirstGlyph",value:function duplicateFirstGlyph(){if(this.charStrings.count>=65535)(0,l.warn)("Not enough space in charstrings to duplicate first glyph.");else{var t=this.charStrings.get(0);this.charStrings.add(t);this.isCIDFont&&this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0])}}},{key:"hasGlyphId",value:function hasGlyphId(t){return!(t<0||t>=this.charStrings.count)&&this.charStrings.get(t).length>0}}]);return CFF}();r.CFF=g;var y=function CFFHeader(t,r,o,l){_classCallCheck(this,CFFHeader);this.major=t;this.minor=r;this.hdrSize=o;this.offSize=l};r.CFFHeader=y;var v=function(){function CFFStrings(){_classCallCheck(this,CFFStrings);this.strings=[]}_createClass(CFFStrings,[{key:"get",value:function get(t){return t>=0&&t<=390?h[t]:t-d<=this.strings.length?this.strings[t-d]:h[0]}},{key:"getSID",value:function getSID(t){var r=h.indexOf(t);return-1!==r?r:-1!==(r=this.strings.indexOf(t))?r+d:-1}},{key:"add",value:function add(t){this.strings.push(t)}},{key:"count",get:function get(){return this.strings.length}}]);return CFFStrings}();r.CFFStrings=v;var S=function(){function CFFIndex(){_classCallCheck(this,CFFIndex);this.objects=[];this.length=0}_createClass(CFFIndex,[{key:"add",value:function add(t){this.length+=t.length;this.objects.push(t)}},{key:"set",value:function set(t,r){this.length+=r.length-this.objects[t].length;this.objects[t]=r}},{key:"get",value:function get(t){return this.objects[t]}},{key:"count",get:function get(){return this.objects.length}}]);return CFFIndex}();r.CFFIndex=S;var _=function(){function CFFDict(t,r){_classCallCheck(this,CFFDict);this.keyToNameMap=t.keyToNameMap;this.nameToKeyMap=t.nameToKeyMap;this.defaults=t.defaults;this.types=t.types;this.opcodes=t.opcodes;this.order=t.order;this.strings=r;this.values=Object.create(null)}_createClass(CFFDict,[{key:"setByKey",value:function setByKey(t,r){if(!(t in this.keyToNameMap))return!1;var o=r.length;if(0===o)return!0;for(var c=0;c<o;c++)if(isNaN(r[c])){(0,l.warn)('Invalid CFFDict value: "'+r+'" for key "'+t+'".');return!0}var u=this.types[t];"num"!==u&&"sid"!==u&&"offset"!==u||(r=r[0]);this.values[t]=r;return!0}},{key:"setByName",value:function setByName(t,r){if(!(t in this.nameToKeyMap))throw new l.FormatError('Invalid dictionary name "'.concat(t,'"'));this.values[this.nameToKeyMap[t]]=r}},{key:"hasName",value:function hasName(t){return this.nameToKeyMap[t]in this.values}},{key:"getByName",value:function getByName(t){if(!(t in this.nameToKeyMap))throw new l.FormatError("Invalid dictionary name ".concat(t,'"'));var r=this.nameToKeyMap[t];return r in this.values?this.values[r]:this.defaults[r]}},{key:"removeByName",value:function removeByName(t){delete this.values[this.nameToKeyMap[t]]}}],[{key:"createTables",value:function createTables(t){for(var r={keyToNameMap:{},nameToKeyMap:{},defaults:{},types:{},opcodes:{},order:[]},o=0,l=t.length;o<l;++o){var c=t[o],u=Array.isArray(c[0])?(c[0][0]<<8)+c[0][1]:c[0];r.keyToNameMap[u]=c[1];r.nameToKeyMap[c[1]]=u;r.types[u]=c[2];r.defaults[u]=c[3];r.opcodes[u]=Array.isArray(c[0])?c[0]:[c[0]];r.order.push(u)}return r}}]);return CFFDict}(),k=function CFFTopDictClosure(){var t=[[[12,30],"ROS",["sid","sid","num"],null],[[12,20],"SyntheticBase","num",null],[0,"version","sid",null],[1,"Notice","sid",null],[[12,0],"Copyright","sid",null],[2,"FullName","sid",null],[3,"FamilyName","sid",null],[4,"Weight","sid",null],[[12,1],"isFixedPitch","num",0],[[12,2],"ItalicAngle","num",0],[[12,3],"UnderlinePosition","num",-100],[[12,4],"UnderlineThickness","num",50],[[12,5],"PaintType","num",0],[[12,6],"CharstringType","num",2],[[12,7],"FontMatrix",["num","num","num","num","num","num"],[.001,0,0,.001,0,0]],[13,"UniqueID","num",null],[5,"FontBBox",["num","num","num","num"],[0,0,0,0]],[[12,8],"StrokeWidth","num",0],[14,"XUID","array",null],[15,"charset","offset",0],[16,"Encoding","offset",0],[17,"CharStrings","offset",0],[18,"Private",["offset","offset"],null],[[12,21],"PostScript","sid",null],[[12,22],"BaseFontName","sid",null],[[12,23],"BaseFontBlend","delta",null],[[12,31],"CIDFontVersion","num",0],[[12,32],"CIDFontRevision","num",0],[[12,33],"CIDFontType","num",0],[[12,34],"CIDCount","num",8720],[[12,35],"UIDBase","num",null],[[12,37],"FDSelect","offset",null],[[12,36],"FDArray","offset",null],[[12,38],"FontName","sid",null]],r=null;return function(o){_inherits(CFFTopDict,o);var l=_createSuper(CFFTopDict);function CFFTopDict(o){var c;_classCallCheck(this,CFFTopDict);null===r&&(r=_.createTables(t));(c=l.call(this,r,o)).privateDict=null;return c}return CFFTopDict}(_)}();r.CFFTopDict=k;var C=function CFFPrivateDictClosure(){var t=[[6,"BlueValues","delta",null],[7,"OtherBlues","delta",null],[8,"FamilyBlues","delta",null],[9,"FamilyOtherBlues","delta",null],[[12,9],"BlueScale","num",.039625],[[12,10],"BlueShift","num",7],[[12,11],"BlueFuzz","num",1],[10,"StdHW","num",null],[11,"StdVW","num",null],[[12,12],"StemSnapH","delta",null],[[12,13],"StemSnapV","delta",null],[[12,14],"ForceBold","num",0],[[12,17],"LanguageGroup","num",0],[[12,18],"ExpansionFactor","num",.06],[[12,19],"initialRandomSeed","num",0],[20,"defaultWidthX","num",0],[21,"nominalWidthX","num",0],[19,"Subrs","offset",null]],r=null;return function(o){_inherits(CFFPrivateDict,o);var l=_createSuper(CFFPrivateDict);function CFFPrivateDict(o){var c;_classCallCheck(this,CFFPrivateDict);null===r&&(r=_.createTables(t));(c=l.call(this,r,o)).subrsIndex=null;return c}return CFFPrivateDict}(_)}();r.CFFPrivateDict=C;var w={ISO_ADOBE:0,EXPERT:1,EXPERT_SUBSET:2},x=function CFFCharset(t,r,o,l){_classCallCheck(this,CFFCharset);this.predefined=t;this.format=r;this.charset=o;this.raw=l};r.CFFCharset=x;var O=function CFFEncoding(t,r,o,l){_classCallCheck(this,CFFEncoding);this.predefined=t;this.format=r;this.encoding=o;this.raw=l},T=function(){function CFFFDSelect(t,r){_classCallCheck(this,CFFFDSelect);this.format=t;this.fdSelect=r}_createClass(CFFFDSelect,[{key:"getFDIndex",value:function getFDIndex(t){return t<0||t>=this.fdSelect.length?-1:this.fdSelect[t]}}]);return CFFFDSelect}();r.CFFFDSelect=T;var R=function(){function CFFOffsetTracker(){_classCallCheck(this,CFFOffsetTracker);this.offsets=Object.create(null)}_createClass(CFFOffsetTracker,[{key:"isTracking",value:function isTracking(t){return t in this.offsets}},{key:"track",value:function track(t,r){if(t in this.offsets)throw new l.FormatError("Already tracking location of ".concat(t));this.offsets[t]=r}},{key:"offset",value:function offset(t){for(var r in this.offsets)this.offsets[r]+=t}},{key:"setEntryLocation",value:function setEntryLocation(t,r,o){if(!(t in this.offsets))throw new l.FormatError("Not tracking location of ".concat(t));for(var c=o.data,u=this.offsets[t],h=0,d=r.length;h<d;++h){var m=5*h+u,g=m+1,y=m+2,v=m+3,S=m+4;if(29!==c[m]||0!==c[g]||0!==c[y]||0!==c[v]||0!==c[S])throw new l.FormatError("writing to an offset that is not empty");var _=r[h];c[m]=29;c[g]=_>>24&255;c[y]=_>>16&255;c[v]=_>>8&255;c[S]=255&_}}}]);return CFFOffsetTracker}(),E=function(){function CFFCompiler(t){_classCallCheck(this,CFFCompiler);this.cff=t}_createClass(CFFCompiler,[{key:"compile",value:function compile(){var t=this.cff,r={data:[],length:0,add:function CFFCompiler_add(t){this.data=this.data.concat(t);this.length=this.data.length}},o=this.compileHeader(t.header);r.add(o);var c=this.compileNameIndex(t.names);r.add(c);if(t.isCIDFont&&t.topDict.hasName("FontMatrix")){var u=t.topDict.getByName("FontMatrix");t.topDict.removeByName("FontMatrix");for(var h=0,d=t.fdArray.length;h<d;h++){var m=t.fdArray[h],g=u.slice(0);m.hasName("FontMatrix")&&(g=l.Util.transform(g,m.getByName("FontMatrix")));m.setByName("FontMatrix",g)}}var y=t.topDict.getByName("XUID");y&&y.length>16&&t.topDict.removeByName("XUID");t.topDict.setByName("charset",0);var v=this.compileTopDicts([t.topDict],r.length,t.isCIDFont);r.add(v.output);var S=v.trackers[0],_=this.compileStringIndex(t.strings.strings);r.add(_);var k=this.compileIndex(t.globalSubrIndex);r.add(k);if(t.encoding&&t.topDict.hasName("Encoding"))if(t.encoding.predefined)S.setEntryLocation("Encoding",[t.encoding.format],r);else{var C=this.compileEncoding(t.encoding);S.setEntryLocation("Encoding",[r.length],r);r.add(C)}var w=this.compileCharset(t.charset,t.charStrings.count,t.strings,t.isCIDFont);S.setEntryLocation("charset",[r.length],r);r.add(w);var x=this.compileCharStrings(t.charStrings);S.setEntryLocation("CharStrings",[r.length],r);r.add(x);if(t.isCIDFont){S.setEntryLocation("FDSelect",[r.length],r);var O=this.compileFDSelect(t.fdSelect);r.add(O);v=this.compileTopDicts(t.fdArray,r.length,!0);S.setEntryLocation("FDArray",[r.length],r);r.add(v.output);var T=v.trackers;this.compilePrivateDicts(t.fdArray,T,r)}this.compilePrivateDicts([t.topDict],[S],r);r.add([0]);return r.data}},{key:"encodeNumber",value:function encodeNumber(t){return Number.isInteger(t)?this.encodeInteger(t):this.encodeFloat(t)}},{key:"encodeFloat",value:function encodeFloat(t){var r=t.toString(),o=CFFCompiler.EncodeFloatRegExp.exec(r);if(o){var l=parseFloat("1e"+((o[2]?+o[2]:0)+o[1].length));r=(Math.round(t*l)/l).toString()}var c,u,h="";for(c=0,u=r.length;c<u;++c){var d=r[c];h+="e"===d?"-"===r[++c]?"c":"b":"."===d?"a":"-"===d?"e":d}var m=[30];for(c=0,u=(h+=1&h.length?"f":"ff").length;c<u;c+=2)m.push(parseInt(h.substring(c,c+2),16));return m}},{key:"encodeInteger",value:function encodeInteger(t){return t>=-107&&t<=107?[t+139]:t>=108&&t<=1131?[247+((t-=108)>>8),255&t]:t>=-1131&&t<=-108?[251+((t=-t-108)>>8),255&t]:t>=-32768&&t<=32767?[28,t>>8&255,255&t]:[29,t>>24&255,t>>16&255,t>>8&255,255&t]}},{key:"compileHeader",value:function compileHeader(t){return[t.major,t.minor,4,t.offSize]}},{key:"compileNameIndex",value:function compileNameIndex(t){for(var r=new S,o=0,c=t.length;o<c;++o){for(var u=t[o],h=Math.min(u.length,127),d=new Array(h),m=0;m<h;m++){var g=u[m];(g<"!"||g>"~"||"["===g||"]"===g||"("===g||")"===g||"{"===g||"}"===g||"<"===g||">"===g||"/"===g||"%"===g)&&(g="_");d[m]=g}""===(d=d.join(""))&&(d="Bad_Font_Name");r.add((0,l.stringToBytes)(d))}return this.compileIndex(r)}},{key:"compileTopDicts",value:function compileTopDicts(t,r,o){for(var l=[],c=new S,u=0,h=t.length;u<h;++u){var d=t[u];if(o){d.removeByName("CIDFontVersion");d.removeByName("CIDFontRevision");d.removeByName("CIDFontType");d.removeByName("CIDCount");d.removeByName("UIDBase")}var m=new R,g=this.compileDict(d,m);l.push(m);c.add(g);m.offset(r)}return{trackers:l,output:c=this.compileIndex(c,l)}}},{key:"compilePrivateDicts",value:function compilePrivateDicts(t,r,o){for(var c=0,u=t.length;c<u;++c){var h=t[c],d=h.privateDict;if(!d||!h.hasName("Private"))throw new l.FormatError("There must be a private dictionary.");var m=new R,g=this.compileDict(d,m),y=o.length;m.offset(y);g.length||(y=0);r[c].setEntryLocation("Private",[g.length,y],o);o.add(g);if(d.subrsIndex&&d.hasName("Subrs")){var v=this.compileIndex(d.subrsIndex);m.setEntryLocation("Subrs",[g.length],o);o.add(v)}}}},{key:"compileDict",value:function compileDict(t,r){for(var o=[],c=t.order,u=0;u<c.length;++u){var h=c[u];if(h in t.values){var d=t.values[h],m=t.types[h];Array.isArray(m)||(m=[m]);Array.isArray(d)||(d=[d]);if(0!==d.length){for(var g=0,y=m.length;g<y;++g){var v=m[g],S=d[g];switch(v){case"num":case"sid":o=o.concat(this.encodeNumber(S));break;case"offset":var _=t.keyToNameMap[h];r.isTracking(_)||r.track(_,o.length);o=o.concat([29,0,0,0,0]);break;case"array":case"delta":o=o.concat(this.encodeNumber(S));for(var k=1,C=d.length;k<C;++k)o=o.concat(this.encodeNumber(d[k]));break;default:throw new l.FormatError("Unknown data type of ".concat(v))}}o=o.concat(t.opcodes[h])}}}return o}},{key:"compileStringIndex",value:function compileStringIndex(t){for(var r=new S,o=0,c=t.length;o<c;++o)r.add((0,l.stringToBytes)(t[o]));return this.compileIndex(r)}},{key:"compileGlobalSubrIndex",value:function compileGlobalSubrIndex(){var t=this.cff.globalSubrIndex;this.out.writeByteArray(this.compileIndex(t))}},{key:"compileCharStrings",value:function compileCharStrings(t){for(var r=new S,o=0;o<t.count;o++){var l=t.get(o);0!==l.length?r.add(l):r.add(new Uint8Array([139,14]))}return this.compileIndex(r)}},{key:"compileCharset",value:function compileCharset(t,r,o,c){var u,h=r-1;if(c)u=new Uint8Array([2,0,0,h>>8&255,255&h]);else{(u=new Uint8Array(1+2*h))[0]=0;for(var d=0,m=t.charset.length,g=!1,y=1;y<u.length;y+=2){var v=0;if(d<m){var S=t.charset[d++];if(-1===(v=o.getSID(S))){v=0;if(!g){g=!0;(0,l.warn)("Couldn't find ".concat(S," in CFF strings"))}}}u[y]=v>>8&255;u[y+1]=255&v}}return this.compileTypedArray(u)}},{key:"compileEncoding",value:function compileEncoding(t){return this.compileTypedArray(t.raw)}},{key:"compileFDSelect",value:function compileFDSelect(t){var r,o,l=t.format;switch(l){case 0:(r=new Uint8Array(1+t.fdSelect.length))[0]=l;for(o=0;o<t.fdSelect.length;o++)r[o+1]=t.fdSelect[o];break;case 3:var c=t.fdSelect[0],u=[l,0,0,0,0,c];for(o=1;o<t.fdSelect.length;o++){var h=t.fdSelect[o];if(h!==c){u.push(o>>8&255,255&o,h);c=h}}var d=(u.length-3)/3;u[1]=d>>8&255;u[2]=255&d;u.push(o>>8&255,255&o);r=new Uint8Array(u)}return this.compileTypedArray(r)}},{key:"compileTypedArray",value:function compileTypedArray(t){for(var r=[],o=0,l=t.length;o<l;++o)r[o]=t[o];return r}},{key:"compileIndex",value:function compileIndex(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],o=t.objects,l=o.length;if(0===l)return[0,0,0];var c,u,h=[l>>8&255,255&l],d=1;for(c=0;c<l;++c)d+=o[c].length;u=d<256?1:d<65536?2:d<16777216?3:4;h.push(u);var m=1;for(c=0;c<l+1;c++){1===u?h.push(255&m):2===u?h.push(m>>8&255,255&m):3===u?h.push(m>>16&255,m>>8&255,255&m):h.push(m>>>24&255,m>>16&255,m>>8&255,255&m);o[c]&&(m+=o[c].length)}for(c=0;c<l;c++){r[c]&&r[c].offset(h.length);for(var g=0,y=o[c].length;g<y;g++)h.push(o[c][g])}return h}}],[{key:"EncodeFloatRegExp",get:function get(){return(0,l.shadow)(this,"EncodeFloatRegExp",/\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/)}}]);return CFFCompiler}();r.CFFCompiler=E},(t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.ISOAdobeCharset=r.ExpertSubsetCharset=r.ExpertCharset=void 0;r.ISOAdobeCharset=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron"];r.ExpertCharset=[".notdef","space","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"];r.ExpertSubsetCharset=[".notdef","space","dollaroldstyle","dollarsuperior","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","hyphensuperior","colonmonetary","onefitted","rupiah","centoldstyle","figuredash","hypheninferior","onequarter","onehalf","threequarters","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior"]},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.getStandardFontName=function getStandardFontName(t){var r=(0,c.normalizeFontName)(t);return u()[r]};r.getSymbolsFonts=r.getSupplementalGlyphMapForCalibri=r.getSupplementalGlyphMapForArialBlack=r.getStdFontMap=r.getSerifFonts=r.getNonStdFontMap=r.getGlyphMapForStandardFonts=r.getFontNameToFileMap=void 0;var l=o(122),c=o(131),u=(0,l.getLookupTableFactory)((function(t){t["Times-Roman"]="Times-Roman";t.Helvetica="Helvetica";t.Courier="Courier";t.Symbol="Symbol";t["Times-Bold"]="Times-Bold";t["Helvetica-Bold"]="Helvetica-Bold";t["Courier-Bold"]="Courier-Bold";t.ZapfDingbats="ZapfDingbats";t["Times-Italic"]="Times-Italic";t["Helvetica-Oblique"]="Helvetica-Oblique";t["Courier-Oblique"]="Courier-Oblique";t["Times-BoldItalic"]="Times-BoldItalic";t["Helvetica-BoldOblique"]="Helvetica-BoldOblique";t["Courier-BoldOblique"]="Courier-BoldOblique";t.ArialNarrow="Helvetica";t["ArialNarrow-Bold"]="Helvetica-Bold";t["ArialNarrow-BoldItalic"]="Helvetica-BoldOblique";t["ArialNarrow-Italic"]="Helvetica-Oblique";t.ArialBlack="Helvetica";t["ArialBlack-Bold"]="Helvetica-Bold";t["ArialBlack-BoldItalic"]="Helvetica-BoldOblique";t["ArialBlack-Italic"]="Helvetica-Oblique";t["Arial-Black"]="Helvetica";t["Arial-Black-Bold"]="Helvetica-Bold";t["Arial-Black-BoldItalic"]="Helvetica-BoldOblique";t["Arial-Black-Italic"]="Helvetica-Oblique";t.Arial="Helvetica";t["Arial-Bold"]="Helvetica-Bold";t["Arial-BoldItalic"]="Helvetica-BoldOblique";t["Arial-Italic"]="Helvetica-Oblique";t["Arial-BoldItalicMT"]="Helvetica-BoldOblique";t["Arial-BoldMT"]="Helvetica-Bold";t["Arial-ItalicMT"]="Helvetica-Oblique";t.ArialMT="Helvetica";t["Courier-BoldItalic"]="Courier-BoldOblique";t["Courier-Italic"]="Courier-Oblique";t.CourierNew="Courier";t["CourierNew-Bold"]="Courier-Bold";t["CourierNew-BoldItalic"]="Courier-BoldOblique";t["CourierNew-Italic"]="Courier-Oblique";t["CourierNewPS-BoldItalicMT"]="Courier-BoldOblique";t["CourierNewPS-BoldMT"]="Courier-Bold";t["CourierNewPS-ItalicMT"]="Courier-Oblique";t.CourierNewPSMT="Courier";t["Helvetica-BoldItalic"]="Helvetica-BoldOblique";t["Helvetica-Italic"]="Helvetica-Oblique";t["Symbol-Bold"]="Symbol";t["Symbol-BoldItalic"]="Symbol";t["Symbol-Italic"]="Symbol";t.TimesNewRoman="Times-Roman";t["TimesNewRoman-Bold"]="Times-Bold";t["TimesNewRoman-BoldItalic"]="Times-BoldItalic";t["TimesNewRoman-Italic"]="Times-Italic";t.TimesNewRomanPS="Times-Roman";t["TimesNewRomanPS-Bold"]="Times-Bold";t["TimesNewRomanPS-BoldItalic"]="Times-BoldItalic";t["TimesNewRomanPS-BoldItalicMT"]="Times-BoldItalic";t["TimesNewRomanPS-BoldMT"]="Times-Bold";t["TimesNewRomanPS-Italic"]="Times-Italic";t["TimesNewRomanPS-ItalicMT"]="Times-Italic";t.TimesNewRomanPSMT="Times-Roman";t["TimesNewRomanPSMT-Bold"]="Times-Bold";t["TimesNewRomanPSMT-BoldItalic"]="Times-BoldItalic";t["TimesNewRomanPSMT-Italic"]="Times-Italic"}));r.getStdFontMap=u;var h=(0,l.getLookupTableFactory)((function(t){t.Courier="FoxitFixed.pfb";t["Courier-Bold"]="FoxitFixedBold.pfb";t["Courier-BoldOblique"]="FoxitFixedBoldItalic.pfb";t["Courier-Oblique"]="FoxitFixedItalic.pfb";t.Helvetica="FoxitSans.pfb";t["Helvetica-Bold"]="FoxitSansBold.pfb";t["Helvetica-BoldOblique"]="FoxitSansBoldItalic.pfb";t["Helvetica-Oblique"]="FoxitSansItalic.pfb";t["Times-Roman"]="FoxitSerif.pfb";t["Times-Bold"]="FoxitSerifBold.pfb";t["Times-BoldItalic"]="FoxitSerifBoldItalic.pfb";t["Times-Italic"]="FoxitSerifItalic.pfb";t.Symbol="FoxitSymbol.pfb";t.ZapfDingbats="FoxitDingbats.pfb";t["LiberationSans-Regular"]="LiberationSans-Regular.ttf";t["LiberationSans-Bold"]="LiberationSans-Bold.ttf";t["LiberationSans-Italic"]="LiberationSans-Italic.ttf";t["LiberationSans-BoldItalic"]="LiberationSans-BoldItalic.ttf"}));r.getFontNameToFileMap=h;var d=(0,l.getLookupTableFactory)((function(t){t.Calibri="Helvetica";t["Calibri-Bold"]="Helvetica-Bold";t["Calibri-BoldItalic"]="Helvetica-BoldOblique";t["Calibri-Italic"]="Helvetica-Oblique";t.CenturyGothic="Helvetica";t["CenturyGothic-Bold"]="Helvetica-Bold";t["CenturyGothic-BoldItalic"]="Helvetica-BoldOblique";t["CenturyGothic-Italic"]="Helvetica-Oblique";t.ComicSansMS="Comic Sans MS";t["ComicSansMS-Bold"]="Comic Sans MS-Bold";t["ComicSansMS-BoldItalic"]="Comic Sans MS-BoldItalic";t["ComicSansMS-Italic"]="Comic Sans MS-Italic";t["ItcSymbol-Bold"]="Helvetica-Bold";t["ItcSymbol-BoldItalic"]="Helvetica-BoldOblique";t["ItcSymbol-Book"]="Helvetica";t["ItcSymbol-BookItalic"]="Helvetica-Oblique";t["ItcSymbol-Medium"]="Helvetica";t["ItcSymbol-MediumItalic"]="Helvetica-Oblique";t.LucidaConsole="Courier";t["LucidaConsole-Bold"]="Courier-Bold";t["LucidaConsole-BoldItalic"]="Courier-BoldOblique";t["LucidaConsole-Italic"]="Courier-Oblique";t["LucidaSans-Demi"]="Helvetica-Bold";t["MS-Gothic"]="MS Gothic";t["MS-Gothic-Bold"]="MS Gothic-Bold";t["MS-Gothic-BoldItalic"]="MS Gothic-BoldItalic";t["MS-Gothic-Italic"]="MS Gothic-Italic";t["MS-Mincho"]="MS Mincho";t["MS-Mincho-Bold"]="MS Mincho-Bold";t["MS-Mincho-BoldItalic"]="MS Mincho-BoldItalic";t["MS-Mincho-Italic"]="MS Mincho-Italic";t["MS-PGothic"]="MS PGothic";t["MS-PGothic-Bold"]="MS PGothic-Bold";t["MS-PGothic-BoldItalic"]="MS PGothic-BoldItalic";t["MS-PGothic-Italic"]="MS PGothic-Italic";t["MS-PMincho"]="MS PMincho";t["MS-PMincho-Bold"]="MS PMincho-Bold";t["MS-PMincho-BoldItalic"]="MS PMincho-BoldItalic";t["MS-PMincho-Italic"]="MS PMincho-Italic";t.NuptialScript="Times-Italic";t.SegoeUISymbol="Helvetica";t.Wingdings="ZapfDingbats";t["Wingdings-Regular"]="ZapfDingbats"}));r.getNonStdFontMap=d;var m=(0,l.getLookupTableFactory)((function(t){t["Adobe Jenson"]=!0;t["Adobe Text"]=!0;t.Albertus=!0;t.Aldus=!0;t.Alexandria=!0;t.Algerian=!0;t["American Typewriter"]=!0;t.Antiqua=!0;t.Apex=!0;t.Arno=!0;t.Aster=!0;t.Aurora=!0;t.Baskerville=!0;t.Bell=!0;t.Bembo=!0;t["Bembo Schoolbook"]=!0;t.Benguiat=!0;t["Berkeley Old Style"]=!0;t["Bernhard Modern"]=!0;t["Berthold City"]=!0;t.Bodoni=!0;t["Bauer Bodoni"]=!0;t["Book Antiqua"]=!0;t.Bookman=!0;t["Bordeaux Roman"]=!0;t["Californian FB"]=!0;t.Calisto=!0;t.Calvert=!0;t.Capitals=!0;t.Cambria=!0;t.Cartier=!0;t.Caslon=!0;t.Catull=!0;t.Centaur=!0;t["Century Old Style"]=!0;t["Century Schoolbook"]=!0;t.Chaparral=!0;t["Charis SIL"]=!0;t.Cheltenham=!0;t["Cholla Slab"]=!0;t.Clarendon=!0;t.Clearface=!0;t.Cochin=!0;t.Colonna=!0;t["Computer Modern"]=!0;t["Concrete Roman"]=!0;t.Constantia=!0;t["Cooper Black"]=!0;t.Corona=!0;t.Ecotype=!0;t.Egyptienne=!0;t.Elephant=!0;t.Excelsior=!0;t.Fairfield=!0;t["FF Scala"]=!0;t.Folkard=!0;t.Footlight=!0;t.FreeSerif=!0;t["Friz Quadrata"]=!0;t.Garamond=!0;t.Gentium=!0;t.Georgia=!0;t.Gloucester=!0;t["Goudy Old Style"]=!0;t["Goudy Schoolbook"]=!0;t["Goudy Pro Font"]=!0;t.Granjon=!0;t["Guardian Egyptian"]=!0;t.Heather=!0;t.Hercules=!0;t["High Tower Text"]=!0;t.Hiroshige=!0;t["Hoefler Text"]=!0;t["Humana Serif"]=!0;t.Imprint=!0;t["Ionic No. 5"]=!0;t.Janson=!0;t.Joanna=!0;t.Korinna=!0;t.Lexicon=!0;t.LiberationSerif=!0;t["Liberation Serif"]=!0;t["Linux Libertine"]=!0;t.Literaturnaya=!0;t.Lucida=!0;t["Lucida Bright"]=!0;t.Melior=!0;t.Memphis=!0;t.Miller=!0;t.Minion=!0;t.Modern=!0;t["Mona Lisa"]=!0;t["Mrs Eaves"]=!0;t["MS Serif"]=!0;t["Museo Slab"]=!0;t["New York"]=!0;t["Nimbus Roman"]=!0;t["NPS Rawlinson Roadway"]=!0;t.NuptialScript=!0;t.Palatino=!0;t.Perpetua=!0;t.Plantin=!0;t["Plantin Schoolbook"]=!0;t.Playbill=!0;t["Poor Richard"]=!0;t["Rawlinson Roadway"]=!0;t.Renault=!0;t.Requiem=!0;t.Rockwell=!0;t.Roman=!0;t["Rotis Serif"]=!0;t.Sabon=!0;t.Scala=!0;t.Seagull=!0;t.Sistina=!0;t.Souvenir=!0;t.STIX=!0;t["Stone Informal"]=!0;t["Stone Serif"]=!0;t.Sylfaen=!0;t.Times=!0;t.Trajan=!0;t["Trinité"]=!0;t["Trump Mediaeval"]=!0;t.Utopia=!0;t["Vale Type"]=!0;t["Bitstream Vera"]=!0;t["Vera Serif"]=!0;t.Versailles=!0;t.Wanted=!0;t.Weiss=!0;t["Wide Latin"]=!0;t.Windsor=!0;t.XITS=!0}));r.getSerifFonts=m;var g=(0,l.getLookupTableFactory)((function(t){t.Dingbats=!0;t.Symbol=!0;t.ZapfDingbats=!0}));r.getSymbolsFonts=g;var y=(0,l.getLookupTableFactory)((function(t){t[2]=10;t[3]=32;t[4]=33;t[5]=34;t[6]=35;t[7]=36;t[8]=37;t[9]=38;t[10]=39;t[11]=40;t[12]=41;t[13]=42;t[14]=43;t[15]=44;t[16]=45;t[17]=46;t[18]=47;t[19]=48;t[20]=49;t[21]=50;t[22]=51;t[23]=52;t[24]=53;t[25]=54;t[26]=55;t[27]=56;t[28]=57;t[29]=58;t[30]=894;t[31]=60;t[32]=61;t[33]=62;t[34]=63;t[35]=64;t[36]=65;t[37]=66;t[38]=67;t[39]=68;t[40]=69;t[41]=70;t[42]=71;t[43]=72;t[44]=73;t[45]=74;t[46]=75;t[47]=76;t[48]=77;t[49]=78;t[50]=79;t[51]=80;t[52]=81;t[53]=82;t[54]=83;t[55]=84;t[56]=85;t[57]=86;t[58]=87;t[59]=88;t[60]=89;t[61]=90;t[62]=91;t[63]=92;t[64]=93;t[65]=94;t[66]=95;t[67]=96;t[68]=97;t[69]=98;t[70]=99;t[71]=100;t[72]=101;t[73]=102;t[74]=103;t[75]=104;t[76]=105;t[77]=106;t[78]=107;t[79]=108;t[80]=109;t[81]=110;t[82]=111;t[83]=112;t[84]=113;t[85]=114;t[86]=115;t[87]=116;t[88]=117;t[89]=118;t[90]=119;t[91]=120;t[92]=121;t[93]=122;t[94]=123;t[95]=124;t[96]=125;t[97]=126;t[98]=196;t[99]=197;t[100]=199;t[101]=201;t[102]=209;t[103]=214;t[104]=220;t[105]=225;t[106]=224;t[107]=226;t[108]=228;t[109]=227;t[110]=229;t[111]=231;t[112]=233;t[113]=232;t[114]=234;t[115]=235;t[116]=237;t[117]=236;t[118]=238;t[119]=239;t[120]=241;t[121]=243;t[122]=242;t[123]=244;t[124]=246;t[125]=245;t[126]=250;t[127]=249;t[128]=251;t[129]=252;t[130]=8224;t[131]=176;t[132]=162;t[133]=163;t[134]=167;t[135]=8226;t[136]=182;t[137]=223;t[138]=174;t[139]=169;t[140]=8482;t[141]=180;t[142]=168;t[143]=8800;t[144]=198;t[145]=216;t[146]=8734;t[147]=177;t[148]=8804;t[149]=8805;t[150]=165;t[151]=181;t[152]=8706;t[153]=8721;t[154]=8719;t[156]=8747;t[157]=170;t[158]=186;t[159]=8486;t[160]=230;t[161]=248;t[162]=191;t[163]=161;t[164]=172;t[165]=8730;t[166]=402;t[167]=8776;t[168]=8710;t[169]=171;t[170]=187;t[171]=8230;t[200]=193;t[203]=205;t[210]=218;t[223]=711;t[224]=321;t[225]=322;t[226]=352;t[227]=353;t[228]=381;t[229]=382;t[233]=221;t[234]=253;t[252]=263;t[253]=268;t[254]=269;t[258]=258;t[260]=260;t[261]=261;t[265]=280;t[266]=281;t[267]=282;t[268]=283;t[269]=313;t[275]=323;t[276]=324;t[278]=328;t[283]=344;t[284]=345;t[285]=346;t[286]=347;t[292]=367;t[295]=377;t[296]=378;t[298]=380;t[305]=963;t[306]=964;t[307]=966;t[308]=8215;t[309]=8252;t[310]=8319;t[311]=8359;t[312]=8592;t[313]=8593;t[337]=9552;t[493]=1039;t[494]=1040;t[705]=1524;t[706]=8362;t[710]=64288;t[711]=64298;t[759]=1617;t[761]=1776;t[763]=1778;t[775]=1652;t[777]=1764;t[778]=1780;t[779]=1781;t[780]=1782;t[782]=771;t[783]=64726;t[786]=8363;t[788]=8532;t[790]=768;t[791]=769;t[792]=768;t[795]=803;t[797]=64336;t[798]=64337;t[799]=64342;t[800]=64343;t[801]=64344;t[802]=64345;t[803]=64362;t[804]=64363;t[805]=64364;t[2424]=7821;t[2425]=7822;t[2426]=7823;t[2427]=7824;t[2428]=7825;t[2429]=7826;t[2430]=7827;t[2433]=7682;t[2678]=8045;t[2679]=8046;t[2830]=1552;t[2838]=686;t[2840]=751;t[2842]=753;t[2843]=754;t[2844]=755;t[2846]=757;t[2856]=767;t[2857]=848;t[2858]=849;t[2862]=853;t[2863]=854;t[2864]=855;t[2865]=861;t[2866]=862;t[2906]=7460;t[2908]=7462;t[2909]=7463;t[2910]=7464;t[2912]=7466;t[2913]=7467;t[2914]=7468;t[2916]=7470;t[2917]=7471;t[2918]=7472;t[2920]=7474;t[2921]=7475;t[2922]=7476;t[2924]=7478;t[2925]=7479;t[2926]=7480;t[2928]=7482;t[2929]=7483;t[2930]=7484;t[2932]=7486;t[2933]=7487;t[2934]=7488;t[2936]=7490;t[2937]=7491;t[2938]=7492;t[2940]=7494;t[2941]=7495;t[2942]=7496;t[2944]=7498;t[2946]=7500;t[2948]=7502;t[2950]=7504;t[2951]=7505;t[2952]=7506;t[2954]=7508;t[2955]=7509;t[2956]=7510;t[2958]=7512;t[2959]=7513;t[2960]=7514;t[2962]=7516;t[2963]=7517;t[2964]=7518;t[2966]=7520;t[2967]=7521;t[2968]=7522;t[2970]=7524;t[2971]=7525;t[2972]=7526;t[2974]=7528;t[2975]=7529;t[2976]=7530;t[2978]=1537;t[2979]=1538;t[2980]=1539;t[2982]=1549;t[2983]=1551;t[2984]=1552;t[2986]=1554;t[2987]=1555;t[2988]=1556;t[2990]=1623;t[2991]=1624;t[2995]=1775;t[2999]=1791;t[3002]=64290;t[3003]=64291;t[3004]=64292;t[3006]=64294;t[3007]=64295;t[3008]=64296;t[3011]=1900;t[3014]=8223;t[3015]=8244;t[3017]=7532;t[3018]=7533;t[3019]=7534;t[3075]=7590;t[3076]=7591;t[3079]=7594;t[3080]=7595;t[3083]=7598;t[3084]=7599;t[3087]=7602;t[3088]=7603;t[3091]=7606;t[3092]=7607;t[3095]=7610;t[3096]=7611;t[3099]=7614;t[3100]=7615;t[3103]=7618;t[3104]=7619;t[3107]=8337;t[3108]=8338;t[3116]=1884;t[3119]=1885;t[3120]=1885;t[3123]=1886;t[3124]=1886;t[3127]=1887;t[3128]=1887;t[3131]=1888;t[3132]=1888;t[3135]=1889;t[3136]=1889;t[3139]=1890;t[3140]=1890;t[3143]=1891;t[3144]=1891;t[3147]=1892;t[3148]=1892;t[3153]=580;t[3154]=581;t[3157]=584;t[3158]=585;t[3161]=588;t[3162]=589;t[3165]=891;t[3166]=892;t[3169]=1274;t[3170]=1275;t[3173]=1278;t[3174]=1279;t[3181]=7622;t[3182]=7623;t[3282]=11799;t[3316]=578;t[3379]=42785;t[3393]=1159;t[3416]=8377}));r.getGlyphMapForStandardFonts=y;var v=(0,l.getLookupTableFactory)((function(t){t[227]=322;t[264]=261;t[291]=346}));r.getSupplementalGlyphMapForArialBlack=v;var S=(0,l.getLookupTableFactory)((function(t){t[1]=32;t[4]=65;t[6]=193;t[17]=66;t[18]=67;t[21]=268;t[24]=68;t[28]=69;t[30]=201;t[32]=282;t[38]=70;t[39]=71;t[44]=72;t[47]=73;t[49]=205;t[58]=74;t[60]=75;t[62]=76;t[68]=77;t[69]=78;t[75]=79;t[87]=80;t[89]=81;t[90]=82;t[92]=344;t[94]=83;t[97]=352;t[100]=84;t[104]=85;t[115]=86;t[116]=87;t[121]=88;t[122]=89;t[124]=221;t[127]=90;t[129]=381;t[258]=97;t[260]=225;t[268]=261;t[271]=98;t[272]=99;t[273]=263;t[275]=269;t[282]=100;t[286]=101;t[288]=233;t[290]=283;t[295]=281;t[296]=102;t[336]=103;t[346]=104;t[349]=105;t[351]=237;t[361]=106;t[364]=107;t[367]=108;t[371]=322;t[373]=109;t[374]=110;t[381]=111;t[383]=243;t[393]=112;t[395]=113;t[396]=114;t[398]=345;t[400]=115;t[401]=347;t[403]=353;t[410]=116;t[437]=117;t[448]=118;t[449]=119;t[454]=120;t[455]=121;t[457]=253;t[460]=122;t[462]=382;t[463]=380;t[853]=44;t[855]=58;t[856]=46;t[876]=47;t[878]=45;t[882]=45;t[894]=40;t[895]=41;t[896]=91;t[897]=93;t[923]=64;t[1004]=48;t[1005]=49;t[1006]=50;t[1007]=51;t[1008]=52;t[1009]=53;t[1010]=54;t[1011]=55;t[1012]=56;t[1013]=57;t[1081]=37;t[1085]=43;t[1086]=45}));r.getSupplementalGlyphMapForCalibri=S},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.ToUnicodeMap=r.IdentityToUnicodeMap=void 0;var l=o(4);function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var c=function(){function ToUnicodeMap(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];_classCallCheck(this,ToUnicodeMap);this._map=t}_createClass(ToUnicodeMap,[{key:"length",get:function get(){return this._map.length}},{key:"forEach",value:function forEach(t){for(var r in this._map)t(r,this._map[r].charCodeAt(0))}},{key:"has",value:function has(t){return void 0!==this._map[t]}},{key:"get",value:function get(t){return this._map[t]}},{key:"charCodeOf",value:function charCodeOf(t){var r=this._map;if(r.length<=65536)return r.indexOf(t);for(var o in r)if(r[o]===t)return 0|o;return-1}},{key:"amend",value:function amend(t){for(var r in t)this._map[r]=t[r]}}]);return ToUnicodeMap}();r.ToUnicodeMap=c;var u=function(){function IdentityToUnicodeMap(t,r){_classCallCheck(this,IdentityToUnicodeMap);this.firstChar=t;this.lastChar=r}_createClass(IdentityToUnicodeMap,[{key:"length",get:function get(){return this.lastChar+1-this.firstChar}},{key:"forEach",value:function forEach(t){for(var r=this.firstChar,o=this.lastChar;r<=o;r++)t(r,r)}},{key:"has",value:function has(t){return this.firstChar<=t&&t<=this.lastChar}},{key:"get",value:function get(t){if(this.firstChar<=t&&t<=this.lastChar)return String.fromCharCode(t)}},{key:"charCodeOf",value:function charCodeOf(t){return Number.isInteger(t)&&t>=this.firstChar&&t<=this.lastChar?t:-1}},{key:"amend",value:function amend(t){(0,l.unreachable)("Should not call amend()")}}]);return IdentityToUnicodeMap}();r.IdentityToUnicodeMap=u},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.CFFFont=void 0;var l=o(158),c=o(131),u=o(4);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}var h=function(){function CFFFont(t,r){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,CFFFont);this.properties=r;var o=new l.CFFParser(t,r,c.SEAC_ANALYSIS_ENABLED);this.cff=o.parse();this.cff.duplicateFirstGlyph();var h=new l.CFFCompiler(this.cff);this.seacs=this.cff.seacs;try{this.data=h.compile()}catch(o){(0,u.warn)("Failed to compile font "+r.loadedName);this.data=t}this._createBuiltInEncoding()}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(CFFFont,[{key:"numGlyphs",get:function get(){return this.cff.charStrings.count}},{key:"getCharset",value:function getCharset(){return this.cff.charset.charset}},{key:"getGlyphMapping",value:function getGlyphMapping(){var t,r,o=this.cff,l=this.properties,u=o.charset.charset;if(l.composite){t=Object.create(null);if(o.isCIDFont)for(r=0;r<u.length;r++){var h=u[r];t[l.cMap.charCodeOf(h)]=r}else for(r=0;r<o.charStrings.count;r++)t[l.cMap.charCodeOf(r)]=r;return t}var d=o.encoding?o.encoding.encoding:null;l.isInternalFont&&(d=l.defaultEncoding);return t=(0,c.type1FontGlyphMapping)(l,d,u)}},{key:"hasGlyphId",value:function hasGlyphId(t){return this.cff.hasGlyphId(t)}},{key:"_createBuiltInEncoding",value:function _createBuiltInEncoding(){var t=this.cff,r=t.charset,o=t.encoding;if(r&&o){var l=r.charset,c=o.encoding,u=[];for(var h in c){var d=c[h];if(d>=0){var m=l[d];m&&(u[h]=m)}}u.length>0&&(this.properties.builtInEncoding=u)}}}]);return CFFFont}();r.CFFFont=h},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.FontRendererFactory=void 0;var l=o(4),c=o(158),u=o(133),h=o(132),d=o(123);function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}function getLong(t,r){return t[r]<<24|t[r+1]<<16|t[r+2]<<8|t[r+3]}function getUshort(t,r){return t[r]<<8|t[r+1]}function getSubroutineBias(t){var r=t.length,o=32768;r<1240?o=107:r<33900&&(o=1131);return o}function parseCmap(t,r,o){var c,u,h,d=1===getUshort(t,r+2)?getLong(t,r+8):getLong(t,r+16),m=getUshort(t,r+d);if(4===m){getUshort(t,r+d+2);var g=getUshort(t,r+d+6)>>1;u=r+d+14;c=[];for(h=0;h<g;h++,u+=2)c[h]={end:getUshort(t,u)};u+=2;for(h=0;h<g;h++,u+=2)c[h].start=getUshort(t,u);for(h=0;h<g;h++,u+=2)c[h].idDelta=getUshort(t,u);for(h=0;h<g;h++,u+=2){var y=getUshort(t,u);if(0!==y){c[h].ids=[];for(var v=0,S=c[h].end-c[h].start+1;v<S;v++){c[h].ids[v]=getUshort(t,u+y);y+=2}}}return c}if(12===m){getLong(t,r+d+4);var _=getLong(t,r+d+12);u=r+d+16;c=[];for(h=0;h<_;h++){c.push({start:getLong(t,u),end:getLong(t,u+4),idDelta:getLong(t,u+8)-getLong(t,u)});u+=12}return c}throw new l.FormatError("unsupported cmap: ".concat(m))}function parseCff(t,r,o,l){var u=new c.CFFParser(new d.Stream(t,r,o-r),{},l).parse();return{glyphs:u.charStrings.objects,subrs:u.topDict.privateDict&&u.topDict.privateDict.subrsIndex&&u.topDict.privateDict.subrsIndex.objects,gsubrs:u.globalSubrIndex&&u.globalSubrIndex.objects,isCFFCIDFont:u.isCIDFont,fdSelect:u.fdSelect,fdArray:u.fdArray}}function lookupCmap(t,r){for(var o=r.codePointAt(0),l=0,c=0,u=t.length-1;c<u;){var h=c+u+1>>1;o<t[h].start?u=h-1:c=h}t[c].start<=o&&o<=t[c].end&&(l=t[c].idDelta+(t[c].ids?t[c].ids[o-t[c].start]:o)&65535);return{charCode:o,glyphId:l}}function compileGlyf(t,r,o){function moveTo(t,o){r.push({cmd:"moveTo",args:[t,o]})}function lineTo(t,o){r.push({cmd:"lineTo",args:[t,o]})}function quadraticCurveTo(t,o,l,c){r.push({cmd:"quadraticCurveTo",args:[t,o,l,c]})}var l,c=0,u=(t[c]<<24|t[c+1]<<16)>>16,h=0,d=0;c+=10;if(u<0)do{l=t[c]<<8|t[c+1];var m=t[c+2]<<8|t[c+3];c+=4;var g=void 0,y=void 0;if(1&l){g=(t[c]<<24|t[c+1]<<16)>>16;y=(t[c+2]<<24|t[c+3]<<16)>>16;c+=4}else{g=t[c++];y=t[c++]}if(2&l){h=g;d=y}else{h=0;d=0}var v=1,S=1,_=0,k=0;if(8&l){v=S=(t[c]<<24|t[c+1]<<16)/1073741824;c+=2}else if(64&l){v=(t[c]<<24|t[c+1]<<16)/1073741824;S=(t[c+2]<<24|t[c+3]<<16)/1073741824;c+=4}else if(128&l){v=(t[c]<<24|t[c+1]<<16)/1073741824;_=(t[c+2]<<24|t[c+3]<<16)/1073741824;k=(t[c+4]<<24|t[c+5]<<16)/1073741824;S=(t[c+6]<<24|t[c+7]<<16)/1073741824;c+=8}var C=o.glyphs[m];if(C){r.push({cmd:"save"},{cmd:"transform",args:[v,_,k,S,h,d]});compileGlyf(C,r,o);r.push({cmd:"restore"})}}while(32&l);else{var w,x,O=[];for(w=0;w<u;w++){O.push(t[c]<<8|t[c+1]);c+=2}c+=2+(t[c]<<8|t[c+1]);for(var T=O[O.length-1]+1,R=[];R.length<T;){var E=1;8&(l=t[c++])&&(E+=t[c++]);for(;E-- >0;)R.push({flags:l})}for(w=0;w<T;w++){switch(18&R[w].flags){case 0:h+=(t[c]<<24|t[c+1]<<16)>>16;c+=2;break;case 2:h-=t[c++];break;case 18:h+=t[c++]}R[w].x=h}for(w=0;w<T;w++){switch(36&R[w].flags){case 0:d+=(t[c]<<24|t[c+1]<<16)>>16;c+=2;break;case 4:d-=t[c++];break;case 36:d+=t[c++]}R[w].y=d}var M=0;for(c=0;c<u;c++){var D=O[c],j=R.slice(M,D+1);if(1&j[0].flags)j.push(j[0]);else if(1&j[j.length-1].flags)j.unshift(j[j.length-1]);else{var L={flags:1,x:(j[0].x+j[j.length-1].x)/2,y:(j[0].y+j[j.length-1].y)/2};j.unshift(L);j.push(L)}moveTo(j[0].x,j[0].y);for(w=1,x=j.length;w<x;w++)if(1&j[w].flags)lineTo(j[w].x,j[w].y);else if(1&j[w+1].flags){quadraticCurveTo(j[w].x,j[w].y,j[w+1].x,j[w+1].y);w++}else quadraticCurveTo(j[w].x,j[w].y,(j[w].x+j[w+1].x)/2,(j[w].y+j[w+1].y)/2);M=D+1}}}function compileCharString(t,r,o,c){function moveTo(t,o){r.push({cmd:"moveTo",args:[t,o]})}function lineTo(t,o){r.push({cmd:"lineTo",args:[t,o]})}function bezierCurveTo(t,o,l,c,u,h){r.push({cmd:"bezierCurveTo",args:[t,o,l,c,u,h]})}var u=[],d=0,m=0,g=0;!function parse(t){for(var y=0;y<t.length;){var v=!1,S=t[y++],_=void 0,k=void 0,C=void 0,w=void 0,x=void 0,O=void 0,T=void 0,R=void 0;switch(S){case 1:case 3:g+=u.length>>1;v=!0;break;case 4:m+=u.pop();moveTo(d,m);v=!0;break;case 5:for(;u.length>0;){d+=u.shift();m+=u.shift();lineTo(d,m)}break;case 6:for(;u.length>0;){lineTo(d+=u.shift(),m);if(0===u.length)break;m+=u.shift();lineTo(d,m)}break;case 7:for(;u.length>0;){m+=u.shift();lineTo(d,m);if(0===u.length)break;lineTo(d+=u.shift(),m)}break;case 8:for(;u.length>0;){_=d+u.shift();C=m+u.shift();k=_+u.shift();w=C+u.shift();d=k+u.shift();m=w+u.shift();bezierCurveTo(_,C,k,w,d,m)}break;case 10:T=u.pop();R=null;if(o.isCFFCIDFont){var E=o.fdSelect.getFDIndex(c);if(E>=0&&E<o.fdArray.length){var M=o.fdArray[E],D=void 0;M.privateDict&&M.privateDict.subrsIndex&&(D=M.privateDict.subrsIndex.objects);D&&(R=D[T+=getSubroutineBias(D)])}else(0,l.warn)("Invalid fd index for glyph index.")}else R=o.subrs[T+o.subrsBias];R&&parse(R);break;case 11:return;case 12:switch(S=t[y++]){case 34:k=(_=d+u.shift())+u.shift();x=m+u.shift();d=k+u.shift();bezierCurveTo(_,m,k,x,d,x);k=(_=d+u.shift())+u.shift();d=k+u.shift();bezierCurveTo(_,x,k,m,d,m);break;case 35:_=d+u.shift();C=m+u.shift();k=_+u.shift();w=C+u.shift();d=k+u.shift();m=w+u.shift();bezierCurveTo(_,C,k,w,d,m);_=d+u.shift();C=m+u.shift();k=_+u.shift();w=C+u.shift();d=k+u.shift();m=w+u.shift();bezierCurveTo(_,C,k,w,d,m);u.pop();break;case 36:bezierCurveTo(_=d+u.shift(),x=m+u.shift(),k=_+u.shift(),O=x+u.shift(),d=k+u.shift(),O);bezierCurveTo(_=d+u.shift(),O,k=_+u.shift(),O+u.shift(),d=k+u.shift(),m);break;case 37:var j=d,L=m;_=d+u.shift();C=m+u.shift();k=_+u.shift();w=C+u.shift();d=k+u.shift();m=w+u.shift();bezierCurveTo(_,C,k,w,d,m);_=d+u.shift();C=m+u.shift();k=_+u.shift();w=C+u.shift();d=k;m=w;Math.abs(d-j)>Math.abs(m-L)?d+=u.shift():m+=u.shift();bezierCurveTo(_,C,k,w,d,m);break;default:throw new l.FormatError("unknown operator: 12 ".concat(S))}break;case 14:if(u.length>=4){var N=u.pop(),U=u.pop();m=u.pop();d=u.pop();r.push({cmd:"save"},{cmd:"translate",args:[d,m]});var H=lookupCmap(o.cmap,String.fromCharCode(o.glyphNameMap[h.StandardEncoding[N]]));compileCharString(o.glyphs[H.glyphId],r,o,H.glyphId);r.push({cmd:"restore"});H=lookupCmap(o.cmap,String.fromCharCode(o.glyphNameMap[h.StandardEncoding[U]]));compileCharString(o.glyphs[H.glyphId],r,o,H.glyphId)}return;case 18:g+=u.length>>1;v=!0;break;case 19:case 20:y+=(g+=u.length>>1)+7>>3;v=!0;break;case 21:m+=u.pop();moveTo(d+=u.pop(),m);v=!0;break;case 22:moveTo(d+=u.pop(),m);v=!0;break;case 23:g+=u.length>>1;v=!0;break;case 24:for(;u.length>2;){_=d+u.shift();C=m+u.shift();k=_+u.shift();w=C+u.shift();d=k+u.shift();m=w+u.shift();bezierCurveTo(_,C,k,w,d,m)}d+=u.shift();m+=u.shift();lineTo(d,m);break;case 25:for(;u.length>6;){d+=u.shift();m+=u.shift();lineTo(d,m)}_=d+u.shift();C=m+u.shift();k=_+u.shift();w=C+u.shift();d=k+u.shift();m=w+u.shift();bezierCurveTo(_,C,k,w,d,m);break;case 26:u.length%2&&(d+=u.shift());for(;u.length>0;){_=d;C=m+u.shift();k=_+u.shift();w=C+u.shift();d=k;m=w+u.shift();bezierCurveTo(_,C,k,w,d,m)}break;case 27:u.length%2&&(m+=u.shift());for(;u.length>0;)bezierCurveTo(_=d+u.shift(),C=m,k=_+u.shift(),w=C+u.shift(),d=k+u.shift(),m=w);break;case 28:u.push((t[y]<<24|t[y+1]<<16)>>16);y+=2;break;case 29:T=u.pop()+o.gsubrsBias;(R=o.gsubrs[T])&&parse(R);break;case 30:for(;u.length>0;){_=d;C=m+u.shift();k=_+u.shift();w=C+u.shift();d=k+u.shift();m=w+(1===u.length?u.shift():0);bezierCurveTo(_,C,k,w,d,m);if(0===u.length)break;_=d+u.shift();C=m;k=_+u.shift();w=C+u.shift();m=w+u.shift();bezierCurveTo(_,C,k,w,d=k+(1===u.length?u.shift():0),m)}break;case 31:for(;u.length>0;){_=d+u.shift();C=m;k=_+u.shift();w=C+u.shift();m=w+u.shift();bezierCurveTo(_,C,k,w,d=k+(1===u.length?u.shift():0),m);if(0===u.length)break;_=d;C=m+u.shift();k=_+u.shift();w=C+u.shift();d=k+u.shift();m=w+(1===u.length?u.shift():0);bezierCurveTo(_,C,k,w,d,m)}break;default:if(S<32)throw new l.FormatError("unknown operator: ".concat(S));if(S<247)u.push(S-139);else if(S<251)u.push(256*(S-247)+t[y++]+108);else if(S<255)u.push(256*-(S-251)-t[y++]-108);else{u.push((t[y]<<24|t[y+1]<<16|t[y+2]<<8|t[y+3])/65536);y+=4}}v&&(u.length=0)}}(t)}var m=[],g=function(){function CompiledFont(t){_classCallCheck(this,CompiledFont);this.constructor===CompiledFont&&(0,l.unreachable)("Cannot initialize CompiledFont.");this.fontMatrix=t;this.compiledGlyphs=Object.create(null);this.compiledCharCodeToGlyphId=Object.create(null)}_createClass(CompiledFont,[{key:"getPathJs",value:function getPathJs(t){var r=lookupCmap(this.cmap,t),o=r.charCode,l=r.glyphId,c=this.compiledGlyphs[l];if(!c)try{c=this.compileGlyph(this.glyphs[l],l);this.compiledGlyphs[l]=c}catch(t){this.compiledGlyphs[l]=m;void 0===this.compiledCharCodeToGlyphId[o]&&(this.compiledCharCodeToGlyphId[o]=l);throw t}void 0===this.compiledCharCodeToGlyphId[o]&&(this.compiledCharCodeToGlyphId[o]=l);return c}},{key:"compileGlyph",value:function compileGlyph(t,r){if(!t||0===t.length||14===t[0])return m;var o=this.fontMatrix;if(this.isCFFCIDFont){var c=this.fdSelect.getFDIndex(r);if(c>=0&&c<this.fdArray.length){o=this.fdArray[c].getByName("FontMatrix")||l.FONT_IDENTITY_MATRIX}else(0,l.warn)("Invalid fd index for glyph index.")}var u=[{cmd:"save"},{cmd:"transform",args:o.slice()},{cmd:"scale",args:["size","-size"]}];this.compileGlyphImpl(t,u,r);u.push({cmd:"restore"});return u}},{key:"compileGlyphImpl",value:function compileGlyphImpl(){(0,l.unreachable)("Children classes should implement this.")}},{key:"hasBuiltPath",value:function hasBuiltPath(t){var r=lookupCmap(this.cmap,t),o=r.charCode,l=r.glyphId;return void 0!==this.compiledGlyphs[l]&&void 0!==this.compiledCharCodeToGlyphId[o]}}]);return CompiledFont}(),y=function(t){_inherits(TrueTypeCompiled,t);var r=_createSuper(TrueTypeCompiled);function TrueTypeCompiled(t,o,l){var c;_classCallCheck(this,TrueTypeCompiled);(c=r.call(this,l||[488e-6,0,0,488e-6,0,0])).glyphs=t;c.cmap=o;return c}_createClass(TrueTypeCompiled,[{key:"compileGlyphImpl",value:function compileGlyphImpl(t,r){compileGlyf(t,r,this)}}]);return TrueTypeCompiled}(g),v=function(t){_inherits(Type2Compiled,t);var r=_createSuper(Type2Compiled);function Type2Compiled(t,o,l,c){var h;_classCallCheck(this,Type2Compiled);(h=r.call(this,l||[.001,0,0,.001,0,0])).glyphs=t.glyphs;h.gsubrs=t.gsubrs||[];h.subrs=t.subrs||[];h.cmap=o;h.glyphNameMap=c||(0,u.getGlyphsUnicode)();h.gsubrsBias=getSubroutineBias(h.gsubrs);h.subrsBias=getSubroutineBias(h.subrs);h.isCFFCIDFont=t.isCFFCIDFont;h.fdSelect=t.fdSelect;h.fdArray=t.fdArray;return h}_createClass(Type2Compiled,[{key:"compileGlyphImpl",value:function compileGlyphImpl(t,r,o){compileCharString(t,r,this,o)}}]);return Type2Compiled}(g),S=function(){function FontRendererFactory(){_classCallCheck(this,FontRendererFactory)}_createClass(FontRendererFactory,null,[{key:"create",value:function create(t,r){for(var o,c,u,h,d,m,g=new Uint8Array(t.data),S=getUshort(g,4),_=0,k=12;_<S;_++,k+=16){var C=(0,l.bytesToString)(g.subarray(k,k+4)),w=getLong(g,k+8),x=getLong(g,k+12);switch(C){case"cmap":o=parseCmap(g,w);break;case"glyf":c=g.subarray(w,w+x);break;case"loca":u=g.subarray(w,w+x);break;case"head":m=getUshort(g,w+18);d=getUshort(g,w+50);break;case"CFF ":h=parseCff(g,w,w+x,r)}}if(c){var O=m?[1/m,0,0,1/m,0,0]:t.fontMatrix;return new y(function parseGlyfTable(t,r,o){var l,c;if(o){l=4;c=function fontItemDecodeLong(t,r){return t[r]<<24|t[r+1]<<16|t[r+2]<<8|t[r+3]}}else{l=2;c=function fontItemDecode(t,r){return t[r]<<9|t[r+1]<<1}}for(var u=[],h=c(r,0),d=l;d<r.length;d+=l){var m=c(r,d);u.push(t.subarray(h,m));h=m}return u}(c,u,d),o,O)}return new v(h,o,t.fontMatrix,t.glyphNameMap)}}]);return FontRendererFactory}();r.FontRendererFactory=S},(t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.GlyfTable=void 0;function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||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 _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}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 u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var o=function(){function GlyfTable(t){var r=t.glyfTable,o=t.isGlyphLocationsLong,c=t.locaTable,u=t.numGlyphs;_classCallCheck(this,GlyfTable);this.glyphs=[];for(var h=new DataView(c.buffer,c.byteOffset,c.byteLength),d=new DataView(r.buffer,r.byteOffset,r.byteLength),m=o?4:2,g=o?h.getUint32(0):2*h.getUint16(0),y=0,v=0;v<u;v++){y+=m;var S=o?h.getUint32(y):2*h.getUint16(y);if(S!==g){var _=l.parse(g,d);this.glyphs.push(_);g=S}else this.glyphs.push(new l({}))}}_createClass(GlyfTable,[{key:"getSize",value:function getSize(){return this.glyphs.reduce((function(t,r){return t+(r.getSize()+3&-4)}),0)}},{key:"write",value:function write(){var t=this.getSize(),r=new DataView(new ArrayBuffer(t)),o=t>131070,l=o?4:2,c=new DataView(new ArrayBuffer((this.glyphs.length+1)*l));o?c.setUint32(0,0):c.setUint16(0,0);var u,h=0,d=0,m=_createForOfIteratorHelper(this.glyphs);try{for(m.s();!(u=m.n()).done;){h=(h+=u.value.write(h,r))+3&-4;d+=l;o?c.setUint32(d,h):c.setUint16(d,h>>1)}}catch(t){m.e(t)}finally{m.f()}return{isLocationLong:o,loca:new Uint8Array(c.buffer),glyf:new Uint8Array(r.buffer)}}},{key:"scale",value:function scale(t){for(var r=0,o=this.glyphs.length;r<o;r++)this.glyphs[r].scale(t[r])}}]);return GlyfTable}();r.GlyfTable=o;var l=function(){function Glyph(t){var r=t.header,o=void 0===r?null:r,l=t.simple,c=void 0===l?null:l,u=t.composites,h=void 0===u?null:u;_classCallCheck(this,Glyph);this.header=o;this.simple=c;this.composites=h}_createClass(Glyph,[{key:"getSize",value:function getSize(){if(!this.header)return 0;var t=this.simple?this.simple.getSize():this.composites.reduce((function(t,r){return t+r.getSize()}),0);return this.header.getSize()+t}},{key:"write",value:function write(t,r){if(!this.header)return 0;var o=t;t+=this.header.write(t,r);if(this.simple)t+=this.simple.write(t,r);else{var l,c=_createForOfIteratorHelper(this.composites);try{for(c.s();!(l=c.n()).done;){t+=l.value.write(t,r)}}catch(t){c.e(t)}finally{c.f()}}return t-o}},{key:"scale",value:function scale(t){if(this.header){var r=(this.header.xMin+this.header.xMax)/2;this.header.scale(r,t);if(this.simple)this.simple.scale(r,t);else{var o,l=_createForOfIteratorHelper(this.composites);try{for(l.s();!(o=l.n()).done;){o.value.scale(r,t)}}catch(t){l.e(t)}finally{l.f()}}}}}],[{key:"parse",value:function parse(t,r){var o=_slicedToArray(c.parse(t,r),2),l=o[0],u=o[1];t+=l;if(u.numberOfContours<0){for(var m=[];;){var g=_slicedToArray(d.parse(t,r),2),y=g[0],v=g[1];t+=y;m.push(v);if(!(32&v.flags))break}return new Glyph({header:u,composites:m})}return new Glyph({header:u,simple:h.parse(t,r,u.numberOfContours)})}}]);return Glyph}(),c=function(){function GlyphHeader(t){var r=t.numberOfContours,o=t.xMin,l=t.yMin,c=t.xMax,u=t.yMax;_classCallCheck(this,GlyphHeader);this.numberOfContours=r;this.xMin=o;this.yMin=l;this.xMax=c;this.yMax=u}_createClass(GlyphHeader,[{key:"getSize",value:function getSize(){return 10}},{key:"write",value:function write(t,r){r.setInt16(t,this.numberOfContours);r.setInt16(t+2,this.xMin);r.setInt16(t+4,this.yMin);r.setInt16(t+6,this.xMax);r.setInt16(t+8,this.yMax);return 10}},{key:"scale",value:function scale(t,r){this.xMin=Math.round(t+(this.xMin-t)*r);this.xMax=Math.round(t+(this.xMax-t)*r)}}],[{key:"parse",value:function parse(t,r){return[10,new GlyphHeader({numberOfContours:r.getInt16(t),xMin:r.getInt16(t+2),yMin:r.getInt16(t+4),xMax:r.getInt16(t+6),yMax:r.getInt16(t+8)})]}}]);return GlyphHeader}(),u=function Contour(t){var r=t.flags,o=t.xCoordinates,l=t.yCoordinates;_classCallCheck(this,Contour);this.xCoordinates=o;this.yCoordinates=l;this.flags=r},h=function(){function SimpleGlyph(t){var r=t.contours,o=t.instructions;_classCallCheck(this,SimpleGlyph);this.contours=r;this.instructions=o}_createClass(SimpleGlyph,[{key:"getSize",value:function getSize(){var t,r=2*this.contours.length+2+this.instructions.length,o=0,l=0,c=_createForOfIteratorHelper(this.contours);try{for(c.s();!(t=c.n()).done;){var u=t.value;r+=u.flags.length;for(var h=0,d=u.xCoordinates.length;h<d;h++){var m=u.xCoordinates[h],g=u.yCoordinates[h],y=Math.abs(m-o);y>255?r+=2:y>0&&(r+=1);o=m;(y=Math.abs(g-l))>255?r+=2:y>0&&(r+=1);l=g}}}catch(t){c.e(t)}finally{c.f()}return r}},{key:"write",value:function write(t,r){var o,l=t,c=[],u=[],h=[],d=0,m=0,g=_createForOfIteratorHelper(this.contours);try{for(g.s();!(o=g.n()).done;){for(var y=o.value,v=0,S=y.xCoordinates.length;v<S;v++){var _=y.flags[v],k=y.xCoordinates[v],C=k-d;if(0===C){_|=16;c.push(0)}else{var w=Math.abs(C);if(w<=255){_|=C>=0?18:2;c.push(w)}else c.push(C)}d=k;var x=y.yCoordinates[v];if(0===(C=x-m)){_|=32;u.push(0)}else{var O=Math.abs(C);if(O<=255){_|=C>=0?36:4;u.push(O)}else u.push(C)}m=x;h.push(_)}r.setUint16(t,c.length-1);t+=2}}catch(t){g.e(t)}finally{g.f()}r.setUint16(t,this.instructions.length);t+=2;if(this.instructions.length){new Uint8Array(r.buffer,0,r.buffer.byteLength).set(this.instructions,t);t+=this.instructions.length}for(var T=0,R=h;T<R.length;T++){var E=R[T];r.setUint8(t++,E)}for(var M=0,D=c.length;M<D;M++){var j=c[M],L=h[M];if(2&L)r.setUint8(t++,j);else if(!(16&L)){r.setInt16(t,j);t+=2}}for(var N=0,U=u.length;N<U;N++){var H=u[N],W=h[N];if(4&W)r.setUint8(t++,H);else if(!(32&W)){r.setInt16(t,H);t+=2}}return t-l}},{key:"scale",value:function scale(t,r){var o,l=_createForOfIteratorHelper(this.contours);try{for(l.s();!(o=l.n()).done;){var c=o.value;if(0!==c.xCoordinates.length)for(var u=0,h=c.xCoordinates.length;u<h;u++)c.xCoordinates[u]=Math.round(t+(c.xCoordinates[u]-t)*r)}}catch(t){l.e(t)}finally{l.f()}}}],[{key:"parse",value:function parse(t,r,o){for(var l=[],c=0;c<o;c++){var h=r.getUint16(t);t+=2;l.push(h)}var d=l[o-1]+1,m=r.getUint16(t);t+=2;var g=new Uint8Array(r).slice(t,t+m);t+=m;for(var y=[],v=0;v<d;t++,v++){var S=r.getUint8(t);y.push(S);if(8&S){var _=r.getUint8(++t);S^=8;for(var k=0;k<_;k++)y.push(S);v+=_}}for(var C=[],w=[],x=[],O=[],T=[],R=0,E=0,M=0;M<d;M++){var D=y[M];if(2&D){var j=r.getUint8(t++);E+=16&D?j:-j;w.push(E)}else if(16&D)w.push(E);else{E+=r.getInt16(t);t+=2;w.push(E)}if(l[R]===M){R++;C.push(w);w=[]}}E=0;R=0;for(var L=0;L<d;L++){var N=y[L];if(4&N){var U=r.getUint8(t++);E+=32&N?U:-U;x.push(E)}else if(32&N)x.push(E);else{E+=r.getInt16(t);t+=2;x.push(E)}O.push(1&N|64&N);if(l[R]===L){w=C[R];R++;T.push(new u({flags:O,xCoordinates:w,yCoordinates:x}));x=[];O=[]}}return new SimpleGlyph({contours:T,instructions:g})}}]);return SimpleGlyph}(),d=function(){function CompositeGlyph(t){var r=t.flags,o=t.glyphIndex,l=t.argument1,c=t.argument2,u=t.transf,h=t.instructions;_classCallCheck(this,CompositeGlyph);this.flags=r;this.glyphIndex=o;this.argument1=l;this.argument2=c;this.transf=u;this.instructions=h}_createClass(CompositeGlyph,[{key:"getSize",value:function getSize(){var t=4+2*this.transf.length;256&this.flags&&(t+=2+this.instructions.length);t+=2;2&this.flags?this.argument1>=-128&&this.argument1<=127&&this.argument2>=-128&&this.argument2<=127||(t+=2):this.argument1>=0&&this.argument1<=255&&this.argument2>=0&&this.argument2<=255||(t+=2);return t}},{key:"write",value:function write(t,r){var o=t;2&this.flags?this.argument1>=-128&&this.argument1<=127&&this.argument2>=-128&&this.argument2<=127||(this.flags|=1):this.argument1>=0&&this.argument1<=255&&this.argument2>=0&&this.argument2<=255||(this.flags|=1);r.setUint16(t,this.flags);r.setUint16(t+2,this.glyphIndex);t+=4;if(1&this.flags){if(2&this.flags){r.setInt16(t,this.argument1);r.setInt16(t+2,this.argument2)}else{r.setUint16(t,this.argument1);r.setUint16(t+2,this.argument2)}t+=4}else{r.setUint8(t,this.argument1);r.setUint8(t+1,this.argument2);t+=2}if(256&this.flags){r.setUint16(t,this.instructions.length);t+=2;if(this.instructions.length){new Uint8Array(r.buffer,0,r.buffer.byteLength).set(this.instructions,t);t+=this.instructions.length}}return t-o}},{key:"scale",value:function scale(t,r){}}],[{key:"parse",value:function parse(t,r){var o,l,c=t,u=[],h=r.getUint16(t),d=r.getUint16(t+2);t+=4;if(1&h){if(2&h){o=r.getInt16(t);l=r.getInt16(t+2)}else{o=r.getUint16(t);l=r.getUint16(t+2)}t+=4;h^=1}else{o=r.getUint8(t);l=r.getUint8(t+1);if(2&h){var m=127&o;o=128&o?-m:m;var g=127&l;l=128&l?-g:g}t+=2}if(8&h){u.push(r.getUint16(t));t+=2}else if(64&h){u.push(r.getUint16(t),r.getUint16(t+2));t+=4}else if(128&h){u.push(r.getUint16(t),r.getUint16(t+2),r.getUint16(t+4),r.getUint16(t+6));t+=8}var y=null;if(256&h){var v=r.getUint16(t);t+=2;y=new Uint8Array(r).slice(t,t+v);t+=v}return[t-c,new CompositeGlyph({flags:h,glyphIndex:d,argument1:o,argument2:l,transf:u,instructions:y})]}}]);return CompositeGlyph}()},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.OpenTypeFileBuilder=void 0;var l=o(122),c=o(4);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function writeInt16(t,r,o){t[r]=o>>8&255;t[r+1]=255&o}function writeInt32(t,r,o){t[r]=o>>24&255;t[r+1]=o>>16&255;t[r+2]=o>>8&255;t[r+3]=255&o}function writeData(t,r,o){if(o instanceof Uint8Array)t.set(o,r);else if("string"==typeof o)for(var l=0,c=o.length;l<c;l++)t[r++]=255&o.charCodeAt(l);else for(var u=0,h=o.length;u<h;u++)t[r++]=255&o[u]}var u=function(){function OpenTypeFileBuilder(t){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,OpenTypeFileBuilder);this.sfnt=t;this.tables=Object.create(null)}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(OpenTypeFileBuilder,[{key:"toArray",value:function toArray(){var t=this.sfnt,r=this.tables,o=Object.keys(r);o.sort();var u,h,d,m,g,y=o.length,v=12+16*y,S=[v];for(u=0;u<y;u++){v+=((m=r[o[u]]).length+3&-4)>>>0;S.push(v)}var _=new Uint8Array(v);for(u=0;u<y;u++){m=r[o[u]];writeData(_,S[u],m)}"true"===t&&(t=(0,c.string32)(65536));_[0]=255&t.charCodeAt(0);_[1]=255&t.charCodeAt(1);_[2]=255&t.charCodeAt(2);_[3]=255&t.charCodeAt(3);writeInt16(_,4,y);var k=OpenTypeFileBuilder.getSearchParams(y,16);writeInt16(_,6,k.range);writeInt16(_,8,k.entry);writeInt16(_,10,k.rangeShift);v=12;for(u=0;u<y;u++){g=o[u];_[v]=255&g.charCodeAt(0);_[v+1]=255&g.charCodeAt(1);_[v+2]=255&g.charCodeAt(2);_[v+3]=255&g.charCodeAt(3);var C=0;for(h=S[u],d=S[u+1];h<d;h+=4){C=C+(0,l.readUint32)(_,h)>>>0}writeInt32(_,v+4,C);writeInt32(_,v+8,S[u]);writeInt32(_,v+12,r[g].length);v+=16}return _}},{key:"addTable",value:function addTable(t,r){if(t in this.tables)throw new Error("Table "+t+" already exists");this.tables[t]=r}}],[{key:"getSearchParams",value:function getSearchParams(t,r){for(var o=1,l=0;(o^t)>o;){o<<=1;l++}var c=o*r;return{range:c,entry:l,rangeShift:r*t-c}}}]);return OpenTypeFileBuilder}();r.OpenTypeFileBuilder=u},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.Type1Font=void 0;var l=o(158),c=o(131),u=o(122),h=o(123),d=o(167),m=o(4);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function findBlock(t,r,o){for(var l=t.length,c=r.length,h=l-c,d=o,m=!1;d<h;){for(var g=0;g<c&&t[d+g]===r[g];)g++;if(g>=c){d+=g;for(;d<l&&(0,u.isWhiteSpace)(t[d]);)d++;m=!0;break}d++}return{found:m,length:d}}var g=function(){function Type1Font(t,r,o){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,Type1Font);var l=o.length1,u=(o.length2,r.peekBytes(6)),g=128===u[0]&&1===u[1];if(g){r.skip(6);l=u[5]<<24|u[4]<<16|u[3]<<8|u[2]}var y=function getHeaderBlock(t,r){var o,l,c,u,d=[101,101,120,101,99],g=t.pos;try{l=(o=t.getBytes(r)).length}catch(t){}if(l===r&&(c=findBlock(o,d,r-2*d.length)).found&&c.length===r)return{stream:new h.Stream(o),length:r};(0,m.warn)('Invalid "Length1" property in Type1 font -- trying to recover.');t.pos=g;for(;0!==(c=findBlock(t.peekBytes(2048),d,0)).length;){t.pos+=c.length;if(c.found){u=t.pos-g;break}}t.pos=g;if(u)return{stream:new h.Stream(t.getBytes(u)),length:u};(0,m.warn)('Unable to recover "Length1" property in Type1 font -- using as is.');return{stream:new h.Stream(t.getBytes(r)),length:r}}(r,l);new d.Type1Parser(y.stream,!1,c.SEAC_ANALYSIS_ENABLED).extractFontHeader(o);g&&(u=r.getBytes(6))[5]<<24|u[4]<<16|u[3]<<8|u[2];var v=function getEexecBlock(t,r){var o=t.getBytes();return{stream:new h.Stream(o),length:o.length}}(r),S=new d.Type1Parser(v.stream,!0,c.SEAC_ANALYSIS_ENABLED).extractFontProgram(o);for(var _ in S.properties)o[_]=S.properties[_];var k=S.charstrings,C=this.getType2Charstrings(k),w=this.getType2Subrs(S.subrs);this.charstrings=k;this.data=this.wrap(t,C,this.charstrings,w,o);this.seacs=this.getSeacs(S.charstrings)}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(Type1Font,[{key:"numGlyphs",get:function get(){return this.charstrings.length+1}},{key:"getCharset",value:function getCharset(){for(var t=[".notdef"],r=this.charstrings,o=0;o<r.length;o++)t.push(r[o].glyphName);return t}},{key:"getGlyphMapping",value:function getGlyphMapping(t){var r=this.charstrings;if(t.composite){for(var o=Object.create(null),l=0,u=r.length;l<u;l++){o[t.cMap.charCodeOf(l)]=l+1}return o}var h,d,m=[".notdef"];for(d=0;d<r.length;d++)m.push(r[d].glyphName);var g=t.builtInEncoding;if(g){h=Object.create(null);for(var y in g)(d=m.indexOf(g[y]))>=0&&(h[y]=d)}return(0,c.type1FontGlyphMapping)(t,h,m)}},{key:"hasGlyphId",value:function hasGlyphId(t){return!(t<0||t>=this.numGlyphs)&&(0===t||this.charstrings[t-1].charstring.length>0)}},{key:"getSeacs",value:function getSeacs(t){for(var r=[],o=0,l=t.length;o<l;o++){var c=t[o];c.seac&&(r[o+1]=c.seac)}return r}},{key:"getType2Charstrings",value:function getType2Charstrings(t){for(var r=[],o=0,l=t.length;o<l;o++)r.push(t[o].charstring);return r}},{key:"getType2Subrs",value:function getType2Subrs(t){var r=0,o=t.length;r=o<1133?107:o<33769?1131:32768;var l,c=[];for(l=0;l<r;l++)c.push([11]);for(l=0;l<o;l++)c.push(t[l]);return c}},{key:"wrap",value:function wrap(t,r,o,c,u){var h=new l.CFF;h.header=new l.CFFHeader(1,0,4,4);h.names=[t];var d=new l.CFFTopDict;d.setByName("version",391);d.setByName("Notice",392);d.setByName("FullName",393);d.setByName("FamilyName",394);d.setByName("Weight",395);d.setByName("Encoding",null);d.setByName("FontMatrix",u.fontMatrix);d.setByName("FontBBox",u.bbox);d.setByName("charset",null);d.setByName("CharStrings",null);d.setByName("Private",null);h.topDict=d;var m=new l.CFFStrings;m.add("Version 0.11");m.add("See original notice");m.add(t);m.add(t);m.add("Medium");h.strings=m;h.globalSubrIndex=new l.CFFIndex;var g,y,v=r.length,S=[".notdef"];for(g=0;g<v;g++){var _=o[g].glyphName;-1===l.CFFStandardStrings.indexOf(_)&&m.add(_);S.push(_)}h.charset=new l.CFFCharset(!1,0,S);var k=new l.CFFIndex;k.add([139,14]);for(g=0;g<v;g++)k.add(r[g]);h.charStrings=k;var C=new l.CFFPrivateDict;C.setByName("Subrs",null);var w=["BlueValues","OtherBlues","FamilyBlues","FamilyOtherBlues","StemSnapH","StemSnapV","BlueShift","BlueFuzz","BlueScale","LanguageGroup","ExpansionFactor","ForceBold","StdHW","StdVW"];for(g=0,y=w.length;g<y;g++){var x=w[g];if(x in u.privateData){var O=u.privateData[x];if(Array.isArray(O))for(var T=O.length-1;T>0;T--)O[T]-=O[T-1];C.setByName(x,O)}}h.topDict.privateDict=C;var R=new l.CFFIndex;for(g=0,y=c.length;g<y;g++)R.add(c[g]);C.subrsIndex=R;return new l.CFFCompiler(h).compile()}}]);return Type1Font}();r.Type1Font=g},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.Type1Parser=void 0;var l=o(132),c=o(122),u=o(123),h=o(4);function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var d=function Type1CharStringClosure(){var t=[4],r=[5],o=[6],l=[7],c=[8],u=[12,35],d=[14],m=[21],g=[22],y=[30],v=[31];return function(){function Type1CharString(){_classCallCheck(this,Type1CharString);this.width=0;this.lsb=0;this.flexing=!1;this.output=[];this.stack=[]}_createClass(Type1CharString,[{key:"convert",value:function convert(S,_,k){for(var C,w,x,O=S.length,T=!1,R=0;R<O;R++){var E=S[R];if(E<32){12===E&&(E=(E<<8)+S[++R]);switch(E){case 1:case 3:this.stack=[];break;case 4:if(this.flexing){if(this.stack.length<1){T=!0;break}var M=this.stack.pop();this.stack.push(0,M);break}T=this.executeCommand(1,t);break;case 5:T=this.executeCommand(2,r);break;case 6:T=this.executeCommand(1,o);break;case 7:T=this.executeCommand(1,l);break;case 8:T=this.executeCommand(6,c);break;case 9:this.stack=[];break;case 10:if(this.stack.length<1){T=!0;break}if(!_[x=this.stack.pop()]){T=!0;break}T=this.convert(_[x],_,k);break;case 11:return T;case 13:if(this.stack.length<2){T=!0;break}C=this.stack.pop();w=this.stack.pop();this.lsb=w;this.width=C;this.stack.push(C,w);T=this.executeCommand(2,g);break;case 14:this.output.push(d[0]);break;case 21:if(this.flexing)break;T=this.executeCommand(2,m);break;case 22:if(this.flexing){this.stack.push(0);break}T=this.executeCommand(1,g);break;case 30:T=this.executeCommand(4,y);break;case 31:T=this.executeCommand(4,v);break;case 3072:case 3073:case 3074:this.stack=[];break;case 3078:if(k){var D=this.stack[this.stack.length-5];this.seac=this.stack.splice(-4,4);this.seac[0]+=this.lsb-D;T=this.executeCommand(0,d)}else T=this.executeCommand(4,d);break;case 3079:if(this.stack.length<4){T=!0;break}this.stack.pop();C=this.stack.pop();var j=this.stack.pop();w=this.stack.pop();this.lsb=w;this.width=C;this.stack.push(C,w,j);T=this.executeCommand(3,m);break;case 3084:if(this.stack.length<2){T=!0;break}var L=this.stack.pop(),N=this.stack.pop();this.stack.push(N/L);break;case 3088:if(this.stack.length<2){T=!0;break}x=this.stack.pop();var U=this.stack.pop();if(0===x&&3===U){var H=this.stack.splice(this.stack.length-17,17);this.stack.push(H[2]+H[0],H[3]+H[1],H[4],H[5],H[6],H[7],H[8],H[9],H[10],H[11],H[12],H[13],H[14]);T=this.executeCommand(13,u,!0);this.flexing=!1;this.stack.push(H[15],H[16])}else 1===x&&0===U&&(this.flexing=!0);break;case 3089:break;case 3105:this.stack=[];break;default:(0,h.warn)('Unknown type 1 charstring command of "'+E+'"')}if(T)break}else{E<=246?E-=139:E=E<=250?256*(E-247)+S[++R]+108:E<=254?-256*(E-251)-S[++R]-108:(255&S[++R])<<24|(255&S[++R])<<16|(255&S[++R])<<8|(255&S[++R])<<0;this.stack.push(E)}}return T}},{key:"executeCommand",value:function executeCommand(t,r,o){var l=this.stack.length;if(t>l)return!0;for(var c=l-t,u=c;u<l;u++){var h=this.stack[u];if(Number.isInteger(h))this.output.push(28,h>>8&255,255&h);else{h=65536*h|0;this.output.push(255,h>>24&255,h>>16&255,h>>8&255,255&h)}}this.output.push.apply(this.output,r);o?this.stack.splice(c,t):this.stack.length=0;return!1}}]);return Type1CharString}()}(),m=function Type1ParserClosure(){function isHexDigit(t){return t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102}function decrypt(t,r,o){if(o>=t.length)return new Uint8Array(0);var l,c,u=0|r;for(l=0;l<o;l++)u=52845*(t[l]+u)+22719&65535;var h=t.length-o,d=new Uint8Array(h);for(l=o,c=0;c<h;l++,c++){var m=t[l];d[c]=m^u>>8;u=52845*(m+u)+22719&65535}return d}function isSpecial(t){return 47===t||91===t||93===t||123===t||125===t||40===t||41===t}return function(){function Type1Parser(t,r,o){_classCallCheck(this,Type1Parser);if(r){var l=t.getBytes(),h=!((isHexDigit(l[0])||(0,c.isWhiteSpace)(l[0]))&&isHexDigit(l[1])&&isHexDigit(l[2])&&isHexDigit(l[3])&&isHexDigit(l[4])&&isHexDigit(l[5])&&isHexDigit(l[6])&&isHexDigit(l[7]));t=new u.Stream(h?decrypt(l,55665,4):function decryptAscii(t,r,o){var l,c,u=0|r,h=t.length,d=new Uint8Array(h>>>1);for(l=0,c=0;l<h;l++){var m=t[l];if(isHexDigit(m)){l++;for(var g=void 0;l<h&&!isHexDigit(g=t[l]);)l++;if(l<h){var y=parseInt(String.fromCharCode(m,g),16);d[c++]=y^u>>8;u=52845*(y+u)+22719&65535}}}return d.slice(o,c)}(l,55665,4))}this.seacAnalysisEnabled=!!o;this.stream=t;this.nextChar()}_createClass(Type1Parser,[{key:"readNumberArray",value:function readNumberArray(){this.getToken();for(var t=[];;){var r=this.getToken();if(null===r||"]"===r||"}"===r)break;t.push(parseFloat(r||0))}return t}},{key:"readNumber",value:function readNumber(){var t=this.getToken();return parseFloat(t||0)}},{key:"readInt",value:function readInt(){var t=this.getToken();return 0|parseInt(t||0,10)}},{key:"readBoolean",value:function readBoolean(){return"true"===this.getToken()?1:0}},{key:"nextChar",value:function nextChar(){return this.currentChar=this.stream.getByte()}},{key:"getToken",value:function getToken(){for(var t=!1,r=this.currentChar;;){if(-1===r)return null;if(t)10!==r&&13!==r||(t=!1);else if(37===r)t=!0;else if(!(0,c.isWhiteSpace)(r))break;r=this.nextChar()}if(isSpecial(r)){this.nextChar();return String.fromCharCode(r)}var o="";do{o+=String.fromCharCode(r);r=this.nextChar()}while(r>=0&&!(0,c.isWhiteSpace)(r)&&!isSpecial(r));return o}},{key:"readCharStrings",value:function readCharStrings(t,r){return-1===r?t:decrypt(t,4330,r)}},{key:"extractFontProgram",value:function extractFontProgram(t){var r=this.stream,o=[],l=[],c=Object.create(null);c.lenIV=4;for(var u,h,m,g,y,v={subrs:[],charstrings:[],properties:{privateData:c}};null!==(u=this.getToken());)if("/"===u)switch(u=this.getToken()){case"CharStrings":this.getToken();this.getToken();this.getToken();this.getToken();for(;null!==(u=this.getToken())&&"end"!==u;)if("/"===u){var S=this.getToken();h=this.readInt();this.getToken();m=h>0?r.getBytes(h):new Uint8Array(0);g=v.properties.privateData.lenIV;y=this.readCharStrings(m,g);this.nextChar();"noaccess"===(u=this.getToken())&&this.getToken();l.push({glyph:S,encoded:y})}break;case"Subrs":this.readInt();this.getToken();for(;"dup"===this.getToken();){var _=this.readInt();h=this.readInt();this.getToken();m=h>0?r.getBytes(h):new Uint8Array(0);g=v.properties.privateData.lenIV;y=this.readCharStrings(m,g);this.nextChar();"noaccess"===(u=this.getToken())&&this.getToken();o[_]=y}break;case"BlueValues":case"OtherBlues":case"FamilyBlues":case"FamilyOtherBlues":var k=this.readNumberArray();k.length>0&&k.length,0;break;case"StemSnapH":case"StemSnapV":v.properties.privateData[u]=this.readNumberArray();break;case"StdHW":case"StdVW":v.properties.privateData[u]=this.readNumberArray()[0];break;case"BlueShift":case"lenIV":case"BlueFuzz":case"BlueScale":case"LanguageGroup":case"ExpansionFactor":v.properties.privateData[u]=this.readNumber();break;case"ForceBold":v.properties.privateData[u]=this.readBoolean()}for(var C=0;C<l.length;C++){var w=l[C].glyph;y=l[C].encoded;var x=new d,O=x.convert(y,o,this.seacAnalysisEnabled),T=x.output;O&&(T=[14]);var R={glyphName:w,charstring:T,width:x.width,lsb:x.lsb,seac:x.seac};".notdef"===w?v.charstrings.unshift(R):v.charstrings.push(R);if(t.builtInEncoding){var E=t.builtInEncoding.indexOf(w);E>-1&&void 0===t.widths[E]&&E>=t.firstChar&&E<=t.lastChar&&(t.widths[E]=x.width)}}return v}},{key:"extractFontHeader",value:function extractFontHeader(t){for(var r;null!==(r=this.getToken());)if("/"===r)switch(r=this.getToken()){case"FontMatrix":var o=this.readNumberArray();t.fontMatrix=o;break;case"Encoding":var c=this.getToken(),u=void 0;if(/^\d+$/.test(c)){u=[];var h=0|parseInt(c,10);this.getToken();for(var d=0;d<h;d++){r=this.getToken();for(;"dup"!==r&&"def"!==r;)if(null===(r=this.getToken()))return;if("def"===r)break;var m=this.readInt();this.getToken();var g=this.getToken();u[m]=g;this.getToken()}}else u=(0,l.getEncoding)(c);t.builtInEncoding=u;break;case"FontBBox":var y=this.readNumberArray();t.ascent=Math.max(y[3],y[1]);t.descent=Math.min(y[1],y[3]);t.ascentScaled=!0}}}]);return Type1Parser}()}();r.Type1Parser=m},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.getTilingPatternIR=function getTilingPatternIR(t,r,o){var c=r.getArray("Matrix"),u=l.Util.normalizeRect(r.getArray("BBox")),h=r.get("XStep"),d=r.get("YStep"),m=r.get("PaintType"),g=r.get("TilingType");if(u[2]-u[0]==0||u[3]-u[1]==0)throw new l.FormatError("Invalid getTilingPatternIR /BBox array: [".concat(u,"]."));return["TilingPattern",o,t,c,u,h,d,m,g]};r.Pattern=void 0;var l=o(4),c=o(137),u=o(118),h=o(122);function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);if("Map"===o||"Set"===o)return Array.from(t);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return _arrayLikeToArray(t,r)}(t,r)||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 _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var d=2,m=3,g=4,y=5,v=6,S=7,_=function(){function Pattern(){_classCallCheck(this,Pattern);(0,l.unreachable)("Cannot initialize Pattern.")}_createClass(Pattern,null,[{key:"parseShading",value:function parseShading(t,r,o,c,_,k){var w=(0,u.isStream)(t)?t.dict:t,x=w.get("ShadingType");try{switch(x){case d:case m:return new C(w,r,o,_,k);case g:case y:case v:case S:return new O(t,r,o,_,k);default:throw new l.FormatError("Unsupported ShadingType: "+x)}}catch(t){if(t instanceof h.MissingDataException)throw t;c.send("UnsupportedFeature",{featureId:l.UNSUPPORTED_FEATURES.shadingPattern});(0,l.warn)(t);return new T}}}]);return Pattern}();r.Pattern=_;var k=function(){function BaseShading(){_classCallCheck(this,BaseShading);this.constructor===BaseShading&&(0,l.unreachable)("Cannot initialize BaseShading.")}_createClass(BaseShading,[{key:"getIR",value:function getIR(){(0,l.unreachable)("Abstract method `getIR` called.")}}],[{key:"SMALL_NUMBER",get:function get(){return(0,l.shadow)(this,"SMALL_NUMBER",1e-6)}}]);return BaseShading}(),C=function(t){_inherits(RadialAxialShading,t);var r=_createSuper(RadialAxialShading);function RadialAxialShading(t,o,u,h,d){var g;_classCallCheck(this,RadialAxialShading);(g=r.call(this)).coordsArr=t.getArray("Coords");g.shadingType=t.get("ShadingType");var y=c.ColorSpace.parse({cs:t.getRaw("ColorSpace")||t.getRaw("CS"),xref:o,resources:u,pdfFunctionFactory:h,localColorSpaceCache:d}),v=t.getArray("BBox");Array.isArray(v)&&4===v.length?g.bbox=l.Util.normalizeRect(v):g.bbox=null;var S=0,_=1;if(t.has("Domain")){var C=t.getArray("Domain");S=C[0];_=C[1]}var w=!1,x=!1;if(t.has("Extend")){var O=t.getArray("Extend");w=O[0];x=O[1]}if(!(g.shadingType!==m||w&&x)){var T=_slicedToArray(g.coordsArr,6),R=T[0],E=T[1],M=T[2],D=T[3],j=T[4],L=T[5],N=Math.hypot(R-D,E-j);M<=L+N&&L<=M+N&&(0,l.warn)("Unsupported radial gradient.")}g.extendStart=w;g.extendEnd=x;var U=t.getRaw("Function"),H=h.createFromArray(U),W=(_-S)/10,$=g.colorStops=[];if(S>=_||W<=0){(0,l.info)("Bad shading domain.");return _possibleConstructorReturn(g)}for(var q,X=new Float32Array(y.numComps),z=new Float32Array(1),G=0;G<=10;G++){z[0]=S+G*W;H(z,0,X,0);q=y.getRgb(X,0);var V=l.Util.makeHexColor(q[0],q[1],q[2]);$.push([G/10,V])}var Y="transparent";if(t.has("Background")){q=y.getRgb(t.get("Background"),0);Y=l.Util.makeHexColor(q[0],q[1],q[2])}if(!w){$.unshift([0,Y]);$[1][0]+=k.SMALL_NUMBER}if(!x){$[$.length-1][0]-=k.SMALL_NUMBER;$.push([1,Y])}g.colorStops=$;return g}_createClass(RadialAxialShading,[{key:"getIR",value:function getIR(){var t,r,o,c,u,h=this.coordsArr,g=this.shadingType;if(g===d){r=[h[0],h[1]];o=[h[2],h[3]];c=null;u=null;t="axial"}else if(g===m){r=[h[0],h[1]];o=[h[3],h[4]];c=h[2];u=h[5];t="radial"}else(0,l.unreachable)("getPattern type unknown: ".concat(g));return["RadialAxial",t,this.bbox,this.colorStops,r,o,c,u]}}]);return RadialAxialShading}(k),w=function(){function MeshStreamReader(t,r){_classCallCheck(this,MeshStreamReader);this.stream=t;this.context=r;this.buffer=0;this.bufferLength=0;var o=r.numComps;this.tmpCompsBuf=new Float32Array(o);var l=r.colorSpace.numComps;this.tmpCsCompsBuf=r.colorFn?new Float32Array(l):this.tmpCompsBuf}_createClass(MeshStreamReader,[{key:"hasData",get:function get(){if(this.stream.end)return this.stream.pos<this.stream.end;if(this.bufferLength>0)return!0;var t=this.stream.getByte();if(t<0)return!1;this.buffer=t;this.bufferLength=8;return!0}},{key:"readBits",value:function readBits(t){var r=this.buffer,o=this.bufferLength;if(32===t){if(0===o)return(this.stream.getByte()<<24|this.stream.getByte()<<16|this.stream.getByte()<<8|this.stream.getByte())>>>0;r=r<<24|this.stream.getByte()<<16|this.stream.getByte()<<8|this.stream.getByte();var l=this.stream.getByte();this.buffer=l&(1<<o)-1;return(r<<8-o|(255&l)>>o)>>>0}if(8===t&&0===o)return this.stream.getByte();for(;o<t;){r=r<<8|this.stream.getByte();o+=8}o-=t;this.bufferLength=o;this.buffer=r&(1<<o)-1;return r>>o}},{key:"align",value:function align(){this.buffer=0;this.bufferLength=0}},{key:"readFlag",value:function readFlag(){return this.readBits(this.context.bitsPerFlag)}},{key:"readCoordinate",value:function readCoordinate(){var t=this.context.bitsPerCoordinate,r=this.readBits(t),o=this.readBits(t),l=this.context.decode,c=t<32?1/((1<<t)-1):2.3283064365386963e-10;return[r*c*(l[1]-l[0])+l[0],o*c*(l[3]-l[2])+l[2]]}},{key:"readComponents",value:function readComponents(){for(var t=this.context.numComps,r=this.context.bitsPerComponent,o=r<32?1/((1<<r)-1):2.3283064365386963e-10,l=this.context.decode,c=this.tmpCompsBuf,u=0,h=4;u<t;u++,h+=2){var d=this.readBits(r);c[u]=d*o*(l[h+1]-l[h])+l[h]}var m=this.tmpCsCompsBuf;this.context.colorFn&&this.context.colorFn(c,0,m,0);return this.context.colorSpace.getRgb(m,0)}}]);return MeshStreamReader}(),x=function getBClosure(){var t=[];return function(r){t[r]||(t[r]=function buildB(t){for(var r=[],o=0;o<=t;o++){var l=o/t,c=1-l;r.push(new Float32Array([c*c*c,3*l*c*c,3*l*l*c,l*l*l]))}return r}(r));return t[r]}}(),O=function(t){_inherits(MeshShading,t);var r=_createSuper(MeshShading);function MeshShading(t,o,h,d,m){var _;_classCallCheck(this,MeshShading);_=r.call(this);if(!(0,u.isStream)(t))throw new l.FormatError("Mesh data is not a stream");var k=t.dict;_.shadingType=k.get("ShadingType");var C=k.getArray("BBox");Array.isArray(C)&&4===C.length?_.bbox=l.Util.normalizeRect(C):_.bbox=null;var x=c.ColorSpace.parse({cs:k.getRaw("ColorSpace")||k.getRaw("CS"),xref:o,resources:h,pdfFunctionFactory:d,localColorSpaceCache:m});_.background=k.has("Background")?x.getRgb(k.get("Background"),0):null;var O=k.getRaw("Function"),T=O?d.createFromArray(O):null;_.coords=[];_.colors=[];_.figures=[];var R={bitsPerCoordinate:k.get("BitsPerCoordinate"),bitsPerComponent:k.get("BitsPerComponent"),bitsPerFlag:k.get("BitsPerFlag"),decode:k.getArray("Decode"),colorFn:T,colorSpace:x,numComps:T?1:x.numComps},E=new w(t,R),M=!1;switch(_.shadingType){case g:_._decodeType4Shading(E);break;case y:var D=0|k.get("VerticesPerRow");if(D<2)throw new l.FormatError("Invalid VerticesPerRow");_._decodeType5Shading(E,D);break;case v:_._decodeType6Shading(E);M=!0;break;case S:_._decodeType7Shading(E);M=!0;break;default:(0,l.unreachable)("Unsupported mesh type.")}if(M){_._updateBounds();for(var j=0,L=_.figures.length;j<L;j++)_._buildFigureFromPatch(j)}_._updateBounds();_._packData();return _}_createClass(MeshShading,[{key:"_decodeType4Shading",value:function _decodeType4Shading(t){for(var r=this.coords,o=this.colors,c=[],u=[],h=0;t.hasData;){var d=t.readFlag(),m=t.readCoordinate(),g=t.readComponents();if(0===h){if(!(0<=d&&d<=2))throw new l.FormatError("Unknown type4 flag");switch(d){case 0:h=3;break;case 1:u.push(u[u.length-2],u[u.length-1]);h=1;break;case 2:u.push(u[u.length-3],u[u.length-1]);h=1}c.push(d)}u.push(r.length);r.push(m);o.push(g);h--;t.align()}this.figures.push({type:"triangles",coords:new Int32Array(u),colors:new Int32Array(u)})}},{key:"_decodeType5Shading",value:function _decodeType5Shading(t,r){for(var o=this.coords,l=this.colors,c=[];t.hasData;){var u=t.readCoordinate(),h=t.readComponents();c.push(o.length);o.push(u);l.push(h)}this.figures.push({type:"lattice",coords:new Int32Array(c),colors:new Int32Array(c),verticesPerRow:r})}},{key:"_decodeType6Shading",value:function _decodeType6Shading(t){for(var r=this.coords,o=this.colors,c=new Int32Array(16),u=new Int32Array(4);t.hasData;){var h=t.readFlag();if(!(0<=h&&h<=3))throw new l.FormatError("Unknown type6 flag");for(var d=r.length,m=0,g=0!==h?8:12;m<g;m++)r.push(t.readCoordinate());for(var y=o.length,v=0,S=0!==h?2:4;v<S;v++)o.push(t.readComponents());var _=void 0,k=void 0,C=void 0,w=void 0;switch(h){case 0:c[12]=d+3;c[13]=d+4;c[14]=d+5;c[15]=d+6;c[8]=d+2;c[11]=d+7;c[4]=d+1;c[7]=d+8;c[0]=d;c[1]=d+11;c[2]=d+10;c[3]=d+9;u[2]=y+1;u[3]=y+2;u[0]=y;u[1]=y+3;break;case 1:_=c[12];k=c[13];C=c[14];w=c[15];c[12]=w;c[13]=d+0;c[14]=d+1;c[15]=d+2;c[8]=C;c[11]=d+3;c[4]=k;c[7]=d+4;c[0]=_;c[1]=d+7;c[2]=d+6;c[3]=d+5;_=u[2];k=u[3];u[2]=k;u[3]=y;u[0]=_;u[1]=y+1;break;case 2:_=c[15];k=c[11];c[12]=c[3];c[13]=d+0;c[14]=d+1;c[15]=d+2;c[8]=c[7];c[11]=d+3;c[4]=k;c[7]=d+4;c[0]=_;c[1]=d+7;c[2]=d+6;c[3]=d+5;_=u[3];u[2]=u[1];u[3]=y;u[0]=_;u[1]=y+1;break;case 3:c[12]=c[0];c[13]=d+0;c[14]=d+1;c[15]=d+2;c[8]=c[1];c[11]=d+3;c[4]=c[2];c[7]=d+4;c[0]=c[3];c[1]=d+7;c[2]=d+6;c[3]=d+5;u[2]=u[0];u[3]=y;u[0]=u[1];u[1]=y+1}c[5]=r.length;r.push([(-4*r[c[0]][0]-r[c[15]][0]+6*(r[c[4]][0]+r[c[1]][0])-2*(r[c[12]][0]+r[c[3]][0])+3*(r[c[13]][0]+r[c[7]][0]))/9,(-4*r[c[0]][1]-r[c[15]][1]+6*(r[c[4]][1]+r[c[1]][1])-2*(r[c[12]][1]+r[c[3]][1])+3*(r[c[13]][1]+r[c[7]][1]))/9]);c[6]=r.length;r.push([(-4*r[c[3]][0]-r[c[12]][0]+6*(r[c[2]][0]+r[c[7]][0])-2*(r[c[0]][0]+r[c[15]][0])+3*(r[c[4]][0]+r[c[14]][0]))/9,(-4*r[c[3]][1]-r[c[12]][1]+6*(r[c[2]][1]+r[c[7]][1])-2*(r[c[0]][1]+r[c[15]][1])+3*(r[c[4]][1]+r[c[14]][1]))/9]);c[9]=r.length;r.push([(-4*r[c[12]][0]-r[c[3]][0]+6*(r[c[8]][0]+r[c[13]][0])-2*(r[c[0]][0]+r[c[15]][0])+3*(r[c[11]][0]+r[c[1]][0]))/9,(-4*r[c[12]][1]-r[c[3]][1]+6*(r[c[8]][1]+r[c[13]][1])-2*(r[c[0]][1]+r[c[15]][1])+3*(r[c[11]][1]+r[c[1]][1]))/9]);c[10]=r.length;r.push([(-4*r[c[15]][0]-r[c[0]][0]+6*(r[c[11]][0]+r[c[14]][0])-2*(r[c[12]][0]+r[c[3]][0])+3*(r[c[2]][0]+r[c[8]][0]))/9,(-4*r[c[15]][1]-r[c[0]][1]+6*(r[c[11]][1]+r[c[14]][1])-2*(r[c[12]][1]+r[c[3]][1])+3*(r[c[2]][1]+r[c[8]][1]))/9]);this.figures.push({type:"patch",coords:new Int32Array(c),colors:new Int32Array(u)})}}},{key:"_decodeType7Shading",value:function _decodeType7Shading(t){for(var r=this.coords,o=this.colors,c=new Int32Array(16),u=new Int32Array(4);t.hasData;){var h=t.readFlag();if(!(0<=h&&h<=3))throw new l.FormatError("Unknown type7 flag");for(var d=r.length,m=0,g=0!==h?12:16;m<g;m++)r.push(t.readCoordinate());for(var y=o.length,v=0,S=0!==h?2:4;v<S;v++)o.push(t.readComponents());var _=void 0,k=void 0,C=void 0,w=void 0;switch(h){case 0:c[12]=d+3;c[13]=d+4;c[14]=d+5;c[15]=d+6;c[8]=d+2;c[9]=d+13;c[10]=d+14;c[11]=d+7;c[4]=d+1;c[5]=d+12;c[6]=d+15;c[7]=d+8;c[0]=d;c[1]=d+11;c[2]=d+10;c[3]=d+9;u[2]=y+1;u[3]=y+2;u[0]=y;u[1]=y+3;break;case 1:_=c[12];k=c[13];C=c[14];w=c[15];c[12]=w;c[13]=d+0;c[14]=d+1;c[15]=d+2;c[8]=C;c[9]=d+9;c[10]=d+10;c[11]=d+3;c[4]=k;c[5]=d+8;c[6]=d+11;c[7]=d+4;c[0]=_;c[1]=d+7;c[2]=d+6;c[3]=d+5;_=u[2];k=u[3];u[2]=k;u[3]=y;u[0]=_;u[1]=y+1;break;case 2:_=c[15];k=c[11];c[12]=c[3];c[13]=d+0;c[14]=d+1;c[15]=d+2;c[8]=c[7];c[9]=d+9;c[10]=d+10;c[11]=d+3;c[4]=k;c[5]=d+8;c[6]=d+11;c[7]=d+4;c[0]=_;c[1]=d+7;c[2]=d+6;c[3]=d+5;_=u[3];u[2]=u[1];u[3]=y;u[0]=_;u[1]=y+1;break;case 3:c[12]=c[0];c[13]=d+0;c[14]=d+1;c[15]=d+2;c[8]=c[1];c[9]=d+9;c[10]=d+10;c[11]=d+3;c[4]=c[2];c[5]=d+8;c[6]=d+11;c[7]=d+4;c[0]=c[3];c[1]=d+7;c[2]=d+6;c[3]=d+5;u[2]=u[0];u[3]=y;u[0]=u[1];u[1]=y+1}this.figures.push({type:"patch",coords:new Int32Array(c),colors:new Int32Array(u)})}}},{key:"_buildFigureFromPatch",value:function _buildFigureFromPatch(t){var r=this.figures[t];(0,l.assert)("patch"===r.type,"Unexpected patch mesh figure");var o=this.coords,c=this.colors,u=r.coords,h=r.colors,d=Math.min(o[u[0]][0],o[u[3]][0],o[u[12]][0],o[u[15]][0]),m=Math.min(o[u[0]][1],o[u[3]][1],o[u[12]][1],o[u[15]][1]),g=Math.max(o[u[0]][0],o[u[3]][0],o[u[12]][0],o[u[15]][0]),y=Math.max(o[u[0]][1],o[u[3]][1],o[u[12]][1],o[u[15]][1]),v=Math.ceil((g-d)*MeshShading.TRIANGLE_DENSITY/(this.bounds[2]-this.bounds[0]));v=Math.max(MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT,Math.min(MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT,v));var S=Math.ceil((y-m)*MeshShading.TRIANGLE_DENSITY/(this.bounds[3]-this.bounds[1]));S=Math.max(MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT,Math.min(MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT,S));for(var _=v+1,k=new Int32Array((S+1)*_),C=new Int32Array((S+1)*_),w=0,O=new Uint8Array(3),T=new Uint8Array(3),R=c[h[0]],E=c[h[1]],M=c[h[2]],D=c[h[3]],j=x(S),L=x(v),N=0;N<=S;N++){O[0]=(R[0]*(S-N)+M[0]*N)/S|0;O[1]=(R[1]*(S-N)+M[1]*N)/S|0;O[2]=(R[2]*(S-N)+M[2]*N)/S|0;T[0]=(E[0]*(S-N)+D[0]*N)/S|0;T[1]=(E[1]*(S-N)+D[1]*N)/S|0;T[2]=(E[2]*(S-N)+D[2]*N)/S|0;for(var U=0;U<=v;U++,w++)if(0!==N&&N!==S||0!==U&&U!==v){for(var H=0,W=0,$=0,q=0;q<=3;q++)for(var X=0;X<=3;X++,$++){var z=j[N][q]*L[U][X];H+=o[u[$]][0]*z;W+=o[u[$]][1]*z}k[w]=o.length;o.push([H,W]);C[w]=c.length;var G=new Uint8Array(3);G[0]=(O[0]*(v-U)+T[0]*U)/v|0;G[1]=(O[1]*(v-U)+T[1]*U)/v|0;G[2]=(O[2]*(v-U)+T[2]*U)/v|0;c.push(G)}}k[0]=u[0];C[0]=h[0];k[v]=u[3];C[v]=h[1];k[_*S]=u[12];C[_*S]=h[2];k[_*S+v]=u[15];C[_*S+v]=h[3];this.figures[t]={type:"lattice",coords:k,colors:C,verticesPerRow:_}}},{key:"_updateBounds",value:function _updateBounds(){for(var t=this.coords[0][0],r=this.coords[0][1],o=t,l=r,c=1,u=this.coords.length;c<u;c++){var h=this.coords[c][0],d=this.coords[c][1];t=t>h?h:t;r=r>d?d:r;o=o<h?h:o;l=l<d?d:l}this.bounds=[t,r,o,l]}},{key:"_packData",value:function _packData(){var t,r,o,l,c=this.coords,u=new Float32Array(2*c.length);for(t=0,o=0,r=c.length;t<r;t++){var h=c[t];u[o++]=h[0];u[o++]=h[1]}this.coords=u;var d=this.colors,m=new Uint8Array(3*d.length);for(t=0,o=0,r=d.length;t<r;t++){var g=d[t];m[o++]=g[0];m[o++]=g[1];m[o++]=g[2]}this.colors=m;var y=this.figures;for(t=0,r=y.length;t<r;t++){var v=y[t],S=v.coords,_=v.colors;for(o=0,l=S.length;o<l;o++){S[o]*=2;_[o]*=3}}}},{key:"getIR",value:function getIR(){return["Mesh",this.shadingType,this.coords,this.colors,this.figures,this.bounds,this.bbox,this.background]}}],[{key:"MIN_SPLIT_PATCH_CHUNKS_AMOUNT",get:function get(){return(0,l.shadow)(this,"MIN_SPLIT_PATCH_CHUNKS_AMOUNT",3)}},{key:"MAX_SPLIT_PATCH_CHUNKS_AMOUNT",get:function get(){return(0,l.shadow)(this,"MAX_SPLIT_PATCH_CHUNKS_AMOUNT",20)}},{key:"TRIANGLE_DENSITY",get:function get(){return(0,l.shadow)(this,"TRIANGLE_DENSITY",20)}}]);return MeshShading}(k),T=function(t){_inherits(DummyShading,t);var r=_createSuper(DummyShading);function DummyShading(){_classCallCheck(this,DummyShading);return r.apply(this,arguments)}_createClass(DummyShading,[{key:"getIR",value:function getIR(){return["Dummy"]}}]);return DummyShading}(k)},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.isPDFFunction=function isPDFFunction(t){var r;if("object"!==_typeof(t))return!1;if((0,l.isDict)(t))r=t;else{if(!(0,l.isStream)(t))return!1;r=t.dict}return r.has("FunctionType")};r.PostScriptEvaluator=r.PostScriptCompiler=r.PDFFunctionFactory=void 0;var l=o(118),c=o(4),u=o(170),h=o(171);function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var d=function(){function PDFFunctionFactory(t){var r=t.xref,o=t.isEvalSupported,l=void 0===o||o;_classCallCheck(this,PDFFunctionFactory);this.xref=r;this.isEvalSupported=!1!==l}_createClass(PDFFunctionFactory,[{key:"create",value:function create(t){var r=this.getCached(t);if(r)return r;var o=m.parse({xref:this.xref,isEvalSupported:this.isEvalSupported,fn:t instanceof l.Ref?this.xref.fetch(t):t});this._cache(t,o);return o}},{key:"createFromArray",value:function createFromArray(t){var r=this.getCached(t);if(r)return r;var o=m.parseArray({xref:this.xref,isEvalSupported:this.isEvalSupported,fnObj:t instanceof l.Ref?this.xref.fetch(t):t});this._cache(t,o);return o}},{key:"getCached",value:function getCached(t){var r;t instanceof l.Ref?r=t:t instanceof l.Dict?r=t.objId:(0,l.isStream)(t)&&(r=t.dict&&t.dict.objId);if(r){var o=this._localFunctionCache.getByRef(r);if(o)return o}return null}},{key:"_cache",value:function _cache(t,r){if(!r)throw new Error('PDFFunctionFactory._cache - expected "parsedFunction" argument.');var o;t instanceof l.Ref?o=t:t instanceof l.Dict?o=t.objId:(0,l.isStream)(t)&&(o=t.dict&&t.dict.objId);o&&this._localFunctionCache.set(null,o,r)}},{key:"_localFunctionCache",get:function get(){return(0,c.shadow)(this,"_localFunctionCache",new h.LocalFunctionCache)}}]);return PDFFunctionFactory}();r.PDFFunctionFactory=d;function toNumberArray(t){if(!Array.isArray(t))return null;for(var r=t.length,o=0;o<r;o++)if("number"!=typeof t[o]){for(var l=new Array(r),c=0;c<r;c++)l[c]=+t[c];return l}return t}var m=function(){function PDFFunction(){_classCallCheck(this,PDFFunction)}_createClass(PDFFunction,null,[{key:"getSampleArray",value:function getSampleArray(t,r,o,l){var c,u,h=1;for(c=0,u=t.length;c<u;c++)h*=t[c];h*=r;var d=new Array(h),m=0,g=0,y=1/(Math.pow(2,o)-1),v=l.getBytes((h*o+7)/8),S=0;for(c=0;c<h;c++){for(;m<o;){g<<=8;g|=v[S++];m+=8}m-=o;d[c]=(g>>m)*y;g&=(1<<m)-1}return d}},{key:"parse",value:function parse(t){var r=t.xref,o=t.isEvalSupported,l=t.fn,u=l.dict||l;switch(u.get("FunctionType")){case 0:return this.constructSampled({xref:r,isEvalSupported:o,fn:l,dict:u});case 1:break;case 2:return this.constructInterpolated({xref:r,isEvalSupported:o,dict:u});case 3:return this.constructStiched({xref:r,isEvalSupported:o,dict:u});case 4:return this.constructPostScript({xref:r,isEvalSupported:o,fn:l,dict:u})}throw new c.FormatError("Unknown type of function")}},{key:"parseArray",value:function parseArray(t){var r=t.xref,o=t.isEvalSupported,l=t.fnObj;if(!Array.isArray(l))return this.parse({xref:r,isEvalSupported:o,fn:l});for(var c=[],u=0,h=l.length;u<h;u++)c.push(this.parse({xref:r,isEvalSupported:o,fn:r.fetchIfRef(l[u])}));return function(t,r,o,l){for(var u=0,h=c.length;u<h;u++)c[u](t,r,o,l+u)}}},{key:"constructSampled",value:function constructSampled(t){t.xref,t.isEvalSupported;var r=t.fn,o=t.dict;function toMultiArray(t){for(var r=t.length,o=[],l=0,c=0;c<r;c+=2)o[l++]=[t[c],t[c+1]];return o}function interpolate(t,r,o,l,c){return l+(c-l)/(o-r)*(t-r)}var l=toNumberArray(o.getArray("Domain")),u=toNumberArray(o.getArray("Range"));if(!l||!u)throw new c.FormatError("No domain or range");var h=l.length/2,d=u.length/2;l=toMultiArray(l);u=toMultiArray(u);var m=toNumberArray(o.getArray("Size")),g=o.get("BitsPerSample"),y=o.get("Order")||1;1!==y&&(0,c.info)("No support for cubic spline interpolation: "+y);var v=toNumberArray(o.getArray("Encode"));if(v)v=toMultiArray(v);else{v=[];for(var S=0;S<h;++S)v.push([0,m[S]-1])}var _=toNumberArray(o.getArray("Decode"));_=_?toMultiArray(_):u;var k=this.getSampleArray(m,d,g,r);return function constructSampledFn(t,r,o,c){var g,y,S=1<<h,C=new Float64Array(S),w=new Uint32Array(S);for(y=0;y<S;y++)C[y]=1;var x=d,O=1;for(g=0;g<h;++g){var T=l[g][0],R=l[g][1],E=interpolate(Math.min(Math.max(t[r+g],T),R),T,R,v[g][0],v[g][1]),M=m[g],D=(E=Math.min(Math.max(E,0),M-1))<M-1?Math.floor(E):E-1,j=D+1-E,L=E-D,N=D*x,U=N+x;for(y=0;y<S;y++)if(y&O){C[y]*=L;w[y]+=U}else{C[y]*=j;w[y]+=N}x*=M;O<<=1}for(y=0;y<d;++y){var H=0;for(g=0;g<S;g++)H+=k[w[g]+y]*C[g];H=interpolate(H,0,1,_[y][0],_[y][1]);o[c+y]=Math.min(Math.max(H,u[y][0]),u[y][1])}}}},{key:"constructInterpolated",value:function constructInterpolated(t){t.xref,t.isEvalSupported;for(var r=t.dict,o=toNumberArray(r.getArray("C0"))||[0],l=toNumberArray(r.getArray("C1"))||[1],c=r.get("N"),u=[],h=0,d=o.length;h<d;++h)u.push(l[h]-o[h]);var m=u.length;return function constructInterpolatedFn(t,r,l,h){for(var d=1===c?t[r]:Math.pow(t[r],c),g=0;g<m;++g)l[h+g]=o[g]+d*u[g]}}},{key:"constructStiched",value:function constructStiched(t){var r=t.xref,o=t.isEvalSupported,l=t.dict,u=toNumberArray(l.getArray("Domain"));if(!u)throw new c.FormatError("No domain");if(1!==u.length/2)throw new c.FormatError("Bad domain for stiched function");for(var h=l.get("Functions"),d=[],m=0,g=h.length;m<g;++m)d.push(this.parse({xref:r,isEvalSupported:o,fn:r.fetchIfRef(h[m])}));var y=toNumberArray(l.getArray("Bounds")),v=toNumberArray(l.getArray("Encode")),S=new Float32Array(1);return function constructStichedFn(t,r,o,l){var c,h=function constructStichedFromIRClip(t,r,o){t>o?t=o:t<r&&(t=r);return t}(t[r],u[0],u[1]),m=y.length;for(c=0;c<m&&!(h<y[c]);++c);var g=u[0];c>0&&(g=y[c-1]);var _=u[1];c<y.length&&(_=y[c]);var k=v[2*c],C=v[2*c+1];S[0]=g===_?k:k+(h-g)*(C-k)/(_-g);d[c](S,0,o,l)}}},{key:"constructPostScript",value:function constructPostScript(t){t.xref;var r=t.isEvalSupported,o=t.fn,l=t.dict,h=toNumberArray(l.getArray("Domain")),d=toNumberArray(l.getArray("Range"));if(!h)throw new c.FormatError("No domain.");if(!d)throw new c.FormatError("No range.");var m=new u.PostScriptLexer(o),g=new u.PostScriptParser(m).parse();if(r&&c.IsEvalSupportedCached.value){var S=(new v).compile(g,h,d);if(S)return new Function("src","srcOffset","dest","destOffset",S)}(0,c.info)("Unable to compile PS function");var _=d.length>>1,k=h.length>>1,C=new y(g),w=Object.create(null),x=8192,O=new Float32Array(k);return function constructPostScriptFn(t,r,o,l){var c,u,h="",m=O;for(c=0;c<k;c++){u=t[r+c];m[c]=u;h+=u+"_"}var g=w[h];if(void 0===g){var y=new Float32Array(_),v=C.execute(m),S=v.length-_;for(c=0;c<_;c++){u=v[S+c];var T=d[2*c];(u<T||u>(T=d[2*c+1]))&&(u=T);y[c]=u}if(x>0){x--;w[h]=y}o.set(y,l)}else o.set(g,l)}}}]);return PDFFunction}();var g=function(){function PostScriptStack(t){_classCallCheck(this,PostScriptStack);this.stack=t?Array.prototype.slice.call(t,0):[]}_createClass(PostScriptStack,[{key:"push",value:function push(t){if(this.stack.length>=PostScriptStack.MAX_STACK_SIZE)throw new Error("PostScript function stack overflow.");this.stack.push(t)}},{key:"pop",value:function pop(){if(this.stack.length<=0)throw new Error("PostScript function stack underflow.");return this.stack.pop()}},{key:"copy",value:function copy(t){if(this.stack.length+t>=PostScriptStack.MAX_STACK_SIZE)throw new Error("PostScript function stack overflow.");for(var r=this.stack,o=r.length-t,l=t-1;l>=0;l--,o++)r.push(r[o])}},{key:"index",value:function index(t){this.push(this.stack[this.stack.length-t-1])}},{key:"roll",value:function roll(t,r){for(var o=this.stack,l=o.length-t,c=o.length-1,u=l+(r-Math.floor(r/t)*t),h=l,d=c;h<d;h++,d--){var m=o[h];o[h]=o[d];o[d]=m}for(var g=l,y=u-1;g<y;g++,y--){var v=o[g];o[g]=o[y];o[y]=v}for(var S=u,_=c;S<_;S++,_--){var k=o[S];o[S]=o[_];o[_]=k}}}],[{key:"MAX_STACK_SIZE",get:function get(){return(0,c.shadow)(this,"MAX_STACK_SIZE",100)}}]);return PostScriptStack}(),y=function(){function PostScriptEvaluator(t){_classCallCheck(this,PostScriptEvaluator);this.operators=t}_createClass(PostScriptEvaluator,[{key:"execute",value:function execute(t){for(var r,o,l,u=new g(t),h=0,d=this.operators,m=d.length;h<m;)if("number"!=typeof(r=d[h++]))switch(r){case"jz":l=u.pop();(o=u.pop())||(h=l);break;case"j":h=o=u.pop();break;case"abs":o=u.pop();u.push(Math.abs(o));break;case"add":l=u.pop();o=u.pop();u.push(o+l);break;case"and":l=u.pop();o=u.pop();(0,c.isBool)(o)&&(0,c.isBool)(l)?u.push(o&&l):u.push(o&l);break;case"atan":o=u.pop();u.push(Math.atan(o));break;case"bitshift":l=u.pop();(o=u.pop())>0?u.push(o<<l):u.push(o>>l);break;case"ceiling":o=u.pop();u.push(Math.ceil(o));break;case"copy":o=u.pop();u.copy(o);break;case"cos":o=u.pop();u.push(Math.cos(o));break;case"cvi":o=0|u.pop();u.push(o);break;case"cvr":break;case"div":l=u.pop();o=u.pop();u.push(o/l);break;case"dup":u.copy(1);break;case"eq":l=u.pop();o=u.pop();u.push(o===l);break;case"exch":u.roll(2,1);break;case"exp":l=u.pop();o=u.pop();u.push(Math.pow(o,l));break;case"false":u.push(!1);break;case"floor":o=u.pop();u.push(Math.floor(o));break;case"ge":l=u.pop();o=u.pop();u.push(o>=l);break;case"gt":l=u.pop();o=u.pop();u.push(o>l);break;case"idiv":l=u.pop();o=u.pop();u.push(o/l|0);break;case"index":o=u.pop();u.index(o);break;case"le":l=u.pop();o=u.pop();u.push(o<=l);break;case"ln":o=u.pop();u.push(Math.log(o));break;case"log":o=u.pop();u.push(Math.log(o)/Math.LN10);break;case"lt":l=u.pop();o=u.pop();u.push(o<l);break;case"mod":l=u.pop();o=u.pop();u.push(o%l);break;case"mul":l=u.pop();o=u.pop();u.push(o*l);break;case"ne":l=u.pop();o=u.pop();u.push(o!==l);break;case"neg":o=u.pop();u.push(-o);break;case"not":o=u.pop();(0,c.isBool)(o)?u.push(!o):u.push(~o);break;case"or":l=u.pop();o=u.pop();(0,c.isBool)(o)&&(0,c.isBool)(l)?u.push(o||l):u.push(o|l);break;case"pop":u.pop();break;case"roll":l=u.pop();o=u.pop();u.roll(o,l);break;case"round":o=u.pop();u.push(Math.round(o));break;case"sin":o=u.pop();u.push(Math.sin(o));break;case"sqrt":o=u.pop();u.push(Math.sqrt(o));break;case"sub":l=u.pop();o=u.pop();u.push(o-l);break;case"true":u.push(!0);break;case"truncate":o=(o=u.pop())<0?Math.ceil(o):Math.floor(o);u.push(o);break;case"xor":l=u.pop();o=u.pop();(0,c.isBool)(o)&&(0,c.isBool)(l)?u.push(o!==l):u.push(o^l);break;default:throw new c.FormatError("Unknown operator ".concat(r))}else u.push(r);return u.stack}}]);return PostScriptEvaluator}();r.PostScriptEvaluator=y;var v=function PostScriptCompilerClosure(){var t=function(){function AstNode(t){_classCallCheck(this,AstNode);this.type=t}_createClass(AstNode,[{key:"visit",value:function visit(t){(0,c.unreachable)("abstract method")}}]);return AstNode}(),r=function(t){_inherits(AstArgument,t);var r=_createSuper(AstArgument);function AstArgument(t,o,l){var c;_classCallCheck(this,AstArgument);(c=r.call(this,"args")).index=t;c.min=o;c.max=l;return c}_createClass(AstArgument,[{key:"visit",value:function visit(t){t.visitArgument(this)}}]);return AstArgument}(t),o=function(t){_inherits(AstLiteral,t);var r=_createSuper(AstLiteral);function AstLiteral(t){var o;_classCallCheck(this,AstLiteral);(o=r.call(this,"literal")).number=t;o.min=t;o.max=t;return o}_createClass(AstLiteral,[{key:"visit",value:function visit(t){t.visitLiteral(this)}}]);return AstLiteral}(t),l=function(t){_inherits(AstBinaryOperation,t);var r=_createSuper(AstBinaryOperation);function AstBinaryOperation(t,o,l,c,u){var h;_classCallCheck(this,AstBinaryOperation);(h=r.call(this,"binary")).op=t;h.arg1=o;h.arg2=l;h.min=c;h.max=u;return h}_createClass(AstBinaryOperation,[{key:"visit",value:function visit(t){t.visitBinaryOperation(this)}}]);return AstBinaryOperation}(t),u=function(t){_inherits(AstMin,t);var r=_createSuper(AstMin);function AstMin(t,o){var l;_classCallCheck(this,AstMin);(l=r.call(this,"max")).arg=t;l.min=t.min;l.max=o;return l}_createClass(AstMin,[{key:"visit",value:function visit(t){t.visitMin(this)}}]);return AstMin}(t),h=function(t){_inherits(AstVariable,t);var r=_createSuper(AstVariable);function AstVariable(t,o,l){var c;_classCallCheck(this,AstVariable);(c=r.call(this,"var")).index=t;c.min=o;c.max=l;return c}_createClass(AstVariable,[{key:"visit",value:function visit(t){t.visitVariable(this)}}]);return AstVariable}(t),d=function(t){_inherits(AstVariableDefinition,t);var r=_createSuper(AstVariableDefinition);function AstVariableDefinition(t,o){var l;_classCallCheck(this,AstVariableDefinition);(l=r.call(this,"definition")).variable=t;l.arg=o;return l}_createClass(AstVariableDefinition,[{key:"visit",value:function visit(t){t.visitVariableDefinition(this)}}]);return AstVariableDefinition}(t),m=function(){function ExpressionBuilderVisitor(){_classCallCheck(this,ExpressionBuilderVisitor);this.parts=[]}_createClass(ExpressionBuilderVisitor,[{key:"visitArgument",value:function visitArgument(t){this.parts.push("Math.max(",t.min,", Math.min(",t.max,", src[srcOffset + ",t.index,"]))")}},{key:"visitVariable",value:function visitVariable(t){this.parts.push("v",t.index)}},{key:"visitLiteral",value:function visitLiteral(t){this.parts.push(t.number)}},{key:"visitBinaryOperation",value:function visitBinaryOperation(t){this.parts.push("(");t.arg1.visit(this);this.parts.push(" ",t.op," ");t.arg2.visit(this);this.parts.push(")")}},{key:"visitVariableDefinition",value:function visitVariableDefinition(t){this.parts.push("var ");t.variable.visit(this);this.parts.push(" = ");t.arg.visit(this);this.parts.push(";")}},{key:"visitMin",value:function visitMin(t){this.parts.push("Math.min(");t.arg.visit(this);this.parts.push(", ",t.max,")")}},{key:"toString",value:function toString(){return this.parts.join("")}}]);return ExpressionBuilderVisitor}();function buildAddOperation(t,r){return"literal"===r.type&&0===r.number?t:"literal"===t.type&&0===t.number?r:"literal"===r.type&&"literal"===t.type?new o(t.number+r.number):new l("+",t,r,t.min+r.min,t.max+r.max)}function buildMulOperation(t,r){if("literal"===r.type){if(0===r.number)return new o(0);if(1===r.number)return t;if("literal"===t.type)return new o(t.number*r.number)}if("literal"===t.type){if(0===t.number)return new o(0);if(1===t.number)return r}var c=Math.min(t.min*r.min,t.min*r.max,t.max*r.min,t.max*r.max),u=Math.max(t.min*r.min,t.min*r.max,t.max*r.min,t.max*r.max);return new l("*",t,r,c,u)}function buildSubOperation(t,r){if("literal"===r.type){if(0===r.number)return t;if("literal"===t.type)return new o(t.number-r.number)}return"binary"===r.type&&"-"===r.op&&"literal"===t.type&&1===t.number&&"literal"===r.arg1.type&&1===r.arg1.number?r.arg2:new l("-",t,r,t.min-r.max,t.max-r.min)}function buildMinOperation(t,r){return t.min>=r?new o(r):t.max<=r?t:new u(t,r)}return function(){function PostScriptCompiler(){_classCallCheck(this,PostScriptCompiler)}_createClass(PostScriptCompiler,[{key:"compile",value:function compile(t,l,c){for(var u,g,y,v,S,_,k,C,w=[],x=[],O=l.length>>1,T=c.length>>1,R=0,E=0;E<O;E++)w.push(new r(E,l[2*E],l[2*E+1]));for(var M=0,D=t.length;M<D;M++)if("number"!=typeof(C=t[M]))switch(C){case"add":if(w.length<2)return null;v=w.pop();y=w.pop();w.push(buildAddOperation(y,v));break;case"cvr":if(w.length<1)return null;break;case"mul":if(w.length<2)return null;v=w.pop();y=w.pop();w.push(buildMulOperation(y,v));break;case"sub":if(w.length<2)return null;v=w.pop();y=w.pop();w.push(buildSubOperation(y,v));break;case"exch":if(w.length<2)return null;S=w.pop();_=w.pop();w.push(S,_);break;case"pop":if(w.length<1)return null;w.pop();break;case"index":if(w.length<1)return null;if("literal"!==(y=w.pop()).type)return null;if((u=y.number)<0||!Number.isInteger(u)||w.length<u)return null;if("literal"===(S=w[w.length-u-1]).type||"var"===S.type){w.push(S);break}k=new h(R++,S.min,S.max);w[w.length-u-1]=k;w.push(k);x.push(new d(k,S));break;case"dup":if(w.length<1)return null;if("number"==typeof t[M+1]&&"gt"===t[M+2]&&t[M+3]===M+7&&"jz"===t[M+4]&&"pop"===t[M+5]&&t[M+6]===t[M+1]){y=w.pop();w.push(buildMinOperation(y,t[M+1]));M+=6;break}if("literal"===(S=w[w.length-1]).type||"var"===S.type){w.push(S);break}k=new h(R++,S.min,S.max);w[w.length-1]=k;w.push(k);x.push(new d(k,S));break;case"roll":if(w.length<2)return null;v=w.pop();y=w.pop();if("literal"!==v.type||"literal"!==y.type)return null;g=v.number;if((u=y.number)<=0||!Number.isInteger(u)||!Number.isInteger(g)||w.length<u)return null;if(0===(g=(g%u+u)%u))break;Array.prototype.push.apply(w,w.splice(w.length-u,u-g));break;default:return null}else w.push(new o(C));if(w.length!==T)return null;for(var j=[],L=0,N=x;L<N.length;L++){var U=N[L],H=new m;U.visit(H);j.push(H.toString())}for(var W=0,$=w.length;W<$;W++){var q=w[W],X=new m;q.visit(X);var z=c[2*W],G=c[2*W+1],V=[X.toString()];if(z>q.min){V.unshift("Math.max(",z,", ");V.push(")")}if(G<q.max){V.unshift("Math.min(",G,", ");V.push(")")}V.unshift("dest[destOffset + ",W,"] = ");V.push(";");j.push(V.join(""))}return j.join("\n")}}]);return PostScriptCompiler}()}();r.PostScriptCompiler=v},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.PostScriptParser=r.PostScriptLexer=void 0;var l=o(4),c=o(118),u=o(122);function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var h=function(){function PostScriptParser(t){_classCallCheck(this,PostScriptParser);this.lexer=t;this.operators=[];this.token=null;this.prev=null}_createClass(PostScriptParser,[{key:"nextToken",value:function nextToken(){this.prev=this.token;this.token=this.lexer.getToken()}},{key:"accept",value:function accept(t){if(this.token.type===t){this.nextToken();return!0}return!1}},{key:"expect",value:function expect(t){if(this.accept(t))return!0;throw new l.FormatError("Unexpected symbol: found ".concat(this.token.type," expected ").concat(t,"."))}},{key:"parse",value:function parse(){this.nextToken();this.expect(d.LBRACE);this.parseBlock();this.expect(d.RBRACE);return this.operators}},{key:"parseBlock",value:function parseBlock(){for(;;)if(this.accept(d.NUMBER))this.operators.push(this.prev.value);else if(this.accept(d.OPERATOR))this.operators.push(this.prev.value);else{if(!this.accept(d.LBRACE))return;this.parseCondition()}}},{key:"parseCondition",value:function parseCondition(){var t=this.operators.length;this.operators.push(null,null);this.parseBlock();this.expect(d.RBRACE);if(this.accept(d.IF)){this.operators[t]=this.operators.length;this.operators[t+1]="jz"}else{if(!this.accept(d.LBRACE))throw new l.FormatError("PS Function: error parsing conditional.");var r=this.operators.length;this.operators.push(null,null);var o=this.operators.length;this.parseBlock();this.expect(d.RBRACE);this.expect(d.IFELSE);this.operators[r]=this.operators.length;this.operators[r+1]="j";this.operators[t]=o;this.operators[t+1]="jz"}}}]);return PostScriptParser}();r.PostScriptParser=h;var d={LBRACE:0,RBRACE:1,NUMBER:2,OPERATOR:3,IF:4,IFELSE:5},m=function(){function PostScriptToken(t,r){_classCallCheck(this,PostScriptToken);this.type=t;this.value=r}_createClass(PostScriptToken,null,[{key:"opCache",get:function get(){return(0,l.shadow)(this,"opCache",Object.create(null))}},{key:"getOperator",value:function getOperator(t){var r=PostScriptToken.opCache[t];return r||(PostScriptToken.opCache[t]=new PostScriptToken(d.OPERATOR,t))}},{key:"LBRACE",get:function get(){return(0,l.shadow)(this,"LBRACE",new PostScriptToken(d.LBRACE,"{"))}},{key:"RBRACE",get:function get(){return(0,l.shadow)(this,"RBRACE",new PostScriptToken(d.RBRACE,"}"))}},{key:"IF",get:function get(){return(0,l.shadow)(this,"IF",new PostScriptToken(d.IF,"IF"))}},{key:"IFELSE",get:function get(){return(0,l.shadow)(this,"IFELSE",new PostScriptToken(d.IFELSE,"IFELSE"))}}]);return PostScriptToken}(),g=function(){function PostScriptLexer(t){_classCallCheck(this,PostScriptLexer);this.stream=t;this.nextChar();this.strBuf=[]}_createClass(PostScriptLexer,[{key:"nextChar",value:function nextChar(){return this.currentChar=this.stream.getByte()}},{key:"getToken",value:function getToken(){for(var t=!1,r=this.currentChar;;){if(r<0)return c.EOF;if(t)10!==r&&13!==r||(t=!1);else if(37===r)t=!0;else if(!(0,u.isWhiteSpace)(r))break;r=this.nextChar()}switch(0|r){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 43:case 45:case 46:return new m(d.NUMBER,this.getNumber());case 123:this.nextChar();return m.LBRACE;case 125:this.nextChar();return m.RBRACE}var o=this.strBuf;o.length=0;o[0]=String.fromCharCode(r);for(;(r=this.nextChar())>=0&&(r>=65&&r<=90||r>=97&&r<=122);)o.push(String.fromCharCode(r));var l=o.join("");switch(l.toLowerCase()){case"if":return m.IF;case"ifelse":return m.IFELSE;default:return m.getOperator(l)}}},{key:"getNumber",value:function getNumber(){var t=this.currentChar,r=this.strBuf;r.length=0;r[0]=String.fromCharCode(t);for(;(t=this.nextChar())>=0&&(t>=48&&t<=57||45===t||46===t);)r.push(String.fromCharCode(t));var o=parseFloat(r.join(""));if(isNaN(o))throw new l.FormatError("Invalid floating point number: ".concat(o));return o}}]);return PostScriptLexer}();r.PostScriptLexer=g},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.LocalTilingPatternCache=r.LocalImageCache=r.LocalGStateCache=r.LocalFunctionCache=r.LocalColorSpaceCache=r.GlobalImageCache=void 0;var l=o(4),c=o(118);function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var u=function(){function BaseLocalCache(t){_classCallCheck(this,BaseLocalCache);this.constructor===BaseLocalCache&&(0,l.unreachable)("Cannot initialize BaseLocalCache.");this._onlyRefs=!0===(t&&t.onlyRefs);if(!this._onlyRefs){this._nameRefMap=new Map;this._imageMap=new Map}this._imageCache=new c.RefSetCache}_createClass(BaseLocalCache,[{key:"getByName",value:function getByName(t){this._onlyRefs&&(0,l.unreachable)("Should not call `getByName` method.");var r=this._nameRefMap.get(t);return r?this.getByRef(r):this._imageMap.get(t)||null}},{key:"getByRef",value:function getByRef(t){return this._imageCache.get(t)||null}},{key:"set",value:function set(t,r,o){(0,l.unreachable)("Abstract method `set` called.")}}]);return BaseLocalCache}(),h=function(t){_inherits(LocalImageCache,t);var r=_createSuper(LocalImageCache);function LocalImageCache(){_classCallCheck(this,LocalImageCache);return r.apply(this,arguments)}_createClass(LocalImageCache,[{key:"set",value:function set(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,o=arguments.length>2?arguments[2]:void 0;if("string"!=typeof t)throw new Error('LocalImageCache.set - expected "name" argument.');if(r){if(this._imageCache.has(r))return;this._nameRefMap.set(t,r);this._imageCache.put(r,o)}else this._imageMap.has(t)||this._imageMap.set(t,o)}}]);return LocalImageCache}(u);r.LocalImageCache=h;var d=function(t){_inherits(LocalColorSpaceCache,t);var r=_createSuper(LocalColorSpaceCache);function LocalColorSpaceCache(){_classCallCheck(this,LocalColorSpaceCache);return r.apply(this,arguments)}_createClass(LocalColorSpaceCache,[{key:"set",value:function set(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,o=arguments.length>2?arguments[2]:void 0;if("string"!=typeof t&&!r)throw new Error('LocalColorSpaceCache.set - expected "name" and/or "ref" argument.');if(r){if(this._imageCache.has(r))return;null!==t&&this._nameRefMap.set(t,r);this._imageCache.put(r,o)}else this._imageMap.has(t)||this._imageMap.set(t,o)}}]);return LocalColorSpaceCache}(u);r.LocalColorSpaceCache=d;var m=function(t){_inherits(LocalFunctionCache,t);var r=_createSuper(LocalFunctionCache);function LocalFunctionCache(t){_classCallCheck(this,LocalFunctionCache);return r.call(this,{onlyRefs:!0})}_createClass(LocalFunctionCache,[{key:"set",value:function set(){var t=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0;if(!t)throw new Error('LocalFunctionCache.set - expected "ref" argument.');this._imageCache.has(t)||this._imageCache.put(t,r)}}]);return LocalFunctionCache}(u);r.LocalFunctionCache=m;var g=function(t){_inherits(LocalGStateCache,t);var r=_createSuper(LocalGStateCache);function LocalGStateCache(){_classCallCheck(this,LocalGStateCache);return r.apply(this,arguments)}_createClass(LocalGStateCache,[{key:"set",value:function set(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,o=arguments.length>2?arguments[2]:void 0;if("string"!=typeof t)throw new Error('LocalGStateCache.set - expected "name" argument.');if(r){if(this._imageCache.has(r))return;this._nameRefMap.set(t,r);this._imageCache.put(r,o)}else this._imageMap.has(t)||this._imageMap.set(t,o)}}]);return LocalGStateCache}(u);r.LocalGStateCache=g;var y=function(t){_inherits(LocalTilingPatternCache,t);var r=_createSuper(LocalTilingPatternCache);function LocalTilingPatternCache(t){_classCallCheck(this,LocalTilingPatternCache);return r.call(this,{onlyRefs:!0})}_createClass(LocalTilingPatternCache,[{key:"set",value:function set(){var t=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0;if(!t)throw new Error('LocalTilingPatternCache.set - expected "ref" argument.');this._imageCache.has(t)||this._imageCache.put(t,r)}}]);return LocalTilingPatternCache}(u);r.LocalTilingPatternCache=y;var v=function(){function GlobalImageCache(){_classCallCheck(this,GlobalImageCache);this._refCache=new c.RefSetCache;this._imageCache=new c.RefSetCache}_createClass(GlobalImageCache,[{key:"_byteSize",get:function get(){var t=0;this._imageCache.forEach((function(r){t+=r.byteSize}));return t}},{key:"_cacheLimitReached",get:function get(){return!(this._imageCache.size<GlobalImageCache.MIN_IMAGES_TO_CACHE)&&!(this._byteSize<GlobalImageCache.MAX_BYTE_SIZE)}},{key:"shouldCache",value:function shouldCache(t,r){var o=this._refCache.get(t);return!((o?o.size+(o.has(r)?0:1):1)<GlobalImageCache.NUM_PAGES_THRESHOLD)&&!(!this._imageCache.has(t)&&this._cacheLimitReached)}},{key:"addPageIndex",value:function addPageIndex(t,r){var o=this._refCache.get(t);if(!o){o=new Set;this._refCache.put(t,o)}o.add(r)}},{key:"addByteSize",value:function addByteSize(t,r){var o=this._imageCache.get(t);o&&(o.byteSize||(o.byteSize=r))}},{key:"getData",value:function getData(t,r){var o=this._refCache.get(t);if(!o)return null;if(o.size<GlobalImageCache.NUM_PAGES_THRESHOLD)return null;var l=this._imageCache.get(t);if(!l)return null;o.add(r);return l}},{key:"setData",value:function setData(t,r){if(!this._refCache.has(t))throw new Error('GlobalImageCache.setData - expected "addPageIndex" to have been called.');this._imageCache.has(t)||(this._cacheLimitReached?(0,l.warn)("GlobalImageCache.setData - cache limit reached."):this._imageCache.put(t,r))}},{key:"clear",value:function clear(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];t||this._refCache.clear();this._imageCache.clear()}}],[{key:"NUM_PAGES_THRESHOLD",get:function get(){return(0,l.shadow)(this,"NUM_PAGES_THRESHOLD",2)}},{key:"MIN_IMAGES_TO_CACHE",get:function get(){return(0,l.shadow)(this,"MIN_IMAGES_TO_CACHE",10)}},{key:"MAX_BYTE_SIZE",get:function get(){return(0,l.shadow)(this,"MAX_BYTE_SIZE",4e7)}}]);return GlobalImageCache}();r.GlobalImageCache=v},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.bidi=function bidi(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1,o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],m=!0,g=t.length;if(0===g||o)return createBidiText(t,m,o);h.length=g;d.length=g;var y,v,S=0;for(y=0;y<g;++y){h[y]=t.charAt(y);var _=t.charCodeAt(y),k="L";_<=255?k=c[_]:1424<=_&&_<=1524?k="R":1536<=_&&_<=1791?(k=u[255&_])||(0,l.warn)("Bidi: invalid Unicode character "+_.toString(16)):1792<=_&&_<=2220&&(k="AL");"R"!==k&&"AL"!==k&&"AN"!==k||S++;d[y]=k}if(0===S)return createBidiText(t,m=!0);if(-1===r)if(S/g<.3){m=!0;r=0}else{m=!1;r=1}var C=[];for(y=0;y<g;++y)C[y]=r;var w,x=isOdd(r)?"R":"L",O=x,T=O,R=O;for(y=0;y<g;++y)"NSM"===d[y]?d[y]=R:R=d[y];R=O;for(y=0;y<g;++y)"EN"===(w=d[y])?d[y]="AL"===R?"AN":"EN":"R"!==w&&"L"!==w&&"AL"!==w||(R=w);for(y=0;y<g;++y)"AL"===(w=d[y])&&(d[y]="R");for(y=1;y<g-1;++y){"ES"===d[y]&&"EN"===d[y-1]&&"EN"===d[y+1]&&(d[y]="EN");"CS"!==d[y]||"EN"!==d[y-1]&&"AN"!==d[y-1]||d[y+1]!==d[y-1]||(d[y]=d[y-1])}for(y=0;y<g;++y)if("EN"===d[y]){for(var E=y-1;E>=0&&"ET"===d[E];--E)d[E]="EN";for(var M=y+1;M<g&&"ET"===d[M];++M)d[M]="EN"}for(y=0;y<g;++y)"WS"!==(w=d[y])&&"ES"!==w&&"ET"!==w&&"CS"!==w||(d[y]="ON");R=O;for(y=0;y<g;++y)"EN"===(w=d[y])?d[y]="L"===R?"L":"EN":"R"!==w&&"L"!==w||(R=w);for(y=0;y<g;++y)if("ON"===d[y]){var D=findUnequal(d,y+1,"ON"),j=O;y>0&&(j=d[y-1]);var L=T;D+1<g&&(L=d[D+1]);"L"!==j&&(j="R");"L"!==L&&(L="R");j===L&&setValues(d,y,D,j);y=D-1}for(y=0;y<g;++y)"ON"===d[y]&&(d[y]=x);for(y=0;y<g;++y){w=d[y];isEven(C[y])?"R"===w?C[y]+=1:"AN"!==w&&"EN"!==w||(C[y]+=2):"L"!==w&&"AN"!==w&&"EN"!==w||(C[y]+=1)}var N,U=-1,H=99;for(y=0,v=C.length;y<v;++y){N=C[y];U<N&&(U=N);H>N&&isOdd(N)&&(H=N)}for(N=U;N>=H;--N){var W=-1;for(y=0,v=C.length;y<v;++y)if(C[y]<N){if(W>=0){reverseValues(h,W,y);W=-1}}else W<0&&(W=y);W>=0&&reverseValues(h,W,C.length)}for(y=0,v=h.length;y<v;++y){var $=h[y];"<"!==$&&">"!==$||(h[y]="")}return createBidiText(h.join(""),m)};var l=o(4),c=["BN","BN","BN","BN","BN","BN","BN","BN","BN","S","B","S","WS","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","B","B","B","S","WS","ON","ON","ET","ET","ET","ON","ON","ON","ON","ON","ES","CS","ES","CS","CS","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","CS","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","BN","BN","BN","BN","BN","BN","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","CS","ON","ET","ET","ET","ET","ON","ON","ON","ON","L","ON","ON","BN","ON","ON","ET","ET","EN","EN","ON","L","ON","ON","ON","EN","L","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L"],u=["AN","AN","AN","AN","AN","AN","ON","ON","AL","ET","ET","AL","CS","AL","ON","ON","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AL","AL","","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AN","AN","AN","AN","AN","AN","AN","AN","AN","AN","ET","AN","AN","AL","AL","AL","NSM","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AN","ON","NSM","NSM","NSM","NSM","NSM","NSM","AL","AL","NSM","NSM","ON","NSM","NSM","NSM","NSM","AL","AL","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","AL","AL","AL","AL","AL","AL"];function isOdd(t){return 0!=(1&t)}function isEven(t){return 0==(1&t)}function findUnequal(t,r,o){var l,c;for(l=r,c=t.length;l<c;++l)if(t[l]!==o)return l;return l}function setValues(t,r,o,l){for(var c=r;c<o;++c)t[c]=l}function reverseValues(t,r,o){for(var l=r,c=o-1;l<c;++l,--c){var u=t[l];t[l]=t[c];t[c]=u}}function createBidiText(t,r){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],l="ltr";o?l="ttb":r||(l="rtl");return{str:t,dir:l}}var h=[],d=[]},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.getMetrics=void 0;var l=o(122),c=(0,l.getLookupTableFactory)((function(t){t.Courier=600;t["Courier-Bold"]=600;t["Courier-BoldOblique"]=600;t["Courier-Oblique"]=600;t.Helvetica=(0,l.getLookupTableFactory)((function(t){t.space=278;t.exclam=278;t.quotedbl=355;t.numbersign=556;t.dollar=556;t.percent=889;t.ampersand=667;t.quoteright=222;t.parenleft=333;t.parenright=333;t.asterisk=389;t.plus=584;t.comma=278;t.hyphen=333;t.period=278;t.slash=278;t.zero=556;t.one=556;t.two=556;t.three=556;t.four=556;t.five=556;t.six=556;t.seven=556;t.eight=556;t.nine=556;t.colon=278;t.semicolon=278;t.less=584;t.equal=584;t.greater=584;t.question=556;t.at=1015;t.A=667;t.B=667;t.C=722;t.D=722;t.E=667;t.F=611;t.G=778;t.H=722;t.I=278;t.J=500;t.K=667;t.L=556;t.M=833;t.N=722;t.O=778;t.P=667;t.Q=778;t.R=722;t.S=667;t.T=611;t.U=722;t.V=667;t.W=944;t.X=667;t.Y=667;t.Z=611;t.bracketleft=278;t.backslash=278;t.bracketright=278;t.asciicircum=469;t.underscore=556;t.quoteleft=222;t.a=556;t.b=556;t.c=500;t.d=556;t.e=556;t.f=278;t.g=556;t.h=556;t.i=222;t.j=222;t.k=500;t.l=222;t.m=833;t.n=556;t.o=556;t.p=556;t.q=556;t.r=333;t.s=500;t.t=278;t.u=556;t.v=500;t.w=722;t.x=500;t.y=500;t.z=500;t.braceleft=334;t.bar=260;t.braceright=334;t.asciitilde=584;t.exclamdown=333;t.cent=556;t.sterling=556;t.fraction=167;t.yen=556;t.florin=556;t.section=556;t.currency=556;t.quotesingle=191;t.quotedblleft=333;t.guillemotleft=556;t.guilsinglleft=333;t.guilsinglright=333;t.fi=500;t.fl=500;t.endash=556;t.dagger=556;t.daggerdbl=556;t.periodcentered=278;t.paragraph=537;t.bullet=350;t.quotesinglbase=222;t.quotedblbase=333;t.quotedblright=333;t.guillemotright=556;t.ellipsis=1e3;t.perthousand=1e3;t.questiondown=611;t.grave=333;t.acute=333;t.circumflex=333;t.tilde=333;t.macron=333;t.breve=333;t.dotaccent=333;t.dieresis=333;t.ring=333;t.cedilla=333;t.hungarumlaut=333;t.ogonek=333;t.caron=333;t.emdash=1e3;t.AE=1e3;t.ordfeminine=370;t.Lslash=556;t.Oslash=778;t.OE=1e3;t.ordmasculine=365;t.ae=889;t.dotlessi=278;t.lslash=222;t.oslash=611;t.oe=944;t.germandbls=611;t.Idieresis=278;t.eacute=556;t.abreve=556;t.uhungarumlaut=556;t.ecaron=556;t.Ydieresis=667;t.divide=584;t.Yacute=667;t.Acircumflex=667;t.aacute=556;t.Ucircumflex=722;t.yacute=500;t.scommaaccent=500;t.ecircumflex=556;t.Uring=722;t.Udieresis=722;t.aogonek=556;t.Uacute=722;t.uogonek=556;t.Edieresis=667;t.Dcroat=722;t.commaaccent=250;t.copyright=737;t.Emacron=667;t.ccaron=500;t.aring=556;t.Ncommaaccent=722;t.lacute=222;t.agrave=556;t.Tcommaaccent=611;t.Cacute=722;t.atilde=556;t.Edotaccent=667;t.scaron=500;t.scedilla=500;t.iacute=278;t.lozenge=471;t.Rcaron=722;t.Gcommaaccent=778;t.ucircumflex=556;t.acircumflex=556;t.Amacron=667;t.rcaron=333;t.ccedilla=500;t.Zdotaccent=611;t.Thorn=667;t.Omacron=778;t.Racute=722;t.Sacute=667;t.dcaron=643;t.Umacron=722;t.uring=556;t.threesuperior=333;t.Ograve=778;t.Agrave=667;t.Abreve=667;t.multiply=584;t.uacute=556;t.Tcaron=611;t.partialdiff=476;t.ydieresis=500;t.Nacute=722;t.icircumflex=278;t.Ecircumflex=667;t.adieresis=556;t.edieresis=556;t.cacute=500;t.nacute=556;t.umacron=556;t.Ncaron=722;t.Iacute=278;t.plusminus=584;t.brokenbar=260;t.registered=737;t.Gbreve=778;t.Idotaccent=278;t.summation=600;t.Egrave=667;t.racute=333;t.omacron=556;t.Zacute=611;t.Zcaron=611;t.greaterequal=549;t.Eth=722;t.Ccedilla=722;t.lcommaaccent=222;t.tcaron=317;t.eogonek=556;t.Uogonek=722;t.Aacute=667;t.Adieresis=667;t.egrave=556;t.zacute=500;t.iogonek=222;t.Oacute=778;t.oacute=556;t.amacron=556;t.sacute=500;t.idieresis=278;t.Ocircumflex=778;t.Ugrave=722;t.Delta=612;t.thorn=556;t.twosuperior=333;t.Odieresis=778;t.mu=556;t.igrave=278;t.ohungarumlaut=556;t.Eogonek=667;t.dcroat=556;t.threequarters=834;t.Scedilla=667;t.lcaron=299;t.Kcommaaccent=667;t.Lacute=556;t.trademark=1e3;t.edotaccent=556;t.Igrave=278;t.Imacron=278;t.Lcaron=556;t.onehalf=834;t.lessequal=549;t.ocircumflex=556;t.ntilde=556;t.Uhungarumlaut=722;t.Eacute=667;t.emacron=556;t.gbreve=556;t.onequarter=834;t.Scaron=667;t.Scommaaccent=667;t.Ohungarumlaut=778;t.degree=400;t.ograve=556;t.Ccaron=722;t.ugrave=556;t.radical=453;t.Dcaron=722;t.rcommaaccent=333;t.Ntilde=722;t.otilde=556;t.Rcommaaccent=722;t.Lcommaaccent=556;t.Atilde=667;t.Aogonek=667;t.Aring=667;t.Otilde=778;t.zdotaccent=500;t.Ecaron=667;t.Iogonek=278;t.kcommaaccent=500;t.minus=584;t.Icircumflex=278;t.ncaron=556;t.tcommaaccent=278;t.logicalnot=584;t.odieresis=556;t.udieresis=556;t.notequal=549;t.gcommaaccent=556;t.eth=556;t.zcaron=500;t.ncommaaccent=556;t.onesuperior=333;t.imacron=278;t.Euro=556}));t["Helvetica-Bold"]=(0,l.getLookupTableFactory)((function(t){t.space=278;t.exclam=333;t.quotedbl=474;t.numbersign=556;t.dollar=556;t.percent=889;t.ampersand=722;t.quoteright=278;t.parenleft=333;t.parenright=333;t.asterisk=389;t.plus=584;t.comma=278;t.hyphen=333;t.period=278;t.slash=278;t.zero=556;t.one=556;t.two=556;t.three=556;t.four=556;t.five=556;t.six=556;t.seven=556;t.eight=556;t.nine=556;t.colon=333;t.semicolon=333;t.less=584;t.equal=584;t.greater=584;t.question=611;t.at=975;t.A=722;t.B=722;t.C=722;t.D=722;t.E=667;t.F=611;t.G=778;t.H=722;t.I=278;t.J=556;t.K=722;t.L=611;t.M=833;t.N=722;t.O=778;t.P=667;t.Q=778;t.R=722;t.S=667;t.T=611;t.U=722;t.V=667;t.W=944;t.X=667;t.Y=667;t.Z=611;t.bracketleft=333;t.backslash=278;t.bracketright=333;t.asciicircum=584;t.underscore=556;t.quoteleft=278;t.a=556;t.b=611;t.c=556;t.d=611;t.e=556;t.f=333;t.g=611;t.h=611;t.i=278;t.j=278;t.k=556;t.l=278;t.m=889;t.n=611;t.o=611;t.p=611;t.q=611;t.r=389;t.s=556;t.t=333;t.u=611;t.v=556;t.w=778;t.x=556;t.y=556;t.z=500;t.braceleft=389;t.bar=280;t.braceright=389;t.asciitilde=584;t.exclamdown=333;t.cent=556;t.sterling=556;t.fraction=167;t.yen=556;t.florin=556;t.section=556;t.currency=556;t.quotesingle=238;t.quotedblleft=500;t.guillemotleft=556;t.guilsinglleft=333;t.guilsinglright=333;t.fi=611;t.fl=611;t.endash=556;t.dagger=556;t.daggerdbl=556;t.periodcentered=278;t.paragraph=556;t.bullet=350;t.quotesinglbase=278;t.quotedblbase=500;t.quotedblright=500;t.guillemotright=556;t.ellipsis=1e3;t.perthousand=1e3;t.questiondown=611;t.grave=333;t.acute=333;t.circumflex=333;t.tilde=333;t.macron=333;t.breve=333;t.dotaccent=333;t.dieresis=333;t.ring=333;t.cedilla=333;t.hungarumlaut=333;t.ogonek=333;t.caron=333;t.emdash=1e3;t.AE=1e3;t.ordfeminine=370;t.Lslash=611;t.Oslash=778;t.OE=1e3;t.ordmasculine=365;t.ae=889;t.dotlessi=278;t.lslash=278;t.oslash=611;t.oe=944;t.germandbls=611;t.Idieresis=278;t.eacute=556;t.abreve=556;t.uhungarumlaut=611;t.ecaron=556;t.Ydieresis=667;t.divide=584;t.Yacute=667;t.Acircumflex=722;t.aacute=556;t.Ucircumflex=722;t.yacute=556;t.scommaaccent=556;t.ecircumflex=556;t.Uring=722;t.Udieresis=722;t.aogonek=556;t.Uacute=722;t.uogonek=611;t.Edieresis=667;t.Dcroat=722;t.commaaccent=250;t.copyright=737;t.Emacron=667;t.ccaron=556;t.aring=556;t.Ncommaaccent=722;t.lacute=278;t.agrave=556;t.Tcommaaccent=611;t.Cacute=722;t.atilde=556;t.Edotaccent=667;t.scaron=556;t.scedilla=556;t.iacute=278;t.lozenge=494;t.Rcaron=722;t.Gcommaaccent=778;t.ucircumflex=611;t.acircumflex=556;t.Amacron=722;t.rcaron=389;t.ccedilla=556;t.Zdotaccent=611;t.Thorn=667;t.Omacron=778;t.Racute=722;t.Sacute=667;t.dcaron=743;t.Umacron=722;t.uring=611;t.threesuperior=333;t.Ograve=778;t.Agrave=722;t.Abreve=722;t.multiply=584;t.uacute=611;t.Tcaron=611;t.partialdiff=494;t.ydieresis=556;t.Nacute=722;t.icircumflex=278;t.Ecircumflex=667;t.adieresis=556;t.edieresis=556;t.cacute=556;t.nacute=611;t.umacron=611;t.Ncaron=722;t.Iacute=278;t.plusminus=584;t.brokenbar=280;t.registered=737;t.Gbreve=778;t.Idotaccent=278;t.summation=600;t.Egrave=667;t.racute=389;t.omacron=611;t.Zacute=611;t.Zcaron=611;t.greaterequal=549;t.Eth=722;t.Ccedilla=722;t.lcommaaccent=278;t.tcaron=389;t.eogonek=556;t.Uogonek=722;t.Aacute=722;t.Adieresis=722;t.egrave=556;t.zacute=500;t.iogonek=278;t.Oacute=778;t.oacute=611;t.amacron=556;t.sacute=556;t.idieresis=278;t.Ocircumflex=778;t.Ugrave=722;t.Delta=612;t.thorn=611;t.twosuperior=333;t.Odieresis=778;t.mu=611;t.igrave=278;t.ohungarumlaut=611;t.Eogonek=667;t.dcroat=611;t.threequarters=834;t.Scedilla=667;t.lcaron=400;t.Kcommaaccent=722;t.Lacute=611;t.trademark=1e3;t.edotaccent=556;t.Igrave=278;t.Imacron=278;t.Lcaron=611;t.onehalf=834;t.lessequal=549;t.ocircumflex=611;t.ntilde=611;t.Uhungarumlaut=722;t.Eacute=667;t.emacron=556;t.gbreve=611;t.onequarter=834;t.Scaron=667;t.Scommaaccent=667;t.Ohungarumlaut=778;t.degree=400;t.ograve=611;t.Ccaron=722;t.ugrave=611;t.radical=549;t.Dcaron=722;t.rcommaaccent=389;t.Ntilde=722;t.otilde=611;t.Rcommaaccent=722;t.Lcommaaccent=611;t.Atilde=722;t.Aogonek=722;t.Aring=722;t.Otilde=778;t.zdotaccent=500;t.Ecaron=667;t.Iogonek=278;t.kcommaaccent=556;t.minus=584;t.Icircumflex=278;t.ncaron=611;t.tcommaaccent=333;t.logicalnot=584;t.odieresis=611;t.udieresis=611;t.notequal=549;t.gcommaaccent=611;t.eth=611;t.zcaron=500;t.ncommaaccent=611;t.onesuperior=333;t.imacron=278;t.Euro=556}));t["Helvetica-BoldOblique"]=(0,l.getLookupTableFactory)((function(t){t.space=278;t.exclam=333;t.quotedbl=474;t.numbersign=556;t.dollar=556;t.percent=889;t.ampersand=722;t.quoteright=278;t.parenleft=333;t.parenright=333;t.asterisk=389;t.plus=584;t.comma=278;t.hyphen=333;t.period=278;t.slash=278;t.zero=556;t.one=556;t.two=556;t.three=556;t.four=556;t.five=556;t.six=556;t.seven=556;t.eight=556;t.nine=556;t.colon=333;t.semicolon=333;t.less=584;t.equal=584;t.greater=584;t.question=611;t.at=975;t.A=722;t.B=722;t.C=722;t.D=722;t.E=667;t.F=611;t.G=778;t.H=722;t.I=278;t.J=556;t.K=722;t.L=611;t.M=833;t.N=722;t.O=778;t.P=667;t.Q=778;t.R=722;t.S=667;t.T=611;t.U=722;t.V=667;t.W=944;t.X=667;t.Y=667;t.Z=611;t.bracketleft=333;t.backslash=278;t.bracketright=333;t.asciicircum=584;t.underscore=556;t.quoteleft=278;t.a=556;t.b=611;t.c=556;t.d=611;t.e=556;t.f=333;t.g=611;t.h=611;t.i=278;t.j=278;t.k=556;t.l=278;t.m=889;t.n=611;t.o=611;t.p=611;t.q=611;t.r=389;t.s=556;t.t=333;t.u=611;t.v=556;t.w=778;t.x=556;t.y=556;t.z=500;t.braceleft=389;t.bar=280;t.braceright=389;t.asciitilde=584;t.exclamdown=333;t.cent=556;t.sterling=556;t.fraction=167;t.yen=556;t.florin=556;t.section=556;t.currency=556;t.quotesingle=238;t.quotedblleft=500;t.guillemotleft=556;t.guilsinglleft=333;t.guilsinglright=333;t.fi=611;t.fl=611;t.endash=556;t.dagger=556;t.daggerdbl=556;t.periodcentered=278;t.paragraph=556;t.bullet=350;t.quotesinglbase=278;t.quotedblbase=500;t.quotedblright=500;t.guillemotright=556;t.ellipsis=1e3;t.perthousand=1e3;t.questiondown=611;t.grave=333;t.acute=333;t.circumflex=333;t.tilde=333;t.macron=333;t.breve=333;t.dotaccent=333;t.dieresis=333;t.ring=333;t.cedilla=333;t.hungarumlaut=333;t.ogonek=333;t.caron=333;t.emdash=1e3;t.AE=1e3;t.ordfeminine=370;t.Lslash=611;t.Oslash=778;t.OE=1e3;t.ordmasculine=365;t.ae=889;t.dotlessi=278;t.lslash=278;t.oslash=611;t.oe=944;t.germandbls=611;t.Idieresis=278;t.eacute=556;t.abreve=556;t.uhungarumlaut=611;t.ecaron=556;t.Ydieresis=667;t.divide=584;t.Yacute=667;t.Acircumflex=722;t.aacute=556;t.Ucircumflex=722;t.yacute=556;t.scommaaccent=556;t.ecircumflex=556;t.Uring=722;t.Udieresis=722;t.aogonek=556;t.Uacute=722;t.uogonek=611;t.Edieresis=667;t.Dcroat=722;t.commaaccent=250;t.copyright=737;t.Emacron=667;t.ccaron=556;t.aring=556;t.Ncommaaccent=722;t.lacute=278;t.agrave=556;t.Tcommaaccent=611;t.Cacute=722;t.atilde=556;t.Edotaccent=667;t.scaron=556;t.scedilla=556;t.iacute=278;t.lozenge=494;t.Rcaron=722;t.Gcommaaccent=778;t.ucircumflex=611;t.acircumflex=556;t.Amacron=722;t.rcaron=389;t.ccedilla=556;t.Zdotaccent=611;t.Thorn=667;t.Omacron=778;t.Racute=722;t.Sacute=667;t.dcaron=743;t.Umacron=722;t.uring=611;t.threesuperior=333;t.Ograve=778;t.Agrave=722;t.Abreve=722;t.multiply=584;t.uacute=611;t.Tcaron=611;t.partialdiff=494;t.ydieresis=556;t.Nacute=722;t.icircumflex=278;t.Ecircumflex=667;t.adieresis=556;t.edieresis=556;t.cacute=556;t.nacute=611;t.umacron=611;t.Ncaron=722;t.Iacute=278;t.plusminus=584;t.brokenbar=280;t.registered=737;t.Gbreve=778;t.Idotaccent=278;t.summation=600;t.Egrave=667;t.racute=389;t.omacron=611;t.Zacute=611;t.Zcaron=611;t.greaterequal=549;t.Eth=722;t.Ccedilla=722;t.lcommaaccent=278;t.tcaron=389;t.eogonek=556;t.Uogonek=722;t.Aacute=722;t.Adieresis=722;t.egrave=556;t.zacute=500;t.iogonek=278;t.Oacute=778;t.oacute=611;t.amacron=556;t.sacute=556;t.idieresis=278;t.Ocircumflex=778;t.Ugrave=722;t.Delta=612;t.thorn=611;t.twosuperior=333;t.Odieresis=778;t.mu=611;t.igrave=278;t.ohungarumlaut=611;t.Eogonek=667;t.dcroat=611;t.threequarters=834;t.Scedilla=667;t.lcaron=400;t.Kcommaaccent=722;t.Lacute=611;t.trademark=1e3;t.edotaccent=556;t.Igrave=278;t.Imacron=278;t.Lcaron=611;t.onehalf=834;t.lessequal=549;t.ocircumflex=611;t.ntilde=611;t.Uhungarumlaut=722;t.Eacute=667;t.emacron=556;t.gbreve=611;t.onequarter=834;t.Scaron=667;t.Scommaaccent=667;t.Ohungarumlaut=778;t.degree=400;t.ograve=611;t.Ccaron=722;t.ugrave=611;t.radical=549;t.Dcaron=722;t.rcommaaccent=389;t.Ntilde=722;t.otilde=611;t.Rcommaaccent=722;t.Lcommaaccent=611;t.Atilde=722;t.Aogonek=722;t.Aring=722;t.Otilde=778;t.zdotaccent=500;t.Ecaron=667;t.Iogonek=278;t.kcommaaccent=556;t.minus=584;t.Icircumflex=278;t.ncaron=611;t.tcommaaccent=333;t.logicalnot=584;t.odieresis=611;t.udieresis=611;t.notequal=549;t.gcommaaccent=611;t.eth=611;t.zcaron=500;t.ncommaaccent=611;t.onesuperior=333;t.imacron=278;t.Euro=556}));t["Helvetica-Oblique"]=(0,l.getLookupTableFactory)((function(t){t.space=278;t.exclam=278;t.quotedbl=355;t.numbersign=556;t.dollar=556;t.percent=889;t.ampersand=667;t.quoteright=222;t.parenleft=333;t.parenright=333;t.asterisk=389;t.plus=584;t.comma=278;t.hyphen=333;t.period=278;t.slash=278;t.zero=556;t.one=556;t.two=556;t.three=556;t.four=556;t.five=556;t.six=556;t.seven=556;t.eight=556;t.nine=556;t.colon=278;t.semicolon=278;t.less=584;t.equal=584;t.greater=584;t.question=556;t.at=1015;t.A=667;t.B=667;t.C=722;t.D=722;t.E=667;t.F=611;t.G=778;t.H=722;t.I=278;t.J=500;t.K=667;t.L=556;t.M=833;t.N=722;t.O=778;t.P=667;t.Q=778;t.R=722;t.S=667;t.T=611;t.U=722;t.V=667;t.W=944;t.X=667;t.Y=667;t.Z=611;t.bracketleft=278;t.backslash=278;t.bracketright=278;t.asciicircum=469;t.underscore=556;t.quoteleft=222;t.a=556;t.b=556;t.c=500;t.d=556;t.e=556;t.f=278;t.g=556;t.h=556;t.i=222;t.j=222;t.k=500;t.l=222;t.m=833;t.n=556;t.o=556;t.p=556;t.q=556;t.r=333;t.s=500;t.t=278;t.u=556;t.v=500;t.w=722;t.x=500;t.y=500;t.z=500;t.braceleft=334;t.bar=260;t.braceright=334;t.asciitilde=584;t.exclamdown=333;t.cent=556;t.sterling=556;t.fraction=167;t.yen=556;t.florin=556;t.section=556;t.currency=556;t.quotesingle=191;t.quotedblleft=333;t.guillemotleft=556;t.guilsinglleft=333;t.guilsinglright=333;t.fi=500;t.fl=500;t.endash=556;t.dagger=556;t.daggerdbl=556;t.periodcentered=278;t.paragraph=537;t.bullet=350;t.quotesinglbase=222;t.quotedblbase=333;t.quotedblright=333;t.guillemotright=556;t.ellipsis=1e3;t.perthousand=1e3;t.questiondown=611;t.grave=333;t.acute=333;t.circumflex=333;t.tilde=333;t.macron=333;t.breve=333;t.dotaccent=333;t.dieresis=333;t.ring=333;t.cedilla=333;t.hungarumlaut=333;t.ogonek=333;t.caron=333;t.emdash=1e3;t.AE=1e3;t.ordfeminine=370;t.Lslash=556;t.Oslash=778;t.OE=1e3;t.ordmasculine=365;t.ae=889;t.dotlessi=278;t.lslash=222;t.oslash=611;t.oe=944;t.germandbls=611;t.Idieresis=278;t.eacute=556;t.abreve=556;t.uhungarumlaut=556;t.ecaron=556;t.Ydieresis=667;t.divide=584;t.Yacute=667;t.Acircumflex=667;t.aacute=556;t.Ucircumflex=722;t.yacute=500;t.scommaaccent=500;t.ecircumflex=556;t.Uring=722;t.Udieresis=722;t.aogonek=556;t.Uacute=722;t.uogonek=556;t.Edieresis=667;t.Dcroat=722;t.commaaccent=250;t.copyright=737;t.Emacron=667;t.ccaron=500;t.aring=556;t.Ncommaaccent=722;t.lacute=222;t.agrave=556;t.Tcommaaccent=611;t.Cacute=722;t.atilde=556;t.Edotaccent=667;t.scaron=500;t.scedilla=500;t.iacute=278;t.lozenge=471;t.Rcaron=722;t.Gcommaaccent=778;t.ucircumflex=556;t.acircumflex=556;t.Amacron=667;t.rcaron=333;t.ccedilla=500;t.Zdotaccent=611;t.Thorn=667;t.Omacron=778;t.Racute=722;t.Sacute=667;t.dcaron=643;t.Umacron=722;t.uring=556;t.threesuperior=333;t.Ograve=778;t.Agrave=667;t.Abreve=667;t.multiply=584;t.uacute=556;t.Tcaron=611;t.partialdiff=476;t.ydieresis=500;t.Nacute=722;t.icircumflex=278;t.Ecircumflex=667;t.adieresis=556;t.edieresis=556;t.cacute=500;t.nacute=556;t.umacron=556;t.Ncaron=722;t.Iacute=278;t.plusminus=584;t.brokenbar=260;t.registered=737;t.Gbreve=778;t.Idotaccent=278;t.summation=600;t.Egrave=667;t.racute=333;t.omacron=556;t.Zacute=611;t.Zcaron=611;t.greaterequal=549;t.Eth=722;t.Ccedilla=722;t.lcommaaccent=222;t.tcaron=317;t.eogonek=556;t.Uogonek=722;t.Aacute=667;t.Adieresis=667;t.egrave=556;t.zacute=500;t.iogonek=222;t.Oacute=778;t.oacute=556;t.amacron=556;t.sacute=500;t.idieresis=278;t.Ocircumflex=778;t.Ugrave=722;t.Delta=612;t.thorn=556;t.twosuperior=333;t.Odieresis=778;t.mu=556;t.igrave=278;t.ohungarumlaut=556;t.Eogonek=667;t.dcroat=556;t.threequarters=834;t.Scedilla=667;t.lcaron=299;t.Kcommaaccent=667;t.Lacute=556;t.trademark=1e3;t.edotaccent=556;t.Igrave=278;t.Imacron=278;t.Lcaron=556;t.onehalf=834;t.lessequal=549;t.ocircumflex=556;t.ntilde=556;t.Uhungarumlaut=722;t.Eacute=667;t.emacron=556;t.gbreve=556;t.onequarter=834;t.Scaron=667;t.Scommaaccent=667;t.Ohungarumlaut=778;t.degree=400;t.ograve=556;t.Ccaron=722;t.ugrave=556;t.radical=453;t.Dcaron=722;t.rcommaaccent=333;t.Ntilde=722;t.otilde=556;t.Rcommaaccent=722;t.Lcommaaccent=556;t.Atilde=667;t.Aogonek=667;t.Aring=667;t.Otilde=778;t.zdotaccent=500;t.Ecaron=667;t.Iogonek=278;t.kcommaaccent=500;t.minus=584;t.Icircumflex=278;t.ncaron=556;t.tcommaaccent=278;t.logicalnot=584;t.odieresis=556;t.udieresis=556;t.notequal=549;t.gcommaaccent=556;t.eth=556;t.zcaron=500;t.ncommaaccent=556;t.onesuperior=333;t.imacron=278;t.Euro=556}));t.Symbol=(0,l.getLookupTableFactory)((function(t){t.space=250;t.exclam=333;t.universal=713;t.numbersign=500;t.existential=549;t.percent=833;t.ampersand=778;t.suchthat=439;t.parenleft=333;t.parenright=333;t.asteriskmath=500;t.plus=549;t.comma=250;t.minus=549;t.period=250;t.slash=278;t.zero=500;t.one=500;t.two=500;t.three=500;t.four=500;t.five=500;t.six=500;t.seven=500;t.eight=500;t.nine=500;t.colon=278;t.semicolon=278;t.less=549;t.equal=549;t.greater=549;t.question=444;t.congruent=549;t.Alpha=722;t.Beta=667;t.Chi=722;t.Delta=612;t.Epsilon=611;t.Phi=763;t.Gamma=603;t.Eta=722;t.Iota=333;t.theta1=631;t.Kappa=722;t.Lambda=686;t.Mu=889;t.Nu=722;t.Omicron=722;t.Pi=768;t.Theta=741;t.Rho=556;t.Sigma=592;t.Tau=611;t.Upsilon=690;t.sigma1=439;t.Omega=768;t.Xi=645;t.Psi=795;t.Zeta=611;t.bracketleft=333;t.therefore=863;t.bracketright=333;t.perpendicular=658;t.underscore=500;t.radicalex=500;t.alpha=631;t.beta=549;t.chi=549;t.delta=494;t.epsilon=439;t.phi=521;t.gamma=411;t.eta=603;t.iota=329;t.phi1=603;t.kappa=549;t.lambda=549;t.mu=576;t.nu=521;t.omicron=549;t.pi=549;t.theta=521;t.rho=549;t.sigma=603;t.tau=439;t.upsilon=576;t.omega1=713;t.omega=686;t.xi=493;t.psi=686;t.zeta=494;t.braceleft=480;t.bar=200;t.braceright=480;t.similar=549;t.Euro=750;t.Upsilon1=620;t.minute=247;t.lessequal=549;t.fraction=167;t.infinity=713;t.florin=500;t.club=753;t.diamond=753;t.heart=753;t.spade=753;t.arrowboth=1042;t.arrowleft=987;t.arrowup=603;t.arrowright=987;t.arrowdown=603;t.degree=400;t.plusminus=549;t.second=411;t.greaterequal=549;t.multiply=549;t.proportional=713;t.partialdiff=494;t.bullet=460;t.divide=549;t.notequal=549;t.equivalence=549;t.approxequal=549;t.ellipsis=1e3;t.arrowvertex=603;t.arrowhorizex=1e3;t.carriagereturn=658;t.aleph=823;t.Ifraktur=686;t.Rfraktur=795;t.weierstrass=987;t.circlemultiply=768;t.circleplus=768;t.emptyset=823;t.intersection=768;t.union=768;t.propersuperset=713;t.reflexsuperset=713;t.notsubset=713;t.propersubset=713;t.reflexsubset=713;t.element=713;t.notelement=713;t.angle=768;t.gradient=713;t.registerserif=790;t.copyrightserif=790;t.trademarkserif=890;t.product=823;t.radical=549;t.dotmath=250;t.logicalnot=713;t.logicaland=603;t.logicalor=603;t.arrowdblboth=1042;t.arrowdblleft=987;t.arrowdblup=603;t.arrowdblright=987;t.arrowdbldown=603;t.lozenge=494;t.angleleft=329;t.registersans=790;t.copyrightsans=790;t.trademarksans=786;t.summation=713;t.parenlefttp=384;t.parenleftex=384;t.parenleftbt=384;t.bracketlefttp=384;t.bracketleftex=384;t.bracketleftbt=384;t.bracelefttp=494;t.braceleftmid=494;t.braceleftbt=494;t.braceex=494;t.angleright=329;t.integral=274;t.integraltp=686;t.integralex=686;t.integralbt=686;t.parenrighttp=384;t.parenrightex=384;t.parenrightbt=384;t.bracketrighttp=384;t.bracketrightex=384;t.bracketrightbt=384;t.bracerighttp=494;t.bracerightmid=494;t.bracerightbt=494;t.apple=790}));t["Times-Roman"]=(0,l.getLookupTableFactory)((function(t){t.space=250;t.exclam=333;t.quotedbl=408;t.numbersign=500;t.dollar=500;t.percent=833;t.ampersand=778;t.quoteright=333;t.parenleft=333;t.parenright=333;t.asterisk=500;t.plus=564;t.comma=250;t.hyphen=333;t.period=250;t.slash=278;t.zero=500;t.one=500;t.two=500;t.three=500;t.four=500;t.five=500;t.six=500;t.seven=500;t.eight=500;t.nine=500;t.colon=278;t.semicolon=278;t.less=564;t.equal=564;t.greater=564;t.question=444;t.at=921;t.A=722;t.B=667;t.C=667;t.D=722;t.E=611;t.F=556;t.G=722;t.H=722;t.I=333;t.J=389;t.K=722;t.L=611;t.M=889;t.N=722;t.O=722;t.P=556;t.Q=722;t.R=667;t.S=556;t.T=611;t.U=722;t.V=722;t.W=944;t.X=722;t.Y=722;t.Z=611;t.bracketleft=333;t.backslash=278;t.bracketright=333;t.asciicircum=469;t.underscore=500;t.quoteleft=333;t.a=444;t.b=500;t.c=444;t.d=500;t.e=444;t.f=333;t.g=500;t.h=500;t.i=278;t.j=278;t.k=500;t.l=278;t.m=778;t.n=500;t.o=500;t.p=500;t.q=500;t.r=333;t.s=389;t.t=278;t.u=500;t.v=500;t.w=722;t.x=500;t.y=500;t.z=444;t.braceleft=480;t.bar=200;t.braceright=480;t.asciitilde=541;t.exclamdown=333;t.cent=500;t.sterling=500;t.fraction=167;t.yen=500;t.florin=500;t.section=500;t.currency=500;t.quotesingle=180;t.quotedblleft=444;t.guillemotleft=500;t.guilsinglleft=333;t.guilsinglright=333;t.fi=556;t.fl=556;t.endash=500;t.dagger=500;t.daggerdbl=500;t.periodcentered=250;t.paragraph=453;t.bullet=350;t.quotesinglbase=333;t.quotedblbase=444;t.quotedblright=444;t.guillemotright=500;t.ellipsis=1e3;t.perthousand=1e3;t.questiondown=444;t.grave=333;t.acute=333;t.circumflex=333;t.tilde=333;t.macron=333;t.breve=333;t.dotaccent=333;t.dieresis=333;t.ring=333;t.cedilla=333;t.hungarumlaut=333;t.ogonek=333;t.caron=333;t.emdash=1e3;t.AE=889;t.ordfeminine=276;t.Lslash=611;t.Oslash=722;t.OE=889;t.ordmasculine=310;t.ae=667;t.dotlessi=278;t.lslash=278;t.oslash=500;t.oe=722;t.germandbls=500;t.Idieresis=333;t.eacute=444;t.abreve=444;t.uhungarumlaut=500;t.ecaron=444;t.Ydieresis=722;t.divide=564;t.Yacute=722;t.Acircumflex=722;t.aacute=444;t.Ucircumflex=722;t.yacute=500;t.scommaaccent=389;t.ecircumflex=444;t.Uring=722;t.Udieresis=722;t.aogonek=444;t.Uacute=722;t.uogonek=500;t.Edieresis=611;t.Dcroat=722;t.commaaccent=250;t.copyright=760;t.Emacron=611;t.ccaron=444;t.aring=444;t.Ncommaaccent=722;t.lacute=278;t.agrave=444;t.Tcommaaccent=611;t.Cacute=667;t.atilde=444;t.Edotaccent=611;t.scaron=389;t.scedilla=389;t.iacute=278;t.lozenge=471;t.Rcaron=667;t.Gcommaaccent=722;t.ucircumflex=500;t.acircumflex=444;t.Amacron=722;t.rcaron=333;t.ccedilla=444;t.Zdotaccent=611;t.Thorn=556;t.Omacron=722;t.Racute=667;t.Sacute=556;t.dcaron=588;t.Umacron=722;t.uring=500;t.threesuperior=300;t.Ograve=722;t.Agrave=722;t.Abreve=722;t.multiply=564;t.uacute=500;t.Tcaron=611;t.partialdiff=476;t.ydieresis=500;t.Nacute=722;t.icircumflex=278;t.Ecircumflex=611;t.adieresis=444;t.edieresis=444;t.cacute=444;t.nacute=500;t.umacron=500;t.Ncaron=722;t.Iacute=333;t.plusminus=564;t.brokenbar=200;t.registered=760;t.Gbreve=722;t.Idotaccent=333;t.summation=600;t.Egrave=611;t.racute=333;t.omacron=500;t.Zacute=611;t.Zcaron=611;t.greaterequal=549;t.Eth=722;t.Ccedilla=667;t.lcommaaccent=278;t.tcaron=326;t.eogonek=444;t.Uogonek=722;t.Aacute=722;t.Adieresis=722;t.egrave=444;t.zacute=444;t.iogonek=278;t.Oacute=722;t.oacute=500;t.amacron=444;t.sacute=389;t.idieresis=278;t.Ocircumflex=722;t.Ugrave=722;t.Delta=612;t.thorn=500;t.twosuperior=300;t.Odieresis=722;t.mu=500;t.igrave=278;t.ohungarumlaut=500;t.Eogonek=611;t.dcroat=500;t.threequarters=750;t.Scedilla=556;t.lcaron=344;t.Kcommaaccent=722;t.Lacute=611;t.trademark=980;t.edotaccent=444;t.Igrave=333;t.Imacron=333;t.Lcaron=611;t.onehalf=750;t.lessequal=549;t.ocircumflex=500;t.ntilde=500;t.Uhungarumlaut=722;t.Eacute=611;t.emacron=444;t.gbreve=500;t.onequarter=750;t.Scaron=556;t.Scommaaccent=556;t.Ohungarumlaut=722;t.degree=400;t.ograve=500;t.Ccaron=667;t.ugrave=500;t.radical=453;t.Dcaron=722;t.rcommaaccent=333;t.Ntilde=722;t.otilde=500;t.Rcommaaccent=667;t.Lcommaaccent=611;t.Atilde=722;t.Aogonek=722;t.Aring=722;t.Otilde=722;t.zdotaccent=444;t.Ecaron=611;t.Iogonek=333;t.kcommaaccent=500;t.minus=564;t.Icircumflex=333;t.ncaron=500;t.tcommaaccent=278;t.logicalnot=564;t.odieresis=500;t.udieresis=500;t.notequal=549;t.gcommaaccent=500;t.eth=500;t.zcaron=444;t.ncommaaccent=500;t.onesuperior=300;t.imacron=278;t.Euro=500}));t["Times-Bold"]=(0,l.getLookupTableFactory)((function(t){t.space=250;t.exclam=333;t.quotedbl=555;t.numbersign=500;t.dollar=500;t.percent=1e3;t.ampersand=833;t.quoteright=333;t.parenleft=333;t.parenright=333;t.asterisk=500;t.plus=570;t.comma=250;t.hyphen=333;t.period=250;t.slash=278;t.zero=500;t.one=500;t.two=500;t.three=500;t.four=500;t.five=500;t.six=500;t.seven=500;t.eight=500;t.nine=500;t.colon=333;t.semicolon=333;t.less=570;t.equal=570;t.greater=570;t.question=500;t.at=930;t.A=722;t.B=667;t.C=722;t.D=722;t.E=667;t.F=611;t.G=778;t.H=778;t.I=389;t.J=500;t.K=778;t.L=667;t.M=944;t.N=722;t.O=778;t.P=611;t.Q=778;t.R=722;t.S=556;t.T=667;t.U=722;t.V=722;t.W=1e3;t.X=722;t.Y=722;t.Z=667;t.bracketleft=333;t.backslash=278;t.bracketright=333;t.asciicircum=581;t.underscore=500;t.quoteleft=333;t.a=500;t.b=556;t.c=444;t.d=556;t.e=444;t.f=333;t.g=500;t.h=556;t.i=278;t.j=333;t.k=556;t.l=278;t.m=833;t.n=556;t.o=500;t.p=556;t.q=556;t.r=444;t.s=389;t.t=333;t.u=556;t.v=500;t.w=722;t.x=500;t.y=500;t.z=444;t.braceleft=394;t.bar=220;t.braceright=394;t.asciitilde=520;t.exclamdown=333;t.cent=500;t.sterling=500;t.fraction=167;t.yen=500;t.florin=500;t.section=500;t.currency=500;t.quotesingle=278;t.quotedblleft=500;t.guillemotleft=500;t.guilsinglleft=333;t.guilsinglright=333;t.fi=556;t.fl=556;t.endash=500;t.dagger=500;t.daggerdbl=500;t.periodcentered=250;t.paragraph=540;t.bullet=350;t.quotesinglbase=333;t.quotedblbase=500;t.quotedblright=500;t.guillemotright=500;t.ellipsis=1e3;t.perthousand=1e3;t.questiondown=500;t.grave=333;t.acute=333;t.circumflex=333;t.tilde=333;t.macron=333;t.breve=333;t.dotaccent=333;t.dieresis=333;t.ring=333;t.cedilla=333;t.hungarumlaut=333;t.ogonek=333;t.caron=333;t.emdash=1e3;t.AE=1e3;t.ordfeminine=300;t.Lslash=667;t.Oslash=778;t.OE=1e3;t.ordmasculine=330;t.ae=722;t.dotlessi=278;t.lslash=278;t.oslash=500;t.oe=722;t.germandbls=556;t.Idieresis=389;t.eacute=444;t.abreve=500;t.uhungarumlaut=556;t.ecaron=444;t.Ydieresis=722;t.divide=570;t.Yacute=722;t.Acircumflex=722;t.aacute=500;t.Ucircumflex=722;t.yacute=500;t.scommaaccent=389;t.ecircumflex=444;t.Uring=722;t.Udieresis=722;t.aogonek=500;t.Uacute=722;t.uogonek=556;t.Edieresis=667;t.Dcroat=722;t.commaaccent=250;t.copyright=747;t.Emacron=667;t.ccaron=444;t.aring=500;t.Ncommaaccent=722;t.lacute=278;t.agrave=500;t.Tcommaaccent=667;t.Cacute=722;t.atilde=500;t.Edotaccent=667;t.scaron=389;t.scedilla=389;t.iacute=278;t.lozenge=494;t.Rcaron=722;t.Gcommaaccent=778;t.ucircumflex=556;t.acircumflex=500;t.Amacron=722;t.rcaron=444;t.ccedilla=444;t.Zdotaccent=667;t.Thorn=611;t.Omacron=778;t.Racute=722;t.Sacute=556;t.dcaron=672;t.Umacron=722;t.uring=556;t.threesuperior=300;t.Ograve=778;t.Agrave=722;t.Abreve=722;t.multiply=570;t.uacute=556;t.Tcaron=667;t.partialdiff=494;t.ydieresis=500;t.Nacute=722;t.icircumflex=278;t.Ecircumflex=667;t.adieresis=500;t.edieresis=444;t.cacute=444;t.nacute=556;t.umacron=556;t.Ncaron=722;t.Iacute=389;t.plusminus=570;t.brokenbar=220;t.registered=747;t.Gbreve=778;t.Idotaccent=389;t.summation=600;t.Egrave=667;t.racute=444;t.omacron=500;t.Zacute=667;t.Zcaron=667;t.greaterequal=549;t.Eth=722;t.Ccedilla=722;t.lcommaaccent=278;t.tcaron=416;t.eogonek=444;t.Uogonek=722;t.Aacute=722;t.Adieresis=722;t.egrave=444;t.zacute=444;t.iogonek=278;t.Oacute=778;t.oacute=500;t.amacron=500;t.sacute=389;t.idieresis=278;t.Ocircumflex=778;t.Ugrave=722;t.Delta=612;t.thorn=556;t.twosuperior=300;t.Odieresis=778;t.mu=556;t.igrave=278;t.ohungarumlaut=500;t.Eogonek=667;t.dcroat=556;t.threequarters=750;t.Scedilla=556;t.lcaron=394;t.Kcommaaccent=778;t.Lacute=667;t.trademark=1e3;t.edotaccent=444;t.Igrave=389;t.Imacron=389;t.Lcaron=667;t.onehalf=750;t.lessequal=549;t.ocircumflex=500;t.ntilde=556;t.Uhungarumlaut=722;t.Eacute=667;t.emacron=444;t.gbreve=500;t.onequarter=750;t.Scaron=556;t.Scommaaccent=556;t.Ohungarumlaut=778;t.degree=400;t.ograve=500;t.Ccaron=722;t.ugrave=556;t.radical=549;t.Dcaron=722;t.rcommaaccent=444;t.Ntilde=722;t.otilde=500;t.Rcommaaccent=722;t.Lcommaaccent=667;t.Atilde=722;t.Aogonek=722;t.Aring=722;t.Otilde=778;t.zdotaccent=444;t.Ecaron=667;t.Iogonek=389;t.kcommaaccent=556;t.minus=570;t.Icircumflex=389;t.ncaron=556;t.tcommaaccent=333;t.logicalnot=570;t.odieresis=500;t.udieresis=556;t.notequal=549;t.gcommaaccent=500;t.eth=500;t.zcaron=444;t.ncommaaccent=556;t.onesuperior=300;t.imacron=278;t.Euro=500}));t["Times-BoldItalic"]=(0,l.getLookupTableFactory)((function(t){t.space=250;t.exclam=389;t.quotedbl=555;t.numbersign=500;t.dollar=500;t.percent=833;t.ampersand=778;t.quoteright=333;t.parenleft=333;t.parenright=333;t.asterisk=500;t.plus=570;t.comma=250;t.hyphen=333;t.period=250;t.slash=278;t.zero=500;t.one=500;t.two=500;t.three=500;t.four=500;t.five=500;t.six=500;t.seven=500;t.eight=500;t.nine=500;t.colon=333;t.semicolon=333;t.less=570;t.equal=570;t.greater=570;t.question=500;t.at=832;t.A=667;t.B=667;t.C=667;t.D=722;t.E=667;t.F=667;t.G=722;t.H=778;t.I=389;t.J=500;t.K=667;t.L=611;t.M=889;t.N=722;t.O=722;t.P=611;t.Q=722;t.R=667;t.S=556;t.T=611;t.U=722;t.V=667;t.W=889;t.X=667;t.Y=611;t.Z=611;t.bracketleft=333;t.backslash=278;t.bracketright=333;t.asciicircum=570;t.underscore=500;t.quoteleft=333;t.a=500;t.b=500;t.c=444;t.d=500;t.e=444;t.f=333;t.g=500;t.h=556;t.i=278;t.j=278;t.k=500;t.l=278;t.m=778;t.n=556;t.o=500;t.p=500;t.q=500;t.r=389;t.s=389;t.t=278;t.u=556;t.v=444;t.w=667;t.x=500;t.y=444;t.z=389;t.braceleft=348;t.bar=220;t.braceright=348;t.asciitilde=570;t.exclamdown=389;t.cent=500;t.sterling=500;t.fraction=167;t.yen=500;t.florin=500;t.section=500;t.currency=500;t.quotesingle=278;t.quotedblleft=500;t.guillemotleft=500;t.guilsinglleft=333;t.guilsinglright=333;t.fi=556;t.fl=556;t.endash=500;t.dagger=500;t.daggerdbl=500;t.periodcentered=250;t.paragraph=500;t.bullet=350;t.quotesinglbase=333;t.quotedblbase=500;t.quotedblright=500;t.guillemotright=500;t.ellipsis=1e3;t.perthousand=1e3;t.questiondown=500;t.grave=333;t.acute=333;t.circumflex=333;t.tilde=333;t.macron=333;t.breve=333;t.dotaccent=333;t.dieresis=333;t.ring=333;t.cedilla=333;t.hungarumlaut=333;t.ogonek=333;t.caron=333;t.emdash=1e3;t.AE=944;t.ordfeminine=266;t.Lslash=611;t.Oslash=722;t.OE=944;t.ordmasculine=300;t.ae=722;t.dotlessi=278;t.lslash=278;t.oslash=500;t.oe=722;t.germandbls=500;t.Idieresis=389;t.eacute=444;t.abreve=500;t.uhungarumlaut=556;t.ecaron=444;t.Ydieresis=611;t.divide=570;t.Yacute=611;t.Acircumflex=667;t.aacute=500;t.Ucircumflex=722;t.yacute=444;t.scommaaccent=389;t.ecircumflex=444;t.Uring=722;t.Udieresis=722;t.aogonek=500;t.Uacute=722;t.uogonek=556;t.Edieresis=667;t.Dcroat=722;t.commaaccent=250;t.copyright=747;t.Emacron=667;t.ccaron=444;t.aring=500;t.Ncommaaccent=722;t.lacute=278;t.agrave=500;t.Tcommaaccent=611;t.Cacute=667;t.atilde=500;t.Edotaccent=667;t.scaron=389;t.scedilla=389;t.iacute=278;t.lozenge=494;t.Rcaron=667;t.Gcommaaccent=722;t.ucircumflex=556;t.acircumflex=500;t.Amacron=667;t.rcaron=389;t.ccedilla=444;t.Zdotaccent=611;t.Thorn=611;t.Omacron=722;t.Racute=667;t.Sacute=556;t.dcaron=608;t.Umacron=722;t.uring=556;t.threesuperior=300;t.Ograve=722;t.Agrave=667;t.Abreve=667;t.multiply=570;t.uacute=556;t.Tcaron=611;t.partialdiff=494;t.ydieresis=444;t.Nacute=722;t.icircumflex=278;t.Ecircumflex=667;t.adieresis=500;t.edieresis=444;t.cacute=444;t.nacute=556;t.umacron=556;t.Ncaron=722;t.Iacute=389;t.plusminus=570;t.brokenbar=220;t.registered=747;t.Gbreve=722;t.Idotaccent=389;t.summation=600;t.Egrave=667;t.racute=389;t.omacron=500;t.Zacute=611;t.Zcaron=611;t.greaterequal=549;t.Eth=722;t.Ccedilla=667;t.lcommaaccent=278;t.tcaron=366;t.eogonek=444;t.Uogonek=722;t.Aacute=667;t.Adieresis=667;t.egrave=444;t.zacute=389;t.iogonek=278;t.Oacute=722;t.oacute=500;t.amacron=500;t.sacute=389;t.idieresis=278;t.Ocircumflex=722;t.Ugrave=722;t.Delta=612;t.thorn=500;t.twosuperior=300;t.Odieresis=722;t.mu=576;t.igrave=278;t.ohungarumlaut=500;t.Eogonek=667;t.dcroat=500;t.threequarters=750;t.Scedilla=556;t.lcaron=382;t.Kcommaaccent=667;t.Lacute=611;t.trademark=1e3;t.edotaccent=444;t.Igrave=389;t.Imacron=389;t.Lcaron=611;t.onehalf=750;t.lessequal=549;t.ocircumflex=500;t.ntilde=556;t.Uhungarumlaut=722;t.Eacute=667;t.emacron=444;t.gbreve=500;t.onequarter=750;t.Scaron=556;t.Scommaaccent=556;t.Ohungarumlaut=722;t.degree=400;t.ograve=500;t.Ccaron=667;t.ugrave=556;t.radical=549;t.Dcaron=722;t.rcommaaccent=389;t.Ntilde=722;t.otilde=500;t.Rcommaaccent=667;t.Lcommaaccent=611;t.Atilde=667;t.Aogonek=667;t.Aring=667;t.Otilde=722;t.zdotaccent=389;t.Ecaron=667;t.Iogonek=389;t.kcommaaccent=500;t.minus=606;t.Icircumflex=389;t.ncaron=556;t.tcommaaccent=278;t.logicalnot=606;t.odieresis=500;t.udieresis=556;t.notequal=549;t.gcommaaccent=500;t.eth=500;t.zcaron=389;t.ncommaaccent=556;t.onesuperior=300;t.imacron=278;t.Euro=500}));t["Times-Italic"]=(0,l.getLookupTableFactory)((function(t){t.space=250;t.exclam=333;t.quotedbl=420;t.numbersign=500;t.dollar=500;t.percent=833;t.ampersand=778;t.quoteright=333;t.parenleft=333;t.parenright=333;t.asterisk=500;t.plus=675;t.comma=250;t.hyphen=333;t.period=250;t.slash=278;t.zero=500;t.one=500;t.two=500;t.three=500;t.four=500;t.five=500;t.six=500;t.seven=500;t.eight=500;t.nine=500;t.colon=333;t.semicolon=333;t.less=675;t.equal=675;t.greater=675;t.question=500;t.at=920;t.A=611;t.B=611;t.C=667;t.D=722;t.E=611;t.F=611;t.G=722;t.H=722;t.I=333;t.J=444;t.K=667;t.L=556;t.M=833;t.N=667;t.O=722;t.P=611;t.Q=722;t.R=611;t.S=500;t.T=556;t.U=722;t.V=611;t.W=833;t.X=611;t.Y=556;t.Z=556;t.bracketleft=389;t.backslash=278;t.bracketright=389;t.asciicircum=422;t.underscore=500;t.quoteleft=333;t.a=500;t.b=500;t.c=444;t.d=500;t.e=444;t.f=278;t.g=500;t.h=500;t.i=278;t.j=278;t.k=444;t.l=278;t.m=722;t.n=500;t.o=500;t.p=500;t.q=500;t.r=389;t.s=389;t.t=278;t.u=500;t.v=444;t.w=667;t.x=444;t.y=444;t.z=389;t.braceleft=400;t.bar=275;t.braceright=400;t.asciitilde=541;t.exclamdown=389;t.cent=500;t.sterling=500;t.fraction=167;t.yen=500;t.florin=500;t.section=500;t.currency=500;t.quotesingle=214;t.quotedblleft=556;t.guillemotleft=500;t.guilsinglleft=333;t.guilsinglright=333;t.fi=500;t.fl=500;t.endash=500;t.dagger=500;t.daggerdbl=500;t.periodcentered=250;t.paragraph=523;t.bullet=350;t.quotesinglbase=333;t.quotedblbase=556;t.quotedblright=556;t.guillemotright=500;t.ellipsis=889;t.perthousand=1e3;t.questiondown=500;t.grave=333;t.acute=333;t.circumflex=333;t.tilde=333;t.macron=333;t.breve=333;t.dotaccent=333;t.dieresis=333;t.ring=333;t.cedilla=333;t.hungarumlaut=333;t.ogonek=333;t.caron=333;t.emdash=889;t.AE=889;t.ordfeminine=276;t.Lslash=556;t.Oslash=722;t.OE=944;t.ordmasculine=310;t.ae=667;t.dotlessi=278;t.lslash=278;t.oslash=500;t.oe=667;t.germandbls=500;t.Idieresis=333;t.eacute=444;t.abreve=500;t.uhungarumlaut=500;t.ecaron=444;t.Ydieresis=556;t.divide=675;t.Yacute=556;t.Acircumflex=611;t.aacute=500;t.Ucircumflex=722;t.yacute=444;t.scommaaccent=389;t.ecircumflex=444;t.Uring=722;t.Udieresis=722;t.aogonek=500;t.Uacute=722;t.uogonek=500;t.Edieresis=611;t.Dcroat=722;t.commaaccent=250;t.copyright=760;t.Emacron=611;t.ccaron=444;t.aring=500;t.Ncommaaccent=667;t.lacute=278;t.agrave=500;t.Tcommaaccent=556;t.Cacute=667;t.atilde=500;t.Edotaccent=611;t.scaron=389;t.scedilla=389;t.iacute=278;t.lozenge=471;t.Rcaron=611;t.Gcommaaccent=722;t.ucircumflex=500;t.acircumflex=500;t.Amacron=611;t.rcaron=389;t.ccedilla=444;t.Zdotaccent=556;t.Thorn=611;t.Omacron=722;t.Racute=611;t.Sacute=500;t.dcaron=544;t.Umacron=722;t.uring=500;t.threesuperior=300;t.Ograve=722;t.Agrave=611;t.Abreve=611;t.multiply=675;t.uacute=500;t.Tcaron=556;t.partialdiff=476;t.ydieresis=444;t.Nacute=667;t.icircumflex=278;t.Ecircumflex=611;t.adieresis=500;t.edieresis=444;t.cacute=444;t.nacute=500;t.umacron=500;t.Ncaron=667;t.Iacute=333;t.plusminus=675;t.brokenbar=275;t.registered=760;t.Gbreve=722;t.Idotaccent=333;t.summation=600;t.Egrave=611;t.racute=389;t.omacron=500;t.Zacute=556;t.Zcaron=556;t.greaterequal=549;t.Eth=722;t.Ccedilla=667;t.lcommaaccent=278;t.tcaron=300;t.eogonek=444;t.Uogonek=722;t.Aacute=611;t.Adieresis=611;t.egrave=444;t.zacute=389;t.iogonek=278;t.Oacute=722;t.oacute=500;t.amacron=500;t.sacute=389;t.idieresis=278;t.Ocircumflex=722;t.Ugrave=722;t.Delta=612;t.thorn=500;t.twosuperior=300;t.Odieresis=722;t.mu=500;t.igrave=278;t.ohungarumlaut=500;t.Eogonek=611;t.dcroat=500;t.threequarters=750;t.Scedilla=500;t.lcaron=300;t.Kcommaaccent=667;t.Lacute=556;t.trademark=980;t.edotaccent=444;t.Igrave=333;t.Imacron=333;t.Lcaron=611;t.onehalf=750;t.lessequal=549;t.ocircumflex=500;t.ntilde=500;t.Uhungarumlaut=722;t.Eacute=611;t.emacron=444;t.gbreve=500;t.onequarter=750;t.Scaron=500;t.Scommaaccent=500;t.Ohungarumlaut=722;t.degree=400;t.ograve=500;t.Ccaron=667;t.ugrave=500;t.radical=453;t.Dcaron=722;t.rcommaaccent=389;t.Ntilde=667;t.otilde=500;t.Rcommaaccent=611;t.Lcommaaccent=556;t.Atilde=611;t.Aogonek=611;t.Aring=611;t.Otilde=722;t.zdotaccent=389;t.Ecaron=611;t.Iogonek=333;t.kcommaaccent=444;t.minus=675;t.Icircumflex=333;t.ncaron=500;t.tcommaaccent=278;t.logicalnot=675;t.odieresis=500;t.udieresis=500;t.notequal=549;t.gcommaaccent=500;t.eth=500;t.zcaron=389;t.ncommaaccent=500;t.onesuperior=300;t.imacron=278;t.Euro=500}));t.ZapfDingbats=(0,l.getLookupTableFactory)((function(t){t.space=278;t.a1=974;t.a2=961;t.a202=974;t.a3=980;t.a4=719;t.a5=789;t.a119=790;t.a118=791;t.a117=690;t.a11=960;t.a12=939;t.a13=549;t.a14=855;t.a15=911;t.a16=933;t.a105=911;t.a17=945;t.a18=974;t.a19=755;t.a20=846;t.a21=762;t.a22=761;t.a23=571;t.a24=677;t.a25=763;t.a26=760;t.a27=759;t.a28=754;t.a6=494;t.a7=552;t.a8=537;t.a9=577;t.a10=692;t.a29=786;t.a30=788;t.a31=788;t.a32=790;t.a33=793;t.a34=794;t.a35=816;t.a36=823;t.a37=789;t.a38=841;t.a39=823;t.a40=833;t.a41=816;t.a42=831;t.a43=923;t.a44=744;t.a45=723;t.a46=749;t.a47=790;t.a48=792;t.a49=695;t.a50=776;t.a51=768;t.a52=792;t.a53=759;t.a54=707;t.a55=708;t.a56=682;t.a57=701;t.a58=826;t.a59=815;t.a60=789;t.a61=789;t.a62=707;t.a63=687;t.a64=696;t.a65=689;t.a66=786;t.a67=787;t.a68=713;t.a69=791;t.a70=785;t.a71=791;t.a72=873;t.a73=761;t.a74=762;t.a203=762;t.a75=759;t.a204=759;t.a76=892;t.a77=892;t.a78=788;t.a79=784;t.a81=438;t.a82=138;t.a83=277;t.a84=415;t.a97=392;t.a98=392;t.a99=668;t.a100=668;t.a89=390;t.a90=390;t.a93=317;t.a94=317;t.a91=276;t.a92=276;t.a205=509;t.a85=509;t.a206=410;t.a86=410;t.a87=234;t.a88=234;t.a95=334;t.a96=334;t.a101=732;t.a102=544;t.a103=544;t.a104=910;t.a106=667;t.a107=760;t.a108=760;t.a112=776;t.a111=595;t.a110=694;t.a109=626;t.a120=788;t.a121=788;t.a122=788;t.a123=788;t.a124=788;t.a125=788;t.a126=788;t.a127=788;t.a128=788;t.a129=788;t.a130=788;t.a131=788;t.a132=788;t.a133=788;t.a134=788;t.a135=788;t.a136=788;t.a137=788;t.a138=788;t.a139=788;t.a140=788;t.a141=788;t.a142=788;t.a143=788;t.a144=788;t.a145=788;t.a146=788;t.a147=788;t.a148=788;t.a149=788;t.a150=788;t.a151=788;t.a152=788;t.a153=788;t.a154=788;t.a155=788;t.a156=788;t.a157=788;t.a158=788;t.a159=788;t.a160=894;t.a161=838;t.a163=1016;t.a164=458;t.a196=748;t.a165=924;t.a192=748;t.a166=918;t.a167=927;t.a168=928;t.a169=928;t.a170=834;t.a171=873;t.a172=828;t.a173=924;t.a162=924;t.a174=917;t.a175=930;t.a176=931;t.a177=463;t.a178=883;t.a179=836;t.a193=836;t.a180=867;t.a199=867;t.a181=696;t.a200=696;t.a182=874;t.a201=874;t.a183=760;t.a184=946;t.a197=771;t.a185=865;t.a194=771;t.a198=888;t.a186=967;t.a195=888;t.a187=831;t.a188=873;t.a189=927;t.a190=970;t.a191=918}))}));r.getMetrics=c},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.MurmurHash3_64=void 0;var l=o(4);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}var c=3285377520,u=4294901760,h=65535,d=function(){function MurmurHash3_64(t){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,MurmurHash3_64);this.h1=t?4294967295&t:c;this.h2=t?4294967295&t:c}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(MurmurHash3_64,[{key:"update",value:function update(t){var r,o;if((0,l.isString)(t)){r=new Uint8Array(2*t.length);o=0;for(var c=0,d=t.length;c<d;c++){var m=t.charCodeAt(c);if(m<=255)r[o++]=m;else{r[o++]=m>>>8;r[o++]=255&m}}}else{if(!(0,l.isArrayBuffer)(t))throw new Error("Wrong data format in MurmurHash3_64_update. Input must be a string or array.");o=(r=t.slice()).byteLength}for(var g=o>>2,y=o-4*g,v=new Uint32Array(r.buffer,0,g),S=0,_=0,k=this.h1,C=this.h2,w=3432918353,x=461845907,O=11601,T=13715,R=0;R<g;R++)1&R?k=5*(k=(k^=S=(S=(S=(S=v[R])*w&u|S*O&h)<<15|S>>>17)*x&u|S*T&h)<<13|k>>>19)+3864292196:C=5*(C=(C^=_=(_=(_=(_=v[R])*w&u|_*O&h)<<15|_>>>17)*x&u|_*T&h)<<13|C>>>19)+3864292196;S=0;switch(y){case 3:S^=r[4*g+2]<<16;case 2:S^=r[4*g+1]<<8;case 1:S=(S=(S=(S^=r[4*g])*w&u|S*O&h)<<15|S>>>17)*x&u|S*T&h;1&g?k^=S:C^=S}this.h1=k;this.h2=C}},{key:"hexdigest",value:function hexdigest(){var t=this.h1,r=this.h2;t=3981806797*(t^=r>>>1)&u|36045*t&h;t=444984403*(t^=(r=4283543511*r&u|(2950163797*(r<<16|t>>>16)&u)>>>16)>>>1)&u|60499*t&h;var o=((t^=(r=3301882366*r&u|(3120437893*(r<<16|t>>>16)&u)>>>16)>>>1)>>>0).toString(16),l=(r>>>0).toString(16);return o.padStart(8,"0")+l.padStart(8,"0")}}]);return MurmurHash3_64}();r.MurmurHash3_64=d},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.OperatorList=void 0;var l=o(4);function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);if("Map"===o||"Set"===o)return Array.from(t);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}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 u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}function addState(t,r,o,l,c){for(var u=t,h=0,d=r.length-1;h<d;h++){var m=r[h];u=u[m]||(u[m]=[])}u[r[r.length-1]]={checkFn:o,iterateFn:l,processFn:c}}var c=[];addState(c,[l.OPS.save,l.OPS.transform,l.OPS.paintInlineImageXObject,l.OPS.restore],null,(function iterateInlineImageGroup(t,r){var o=t.fnArray,c=(r-(t.iCurr-3))%4;switch(c){case 0:return o[r]===l.OPS.save;case 1:return o[r]===l.OPS.transform;case 2:return o[r]===l.OPS.paintInlineImageXObject;case 3:return o[r]===l.OPS.restore}throw new Error("iterateInlineImageGroup - invalid pos: ".concat(c))}),(function foundInlineImageGroup(t,r){var o=t.fnArray,c=t.argsArray,u=t.iCurr,h=u-3,d=u-2,m=u-1,g=Math.min(Math.floor((r-h)/4),200);if(g<10)return r-(r-h)%4;for(var y=0,v=[],S=0,_=1,k=1,C=0;C<g;C++){var w=c[d+(C<<2)],x=c[m+(C<<2)][0];if(_+x.width>1e3){y=Math.max(y,_);k+=S+2;_=0;S=0}v.push({transform:w,x:_,y:k,w:x.width,h:x.height});_+=x.width+2;S=Math.max(S,x.height)}for(var O=Math.max(y,_)+1,T=k+S+1,R=new Uint8ClampedArray(O*T*4),E=O<<2,M=0;M<g;M++){var D=c[m+(M<<2)][0].data,j=v[M].w<<2,L=0,N=v[M].x+v[M].y*O<<2;R.set(D.subarray(0,j),N-E);for(var U=0,H=v[M].h;U<H;U++){R.set(D.subarray(L,L+j),N);L+=j;N+=E}R.set(D.subarray(L-j,L),N);for(;N>=0;){D[N-4]=D[N];D[N-3]=D[N+1];D[N-2]=D[N+2];D[N-1]=D[N+3];D[N+j]=D[N+j-4];D[N+j+1]=D[N+j-3];D[N+j+2]=D[N+j-2];D[N+j+3]=D[N+j-1];N-=E}}o.splice(h,4*g,l.OPS.paintInlineImageXObjectGroup);c.splice(h,4*g,[{width:O,height:T,kind:l.ImageKind.RGBA_32BPP,data:R},v]);return h+1}));addState(c,[l.OPS.save,l.OPS.transform,l.OPS.paintImageMaskXObject,l.OPS.restore],null,(function iterateImageMaskGroup(t,r){var o=t.fnArray,c=(r-(t.iCurr-3))%4;switch(c){case 0:return o[r]===l.OPS.save;case 1:return o[r]===l.OPS.transform;case 2:return o[r]===l.OPS.paintImageMaskXObject;case 3:return o[r]===l.OPS.restore}throw new Error("iterateImageMaskGroup - invalid pos: ".concat(c))}),(function foundImageMaskGroup(t,r){var o=t.fnArray,c=t.argsArray,u=t.iCurr,h=u-3,d=u-2,m=u-1,g=Math.floor((r-h)/4);g=function handlePaintSolidColorImageMask(t,r,o,c){var u,h=t+2;for(u=0;u<r;u++){var d=c[h+4*u],m=1===d.length&&d[0];if(!m||1!==m.width||1!==m.height||m.data.length&&(1!==m.data.length||0!==m.data[0]))break;o[h+4*u]=l.OPS.paintSolidColorImageMask}return r-u}(h,g,o,c);if(g<10)return r-(r-h)%4;var y,v,S=!1,_=c[m][0],k=c[d][0],C=c[d][1],w=c[d][2],x=c[d][3];if(C===w){S=!0;y=d+4;for(var O=m+4,T=1;T<g;T++,y+=4,O+=4){v=c[y];if(c[O][0]!==_||v[0]!==k||v[1]!==C||v[2]!==w||v[3]!==x){T<10?S=!1:g=T;break}}}if(S){g=Math.min(g,1e3);var R=new Float32Array(2*g);y=d;for(var E=0;E<g;E++,y+=4){v=c[y];R[E<<1]=v[4];R[1+(E<<1)]=v[5]}o.splice(h,4*g,l.OPS.paintImageMaskXObjectRepeat);c.splice(h,4*g,[_,k,C,w,x,R])}else{g=Math.min(g,100);for(var M=[],D=0;D<g;D++){v=c[d+(D<<2)];var j=c[m+(D<<2)][0];M.push({data:j.data,width:j.width,height:j.height,transform:v})}o.splice(h,4*g,l.OPS.paintImageMaskXObjectGroup);c.splice(h,4*g,[M])}return h+1}));addState(c,[l.OPS.save,l.OPS.transform,l.OPS.paintImageXObject,l.OPS.restore],(function(t){var r=t.argsArray,o=t.iCurr-2;return 0===r[o][1]&&0===r[o][2]}),(function iterateImageGroup(t,r){var o=t.fnArray,c=t.argsArray,u=(r-(t.iCurr-3))%4;switch(u){case 0:return o[r]===l.OPS.save;case 1:if(o[r]!==l.OPS.transform)return!1;var h=t.iCurr-2,d=c[h][0],m=c[h][3];return c[r][0]===d&&0===c[r][1]&&0===c[r][2]&&c[r][3]===m;case 2:if(o[r]!==l.OPS.paintImageXObject)return!1;var g=c[t.iCurr-1][0];return c[r][0]===g;case 3:return o[r]===l.OPS.restore}throw new Error("iterateImageGroup - invalid pos: ".concat(u))}),(function(t,r){var o=t.fnArray,c=t.argsArray,u=t.iCurr,h=u-3,d=u-2,m=c[u-1][0],g=c[d][0],y=c[d][3],v=Math.min(Math.floor((r-h)/4),1e3);if(v<3)return r-(r-h)%4;for(var S=new Float32Array(2*v),_=d,k=0;k<v;k++,_+=4){var C=c[_];S[k<<1]=C[4];S[1+(k<<1)]=C[5]}var w=[m,g,y,S];o.splice(h,4*v,l.OPS.paintImageXObjectRepeat);c.splice(h,4*v,w);return h+1}));addState(c,[l.OPS.beginText,l.OPS.setFont,l.OPS.setTextMatrix,l.OPS.showText,l.OPS.endText],null,(function iterateShowTextGroup(t,r){var o=t.fnArray,c=t.argsArray,u=(r-(t.iCurr-4))%5;switch(u){case 0:return o[r]===l.OPS.beginText;case 1:return o[r]===l.OPS.setFont;case 2:return o[r]===l.OPS.setTextMatrix;case 3:if(o[r]!==l.OPS.showText)return!1;var h=t.iCurr-3,d=c[h][0],m=c[h][1];return c[r][0]===d&&c[r][1]===m;case 4:return o[r]===l.OPS.endText}throw new Error("iterateShowTextGroup - invalid pos: ".concat(u))}),(function(t,r){var o=t.fnArray,l=t.argsArray,c=t.iCurr,u=c-4,h=c-3,d=c-2,m=c-1,g=c,y=l[h][0],v=l[h][1],S=Math.min(Math.floor((r-u)/5),1e3);if(S<3)return r-(r-u)%5;var _=u;if(u>=4&&o[u-4]===o[h]&&o[u-3]===o[d]&&o[u-2]===o[m]&&o[u-1]===o[g]&&l[u-4][0]===y&&l[u-4][1]===v){S++;_-=5}for(var k=_+4,C=1;C<S;C++){o.splice(k,3);l.splice(k,3);k+=2}return k+1}));var u=function(){function NullOptimizer(t){_classCallCheck(this,NullOptimizer);this.queue=t}_createClass(NullOptimizer,[{key:"_optimize",value:function _optimize(){}},{key:"push",value:function push(t,r){this.queue.fnArray.push(t);this.queue.argsArray.push(r);this._optimize()}},{key:"flush",value:function flush(){}},{key:"reset",value:function reset(){}}]);return NullOptimizer}(),h=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(QueueOptimizer,t);var r=_createSuper(QueueOptimizer);function QueueOptimizer(t){var o;_classCallCheck(this,QueueOptimizer);(o=r.call(this,t)).state=null;o.context={iCurr:0,fnArray:t.fnArray,argsArray:t.argsArray};o.match=null;o.lastProcessed=0;return o}_createClass(QueueOptimizer,[{key:"_optimize",value:function _optimize(){var t=this.queue.fnArray,r=this.lastProcessed,o=t.length,l=this.state,u=this.match;if(l||u||r+1!==o||c[t[r]]){for(var h=this.context;r<o;){if(u){if((0,u.iterateFn)(h,r)){r++;continue}r=(0,u.processFn)(h,r+1);u=null;l=null;if(r>=(o=t.length))break}if((l=(l||c)[t[r]])&&!Array.isArray(l)){h.iCurr=r;r++;if(!l.checkFn||(0,l.checkFn)(h)){u=l;l=null}else l=null}else r++}this.state=l;this.match=u;this.lastProcessed=r}else this.lastProcessed=o}},{key:"flush",value:function flush(){for(;this.match;){var t=this.queue.fnArray.length;this.lastProcessed=(0,this.match.processFn)(this.context,t);this.match=null;this.state=null;this._optimize()}}},{key:"reset",value:function reset(){this.state=null;this.match=null;this.lastProcessed=0}}]);return QueueOptimizer}(u),d=function(){function OperatorList(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,r=arguments.length>1?arguments[1]:void 0;_classCallCheck(this,OperatorList);this._streamSink=r;this.fnArray=[];this.argsArray=[];!r||t&l.RenderingIntentFlag.OPLIST?this.optimizer=new u(this):this.optimizer=new h(this);this.dependencies=new Set;this._totalLength=0;this.weight=0;this._resolved=r?null:Promise.resolve()}_createClass(OperatorList,[{key:"length",get:function get(){return this.argsArray.length}},{key:"ready",get:function get(){return this._resolved||this._streamSink.ready}},{key:"totalLength",get:function get(){return this._totalLength+this.length}},{key:"addOp",value:function addOp(t,r){this.optimizer.push(t,r);this.weight++;this._streamSink&&(this.weight>=OperatorList.CHUNK_SIZE||this.weight>=OperatorList.CHUNK_SIZE_ABOUT&&(t===l.OPS.restore||t===l.OPS.endText))&&this.flush()}},{key:"addDependency",value:function addDependency(t){if(!this.dependencies.has(t)){this.dependencies.add(t);this.addOp(l.OPS.dependency,[t])}}},{key:"addDependencies",value:function addDependencies(t){var r,o=_createForOfIteratorHelper(t);try{for(o.s();!(r=o.n()).done;){var l=r.value;this.addDependency(l)}}catch(t){o.e(t)}finally{o.f()}}},{key:"addOpList",value:function addOpList(t){if(t instanceof OperatorList){var r,o=_createForOfIteratorHelper(t.dependencies);try{for(o.s();!(r=o.n()).done;){var c=r.value;this.dependencies.add(c)}}catch(t){o.e(t)}finally{o.f()}for(var u=0,h=t.length;u<h;u++)this.addOp(t.fnArray[u],t.argsArray[u])}else(0,l.warn)('addOpList - ignoring invalid "opList" parameter.')}},{key:"getIR",value:function getIR(){return{fnArray:this.fnArray,argsArray:this.argsArray,length:this.length}}},{key:"_transfers",get:function get(){for(var t=[],r=this.fnArray,o=this.argsArray,c=this.length,u=0;u<c;u++)switch(r[u]){case l.OPS.paintInlineImageXObject:case l.OPS.paintInlineImageXObjectGroup:case l.OPS.paintImageMaskXObject:var h=o[u][0];h.cached||t.push(h.data.buffer)}return t}},{key:"flush",value:function flush(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.optimizer.flush();var r=this.length;this._totalLength+=r;this._streamSink.enqueue({fnArray:this.fnArray,argsArray:this.argsArray,lastChunk:t,length:r},1,this._transfers);this.dependencies.clear();this.fnArray.length=0;this.argsArray.length=0;this.weight=0;this.optimizer.reset()}}],[{key:"CHUNK_SIZE",get:function get(){return(0,l.shadow)(this,"CHUNK_SIZE",1e3)}},{key:"CHUNK_SIZE_ABOUT",get:function get(){return(0,l.shadow)(this,"CHUNK_SIZE_ABOUT",this.CHUNK_SIZE-5)}}]);return OperatorList}();r.OperatorList=d},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.PDFImage=void 0;var l=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(o(2)),c=o(4),u=o(118),h=o(137),d=o(142),m=o(150),g=o(153);function asyncGeneratorStep(t,r,o,l,c,u,h){try{var d=t[u](h),m=d.value}catch(t){o(t);return}d.done?r(m):Promise.resolve(m).then(l,c)}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function decodeAndClamp(t,r,o,l){(t=r+t*o)<0?t=0:t>l&&(t=l);return t}function resizeImageMask(t,r,o,l,c,u){var h,d=c*u;h=r<=8?new Uint8Array(d):r<=16?new Uint16Array(d):new Uint32Array(d);var m,g,y,v,S=o/c,_=l/u,k=0,C=new Uint16Array(c),w=o;for(m=0;m<c;m++)C[m]=Math.floor(m*S);for(m=0;m<u;m++){y=Math.floor(m*_)*w;for(g=0;g<c;g++){v=y+C[g];h[k++]=t[v]}}return h}var y=function(){function PDFImage(t){var r=t.xref,o=t.res,l=t.image,d=t.isInline,m=void 0!==d&&d,y=t.smask,v=void 0===y?null:y,S=t.mask,_=void 0===S?null:S,k=t.isMask,C=void 0!==k&&k,w=t.pdfFunctionFactory,x=t.localColorSpaceCache;!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,PDFImage);this.image=l;var O=l.dict,T=O.get("Filter");if((0,u.isName)(T))switch(T.name){case"JPXDecode":var R=new g.JpxImage;R.parseImageProperties(l.stream);l.stream.reset();l.width=R.width;l.height=R.height;l.bitsPerComponent=R.bitsPerComponent;l.numComps=R.componentsCount;break;case"JBIG2Decode":l.bitsPerComponent=1;l.numComps=1}var E=O.get("Width","W"),M=O.get("Height","H");if(Number.isInteger(l.width)&&l.width>0&&Number.isInteger(l.height)&&l.height>0&&(l.width!==E||l.height!==M)){(0,c.warn)("PDFImage - using the Width/Height of the image data, rather than the image dictionary.");E=l.width;M=l.height}if(E<1||M<1)throw new c.FormatError("Invalid image width: ".concat(E," or height: ").concat(M));this.width=E;this.height=M;this.interpolate=O.get("Interpolate","I");this.imageMask=O.get("ImageMask","IM")||!1;this.matte=O.get("Matte")||!1;var D=l.bitsPerComponent;if(!D&&!(D=O.get("BitsPerComponent","BPC"))){if(!this.imageMask)throw new c.FormatError("Bits per component missing in image: ".concat(this.imageMask));D=1}this.bpc=D;if(!this.imageMask){var j=O.getRaw("ColorSpace")||O.getRaw("CS");if(!j){(0,c.info)("JPX images (which do not require color spaces)");switch(l.numComps){case 1:j=u.Name.get("DeviceGray");break;case 3:j=u.Name.get("DeviceRGB");break;case 4:j=u.Name.get("DeviceCMYK");break;default:throw new Error("JPX images with ".concat(l.numComps," ")+"color components not supported.")}}this.colorSpace=h.ColorSpace.parse({cs:j,xref:r,resources:m?o:null,pdfFunctionFactory:w,localColorSpaceCache:x});this.numComps=this.colorSpace.numComps}this.decode=O.getArray("Decode","D");this.needsDecode=!1;if(this.decode&&(this.colorSpace&&!this.colorSpace.isDefaultDecode(this.decode,D)||C&&!h.ColorSpace.isDefaultDecode(this.decode,1))){this.needsDecode=!0;var L=(1<<D)-1;this.decodeCoefficients=[];this.decodeAddends=[];for(var N=this.colorSpace&&"Indexed"===this.colorSpace.name,U=0,H=0;U<this.decode.length;U+=2,++H){var W=this.decode[U],$=this.decode[U+1];this.decodeCoefficients[H]=N?($-W)/L:$-W;this.decodeAddends[H]=N?W:L*W}}if(v)this.smask=new PDFImage({xref:r,res:o,image:v,isInline:m,pdfFunctionFactory:w,localColorSpaceCache:x});else if(_)if((0,u.isStream)(_)){_.dict.get("ImageMask","IM")?this.mask=new PDFImage({xref:r,res:o,image:_,isInline:m,isMask:!0,pdfFunctionFactory:w,localColorSpaceCache:x}):(0,c.warn)("Ignoring /Mask in image without /ImageMask.")}else this.mask=_}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(PDFImage,[{key:"drawWidth",get:function get(){return Math.max(this.width,this.smask&&this.smask.width||0,this.mask&&this.mask.width||0)}},{key:"drawHeight",get:function get(){return Math.max(this.height,this.smask&&this.smask.height||0,this.mask&&this.mask.height||0)}},{key:"decodeBuffer",value:function decodeBuffer(t){var r,o,l=this.bpc,c=this.numComps,u=this.decodeAddends,h=this.decodeCoefficients,d=(1<<l)-1;if(1!==l){var m=0;for(r=0,o=this.width*this.height;r<o;r++)for(var g=0;g<c;g++){t[m]=decodeAndClamp(t[m],u[g],h[g],d);m++}}else for(r=0,o=t.length;r<o;r++)t[r]=+!t[r]}},{key:"getComponents",value:function getComponents(t){var r=this.bpc;if(8===r)return t;var o,l=this.width,c=this.height,u=this.numComps,h=l*c*u,d=0;o=r<=8?new Uint8Array(h):r<=16?new Uint16Array(h):new Uint32Array(h);var m,g,y=l*u,v=(1<<r)-1,S=0;if(1===r)for(var _,k,C,w=0;w<c;w++){k=S+(-8&y);C=S+y;for(;S<k;){g=t[d++];o[S]=g>>7&1;o[S+1]=g>>6&1;o[S+2]=g>>5&1;o[S+3]=g>>4&1;o[S+4]=g>>3&1;o[S+5]=g>>2&1;o[S+6]=g>>1&1;o[S+7]=1&g;S+=8}if(S<C){g=t[d++];_=128;for(;S<C;){o[S++]=+!!(g&_);_>>=1}}}else{var x=0;g=0;for(S=0,m=h;S<m;++S){if(S%y==0){g=0;x=0}for(;x<r;){g=g<<8|t[d++];x+=8}var O=x-r,T=g>>O;T<0?T=0:T>v&&(T=v);o[S]=T;g&=(1<<O)-1;x=O}}return o}},{key:"fillOpacity",value:function fillOpacity(t,r,o,l,u){var h,d,m,g,y,v,S=this.smask,_=this.mask;if(S){d=S.width;m=S.height;h=new Uint8ClampedArray(d*m);S.fillGrayBuffer(h);d===r&&m===o||(h=resizeImageMask(h,S.bpc,d,m,r,o))}else if(_)if(_ instanceof PDFImage){d=_.width;m=_.height;h=new Uint8ClampedArray(d*m);_.numComps=1;_.fillGrayBuffer(h);for(g=0,y=d*m;g<y;++g)h[g]=255-h[g];d===r&&m===o||(h=resizeImageMask(h,_.bpc,d,m,r,o))}else{if(!Array.isArray(_))throw new c.FormatError("Unknown mask format.");h=new Uint8ClampedArray(r*o);var k=this.numComps;for(g=0,y=r*o;g<y;++g){var C=0,w=g*k;for(v=0;v<k;++v){var x=u[w+v],O=2*v;if(x<_[O]||x>_[O+1]){C=255;break}}h[g]=C}}if(h)for(g=0,v=3,y=r*l;g<y;++g,v+=4)t[v]=h[g];else for(g=0,v=3,y=r*l;g<y;++g,v+=4)t[v]=255}},{key:"undoPreblend",value:function undoPreblend(t,r,o){var l=this.smask&&this.smask.matte;if(l)for(var c=this.colorSpace.getRgb(l,0),u=c[0],h=c[1],d=c[2],m=r*o*4,g=0;g<m;g+=4){var y=t[g+3];if(0!==y){var v=255/y;t[g]=(t[g]-u)*v+u;t[g+1]=(t[g+1]-h)*v+h;t[g+2]=(t[g+2]-d)*v+d}else{t[g]=255;t[g+1]=255;t[g+2]=255}}}},{key:"createImageData",value:function createImageData(){var t,r=arguments.length>0&&void 0!==arguments[0]&&arguments[0],o=this.drawWidth,l=this.drawHeight,u={width:o,height:l,interpolate:this.interpolate,kind:0,data:null},h=this.numComps,g=this.width,y=this.height,v=this.bpc,S=g*h*v+7>>3;if(!r){var _;"DeviceGray"===this.colorSpace.name&&1===v?_=c.ImageKind.GRAYSCALE_1BPP:"DeviceRGB"!==this.colorSpace.name||8!==v||this.needsDecode||(_=c.ImageKind.RGB_24BPP);if(_&&!this.smask&&!this.mask&&o===g&&l===y){u.kind=_;t=this.getImageBytes(y*S);if(this.image instanceof d.DecodeStream)u.data=t;else{var k=new Uint8ClampedArray(t.length);k.set(t);u.data=k}if(this.needsDecode){(0,c.assert)(_===c.ImageKind.GRAYSCALE_1BPP,"PDFImage.createImageData: The image must be grayscale.");for(var C=u.data,w=0,x=C.length;w<x;w++)C[w]^=255}return u}if(this.image instanceof m.JpegStream&&!this.smask&&!this.mask){var O=y*S;switch(this.colorSpace.name){case"DeviceGray":O*=3;case"DeviceRGB":case"DeviceCMYK":u.kind=c.ImageKind.RGB_24BPP;u.data=this.getImageBytes(O,o,l,!0);return u}}}var T,R,E=0|(t=this.getImageBytes(y*S)).length/S*l/y,M=this.getComponents(t);if(r||this.smask||this.mask){u.kind=c.ImageKind.RGBA_32BPP;u.data=new Uint8ClampedArray(o*l*4);T=1;R=!0;this.fillOpacity(u.data,o,l,E,M)}else{u.kind=c.ImageKind.RGB_24BPP;u.data=new Uint8ClampedArray(o*l*3);T=0;R=!1}this.needsDecode&&this.decodeBuffer(M);this.colorSpace.fillRgb(u.data,g,y,o,l,E,v,M,T);R&&this.undoPreblend(u.data,o,E);return u}},{key:"fillGrayBuffer",value:function fillGrayBuffer(t){var r=this.numComps;if(1!==r)throw new c.FormatError("Reading gray scale from a color image: ".concat(r));var o,l,u=this.width,h=this.height,d=this.bpc,m=u*r*d+7>>3,g=this.getImageBytes(h*m),y=this.getComponents(g);if(1!==d){this.needsDecode&&this.decodeBuffer(y);l=u*h;var v=255/((1<<d)-1);for(o=0;o<l;++o)t[o]=v*y[o]}else{l=u*h;if(this.needsDecode)for(o=0;o<l;++o)t[o]=y[o]-1&255;else for(o=0;o<l;++o)t[o]=255&-y[o]}}},{key:"getImageBytes",value:function getImageBytes(t,r,o){var l=arguments.length>3&&void 0!==arguments[3]&&arguments[3];this.image.reset();this.image.drawWidth=r||this.width;this.image.drawHeight=o||this.height;this.image.forceRGB=!!l;return this.image.getBytes(t,!0)}}],[{key:"buildImage",value:(t=function _asyncToGenerator(t){return function(){var r=this,o=arguments;return new Promise((function(l,c){var u=t.apply(r,o);function _next(t){asyncGeneratorStep(u,l,c,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(u,l,c,_next,_throw,"throw",t)}_next(void 0)}))}}(l.default.mark((function _callee(t){var r,o,h,d,m,g,y,v,S,_,k,C;return l.default.wrap((function _callee$(l){for(;;)switch(l.prev=l.next){case 0:r=t.xref,o=t.res,h=t.image,d=t.isInline,m=void 0!==d&&d,g=t.pdfFunctionFactory,y=t.localColorSpaceCache;v=h;S=null;_=null;k=h.dict.get("SMask");C=h.dict.get("Mask");k?S=k:C&&((0,u.isStream)(C)||Array.isArray(C)?_=C:(0,c.warn)("Unsupported mask format."));return l.abrupt("return",new PDFImage({xref:r,res:o,image:v,isInline:m,smask:S,mask:_,pdfFunctionFactory:g,localColorSpaceCache:y}));case 8:case"end":return l.stop()}}),_callee)}))),function buildImage(r){return t.apply(this,arguments)})},{key:"createMask",value:function createMask(t){var r,o,l=t.imgArray,c=t.width,u=t.height,h=t.imageIsFromDecodeStream,d=t.inverseDecode,m=t.interpolate,g=(c+7>>3)*u,y=l.byteLength;if(!h||d&&!(g===y))if(d){(r=new Uint8ClampedArray(g)).set(l);for(o=y;o<g;o++)r[o]=255}else(r=new Uint8ClampedArray(y)).set(l);else r=l;if(d)for(o=0;o<y;o++)r[o]^=255;return{data:r,width:c,height:u,interpolate:m}}}]);var t;return PDFImage}();r.PDFImage=y},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.Catalog=void 0;var l=o(118),c=o(122),u=o(4),h=o(178),d=o(137),m=o(179),g=o(171),y=o(180),v=o(182);function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}function _toConsumableArray(t){return function _arrayWithoutHoles(t){if(Array.isArray(t))return _arrayLikeToArray(t)}(t)||function _iterableToArray(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||_unsupportedIterableToArray(t)||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 _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||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 _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}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 u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function fetchDestination(t){t instanceof l.Dict&&(t=t.get("D"));return Array.isArray(t)?t:null}var S=function(){function Catalog(t,r){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,Catalog);this.pdfManager=t;this.xref=r;this._catDict=r.getCatalogObj();if(!(0,l.isDict)(this._catDict))throw new u.FormatError("Catalog object is not a dictionary.");this.fontCache=new l.RefSetCache;this.builtInCMapCache=new Map;this.standardFontDataCache=new Map;this.globalImageCache=new g.GlobalImageCache;this.pageKidsCountCache=new l.RefSetCache;this.pageIndexCache=new l.RefSetCache;this.nonBlendModesSet=new l.RefSet}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(Catalog,[{key:"version",get:function get(){var t=this._catDict.get("Version");return(0,l.isName)(t)?(0,u.shadow)(this,"version",t.name):(0,u.shadow)(this,"version",null)}},{key:"needsRendering",get:function get(){var t=this._catDict.get("NeedsRendering");return(0,u.isBool)(t)?(0,u.shadow)(this,"needsRendering",t):(0,u.shadow)(this,"needsRendering",!1)}},{key:"collection",get:function get(){var t=null;try{var r=this._catDict.get("Collection");(0,l.isDict)(r)&&r.size>0&&(t=r)}catch(t){if(t instanceof c.MissingDataException)throw t;(0,u.info)("Cannot fetch Collection entry; assuming no collection is present.")}return(0,u.shadow)(this,"collection",t)}},{key:"acroForm",get:function get(){var t=null;try{var r=this._catDict.get("AcroForm");(0,l.isDict)(r)&&r.size>0&&(t=r)}catch(t){if(t instanceof c.MissingDataException)throw t;(0,u.info)("Cannot fetch AcroForm entry; assuming no forms are present.")}return(0,u.shadow)(this,"acroForm",t)}},{key:"acroFormRef",get:function get(){var t=this._catDict.getRaw("AcroForm");return(0,u.shadow)(this,"acroFormRef",(0,l.isRef)(t)?t:null)}},{key:"metadata",get:function get(){var t=this._catDict.getRaw("Metadata");if(!(0,l.isRef)(t))return(0,u.shadow)(this,"metadata",null);var r=!(this.xref.encrypt&&this.xref.encrypt.encryptMetadata),o=this.xref.fetch(t,r),h=null;if((0,l.isStream)(o)&&(0,l.isDict)(o.dict)){var d=o.dict.get("Type"),m=o.dict.get("Subtype");if((0,l.isName)(d,"Metadata")&&(0,l.isName)(m,"XML"))try{var g=(0,u.stringToUTF8String)(o.getString());g&&(h=new y.MetadataParser(g).serializable)}catch(t){if(t instanceof c.MissingDataException)throw t;(0,u.info)("Skipping invalid metadata.")}}return(0,u.shadow)(this,"metadata",h)}},{key:"markInfo",get:function get(){var t=null;try{t=this._readMarkInfo()}catch(t){if(t instanceof c.MissingDataException)throw t;(0,u.warn)("Unable to read mark info.")}return(0,u.shadow)(this,"markInfo",t)}},{key:"_readMarkInfo",value:function _readMarkInfo(){var t=this._catDict.get("MarkInfo");if(!(0,l.isDict)(t))return null;var r=Object.assign(Object.create(null),{Marked:!1,UserProperties:!1,Suspects:!1});for(var o in r)if(t.has(o)){var c=t.get(o);(0,u.isBool)(c)&&(r[o]=c)}return r}},{key:"structTreeRoot",get:function get(){var t=null;try{t=this._readStructTreeRoot()}catch(t){if(t instanceof c.MissingDataException)throw t;(0,u.warn)("Unable read to structTreeRoot info.")}return(0,u.shadow)(this,"structTreeRoot",t)}},{key:"_readStructTreeRoot",value:function _readStructTreeRoot(){var t=this._catDict.get("StructTreeRoot");if(!(0,l.isDict)(t))return null;var r=new v.StructTreeRoot(t);r.init();return r}},{key:"toplevelPagesDict",get:function get(){var t=this._catDict.get("Pages");if(!(0,l.isDict)(t))throw new u.FormatError("Invalid top-level pages dictionary.");return(0,u.shadow)(this,"toplevelPagesDict",t)}},{key:"documentOutline",get:function get(){var t=null;try{t=this._readDocumentOutline()}catch(t){if(t instanceof c.MissingDataException)throw t;(0,u.warn)("Unable to read document outline.")}return(0,u.shadow)(this,"documentOutline",t)}},{key:"_readDocumentOutline",value:function _readDocumentOutline(){var t=this._catDict.get("Outlines");if(!(0,l.isDict)(t))return null;t=t.getRaw("First");if(!(0,l.isRef)(t))return null;var r={items:[]},o=[{obj:t,parent:r}],c=new l.RefSet;c.put(t);for(var h=this.xref,m=new Uint8ClampedArray(3);o.length>0;){var g=o.shift(),y=h.fetchIfRef(g.obj);if(null!==y){if(!y.has("Title"))throw new u.FormatError("Invalid outline item encountered.");var v={url:null,dest:null};Catalog.parseDestDictionary({destDict:y,resultObj:v,docBaseUrl:this.pdfManager.docBaseUrl});var S=y.get("Title"),_=y.get("F")||0,k=y.getArray("C"),C=y.get("Count"),w=m;!Array.isArray(k)||3!==k.length||0===k[0]&&0===k[1]&&0===k[2]||(w=d.ColorSpace.singletons.rgb.getRgb(k,0));var x={dest:v.dest,url:v.url,unsafeUrl:v.unsafeUrl,newWindow:v.newWindow,title:(0,u.stringToPDFString)(S),color:w,count:Number.isInteger(C)?C:void 0,bold:!!(2&_),italic:!!(1&_),items:[]};g.parent.items.push(x);t=y.getRaw("First");if((0,l.isRef)(t)&&!c.has(t)){o.push({obj:t,parent:x});c.put(t)}t=y.getRaw("Next");if((0,l.isRef)(t)&&!c.has(t)){o.push({obj:t,parent:g.parent});c.put(t)}}}return r.items.length>0?r.items:null}},{key:"permissions",get:function get(){var t=null;try{t=this._readPermissions()}catch(t){if(t instanceof c.MissingDataException)throw t;(0,u.warn)("Unable to read permissions.")}return(0,u.shadow)(this,"permissions",t)}},{key:"_readPermissions",value:function _readPermissions(){var t=this.xref.trailer.get("Encrypt");if(!(0,l.isDict)(t))return null;var r=t.get("P");if(!(0,u.isNum)(r))return null;r+=Math.pow(2,32);var o=[];for(var c in u.PermissionFlag){var h=u.PermissionFlag[c];r&h&&o.push(h)}return o}},{key:"optionalContentConfig",get:function get(){var t=null;try{var r=this._catDict.get("OCProperties");if(!r)return(0,u.shadow)(this,"optionalContentConfig",null);var o=r.get("D");if(!o)return(0,u.shadow)(this,"optionalContentConfig",null);var h=r.get("OCGs");if(!Array.isArray(h))return(0,u.shadow)(this,"optionalContentConfig",null);var d,m=[],g=[],y=_createForOfIteratorHelper(h);try{for(y.s();!(d=y.n()).done;){var v=d.value;if((0,l.isRef)(v)){g.push(v);var S=this.xref.fetchIfRef(v);m.push({id:v.toString(),name:(0,u.isString)(S.get("Name"))?(0,u.stringToPDFString)(S.get("Name")):null,intent:(0,u.isString)(S.get("Intent"))?(0,u.stringToPDFString)(S.get("Intent")):null})}}}catch(t){y.e(t)}finally{y.f()}(t=this._readOptionalContentConfig(o,g)).groups=m}catch(t){if(t instanceof c.MissingDataException)throw t;(0,u.warn)("Unable to read optional content config: ".concat(t))}return(0,u.shadow)(this,"optionalContentConfig",t)}},{key:"_readOptionalContentConfig",value:function _readOptionalContentConfig(t,r){function parseOnOff(t){var o=[];if(Array.isArray(t)){var c,u=_createForOfIteratorHelper(t);try{for(u.s();!(c=u.n()).done;){var h=c.value;(0,l.isRef)(h)&&(r.includes(h)&&o.push(h.toString()))}}catch(t){u.e(t)}finally{u.f()}}return o}function parseOrder(t){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(!Array.isArray(t))return null;var u,h=[],d=_createForOfIteratorHelper(t);try{for(d.s();!(u=d.n()).done;){var m=u.value;if((0,l.isRef)(m)&&r.includes(m)){c.put(m);h.push(m.toString())}else{var g=parseNestedOrder(m,o);g&&h.push(g)}}}catch(t){d.e(t)}finally{d.f()}if(o>0)return h;var y,v=[],S=_createForOfIteratorHelper(r);try{for(S.s();!(y=S.n()).done;){var _=y.value;c.has(_)||v.push(_.toString())}}catch(t){S.e(t)}finally{S.f()}v.length&&h.push({name:null,order:v});return h}function parseNestedOrder(t,r){if(++r>h){(0,u.warn)("parseNestedOrder - reached MAX_NESTED_LEVELS.");return null}var l=o.fetchIfRef(t);if(!Array.isArray(l))return null;var c=o.fetchIfRef(l[0]);if("string"!=typeof c)return null;var d=parseOrder(l.slice(1),r);return d&&d.length?{name:(0,u.stringToPDFString)(c),order:d}:null}var o=this.xref,c=new l.RefSet,h=10;return{name:(0,u.isString)(t.get("Name"))?(0,u.stringToPDFString)(t.get("Name")):null,creator:(0,u.isString)(t.get("Creator"))?(0,u.stringToPDFString)(t.get("Creator")):null,baseState:(0,l.isName)(t.get("BaseState"))?t.get("BaseState").name:null,on:parseOnOff(t.get("ON")),off:parseOnOff(t.get("OFF")),order:parseOrder(t.get("Order")),groups:null}}},{key:"numPages",get:function get(){var t=this.toplevelPagesDict.get("Count");if(!Number.isInteger(t))throw new u.FormatError("Page count in top-level pages dictionary is not an integer.");return(0,u.shadow)(this,"numPages",t)}},{key:"destinations",get:function get(){var t=this._readDests(),r=Object.create(null);if(t instanceof h.NameTree){var o,c=_createForOfIteratorHelper(t.getAll());try{for(c.s();!(o=c.n()).done;){var d=_slicedToArray(o.value,2),m=d[0],g=fetchDestination(d[1]);g&&(r[m]=g)}}catch(t){c.e(t)}finally{c.f()}}else t instanceof l.Dict&&t.forEach((function(t,o){var l=fetchDestination(o);l&&(r[t]=l)}));return(0,u.shadow)(this,"destinations",r)}},{key:"getDestination",value:function getDestination(t){var r=this._readDests();if(r instanceof h.NameTree){var o=fetchDestination(r.get(t));if(o)return o;var c=this.destinations[t];if(c){(0,u.warn)('Found "'.concat(t,'" at an incorrect position in the NameTree.'));return c}}else if(r instanceof l.Dict){var d=fetchDestination(r.get(t));if(d)return d}return null}},{key:"_readDests",value:function _readDests(){var t=this._catDict.get("Names");return t&&t.has("Dests")?new h.NameTree(t.getRaw("Dests"),this.xref):this._catDict.has("Dests")?this._catDict.get("Dests"):void 0}},{key:"pageLabels",get:function get(){var t=null;try{t=this._readPageLabels()}catch(t){if(t instanceof c.MissingDataException)throw t;(0,u.warn)("Unable to read page labels.")}return(0,u.shadow)(this,"pageLabels",t)}},{key:"_readPageLabels",value:function _readPageLabels(){var t=this._catDict.getRaw("PageLabels");if(!t)return null;for(var r=new Array(this.numPages),o=null,d="",m=new h.NumberTree(t,this.xref).getAll(),g="",y=1,v=0,S=this.numPages;v<S;v++){var _=m.get(v);if(void 0!==_){if(!(0,l.isDict)(_))throw new u.FormatError("PageLabel is not a dictionary.");if(_.has("Type")&&!(0,l.isName)(_.get("Type"),"PageLabel"))throw new u.FormatError("Invalid type in PageLabel dictionary.");if(_.has("S")){var k=_.get("S");if(!(0,l.isName)(k))throw new u.FormatError("Invalid style in PageLabel dictionary.");o=k.name}else o=null;if(_.has("P")){var C=_.get("P");if(!(0,u.isString)(C))throw new u.FormatError("Invalid prefix in PageLabel dictionary.");d=(0,u.stringToPDFString)(C)}else d="";if(_.has("St")){var w=_.get("St");if(!(Number.isInteger(w)&&w>=1))throw new u.FormatError("Invalid start in PageLabel dictionary.");y=w}else y=1}switch(o){case"D":g=y;break;case"R":case"r":g=(0,c.toRomanNumerals)(y,"r"===o);break;case"A":case"a":for(var x="a"===o?97:65,O=y-1,T=String.fromCharCode(x+O%26),R=[],E=0,M=O/26|0;E<=M;E++)R.push(T);g=R.join("");break;default:if(o)throw new u.FormatError('Invalid style "'.concat(o,'" in PageLabel dictionary.'));g=""}r[v]=d+g;y++}return r}},{key:"pageLayout",get:function get(){var t=this._catDict.get("PageLayout"),r="";if((0,l.isName)(t))switch(t.name){case"SinglePage":case"OneColumn":case"TwoColumnLeft":case"TwoColumnRight":case"TwoPageLeft":case"TwoPageRight":r=t.name}return(0,u.shadow)(this,"pageLayout",r)}},{key:"pageMode",get:function get(){var t=this._catDict.get("PageMode"),r="UseNone";if((0,l.isName)(t))switch(t.name){case"UseNone":case"UseOutlines":case"UseThumbs":case"FullScreen":case"UseOC":case"UseAttachments":r=t.name}return(0,u.shadow)(this,"pageMode",r)}},{key:"viewerPreferences",get:function get(){var t=this,r={HideToolbar:u.isBool,HideMenubar:u.isBool,HideWindowUI:u.isBool,FitWindow:u.isBool,CenterWindow:u.isBool,DisplayDocTitle:u.isBool,NonFullScreenPageMode:l.isName,Direction:l.isName,ViewArea:l.isName,ViewClip:l.isName,PrintArea:l.isName,PrintClip:l.isName,PrintScaling:l.isName,Duplex:l.isName,PickTrayByPDFSize:u.isBool,PrintPageRange:Array.isArray,NumCopies:Number.isInteger},o=this._catDict.get("ViewerPreferences"),c=null;if((0,l.isDict)(o))for(var h in r)if(o.has(h)){var d=o.get(h);if(r[h](d)){var m=void 0;switch(h){case"NonFullScreenPageMode":switch(d.name){case"UseNone":case"UseOutlines":case"UseThumbs":case"UseOC":m=d.name;break;default:m="UseNone"}break;case"Direction":switch(d.name){case"L2R":case"R2L":m=d.name;break;default:m="L2R"}break;case"ViewArea":case"ViewClip":case"PrintArea":case"PrintClip":switch(d.name){case"MediaBox":case"CropBox":case"BleedBox":case"TrimBox":case"ArtBox":m=d.name;break;default:m="CropBox"}break;case"PrintScaling":switch(d.name){case"None":case"AppDefault":m=d.name;break;default:m="AppDefault"}break;case"Duplex":switch(d.name){case"Simplex":case"DuplexFlipShortEdge":case"DuplexFlipLongEdge":m=d.name;break;default:m="None"}break;case"PrintPageRange":if(d.length%2!=0)break;d.every((function(r,o,l){return Number.isInteger(r)&&r>0&&(0===o||r>=l[o-1])&&r<=t.numPages}))&&(m=d);break;case"NumCopies":d>0&&(m=d);break;default:if("boolean"!=typeof d)throw new u.FormatError("viewerPreferences - expected a boolean value for: ".concat(h));m=d}if(void 0!==m){c||(c=Object.create(null));c[h]=m}else(0,u.info)('Bad value in ViewerPreferences for "'.concat(h,'".'))}else(0,u.info)('Bad value in ViewerPreferences for "'.concat(h,'".'))}return(0,u.shadow)(this,"viewerPreferences",c)}},{key:"openAction",get:function get(){var t=this._catDict.get("OpenAction"),r=Object.create(null);if((0,l.isDict)(t)){var o=new l.Dict(this.xref);o.set("A",t);var c={url:null,dest:null,action:null};Catalog.parseDestDictionary({destDict:o,resultObj:c});Array.isArray(c.dest)?r.dest=c.dest:c.action&&(r.action=c.action)}else Array.isArray(t)&&(r.dest=t);return(0,u.shadow)(this,"openAction",(0,u.objectSize)(r)>0?r:null)}},{key:"attachments",get:function get(){var t=this._catDict.get("Names"),r=null;if(t instanceof l.Dict&&t.has("EmbeddedFiles")){var o,c=_createForOfIteratorHelper(new h.NameTree(t.getRaw("EmbeddedFiles"),this.xref).getAll());try{for(c.s();!(o=c.n()).done;){var d=_slicedToArray(o.value,2),g=d[0],y=d[1],v=new m.FileSpec(y,this.xref);r||(r=Object.create(null));r[(0,u.stringToPDFString)(g)]=v.serializable}}catch(t){c.e(t)}finally{c.f()}}return(0,u.shadow)(this,"attachments",r)}},{key:"xfaImages",get:function get(){var t=this._catDict.get("Names"),r=null;if(t instanceof l.Dict&&t.has("XFAImages")){var o,c=_createForOfIteratorHelper(new h.NameTree(t.getRaw("XFAImages"),this.xref).getAll());try{for(c.s();!(o=c.n()).done;){var d=_slicedToArray(o.value,2),m=d[0],g=d[1];r||(r=new l.Dict(this.xref));r.set(m,g)}}catch(t){c.e(t)}finally{c.f()}}return(0,u.shadow)(this,"xfaImages",r)}},{key:"_collectJavaScript",value:function _collectJavaScript(){var t=this._catDict.get("Names"),r=null;function appendIfJavaScriptDict(t,o){if(o instanceof l.Dict&&(0,l.isName)(o.get("S"),"JavaScript")){var c=o.get("JS");if((0,l.isStream)(c))c=c.getString();else if("string"!=typeof c)return;null===r&&(r=new Map);r.set(t,(0,u.stringToPDFString)(c))}}if(t instanceof l.Dict&&t.has("JavaScript")){var o,c=_createForOfIteratorHelper(new h.NameTree(t.getRaw("JavaScript"),this.xref).getAll());try{for(c.s();!(o=c.n()).done;){var d=_slicedToArray(o.value,2);appendIfJavaScriptDict(d[0],d[1])}}catch(t){c.e(t)}finally{c.f()}}var m=this._catDict.get("OpenAction");m&&appendIfJavaScriptDict("OpenAction",m);return r}},{key:"javaScript",get:function get(){var t=this._collectJavaScript();return(0,u.shadow)(this,"javaScript",t?_toConsumableArray(t.values()):null)}},{key:"jsActions",get:function get(){var t=this._collectJavaScript(),r=(0,c.collectActions)(this.xref,this._catDict,u.DocumentActionEventType);if(t){r||(r=Object.create(null));var o,l=_createForOfIteratorHelper(t);try{for(l.s();!(o=l.n()).done;){var h=_slicedToArray(o.value,2),d=h[0],m=h[1];d in r?r[d].push(m):r[d]=[m]}}catch(t){l.e(t)}finally{l.f()}}return(0,u.shadow)(this,"jsActions",r)}},{key:"fontFallback",value:function fontFallback(t,r){var o=[];this.fontCache.forEach((function(t){o.push(t)}));return Promise.all(o).then((function(o){var l,c=_createForOfIteratorHelper(o);try{for(c.s();!(l=c.n()).done;){var u=l.value;if(u.loadedName===t){u.fallback(r);return}}}catch(t){c.e(t)}finally{c.f()}}))}},{key:"cleanup",value:function cleanup(){var t=this,r=arguments.length>0&&void 0!==arguments[0]&&arguments[0];(0,l.clearPrimitiveCaches)();this.globalImageCache.clear(r);this.pageKidsCountCache.clear();this.pageIndexCache.clear();this.nonBlendModesSet.clear();var o=[];this.fontCache.forEach((function(t){o.push(t)}));return Promise.all(o).then((function(r){var o,l=_createForOfIteratorHelper(r);try{for(l.s();!(o=l.n()).done;){delete o.value.dict.cacheKey}}catch(t){l.e(t)}finally{l.f()}t.fontCache.clear();t.builtInCMapCache.clear();t.standardFontDataCache.clear()}))}},{key:"getPageDict",value:function getPageDict(t){var r,o=(0,u.createPromiseCapability)(),c=[this._catDict.getRaw("Pages")],h=new l.RefSet,d=this.xref,m=this.pageKidsCountCache,g=0;!function next(){for(var y=function _loop(){var y=c.pop();if((0,l.isRef)(y)){if((r=m.get(y))>0&&g+r<t){g+=r;return"continue"}if(h.has(y)){o.reject(new u.FormatError("Pages tree contains circular reference."));return{v:void 0}}h.put(y);d.fetchAsync(y).then((function(r){if((0,l.isDict)(r,"Page")||(0,l.isDict)(r)&&!r.has("Kids"))if(t===g){y&&!m.has(y)&&m.put(y,1);o.resolve([r,y])}else{g++;next()}else{c.push(r);next()}}),o.reject);return{v:void 0}}if(!(0,l.isDict)(y)){o.reject(new u.FormatError("Page dictionary kid reference points to wrong type of object."));return{v:void 0}}r=y.get("Count");if(Number.isInteger(r)&&r>=0){var v=y.objId;v&&!m.has(v)&&m.put(v,r);if(g+r<=t){g+=r;return"continue"}}var S=y.get("Kids");if(!Array.isArray(S)){if((0,l.isName)(y.get("Type"),"Page")||!y.has("Type")&&y.has("Contents")){if(g===t){o.resolve([y,null]);return{v:void 0}}g++;return"continue"}o.reject(new u.FormatError("Page dictionary kids object is not an array."));return{v:void 0}}for(var _=S.length-1;_>=0;_--)c.push(S[_])};c.length;){var v=y();if("continue"!==v&&"object"===_typeof(v))return v.v}o.reject(new Error("Page index ".concat(t," not found.")))}();return o.promise}},{key:"getPageIndex",value:function getPageIndex(t){var r=this,o=this.pageIndexCache.get(t);if(void 0!==o)return Promise.resolve(o);var c=this.xref;var h=0;return function next(o){return function pagesBeforeRef(r){var o,h=0;return c.fetchAsync(r).then((function(c){if((0,l.isRefsEqual)(r,t)&&!(0,l.isDict)(c,"Page")&&(!(0,l.isDict)(c)||c.has("Type")||!c.has("Contents")))throw new u.FormatError("The reference does not point to a /Page dictionary.");if(!c)return null;if(!(0,l.isDict)(c))throw new u.FormatError("Node must be a dictionary.");o=c.getRaw("Parent");return c.getAsync("Parent")})).then((function(t){if(!t)return null;if(!(0,l.isDict)(t))throw new u.FormatError("Parent must be a dictionary.");return t.getAsync("Kids")})).then((function(t){if(!t)return null;for(var d=[],m=!1,g=0,y=t.length;g<y;g++){var v=t[g];if(!(0,l.isRef)(v))throw new u.FormatError("Kid must be a reference.");if((0,l.isRefsEqual)(v,r)){m=!0;break}d.push(c.fetchAsync(v).then((function(t){if(!(0,l.isDict)(t))throw new u.FormatError("Kid node must be a dictionary.");t.has("Count")?h+=t.get("Count"):h++})))}if(!m)throw new u.FormatError("Kid reference not found in parent's kids.");return Promise.all(d).then((function(){return[h,o]}))}))}(o).then((function(o){if(!o){r.pageIndexCache.put(t,h);return h}var l=_slicedToArray(o,2),c=l[0],u=l[1];h+=c;return next(u)}))}(t)}}],[{key:"parseDestDictionary",value:function parseDestDictionary(t){var r=t.destDict;if((0,l.isDict)(r)){var o=t.resultObj;if("object"===_typeof(o)){var h,d,m=t.docBaseUrl||null,g=r.get("A");if(!(0,l.isDict)(g))if(r.has("Dest"))g=r.get("Dest");else{g=r.get("AA");(0,l.isDict)(g)&&(g.has("D")?g=g.get("D"):g.has("U")&&(g=g.get("U")))}if((0,l.isDict)(g)){var y=g.get("S");if(!(0,l.isName)(y)){(0,u.warn)("parseDestDictionary: Invalid type in Action dictionary.");return}var v=y.name;switch(v){case"ResetForm":var S,_=g.get("Flags"),k=0==(1&((0,u.isNum)(_)?_:0)),C=[],w=[],x=_createForOfIteratorHelper(g.get("Fields")||[]);try{for(x.s();!(S=x.n()).done;){var O=S.value;(0,l.isRef)(O)?w.push(O.toString()):(0,u.isString)(O)&&C.push((0,u.stringToPDFString)(O))}}catch(t){x.e(t)}finally{x.f()}o.resetForm={fields:C,refs:w,include:k};break;case"URI":(h=g.get("URI"))instanceof l.Name&&(h="/"+h.name);break;case"GoTo":d=g.get("D");break;case"Launch":case"GoToR":var T=g.get("F");(0,l.isDict)(T)?h=T.get("F")||null:(0,u.isString)(T)&&(h=T);var R=g.get("D");if(R){(0,l.isName)(R)&&(R=R.name);if((0,u.isString)(h)){var E=h.split("#")[0];(0,u.isString)(R)?h=E+"#"+R:Array.isArray(R)&&(h=E+"#"+JSON.stringify(R))}}var M=g.get("NewWindow");(0,u.isBool)(M)&&(o.newWindow=M);break;case"Named":var D=g.get("N");(0,l.isName)(D)&&(o.action=D.name);break;case"JavaScript":var j,L=g.get("JS");(0,l.isStream)(L)?j=L.getString():(0,u.isString)(L)&&(j=L);var N=j&&(0,c.recoverJsURL)((0,u.stringToPDFString)(j));if(N){h=N.url;o.newWindow=N.newWindow;break}default:if("JavaScript"===v||"SubmitForm"===v)break;(0,u.warn)('parseDestDictionary - unsupported action: "'.concat(v,'".'))}}else r.has("Dest")&&(d=r.get("Dest"));if((0,u.isString)(h)){var U=(0,u.createValidAbsoluteUrl)(h,m,{addDefaultProtocol:!0,tryConvertEncoding:!0});U&&(o.url=U.href);o.unsafeUrl=h}if(d){(0,l.isName)(d)&&(d=d.name);((0,u.isString)(d)||Array.isArray(d))&&(o.dest=d)}}else(0,u.warn)("parseDestDictionary: `resultObj` must be an object.")}else(0,u.warn)("parseDestDictionary: `destDict` must be a dictionary.")}}]);return Catalog}();r.Catalog=S},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.NumberTree=r.NameTree=void 0;var l=o(4),c=o(118);function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}var u=function(){function NameOrNumberTree(t,r,o){_classCallCheck(this,NameOrNumberTree);this.constructor===NameOrNumberTree&&(0,l.unreachable)("Cannot initialize NameOrNumberTree.");this.root=t;this.xref=r;this._type=o}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(NameOrNumberTree,[{key:"getAll",value:function getAll(){var t=new Map;if(!this.root)return t;var r=this.xref,o=new c.RefSet;o.put(this.root);for(var u=[this.root];u.length>0;){var h=r.fetchIfRef(u.shift());if((0,c.isDict)(h))if(h.has("Kids"))for(var d=h.get("Kids"),m=0,g=d.length;m<g;m++){var y=d[m];if(o.has(y))throw new l.FormatError('Duplicate entry in "'.concat(this._type,'" tree.'));u.push(y);o.put(y)}else{var v=h.get(this._type);if(Array.isArray(v))for(var S=0,_=v.length;S<_;S+=2)t.set(r.fetchIfRef(v[S]),r.fetchIfRef(v[S+1]))}}return t}},{key:"get",value:function get(t){if(!this.root)return null;for(var r=this.xref,o=r.fetchIfRef(this.root),c=0;o.has("Kids");){if(++c>10){(0,l.warn)('Search depth limit reached for "'.concat(this._type,'" tree.'));return null}var u=o.get("Kids");if(!Array.isArray(u))return null;for(var h=0,d=u.length-1;h<=d;){var m=h+d>>1,g=r.fetchIfRef(u[m]).get("Limits");if(t<r.fetchIfRef(g[0]))d=m-1;else{if(!(t>r.fetchIfRef(g[1]))){o=r.fetchIfRef(u[m]);break}h=m+1}}if(h>d)return null}var y=o.get(this._type);if(Array.isArray(y))for(var v=0,S=y.length-2;v<=S;){var _=v+S>>1,k=_+(1&_),C=r.fetchIfRef(y[k]);if(t<C)S=k-2;else{if(!(t>C))return r.fetchIfRef(y[k+1]);v=k+2}}return null}}]);return NameOrNumberTree}(),h=function(t){_inherits(NameTree,t);var r=_createSuper(NameTree);function NameTree(t,o){_classCallCheck(this,NameTree);return r.call(this,t,o,"Names")}return NameTree}(u);r.NameTree=h;var d=function(t){_inherits(NumberTree,t);var r=_createSuper(NumberTree);function NumberTree(t,o){_classCallCheck(this,NumberTree);return r.call(this,t,o,"Nums")}return NumberTree}(u);r.NumberTree=d},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.FileSpec=void 0;var l=o(118),c=o(4);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function pickPlatformItem(t){return t.has("UF")?t.get("UF"):t.has("F")?t.get("F"):t.has("Unix")?t.get("Unix"):t.has("Mac")?t.get("Mac"):t.has("DOS")?t.get("DOS"):null}var u=function(){function FileSpec(t,r){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,FileSpec);if(t&&(0,l.isDict)(t)){this.xref=r;this.root=t;t.has("FS")&&(this.fs=t.get("FS"));this.description=t.has("Desc")?(0,c.stringToPDFString)(t.get("Desc")):"";t.has("RF")&&(0,c.warn)("Related file specifications are not supported");this.contentAvailable=!0;if(!t.has("EF")){this.contentAvailable=!1;(0,c.warn)("Non-embedded file specifications are not supported")}}}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(FileSpec,[{key:"filename",get:function get(){if(!this._filename&&this.root){var t=pickPlatformItem(this.root)||"unnamed";this._filename=(0,c.stringToPDFString)(t).replace(/\\\\/g,"\\").replace(/\\\//g,"/").replace(/\\/g,"/")}return this._filename}},{key:"content",get:function get(){if(!this.contentAvailable)return null;!this.contentRef&&this.root&&(this.contentRef=pickPlatformItem(this.root.get("EF")));var t=null;if(this.contentRef){var r=this.xref.fetchIfRef(this.contentRef);r&&(0,l.isStream)(r)?t=r.getBytes():(0,c.warn)("Embedded file specification points to non-existing/invalid content")}else(0,c.warn)("Embedded file specification does not have a content");return t}},{key:"serializable",get:function get(){return{filename:this.filename,content:this.content}}}]);return FileSpec}();r.FileSpec=u},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.MetadataParser=void 0;var l=o(181);function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}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 u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||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 _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}var c=function(){function MetadataParser(t){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,MetadataParser);t=this._repair(t);var r=new l.SimpleXMLParser({lowerCaseName:!0}).parseFromString(t);this._metadataMap=new Map;this._data=t;r&&this._parse(r)}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(MetadataParser,[{key:"_repair",value:function _repair(t){return t.replace(/^[^<]+/,"").replace(/>\\376\\377([^<]+)/g,(function(t,r){for(var o=r.replace(/\\([0-3])([0-7])([0-7])/g,(function(t,r,o,l){return String.fromCharCode(64*r+8*o+1*l)})).replace(/&(amp|apos|gt|lt|quot);/g,(function(t,r){switch(r){case"amp":return"&";case"apos":return"'";case"gt":return">";case"lt":return"<";case"quot":return'"'}throw new Error("_repair: ".concat(r," isn't defined."))})),l=[],c=0,u=o.length;c<u;c+=2){var h=256*o.charCodeAt(c)+o.charCodeAt(c+1);h>=32&&h<127&&60!==h&&62!==h&&38!==h?l.push(String.fromCharCode(h)):l.push("&#x"+(65536+h).toString(16).substring(1)+";")}return">"+l.join("")}))}},{key:"_getSequence",value:function _getSequence(t){var r=t.nodeName;return"rdf:bag"!==r&&"rdf:seq"!==r&&"rdf:alt"!==r?null:t.childNodes.filter((function(t){return"rdf:li"===t.nodeName}))}},{key:"_parseArray",value:function _parseArray(t){if(t.hasChildNodes()){var r=_slicedToArray(t.childNodes,1)[0],o=this._getSequence(r)||[];this._metadataMap.set(t.nodeName,o.map((function(t){return t.textContent.trim()})))}}},{key:"_parse",value:function _parse(t){var r=t.documentElement;if("rdf:rdf"!==r.nodeName){r=r.firstChild;for(;r&&"rdf:rdf"!==r.nodeName;)r=r.nextSibling}if(r&&"rdf:rdf"===r.nodeName&&r.hasChildNodes()){var o,l=_createForOfIteratorHelper(r.childNodes);try{for(l.s();!(o=l.n()).done;){var c=o.value;if("rdf:description"===c.nodeName){var u,h=_createForOfIteratorHelper(c.childNodes);try{for(h.s();!(u=h.n()).done;){var d=u.value,m=d.nodeName;switch(m){case"#text":continue;case"dc:creator":case"dc:subject":this._parseArray(d);continue}this._metadataMap.set(m,d.textContent.trim())}}catch(t){h.e(t)}finally{h.f()}}}}catch(t){l.e(t)}finally{l.f()}}}},{key:"serializable",get:function get(){return{parsedData:this._metadataMap,rawData:this._data}}}]);return MetadataParser}();r.MetadataParser=c},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.XMLParserErrorCode=r.XMLParserBase=r.SimpleXMLParser=r.SimpleDOMNode=void 0;var l=o(122);function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}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 u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||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 _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var c={NoError:0,EndOfDocument:-1,UnterminatedCdat:-2,UnterminatedXmlDeclaration:-3,UnterminatedDoctypeDeclaration:-4,UnterminatedComment:-5,MalformedElement:-6,OutOfMemory:-7,UnterminatedAttributeValue:-8,UnterminatedElement:-9,ElementNeverBegun:-10};r.XMLParserErrorCode=c;function isWhitespace(t,r){var o=t[r];return" "===o||"\n"===o||"\r"===o||"\t"===o}var u=function(){function XMLParserBase(){_classCallCheck(this,XMLParserBase)}_createClass(XMLParserBase,[{key:"_resolveEntities",value:function _resolveEntities(t){var r=this;return t.replace(/&([^;]+);/g,(function(t,o){if("#x"===o.substring(0,2))return String.fromCodePoint(parseInt(o.substring(2),16));if("#"===o.substring(0,1))return String.fromCodePoint(parseInt(o.substring(1),10));switch(o){case"lt":return"<";case"gt":return">";case"amp":return"&";case"quot":return'"';case"apos":return"'"}return r.onResolveEntity(o)}))}},{key:"_parseContent",value:function _parseContent(t,r){var o=[],l=r;function skipWs(){for(;l<t.length&&isWhitespace(t,l);)++l}for(;l<t.length&&!isWhitespace(t,l)&&">"!==t[l]&&"/"!==t[l];)++l;var c=t.substring(r,l);skipWs();for(;l<t.length&&">"!==t[l]&&"/"!==t[l]&&"?"!==t[l];){skipWs();for(var u,h="";l<t.length&&!isWhitespace(t,l)&&"="!==t[l];){h+=t[l];++l}skipWs();if("="!==t[l])return null;++l;skipWs();var d=t[l];if('"'!==d&&"'"!==d)return null;var m=t.indexOf(d,++l);if(m<0)return null;u=t.substring(l,m);o.push({name:h,value:this._resolveEntities(u)});l=m+1;skipWs()}return{name:c,attributes:o,parsed:l-r}}},{key:"_parseProcessingInstruction",value:function _parseProcessingInstruction(t,r){var o=r;for(;o<t.length&&!isWhitespace(t,o)&&">"!==t[o]&&"?"!==t[o]&&"/"!==t[o];)++o;var l=t.substring(r,o);!function skipWs(){for(;o<t.length&&isWhitespace(t,o);)++o}();for(var c=o;o<t.length&&("?"!==t[o]||">"!==t[o+1]);)++o;return{name:l,value:t.substring(c,o),parsed:o-r}}},{key:"parseXml",value:function parseXml(t){for(var r=0;r<t.length;){var o=r;if("<"===t[r]){var l=void 0;switch(t[++o]){case"/":++o;if((l=t.indexOf(">",o))<0){this.onError(c.UnterminatedElement);return}this.onEndElement(t.substring(o,l));o=l+1;break;case"?":++o;var u=this._parseProcessingInstruction(t,o);if("?>"!==t.substring(o+u.parsed,o+u.parsed+2)){this.onError(c.UnterminatedXmlDeclaration);return}this.onPi(u.name,u.value);o+=u.parsed+2;break;case"!":if("--"===t.substring(o+1,o+3)){if((l=t.indexOf("--\x3e",o+3))<0){this.onError(c.UnterminatedComment);return}this.onComment(t.substring(o+3,l));o=l+3}else if("[CDATA["===t.substring(o+1,o+8)){if((l=t.indexOf("]]>",o+8))<0){this.onError(c.UnterminatedCdat);return}this.onCdata(t.substring(o+8,l));o=l+3}else{if("DOCTYPE"!==t.substring(o+1,o+8)){this.onError(c.MalformedElement);return}var h=t.indexOf("[",o+8),d=!1;if((l=t.indexOf(">",o+8))<0){this.onError(c.UnterminatedDoctypeDeclaration);return}if(h>0&&l>h){if((l=t.indexOf("]>",o+8))<0){this.onError(c.UnterminatedDoctypeDeclaration);return}d=!0}var m=t.substring(o+8,l+(d?1:0));this.onDoctype(m);o=l+(d?2:1)}break;default:var g=this._parseContent(t,o);if(null===g){this.onError(c.MalformedElement);return}var y=!1;if("/>"===t.substring(o+g.parsed,o+g.parsed+2))y=!0;else if(">"!==t.substring(o+g.parsed,o+g.parsed+1)){this.onError(c.UnterminatedElement);return}this.onBeginElement(g.name,g.attributes,y);o+=g.parsed+(y?2:1)}}else{for(;o<t.length&&"<"!==t[o];)o++;var v=t.substring(r,o);this.onText(this._resolveEntities(v))}r=o}}},{key:"onResolveEntity",value:function onResolveEntity(t){return"&".concat(t,";")}},{key:"onPi",value:function onPi(t,r){}},{key:"onComment",value:function onComment(t){}},{key:"onCdata",value:function onCdata(t){}},{key:"onDoctype",value:function onDoctype(t){}},{key:"onText",value:function onText(t){}},{key:"onBeginElement",value:function onBeginElement(t,r,o){}},{key:"onEndElement",value:function onEndElement(t){}},{key:"onError",value:function onError(t){}}]);return XMLParserBase}();r.XMLParserBase=u;var h=function(){function SimpleDOMNode(t,r){_classCallCheck(this,SimpleDOMNode);this.nodeName=t;this.nodeValue=r;Object.defineProperty(this,"parentNode",{value:null,writable:!0})}_createClass(SimpleDOMNode,[{key:"firstChild",get:function get(){return this.childNodes&&this.childNodes[0]}},{key:"nextSibling",get:function get(){var t=this.parentNode.childNodes;if(t){var r=t.indexOf(this);if(-1!==r)return t[r+1]}}},{key:"textContent",get:function get(){return this.childNodes?this.childNodes.map((function(t){return t.textContent})).join(""):this.nodeValue||""}},{key:"hasChildNodes",value:function hasChildNodes(){return this.childNodes&&this.childNodes.length>0}},{key:"searchNode",value:function searchNode(t,r){if(r>=t.length)return this;for(var o=t[r],l=[],c=this;;){if(o.name===c.nodeName){if(0!==o.pos){if(0===l.length)return null;var u,h=0,d=_createForOfIteratorHelper(_slicedToArray(l.pop(),1)[0].childNodes);try{for(d.s();!(u=d.n()).done;){var m=u.value;if(o.name===m.nodeName){if(h===o.pos)return m.searchNode(t,r+1);h++}}}catch(t){d.e(t)}finally{d.f()}return c.searchNode(t,r+1)}var g=c.searchNode(t,r+1);if(null!==g)return g}if(c.childNodes&&0!==c.childNodes.length){l.push([c,0]);c=c.childNodes[0]}else{if(0===l.length)return null;for(;0!==l.length;){var y=_slicedToArray(l.pop(),2),v=y[0],S=y[1]+1;if(S<v.childNodes.length){l.push([v,S]);c=v.childNodes[S];break}}if(0===l.length)return null}}}},{key:"dump",value:function dump(t){if("#text"!==this.nodeName){t.push("<".concat(this.nodeName));if(this.attributes){var r,o=_createForOfIteratorHelper(this.attributes);try{for(o.s();!(r=o.n()).done;){var c=r.value;t.push(" ".concat(c.name,'="').concat((0,l.encodeToXmlString)(c.value),'"'))}}catch(t){o.e(t)}finally{o.f()}}if(this.hasChildNodes()){t.push(">");var u,h=_createForOfIteratorHelper(this.childNodes);try{for(h.s();!(u=h.n()).done;){u.value.dump(t)}}catch(t){h.e(t)}finally{h.f()}t.push("</".concat(this.nodeName,">"))}else this.nodeValue?t.push(">".concat((0,l.encodeToXmlString)(this.nodeValue),"</").concat(this.nodeName,">")):t.push("/>")}else t.push((0,l.encodeToXmlString)(this.nodeValue))}}]);return SimpleDOMNode}();r.SimpleDOMNode=h;var d=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(SimpleXMLParser,t);var r=_createSuper(SimpleXMLParser);function SimpleXMLParser(t){var o,l=t.hasAttributes,u=void 0!==l&&l,h=t.lowerCaseName,d=void 0!==h&&h;_classCallCheck(this,SimpleXMLParser);(o=r.call(this))._currentFragment=null;o._stack=null;o._errorCode=c.NoError;o._hasAttributes=u;o._lowerCaseName=d;return o}_createClass(SimpleXMLParser,[{key:"parseFromString",value:function parseFromString(t){this._currentFragment=[];this._stack=[];this._errorCode=c.NoError;this.parseXml(t);if(this._errorCode===c.NoError){var r=_slicedToArray(this._currentFragment,1)[0];if(r)return{documentElement:r}}}},{key:"onText",value:function onText(t){if(!function isWhitespaceString(t){for(var r=0,o=t.length;r<o;r++)if(!isWhitespace(t,r))return!1;return!0}(t)){var r=new h("#text",t);this._currentFragment.push(r)}}},{key:"onCdata",value:function onCdata(t){var r=new h("#text",t);this._currentFragment.push(r)}},{key:"onBeginElement",value:function onBeginElement(t,r,o){this._lowerCaseName&&(t=t.toLowerCase());var l=new h(t);l.childNodes=[];this._hasAttributes&&(l.attributes=r);this._currentFragment.push(l);if(!o){this._stack.push(this._currentFragment);this._currentFragment=l.childNodes}}},{key:"onEndElement",value:function onEndElement(t){this._currentFragment=this._stack.pop()||[];var r=this._currentFragment[this._currentFragment.length-1];if(r)for(var o=0,l=r.childNodes.length;o<l;o++)r.childNodes[o].parentNode=r}},{key:"onError",value:function onError(t){this._errorCode=t}}]);return SimpleXMLParser}(u);r.SimpleXMLParser=d},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.StructTreeRoot=r.StructTreePage=void 0;var l=o(118),c=o(4),u=o(178);function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);if("Map"===o||"Set"===o)return Array.from(t);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}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 u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var h="PAGE_CONTENT",d="STREAM_CONTENT",m="OBJECT",g="ELEMENT",y=function(){function StructTreeRoot(t){_classCallCheck(this,StructTreeRoot);this.dict=t;this.roleMap=new Map}_createClass(StructTreeRoot,[{key:"init",value:function init(){this.readRoleMap()}},{key:"readRoleMap",value:function readRoleMap(){var t=this,r=this.dict.get("RoleMap");(0,l.isDict)(r)&&r.forEach((function(r,o){(0,l.isName)(o)&&t.roleMap.set(r,o.name)}))}}]);return StructTreeRoot}();r.StructTreeRoot=y;var v=function(){function StructElementNode(t,r){_classCallCheck(this,StructElementNode);this.tree=t;this.dict=r;this.kids=[];this.parseKids()}_createClass(StructElementNode,[{key:"role",get:function get(){var t=this.dict.get("S"),r=(0,l.isName)(t)?t.name:"",o=this.tree.root;return o.roleMap.has(r)?o.roleMap.get(r):r}},{key:"parseKids",value:function parseKids(){var t=null,r=this.dict.getRaw("Pg");(0,l.isRef)(r)&&(t=r.toString());var o=this.dict.get("K");if(Array.isArray(o)){var c,u=_createForOfIteratorHelper(o);try{for(u.s();!(c=u.n()).done;){var h=c.value,d=this.parseKid(t,h);d&&this.kids.push(d)}}catch(t){u.e(t)}finally{u.f()}}else{var m=this.parseKid(t,o);m&&this.kids.push(m)}}},{key:"parseKid",value:function parseKid(t,r){if(Number.isInteger(r))return this.tree.pageDict.objId!==t?null:new S({type:h,mcid:r,pageObjId:t});var o=null;(0,l.isRef)(r)?o=this.dict.xref.fetch(r):(0,l.isDict)(r)&&(o=r);if(!o)return null;var c=o.getRaw("Pg");(0,l.isRef)(c)&&(t=c.toString());var u=(0,l.isName)(o.get("Type"))?o.get("Type").name:null;return"MCR"===u?this.tree.pageDict.objId!==t?null:new S({type:d,refObjId:(0,l.isRef)(o.getRaw("Stm"))?o.getRaw("Stm").toString():null,pageObjId:t,mcid:o.get("MCID")}):"OBJR"===u?this.tree.pageDict.objId!==t?null:new S({type:m,refObjId:(0,l.isRef)(o.getRaw("Obj"))?o.getRaw("Obj").toString():null,pageObjId:t}):new S({type:g,dict:o})}}]);return StructElementNode}(),S=function StructElement(t){var r=t.type,o=t.dict,l=void 0===o?null:o,c=t.mcid,u=void 0===c?null:c,h=t.pageObjId,d=void 0===h?null:h,m=t.refObjId,g=void 0===m?null:m;_classCallCheck(this,StructElement);this.type=r;this.dict=l;this.mcid=u;this.pageObjId=d;this.refObjId=g;this.parentNode=null},_=function(){function StructTreePage(t,r){_classCallCheck(this,StructTreePage);this.root=t;this.rootDict=t?t.dict:null;this.pageDict=r;this.nodes=[]}_createClass(StructTreePage,[{key:"parse",value:function parse(){if(this.root&&this.rootDict){var t=this.rootDict.get("ParentTree");if(t){var r=this.pageDict.get("StructParents");if(Number.isInteger(r)){var o=new u.NumberTree(t,this.rootDict.xref).get(r);if(Array.isArray(o)){var c,h=new Map,d=_createForOfIteratorHelper(o);try{for(d.s();!(c=d.n()).done;){var m=c.value;(0,l.isRef)(m)&&this.addNode(this.rootDict.xref.fetch(m),h)}}catch(t){d.e(t)}finally{d.f()}}}}}}},{key:"addNode",value:function addNode(t,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(o>40){(0,c.warn)("StructTree MAX_DEPTH reached.");return null}if(r.has(t))return r.get(t);var u=new v(this,t);r.set(t,u);var h=t.get("P");if(!h||(0,l.isName)(h.get("Type"),"StructTreeRoot")){this.addTopLevelNode(t,u)||r.delete(t);return u}var d=this.addNode(h,r,o+1);if(!d)return u;var m,y=!1,S=_createForOfIteratorHelper(d.kids);try{for(S.s();!(m=S.n()).done;){var _=m.value;if(_.type===g&&_.dict===t){_.parentNode=u;y=!0}}}catch(t){S.e(t)}finally{S.f()}y||r.delete(t);return u}},{key:"addTopLevelNode",value:function addTopLevelNode(t,r){var o=this.rootDict.get("K");if(!o)return!1;if((0,l.isDict)(o)){if(o.objId!==t.objId)return!1;this.nodes[0]=r;return!0}if(!Array.isArray(o))return!0;for(var c=!1,u=0;u<o.length;u++){var h=o[u];if(h&&h.toString()===t.objId){this.nodes[u]=r;c=!0}}return c}},{key:"serializable",get:function get(){function nodeToSerializable(t,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(o>40)(0,c.warn)("StructTree too deep to be fully serialized.");else{var l=Object.create(null);l.role=t.role;l.children=[];r.children.push(l);var u=t.dict.get("Alt");(0,c.isString)(u)&&(l.alt=(0,c.stringToPDFString)(u));var y,v=_createForOfIteratorHelper(t.kids);try{for(v.s();!(y=v.n()).done;){var S=y.value,_=S.type===g?S.parentNode:null;_?nodeToSerializable(_,l,o+1):S.type===h||S.type===d?l.children.push({type:"content",id:"page".concat(S.pageObjId,"_mcid").concat(S.mcid)}):S.type===m&&l.children.push({type:"object",id:S.refObjId})}}catch(t){v.e(t)}finally{v.f()}}}var t=Object.create(null);t.children=[];t.role="Root";var r,o=_createForOfIteratorHelper(this.nodes);try{for(o.s();!(r=o.n()).done;){var l=r.value;l&&nodeToSerializable(l,t)}}catch(t){o.e(t)}finally{o.f()}return t}}]);return StructTreePage}();r.StructTreePage=_},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.ObjectLoader=void 0;var l=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(o(2)),c=o(118),u=o(122),h=o(4);function asyncGeneratorStep(t,r,o,l,c,u,h){try{var d=t[u](h),m=d.value}catch(t){o(t);return}d.done?r(m):Promise.resolve(m).then(l,c)}function _asyncToGenerator(t){return function(){var r=this,o=arguments;return new Promise((function(l,c){var u=t.apply(r,o);function _next(t){asyncGeneratorStep(u,l,c,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(u,l,c,_next,_throw,"throw",t)}_next(void 0)}))}}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);if("Map"===o||"Set"===o)return Array.from(t);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}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 u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function addChildren(t,r){if(t instanceof c.Dict)t=t.getRawValues();else if((0,c.isStream)(t))t=t.dict.getRawValues();else if(!Array.isArray(t))return;var o,l,u=_createForOfIteratorHelper(t);try{for(u.s();!(o=u.n()).done;){var h=o.value;((l=h)instanceof c.Ref||l instanceof c.Dict||Array.isArray(l)||(0,c.isStream)(l))&&r.push(h)}}catch(t){u.e(t)}finally{u.f()}}var d=function(){function ObjectLoader(t,r,o){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,ObjectLoader);this.dict=t;this.keys=r;this.xref=o;this.refSet=null}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(ObjectLoader,[{key:"load",value:(r=_asyncToGenerator(l.default.mark((function _callee(){var t,r,o,u,h,d;return l.default.wrap((function _callee$(l){for(;;)switch(l.prev=l.next){case 0:if(!this.xref.stream.isDataLoaded){l.next=2;break}return l.abrupt("return",void 0);case 2:t=this.keys,r=this.dict;this.refSet=new c.RefSet;o=[];for(u=0,h=t.length;u<h;u++)void 0!==(d=r.getRaw(t[u]))&&o.push(d);return l.abrupt("return",this._walk(o));case 7:case"end":return l.stop()}}),_callee,this)}))),function load(){return r.apply(this,arguments)})},{key:"_walk",value:(t=_asyncToGenerator(l.default.mark((function _callee2(t){var r,o,d,m,g,y,v,S,_,k,C,w;return l.default.wrap((function _callee2$(l){for(;;)switch(l.prev=l.next){case 0:r=[];o=[];case 2:if(!t.length){l.next=48;break}if(!((d=t.pop())instanceof c.Ref)){l.next=21;break}if(!this.refSet.has(d)){l.next=7;break}return l.abrupt("continue",2);case 7:l.prev=7;this.refSet.put(d);d=this.xref.fetch(d);l.next=21;break;case 12:l.prev=12;l.t0=l.catch(7);if(l.t0 instanceof u.MissingDataException){l.next=19;break}(0,h.warn)('ObjectLoader._walk - requesting all data: "'.concat(l.t0,'".'));this.refSet=null;m=this.xref.stream.manager;return l.abrupt("return",m.requestAllChunks());case 19:r.push(d);o.push({begin:l.t0.begin,end:l.t0.end});case 21:if(!(0,c.isStream)(d)){l.next=45;break}if(!(g=d.getBaseStreams())){l.next=45;break}y=!1;v=_createForOfIteratorHelper(g);l.prev=26;v.s();case 28:if((S=v.n()).done){l.next=36;break}if(!(_=S.value).isDataLoaded){l.next=32;break}return l.abrupt("continue",34);case 32:y=!0;o.push({begin:_.start,end:_.end});case 34:l.next=28;break;case 36:l.next=41;break;case 38:l.prev=38;l.t1=l.catch(26);v.e(l.t1);case 41:l.prev=41;v.f();return l.finish(41);case 44:y&&r.push(d);case 45:addChildren(d,t);l.next=2;break;case 48:if(!o.length){l.next=54;break}l.next=51;return this.xref.stream.manager.requestRanges(o);case 51:k=_createForOfIteratorHelper(r);try{for(k.s();!(C=k.n()).done;)(w=C.value)instanceof c.Ref&&this.refSet.remove(w)}catch(t){k.e(t)}finally{k.f()}return l.abrupt("return",this._walk(r));case 54:this.refSet=null;return l.abrupt("return",void 0);case 56:case"end":return l.stop()}}),_callee2,this,[[7,12],[26,38,41,44]])}))),function _walk(r){return t.apply(this,arguments)})}]);var t,r;return ObjectLoader}();r.ObjectLoader=d},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.incrementalUpdate=function incrementalUpdate(t){var r=t.originalData,o=t.xrefInfo,m=t.newRefs,g=t.xref,y=void 0===g?null:g,v=t.hasXfa,S=void 0!==v&&v,_=t.xfaDatasetsRef,k=void 0===_?null:_,C=t.hasXfaDatasetsEntry,w=void 0!==C&&C,x=t.acroFormRef,O=void 0===x?null:x,T=t.acroForm,R=void 0===T?null:T,E=t.xfaData,M=void 0===E?null:E;S&&function updateXFA(t){var r=t.xfaData,o=t.xfaDatasetsRef,c=t.hasXfaDatasetsEntry,d=t.acroFormRef,m=t.acroForm,g=t.newRefs,y=t.xref;t.xrefInfo;if(null===y)return;if(!c){if(!d){(0,l.warn)("XFA - Cannot save it");return}var v=m.get("XFA"),S=v.slice();S.splice(2,0,"datasets");S.splice(3,0,o);m.set("XFA",S);var _=y.encrypt,k=null;_&&(k=_.createCipherTransform(d.num,d.gen));var C=["".concat(d.num," ").concat(d.gen," obj\n")];writeDict(m,C,k);C.push("\n");m.set("XFA",v);g.push({ref:d,data:C.join("")})}if(null===r){r=function writeXFADataForAcroform(t,r){var o,c=new h.SimpleXMLParser({hasAttributes:!0}).parseFromString(t),d=_createForOfIteratorHelper(r);try{for(d.s();!(o=d.n()).done;){var m=o.value.xfa;if(m){var g=m.path,y=m.value;if(g){var v=c.documentElement.searchNode((0,u.parseXFAPath)(g),0);v?v.childNodes=[new h.SimpleDOMNode("#text",y)]:(0,l.warn)("Node not found for path: ".concat(g))}}}}catch(t){d.e(t)}finally{d.f()}var S=[];c.documentElement.dump(S);return S.join("")}(y.fetchIfRef(o).getString(),g)}var w=y.encrypt;if(w){r=w.createCipherTransform(o.num,o.gen).encryptString(r)}var x="".concat(o.num," ").concat(o.gen," obj\n")+"<< /Type /EmbeddedFile /Length ".concat(r.length,">>\nstream\n")+r+"\nendstream\nendobj\n";g.push({ref:o,data:x})}({xfaData:M,xfaDatasetsRef:k,hasXfaDatasetsEntry:w,acroFormRef:O,acroForm:R,newRefs:m,xref:y,xrefInfo:o});var D,j,L=new c.Dict(null),N=o.newRef,U=r[r.length-1];if(10===U||13===U){D=[];j=r.length}else{D=["\n"];j=r.length+1}L.set("Size",N.num+1);L.set("Prev",o.startXRef);L.set("Type",c.Name.get("XRef"));null!==o.rootRef&&L.set("Root",o.rootRef);null!==o.infoRef&&L.set("Info",o.infoRef);null!==o.encryptRef&&L.set("Encrypt",o.encryptRef);m.push({ref:N,data:""});m=m.sort((function(t,r){return t.ref.num-r.ref.num}));var H,W=[[0,1,65535]],$=[0,1],q=0,X=_createForOfIteratorHelper(m);try{for(X.s();!(H=X.n()).done;){var z=H.value,G=z.ref,V=z.data;q=Math.max(q,j);W.push([1,j,Math.min(G.gen,65535)]);j+=V.length;$.push(G.num,1);D.push(V)}}catch(t){X.e(t)}finally{X.f()}L.set("Index",$);if(Array.isArray(o.fileIds)&&o.fileIds.length>0){var Y=function computeMD5(t,r){for(var o=Math.floor(Date.now()/1e3),c=r.filename||"",u=[o.toString(),c,t.toString()],h=u.reduce((function(t,r){return t+r.length}),0),m=0,g=Object.values(r.info);m<g.length;m++){var y=g[m];u.push(y);h+=y.length}for(var v=new Uint8Array(h),S=0,_=0,k=u;_<k.length;_++){var C=k[_];writeString(C,S,v);S+=C.length}return(0,l.bytesToString)((0,d.calculateMD5)(v))}(j,o);L.set("ID",[o.fileIds[0],Y])}var K=[1,Math.ceil(Math.log2(q)/8),2],J=(K[0]+K[1]+K[2])*W.length;L.set("W",K);L.set("Length",J);D.push("".concat(N.num," ").concat(N.gen," obj\n"));writeDict(L,D,null);D.push(" stream\n");var Q=D.reduce((function(t,r){return t+r.length}),0),Z="\nendstream\nendobj\nstartxref\n".concat(j,"\n%%EOF\n"),ee=new Uint8Array(r.length+Q+J+Z.length);ee.set(r);var te,re=r.length,ae=_createForOfIteratorHelper(D);try{for(ae.s();!(te=ae.n()).done;){var ne=te.value;writeString(ne,re,ee);re+=ne.length}}catch(t){ae.e(t)}finally{ae.f()}for(var ie=0,oe=W;ie<oe.length;ie++){var se=(fe=oe[ie],he=3,function _arrayWithHoles(t){if(Array.isArray(t))return t}(fe)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(fe,he)||_unsupportedIterableToArray(fe,he)||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.")}()),le=se[0],ce=se[1],ue=se[2];re=writeInt(le,K[0],re,ee);re=writeInt(ce,K[1],re,ee);re=writeInt(ue,K[2],re,ee)}var fe,he;writeString(Z,re,ee);return ee};r.writeDict=writeDict;var l=o(4),c=o(118),u=o(122),h=o(181),d=o(185);function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}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 u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function writeDict(t,r,o){r.push("<<");var l,c=_createForOfIteratorHelper(t.getKeys());try{for(c.s();!(l=c.n()).done;){var h=l.value;r.push(" /".concat((0,u.escapePDFName)(h)," "));writeValue(t.getRaw(h),r,o)}}catch(t){c.e(t)}finally{c.f()}r.push(">>")}function writeValue(t,r,o){if((0,c.isName)(t))r.push("/".concat((0,u.escapePDFName)(t.name)));else if((0,c.isRef)(t))r.push("".concat(t.num," ").concat(t.gen," R"));else if(Array.isArray(t))!function writeArray(t,r,o){r.push("[");var l,c=!0,u=_createForOfIteratorHelper(t);try{for(u.s();!(l=u.n()).done;){var h=l.value;c?c=!1:r.push(" ");writeValue(h,r,o)}}catch(t){u.e(t)}finally{u.f()}r.push("]")}(t,r,o);else if("string"==typeof t){null!==o&&(t=o.encryptString(t));r.push("(".concat((0,l.escapeString)(t),")"))}else"number"==typeof t?r.push(function numberToString(t){if(Number.isInteger(t))return t.toString();var r=Math.round(100*t);return r%100==0?(r/100).toString():r%10==0?t.toFixed(1):t.toFixed(2)}(t)):"boolean"==typeof t?r.push(t.toString()):(0,c.isDict)(t)?writeDict(t,r,o):(0,c.isStream)(t)?function writeStream(t,r,o){writeDict(t.dict,r,o);r.push(" stream\n");var l=t.getString();null!==o&&(l=o.encryptString(l));r.push(l,"\nendstream\n")}(t,r,o):null===t?r.push("null"):(0,l.warn)("Unhandled value in writer: ".concat(_typeof(t),", please file a bug."))}function writeInt(t,r,o,l){for(var c=r+o-1;c>o-1;c--){l[c]=255&t;t>>=8}return o+r}function writeString(t,r,o){for(var l=0,c=t.length;l<c;l++)o[r+l]=255&t.charCodeAt(l)}},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.calculateSHA384=calculateSHA384;r.PDF20=r.PDF17=r.CipherTransformFactory=r.calculateSHA512=r.calculateSHA256=r.calculateMD5=r.ARCFourCipher=r.AES256Cipher=r.AES128Cipher=void 0;var l=o(4),c=o(118),u=o(186);function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var h=function(){function ARCFourCipher(t){_classCallCheck(this,ARCFourCipher);this.a=0;this.b=0;for(var r=new Uint8Array(256),o=t.length,l=0;l<256;++l)r[l]=l;for(var c=0,u=0;c<256;++c){var h=r[c];u=u+h+t[c%o]&255;r[c]=r[u];r[u]=h}this.s=r}_createClass(ARCFourCipher,[{key:"encryptBlock",value:function encryptBlock(t){for(var r=this.a,o=this.b,l=this.s,c=t.length,u=new Uint8Array(c),h=0;h<c;++h){var d=l[r=r+1&255],m=l[o=o+d&255];l[r]=m;l[o]=d;u[h]=t[h]^l[d+m&255]}this.a=r;this.b=o;return u}},{key:"decryptBlock",value:function decryptBlock(t){return this.encryptBlock(t)}},{key:"encrypt",value:function encrypt(t){return this.encryptBlock(t)}}]);return ARCFourCipher}();r.ARCFourCipher=h;var d=function calculateMD5Closure(){var t=new Uint8Array([7,12,17,22,7,12,17,22,7,12,17,22,7,12,17,22,5,9,14,20,5,9,14,20,5,9,14,20,5,9,14,20,4,11,16,23,4,11,16,23,4,11,16,23,4,11,16,23,6,10,15,21,6,10,15,21,6,10,15,21,6,10,15,21]),r=new Int32Array([-680876936,-389564586,606105819,-1044525330,-176418897,1200080426,-1473231341,-45705983,1770035416,-1958414417,-42063,-1990404162,1804603682,-40341101,-1502002290,1236535329,-165796510,-1069501632,643717713,-373897302,-701558691,38016083,-660478335,-405537848,568446438,-1019803690,-187363961,1163531501,-1444681467,-51403784,1735328473,-1926607734,-378558,-2022574463,1839030562,-35309556,-1530992060,1272893353,-155497632,-1094730640,681279174,-358537222,-722521979,76029189,-640364487,-421815835,530742520,-995338651,-198630844,1126891415,-1416354905,-57434055,1700485571,-1894986606,-1051523,-2054922799,1873313359,-30611744,-1560198380,1309151649,-145523070,-1120210379,718787259,-343485551]);return function hash(o,l,c){var u,h,d=1732584193,m=-271733879,g=-1732584194,y=271733878,v=c+72&-64,S=new Uint8Array(v);for(u=0;u<c;++u)S[u]=o[l++];S[u++]=128;for(var _=v-8;u<_;)S[u++]=0;S[u++]=c<<3&255;S[u++]=c>>5&255;S[u++]=c>>13&255;S[u++]=c>>21&255;S[u++]=c>>>29&255;S[u++]=0;S[u++]=0;S[u++]=0;var k=new Int32Array(16);for(u=0;u<v;){for(h=0;h<16;++h,u+=4)k[h]=S[u]|S[u+1]<<8|S[u+2]<<16|S[u+3]<<24;var C=d,w=m,x=g,O=y,T=void 0,R=void 0;for(h=0;h<64;++h){if(h<16){T=w&x|~w&O;R=h}else if(h<32){T=O&w|~O&x;R=5*h+1&15}else if(h<48){T=w^x^O;R=3*h+5&15}else{T=x^(w|~O);R=7*h&15}var E=O,M=C+T+r[h]+k[R]|0,D=t[h];O=x;x=w;w=w+(M<<D|M>>>32-D)|0;C=E}d=d+C|0;m=m+w|0;g=g+x|0;y=y+O|0}return new Uint8Array([255&d,d>>8&255,d>>16&255,d>>>24&255,255&m,m>>8&255,m>>16&255,m>>>24&255,255&g,g>>8&255,g>>16&255,g>>>24&255,255&y,y>>8&255,y>>16&255,y>>>24&255])}}();r.calculateMD5=d;var m=function(){function Word64(t,r){_classCallCheck(this,Word64);this.high=0|t;this.low=0|r}_createClass(Word64,[{key:"and",value:function and(t){this.high&=t.high;this.low&=t.low}},{key:"xor",value:function xor(t){this.high^=t.high;this.low^=t.low}},{key:"or",value:function or(t){this.high|=t.high;this.low|=t.low}},{key:"shiftRight",value:function shiftRight(t){if(t>=32){this.low=this.high>>>t-32|0;this.high=0}else{this.low=this.low>>>t|this.high<<32-t;this.high=this.high>>>t|0}}},{key:"shiftLeft",value:function shiftLeft(t){if(t>=32){this.high=this.low<<t-32;this.low=0}else{this.high=this.high<<t|this.low>>>32-t;this.low<<=t}}},{key:"rotateRight",value:function rotateRight(t){var r,o;if(32&t){o=this.low;r=this.high}else{r=this.low;o=this.high}t&=31;this.low=r>>>t|o<<32-t;this.high=o>>>t|r<<32-t}},{key:"not",value:function not(){this.high=~this.high;this.low=~this.low}},{key:"add",value:function add(t){var r=(this.low>>>0)+(t.low>>>0),o=(this.high>>>0)+(t.high>>>0);r>4294967295&&(o+=1);this.low=0|r;this.high=0|o}},{key:"copyTo",value:function copyTo(t,r){t[r]=this.high>>>24&255;t[r+1]=this.high>>16&255;t[r+2]=this.high>>8&255;t[r+3]=255&this.high;t[r+4]=this.low>>>24&255;t[r+5]=this.low>>16&255;t[r+6]=this.low>>8&255;t[r+7]=255&this.low}},{key:"assign",value:function assign(t){this.high=t.high;this.low=t.low}}]);return Word64}(),g=function calculateSHA256Closure(){function rotr(t,r){return t>>>r|t<<32-r}function ch(t,r,o){return t&r^~t&o}function maj(t,r,o){return t&r^t&o^r&o}function sigma(t){return rotr(t,2)^rotr(t,13)^rotr(t,22)}function sigmaPrime(t){return rotr(t,6)^rotr(t,11)^rotr(t,25)}function littleSigma(t){return rotr(t,7)^rotr(t,18)^t>>>3}var t=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];return function hash(r,o,l){var c,u,h=1779033703,d=3144134277,m=1013904242,g=2773480762,y=1359893119,v=2600822924,S=528734635,_=1541459225,k=64*Math.ceil((l+9)/64),C=new Uint8Array(k);for(c=0;c<l;++c)C[c]=r[o++];C[c++]=128;for(var w=k-8;c<w;)C[c++]=0;C[c++]=0;C[c++]=0;C[c++]=0;C[c++]=l>>>29&255;C[c++]=l>>21&255;C[c++]=l>>13&255;C[c++]=l>>5&255;C[c++]=l<<3&255;var x,O=new Uint32Array(64);for(c=0;c<k;){for(u=0;u<16;++u){O[u]=C[c]<<24|C[c+1]<<16|C[c+2]<<8|C[c+3];c+=4}for(u=16;u<64;++u)O[u]=(rotr(x=O[u-2],17)^rotr(x,19)^x>>>10)+O[u-7]+littleSigma(O[u-15])+O[u-16]|0;var T=h,R=d,E=m,M=g,D=y,j=v,L=S,N=_,U=void 0,H=void 0;for(u=0;u<64;++u){U=N+sigmaPrime(D)+ch(D,j,L)+t[u]+O[u];H=sigma(T)+maj(T,R,E);N=L;L=j;j=D;D=M+U|0;M=E;E=R;R=T;T=U+H|0}h=h+T|0;d=d+R|0;m=m+E|0;g=g+M|0;y=y+D|0;v=v+j|0;S=S+L|0;_=_+N|0}return new Uint8Array([h>>24&255,h>>16&255,h>>8&255,255&h,d>>24&255,d>>16&255,d>>8&255,255&d,m>>24&255,m>>16&255,m>>8&255,255&m,g>>24&255,g>>16&255,g>>8&255,255&g,y>>24&255,y>>16&255,y>>8&255,255&y,v>>24&255,v>>16&255,v>>8&255,255&v,S>>24&255,S>>16&255,S>>8&255,255&S,_>>24&255,_>>16&255,_>>8&255,255&_])}}();r.calculateSHA256=g;var y=function calculateSHA512Closure(){function ch(t,r,o,l,c){t.assign(r);t.and(o);c.assign(r);c.not();c.and(l);t.xor(c)}function maj(t,r,o,l,c){t.assign(r);t.and(o);c.assign(r);c.and(l);t.xor(c);c.assign(o);c.and(l);t.xor(c)}function sigma(t,r,o){t.assign(r);t.rotateRight(28);o.assign(r);o.rotateRight(34);t.xor(o);o.assign(r);o.rotateRight(39);t.xor(o)}function sigmaPrime(t,r,o){t.assign(r);t.rotateRight(14);o.assign(r);o.rotateRight(18);t.xor(o);o.assign(r);o.rotateRight(41);t.xor(o)}function littleSigma(t,r,o){t.assign(r);t.rotateRight(1);o.assign(r);o.rotateRight(8);t.xor(o);o.assign(r);o.shiftRight(7);t.xor(o)}function littleSigmaPrime(t,r,o){t.assign(r);t.rotateRight(19);o.assign(r);o.rotateRight(61);t.xor(o);o.assign(r);o.shiftRight(6);t.xor(o)}var t=[new m(1116352408,3609767458),new m(1899447441,602891725),new m(3049323471,3964484399),new m(3921009573,2173295548),new m(961987163,4081628472),new m(1508970993,3053834265),new m(2453635748,2937671579),new m(2870763221,3664609560),new m(3624381080,2734883394),new m(310598401,1164996542),new m(607225278,1323610764),new m(1426881987,3590304994),new m(1925078388,4068182383),new m(2162078206,991336113),new m(2614888103,633803317),new m(3248222580,3479774868),new m(3835390401,2666613458),new m(4022224774,944711139),new m(264347078,2341262773),new m(604807628,2007800933),new m(770255983,1495990901),new m(1249150122,1856431235),new m(1555081692,3175218132),new m(1996064986,2198950837),new m(2554220882,3999719339),new m(2821834349,766784016),new m(2952996808,2566594879),new m(3210313671,3203337956),new m(3336571891,1034457026),new m(3584528711,2466948901),new m(113926993,3758326383),new m(338241895,168717936),new m(666307205,1188179964),new m(773529912,1546045734),new m(1294757372,1522805485),new m(1396182291,2643833823),new m(1695183700,2343527390),new m(1986661051,1014477480),new m(2177026350,1206759142),new m(2456956037,344077627),new m(2730485921,1290863460),new m(2820302411,3158454273),new m(3259730800,3505952657),new m(3345764771,106217008),new m(3516065817,3606008344),new m(3600352804,1432725776),new m(4094571909,1467031594),new m(275423344,851169720),new m(430227734,3100823752),new m(506948616,1363258195),new m(659060556,3750685593),new m(883997877,3785050280),new m(958139571,3318307427),new m(1322822218,3812723403),new m(1537002063,2003034995),new m(1747873779,3602036899),new m(1955562222,1575990012),new m(2024104815,1125592928),new m(2227730452,2716904306),new m(2361852424,442776044),new m(2428436474,593698344),new m(2756734187,3733110249),new m(3204031479,2999351573),new m(3329325298,3815920427),new m(3391569614,3928383900),new m(3515267271,566280711),new m(3940187606,3454069534),new m(4118630271,4000239992),new m(116418474,1914138554),new m(174292421,2731055270),new m(289380356,3203993006),new m(460393269,320620315),new m(685471733,587496836),new m(852142971,1086792851),new m(1017036298,365543100),new m(1126000580,2618297676),new m(1288033470,3409855158),new m(1501505948,4234509866),new m(1607167915,987167468),new m(1816402316,1246189591)];return function hash(r,o,l){var c,u,h,d,g,y,v,S,_=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(_){c=new m(3418070365,3238371032);u=new m(1654270250,914150663);h=new m(2438529370,812702999);d=new m(355462360,4144912697);g=new m(1731405415,4290775857);y=new m(2394180231,1750603025);v=new m(3675008525,1694076839);S=new m(1203062813,3204075428)}else{c=new m(1779033703,4089235720);u=new m(3144134277,2227873595);h=new m(1013904242,4271175723);d=new m(2773480762,1595750129);g=new m(1359893119,2917565137);y=new m(2600822924,725511199);v=new m(528734635,4215389547);S=new m(1541459225,327033209)}var k,C,w=128*Math.ceil((l+17)/128),x=new Uint8Array(w);for(k=0;k<l;++k)x[k]=r[o++];x[k++]=128;for(var O=w-16;k<O;)x[k++]=0;x[k++]=0;x[k++]=0;x[k++]=0;x[k++]=0;x[k++]=0;x[k++]=0;x[k++]=0;x[k++]=0;x[k++]=0;x[k++]=0;x[k++]=0;x[k++]=l>>>29&255;x[k++]=l>>21&255;x[k++]=l>>13&255;x[k++]=l>>5&255;x[k++]=l<<3&255;var T=new Array(80);for(k=0;k<80;k++)T[k]=new m(0,0);var R,E,M=new m(0,0),D=new m(0,0),j=new m(0,0),L=new m(0,0),N=new m(0,0),U=new m(0,0),H=new m(0,0),W=new m(0,0),$=new m(0,0),q=new m(0,0),X=new m(0,0),z=new m(0,0);for(k=0;k<w;){for(C=0;C<16;++C){T[C].high=x[k]<<24|x[k+1]<<16|x[k+2]<<8|x[k+3];T[C].low=x[k+4]<<24|x[k+5]<<16|x[k+6]<<8|x[k+7];k+=8}for(C=16;C<80;++C){littleSigmaPrime(R=T[C],T[C-2],z);R.add(T[C-7]);littleSigma(X,T[C-15],z);R.add(X);R.add(T[C-16])}M.assign(c);D.assign(u);j.assign(h);L.assign(d);N.assign(g);U.assign(y);H.assign(v);W.assign(S);for(C=0;C<80;++C){$.assign(W);sigmaPrime(X,N,z);$.add(X);ch(X,N,U,H,z);$.add(X);$.add(t[C]);$.add(T[C]);sigma(q,M,z);maj(X,M,D,j,z);q.add(X);R=W;W=H;H=U;U=N;L.add($);N=L;L=j;j=D;D=M;R.assign($);R.add(q);M=R}c.add(M);u.add(D);h.add(j);d.add(L);g.add(N);y.add(U);v.add(H);S.add(W)}if(_){E=new Uint8Array(48);c.copyTo(E,0);u.copyTo(E,8);h.copyTo(E,16);d.copyTo(E,24);g.copyTo(E,32);y.copyTo(E,40)}else{E=new Uint8Array(64);c.copyTo(E,0);u.copyTo(E,8);h.copyTo(E,16);d.copyTo(E,24);g.copyTo(E,32);y.copyTo(E,40);v.copyTo(E,48);S.copyTo(E,56)}return E}}();r.calculateSHA512=y;function calculateSHA384(t,r,o){return y(t,r,o,!0)}var v=function(){function NullCipher(){_classCallCheck(this,NullCipher)}_createClass(NullCipher,[{key:"decryptBlock",value:function decryptBlock(t){return t}},{key:"encrypt",value:function encrypt(t){return t}}]);return NullCipher}(),S=function(){function AESBaseCipher(){_classCallCheck(this,AESBaseCipher);this.constructor===AESBaseCipher&&(0,l.unreachable)("Cannot initialize AESBaseCipher.");this._s=new Uint8Array([99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22]);this._inv_s=new Uint8Array([82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125]);this._mix=new Uint32Array([0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795]);this._mixCol=new Uint8Array(256);for(var t=0;t<256;t++)this._mixCol[t]=t<128?t<<1:t<<1^27;this.buffer=new Uint8Array(16);this.bufferPosition=0}_createClass(AESBaseCipher,[{key:"_expandKey",value:function _expandKey(t){(0,l.unreachable)("Cannot call `_expandKey` on the base class")}},{key:"_decrypt",value:function _decrypt(t,r){var o,l,c,u=new Uint8Array(16);u.set(t);for(var h=0,d=this._keySize;h<16;++h,++d)u[h]^=r[d];for(var m=this._cyclesOfRepetition-1;m>=1;--m){o=u[13];u[13]=u[9];u[9]=u[5];u[5]=u[1];u[1]=o;o=u[14];l=u[10];u[14]=u[6];u[10]=u[2];u[6]=o;u[2]=l;o=u[15];l=u[11];c=u[7];u[15]=u[3];u[11]=o;u[7]=l;u[3]=c;for(var g=0;g<16;++g)u[g]=this._inv_s[u[g]];for(var y=0,v=16*m;y<16;++y,++v)u[y]^=r[v];for(var S=0;S<16;S+=4){var _=this._mix[u[S]],k=this._mix[u[S+1]],C=this._mix[u[S+2]],w=this._mix[u[S+3]];o=_^k>>>8^k<<24^C>>>16^C<<16^w>>>24^w<<8;u[S]=o>>>24&255;u[S+1]=o>>16&255;u[S+2]=o>>8&255;u[S+3]=255&o}}o=u[13];u[13]=u[9];u[9]=u[5];u[5]=u[1];u[1]=o;o=u[14];l=u[10];u[14]=u[6];u[10]=u[2];u[6]=o;u[2]=l;o=u[15];l=u[11];c=u[7];u[15]=u[3];u[11]=o;u[7]=l;u[3]=c;for(var x=0;x<16;++x){u[x]=this._inv_s[u[x]];u[x]^=r[x]}return u}},{key:"_encrypt",value:function _encrypt(t,r){var o,l,c,u=this._s,h=new Uint8Array(16);h.set(t);for(var d=0;d<16;++d)h[d]^=r[d];for(var m=1;m<this._cyclesOfRepetition;m++){for(var g=0;g<16;++g)h[g]=u[h[g]];c=h[1];h[1]=h[5];h[5]=h[9];h[9]=h[13];h[13]=c;c=h[2];l=h[6];h[2]=h[10];h[6]=h[14];h[10]=c;h[14]=l;c=h[3];l=h[7];o=h[11];h[3]=h[15];h[7]=c;h[11]=l;h[15]=o;for(var y=0;y<16;y+=4){var v=h[y+0],S=h[y+1],_=h[y+2],k=h[y+3];o=v^S^_^k;h[y+0]^=o^this._mixCol[v^S];h[y+1]^=o^this._mixCol[S^_];h[y+2]^=o^this._mixCol[_^k];h[y+3]^=o^this._mixCol[k^v]}for(var C=0,w=16*m;C<16;++C,++w)h[C]^=r[w]}for(var x=0;x<16;++x)h[x]=u[h[x]];c=h[1];h[1]=h[5];h[5]=h[9];h[9]=h[13];h[13]=c;c=h[2];l=h[6];h[2]=h[10];h[6]=h[14];h[10]=c;h[14]=l;c=h[3];l=h[7];o=h[11];h[3]=h[15];h[7]=c;h[11]=l;h[15]=o;for(var O=0,T=this._keySize;O<16;++O,++T)h[O]^=r[T];return h}},{key:"_decryptBlock2",value:function _decryptBlock2(t,r){for(var o=t.length,l=this.buffer,c=this.bufferPosition,u=[],h=this.iv,d=0;d<o;++d){l[c]=t[d];if(!(++c<16)){for(var m=this._decrypt(l,this._key),g=0;g<16;++g)m[g]^=h[g];h=l;u.push(m);l=new Uint8Array(16);c=0}}this.buffer=l;this.bufferLength=c;this.iv=h;if(0===u.length)return new Uint8Array(0);var y=16*u.length;if(r){var v=u[u.length-1],S=v[15];if(S<=16){for(var _=15,k=16-S;_>=k;--_)if(v[_]!==S){S=0;break}y-=S;u[u.length-1]=v.subarray(0,16-S)}}for(var C=new Uint8Array(y),w=0,x=0,O=u.length;w<O;++w,x+=16)C.set(u[w],x);return C}},{key:"decryptBlock",value:function decryptBlock(t,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,l=t.length,c=this.buffer,u=this.bufferPosition;if(o)this.iv=o;else{for(var h=0;u<16&&h<l;++h,++u)c[u]=t[h];if(u<16){this.bufferLength=u;return new Uint8Array(0)}this.iv=c;t=t.subarray(16)}this.buffer=new Uint8Array(16);this.bufferLength=0;this.decryptBlock=this._decryptBlock2;return this.decryptBlock(t,r)}},{key:"encrypt",value:function encrypt(t,r){var o=t.length,l=this.buffer,c=this.bufferPosition,u=[];r||(r=new Uint8Array(16));for(var h=0;h<o;++h){l[c]=t[h];if(!(++c<16)){for(var d=0;d<16;++d)l[d]^=r[d];var m=this._encrypt(l,this._key);r=m;u.push(m);l=new Uint8Array(16);c=0}}this.buffer=l;this.bufferLength=c;this.iv=r;if(0===u.length)return new Uint8Array(0);for(var g=16*u.length,y=new Uint8Array(g),v=0,S=0,_=u.length;v<_;++v,S+=16)y.set(u[v],S);return y}}]);return AESBaseCipher}(),_=function(t){_inherits(AES128Cipher,t);var r=_createSuper(AES128Cipher);function AES128Cipher(t){var o;_classCallCheck(this,AES128Cipher);(o=r.call(this))._cyclesOfRepetition=10;o._keySize=160;o._rcon=new Uint8Array([141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141]);o._key=o._expandKey(t);return o}_createClass(AES128Cipher,[{key:"_expandKey",value:function _expandKey(t){var r=this._s,o=this._rcon,l=new Uint8Array(176);l.set(t);for(var c=16,u=1;c<176;++u){var h=l[c-3],d=l[c-2],m=l[c-1],g=l[c-4];h=r[h];d=r[d];m=r[m];g=r[g];h^=o[u];for(var y=0;y<4;++y){l[c]=h^=l[c-16];l[++c]=d^=l[c-16];l[++c]=m^=l[c-16];l[++c]=g^=l[c-16];c++}}return l}}]);return AES128Cipher}(S);r.AES128Cipher=_;var k=function(t){_inherits(AES256Cipher,t);var r=_createSuper(AES256Cipher);function AES256Cipher(t){var o;_classCallCheck(this,AES256Cipher);(o=r.call(this))._cyclesOfRepetition=14;o._keySize=224;o._key=o._expandKey(t);return o}_createClass(AES256Cipher,[{key:"_expandKey",value:function _expandKey(t){var r=this._s,o=new Uint8Array(240);o.set(t);for(var l,c,u,h,d=1,m=32,g=1;m<240;++g){if(m%32==16){l=r[l];c=r[c];u=r[u];h=r[h]}else if(m%32==0){l=o[m-3];c=o[m-2];u=o[m-1];h=o[m-4];l=r[l];c=r[c];u=r[u];h=r[h];l^=d;(d<<=1)>=256&&(d=255&(27^d))}for(var y=0;y<4;++y){o[m]=l^=o[m-32];o[++m]=c^=o[m-32];o[++m]=u^=o[m-32];o[++m]=h^=o[m-32];m++}}return o}}]);return AES256Cipher}(S);r.AES256Cipher=k;var C=function(){function PDF17(){_classCallCheck(this,PDF17)}_createClass(PDF17,[{key:"checkOwnerPassword",value:function checkOwnerPassword(t,r,o,c){var u=new Uint8Array(t.length+56);u.set(t,0);u.set(r,t.length);u.set(o,t.length+r.length);var h=g(u,0,u.length);return(0,l.isArrayEqual)(h,c)}},{key:"checkUserPassword",value:function checkUserPassword(t,r,o){var c=new Uint8Array(t.length+8);c.set(t,0);c.set(r,t.length);var u=g(c,0,c.length);return(0,l.isArrayEqual)(u,o)}},{key:"getOwnerKey",value:function getOwnerKey(t,r,o,l){var c=new Uint8Array(t.length+56);c.set(t,0);c.set(r,t.length);c.set(o,t.length+r.length);var u=g(c,0,c.length);return new k(u).decryptBlock(l,!1,new Uint8Array(16))}},{key:"getUserKey",value:function getUserKey(t,r,o){var l=new Uint8Array(t.length+8);l.set(t,0);l.set(r,t.length);var c=g(l,0,l.length);return new k(c).decryptBlock(o,!1,new Uint8Array(16))}}]);return PDF17}();r.PDF17=C;var w=function PDF20Closure(){function calculatePDF20Hash(t,r,o){for(var l=g(r,0,r.length).subarray(0,32),c=[0],u=0;u<64||c[c.length-1]>u-32;){var h=t.length+l.length+o.length,d=new Uint8Array(h),m=0;d.set(t,m);m+=t.length;d.set(l,m);m+=l.length;d.set(o,m);for(var v=new Uint8Array(64*h),S=0,k=0;S<64;S++,k+=h)v.set(d,k);c=new _(l.subarray(0,16)).encrypt(v,l.subarray(16,32));for(var C=0,w=0;w<16;w++){C*=1;C%=3;C+=(c[w]>>>0)%3;C%=3}0===C?l=g(c,0,c.length):1===C?l=calculateSHA384(c,0,c.length):2===C&&(l=y(c,0,c.length));u++}return l.subarray(0,32)}return function(){function PDF20(){_classCallCheck(this,PDF20)}_createClass(PDF20,[{key:"hash",value:function hash(t,r,o){return calculatePDF20Hash(t,r,o)}},{key:"checkOwnerPassword",value:function checkOwnerPassword(t,r,o,c){var u=new Uint8Array(t.length+56);u.set(t,0);u.set(r,t.length);u.set(o,t.length+r.length);var h=calculatePDF20Hash(t,u,o);return(0,l.isArrayEqual)(h,c)}},{key:"checkUserPassword",value:function checkUserPassword(t,r,o){var c=new Uint8Array(t.length+8);c.set(t,0);c.set(r,t.length);var u=calculatePDF20Hash(t,c,[]);return(0,l.isArrayEqual)(u,o)}},{key:"getOwnerKey",value:function getOwnerKey(t,r,o,l){var c=new Uint8Array(t.length+56);c.set(t,0);c.set(r,t.length);c.set(o,t.length+r.length);var u=calculatePDF20Hash(t,c,o);return new k(u).decryptBlock(l,!1,new Uint8Array(16))}},{key:"getUserKey",value:function getUserKey(t,r,o){var l=new Uint8Array(t.length+8);l.set(t,0);l.set(r,t.length);var c=calculatePDF20Hash(t,l,[]);return new k(c).decryptBlock(o,!1,new Uint8Array(16))}}]);return PDF20}()}();r.PDF20=w;var x=function(){function CipherTransform(t,r){_classCallCheck(this,CipherTransform);this.StringCipherConstructor=t;this.StreamCipherConstructor=r}_createClass(CipherTransform,[{key:"createStream",value:function createStream(t,r){var o=new this.StreamCipherConstructor;return new u.DecryptStream(t,r,(function cipherTransformDecryptStream(t,r){return o.decryptBlock(t,r)}))}},{key:"decryptString",value:function decryptString(t){var r=new this.StringCipherConstructor,o=(0,l.stringToBytes)(t);o=r.decryptBlock(o,!0);return(0,l.bytesToString)(o)}},{key:"encryptString",value:function encryptString(t){var r=new this.StringCipherConstructor;if(r instanceof S){var o=16-t.length%16;t+=String.fromCharCode(o).repeat(o);var c=new Uint8Array(16);if("undefined"!=typeof crypto)crypto.getRandomValues(c);else for(var u=0;u<16;u++)c[u]=Math.floor(256*Math.random());var h=(0,l.stringToBytes)(t);h=r.encrypt(h,c);var d=new Uint8Array(16+h.length);d.set(c);d.set(h,16);return(0,l.bytesToString)(d)}var m=(0,l.stringToBytes)(t);m=r.encrypt(m);return(0,l.bytesToString)(m)}}]);return CipherTransform}(),O=function CipherTransformFactoryClosure(){var t=new Uint8Array([40,191,78,94,78,117,138,65,100,0,78,86,255,250,1,8,46,46,0,182,208,104,62,128,47,12,169,254,100,83,105,122]);function prepareKeyData(r,o,l,c,u,m,g,y){var v,S,_=40+l.length+r.length,k=new Uint8Array(_),C=0;if(o){S=Math.min(32,o.length);for(;C<S;++C)k[C]=o[C]}v=0;for(;C<32;)k[C++]=t[v++];for(v=0,S=l.length;v<S;++v)k[C++]=l[v];k[C++]=255&u;k[C++]=u>>8&255;k[C++]=u>>16&255;k[C++]=u>>>24&255;for(v=0,S=r.length;v<S;++v)k[C++]=r[v];if(m>=4&&!y){k[C++]=255;k[C++]=255;k[C++]=255;k[C++]=255}var w=d(k,0,C),x=g>>3;if(m>=3)for(v=0;v<50;++v)w=d(w,0,x);var O,T=w.subarray(0,x);if(m>=3){for(C=0;C<32;++C)k[C]=t[C];for(v=0,S=r.length;v<S;++v)k[C++]=r[v];O=new h(T).encryptBlock(d(k,0,C));S=T.length;var R=new Uint8Array(S);for(v=1;v<=19;++v){for(var E=0;E<S;++E)R[E]=T[E]^v;O=new h(R).encryptBlock(O)}for(v=0,S=O.length;v<S;++v)if(c[v]!==O[v])return null}else for(v=0,S=(O=new h(T).encryptBlock(t)).length;v<S;++v)if(c[v]!==O[v])return null;return T}var r=c.Name.get("Identity");function buildObjectKey(t,r,o){var l,c=arguments.length>3&&void 0!==arguments[3]&&arguments[3],u=new Uint8Array(o.length+9),h=o.length;for(l=0;l<h;++l)u[l]=o[l];u[l++]=255&t;u[l++]=t>>8&255;u[l++]=t>>16&255;u[l++]=255&r;u[l++]=r>>8&255;if(c){u[l++]=115;u[l++]=65;u[l++]=108;u[l++]=84}var m=d(u,0,l);return m.subarray(0,Math.min(o.length+5,16))}function buildCipherConstructor(t,r,o,u,d){if(!(0,c.isName)(r))throw new l.FormatError("Invalid crypt filter name.");var m,g=t.get(r.name);null!=g&&(m=g.get("CFM"));if(!m||"None"===m.name)return function cipherTransformFactoryBuildCipherConstructorNone(){return new v};if("V2"===m.name)return function cipherTransformFactoryBuildCipherConstructorV2(){return new h(buildObjectKey(o,u,d,!1))};if("AESV2"===m.name)return function cipherTransformFactoryBuildCipherConstructorAESV2(){return new _(buildObjectKey(o,u,d,!0))};if("AESV3"===m.name)return function cipherTransformFactoryBuildCipherConstructorAESV3(){return new k(d)};throw new l.FormatError("Unknown crypto method")}return function(){function CipherTransformFactory(o,u,m){_classCallCheck(this,CipherTransformFactory);var g=o.get("Filter");if(!(0,c.isName)(g,"Standard"))throw new l.FormatError("unknown encryption method");this.dict=o;var y=o.get("V");if(!Number.isInteger(y)||1!==y&&2!==y&&4!==y&&5!==y)throw new l.FormatError("unsupported encryption algorithm");this.algorithm=y;var v=o.get("Length");if(!v)if(y<=3)v=40;else{var S=o.get("CF"),_=o.get("StmF");if((0,c.isDict)(S)&&(0,c.isName)(_)){S.suppressEncryption=!0;var k=S.get(_.name);(v=k&&k.get("Length")||128)<40&&(v<<=3)}}if(!Number.isInteger(v)||v<40||v%8!=0)throw new l.FormatError("invalid key length");var x=(0,l.stringToBytes)(o.get("O")).subarray(0,32),O=(0,l.stringToBytes)(o.get("U")).subarray(0,32),T=o.get("P"),R=o.get("R"),E=(4===y||5===y)&&!1!==o.get("EncryptMetadata");this.encryptMetadata=E;var M,D,j=(0,l.stringToBytes)(u);if(m){if(6===R)try{m=(0,l.utf8StringToString)(m)}catch(t){(0,l.warn)("CipherTransformFactory: Unable to convert UTF8 encoded password.")}M=(0,l.stringToBytes)(m)}if(5!==y)D=prepareKeyData(j,M,x,O,T,R,v,E);else{var L=(0,l.stringToBytes)(o.get("O")).subarray(32,40),N=(0,l.stringToBytes)(o.get("O")).subarray(40,48),U=(0,l.stringToBytes)(o.get("U")).subarray(0,48),H=(0,l.stringToBytes)(o.get("U")).subarray(32,40),W=(0,l.stringToBytes)(o.get("U")).subarray(40,48),$=(0,l.stringToBytes)(o.get("OE")),q=(0,l.stringToBytes)(o.get("UE"));(0,l.stringToBytes)(o.get("Perms"));D=function createEncryptionKey20(t,r,o,l,c,u,h,d,m,g,y,v){if(r){var S=Math.min(127,r.length);r=r.subarray(0,S)}else r=[];var _;return(_=6===t?new w:new C).checkUserPassword(r,d,h)?_.getUserKey(r,m,y):r.length&&_.checkOwnerPassword(r,l,u,o)?_.getOwnerKey(r,c,u,g):null}(R,M,x,L,N,U,O,H,W,$,q)}if(!D&&!m)throw new l.PasswordException("No password given",l.PasswordResponses.NEED_PASSWORD);if(!D&&m){var X=function decodeUserPassword(r,o,l,c){for(var u=new Uint8Array(32),m=0,g=Math.min(32,r.length);m<g;++m)u[m]=r[m];for(var y=0;m<32;)u[m++]=t[y++];var v,S=d(u,0,m),_=c>>3;if(l>=3)for(y=0;y<50;++y)S=d(S,0,S.length);if(l>=3){v=o;var k=new Uint8Array(_);for(y=19;y>=0;y--){for(var C=0;C<_;++C)k[C]=S[C]^y;v=new h(k).encryptBlock(v)}}else v=new h(S.subarray(0,_)).encryptBlock(o);return v}(M,x,R,v);D=prepareKeyData(j,X,x,O,T,R,v,E)}if(!D)throw new l.PasswordException("Incorrect Password",l.PasswordResponses.INCORRECT_PASSWORD);this.encryptionKey=D;if(y>=4){var z=o.get("CF");(0,c.isDict)(z)&&(z.suppressEncryption=!0);this.cf=z;this.stmf=o.get("StmF")||r;this.strf=o.get("StrF")||r;this.eff=o.get("EFF")||this.stmf}}_createClass(CipherTransformFactory,[{key:"createCipherTransform",value:function createCipherTransform(t,r){if(4===this.algorithm||5===this.algorithm)return new x(buildCipherConstructor(this.cf,this.stmf,t,r,this.encryptionKey),buildCipherConstructor(this.cf,this.strf,t,r,this.encryptionKey));var o=buildObjectKey(t,r,this.encryptionKey,!1),l=function buildCipherCipherConstructor(){return new h(o)};return new x(l,l)}}]);return CipherTransformFactory}()}();r.CipherTransformFactory=O},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.DecryptStream=void 0;var l=o(142);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var c=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(DecryptStream,t);var r=_createSuper(DecryptStream);function DecryptStream(t,o,l){var c;!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,DecryptStream);(c=r.call(this,o)).str=t;c.dict=t.dict;c.decrypt=l;c.nextChunk=null;c.initialized=!1;return c}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(DecryptStream,[{key:"readBlock",value:function readBlock(){var t;if(this.initialized)t=this.nextChunk;else{t=this.str.getBytes(512);this.initialized=!0}if(t&&0!==t.length){this.nextChunk=this.str.getBytes(512);var r=this.nextChunk&&this.nextChunk.length>0;t=(0,this.decrypt)(t,!r);for(var o=this.bufferLength,l=t.length,c=this.ensureBuffer(o+l),u=0;u<l;u++)c[o++]=t[u];this.bufferLength=o}else this.eof=!0}}]);return DecryptStream}(l.DecodeStream);r.DecryptStream=c},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.XFAFactory=void 0;var l=o(188),c=o(192),u=o(198),h=o(196),d=o(189),m=o(4),g=o(199);function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);if("Map"===o||"Set"===o)return Array.from(t);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}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 u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}var y=function(){function XFAFactory(t){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,XFAFactory);try{this.root=(new g.XFAParser).parse(XFAFactory._createDocument(t));var r=new c.Binder(this.root);this.form=r.bind();this.dataHandler=new u.DataHandler(this.root,r.getData());this.form[l.$globalData].template=this.form}catch(t){(0,m.warn)("XFA - an error occurred during parsing and binding: ".concat(t))}}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(XFAFactory,[{key:"isValid",value:function isValid(){return this.root&&this.form}},{key:"_createPages",value:function _createPages(){try{this.pages=this.form[l.$toHTML]();this.dims=this.pages.children.map((function(t){var r=t.attributes.style,o=r.width,l=r.height;return[0,0,parseInt(o),parseInt(l)]}))}catch(t){(0,m.warn)("XFA - an error occurred during layout: ".concat(t))}}},{key:"getBoundingBox",value:function getBoundingBox(t){return this.dims[t]}},{key:"numberPages",get:function get(){this.pages||this._createPages();return this.dims.length}},{key:"setImages",value:function setImages(t){this.form[l.$globalData].images=t}},{key:"setFonts",value:function setFonts(t){this.form[l.$globalData].fontFinder=new h.FontFinder(t);var r,o=[],c=_createForOfIteratorHelper(this.form[l.$globalData].usedTypefaces);try{for(c.s();!(r=c.n()).done;){var u=r.value;u=(0,d.stripQuotes)(u);this.form[l.$globalData].fontFinder.find(u)||o.push(u)}}catch(t){c.e(t)}finally{c.f()}return o.length>0?o:null}},{key:"appendFonts",value:function appendFonts(t,r){this.form[l.$globalData].fontFinder.add(t,r)}},{key:"getPages",value:function getPages(){this.pages||this._createPages();var t=this.pages;this.pages=null;return t}},{key:"serializeData",value:function serializeData(t){return this.dataHandler.serialize(t)}}],[{key:"_createDocument",value:function _createDocument(t){return t["/xdp:xdp"]?Object.values(t).join(""):t["xdp:xdp"]}}]);return XFAFactory}();r.XFAFactory=y},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.XmlObject=r.XFAObjectArray=r.XFAObject=r.XFAAttribute=r.StringObject=r.OptionObject=r.Option10=r.Option01=r.IntegerObject=r.ContentObject=r.$uid=r.$toStyle=r.$toString=r.$toHTML=r.$text=r.$tabIndex=r.$setValue=r.$setSetAttributes=r.$setId=r.$searchNode=r.$root=r.$resolvePrototypes=r.$removeChild=r.$pushPara=r.$pushGlyphs=r.$popPara=r.$onText=r.$onChildCheck=r.$onChild=r.$nsAttributes=r.$nodeName=r.$namespaceId=r.$isUsable=r.$isTransparent=r.$isThereMoreWidth=r.$isSplittable=r.$isNsAgnostic=r.$isDescendent=r.$isDataValue=r.$isCDATAXml=r.$isBindable=r.$insertAt=r.$indexOf=r.$ids=r.$hasSettableValue=r.$globalData=r.$getTemplateRoot=r.$getSubformParent=r.$getRealChildrenByNameIt=r.$getParent=r.$getNextPage=r.$getExtra=r.$getDataValue=r.$getContainedChildren=r.$getChildrenByNameIt=r.$getChildrenByName=r.$getChildrenByClass=r.$getChildren=r.$getAvailableSpace=r.$getAttributes=r.$getAttributeIt=r.$flushHTML=r.$finalize=r.$extra=r.$dump=r.$data=r.$content=r.$consumed=r.$clone=r.$cleanup=r.$cleanPage=r.$clean=r.$childrenToHTML=r.$appendChild=r.$addHTML=r.$acceptWhitespace=void 0;var l=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(o(2)),c=o(189),u=o(4),h=o(122),d=o(190),m=o(191);function _get(t,r,o){_get="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function _get(t,r,o){var l=function _superPropBase(t,r){for(;!Object.prototype.hasOwnProperty.call(t,r)&&null!==(t=_getPrototypeOf(t)););return t}(t,r);if(l){var c=Object.getOwnPropertyDescriptor(l,r);return c.get?c.get.call(o):c.value}};return _get(t,r,o||t)}function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||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 _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t)}function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}function _toConsumableArray(t){return function _arrayWithoutHoles(t){if(Array.isArray(t))return _arrayLikeToArray(t)}(t)||function _iterableToArray(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||_unsupportedIterableToArray(t)||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 _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}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 u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var g=Symbol();r.$acceptWhitespace=g;var y=Symbol();r.$addHTML=y;var v=Symbol();r.$appendChild=v;var S=Symbol();r.$childrenToHTML=S;var _=Symbol();r.$clean=_;var k=Symbol();r.$cleanPage=k;var C=Symbol();r.$cleanup=C;var w=Symbol();r.$clone=w;var x=Symbol();r.$consumed=x;var O=Symbol("content");r.$content=O;var T=Symbol("data");r.$data=T;var R=Symbol();r.$dump=R;var E=Symbol("extra");r.$extra=E;var M=Symbol();r.$finalize=M;var D=Symbol();r.$flushHTML=D;var j=Symbol();r.$getAttributeIt=j;var L=Symbol();r.$getAttributes=L;var N=Symbol();r.$getAvailableSpace=N;var U=Symbol();r.$getChildrenByClass=U;var H=Symbol();r.$getChildrenByName=H;var W=Symbol();r.$getChildrenByNameIt=W;var $=Symbol();r.$getDataValue=$;var q=Symbol();r.$getExtra=q;var X=Symbol();r.$getRealChildrenByNameIt=X;var z=Symbol();r.$getChildren=z;var G=Symbol();r.$getContainedChildren=G;var V=Symbol();r.$getNextPage=V;var Y=Symbol();r.$getSubformParent=Y;var K=Symbol();r.$getParent=K;var J=Symbol();r.$getTemplateRoot=J;var Q=Symbol();r.$globalData=Q;var Z=Symbol();r.$hasSettableValue=Z;var ee=Symbol();r.$ids=ee;var te=Symbol();r.$indexOf=te;var re=Symbol();r.$insertAt=re;var ae=Symbol();r.$isCDATAXml=ae;var ne=Symbol();r.$isBindable=ne;var ie=Symbol();r.$isDataValue=ie;var oe=Symbol();r.$isDescendent=oe;var se=Symbol();r.$isNsAgnostic=se;var le=Symbol();r.$isSplittable=le;var ce=Symbol();r.$isThereMoreWidth=ce;var ue=Symbol();r.$isTransparent=ue;var fe=Symbol();r.$isUsable=fe;var he=Symbol(),de=Symbol("namespaceId");r.$namespaceId=de;var pe=Symbol("nodeName");r.$nodeName=pe;var me=Symbol();r.$nsAttributes=me;var ge=Symbol();r.$onChild=ge;var ye=Symbol();r.$onChildCheck=ye;var ve=Symbol();r.$onText=ve;var be=Symbol();r.$pushGlyphs=be;var Se=Symbol();r.$popPara=Se;var _e=Symbol();r.$pushPara=_e;var ke=Symbol();r.$removeChild=ke;var Ce=Symbol("root");r.$root=Ce;var we=Symbol();r.$resolvePrototypes=we;var Ae=Symbol();r.$searchNode=Ae;var xe=Symbol();r.$setId=xe;var Oe=Symbol();r.$setSetAttributes=Oe;var Pe=Symbol();r.$setValue=Pe;var Te=Symbol();r.$tabIndex=Te;var Ie=Symbol();r.$text=Ie;var Fe=Symbol();r.$toHTML=Fe;var Re=Symbol();r.$toString=Re;var Ee=Symbol();r.$toStyle=Ee;var Me=Symbol("uid");r.$uid=Me;var Be=Symbol(),De=Symbol(),je=Symbol(),Le=Symbol("_children"),Ne=Symbol(),Ue=Symbol(),He=Symbol(),We=Symbol(),$e=Symbol(),qe=Symbol(),Xe=Symbol(),ze=Symbol(),Ge=Symbol(),Ve=Symbol("parent"),Ye=Symbol(),Ke=Symbol(),Je=Symbol(),Qe=0,Ze=d.NamespaceIds.datasets.id,et=function(){function XFAObject(t,r){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2];_classCallCheck(this,XFAObject);this[de]=t;this[pe]=r;this[Xe]=o;this[Ve]=null;this[Le]=[];this[Me]="".concat(r).concat(Qe++);this[Q]=null}_createClass(XFAObject,[{key:ge,value:function value(t){if(!this[Xe]||!this[ye](t))return!1;var r=t[pe],o=this[r];if(!(o instanceof tt)){null!==o&&this[ke](o);this[r]=t;this[v](t);return!0}if(o.push(t)){this[v](t);return!0}var l="";this.id?l=" (id: ".concat(this.id,")"):this.name&&(l=" (name: ".concat(this.name," ").concat(this.h.value,")"));(0,u.warn)('XFA - node "'.concat(this[pe],'"').concat(l,' has already enough "').concat(r,'"!'));return!1}},{key:ye,value:function value(t){return this.hasOwnProperty(t[pe])&&t[de]===this[de]}},{key:se,value:function value(){return!1}},{key:g,value:function value(){return!1}},{key:ae,value:function value(){return!1}},{key:ne,value:function value(){return!1}},{key:Se,value:function value(){this.para&&this[J]()[E].paraStack.pop()}},{key:_e,value:function value(){this[J]()[E].paraStack.push(this.para)}},{key:xe,value:function value(t){this.id&&this[de]===d.NamespaceIds.template.id&&t.set(this.id,this)}},{key:J,value:function value(){return this[Q].template}},{key:le,value:function value(){return!1}},{key:ce,value:function value(){return!1}},{key:v,value:function value(t){t[Ve]=this;this[Le].push(t);!t[Q]&&this[Q]&&(t[Q]=this[Q])}},{key:ke,value:function value(t){var r=this[Le].indexOf(t);this[Le].splice(r,1)}},{key:Z,value:function value(){return this.hasOwnProperty("value")}},{key:Pe,value:function value(t){}},{key:ve,value:function value(t){}},{key:M,value:function value(){}},{key:_,value:function value(t){delete this[Xe];if(this[C]){t.clean(this[C]);delete this[C]}}},{key:te,value:function value(t){return this[Le].indexOf(t)}},{key:re,value:function value(t,r){r[Ve]=this;this[Le].splice(t,0,r);!r[Q]&&this[Q]&&(r[Q]=this[Q])}},{key:ue,value:function value(){return!this.name}},{key:he,value:function value(){return""}},{key:Ie,value:function value(){return 0===this[Le].length?this[O]:this[Le].map((function(t){return t[Ie]()})).join("")}},{key:je,get:function get(){var t=Object.getPrototypeOf(this);if(!t._attributes){var r,o=t._attributes=new Set,l=_createForOfIteratorHelper(Object.getOwnPropertyNames(this));try{for(l.s();!(r=l.n()).done;){var c=r.value;if(null===this[c]||this[c]instanceof XFAObject||this[c]instanceof tt)break;o.add(c)}}catch(t){l.e(t)}finally{l.f()}}return(0,u.shadow)(this,je,t._attributes)}},{key:oe,value:function value(t){for(var r=this;r;){if(r===t)return!0;r=r[K]()}return!1}},{key:K,value:function value(){return this[Ve]}},{key:Y,value:function value(){return this[K]()}},{key:z,value:function value(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return t?this[t]:this[Le]}},{key:R,value:function value(){var t=Object.create(null);this[O]&&(t.$content=this[O]);var r,o=_createForOfIteratorHelper(Object.getOwnPropertyNames(this));try{for(o.s();!(r=o.n()).done;){var l=r.value,value=this[l];null!==value&&(value instanceof XFAObject?t[l]=value[R]():value instanceof tt?value.isEmpty()||(t[l]=value.dump()):t[l]=value)}}catch(t){o.e(t)}finally{o.f()}return t}},{key:Ee,value:function value(){return null}},{key:Fe,value:function value(){return c.HTMLResult.EMPTY}},{key:G,value:l.default.mark((function value(){var t,r,o;return l.default.wrap((function value$(l){for(;;)switch(l.prev=l.next){case 0:t=_createForOfIteratorHelper(this[z]());l.prev=1;t.s();case 3:if((r=t.n()).done){l.next=9;break}o=r.value;l.next=7;return o;case 7:l.next=3;break;case 9:l.next=14;break;case 11:l.prev=11;l.t0=l.catch(1);t.e(l.t0);case 14:l.prev=14;t.f();return l.finish(14);case 17:case"end":return l.stop()}}),value,this,[[1,11,14,17]])}))},{key:We,value:l.default.mark((function value(t,r){var o,c,u,h,d;return l.default.wrap((function value$(l){for(;;)switch(l.prev=l.next){case 0:o=_createForOfIteratorHelper(this[G]());l.prev=1;o.s();case 3:if((c=o.n()).done){l.next=13;break}u=c.value;if(t&&r!==t.has(u[pe])){l.next=11;break}h=this[N]();(d=u[Fe](h)).success||(this[E].failingNode=u);l.next=11;return d;case 11:l.next=3;break;case 13:l.next=18;break;case 15:l.prev=15;l.t0=l.catch(1);o.e(l.t0);case 18:l.prev=18;o.f();return l.finish(18);case 21:case"end":return l.stop()}}),value,this,[[1,15,18,21]])}))},{key:D,value:function value(){return null}},{key:y,value:function value(t,r){this[E].children.push(t)}},{key:N,value:function value(){}},{key:S,value:function value(t){var r=t.filter,o=void 0===r?null:r,l=t.include,u=void 0===l||l;if(this[E].generator){var h=this[N](),d=this[E].failingNode[Fe](h);if(!d.success)return d;d.html&&this[y](d.html,d.bbox);delete this[E].failingNode}else this[E].generator=this[We](o,u);for(;;){var m=this[E].generator.next();if(m.done)break;var g=m.value;if(!g.success)return g;g.html&&this[y](g.html,g.bbox)}this[E].generator=null;return c.HTMLResult.EMPTY}},{key:Oe,value:function value(t){this[Ke]=new Set(Object.keys(t))}},{key:qe,value:function value(t){var r=this[je],o=this[Ke];return _toConsumableArray(t).filter((function(t){return r.has(t)&&!o.has(t)}))}},{key:we,value:function value(t){var r,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Set,l=_createForOfIteratorHelper(this[Le]);try{for(l.s();!(r=l.n()).done;){var c=r.value;c[Ye](t,o)}}catch(t){l.e(t)}finally{l.f()}}},{key:Ye,value:function value(t,r){var o=this[$e](t,r);o?this[Be](o,t,r):this[we](t,r)}},{key:$e,value:function value(t,r){var o=this.use,l=this.usehref;if(!o&&!l)return null;var c=null,h=null,d=null,g=o;if(l){g=l;l.startsWith("#som(")&&l.endsWith(")")?h=l.slice("#som(".length,l.length-1):l.startsWith(".#som(")&&l.endsWith(")")?h=l.slice(".#som(".length,l.length-1):l.startsWith("#")?d=l.slice(1):l.startsWith(".#")&&(d=l.slice(2))}else o.startsWith("#")?d=o.slice(1):h=o;this.use=this.usehref="";d?c=t.get(d):(c=(0,m.searchNode)(t.get(Ce),this,h,!0,!1))&&(c=c[0]);if(!c){(0,u.warn)("XFA - Invalid prototype reference: ".concat(g,"."));return null}if(c[pe]!==this[pe]){(0,u.warn)("XFA - Incompatible prototype: ".concat(c[pe]," !== ").concat(this[pe],"."));return null}if(r.has(c)){(0,u.warn)("XFA - Cycle detected in prototypes use.");return null}r.add(c);var y=c[$e](t,r);y&&c[Be](y,t,r);c[we](t,r);r.delete(c);return c}},{key:Be,value:function value(t,r,o){if(o.has(t))(0,u.warn)("XFA - Cycle detected in prototypes use.");else{!this[O]&&t[O]&&(this[O]=t[O]);new Set(o).add(t);var l,c=_createForOfIteratorHelper(this[qe](t[Ke]));try{for(c.s();!(l=c.n()).done;){var h=l.value;this[h]=t[h];this[Ke]&&this[Ke].add(h)}}catch(t){c.e(t)}finally{c.f()}var d,m=_createForOfIteratorHelper(Object.getOwnPropertyNames(this));try{for(m.s();!(d=m.n()).done;){var g=d.value;if(!this[je].has(g)){var y=this[g],v=t[g];if(y instanceof tt){var S,_=_createForOfIteratorHelper(y[Le]);try{for(_.s();!(S=_.n()).done;){S.value[Ye](r,o)}}catch(t){_.e(t)}finally{_.f()}for(var k=y[Le].length,C=v[Le].length;k<C;k++){var x=t[Le][k][w]();if(!y.push(x))break;x[Ve]=this;this[Le].push(x);x[Ye](r,o)}}else if(null===y){if(null!==v){var T=v[w]();T[Ve]=this;this[g]=T;this[Le].push(T);T[Ye](r,o)}}else{y[we](r,o);v&&y[Be](v,r,o)}}}}catch(t){m.e(t)}finally{m.f()}}}},{key:w,value:function value(){var t,r=Object.create(Object.getPrototypeOf(this)),o=_createForOfIteratorHelper(Object.getOwnPropertySymbols(this));try{for(o.s();!(t=o.n()).done;){var l=t.value;try{r[l]=this[l]}catch(t){(0,u.shadow)(r,l,this[l])}}}catch(t){o.e(t)}finally{o.f()}r[Me]="".concat(r[pe]).concat(Qe++);r[Le]=[];var c,h=_createForOfIteratorHelper(Object.getOwnPropertyNames(this));try{for(h.s();!(c=h.n()).done;){var d=c.value;if(this[je].has(d))r[d]=XFAObject[Ne](this[d]);else{var m=this[d];r[d]=m instanceof tt?new tt(m[ze]):null}}}catch(t){h.e(t)}finally{h.f()}var g,y=_createForOfIteratorHelper(this[Le]);try{for(y.s();!(g=y.n()).done;){var v=g.value,S=v[pe],_=v[w]();r[Le].push(_);_[Ve]=r;null===r[S]?r[S]=_:r[S][Le].push(_)}}catch(t){y.e(t)}finally{y.f()}return r}},{key:z,value:function value(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return t?this[Le].filter((function(r){return r[pe]===t})):this[Le]}},{key:U,value:function value(t){return this[t]}},{key:H,value:function value(t,r){var o=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return Array.from(this[W](t,r,o))}},{key:W,value:l.default.mark((function value(t,r){var o,c,u,h,d=arguments;return l.default.wrap((function value$(l){for(;;)switch(l.prev=l.next){case 0:o=!(d.length>2&&void 0!==d[2])||d[2];if("parent"!==t){l.next=5;break}l.next=4;return this[Ve];case 4:return l.abrupt("return");case 5:c=_createForOfIteratorHelper(this[Le]);l.prev=6;c.s();case 8:if((u=c.n()).done){l.next=20;break}if((h=u.value)[pe]!==t){l.next=13;break}l.next=13;return h;case 13:if(h.name!==t){l.next=16;break}l.next=16;return h;case 16:if(!r&&!h[ue]()){l.next=18;break}return l.delegateYield(h[W](t,r,!1),"t0",18);case 18:l.next=8;break;case 20:l.next=25;break;case 22:l.prev=22;l.t1=l.catch(6);c.e(l.t1);case 25:l.prev=25;c.f();return l.finish(25);case 28:if(!o||!this[je].has(t)){l.next=31;break}l.next=31;return new rt(this,t,this[t]);case 31:case"end":return l.stop()}}),value,this,[[6,22,25,28]])}))}],[{key:Ne,value:function value(t){return Array.isArray(t)?t.map((function(t){return XFAObject[Ne](t)})):"object"===_typeof(t)&&null!==t?Object.assign({},t):t}}]);return XFAObject}();r.XFAObject=et;var tt=function(){function XFAObjectArray(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1/0;_classCallCheck(this,XFAObjectArray);this[ze]=t;this[Le]=[]}_createClass(XFAObjectArray,[{key:"push",value:function push(t){if(this[Le].length<=this[ze]){this[Le].push(t);return!0}(0,u.warn)('XFA - node "'.concat(t[pe],'" accepts no more than ').concat(this[ze]," children"));return!1}},{key:"isEmpty",value:function isEmpty(){return 0===this[Le].length}},{key:"dump",value:function dump(){return 1===this[Le].length?this[Le][0][R]():this[Le].map((function(t){return t[R]()}))}},{key:w,value:function value(){var t=new XFAObjectArray(this[ze]);t[Le]=this[Le].map((function(t){return t[w]()}));return t}},{key:"children",get:function get(){return this[Le]}},{key:"clear",value:function clear(){this[Le].length=0}}]);return XFAObjectArray}();r.XFAObjectArray=tt;var rt=function(){function XFAAttribute(t,r,o){_classCallCheck(this,XFAAttribute);this[Ve]=t;this[pe]=r;this[O]=o;this[x]=!1;this[Me]="attribute".concat(Qe++)}_createClass(XFAAttribute,[{key:K,value:function value(){return this[Ve]}},{key:ie,value:function value(){return!0}},{key:$,value:function value(){return this[O].trim()}},{key:Pe,value:function(t){function value(r){return t.apply(this,arguments)}value.toString=function(){return t.toString()};return value}((function(t){t=t.value||"";this[O]=t.toString()}))},{key:Ie,value:function value(){return this[O]}},{key:oe,value:function value(t){return this[Ve]===t||this[Ve][oe](t)}}]);return XFAAttribute}();r.XFAAttribute=rt;var at=function(t){_inherits(XmlObject,t);var r=_createSuper(XmlObject);function XmlObject(t,o){var l,c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};_classCallCheck(this,XmlObject);(l=r.call(this,t,o))[O]="";l[Ue]=null;if("#text"!==o){var u=new Map;l[De]=u;for(var h=0,d=Object.entries(c);h<d.length;h++){var m=_slicedToArray(d[h],2),g=m[0],y=m[1];u.set(g,new rt(_assertThisInitialized(l),g,y))}if(c.hasOwnProperty(me)){var v=c[me].xfa.dataNode;void 0!==v&&("dataGroup"===v?l[Ue]=!1:"dataValue"===v&&(l[Ue]=!0))}}l[x]=!1;return l}_createClass(XmlObject,[{key:Re,value:function value(t){var r=this[pe];if("#text"!==r){var o=this[de]===Ze?"xfa:":"";t.push("<".concat(o).concat(r));var l,c=_createForOfIteratorHelper(this[De].entries());try{for(c.s();!(l=c.n()).done;){var u=_slicedToArray(l.value,2),d=u[0],m=u[1];t.push(" ".concat(d,'="').concat((0,h.encodeToXmlString)(m[O]),'"'))}}catch(t){c.e(t)}finally{c.f()}null!==this[Ue]&&(this[Ue]?t.push(' xfa:dataNode="dataValue"'):t.push(' xfa:dataNode="dataGroup"'));if(this[O]||0!==this[Le].length){t.push(">");if(this[O])"string"==typeof this[O]?t.push((0,h.encodeToXmlString)(this[O])):this[O][Re](t);else{var g,y=_createForOfIteratorHelper(this[Le]);try{for(y.s();!(g=y.n()).done;){g.value[Re](t)}}catch(t){y.e(t)}finally{y.f()}}t.push("</".concat(o).concat(r,">"))}else t.push("/>")}else t.push((0,h.encodeToXmlString)(this[O]))}},{key:ge,value:function value(t){if(this[O]){var r=new XmlObject(this[de],"#text");this[v](r);r[O]=this[O];this[O]=""}this[v](t);return!0}},{key:ve,value:function value(t){this[O]+=t}},{key:M,value:function value(){if(this[O]&&this[Le].length>0){var t=new XmlObject(this[de],"#text");this[v](t);t[O]=this[O];delete this[O]}}},{key:Fe,value:function value(){return"#text"===this[pe]?c.HTMLResult.success({name:"#text",value:this[O]}):c.HTMLResult.EMPTY}},{key:z,value:function value(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return t?this[Le].filter((function(r){return r[pe]===t})):this[Le]}},{key:L,value:function value(){return this[De]}},{key:U,value:function value(t){var value=this[De].get(t);return void 0!==value?value:this[z](t)}},{key:W,value:l.default.mark((function value(t,r){var value,o,c,u;return l.default.wrap((function value$(l){for(;;)switch(l.prev=l.next){case 0:value=this[De].get(t);if(!value){l.next=4;break}l.next=4;return value;case 4:o=_createForOfIteratorHelper(this[Le]);l.prev=5;o.s();case 7:if((c=o.n()).done){l.next=16;break}if((u=c.value)[pe]!==t){l.next=12;break}l.next=12;return u;case 12:if(!r){l.next=14;break}return l.delegateYield(u[W](t,r),"t0",14);case 14:l.next=7;break;case 16:l.next=21;break;case 18:l.prev=18;l.t1=l.catch(5);o.e(l.t1);case 21:l.prev=21;o.f();return l.finish(21);case 24:case"end":return l.stop()}}),value,this,[[5,18,21,24]])}))},{key:j,value:l.default.mark((function value(t,r){var value,o,c,u;return l.default.wrap((function value$(l){for(;;)switch(l.prev=l.next){case 0:value=this[De].get(t);if(!value||r&&value[x]){l.next=4;break}l.next=4;return value;case 4:o=_createForOfIteratorHelper(this[Le]);l.prev=5;o.s();case 7:if((c=o.n()).done){l.next=12;break}u=c.value;return l.delegateYield(u[j](t,r),"t0",10);case 10:l.next=7;break;case 12:l.next=17;break;case 14:l.prev=14;l.t1=l.catch(5);o.e(l.t1);case 17:l.prev=17;o.f();return l.finish(17);case 20:case"end":return l.stop()}}),value,this,[[5,14,17,20]])}))},{key:X,value:l.default.mark((function value(t,r,o){var c,u,h;return l.default.wrap((function value$(l){for(;;)switch(l.prev=l.next){case 0:c=_createForOfIteratorHelper(this[Le]);l.prev=1;c.s();case 3:if((u=c.n()).done){l.next=12;break}if((h=u.value)[pe]!==t||o&&h[x]){l.next=8;break}l.next=8;return h;case 8:if(!r){l.next=10;break}return l.delegateYield(h[X](t,r,o),"t0",10);case 10:l.next=3;break;case 12:l.next=17;break;case 14:l.prev=14;l.t1=l.catch(1);c.e(l.t1);case 17:l.prev=17;c.f();return l.finish(17);case 20:case"end":return l.stop()}}),value,this,[[1,14,17,20]])}))},{key:ie,value:function value(){return null===this[Ue]?0===this[Le].length||this[Le][0][de]===d.NamespaceIds.xhtml.id:this[Ue]}},{key:$,value:function value(){return null===this[Ue]?0===this[Le].length?this[O].trim():this[Le][0][de]===d.NamespaceIds.xhtml.id?this[Le][0][Ie]().trim():null:this[O].trim()}},{key:Pe,value:function(t){function value(r){return t.apply(this,arguments)}value.toString=function(){return t.toString()};return value}((function(t){t=t.value||"";this[O]=t.toString()}))},{key:R,value:function value(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],r=Object.create(null);t&&(r.$ns=this[de]);this[O]&&(r.$content=this[O]);r.$name=this[pe];r.children=[];var o,l=_createForOfIteratorHelper(this[Le]);try{for(l.s();!(o=l.n()).done;){var c=o.value;r.children.push(c[R](t))}}catch(t){l.e(t)}finally{l.f()}r.attributes=Object.create(null);var u,h=_createForOfIteratorHelper(this[De]);try{for(h.s();!(u=h.n()).done;){var d=_slicedToArray(u.value,2),m=d[0],g=d[1];r.attributes[m]=g[O]}}catch(t){h.e(t)}finally{h.f()}return r}}]);return XmlObject}(et);r.XmlObject=at;var nt=function(t){_inherits(ContentObject,t);var r=_createSuper(ContentObject);function ContentObject(t,o){var l;_classCallCheck(this,ContentObject);(l=r.call(this,t,o))[O]="";return l}_createClass(ContentObject,[{key:ve,value:function value(t){this[O]+=t}},{key:M,value:function value(){}}]);return ContentObject}(et);r.ContentObject=nt;var it=function(t){_inherits(OptionObject,t);var r=_createSuper(OptionObject);function OptionObject(t,o,l){var c;_classCallCheck(this,OptionObject);(c=r.call(this,t,o))[Ge]=l;return c}_createClass(OptionObject,[{key:M,value:function value(){var t=this;this[O]=(0,c.getKeyword)({data:this[O],defaultValue:this[Ge][0],validate:function validate(r){return t[Ge].includes(r)}})}},{key:_,value:function value(t){_get(_getPrototypeOf(OptionObject.prototype),_,this).call(this,t);delete this[Ge]}}]);return OptionObject}(nt);r.OptionObject=it;var ot=function(t){_inherits(StringObject,t);var r=_createSuper(StringObject);function StringObject(){_classCallCheck(this,StringObject);return r.apply(this,arguments)}_createClass(StringObject,[{key:M,value:function value(){this[O]=this[O].trim()}}]);return StringObject}(nt);r.StringObject=ot;var st=function(t){_inherits(IntegerObject,t);var r=_createSuper(IntegerObject);function IntegerObject(t,o,l,c){var u;_classCallCheck(this,IntegerObject);(u=r.call(this,t,o))[He]=l;u[Je]=c;return u}_createClass(IntegerObject,[{key:M,value:function value(){this[O]=(0,c.getInteger)({data:this[O],defaultValue:this[He],validate:this[Je]})}},{key:_,value:function value(t){_get(_getPrototypeOf(IntegerObject.prototype),_,this).call(this,t);delete this[He];delete this[Je]}}]);return IntegerObject}(nt);r.IntegerObject=st;var lt=function(t){_inherits(Option01,t);var r=_createSuper(Option01);function Option01(t,o){_classCallCheck(this,Option01);return r.call(this,t,o,0,(function(t){return 1===t}))}return Option01}(st);r.Option01=lt;var ct=function(t){_inherits(Option10,t);var r=_createSuper(Option10);function Option10(t,o){_classCallCheck(this,Option10);return r.call(this,t,o,1,(function(t){return 0===t}))}return Option10}(st);r.Option10=ct},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.getBBox=function getBBox(t){var r=-1;if(!t)return{x:r,y:r,width:r,height:r};var o=t.trim().split(/\s*,\s*/).map((function(t){return getMeasurement(t,"-1")}));if(o.length<4||o[2]<0||o[3]<0)return{x:r,y:r,width:r,height:r};var l=_slicedToArray(o,4),c=l[0],u=l[1],h=l[2],d=l[3];return{x:c,y:u,width:h,height:d}};r.getColor=function getColor(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0,0,0],o=_slicedToArray(r,3),l=o[0],c=o[1],u=o[2];if(!t)return{r:l,g:c,b:u};var h=t.trim().split(/\s*,\s*/).map((function(t){return Math.min(Math.max(0,parseInt(t.trim(),10)),255)})).map((function(t){return isNaN(t)?0:t}));if(h.length<3)return{r:l,g:c,b:u};var d=_slicedToArray(h,3);l=d[0];c=d[1];u=d[2];return{r:l,g:c,b:u}};r.getFloat=function getFloat(t){var r=t.data,o=t.defaultValue,l=t.validate;if(!r)return o;r=r.trim();var c=parseFloat(r);if(!isNaN(c)&&l(c))return c;return o};r.getInteger=function getInteger(t){var r=t.data,o=t.defaultValue,l=t.validate;if(!r)return o;r=r.trim();var c=parseInt(r,10);if(!isNaN(c)&&l(c))return c;return o};r.getKeyword=getKeyword;r.getMeasurement=getMeasurement;r.getRatio=function getRatio(t){if(!t)return{num:1,den:1};var r=t.trim().split(/\s*:\s*/).map((function(t){return parseFloat(t)})).filter((function(t){return!isNaN(t)}));1===r.length&&r.push(1);if(0===r.length)return{num:1,den:1};var o=_slicedToArray(r,2),l=o[0],c=o[1];return{num:l,den:c}};r.getRelevant=function getRelevant(t){if(!t)return[];return t.trim().split(/\s+/).map((function(t){return{excluded:"-"===t[0],viewname:t.substring(1)}}))};r.getStringOption=function getStringOption(t,r){return getKeyword({data:t,defaultValue:r[0],validate:function validate(t){return r.includes(t)}})};r.stripQuotes=function stripQuotes(t){if(t.startsWith("'")||t.startsWith('"'))return t.slice(1,t.length-1);return t};r.HTMLResult=void 0;var l=o(4);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);if("Map"===o||"Set"===o)return Array.from(t);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return _arrayLikeToArray(t,r)}(t,r)||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 _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}var c={pt:function pt(t){return t},cm:function cm(t){return t/2.54*72},mm:function mm(t){return t/25.4*72},in:function _in(t){return 72*t},px:function px(t){return t}},u=/([+-]?\d+\.?\d*)(.*)/;function getKeyword(t){var r=t.data,o=t.defaultValue,l=t.validate;return r&&l(r=r.trim())?r:o}function getMeasurement(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"0";r=r||"0";if(!t)return getMeasurement(r);var o=t.trim().match(u);if(!o)return getMeasurement(r);var l=_slicedToArray(o,3),h=l[1],d=l[2],m=parseFloat(h);if(isNaN(m))return getMeasurement(r);if(0===m)return 0;var g=c[d];return g?g(m):m}var h=function(){function HTMLResult(t,r,o,l){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,HTMLResult);this.success=t;this.html=r;this.bbox=o;this.breakNode=l}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(HTMLResult,[{key:"isBreak",value:function isBreak(){return!!this.breakNode}}],[{key:"FAILURE",get:function get(){return(0,l.shadow)(this,"FAILURE",new HTMLResult(!1,null,null,null))}},{key:"EMPTY",get:function get(){return(0,l.shadow)(this,"EMPTY",new HTMLResult(!0,null,null,null))}},{key:"breakNode",value:function breakNode(t){return new HTMLResult(!1,null,null,t)}},{key:"success",value:function success(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return new HTMLResult(!0,t,r,null)}}]);return HTMLResult}();r.HTMLResult=h},(t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.NamespaceIds=r.$buildXFAObject=void 0;var o=Symbol();r.$buildXFAObject=o;r.NamespaceIds={config:{id:0,check:function check(t){return t.startsWith("http://www.xfa.org/schema/xci/")}},connectionSet:{id:1,check:function check(t){return t.startsWith("http://www.xfa.org/schema/xfa-connection-set/")}},datasets:{id:2,check:function check(t){return t.startsWith("http://www.xfa.org/schema/xfa-data/")}},form:{id:3,check:function check(t){return t.startsWith("http://www.xfa.org/schema/xfa-form/")}},localeSet:{id:4,check:function check(t){return t.startsWith("http://www.xfa.org/schema/xfa-locale-set/")}},pdf:{id:5,check:function check(t){return"http://ns.adobe.com/xdp/pdf/"===t}},signature:{id:6,check:function check(t){return"http://www.w3.org/2000/09/xmldsig#"===t}},sourceSet:{id:7,check:function check(t){return t.startsWith("http://www.xfa.org/schema/xfa-source-set/")}},stylesheet:{id:8,check:function check(t){return"http://www.w3.org/1999/XSL/Transform"===t}},template:{id:9,check:function check(t){return t.startsWith("http://www.xfa.org/schema/xfa-template/")}},xdc:{id:10,check:function check(t){return t.startsWith("http://www.xfa.org/schema/xdc/")}},xdp:{id:11,check:function check(t){return"http://ns.adobe.com/xdp/"===t}},xfdf:{id:12,check:function check(t){return"http://ns.adobe.com/xfdf/"===t}},xhtml:{id:13,check:function check(t){return"http://www.w3.org/1999/xhtml"===t}},xmpmeta:{id:14,check:function check(t){return"http://ns.adobe.com/xmpmeta/"===t}}}},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.createDataNode=function createDataNode(t,r,o){var c=parseExpression(o);if(!c)return null;if(c.some((function(t){return t.operator===g})))return null;var h=_.get(c[0].name),d=0;if(h){t=h(t,r);d=1}else t=r||t;for(var v=c.length;d<v;d++){var S=c[d],k=S.name,C=S.operator,w=S.index;if(!isFinite(w)){c[d].index=0;return createNodes(t,c.slice(d))}var x=void 0;switch(C){case m:x=t[l.$getChildrenByName](k,!1);break;case g:x=t[l.$getChildrenByName](k,!0);break;case y:x=(x=t[l.$getChildrenByClass](k))instanceof l.XFAObjectArray?x.children:[x]}if(0===x.length)return createNodes(t,c.slice(d));if(!(w<x.length)){c[d].index=w-x.length;return createNodes(t,c.slice(d))}var O=x[w];if(!(O instanceof l.XFAObject)){(0,u.warn)("XFA - Cannot create a node.");return null}t=O}return null};r.searchNode=function searchNode(t,r,o){var c=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],u=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],h=parseExpression(o,c);if(!h)return null;var d,v=_.get(h[0].name),S=0;if(v){d=!0;t=[v(t,r)];S=1}else{d=null===r;t=[r||t]}for(var C=function _loop(o){var c,v=h[S],_=v.name,C=v.cacheName,w=v.operator,x=v.index,O=[],T=_createForOfIteratorHelper(t);try{for(T.s();!(c=T.n()).done;){var R=c.value;if(R instanceof l.XFAObject){var E=void 0,M=void 0;if(u){if(!(M=k.get(R))){M=new Map;k.set(R,M)}E=M.get(C)}if(!E){switch(w){case m:E=R[l.$getChildrenByName](_,!1);break;case g:E=R[l.$getChildrenByName](_,!0);break;case y:E=(E=R[l.$getChildrenByClass](_))instanceof l.XFAObjectArray?E.children:[E]}u&&M.set(C,E)}E.length>0&&O.push(E)}}}catch(t){T.e(t)}finally{T.f()}if(0===O.length&&!d&&0===S){var D=r[l.$getParent]();if(!(r=D))return{v:null};S=-1;t=[r];return"continue"}t=isFinite(x)?O.filter((function(t){return x<t.length})).map((function(t){return t[x]})):O.reduce((function(t,r){return t.concat(r)}),[])},w=h.length;S<w;S++){var x=C(w);if("continue"!==x&&"object"===_typeof(x))return x.v}if(0===t.length)return null;return t};var l=o(188),c=o(190),u=o(4);function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}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 u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||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 _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}var h=/^[^.[]+/,d=/^[^\]]+/,m=0,g=1,y=2,v=3,S=4,_=new Map([["$data",function(t,r){return t.datasets?t.datasets.data:t}],["$record",function(t,r){return(t.datasets?t.datasets.data:t)[l.$getChildren]()[0]}],["$template",function(t,r){return t.template}],["$connectionSet",function(t,r){return t.connectionSet}],["$form",function(t,r){return t.form}],["$layout",function(t,r){return t.layout}],["$host",function(t,r){return t.host}],["$dataWindow",function(t,r){return t.dataWindow}],["$event",function(t,r){return t.event}],["!",function(t,r){return t.datasets}],["$xfa",function(t,r){return t}],["xfa",function(t,r){return t}],["$",function(t,r){return r}]]),k=new WeakMap,C=c.NamespaceIds.datasets.id;function parseIndex(t){return"*"===(t=t.trim())?1/0:parseInt(t,10)||0}function parseExpression(t,r){var o=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],l=t.match(h);if(!l)return null;for(var c=l,_=_slicedToArray(c,1),k=_[0],C=[{name:k,cacheName:"."+k,index:0,js:null,formCalc:null,operator:m}],w=k.length;w<t.length;){var x=w,O=t.charAt(w++);if("["!==O){var T=void 0;switch(t.charAt(w)){case".":if(!r)return null;w++;T=g;break;case"#":w++;T=y;break;case"[":if(o){(0,u.warn)("XFA - SOM expression contains a FormCalc subexpression which is not supported for now.");return null}T=v;break;case"(":if(o){(0,u.warn)("XFA - SOM expression contains a JavaScript subexpression which is not supported for now.");return null}T=S;break;default:T=m}if(!(l=t.slice(w).match(h)))break;var R=l,E=_slicedToArray(R,1);w+=(k=E[0]).length;C.push({name:k,cacheName:t.slice(x,w),operator:T,index:0,js:null,formCalc:null})}else{if(!(l=t.slice(w).match(d))){(0,u.warn)("XFA - Invalid index in SOM expression");return null}C[C.length-1].index=parseIndex(l[0]);w+=l[0].length+1}}return C}function createNodes(t,r){var o,c=null,u=_createForOfIteratorHelper(r);try{for(u.s();!(o=u.n()).done;){for(var h=o.value,d=h.name,m=h.index,g=0,y=isFinite(m)?m:0;g<=y;g++){var v=t[l.$namespaceId]===C?-1:t[l.$namespaceId];c=new l.XmlObject(v,d);t[l.$appendChild](c)}t=c}}catch(t){u.e(t)}finally{u.f()}return c}},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.Binder=void 0;var l=o(188),c=o(193),u=o(191),h=o(190),d=o(4);function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||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 _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}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 u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}var m=h.NamespaceIds.datasets.id;function createText(t){var r=new c.Text({});r[l.$content]=t;return r}var g=function(){function Binder(t){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,Binder);this.root=t;this.datasets=t.datasets;t.datasets&&t.datasets.data?this.data=t.datasets.data:this.data=new l.XmlObject(h.NamespaceIds.datasets.id,"data");this.emptyMerge=0===this.data[l.$getChildren]().length;this.root.form=this.form=t.template[l.$clone]()}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(Binder,[{key:"_isConsumeData",value:function _isConsumeData(){return!this.emptyMerge&&this._mergeMode}},{key:"_isMatchTemplate",value:function _isMatchTemplate(){return!this._isConsumeData()}},{key:"bind",value:function bind(){this._bindElement(this.form,this.data);return this.form}},{key:"getData",value:function getData(){return this.data}},{key:"_bindValue",value:function _bindValue(t,r,o){t[l.$data]=r;if(t[l.$hasSettableValue]())if(r[l.$isDataValue]()){var u=r[l.$getDataValue]();t[l.$setValue](createText(u))}else if(t instanceof c.Field&&t.ui&&t.ui.choiceList&&"multiSelect"===t.ui.choiceList.open){var h=r[l.$getChildren]().map((function(t){return t[l.$content].trim()})).join("\n");t[l.$setValue](createText(h))}else this._isConsumeData()&&(0,d.warn)("XFA - Nodes haven't the same type.");else!r[l.$isDataValue]()||this._isMatchTemplate()?this._bindElement(t,r):(0,d.warn)("XFA - Nodes haven't the same type.")}},{key:"_findDataByNameToConsume",value:function _findDataByNameToConsume(t,r,o,c){if(!t)return null;for(var u,d,m=0;m<3;m++){u=o[l.$getRealChildrenByNameIt](t,!1,!0);for(;d=u.next().value;)if(r===d[l.$isDataValue]())return d;if(o[l.$namespaceId]===h.NamespaceIds.datasets.id&&"data"===o[l.$nodeName])break;o=o[l.$getParent]()}return c&&((d=(u=this.data[l.$getRealChildrenByNameIt](t,!0,!1)).next().value)||(d=(u=this.data[l.$getAttributeIt](t,!0)).next().value)&&d[l.$isDataValue]())?d:null}},{key:"_setProperties",value:function _setProperties(t,r){if(t.hasOwnProperty("setProperty")){var o,h=_createForOfIteratorHelper(t.setProperty.children);try{for(h.s();!(o=h.n()).done;){var m=o.value,g=m.ref,y=m.target;if(!m.connection&&g){var v=(0,u.searchNode)(this.root,r,g,!1,!1);if(v){var S=_slicedToArray(v,1)[0];if(S[l.$isDescendent](this.data)){var _=(0,u.searchNode)(this.root,t,y,!1,!1);if(_){var k=_slicedToArray(_,1)[0];if(k[l.$isDescendent](t)){var C=k[l.$getParent]();if(k instanceof c.SetProperty||C instanceof c.SetProperty)(0,d.warn)("XFA - Invalid target: cannot be a setProperty or one of its properties.");else if(k instanceof c.BindItems||C instanceof c.BindItems)(0,d.warn)("XFA - Invalid target: cannot be a bindItems or one of its properties.");else{var w=S[l.$text](),x=k[l.$nodeName];if(k instanceof l.XFAAttribute){var O=Object.create(null);O[x]=w;var T=Reflect.construct(Object.getPrototypeOf(C).constructor,[O]);C[x]=T[x]}else if(k.hasOwnProperty(l.$content)){k[l.$data]=S;k[l.$content]=w;k[l.$finalize]()}else(0,d.warn)("XFA - Invalid node to use in setProperty")}}else(0,d.warn)("XFA - Invalid target: must be a property or subproperty.")}else(0,d.warn)("XFA - Invalid target: ".concat(y,"."))}else(0,d.warn)("XFA - Invalid node: must be a data node.")}else(0,d.warn)("XFA - Invalid reference: ".concat(g,"."))}}}catch(t){h.e(t)}finally{h.f()}}}},{key:"_bindItems",value:function _bindItems(t,r){if(t.hasOwnProperty("items")&&t.hasOwnProperty("bindItems")&&!t.bindItems.isEmpty()){var o,h=_createForOfIteratorHelper(t.items.children);try{for(h.s();!(o=h.n()).done;){var m=o.value;t[l.$removeChild](m)}}catch(t){h.e(t)}finally{h.f()}t.items.clear();var g=new c.Items({}),y=new c.Items({});t[l.$appendChild](g);t.items.push(g);t[l.$appendChild](y);t.items.push(y);var v,S=_createForOfIteratorHelper(t.bindItems.children);try{for(S.s();!(v=S.n()).done;){var _=v.value,k=_.ref,C=_.labelRef,w=_.valueRef;if(!_.connection&&k){var x=(0,u.searchNode)(this.root,r,k,!1,!1);if(x){var O,T=_createForOfIteratorHelper(x);try{for(T.s();!(O=T.n()).done;){var R=O.value;if(R[l.$isDescendent](this.datasets)){var E=(0,u.searchNode)(this.root,R,C,!0,!1);if(E){var M=_slicedToArray(E,1)[0];if(M[l.$isDescendent](this.datasets)){var D=(0,u.searchNode)(this.root,R,w,!0,!1);if(D){var j=_slicedToArray(D,1)[0];if(j[l.$isDescendent](this.datasets)){var L=createText(M[l.$text]()),N=createText(j[l.$text]());g[l.$appendChild](L);g.text.push(L);y[l.$appendChild](N);y.text.push(N)}else(0,d.warn)("XFA - Invalid value: must be a datasets child.")}else(0,d.warn)("XFA - Invalid value: ".concat(w,"."))}else(0,d.warn)("XFA - Invalid label: must be a datasets child.")}else(0,d.warn)("XFA - Invalid label: ".concat(C,"."))}else(0,d.warn)("XFA - Invalid ref (".concat(k,"): must be a datasets child."))}}catch(t){T.e(t)}finally{T.f()}}else(0,d.warn)("XFA - Invalid reference: ".concat(k,"."))}}}catch(t){S.e(t)}finally{S.f()}}}},{key:"_bindOccurrences",value:function _bindOccurrences(t,r,o){var c;if(r.length>1){(c=t[l.$clone]())[l.$removeChild](c.occur);c.occur=null}this._bindValue(t,r[0],o);this._setProperties(t,r[0]);this._bindItems(t,r[0]);if(1!==r.length)for(var u=t[l.$getParent](),h=t[l.$nodeName],d=u[l.$indexOf](t),m=1,g=r.length;m<g;m++){var y=r[m],v=c[l.$clone]();u[h].push(v);u[l.$insertAt](d+m,v);this._bindValue(v,y,o);this._setProperties(v,y);this._bindItems(v,y)}}},{key:"_createOccurrences",value:function _createOccurrences(t){if(this.emptyMerge){var r=t.occur;if(r&&!(r.initial<=1)){var o=t[l.$getParent](),c=t[l.$nodeName];if(o[c]instanceof l.XFAObjectArray){var u;u=t.name?o[c].children.filter((function(r){return r.name===t.name})).length:o[c].children.length;var h=o[l.$indexOf](t)+1,d=r.initial-u;if(d){var m=t[l.$clone]();m[l.$removeChild](m.occur);m.occur=null;o[c].push(m);o[l.$insertAt](h,m);for(var g=1;g<d;g++){var y=m[l.$clone]();o[c].push(y);o[l.$insertAt](h+g,y)}}}}}}},{key:"_getOccurInfo",value:function _getOccurInfo(t){var r=t.name,o=t.occur;if(!o||!r)return[1,1];var l=-1===o.max?1/0:o.max;return[o.min,l]}},{key:"_setAndBind",value:function _setAndBind(t,r){this._setProperties(t,r);this._bindItems(t,r);this._bindElement(t,r)}},{key:"_bindElement",value:function _bindElement(t,r){var o=[];this._createOccurrences(t);var c,h=_createForOfIteratorHelper(t[l.$getChildren]());try{for(h.s();!(c=h.n()).done;){var g=c.value;if(!g[l.$data])if(void 0!==this._mergeMode||"subform"!==g[l.$nodeName]){if(g[l.$isBindable]()){var y=!1,v=null,S=null,_=null;if(g.bind){switch(g.bind.match){case"none":this._setAndBind(g,r);continue;case"global":y=!0;break;case"dataRef":if(!g.bind.ref){(0,d.warn)("XFA - ref is empty in node ".concat(g[l.$nodeName],"."));this._setAndBind(g,r);continue}S=g.bind.ref}g.bind.picture&&(v=g.bind.picture[l.$content])}var k=_slicedToArray(this._getOccurInfo(g),2),C=k[0],w=k[1];if(S){if(null===(_=(0,u.searchNode)(this.root,r,S,!0,!1))){if(!(_=(0,u.createDataNode)(this.data,r,S)))continue;this._isConsumeData()&&(_[l.$consumed]=!0);this._setAndBind(g,_);continue}this._isConsumeData()&&(_=_.filter((function(t){return!t[l.$consumed]})));_.length>w?_=_.slice(0,w):0===_.length&&(_=null);_&&this._isConsumeData()&&_.forEach((function(t){t[l.$consumed]=!0}))}else{if(!g.name){this._setAndBind(g,r);continue}if(this._isConsumeData()){for(var x=[];x.length<w;){var O=this._findDataByNameToConsume(g.name,g[l.$hasSettableValue](),r,y);if(!O)break;O[l.$consumed]=!0;x.push(O)}_=x.length>0?x:null}else{if(!(_=r[l.$getRealChildrenByNameIt](g.name,!1,this.emptyMerge).next().value)){var T=r[l.$namespaceId]===m?-1:r[l.$namespaceId];_=g[l.$data]=new l.XmlObject(T,g.name);this.emptyMerge&&(_[l.$consumed]=!0);r[l.$appendChild](_);this._setAndBind(g,_);continue}this.emptyMerge&&(_[l.$consumed]=!0);_=[_]}}_?this._bindOccurrences(g,_,v):C>0?this._setAndBind(g,r):o.push(g)}}else{this._mergeMode="consumeData"===g.mergeMode;var R=r[l.$getChildren]();if(R.length>0)this._bindOccurrences(g,[R[0]],null);else if(this.emptyMerge){var E=r[l.$namespaceId]===m?-1:r[l.$namespaceId],M=g[l.$data]=new l.XmlObject(E,g.name||"root");r[l.$appendChild](M);this._bindElement(g,M)}}}}catch(t){h.e(t)}finally{h.f()}o.forEach((function(t){return t[l.$getParent]()[l.$removeChild](t)}))}}]);return Binder}();r.Binder=g},(t,r,o)=>{"use strict";var l=o(2);Object.defineProperty(r,"__esModule",{value:!0});r.Value=r.Text=r.TemplateNamespace=r.Template=r.SetProperty=r.Items=r.Field=r.BindItems=void 0;var c=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(o(2)),u=o(188),h=o(190),d=o(194),m=o(195),g=o(189),y=o(4),v=o(196),S=o(122),_=o(191);function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}function _get(t,r,o){_get="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function _get(t,r,o){var l=function _superPropBase(t,r){for(;!Object.prototype.hasOwnProperty.call(t,r)&&null!==(t=_getPrototypeOf(t)););return t}(t,r);if(l){var c=Object.getOwnPropertyDescriptor(l,r);return c.get?c.get.call(o):c.value}};return _get(t,r,o||t)}function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||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 _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var k=l.mark(getContainedChildren);function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}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 u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}var C=h.NamespaceIds.template.id,w="http://www.w3.org/2000/svg",x=/^H(\d+)$/,O=new Set(["image/gif","image/jpeg","image/jpg","image/pjpeg","image/png","image/apng","image/x-png","image/bmp","image/x-ms-bmp","image/tiff","image/tif"]),T=[[[66,77],"image/bmp"],[[255,216,255],"image/jpeg"],[[73,73,42,0],"image/tiff"],[[77,77,0,42],"image/tiff"],[[71,73,70,56,57,97],"image/gif"],[[137,80,78,71,13,10,26,10],"image/png"]];function getBorderDims(t){if(!t||!t.border)return{w:0,h:0};var r=t.border[u.$getExtra]();return r?{w:r.widths[0]+r.widths[2]+r.insets[0]+r.insets[2],h:r.widths[1]+r.widths[3]+r.insets[1]+r.insets[3]}:{w:0,h:0}}function hasMargin(t){return t.margin&&(t.margin.topInset||t.margin.rightInset||t.margin.bottomInset||t.margin.leftInset)}function _setValue(t,r){if(!t.value){var o=new jt({});t[u.$appendChild](o);t.value=o}t.value[u.$setValue](r)}function getContainedChildren(t){var r,o,l;return c.default.wrap((function getContainedChildren$(c){for(;;)switch(c.prev=c.next){case 0:r=_createForOfIteratorHelper(t[u.$getChildren]());c.prev=1;r.s();case 3:if((o=r.n()).done){c.next=12;break}if(!((l=o.value)instanceof Ct)){c.next=8;break}return c.delegateYield(l[u.$getContainedChildren](),"t0",7);case 7:return c.abrupt("continue",10);case 8:c.next=10;return l;case 10:c.next=3;break;case 12:c.next=17;break;case 14:c.prev=14;c.t1=c.catch(1);r.e(c.t1);case 17:c.prev=17;r.f();return c.finish(17);case 20:case"end":return c.stop()}}),k,null,[[1,14,17,20]])}function setTabIndex(t){for(;t;){if(!t.traversal){t[u.$tabIndex]=t[u.$getParent]()[u.$tabIndex];return}if(t[u.$tabIndex])return;var r,o=null,l=_createForOfIteratorHelper(t.traversal[u.$getChildren]());try{for(l.s();!(r=l.n()).done;){var c=r.value;if("next"===c.operation){o=c;break}}}catch(t){l.e(t)}finally{l.f()}if(!o||!o.ref){t[u.$tabIndex]=t[u.$getParent]()[u.$tabIndex];return}var h=t[u.$getTemplateRoot]();t[u.$tabIndex]=++h[u.$tabIndex];var d=h[u.$searchNode](o.ref,t);if(!d)return;t=d[0]}}function applyAssist(t,r){var o=t.assist;if(o){var l=o[u.$toHTML]();l&&(r.title=l);var c=o.role.match(x);if(c){var h=c[1];r.role="heading";r["aria-level"]=h}}if("table"===t.layout)r.role="table";else if("row"===t.layout)r.role="row";else{var d=t[u.$getParent]();"row"===d.layout&&(d.assist&&"TH"===d.assist.role?r.role="columnheader":r.role="cell")}}function ariaLabel(t){if(!t.assist)return null;var r=t.assist;return r.speak&&""!==r.speak[u.$content]?r.speak[u.$content]:r.toolTip?r.toolTip[u.$content]:null}function valueToHtml(t){return g.HTMLResult.success({name:"div",attributes:{class:["xfaRich"],style:Object.create(null)},children:[{name:"span",attributes:{style:Object.create(null)},value:t}]})}function setFirstUnsplittable(t){var r=t[u.$getTemplateRoot]();if(null===r[u.$extra].firstUnsplittable){r[u.$extra].firstUnsplittable=t;r[u.$extra].noLayoutFailure=!0}}function unsetFirstUnsplittable(t){var r=t[u.$getTemplateRoot]();r[u.$extra].firstUnsplittable===t&&(r[u.$extra].noLayoutFailure=!1)}function handleBreak(t){if(t[u.$extra])return!1;t[u.$extra]=Object.create(null);if("auto"===t.targetType)return!1;var r=t[u.$getTemplateRoot](),o=null;if(t.target){if(!(o=r[u.$searchNode](t.target,t[u.$getParent]())))return!1;o=o[0]}var l=r[u.$extra],c=l.currentPageArea,h=l.currentContentArea;if("pageArea"===t.targetType){o instanceof tt||(o=null);if(t.startNew){t[u.$extra].target=o||c;return!0}if(o&&o!==c){t[u.$extra].target=o;return!0}return!1}o instanceof re||(o=null);var d,m=o&&o[u.$getParent]();if(t.startNew)if(o){d=m.contentArea.children.findIndex((function(t){return t===o}))-1}else d=c.contentArea.children.findIndex((function(t){return t===h}));else{if(!o||o===h)return!1;d=m.contentArea.children.findIndex((function(t){return t===o}))-1}t[u.$extra].target=m===c?null:m;t[u.$extra].index=d;return!0}function handleOverflow(t,r,o){var l=t[u.$getTemplateRoot](),c=l[u.$extra].noLayoutFailure,h=r[u.$getSubformParent];r[u.$getSubformParent]=function(){return t};l[u.$extra].noLayoutFailure=!0;var d=r[u.$toHTML](o);t[u.$addHTML](d.html,d.bbox);l[u.$extra].noLayoutFailure=c;r[u.$getSubformParent]=h}var R=function(t){_inherits(AppearanceFilter,t);var r=_createSuper(AppearanceFilter);function AppearanceFilter(t){var o;_classCallCheck(this,AppearanceFilter);(o=r.call(this,C,"appearanceFilter")).id=t.id||"";o.type=(0,g.getStringOption)(t.type,["optional","required"]);o.use=t.use||"";o.usehref=t.usehref||"";return o}return AppearanceFilter}(u.StringObject),E=function(t){_inherits(Arc,t);var r=_createSuper(Arc);function Arc(t){var o;_classCallCheck(this,Arc);(o=r.call(this,C,"arc",!0)).circular=(0,g.getInteger)({data:t.circular,defaultValue:0,validate:function validate(t){return 1===t}});o.hand=(0,g.getStringOption)(t.hand,["even","left","right"]);o.id=t.id||"";o.startAngle=(0,g.getFloat)({data:t.startAngle,defaultValue:0,validate:function validate(t){return!0}});o.sweepAngle=(0,g.getFloat)({data:t.sweepAngle,defaultValue:360,validate:function validate(t){return!0}});o.use=t.use||"";o.usehref=t.usehref||"";o.edge=null;o.fill=null;return o}_createClass(Arc,[{key:u.$toHTML,value:function value(){var t,r=this.edge?this.edge:new de({}),o=r[u.$toStyle](),l=Object.create(null);this.fill&&"visible"===this.fill.presence?Object.assign(l,this.fill[u.$toStyle]()):l.fill="transparent";l.strokeWidth=(0,m.measureToString)("visible"===r.presence?r.thickness:0);l.stroke=o.color;var c={xmlns:w,style:{width:"100%",height:"100%",overflow:"visible"}};if(0===this.startAngle&&360===this.sweepAngle)t={name:"ellipse",attributes:{xmlns:w,cx:"50%",cy:"50%",rx:"50%",ry:"50%",style:l}};else{var h=this.startAngle*Math.PI/180,d=this.sweepAngle*Math.PI/180,y=this.sweepAngle-this.startAngle>180?1:0,v=50*(1+Math.cos(h)),S=50*(1-Math.sin(h)),_=50*(1+Math.cos(d)),k=50*(1-Math.sin(d));t={name:"path",attributes:{xmlns:w,d:"M ".concat(v," ").concat(S," A 50 50 0 ").concat(y," 0 ").concat(_," ").concat(k),vectorEffect:"non-scaling-stroke",style:l}};Object.assign(c,{viewBox:"0 0 100 100",preserveAspectRatio:"none"})}var C={name:"svg",children:[t],attributes:c};if(hasMargin(this[u.$getParent]()[u.$getParent]()))return g.HTMLResult.success({name:"div",attributes:{style:{display:"inline",width:"100%",height:"100%"}},children:[C]});C.attributes.style.position="absolute";return g.HTMLResult.success(C)}}]);return Arc}(u.XFAObject),M=function(t){_inherits(Area,t);var r=_createSuper(Area);function Area(t){var o;_classCallCheck(this,Area);(o=r.call(this,C,"area",!0)).colSpan=(0,g.getInteger)({data:t.colSpan,defaultValue:1,validate:function validate(t){return t>=1||-1===t}});o.id=t.id||"";o.name=t.name||"";o.relevant=(0,g.getRelevant)(t.relevant);o.use=t.use||"";o.usehref=t.usehref||"";o.x=(0,g.getMeasurement)(t.x,"0pt");o.y=(0,g.getMeasurement)(t.y,"0pt");o.desc=null;o.extras=null;o.area=new u.XFAObjectArray;o.draw=new u.XFAObjectArray;o.exObject=new u.XFAObjectArray;o.exclGroup=new u.XFAObjectArray;o.field=new u.XFAObjectArray;o.subform=new u.XFAObjectArray;o.subformSet=new u.XFAObjectArray;return o}_createClass(Area,[{key:u.$getContainedChildren,value:c.default.mark((function value(){return c.default.wrap((function value$(t){for(;;)switch(t.prev=t.next){case 0:return t.delegateYield(getContainedChildren(this),"t0",1);case 1:case"end":return t.stop()}}),value,this)}))},{key:u.$isTransparent,value:function value(){return!0}},{key:u.$isBindable,value:function value(){return!0}},{key:u.$addHTML,value:function value(t,r){var o=_slicedToArray(r,4),l=o[0],c=o[1],h=o[2],d=o[3];this[u.$extra].width=Math.max(this[u.$extra].width,l+h);this[u.$extra].height=Math.max(this[u.$extra].height,c+d);this[u.$extra].children.push(t)}},{key:u.$getAvailableSpace,value:function value(){return this[u.$extra].availableSpace}},{key:u.$toHTML,value:function value(t){var r=(0,m.toStyle)(this,"position"),o={style:r,id:this[u.$uid],class:["xfaArea"]};(0,m.isPrintOnly)(this)&&o.class.push("xfaPrintOnly");this.name&&(o.xfaName=this.name);var l=[];this[u.$extra]={children:l,width:0,height:0,availableSpace:t};var c=this[u.$childrenToHTML]({filter:new Set(["area","draw","field","exclGroup","subform","subformSet"]),include:!0});if(!c.success){if(c.isBreak())return c;delete this[u.$extra];return g.HTMLResult.FAILURE}r.width=(0,m.measureToString)(this[u.$extra].width);r.height=(0,m.measureToString)(this[u.$extra].height);var h={name:"div",attributes:o,children:l},d=[this.x,this.y,this[u.$extra].width,this[u.$extra].height];delete this[u.$extra];return g.HTMLResult.success(h,d)}}]);return Area}(u.XFAObject),D=function(t){_inherits(Assist,t);var r=_createSuper(Assist);function Assist(t){var o;_classCallCheck(this,Assist);(o=r.call(this,C,"assist",!0)).id=t.id||"";o.role=t.role||"";o.use=t.use||"";o.usehref=t.usehref||"";o.speak=null;o.toolTip=null;return o}_createClass(Assist,[{key:u.$toHTML,value:function value(){return this.toolTip&&this.toolTip[u.$content]?this.toolTip[u.$content]:null}}]);return Assist}(u.XFAObject),j=function(t){_inherits(Barcode,t);var r=_createSuper(Barcode);function Barcode(t){var o;_classCallCheck(this,Barcode);(o=r.call(this,C,"barcode",!0)).charEncoding=(0,g.getKeyword)({data:t.charEncoding?t.charEncoding.toLowerCase():"",defaultValue:"",validate:function validate(t){return["utf-8","big-five","fontspecific","gbk","gb-18030","gb-2312","ksc-5601","none","shift-jis","ucs-2","utf-16"].includes(t)||t.match(/iso-8859-\d{2}/)}});o.checksum=(0,g.getStringOption)(t.checksum,["none","1mod10","1mod10_1mod11","2mod10","auto"]);o.dataColumnCount=(0,g.getInteger)({data:t.dataColumnCount,defaultValue:-1,validate:function validate(t){return t>=0}});o.dataLength=(0,g.getInteger)({data:t.dataLength,defaultValue:-1,validate:function validate(t){return t>=0}});o.dataPrep=(0,g.getStringOption)(t.dataPrep,["none","flateCompress"]);o.dataRowCount=(0,g.getInteger)({data:t.dataRowCount,defaultValue:-1,validate:function validate(t){return t>=0}});o.endChar=t.endChar||"";o.errorCorrectionLevel=(0,g.getInteger)({data:t.errorCorrectionLevel,defaultValue:-1,validate:function validate(t){return t>=0&&t<=8}});o.id=t.id||"";o.moduleHeight=(0,g.getMeasurement)(t.moduleHeight,"5mm");o.moduleWidth=(0,g.getMeasurement)(t.moduleWidth,"0.25mm");o.printCheckDigit=(0,g.getInteger)({data:t.printCheckDigit,defaultValue:0,validate:function validate(t){return 1===t}});o.rowColumnRatio=(0,g.getRatio)(t.rowColumnRatio);o.startChar=t.startChar||"";o.textLocation=(0,g.getStringOption)(t.textLocation,["below","above","aboveEmbedded","belowEmbedded","none"]);o.truncate=(0,g.getInteger)({data:t.truncate,defaultValue:0,validate:function validate(t){return 1===t}});o.type=(0,g.getStringOption)(t.type?t.type.toLowerCase():"",["aztec","codabar","code2of5industrial","code2of5interleaved","code2of5matrix","code2of5standard","code3of9","code3of9extended","code11","code49","code93","code128","code128a","code128b","code128c","code128sscc","datamatrix","ean8","ean8add2","ean8add5","ean13","ean13add2","ean13add5","ean13pwcd","fim","logmars","maxicode","msi","pdf417","pdf417macro","plessey","postauscust2","postauscust3","postausreplypaid","postausstandard","postukrm4scc","postusdpbc","postusimb","postusstandard","postus5zip","qrcode","rfid","rss14","rss14expanded","rss14limited","rss14stacked","rss14stackedomni","rss14truncated","telepen","ucc128","ucc128random","ucc128sscc","upca","upcaadd2","upcaadd5","upcapwcd","upce","upceadd2","upceadd5","upcean2","upcean5","upsmaxicode"]);o.upsMode=(0,g.getStringOption)(t.upsMode,["usCarrier","internationalCarrier","secureSymbol","standardSymbol"]);o.use=t.use||"";o.usehref=t.usehref||"";o.wideNarrowRatio=(0,g.getRatio)(t.wideNarrowRatio);o.encrypt=null;o.extras=null;return o}return Barcode}(u.XFAObject),L=function(t){_inherits(Bind,t);var r=_createSuper(Bind);function Bind(t){var o;_classCallCheck(this,Bind);(o=r.call(this,C,"bind",!0)).match=(0,g.getStringOption)(t.match,["once","dataRef","global","none"]);o.ref=t.ref||"";o.picture=null;return o}return Bind}(u.XFAObject),N=function(t){_inherits(BindItems,t);var r=_createSuper(BindItems);function BindItems(t){var o;_classCallCheck(this,BindItems);(o=r.call(this,C,"bindItems")).connection=t.connection||"";o.labelRef=t.labelRef||"";o.ref=t.ref||"";o.valueRef=t.valueRef||"";return o}return BindItems}(u.XFAObject);r.BindItems=N;var U=function(t){_inherits(Bookend,t);var r=_createSuper(Bookend);function Bookend(t){var o;_classCallCheck(this,Bookend);(o=r.call(this,C,"bookend")).id=t.id||"";o.leader=t.leader||"";o.trailer=t.trailer||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return Bookend}(u.XFAObject),H=function(t){_inherits(BooleanElement,t);var r=_createSuper(BooleanElement);function BooleanElement(t){var o;_classCallCheck(this,BooleanElement);(o=r.call(this,C,"boolean")).id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}_createClass(BooleanElement,[{key:u.$toHTML,value:function value(t){return valueToHtml(1===this[u.$content]?"1":"0")}}]);return BooleanElement}(u.Option01),W=function(t){_inherits(Border,t);var r=_createSuper(Border);function Border(t){var o;_classCallCheck(this,Border);(o=r.call(this,C,"border",!0)).break=(0,g.getStringOption)(t.break,["close","open"]);o.hand=(0,g.getStringOption)(t.hand,["even","left","right"]);o.id=t.id||"";o.presence=(0,g.getStringOption)(t.presence,["visible","hidden","inactive","invisible"]);o.relevant=(0,g.getRelevant)(t.relevant);o.use=t.use||"";o.usehref=t.usehref||"";o.corner=new u.XFAObjectArray(4);o.edge=new u.XFAObjectArray(4);o.extras=null;o.fill=null;o.margin=null;return o}_createClass(Border,[{key:u.$getExtra,value:function value(){if(!this[u.$extra]){var t=this.edge.children.slice();if(t.length<4)for(var r=t[t.length-1]||new de({}),o=t.length;o<4;o++)t.push(r);var l=t.map((function(t){return t.thickness})),c=[0,0,0,0];if(this.margin){c[0]=this.margin.topInset;c[1]=this.margin.rightInset;c[2]=this.margin.bottomInset;c[3]=this.margin.leftInset}this[u.$extra]={widths:l,insets:c,edges:t}}return this[u.$extra]}},{key:u.$toStyle,value:function value(){var t=this[u.$getExtra]().edges.map((function(t){var r=t[u.$toStyle]();r.color=r.color||"#000000";return r})),r=Object.create(null);this.margin&&Object.assign(r,this.margin[u.$toStyle]());this.fill&&"visible"===this.fill.presence&&Object.assign(r,this.fill[u.$toStyle]());if(this.corner.children.some((function(t){return 0!==t.radius}))){var o=this.corner.children.map((function(t){return t[u.$toStyle]()}));if(2===o.length||3===o.length)for(var l=o[o.length-1],c=o.length;c<4;c++)o.push(l);r.borderRadius=o.map((function(t){return t.radius})).join(" ")}switch(this.presence){case"invisible":case"hidden":r.borderStyle="";break;case"inactive":r.borderStyle="none";break;default:r.borderStyle=t.map((function(t){return t.style})).join(" ")}r.borderWidth=t.map((function(t){return t.width})).join(" ");r.borderColor=t.map((function(t){return t.color})).join(" ");return r}}]);return Border}(u.XFAObject),$=function(t){_inherits(Break,t);var r=_createSuper(Break);function Break(t){var o;_classCallCheck(this,Break);(o=r.call(this,C,"break",!0)).after=(0,g.getStringOption)(t.after,["auto","contentArea","pageArea","pageEven","pageOdd"]);o.afterTarget=t.afterTarget||"";o.before=(0,g.getStringOption)(t.before,["auto","contentArea","pageArea","pageEven","pageOdd"]);o.beforeTarget=t.beforeTarget||"";o.bookendLeader=t.bookendLeader||"";o.bookendTrailer=t.bookendTrailer||"";o.id=t.id||"";o.overflowLeader=t.overflowLeader||"";o.overflowTarget=t.overflowTarget||"";o.overflowTrailer=t.overflowTrailer||"";o.startNew=(0,g.getInteger)({data:t.startNew,defaultValue:0,validate:function validate(t){return 1===t}});o.use=t.use||"";o.usehref=t.usehref||"";o.extras=null;return o}return Break}(u.XFAObject),q=function(t){_inherits(BreakAfter,t);var r=_createSuper(BreakAfter);function BreakAfter(t){var o;_classCallCheck(this,BreakAfter);(o=r.call(this,C,"breakAfter",!0)).id=t.id||"";o.leader=t.leader||"";o.startNew=(0,g.getInteger)({data:t.startNew,defaultValue:0,validate:function validate(t){return 1===t}});o.target=t.target||"";o.targetType=(0,g.getStringOption)(t.targetType,["auto","contentArea","pageArea"]);o.trailer=t.trailer||"";o.use=t.use||"";o.usehref=t.usehref||"";o.script=null;return o}return BreakAfter}(u.XFAObject),X=function(t){_inherits(BreakBefore,t);var r=_createSuper(BreakBefore);function BreakBefore(t){var o;_classCallCheck(this,BreakBefore);(o=r.call(this,C,"breakBefore",!0)).id=t.id||"";o.leader=t.leader||"";o.startNew=(0,g.getInteger)({data:t.startNew,defaultValue:0,validate:function validate(t){return 1===t}});o.target=t.target||"";o.targetType=(0,g.getStringOption)(t.targetType,["auto","contentArea","pageArea"]);o.trailer=t.trailer||"";o.use=t.use||"";o.usehref=t.usehref||"";o.script=null;return o}_createClass(BreakBefore,[{key:u.$toHTML,value:function value(t){this[u.$extra]={};return g.HTMLResult.FAILURE}}]);return BreakBefore}(u.XFAObject),z=function(t){_inherits(Button,t);var r=_createSuper(Button);function Button(t){var o;_classCallCheck(this,Button);(o=r.call(this,C,"button",!0)).highlight=(0,g.getStringOption)(t.highlight,["inverted","none","outline","push"]);o.id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";o.extras=null;return o}_createClass(Button,[{key:u.$toHTML,value:function value(t){var r,o=this[u.$getParent]()[u.$getParent](),l={name:"button",attributes:{id:this[u.$uid],class:["xfaButton"],style:{}},children:[]},c=_createForOfIteratorHelper(o.event.children);try{for(c.s();!(r=c.n()).done;){var h=r.value;if("click"===h.activity&&h.script){var d=(0,S.recoverJsURL)(h.script[u.$content]);if(d){var y=(0,m.fixURL)(d.url);y&&l.children.push({name:"a",attributes:{id:"link"+this[u.$uid],href:y,newWindow:d.newWindow,class:["xfaLink"],style:{}},children:[]})}}}}catch(t){c.e(t)}finally{c.f()}return g.HTMLResult.success(l)}}]);return Button}(u.XFAObject),G=function(t){_inherits(Calculate,t);var r=_createSuper(Calculate);function Calculate(t){var o;_classCallCheck(this,Calculate);(o=r.call(this,C,"calculate",!0)).id=t.id||"";o.override=(0,g.getStringOption)(t.override,["disabled","error","ignore","warning"]);o.use=t.use||"";o.usehref=t.usehref||"";o.extras=null;o.message=null;o.script=null;return o}return Calculate}(u.XFAObject),V=function(t){_inherits(Caption,t);var r=_createSuper(Caption);function Caption(t){var o;_classCallCheck(this,Caption);(o=r.call(this,C,"caption",!0)).id=t.id||"";o.placement=(0,g.getStringOption)(t.placement,["left","bottom","inline","right","top"]);o.presence=(0,g.getStringOption)(t.presence,["visible","hidden","inactive","invisible"]);o.reserve=Math.ceil((0,g.getMeasurement)(t.reserve));o.use=t.use||"";o.usehref=t.usehref||"";o.extras=null;o.font=null;o.margin=null;o.para=null;o.value=null;return o}_createClass(Caption,[{key:u.$setValue,value:function(t){function value(r){return t.apply(this,arguments)}value.toString=function(){return t.toString()};return value}((function(t){_setValue(this,t)}))},{key:u.$getExtra,value:function value(t){if(!this[u.$extra]){var r=t.width,o=t.height;switch(this.placement){case"left":case"right":case"inline":r=this.reserve<=0?r:this.reserve;break;case"top":case"bottom":o=this.reserve<=0?o:this.reserve}this[u.$extra]=(0,m.layoutNode)(this,{width:r,height:o})}return this[u.$extra]}},{key:u.$toHTML,value:function value(t){if(!this.value)return g.HTMLResult.EMPTY;this[u.$pushPara]();var value=this.value[u.$toHTML](t).html;if(!value){this[u.$popPara]();return g.HTMLResult.EMPTY}var r=this.reserve;if(this.reserve<=0){var o=this[u.$getExtra](t),l=o.w,c=o.h;switch(this.placement){case"left":case"right":case"inline":this.reserve=l;break;case"top":case"bottom":this.reserve=c}}var h=[];"string"==typeof value?h.push({name:"#text",value:value}):h.push(value);var d=(0,m.toStyle)(this,"font","margin","visibility");switch(this.placement){case"left":case"right":this.reserve>0&&(d.width=(0,m.measureToString)(this.reserve));break;case"top":case"bottom":this.reserve>0&&(d.height=(0,m.measureToString)(this.reserve))}(0,m.setPara)(this,null,value);this[u.$popPara]();this.reserve=r;return g.HTMLResult.success({name:"div",attributes:{style:d,class:["xfaCaption"]},children:h})}}]);return Caption}(u.XFAObject),Y=function(t){_inherits(Certificate,t);var r=_createSuper(Certificate);function Certificate(t){var o;_classCallCheck(this,Certificate);(o=r.call(this,C,"certificate")).id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return Certificate}(u.StringObject),K=function(t){_inherits(Certificates,t);var r=_createSuper(Certificates);function Certificates(t){var o;_classCallCheck(this,Certificates);(o=r.call(this,C,"certificates",!0)).credentialServerPolicy=(0,g.getStringOption)(t.credentialServerPolicy,["optional","required"]);o.id=t.id||"";o.url=t.url||"";o.urlPolicy=t.urlPolicy||"";o.use=t.use||"";o.usehref=t.usehref||"";o.encryption=null;o.issuers=null;o.keyUsage=null;o.oids=null;o.signing=null;o.subjectDNs=null;return o}return Certificates}(u.XFAObject),J=function(t){_inherits(CheckButton,t);var r=_createSuper(CheckButton);function CheckButton(t){var o;_classCallCheck(this,CheckButton);(o=r.call(this,C,"checkButton",!0)).id=t.id||"";o.mark=(0,g.getStringOption)(t.mark,["default","check","circle","cross","diamond","square","star"]);o.shape=(0,g.getStringOption)(t.shape,["square","round"]);o.size=(0,g.getMeasurement)(t.size,"10pt");o.use=t.use||"";o.usehref=t.usehref||"";o.border=null;o.extras=null;o.margin=null;return o}_createClass(CheckButton,[{key:u.$toHTML,value:function value(t){var r,o,l,c=(0,m.toStyle)("margin"),h=(0,m.measureToString)(this.size);c.width=c.height=h;var d,y=this[u.$getParent]()[u.$getParent](),v=y.items.children.length&&y.items.children[0][u.$toHTML]().html||[],S={on:(void 0!==v[0]?v[0]:"on").toString(),off:(void 0!==v[1]?v[1]:"off").toString()},value=y.value&&y.value[u.$text]()||"off",_=value===S.on||void 0,k=y[u.$getSubformParent](),C=y[u.$uid];if(k instanceof we){l=k[u.$uid];r="radio";o="xfaRadio";d=k[u.$data]&&k[u.$data][u.$uid]||k[u.$uid]}else{r="checkbox";o="xfaCheckbox";d=y[u.$data]&&y[u.$data][u.$uid]||y[u.$uid]}var w={name:"input",attributes:{class:[o],style:c,fieldId:C,dataId:d,type:r,checked:_,xfaOn:S.on,xfaOff:S.off,"aria-label":ariaLabel(y)}};l&&(w.attributes.name=l);return g.HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[w]})}}]);return CheckButton}(u.XFAObject),Q=function(t){_inherits(ChoiceList,t);var r=_createSuper(ChoiceList);function ChoiceList(t){var o;_classCallCheck(this,ChoiceList);(o=r.call(this,C,"choiceList",!0)).commitOn=(0,g.getStringOption)(t.commitOn,["select","exit"]);o.id=t.id||"";o.open=(0,g.getStringOption)(t.open,["userControl","always","multiSelect","onEntry"]);o.textEntry=(0,g.getInteger)({data:t.textEntry,defaultValue:0,validate:function validate(t){return 1===t}});o.use=t.use||"";o.usehref=t.usehref||"";o.border=null;o.extras=null;o.margin=null;return o}_createClass(ChoiceList,[{key:u.$toHTML,value:function value(t){var r=(0,m.toStyle)(this,"border","margin"),o=this[u.$getParent]()[u.$getParent](),l=o.font&&o.font.size||10,c={fontSize:"calc(".concat(l,"px * var(--zoom-factor))")},h=[];if(o.items.children.length>0){var d=o.items,y=0,v=0;2===d.children.length&&(v=1-(y=d.children[0].save));for(var S=d.children[y][u.$toHTML]().html,_=d.children[v][u.$toHTML]().html,k=!1,C=o.value&&o.value[u.$text]()||"",w=0,x=S.length;w<x;w++){var O={name:"option",attributes:{value:_[w]||S[w],style:c},value:S[w]};_[w]===C&&(O.attributes.selected=k=!0);h.push(O)}k||h.splice(0,0,{name:"option",attributes:{hidden:!0,selected:!0},value:" "})}var T={class:["xfaSelect"],fieldId:o[u.$uid],dataId:o[u.$data]&&o[u.$data][u.$uid]||o[u.$uid],style:r,"aria-label":ariaLabel(o)};"multiSelect"===this.open&&(T.multiple=!0);return g.HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[{name:"select",children:h,attributes:T}]})}}]);return ChoiceList}(u.XFAObject),Z=function(t){_inherits(Color,t);var r=_createSuper(Color);function Color(t){var o;_classCallCheck(this,Color);(o=r.call(this,C,"color",!0)).cSpace=(0,g.getStringOption)(t.cSpace,["SRGB"]);o.id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";o.value=t.value?(0,g.getColor)(t.value):"";o.extras=null;return o}_createClass(Color,[{key:u.$hasSettableValue,value:function value(){return!1}},{key:u.$toStyle,value:function value(){return this.value?y.Util.makeHexColor(this.value.r,this.value.g,this.value.b):null}}]);return Color}(u.XFAObject),ee=function(t){_inherits(Comb,t);var r=_createSuper(Comb);function Comb(t){var o;_classCallCheck(this,Comb);(o=r.call(this,C,"comb")).id=t.id||"";o.numberOfCells=(0,g.getInteger)({data:t.numberOfCells,defaultValue:0,validate:function validate(t){return t>=0}});o.use=t.use||"";o.usehref=t.usehref||"";return o}return Comb}(u.XFAObject),te=function(t){_inherits(Connect,t);var r=_createSuper(Connect);function Connect(t){var o;_classCallCheck(this,Connect);(o=r.call(this,C,"connect",!0)).connection=t.connection||"";o.id=t.id||"";o.ref=t.ref||"";o.usage=(0,g.getStringOption)(t.usage,["exportAndImport","exportOnly","importOnly"]);o.use=t.use||"";o.usehref=t.usehref||"";o.picture=null;return o}return Connect}(u.XFAObject),re=function(t){_inherits(ContentArea,t);var r=_createSuper(ContentArea);function ContentArea(t){var o;_classCallCheck(this,ContentArea);(o=r.call(this,C,"contentArea",!0)).h=(0,g.getMeasurement)(t.h);o.id=t.id||"";o.name=t.name||"";o.relevant=(0,g.getRelevant)(t.relevant);o.use=t.use||"";o.usehref=t.usehref||"";o.w=(0,g.getMeasurement)(t.w);o.x=(0,g.getMeasurement)(t.x,"0pt");o.y=(0,g.getMeasurement)(t.y,"0pt");o.desc=null;o.extras=null;return o}_createClass(ContentArea,[{key:u.$toHTML,value:function value(t){var r={left:(0,m.measureToString)(this.x),top:(0,m.measureToString)(this.y),width:(0,m.measureToString)(this.w),height:(0,m.measureToString)(this.h)},o=["xfaContentarea"];(0,m.isPrintOnly)(this)&&o.push("xfaPrintOnly");return g.HTMLResult.success({name:"div",children:[],attributes:{style:r,class:o,id:this[u.$uid]}})}}]);return ContentArea}(u.XFAObject),ae=function(t){_inherits(Corner,t);var r=_createSuper(Corner);function Corner(t){var o;_classCallCheck(this,Corner);(o=r.call(this,C,"corner",!0)).id=t.id||"";o.inverted=(0,g.getInteger)({data:t.inverted,defaultValue:0,validate:function validate(t){return 1===t}});o.join=(0,g.getStringOption)(t.join,["square","round"]);o.presence=(0,g.getStringOption)(t.presence,["visible","hidden","inactive","invisible"]);o.radius=(0,g.getMeasurement)(t.radius);o.stroke=(0,g.getStringOption)(t.stroke,["solid","dashDot","dashDotDot","dashed","dotted","embossed","etched","lowered","raised"]);o.thickness=(0,g.getMeasurement)(t.thickness,"0.5pt");o.use=t.use||"";o.usehref=t.usehref||"";o.color=null;o.extras=null;return o}_createClass(Corner,[{key:u.$toStyle,value:function value(){var t=(0,m.toStyle)(this,"visibility");t.radius=(0,m.measureToString)("square"===this.join?0:this.radius);return t}}]);return Corner}(u.XFAObject),ne=function(t){_inherits(DateElement,t);var r=_createSuper(DateElement);function DateElement(t){var o;_classCallCheck(this,DateElement);(o=r.call(this,C,"date")).id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}_createClass(DateElement,[{key:u.$finalize,value:function value(){var t=this[u.$content].trim();this[u.$content]=t?new Date(t):null}},{key:u.$toHTML,value:function value(t){return valueToHtml(this[u.$content]?this[u.$content].toString():"")}}]);return DateElement}(u.ContentObject),ie=function(t){_inherits(DateTime,t);var r=_createSuper(DateTime);function DateTime(t){var o;_classCallCheck(this,DateTime);(o=r.call(this,C,"dateTime")).id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}_createClass(DateTime,[{key:u.$finalize,value:function value(){var t=this[u.$content].trim();this[u.$content]=t?new Date(t):null}},{key:u.$toHTML,value:function value(t){return valueToHtml(this[u.$content]?this[u.$content].toString():"")}}]);return DateTime}(u.ContentObject),oe=function(t){_inherits(DateTimeEdit,t);var r=_createSuper(DateTimeEdit);function DateTimeEdit(t){var o;_classCallCheck(this,DateTimeEdit);(o=r.call(this,C,"dateTimeEdit",!0)).hScrollPolicy=(0,g.getStringOption)(t.hScrollPolicy,["auto","off","on"]);o.id=t.id||"";o.picker=(0,g.getStringOption)(t.picker,["host","none"]);o.use=t.use||"";o.usehref=t.usehref||"";o.border=null;o.comb=null;o.extras=null;o.margin=null;return o}_createClass(DateTimeEdit,[{key:u.$toHTML,value:function value(t){var r=(0,m.toStyle)(this,"border","font","margin"),o=this[u.$getParent]()[u.$getParent](),l={name:"input",attributes:{type:"text",fieldId:o[u.$uid],dataId:o[u.$data]&&o[u.$data][u.$uid]||o[u.$uid],class:["xfaTextfield"],style:r,"aria-label":ariaLabel(o)}};return g.HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[l]})}}]);return DateTimeEdit}(u.XFAObject),se=function(t){_inherits(Decimal,t);var r=_createSuper(Decimal);function Decimal(t){var o;_classCallCheck(this,Decimal);(o=r.call(this,C,"decimal")).fracDigits=(0,g.getInteger)({data:t.fracDigits,defaultValue:2,validate:function validate(t){return!0}});o.id=t.id||"";o.leadDigits=(0,g.getInteger)({data:t.leadDigits,defaultValue:-1,validate:function validate(t){return!0}});o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}_createClass(Decimal,[{key:u.$finalize,value:function value(){var t=parseFloat(this[u.$content].trim());this[u.$content]=isNaN(t)?null:t}},{key:u.$toHTML,value:function value(t){return valueToHtml(null!==this[u.$content]?this[u.$content].toString():"")}}]);return Decimal}(u.ContentObject),le=function(t){_inherits(DefaultUi,t);var r=_createSuper(DefaultUi);function DefaultUi(t){var o;_classCallCheck(this,DefaultUi);(o=r.call(this,C,"defaultUi",!0)).id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";o.extras=null;return o}return DefaultUi}(u.XFAObject),ce=function(t){_inherits(Desc,t);var r=_createSuper(Desc);function Desc(t){var o;_classCallCheck(this,Desc);(o=r.call(this,C,"desc",!0)).id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";o.boolean=new u.XFAObjectArray;o.date=new u.XFAObjectArray;o.dateTime=new u.XFAObjectArray;o.decimal=new u.XFAObjectArray;o.exData=new u.XFAObjectArray;o.float=new u.XFAObjectArray;o.image=new u.XFAObjectArray;o.integer=new u.XFAObjectArray;o.text=new u.XFAObjectArray;o.time=new u.XFAObjectArray;return o}return Desc}(u.XFAObject),ue=function(t){_inherits(DigestMethod,t);var r=_createSuper(DigestMethod);function DigestMethod(t){var o;_classCallCheck(this,DigestMethod);(o=r.call(this,C,"digestMethod",["","SHA1","SHA256","SHA512","RIPEMD160"])).id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return DigestMethod}(u.OptionObject),fe=function(t){_inherits(DigestMethods,t);var r=_createSuper(DigestMethods);function DigestMethods(t){var o;_classCallCheck(this,DigestMethods);(o=r.call(this,C,"digestMethods",!0)).id=t.id||"";o.type=(0,g.getStringOption)(t.type,["optional","required"]);o.use=t.use||"";o.usehref=t.usehref||"";o.digestMethod=new u.XFAObjectArray;return o}return DigestMethods}(u.XFAObject),he=function(t){_inherits(Draw,t);var r=_createSuper(Draw);function Draw(t){var o;_classCallCheck(this,Draw);(o=r.call(this,C,"draw",!0)).anchorType=(0,g.getStringOption)(t.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]);o.colSpan=(0,g.getInteger)({data:t.colSpan,defaultValue:1,validate:function validate(t){return t>=1||-1===t}});o.h=t.h?(0,g.getMeasurement)(t.h):"";o.hAlign=(0,g.getStringOption)(t.hAlign,["left","center","justify","justifyAll","radix","right"]);o.id=t.id||"";o.locale=t.locale||"";o.maxH=(0,g.getMeasurement)(t.maxH,"0pt");o.maxW=(0,g.getMeasurement)(t.maxW,"0pt");o.minH=(0,g.getMeasurement)(t.minH,"0pt");o.minW=(0,g.getMeasurement)(t.minW,"0pt");o.name=t.name||"";o.presence=(0,g.getStringOption)(t.presence,["visible","hidden","inactive","invisible"]);o.relevant=(0,g.getRelevant)(t.relevant);o.rotate=(0,g.getInteger)({data:t.rotate,defaultValue:0,validate:function validate(t){return t%90==0}});o.use=t.use||"";o.usehref=t.usehref||"";o.w=t.w?(0,g.getMeasurement)(t.w):"";o.x=(0,g.getMeasurement)(t.x,"0pt");o.y=(0,g.getMeasurement)(t.y,"0pt");o.assist=null;o.border=null;o.caption=null;o.desc=null;o.extras=null;o.font=null;o.keep=null;o.margin=null;o.para=null;o.traversal=null;o.ui=null;o.value=null;o.setProperty=new u.XFAObjectArray;return o}_createClass(Draw,[{key:u.$setValue,value:function(t){function value(r){return t.apply(this,arguments)}value.toString=function(){return t.toString()};return value}((function(t){_setValue(this,t)}))},{key:u.$toHTML,value:function value(t){setTabIndex(this);if("hidden"===this.presence||"inactive"===this.presence)return g.HTMLResult.EMPTY;(0,m.fixDimensions)(this);this[u.$pushPara]();var r=this.w,o=this.h,l=(0,m.layoutNode)(this,t),c=l.w,h=l.h,y=l.isBroken;if(c&&""===this.w){if(y&&this[u.$getSubformParent]()[u.$isThereMoreWidth]()){this[u.$popPara]();return g.HTMLResult.FAILURE}this.w=c}h&&""===this.h&&(this.h=h);setFirstUnsplittable(this);if(!(0,d.checkDimensions)(this,t)){this.w=r;this.h=o;this[u.$popPara]();return g.HTMLResult.FAILURE}unsetFirstUnsplittable(this);var v=(0,m.toStyle)(this,"font","hAlign","dimensions","position","presence","rotate","anchorType","border","margin");(0,m.setMinMaxDimensions)(this,v);if(v.margin){v.padding=v.margin;delete v.margin}var S=["xfaDraw"];this.font&&S.push("xfaFont");(0,m.isPrintOnly)(this)&&S.push("xfaPrintOnly");var _={style:v,id:this[u.$uid],class:S};this.name&&(_.xfaName=this.name);var k={name:"div",attributes:_,children:[]};applyAssist(this,_);var C=(0,m.computeBbox)(this,k,t),value=this.value?this.value[u.$toHTML](t).html:null;if(null===value){this.w=r;this.h=o;this[u.$popPara]();return g.HTMLResult.success((0,m.createWrapper)(this,k),C)}k.children.push(value);(0,m.setPara)(this,v,value);this.w=r;this.h=o;this[u.$popPara]();return g.HTMLResult.success((0,m.createWrapper)(this,k),C)}}]);return Draw}(u.XFAObject),de=function(t){_inherits(Edge,t);var r=_createSuper(Edge);function Edge(t){var o;_classCallCheck(this,Edge);(o=r.call(this,C,"edge",!0)).cap=(0,g.getStringOption)(t.cap,["square","butt","round"]);o.id=t.id||"";o.presence=(0,g.getStringOption)(t.presence,["visible","hidden","inactive","invisible"]);o.stroke=(0,g.getStringOption)(t.stroke,["solid","dashDot","dashDotDot","dashed","dotted","embossed","etched","lowered","raised"]);o.thickness=(0,g.getMeasurement)(t.thickness,"0.5pt");o.use=t.use||"";o.usehref=t.usehref||"";o.color=null;o.extras=null;return o}_createClass(Edge,[{key:u.$toStyle,value:function value(){var t=(0,m.toStyle)(this,"visibility");Object.assign(t,{linecap:this.cap,width:(0,m.measureToString)(this.thickness),color:this.color?this.color[u.$toStyle]():"#000000",style:""});if("visible"!==this.presence)t.style="none";else switch(this.stroke){case"solid":t.style="solid";break;case"dashDot":case"dashDotDot":case"dashed":t.style="dashed";break;case"dotted":t.style="dotted";break;case"embossed":t.style="ridge";break;case"etched":t.style="groove";break;case"lowered":t.style="inset";break;case"raised":t.style="outset"}return t}}]);return Edge}(u.XFAObject),pe=function(t){_inherits(Encoding,t);var r=_createSuper(Encoding);function Encoding(t){var o;_classCallCheck(this,Encoding);(o=r.call(this,C,"encoding",["adbe.x509.rsa_sha1","adbe.pkcs7.detached","adbe.pkcs7.sha1"])).id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return Encoding}(u.OptionObject),me=function(t){_inherits(Encodings,t);var r=_createSuper(Encodings);function Encodings(t){var o;_classCallCheck(this,Encodings);(o=r.call(this,C,"encodings",!0)).id=t.id||"";o.type=(0,g.getStringOption)(t.type,["optional","required"]);o.use=t.use||"";o.usehref=t.usehref||"";o.encoding=new u.XFAObjectArray;return o}return Encodings}(u.XFAObject),ge=function(t){_inherits(Encrypt,t);var r=_createSuper(Encrypt);function Encrypt(t){var o;_classCallCheck(this,Encrypt);(o=r.call(this,C,"encrypt",!0)).id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";o.certificate=null;return o}return Encrypt}(u.XFAObject),ye=function(t){_inherits(EncryptData,t);var r=_createSuper(EncryptData);function EncryptData(t){var o;_classCallCheck(this,EncryptData);(o=r.call(this,C,"encryptData",!0)).id=t.id||"";o.operation=(0,g.getStringOption)(t.operation,["encrypt","decrypt"]);o.target=t.target||"";o.use=t.use||"";o.usehref=t.usehref||"";o.filter=null;o.manifest=null;return o}return EncryptData}(u.XFAObject),ve=function(t){_inherits(Encryption,t);var r=_createSuper(Encryption);function Encryption(t){var o;_classCallCheck(this,Encryption);(o=r.call(this,C,"encryption",!0)).id=t.id||"";o.type=(0,g.getStringOption)(t.type,["optional","required"]);o.use=t.use||"";o.usehref=t.usehref||"";o.certificate=new u.XFAObjectArray;return o}return Encryption}(u.XFAObject),be=function(t){_inherits(EncryptionMethod,t);var r=_createSuper(EncryptionMethod);function EncryptionMethod(t){var o;_classCallCheck(this,EncryptionMethod);(o=r.call(this,C,"encryptionMethod",["","AES256-CBC","TRIPLEDES-CBC","AES128-CBC","AES192-CBC"])).id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return EncryptionMethod}(u.OptionObject),Se=function(t){_inherits(EncryptionMethods,t);var r=_createSuper(EncryptionMethods);function EncryptionMethods(t){var o;_classCallCheck(this,EncryptionMethods);(o=r.call(this,C,"encryptionMethods",!0)).id=t.id||"";o.type=(0,g.getStringOption)(t.type,["optional","required"]);o.use=t.use||"";o.usehref=t.usehref||"";o.encryptionMethod=new u.XFAObjectArray;return o}return EncryptionMethods}(u.XFAObject),_e=function(t){_inherits(Event,t);var r=_createSuper(Event);function Event(t){var o;_classCallCheck(this,Event);(o=r.call(this,C,"event",!0)).activity=(0,g.getStringOption)(t.activity,["click","change","docClose","docReady","enter","exit","full","indexChange","initialize","mouseDown","mouseEnter","mouseExit","mouseUp","postExecute","postOpen","postPrint","postSave","postSign","postSubmit","preExecute","preOpen","prePrint","preSave","preSign","preSubmit","ready","validationState"]);o.id=t.id||"";o.listen=(0,g.getStringOption)(t.listen,["refOnly","refAndDescendents"]);o.name=t.name||"";o.ref=t.ref||"";o.use=t.use||"";o.usehref=t.usehref||"";o.extras=null;o.encryptData=null;o.execute=null;o.script=null;o.signData=null;o.submit=null;return o}return Event}(u.XFAObject),ke=function(t){_inherits(ExData,t);var r=_createSuper(ExData);function ExData(t){var o;_classCallCheck(this,ExData);(o=r.call(this,C,"exData")).contentType=t.contentType||"";o.href=t.href||"";o.id=t.id||"";o.maxLength=(0,g.getInteger)({data:t.maxLength,defaultValue:-1,validate:function validate(t){return t>=-1}});o.name=t.name||"";o.rid=t.rid||"";o.transferEncoding=(0,g.getStringOption)(t.transferEncoding,["none","base64","package"]);o.use=t.use||"";o.usehref=t.usehref||"";return o}_createClass(ExData,[{key:u.$isCDATAXml,value:function value(){return"text/html"===this.contentType}},{key:u.$onChild,value:function value(t){if("text/html"===this.contentType&&t[u.$namespaceId]===h.NamespaceIds.xhtml.id){this[u.$content]=t;return!0}if("text/xml"===this.contentType){this[u.$content]=t;return!0}return!1}},{key:u.$toHTML,value:function value(t){return"text/html"===this.contentType&&this[u.$content]?this[u.$content][u.$toHTML](t):g.HTMLResult.EMPTY}}]);return ExData}(u.ContentObject),Ce=function(t){_inherits(ExObject,t);var r=_createSuper(ExObject);function ExObject(t){var o;_classCallCheck(this,ExObject);(o=r.call(this,C,"exObject",!0)).archive=t.archive||"";o.classId=t.classId||"";o.codeBase=t.codeBase||"";o.codeType=t.codeType||"";o.id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";o.extras=null;o.boolean=new u.XFAObjectArray;o.date=new u.XFAObjectArray;o.dateTime=new u.XFAObjectArray;o.decimal=new u.XFAObjectArray;o.exData=new u.XFAObjectArray;o.exObject=new u.XFAObjectArray;o.float=new u.XFAObjectArray;o.image=new u.XFAObjectArray;o.integer=new u.XFAObjectArray;o.text=new u.XFAObjectArray;o.time=new u.XFAObjectArray;return o}return ExObject}(u.XFAObject),we=function(t){_inherits(ExclGroup,t);var r=_createSuper(ExclGroup);function ExclGroup(t){var o;_classCallCheck(this,ExclGroup);(o=r.call(this,C,"exclGroup",!0)).access=(0,g.getStringOption)(t.access,["open","nonInteractive","protected","readOnly"]);o.accessKey=t.accessKey||"";o.anchorType=(0,g.getStringOption)(t.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]);o.colSpan=(0,g.getInteger)({data:t.colSpan,defaultValue:1,validate:function validate(t){return t>=1||-1===t}});o.h=t.h?(0,g.getMeasurement)(t.h):"";o.hAlign=(0,g.getStringOption)(t.hAlign,["left","center","justify","justifyAll","radix","right"]);o.id=t.id||"";o.layout=(0,g.getStringOption)(t.layout,["position","lr-tb","rl-row","rl-tb","row","table","tb"]);o.maxH=(0,g.getMeasurement)(t.maxH,"0pt");o.maxW=(0,g.getMeasurement)(t.maxW,"0pt");o.minH=(0,g.getMeasurement)(t.minH,"0pt");o.minW=(0,g.getMeasurement)(t.minW,"0pt");o.name=t.name||"";o.presence=(0,g.getStringOption)(t.presence,["visible","hidden","inactive","invisible"]);o.relevant=(0,g.getRelevant)(t.relevant);o.use=t.use||"";o.usehref=t.usehref||"";o.w=t.w?(0,g.getMeasurement)(t.w):"";o.x=(0,g.getMeasurement)(t.x,"0pt");o.y=(0,g.getMeasurement)(t.y,"0pt");o.assist=null;o.bind=null;o.border=null;o.calculate=null;o.caption=null;o.desc=null;o.extras=null;o.margin=null;o.para=null;o.traversal=null;o.validate=null;o.connect=new u.XFAObjectArray;o.event=new u.XFAObjectArray;o.field=new u.XFAObjectArray;o.setProperty=new u.XFAObjectArray;return o}_createClass(ExclGroup,[{key:u.$isBindable,value:function value(){return!0}},{key:u.$hasSettableValue,value:function value(){return!0}},{key:u.$setValue,value:function(t){function value(r){return t.apply(this,arguments)}value.toString=function(){return t.toString()};return value}((function(t){var r,o=_createForOfIteratorHelper(this.field.children);try{for(o.s();!(r=o.n()).done;){var l=r.value;if(!l.value){var c=new jt({});l[u.$appendChild](c);l.value=c}l.value[u.$setValue](t)}}catch(t){o.e(t)}finally{o.f()}}))},{key:u.$isThereMoreWidth,value:function value(){return this.layout.endsWith("-tb")&&0===this[u.$extra].attempt&&this[u.$extra].numberInLine>0||this[u.$getParent]()[u.$isThereMoreWidth]()}},{key:u.$isSplittable,value:function value(){var t=this[u.$getSubformParent]();if(!t[u.$isSplittable]())return!1;if(void 0!==this[u.$extra]._isSplittable)return this[u.$extra]._isSplittable;if("position"===this.layout||this.layout.includes("row")){this[u.$extra]._isSplittable=!1;return!1}if(t.layout&&t.layout.endsWith("-tb")&&0!==t[u.$extra].numberInLine)return!1;this[u.$extra]._isSplittable=!0;return!0}},{key:u.$flushHTML,value:function value(){return(0,d.flushHTML)(this)}},{key:u.$addHTML,value:function value(t,r){(0,d.addHTML)(this,t,r)}},{key:u.$getAvailableSpace,value:function value(){return(0,d.getAvailableSpace)(this)}},{key:u.$toHTML,value:function value(t){setTabIndex(this);if("hidden"===this.presence||"inactive"===this.presence||0===this.h||0===this.w)return g.HTMLResult.EMPTY;(0,m.fixDimensions)(this);var r=[],o={id:this[u.$uid],class:[]};(0,m.setAccess)(this,o.class);this[u.$extra]||(this[u.$extra]=Object.create(null));Object.assign(this[u.$extra],{children:r,attributes:o,attempt:0,line:null,numberInLine:0,availableSpace:{width:Math.min(this.w||1/0,t.width),height:Math.min(this.h||1/0,t.height)},width:0,height:0,prevHeight:0,currentWidth:0});var l=this[u.$isSplittable]();l||setFirstUnsplittable(this);if(!(0,d.checkDimensions)(this,t))return g.HTMLResult.FAILURE;var c=new Set(["field"]);if(this.layout.includes("row")){var h=this[u.$getSubformParent]().columnWidths;if(Array.isArray(h)&&h.length>0){this[u.$extra].columnWidths=h;this[u.$extra].currentColumn=0}}var y=(0,m.toStyle)(this,"anchorType","dimensions","position","presence","border","margin","hAlign"),v=["xfaExclgroup"],S=(0,m.layoutClass)(this);S&&v.push(S);(0,m.isPrintOnly)(this)&&v.push("xfaPrintOnly");o.style=y;o.class=v;this.name&&(o.xfaName=this.name);this[u.$pushPara]();for(var _="lr-tb"===this.layout||"rl-tb"===this.layout,k=_?2:1;this[u.$extra].attempt<k;this[u.$extra].attempt++){_&&1===this[u.$extra].attempt&&(this[u.$extra].numberInLine=0);var C=this[u.$childrenToHTML]({filter:c,include:!0});if(C.success)break;if(C.isBreak()){this[u.$popPara]();return C}if(_&&0===this[u.$extra].attempt&&0===this[u.$extra].numberInLine&&!this[u.$getTemplateRoot]()[u.$extra].noLayoutFailure){this[u.$extra].attempt=k;break}}this[u.$popPara]();l||unsetFirstUnsplittable(this);if(this[u.$extra].attempt===k){l||delete this[u.$extra];return g.HTMLResult.FAILURE}var w=0,x=0;if(this.margin){w=this.margin.leftInset+this.margin.rightInset;x=this.margin.topInset+this.margin.bottomInset}var O=Math.max(this[u.$extra].width+w,this.w||0),T=Math.max(this[u.$extra].height+x,this.h||0),R=[this.x,this.y,O,T];""===this.w&&(y.width=(0,m.measureToString)(O));""===this.h&&(y.height=(0,m.measureToString)(T));var E={name:"div",attributes:o,children:r};applyAssist(this,o);delete this[u.$extra];return g.HTMLResult.success((0,m.createWrapper)(this,E),R)}}]);return ExclGroup}(u.XFAObject),Ae=function(t){_inherits(Execute,t);var r=_createSuper(Execute);function Execute(t){var o;_classCallCheck(this,Execute);(o=r.call(this,C,"execute")).connection=t.connection||"";o.executeType=(0,g.getStringOption)(t.executeType,["import","remerge"]);o.id=t.id||"";o.runAt=(0,g.getStringOption)(t.runAt,["client","both","server"]);o.use=t.use||"";o.usehref=t.usehref||"";return o}return Execute}(u.XFAObject),xe=function(t){_inherits(Extras,t);var r=_createSuper(Extras);function Extras(t){var o;_classCallCheck(this,Extras);(o=r.call(this,C,"extras",!0)).id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";o.boolean=new u.XFAObjectArray;o.date=new u.XFAObjectArray;o.dateTime=new u.XFAObjectArray;o.decimal=new u.XFAObjectArray;o.exData=new u.XFAObjectArray;o.extras=new u.XFAObjectArray;o.float=new u.XFAObjectArray;o.image=new u.XFAObjectArray;o.integer=new u.XFAObjectArray;o.text=new u.XFAObjectArray;o.time=new u.XFAObjectArray;return o}return Extras}(u.XFAObject),Oe=function(t){_inherits(Field,t);var r=_createSuper(Field);function Field(t){var o;_classCallCheck(this,Field);(o=r.call(this,C,"field",!0)).access=(0,g.getStringOption)(t.access,["open","nonInteractive","protected","readOnly"]);o.accessKey=t.accessKey||"";o.anchorType=(0,g.getStringOption)(t.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]);o.colSpan=(0,g.getInteger)({data:t.colSpan,defaultValue:1,validate:function validate(t){return t>=1||-1===t}});o.h=t.h?(0,g.getMeasurement)(t.h):"";o.hAlign=(0,g.getStringOption)(t.hAlign,["left","center","justify","justifyAll","radix","right"]);o.id=t.id||"";o.locale=t.locale||"";o.maxH=(0,g.getMeasurement)(t.maxH,"0pt");o.maxW=(0,g.getMeasurement)(t.maxW,"0pt");o.minH=(0,g.getMeasurement)(t.minH,"0pt");o.minW=(0,g.getMeasurement)(t.minW,"0pt");o.name=t.name||"";o.presence=(0,g.getStringOption)(t.presence,["visible","hidden","inactive","invisible"]);o.relevant=(0,g.getRelevant)(t.relevant);o.rotate=(0,g.getInteger)({data:t.rotate,defaultValue:0,validate:function validate(t){return t%90==0}});o.use=t.use||"";o.usehref=t.usehref||"";o.w=t.w?(0,g.getMeasurement)(t.w):"";o.x=(0,g.getMeasurement)(t.x,"0pt");o.y=(0,g.getMeasurement)(t.y,"0pt");o.assist=null;o.bind=null;o.border=null;o.calculate=null;o.caption=null;o.desc=null;o.extras=null;o.font=null;o.format=null;o.items=new u.XFAObjectArray(2);o.keep=null;o.margin=null;o.para=null;o.traversal=null;o.ui=null;o.validate=null;o.value=null;o.bindItems=new u.XFAObjectArray;o.connect=new u.XFAObjectArray;o.event=new u.XFAObjectArray;o.setProperty=new u.XFAObjectArray;return o}_createClass(Field,[{key:u.$isBindable,value:function value(){return!0}},{key:u.$setValue,value:function(t){function value(r){return t.apply(this,arguments)}value.toString=function(){return t.toString()};return value}((function(t){_setValue(this,t)}))},{key:u.$toHTML,value:function value(t){setTabIndex(this);if(!this.ui){this.ui=new Bt({});this.ui[u.$globalData]=this[u.$globalData];this[u.$appendChild](this.ui);var r;switch(this.items.children.length){case 0:r=new Tt({});this.ui.textEdit=r;break;case 1:r=new J({});this.ui.checkButton=r;break;case 2:r=new Q({});this.ui.choiceList=r}this.ui[u.$appendChild](r)}if(!this.ui||"hidden"===this.presence||"inactive"===this.presence||0===this.h||0===this.w)return g.HTMLResult.EMPTY;this.caption&&delete this.caption[u.$extra];this[u.$pushPara]();var o=this.caption?this.caption[u.$toHTML](t).html:null,l=this.w,c=this.h,h=0,y=0;if(this.margin){h=this.margin.leftInset+this.margin.rightInset;y=this.margin.topInset+this.margin.bottomInset}var S=null;if(""===this.w||""===this.h){var _=null,k=null,C=0,w=0;if(this.ui.checkButton)C=w=this.ui.checkButton.size;else{var x=(0,m.layoutNode)(this,t),O=x.w,T=x.h;if(null!==O){C=O;w=T}else w=(0,v.getMetrics)(this.font,!0).lineNoGap}C+=(S=getBorderDims(this.ui[u.$getExtra]())).w;w+=S.h;if(this.caption){var R=this.caption[u.$getExtra](t),E=R.w,M=R.h;if(R.isBroken&&this[u.$getSubformParent]()[u.$isThereMoreWidth]()){this[u.$popPara]();return g.HTMLResult.FAILURE}_=E;k=M;switch(this.caption.placement){case"left":case"right":case"inline":_+=C;break;case"top":case"bottom":k+=w}}else{_=C;k=w}if(_&&""===this.w){_+=h;this.w=Math.min(this.maxW<=0?1/0:this.maxW,this.minW+1<_?_:this.minW)}if(k&&""===this.h){k+=y;this.h=Math.min(this.maxH<=0?1/0:this.maxH,this.minH+1<k?k:this.minH)}}this[u.$popPara]();(0,m.fixDimensions)(this);setFirstUnsplittable(this);if(!(0,d.checkDimensions)(this,t)){this.w=l;this.h=c;this[u.$popPara]();return g.HTMLResult.FAILURE}unsetFirstUnsplittable(this);var D=(0,m.toStyle)(this,"font","dimensions","position","rotate","anchorType","presence","margin","hAlign");(0,m.setMinMaxDimensions)(this,D);var j=["xfaField"];this.font&&j.push("xfaFont");(0,m.isPrintOnly)(this)&&j.push("xfaPrintOnly");var L={style:D,id:this[u.$uid],class:j};if(D.margin){D.padding=D.margin;delete D.margin}(0,m.setAccess)(this,j);this.name&&(L.xfaName=this.name);var N=[],U={name:"div",attributes:L,children:N};applyAssist(this,L);var H=this.border?this.border[u.$toStyle]():null,W=(0,m.computeBbox)(this,U,t),$=this.ui[u.$toHTML]().html;if(!$){Object.assign(D,H);return g.HTMLResult.success((0,m.createWrapper)(this,U),W)}this[u.$tabIndex]&&($.children&&$.children[0]?$.children[0].attributes.tabindex=this[u.$tabIndex]:$.attributes.tabindex=this[u.$tabIndex]);$.attributes.style||($.attributes.style=Object.create(null));var q=null;if(this.ui.button){if(1===$.children.length){q=_slicedToArray($.children.splice(0,1),1)[0]}Object.assign($.attributes.style,H)}else Object.assign(D,H);N.push($);if(this.value)if(this.ui.imageEdit)$.children.push(this.value[u.$toHTML]().html);else if(!this.ui.button){var X="";if(this.value.exData)X=this.value.exData[u.$text]();else if(this.value.text)X=this.value.text[u.$getExtra]();else{var z=this.value[u.$toHTML]().html;null!==z&&(X=z.children[0].value)}this.ui.textEdit&&this.value.text&&this.value.text.maxChars&&($.children[0].attributes.maxLength=this.value.text.maxChars);if(X){if(this.ui.numericEdit){X=parseFloat(X);X=isNaN(X)?"":X.toString()}"textarea"===$.children[0].name?$.children[0].attributes.textContent=X:$.children[0].attributes.value=X}}if(!this.ui.imageEdit&&$.children&&$.children[0]&&this.h){S=S||getBorderDims(this.ui[u.$getExtra]());var G=0;if(this.caption&&["top","bottom"].includes(this.caption.placement)){(G=this.caption.reserve)<=0&&(G=this.caption[u.$getExtra](t).h);var V=this.h-G-y-S.h;$.children[0].attributes.style.height=(0,m.measureToString)(V)}else $.children[0].attributes.style.height="100%"}q&&$.children.push(q);if(!o){$.attributes.class&&$.attributes.class.push("xfaLeft");this.w=l;this.h=c;return g.HTMLResult.success((0,m.createWrapper)(this,U),W)}if(this.ui.button){D.padding&&delete D.padding;"div"===o.name&&(o.name="span");$.children.push(o);return g.HTMLResult.success(U,W)}this.ui.checkButton&&(o.attributes.class[0]="xfaCaptionForCheckButton");$.attributes.class||($.attributes.class=[]);$.children.splice(0,0,o);switch(this.caption.placement){case"left":$.attributes.class.push("xfaLeft");break;case"right":$.attributes.class.push("xfaRight");break;case"top":$.attributes.class.push("xfaTop");break;case"bottom":$.attributes.class.push("xfaBottom");break;case"inline":$.attributes.class.push("xfaLeft")}this.w=l;this.h=c;return g.HTMLResult.success((0,m.createWrapper)(this,U),W)}}]);return Field}(u.XFAObject);r.Field=Oe;var Pe=function(t){_inherits(Fill,t);var r=_createSuper(Fill);function Fill(t){var o;_classCallCheck(this,Fill);(o=r.call(this,C,"fill",!0)).id=t.id||"";o.presence=(0,g.getStringOption)(t.presence,["visible","hidden","inactive","invisible"]);o.use=t.use||"";o.usehref=t.usehref||"";o.color=null;o.extras=null;o.linear=null;o.pattern=null;o.radial=null;o.solid=null;o.stipple=null;return o}_createClass(Fill,[{key:u.$toStyle,value:function value(){var t=this[u.$getParent](),r=t[u.$getParent]()[u.$getParent](),o=Object.create(null),l="color",c=l;if(t instanceof W){l="background-color";c="background";r instanceof Bt&&(o.backgroundColor="white")}if(t instanceof ft||t instanceof E){l=c="fill";o.fill="white"}var h,d=_createForOfIteratorHelper(Object.getOwnPropertyNames(this));try{for(d.s();!(h=d.n()).done;){var m=h.value;if("extras"!==m&&"color"!==m){var g=this[m];if(g instanceof u.XFAObject){var y=g[u.$toStyle](this.color);y&&(o[y.startsWith("#")?l:c]=y);return o}}}}catch(t){d.e(t)}finally{d.f()}if(this.color&&this.color.value){var v=this.color[u.$toStyle]();o[v.startsWith("#")?l:c]=v}return o}}]);return Fill}(u.XFAObject),Te=function(t){_inherits(Filter,t);var r=_createSuper(Filter);function Filter(t){var o;_classCallCheck(this,Filter);(o=r.call(this,C,"filter",!0)).addRevocationInfo=(0,g.getStringOption)(t.addRevocationInfo,["","required","optional","none"]);o.id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";o.version=(0,g.getInteger)({data:o.version,defaultValue:5,validate:function validate(t){return t>=1&&t<=5}});o.appearanceFilter=null;o.certificates=null;o.digestMethods=null;o.encodings=null;o.encryptionMethods=null;o.handler=null;o.lockDocument=null;o.mdp=null;o.reasons=null;o.timeStamp=null;return o}return Filter}(u.XFAObject),Ie=function(t){_inherits(Float,t);var r=_createSuper(Float);function Float(t){var o;_classCallCheck(this,Float);(o=r.call(this,C,"float")).id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}_createClass(Float,[{key:u.$finalize,value:function value(){var t=parseFloat(this[u.$content].trim());this[u.$content]=isNaN(t)?null:t}},{key:u.$toHTML,value:function value(t){return valueToHtml(null!==this[u.$content]?this[u.$content].toString():"")}}]);return Float}(u.ContentObject),Fe=function(t){_inherits(Font,t);var r=_createSuper(Font);function Font(t){var o;_classCallCheck(this,Font);(o=r.call(this,C,"font",!0)).baselineShift=(0,g.getMeasurement)(t.baselineShift);o.fontHorizontalScale=(0,g.getFloat)({data:t.fontHorizontalScale,defaultValue:100,validate:function validate(t){return t>=0}});o.fontVerticalScale=(0,g.getFloat)({data:t.fontVerticalScale,defaultValue:100,validate:function validate(t){return t>=0}});o.id=t.id||"";o.kerningMode=(0,g.getStringOption)(t.kerningMode,["none","pair"]);o.letterSpacing=(0,g.getMeasurement)(t.letterSpacing,"0");o.lineThrough=(0,g.getInteger)({data:t.lineThrough,defaultValue:0,validate:function validate(t){return 1===t||2===t}});o.lineThroughPeriod=(0,g.getStringOption)(t.lineThroughPeriod,["all","word"]);o.overline=(0,g.getInteger)({data:t.overline,defaultValue:0,validate:function validate(t){return 1===t||2===t}});o.overlinePeriod=(0,g.getStringOption)(t.overlinePeriod,["all","word"]);o.posture=(0,g.getStringOption)(t.posture,["normal","italic"]);o.size=(0,g.getMeasurement)(t.size,"10pt");o.typeface=t.typeface||"Courier";o.underline=(0,g.getInteger)({data:t.underline,defaultValue:0,validate:function validate(t){return 1===t||2===t}});o.underlinePeriod=(0,g.getStringOption)(t.underlinePeriod,["all","word"]);o.use=t.use||"";o.usehref=t.usehref||"";o.weight=(0,g.getStringOption)(t.weight,["normal","bold"]);o.extras=null;o.fill=null;return o}_createClass(Font,[{key:u.$clean,value:function value(t){_get(_getPrototypeOf(Font.prototype),u.$clean,this).call(this,t);this[u.$globalData].usedTypefaces.add(this.typeface)}},{key:u.$toStyle,value:function value(){var t=(0,m.toStyle)(this,"fill"),r=t.color;if(r)if("#000000"===r)delete t.color;else if(!r.startsWith("#")){t.background=r;t.backgroundClip="text";t.color="transparent"}this.baselineShift&&(t.verticalAlign=(0,m.measureToString)(this.baselineShift));t.fontKerning="none"===this.kerningMode?"none":"normal";t.letterSpacing=(0,m.measureToString)(this.letterSpacing);if(0!==this.lineThrough){t.textDecoration="line-through";2===this.lineThrough&&(t.textDecorationStyle="double")}if(0!==this.overline){t.textDecoration="overline";2===this.overline&&(t.textDecorationStyle="double")}t.fontStyle=this.posture;t.fontSize=(0,m.measureToString)(.99*this.size);(0,m.setFontFamily)(this,this,this[u.$globalData].fontFinder,t);if(0!==this.underline){t.textDecoration="underline";2===this.underline&&(t.textDecorationStyle="double")}t.fontWeight=this.weight;return t}}]);return Font}(u.XFAObject),Re=function(t){_inherits(Format,t);var r=_createSuper(Format);function Format(t){var o;_classCallCheck(this,Format);(o=r.call(this,C,"format",!0)).id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";o.extras=null;o.picture=null;return o}return Format}(u.XFAObject),Ee=function(t){_inherits(Handler,t);var r=_createSuper(Handler);function Handler(t){var o;_classCallCheck(this,Handler);(o=r.call(this,C,"handler")).id=t.id||"";o.type=(0,g.getStringOption)(t.type,["optional","required"]);o.use=t.use||"";o.usehref=t.usehref||"";return o}return Handler}(u.StringObject),Me=function(t){_inherits(Hyphenation,t);var r=_createSuper(Hyphenation);function Hyphenation(t){var o;_classCallCheck(this,Hyphenation);(o=r.call(this,C,"hyphenation")).excludeAllCaps=(0,g.getInteger)({data:t.excludeAllCaps,defaultValue:0,validate:function validate(t){return 1===t}});o.excludeInitialCap=(0,g.getInteger)({data:t.excludeInitialCap,defaultValue:0,validate:function validate(t){return 1===t}});o.hyphenate=(0,g.getInteger)({data:t.hyphenate,defaultValue:0,validate:function validate(t){return 1===t}});o.id=t.id||"";o.pushCharacterCount=(0,g.getInteger)({data:t.pushCharacterCount,defaultValue:3,validate:function validate(t){return t>=0}});o.remainCharacterCount=(0,g.getInteger)({data:t.remainCharacterCount,defaultValue:3,validate:function validate(t){return t>=0}});o.use=t.use||"";o.usehref=t.usehref||"";o.wordCharacterCount=(0,g.getInteger)({data:t.wordCharacterCount,defaultValue:7,validate:function validate(t){return t>=0}});return o}return Hyphenation}(u.XFAObject),Be=function(t){_inherits(Image,t);var r=_createSuper(Image);function Image(t){var o;_classCallCheck(this,Image);(o=r.call(this,C,"image")).aspect=(0,g.getStringOption)(t.aspect,["fit","actual","height","none","width"]);o.contentType=t.contentType||"";o.href=t.href||"";o.id=t.id||"";o.name=t.name||"";o.transferEncoding=(0,g.getStringOption)(t.transferEncoding,["base64","none","package"]);o.use=t.use||"";o.usehref=t.usehref||"";return o}_createClass(Image,[{key:u.$toHTML,value:function value(){if(this.contentType&&!O.has(this.contentType.toLowerCase()))return g.HTMLResult.EMPTY;var t=this[u.$globalData].images&&this[u.$globalData].images.get(this.href);if(!t&&(this.href||!this[u.$content]))return g.HTMLResult.EMPTY;t||"base64"!==this.transferEncoding||(t=(0,y.stringToBytes)(atob(this[u.$content])));if(!t)return g.HTMLResult.EMPTY;if(!this.contentType){var r,o=_createForOfIteratorHelper(T);try{for(o.s();!(r=o.n()).done;){var l=_slicedToArray(r.value,2),c=l[0],h=l[1];if(t.length>c.length&&c.every((function(r,o){return r===t[o]}))){this.contentType=h;break}}}catch(t){o.e(t)}finally{o.f()}if(!this.contentType)return g.HTMLResult.EMPTY}var d,m=new Blob([t],{type:this.contentType});switch(this.aspect){case"fit":case"actual":break;case"height":d={height:"100%",objectFit:"fill"};break;case"none":d={width:"100%",height:"100%",objectFit:"fill"};break;case"width":d={width:"100%",objectFit:"fill"}}var v=this[u.$getParent]();return g.HTMLResult.success({name:"img",attributes:{class:["xfaImage"],style:d,src:URL.createObjectURL(m),alt:v?ariaLabel(v[u.$getParent]()):null}})}}]);return Image}(u.StringObject),De=function(t){_inherits(ImageEdit,t);var r=_createSuper(ImageEdit);function ImageEdit(t){var o;_classCallCheck(this,ImageEdit);(o=r.call(this,C,"imageEdit",!0)).data=(0,g.getStringOption)(t.data,["link","embed"]);o.id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";o.border=null;o.extras=null;o.margin=null;return o}_createClass(ImageEdit,[{key:u.$toHTML,value:function value(t){return"embed"===this.data?g.HTMLResult.success({name:"div",children:[],attributes:{}}):g.HTMLResult.EMPTY}}]);return ImageEdit}(u.XFAObject),je=function(t){_inherits(Integer,t);var r=_createSuper(Integer);function Integer(t){var o;_classCallCheck(this,Integer);(o=r.call(this,C,"integer")).id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}_createClass(Integer,[{key:u.$finalize,value:function value(){var t=parseInt(this[u.$content].trim(),10);this[u.$content]=isNaN(t)?null:t}},{key:u.$toHTML,value:function value(t){return valueToHtml(null!==this[u.$content]?this[u.$content].toString():"")}}]);return Integer}(u.ContentObject),Le=function(t){_inherits(Issuers,t);var r=_createSuper(Issuers);function Issuers(t){var o;_classCallCheck(this,Issuers);(o=r.call(this,C,"issuers",!0)).id=t.id||"";o.type=(0,g.getStringOption)(t.type,["optional","required"]);o.use=t.use||"";o.usehref=t.usehref||"";o.certificate=new u.XFAObjectArray;return o}return Issuers}(u.XFAObject),Ne=function(t){_inherits(Items,t);var r=_createSuper(Items);function Items(t){var o;_classCallCheck(this,Items);(o=r.call(this,C,"items",!0)).id=t.id||"";o.name=t.name||"";o.presence=(0,g.getStringOption)(t.presence,["visible","hidden","inactive","invisible"]);o.ref=t.ref||"";o.save=(0,g.getInteger)({data:t.save,defaultValue:0,validate:function validate(t){return 1===t}});o.use=t.use||"";o.usehref=t.usehref||"";o.boolean=new u.XFAObjectArray;o.date=new u.XFAObjectArray;o.dateTime=new u.XFAObjectArray;o.decimal=new u.XFAObjectArray;o.exData=new u.XFAObjectArray;o.float=new u.XFAObjectArray;o.image=new u.XFAObjectArray;o.integer=new u.XFAObjectArray;o.text=new u.XFAObjectArray;o.time=new u.XFAObjectArray;return o}_createClass(Items,[{key:u.$toHTML,value:function value(){var t,r=[],o=_createForOfIteratorHelper(this[u.$getChildren]());try{for(o.s();!(t=o.n()).done;){var l=t.value;r.push(l[u.$text]())}}catch(t){o.e(t)}finally{o.f()}return g.HTMLResult.success(r)}}]);return Items}(u.XFAObject);r.Items=Ne;var Ue=function(t){_inherits(Keep,t);var r=_createSuper(Keep);function Keep(t){var o;_classCallCheck(this,Keep);(o=r.call(this,C,"keep",!0)).id=t.id||"";var l=["none","contentArea","pageArea"];o.intact=(0,g.getStringOption)(t.intact,l);o.next=(0,g.getStringOption)(t.next,l);o.previous=(0,g.getStringOption)(t.previous,l);o.use=t.use||"";o.usehref=t.usehref||"";o.extras=null;return o}return Keep}(u.XFAObject),He=function(t){_inherits(KeyUsage,t);var r=_createSuper(KeyUsage);function KeyUsage(t){var o;_classCallCheck(this,KeyUsage);var l=["","yes","no"];(o=r.call(this,C,"keyUsage")).crlSign=(0,g.getStringOption)(t.crlSign,l);o.dataEncipherment=(0,g.getStringOption)(t.dataEncipherment,l);o.decipherOnly=(0,g.getStringOption)(t.decipherOnly,l);o.digitalSignature=(0,g.getStringOption)(t.digitalSignature,l);o.encipherOnly=(0,g.getStringOption)(t.encipherOnly,l);o.id=t.id||"";o.keyAgreement=(0,g.getStringOption)(t.keyAgreement,l);o.keyCertSign=(0,g.getStringOption)(t.keyCertSign,l);o.keyEncipherment=(0,g.getStringOption)(t.keyEncipherment,l);o.nonRepudiation=(0,g.getStringOption)(t.nonRepudiation,l);o.type=(0,g.getStringOption)(t.type,["optional","required"]);o.use=t.use||"";o.usehref=t.usehref||"";return o}return KeyUsage}(u.XFAObject),We=function(t){_inherits(Line,t);var r=_createSuper(Line);function Line(t){var o;_classCallCheck(this,Line);(o=r.call(this,C,"line",!0)).hand=(0,g.getStringOption)(t.hand,["even","left","right"]);o.id=t.id||"";o.slope=(0,g.getStringOption)(t.slope,["\\","/"]);o.use=t.use||"";o.usehref=t.usehref||"";o.edge=null;return o}_createClass(Line,[{key:u.$toHTML,value:function value(){var t,r,o,l,c=this[u.$getParent]()[u.$getParent](),h=this.edge?this.edge:new de({}),d=h[u.$toStyle](),y=Object.create(null),v="visible"===h.presence?h.thickness:0;y.strokeWidth=(0,m.measureToString)(v);y.stroke=d.color;var S="100%",_="100%";if(c.w<=v){t="50%";r=0;o="50%";l="100%";S=y.strokeWidth}else if(c.h<=v){t=0;r="50%";o="100%";l="50%";_=y.strokeWidth}else if("\\"===this.slope){t=0;r=0;o="100%";l="100%"}else{t=0;r="100%";o="100%";l=0}var k={name:"svg",children:[{name:"line",attributes:{xmlns:w,x1:t,y1:r,x2:o,y2:l,style:y}}],attributes:{xmlns:w,width:S,height:_,style:{overflow:"visible"}}};if(hasMargin(c))return g.HTMLResult.success({name:"div",attributes:{style:{display:"inline",width:"100%",height:"100%"}},children:[k]});k.attributes.style.position="absolute";return g.HTMLResult.success(k)}}]);return Line}(u.XFAObject),$e=function(t){_inherits(Linear,t);var r=_createSuper(Linear);function Linear(t){var o;_classCallCheck(this,Linear);(o=r.call(this,C,"linear",!0)).id=t.id||"";o.type=(0,g.getStringOption)(t.type,["toRight","toBottom","toLeft","toTop"]);o.use=t.use||"";o.usehref=t.usehref||"";o.color=null;o.extras=null;return o}_createClass(Linear,[{key:u.$toStyle,value:function value(t){t=t?t[u.$toStyle]():"#FFFFFF";var r=this.type.replace(/([RBLT])/," $1").toLowerCase(),o=this.color?this.color[u.$toStyle]():"#000000";return"linear-gradient(".concat(r,", ").concat(t,", ").concat(o,")")}}]);return Linear}(u.XFAObject),qe=function(t){_inherits(LockDocument,t);var r=_createSuper(LockDocument);function LockDocument(t){var o;_classCallCheck(this,LockDocument);(o=r.call(this,C,"lockDocument")).id=t.id||"";o.type=(0,g.getStringOption)(t.type,["optional","required"]);o.use=t.use||"";o.usehref=t.usehref||"";return o}_createClass(LockDocument,[{key:u.$finalize,value:function value(){this[u.$content]=(0,g.getStringOption)(this[u.$content],["auto","0","1"])}}]);return LockDocument}(u.ContentObject),Xe=function(t){_inherits(Manifest,t);var r=_createSuper(Manifest);function Manifest(t){var o;_classCallCheck(this,Manifest);(o=r.call(this,C,"manifest",!0)).action=(0,g.getStringOption)(t.action,["include","all","exclude"]);o.id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";o.extras=null;o.ref=new u.XFAObjectArray;return o}return Manifest}(u.XFAObject),ze=function(t){_inherits(Margin,t);var r=_createSuper(Margin);function Margin(t){var o;_classCallCheck(this,Margin);(o=r.call(this,C,"margin",!0)).bottomInset=(0,g.getMeasurement)(t.bottomInset,"0");o.id=t.id||"";o.leftInset=(0,g.getMeasurement)(t.leftInset,"0");o.rightInset=(0,g.getMeasurement)(t.rightInset,"0");o.topInset=(0,g.getMeasurement)(t.topInset,"0");o.use=t.use||"";o.usehref=t.usehref||"";o.extras=null;return o}_createClass(Margin,[{key:u.$toStyle,value:function value(){return{margin:(0,m.measureToString)(this.topInset)+" "+(0,m.measureToString)(this.rightInset)+" "+(0,m.measureToString)(this.bottomInset)+" "+(0,m.measureToString)(this.leftInset)}}}]);return Margin}(u.XFAObject),Ge=function(t){_inherits(Mdp,t);var r=_createSuper(Mdp);function Mdp(t){var o;_classCallCheck(this,Mdp);(o=r.call(this,C,"mdp")).id=t.id||"";o.permissions=(0,g.getInteger)({data:t.permissions,defaultValue:2,validate:function validate(t){return 1===t||3===t}});o.signatureType=(0,g.getStringOption)(t.signatureType,["filler","author"]);o.use=t.use||"";o.usehref=t.usehref||"";return o}return Mdp}(u.XFAObject),Ve=function(t){_inherits(Medium,t);var r=_createSuper(Medium);function Medium(t){var o;_classCallCheck(this,Medium);(o=r.call(this,C,"medium")).id=t.id||"";o.imagingBBox=(0,g.getBBox)(t.imagingBBox);o.long=(0,g.getMeasurement)(t.long);o.orientation=(0,g.getStringOption)(t.orientation,["portrait","landscape"]);o.short=(0,g.getMeasurement)(t.short);o.stock=t.stock||"";o.trayIn=(0,g.getStringOption)(t.trayIn,["auto","delegate","pageFront"]);o.trayOut=(0,g.getStringOption)(t.trayOut,["auto","delegate"]);o.use=t.use||"";o.usehref=t.usehref||"";return o}return Medium}(u.XFAObject),Ye=function(t){_inherits(Message,t);var r=_createSuper(Message);function Message(t){var o;_classCallCheck(this,Message);(o=r.call(this,C,"message",!0)).id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";o.text=new u.XFAObjectArray;return o}return Message}(u.XFAObject),Ke=function(t){_inherits(NumericEdit,t);var r=_createSuper(NumericEdit);function NumericEdit(t){var o;_classCallCheck(this,NumericEdit);(o=r.call(this,C,"numericEdit",!0)).hScrollPolicy=(0,g.getStringOption)(t.hScrollPolicy,["auto","off","on"]);o.id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";o.border=null;o.comb=null;o.extras=null;o.margin=null;return o}_createClass(NumericEdit,[{key:u.$toHTML,value:function value(t){var r=(0,m.toStyle)(this,"border","font","margin"),o=this[u.$getParent]()[u.$getParent](),l={name:"input",attributes:{type:"text",fieldId:o[u.$uid],dataId:o[u.$data]&&o[u.$data][u.$uid]||o[u.$uid],class:["xfaTextfield"],style:r,"aria-label":ariaLabel(o)}};return g.HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[l]})}}]);return NumericEdit}(u.XFAObject),Je=function(t){_inherits(Occur,t);var r=_createSuper(Occur);function Occur(t){var o;_classCallCheck(this,Occur);(o=r.call(this,C,"occur",!0)).id=t.id||"";o.initial=""!==t.initial?(0,g.getInteger)({data:t.initial,defaultValue:"",validate:function validate(t){return!0}}):"";o.max=""!==t.max?(0,g.getInteger)({data:t.max,defaultValue:1,validate:function validate(t){return!0}}):"";o.min=""!==t.min?(0,g.getInteger)({data:t.min,defaultValue:1,validate:function validate(t){return!0}}):"";o.use=t.use||"";o.usehref=t.usehref||"";o.extras=null;return o}_createClass(Occur,[{key:u.$clean,value:function value(){var t=this[u.$getParent](),r=this.min;""===this.min&&(this.min=t instanceof tt||t instanceof rt?0:1);""===this.max&&(this.max=""===r?t instanceof tt||t instanceof rt?-1:1:this.min);-1!==this.max&&this.max<this.min&&(this.max=this.min);""===this.initial&&(this.initial=t instanceof Ot?1:this.min)}}]);return Occur}(u.XFAObject),Qe=function(t){_inherits(Oid,t);var r=_createSuper(Oid);function Oid(t){var o;_classCallCheck(this,Oid);(o=r.call(this,C,"oid")).id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return Oid}(u.StringObject),Ze=function(t){_inherits(Oids,t);var r=_createSuper(Oids);function Oids(t){var o;_classCallCheck(this,Oids);(o=r.call(this,C,"oids",!0)).id=t.id||"";o.type=(0,g.getStringOption)(t.type,["optional","required"]);o.use=t.use||"";o.usehref=t.usehref||"";o.oid=new u.XFAObjectArray;return o}return Oids}(u.XFAObject),et=function(t){_inherits(Overflow,t);var r=_createSuper(Overflow);function Overflow(t){var o;_classCallCheck(this,Overflow);(o=r.call(this,C,"overflow")).id=t.id||"";o.leader=t.leader||"";o.target=t.target||"";o.trailer=t.trailer||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}_createClass(Overflow,[{key:u.$getExtra,value:function value(){if(!this[u.$extra]){var t=this[u.$getParent](),r=this[u.$getTemplateRoot](),o=r[u.$searchNode](this.target,t),l=r[u.$searchNode](this.leader,t),c=r[u.$searchNode](this.trailer,t);this[u.$extra]={target:o&&o[0]||null,leader:l&&l[0]||null,trailer:c&&c[0]||null,addLeader:!1,addTrailer:!1}}return this[u.$extra]}}]);return Overflow}(u.XFAObject),tt=function(t){_inherits(PageArea,t);var r=_createSuper(PageArea);function PageArea(t){var o;_classCallCheck(this,PageArea);(o=r.call(this,C,"pageArea",!0)).blankOrNotBlank=(0,g.getStringOption)(t.blankOrNotBlank,["any","blank","notBlank"]);o.id=t.id||"";o.initialNumber=(0,g.getInteger)({data:t.initialNumber,defaultValue:1,validate:function validate(t){return!0}});o.name=t.name||"";o.numbered=(0,g.getInteger)({data:t.numbered,defaultValue:1,validate:function validate(t){return!0}});o.oddOrEven=(0,g.getStringOption)(t.oddOrEven,["any","even","odd"]);o.pagePosition=(0,g.getStringOption)(t.pagePosition,["any","first","last","only","rest"]);o.relevant=(0,g.getRelevant)(t.relevant);o.use=t.use||"";o.usehref=t.usehref||"";o.desc=null;o.extras=null;o.medium=null;o.occur=null;o.area=new u.XFAObjectArray;o.contentArea=new u.XFAObjectArray;o.draw=new u.XFAObjectArray;o.exclGroup=new u.XFAObjectArray;o.field=new u.XFAObjectArray;o.subform=new u.XFAObjectArray;return o}_createClass(PageArea,[{key:u.$isUsable,value:function value(){if(!this[u.$extra]){this[u.$extra]={numberOfUse:0};return!0}return!this.occur||-1===this.occur.max||this[u.$extra].numberOfUse<this.occur.max}},{key:u.$cleanPage,value:function value(){delete this[u.$extra]}},{key:u.$getNextPage,value:function value(){this[u.$extra]||(this[u.$extra]={numberOfUse:0});var t=this[u.$getParent]();if("orderedOccurrence"===t.relation&&this[u.$isUsable]()){this[u.$extra].numberOfUse+=1;return this}return t[u.$getNextPage]()}},{key:u.$getAvailableSpace,value:function value(){return this[u.$extra].space||{width:0,height:0}}},{key:u.$toHTML,value:function value(){this[u.$extra]||(this[u.$extra]={numberOfUse:1});var t=[];this[u.$extra].children=t;var r=Object.create(null);if(this.medium&&this.medium.short&&this.medium.long){r.width=(0,m.measureToString)(this.medium.short);r.height=(0,m.measureToString)(this.medium.long);this[u.$extra].space={width:this.medium.short,height:this.medium.long};if("landscape"===this.medium.orientation){var o=r.width;r.width=r.height;r.height=o;this[u.$extra].space={width:this.medium.long,height:this.medium.short}}}else(0,y.warn)("XFA - No medium specified in pageArea: please file a bug.");this[u.$childrenToHTML]({filter:new Set(["area","draw","field","subform"]),include:!0});this[u.$childrenToHTML]({filter:new Set(["contentArea"]),include:!0});return g.HTMLResult.success({name:"div",children:t,attributes:{class:["xfaPage"],id:this[u.$uid],style:r,xfaName:this.name}})}}]);return PageArea}(u.XFAObject),rt=function(t){_inherits(PageSet,t);var r=_createSuper(PageSet);function PageSet(t){var o;_classCallCheck(this,PageSet);(o=r.call(this,C,"pageSet",!0)).duplexImposition=(0,g.getStringOption)(t.duplexImposition,["longEdge","shortEdge"]);o.id=t.id||"";o.name=t.name||"";o.relation=(0,g.getStringOption)(t.relation,["orderedOccurrence","duplexPaginated","simplexPaginated"]);o.relevant=(0,g.getRelevant)(t.relevant);o.use=t.use||"";o.usehref=t.usehref||"";o.extras=null;o.occur=null;o.pageArea=new u.XFAObjectArray;o.pageSet=new u.XFAObjectArray;return o}_createClass(PageSet,[{key:u.$cleanPage,value:function value(){var t,r=_createForOfIteratorHelper(this.pageArea.children);try{for(r.s();!(t=r.n()).done;){t.value[u.$cleanPage]()}}catch(t){r.e(t)}finally{r.f()}var o,l=_createForOfIteratorHelper(this.pageSet.children);try{for(l.s();!(o=l.n()).done;){o.value[u.$cleanPage]()}}catch(t){l.e(t)}finally{l.f()}}},{key:u.$isUsable,value:function value(){return!this.occur||-1===this.occur.max||this[u.$extra].numberOfUse<this.occur.max}},{key:u.$getNextPage,value:function value(){this[u.$extra]||(this[u.$extra]={numberOfUse:1,pageIndex:-1,pageSetIndex:-1});if("orderedOccurrence"===this.relation){if(this[u.$extra].pageIndex+1<this.pageArea.children.length){this[u.$extra].pageIndex+=1;return this.pageArea.children[this[u.$extra].pageIndex][u.$getNextPage]()}if(this[u.$extra].pageSetIndex+1<this.pageSet.children.length){this[u.$extra].pageSetIndex+=1;return this.pageSet.children[this[u.$extra].pageSetIndex][u.$getNextPage]()}if(this[u.$isUsable]()){this[u.$extra].numberOfUse+=1;this[u.$extra].pageIndex=-1;this[u.$extra].pageSetIndex=-1;return this[u.$getNextPage]()}var t=this[u.$getParent]();if(t instanceof PageSet)return t[u.$getNextPage]();this[u.$cleanPage]();return this[u.$getNextPage]()}var r=this[u.$getTemplateRoot]()[u.$extra].pageNumber,o=r%2==0?"even":"odd",l=0===r?"first":"rest",c=this.pageArea.children.find((function(t){return t.oddOrEven===o&&t.pagePosition===l}));return c||((c=this.pageArea.children.find((function(t){return"any"===t.oddOrEven&&t.pagePosition===l})))?c:(c=this.pageArea.children.find((function(t){return"any"===t.oddOrEven&&"any"===t.pagePosition})))||this.pageArea.children[0])}}]);return PageSet}(u.XFAObject),at=function(t){_inherits(Para,t);var r=_createSuper(Para);function Para(t){var o;_classCallCheck(this,Para);(o=r.call(this,C,"para",!0)).hAlign=(0,g.getStringOption)(t.hAlign,["left","center","justify","justifyAll","radix","right"]);o.id=t.id||"";o.lineHeight=t.lineHeight?(0,g.getMeasurement)(t.lineHeight,"0pt"):"";o.marginLeft=t.marginLeft?(0,g.getMeasurement)(t.marginLeft,"0pt"):"";o.marginRight=t.marginRight?(0,g.getMeasurement)(t.marginRight,"0pt"):"";o.orphans=(0,g.getInteger)({data:t.orphans,defaultValue:0,validate:function validate(t){return t>=0}});o.preserve=t.preserve||"";o.radixOffset=t.radixOffset?(0,g.getMeasurement)(t.radixOffset,"0pt"):"";o.spaceAbove=t.spaceAbove?(0,g.getMeasurement)(t.spaceAbove,"0pt"):"";o.spaceBelow=t.spaceBelow?(0,g.getMeasurement)(t.spaceBelow,"0pt"):"";o.tabDefault=t.tabDefault?(0,g.getMeasurement)(o.tabDefault):"";o.tabStops=(t.tabStops||"").trim().split(/\s+/).map((function(t,r){return r%2==1?(0,g.getMeasurement)(t):t}));o.textIndent=t.textIndent?(0,g.getMeasurement)(t.textIndent,"0pt"):"";o.use=t.use||"";o.usehref=t.usehref||"";o.vAlign=(0,g.getStringOption)(t.vAlign,["top","bottom","middle"]);o.widows=(0,g.getInteger)({data:t.widows,defaultValue:0,validate:function validate(t){return t>=0}});o.hyphenation=null;return o}_createClass(Para,[{key:u.$toStyle,value:function value(){var t=(0,m.toStyle)(this,"hAlign");""!==this.marginLeft&&(t.paddingLeft=(0,m.measureToString)(this.marginLeft));""!==this.marginRight&&(t.paddingight=(0,m.measureToString)(this.marginRight));""!==this.spaceAbove&&(t.paddingTop=(0,m.measureToString)(this.spaceAbove));""!==this.spaceBelow&&(t.paddingBottom=(0,m.measureToString)(this.spaceBelow));if(""!==this.textIndent){t.textIndent=(0,m.measureToString)(this.textIndent);(0,m.fixTextIndent)(t)}this.lineHeight>0&&(t.lineHeight=(0,m.measureToString)(this.lineHeight));""!==this.tabDefault&&(t.tabSize=(0,m.measureToString)(this.tabDefault));this.tabStops.length;this.hyphenatation&&Object.assign(t,this.hyphenatation[u.$toStyle]());return t}}]);return Para}(u.XFAObject),nt=function(t){_inherits(PasswordEdit,t);var r=_createSuper(PasswordEdit);function PasswordEdit(t){var o;_classCallCheck(this,PasswordEdit);(o=r.call(this,C,"passwordEdit",!0)).hScrollPolicy=(0,g.getStringOption)(t.hScrollPolicy,["auto","off","on"]);o.id=t.id||"";o.passwordChar=t.passwordChar||"*";o.use=t.use||"";o.usehref=t.usehref||"";o.border=null;o.extras=null;o.margin=null;return o}return PasswordEdit}(u.XFAObject),it=function(t){_inherits(Pattern,t);var r=_createSuper(Pattern);function Pattern(t){var o;_classCallCheck(this,Pattern);(o=r.call(this,C,"pattern",!0)).id=t.id||"";o.type=(0,g.getStringOption)(t.type,["crossHatch","crossDiagonal","diagonalLeft","diagonalRight","horizontal","vertical"]);o.use=t.use||"";o.usehref=t.usehref||"";o.color=null;o.extras=null;return o}_createClass(Pattern,[{key:u.$toStyle,value:function value(t){t=t?t[u.$toStyle]():"#FFFFFF";var r=this.color?this.color[u.$toStyle]():"#000000",o="repeating-linear-gradient",l="".concat(t,",").concat(t," ").concat(5,"px,").concat(r," ").concat(5,"px,").concat(r," ").concat(10,"px");switch(this.type){case"crossHatch":return"".concat(o,"(to top,").concat(l,") ").concat(o,"(to right,").concat(l,")");case"crossDiagonal":return"".concat(o,"(45deg,").concat(l,") ").concat(o,"(-45deg,").concat(l,")");case"diagonalLeft":return"".concat(o,"(45deg,").concat(l,")");case"diagonalRight":return"".concat(o,"(-45deg,").concat(l,")");case"horizontal":return"".concat(o,"(to top,").concat(l,")");case"vertical":return"".concat(o,"(to right,").concat(l,")")}return""}}]);return Pattern}(u.XFAObject),ot=function(t){_inherits(Picture,t);var r=_createSuper(Picture);function Picture(t){var o;_classCallCheck(this,Picture);(o=r.call(this,C,"picture")).id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return Picture}(u.StringObject),st=function(t){_inherits(Proto,t);var r=_createSuper(Proto);function Proto(t){var o;_classCallCheck(this,Proto);(o=r.call(this,C,"proto",!0)).appearanceFilter=new u.XFAObjectArray;o.arc=new u.XFAObjectArray;o.area=new u.XFAObjectArray;o.assist=new u.XFAObjectArray;o.barcode=new u.XFAObjectArray;o.bindItems=new u.XFAObjectArray;o.bookend=new u.XFAObjectArray;o.boolean=new u.XFAObjectArray;o.border=new u.XFAObjectArray;o.break=new u.XFAObjectArray;o.breakAfter=new u.XFAObjectArray;o.breakBefore=new u.XFAObjectArray;o.button=new u.XFAObjectArray;o.calculate=new u.XFAObjectArray;o.caption=new u.XFAObjectArray;o.certificate=new u.XFAObjectArray;o.certificates=new u.XFAObjectArray;o.checkButton=new u.XFAObjectArray;o.choiceList=new u.XFAObjectArray;o.color=new u.XFAObjectArray;o.comb=new u.XFAObjectArray;o.connect=new u.XFAObjectArray;o.contentArea=new u.XFAObjectArray;o.corner=new u.XFAObjectArray;o.date=new u.XFAObjectArray;o.dateTime=new u.XFAObjectArray;o.dateTimeEdit=new u.XFAObjectArray;o.decimal=new u.XFAObjectArray;o.defaultUi=new u.XFAObjectArray;o.desc=new u.XFAObjectArray;o.digestMethod=new u.XFAObjectArray;o.digestMethods=new u.XFAObjectArray;o.draw=new u.XFAObjectArray;o.edge=new u.XFAObjectArray;o.encoding=new u.XFAObjectArray;o.encodings=new u.XFAObjectArray;o.encrypt=new u.XFAObjectArray;o.encryptData=new u.XFAObjectArray;o.encryption=new u.XFAObjectArray;o.encryptionMethod=new u.XFAObjectArray;o.encryptionMethods=new u.XFAObjectArray;o.event=new u.XFAObjectArray;o.exData=new u.XFAObjectArray;o.exObject=new u.XFAObjectArray;o.exclGroup=new u.XFAObjectArray;o.execute=new u.XFAObjectArray;o.extras=new u.XFAObjectArray;o.field=new u.XFAObjectArray;o.fill=new u.XFAObjectArray;o.filter=new u.XFAObjectArray;o.float=new u.XFAObjectArray;o.font=new u.XFAObjectArray;o.format=new u.XFAObjectArray;o.handler=new u.XFAObjectArray;o.hyphenation=new u.XFAObjectArray;o.image=new u.XFAObjectArray;o.imageEdit=new u.XFAObjectArray;o.integer=new u.XFAObjectArray;o.issuers=new u.XFAObjectArray;o.items=new u.XFAObjectArray;o.keep=new u.XFAObjectArray;o.keyUsage=new u.XFAObjectArray;o.line=new u.XFAObjectArray;o.linear=new u.XFAObjectArray;o.lockDocument=new u.XFAObjectArray;o.manifest=new u.XFAObjectArray;o.margin=new u.XFAObjectArray;o.mdp=new u.XFAObjectArray;o.medium=new u.XFAObjectArray;o.message=new u.XFAObjectArray;o.numericEdit=new u.XFAObjectArray;o.occur=new u.XFAObjectArray;o.oid=new u.XFAObjectArray;o.oids=new u.XFAObjectArray;o.overflow=new u.XFAObjectArray;o.pageArea=new u.XFAObjectArray;o.pageSet=new u.XFAObjectArray;o.para=new u.XFAObjectArray;o.passwordEdit=new u.XFAObjectArray;o.pattern=new u.XFAObjectArray;o.picture=new u.XFAObjectArray;o.radial=new u.XFAObjectArray;o.reason=new u.XFAObjectArray;o.reasons=new u.XFAObjectArray;o.rectangle=new u.XFAObjectArray;o.ref=new u.XFAObjectArray;o.script=new u.XFAObjectArray;o.setProperty=new u.XFAObjectArray;o.signData=new u.XFAObjectArray;o.signature=new u.XFAObjectArray;o.signing=new u.XFAObjectArray;o.solid=new u.XFAObjectArray;o.speak=new u.XFAObjectArray;o.stipple=new u.XFAObjectArray;o.subform=new u.XFAObjectArray;o.subformSet=new u.XFAObjectArray;o.subjectDN=new u.XFAObjectArray;o.subjectDNs=new u.XFAObjectArray;o.submit=new u.XFAObjectArray;o.text=new u.XFAObjectArray;o.textEdit=new u.XFAObjectArray;o.time=new u.XFAObjectArray;o.timeStamp=new u.XFAObjectArray;o.toolTip=new u.XFAObjectArray;o.traversal=new u.XFAObjectArray;o.traverse=new u.XFAObjectArray;o.ui=new u.XFAObjectArray;o.validate=new u.XFAObjectArray;o.value=new u.XFAObjectArray;o.variables=new u.XFAObjectArray;return o}return Proto}(u.XFAObject),lt=function(t){_inherits(Radial,t);var r=_createSuper(Radial);function Radial(t){var o;_classCallCheck(this,Radial);(o=r.call(this,C,"radial",!0)).id=t.id||"";o.type=(0,g.getStringOption)(t.type,["toEdge","toCenter"]);o.use=t.use||"";o.usehref=t.usehref||"";o.color=null;o.extras=null;return o}_createClass(Radial,[{key:u.$toStyle,value:function value(t){t=t?t[u.$toStyle]():"#FFFFFF";var r=this.color?this.color[u.$toStyle]():"#000000",o="toEdge"===this.type?"".concat(t,",").concat(r):"".concat(r,",").concat(t);return"radial-gradient(circle at center, ".concat(o,")")}}]);return Radial}(u.XFAObject),ct=function(t){_inherits(Reason,t);var r=_createSuper(Reason);function Reason(t){var o;_classCallCheck(this,Reason);(o=r.call(this,C,"reason")).id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return Reason}(u.StringObject),ut=function(t){_inherits(Reasons,t);var r=_createSuper(Reasons);function Reasons(t){var o;_classCallCheck(this,Reasons);(o=r.call(this,C,"reasons",!0)).id=t.id||"";o.type=(0,g.getStringOption)(t.type,["optional","required"]);o.use=t.use||"";o.usehref=t.usehref||"";o.reason=new u.XFAObjectArray;return o}return Reasons}(u.XFAObject),ft=function(t){_inherits(Rectangle,t);var r=_createSuper(Rectangle);function Rectangle(t){var o;_classCallCheck(this,Rectangle);(o=r.call(this,C,"rectangle",!0)).hand=(0,g.getStringOption)(t.hand,["even","left","right"]);o.id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";o.corner=new u.XFAObjectArray(4);o.edge=new u.XFAObjectArray(4);o.fill=null;return o}_createClass(Rectangle,[{key:u.$toHTML,value:function value(){var t=this.edge.children.length?this.edge.children[0]:new de({}),r=t[u.$toStyle](),o=Object.create(null);this.fill&&"visible"===this.fill.presence?Object.assign(o,this.fill[u.$toStyle]()):o.fill="transparent";o.strokeWidth=(0,m.measureToString)("visible"===t.presence?t.thickness:0);o.stroke=r.color;var l=(this.corner.children.length?this.corner.children[0]:new ae({}))[u.$toStyle](),c={name:"svg",children:[{name:"rect",attributes:{xmlns:w,width:"100%",height:"100%",x:0,y:0,rx:l.radius,ry:l.radius,style:o}}],attributes:{xmlns:w,style:{overflow:"visible"},width:"100%",height:"100%"}};if(hasMargin(this[u.$getParent]()[u.$getParent]()))return g.HTMLResult.success({name:"div",attributes:{style:{display:"inline",width:"100%",height:"100%"}},children:[c]});c.attributes.style.position="absolute";return g.HTMLResult.success(c)}}]);return Rectangle}(u.XFAObject),ht=function(t){_inherits(RefElement,t);var r=_createSuper(RefElement);function RefElement(t){var o;_classCallCheck(this,RefElement);(o=r.call(this,C,"ref")).id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return RefElement}(u.StringObject),dt=function(t){_inherits(Script,t);var r=_createSuper(Script);function Script(t){var o;_classCallCheck(this,Script);(o=r.call(this,C,"script")).binding=t.binding||"";o.contentType=t.contentType||"";o.id=t.id||"";o.name=t.name||"";o.runAt=(0,g.getStringOption)(t.runAt,["client","both","server"]);o.use=t.use||"";o.usehref=t.usehref||"";return o}return Script}(u.StringObject),mt=function(t){_inherits(SetProperty,t);var r=_createSuper(SetProperty);function SetProperty(t){var o;_classCallCheck(this,SetProperty);(o=r.call(this,C,"setProperty")).connection=t.connection||"";o.ref=t.ref||"";o.target=t.target||"";return o}return SetProperty}(u.XFAObject);r.SetProperty=mt;var gt=function(t){_inherits(SignData,t);var r=_createSuper(SignData);function SignData(t){var o;_classCallCheck(this,SignData);(o=r.call(this,C,"signData",!0)).id=t.id||"";o.operation=(0,g.getStringOption)(t.operation,["sign","clear","verify"]);o.ref=t.ref||"";o.target=t.target||"";o.use=t.use||"";o.usehref=t.usehref||"";o.filter=null;o.manifest=null;return o}return SignData}(u.XFAObject),yt=function(t){_inherits(Signature,t);var r=_createSuper(Signature);function Signature(t){var o;_classCallCheck(this,Signature);(o=r.call(this,C,"signature",!0)).id=t.id||"";o.type=(0,g.getStringOption)(t.type,["PDF1.3","PDF1.6"]);o.use=t.use||"";o.usehref=t.usehref||"";o.border=null;o.extras=null;o.filter=null;o.manifest=null;o.margin=null;return o}return Signature}(u.XFAObject),vt=function(t){_inherits(Signing,t);var r=_createSuper(Signing);function Signing(t){var o;_classCallCheck(this,Signing);(o=r.call(this,C,"signing",!0)).id=t.id||"";o.type=(0,g.getStringOption)(t.type,["optional","required"]);o.use=t.use||"";o.usehref=t.usehref||"";o.certificate=new u.XFAObjectArray;return o}return Signing}(u.XFAObject),bt=function(t){_inherits(Solid,t);var r=_createSuper(Solid);function Solid(t){var o;_classCallCheck(this,Solid);(o=r.call(this,C,"solid",!0)).id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";o.extras=null;return o}_createClass(Solid,[{key:u.$toStyle,value:function value(t){return t?t[u.$toStyle]():"#FFFFFF"}}]);return Solid}(u.XFAObject),St=function(t){_inherits(Speak,t);var r=_createSuper(Speak);function Speak(t){var o;_classCallCheck(this,Speak);(o=r.call(this,C,"speak")).disable=(0,g.getInteger)({data:t.disable,defaultValue:0,validate:function validate(t){return 1===t}});o.id=t.id||"";o.priority=(0,g.getStringOption)(t.priority,["custom","caption","name","toolTip"]);o.rid=t.rid||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return Speak}(u.StringObject),_t=function(t){_inherits(Stipple,t);var r=_createSuper(Stipple);function Stipple(t){var o;_classCallCheck(this,Stipple);(o=r.call(this,C,"stipple",!0)).id=t.id||"";o.rate=(0,g.getInteger)({data:t.rate,defaultValue:50,validate:function validate(t){return t>=0&&t<=100}});o.use=t.use||"";o.usehref=t.usehref||"";o.color=null;o.extras=null;return o}_createClass(Stipple,[{key:u.$toStyle,value:function value(t){var r=this.rate/100;return y.Util.makeHexColor(Math.round(t.value.r*(1-r)+this.value.r*r),Math.round(t.value.g*(1-r)+this.value.g*r),Math.round(t.value.b*(1-r)+this.value.b*r))}}]);return Stipple}(u.XFAObject),kt=function(t){_inherits(Subform,t);var r=_createSuper(Subform);function Subform(t){var o;_classCallCheck(this,Subform);(o=r.call(this,C,"subform",!0)).access=(0,g.getStringOption)(t.access,["open","nonInteractive","protected","readOnly"]);o.allowMacro=(0,g.getInteger)({data:t.allowMacro,defaultValue:0,validate:function validate(t){return 1===t}});o.anchorType=(0,g.getStringOption)(t.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]);o.colSpan=(0,g.getInteger)({data:t.colSpan,defaultValue:1,validate:function validate(t){return t>=1||-1===t}});o.columnWidths=(t.columnWidths||"").trim().split(/\s+/).map((function(t){return"-1"===t?-1:(0,g.getMeasurement)(t)}));o.h=t.h?(0,g.getMeasurement)(t.h):"";o.hAlign=(0,g.getStringOption)(t.hAlign,["left","center","justify","justifyAll","radix","right"]);o.id=t.id||"";o.layout=(0,g.getStringOption)(t.layout,["position","lr-tb","rl-row","rl-tb","row","table","tb"]);o.locale=t.locale||"";o.maxH=(0,g.getMeasurement)(t.maxH,"0pt");o.maxW=(0,g.getMeasurement)(t.maxW,"0pt");o.mergeMode=(0,g.getStringOption)(t.mergeMode,["consumeData","matchTemplate"]);o.minH=(0,g.getMeasurement)(t.minH,"0pt");o.minW=(0,g.getMeasurement)(t.minW,"0pt");o.name=t.name||"";o.presence=(0,g.getStringOption)(t.presence,["visible","hidden","inactive","invisible"]);o.relevant=(0,g.getRelevant)(t.relevant);o.restoreState=(0,g.getStringOption)(t.restoreState,["manual","auto"]);o.scope=(0,g.getStringOption)(t.scope,["name","none"]);o.use=t.use||"";o.usehref=t.usehref||"";o.w=t.w?(0,g.getMeasurement)(t.w):"";o.x=(0,g.getMeasurement)(t.x,"0pt");o.y=(0,g.getMeasurement)(t.y,"0pt");o.assist=null;o.bind=null;o.bookend=null;o.border=null;o.break=null;o.calculate=null;o.desc=null;o.extras=null;o.keep=null;o.margin=null;o.occur=null;o.overflow=null;o.pageSet=null;o.para=null;o.traversal=null;o.validate=null;o.variables=null;o.area=new u.XFAObjectArray;o.breakAfter=new u.XFAObjectArray;o.breakBefore=new u.XFAObjectArray;o.connect=new u.XFAObjectArray;o.draw=new u.XFAObjectArray;o.event=new u.XFAObjectArray;o.exObject=new u.XFAObjectArray;o.exclGroup=new u.XFAObjectArray;o.field=new u.XFAObjectArray;o.proto=new u.XFAObjectArray;o.setProperty=new u.XFAObjectArray;o.subform=new u.XFAObjectArray;o.subformSet=new u.XFAObjectArray;return o}_createClass(Subform,[{key:u.$getSubformParent,value:function value(){var t=this[u.$getParent]();return t instanceof Ct?t[u.$getSubformParent]():t}},{key:u.$isBindable,value:function value(){return!0}},{key:u.$isThereMoreWidth,value:function value(){return this.layout.endsWith("-tb")&&0===this[u.$extra].attempt&&this[u.$extra].numberInLine>0||this[u.$getParent]()[u.$isThereMoreWidth]()}},{key:u.$getContainedChildren,value:c.default.mark((function value(){return c.default.wrap((function value$(t){for(;;)switch(t.prev=t.next){case 0:return t.delegateYield(getContainedChildren(this),"t0",1);case 1:case"end":return t.stop()}}),value,this)}))},{key:u.$flushHTML,value:function value(){return(0,d.flushHTML)(this)}},{key:u.$addHTML,value:function value(t,r){(0,d.addHTML)(this,t,r)}},{key:u.$getAvailableSpace,value:function value(){return(0,d.getAvailableSpace)(this)}},{key:u.$isSplittable,value:function value(){var t=this[u.$getSubformParent]();if(!t[u.$isSplittable]())return!1;if(void 0!==this[u.$extra]._isSplittable)return this[u.$extra]._isSplittable;if("position"===this.layout||this.layout.includes("row")){this[u.$extra]._isSplittable=!1;return!1}if(this.keep&&"none"!==this.keep.intact){this[u.$extra]._isSplittable=!1;return!1}if(t.layout&&t.layout.endsWith("-tb")&&0!==t[u.$extra].numberInLine)return!1;this[u.$extra]._isSplittable=!0;return!0}},{key:u.$toHTML,value:function value(t){setTabIndex(this);if(this.break){if("auto"!==this.break.after||""!==this.break.afterTarget){var r=new q({targetType:this.break.after,target:this.break.afterTarget,startNew:this.break.startNew.toString()});r[u.$globalData]=this[u.$globalData];this[u.$appendChild](r);this.breakAfter.push(r)}if("auto"!==this.break.before||""!==this.break.beforeTarget){var o=new X({targetType:this.break.before,target:this.break.beforeTarget,startNew:this.break.startNew.toString()});o[u.$globalData]=this[u.$globalData];this[u.$appendChild](o);this.breakBefore.push(o)}if(""!==this.break.overflowTarget){var l=new et({target:this.break.overflowTarget,leader:this.break.overflowLeader,trailer:this.break.overflowTrailer});l[u.$globalData]=this[u.$globalData];this[u.$appendChild](l);this.overflow.push(l)}this[u.$removeChild](this.break);this.break=null}if("hidden"===this.presence||"inactive"===this.presence)return g.HTMLResult.EMPTY;(this.breakBefore.children.length>1||this.breakAfter.children.length>1)&&(0,y.warn)("XFA - Several breakBefore or breakAfter in subforms: please file a bug.");if(this.breakBefore.children.length>=1){var c=this.breakBefore.children[0];if(handleBreak(c))return g.HTMLResult.breakNode(c)}if(this[u.$extra]&&this[u.$extra].afterBreakAfter)return g.HTMLResult.EMPTY;(0,m.fixDimensions)(this);var h=[],v={id:this[u.$uid],class:[]};(0,m.setAccess)(this,v.class);this[u.$extra]||(this[u.$extra]=Object.create(null));Object.assign(this[u.$extra],{children:h,line:null,attributes:v,attempt:0,numberInLine:0,availableSpace:{width:Math.min(this.w||1/0,t.width),height:Math.min(this.h||1/0,t.height)},width:0,height:0,prevHeight:0,currentWidth:0});var S=this[u.$getTemplateRoot](),_=S[u.$extra].noLayoutFailure,k=this[u.$isSplittable]();k||setFirstUnsplittable(this);if(!(0,d.checkDimensions)(this,t))return g.HTMLResult.FAILURE;var C=new Set(["area","draw","exclGroup","field","subform","subformSet"]);if(this.layout.includes("row")){var w=this[u.$getSubformParent]().columnWidths;if(Array.isArray(w)&&w.length>0){this[u.$extra].columnWidths=w;this[u.$extra].currentColumn=0}}var x=(0,m.toStyle)(this,"anchorType","dimensions","position","presence","border","margin","hAlign"),O=["xfaSubform"],T=(0,m.layoutClass)(this);T&&O.push(T);v.style=x;v.class=O;this.name&&(v.xfaName=this.name);if(this.overflow){var R=this.overflow[u.$getExtra]();if(R.addLeader){R.addLeader=!1;handleOverflow(this,R.leader,t)}}this[u.$pushPara]();for(var E="lr-tb"===this.layout||"rl-tb"===this.layout,M=E?2:1;this[u.$extra].attempt<M;this[u.$extra].attempt++){E&&1===this[u.$extra].attempt&&(this[u.$extra].numberInLine=0);var D=this[u.$childrenToHTML]({filter:C,include:!0});if(D.success)break;if(D.isBreak()){this[u.$popPara]();return D}if(E&&0===this[u.$extra].attempt&&0===this[u.$extra].numberInLine&&!S[u.$extra].noLayoutFailure){this[u.$extra].attempt=M;break}}this[u.$popPara]();k||unsetFirstUnsplittable(this);S[u.$extra].noLayoutFailure=_;if(this[u.$extra].attempt===M){this.overflow&&(this[u.$getTemplateRoot]()[u.$extra].overflowNode=this.overflow);k||delete this[u.$extra];return g.HTMLResult.FAILURE}if(this.overflow){var j=this.overflow[u.$getExtra]();if(j.addTrailer){j.addTrailer=!1;handleOverflow(this,j.trailer,t)}}var L=0,N=0;if(this.margin){L=this.margin.leftInset+this.margin.rightInset;N=this.margin.topInset+this.margin.bottomInset}var U=Math.max(this[u.$extra].width+L,this.w||0),H=Math.max(this[u.$extra].height+N,this.h||0),W=[this.x,this.y,U,H];""===this.w&&(x.width=(0,m.measureToString)(U));""===this.h&&(x.height=(0,m.measureToString)(H));var $={name:"div",attributes:v,children:h};applyAssist(this,v);var z=g.HTMLResult.success((0,m.createWrapper)(this,$),W);if(this.breakAfter.children.length>=1){var G=this.breakAfter.children[0];if(handleBreak(G)){this[u.$extra].afterBreakAfter=z;return g.HTMLResult.breakNode(G)}}delete this[u.$extra];return z}}]);return Subform}(u.XFAObject),Ct=function(t){_inherits(SubformSet,t);var r=_createSuper(SubformSet);function SubformSet(t){var o;_classCallCheck(this,SubformSet);(o=r.call(this,C,"subformSet",!0)).id=t.id||"";o.name=t.name||"";o.relation=(0,g.getStringOption)(t.relation,["ordered","choice","unordered"]);o.relevant=(0,g.getRelevant)(t.relevant);o.use=t.use||"";o.usehref=t.usehref||"";o.bookend=null;o.break=null;o.desc=null;o.extras=null;o.occur=null;o.overflow=null;o.breakAfter=new u.XFAObjectArray;o.breakBefore=new u.XFAObjectArray;o.subform=new u.XFAObjectArray;o.subformSet=new u.XFAObjectArray;return o}_createClass(SubformSet,[{key:u.$getContainedChildren,value:c.default.mark((function value(){return c.default.wrap((function value$(t){for(;;)switch(t.prev=t.next){case 0:return t.delegateYield(getContainedChildren(this),"t0",1);case 1:case"end":return t.stop()}}),value,this)}))},{key:u.$getSubformParent,value:function value(){for(var t=this[u.$getParent]();!(t instanceof kt);)t=t[u.$getParent]();return t}},{key:u.$isBindable,value:function value(){return!0}}]);return SubformSet}(u.XFAObject),wt=function(t){_inherits(SubjectDN,t);var r=_createSuper(SubjectDN);function SubjectDN(t){var o;_classCallCheck(this,SubjectDN);(o=r.call(this,C,"subjectDN")).delimiter=t.delimiter||",";o.id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}_createClass(SubjectDN,[{key:u.$finalize,value:function value(){this[u.$content]=new Map(this[u.$content].split(this.delimiter).map((function(t){(t=t.split("=",2))[0]=t[0].trim();return t})))}}]);return SubjectDN}(u.ContentObject),At=function(t){_inherits(SubjectDNs,t);var r=_createSuper(SubjectDNs);function SubjectDNs(t){var o;_classCallCheck(this,SubjectDNs);(o=r.call(this,C,"subjectDNs",!0)).id=t.id||"";o.type=(0,g.getStringOption)(t.type,["optional","required"]);o.use=t.use||"";o.usehref=t.usehref||"";o.subjectDN=new u.XFAObjectArray;return o}return SubjectDNs}(u.XFAObject),xt=function(t){_inherits(Submit,t);var r=_createSuper(Submit);function Submit(t){var o;_classCallCheck(this,Submit);(o=r.call(this,C,"submit",!0)).embedPDF=(0,g.getInteger)({data:t.embedPDF,defaultValue:0,validate:function validate(t){return 1===t}});o.format=(0,g.getStringOption)(t.format,["xdp","formdata","pdf","urlencoded","xfd","xml"]);o.id=t.id||"";o.target=t.target||"";o.textEncoding=(0,g.getKeyword)({data:t.textEncoding?t.textEncoding.toLowerCase():"",defaultValue:"",validate:function validate(t){return["utf-8","big-five","fontspecific","gbk","gb-18030","gb-2312","ksc-5601","none","shift-jis","ucs-2","utf-16"].includes(t)||t.match(/iso-8859-\d{2}/)}});o.use=t.use||"";o.usehref=t.usehref||"";o.xdpContent=t.xdpContent||"";o.encrypt=null;o.encryptData=new u.XFAObjectArray;o.signData=new u.XFAObjectArray;return o}return Submit}(u.XFAObject),Ot=function(t){_inherits(Template,t);var r=_createSuper(Template);function Template(t){var o;_classCallCheck(this,Template);(o=r.call(this,C,"template",!0)).baseProfile=(0,g.getStringOption)(t.baseProfile,["full","interactiveForms"]);o.extras=null;o.subform=new u.XFAObjectArray;return o}_createClass(Template,[{key:u.$finalize,value:function value(){0===this.subform.children.length&&(0,y.warn)("XFA - No subforms in template node.");this.subform.children.length>=2&&(0,y.warn)("XFA - Several subforms in template node: please file a bug.");this[u.$tabIndex]=5e3}},{key:u.$isSplittable,value:function value(){return!0}},{key:u.$searchNode,value:function value(t,r){return t.startsWith("#")?[this[u.$ids].get(t.slice(1))]:(0,_.searchNode)(this,r,t,!0,!0)}},{key:u.$toHTML,value:function value(){var t=this;if(!this.subform.children.length)return g.HTMLResult.success({name:"div",children:[]});this[u.$extra]={overflowNode:null,firstUnsplittable:null,currentContentArea:null,currentPageArea:null,noLayoutFailure:!1,pageNumber:1,pagePosition:"first",oddOrEven:"odd",blankOrNotBlank:"nonBlank",paraStack:[]};var r=this.subform.children[0];r.pageSet[u.$cleanPage]();var o=r.pageSet.pageArea.children,l={name:"div",children:[]},c=null,h=null,d=null;r.breakBefore.children.length>=1?d=(h=r.breakBefore.children[0]).target:r.subform.children.length>=1&&r.subform.children[0].breakBefore.children.length>=1?d=(h=r.subform.children[0].breakBefore.children[0]).target:r.break&&r.break.beforeTarget?d=(h=r.break).beforeTarget:r.subform.children.length>=1&&r.subform.children[0].break&&r.subform.children[0].break.beforeTarget&&(d=(h=r.subform.children[0].break).beforeTarget);if(h){var m=this[u.$searchNode](d,h[u.$getParent]());if(m instanceof tt){c=m;h[u.$extra]={}}}c||(c=o[0]);c[u.$extra]={numberOfUse:1};var v,S=c[u.$getParent]();S[u.$extra]={numberOfUse:1,pageIndex:S.pageArea.children.indexOf(c),pageSetIndex:0};for(var _=null,k=null,C=!0,w=0,x=0,O=function _loop(){if(C)w=0;else{l.children.pop();if(3==++w){(0,y.warn)("XFA - Something goes wrong: please file a bug.");return{v:l}}}v=null;t[u.$extra].currentPageArea=c;var o=c[u.$toHTML]().html;l.children.push(o);if(_){t[u.$extra].noLayoutFailure=!0;o.children.push(_[u.$toHTML](c[u.$extra].space).html);_=null}if(k){t[u.$extra].noLayoutFailure=!0;o.children.push(k[u.$toHTML](c[u.$extra].space).html);k=null}var h=c.contentArea.children,d=o.children.filter((function(t){return t.attributes.class.includes("xfaContentarea")}));C=!1;t[u.$extra].firstUnsplittable=null;t[u.$extra].noLayoutFailure=!1;for(var m=function flush(t){var o=r[u.$flushHTML]();if(o){C=C||o.children&&0!==o.children.length;d[t].children.push(o)}},g=x,S=h.length;g<S;g++){var O=t[u.$extra].currentContentArea=h[g],T={width:O.w,height:O.h};x=0;if(_){d[g].children.push(_[u.$toHTML](T).html);_=null}if(k){d[g].children.push(k[u.$toHTML](T).html);k=null}var R=r[u.$toHTML](T);if(R.success){if(R.html){C=C||R.html.children&&0!==R.html.children.length;d[g].children.push(R.html)}else C||l.children.pop();return{v:l}}if(R.isBreak()){var E=R.breakNode;m(g);if("auto"===E.targetType)continue;E.leader&&(_=(_=t[u.$searchNode](E.leader,E[u.$getParent]()))?_[0]:null);E.trailer&&(k=(k=t[u.$searchNode](E.trailer,E[u.$getParent]()))?k[0]:null);if("pageArea"===E.targetType){v=E[u.$extra].target;g=1/0}else if(E[u.$extra].target){v=E[u.$extra].target;x=E[u.$extra].index+1;g=1/0}else g=E[u.$extra].index}else{if(t[u.$extra].overflowNode){var M=function(){var r=t[u.$extra].overflowNode;t[u.$extra].overflowNode=null;var o=r[u.$getExtra](),l=o.target;o.addLeader=null!==o.leader;o.addTrailer=null!==o.trailer;m(g);var c=g;g=1/0;if(l instanceof tt)v=l;else if(l instanceof re){var d=h.findIndex((function(t){return t===l}));if(-1!==d)d>c?g=d-1:x=d;else{v=l[u.$getParent]();x=v.contentArea.children.findIndex((function(t){return t===l}))}}return"continue"}();if("continue"===M)continue}m(g)}}t[u.$extra].pageNumber+=1;v&&(v[u.$isUsable]()?v[u.$extra].numberOfUse+=1:v=null);c=v||c[u.$getNextPage]()};;){var T=O();if("object"===_typeof(T))return T.v}}}]);return Template}(u.XFAObject);r.Template=Ot;var Pt=function(t){_inherits(Text,t);var r=_createSuper(Text);function Text(t){var o;_classCallCheck(this,Text);(o=r.call(this,C,"text")).id=t.id||"";o.maxChars=(0,g.getInteger)({data:t.maxChars,defaultValue:0,validate:function validate(t){return t>=0}});o.name=t.name||"";o.rid=t.rid||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}_createClass(Text,[{key:u.$acceptWhitespace,value:function value(){return!0}},{key:u.$onChild,value:function value(t){if(t[u.$namespaceId]===h.NamespaceIds.xhtml.id){this[u.$content]=t;return!0}(0,y.warn)("XFA - Invalid content in Text: ".concat(t[u.$nodeName],"."));return!1}},{key:u.$onText,value:function value(t){this[u.$content]instanceof u.XFAObject||_get(_getPrototypeOf(Text.prototype),u.$onText,this).call(this,t)}},{key:u.$finalize,value:function value(){"string"==typeof this[u.$content]&&(this[u.$content]=this[u.$content].replace(/\r\n/g,"\n"))}},{key:u.$getExtra,value:function value(){return"string"==typeof this[u.$content]?this[u.$content].split(/[\u2029\u2028\n]/).reduce((function(t,r){r&&t.push(r);return t}),[]).join("\n"):this[u.$content][u.$text]()}},{key:u.$toHTML,value:function value(t){if("string"==typeof this[u.$content]){var r=valueToHtml(this[u.$content]).html;if(this[u.$content].includes("\u2029")){r.name="div";r.children=[];this[u.$content].split("\u2029").map((function(t){return t.split(/[\u2028\n]/).reduce((function(t,r){t.push({name:"span",value:r},{name:"br"});return t}),[])})).forEach((function(t){r.children.push({name:"p",children:t})}))}else if(/[\u2028\n]/.test(this[u.$content])){r.name="div";r.children=[];this[u.$content].split(/[\u2028\n]/).forEach((function(t){r.children.push({name:"span",value:t},{name:"br"})}))}return g.HTMLResult.success(r)}return this[u.$content][u.$toHTML](t)}}]);return Text}(u.ContentObject);r.Text=Pt;var Tt=function(t){_inherits(TextEdit,t);var r=_createSuper(TextEdit);function TextEdit(t){var o;_classCallCheck(this,TextEdit);(o=r.call(this,C,"textEdit",!0)).allowRichText=(0,g.getInteger)({data:t.allowRichText,defaultValue:0,validate:function validate(t){return 1===t}});o.hScrollPolicy=(0,g.getStringOption)(t.hScrollPolicy,["auto","off","on"]);o.id=t.id||"";o.multiLine=(0,g.getInteger)({data:t.multiLine,defaultValue:"",validate:function validate(t){return 0===t||1===t}});o.use=t.use||"";o.usehref=t.usehref||"";o.vScrollPolicy=(0,g.getStringOption)(t.vScrollPolicy,["auto","off","on"]);o.border=null;o.comb=null;o.extras=null;o.margin=null;return o}_createClass(TextEdit,[{key:u.$toHTML,value:function value(t){var r,o=(0,m.toStyle)(this,"border","font","margin"),l=this[u.$getParent]()[u.$getParent]();""===this.multiLine&&(this.multiLine=l instanceof he?1:0);r=1===this.multiLine?{name:"textarea",attributes:{dataId:l[u.$data]&&l[u.$data][u.$uid]||l[u.$uid],fieldId:l[u.$uid],class:["xfaTextfield"],style:o,"aria-label":ariaLabel(l)}}:{name:"input",attributes:{type:"text",dataId:l[u.$data]&&l[u.$data][u.$uid]||l[u.$uid],fieldId:l[u.$uid],class:["xfaTextfield"],style:o,"aria-label":ariaLabel(l)}};return g.HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[r]})}}]);return TextEdit}(u.XFAObject),It=function(t){_inherits(Time,t);var r=_createSuper(Time);function Time(t){var o;_classCallCheck(this,Time);(o=r.call(this,C,"time")).id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}_createClass(Time,[{key:u.$finalize,value:function value(){var t=this[u.$content].trim();this[u.$content]=t?new Date(t):null}},{key:u.$toHTML,value:function value(t){return valueToHtml(this[u.$content]?this[u.$content].toString():"")}}]);return Time}(u.StringObject),Ft=function(t){_inherits(TimeStamp,t);var r=_createSuper(TimeStamp);function TimeStamp(t){var o;_classCallCheck(this,TimeStamp);(o=r.call(this,C,"timeStamp")).id=t.id||"";o.server=t.server||"";o.type=(0,g.getStringOption)(t.type,["optional","required"]);o.use=t.use||"";o.usehref=t.usehref||"";return o}return TimeStamp}(u.XFAObject),Rt=function(t){_inherits(ToolTip,t);var r=_createSuper(ToolTip);function ToolTip(t){var o;_classCallCheck(this,ToolTip);(o=r.call(this,C,"toolTip")).id=t.id||"";o.rid=t.rid||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return ToolTip}(u.StringObject),Et=function(t){_inherits(Traversal,t);var r=_createSuper(Traversal);function Traversal(t){var o;_classCallCheck(this,Traversal);(o=r.call(this,C,"traversal",!0)).id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";o.extras=null;o.traverse=new u.XFAObjectArray;return o}return Traversal}(u.XFAObject),Mt=function(t){_inherits(Traverse,t);var r=_createSuper(Traverse);function Traverse(t){var o;_classCallCheck(this,Traverse);(o=r.call(this,C,"traverse",!0)).id=t.id||"";o.operation=(0,g.getStringOption)(t.operation,["next","back","down","first","left","right","up"]);o.ref=t.ref||"";o.use=t.use||"";o.usehref=t.usehref||"";o.extras=null;o.script=null;return o}_createClass(Traverse,[{key:"name",get:function get(){return this.operation}},{key:u.$isTransparent,value:function value(){return!1}}]);return Traverse}(u.XFAObject),Bt=function(t){_inherits(Ui,t);var r=_createSuper(Ui);function Ui(t){var o;_classCallCheck(this,Ui);(o=r.call(this,C,"ui",!0)).id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";o.extras=null;o.picture=null;o.barcode=null;o.button=null;o.checkButton=null;o.choiceList=null;o.dateTimeEdit=null;o.defaultUi=null;o.imageEdit=null;o.numericEdit=null;o.passwordEdit=null;o.signature=null;o.textEdit=null;return o}_createClass(Ui,[{key:u.$getExtra,value:function value(){if(void 0===this[u.$extra]){var t,r=_createForOfIteratorHelper(Object.getOwnPropertyNames(this));try{for(r.s();!(t=r.n()).done;){var o=t.value;if("extras"!==o&&"picture"!==o){var l=this[o];if(l instanceof u.XFAObject){this[u.$extra]=l;return l}}}}catch(t){r.e(t)}finally{r.f()}this[u.$extra]=null}return this[u.$extra]}},{key:u.$toHTML,value:function value(t){var r=this[u.$getExtra]();return r?r[u.$toHTML](t):g.HTMLResult.EMPTY}}]);return Ui}(u.XFAObject),Dt=function(t){_inherits(Validate,t);var r=_createSuper(Validate);function Validate(t){var o;_classCallCheck(this,Validate);(o=r.call(this,C,"validate",!0)).formatTest=(0,g.getStringOption)(t.formatTest,["warning","disabled","error"]);o.id=t.id||"";o.nullTest=(0,g.getStringOption)(t.nullTest,["disabled","error","warning"]);o.scriptTest=(0,g.getStringOption)(t.scriptTest,["error","disabled","warning"]);o.use=t.use||"";o.usehref=t.usehref||"";o.extras=null;o.message=null;o.picture=null;o.script=null;return o}return Validate}(u.XFAObject),jt=function(t){_inherits(Value,t);var r=_createSuper(Value);function Value(t){var o;_classCallCheck(this,Value);(o=r.call(this,C,"value",!0)).id=t.id||"";o.override=(0,g.getInteger)({data:t.override,defaultValue:0,validate:function validate(t){return 1===t}});o.relevant=(0,g.getRelevant)(t.relevant);o.use=t.use||"";o.usehref=t.usehref||"";o.arc=null;o.boolean=null;o.date=null;o.dateTime=null;o.decimal=null;o.exData=null;o.float=null;o.image=null;o.integer=null;o.line=null;o.rectangle=null;o.text=null;o.time=null;return o}_createClass(Value,[{key:u.$setValue,value:function(t){function value(r){return t.apply(this,arguments)}value.toString=function(){return t.toString()};return value}((function(t){var r=this[u.$getParent]();if(r instanceof Oe&&r.ui&&r.ui.imageEdit){if(!this.image){this.image=new Be({});this[u.$appendChild](this.image)}this.image[u.$content]=t[u.$content]}else{var o=t[u.$nodeName];if(null===this[o]){var l,c=_createForOfIteratorHelper(Object.getOwnPropertyNames(this));try{for(c.s();!(l=c.n()).done;){var h=l.value,d=this[h];if(d instanceof u.XFAObject){this[h]=null;this[u.$removeChild](d)}}}catch(t){c.e(t)}finally{c.f()}this[t[u.$nodeName]]=t;this[u.$appendChild](t)}else this[o][u.$content]=t[u.$content]}}))},{key:u.$text,value:function value(){if(this.exData)return"string"==typeof this.exData[u.$content]?this.exData[u.$content].trim():this.exData[u.$content][u.$text]().trim();var t,r=_createForOfIteratorHelper(Object.getOwnPropertyNames(this));try{for(r.s();!(t=r.n()).done;){var o=t.value;if("image"!==o){var l=this[o];if(l instanceof u.XFAObject)return(l[u.$content]||"").toString().trim()}}}catch(t){r.e(t)}finally{r.f()}return null}},{key:u.$toHTML,value:function value(t){var r,o=_createForOfIteratorHelper(Object.getOwnPropertyNames(this));try{for(o.s();!(r=o.n()).done;){var l=this[r.value];if(l instanceof u.XFAObject)return l[u.$toHTML](t)}}catch(t){o.e(t)}finally{o.f()}return g.HTMLResult.EMPTY}}]);return Value}(u.XFAObject);r.Value=jt;var Lt=function(t){_inherits(Variables,t);var r=_createSuper(Variables);function Variables(t){var o;_classCallCheck(this,Variables);(o=r.call(this,C,"variables",!0)).id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";o.boolean=new u.XFAObjectArray;o.date=new u.XFAObjectArray;o.dateTime=new u.XFAObjectArray;o.decimal=new u.XFAObjectArray;o.exData=new u.XFAObjectArray;o.float=new u.XFAObjectArray;o.image=new u.XFAObjectArray;o.integer=new u.XFAObjectArray;o.manifest=new u.XFAObjectArray;o.script=new u.XFAObjectArray;o.text=new u.XFAObjectArray;o.time=new u.XFAObjectArray;return o}_createClass(Variables,[{key:u.$isTransparent,value:function value(){return!0}}]);return Variables}(u.XFAObject),Nt=function(){function TemplateNamespace(){_classCallCheck(this,TemplateNamespace)}_createClass(TemplateNamespace,null,[{key:h.$buildXFAObject,value:function value(t,r){if(TemplateNamespace.hasOwnProperty(t)){var o=TemplateNamespace[t](r);o[u.$setSetAttributes](r);return o}}},{key:"appearanceFilter",value:function appearanceFilter(t){return new R(t)}},{key:"arc",value:function arc(t){return new E(t)}},{key:"area",value:function area(t){return new M(t)}},{key:"assist",value:function assist(t){return new D(t)}},{key:"barcode",value:function barcode(t){return new j(t)}},{key:"bind",value:function bind(t){return new L(t)}},{key:"bindItems",value:function bindItems(t){return new N(t)}},{key:"bookend",value:function bookend(t){return new U(t)}},{key:"boolean",value:function boolean(t){return new H(t)}},{key:"border",value:function border(t){return new W(t)}},{key:"break",value:function _break(t){return new $(t)}},{key:"breakAfter",value:function breakAfter(t){return new q(t)}},{key:"breakBefore",value:function breakBefore(t){return new X(t)}},{key:"button",value:function button(t){return new z(t)}},{key:"calculate",value:function calculate(t){return new G(t)}},{key:"caption",value:function caption(t){return new V(t)}},{key:"certificate",value:function certificate(t){return new Y(t)}},{key:"certificates",value:function certificates(t){return new K(t)}},{key:"checkButton",value:function checkButton(t){return new J(t)}},{key:"choiceList",value:function choiceList(t){return new Q(t)}},{key:"color",value:function color(t){return new Z(t)}},{key:"comb",value:function comb(t){return new ee(t)}},{key:"connect",value:function connect(t){return new te(t)}},{key:"contentArea",value:function contentArea(t){return new re(t)}},{key:"corner",value:function corner(t){return new ae(t)}},{key:"date",value:function date(t){return new ne(t)}},{key:"dateTime",value:function dateTime(t){return new ie(t)}},{key:"dateTimeEdit",value:function dateTimeEdit(t){return new oe(t)}},{key:"decimal",value:function decimal(t){return new se(t)}},{key:"defaultUi",value:function defaultUi(t){return new le(t)}},{key:"desc",value:function desc(t){return new ce(t)}},{key:"digestMethod",value:function digestMethod(t){return new ue(t)}},{key:"digestMethods",value:function digestMethods(t){return new fe(t)}},{key:"draw",value:function draw(t){return new he(t)}},{key:"edge",value:function edge(t){return new de(t)}},{key:"encoding",value:function encoding(t){return new pe(t)}},{key:"encodings",value:function encodings(t){return new me(t)}},{key:"encrypt",value:function encrypt(t){return new ge(t)}},{key:"encryptData",value:function encryptData(t){return new ye(t)}},{key:"encryption",value:function encryption(t){return new ve(t)}},{key:"encryptionMethod",value:function encryptionMethod(t){return new be(t)}},{key:"encryptionMethods",value:function encryptionMethods(t){return new Se(t)}},{key:"event",value:function event(t){return new _e(t)}},{key:"exData",value:function exData(t){return new ke(t)}},{key:"exObject",value:function exObject(t){return new Ce(t)}},{key:"exclGroup",value:function exclGroup(t){return new we(t)}},{key:"execute",value:function execute(t){return new Ae(t)}},{key:"extras",value:function extras(t){return new xe(t)}},{key:"field",value:function field(t){return new Oe(t)}},{key:"fill",value:function fill(t){return new Pe(t)}},{key:"filter",value:function filter(t){return new Te(t)}},{key:"float",value:function float(t){return new Ie(t)}},{key:"font",value:function font(t){return new Fe(t)}},{key:"format",value:function format(t){return new Re(t)}},{key:"handler",value:function handler(t){return new Ee(t)}},{key:"hyphenation",value:function hyphenation(t){return new Me(t)}},{key:"image",value:function image(t){return new Be(t)}},{key:"imageEdit",value:function imageEdit(t){return new De(t)}},{key:"integer",value:function integer(t){return new je(t)}},{key:"issuers",value:function issuers(t){return new Le(t)}},{key:"items",value:function items(t){return new Ne(t)}},{key:"keep",value:function keep(t){return new Ue(t)}},{key:"keyUsage",value:function keyUsage(t){return new He(t)}},{key:"line",value:function line(t){return new We(t)}},{key:"linear",value:function linear(t){return new $e(t)}},{key:"lockDocument",value:function lockDocument(t){return new qe(t)}},{key:"manifest",value:function manifest(t){return new Xe(t)}},{key:"margin",value:function margin(t){return new ze(t)}},{key:"mdp",value:function mdp(t){return new Ge(t)}},{key:"medium",value:function medium(t){return new Ve(t)}},{key:"message",value:function message(t){return new Ye(t)}},{key:"numericEdit",value:function numericEdit(t){return new Ke(t)}},{key:"occur",value:function occur(t){return new Je(t)}},{key:"oid",value:function oid(t){return new Qe(t)}},{key:"oids",value:function oids(t){return new Ze(t)}},{key:"overflow",value:function overflow(t){return new et(t)}},{key:"pageArea",value:function pageArea(t){return new tt(t)}},{key:"pageSet",value:function pageSet(t){return new rt(t)}},{key:"para",value:function para(t){return new at(t)}},{key:"passwordEdit",value:function passwordEdit(t){return new nt(t)}},{key:"pattern",value:function pattern(t){return new it(t)}},{key:"picture",value:function picture(t){return new ot(t)}},{key:"proto",value:function proto(t){return new st(t)}},{key:"radial",value:function radial(t){return new lt(t)}},{key:"reason",value:function reason(t){return new ct(t)}},{key:"reasons",value:function reasons(t){return new ut(t)}},{key:"rectangle",value:function rectangle(t){return new ft(t)}},{key:"ref",value:function ref(t){return new ht(t)}},{key:"script",value:function script(t){return new dt(t)}},{key:"setProperty",value:function setProperty(t){return new mt(t)}},{key:"signData",value:function signData(t){return new gt(t)}},{key:"signature",value:function signature(t){return new yt(t)}},{key:"signing",value:function signing(t){return new vt(t)}},{key:"solid",value:function solid(t){return new bt(t)}},{key:"speak",value:function speak(t){return new St(t)}},{key:"stipple",value:function stipple(t){return new _t(t)}},{key:"subform",value:function subform(t){return new kt(t)}},{key:"subformSet",value:function subformSet(t){return new Ct(t)}},{key:"subjectDN",value:function subjectDN(t){return new wt(t)}},{key:"subjectDNs",value:function subjectDNs(t){return new At(t)}},{key:"submit",value:function submit(t){return new xt(t)}},{key:"template",value:function template(t){return new Ot(t)}},{key:"text",value:function text(t){return new Pt(t)}},{key:"textEdit",value:function textEdit(t){return new Tt(t)}},{key:"time",value:function time(t){return new It(t)}},{key:"timeStamp",value:function timeStamp(t){return new Ft(t)}},{key:"toolTip",value:function toolTip(t){return new Rt(t)}},{key:"traversal",value:function traversal(t){return new Et(t)}},{key:"traverse",value:function traverse(t){return new Mt(t)}},{key:"ui",value:function ui(t){return new Bt(t)}},{key:"validate",value:function validate(t){return new Dt(t)}},{key:"value",value:function value(t){return new jt(t)}},{key:"variables",value:function variables(t){return new Lt(t)}}]);return TemplateNamespace}();r.TemplateNamespace=Nt},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.addHTML=function addHTML(t,r,o){var u=t[l.$extra],h=u.availableSpace,d=_slicedToArray(o,4),m=d[0],g=d[1],y=d[2],v=d[3];switch(t.layout){case"position":u.width=Math.max(u.width,m+y);u.height=Math.max(u.height,g+v);u.children.push(r);break;case"lr-tb":case"rl-tb":if(!u.line||1===u.attempt){u.line=createLine(t,[]);u.children.push(u.line);u.numberInLine=0}u.numberInLine+=1;u.line.children.push(r);if(0===u.attempt){u.currentWidth+=y;u.height=Math.max(u.height,u.prevHeight+v)}else{u.currentWidth=y;u.prevHeight=u.height;u.height+=v;u.attempt=0}u.width=Math.max(u.width,u.currentWidth);break;case"rl-row":case"row":u.children.push(r);u.width+=y;u.height=Math.max(u.height,v);var S,_=(0,c.measureToString)(u.height),k=function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}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 u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}(u.children);try{for(k.s();!(S=k.n()).done;){S.value.attributes.style.height=_}}catch(t){k.e(t)}finally{k.f()}break;case"table":u.width=Math.min(h.width,Math.max(u.width,y));u.height+=v;u.children.push(r);break;case"tb":u.width=h.width;u.height+=v;u.children.push(r)}};r.checkDimensions=function checkDimensions(t,r){if(null===t[l.$getTemplateRoot]()[l.$extra].firstUnsplittable)return!0;if(0===t.w||0===t.h)return!0;var o=t[l.$getSubformParent](),c=o[l.$extra]&&o[l.$extra].attempt||0,u=_slicedToArray(function getTransformedBBox(t){var r,o,l=""===t.w?NaN:t.w,c=""===t.h?NaN:t.h,u=0,h=0;switch(t.anchorType||""){case"bottomCenter":u=l/2;h=c;break;case"bottomLeft":u=0;h=c;break;case"bottomRight":u=l;h=c;break;case"middleCenter":u=l/2;h=c/2;break;case"middleLeft":u=0;h=c/2;break;case"middleRight":u=l;h=c/2;break;case"topCenter":u=l/2;h=0;break;case"topRight":u=l;h=0}switch(t.rotate||0){case 0:r=-u;o=-h;break;case 90:r=-h;o=u;var d=[c,-l];l=d[0];c=d[1];break;case 180:r=u;o=h;var m=[-l,-c];l=m[0];c=m[1];break;case 270:r=h;o=-u;var g=[-c,l];l=g[0];c=g[1]}return[t.x+r+Math.min(0,l),t.y+o+Math.min(0,c),Math.abs(l),Math.abs(c)]}(t),4),h=u[1],d=u[2],m=u[3];switch(o.layout){case"lr-tb":case"rl-tb":return 0===c?t[l.$getTemplateRoot]()[l.$extra].noLayoutFailure?""!==t.w?Math.round(d-r.width)<=2:r.width>2:!(""!==t.h&&Math.round(m-r.height)>2)&&(""!==t.w?Math.round(d-r.width)<=2||0===o[l.$extra].numberInLine&&r.height>2:r.width>2):!!t[l.$getTemplateRoot]()[l.$extra].noLayoutFailure||!(""!==t.h&&Math.round(m-r.height)>2)&&((""===t.w||Math.round(d-r.width)<=2||!o[l.$isThereMoreWidth]())&&r.height>2);case"table":case"tb":return!!t[l.$getTemplateRoot]()[l.$extra].noLayoutFailure||(""===t.h||t[l.$isSplittable]()?(""===t.w||Math.round(d-r.width)<=2||!o[l.$isThereMoreWidth]())&&r.height>2:Math.round(m-r.height)<=2);case"position":if(t[l.$getTemplateRoot]()[l.$extra].noLayoutFailure)return!0;if(""===t.h||Math.round(m+h-r.height)<=2)return!0;var g=t[l.$getTemplateRoot]()[l.$extra].currentContentArea;return m+h>g.h;case"rl-row":case"row":return!!t[l.$getTemplateRoot]()[l.$extra].noLayoutFailure||(""===t.h||Math.round(m-r.height)<=2);default:return!0}};r.flushHTML=function flushHTML(t){if(!t[l.$extra])return null;var r={name:"div",attributes:t[l.$extra].attributes,children:t[l.$extra].children};if(t[l.$extra].failingNode){var o=t[l.$extra].failingNode[l.$flushHTML]();o&&(t.layout.endsWith("-tb")?r.children.push(createLine(t,[o])):r.children.push(o))}if(0===r.children.length)return null;return r};r.getAvailableSpace=function getAvailableSpace(t){var r=t[l.$extra].availableSpace,o=t.margin?t.margin.topInset+t.margin.bottomInset:0,c=t.margin?t.margin.leftInset+t.margin.rightInset:0;switch(t.layout){case"lr-tb":case"rl-tb":return 0===t[l.$extra].attempt?{width:r.width-c-t[l.$extra].currentWidth,height:r.height-o-t[l.$extra].prevHeight}:{width:r.width-c,height:r.height-o-t[l.$extra].height};case"rl-row":case"row":return{width:t[l.$extra].columnWidths.slice(t[l.$extra].currentColumn).reduce((function(t,r){return t+r})),height:r.height-c};case"table":case"tb":return{width:r.width-c,height:r.height-o-t[l.$extra].height};default:return r}};var l=o(188),c=o(195);function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||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 _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function createLine(t,r){return{name:"div",attributes:{class:["lr-tb"===t.layout?"xfaLr":"xfaRl"]},children:r}}},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.computeBbox=function computeBbox(t,r,o){var c;if(""!==t.w&&""!==t.h)c=[t.x,t.y,t.w,t.h];else{if(!o)return null;var u=t.w;if(""===u){if(0===t.maxW){var h=t[l.$getSubformParent]();u="position"===h.layout&&""!==h.w?0:t.minW}else u=Math.min(t.maxW,o.width);r.attributes.style.width=measureToString(u)}var d=t.h;if(""===d){if(0===t.maxH){var m=t[l.$getSubformParent]();d="position"===m.layout&&""!==m.h?0:t.minH}else d=Math.min(t.maxH,o.height);r.attributes.style.height=measureToString(d)}c=[t.x,t.y,u,d]}return c};r.createWrapper=function createWrapper(t,r){var o=r.attributes,c=o.style,u={name:"div",attributes:{class:["xfaWrapper"],style:Object.create(null)},children:[]};o.class.push("xfaWrapped");if(t.border){var h,d,m=t.border[l.$extra],g=m.widths,y=m.insets,v=y[0],S=y[3],_=y[0]+y[2],k=y[1]+y[3];switch(t.border.hand){case"even":v-=g[0]/2;S-=g[3]/2;h="calc(100% + ".concat((g[1]+g[3])/2-k,"px)");d="calc(100% + ".concat((g[0]+g[2])/2-_,"px)");break;case"left":v-=g[0];S-=g[3];h="calc(100% + ".concat(g[1]+g[3]-k,"px)");d="calc(100% + ".concat(g[0]+g[2]-_,"px)");break;case"right":h=k?"calc(100% - ".concat(k,"px)"):"100%";d=_?"calc(100% - ".concat(_,"px)"):"100%"}var C=["xfaBorder"];isPrintOnly(t.border)&&C.push("xfaPrintOnly");for(var w={name:"div",attributes:{class:C,style:{top:"".concat(v,"px"),left:"".concat(S,"px"),width:h,height:d}},children:[]},x=0,O=["border","borderWidth","borderColor","borderRadius","borderStyle"];x<O.length;x++){var T=O[x];if(void 0!==c[T]){w.attributes.style[T]=c[T];delete c[T]}}u.children.push(w,r)}else u.children.push(r);for(var R=0,E=["background","backgroundClip","top","left","width","height","minWidth","minHeight","maxWidth","maxHeight","transform","transformOrigin","visibility"];R<E.length;R++){var M=E[R];if(void 0!==c[M]){u.attributes.style[M]=c[M];delete c[M]}}"absolute"===c.position?u.attributes.style.position="absolute":u.attributes.style.position="relative";delete c.position;if(c.alignSelf){u.attributes.style.alignSelf=c.alignSelf;delete c.alignSelf}return u};r.fixDimensions=function fixDimensions(t){var r=t[l.$getSubformParent]();if(r.layout&&r.layout.includes("row")){var o,c=r[l.$extra],u=t.colSpan;o=-1===u?c.columnWidths.slice(c.currentColumn).reduce((function(t,r){return t+r}),0):c.columnWidths.slice(c.currentColumn,c.currentColumn+u).reduce((function(t,r){return t+r}),0);isNaN(o)||(t.w=o)}r.layout&&"position"!==r.layout&&(t.x=t.y=0);"table"===t.layout&&""===t.w&&Array.isArray(t.columnWidths)&&(t.w=t.columnWidths.reduce((function(t,r){return t+r}),0))};r.fixTextIndent=function fixTextIndent(t){var r=(0,u.getMeasurement)(t.textIndent,"0px");if(r>=0)return;var o="padding"+("left"==("right"===t.textAlign?"right":"left")?"Left":"Right"),l=(0,u.getMeasurement)(t[o],"0px");t[o]="".concat(l-r,"px")};r.fixURL=function fixURL(t){var r=(0,c.createValidAbsoluteUrl)(t,null,{addDefaultProtocol:!0,tryConvertEncoding:!0});return r?r.href:null};r.isPrintOnly=isPrintOnly;r.layoutClass=function layoutClass(t){switch(t.layout){case"position":return"xfaPosition";case"lr-tb":return"xfaLrTb";case"rl-row":return"xfaRlRow";case"rl-tb":return"xfaRlTb";case"row":return"xfaRow";case"table":return"xfaTable";case"tb":return"xfaTb";default:return"xfaPosition"}};r.layoutNode=function layoutNode(t,r){var o=null,c=null,u=!1;if((!t.w||!t.h)&&t.value){var h=0,d=0;if(t.margin){h=t.margin.leftInset+t.margin.rightInset;d=t.margin.topInset+t.margin.bottomInset}var m=null,g=null;if(t.para){g=Object.create(null);m=""===t.para.lineHeight?null:t.para.lineHeight;g.top=""===t.para.spaceAbove?0:t.para.spaceAbove;g.bottom=""===t.para.spaceBelow?0:t.para.spaceBelow;g.left=""===t.para.marginLeft?0:t.para.marginLeft;g.right=""===t.para.marginRight?0:t.para.marginRight}var y=t.font;if(!y)for(var v=t[l.$getTemplateRoot](),S=t[l.$getParent]();S!==v;){if(S.font){y=S.font;break}S=S[l.$getParent]()}var _=(t.w?t.w:r.width)-h,k=t[l.$globalData].fontFinder;if(t.value.exData&&t.value.exData[l.$content]&&"text/html"===t.value.exData.contentType){var C=layoutText(t.value.exData[l.$content],y,g,m,k,_);c=C.width;o=C.height;u=C.isBroken}else{var w=t.value[l.$text]();if(w){var x=layoutText(w,y,g,m,k,_);c=x.width;o=x.height;u=x.isBroken}}null===c||t.w||(c+=h);null===o||t.h||(o+=d)}return{w:c,h:o,isBroken:u}};r.measureToString=measureToString;r.setAccess=function setAccess(t,r){switch(t.access){case"nonInteractive":r.push("xfaNonInteractive");break;case"readOnly":r.push("xfaReadOnly");break;case"protected":r.push("xfaDisabled")}};r.setFontFamily=function setFontFamily(t,r,o,l){var c=(0,u.stripQuotes)(t.typeface),d=o.find(c);l.fontFamily='"'.concat(c,'"');if(d){var m=d.regular.cssFontInfo.fontFamily;m!==c&&(l.fontFamily='"'.concat(m,'"'));var g=getCurrentPara(r);if(g&&""!==g.lineHeight)return;if(l.lineHeight)return;var y=(0,h.selectFont)(t,d);y&&(l.lineHeight=Math.max(1.2,y.lineHeight))}};r.setMinMaxDimensions=function setMinMaxDimensions(t,r){if("position"===t[l.$getSubformParent]().layout){t.minW>0&&(r.minWidth=measureToString(t.minW));t.maxW>0&&(r.maxWidth=measureToString(t.maxW));t.minH>0&&(r.minHeight=measureToString(t.minH));t.maxH>0&&(r.maxHeight=measureToString(t.maxH))}};r.setPara=function setPara(t,r,o){if(o.attributes.class&&o.attributes.class.includes("xfaRich")){if(r){""===t.h&&(r.height="auto");""===t.w&&(r.width="auto")}var c=getCurrentPara(t);if(c){var u=o.attributes.style;u.display="flex";u.flexDirection="column";switch(c.vAlign){case"top":u.justifyContent="start";break;case"bottom":u.justifyContent="end";break;case"middle":u.justifyContent="center"}for(var h=c[l.$toStyle](),d=0,m=Object.entries(h);d<m.length;d++){var g=(S=m[d],_=2,function _arrayWithHoles(t){if(Array.isArray(t))return t}(S)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(S,_)||function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);if("Map"===o||"Set"===o)return Array.from(t);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return _arrayLikeToArray(t,r)}(S,_)||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.")}()),y=g[0],v=g[1];y in u||(u[y]=v)}}}var S,_};r.toStyle=function toStyle(t){for(var r=Object.create(null),o=arguments.length,u=new Array(o>1?o-1:0),h=1;h<o;h++)u[h-1]=arguments[h];for(var d=0,g=u;d<g.length;d++){var y=g[d],v=t[y];if(null!==v)if(m.hasOwnProperty(y))m[y](t,r);else if(v instanceof l.XFAObject){var S=v[l.$toStyle]();S?Object.assign(r,S):(0,c.warn)("(DEBUG) - XFA - style for ".concat(y," not implemented yet"))}}return r};var l=o(188),c=o(4),u=o(189),h=o(196),d=o(197);function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function measureToString(t){return"string"==typeof t?"0px":Number.isInteger(t)?"".concat(t,"px"):"".concat(t.toFixed(2),"px")}var m={anchorType:function anchorType(t,r){var o=t[l.$getSubformParent]();if(o&&(!o.layout||"position"===o.layout)){"transform"in r||(r.transform="");switch(t.anchorType){case"bottomCenter":r.transform+="translate(-50%, -100%)";break;case"bottomLeft":r.transform+="translate(0,-100%)";break;case"bottomRight":r.transform+="translate(-100%,-100%)";break;case"middleCenter":r.transform+="translate(-50%,-50%)";break;case"middleLeft":r.transform+="translate(0,-50%)";break;case"middleRight":r.transform+="translate(-100%,-50%)";break;case"topCenter":r.transform+="translate(-50%,0)";break;case"topRight":r.transform+="translate(-100%,0)"}}},dimensions:function dimensions(t,r){var o=t[l.$getSubformParent](),c=t.w,u=t.h;if(o.layout&&o.layout.includes("row")){var h,d=o[l.$extra],m=t.colSpan;if(-1===m){h=d.columnWidths.slice(d.currentColumn).reduce((function(t,r){return t+r}),0);d.currentColumn=0}else{h=d.columnWidths.slice(d.currentColumn,d.currentColumn+m).reduce((function(t,r){return t+r}),0);d.currentColumn=(d.currentColumn+t.colSpan)%d.columnWidths.length}isNaN(h)||(c=t.w=h)}r.width=""!==c?measureToString(c):"auto";r.height=""!==u?measureToString(u):"auto"},position:function position(t,r){var o=t[l.$getSubformParent]();if(!o||!o.layout||"position"===o.layout){r.position="absolute";r.left=measureToString(t.x);r.top=measureToString(t.y)}},rotate:function rotate(t,r){if(t.rotate){"transform"in r||(r.transform="");r.transform+="rotate(-".concat(t.rotate,"deg)");r.transformOrigin="top left"}},presence:function presence(t,r){switch(t.presence){case"invisible":r.visibility="hidden";break;case"hidden":case"inactive":r.display="none"}},hAlign:function hAlign(t,r){if("para"===t[l.$nodeName])switch(t.hAlign){case"justifyAll":r.textAlign="justify-all";break;case"radix":r.textAlign="left";break;default:r.textAlign=t.hAlign}else switch(t.hAlign){case"left":r.alignSelf="start";break;case"center":r.alignSelf="center";break;case"right":r.alignSelf="end"}},margin:function margin(t,r){t.margin&&(r.margin=t.margin[l.$toStyle]().margin)}};function layoutText(t,r,o,c,u,h){var m=new d.TextMeasure(r,o,c,u);"string"==typeof t?m.addString(t):t[l.$pushGlyphs](m);return m.compute(h)}function isPrintOnly(t){return t.relevant.length>0&&!t.relevant[0].excluded&&"print"===t.relevant[0].viewname}function getCurrentPara(t){var r=t[l.$getTemplateRoot]()[l.$extra].paraStack;return r.length?r[r.length-1]:null}},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.getMetrics=function getMetrics(t){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=null;if(t){var u=(0,c.stripQuotes)(t.typeface),h=t[l.$globalData].fontFinder.find(u);o=selectFont(t,h)}if(!o)return{lineHeight:12,lineGap:2,lineNoGap:10};var d=t.size||10,m=o.lineHeight?Math.max(r?0:1.2,o.lineHeight):1.2,g=void 0===o.lineGap?.2:o.lineGap;return{lineHeight:m*d,lineGap:g*d,lineNoGap:Math.max(1,m-g)*d}};r.selectFont=selectFont;r.FontFinder=void 0;var l=o(188),c=o(189),u=o(4);function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||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 _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}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 u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}var h=function(){function FontFinder(t){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,FontFinder);this.fonts=new Map;this.cache=new Map;this.warned=new Set;this.defaultFont=null;this.add(t)}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(FontFinder,[{key:"add",value:function add(t){var r,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,l=_createForOfIteratorHelper(t);try{for(l.s();!(r=l.n()).done;){var c=r.value;this.addPdfFont(c)}}catch(t){l.e(t)}finally{l.f()}var u,h=_createForOfIteratorHelper(this.fonts.values());try{for(h.s();!(u=h.n()).done;){var d=u.value;d.regular||(d.regular=d.italic||d.bold||d.bolditalic)}}catch(t){h.e(t)}finally{h.f()}if(o&&0!==o.size){var m,g=this.fonts.get("PdfJS-Fallback-PdfJS-XFA"),y=_createForOfIteratorHelper(o);try{for(y.s();!(m=y.n()).done;){var v=m.value;this.fonts.set(v,g)}}catch(t){y.e(t)}finally{y.f()}}}},{key:"addPdfFont",value:function addPdfFont(t){var r=t.cssFontInfo,o=r.fontFamily,l=this.fonts.get(o);if(!l){l=Object.create(null);this.fonts.set(o,l);this.defaultFont||(this.defaultFont=l)}var c="",u=parseFloat(r.fontWeight);0!==parseFloat(r.italicAngle)?c=u>=700?"bolditalic":"italic":u>=700&&(c="bold");if(!c){(t.name.includes("Bold")||t.psName&&t.psName.includes("Bold"))&&(c="bold");(t.name.includes("Italic")||t.name.endsWith("It")||t.psName&&(t.psName.includes("Italic")||t.psName.endsWith("It")))&&(c+="italic")}c||(c="regular");l[c]=t}},{key:"getDefault",value:function getDefault(){return this.defaultFont}},{key:"find",value:function find(t){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],o=this.fonts.get(t)||this.cache.get(t);if(o)return o;var l=/,|-|_| |bolditalic|bold|italic|regular|it/gi,c=t.replace(l,"");if(o=this.fonts.get(c)){this.cache.set(t,o);return o}c=c.toLowerCase();var h,d=[],m=_createForOfIteratorHelper(this.fonts.entries());try{for(m.s();!(h=m.n()).done;){var g=_slicedToArray(h.value,2),y=g[0],v=g[1];y.replace(l,"").toLowerCase().startsWith(c)&&d.push(v)}}catch(t){m.e(t)}finally{m.f()}if(0===d.length){var S,_=_createForOfIteratorHelper(this.fonts.entries());try{for(_.s();!(S=_.n()).done;){var k=_slicedToArray(S.value,2),C=k[1];C.regular.name&&C.regular.name.replace(l,"").toLowerCase().startsWith(c)&&d.push(C)}}catch(t){_.e(t)}finally{_.f()}}if(0===d.length){c=c.replace(/psmt|mt/gi,"");var w,x=_createForOfIteratorHelper(this.fonts.entries());try{for(x.s();!(w=x.n()).done;){var O=_slicedToArray(w.value,2),T=O[0],R=O[1];T.replace(l,"").toLowerCase().startsWith(c)&&d.push(R)}}catch(t){x.e(t)}finally{x.f()}}if(0===d.length){var E,M=_createForOfIteratorHelper(this.fonts.values());try{for(M.s();!(E=M.n()).done;){var D=E.value;D.regular.name&&D.regular.name.replace(l,"").toLowerCase().startsWith(c)&&d.push(D)}}catch(t){M.e(t)}finally{M.f()}}if(d.length>=1){1!==d.length&&r&&(0,u.warn)("XFA - Too many choices to guess the correct font: ".concat(t));this.cache.set(t,d[0]);return d[0]}if(r&&!this.warned.has(t)){this.warned.add(t);(0,u.warn)("XFA - Cannot find the font: ".concat(t))}return null}}]);return FontFinder}();r.FontFinder=h;function selectFont(t,r){return"italic"===t.posture?"bold"===t.weight?r.bolditalic:r.italic:"bold"===t.weight?r.bold:r.regular}},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.TextMeasure=void 0;var l=o(196);function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}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 u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||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 _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var c=function(){function FontInfo(t,r,o,c){_classCallCheck(this,FontInfo);this.lineHeight=o;this.paraMargin=r||{top:0,bottom:0,left:0,right:0};if(t){this.xfaFont={typeface:t.typeface,posture:t.posture,weight:t.weight,size:t.size,letterSpacing:t.letterSpacing};var u=c.find(t.typeface);if(u){this.pdfFont=(0,l.selectFont)(t,u);if(!this.pdfFont){var h=_slicedToArray(this.defaultFont(c),2);this.pdfFont=h[0];this.xfaFont=h[1]}}else{var d=_slicedToArray(this.defaultFont(c),2);this.pdfFont=d[0];this.xfaFont=d[1]}}else{var m=_slicedToArray(this.defaultFont(c),2);this.pdfFont=m[0];this.xfaFont=m[1]}}_createClass(FontInfo,[{key:"defaultFont",value:function defaultFont(t){var r=t.find("Helvetica",!1)||t.find("Myriad Pro",!1)||t.find("Arial",!1)||t.getDefault();if(r&&r.regular){var o=r.regular;return[o,{typeface:o.cssFontInfo.fontFamily,posture:"normal",weight:"normal",size:10,letterSpacing:0}]}return[null,{typeface:"Courier",posture:"normal",weight:"normal",size:10,letterSpacing:0}]}}]);return FontInfo}(),u=function(){function FontSelector(t,r,o,l){_classCallCheck(this,FontSelector);this.fontFinder=l;this.stack=[new c(t,r,o,l)]}_createClass(FontSelector,[{key:"pushData",value:function pushData(t,r,o){for(var l=this.stack[this.stack.length-1],u=0,h=["typeface","posture","weight","size","letterSpacing"];u<h.length;u++){var d=h[u];t[d]||(t[d]=l.xfaFont[d])}for(var m=0,g=["top","bottom","left","right"];m<g.length;m++){var y=g[m];isNaN(r[y])&&(r[y]=l.paraMargin[y])}var v=new c(t,r,o||l.lineHeight,this.fontFinder);v.pdfFont||(v.pdfFont=l.pdfFont);this.stack.push(v)}},{key:"popFont",value:function popFont(){this.stack.pop()}},{key:"topFont",value:function topFont(){return this.stack[this.stack.length-1]}}]);return FontSelector}(),h=function(){function TextMeasure(t,r,o,l){_classCallCheck(this,TextMeasure);this.glyphs=[];this.fontSelector=new u(t,r,o,l);this.extraHeight=0}_createClass(TextMeasure,[{key:"pushData",value:function pushData(t,r,o){this.fontSelector.pushData(t,r,o)}},{key:"popFont",value:function popFont(t){return this.fontSelector.popFont()}},{key:"addPara",value:function addPara(){var t=this.fontSelector.topFont();this.extraHeight+=t.paraMargin.top+t.paraMargin.bottom}},{key:"addString",value:function addString(t){if(t){var r=this.fontSelector.topFont(),o=r.xfaFont.size;if(r.pdfFont){var l,c=r.xfaFont.letterSpacing,u=r.pdfFont,h=u.lineHeight||1.2,d=r.lineHeight||Math.max(1.2,h)*o,m=h-(void 0===u.lineGap?.2:u.lineGap),g=Math.max(1,m)*o,y=o/1e3,v=u.defaultWidth||u.charsToGlyphs(" ")[0].width,S=_createForOfIteratorHelper(t.split(/[\u2029\n]/));try{for(S.s();!(l=S.n()).done;){var _,k=l.value,C=u.encodeString(k).join(""),w=_createForOfIteratorHelper(u.charsToGlyphs(C));try{for(w.s();!(_=w.n()).done;){var x=_.value,O=x.width||v;this.glyphs.push([O*y+c,d,g,x.unicode,!1])}}catch(t){w.e(t)}finally{w.f()}this.glyphs.push([0,0,0,"\n",!0])}}catch(t){S.e(t)}finally{S.f()}this.glyphs.pop()}else{var T,R=_createForOfIteratorHelper(t.split(/[\u2029\n]/));try{for(R.s();!(T=R.n()).done;){var E,M=_createForOfIteratorHelper(T.value.split(""));try{for(M.s();!(E=M.n()).done;){var D=E.value;this.glyphs.push([o,1.2*o,o,D,!1])}}catch(t){M.e(t)}finally{M.f()}this.glyphs.push([0,0,0,"\n",!0])}}catch(t){R.e(t)}finally{R.f()}this.glyphs.pop()}}}},{key:"compute",value:function compute(t){for(var r=-1,o=0,l=0,c=0,u=0,h=0,d=!1,m=!0,g=0,y=this.glyphs.length;g<y;g++){var v=_slicedToArray(this.glyphs[g],5),S=v[0],_=v[1],k=v[2],C=" "===v[3],w=m?k:_;if(v[4]){l=Math.max(l,u);u=0;c+=h;h=w;r=-1;o=0;m=!1}else if(C)if(u+S>t){l=Math.max(l,u);u=0;c+=h;h=w;r=-1;o=0;d=!0;m=!1}else{h=Math.max(w,h);o=u;u+=S;r=g}else if(u+S>t){c+=h;h=w;if(-1!==r){g=r;l=Math.max(l,o);u=0;r=-1;o=0}else{l=Math.max(l,u);u=S}d=!0;m=!1}else{u+=S;h=Math.max(w,h)}}return{width:1.02*(l=Math.max(l,u)),height:c+=h+this.extraHeight,isBroken:d}}}]);return TextMeasure}();r.TextMeasure=h},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.DataHandler=void 0;var l=o(188);function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}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 u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||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 _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}var c=function(){function DataHandler(t,r){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,DataHandler);this.data=r;this.dataset=t.datasets||null}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(DataHandler,[{key:"serialize",value:function serialize(t){for(var r=[[-1,this.data[l.$getChildren]()]];r.length>0;){var o=r[r.length-1],c=_slicedToArray(o,2),u=c[0],h=c[1];if(u+1!==h.length){var d=h[++o[0]],m=t.get(d[l.$uid]);if(m)d[l.$setValue](m);else{var g,y=_createForOfIteratorHelper(d[l.$getAttributes]().values());try{for(y.s();!(g=y.n()).done;){var v=g.value,S=t.get(v[l.$uid]);if(S){v[l.$setValue](S);break}}}catch(t){y.e(t)}finally{y.f()}}var _=d[l.$getChildren]();_.length>0&&r.push([-1,_])}else r.pop()}var k=['<xfa:datasets xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/">'];if(this.dataset){var C,w=_createForOfIteratorHelper(this.dataset[l.$getChildren]());try{for(w.s();!(C=w.n()).done;){var x=C.value;"data"!==x[l.$nodeName]&&x[l.$toString](k)}}catch(t){w.e(t)}finally{w.f()}}this.data[l.$toString](k);k.push("</xfa:datasets>");return k.join("")}}]);return DataHandler}();r.DataHandler=c},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.XFAParser=void 0;var l=o(188),c=o(181),u=o(200),h=o(4);function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||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 _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var d=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(XFAParser,t);var r=_createSuper(XFAParser);function XFAParser(){var t;!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,XFAParser);(t=r.call(this))._builder=new u.Builder;t._stack=[];t._globalData={usedTypefaces:new Set};t._ids=new Map;t._current=t._builder.buildRoot(t._ids);t._errorCode=c.XMLParserErrorCode.NoError;t._whiteRegex=/^\s+$/;t._nbsps=/\xa0+/g;return t}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(XFAParser,[{key:"parse",value:function parse(t){this.parseXml(t);if(this._errorCode===c.XMLParserErrorCode.NoError){this._current[l.$finalize]();return this._current.element}}},{key:"onText",value:function onText(t){t=t.replace(this._nbsps,(function(t){return t.slice(1)+" "}));this._current[l.$acceptWhitespace]()?this._current[l.$onText](t):this._whiteRegex.test(t)||this._current[l.$onText](t.trim())}},{key:"onCdata",value:function onCdata(t){this._current[l.$onText](t)}},{key:"_mkAttributes",value:function _mkAttributes(t,r){var o,c=null,u=null,d=Object.create({}),m=function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}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 u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}(t);try{for(m.s();!(o=m.n()).done;){var g=o.value,y=g.name,v=g.value;if("xmlns"===y)c?(0,h.warn)("XFA - multiple namespace definition in <".concat(r,">")):c=v;else if(y.startsWith("xmlns:")){var S=y.substring("xmlns:".length);u||(u=[]);u.push({prefix:S,value:v})}else{var _=y.indexOf(":");if(-1===_)d[y]=v;else{var k=d[l.$nsAttributes];k||(k=d[l.$nsAttributes]=Object.create(null));var C=[y.slice(0,_),y.slice(_+1)],w=C[0],x=C[1],O=k[w];O||(O=k[w]=Object.create(null));O[x]=v}}}}catch(t){m.e(t)}finally{m.f()}return[c,u,d]}},{key:"_getNameAndPrefix",value:function _getNameAndPrefix(t,r){var o=t.indexOf(":");return-1===o?[t,null]:[t.substring(o+1),r?"":t.substring(0,o)]}},{key:"onBeginElement",value:function onBeginElement(t,r,o){var c=_slicedToArray(this._mkAttributes(r,t),3),u=c[0],h=c[1],d=c[2],m=_slicedToArray(this._getNameAndPrefix(t,this._builder.isNsAgnostic()),2),g=m[0],y=m[1],v=this._builder.build({nsPrefix:y,name:g,attributes:d,namespace:u,prefixes:h});v[l.$globalData]=this._globalData;if(o){v[l.$finalize]();this._current[l.$onChild](v)&&v[l.$setId](this._ids);v[l.$clean](this._builder)}else{this._stack.push(this._current);this._current=v}}},{key:"onEndElement",value:function onEndElement(t){var r=this._current;if(r[l.$isCDATAXml]()&&"string"==typeof r[l.$content]){var o=new XFAParser;o._globalData=this._globalData;var c=o.parse(r[l.$content]);r[l.$content]=null;r[l.$onChild](c)}r[l.$finalize]();this._current=this._stack.pop();this._current[l.$onChild](r)&&r[l.$setId](this._ids);r[l.$clean](this._builder)}},{key:"onError",value:function onError(t){this._errorCode=t}}]);return XFAParser}(c.XMLParserBase);r.XFAParser=d},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.Builder=void 0;var l=o(190),c=o(188),u=o(201),h=o(193),d=o(210),m=o(4);function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||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 _toConsumableArray(t){return function _arrayWithoutHoles(t){if(Array.isArray(t))return _arrayLikeToArray(t)}(t)||function _iterableToArray(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||_unsupportedIterableToArray(t)||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 _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}function _get(t,r,o){_get="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function _get(t,r,o){var l=function _superPropBase(t,r){for(;!Object.prototype.hasOwnProperty.call(t,r)&&null!==(t=_getPrototypeOf(t)););return t}(t,r);if(l){var c=Object.getOwnPropertyDescriptor(l,r);return c.get?c.get.call(o):c.value}};return _get(t,r,o||t)}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var g=function(t){_inherits(Root,t);var r=_createSuper(Root);function Root(t){var o;_classCallCheck(this,Root);(o=r.call(this,-1,"root",Object.create(null))).element=null;o[c.$ids]=t;return o}_createClass(Root,[{key:c.$onChild,value:function value(t){this.element=t;return!0}},{key:c.$finalize,value:function value(){_get(_getPrototypeOf(Root.prototype),c.$finalize,this).call(this);if(this.element.template instanceof h.Template){this[c.$ids].set(c.$root,this.element);this.element.template[c.$resolvePrototypes](this[c.$ids]);this.element.template[c.$ids]=this[c.$ids]}}}]);return Root}(c.XFAObject),y=function(t){_inherits(Empty,t);var r=_createSuper(Empty);function Empty(){_classCallCheck(this,Empty);return r.call(this,-1,"",Object.create(null))}_createClass(Empty,[{key:c.$onChild,value:function value(t){return!1}}]);return Empty}(c.XFAObject),v=function(){function Builder(){_classCallCheck(this,Builder);this._namespaceStack=[];this._nsAgnosticLevel=0;this._namespacePrefixes=new Map;this._namespaces=new Map;this._nextNsId=Math.max.apply(Math,_toConsumableArray(Object.values(l.NamespaceIds).map((function(t){return t.id}))));this._currentNamespace=new d.UnknownNamespace(++this._nextNsId)}_createClass(Builder,[{key:"buildRoot",value:function buildRoot(t){return new g(t)}},{key:"build",value:function build(t){var r=t.nsPrefix,o=t.name,h=t.attributes,d=t.namespace,m=t.prefixes,g=null!==d;if(g){this._namespaceStack.push(this._currentNamespace);this._currentNamespace=this._searchNamespace(d)}m&&this._addNamespacePrefix(m);if(h.hasOwnProperty(c.$nsAttributes)){for(var v=u.NamespaceSetUp.datasets,S=h[c.$nsAttributes],_=null,k=0,C=Object.entries(S);k<C.length;k++){var w=_slicedToArray(C[k],2),x=w[0],O=w[1];if(this._getNamespaceToUse(x)===v){_={xfa:O};break}}_?h[c.$nsAttributes]=_:delete h[c.$nsAttributes]}var T=this._getNamespaceToUse(r),R=T&&T[l.$buildXFAObject](o,h)||new y;R[c.$isNsAgnostic]()&&this._nsAgnosticLevel++;(g||m||R[c.$isNsAgnostic]())&&(R[c.$cleanup]={hasNamespace:g,prefixes:m,nsAgnostic:R[c.$isNsAgnostic]()});return R}},{key:"isNsAgnostic",value:function isNsAgnostic(){return this._nsAgnosticLevel>0}},{key:"_searchNamespace",value:function _searchNamespace(t){var r=this._namespaces.get(t);if(r)return r;for(var o=0,c=Object.entries(l.NamespaceIds);o<c.length;o++){var h=_slicedToArray(c[o],2),m=h[0];if((0,h[1].check)(t)){if(r=u.NamespaceSetUp[m]){this._namespaces.set(t,r);return r}break}}r=new d.UnknownNamespace(++this._nextNsId);this._namespaces.set(t,r);return r}},{key:"_addNamespacePrefix",value:function _addNamespacePrefix(t){var r,o=function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}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 u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}(t);try{for(o.s();!(r=o.n()).done;){var l=r.value,c=l.prefix,u=l.value,h=this._searchNamespace(u),d=this._namespacePrefixes.get(c);if(!d){d=[];this._namespacePrefixes.set(c,d)}d.push(h)}}catch(t){o.e(t)}finally{o.f()}}},{key:"_getNamespaceToUse",value:function _getNamespaceToUse(t){if(!t)return this._currentNamespace;var r=this._namespacePrefixes.get(t);if(r&&r.length>0)return r[r.length-1];(0,m.warn)("Unknown namespace prefix: ".concat(t,"."));return null}},{key:"clean",value:function clean(t){var r=this,o=t.hasNamespace,l=t.prefixes,c=t.nsAgnostic;o&&(this._currentNamespace=this._namespaceStack.pop());l&&l.forEach((function(t){var o=t.prefix;r._namespacePrefixes.get(o).pop()}));c&&this._nsAgnosticLevel--}}]);return Builder}();r.Builder=v},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.NamespaceSetUp=void 0;var l=o(202),c=o(203),u=o(204),h=o(205),d=o(206),m=o(207),g=o(193),y=o(208),v=o(209),S={config:l.ConfigNamespace,connection:c.ConnectionSetNamespace,datasets:u.DatasetsNamespace,localeSet:h.LocaleSetNamespace,signature:d.SignatureNamespace,stylesheet:m.StylesheetNamespace,template:g.TemplateNamespace,xdp:y.XdpNamespace,xhtml:v.XhtmlNamespace};r.NamespaceSetUp=S},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.ConfigNamespace=void 0;var l=o(190),c=o(188),u=o(189),h=o(4);function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);if("Map"===o||"Set"===o)return Array.from(t);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}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 u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var d=l.NamespaceIds.config.id,m=function(t){_inherits(Acrobat,t);var r=_createSuper(Acrobat);function Acrobat(t){var o;_classCallCheck(this,Acrobat);(o=r.call(this,d,"acrobat",!0)).acrobat7=null;o.autoSave=null;o.common=null;o.validate=null;o.validateApprovalSignatures=null;o.submitUrl=new c.XFAObjectArray;return o}return Acrobat}(c.XFAObject),g=function(t){_inherits(Acrobat7,t);var r=_createSuper(Acrobat7);function Acrobat7(t){var o;_classCallCheck(this,Acrobat7);(o=r.call(this,d,"acrobat7",!0)).dynamicRender=null;return o}return Acrobat7}(c.XFAObject),y=function(t){_inherits(ADBE_JSConsole,t);var r=_createSuper(ADBE_JSConsole);function ADBE_JSConsole(t){_classCallCheck(this,ADBE_JSConsole);return r.call(this,d,"ADBE_JSConsole",["delegate","Enable","Disable"])}return ADBE_JSConsole}(c.OptionObject),v=function(t){_inherits(ADBE_JSDebugger,t);var r=_createSuper(ADBE_JSDebugger);function ADBE_JSDebugger(t){_classCallCheck(this,ADBE_JSDebugger);return r.call(this,d,"ADBE_JSDebugger",["delegate","Enable","Disable"])}return ADBE_JSDebugger}(c.OptionObject),S=function(t){_inherits(AddSilentPrint,t);var r=_createSuper(AddSilentPrint);function AddSilentPrint(t){_classCallCheck(this,AddSilentPrint);return r.call(this,d,"addSilentPrint")}return AddSilentPrint}(c.Option01),_=function(t){_inherits(AddViewerPreferences,t);var r=_createSuper(AddViewerPreferences);function AddViewerPreferences(t){_classCallCheck(this,AddViewerPreferences);return r.call(this,d,"addViewerPreferences")}return AddViewerPreferences}(c.Option01),k=function(t){_inherits(AdjustData,t);var r=_createSuper(AdjustData);function AdjustData(t){_classCallCheck(this,AdjustData);return r.call(this,d,"adjustData")}return AdjustData}(c.Option10),C=function(t){_inherits(AdobeExtensionLevel,t);var r=_createSuper(AdobeExtensionLevel);function AdobeExtensionLevel(t){_classCallCheck(this,AdobeExtensionLevel);return r.call(this,d,"adobeExtensionLevel",0,(function(t){return t>=1&&t<=8}))}return AdobeExtensionLevel}(c.IntegerObject),w=function(t){_inherits(Agent,t);var r=_createSuper(Agent);function Agent(t){var o;_classCallCheck(this,Agent);(o=r.call(this,d,"agent",!0)).name=t.name?t.name.trim():"";o.common=new c.XFAObjectArray;return o}return Agent}(c.XFAObject),x=function(t){_inherits(AlwaysEmbed,t);var r=_createSuper(AlwaysEmbed);function AlwaysEmbed(t){_classCallCheck(this,AlwaysEmbed);return r.call(this,d,"alwaysEmbed")}return AlwaysEmbed}(c.ContentObject),O=function(t){_inherits(Amd,t);var r=_createSuper(Amd);function Amd(t){_classCallCheck(this,Amd);return r.call(this,d,"amd")}return Amd}(c.StringObject),T=function(t){_inherits(Area,t);var r=_createSuper(Area);function Area(t){var o;_classCallCheck(this,Area);(o=r.call(this,d,"area")).level=(0,u.getInteger)({data:t.level,defaultValue:0,validate:function validate(t){return t>=1&&t<=3}});o.name=(0,u.getStringOption)(t.name,["","barcode","coreinit","deviceDriver","font","general","layout","merge","script","signature","sourceSet","templateCache"]);return o}return Area}(c.XFAObject),R=function(t){_inherits(Attributes,t);var r=_createSuper(Attributes);function Attributes(t){_classCallCheck(this,Attributes);return r.call(this,d,"attributes",["preserve","delegate","ignore"])}return Attributes}(c.OptionObject),E=function(t){_inherits(AutoSave,t);var r=_createSuper(AutoSave);function AutoSave(t){_classCallCheck(this,AutoSave);return r.call(this,d,"autoSave",["disabled","enabled"])}return AutoSave}(c.OptionObject),M=function(t){_inherits(Base,t);var r=_createSuper(Base);function Base(t){_classCallCheck(this,Base);return r.call(this,d,"base")}return Base}(c.StringObject),D=function(t){_inherits(BatchOutput,t);var r=_createSuper(BatchOutput);function BatchOutput(t){var o;_classCallCheck(this,BatchOutput);(o=r.call(this,d,"batchOutput")).format=(0,u.getStringOption)(t.format,["none","concat","zip","zipCompress"]);return o}return BatchOutput}(c.XFAObject),j=function(t){_inherits(BehaviorOverride,t);var r=_createSuper(BehaviorOverride);function BehaviorOverride(t){_classCallCheck(this,BehaviorOverride);return r.call(this,d,"behaviorOverride")}_createClass(BehaviorOverride,[{key:c.$finalize,value:function value(){this[c.$content]=new Map(this[c.$content].trim().split(/\s+/).filter((function(t){return t.includes(":")})).map((function(t){return t.split(":",2)})))}}]);return BehaviorOverride}(c.ContentObject),L=function(t){_inherits(Cache,t);var r=_createSuper(Cache);function Cache(t){var o;_classCallCheck(this,Cache);(o=r.call(this,d,"cache",!0)).templateCache=null;return o}return Cache}(c.XFAObject),N=function(t){_inherits(Change,t);var r=_createSuper(Change);function Change(t){_classCallCheck(this,Change);return r.call(this,d,"change")}return Change}(c.Option01),U=function(t){_inherits(Common,t);var r=_createSuper(Common);function Common(t){var o;_classCallCheck(this,Common);(o=r.call(this,d,"common",!0)).data=null;o.locale=null;o.localeSet=null;o.messaging=null;o.suppressBanner=null;o.template=null;o.validationMessaging=null;o.versionControl=null;o.log=new c.XFAObjectArray;return o}return Common}(c.XFAObject),H=function(t){_inherits(Compress,t);var r=_createSuper(Compress);function Compress(t){var o;_classCallCheck(this,Compress);(o=r.call(this,d,"compress")).scope=(0,u.getStringOption)(t.scope,["imageOnly","document"]);return o}return Compress}(c.XFAObject),W=function(t){_inherits(CompressLogicalStructure,t);var r=_createSuper(CompressLogicalStructure);function CompressLogicalStructure(t){_classCallCheck(this,CompressLogicalStructure);return r.call(this,d,"compressLogicalStructure")}return CompressLogicalStructure}(c.Option01),$=function(t){_inherits(CompressObjectStream,t);var r=_createSuper(CompressObjectStream);function CompressObjectStream(t){_classCallCheck(this,CompressObjectStream);return r.call(this,d,"compressObjectStream")}return CompressObjectStream}(c.Option10),q=function(t){_inherits(Compression,t);var r=_createSuper(Compression);function Compression(t){var o;_classCallCheck(this,Compression);(o=r.call(this,d,"compression",!0)).compressLogicalStructure=null;o.compressObjectStream=null;o.level=null;o.type=null;return o}return Compression}(c.XFAObject),X=function(t){_inherits(Config,t);var r=_createSuper(Config);function Config(t){var o;_classCallCheck(this,Config);(o=r.call(this,d,"config",!0)).acrobat=null;o.present=null;o.trace=null;o.agent=new c.XFAObjectArray;return o}return Config}(c.XFAObject),z=function(t){_inherits(Conformance,t);var r=_createSuper(Conformance);function Conformance(t){_classCallCheck(this,Conformance);return r.call(this,d,"conformance",["A","B"])}return Conformance}(c.OptionObject),G=function(t){_inherits(ContentCopy,t);var r=_createSuper(ContentCopy);function ContentCopy(t){_classCallCheck(this,ContentCopy);return r.call(this,d,"contentCopy")}return ContentCopy}(c.Option01),V=function(t){_inherits(Copies,t);var r=_createSuper(Copies);function Copies(t){_classCallCheck(this,Copies);return r.call(this,d,"copies",1,(function(t){return t>=1}))}return Copies}(c.IntegerObject),Y=function(t){_inherits(Creator,t);var r=_createSuper(Creator);function Creator(t){_classCallCheck(this,Creator);return r.call(this,d,"creator")}return Creator}(c.StringObject),K=function(t){_inherits(CurrentPage,t);var r=_createSuper(CurrentPage);function CurrentPage(t){_classCallCheck(this,CurrentPage);return r.call(this,d,"currentPage",0,(function(t){return t>=0}))}return CurrentPage}(c.IntegerObject),J=function(t){_inherits(Data,t);var r=_createSuper(Data);function Data(t){var o;_classCallCheck(this,Data);(o=r.call(this,d,"data",!0)).adjustData=null;o.attributes=null;o.incrementalLoad=null;o.outputXSL=null;o.range=null;o.record=null;o.startNode=null;o.uri=null;o.window=null;o.xsl=null;o.excludeNS=new c.XFAObjectArray;o.transform=new c.XFAObjectArray;return o}return Data}(c.XFAObject),Q=function(t){_inherits(Debug,t);var r=_createSuper(Debug);function Debug(t){var o;_classCallCheck(this,Debug);(o=r.call(this,d,"debug",!0)).uri=null;return o}return Debug}(c.XFAObject),Z=function(t){_inherits(DefaultTypeface,t);var r=_createSuper(DefaultTypeface);function DefaultTypeface(t){var o;_classCallCheck(this,DefaultTypeface);(o=r.call(this,d,"defaultTypeface")).writingScript=(0,u.getStringOption)(t.writingScript,["*","Arabic","Cyrillic","EastEuropeanRoman","Greek","Hebrew","Japanese","Korean","Roman","SimplifiedChinese","Thai","TraditionalChinese","Vietnamese"]);return o}return DefaultTypeface}(c.ContentObject),ee=function(t){_inherits(Destination,t);var r=_createSuper(Destination);function Destination(t){_classCallCheck(this,Destination);return r.call(this,d,"destination",["pdf","pcl","ps","webClient","zpl"])}return Destination}(c.OptionObject),te=function(t){_inherits(DocumentAssembly,t);var r=_createSuper(DocumentAssembly);function DocumentAssembly(t){_classCallCheck(this,DocumentAssembly);return r.call(this,d,"documentAssembly")}return DocumentAssembly}(c.Option01),re=function(t){_inherits(Driver,t);var r=_createSuper(Driver);function Driver(t){var o;_classCallCheck(this,Driver);(o=r.call(this,d,"driver",!0)).name=t.name?t.name.trim():"";o.fontInfo=null;o.xdc=null;return o}return Driver}(c.XFAObject),ae=function(t){_inherits(DuplexOption,t);var r=_createSuper(DuplexOption);function DuplexOption(t){_classCallCheck(this,DuplexOption);return r.call(this,d,"duplexOption",["simplex","duplexFlipLongEdge","duplexFlipShortEdge"])}return DuplexOption}(c.OptionObject),ne=function(t){_inherits(DynamicRender,t);var r=_createSuper(DynamicRender);function DynamicRender(t){_classCallCheck(this,DynamicRender);return r.call(this,d,"dynamicRender",["forbidden","required"])}return DynamicRender}(c.OptionObject),ie=function(t){_inherits(Embed,t);var r=_createSuper(Embed);function Embed(t){_classCallCheck(this,Embed);return r.call(this,d,"embed")}return Embed}(c.Option01),oe=function(t){_inherits(Encrypt,t);var r=_createSuper(Encrypt);function Encrypt(t){_classCallCheck(this,Encrypt);return r.call(this,d,"encrypt")}return Encrypt}(c.Option01),se=function(t){_inherits(Encryption,t);var r=_createSuper(Encryption);function Encryption(t){var o;_classCallCheck(this,Encryption);(o=r.call(this,d,"encryption",!0)).encrypt=null;o.encryptionLevel=null;o.permissions=null;return o}return Encryption}(c.XFAObject),le=function(t){_inherits(EncryptionLevel,t);var r=_createSuper(EncryptionLevel);function EncryptionLevel(t){_classCallCheck(this,EncryptionLevel);return r.call(this,d,"encryptionLevel",["40bit","128bit"])}return EncryptionLevel}(c.OptionObject),ce=function(t){_inherits(Enforce,t);var r=_createSuper(Enforce);function Enforce(t){_classCallCheck(this,Enforce);return r.call(this,d,"enforce")}return Enforce}(c.StringObject),ue=function(t){_inherits(Equate,t);var r=_createSuper(Equate);function Equate(t){var o;_classCallCheck(this,Equate);(o=r.call(this,d,"equate")).force=(0,u.getInteger)({data:t.force,defaultValue:1,validate:function validate(t){return 0===t}});o.from=t.from||"";o.to=t.to||"";return o}return Equate}(c.XFAObject),fe=function(t){_inherits(EquateRange,t);var r=_createSuper(EquateRange);function EquateRange(t){var o;_classCallCheck(this,EquateRange);(o=r.call(this,d,"equateRange")).from=t.from||"";o.to=t.to||"";o._unicodeRange=t.unicodeRange||"";return o}_createClass(EquateRange,[{key:"unicodeRange",get:function get(){var t,r=[],o=/U\+([0-9a-fA-F]+)/,l=_createForOfIteratorHelper(this._unicodeRange.split(",").map((function(t){return t.trim()})).filter((function(t){return!!t})));try{for(l.s();!(t=l.n()).done;){var c=t.value;1===(c=c.split("-",2).map((function(t){var r=t.match(o);return r?parseInt(r[1],16):0}))).length&&c.push(c[0]);r.push(c)}}catch(t){l.e(t)}finally{l.f()}return(0,h.shadow)(this,"unicodeRange",r)}}]);return EquateRange}(c.XFAObject),he=function(t){_inherits(Exclude,t);var r=_createSuper(Exclude);function Exclude(t){_classCallCheck(this,Exclude);return r.call(this,d,"exclude")}_createClass(Exclude,[{key:c.$finalize,value:function value(){this[c.$content]=this[c.$content].trim().split(/\s+/).filter((function(t){return t&&["calculate","close","enter","exit","initialize","ready","validate"].includes(t)}))}}]);return Exclude}(c.ContentObject),de=function(t){_inherits(ExcludeNS,t);var r=_createSuper(ExcludeNS);function ExcludeNS(t){_classCallCheck(this,ExcludeNS);return r.call(this,d,"excludeNS")}return ExcludeNS}(c.StringObject),pe=function(t){_inherits(FlipLabel,t);var r=_createSuper(FlipLabel);function FlipLabel(t){_classCallCheck(this,FlipLabel);return r.call(this,d,"flipLabel",["usePrinterSetting","on","off"])}return FlipLabel}(c.OptionObject),me=function(t){_inherits(FontInfo,t);var r=_createSuper(FontInfo);function FontInfo(t){var o;_classCallCheck(this,FontInfo);(o=r.call(this,d,"fontInfo",!0)).embed=null;o.map=null;o.subsetBelow=null;o.alwaysEmbed=new c.XFAObjectArray;o.defaultTypeface=new c.XFAObjectArray;o.neverEmbed=new c.XFAObjectArray;return o}return FontInfo}(c.XFAObject),ge=function(t){_inherits(FormFieldFilling,t);var r=_createSuper(FormFieldFilling);function FormFieldFilling(t){_classCallCheck(this,FormFieldFilling);return r.call(this,d,"formFieldFilling")}return FormFieldFilling}(c.Option01),ye=function(t){_inherits(GroupParent,t);var r=_createSuper(GroupParent);function GroupParent(t){_classCallCheck(this,GroupParent);return r.call(this,d,"groupParent")}return GroupParent}(c.StringObject),ve=function(t){_inherits(IfEmpty,t);var r=_createSuper(IfEmpty);function IfEmpty(t){_classCallCheck(this,IfEmpty);return r.call(this,d,"ifEmpty",["dataValue","dataGroup","ignore","remove"])}return IfEmpty}(c.OptionObject),be=function(t){_inherits(IncludeXDPContent,t);var r=_createSuper(IncludeXDPContent);function IncludeXDPContent(t){_classCallCheck(this,IncludeXDPContent);return r.call(this,d,"includeXDPContent")}return IncludeXDPContent}(c.StringObject),Se=function(t){_inherits(IncrementalLoad,t);var r=_createSuper(IncrementalLoad);function IncrementalLoad(t){_classCallCheck(this,IncrementalLoad);return r.call(this,d,"incrementalLoad",["none","forwardOnly"])}return IncrementalLoad}(c.OptionObject),_e=function(t){_inherits(IncrementalMerge,t);var r=_createSuper(IncrementalMerge);function IncrementalMerge(t){_classCallCheck(this,IncrementalMerge);return r.call(this,d,"incrementalMerge")}return IncrementalMerge}(c.Option01),ke=function(t){_inherits(Interactive,t);var r=_createSuper(Interactive);function Interactive(t){_classCallCheck(this,Interactive);return r.call(this,d,"interactive")}return Interactive}(c.Option01),Ce=function(t){_inherits(Jog,t);var r=_createSuper(Jog);function Jog(t){_classCallCheck(this,Jog);return r.call(this,d,"jog",["usePrinterSetting","none","pageSet"])}return Jog}(c.OptionObject),we=function(t){_inherits(LabelPrinter,t);var r=_createSuper(LabelPrinter);function LabelPrinter(t){var o;_classCallCheck(this,LabelPrinter);(o=r.call(this,d,"labelPrinter",!0)).name=(0,u.getStringOption)(t.name,["zpl","dpl","ipl","tcpl"]);o.batchOutput=null;o.flipLabel=null;o.fontInfo=null;o.xdc=null;return o}return LabelPrinter}(c.XFAObject),Ae=function(t){_inherits(Layout,t);var r=_createSuper(Layout);function Layout(t){_classCallCheck(this,Layout);return r.call(this,d,"layout",["paginate","panel"])}return Layout}(c.OptionObject),xe=function(t){_inherits(Level,t);var r=_createSuper(Level);function Level(t){_classCallCheck(this,Level);return r.call(this,d,"level",0,(function(t){return t>0}))}return Level}(c.IntegerObject),Oe=function(t){_inherits(Linearized,t);var r=_createSuper(Linearized);function Linearized(t){_classCallCheck(this,Linearized);return r.call(this,d,"linearized")}return Linearized}(c.Option01),Pe=function(t){_inherits(Locale,t);var r=_createSuper(Locale);function Locale(t){_classCallCheck(this,Locale);return r.call(this,d,"locale")}return Locale}(c.StringObject),Te=function(t){_inherits(LocaleSet,t);var r=_createSuper(LocaleSet);function LocaleSet(t){_classCallCheck(this,LocaleSet);return r.call(this,d,"localeSet")}return LocaleSet}(c.StringObject),Ie=function(t){_inherits(Log,t);var r=_createSuper(Log);function Log(t){var o;_classCallCheck(this,Log);(o=r.call(this,d,"log",!0)).mode=null;o.threshold=null;o.to=null;o.uri=null;return o}return Log}(c.XFAObject),Fe=function(t){_inherits(MapElement,t);var r=_createSuper(MapElement);function MapElement(t){var o;_classCallCheck(this,MapElement);(o=r.call(this,d,"map",!0)).equate=new c.XFAObjectArray;o.equateRange=new c.XFAObjectArray;return o}return MapElement}(c.XFAObject),Re=function(t){_inherits(MediumInfo,t);var r=_createSuper(MediumInfo);function MediumInfo(t){var o;_classCallCheck(this,MediumInfo);(o=r.call(this,d,"mediumInfo",!0)).map=null;return o}return MediumInfo}(c.XFAObject),Ee=function(t){_inherits(Message,t);var r=_createSuper(Message);function Message(t){var o;_classCallCheck(this,Message);(o=r.call(this,d,"message",!0)).msgId=null;o.severity=null;return o}return Message}(c.XFAObject),Me=function(t){_inherits(Messaging,t);var r=_createSuper(Messaging);function Messaging(t){var o;_classCallCheck(this,Messaging);(o=r.call(this,d,"messaging",!0)).message=new c.XFAObjectArray;return o}return Messaging}(c.XFAObject),Be=function(t){_inherits(Mode,t);var r=_createSuper(Mode);function Mode(t){_classCallCheck(this,Mode);return r.call(this,d,"mode",["append","overwrite"])}return Mode}(c.OptionObject),De=function(t){_inherits(ModifyAnnots,t);var r=_createSuper(ModifyAnnots);function ModifyAnnots(t){_classCallCheck(this,ModifyAnnots);return r.call(this,d,"modifyAnnots")}return ModifyAnnots}(c.Option01),je=function(t){_inherits(MsgId,t);var r=_createSuper(MsgId);function MsgId(t){_classCallCheck(this,MsgId);return r.call(this,d,"msgId",1,(function(t){return t>=1}))}return MsgId}(c.IntegerObject),Le=function(t){_inherits(NameAttr,t);var r=_createSuper(NameAttr);function NameAttr(t){_classCallCheck(this,NameAttr);return r.call(this,d,"nameAttr")}return NameAttr}(c.StringObject),Ne=function(t){_inherits(NeverEmbed,t);var r=_createSuper(NeverEmbed);function NeverEmbed(t){_classCallCheck(this,NeverEmbed);return r.call(this,d,"neverEmbed")}return NeverEmbed}(c.ContentObject),Ue=function(t){_inherits(NumberOfCopies,t);var r=_createSuper(NumberOfCopies);function NumberOfCopies(t){_classCallCheck(this,NumberOfCopies);return r.call(this,d,"numberOfCopies",null,(function(t){return t>=2&&t<=5}))}return NumberOfCopies}(c.IntegerObject),He=function(t){_inherits(OpenAction,t);var r=_createSuper(OpenAction);function OpenAction(t){var o;_classCallCheck(this,OpenAction);(o=r.call(this,d,"openAction",!0)).destination=null;return o}return OpenAction}(c.XFAObject),We=function(t){_inherits(Output,t);var r=_createSuper(Output);function Output(t){var o;_classCallCheck(this,Output);(o=r.call(this,d,"output",!0)).to=null;o.type=null;o.uri=null;return o}return Output}(c.XFAObject),$e=function(t){_inherits(OutputBin,t);var r=_createSuper(OutputBin);function OutputBin(t){_classCallCheck(this,OutputBin);return r.call(this,d,"outputBin")}return OutputBin}(c.StringObject),qe=function(t){_inherits(OutputXSL,t);var r=_createSuper(OutputXSL);function OutputXSL(t){var o;_classCallCheck(this,OutputXSL);(o=r.call(this,d,"outputXSL",!0)).uri=null;return o}return OutputXSL}(c.XFAObject),Xe=function(t){_inherits(Overprint,t);var r=_createSuper(Overprint);function Overprint(t){_classCallCheck(this,Overprint);return r.call(this,d,"overprint",["none","both","draw","field"])}return Overprint}(c.OptionObject),ze=function(t){_inherits(Packets,t);var r=_createSuper(Packets);function Packets(t){_classCallCheck(this,Packets);return r.call(this,d,"packets")}_createClass(Packets,[{key:c.$finalize,value:function value(){"*"!==this[c.$content]&&(this[c.$content]=this[c.$content].trim().split(/\s+/).filter((function(t){return["config","datasets","template","xfdf","xslt"].includes(t)})))}}]);return Packets}(c.StringObject),Ge=function(t){_inherits(PageOffset,t);var r=_createSuper(PageOffset);function PageOffset(t){var o;_classCallCheck(this,PageOffset);(o=r.call(this,d,"pageOffset")).x=(0,u.getInteger)({data:t.x,defaultValue:"useXDCSetting",validate:function validate(t){return!0}});o.y=(0,u.getInteger)({data:t.y,defaultValue:"useXDCSetting",validate:function validate(t){return!0}});return o}return PageOffset}(c.XFAObject),Ve=function(t){_inherits(PageRange,t);var r=_createSuper(PageRange);function PageRange(t){_classCallCheck(this,PageRange);return r.call(this,d,"pageRange")}_createClass(PageRange,[{key:c.$finalize,value:function value(){for(var t=this[c.$content].trim().split(/\s+/).map((function(t){return parseInt(t,10)})),r=[],o=0,l=t.length;o<l;o+=2)r.push(t.slice(o,o+2));this[c.$content]=r}}]);return PageRange}(c.StringObject),Ye=function(t){_inherits(Pagination,t);var r=_createSuper(Pagination);function Pagination(t){_classCallCheck(this,Pagination);return r.call(this,d,"pagination",["simplex","duplexShortEdge","duplexLongEdge"])}return Pagination}(c.OptionObject),Ke=function(t){_inherits(PaginationOverride,t);var r=_createSuper(PaginationOverride);function PaginationOverride(t){_classCallCheck(this,PaginationOverride);return r.call(this,d,"paginationOverride",["none","forceDuplex","forceDuplexLongEdge","forceDuplexShortEdge","forceSimplex"])}return PaginationOverride}(c.OptionObject),Je=function(t){_inherits(Part,t);var r=_createSuper(Part);function Part(t){_classCallCheck(this,Part);return r.call(this,d,"part",1,(function(t){return!1}))}return Part}(c.IntegerObject),Qe=function(t){_inherits(Pcl,t);var r=_createSuper(Pcl);function Pcl(t){var o;_classCallCheck(this,Pcl);(o=r.call(this,d,"pcl",!0)).name=t.name||"";o.batchOutput=null;o.fontInfo=null;o.jog=null;o.mediumInfo=null;o.outputBin=null;o.pageOffset=null;o.staple=null;o.xdc=null;return o}return Pcl}(c.XFAObject),Ze=function(t){_inherits(Pdf,t);var r=_createSuper(Pdf);function Pdf(t){var o;_classCallCheck(this,Pdf);(o=r.call(this,d,"pdf",!0)).name=t.name||"";o.adobeExtensionLevel=null;o.batchOutput=null;o.compression=null;o.creator=null;o.encryption=null;o.fontInfo=null;o.interactive=null;o.linearized=null;o.openAction=null;o.pdfa=null;o.producer=null;o.renderPolicy=null;o.scriptModel=null;o.silentPrint=null;o.submitFormat=null;o.tagged=null;o.version=null;o.viewerPreferences=null;o.xdc=null;return o}return Pdf}(c.XFAObject),et=function(t){_inherits(Pdfa,t);var r=_createSuper(Pdfa);function Pdfa(t){var o;_classCallCheck(this,Pdfa);(o=r.call(this,d,"pdfa",!0)).amd=null;o.conformance=null;o.includeXDPContent=null;o.part=null;return o}return Pdfa}(c.XFAObject),tt=function(t){_inherits(Permissions,t);var r=_createSuper(Permissions);function Permissions(t){var o;_classCallCheck(this,Permissions);(o=r.call(this,d,"permissions",!0)).accessibleContent=null;o.change=null;o.contentCopy=null;o.documentAssembly=null;o.formFieldFilling=null;o.modifyAnnots=null;o.plaintextMetadata=null;o.print=null;o.printHighQuality=null;return o}return Permissions}(c.XFAObject),rt=function(t){_inherits(PickTrayByPDFSize,t);var r=_createSuper(PickTrayByPDFSize);function PickTrayByPDFSize(t){_classCallCheck(this,PickTrayByPDFSize);return r.call(this,d,"pickTrayByPDFSize")}return PickTrayByPDFSize}(c.Option01),at=function(t){_inherits(Picture,t);var r=_createSuper(Picture);function Picture(t){_classCallCheck(this,Picture);return r.call(this,d,"picture")}return Picture}(c.StringObject),nt=function(t){_inherits(PlaintextMetadata,t);var r=_createSuper(PlaintextMetadata);function PlaintextMetadata(t){_classCallCheck(this,PlaintextMetadata);return r.call(this,d,"plaintextMetadata")}return PlaintextMetadata}(c.Option01),it=function(t){_inherits(Presence,t);var r=_createSuper(Presence);function Presence(t){_classCallCheck(this,Presence);return r.call(this,d,"presence",["preserve","dissolve","dissolveStructure","ignore","remove"])}return Presence}(c.OptionObject),ot=function(t){_inherits(Present,t);var r=_createSuper(Present);function Present(t){var o;_classCallCheck(this,Present);(o=r.call(this,d,"present",!0)).behaviorOverride=null;o.cache=null;o.common=null;o.copies=null;o.destination=null;o.incrementalMerge=null;o.layout=null;o.output=null;o.overprint=null;o.pagination=null;o.paginationOverride=null;o.script=null;o.validate=null;o.xdp=null;o.driver=new c.XFAObjectArray;o.labelPrinter=new c.XFAObjectArray;o.pcl=new c.XFAObjectArray;o.pdf=new c.XFAObjectArray;o.ps=new c.XFAObjectArray;o.submitUrl=new c.XFAObjectArray;o.webClient=new c.XFAObjectArray;o.zpl=new c.XFAObjectArray;return o}return Present}(c.XFAObject),st=function(t){_inherits(Print,t);var r=_createSuper(Print);function Print(t){_classCallCheck(this,Print);return r.call(this,d,"print")}return Print}(c.Option01),lt=function(t){_inherits(PrintHighQuality,t);var r=_createSuper(PrintHighQuality);function PrintHighQuality(t){_classCallCheck(this,PrintHighQuality);return r.call(this,d,"printHighQuality")}return PrintHighQuality}(c.Option01),ct=function(t){_inherits(PrintScaling,t);var r=_createSuper(PrintScaling);function PrintScaling(t){_classCallCheck(this,PrintScaling);return r.call(this,d,"printScaling",["appdefault","noScaling"])}return PrintScaling}(c.OptionObject),ut=function(t){_inherits(PrinterName,t);var r=_createSuper(PrinterName);function PrinterName(t){_classCallCheck(this,PrinterName);return r.call(this,d,"printerName")}return PrinterName}(c.StringObject),ft=function(t){_inherits(Producer,t);var r=_createSuper(Producer);function Producer(t){_classCallCheck(this,Producer);return r.call(this,d,"producer")}return Producer}(c.StringObject),ht=function(t){_inherits(Ps,t);var r=_createSuper(Ps);function Ps(t){var o;_classCallCheck(this,Ps);(o=r.call(this,d,"ps",!0)).name=t.name||"";o.batchOutput=null;o.fontInfo=null;o.jog=null;o.mediumInfo=null;o.outputBin=null;o.staple=null;o.xdc=null;return o}return Ps}(c.XFAObject),dt=function(t){_inherits(Range,t);var r=_createSuper(Range);function Range(t){_classCallCheck(this,Range);return r.call(this,d,"range")}_createClass(Range,[{key:c.$finalize,value:function value(){this[c.$content]=this[c.$content].trim().split(/\s*,\s*/,2).map((function(t){return t.split("-").map((function(t){return parseInt(t.trim(),10)}))})).filter((function(t){return t.every((function(t){return!isNaN(t)}))})).map((function(t){1===t.length&&t.push(t[0]);return t}))}}]);return Range}(c.ContentObject),mt=function(t){_inherits(Record,t);var r=_createSuper(Record);function Record(t){_classCallCheck(this,Record);return r.call(this,d,"record")}_createClass(Record,[{key:c.$finalize,value:function value(){this[c.$content]=this[c.$content].trim();var t=parseInt(this[c.$content],10);!isNaN(t)&&t>=0&&(this[c.$content]=t)}}]);return Record}(c.ContentObject),gt=function(t){_inherits(Relevant,t);var r=_createSuper(Relevant);function Relevant(t){_classCallCheck(this,Relevant);return r.call(this,d,"relevant")}_createClass(Relevant,[{key:c.$finalize,value:function value(){this[c.$content]=this[c.$content].trim().split(/\s+/)}}]);return Relevant}(c.ContentObject),yt=function(t){_inherits(Rename,t);var r=_createSuper(Rename);function Rename(t){_classCallCheck(this,Rename);return r.call(this,d,"rename")}_createClass(Rename,[{key:c.$finalize,value:function value(){this[c.$content]=this[c.$content].trim();(this[c.$content].toLowerCase().startsWith("xml")||this[c.$content].match(new RegExp("[\\p{L}_][\\p{L}\\d._\\p{M}-]*","u")))&&(0,h.warn)("XFA - Rename: invalid XFA name")}}]);return Rename}(c.ContentObject),vt=function(t){_inherits(RenderPolicy,t);var r=_createSuper(RenderPolicy);function RenderPolicy(t){_classCallCheck(this,RenderPolicy);return r.call(this,d,"renderPolicy",["server","client"])}return RenderPolicy}(c.OptionObject),bt=function(t){_inherits(RunScripts,t);var r=_createSuper(RunScripts);function RunScripts(t){_classCallCheck(this,RunScripts);return r.call(this,d,"runScripts",["both","client","none","server"])}return RunScripts}(c.OptionObject),St=function(t){_inherits(Script,t);var r=_createSuper(Script);function Script(t){var o;_classCallCheck(this,Script);(o=r.call(this,d,"script",!0)).currentPage=null;o.exclude=null;o.runScripts=null;return o}return Script}(c.XFAObject),_t=function(t){_inherits(ScriptModel,t);var r=_createSuper(ScriptModel);function ScriptModel(t){_classCallCheck(this,ScriptModel);return r.call(this,d,"scriptModel",["XFA","none"])}return ScriptModel}(c.OptionObject),kt=function(t){_inherits(Severity,t);var r=_createSuper(Severity);function Severity(t){_classCallCheck(this,Severity);return r.call(this,d,"severity",["ignore","error","information","trace","warning"])}return Severity}(c.OptionObject),Ct=function(t){_inherits(SilentPrint,t);var r=_createSuper(SilentPrint);function SilentPrint(t){var o;_classCallCheck(this,SilentPrint);(o=r.call(this,d,"silentPrint",!0)).addSilentPrint=null;o.printerName=null;return o}return SilentPrint}(c.XFAObject),wt=function(t){_inherits(Staple,t);var r=_createSuper(Staple);function Staple(t){var o;_classCallCheck(this,Staple);(o=r.call(this,d,"staple")).mode=(0,u.getStringOption)(t.mode,["usePrinterSetting","on","off"]);return o}return Staple}(c.XFAObject),At=function(t){_inherits(StartNode,t);var r=_createSuper(StartNode);function StartNode(t){_classCallCheck(this,StartNode);return r.call(this,d,"startNode")}return StartNode}(c.StringObject),xt=function(t){_inherits(StartPage,t);var r=_createSuper(StartPage);function StartPage(t){_classCallCheck(this,StartPage);return r.call(this,d,"startPage",0,(function(t){return!0}))}return StartPage}(c.IntegerObject),Ot=function(t){_inherits(SubmitFormat,t);var r=_createSuper(SubmitFormat);function SubmitFormat(t){_classCallCheck(this,SubmitFormat);return r.call(this,d,"submitFormat",["html","delegate","fdf","xml","pdf"])}return SubmitFormat}(c.OptionObject),Pt=function(t){_inherits(SubmitUrl,t);var r=_createSuper(SubmitUrl);function SubmitUrl(t){_classCallCheck(this,SubmitUrl);return r.call(this,d,"submitUrl")}return SubmitUrl}(c.StringObject),Tt=function(t){_inherits(SubsetBelow,t);var r=_createSuper(SubsetBelow);function SubsetBelow(t){_classCallCheck(this,SubsetBelow);return r.call(this,d,"subsetBelow",100,(function(t){return t>=0&&t<=100}))}return SubsetBelow}(c.IntegerObject),It=function(t){_inherits(SuppressBanner,t);var r=_createSuper(SuppressBanner);function SuppressBanner(t){_classCallCheck(this,SuppressBanner);return r.call(this,d,"suppressBanner")}return SuppressBanner}(c.Option01),Ft=function(t){_inherits(Tagged,t);var r=_createSuper(Tagged);function Tagged(t){_classCallCheck(this,Tagged);return r.call(this,d,"tagged")}return Tagged}(c.Option01),Rt=function(t){_inherits(Template,t);var r=_createSuper(Template);function Template(t){var o;_classCallCheck(this,Template);(o=r.call(this,d,"template",!0)).base=null;o.relevant=null;o.startPage=null;o.uri=null;o.xsl=null;return o}return Template}(c.XFAObject),Et=function(t){_inherits(Threshold,t);var r=_createSuper(Threshold);function Threshold(t){_classCallCheck(this,Threshold);return r.call(this,d,"threshold",["trace","error","information","warning"])}return Threshold}(c.OptionObject),Mt=function(t){_inherits(To,t);var r=_createSuper(To);function To(t){_classCallCheck(this,To);return r.call(this,d,"to",["null","memory","stderr","stdout","system","uri"])}return To}(c.OptionObject),Bt=function(t){_inherits(TemplateCache,t);var r=_createSuper(TemplateCache);function TemplateCache(t){var o;_classCallCheck(this,TemplateCache);(o=r.call(this,d,"templateCache")).maxEntries=(0,u.getInteger)({data:t.maxEntries,defaultValue:5,validate:function validate(t){return t>=0}});return o}return TemplateCache}(c.XFAObject),Dt=function(t){_inherits(Trace,t);var r=_createSuper(Trace);function Trace(t){var o;_classCallCheck(this,Trace);(o=r.call(this,d,"trace",!0)).area=new c.XFAObjectArray;return o}return Trace}(c.XFAObject),jt=function(t){_inherits(Transform,t);var r=_createSuper(Transform);function Transform(t){var o;_classCallCheck(this,Transform);(o=r.call(this,d,"transform",!0)).groupParent=null;o.ifEmpty=null;o.nameAttr=null;o.picture=null;o.presence=null;o.rename=null;o.whitespace=null;return o}return Transform}(c.XFAObject),Lt=function(t){_inherits(Type,t);var r=_createSuper(Type);function Type(t){_classCallCheck(this,Type);return r.call(this,d,"type",["none","ascii85","asciiHex","ccittfax","flate","lzw","runLength","native","xdp","mergedXDP"])}return Type}(c.OptionObject),Nt=function(t){_inherits(Uri,t);var r=_createSuper(Uri);function Uri(t){_classCallCheck(this,Uri);return r.call(this,d,"uri")}return Uri}(c.StringObject),Ut=function(t){_inherits(Validate,t);var r=_createSuper(Validate);function Validate(t){_classCallCheck(this,Validate);return r.call(this,d,"validate",["preSubmit","prePrint","preExecute","preSave"])}return Validate}(c.OptionObject),Ht=function(t){_inherits(ValidateApprovalSignatures,t);var r=_createSuper(ValidateApprovalSignatures);function ValidateApprovalSignatures(t){_classCallCheck(this,ValidateApprovalSignatures);return r.call(this,d,"validateApprovalSignatures")}_createClass(ValidateApprovalSignatures,[{key:c.$finalize,value:function value(){this[c.$content]=this[c.$content].trim().split(/\s+/).filter((function(t){return["docReady","postSign"].includes(t)}))}}]);return ValidateApprovalSignatures}(c.ContentObject),Wt=function(t){_inherits(ValidationMessaging,t);var r=_createSuper(ValidationMessaging);function ValidationMessaging(t){_classCallCheck(this,ValidationMessaging);return r.call(this,d,"validationMessaging",["allMessagesIndividually","allMessagesTogether","firstMessageOnly","noMessages"])}return ValidationMessaging}(c.OptionObject),$t=function(t){_inherits(Version,t);var r=_createSuper(Version);function Version(t){_classCallCheck(this,Version);return r.call(this,d,"version",["1.7","1.6","1.5","1.4","1.3","1.2"])}return Version}(c.OptionObject),qt=function(t){_inherits(VersionControl,t);var r=_createSuper(VersionControl);function VersionControl(t){var o;_classCallCheck(this,VersionControl);(o=r.call(this,d,"VersionControl")).outputBelow=(0,u.getStringOption)(t.outputBelow,["warn","error","update"]);o.sourceAbove=(0,u.getStringOption)(t.sourceAbove,["warn","error"]);o.sourceBelow=(0,u.getStringOption)(t.sourceBelow,["update","maintain"]);return o}return VersionControl}(c.XFAObject),Xt=function(t){_inherits(ViewerPreferences,t);var r=_createSuper(ViewerPreferences);function ViewerPreferences(t){var o;_classCallCheck(this,ViewerPreferences);(o=r.call(this,d,"viewerPreferences",!0)).ADBE_JSConsole=null;o.ADBE_JSDebugger=null;o.addViewerPreferences=null;o.duplexOption=null;o.enforce=null;o.numberOfCopies=null;o.pageRange=null;o.pickTrayByPDFSize=null;o.printScaling=null;return o}return ViewerPreferences}(c.XFAObject),zt=function(t){_inherits(WebClient,t);var r=_createSuper(WebClient);function WebClient(t){var o;_classCallCheck(this,WebClient);(o=r.call(this,d,"webClient",!0)).name=t.name?t.name.trim():"";o.fontInfo=null;o.xdc=null;return o}return WebClient}(c.XFAObject),Gt=function(t){_inherits(Whitespace,t);var r=_createSuper(Whitespace);function Whitespace(t){_classCallCheck(this,Whitespace);return r.call(this,d,"whitespace",["preserve","ltrim","normalize","rtrim","trim"])}return Whitespace}(c.OptionObject),Vt=function(t){_inherits(Window,t);var r=_createSuper(Window);function Window(t){_classCallCheck(this,Window);return r.call(this,d,"window")}_createClass(Window,[{key:c.$finalize,value:function value(){var t=this[c.$content].trim().split(/\s*,\s*/,2).map((function(t){return parseInt(t,10)}));if(t.some((function(t){return isNaN(t)})))this[c.$content]=[0,0];else{1===t.length&&t.push(t[0]);this[c.$content]=t}}}]);return Window}(c.ContentObject),Yt=function(t){_inherits(Xdc,t);var r=_createSuper(Xdc);function Xdc(t){var o;_classCallCheck(this,Xdc);(o=r.call(this,d,"xdc",!0)).uri=new c.XFAObjectArray;o.xsl=new c.XFAObjectArray;return o}return Xdc}(c.XFAObject),Kt=function(t){_inherits(Xdp,t);var r=_createSuper(Xdp);function Xdp(t){var o;_classCallCheck(this,Xdp);(o=r.call(this,d,"xdp",!0)).packets=null;return o}return Xdp}(c.XFAObject),Jt=function(t){_inherits(Xsl,t);var r=_createSuper(Xsl);function Xsl(t){var o;_classCallCheck(this,Xsl);(o=r.call(this,d,"xsl",!0)).debug=null;o.uri=null;return o}return Xsl}(c.XFAObject),Qt=function(t){_inherits(Zpl,t);var r=_createSuper(Zpl);function Zpl(t){var o;_classCallCheck(this,Zpl);(o=r.call(this,d,"zpl",!0)).name=t.name?t.name.trim():"";o.batchOutput=null;o.flipLabel=null;o.fontInfo=null;o.xdc=null;return o}return Zpl}(c.XFAObject),Zt=function(){function ConfigNamespace(){_classCallCheck(this,ConfigNamespace)}_createClass(ConfigNamespace,null,[{key:l.$buildXFAObject,value:function value(t,r){if(ConfigNamespace.hasOwnProperty(t))return ConfigNamespace[t](r)}},{key:"acrobat",value:function acrobat(t){return new m(t)}},{key:"acrobat7",value:function acrobat7(t){return new g(t)}},{key:"ADBE_JSConsole",value:function ADBE_JSConsole(t){return new y(t)}},{key:"ADBE_JSDebugger",value:function ADBE_JSDebugger(t){return new v(t)}},{key:"addSilentPrint",value:function addSilentPrint(t){return new S(t)}},{key:"addViewerPreferences",value:function addViewerPreferences(t){return new _(t)}},{key:"adjustData",value:function adjustData(t){return new k(t)}},{key:"adobeExtensionLevel",value:function adobeExtensionLevel(t){return new C(t)}},{key:"agent",value:function agent(t){return new w(t)}},{key:"alwaysEmbed",value:function alwaysEmbed(t){return new x(t)}},{key:"amd",value:function amd(t){return new O(t)}},{key:"area",value:function area(t){return new T(t)}},{key:"attributes",value:function attributes(t){return new R(t)}},{key:"autoSave",value:function autoSave(t){return new E(t)}},{key:"base",value:function base(t){return new M(t)}},{key:"batchOutput",value:function batchOutput(t){return new D(t)}},{key:"behaviorOverride",value:function behaviorOverride(t){return new j(t)}},{key:"cache",value:function cache(t){return new L(t)}},{key:"change",value:function change(t){return new N(t)}},{key:"common",value:function common(t){return new U(t)}},{key:"compress",value:function compress(t){return new H(t)}},{key:"compressLogicalStructure",value:function compressLogicalStructure(t){return new W(t)}},{key:"compressObjectStream",value:function compressObjectStream(t){return new $(t)}},{key:"compression",value:function compression(t){return new q(t)}},{key:"config",value:function config(t){return new X(t)}},{key:"conformance",value:function conformance(t){return new z(t)}},{key:"contentCopy",value:function contentCopy(t){return new G(t)}},{key:"copies",value:function copies(t){return new V(t)}},{key:"creator",value:function creator(t){return new Y(t)}},{key:"currentPage",value:function currentPage(t){return new K(t)}},{key:"data",value:function data(t){return new J(t)}},{key:"debug",value:function debug(t){return new Q(t)}},{key:"defaultTypeface",value:function defaultTypeface(t){return new Z(t)}},{key:"destination",value:function destination(t){return new ee(t)}},{key:"documentAssembly",value:function documentAssembly(t){return new te(t)}},{key:"driver",value:function driver(t){return new re(t)}},{key:"duplexOption",value:function duplexOption(t){return new ae(t)}},{key:"dynamicRender",value:function dynamicRender(t){return new ne(t)}},{key:"embed",value:function embed(t){return new ie(t)}},{key:"encrypt",value:function encrypt(t){return new oe(t)}},{key:"encryption",value:function encryption(t){return new se(t)}},{key:"encryptionLevel",value:function encryptionLevel(t){return new le(t)}},{key:"enforce",value:function enforce(t){return new ce(t)}},{key:"equate",value:function equate(t){return new ue(t)}},{key:"equateRange",value:function equateRange(t){return new fe(t)}},{key:"exclude",value:function exclude(t){return new he(t)}},{key:"excludeNS",value:function excludeNS(t){return new de(t)}},{key:"flipLabel",value:function flipLabel(t){return new pe(t)}},{key:"fontInfo",value:function fontInfo(t){return new me(t)}},{key:"formFieldFilling",value:function formFieldFilling(t){return new ge(t)}},{key:"groupParent",value:function groupParent(t){return new ye(t)}},{key:"ifEmpty",value:function ifEmpty(t){return new ve(t)}},{key:"includeXDPContent",value:function includeXDPContent(t){return new be(t)}},{key:"incrementalLoad",value:function incrementalLoad(t){return new Se(t)}},{key:"incrementalMerge",value:function incrementalMerge(t){return new _e(t)}},{key:"interactive",value:function interactive(t){return new ke(t)}},{key:"jog",value:function jog(t){return new Ce(t)}},{key:"labelPrinter",value:function labelPrinter(t){return new we(t)}},{key:"layout",value:function layout(t){return new Ae(t)}},{key:"level",value:function level(t){return new xe(t)}},{key:"linearized",value:function linearized(t){return new Oe(t)}},{key:"locale",value:function locale(t){return new Pe(t)}},{key:"localeSet",value:function localeSet(t){return new Te(t)}},{key:"log",value:function log(t){return new Ie(t)}},{key:"map",value:function map(t){return new Fe(t)}},{key:"mediumInfo",value:function mediumInfo(t){return new Re(t)}},{key:"message",value:function message(t){return new Ee(t)}},{key:"messaging",value:function messaging(t){return new Me(t)}},{key:"mode",value:function mode(t){return new Be(t)}},{key:"modifyAnnots",value:function modifyAnnots(t){return new De(t)}},{key:"msgId",value:function msgId(t){return new je(t)}},{key:"nameAttr",value:function nameAttr(t){return new Le(t)}},{key:"neverEmbed",value:function neverEmbed(t){return new Ne(t)}},{key:"numberOfCopies",value:function numberOfCopies(t){return new Ue(t)}},{key:"openAction",value:function openAction(t){return new He(t)}},{key:"output",value:function output(t){return new We(t)}},{key:"outputBin",value:function outputBin(t){return new $e(t)}},{key:"outputXSL",value:function outputXSL(t){return new qe(t)}},{key:"overprint",value:function overprint(t){return new Xe(t)}},{key:"packets",value:function packets(t){return new ze(t)}},{key:"pageOffset",value:function pageOffset(t){return new Ge(t)}},{key:"pageRange",value:function pageRange(t){return new Ve(t)}},{key:"pagination",value:function pagination(t){return new Ye(t)}},{key:"paginationOverride",value:function paginationOverride(t){return new Ke(t)}},{key:"part",value:function part(t){return new Je(t)}},{key:"pcl",value:function pcl(t){return new Qe(t)}},{key:"pdf",value:function pdf(t){return new Ze(t)}},{key:"pdfa",value:function pdfa(t){return new et(t)}},{key:"permissions",value:function permissions(t){return new tt(t)}},{key:"pickTrayByPDFSize",value:function pickTrayByPDFSize(t){return new rt(t)}},{key:"picture",value:function picture(t){return new at(t)}},{key:"plaintextMetadata",value:function plaintextMetadata(t){return new nt(t)}},{key:"presence",value:function presence(t){return new it(t)}},{key:"present",value:function present(t){return new ot(t)}},{key:"print",value:function print(t){return new st(t)}},{key:"printHighQuality",value:function printHighQuality(t){return new lt(t)}},{key:"printScaling",value:function printScaling(t){return new ct(t)}},{key:"printerName",value:function printerName(t){return new ut(t)}},{key:"producer",value:function producer(t){return new ft(t)}},{key:"ps",value:function ps(t){return new ht(t)}},{key:"range",value:function range(t){return new dt(t)}},{key:"record",value:function record(t){return new mt(t)}},{key:"relevant",value:function relevant(t){return new gt(t)}},{key:"rename",value:function rename(t){return new yt(t)}},{key:"renderPolicy",value:function renderPolicy(t){return new vt(t)}},{key:"runScripts",value:function runScripts(t){return new bt(t)}},{key:"script",value:function script(t){return new St(t)}},{key:"scriptModel",value:function scriptModel(t){return new _t(t)}},{key:"severity",value:function severity(t){return new kt(t)}},{key:"silentPrint",value:function silentPrint(t){return new Ct(t)}},{key:"staple",value:function staple(t){return new wt(t)}},{key:"startNode",value:function startNode(t){return new At(t)}},{key:"startPage",value:function startPage(t){return new xt(t)}},{key:"submitFormat",value:function submitFormat(t){return new Ot(t)}},{key:"submitUrl",value:function submitUrl(t){return new Pt(t)}},{key:"subsetBelow",value:function subsetBelow(t){return new Tt(t)}},{key:"suppressBanner",value:function suppressBanner(t){return new It(t)}},{key:"tagged",value:function tagged(t){return new Ft(t)}},{key:"template",value:function template(t){return new Rt(t)}},{key:"templateCache",value:function templateCache(t){return new Bt(t)}},{key:"threshold",value:function threshold(t){return new Et(t)}},{key:"to",value:function to(t){return new Mt(t)}},{key:"trace",value:function trace(t){return new Dt(t)}},{key:"transform",value:function transform(t){return new jt(t)}},{key:"type",value:function type(t){return new Lt(t)}},{key:"uri",value:function uri(t){return new Nt(t)}},{key:"validate",value:function validate(t){return new Ut(t)}},{key:"validateApprovalSignatures",value:function validateApprovalSignatures(t){return new Ht(t)}},{key:"validationMessaging",value:function validationMessaging(t){return new Wt(t)}},{key:"version",value:function version(t){return new $t(t)}},{key:"versionControl",value:function versionControl(t){return new qt(t)}},{key:"viewerPreferences",value:function viewerPreferences(t){return new Xt(t)}},{key:"webClient",value:function webClient(t){return new zt(t)}},{key:"whitespace",value:function whitespace(t){return new Gt(t)}},{key:"window",value:function window(t){return new Vt(t)}},{key:"xdc",value:function xdc(t){return new Yt(t)}},{key:"xdp",value:function xdp(t){return new Kt(t)}},{key:"xsl",value:function xsl(t){return new Jt(t)}},{key:"zpl",value:function zpl(t){return new Qt(t)}}]);return ConfigNamespace}();r.ConfigNamespace=Zt},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.ConnectionSetNamespace=void 0;var l=o(190),c=o(188);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var u=l.NamespaceIds.connectionSet.id,h=function(t){_inherits(ConnectionSet,t);var r=_createSuper(ConnectionSet);function ConnectionSet(t){var o;_classCallCheck(this,ConnectionSet);(o=r.call(this,u,"connectionSet",!0)).wsdlConnection=new c.XFAObjectArray;o.xmlConnection=new c.XFAObjectArray;o.xsdConnection=new c.XFAObjectArray;return o}return ConnectionSet}(c.XFAObject),d=function(t){_inherits(EffectiveInputPolicy,t);var r=_createSuper(EffectiveInputPolicy);function EffectiveInputPolicy(t){var o;_classCallCheck(this,EffectiveInputPolicy);(o=r.call(this,u,"effectiveInputPolicy")).id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return EffectiveInputPolicy}(c.XFAObject),m=function(t){_inherits(EffectiveOutputPolicy,t);var r=_createSuper(EffectiveOutputPolicy);function EffectiveOutputPolicy(t){var o;_classCallCheck(this,EffectiveOutputPolicy);(o=r.call(this,u,"effectiveOutputPolicy")).id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return EffectiveOutputPolicy}(c.XFAObject),g=function(t){_inherits(Operation,t);var r=_createSuper(Operation);function Operation(t){var o;_classCallCheck(this,Operation);(o=r.call(this,u,"operation")).id=t.id||"";o.input=t.input||"";o.name=t.name||"";o.output=t.output||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return Operation}(c.StringObject),y=function(t){_inherits(RootElement,t);var r=_createSuper(RootElement);function RootElement(t){var o;_classCallCheck(this,RootElement);(o=r.call(this,u,"rootElement")).id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return RootElement}(c.StringObject),v=function(t){_inherits(SoapAction,t);var r=_createSuper(SoapAction);function SoapAction(t){var o;_classCallCheck(this,SoapAction);(o=r.call(this,u,"soapAction")).id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return SoapAction}(c.StringObject),S=function(t){_inherits(SoapAddress,t);var r=_createSuper(SoapAddress);function SoapAddress(t){var o;_classCallCheck(this,SoapAddress);(o=r.call(this,u,"soapAddress")).id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return SoapAddress}(c.StringObject),_=function(t){_inherits(Uri,t);var r=_createSuper(Uri);function Uri(t){var o;_classCallCheck(this,Uri);(o=r.call(this,u,"uri")).id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return Uri}(c.StringObject),k=function(t){_inherits(WsdlAddress,t);var r=_createSuper(WsdlAddress);function WsdlAddress(t){var o;_classCallCheck(this,WsdlAddress);(o=r.call(this,u,"wsdlAddress")).id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return WsdlAddress}(c.StringObject),C=function(t){_inherits(WsdlConnection,t);var r=_createSuper(WsdlConnection);function WsdlConnection(t){var o;_classCallCheck(this,WsdlConnection);(o=r.call(this,u,"wsdlConnection",!0)).dataDescription=t.dataDescription||"";o.name=t.name||"";o.effectiveInputPolicy=null;o.effectiveOutputPolicy=null;o.operation=null;o.soapAction=null;o.soapAddress=null;o.wsdlAddress=null;return o}return WsdlConnection}(c.XFAObject),w=function(t){_inherits(XmlConnection,t);var r=_createSuper(XmlConnection);function XmlConnection(t){var o;_classCallCheck(this,XmlConnection);(o=r.call(this,u,"xmlConnection",!0)).dataDescription=t.dataDescription||"";o.name=t.name||"";o.uri=null;return o}return XmlConnection}(c.XFAObject),x=function(t){_inherits(XsdConnection,t);var r=_createSuper(XsdConnection);function XsdConnection(t){var o;_classCallCheck(this,XsdConnection);(o=r.call(this,u,"xsdConnection",!0)).dataDescription=t.dataDescription||"";o.name=t.name||"";o.rootElement=null;o.uri=null;return o}return XsdConnection}(c.XFAObject),O=function(){function ConnectionSetNamespace(){_classCallCheck(this,ConnectionSetNamespace)}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(ConnectionSetNamespace,null,[{key:l.$buildXFAObject,value:function value(t,r){if(ConnectionSetNamespace.hasOwnProperty(t))return ConnectionSetNamespace[t](r)}},{key:"connectionSet",value:function connectionSet(t){return new h(t)}},{key:"effectiveInputPolicy",value:function effectiveInputPolicy(t){return new d(t)}},{key:"effectiveOutputPolicy",value:function effectiveOutputPolicy(t){return new m(t)}},{key:"operation",value:function operation(t){return new g(t)}},{key:"rootElement",value:function rootElement(t){return new y(t)}},{key:"soapAction",value:function soapAction(t){return new v(t)}},{key:"soapAddress",value:function soapAddress(t){return new S(t)}},{key:"uri",value:function uri(t){return new _(t)}},{key:"wsdlAddress",value:function wsdlAddress(t){return new k(t)}},{key:"wsdlConnection",value:function wsdlConnection(t){return new C(t)}},{key:"xmlConnection",value:function xmlConnection(t){return new w(t)}},{key:"xsdConnection",value:function xsdConnection(t){return new x(t)}}]);return ConnectionSetNamespace}();r.ConnectionSetNamespace=O},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.DatasetsNamespace=void 0;var l=o(188),c=o(190);function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var u=c.NamespaceIds.datasets.id,h=function(t){_inherits(Data,t);var r=_createSuper(Data);function Data(t){_classCallCheck(this,Data);return r.call(this,u,"data",t)}_createClass(Data,[{key:l.$isNsAgnostic,value:function value(){return!0}}]);return Data}(l.XmlObject),d=function(t){_inherits(Datasets,t);var r=_createSuper(Datasets);function Datasets(t){var o;_classCallCheck(this,Datasets);(o=r.call(this,u,"datasets",!0)).data=null;o.Signature=null;return o}_createClass(Datasets,[{key:l.$onChild,value:function value(t){var r=t[l.$nodeName];("data"===r&&t[l.$namespaceId]===u||"Signature"===r&&t[l.$namespaceId]===c.NamespaceIds.signature.id)&&(this[r]=t);this[l.$appendChild](t)}}]);return Datasets}(l.XFAObject),m=function(){function DatasetsNamespace(){_classCallCheck(this,DatasetsNamespace)}_createClass(DatasetsNamespace,null,[{key:c.$buildXFAObject,value:function value(t,r){if(DatasetsNamespace.hasOwnProperty(t))return DatasetsNamespace[t](r)}},{key:"datasets",value:function datasets(t){return new d(t)}},{key:"data",value:function data(t){return new h(t)}}]);return DatasetsNamespace}();r.DatasetsNamespace=m},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.LocaleSetNamespace=void 0;var l=o(190),c=o(188),u=o(189);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var h=l.NamespaceIds.localeSet.id,d=function(t){_inherits(CalendarSymbols,t);var r=_createSuper(CalendarSymbols);function CalendarSymbols(t){var o;_classCallCheck(this,CalendarSymbols);(o=r.call(this,h,"calendarSymbols",!0)).name="gregorian";o.dayNames=new c.XFAObjectArray(2);o.eraNames=null;o.meridiemNames=null;o.monthNames=new c.XFAObjectArray(2);return o}return CalendarSymbols}(c.XFAObject),m=function(t){_inherits(CurrencySymbol,t);var r=_createSuper(CurrencySymbol);function CurrencySymbol(t){var o;_classCallCheck(this,CurrencySymbol);(o=r.call(this,h,"currencySymbol")).name=(0,u.getStringOption)(t.name,["symbol","isoname","decimal"]);return o}return CurrencySymbol}(c.StringObject),g=function(t){_inherits(CurrencySymbols,t);var r=_createSuper(CurrencySymbols);function CurrencySymbols(t){var o;_classCallCheck(this,CurrencySymbols);(o=r.call(this,h,"currencySymbols",!0)).currencySymbol=new c.XFAObjectArray(3);return o}return CurrencySymbols}(c.XFAObject),y=function(t){_inherits(DatePattern,t);var r=_createSuper(DatePattern);function DatePattern(t){var o;_classCallCheck(this,DatePattern);(o=r.call(this,h,"datePattern")).name=(0,u.getStringOption)(t.name,["full","long","med","short"]);return o}return DatePattern}(c.StringObject),v=function(t){_inherits(DatePatterns,t);var r=_createSuper(DatePatterns);function DatePatterns(t){var o;_classCallCheck(this,DatePatterns);(o=r.call(this,h,"datePatterns",!0)).datePattern=new c.XFAObjectArray(4);return o}return DatePatterns}(c.XFAObject),S=function(t){_inherits(DateTimeSymbols,t);var r=_createSuper(DateTimeSymbols);function DateTimeSymbols(t){_classCallCheck(this,DateTimeSymbols);return r.call(this,h,"dateTimeSymbols")}return DateTimeSymbols}(c.ContentObject),_=function(t){_inherits(Day,t);var r=_createSuper(Day);function Day(t){_classCallCheck(this,Day);return r.call(this,h,"day")}return Day}(c.StringObject),k=function(t){_inherits(DayNames,t);var r=_createSuper(DayNames);function DayNames(t){var o;_classCallCheck(this,DayNames);(o=r.call(this,h,"dayNames",!0)).abbr=(0,u.getInteger)({data:t.abbr,defaultValue:0,validate:function validate(t){return 1===t}});o.day=new c.XFAObjectArray(7);return o}return DayNames}(c.XFAObject),C=function(t){_inherits(Era,t);var r=_createSuper(Era);function Era(t){_classCallCheck(this,Era);return r.call(this,h,"era")}return Era}(c.StringObject),w=function(t){_inherits(EraNames,t);var r=_createSuper(EraNames);function EraNames(t){var o;_classCallCheck(this,EraNames);(o=r.call(this,h,"eraNames",!0)).era=new c.XFAObjectArray(2);return o}return EraNames}(c.XFAObject),x=function(t){_inherits(Locale,t);var r=_createSuper(Locale);function Locale(t){var o;_classCallCheck(this,Locale);(o=r.call(this,h,"locale",!0)).desc=t.desc||"";o.name="isoname";o.calendarSymbols=null;o.currencySymbols=null;o.datePatterns=null;o.dateTimeSymbols=null;o.numberPatterns=null;o.numberSymbols=null;o.timePatterns=null;o.typeFaces=null;return o}return Locale}(c.XFAObject),O=function(t){_inherits(LocaleSet,t);var r=_createSuper(LocaleSet);function LocaleSet(t){var o;_classCallCheck(this,LocaleSet);(o=r.call(this,h,"localeSet",!0)).locale=new c.XFAObjectArray;return o}return LocaleSet}(c.XFAObject),T=function(t){_inherits(Meridiem,t);var r=_createSuper(Meridiem);function Meridiem(t){_classCallCheck(this,Meridiem);return r.call(this,h,"meridiem")}return Meridiem}(c.StringObject),R=function(t){_inherits(MeridiemNames,t);var r=_createSuper(MeridiemNames);function MeridiemNames(t){var o;_classCallCheck(this,MeridiemNames);(o=r.call(this,h,"meridiemNames",!0)).meridiem=new c.XFAObjectArray(2);return o}return MeridiemNames}(c.XFAObject),E=function(t){_inherits(Month,t);var r=_createSuper(Month);function Month(t){_classCallCheck(this,Month);return r.call(this,h,"month")}return Month}(c.StringObject),M=function(t){_inherits(MonthNames,t);var r=_createSuper(MonthNames);function MonthNames(t){var o;_classCallCheck(this,MonthNames);(o=r.call(this,h,"monthNames",!0)).abbr=(0,u.getInteger)({data:t.abbr,defaultValue:0,validate:function validate(t){return 1===t}});o.month=new c.XFAObjectArray(12);return o}return MonthNames}(c.XFAObject),D=function(t){_inherits(NumberPattern,t);var r=_createSuper(NumberPattern);function NumberPattern(t){var o;_classCallCheck(this,NumberPattern);(o=r.call(this,h,"numberPattern")).name=(0,u.getStringOption)(t.name,["full","long","med","short"]);return o}return NumberPattern}(c.StringObject),j=function(t){_inherits(NumberPatterns,t);var r=_createSuper(NumberPatterns);function NumberPatterns(t){var o;_classCallCheck(this,NumberPatterns);(o=r.call(this,h,"numberPatterns",!0)).numberPattern=new c.XFAObjectArray(4);return o}return NumberPatterns}(c.XFAObject),L=function(t){_inherits(NumberSymbol,t);var r=_createSuper(NumberSymbol);function NumberSymbol(t){var o;_classCallCheck(this,NumberSymbol);(o=r.call(this,h,"numberSymbol")).name=(0,u.getStringOption)(t.name,["decimal","grouping","percent","minus","zero"]);return o}return NumberSymbol}(c.StringObject),N=function(t){_inherits(NumberSymbols,t);var r=_createSuper(NumberSymbols);function NumberSymbols(t){var o;_classCallCheck(this,NumberSymbols);(o=r.call(this,h,"numberSymbols",!0)).numberSymbol=new c.XFAObjectArray(5);return o}return NumberSymbols}(c.XFAObject),U=function(t){_inherits(TimePattern,t);var r=_createSuper(TimePattern);function TimePattern(t){var o;_classCallCheck(this,TimePattern);(o=r.call(this,h,"timePattern")).name=(0,u.getStringOption)(t.name,["full","long","med","short"]);return o}return TimePattern}(c.StringObject),H=function(t){_inherits(TimePatterns,t);var r=_createSuper(TimePatterns);function TimePatterns(t){var o;_classCallCheck(this,TimePatterns);(o=r.call(this,h,"timePatterns",!0)).timePattern=new c.XFAObjectArray(4);return o}return TimePatterns}(c.XFAObject),W=function(t){_inherits(TypeFace,t);var r=_createSuper(TypeFace);function TypeFace(t){var o;_classCallCheck(this,TypeFace);(o=r.call(this,h,"typeFace",!0)).name=""|t.name;return o}return TypeFace}(c.XFAObject),$=function(t){_inherits(TypeFaces,t);var r=_createSuper(TypeFaces);function TypeFaces(t){var o;_classCallCheck(this,TypeFaces);(o=r.call(this,h,"typeFaces",!0)).typeFace=new c.XFAObjectArray;return o}return TypeFaces}(c.XFAObject),q=function(){function LocaleSetNamespace(){_classCallCheck(this,LocaleSetNamespace)}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(LocaleSetNamespace,null,[{key:l.$buildXFAObject,value:function value(t,r){if(LocaleSetNamespace.hasOwnProperty(t))return LocaleSetNamespace[t](r)}},{key:"calendarSymbols",value:function calendarSymbols(t){return new d(t)}},{key:"currencySymbol",value:function currencySymbol(t){return new m(t)}},{key:"currencySymbols",value:function currencySymbols(t){return new g(t)}},{key:"datePattern",value:function datePattern(t){return new y(t)}},{key:"datePatterns",value:function datePatterns(t){return new v(t)}},{key:"dateTimeSymbols",value:function dateTimeSymbols(t){return new S(t)}},{key:"day",value:function day(t){return new _(t)}},{key:"dayNames",value:function dayNames(t){return new k(t)}},{key:"era",value:function era(t){return new C(t)}},{key:"eraNames",value:function eraNames(t){return new w(t)}},{key:"locale",value:function locale(t){return new x(t)}},{key:"localeSet",value:function localeSet(t){return new O(t)}},{key:"meridiem",value:function meridiem(t){return new T(t)}},{key:"meridiemNames",value:function meridiemNames(t){return new R(t)}},{key:"month",value:function month(t){return new E(t)}},{key:"monthNames",value:function monthNames(t){return new M(t)}},{key:"numberPattern",value:function numberPattern(t){return new D(t)}},{key:"numberPatterns",value:function numberPatterns(t){return new j(t)}},{key:"numberSymbol",value:function numberSymbol(t){return new L(t)}},{key:"numberSymbols",value:function numberSymbols(t){return new N(t)}},{key:"timePattern",value:function timePattern(t){return new U(t)}},{key:"timePatterns",value:function timePatterns(t){return new H(t)}},{key:"typeFace",value:function typeFace(t){return new W(t)}},{key:"typeFaces",value:function typeFaces(t){return new $(t)}}]);return LocaleSetNamespace}();r.LocaleSetNamespace=q},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.SignatureNamespace=void 0;var l=o(190),c=o(188);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var u=l.NamespaceIds.signature.id,h=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(Signature,t);var r=_createSuper(Signature);function Signature(t){_classCallCheck(this,Signature);return r.call(this,u,"signature",!0)}return Signature}(c.XFAObject),d=function(){function SignatureNamespace(){_classCallCheck(this,SignatureNamespace)}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(SignatureNamespace,null,[{key:l.$buildXFAObject,value:function value(t,r){if(SignatureNamespace.hasOwnProperty(t))return SignatureNamespace[t](r)}},{key:"signature",value:function signature(t){return new h(t)}}]);return SignatureNamespace}();r.SignatureNamespace=d},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.StylesheetNamespace=void 0;var l=o(190),c=o(188);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var u=l.NamespaceIds.stylesheet.id,h=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(Stylesheet,t);var r=_createSuper(Stylesheet);function Stylesheet(t){_classCallCheck(this,Stylesheet);return r.call(this,u,"stylesheet",!0)}return Stylesheet}(c.XFAObject),d=function(){function StylesheetNamespace(){_classCallCheck(this,StylesheetNamespace)}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(StylesheetNamespace,null,[{key:l.$buildXFAObject,value:function value(t,r){if(StylesheetNamespace.hasOwnProperty(t))return StylesheetNamespace[t](r)}},{key:"stylesheet",value:function stylesheet(t){return new h(t)}}]);return StylesheetNamespace}();r.StylesheetNamespace=d},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.XdpNamespace=void 0;var l=o(190),c=o(188);function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var u=l.NamespaceIds.xdp.id,h=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(Xdp,t);var r=_createSuper(Xdp);function Xdp(t){var o;_classCallCheck(this,Xdp);(o=r.call(this,u,"xdp",!0)).uuid=t.uuid||"";o.timeStamp=t.timeStamp||"";o.config=null;o.connectionSet=null;o.datasets=null;o.localeSet=null;o.stylesheet=new c.XFAObjectArray;o.template=null;return o}_createClass(Xdp,[{key:c.$onChildCheck,value:function value(t){var r=l.NamespaceIds[t[c.$nodeName]];return r&&t[c.$namespaceId]===r.id}}]);return Xdp}(c.XFAObject),d=function(){function XdpNamespace(){_classCallCheck(this,XdpNamespace)}_createClass(XdpNamespace,null,[{key:l.$buildXFAObject,value:function value(t,r){if(XdpNamespace.hasOwnProperty(t))return XdpNamespace[t](r)}},{key:"xdp",value:function xdp(t){return new h(t)}}]);return XdpNamespace}();r.XdpNamespace=d},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.XhtmlNamespace=void 0;var l=o(188),c=o(190),u=o(195),h=o(189);function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}function _get(t,r,o){_get="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function _get(t,r,o){var l=function _superPropBase(t,r){for(;!Object.prototype.hasOwnProperty.call(t,r)&&null!==(t=_getPrototypeOf(t)););return t}(t,r);if(l){var c=Object.getOwnPropertyDescriptor(l,r);return c.get?c.get.call(o):c.value}};return _get(t,r,o||t)}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||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 _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}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 u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}var d=c.NamespaceIds.xhtml.id,m=new Set(["color","font","font-family","font-size","font-stretch","font-style","font-weight","margin","margin-bottom","margin-left","margin-right","margin-top","letter-spacing","line-height","orphans","page-break-after","page-break-before","page-break-inside","tab-interval","tab-stop","text-align","text-decoration","text-indent","vertical-align","widows","kerning-mode","xfa-font-horizontal-scale","xfa-font-vertical-scale","xfa-spacerun","xfa-tab-stops"]),g=new Map([["page-break-after","breakAfter"],["page-break-before","breakBefore"],["page-break-inside","breakInside"],["kerning-mode",function(t){return"none"===t?"none":"normal"}],["xfa-font-horizontal-scale",function(t){return"scaleX(".concat(Math.max(0,Math.min(parseInt(t)/100)).toFixed(2),")")}],["xfa-font-vertical-scale",function(t){return"scaleY(".concat(Math.max(0,Math.min(parseInt(t)/100)).toFixed(2),")")}],["xfa-spacerun",""],["xfa-tab-stops",""],["font-size",function(t,r){t=r.fontSize=(0,h.getMeasurement)(t);return(0,u.measureToString)(.99*t)}],["letter-spacing",function(t){return(0,u.measureToString)((0,h.getMeasurement)(t))}],["line-height",function(t){return(0,u.measureToString)((0,h.getMeasurement)(t))}],["margin",function(t){return(0,u.measureToString)((0,h.getMeasurement)(t))}],["margin-bottom",function(t){return(0,u.measureToString)((0,h.getMeasurement)(t))}],["margin-left",function(t){return(0,u.measureToString)((0,h.getMeasurement)(t))}],["margin-right",function(t){return(0,u.measureToString)((0,h.getMeasurement)(t))}],["margin-top",function(t){return(0,u.measureToString)((0,h.getMeasurement)(t))}],["text-indent",function(t){return(0,u.measureToString)((0,h.getMeasurement)(t))}],["font-family",function(t){return t}]]),y=/\s+/g,v=/[\r\n]+/g;function mapStyle(t,r){var o=Object.create(null);if(!t)return o;var c,h=Object.create(null),d=_createForOfIteratorHelper(t.split(";").map((function(t){return t.split(":",2)})));try{for(d.s();!(c=d.n()).done;){var m=_slicedToArray(c.value,2),y=m[0],v=m[1],S=g.get(y);if(""!==S){var _=v;S&&(_="string"==typeof S?S:S(v,h));y.endsWith("scale")?o.transform?o.transform="".concat(o[y]," ").concat(_):o.transform=_:o[y.replaceAll(/-([a-zA-Z])/g,(function(t,r){return r.toUpperCase()}))]=_}}}catch(t){d.e(t)}finally{d.f()}o.fontFamily&&(0,u.setFontFamily)({typeface:o.fontFamily,weight:o.fontWeight||"normal",posture:o.fontStyle||"normal",size:h.fontSize||0},r,r[l.$globalData].fontFinder,o);(0,u.fixTextIndent)(o);return o}var S=new Set(["body","html"]),_=function(t){_inherits(XhtmlObject,t);var r=_createSuper(XhtmlObject);function XhtmlObject(t,o){var l;_classCallCheck(this,XhtmlObject);(l=r.call(this,d,o)).style=t.style||"";return l}_createClass(XhtmlObject,[{key:l.$clean,value:function value(t){_get(_getPrototypeOf(XhtmlObject.prototype),l.$clean,this).call(this,t);this.style=function checkStyle(t){return t.style?t.style.trim().split(/\s*;\s*/).filter((function(t){return!!t})).map((function(t){return t.split(/\s*:\s*/,2)})).filter((function(r){var o=_slicedToArray(r,2),c=o[0],u=o[1];"font-family"===c&&t[l.$globalData].usedTypefaces.add(u);return m.has(c)})).map((function(t){return t.join(":")})).join(";"):""}(this)}},{key:l.$acceptWhitespace,value:function value(){return!S.has(this[l.$nodeName])}},{key:l.$onText,value:function value(t){t=t.replace(v,"");this.style.includes("xfa-spacerun:yes")||(t=t.replace(y," "));t&&(this[l.$content]+=t)}},{key:l.$pushGlyphs,value:function value(t){var r,o=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],c=Object.create(null),u={top:NaN,bottom:NaN,left:NaN,right:NaN},d=null,m=_createForOfIteratorHelper(this.style.split(";").map((function(t){return t.split(":",2)})));try{for(m.s();!(r=m.n()).done;){var g=_slicedToArray(r.value,2),y=g[0],value=g[1];switch(y){case"font-family":c.typeface=(0,h.stripQuotes)(value);break;case"font-size":c.size=(0,h.getMeasurement)(value);break;case"font-weight":c.weight=value;break;case"font-style":c.posture=value;break;case"letter-spacing":c.letterSpacing=(0,h.getMeasurement)(value);break;case"margin":var v=value.split(/ \t/).map((function(t){return(0,h.getMeasurement)(t)}));switch(v.length){case 1:u.top=u.bottom=u.left=u.right=v[0];break;case 2:u.top=u.bottom=v[0];u.left=u.right=v[1];break;case 3:u.top=v[0];u.bottom=v[2];u.left=u.right=v[1];break;case 4:u.top=v[0];u.left=v[1];u.bottom=v[2];u.right=v[3]}break;case"margin-top":u.top=(0,h.getMeasurement)(value);break;case"margin-bottom":u.bottom=(0,h.getMeasurement)(value);break;case"margin-left":u.left=(0,h.getMeasurement)(value);break;case"margin-right":u.right=(0,h.getMeasurement)(value);break;case"line-height":d=(0,h.getMeasurement)(value)}}}catch(t){m.e(t)}finally{m.f()}t.pushData(c,u,d);if(this[l.$content])t.addString(this[l.$content]);else{var S,_=_createForOfIteratorHelper(this[l.$getChildren]());try{for(_.s();!(S=_.n()).done;){var k=S.value;"#text"!==k[l.$nodeName]?k[l.$pushGlyphs](t):t.addString(k[l.$content])}}catch(t){_.e(t)}finally{_.f()}}o&&t.popFont()}},{key:l.$toHTML,value:function value(t){var r=[];this[l.$extra]={children:r};this[l.$childrenToHTML]({});return 0!==r.length||this[l.$content]?h.HTMLResult.success({name:this[l.$nodeName],attributes:{href:this.href,style:mapStyle(this.style,this)},children:r,value:this[l.$content]||""}):h.HTMLResult.EMPTY}}]);return XhtmlObject}(l.XmlObject),k=function(t){_inherits(A,t);var r=_createSuper(A);function A(t){var o;_classCallCheck(this,A);(o=r.call(this,t,"a")).href=(0,u.fixURL)(t.href)||"";return o}return A}(_),C=function(t){_inherits(B,t);var r=_createSuper(B);function B(t){_classCallCheck(this,B);return r.call(this,t,"b")}_createClass(B,[{key:l.$pushGlyphs,value:function value(t){t.pushFont({weight:"bold"});_get(_getPrototypeOf(B.prototype),l.$pushGlyphs,this).call(this,t);t.popFont()}}]);return B}(_),w=function(t){_inherits(Body,t);var r=_createSuper(Body);function Body(t){_classCallCheck(this,Body);return r.call(this,t,"body")}_createClass(Body,[{key:l.$toHTML,value:function value(t){var r=_get(_getPrototypeOf(Body.prototype),l.$toHTML,this).call(this,t),o=r.html;if(!o)return h.HTMLResult.EMPTY;o.name="div";o.attributes.class=["xfaRich"];return r}}]);return Body}(_),x=function(t){_inherits(Br,t);var r=_createSuper(Br);function Br(t){_classCallCheck(this,Br);return r.call(this,t,"br")}_createClass(Br,[{key:l.$text,value:function value(){return"\n"}},{key:l.$pushGlyphs,value:function value(t){t.addString("\n")}},{key:l.$toHTML,value:function value(t){return h.HTMLResult.success({name:"br"})}}]);return Br}(_),O=function(t){_inherits(Html,t);var r=_createSuper(Html);function Html(t){_classCallCheck(this,Html);return r.call(this,t,"html")}_createClass(Html,[{key:l.$toHTML,value:function value(t){var r=[];this[l.$extra]={children:r};this[l.$childrenToHTML]({});if(0===r.length)return h.HTMLResult.success({name:"div",attributes:{class:["xfaRich"],style:{}},value:this[l.$content]||""});if(1===r.length){var o=r[0];if(o.attributes&&o.attributes.class.includes("xfaRich"))return h.HTMLResult.success(o)}return h.HTMLResult.success({name:"div",attributes:{class:["xfaRich"],style:{}},children:r})}}]);return Html}(_),T=function(t){_inherits(I,t);var r=_createSuper(I);function I(t){_classCallCheck(this,I);return r.call(this,t,"i")}_createClass(I,[{key:l.$pushGlyphs,value:function value(t){t.pushFont({posture:"italic"});_get(_getPrototypeOf(I.prototype),l.$pushGlyphs,this).call(this,t);t.popFont()}}]);return I}(_),R=function(t){_inherits(Li,t);var r=_createSuper(Li);function Li(t){_classCallCheck(this,Li);return r.call(this,t,"li")}return Li}(_),E=function(t){_inherits(Ol,t);var r=_createSuper(Ol);function Ol(t){_classCallCheck(this,Ol);return r.call(this,t,"ol")}return Ol}(_),M=function(t){_inherits(P,t);var r=_createSuper(P);function P(t){_classCallCheck(this,P);return r.call(this,t,"p")}_createClass(P,[{key:l.$pushGlyphs,value:function value(t){_get(_getPrototypeOf(P.prototype),l.$pushGlyphs,this).call(this,t,!1);t.addString("\n");t.addPara();t.popFont()}},{key:l.$text,value:function value(){return _get(_getPrototypeOf(P.prototype),l.$text,this).call(this)+"\n"}}]);return P}(_),D=function(t){_inherits(Span,t);var r=_createSuper(Span);function Span(t){_classCallCheck(this,Span);return r.call(this,t,"span")}return Span}(_),j=function(t){_inherits(Sub,t);var r=_createSuper(Sub);function Sub(t){_classCallCheck(this,Sub);return r.call(this,t,"sub")}return Sub}(_),L=function(t){_inherits(Sup,t);var r=_createSuper(Sup);function Sup(t){_classCallCheck(this,Sup);return r.call(this,t,"sup")}return Sup}(_),N=function(t){_inherits(Ul,t);var r=_createSuper(Ul);function Ul(t){_classCallCheck(this,Ul);return r.call(this,t,"ul")}return Ul}(_),U=function(){function XhtmlNamespace(){_classCallCheck(this,XhtmlNamespace)}_createClass(XhtmlNamespace,null,[{key:c.$buildXFAObject,value:function value(t,r){if(XhtmlNamespace.hasOwnProperty(t))return XhtmlNamespace[t](r)}},{key:"a",value:function a(t){return new k(t)}},{key:"b",value:function b(t){return new C(t)}},{key:"body",value:function body(t){return new w(t)}},{key:"br",value:function br(t){return new x(t)}},{key:"html",value:function html(t){return new O(t)}},{key:"i",value:function i(t){return new T(t)}},{key:"li",value:function li(t){return new R(t)}},{key:"ol",value:function ol(t){return new E(t)}},{key:"p",value:function p(t){return new M(t)}},{key:"span",value:function span(t){return new D(t)}},{key:"sub",value:function sub(t){return new j(t)}},{key:"sup",value:function sup(t){return new L(t)}},{key:"ul",value:function ul(t){return new N(t)}}]);return XhtmlNamespace}();r.XhtmlNamespace=U},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.UnknownNamespace=void 0;var l=o(190),c=o(188);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}var u=function(){function UnknownNamespace(t){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,UnknownNamespace);this.namespaceId=t}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(UnknownNamespace,[{key:l.$buildXFAObject,value:function value(t,r){return new c.XmlObject(this.namespaceId,t,r)}}]);return UnknownNamespace}();r.UnknownNamespace=u},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.XRef=void 0;var l=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(o(2)),c=o(4),u=o(118),h=o(140),d=o(122),m=o(185);function asyncGeneratorStep(t,r,o,l,c,u,h){try{var d=t[u](h),m=d.value}catch(t){o(t);return}d.done?r(m):Promise.resolve(m).then(l,c)}function _asyncToGenerator(t){return function(){var r=this,o=arguments;return new Promise((function(l,c){var u=t.apply(r,o);function _next(t){asyncGeneratorStep(u,l,c,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(u,l,c,_next,_throw,"throw",t)}_next(void 0)}))}}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}var g=function(){function XRef(t,r){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,XRef);this.stream=t;this.pdfManager=r;this.entries=[];this.xrefstms=Object.create(null);this._cacheMap=new Map;this.stats={streamTypes:Object.create(null),fontTypes:Object.create(null)};this._newRefNum=null}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(XRef,[{key:"getNewRef",value:function getNewRef(){null===this._newRefNum&&(this._newRefNum=this.entries.length);return u.Ref.get(this._newRefNum++,0)}},{key:"resetNewRef",value:function resetNewRef(){this._newRefNum=null}},{key:"setStartXRef",value:function setStartXRef(t){this.startXRefQueue=[t]}},{key:"parse",value:function parse(){var t,r,o,l=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(l){(0,c.warn)("Indexing all PDF objects");t=this.indexObjects()}else t=this.readXRef();t.assignXref(this);this.trailer=t;try{r=t.get("Encrypt")}catch(t){if(t instanceof d.MissingDataException)throw t;(0,c.warn)('XRef.parse - Invalid "Encrypt" reference: "'.concat(t,'".'))}if((0,u.isDict)(r)){var h=t.get("ID"),g=h&&h.length?h[0]:"";r.suppressEncryption=!0;this.encrypt=new m.CipherTransformFactory(r,g,this.pdfManager.password)}try{o=t.get("Root")}catch(t){if(t instanceof d.MissingDataException)throw t;(0,c.warn)('XRef.parse - Invalid "Root" reference: "'.concat(t,'".'))}if(!(0,u.isDict)(o)||!o.has("Pages")){if(!l)throw new d.XRefParseException;throw new c.FormatError("Invalid root reference")}this.root=o}},{key:"processXRefTable",value:function processXRefTable(t){"tableState"in this||(this.tableState={entryNum:0,streamPos:t.lexer.stream.pos,parserBuf1:t.buf1,parserBuf2:t.buf2});var r=this.readXRefTable(t);if(!(0,u.isCmd)(r,"trailer"))throw new c.FormatError("Invalid XRef table: could not find trailer dictionary");var o=t.getObj();!(0,u.isDict)(o)&&o.dict&&(o=o.dict);if(!(0,u.isDict)(o))throw new c.FormatError("Invalid XRef table: could not parse trailer dictionary");delete this.tableState;return o}},{key:"readXRefTable",value:function readXRefTable(t){var r,o=t.lexer.stream,l=this.tableState;o.pos=l.streamPos;t.buf1=l.parserBuf1;t.buf2=l.parserBuf2;for(;;){if(!("firstEntryNum"in l)||!("entryCount"in l)){if((0,u.isCmd)(r=t.getObj(),"trailer"))break;l.firstEntryNum=r;l.entryCount=t.getObj()}var h=l.firstEntryNum,d=l.entryCount;if(!Number.isInteger(h)||!Number.isInteger(d))throw new c.FormatError("Invalid XRef table: wrong types in subsection header");for(var m=l.entryNum;m<d;m++){l.streamPos=o.pos;l.entryNum=m;l.parserBuf1=t.buf1;l.parserBuf2=t.buf2;var g={};g.offset=t.getObj();g.gen=t.getObj();var y=t.getObj();if(y instanceof u.Cmd)switch(y.cmd){case"f":g.free=!0;break;case"n":g.uncompressed=!0}if(!Number.isInteger(g.offset)||!Number.isInteger(g.gen)||!g.free&&!g.uncompressed)throw new c.FormatError("Invalid entry in XRef subsection: ".concat(h,", ").concat(d));0===m&&g.free&&1===h&&(h=0);this.entries[m+h]||(this.entries[m+h]=g)}l.entryNum=0;l.streamPos=o.pos;l.parserBuf1=t.buf1;l.parserBuf2=t.buf2;delete l.firstEntryNum;delete l.entryCount}if(this.entries[0]&&!this.entries[0].free)throw new c.FormatError("Invalid XRef table: unexpected first object");return r}},{key:"processXRefStream",value:function processXRefStream(t){if(!("streamState"in this)){var r=t.dict,o=r.get("W"),l=r.get("Index");l||(l=[0,r.get("Size")]);this.streamState={entryRanges:l,byteWidths:o,entryNum:0,streamPos:t.pos}}this.readXRefStream(t);delete this.streamState;return t.dict}},{key:"readXRefStream",value:function readXRefStream(t){var r,o,l=this.streamState;t.pos=l.streamPos;for(var u=l.byteWidths,h=u[0],d=u[1],m=u[2],g=l.entryRanges;g.length>0;){var y=g[0],v=g[1];if(!Number.isInteger(y)||!Number.isInteger(v))throw new c.FormatError("Invalid XRef range fields: ".concat(y,", ").concat(v));if(!Number.isInteger(h)||!Number.isInteger(d)||!Number.isInteger(m))throw new c.FormatError("Invalid XRef entry fields length: ".concat(y,", ").concat(v));for(r=l.entryNum;r<v;++r){l.entryNum=r;l.streamPos=t.pos;var S=0,_=0,k=0;for(o=0;o<h;++o)S=S<<8|t.getByte();0===h&&(S=1);for(o=0;o<d;++o)_=_<<8|t.getByte();for(o=0;o<m;++o)k=k<<8|t.getByte();var C={};C.offset=_;C.gen=k;switch(S){case 0:C.free=!0;break;case 1:C.uncompressed=!0;break;case 2:break;default:throw new c.FormatError("Invalid XRef entry type: ".concat(S))}this.entries[y+r]||(this.entries[y+r]=C)}l.entryNum=0;l.streamPos=t.pos;g.splice(0,2)}}},{key:"indexObjects",value:function indexObjects(){function readToken(t,r){for(var o="",l=t[r];10!==l&&13!==l&&60!==l&&!(++r>=t.length);){o+=String.fromCharCode(l);l=t[r]}return o}function skipUntil(t,r,o){for(var l=o.length,c=t.length,u=0;r<c;){for(var h=0;h<l&&t[r+h]===o[h];)++h;if(h>=l)break;r++;u++}return u}var t=/^(\d+)\s+(\d+)\s+obj\b/,r=/\bendobj[\b\s]$/,o=/\s+(\d+\s+\d+\s+obj[\b\s<])$/,l=new Uint8Array([116,114,97,105,108,101,114]),m=new Uint8Array([115,116,97,114,116,120,114,101,102]),g=new Uint8Array([111,98,106]),y=new Uint8Array([47,88,82,101,102]);this.entries.length=0;var v=this.stream;v.pos=0;for(var S,_=v.getBytes(),k=_.length,C=v.start,w=[],x=[];C<k;){var O=_[C];if(9!==O&&10!==O&&13!==O&&32!==O)if(37!==O){var T=readToken(_,C),R=void 0;if(T.startsWith("xref")&&(4===T.length||/\s/.test(T[4]))){C+=skipUntil(_,C,l);w.push(C);C+=skipUntil(_,C,m)}else if(R=t.exec(T)){var E=0|R[1],M=0|R[2],D=void 0,j=C+T.length,L=!1;if(this.entries[E]){if(this.entries[E].gen===M)try{new h.Parser({lexer:new h.Lexer(v.makeSubStream(j))}).getObj();L=!0}catch(t){t instanceof d.ParserEOFException?(0,c.warn)("indexObjects -- checking object (".concat(T,'): "').concat(t,'".')):L=!0}}else L=!0;L&&(this.entries[E]={offset:C-v.start,gen:M,uncompressed:!0});for(;j<_.length;){var N=j+skipUntil(_,j,g)+4;D=N-C;var U=Math.max(N-25,j),H=(0,c.bytesToString)(_.subarray(U,N));if(r.test(H))break;var W=o.exec(H);if(W&&W[1]){(0,c.warn)('indexObjects: Found new "obj" inside of another "obj", caused by missing "endobj" -- trying to recover.');D-=W[1].length;break}j=N}var $=_.subarray(C,C+D),q=skipUntil($,0,y);if(q<D&&$[q+5]<64){x.push(C-v.start);this.xrefstms[C-v.start]=1}C+=D}else if(T.startsWith("trailer")&&(7===T.length||/\s/.test(T[7]))){w.push(C);C+=skipUntil(_,C,m)}else C+=T.length+1}else do{if(++C>=k)break;O=_[C]}while(10!==O&&13!==O);else++C}for(var X=0,z=x.length;X<z;++X){this.startXRefQueue.push(x[X]);this.readXRef(!0)}for(var G=0,V=w.length;G<V;++G){v.pos=w[G];var Y=new h.Parser({lexer:new h.Lexer(v),xref:this,allowStreams:!0,recoveryMode:!0}),K=Y.getObj();if((0,u.isCmd)(K,"trailer")){var J=Y.getObj();if((0,u.isDict)(J)){try{var Q=J.get("Root");if(!(Q instanceof u.Dict))continue;var Z=Q.get("Pages");if(!(Z instanceof u.Dict))continue;var ee=Z.get("Count");if(!Number.isInteger(ee))continue}catch(t){continue}if(J.has("ID"))return J;S=J}}}if(S)return S;throw new c.InvalidPDFException("Invalid PDF structure.")}},{key:"readXRef",value:function readXRef(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],r=this.stream,o=new Set;try{for(;this.startXRefQueue.length;){var l=this.startXRefQueue[0];if(o.has(l)){(0,c.warn)("readXRef - skipping XRef table since it was already parsed.");this.startXRefQueue.shift()}else{o.add(l);r.pos=l+r.start;var m=new h.Parser({lexer:new h.Lexer(r),xref:this,allowStreams:!0}),g=m.getObj(),y=void 0;if((0,u.isCmd)(g,"xref")){y=this.processXRefTable(m);this.topDict||(this.topDict=y);g=y.get("XRefStm");if(Number.isInteger(g)){var v=g;if(!(v in this.xrefstms)){this.xrefstms[v]=1;this.startXRefQueue.push(v)}}}else{if(!Number.isInteger(g))throw new c.FormatError("Invalid XRef stream header");if(!Number.isInteger(m.getObj())||!(0,u.isCmd)(m.getObj(),"obj")||!(0,u.isStream)(g=m.getObj()))throw new c.FormatError("Invalid XRef stream");y=this.processXRefStream(g);this.topDict||(this.topDict=y);if(!y)throw new c.FormatError("Failed to read XRef stream")}g=y.get("Prev");Number.isInteger(g)?this.startXRefQueue.push(g):(0,u.isRef)(g)&&this.startXRefQueue.push(g.num);this.startXRefQueue.shift()}}return this.topDict}catch(t){if(t instanceof d.MissingDataException)throw t;(0,c.info)("(while reading XRef): "+t)}if(!t)throw new d.XRefParseException}},{key:"getEntry",value:function getEntry(t){var r=this.entries[t];return r&&!r.free&&r.offset?r:null}},{key:"fetchIfRef",value:function fetchIfRef(t){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return t instanceof u.Ref?this.fetch(t,r):t}},{key:"fetch",value:function fetch(t){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!(t instanceof u.Ref))throw new Error("ref object is not a reference");var o=t.num,l=this._cacheMap.get(o);if(void 0!==l){l instanceof u.Dict&&!l.objId&&(l.objId=t.toString());return l}var c=this.getEntry(o);if(null===c){this._cacheMap.set(o,c);return c}c=c.uncompressed?this.fetchUncompressed(t,c,r):this.fetchCompressed(t,c,r);(0,u.isDict)(c)?c.objId=t.toString():(0,u.isStream)(c)&&(c.dict.objId=t.toString());return c}},{key:"fetchUncompressed",value:function fetchUncompressed(t,r){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],l=t.gen,c=t.num;if(r.gen!==l)throw new d.XRefEntryException("Inconsistent generation in XRef: ".concat(t));var m=this.stream.makeSubStream(r.offset+this.stream.start),g=new h.Parser({lexer:new h.Lexer(m),xref:this,allowStreams:!0}),y=g.getObj(),v=g.getObj(),S=g.getObj();if(y!==c||v!==l||!(S instanceof u.Cmd))throw new d.XRefEntryException("Bad (uncompressed) XRef entry: ".concat(t));if("obj"!==S.cmd){if(S.cmd.startsWith("obj")){c=parseInt(S.cmd.substring(3),10);if(!Number.isNaN(c))return c}throw new d.XRefEntryException("Bad (uncompressed) XRef entry: ".concat(t))}r=this.encrypt&&!o?g.getObj(this.encrypt.createCipherTransform(c,l)):g.getObj();(0,u.isStream)(r)||this._cacheMap.set(c,r);return r}},{key:"fetchCompressed",value:function fetchCompressed(t,r){var o=r.offset,l=this.fetch(u.Ref.get(o,0));if(!(0,u.isStream)(l))throw new c.FormatError("bad ObjStm stream");var m=l.dict.get("First"),g=l.dict.get("N");if(!Number.isInteger(m)||!Number.isInteger(g))throw new c.FormatError("invalid first and n parameters for ObjStm stream");for(var y=new h.Parser({lexer:new h.Lexer(l),xref:this,allowStreams:!0}),v=new Array(g),S=new Array(g),_=0;_<g;++_){var k=y.getObj();if(!Number.isInteger(k))throw new c.FormatError("invalid object number in the ObjStm stream: ".concat(k));var C=y.getObj();if(!Number.isInteger(C))throw new c.FormatError("invalid object offset in the ObjStm stream: ".concat(C));v[_]=k;S[_]=C}for(var w=(l.start||0)+m,x=new Array(g),O=0;O<g;++O){var T=O<g-1?S[O+1]-S[O]:void 0;if(T<0)throw new c.FormatError("Invalid offset in the ObjStm stream.");var R=(y=new h.Parser({lexer:new h.Lexer(l.makeSubStream(w+S[O],T,l.dict)),xref:this,allowStreams:!0})).getObj();x[O]=R;if(!(0,u.isStream)(R)){var E=v[O],M=this.entries[E];M&&M.offset===o&&M.gen===O&&this._cacheMap.set(E,R)}}if(void 0===(r=x[r.gen]))throw new d.XRefEntryException("Bad (compressed) XRef entry: ".concat(t));return r}},{key:"fetchIfRefAsync",value:(r=_asyncToGenerator(l.default.mark((function _callee(t,r){return l.default.wrap((function _callee$(o){for(;;)switch(o.prev=o.next){case 0:if(!(t instanceof u.Ref)){o.next=2;break}return o.abrupt("return",this.fetchAsync(t,r));case 2:return o.abrupt("return",t);case 3:case"end":return o.stop()}}),_callee,this)}))),function fetchIfRefAsync(t,o){return r.apply(this,arguments)})},{key:"fetchAsync",value:(t=_asyncToGenerator(l.default.mark((function _callee2(t,r){return l.default.wrap((function _callee2$(o){for(;;)switch(o.prev=o.next){case 0:o.prev=0;return o.abrupt("return",this.fetch(t,r));case 4:o.prev=4;o.t0=o.catch(0);if(o.t0 instanceof d.MissingDataException){o.next=8;break}throw o.t0;case 8:o.next=10;return this.pdfManager.requestRange(o.t0.begin,o.t0.end);case 10:return o.abrupt("return",this.fetchAsync(t,r));case 11:case"end":return o.stop()}}),_callee2,this,[[0,4]])}))),function fetchAsync(r,o){return t.apply(this,arguments)})},{key:"getCatalogObj",value:function getCatalogObj(){return this.root}}]);var t,r;return XRef}();r.XRef=g},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.MessageHandler=void 0;var l=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(o(2)),c=o(4);function asyncGeneratorStep(t,r,o,l,c,u,h){try{var d=t[u](h),m=d.value}catch(t){o(t);return}d.done?r(m):Promise.resolve(m).then(l,c)}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}var u=1,h=2,d=1,m=2,g=3,y=4,v=5,S=6,_=7,k=8;function wrapReason(t){if(!(t instanceof Error||"object"===_typeof(t)&&null!==t)){(0,c.warn)('wrapReason: Expected "reason" to be a (possibly cloned) Error.');return t}switch(t.name){case"AbortException":return new c.AbortException(t.message);case"MissingPDFException":return new c.MissingPDFException(t.message);case"PasswordException":return new c.PasswordException(t.message,t.code);case"UnexpectedResponseException":return new c.UnexpectedResponseException(t.message,t.status);case"UnknownErrorException":return new c.UnknownErrorException(t.message,t.details);default:return new c.UnknownErrorException(t.message,t.toString())}}var C=function(){function MessageHandler(t,r,o){var l=this;!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,MessageHandler);this.sourceName=t;this.targetName=r;this.comObj=o;this.callbackId=1;this.streamId=1;this.postMessageTransfers=!0;this.streamSinks=Object.create(null);this.streamControllers=Object.create(null);this.callbackCapabilities=Object.create(null);this.actionHandler=Object.create(null);this._onComObjOnMessage=function(t){var r=t.data;if(r.targetName===l.sourceName)if(r.stream)l._processStreamMessage(r);else if(r.callback){var c=r.callbackId,d=l.callbackCapabilities[c];if(!d)throw new Error("Cannot resolve callback ".concat(c));delete l.callbackCapabilities[c];if(r.callback===u)d.resolve(r.data);else{if(r.callback!==h)throw new Error("Unexpected callback case");d.reject(wrapReason(r.reason))}}else{var m=l.actionHandler[r.action];if(!m)throw new Error("Unknown action from worker: ".concat(r.action));if(r.callbackId){var g=l.sourceName,y=r.sourceName;new Promise((function(t){t(m(r.data))})).then((function(t){o.postMessage({sourceName:g,targetName:y,callback:u,callbackId:r.callbackId,data:t})}),(function(t){o.postMessage({sourceName:g,targetName:y,callback:h,callbackId:r.callbackId,reason:wrapReason(t)})}))}else r.streamId?l._createStreamSink(r):m(r.data)}};o.addEventListener("message",this._onComObjOnMessage)}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(MessageHandler,[{key:"on",value:function on(t,r){var o=this.actionHandler;if(o[t])throw new Error('There is already an actionName called "'.concat(t,'"'));o[t]=r}},{key:"send",value:function send(t,r,o){this._postMessage({sourceName:this.sourceName,targetName:this.targetName,action:t,data:r},o)}},{key:"sendWithPromise",value:function sendWithPromise(t,r,o){var l=this.callbackId++,u=(0,c.createPromiseCapability)();this.callbackCapabilities[l]=u;try{this._postMessage({sourceName:this.sourceName,targetName:this.targetName,action:t,callbackId:l,data:r},o)}catch(t){u.reject(t)}return u.promise}},{key:"sendWithStream",value:function sendWithStream(t,r,o,l){var u=this,h=this.streamId++,m=this.sourceName,g=this.targetName,y=this.comObj;return new ReadableStream({start:function start(o){var d=(0,c.createPromiseCapability)();u.streamControllers[h]={controller:o,startCall:d,pullCall:null,cancelCall:null,isClosed:!1};u._postMessage({sourceName:m,targetName:g,action:t,streamId:h,data:r,desiredSize:o.desiredSize},l);return d.promise},pull:function pull(t){var r=(0,c.createPromiseCapability)();u.streamControllers[h].pullCall=r;y.postMessage({sourceName:m,targetName:g,stream:S,streamId:h,desiredSize:t.desiredSize});return r.promise},cancel:function cancel(t){(0,c.assert)(t instanceof Error,"cancel must have a valid reason");var r=(0,c.createPromiseCapability)();u.streamControllers[h].cancelCall=r;u.streamControllers[h].isClosed=!0;y.postMessage({sourceName:m,targetName:g,stream:d,streamId:h,reason:wrapReason(t)});return r.promise}},o)}},{key:"_createStreamSink",value:function _createStreamSink(t){var r=t.streamId,o=this.sourceName,l=t.sourceName,u=this.comObj,h=this,d=this.actionHandler[t.action],m={enqueue:function enqueue(t){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,d=arguments.length>2?arguments[2]:void 0;if(!this.isCancelled){var m=this.desiredSize;this.desiredSize-=u;if(m>0&&this.desiredSize<=0){this.sinkCapability=(0,c.createPromiseCapability)();this.ready=this.sinkCapability.promise}h._postMessage({sourceName:o,targetName:l,stream:y,streamId:r,chunk:t},d)}},close:function close(){if(!this.isCancelled){this.isCancelled=!0;u.postMessage({sourceName:o,targetName:l,stream:g,streamId:r});delete h.streamSinks[r]}},error:function error(t){(0,c.assert)(t instanceof Error,"error must have a valid reason");if(!this.isCancelled){this.isCancelled=!0;u.postMessage({sourceName:o,targetName:l,stream:v,streamId:r,reason:wrapReason(t)})}},sinkCapability:(0,c.createPromiseCapability)(),onPull:null,onCancel:null,isCancelled:!1,desiredSize:t.desiredSize,ready:null};m.sinkCapability.resolve();m.ready=m.sinkCapability.promise;this.streamSinks[r]=m;new Promise((function(r){r(d(t.data,m))})).then((function(){u.postMessage({sourceName:o,targetName:l,stream:k,streamId:r,success:!0})}),(function(t){u.postMessage({sourceName:o,targetName:l,stream:k,streamId:r,reason:wrapReason(t)})}))}},{key:"_processStreamMessage",value:function _processStreamMessage(t){var r=t.streamId,o=this.sourceName,l=t.sourceName,u=this.comObj,h=this.streamControllers[r],C=this.streamSinks[r];switch(t.stream){case k:t.success?h.startCall.resolve():h.startCall.reject(wrapReason(t.reason));break;case _:t.success?h.pullCall.resolve():h.pullCall.reject(wrapReason(t.reason));break;case S:if(!C){u.postMessage({sourceName:o,targetName:l,stream:_,streamId:r,success:!0});break}C.desiredSize<=0&&t.desiredSize>0&&C.sinkCapability.resolve();C.desiredSize=t.desiredSize;new Promise((function(t){t(C.onPull&&C.onPull())})).then((function(){u.postMessage({sourceName:o,targetName:l,stream:_,streamId:r,success:!0})}),(function(t){u.postMessage({sourceName:o,targetName:l,stream:_,streamId:r,reason:wrapReason(t)})}));break;case y:(0,c.assert)(h,"enqueue should have stream controller");if(h.isClosed)break;h.controller.enqueue(t.chunk);break;case g:(0,c.assert)(h,"close should have stream controller");if(h.isClosed)break;h.isClosed=!0;h.controller.close();this._deleteStreamController(h,r);break;case v:(0,c.assert)(h,"error should have stream controller");h.controller.error(wrapReason(t.reason));this._deleteStreamController(h,r);break;case m:t.success?h.cancelCall.resolve():h.cancelCall.reject(wrapReason(t.reason));this._deleteStreamController(h,r);break;case d:if(!C)break;new Promise((function(r){r(C.onCancel&&C.onCancel(wrapReason(t.reason)))})).then((function(){u.postMessage({sourceName:o,targetName:l,stream:m,streamId:r,success:!0})}),(function(t){u.postMessage({sourceName:o,targetName:l,stream:m,streamId:r,reason:wrapReason(t)})}));C.sinkCapability.reject(wrapReason(t.reason));C.isCancelled=!0;delete this.streamSinks[r];break;default:throw new Error("Unexpected stream case")}}},{key:"_deleteStreamController",value:(t=function _asyncToGenerator(t){return function(){var r=this,o=arguments;return new Promise((function(l,c){var u=t.apply(r,o);function _next(t){asyncGeneratorStep(u,l,c,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(u,l,c,_next,_throw,"throw",t)}_next(void 0)}))}}(l.default.mark((function _callee(t,r){return l.default.wrap((function _callee$(o){for(;;)switch(o.prev=o.next){case 0:o.next=2;return Promise.allSettled([t.startCall&&t.startCall.promise,t.pullCall&&t.pullCall.promise,t.cancelCall&&t.cancelCall.promise]);case 2:delete this.streamControllers[r];case 3:case"end":return o.stop()}}),_callee,this)}))),function _deleteStreamController(r,o){return t.apply(this,arguments)})},{key:"_postMessage",value:function _postMessage(t,r){r&&this.postMessageTransfers?this.comObj.postMessage(t,r):this.comObj.postMessage(t)}},{key:"destroy",value:function destroy(){this.comObj.removeEventListener("message",this._onComObjOnMessage)}}]);var t;return MessageHandler}();r.MessageHandler=C},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.PDFWorkerStream=void 0;var l=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(o(2)),c=o(4);function asyncGeneratorStep(t,r,o,l,c,u,h){try{var d=t[u](h),m=d.value}catch(t){o(t);return}d.done?r(m):Promise.resolve(m).then(l,c)}function _asyncToGenerator(t){return function(){var r=this,o=arguments;return new Promise((function(l,c){var u=t.apply(r,o);function _next(t){asyncGeneratorStep(u,l,c,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(u,l,c,_next,_throw,"throw",t)}_next(void 0)}))}}function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);if("Map"===o||"Set"===o)return Array.from(t);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}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 u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var u=function(){function PDFWorkerStream(t){_classCallCheck(this,PDFWorkerStream);this._msgHandler=t;this._contentLength=null;this._fullRequestReader=null;this._rangeRequestReaders=[]}_createClass(PDFWorkerStream,[{key:"getFullReader",value:function getFullReader(){(0,c.assert)(!this._fullRequestReader,"PDFWorkerStream.getFullReader can only be called once.");this._fullRequestReader=new h(this._msgHandler);return this._fullRequestReader}},{key:"getRangeReader",value:function getRangeReader(t,r){var o=new d(t,r,this._msgHandler);this._rangeRequestReaders.push(o);return o}},{key:"cancelAllRequests",value:function cancelAllRequests(t){this._fullRequestReader&&this._fullRequestReader.cancel(t);var r,o=_createForOfIteratorHelper(this._rangeRequestReaders.slice(0));try{for(o.s();!(r=o.n()).done;){r.value.cancel(t)}}catch(t){o.e(t)}finally{o.f()}}}]);return PDFWorkerStream}();r.PDFWorkerStream=u;var h=function(){function PDFWorkerStreamReader(t){var r=this;_classCallCheck(this,PDFWorkerStreamReader);this._msgHandler=t;this.onProgress=null;this._contentLength=null;this._isRangeSupported=!1;this._isStreamingSupported=!1;var o=this._msgHandler.sendWithStream("GetReader");this._reader=o.getReader();this._headersReady=this._msgHandler.sendWithPromise("ReaderHeadersReady").then((function(t){r._isStreamingSupported=t.isStreamingSupported;r._isRangeSupported=t.isRangeSupported;r._contentLength=t.contentLength}))}_createClass(PDFWorkerStreamReader,[{key:"headersReady",get:function get(){return this._headersReady}},{key:"contentLength",get:function get(){return this._contentLength}},{key:"isStreamingSupported",get:function get(){return this._isStreamingSupported}},{key:"isRangeSupported",get:function get(){return this._isRangeSupported}},{key:"read",value:(t=_asyncToGenerator(l.default.mark((function _callee(){var t,r;return l.default.wrap((function _callee$(o){for(;;)switch(o.prev=o.next){case 0:o.next=2;return this._reader.read();case 2:t=o.sent;r=t.value;if(!t.done){o.next=7;break}return o.abrupt("return",{value:void 0,done:!0});case 7:return o.abrupt("return",{value:r.buffer,done:!1});case 8:case"end":return o.stop()}}),_callee,this)}))),function read(){return t.apply(this,arguments)})},{key:"cancel",value:function cancel(t){this._reader.cancel(t)}}]);var t;return PDFWorkerStreamReader}(),d=function(){function PDFWorkerStreamRangeReader(t,r,o){_classCallCheck(this,PDFWorkerStreamRangeReader);this._msgHandler=o;this.onProgress=null;var l=this._msgHandler.sendWithStream("GetRangeReader",{begin:t,end:r});this._reader=l.getReader()}_createClass(PDFWorkerStreamRangeReader,[{key:"isStreamingSupported",get:function get(){return!1}},{key:"read",value:(t=_asyncToGenerator(l.default.mark((function _callee2(){var t,r;return l.default.wrap((function _callee2$(o){for(;;)switch(o.prev=o.next){case 0:o.next=2;return this._reader.read();case 2:t=o.sent;r=t.value;if(!t.done){o.next=7;break}return o.abrupt("return",{value:void 0,done:!0});case 7:return o.abrupt("return",{value:r.buffer,done:!1});case 8:case"end":return o.stop()}}),_callee2,this)}))),function read(){return t.apply(this,arguments)})},{key:"cancel",value:function cancel(t){this._reader.cancel(t)}}]);var t;return PDFWorkerStreamRangeReader}()}],r={};function __w_pdfjs_require__(o){var l=r[o];if(void 0!==l)return l.exports;var c=r[o]={id:o,loaded:!1,exports:{}};t[o].call(c.exports,c,c.exports,__w_pdfjs_require__);c.loaded=!0;return c.exports}__w_pdfjs_require__.d=(t,r)=>{for(var o in r)__w_pdfjs_require__.o(r,o)&&!__w_pdfjs_require__.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})};__w_pdfjs_require__.o=(t,r)=>Object.prototype.hasOwnProperty.call(t,r);__w_pdfjs_require__.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});Object.defineProperty(t,"__esModule",{value:!0})};__w_pdfjs_require__.nmd=t=>{t.paths=[];t.children||(t.children=[]);return t};var o={};(()=>{"use strict";var t=o;Object.defineProperty(t,"__esModule",{value:!0});Object.defineProperty(t,"WorkerMessageHandler",{enumerable:!0,get:function get(){return r.WorkerMessageHandler}});var r=__w_pdfjs_require__(1)})();return o})()}));
\ No newline at end of file
diff --git a/node_modules/pdfh5/js/pdfh5.js b/node_modules/pdfh5/js/pdfh5.js
new file mode 100644
index 0000000..7ffda81
--- /dev/null
+++ b/node_modules/pdfh5/js/pdfh5.js
@@ -0,0 +1,2164 @@
+;
+(function (g, fn) {
+	var version = "1.4.9",
+		pdfjsVersion = "2.11.338";
+	console.log("pdfh5.js v" + version + " && pdf.js v" + pdfjsVersion + " https://pdfh5.gjtool.cn");
+	if (typeof require !== 'undefined') {
+		if (g.$ === undefined) {
+			g.$ = require('./jquery-3.6.0.min.js');
+		}
+		if (g["pdfjs-dist/build/pdf.worker"]) {
+			g.pdfjsWorker = g["pdfjs-dist/build/pdf.worker"];
+		} else {
+			g.pdfjsWorker = require("./pdf.worker.js");
+		}
+		if (g["pdfjs-dist/build/pdf"]) {
+			g.pdfjsLib = g["pdfjs-dist/build/pdf"];
+		} else {
+			g.pdfjsLib = require("./pdf.js");
+		}
+	}
+	var pdfjsLib = g.pdfjsLib,
+		$ = g.$,
+		pdfjsWorker = g.pdfjsWorker;
+	if (typeof define === 'function' && define.amd) {
+		define(function () {
+			return fn(g, pdfjsWorker, pdfjsLib, $, version);
+		});
+	} else if (typeof module !== 'undefined' && module.exports) {
+		module.exports = fn(g, pdfjsWorker, pdfjsLib, $, version);
+	} else {
+		g.Pdfh5 = fn(g, pdfjsWorker, pdfjsLib, $, version);
+	}
+})(typeof window !== 'undefined' ? window : this, function (g, pdfjsWorker, pdfjsLib, $, version) {
+	'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 renderTextLayer = pdfjsLib.renderTextLayer;
+	var EXPAND_DIVS_TIMEOUT = 300; // ms
+
+	var TextLayerBuilder = function () {
+		function TextLayerBuilder(_ref) {
+			var textLayerDiv = _ref.textLayerDiv;
+			var eventBus = _ref.eventBus;
+			var pageIndex = _ref.pageIndex;
+			var viewport = _ref.viewport;
+			var _ref$findController = _ref.findController;
+			var findController = _ref$findController === undefined ? null : _ref$findController;
+			var _ref$enhanceTextSelec = _ref.enhanceTextSelection;
+			var enhanceTextSelection = _ref$enhanceTextSelec === undefined ? false : _ref$enhanceTextSelec;
+
+			_classCallCheck(this, TextLayerBuilder);
+
+			this.textLayerDiv = textLayerDiv;
+			this.eventBus = eventBus;
+			this.textContent = null;
+			this.textContentItemsStr = [];
+			this.textContentStream = null;
+			this.renderingDone = false;
+			this.pageIdx = pageIndex;
+			this.pageNumber = this.pageIdx + 1;
+			this.matches = [];
+			this.viewport = viewport;
+			this.textDivs = [];
+			this.findController = findController;
+			this.textLayerRenderTask = null;
+			this.enhanceTextSelection = enhanceTextSelection;
+
+			this._onUpdateTextLayerMatches = null;
+			this._bindMouse();
+		}
+
+		/**
+		 * @private
+		 */
+		_createClass(TextLayerBuilder, [{
+			key: "_finishRendering",
+			value: function _finishRendering() {
+				this.renderingDone = true;
+
+				if (!this.enhanceTextSelection) {
+					var endOfContent = document.createElement("div");
+					endOfContent.className = "endOfContent";
+					this.textLayerDiv.appendChild(endOfContent);
+				}
+				if (this.eventBus) {
+					this.eventBus.dispatch("textlayerrendered", {
+						source: this,
+						pageNumber: this.pageNumber,
+						numTextDivs: this.textDivs.length
+					});
+				}
+			}
+
+			/**
+			 * Renders the text layer.
+			 *
+			 * @param {number} [timeout] - Wait for a specified amount of milliseconds
+			 *                             before rendering.
+			 */
+
+		}, {
+			key: "render",
+			value: function render() {
+				var _this = this;
+
+				var timeout = arguments.length <= 0 || arguments[0] === undefined ? 0 :
+					arguments[0];
+
+				if (!(this.textContent || this.textContentStream) || this.renderingDone) {
+					return;
+				}
+				this.cancel();
+
+				this.textDivs = [];
+				var textLayerFrag = document.createDocumentFragment();
+				this.textLayerRenderTask = renderTextLayer({
+					textContent: this.textContent,
+					textContentStream: this.textContentStream,
+					container: textLayerFrag,
+					viewport: this.viewport,
+					textDivs: this.textDivs,
+					textContentItemsStr: this.textContentItemsStr,
+					timeout: timeout,
+					enhanceTextSelection: this.enhanceTextSelection
+				});
+				this.textLayerRenderTask.promise.then(function () {
+					_this.textLayerDiv.appendChild(textLayerFrag);
+					_this._finishRendering();
+					_this._updateMatches();
+				}, function (reason) {
+					// Cancelled or failed to render text layer; skipping errors.
+				});
+
+				if (!this._onUpdateTextLayerMatches) {
+					this._onUpdateTextLayerMatches = function (evt) {
+						if (evt.pageIndex === _this.pageIdx || evt.pageIndex === -1) {
+							_this._updateMatches();
+						}
+					};
+					if (this.eventBus) {
+						this.eventBus._on("updatetextlayermatches", this
+							._onUpdateTextLayerMatches);
+					}
+				}
+			}
+
+			/**
+			 * Cancel rendering of the text layer.
+			 */
+
+		}, {
+			key: "cancel",
+			value: function cancel() {
+				if (this.textLayerRenderTask) {
+					this.textLayerRenderTask.cancel();
+					this.textLayerRenderTask = null;
+				}
+				if (this._onUpdateTextLayerMatches) {
+					this.eventBus._off("updatetextlayermatches", this
+						._onUpdateTextLayerMatches);
+					this._onUpdateTextLayerMatches = null;
+				}
+			}
+		}, {
+			key: "setTextContentStream",
+			value: function setTextContentStream(readableStream) {
+				this.cancel();
+				this.textContentStream = readableStream;
+			}
+		}, {
+			key: "setTextContent",
+			value: function setTextContent(textContent) {
+				this.cancel();
+				this.textContent = textContent;
+			}
+		}, {
+			key: "_convertMatches",
+			value: function _convertMatches(matches, matchesLength) {
+				// Early exit if there is nothing to convert.
+				if (!matches) {
+					return [];
+				}
+				var findController = this.findController;
+				var textContentItemsStr = this.textContentItemsStr;
+
+
+				var i = 0,
+					iIndex = 0;
+				var end = textContentItemsStr.length - 1;
+				var queryLen = findController.state.query.length;
+				var result = [];
+
+				for (var m = 0, mm = matches.length; m < mm; m++) {
+					// Calculate the start position.
+					var matchIdx = matches[m];
+
+					// Loop over the divIdxs.
+					while (i !== end && matchIdx >= iIndex + textContentItemsStr[i].length) {
+						iIndex += textContentItemsStr[i].length;
+						i++;
+					}
+
+					if (i === textContentItemsStr.length) {
+						console.error("Could not find a matching mapping");
+					}
+
+					var match = {
+						begin: {
+							divIdx: i,
+							offset: matchIdx - iIndex
+						}
+					};
+
+					// Calculate the end position.
+					if (matchesLength) {
+						// Multiterm search.
+						matchIdx += matchesLength[m];
+					} else {
+						// Phrase search.
+						matchIdx += queryLen;
+					}
+
+					// Somewhat the same array as above, but use > instead of >= to get
+					// the end position right.
+					while (i !== end && matchIdx > iIndex + textContentItemsStr[i].length) {
+						iIndex += textContentItemsStr[i].length;
+						i++;
+					}
+
+					match.end = {
+						divIdx: i,
+						offset: matchIdx - iIndex
+					};
+					result.push(match);
+				}
+				return result;
+			}
+		}, {
+			key: "_renderMatches",
+			value: function _renderMatches(matches) {
+				// Early exit if there is nothing to render.
+				if (matches.length === 0) {
+					return;
+				}
+				var findController = this.findController;
+				var pageIdx = this.pageIdx;
+				var textContentItemsStr = this.textContentItemsStr;
+				var textDivs = this.textDivs;
+
+
+				var isSelectedPage = pageIdx === findController.selected.pageIdx;
+				var selectedMatchIdx = findController.selected.matchIdx;
+				var highlightAll = findController.state.highlightAll;
+				var prevEnd = null;
+				var infinity = {
+					divIdx: -1,
+					offset: undefined
+				};
+
+				function beginText(begin, className) {
+					var divIdx = begin.divIdx;
+					textDivs[divIdx].textContent = "";
+					appendTextToDiv(divIdx, 0, begin.offset, className);
+				}
+
+				function appendTextToDiv(divIdx, fromOffset, toOffset, className) {
+					var div = textDivs[divIdx];
+					var content = textContentItemsStr[divIdx].substring(fromOffset, toOffset);
+					var node = document.createTextNode(content);
+					if (className) {
+						var span = document.createElement("span");
+						span.className = className;
+						span.appendChild(node);
+						div.appendChild(span);
+						return;
+					}
+					div.appendChild(node);
+				}
+
+				var i0 = selectedMatchIdx,
+					i1 = i0 + 1;
+				if (highlightAll) {
+					i0 = 0;
+					i1 = matches.length;
+				} else if (!isSelectedPage) {
+					// Not highlighting all and this isn't the selected page, so do nothing.
+					return;
+				}
+
+				for (var i = i0; i < i1; i++) {
+					var match = matches[i];
+					var begin = match.begin;
+					var end = match.end;
+					var isSelected = isSelectedPage && i === selectedMatchIdx;
+					var highlightSuffix = isSelected ? " selected" : "";
+
+					if (isSelected) {
+						// Attempt to scroll the selected match into view.
+						findController.scrollMatchIntoView({
+							element: textDivs[begin.divIdx],
+							pageIndex: pageIdx,
+							matchIndex: selectedMatchIdx
+						});
+					}
+
+					// Match inside new div.
+					if (!prevEnd || begin.divIdx !== prevEnd.divIdx) {
+						// If there was a previous div, then add the text at the end.
+						if (prevEnd !== null) {
+							appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset);
+						}
+						// Clear the divs and set the content until the starting point.
+						beginText(begin);
+					} else {
+						appendTextToDiv(prevEnd.divIdx, prevEnd.offset, begin.offset);
+					}
+
+					if (begin.divIdx === end.divIdx) {
+						appendTextToDiv(begin.divIdx, begin.offset, end.offset, "highlight" +
+							highlightSuffix);
+					} else {
+						appendTextToDiv(begin.divIdx, begin.offset, infinity.offset,
+							"highlight begin" + highlightSuffix);
+						for (var n0 = begin.divIdx + 1, n1 = end.divIdx; n0 < n1; n0++) {
+							textDivs[n0].className = "highlight middle" + highlightSuffix;
+						}
+						beginText(end, "highlight end" + highlightSuffix);
+					}
+					prevEnd = end;
+				}
+
+				if (prevEnd) {
+					appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset);
+				}
+			}
+		}, {
+			key: "_updateMatches",
+			value: function _updateMatches() {
+				// Only show matches when all rendering is done.
+				if (!this.renderingDone) {
+					return;
+				}
+				var findController = this.findController;
+				var matches = this.matches;
+				var pageIdx = this.pageIdx;
+				var textContentItemsStr = this.textContentItemsStr;
+				var textDivs = this.textDivs;
+
+				var clearedUntilDivIdx = -1;
+
+				// Clear all current matches.
+				for (var i = 0, ii = matches.length; i < ii; i++) {
+					var match = matches[i];
+					var begin = Math.max(clearedUntilDivIdx, match.begin.divIdx);
+					for (var n = begin, end = match.end.divIdx; n <= end; n++) {
+						var div = textDivs[n];
+						div.textContent = textContentItemsStr[n];
+						div.className = "";
+					}
+					clearedUntilDivIdx = match.end.divIdx + 1;
+				}
+
+				if (!findController || !findController.highlightMatches) {
+					return;
+				}
+				// Convert the matches on the `findController` into the match format
+				// used for the textLayer.
+				var pageMatches = findController.pageMatches[pageIdx] || null;
+				var pageMatchesLength = findController.pageMatchesLength[pageIdx] || null;
+
+				this.matches = this._convertMatches(pageMatches, pageMatchesLength);
+				this._renderMatches(this.matches);
+			}
+
+			/**
+			 * Improves text selection by adding an additional div where the mouse was
+			 * clicked. This reduces flickering of the content if the mouse is slowly
+			 * dragged up or down.
+			 *
+			 * @private
+			 */
+
+		}, {
+			key: "_bindMouse",
+			value: function _bindMouse() {
+				var _this2 = this;
+
+				var div = this.textLayerDiv;
+				var expandDivsTimer = null;
+
+				div.addEventListener("mousedown", function (evt) {
+					if (_this2.enhanceTextSelection && _this2.textLayerRenderTask) {
+						_this2.textLayerRenderTask.expandTextDivs(true);
+						if ((typeof PDFJSDev === "undefined" || !PDFJSDev.test(
+							"MOZCENTRAL")) && expandDivsTimer) {
+							clearTimeout(expandDivsTimer);
+							expandDivsTimer = null;
+						}
+						return;
+					}
+
+					var end = div.querySelector(".endOfContent");
+					if (!end) {
+						return;
+					}
+					if (typeof PDFJSDev === "undefined" || !PDFJSDev.test(
+						"MOZCENTRAL")) {
+						// On non-Firefox browsers, the selection will feel better if the height
+						// of the `endOfContent` div is adjusted to start at mouse click
+						// location. This avoids flickering when the selection moves up.
+						// However it does not work when selection is started on empty space.
+						var adjustTop = evt.target !== div;
+						if (typeof PDFJSDev === "undefined" || PDFJSDev.test(
+							"GENERIC")) {
+							adjustTop = adjustTop && window.getComputedStyle(end)
+								.getPropertyValue("-moz-user-select") !== "none";
+						}
+						if (adjustTop) {
+							var divBounds = div.getBoundingClientRect();
+							var r = Math.max(0, (evt.pageY - divBounds.top) / divBounds
+								.height);
+							end.style.top = (r * 100).toFixed(2) + "%";
+						}
+					}
+					end.classList.add("active");
+				});
+
+				div.addEventListener("mouseup", function () {
+					if (_this2.enhanceTextSelection && _this2.textLayerRenderTask) {
+						if (typeof PDFJSDev === "undefined" || !PDFJSDev.test(
+							"MOZCENTRAL")) {
+							expandDivsTimer = setTimeout(function () {
+								if (_this2.textLayerRenderTask) {
+									_this2.textLayerRenderTask.expandTextDivs(
+										false);
+								}
+								expandDivsTimer = null;
+							}, EXPAND_DIVS_TIMEOUT);
+						} else {
+							_this2.textLayerRenderTask.expandTextDivs(false);
+						}
+						return;
+					}
+
+					var end = div.querySelector(".endOfContent");
+					if (!end) {
+						return;
+					}
+					if (typeof PDFJSDev === "undefined" || !PDFJSDev.test(
+						"MOZCENTRAL")) {
+						end.style.top = "";
+					}
+					end.classList.remove("active");
+				});
+			}
+		}]);
+
+		return TextLayerBuilder;
+	}();
+
+	/**
+	 * @implements IPDFTextLayerFactory
+	 */
+
+
+	var DefaultTextLayerFactory = function () {
+		function DefaultTextLayerFactory() {
+			_classCallCheck(this, DefaultTextLayerFactory);
+		}
+
+		_createClass(DefaultTextLayerFactory, [{
+			key: "createTextLayerBuilder",
+
+			/**
+			 * @param {HTMLDivElement} textLayerDiv
+			 * @param {number} pageIndex
+			 * @param {PageViewport} viewport
+			 * @param {boolean} enhanceTextSelection
+			 * @param {EventBus} eventBus
+			 * @returns {TextLayerBuilder}
+			 */
+			value: function createTextLayerBuilder(textLayerDiv, pageIndex, viewport) {
+				var enhanceTextSelection = arguments.length <= 3 || arguments[3] === undefined ?
+					false : arguments[3];
+				var eventBus = arguments[4];
+
+				return new TextLayerBuilder({
+					textLayerDiv: textLayerDiv,
+					pageIndex: pageIndex,
+					viewport: viewport,
+					enhanceTextSelection: enhanceTextSelection,
+					eventBus: eventBus
+				});
+			}
+		}]);
+
+		return DefaultTextLayerFactory;
+	}();
+
+	g.TextLayerBuilder = TextLayerBuilder;
+	g.DefaultTextLayerFactory = DefaultTextLayerFactory;
+
+	var definePinchZoom = function ($) {
+		var PinchZoom = function (el, options, viewerContainer) {
+			this.el = $(el);
+			this.viewerContainer = viewerContainer;
+			this.zoomFactor = 1;
+			this.lastScale = 1;
+			this.offset = {
+				x: 0,
+				y: 0
+			};
+			this.options = $.extend({}, this.defaults, options);
+			this.options.zoomOutFactor = isNaN(options.zoomOutFactor) ? 1.2 : options.zoomOutFactor;
+			this.options.animationDuration = isNaN(options.animationDuration) ? 300 : options
+				.animationDuration;
+			this.options.maxZoom = isNaN(options.maxZoom) ? 3 : options.maxZoom;
+			this.options.minZoom = isNaN(options.minZoom) ? 0.8 : options.minZoom;
+			this.setupMarkup();
+			this.bindEvents();
+			this.update();
+			this.enable();
+			this.height = 0;
+			this.load = false;
+			this.direction = null;
+			this.clientY = null;
+			this.lastclientY = null;
+		},
+			sum = function (a, b) {
+				return a + b;
+			},
+			isCloseTo = function (value, expected) {
+				return value > expected - 0.01 && value < expected + 0.01;
+			};
+
+		PinchZoom.prototype = {
+			defaults: {
+				tapZoomFactor: 3,
+				zoomOutFactor: 1.2,
+				animationDuration: 300,
+				maxZoom: 5,
+				minZoom: 0.8,
+				lockDragAxis: false,
+				use2d: true,
+				zoomStartEventName: 'pz_zoomstart',
+				zoomEndEventName: 'pz_zoomend',
+				dragStartEventName: 'pz_dragstart',
+				dragEndEventName: 'pz_dragend',
+				doubleTapEventName: 'pz_doubletap'
+			},
+			handleDragStart: function (event) {
+				this.el.trigger(this.options.dragStartEventName);
+				this.stopAnimation();
+				this.lastDragPosition = false;
+				this.hasInteraction = true;
+				this.handleDrag(event);
+			},
+			handleDrag: function (event) {
+
+				if (this.zoomFactor > 1.0) {
+					var touch = this.getTouches(event)[0];
+					this.drag(touch, this.lastDragPosition, event);
+					this.offset = this.sanitizeOffset(this.offset);
+					this.lastDragPosition = touch;
+				}
+			},
+
+			handleDragEnd: function () {
+				this.el.trigger(this.options.dragEndEventName);
+				this.end();
+			},
+			handleZoomStart: function (event) {
+				this.el.trigger(this.options.zoomStartEventName);
+				this.stopAnimation();
+				this.lastScale = 1;
+				this.nthZoom = 0;
+				this.lastZoomCenter = false;
+				this.hasInteraction = true;
+			},
+			handleZoom: function (event, newScale) {
+				var touchCenter = this.getTouchCenter(this.getTouches(event)),
+					scale = newScale / this.lastScale;
+				this.lastScale = newScale;
+				this.nthZoom += 1;
+				if (this.nthZoom > 3) {
+
+					this.scale(scale, touchCenter);
+					this.drag(touchCenter, this.lastZoomCenter);
+				}
+				this.lastZoomCenter = touchCenter;
+			},
+
+			handleZoomEnd: function () {
+				this.el.trigger(this.options.zoomEndEventName);
+				this.end();
+			},
+			handleDoubleTap: function (event) {
+				var center = this.getTouches(event)[0],
+					zoomFactor = this.zoomFactor > 1 ? 1 : this.options.tapZoomFactor,
+					startZoomFactor = this.zoomFactor,
+					updateProgress = (function (progress) {
+						this.scaleTo(startZoomFactor + progress * (zoomFactor - startZoomFactor),
+							center);
+					}).bind(this);
+
+				if (this.hasInteraction) {
+					return;
+				}
+				if (startZoomFactor > zoomFactor) {
+					center = this.getCurrentZoomCenter();
+				}
+
+				this.animate(this.options.animationDuration, updateProgress, this.swing);
+				this.el.trigger(this.options.doubleTapEventName);
+			},
+			sanitizeOffset: function (offset) {
+				var maxX = (this.zoomFactor - 1) * this.getContainerX(),
+					maxY = (this.zoomFactor - 1) * this.getContainerY(),
+					maxOffsetX = Math.max(maxX, 0),
+					maxOffsetY = Math.max(maxY, 0),
+					minOffsetX = Math.min(maxX, 0),
+					minOffsetY = Math.min(maxY, 0);
+
+				var x = Math.min(Math.max(offset.x, minOffsetX), maxOffsetX),
+					y = Math.min(Math.max(offset.y, minOffsetY), maxOffsetY);
+
+
+				return {
+					x: x,
+					y: y
+				};
+			},
+			scaleTo: function (zoomFactor, center) {
+				this.scale(zoomFactor / this.zoomFactor, center);
+			},
+			scale: function (scale, center) {
+				scale = this.scaleZoomFactor(scale);
+				this.addOffset({
+					x: (scale - 1) * (center.x + this.offset.x),
+					y: (scale - 1) * (center.y + this.offset.y)
+				});
+				this.done && this.done.call(this, this.getInitialZoomFactor() * this.zoomFactor);
+			},
+			scaleZoomFactor: function (scale) {
+				var originalZoomFactor = this.zoomFactor;
+				this.zoomFactor *= scale;
+				this.zoomFactor = Math.min(this.options.maxZoom, Math.max(this.zoomFactor, this.options
+					.minZoom));
+				return this.zoomFactor / originalZoomFactor;
+			},
+			drag: function (center, lastCenter, event) {
+				if (lastCenter) {
+					if (this.options.lockDragAxis) {
+						if (Math.abs(center.x - lastCenter.x) > Math.abs(center.y - lastCenter.y)) {
+							this.addOffset({
+								x: -(center.x - lastCenter.x),
+								y: 0
+							});
+						} else {
+							this.addOffset({
+								y: -(center.y - lastCenter.y),
+								x: 0
+							});
+						}
+					} else {
+						if (center.y - lastCenter.y < 0) {
+							this.direction = "down";
+						} else if (center.y - lastCenter.y > 10) {
+							this.direction = "up";
+						}
+						this.addOffset({
+							y: -(center.y - lastCenter.y),
+							x: -(center.x - lastCenter.x)
+						});
+					}
+				}
+			},
+			getTouchCenter: function (touches) {
+				return this.getVectorAvg(touches);
+			},
+			getVectorAvg: function (vectors) {
+				return {
+					x: vectors.map(function (v) {
+						return v.x;
+					}).reduce(sum) / vectors.length,
+					y: vectors.map(function (v) {
+						return v.y;
+					}).reduce(sum) / vectors.length
+				};
+			},
+			addOffset: function (offset) {
+				this.offset = {
+					x: this.offset.x + offset.x,
+					y: this.offset.y + offset.y
+				};
+			},
+
+			sanitize: function () {
+				if (this.zoomFactor < this.options.zoomOutFactor) {
+					this.zoomOutAnimation();
+				} else if (this.isInsaneOffset(this.offset)) {
+					this.sanitizeOffsetAnimation();
+				}
+			},
+			isInsaneOffset: function (offset) {
+				var sanitizedOffset = this.sanitizeOffset(offset);
+				return sanitizedOffset.x !== offset.x ||
+					sanitizedOffset.y !== offset.y;
+			},
+			sanitizeOffsetAnimation: function () {
+				var targetOffset = this.sanitizeOffset(this.offset),
+					startOffset = {
+						x: this.offset.x,
+						y: this.offset.y
+					},
+					updateProgress = (function (progress) {
+						this.offset.x = startOffset.x + progress * (targetOffset.x - startOffset.x);
+						this.offset.y = startOffset.y + progress * (targetOffset.y - startOffset.y);
+						this.update();
+					}).bind(this);
+
+				this.animate(
+					this.options.animationDuration,
+					updateProgress,
+					this.swing
+				);
+			},
+			zoomOutAnimation: function () {
+				var startZoomFactor = this.zoomFactor,
+					zoomFactor = 1,
+					center = this.getCurrentZoomCenter(),
+					updateProgress = (function (progress) {
+						this.scaleTo(startZoomFactor + progress * (zoomFactor - startZoomFactor),
+							center);
+					}).bind(this);
+
+				this.animate(
+					this.options.animationDuration,
+					updateProgress,
+					this.swing
+				);
+			},
+			updateAspectRatio: function () {
+				this.setContainerY(this.getContainerX() / this.getAspectRatio());
+			},
+			getInitialZoomFactor: function () {
+				if (this.container[0] && this.el[0]) {
+					return this.container[0].offsetWidth / this.el[0].offsetWidth;
+				} else {
+					return 0;
+				}
+			},
+			getAspectRatio: function () {
+				if (this.el[0]) {
+					var offsetHeight = this.el[0].offsetHeight;
+					return this.container[0].offsetWidth / offsetHeight;
+				} else {
+					return 0;
+				}
+
+			},
+			getCurrentZoomCenter: function () {
+				var length = this.container[0].offsetWidth * this.zoomFactor,
+					offsetLeft = this.offset.x,
+					offsetRight = length - offsetLeft - this.container[0].offsetWidth,
+					widthOffsetRatio = offsetLeft / offsetRight,
+					centerX = widthOffsetRatio * this.container[0].offsetWidth / (widthOffsetRatio + 1),
+
+					height = this.container[0].offsetHeight * this.zoomFactor,
+					offsetTop = this.offset.y,
+					offsetBottom = height - offsetTop - this.container[0].offsetHeight,
+					heightOffsetRatio = offsetTop / offsetBottom,
+					centerY = heightOffsetRatio * this.container[0].offsetHeight / (heightOffsetRatio +
+						1);
+
+				if (offsetRight === 0) {
+					centerX = this.container[0].offsetWidth;
+				}
+				if (offsetBottom === 0) {
+					centerY = this.container[0].offsetHeight;
+				}
+
+				return {
+					x: centerX,
+					y: centerY
+				};
+			},
+
+			canDrag: function () {
+				return !isCloseTo(this.zoomFactor, 1);
+			},
+
+			getTouches: function (event) {
+				var position = this.container.offset();
+				return Array.prototype.slice.call(event.touches).map(function (touch) {
+					return {
+						x: touch.pageX - position.left,
+						y: touch.pageY - position.top
+					};
+				});
+			},
+			animate: function (duration, framefn, timefn, callback) {
+				var startTime = new Date().getTime(),
+					renderFrame = (function () {
+						if (!this.inAnimation) {
+							return;
+						}
+						var frameTime = new Date().getTime() - startTime,
+							progress = frameTime / duration;
+						if (frameTime >= duration) {
+							framefn(1);
+							if (callback) {
+								callback();
+							}
+							this.update();
+							this.stopAnimation();
+						} else {
+							if (timefn) {
+								progress = timefn(progress);
+							}
+							framefn(progress);
+							this.update();
+							requestAnimationFrame(renderFrame);
+						}
+					}).bind(this);
+				this.inAnimation = true;
+				requestAnimationFrame(renderFrame);
+			},
+			stopAnimation: function () {
+				this.inAnimation = false;
+
+			},
+			swing: function (p) {
+				return -Math.cos(p * Math.PI) / 2 + 0.5;
+			},
+
+			getContainerX: function () {
+				if (this.el[0]) {
+					return this.el[0].offsetWidth;
+				} else {
+					return 0;
+				}
+			},
+
+			getContainerY: function () {
+				return this.el[0].offsetHeight;
+			},
+			setContainerY: function (y) {
+				y = y.toFixed(2);
+				return this.container.height(y);
+			},
+			setupMarkup: function () {
+				this.container = $('<div class="pinch-zoom-container"></div>');
+				this.el.before(this.container);
+				this.container.append(this.el);
+
+				this.container.css({
+					'position': 'relative',
+				});
+
+				this.el.css({
+					'-webkit-transform-origin': '0% 0%',
+					'-moz-transform-origin': '0% 0%',
+					'-ms-transform-origin': '0% 0%',
+					'-o-transform-origin': '0% 0%',
+					'transform-origin': '0% 0%',
+					'position': 'relative'
+				});
+
+			},
+
+			end: function () {
+				this.hasInteraction = false;
+				this.sanitize();
+				this.update();
+
+			},
+			bindEvents: function () {
+				detectGestures(this.container.eq(0), this, this.viewerContainer);
+				$(g).on('resize', this.update.bind(this));
+				$(this.el).find('img').on('load', this.update.bind(this));
+
+			},
+			update: function () {
+
+				if (this.updatePlaned) {
+					return;
+				}
+				this.updatePlaned = true;
+				setTimeout((function () {
+					this.updatePlaned = false;
+					this.updateAspectRatio();
+					var zoomFactor = this.getInitialZoomFactor() * this.zoomFactor,
+						offsetX = (-this.offset.x / zoomFactor).toFixed(3),
+						offsetY = (-this.offset.y / zoomFactor).toFixed(3);
+					this.lastclientY = offsetY;
+
+					var transform3d = 'scale3d(' + zoomFactor + ', ' + zoomFactor + ',1) ' +
+						'translate3d(' + offsetX + 'px,' + offsetY + 'px,0px)',
+						transform2d = 'scale(' + zoomFactor + ', ' + zoomFactor + ') ' +
+							'translate(' + offsetX + 'px,' + offsetY + 'px)',
+						removeClone = (function () {
+							if (this.clone) {
+								this.clone.remove();
+								delete this.clone;
+							}
+						}).bind(this);
+					if (!this.options.use2d || this.hasInteraction || this.inAnimation) {
+						this.is3d = true;
+						this.el.css({
+							'-webkit-transform': transform3d,
+							'-o-transform': transform2d,
+							'-ms-transform': transform2d,
+							'-moz-transform': transform2d,
+							'transform': transform3d
+						});
+					} else {
+						this.el.css({
+							'-webkit-transform': transform2d,
+							'-o-transform': transform2d,
+							'-ms-transform': transform2d,
+							'-moz-transform': transform2d,
+							'transform': transform2d
+						});
+						this.is3d = false;
+					}
+				}).bind(this), 0);
+			},
+			enable: function () {
+				this.enabled = true;
+			},
+			disable: function () {
+				this.enabled = false;
+			},
+			destroy: function () {
+				var dom = this.el.clone();
+				var p = this.container.parent();
+				this.container.remove();
+				dom.removeAttr('style');
+				p.append(dom);
+			}
+		};
+
+		var detectGestures = function (el, target, viewerContainer) {
+			var interaction = null,
+				fingers = 0,
+				lastTouchStart = null,
+				startTouches = null,
+				lastTouchY = null,
+				clientY = null,
+				lastclientY = 0,
+				lastTop = 0,
+				setInteraction = function (newInteraction, event) {
+					if (interaction !== newInteraction) {
+
+						if (interaction && !newInteraction) {
+							switch (interaction) {
+								case "zoom":
+									target.handleZoomEnd(event);
+									break;
+								case 'drag':
+									target.handleDragEnd(event);
+									break;
+							}
+						}
+
+						switch (newInteraction) {
+							case 'zoom':
+								target.handleZoomStart(event);
+								break;
+							case 'drag':
+								target.handleDragStart(event);
+								break;
+						}
+					}
+					interaction = newInteraction;
+				},
+
+				updateInteraction = function (event) {
+					if (fingers === 2) {
+						setInteraction('zoom');
+					} else if (fingers === 1 && target.canDrag()) {
+						setInteraction('drag', event);
+					} else {
+						setInteraction(null, event);
+					}
+				},
+
+				targetTouches = function (touches) {
+					return Array.prototype.slice.call(touches).map(function (touch) {
+						return {
+							x: touch.pageX,
+							y: touch.pageY
+						};
+					});
+				},
+
+				getDistance = function (a, b) {
+					var x, y;
+					x = a.x - b.x;
+					y = a.y - b.y;
+					return Math.sqrt(x * x + y * y);
+				},
+
+				calculateScale = function (startTouches, endTouches) {
+					var startDistance = getDistance(startTouches[0], startTouches[1]),
+						endDistance = getDistance(endTouches[0], endTouches[1]);
+					return endDistance / startDistance;
+				},
+
+				cancelEvent = function (event) {
+					event.stopPropagation();
+					event.preventDefault();
+				},
+
+				detectDoubleTap = function (event) {
+					var time = (new Date()).getTime();
+					var pageY = event.changedTouches[0].pageY;
+					var top = parentNode.scrollTop || 0;
+					if (fingers > 1) {
+						lastTouchStart = null;
+						lastTouchY = null;
+						cancelEvent(event);
+					}
+
+					if (time - lastTouchStart < 300 && Math.abs(pageY - lastTouchY) < 10 && Math.abs(
+						lastTop - top) < 10) {
+						cancelEvent(event);
+						target.handleDoubleTap(event);
+						switch (interaction) {
+							case "zoom":
+								target.handleZoomEnd(event);
+								break;
+							case 'drag':
+								target.handleDragEnd(event);
+								break;
+						}
+					}
+
+					if (fingers === 1) {
+						lastTouchStart = time;
+						lastTouchY = pageY;
+						lastTop = top;
+					}
+				},
+				firstMove = true;
+			if (viewerContainer) {
+				var parentNode = viewerContainer[0];
+			}
+			if (parentNode) {
+				parentNode.addEventListener('touchstart', function (event) {
+					if (target.enabled) {
+						firstMove = true;
+						fingers = event.touches.length;
+						detectDoubleTap(event);
+						clientY = event.changedTouches[0].clientY;
+						if (fingers > 1) {
+							cancelEvent(event);
+						}
+					}
+				});
+
+				parentNode.addEventListener('touchmove', function (event) {
+					if (target.enabled) {
+						lastclientY = event.changedTouches[0].clientY;
+						if (firstMove) {
+							updateInteraction(event);
+							startTouches = targetTouches(event.touches);
+						} else {
+							switch (interaction) {
+								case 'zoom':
+									target.handleZoom(event, calculateScale(startTouches,
+										targetTouches(event.touches)));
+									break;
+								case 'drag':
+									target.handleDrag(event);
+									break;
+							}
+							if (interaction) {
+								target.update(lastclientY);
+							}
+						}
+						if (fingers > 1) {
+							cancelEvent(event);
+						}
+						firstMove = false;
+					}
+				});
+
+				parentNode.addEventListener('touchend', function (event) {
+					if (target.enabled) {
+						fingers = event.touches.length;
+						if (fingers > 1) {
+							cancelEvent(event);
+						}
+						updateInteraction(event);
+					}
+				});
+			}
+
+		};
+		return PinchZoom;
+	};
+	var PinchZoom = definePinchZoom($);
+	var Pdfh5 = function (dom, options) {
+		this.version = version;
+		this.container = $(dom);
+		this.options = options;
+		this.thePDF = null;
+		this.totalNum = null;
+		this.pages = null;
+		this.initTime = 0;
+		this.scale = 1.5;
+		this.currentNum = 1;
+		this.loadedCount = 0;
+		this.endTime = 0;
+		this.pinchZoom = null;
+		this.timer = null;
+		this.docWidth = document.documentElement.clientWidth;
+		this.winWidth = $(window).width();
+		this.cache = {};
+		this.eventType = {};
+		this.cacheNum = 1;
+		this.resizeEvent = false;
+		this.cacheData = null;
+		this.pdfjsLibPromise = null;
+		this.init(options);
+	};
+	Pdfh5.prototype = {
+		init: function (options) {
+			var self = this;
+			if (this.container[0].pdfLoaded) {
+				this.destroy();
+			}
+			pdfjsLib.cMapPacked = true;
+			pdfjsLib.rangeChunkSize = 65536;
+			this.container[0].pdfLoaded = false;
+			this.container.addClass("pdfjs");
+			this.initTime = new Date().getTime();
+			setTimeout(function () {
+				var arr1 = self.eventType["scroll"];
+				if (arr1 && arr1 instanceof Array) {
+					for (var i = 0; i < arr1.length; i++) {
+						arr1[i] && arr1[i].call(self, self.initTime);
+					}
+				}
+			}, 0);
+			this.options = this.options ? this.options : {};
+			this.options.pdfurl = this.options.pdfurl ? this.options.pdfurl : null;
+			this.options.data = this.options.data ? this.options.data : null;
+			this.options.scale = this.options.scale ? this.options.scale : this.scale;
+			this.options.zoomEnable = this.options.zoomEnable === false ? false : true;
+			this.options.scrollEnable = this.options.scrollEnable === false ? false : true;
+			this.options.loadingBar = this.options.loadingBar === false ? false : true;
+			this.options.pageNum = this.options.pageNum === false ? false : true;
+			this.options.backTop = this.options.backTop === false ? false : true;
+			this.options.URIenable = this.options.URIenable === true ? true : false;
+			this.options.fullscreen = this.options.fullscreen === false ? false : true;
+			this.options.renderType = this.options.renderType === "svg" ? "svg" : "canvas";
+			this.options.resize = this.options.resize === false ? false : true;
+			this.options.textLayer = this.options.textLayer === true ? true : false;
+			this.options.goto = isNaN(this.options.goto) ? 0 : this.options.goto;
+			if (this.options.logo && Object.prototype.toString.call(this.options.logo) ===
+				'[object Object]' && this.options.logo
+					.src) {
+				this.options.logo.img = new Image();
+				this.options.logo.img.src = this.options.logo.src;
+				this.options.logo.img.style.display = "none";
+				document.body.appendChild(this.options.logo.img);
+			} else {
+				this.options.logo = false;
+			}
+			if (!(this.options.background && (this.options.background.color || this.options.background
+				.image))) {
+				this.options.background = false;
+			}
+			if (this.options.limit) {
+				var n = parseFloat(this.options.limit);
+				this.options.limit = isNaN(n) ? 0 : n < 0 ? 0 : n;
+			} else {
+				this.options.limit = 0;
+			}
+			this.options.type = this.options.type === "fetch" ? "fetch" : "ajax";
+			var html = '<div class="loadingBar">' +
+				'<div class="progress">' +
+				' <div class="glimmer">' +
+				'</div>' +
+				' </div>' +
+				'</div>' +
+				'<div class="pageNum">' +
+				'<div class="pageNum-bg"></div>' +
+				' <div class="pageNum-num">' +
+				' <span class="pageNow">1</span>/' +
+				'<span class="pageTotal">1</span>' +
+				'</div>' +
+				' </div>' +
+				'<div class="backTop">' +
+				'</div>' +
+				'<div class="loadEffect loading"></div>';
+			if (!this.container.find('.pageNum')[0]) {
+				this.container.append(html);
+			}
+			var viewer = document.createElement("div");
+			viewer.className = 'pdfViewer';
+			var viewerContainer = document.createElement("div");
+			viewerContainer.className = 'viewerContainer';
+			viewerContainer.appendChild(viewer);
+			this.container.append(viewerContainer);
+			this.viewer = $(viewer);
+			this.viewerContainer = $(viewerContainer);
+			this.pageNum = this.container.find('.pageNum');
+			this.pageNow = this.pageNum.find('.pageNow');
+			this.pageTotal = this.pageNum.find('.pageTotal');
+			this.loadingBar = this.container.find('.loadingBar');
+			this.progress = this.loadingBar.find('.progress');
+			this.progressDom = this.progress[0];
+			this.backTop = this.container.find('.backTop');
+			this.loading = this.container.find('.loading');
+			if (!this.options.loadingBar) {
+				this.loadingBar.hide();
+			}
+			var containerH = this.container.height(),
+				height = containerH * (1 / 3);
+
+			if (!this.options.scrollEnable) {
+				this.viewerContainer.css({
+					"overflow": "hidden"
+				});
+			} else {
+				this.viewerContainer.css({
+					"overflow": "auto"
+				});
+			}
+      // console.log("add event listener scroll >>> ",viewerContainer);
+      viewerContainer.addEventListener("click",function(){
+        console.log("Test click ");
+      })
+      
+      //FIXME svg scroll 无效, uniapp使用 onPageScroll onReachBottom 
+     viewerContainer.addEventListener('scroll', function () {
+     	var scrollTop = viewerContainer.scrollTop;
+       console.log(`scroll event ${scrollTop}`);
+     	if (scrollTop >= 150) {
+     		if (self.options.backTop) {
+     			self.backTop.show();
+     		}
+     	} else {
+     		if (self.options.backTop) {
+     			self.backTop.fadeOut(200);
+     		}
+     	}
+     	if (self.viewerContainer) {
+     		self.pages = self.viewerContainer.find('.pageContainer');
+     	}
+     	clearTimeout(self.timer);
+     	if (self.options.pageNum && self.pageNum) {
+     		self.pageNum.show();
+     	}
+     	var h = containerH;
+     	if (self.pages) {
+     		self.pages.each(function (index, obj) {
+     			var top = obj.getBoundingClientRect().top;
+     			var bottom = obj.getBoundingClientRect().bottom;
+     			if (top <= height && bottom > height) {
+     				if (self.options.pageNum) {
+     					self.pageNow.text(index + 1);
+     				}
+     				self.currentNum = index + 1;
+     			}
+     			if (top <= h && bottom > h) {
+     				self.cacheNum = index + 1;
+     			}
+     		});
+     	}
+     	if (scrollTop + self.container.height() >= self.viewer[0].offsetHeight) {
+     		self.pageNow.text(self.totalNum);
+     	}
+     	if (scrollTop === 0) {
+     		self.pageNow.text(1);
+     	}
+     	self.timer = setTimeout(function () {
+     		if (self.options.pageNum && self.pageNum) {
+     			self.pageNum.fadeOut(200);
+     		}
+     	}, 1500);
+     	var arr1 = self.eventType["scroll"];
+     	if (arr1 && arr1 instanceof Array) {
+     		for (var i = 0; i < arr1.length; i++) {
+     			arr1[i] && arr1[i].call(self, scrollTop, self.currentNum);
+     		}
+     	}
+     });
+  
+			this.backTop.on('click tap', function () {
+				var mart = self.viewer.css('transform');
+				var arr = mart.replace(/[a-z\(\)\s]/g, '').split(',');
+				var s1 = arr[0];
+				var s2 = arr[3];
+				var x = arr[4] / 2;
+				var left = self.viewer[0].getBoundingClientRect().left;
+				if (left <= -self.docWidth * 2) {
+					x = -self.docWidth / 2;
+				}
+				self.viewer.css({
+					transform: 'scale(' + s1 + ', ' + s2 + ') translate(' + x + 'px, 0px)'
+				});
+				if (self.pinchZoom) {
+					self.pinchZoom.offset.y = 0;
+					self.pinchZoom.lastclientY = 0;
+				}
+				self.viewerContainer.animate({
+					scrollTop: 0
+				}, 300);
+				var arr1 = self.eventType["backTop"];
+				if (arr1 && arr1 instanceof Array) {
+					for (var i = 0; i < arr1.length; i++) {
+						arr1[i] && arr1[i].call(self);
+					}
+				}
+			});
+
+			function GetQueryString(name) {
+				var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
+				var r = g.location.search.substr(1).match(reg);
+				if (r != null) return decodeURIComponent(r[2]);
+				return "";
+			}
+			var pdfurl = GetQueryString("file"),
+				url = "";
+			if (pdfurl && self.options.URIenable) {
+				url = pdfurl;
+			} else if (self.options.pdfurl) {
+				url = self.options.pdfurl;
+			}
+			if (self.options.loadingBar) {
+				self.loadingBar.show();
+				self.progress.css({
+					width: "3%"
+				});
+			}
+
+			if (url) {
+				if (self.options.type === "ajax") {
+					var xhr = new XMLHttpRequest();
+					xhr.open("GET", url, true);
+					xhr.responseType = self.options.responseType ? self.options.responseType : "blob";// blob arraybuffer
+					xhr.onload = function (oEvent) {
+						if (xhr.status === 200) {
+							if (xhr.responseType === "arraybuffer") {
+								var data = this.response;
+								self.cacheData = data;
+								self.renderPdf(self.options, {
+									data: data
+								});
+							} else {
+								var blob = this.response;
+								var reader = new FileReader();
+								reader.readAsDataURL(blob);
+								reader.onload = function (e) {
+									self.cacheData = e.target.result;
+									self.renderPdf(self.options, {
+										url: e.target.result
+									});
+								};
+							}
+						}
+					};
+					xhr.onerror = function (err) {
+						self.loading.hide();
+						var time = new Date().getTime();
+						self.endTime = time - self.initTime;
+						var arr1 = self.eventType["complete"];
+						if (arr1 && arr1 instanceof Array) {
+							for (var i = 0; i < arr1.length; i++) {
+								arr1[i] && arr1[i].call(self, "error", err.statusText, self
+									.endTime);
+							}
+						}
+						var arr2 = self.eventType["error"];
+						if (arr2 && arr2 instanceof Array) {
+							for (var i = 0; i < arr2.length; i++) {
+								arr2[i] && arr2[i].call(self, err.statusText, self.endTime);
+							}
+						}
+						throw Error(err.statusText);
+					};
+					xhr.send();
+				} else {
+					self.renderPdf(self.options, {
+						url: url
+					});
+				}
+			} else if (self.options.data) {
+				var data = self.options.data;
+				if (typeof data === "string" && data != "") {
+					var rawLength = data.length;
+					var array = [];
+					for (i = 0; i < rawLength; i++) {
+						array.push(data.charCodeAt(i) & 0xff);
+					}
+					self.cacheData = array;
+					self.renderPdf(self.options, {
+						data: array
+					});
+				} else if (typeof data === "object") {
+					if (data.length == 0) {
+						var time = new Date().getTime();
+						self.endTime = time - self.initTime;
+						var arr1 = self.eventType["complete"];
+						if (arr1 && arr1 instanceof Array) {
+							for (var i = 0; i < arr1.length; i++) {
+								arr1[i] && arr1[i].call(self, "error", "options.data is empty Array", self
+									.endTime);
+							}
+						}
+						var arr2 = self.eventType["error"];
+						if (arr2 && arr2 instanceof Array) {
+							for (var i = 0; i < arr2.length; i++) {
+								arr2[i] && arr2[i].call(self, "options.data is empty Array", self.endTime);
+							}
+						}
+						throw Error("options.data is empty Array");
+					} else {
+						self.cacheData = data;
+						self.renderPdf(self.options, {
+							data: data
+						});
+					}
+				}
+
+			} else {
+				var time = new Date().getTime();
+				self.endTime = time - self.initTime;
+				var arr1 = self.eventType["complete"];
+				if (arr1 && arr1 instanceof Array) {
+					for (var i = 0; i < arr1.length; i++) {
+						arr1[i] && arr1[i].call(self, "error", "Expect options.pdfurl or options.data!",
+							self.endTime);
+					}
+				}
+				var arr2 = self.eventType["error"];
+				if (arr2 && arr2 instanceof Array) {
+					for (var i = 0; i < arr2.length; i++) {
+						arr2[i] && arr2[i].call(self, "Expect options.pdfurl or options.data!", self
+							.endTime);
+					}
+				}
+				throw Error("Expect options.pdfurl or options.data!");
+			}
+		},
+		renderPdf: function (options, obj) {
+			this.container[0].pdfLoaded = true;
+			var self = this;
+			if (options.cMapUrl) {
+				obj.cMapUrl = options.cMapUrl;
+			} else {
+				obj.cMapUrl = 'https://unpkg.com/browse/pdfjs-dist@2.11.338/cmaps/';
+			}
+			if (options.httpHeaders) {
+				obj.httpHeaders = options.httpHeaders;
+			}
+			if (options.withCredentials) {
+				obj.withCredentials = true;
+			}
+			if (options.password) {
+				obj.password = options.password;
+			}
+			if (options.stopAtErrors) {
+				obj.stopAtErrors = true;
+			}
+			if (options.disableFontFace) {
+				obj.disableFontFace = true;
+			}
+			if (options.disableRange) {
+				obj.disableRange = true;
+			}
+			if (options.disableStream) {
+				obj.disableStream = true;
+			}
+			if (options.disableAutoFetch) {
+				obj.disableAutoFetch = true;
+			}
+			obj.cMapPacked = true;
+			obj.rangeChunkSize = 65536;
+			this.pdfjsLibPromise = pdfjsLib.getDocument(obj).promise.then(function (pdf) {
+				self.loading.hide();
+				self.thePDF = pdf;
+				self.totalNum = pdf.numPages;
+				if (options.limit > 0) {
+					self.totalNum = options.limit;
+				}
+				self.pageTotal.text(self.totalNum);
+				if (!self.pinchZoom) {
+					var arr1 = self.eventType["ready"];
+					if (arr1 && arr1 instanceof Array) {
+						for (var i = 0; i < arr1.length; i++) {
+							arr1[i] && arr1[i].call(self, self.totalNum);
+						}
+					}
+					self.pinchZoom = new PinchZoom(self.viewer, {
+						tapZoomFactor: options.tapZoomFactor,
+						zoomOutFactor: options.zoomOutFactor,
+						animationDuration: options.animationDuration,
+						maxZoom: options.maxZoom,
+						minZoom: options.minZoom
+					}, self.viewerContainer);
+					var timeout, firstZoom = true;
+					self.pinchZoom.done = function (scale) {
+						clearTimeout(timeout);
+						timeout = setTimeout(function () {
+							if (self.options.renderType === "svg") {
+								return;
+							}
+							if (scale <= 1 || self.options.scale == 5) {
+								return;
+							}
+							if (self.thePDF) {
+								self.thePDF.destroy();
+								self.thePDF = null;
+							}
+							self.options.scale = scale;
+							self.renderPdf(self.options, {
+								data: self.cacheData
+							});
+						}, 310);
+						if (scale == 1) {
+							if (self.viewerContainer) {
+								self.viewerContainer.css({
+									'-webkit-overflow-scrolling': 'touch'
+								});
+							}
+
+						} else {
+							if (self.viewerContainer) {
+								self.viewerContainer.css({
+									'-webkit-overflow-scrolling': 'auto'
+								});
+							}
+						}
+						var arr1 = self.eventType["zoom"];
+						if (arr1 && arr1 instanceof Array) {
+							for (var i = 0; i < arr1.length; i++) {
+								arr1[i] && arr1[i].call(self, scale);
+							}
+						}
+					};
+					if (options.zoomEnable) {
+						self.pinchZoom.enable();
+					} else {
+						self.pinchZoom.disable();
+					}
+				}
+
+				var promise = Promise.resolve();
+				var num = Math.floor(100 / self.totalNum).toFixed(2);
+				var i = 1;
+				for (i = 1; i <= self.totalNum; i++) {
+					self.cache[i + ""] = {
+						page: null,
+						loaded: false,
+						container: null,
+						scaledViewport: null
+					};
+					promise = promise.then(function (pageNum) {
+						return self.thePDF.getPage(pageNum).then(function (page) {
+							setTimeout(function () {
+								if (self.options.goto) {
+									if (pageNum == self.options.goto) {
+										self.goto(pageNum);
+									}
+								}
+							}, 0);
+							self.cache[pageNum + ""].page = page;
+							var viewport = page.getViewport(
+								{
+									scale: options.scale
+								});
+							var w1 = viewport.width;
+							var h1 = viewport.height;
+							var whobj1 = changeWH(w1, h1);
+							viewport.width = whobj1.w;
+							viewport.height = whobj1.h;
+							var scale = (self.docWidth / viewport.width).toFixed(2);
+							var scaledViewport = page.getViewport(
+								{
+									scale: parseFloat(scale)
+								});
+							var w = scaledViewport.width;
+							var h = scaledViewport.height;
+							var whobj = changeWH(w, h);
+							scaledViewport.width = whobj.w;
+							scaledViewport.height = whobj.h;
+							var div = self.container.find('.pageContainer' +
+								pageNum)[0];
+							var container;
+							if (!div) {
+								container = document.createElement('div');
+								container.className =
+									'pageContainer pageContainer' + pageNum;
+								container.setAttribute('name', 'page=' + pageNum);
+								container.setAttribute('title', 'Page ' + pageNum);
+								var loadEffect = document.createElement('div');
+								loadEffect.className = 'loadEffect';
+								container.appendChild(loadEffect);
+								self.viewer[0].appendChild(container);
+								if (window.ActiveXObject || "ActiveXObject" in
+									window) {
+									$(container).css({
+										'width': viewport.width + 'px',
+										"height": viewport.height + 'px'
+									}).attr("data-scale", viewport.width /
+										viewport.height);
+								} else {
+									var h = $(container).width() / (viewport
+										.viewBox[2] / viewport.viewBox[3]);
+									if (h > viewport.height) {
+										h = viewport.height;
+									}
+									$(container).css({
+										'max-width': viewport.width,
+										"max-height": viewport.height,
+										// "min-height": h + 'px'
+									}).attr("data-scale", viewport.width /
+										viewport.height);
+								}
+							} else {
+								container = div;
+							}
+							if (options.background) {
+								/*背景颜色*/
+								if (options.background.color) {
+									container.style["background-color"] = options
+										.background.color;
+								}
+								/*背景图片*/
+								if (options.background.image) {
+									container.style["background-image"] = options
+										.background.image;
+								}
+								/*平铺与否*/
+								if (options.background.repeat) {
+									container.style["background-repeat"] = options
+										.background.repeat;
+								}
+								/*背景图片位置*/
+								if (options.background.position) {
+									container.style["background-position"] = options
+										.background.position;
+								}
+								/*背景图像的尺寸*/
+								if (options.background.size) {
+									container.style["background-size"] = options
+										.background.size;
+								}
+							}
+							self.cache[pageNum + ""].container = container;
+							self.cache[pageNum + ""].scaledViewport =
+								scaledViewport;
+							var sum = 0,
+								containerH = self.container.height();
+							self.pages = self.viewerContainer.find(
+								'.pageContainer');
+							if (options.resize) {
+								self.resize();
+							}
+							if (options.renderType === "svg") {
+								return self.renderSvg(page, scaledViewport, pageNum,
+									num, container, options, viewport);
+							}
+							return self.renderCanvas(page, scaledViewport, pageNum,
+								num, container, options);
+						});
+					}.bind(null, i));
+				}
+			}).catch(function (err) {
+				self.loading.hide();
+				var time = new Date().getTime();
+				self.endTime = time - self.initTime;
+				var arr1 = self.eventType["complete"];
+				if (arr1 && arr1 instanceof Array) {
+					for (var i = 0; i < arr1.length; i++) {
+						arr1[i] && arr1[i].call(self, "error", err.message, self.endTime);
+					}
+				}
+				var arr2 = self.eventType["error"];
+				if (arr2 && arr2 instanceof Array) {
+					for (var i = 0; i < arr2.length; i++) {
+						arr2[i] && arr2[i].call(self, err.message, self.endTime);
+					}
+				}
+			});
+		},
+		renderSvg: function (page, scaledViewport, pageNum, num, container, options, viewport) {
+			var self = this;
+			var viewport = page.getViewport(options.scale);
+			var w = viewport.width;
+			var h = viewport.height;
+			var whobj = changeWH(w, h);
+			viewport.width = whobj.w;
+			viewport.height = whobj.h;
+			var scale = (self.docWidth / viewport.width).toFixed(2);
+			return page.getOperatorList().then(function (opList) {
+				var svgGfx = new pdfjsLib.SVGGraphics(page.commonObjs, page.objs);
+				return svgGfx.getSVG(opList, scaledViewport).then(function (svg) {
+					self.loadedCount++;
+					container.children[0].style.display = "none";
+					container.appendChild(svg);
+					svg.style.width = "100%";
+					svg.style.height = "100%";
+					if (self.options.loadingBar) {
+						self.progress.css({
+							width: num * self.loadedCount + "%"
+						});
+					}
+					var time = new Date().getTime();
+					var arr1 = self.eventType["render"];
+					if (arr1 && arr1 instanceof Array) {
+						for (var i = 0; i < arr1.length; i++) {
+							arr1[i] && arr1[i].call(self, pageNum, time - self.initTime,
+								container);
+						}
+					}
+					if (self.loadedCount === self.totalNum) {
+						self.finalRender(options);
+					}
+				});
+			}).then(function () {
+				return page.getTextContent();
+			}).then(function (textContent) {
+				if (!self.options.textLayer) {
+					return;
+				}
+				if ($(container).find(".textLayer")[0]) {
+					return;
+				}
+				var textLayerDiv = document.createElement('div');
+				textLayerDiv.setAttribute('class', 'textLayer');
+				container.appendChild(textLayerDiv);
+				viewport.width = viewport.width * scale;
+				viewport.height = viewport.height * scale;
+				var textLayer = new TextLayerBuilder({
+					textLayerDiv: textLayerDiv,
+					pageIndex: page.pageIndex,
+					viewport: viewport
+				});
+
+				textLayer.setTextContent(textContent);
+
+				textLayer.render();
+			});;
+		},
+		renderCanvas: function (page, viewport, pageNum, num, container, options) {
+			var self = this;
+			var viewport = page.getViewport(
+				{
+					scale: options.scale,
+				});
+			var w = viewport.width;
+			var h = viewport.height;
+			var whobj = changeWH(w, h);
+			viewport.width = whobj.w;
+			viewport.height = whobj.h;
+			var scale = (self.docWidth / viewport.width).toFixed(2);
+			var canvas = document.createElement("canvas");
+			var obj2 = {
+				'Cheight': viewport.height * scale,
+				'width': viewport.width,
+				'height': viewport.height,
+				'canvas': canvas,
+				'index': self.loadedCount
+			};
+			var context = canvas.getContext('2d');
+			if (options.logo) {
+				context.drawImage(self.options.logo.img, self.options.logo.x * self.options.scale,
+					self.options.logo.y * self.options.scale, self.options.logo.width * self.options.scale, self.options.logo.height * self.options.scale
+				);
+			}
+			canvas.height = viewport.height;
+			canvas.width = viewport.width;
+			if (self.options.loadingBar) {
+				self.progress.css({
+					width: num * self.loadedCount + "%"
+				});
+			}
+			obj2.src = obj2.canvas.toDataURL("image/png");
+			var renderObj = {
+				canvasContext: context,
+				viewport: viewport
+			};
+			if (options.background) {
+				renderObj.background = "rgba(255, 255, 255, 0)";
+			}
+			return page.render(renderObj).promise.then(function () {
+				if (options.logo) {
+					context.drawImage(self.options.logo.img, self.options.logo.x * self.options
+						.scale,
+						self.options.logo.y * self.options.scale, self.options.logo.width * self
+							.options.scale, self.options.logo.height *
+					self.options.scale
+					);
+				}
+				self.loadedCount++;
+				var img = new Image();
+				var time = new Date().getTime();
+				var time2 = 0;
+				if (self.renderTime == 0) {
+					time2 = time - self.startTime;
+				} else {
+					time2 = time - self.renderTime;
+				}
+				obj2.src = obj2.canvas.toDataURL("image/png");
+
+				img.src = obj2.src;
+				img.className = "canvasImg" + pageNum;
+				var img0 = self.container.find(".pageContainer" + pageNum).find(".canvasImg" +
+					pageNum)[0];
+				if (container && !img0) {
+					container.appendChild(img);
+				} else if (img0) {
+					img0.src = obj2.src;
+				}
+				container.children[0].style.display = "none";
+				var time = new Date().getTime();
+				var arr1 = self.eventType["render"];
+				if (arr1 && arr1 instanceof Array) {
+					for (var i = 0; i < arr1.length; i++) {
+						arr1[i] && arr1[i].call(self, pageNum, time - self.initTime, container);
+					}
+				}
+				if (self.loadedCount === self.totalNum) {
+					self.finalRender(options);
+				}
+			}).then(function () {
+				return page.getTextContent();
+			}).then(function (textContent) {
+				if (!self.options.textLayer) {
+					return;
+				}
+				if ($(container).find(".textLayer")[0]) {
+					return;
+				}
+				var textLayerDiv = document.createElement('div');
+				textLayerDiv.setAttribute('class', 'textLayer');
+				container.appendChild(textLayerDiv);
+				viewport.width = viewport.width * scale;
+				viewport.height = viewport.height * scale;
+				var textLayer = new TextLayerBuilder({
+					textLayerDiv: textLayerDiv,
+					pageIndex: page.pageIndex,
+					viewport: viewport
+				});
+
+				textLayer.setTextContent(textContent);
+
+				textLayer.render();
+			});
+		},
+		finalRender: function (options) {
+			var time = new Date().getTime();
+			var self = this;
+			if (self.options.loadingBar) {
+				self.progress.css({
+					width: "100%"
+				});
+			}
+			setTimeout(function () {
+				self.loadingBar.hide();
+			}, 300);
+			self.endTime = time - self.initTime;
+			if (options.renderType === "svg") {
+				if (self.totalNum !== 1) {
+					self.cache[(self.totalNum - 1) + ""].loaded = true;
+				} else {
+					self.cache["1"].loaded = true;
+				}
+			}
+			if (options.zoomEnable) {
+				if (self.pinchZoom) {
+					self.pinchZoom.enable();
+				}
+			} else {
+				if (self.pinchZoom) {
+					self.pinchZoom.disable();
+				}
+			}
+			var arr1 = self.eventType["complete"];
+			if (arr1 && arr1 instanceof Array) {
+				for (var i = 0; i < arr1.length; i++) {
+					arr1[i] && arr1[i].call(self, "success", "pdf加载完成", self.endTime);
+				}
+			}
+			var arr2 = self.eventType["success"];
+			if (arr2 && arr2 instanceof Array) {
+				for (var i = 0; i < arr2.length; i++) {
+					arr2[i] && arr2[i].call(self, self.endTime);
+				}
+			}
+		},
+		resize: function () {
+			var self = this;
+			if (self.resizeEvent) {
+				return;
+			}
+			self.resizeEvent = true;
+			var timer;
+			if (self.pages) {
+				$(window).on("resize", function () {
+					self.pages.each(function (i, item) {
+						$(item).css("min-height", "auto");
+					});
+				});
+			}
+		},
+		show: function (callback) {
+			this.container.show();
+			callback && callback.call(this);
+			var arr = this.eventType["show"];
+			if (arr && arr instanceof Array) {
+				for (var i = 0; i < arr.length; i++) {
+					arr[i] && arr[i].call(this);
+				}
+			}
+		},
+		hide: function (callback) {
+			this.container.hide();
+			callback && callback.call(this);
+			var arr = this.eventType["hide"];
+			if (arr && arr instanceof Array) {
+				for (var i = 0; i < arr.length; i++) {
+					arr[i] && arr[i].call(this);
+				}
+			}
+		},
+		on: function (type, callback) {
+			if (this.eventType[type] && this.eventType[type] instanceof Array) {
+				this.eventType[type].push(callback);
+			}
+			this.eventType[type] = [callback];
+		},
+		off: function (type) {
+			if (type !== undefined) {
+				this.eventType[type] = [null];
+			} else {
+				for (var i in this.eventType) {
+					this.eventType[i] = [null];
+				}
+			}
+		},
+		goto: function (num) {
+			var self = this;
+
+			if (!isNaN(num)) {
+				if (self.viewerContainer) {
+					self.pages = self.viewerContainer.find('.pageContainer');
+
+					if (self.pages) {
+						var h = 0;
+						var signHeight = 0;
+						if (num - 1 > 0) {
+							signHeight = self.pages[0].getBoundingClientRect().height;
+						}
+						self.viewerContainer.animate({
+							scrollTop: signHeight * (num - 1) + 8 * num
+						}, 300);
+					}
+				}
+			}
+		},
+		scrollEnable: function (flag) {
+			if (flag === false) {
+				this.viewerContainer.css({
+					"overflow": "hidden"
+				});
+			} else {
+				this.viewerContainer.css({
+					"overflow": "auto"
+				});
+			}
+			var arr = this.eventType["scrollEnable"];
+			if (arr && arr instanceof Array) {
+				for (var i = 0; i < arr.length; i++) {
+					arr[i] && arr[i].call(this, flag);
+				}
+			}
+		},
+		zoomEnable: function (flag) {
+			if (!this.pinchZoom) {
+				return;
+			}
+			if (flag === false) {
+				this.pinchZoom.disable();
+			} else {
+				this.pinchZoom.enable();
+			}
+			var arr = this.eventType["zoomEnable"];
+			if (arr && arr instanceof Array) {
+				for (var i = 0; i < arr.length; i++) {
+					arr[i] && arr[i].call(this, flag);
+				}
+			}
+		},
+		download: function (name, callback) {
+			if (this.options.pdfurl) {
+				download(this.options.pdfurl, name, callback);
+			} else if (this.options.data) {
+				fileDownLoad(this.options.data, name, callback);
+			}
+		},
+		reset: function (callback) {
+			if (this.pinchZoom) {
+				this.pinchZoom.offset.y = 0;
+				this.pinchZoom.offset.x = 0;
+				this.pinchZoom.lastclientY = 0;
+				this.pinchZoom.zoomFactor = 1;
+				this.pinchZoom.update();
+			}
+			if (this.viewerContainer) {
+				this.viewerContainer.scrollTop(0);
+			}
+			callback && callback.call(this);
+			var arr = this.eventType["reset"];
+			if (arr && arr instanceof Array) {
+				for (var i = 0; i < arr.length; i++) {
+					arr[i] && arr[i].call(this);
+				}
+			}
+		},
+		destroy: function (callback) {
+			this.reset();
+			this.off();
+			if (this.thePDF) {
+				this.thePDF.destroy();
+				this.thePDF = null;
+			}
+			if (this.viewerContainer) {
+				this.viewerContainer.remove();
+				this.viewerContainer = null;
+			}
+			if (this.container) {
+				this.container.html('');
+			}
+			this.totalNum = null;
+			this.pages = null;
+			this.initTime = 0;
+			this.endTime = 0;
+			this.viewer = null;
+			this.pageNum = null;
+			this.pageNow = null;
+			this.pageTotal = null;
+			this.loadingBar = null;
+			this.progress = null;
+			this.loadedCount = 0;
+			this.timer = null;
+			callback && callback.call(this);
+			var arr = this.eventType["destroy"];
+			if (arr && arr instanceof Array) {
+				for (var i = 0; i < arr.length; i++) {
+					arr[i] && arr[i].call(this);
+				}
+			}
+		}
+	};
+	return Pdfh5;
+
+	function download(url, name, callback) {
+		var xhr = new XMLHttpRequest();
+		xhr.open('GET', url, true);
+		xhr.responseType = "blob";
+		if (Object.prototype.toString.call(name) === "[object Function]") {
+			callback = name;
+			name = undefined;
+		}
+		name = name ? name : "download.pdf";
+		if (name.indexOf(".pdf") == -1) {
+			name += ".pdf";
+		}
+		xhr.onload = function () {
+			if (this.status === 200) {
+				var blob = this.response;
+				var reader = new FileReader();
+				reader.readAsDataURL(blob);
+				reader.onload = function (e) {
+					var a = document.createElement('a');
+					a.download = name;
+					a.href = e.target.result;
+					$("body").append(a);
+					a.click();
+					$(a).remove();
+					callback && callback();
+				};
+			}
+		};
+		xhr.send();
+	}
+
+	function fileDownLoad(data, name, callback) {
+		if (Object.prototype.toString.call(name) === "[object Function]") {
+			callback = name;
+			name = undefined;
+		}
+		name = name ? name : "download.pdf";
+		if (name.indexOf(".pdf") == -1) {
+			name += ".pdf";
+		}
+		var array = null;
+		try {
+			var enc = new TextDecoder('utf-8');
+			array = JSON.parse(enc.decode(new Uint8Array(data)));
+		} catch (err) {
+			if (Object.prototype.toString.call(data) === "[object ArrayBuffer]") {
+				array = data;
+			} else {
+				if (Object.prototype.toString.call(data) === "[object Array]") {
+					array = new Uint8Array(data);
+				} else {
+					var rawLength = data.length;
+					array = new Uint8Array(new ArrayBuffer(rawLength));
+				}
+				for (var i = 0; i < rawLength; i++) {
+					array[i] = data.charCodeAt(i) & 0xff;
+				}
+			}
+			var blob = new Blob([array]);
+			var a = document.createElement('a');
+			var url = window.URL.createObjectURL(blob);
+			a.download = name;
+			a.href = url;
+			$("body").append(a);
+			a.click();
+			$(a).remove();
+			callback && callback();
+		}
+
+	}
+	function changeWH(w, h) {
+		while (w * h > 16777216) {
+			w = 0.8 * w;
+			h = 0.8 * h;
+		}
+		return { w: w, h: h };
+	}
+});
diff --git a/node_modules/pdfh5/js/pdfh5.worker.js b/node_modules/pdfh5/js/pdfh5.worker.js
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/node_modules/pdfh5/js/pdfh5.worker.js
diff --git a/node_modules/pdfh5/js/pinch-zoom.js b/node_modules/pdfh5/js/pinch-zoom.js
new file mode 100644
index 0000000..4c59a6c
--- /dev/null
+++ b/node_modules/pdfh5/js/pinch-zoom.js
@@ -0,0 +1,927 @@
+/*
+
+    PinchZoom.js
+    Copyright (c) Manuel Stofer 2013 - today
+
+    Author: Manuel Stofer (mst@rtp.ch)
+    Version: 2.3.5
+
+    Permission is hereby granted, free of charge, to any person obtaining a copy
+    of this software and associated documentation files (the "Software"), to deal
+    in the Software without restriction, including without limitation the rights
+    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+    copies of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice shall be included in
+    all copies or substantial portions of the Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+    THE SOFTWARE.
+
+*/
+
+// polyfills
+if (typeof Object.assign != 'function') {
+  // Must be writable: true, enumerable: false, configurable: true
+  Object.defineProperty(Object, "assign", {
+    value: function assign(target, varArgs) { // .length of function is 2
+      if (target == null) { // TypeError if undefined or null
+        throw new TypeError('Cannot convert undefined or null to object');
+      }
+
+      var to = Object(target);
+
+      for (var index = 1; index < arguments.length; index++) {
+        var nextSource = arguments[index];
+
+        if (nextSource != null) { // Skip over if undefined or null
+          for (var nextKey in nextSource) {
+            // Avoid bugs when hasOwnProperty is shadowed
+            if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {
+              to[nextKey] = nextSource[nextKey];
+            }
+          }
+        }
+      }
+      return to;
+    },
+    writable: true,
+    configurable: true
+  });
+}
+
+if (typeof Array.from != 'function') {
+  Array.from = function (object) {
+    return [].slice.call(object);
+  };
+}
+
+// utils
+var buildElement = function(str) {
+  // empty string as title argument required by IE and Edge
+  var tmp = document.implementation.createHTMLDocument('');
+  tmp.body.innerHTML = str;
+  return Array.from(tmp.body.children)[0];
+};
+
+var triggerEvent = function(el, name) {
+  var event = document.createEvent('HTMLEvents');
+  event.initEvent(name, true, false);
+  el.dispatchEvent(event);
+};
+
+var definePinchZoom = function () {
+
+    /**
+     * Pinch zoom
+     * @param el
+     * @param options
+     * @constructor
+     */
+    var PinchZoom = function (el, options) {
+            this.el = el;
+            this.zoomFactor = 1;
+            this.lastScale = 1;
+            this.offset = {
+                x: 0,
+                y: 0
+            };
+            this.initialOffset = {
+                x: 0,
+                y: 0,
+            };
+            this.options = Object.assign({}, this.defaults, options);
+            this.setupMarkup();
+            this.bindEvents();
+            this.update();
+
+            // The image may already be loaded when PinchZoom is initialized,
+            // and then the load event (which trigger update) will never fire.
+            if (this.isImageLoaded(this.el)) {
+              this.updateAspectRatio();
+              this.setupOffsets();
+            }
+
+            this.enable();
+
+        },
+        sum = function (a, b) {
+            return a + b;
+        },
+        isCloseTo = function (value, expected) {
+            return value > expected - 0.01 && value < expected + 0.01;
+        };
+
+    PinchZoom.prototype = {
+
+        defaults: {
+            tapZoomFactor: 2,
+            zoomOutFactor: 1.3,
+            animationDuration: 300,
+            maxZoom: 4,
+            minZoom: 0.5,
+            draggableUnzoomed: true,
+            lockDragAxis: false,
+            setOffsetsOnce: false,
+            use2d: true,
+            zoomStartEventName: 'pz_zoomstart',
+            zoomUpdateEventName: 'pz_zoomupdate',
+            zoomEndEventName: 'pz_zoomend',
+            dragStartEventName: 'pz_dragstart',
+            dragUpdateEventName: 'pz_dragupdate',
+            dragEndEventName: 'pz_dragend',
+            doubleTapEventName: 'pz_doubletap',
+            verticalPadding: 0,
+            horizontalPadding: 0,
+            onZoomStart: null,
+            onZoomEnd: null,
+            onZoomUpdate: null,
+            onDragStart: null,
+            onDragEnd: null,
+            onDragUpdate: null,
+            onDoubleTap: null
+        },
+
+        /**
+         * Event handler for 'dragstart'
+         * @param event
+         */
+        handleDragStart: function (event) {
+            triggerEvent(this.el, this.options.dragStartEventName);
+            if(typeof this.options.onDragStart == "function"){
+                this.options.onDragStart(this, event)
+            }
+            this.stopAnimation();
+            this.lastDragPosition = false;
+            this.hasInteraction = true;
+            this.handleDrag(event);
+        },
+
+        /**
+         * Event handler for 'drag'
+         * @param event
+         */
+        handleDrag: function (event) {
+            var touch = this.getTouches(event)[0];
+            this.drag(touch, this.lastDragPosition);
+            this.offset = this.sanitizeOffset(this.offset);
+            this.lastDragPosition = touch;
+        },
+
+        handleDragEnd: function () {
+            triggerEvent(this.el, this.options.dragEndEventName);
+            if(typeof this.options.onDragEnd == "function"){
+                this.options.onDragEnd(this, event)
+            }
+            this.end();
+        },
+
+        /**
+         * Event handler for 'zoomstart'
+         * @param event
+         */
+        handleZoomStart: function (event) {
+            triggerEvent(this.el, this.options.zoomStartEventName);
+            if(typeof this.options.onZoomStart == "function"){
+                this.options.onZoomStart(this, event)
+            }
+            this.stopAnimation();
+            this.lastScale = 1;
+            this.nthZoom = 0;
+            this.lastZoomCenter = false;
+            this.hasInteraction = true;
+        },
+
+        /**
+         * Event handler for 'zoom'
+         * @param event
+         */
+        handleZoom: function (event, newScale) {
+            // a relative scale factor is used
+            var touchCenter = this.getTouchCenter(this.getTouches(event)),
+                scale = newScale / this.lastScale;
+            this.lastScale = newScale;
+
+            // the first touch events are thrown away since they are not precise
+            this.nthZoom += 1;
+            if (this.nthZoom > 3) {
+
+                this.scale(scale, touchCenter);
+                this.drag(touchCenter, this.lastZoomCenter);
+            }
+            this.lastZoomCenter = touchCenter;
+        },
+
+        handleZoomEnd: function () {
+            triggerEvent(this.el, this.options.zoomEndEventName);
+            if(typeof this.options.onZoomEnd == "function"){
+                this.options.onZoomEnd(this, event)
+            }
+            this.end();
+        },
+
+        /**
+         * Event handler for 'doubletap'
+         * @param event
+         */
+        handleDoubleTap: function (event) {
+            var center = this.getTouches(event)[0],
+                zoomFactor = this.zoomFactor > 1 ? 1 : this.options.tapZoomFactor,
+                startZoomFactor = this.zoomFactor,
+                updateProgress = (function (progress) {
+                    this.scaleTo(startZoomFactor + progress * (zoomFactor - startZoomFactor), center);
+                }).bind(this);
+
+            if (this.hasInteraction) {
+                return;
+            }
+
+            this.isDoubleTap = true;
+
+            if (startZoomFactor > zoomFactor) {
+                center = this.getCurrentZoomCenter();
+            }
+
+            this.animate(this.options.animationDuration, updateProgress, this.swing);
+            triggerEvent(this.el, this.options.doubleTapEventName);
+            if(typeof this.options.onDoubleTap == "function"){
+                this.options.onDoubleTap(this, event)
+            }
+        },
+
+        /**
+         * Compute the initial offset
+         *
+         * the element should be centered in the container upon initialization
+         */
+        computeInitialOffset: function () {
+            this.initialOffset = {
+                x: -Math.abs(this.el.offsetWidth * this.getInitialZoomFactor() - this.container.offsetWidth) / 2,
+                y: -Math.abs(this.el.offsetHeight * this.getInitialZoomFactor() - this.container.offsetHeight) / 2,
+            };
+        },
+
+        /**
+         * Reset current image offset to that of the initial offset
+         */
+        resetOffset: function() {
+            this.offset.x = this.initialOffset.x;
+            this.offset.y = this.initialOffset.y;
+        },
+
+        /**
+         * Determine if image is loaded
+         */
+        isImageLoaded: function (el) {
+            if (el.nodeName === 'IMG') {
+              return el.complete && el.naturalHeight !== 0;
+            } else {
+              return Array.from(el.querySelectorAll('img')).every(this.isImageLoaded);
+            }
+        },
+
+        setupOffsets: function() {
+            if (this.options.setOffsetsOnce && this._isOffsetsSet) {
+              return;
+            }
+
+            this._isOffsetsSet = true;
+
+            this.computeInitialOffset();
+            this.resetOffset();
+        },
+
+        /**
+         * Max / min values for the offset
+         * @param offset
+         * @return {Object} the sanitized offset
+         */
+        sanitizeOffset: function (offset) {
+            var elWidth = this.el.offsetWidth * this.getInitialZoomFactor() * this.zoomFactor;
+            var elHeight = this.el.offsetHeight * this.getInitialZoomFactor() * this.zoomFactor;
+            var maxX = elWidth - this.getContainerX() + this.options.horizontalPadding,
+                maxY = elHeight -  this.getContainerY() + this.options.verticalPadding,
+                maxOffsetX = Math.max(maxX, 0),
+                maxOffsetY = Math.max(maxY, 0),
+                minOffsetX = Math.min(maxX, 0) - this.options.horizontalPadding,
+                minOffsetY = Math.min(maxY, 0) - this.options.verticalPadding;
+
+            return {
+                x: Math.min(Math.max(offset.x, minOffsetX), maxOffsetX),
+                y: Math.min(Math.max(offset.y, minOffsetY), maxOffsetY)
+            };
+        },
+
+        /**
+         * Scale to a specific zoom factor (not relative)
+         * @param zoomFactor
+         * @param center
+         */
+        scaleTo: function (zoomFactor, center) {
+            this.scale(zoomFactor / this.zoomFactor, center);
+        },
+
+        /**
+         * Scales the element from specified center
+         * @param scale
+         * @param center
+         */
+        scale: function (scale, center) {
+            scale = this.scaleZoomFactor(scale);
+            this.addOffset({
+                x: (scale - 1) * (center.x + this.offset.x),
+                y: (scale - 1) * (center.y + this.offset.y)
+            });
+            triggerEvent(this.el, this.options.zoomUpdateEventName);
+            if(typeof this.options.onZoomUpdate == "function"){
+                this.options.onZoomUpdate(this, event)
+            }
+        },
+
+        /**
+         * Scales the zoom factor relative to current state
+         * @param scale
+         * @return the actual scale (can differ because of max min zoom factor)
+         */
+        scaleZoomFactor: function (scale) {
+            var originalZoomFactor = this.zoomFactor;
+            this.zoomFactor *= scale;
+            this.zoomFactor = Math.min(this.options.maxZoom, Math.max(this.zoomFactor, this.options.minZoom));
+            return this.zoomFactor / originalZoomFactor;
+        },
+
+        /**
+         * Determine if the image is in a draggable state
+         *
+         * When the image can be dragged, the drag event is acted upon and cancelled.
+         * When not draggable, the drag event bubbles through this component.
+         *
+         * @return {Boolean}
+         */
+        canDrag: function () {
+            return this.options.draggableUnzoomed || !isCloseTo(this.zoomFactor, 1);
+        },
+
+        /**
+         * Drags the element
+         * @param center
+         * @param lastCenter
+         */
+        drag: function (center, lastCenter) {
+            if (lastCenter) {
+              if(this.options.lockDragAxis) {
+                // lock scroll to position that was changed the most
+                if(Math.abs(center.x - lastCenter.x) > Math.abs(center.y - lastCenter.y)) {
+                  this.addOffset({
+                    x: -(center.x - lastCenter.x),
+                    y: 0
+                  });
+                }
+                else {
+                  this.addOffset({
+                    y: -(center.y - lastCenter.y),
+                    x: 0
+                  });
+                }
+              }
+              else {
+                this.addOffset({
+                  y: -(center.y - lastCenter.y),
+                  x: -(center.x - lastCenter.x)
+                });
+              }
+              triggerEvent(this.el, this.options.dragUpdateEventName);
+              if(typeof this.options.onDragUpdate == "function"){
+                this.options.onDragUpdate(this, event)
+            }
+            }
+        },
+
+        /**
+         * Calculates the touch center of multiple touches
+         * @param touches
+         * @return {Object}
+         */
+        getTouchCenter: function (touches) {
+            return this.getVectorAvg(touches);
+        },
+
+        /**
+         * Calculates the average of multiple vectors (x, y values)
+         */
+        getVectorAvg: function (vectors) {
+            return {
+                x: vectors.map(function (v) { return v.x; }).reduce(sum) / vectors.length,
+                y: vectors.map(function (v) { return v.y; }).reduce(sum) / vectors.length
+            };
+        },
+
+        /**
+         * Adds an offset
+         * @param offset the offset to add
+         * @return return true when the offset change was accepted
+         */
+        addOffset: function (offset) {
+            this.offset = {
+                x: this.offset.x + offset.x,
+                y: this.offset.y + offset.y
+            };
+        },
+
+        sanitize: function () {
+            if (this.zoomFactor < this.options.zoomOutFactor) {
+                this.zoomOutAnimation();
+            } else if (this.isInsaneOffset(this.offset)) {
+                this.sanitizeOffsetAnimation();
+            }
+        },
+
+        /**
+         * Checks if the offset is ok with the current zoom factor
+         * @param offset
+         * @return {Boolean}
+         */
+        isInsaneOffset: function (offset) {
+            var sanitizedOffset = this.sanitizeOffset(offset);
+            return sanitizedOffset.x !== offset.x ||
+                sanitizedOffset.y !== offset.y;
+        },
+
+        /**
+         * Creates an animation moving to a sane offset
+         */
+        sanitizeOffsetAnimation: function () {
+            var targetOffset = this.sanitizeOffset(this.offset),
+                startOffset = {
+                    x: this.offset.x,
+                    y: this.offset.y
+                },
+                updateProgress = (function (progress) {
+                    this.offset.x = startOffset.x + progress * (targetOffset.x - startOffset.x);
+                    this.offset.y = startOffset.y + progress * (targetOffset.y - startOffset.y);
+                    this.update();
+                }).bind(this);
+
+            this.animate(
+                this.options.animationDuration,
+                updateProgress,
+                this.swing
+            );
+        },
+
+        /**
+         * Zooms back to the original position,
+         * (no offset and zoom factor 1)
+         */
+        zoomOutAnimation: function () {
+            if (this.zoomFactor === 1) {
+                return;
+            }
+
+            var startZoomFactor = this.zoomFactor,
+                zoomFactor = 1,
+                center = this.getCurrentZoomCenter(),
+                updateProgress = (function (progress) {
+                    this.scaleTo(startZoomFactor + progress * (zoomFactor - startZoomFactor), center);
+                }).bind(this);
+
+            this.animate(
+                this.options.animationDuration,
+                updateProgress,
+                this.swing
+            );
+        },
+
+        /**
+         * Updates the container aspect ratio
+         *
+         * Any previous container height must be cleared before re-measuring the
+         * parent height, since it depends implicitly on the height of any of its children
+         */
+        updateAspectRatio: function () {
+            this.unsetContainerY();
+            this.setContainerY(this.container.parentElement.offsetHeight);
+        },
+
+        /**
+         * Calculates the initial zoom factor (for the element to fit into the container)
+         * @return {number} the initial zoom factor
+         */
+        getInitialZoomFactor: function () {
+            var xZoomFactor = this.container.offsetWidth / this.el.offsetWidth;
+            var yZoomFactor = this.container.offsetHeight / this.el.offsetHeight;
+
+            return Math.min(xZoomFactor, yZoomFactor);
+        },
+
+        /**
+         * Calculates the aspect ratio of the element
+         * @return the aspect ratio
+         */
+        getAspectRatio: function () {
+            return this.el.offsetWidth / this.el.offsetHeight;
+        },
+
+        /**
+         * Calculates the virtual zoom center for the current offset and zoom factor
+         * (used for reverse zoom)
+         * @return {Object} the current zoom center
+         */
+        getCurrentZoomCenter: function () {
+            var offsetLeft = this.offset.x - this.initialOffset.x;
+            var centerX = -1 * this.offset.x - offsetLeft / (1 / this.zoomFactor - 1);
+
+            var offsetTop = this.offset.y - this.initialOffset.y;
+            var centerY = -1 * this.offset.y - offsetTop / (1 / this.zoomFactor - 1);
+
+            return {
+                x: centerX,
+                y: centerY
+            };
+        },
+
+        /**
+         * Returns the touches of an event relative to the container offset
+         * @param event
+         * @return array touches
+         */
+        getTouches: function (event) {
+            var rect = this.container.getBoundingClientRect();
+            var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
+            var scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft;
+            var posTop = rect.top + scrollTop;
+            var posLeft = rect.left + scrollLeft;
+
+            return Array.prototype.slice.call(event.touches).map(function (touch) {
+                return {
+                    x: touch.pageX - posLeft,
+                    y: touch.pageY - posTop,
+                };
+            });
+        },
+
+        /**
+         * Animation loop
+         * does not support simultaneous animations
+         * @param duration
+         * @param framefn
+         * @param timefn
+         * @param callback
+         */
+        animate: function (duration, framefn, timefn, callback) {
+            var startTime = new Date().getTime(),
+                renderFrame = (function () {
+                    if (!this.inAnimation) { return; }
+                    var frameTime = new Date().getTime() - startTime,
+                        progress = frameTime / duration;
+                    if (frameTime >= duration) {
+                        framefn(1);
+                        if (callback) {
+                            callback();
+                        }
+                        this.update();
+                        this.stopAnimation();
+                        this.update();
+                    } else {
+                        if (timefn) {
+                            progress = timefn(progress);
+                        }
+                        framefn(progress);
+                        this.update();
+                        requestAnimationFrame(renderFrame);
+                    }
+                }).bind(this);
+            this.inAnimation = true;
+            requestAnimationFrame(renderFrame);
+        },
+
+        /**
+         * Stops the animation
+         */
+        stopAnimation: function () {
+            this.inAnimation = false;
+        },
+
+        /**
+         * Swing timing function for animations
+         * @param p
+         * @return {Number}
+         */
+        swing: function (p) {
+            return -Math.cos(p * Math.PI) / 2  + 0.5;
+        },
+
+        getContainerX: function () {
+            return this.container.offsetWidth;
+        },
+
+        getContainerY: function () {
+            return this.container.offsetHeight;
+        },
+
+        setContainerY: function (y) {
+            return this.container.style.height = y + 'px';
+        },
+
+        unsetContainerY: function () {
+            this.container.style.height = null;
+        },
+
+        /**
+         * Creates the expected html structure
+         */
+        setupMarkup: function () {
+            this.container = buildElement('<div class="pinch-zoom-container"></div>');
+            this.el.parentNode.insertBefore(this.container, this.el);
+            this.container.appendChild(this.el);
+
+            this.container.style.overflow = 'hidden';
+            this.container.style.position = 'relative';
+
+            this.el.style.webkitTransformOrigin = '0% 0%';
+            this.el.style.mozTransformOrigin = '0% 0%';
+            this.el.style.msTransformOrigin = '0% 0%';
+            this.el.style.oTransformOrigin = '0% 0%';
+            this.el.style.transformOrigin = '0% 0%';
+
+            this.el.style.position = 'absolute';
+        },
+
+        end: function () {
+            this.hasInteraction = false;
+            this.sanitize();
+            this.update();
+        },
+
+        /**
+         * Binds all required event listeners
+         */
+        bindEvents: function () {
+            var self = this;
+            detectGestures(this.container, this);
+
+            this.resizeHandler = this.update.bind(this)
+            window.addEventListener('resize', this.resizeHandler);
+            Array.from(this.el.querySelectorAll('img')).forEach(function(imgEl) {
+              imgEl.addEventListener('load', self.update.bind(self));
+            });
+
+            if (this.el.nodeName === 'IMG') {
+              this.el.addEventListener('load', this.update.bind(this));
+            }
+        },
+
+        /**
+         * Updates the css values according to the current zoom factor and offset
+         */
+        update: function (event) {
+            if (event && event.type === 'resize') {
+                this.updateAspectRatio();
+                this.setupOffsets();
+            }
+
+            if (event && event.type === 'load') {
+              this.updateAspectRatio();
+              this.setupOffsets();
+            }
+
+            if (this.updatePlanned) {
+                return;
+            }
+            this.updatePlanned = true;
+
+            window.setTimeout((function () {
+                this.updatePlanned = false;
+
+                var zoomFactor = this.getInitialZoomFactor() * this.zoomFactor,
+                    offsetX = -this.offset.x / zoomFactor,
+                    offsetY = -this.offset.y / zoomFactor,
+                    transform3d =   'scale3d('     + zoomFactor + ', '  + zoomFactor + ',1) ' +
+                        'translate3d(' + offsetX    + 'px,' + offsetY    + 'px,0px)',
+                    transform2d =   'scale('       + zoomFactor + ', '  + zoomFactor + ') ' +
+                        'translate('   + offsetX    + 'px,' + offsetY    + 'px)',
+                    removeClone = (function () {
+                        if (this.clone) {
+                            this.clone.parentNode.removeChild(this.clone);
+                            delete this.clone;
+                        }
+                    }).bind(this);
+
+                // Scale 3d and translate3d are faster (at least on ios)
+                // but they also reduce the quality.
+                // PinchZoom uses the 3d transformations during interactions
+                // after interactions it falls back to 2d transformations
+                if (!this.options.use2d || this.hasInteraction || this.inAnimation) {
+                    this.is3d = true;
+                    removeClone();
+
+                    this.el.style.webkitTransform = transform3d;
+                    this.el.style.mozTransform = transform2d;
+                    this.el.style.msTransform = transform2d;
+                    this.el.style.oTransform = transform2d;
+                    this.el.style.transform = transform3d;
+                } else {
+                    // When changing from 3d to 2d transform webkit has some glitches.
+                    // To avoid this, a copy of the 3d transformed element is displayed in the
+                    // foreground while the element is converted from 3d to 2d transform
+                    if (this.is3d) {
+                        this.clone = this.el.cloneNode(true);
+                        this.clone.style.pointerEvents = 'none';
+                        this.container.appendChild(this.clone);
+                        window.setTimeout(removeClone, 200);
+                    }
+
+                    this.el.style.webkitTransform = transform2d;
+                    this.el.style.mozTransform = transform2d;
+                    this.el.style.msTransform = transform2d;
+                    this.el.style.oTransform = transform2d;
+                    this.el.style.transform = transform2d;
+
+                    this.is3d = false;
+                }
+            }).bind(this), 0);
+        },
+
+        /**
+         * Enables event handling for gestures
+         */
+        enable: function() {
+          this.enabled = true;
+        },
+
+        /**
+         * Disables event handling for gestures
+         */
+        disable: function() {
+          this.enabled = false;
+        },
+
+        /**
+         * Unmounts the zooming container and global event listeners
+         */
+        destroy: function () {
+          window.removeEventListener('resize', this.resizeHandler);
+
+          if (this.container) {
+            this.container.remove();
+            this.container = null;
+          }
+        }
+
+    };
+
+    var detectGestures = function (el, target) {
+        var interaction = null,
+            fingers = 0,
+            lastTouchStart = null,
+            startTouches = null,
+
+            setInteraction = function (newInteraction, event) {
+                if (interaction !== newInteraction) {
+
+                    if (interaction && !newInteraction) {
+                        switch (interaction) {
+                            case "zoom":
+                                target.handleZoomEnd(event);
+                                break;
+                            case 'drag':
+                                target.handleDragEnd(event);
+                                break;
+                        }
+                    }
+
+                    switch (newInteraction) {
+                        case 'zoom':
+                            target.handleZoomStart(event);
+                            break;
+                        case 'drag':
+                            target.handleDragStart(event);
+                            break;
+                    }
+                }
+                interaction = newInteraction;
+            },
+
+            updateInteraction = function (event) {
+                if (fingers === 2) {
+                    setInteraction('zoom');
+                } else if (fingers === 1 && target.canDrag()) {
+                    setInteraction('drag', event);
+                } else {
+                    setInteraction(null, event);
+                }
+            },
+
+            targetTouches = function (touches) {
+                return Array.from(touches).map(function (touch) {
+                    return {
+                        x: touch.pageX,
+                        y: touch.pageY
+                    };
+                });
+            },
+
+            getDistance = function (a, b) {
+                var x, y;
+                x = a.x - b.x;
+                y = a.y - b.y;
+                return Math.sqrt(x * x + y * y);
+            },
+
+            calculateScale = function (startTouches, endTouches) {
+                var startDistance = getDistance(startTouches[0], startTouches[1]),
+                    endDistance = getDistance(endTouches[0], endTouches[1]);
+                return endDistance / startDistance;
+            },
+
+            cancelEvent = function (event) {
+                event.stopPropagation();
+                event.preventDefault();
+            },
+
+            detectDoubleTap = function (event) {
+                var time = (new Date()).getTime();
+
+                if (fingers > 1) {
+                    lastTouchStart = null;
+                }
+
+                if (time - lastTouchStart < 300) {
+                    cancelEvent(event);
+
+                    target.handleDoubleTap(event);
+                    switch (interaction) {
+                        case "zoom":
+                            target.handleZoomEnd(event);
+                            break;
+                        case 'drag':
+                            target.handleDragEnd(event);
+                            break;
+                    }
+                } else {
+                    target.isDoubleTap = false;
+                }
+
+                if (fingers === 1) {
+                    lastTouchStart = time;
+                }
+            },
+            firstMove = true;
+
+        el.addEventListener('touchstart', function (event) {
+            if(target.enabled) {
+                firstMove = true;
+                fingers = event.touches.length;
+                detectDoubleTap(event);
+            }
+        }, { passive: false });
+
+        el.addEventListener('touchmove', function (event) {
+            if(target.enabled && !target.isDoubleTap) {
+                if (firstMove) {
+                    updateInteraction(event);
+                    if (interaction) {
+                        cancelEvent(event);
+                    }
+                    startTouches = targetTouches(event.touches);
+                } else {
+                    switch (interaction) {
+                        case 'zoom':
+                            if (startTouches.length == 2 && event.touches.length == 2) {
+                                target.handleZoom(event, calculateScale(startTouches, targetTouches(event.touches)));
+                            }
+                            break;
+                        case 'drag':
+                            target.handleDrag(event);
+                            break;
+                    }
+                    if (interaction) {
+                        cancelEvent(event);
+                        target.update();
+                    }
+                }
+
+                firstMove = false;
+            }
+        }, { passive: false });
+
+        el.addEventListener('touchend', function (event) {
+            if(target.enabled) {
+                fingers = event.touches.length;
+                updateInteraction(event);
+            }
+        });
+    };
+
+    return PinchZoom;
+};
+
+var PinchZoom = definePinchZoom();
+
+export default PinchZoom;
diff --git a/node_modules/pdfh5/js/pinch-zoom.min.js b/node_modules/pdfh5/js/pinch-zoom.min.js
new file mode 100644
index 0000000..cf85199
--- /dev/null
+++ b/node_modules/pdfh5/js/pinch-zoom.min.js
@@ -0,0 +1 @@
+"function"!=typeof Object.assign&&Object.defineProperty(Object,"assign",{value:function(a){if(null==a)throw new TypeError("Cannot convert undefined or null to object");for(var b,c=Object(a),d=1;d<arguments.length;d++)if(b=arguments[d],null!=b)for(var e in b)Object.prototype.hasOwnProperty.call(b,e)&&(c[e]=b[e]);return c},writable:!0,configurable:!0}),"function"!=typeof Array.from&&(Array.from=function(a){return[].slice.call(a)});var buildElement=function(a){var b=document.implementation.createHTMLDocument("");return b.body.innerHTML=a,Array.from(b.body.children)[0]},triggerEvent=function(a,b){var c=document.createEvent("HTMLEvents");c.initEvent(b,!0,!1),a.dispatchEvent(c)},definePinchZoom=function(){var a=Math.min,b=Math.max,c=Math.abs,d=function(a,b){this.el=a,this.zoomFactor=1,this.lastScale=1,this.offset={x:0,y:0},this.initialOffset={x:0,y:0},this.options=Object.assign({},this.defaults,b),this.setupMarkup(),this.bindEvents(),this.update(),this.isImageLoaded(this.el)&&(this.updateAspectRatio(),this.setupOffsets()),this.enable()},e=function(c,a){return c+a},f=function(a,b){return a>b-.01&&a<b+.01};d.prototype={defaults:{tapZoomFactor:2,zoomOutFactor:1.3,animationDuration:300,maxZoom:4,minZoom:.5,draggableUnzoomed:!0,lockDragAxis:!1,setOffsetsOnce:!1,use2d:!0,zoomStartEventName:"pz_zoomstart",zoomUpdateEventName:"pz_zoomupdate",zoomEndEventName:"pz_zoomend",dragStartEventName:"pz_dragstart",dragUpdateEventName:"pz_dragupdate",dragEndEventName:"pz_dragend",doubleTapEventName:"pz_doubletap",verticalPadding:0,horizontalPadding:0,onZoomStart:null,onZoomEnd:null,onZoomUpdate:null,onDragStart:null,onDragEnd:null,onDragUpdate:null,onDoubleTap:null},handleDragStart:function(a){triggerEvent(this.el,this.options.dragStartEventName),"function"==typeof this.options.onDragStart&&this.options.onDragStart(this,a),this.stopAnimation(),this.lastDragPosition=!1,this.hasInteraction=!0,this.handleDrag(a)},handleDrag:function(a){var b=this.getTouches(a)[0];this.drag(b,this.lastDragPosition),this.offset=this.sanitizeOffset(this.offset),this.lastDragPosition=b},handleDragEnd:function(){triggerEvent(this.el,this.options.dragEndEventName),"function"==typeof this.options.onDragEnd&&this.options.onDragEnd(this,event),this.end()},handleZoomStart:function(a){triggerEvent(this.el,this.options.zoomStartEventName),"function"==typeof this.options.onZoomStart&&this.options.onZoomStart(this,a),this.stopAnimation(),this.lastScale=1,this.nthZoom=0,this.lastZoomCenter=!1,this.hasInteraction=!0},handleZoom:function(a,b){var c=this.getTouchCenter(this.getTouches(a)),d=b/this.lastScale;this.lastScale=b,this.nthZoom+=1,3<this.nthZoom&&(this.scale(d,c),this.drag(c,this.lastZoomCenter)),this.lastZoomCenter=c},handleZoomEnd:function(){triggerEvent(this.el,this.options.zoomEndEventName),"function"==typeof this.options.onZoomEnd&&this.options.onZoomEnd(this,event),this.end()},handleDoubleTap:function(a){var b=this.getTouches(a)[0],c=1<this.zoomFactor?1:this.options.tapZoomFactor,d=this.zoomFactor,e=function(a){this.scaleTo(d+a*(c-d),b)}.bind(this);this.hasInteraction||(this.isDoubleTap=!0,d>c&&(b=this.getCurrentZoomCenter()),this.animate(this.options.animationDuration,e,this.swing),triggerEvent(this.el,this.options.doubleTapEventName),"function"==typeof this.options.onDoubleTap&&this.options.onDoubleTap(this,a))},computeInitialOffset:function(){this.initialOffset={x:-c(this.el.offsetWidth*this.getInitialZoomFactor()-this.container.offsetWidth)/2,y:-c(this.el.offsetHeight*this.getInitialZoomFactor()-this.container.offsetHeight)/2}},resetOffset:function(){this.offset.x=this.initialOffset.x,this.offset.y=this.initialOffset.y},isImageLoaded:function(a){return"IMG"===a.nodeName?a.complete&&0!==a.naturalHeight:Array.from(a.querySelectorAll("img")).every(this.isImageLoaded)},setupOffsets:function(){this.options.setOffsetsOnce&&this._isOffsetsSet||(this._isOffsetsSet=!0,this.computeInitialOffset(),this.resetOffset())},sanitizeOffset:function(c){var d=this.el.offsetWidth*this.getInitialZoomFactor()*this.zoomFactor,e=this.el.offsetHeight*this.getInitialZoomFactor()*this.zoomFactor,f=d-this.getContainerX()+this.options.horizontalPadding,g=e-this.getContainerY()+this.options.verticalPadding,h=b(f,0),i=b(g,0),j=a(f,0)-this.options.horizontalPadding,k=a(g,0)-this.options.verticalPadding;return{x:a(b(c.x,j),h),y:a(b(c.y,k),i)}},scaleTo:function(a,b){this.scale(a/this.zoomFactor,b)},scale:function(a,b){a=this.scaleZoomFactor(a),this.addOffset({x:(a-1)*(b.x+this.offset.x),y:(a-1)*(b.y+this.offset.y)}),triggerEvent(this.el,this.options.zoomUpdateEventName),"function"==typeof this.options.onZoomUpdate&&this.options.onZoomUpdate(this,event)},scaleZoomFactor:function(c){var d=this.zoomFactor;return this.zoomFactor*=c,this.zoomFactor=a(this.options.maxZoom,b(this.zoomFactor,this.options.minZoom)),this.zoomFactor/d},canDrag:function(){return this.options.draggableUnzoomed||!f(this.zoomFactor,1)},drag:function(a,b){b&&(this.options.lockDragAxis?c(a.x-b.x)>c(a.y-b.y)?this.addOffset({x:-(a.x-b.x),y:0}):this.addOffset({y:-(a.y-b.y),x:0}):this.addOffset({y:-(a.y-b.y),x:-(a.x-b.x)}),triggerEvent(this.el,this.options.dragUpdateEventName),"function"==typeof this.options.onDragUpdate&&this.options.onDragUpdate(this,event))},getTouchCenter:function(a){return this.getVectorAvg(a)},getVectorAvg:function(a){return{x:a.map(function(a){return a.x}).reduce(e)/a.length,y:a.map(function(a){return a.y}).reduce(e)/a.length}},addOffset:function(a){this.offset={x:this.offset.x+a.x,y:this.offset.y+a.y}},sanitize:function(){this.zoomFactor<this.options.zoomOutFactor?this.zoomOutAnimation():this.isInsaneOffset(this.offset)&&this.sanitizeOffsetAnimation()},isInsaneOffset:function(a){var b=this.sanitizeOffset(a);return b.x!==a.x||b.y!==a.y},sanitizeOffsetAnimation:function(){var a=this.sanitizeOffset(this.offset),b={x:this.offset.x,y:this.offset.y},c=function(c){this.offset.x=b.x+c*(a.x-b.x),this.offset.y=b.y+c*(a.y-b.y),this.update()}.bind(this);this.animate(this.options.animationDuration,c,this.swing)},zoomOutAnimation:function(){if(1!==this.zoomFactor){var a=this.zoomFactor,b=this.getCurrentZoomCenter(),c=function(c){this.scaleTo(a+c*(1-a),b)}.bind(this);this.animate(this.options.animationDuration,c,this.swing)}},updateAspectRatio:function(){this.unsetContainerY(),this.setContainerY(this.container.parentElement.offsetHeight)},getInitialZoomFactor:function(){var b=this.container.offsetWidth/this.el.offsetWidth,c=this.container.offsetHeight/this.el.offsetHeight;return a(b,c)},getAspectRatio:function(){return this.el.offsetWidth/this.el.offsetHeight},getCurrentZoomCenter:function(){var a=this.offset.x-this.initialOffset.x,b=-1*this.offset.x-a/(1/this.zoomFactor-1),c=this.offset.y-this.initialOffset.y,d=-1*this.offset.y-c/(1/this.zoomFactor-1);return{x:b,y:d}},getTouches:function(a){var b=this.container.getBoundingClientRect(),c=document.documentElement.scrollTop||document.body.scrollTop,d=document.documentElement.scrollLeft||document.body.scrollLeft,e=b.top+c,f=b.left+d;return Array.prototype.slice.call(a.touches).map(function(a){return{x:a.pageX-f,y:a.pageY-e}})},animate:function(a,b,c,d){var e=new Date().getTime(),f=function(){if(this.inAnimation){var g=new Date().getTime()-e,h=g/a;g>=a?(b(1),d&&d(),this.update(),this.stopAnimation(),this.update()):(c&&(h=c(h)),b(h),this.update(),requestAnimationFrame(f))}}.bind(this);this.inAnimation=!0,requestAnimationFrame(f)},stopAnimation:function(){this.inAnimation=!1},swing:function(a){return-Math.cos(a*Math.PI)/2+.5},getContainerX:function(){return this.container.offsetWidth},getContainerY:function(){return this.container.offsetHeight},setContainerY:function(a){return this.container.style.height=a+"px"},unsetContainerY:function(){this.container.style.height=null},setupMarkup:function(){this.container=buildElement("<div class=\"pinch-zoom-container\"></div>"),this.el.parentNode.insertBefore(this.container,this.el),this.container.appendChild(this.el),this.container.style.overflow="hidden",this.container.style.position="relative",this.el.style.webkitTransformOrigin="0% 0%",this.el.style.mozTransformOrigin="0% 0%",this.el.style.msTransformOrigin="0% 0%",this.el.style.oTransformOrigin="0% 0%",this.el.style.transformOrigin="0% 0%",this.el.style.position="absolute"},end:function(){this.hasInteraction=!1,this.sanitize(),this.update()},bindEvents:function(){var a=this;g(this.container,this),this.resizeHandler=this.update.bind(this),window.addEventListener("resize",this.resizeHandler),Array.from(this.el.querySelectorAll("img")).forEach(function(b){b.addEventListener("load",a.update.bind(a))}),"IMG"===this.el.nodeName&&this.el.addEventListener("load",this.update.bind(this))},update:function(a){a&&"resize"===a.type&&(this.updateAspectRatio(),this.setupOffsets()),a&&"load"===a.type&&(this.updateAspectRatio(),this.setupOffsets());this.updatePlanned||(this.updatePlanned=!0,window.setTimeout(function(){this.updatePlanned=!1;var a=this.getInitialZoomFactor()*this.zoomFactor,b=-this.offset.x/a,c=-this.offset.y/a,d="scale3d("+a+", "+a+",1) translate3d("+b+"px,"+c+"px,0px)",e="scale("+a+", "+a+") translate("+b+"px,"+c+"px)",f=function(){this.clone&&(this.clone.parentNode.removeChild(this.clone),delete this.clone)}.bind(this);!this.options.use2d||this.hasInteraction||this.inAnimation?(this.is3d=!0,f(),this.el.style.webkitTransform=d,this.el.style.mozTransform=e,this.el.style.msTransform=e,this.el.style.oTransform=e,this.el.style.transform=d):(this.is3d&&(this.clone=this.el.cloneNode(!0),this.clone.style.pointerEvents="none",this.container.appendChild(this.clone),window.setTimeout(f,200)),this.el.style.webkitTransform=e,this.el.style.mozTransform=e,this.el.style.msTransform=e,this.el.style.oTransform=e,this.el.style.transform=e,this.is3d=!1)}.bind(this),0))},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},destroy:function(){window.removeEventListener("resize",this.resizeHandler),this.container&&(this.container.remove(),this.container=null)}};var g=function(a,b){var c=null,d=0,e=null,f=null,g=function(a,d){c!==a&&(c&&!a&&("zoom"===c?b.handleZoomEnd(d):"drag"===c?b.handleDragEnd(d):void 0),"zoom"===a?b.handleZoomStart(d):"drag"===a?b.handleDragStart(d):void 0);c=a},h=function(a){2===d?g("zoom"):1===d&&b.canDrag()?g("drag",a):g(null,a)},i=function(a){return Array.from(a).map(function(a){return{x:a.pageX,y:a.pageY}})},j=function(c,a){var d,e,b=Math.sqrt;return d=c.x-a.x,e=c.y-a.y,b(d*d+e*e)},k=function(a,b){var c=j(a[0],a[1]),d=j(b[0],b[1]);return d/c},l=function(a){a.stopPropagation(),a.preventDefault()},m=function(a){var f=new Date().getTime();1<d&&(e=null);300>f-e?(l(a),b.handleDoubleTap(a),"zoom"===c?b.handleZoomEnd(a):"drag"===c?b.handleDragEnd(a):void 0):b.isDoubleTap=!1;1===d&&(e=f)},n=!0;a.addEventListener("touchstart",function(a){b.enabled&&(n=!0,d=a.touches.length,m(a))},{passive:!1}),a.addEventListener("touchmove",function(a){b.enabled&&!b.isDoubleTap&&(n?(h(a),c&&l(a),f=i(a.touches)):("zoom"===c?2==f.length&&2==a.touches.length&&b.handleZoom(a,k(f,i(a.touches))):"drag"===c?b.handleDrag(a):void 0,c&&(l(a),b.update())),n=!1)},{passive:!1}),a.addEventListener("touchend",function(a){b.enabled&&(d=a.touches.length,h(a))})};return d},PinchZoom=definePinchZoom();export default PinchZoom;
\ No newline at end of file
diff --git a/node_modules/pdfh5/package.json b/node_modules/pdfh5/package.json
new file mode 100644
index 0000000..fbc518c
--- /dev/null
+++ b/node_modules/pdfh5/package.json
@@ -0,0 +1,61 @@
+{
+    "_from": "pdfh5",
+    "_id": "pdfh5@1.4.9",
+    "_inBundle": false,
+    "_integrity": "sha512-9I0AcoEdefvFJZqwv/1Q5ht4QGzmieoVqkd0uehp+62H0KrWtnXYfnHjlwQcfiStdynpCYYJu3A6F1AVUBbqbQ==",
+    "_location": "/pdfh5",
+    "_phantomChildren": {},
+    "_requested": {
+        "type": "tag",
+        "registry": true,
+        "raw": "pdfh5",
+        "name": "pdfh5",
+        "escapedName": "pdfh5",
+        "rawSpec": "",
+        "saveSpec": null,
+        "fetchSpec": "latest"
+    },
+    "_requiredBy": [
+        "#USER",
+        "/"
+    ],
+    "_resolved": "https://registry.npmjs.org/pdfh5/-/pdfh5-1.4.9.tgz",
+    "_shasum": "c5e1a233c4baa346727bb968e7a68e2c3453b5aa",
+    "_spec": "pdfh5",
+    "_where": "/Users/gaojin/npm-pdfh5",
+    "author": {
+        "name": "Gao Jin"
+    },
+    "bugs": {
+        "url": "https://github.com/gjTool/pdfh5/issues"
+    },
+    "bundleDependencies": false,
+    "dependencies": {},
+    "deprecated": false,
+    "description": " JS plugin of preview PDF  for mobile. web/h5/移动端PDF预览手势缩放插件",
+    "devDependencies": {},
+    "directories": {
+        "example": "example"
+    },
+    "homepage": "https://github.com/gjTool/pdfh5#readme",
+    "keywords": [
+        "pdf",
+        "pdf.js",
+        "pdfjs",
+        "pdfh5",
+        "pdfh5.js",
+        "javascript",
+        "plugin",
+        "library",
+        "mobile"
+    ],
+    "license": "MIT",
+    "main": "js/pdfh5.js",
+    "name": "pdfh5",
+    "repository": {
+        "type": "git",
+        "url": "git+https://github.com/gjTool/pdfh5.git"
+    },
+    "scripts": {},
+    "version": "1.4.9"
+}
diff --git a/node_modules/pdfh5/pdf.html b/node_modules/pdfh5/pdf.html
new file mode 100644
index 0000000..df80266
--- /dev/null
+++ b/node_modules/pdfh5/pdf.html
@@ -0,0 +1,166 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+	<meta charset="UTF-8">
+	<meta name="apple-mobile-web-app-capable" content="yes">
+	<meta name="apple-mobile-web-app-status-bar-style" content="black">
+	<meta name="format-detection" content="telephone=no" />
+	<meta name="msapplication-tap-highlight" content="no" />
+	<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">
+	<meta http-equiv="pragma" content="no-cache">
+	<meta http-equiv="cache-control" content="no-cache">
+	<meta http-equiv="expires" content="0">
+	<title>PDFH5</title>
+	<link rel="stylesheet" href="css/style.css" />
+	<link rel="stylesheet" href="css/pdfh5.css" />
+	<link href="https://www.gjtool.cn/download/pdfh5.png" type="image/x-icon" rel="shortcut icon" />
+	<style>
+		html,
+		body {
+			width: 100%;
+			height: 100%;
+		}
+
+		#demo {
+			display: none;
+			/* height: 33%; */
+		}
+
+		#demo2 {
+			/* display: none; */
+			height: 33%;
+		}
+
+		#demo3 {
+			/* display: none; */
+			height: 33%;
+		}
+	</style>
+</head>
+
+<body>
+	<div id="app">
+		<div class="text-wrapper">
+			<div class="text part1">
+				<div>
+					<span class="letter">
+						<div class="character">L</div> <span></span>
+					</span>
+					<span class="letter">
+						<div class="character">o</div> <span></span>
+					</span>
+					<span class="letter">
+						<div class="character">a</div> <span></span>
+					</span>
+					<span class="letter">
+						<div class="character">d</div> <span></span>
+					</span>
+					<span class="letter">
+						<div class="character">i</div> <span></span>
+					</span>
+					<span class="letter">
+						<div class="character">n</div> <span></span>
+					</span>
+					<span class="letter">
+						<div class="character">g</div> <span></span>
+					</span>
+				</div>
+			</div>
+			<div class="how-to"><span>正在加载中,请您耐心等待...</span></div>
+		</div>
+
+	</div>
+	<div id="demo"></div>
+	<script src="js/pdf.js"></script>
+	<script src="js/pdf.worker.js"></script>
+	<script src="js/jquery-3.6.0.min.js" type="text/javascript" charset="utf-8"></script>
+	<script src="js/pdfh5.js" type="text/javascript" charset="utf-8"></script>
+	<script src="./vconsole.min.js"></script>
+	<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
+	<script type="text/javascript">
+		var vConsole = new VConsole();
+		console.log('Hello world');
+		var pdfh5;
+		$("#app").remove();
+		$("#demo").show();
+		pdfh5 = new Pdfh5('#demo', {
+			pdfurl: "git.pdf",
+			// renderType: "svg",
+			// cMapUrl:"https://unpkg.com/pdfjs-dist@2.7.570/cmaps/",
+			// responseType: "blob" // blob arraybuffer
+		});
+		pdfh5.on("complete", function (status, msg, time) {
+			console.log("状态:" + status + ",总耗时:" + time + "毫秒,总页数:" + this.totalNum, msg);
+		});
+		// pdfh5.on("scroll", function (scrollTop, currentNum) {
+		// 	console.log("scrollTop:"+scrollTop,"currentNum:"+currentNum);
+		// });
+		//配置项参数 renderType:"svg" 渲染模式为svg,默认canvas
+		// var pdfh5 = new Pdfh5('#demo', {
+		//     pdfurl: "./default.pdf",
+		//     renderType:"svg"
+		// });
+
+		//配置项参数 URIenable:true 开启获取地址栏file参数,获取地址栏pdf路径?file=xxx.pdf,默认false不开启
+		// var pdfh5 = new Pdfh5('#demo', {
+		//     URIenable:false,
+		//     pdfurl: "./default.pdf"
+		// });
+
+		//配置项参数 是否显示小部件 顶部绿色加载进度条loadingBar 左上角页码显示pageNum 右下角回到顶部按钮backTop  默认显示
+		//		var pdfh5 = new Pdfh5('#demo', {
+		// 			 loadingBar: false,
+		//           pageNum:false,
+		//           backTop:false
+		// 		});
+
+		//配置项参数data,文件流形式传入  pdfurl和data二选一
+		//		var pdfh5 = new Pdfh5('#demo', {
+		// 			data: data
+		// 		});
+
+		//配置项参数scrollEnable:false不允许pdf滚动,true允许pdf滚动  默认允许
+		//		var pdfh5 = new Pdfh5('#demo', {
+		// 			scrollEnable:false,//是否允许pdf滚动
+		// 			pdfurl: url
+		// 		});
+		//pdfh5.scrollEnable(true)允许pdf滚动,pdfh5.scrollEnable(false)不允许pdf滚动
+
+		//配置项参数zoomEnable:false不允许pdf手势缩放,true允许pdf手势缩放  默认允许
+		//		var pdfh5 = new Pdfh5('#demo', {
+		// 			zoomEnable:false,//是否允许pdf手势缩放
+		// 			pdfurl: url
+		// 		});
+
+		//pdfh5还原、销毁(附带回调函数):   pdfh5.reset pdfh5.destroy
+		//pdfh5显示、隐藏(附带回调函数):   pdfh5.show pdfh5.hide
+
+		//pdf准备开始渲染,此时可以拿到pdf总页数
+		// pdfh5.on("ready", function() {
+		// 	console.log("pdf准备开始渲染,总页数:" + this.totalNum)
+		// })
+
+		//监听pdf渲染失败
+		// pdfh5.on("error", function (time) {
+		//     console.log("渲染失败,总耗时" + time + "毫秒")
+		// })
+		//监听完成事件,加载失败、渲染成功都会触发
+		// pdfh5.on("complete", function(status, msg, time) {
+		// 	console.log("状态:" + status + ",总耗时:" + time + "毫秒,总页数:" + this.totalNum, msg)
+		// })
+
+		//监听渲染中事件
+		// pdfh5.on("render", function(currentNum, time, currentPageDom) {
+		// 	// currentPageDom.append("<span class='name-logo'>张三</span>")
+		// 	console.log("当前页码:" + currentNum)
+		// })
+		//on方法,监听事件: 开始初始化 init 准备渲染pdf ready 加载完成 complete 加载失败 error 加载成功 success 渲染pdf中 render
+		// 缩放zoom   滚动scroll 显示show  隐藏hide 还原reset 销毁destroy  允许缩放zoomEnable 允许滚动scrollEnable
+
+		//pdfh5支持在线预览
+		//http://www.gjtool.cn/pdfh5/pdf.html?file=http://www.gjtool.cn/pdfh5/default.pdf
+	</script>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/node_modules/pdfh5/pdfh5.png b/node_modules/pdfh5/pdfh5.png
new file mode 100644
index 0000000..b139dfe
--- /dev/null
+++ b/node_modules/pdfh5/pdfh5.png
Binary files differ
diff --git a/node_modules/pdfh5/test.pdf b/node_modules/pdfh5/test.pdf
new file mode 100644
index 0000000..08348cf
--- /dev/null
+++ b/node_modules/pdfh5/test.pdf
Binary files differ
diff --git a/node_modules/pdfh5/vconsole.min.js b/node_modules/pdfh5/vconsole.min.js
new file mode 100644
index 0000000..fe00a39
--- /dev/null
+++ b/node_modules/pdfh5/vconsole.min.js
@@ -0,0 +1,10 @@
+/*!
+ * vConsole v3.15.0 (https://github.com/Tencent/vConsole)
+ *
+ * Tencent is pleased to support the open source community by making vConsole available.
+ * Copyright (C) 2017 THL A29 Limited, a Tencent company. All rights reserved.
+ * Licensed under the MIT License (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
+ * http://opensource.org/licenses/MIT
+ * 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.
+ */
+!function(t,n){"object"==typeof exports&&"object"==typeof module?module.exports=n():"function"==typeof define&&define.amd?define("VConsole",[],n):"object"==typeof exports?exports.VConsole=n():t.VConsole=n()}(this||self,(function(){return function(){var __webpack_modules__={4264:function(t,n,e){t.exports=e(7588)},5036:function(t,n,e){e(1719),e(5677),e(6394),e(5334),e(6969),e(2021),e(8328),e(2129);var o=e(1287);t.exports=o.Promise},2582:function(t,n,e){e(1646),e(6394),e(2004),e(462),e(8407),e(2429),e(1172),e(8288),e(1274),e(8201),e(6626),e(3211),e(9952),e(15),e(9831),e(7521),e(2972),e(6956),e(5222),e(2257);var o=e(1287);t.exports=o.Symbol},8257:function(t,n,e){var o=e(7583),r=e(9212),i=e(5637),a=o.TypeError;t.exports=function(t){if(r(t))return t;throw a(i(t)+" is not a function")}},1186:function(t,n,e){var o=e(7583),r=e(2097),i=e(5637),a=o.TypeError;t.exports=function(t){if(r(t))return t;throw a(i(t)+" is not a constructor")}},9882:function(t,n,e){var o=e(7583),r=e(9212),i=o.String,a=o.TypeError;t.exports=function(t){if("object"==typeof t||r(t))return t;throw a("Can't set "+i(t)+" as a prototype")}},6288:function(t,n,e){var o=e(3649),r=e(3590),i=e(4615),a=o("unscopables"),c=Array.prototype;null==c[a]&&i.f(c,a,{configurable:!0,value:r(null)}),t.exports=function(t){c[a][t]=!0}},4761:function(t,n,e){var o=e(7583),r=e(2447),i=o.TypeError;t.exports=function(t,n){if(r(n,t))return t;throw i("Incorrect invocation")}},2569:function(t,n,e){var o=e(7583),r=e(794),i=o.String,a=o.TypeError;t.exports=function(t){if(r(t))return t;throw a(i(t)+" is not an object")}},5766:function(t,n,e){var o=e(2977),r=e(6782),i=e(1825),a=function(t){return function(n,e,a){var c,u=o(n),s=i(u),l=r(a,s);if(t&&e!=e){for(;s>l;)if((c=u[l++])!=c)return!0}else for(;s>l;l++)if((t||l in u)&&u[l]===e)return t||l||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},4805:function(t,n,e){var o=e(2938),r=e(7386),i=e(5044),a=e(1324),c=e(1825),u=e(4822),s=r([].push),l=function(t){var n=1==t,e=2==t,r=3==t,l=4==t,f=6==t,d=7==t,v=5==t||f;return function(h,p,g,m){for(var _,b,y=a(h),w=i(y),E=o(p,g),L=c(w),T=0,x=m||u,C=n?x(h,L):e||d?x(h,0):void 0;L>T;T++)if((v||T in w)&&(b=E(_=w[T],T,y),t))if(n)C[T]=b;else if(b)switch(t){case 3:return!0;case 5:return _;case 6:return T;case 2:s(C,_)}else switch(t){case 4:return!1;case 7:s(C,_)}return f?-1:r||l?l:C}};t.exports={forEach:l(0),map:l(1),filter:l(2),some:l(3),every:l(4),find:l(5),findIndex:l(6),filterReject:l(7)}},9269:function(t,n,e){var o=e(6544),r=e(3649),i=e(4061),a=r("species");t.exports=function(t){return i>=51||!o((function(){var n=[];return(n.constructor={})[a]=function(){return{foo:1}},1!==n[t](Boolean).foo}))}},4546:function(t,n,e){var o=e(7583),r=e(6782),i=e(1825),a=e(5999),c=o.Array,u=Math.max;t.exports=function(t,n,e){for(var o=i(t),s=r(n,o),l=r(void 0===e?o:e,o),f=c(u(l-s,0)),d=0;s<l;s++,d++)a(f,d,t[s]);return f.length=d,f}},6917:function(t,n,e){var o=e(7386);t.exports=o([].slice)},5289:function(t,n,e){var o=e(7583),r=e(4521),i=e(2097),a=e(794),c=e(3649)("species"),u=o.Array;t.exports=function(t){var n;return r(t)&&(n=t.constructor,(i(n)&&(n===u||r(n.prototype))||a(n)&&null===(n=n[c]))&&(n=void 0)),void 0===n?u:n}},4822:function(t,n,e){var o=e(5289);t.exports=function(t,n){return new(o(t))(0===n?0:n)}},3616:function(t,n,e){var o=e(3649)("iterator"),r=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){r=!0}};a[o]=function(){return this},Array.from(a,(function(){throw 2}))}catch(t){}t.exports=function(t,n){if(!n&&!r)return!1;var e=!1;try{var i={};i[o]=function(){return{next:function(){return{done:e=!0}}}},t(i)}catch(t){}return e}},9624:function(t,n,e){var o=e(7386),r=o({}.toString),i=o("".slice);t.exports=function(t){return i(r(t),8,-1)}},3058:function(t,n,e){var o=e(7583),r=e(8191),i=e(9212),a=e(9624),c=e(3649)("toStringTag"),u=o.Object,s="Arguments"==a(function(){return arguments}());t.exports=r?a:function(t){var n,e,o;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(e=function(t,n){try{return t[n]}catch(t){}}(n=u(t),c))?e:s?a(n):"Object"==(o=a(n))&&i(n.callee)?"Arguments":o}},1509:function(t,n,e){var o=e(7386)("".replace),r=String(Error("zxcasd").stack),i=/\n\s*at [^:]*:[^\n]*/,a=i.test(r);t.exports=function(t,n){if(a&&"string"==typeof t)for(;n--;)t=o(t,i,"");return t}},3478:function(t,n,e){var o=e(2870),r=e(929),i=e(6683),a=e(4615);t.exports=function(t,n,e){for(var c=r(n),u=a.f,s=i.f,l=0;l<c.length;l++){var f=c[l];o(t,f)||e&&o(e,f)||u(t,f,s(n,f))}}},926:function(t,n,e){var o=e(6544);t.exports=!o((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},4683:function(t,n,e){"use strict";var o=e(2365).IteratorPrototype,r=e(3590),i=e(4677),a=e(8821),c=e(339),u=function(){return this};t.exports=function(t,n,e,s){var l=n+" Iterator";return t.prototype=r(o,{next:i(+!s,e)}),a(t,l,!1,!0),c[l]=u,t}},57:function(t,n,e){var o=e(8494),r=e(4615),i=e(4677);t.exports=o?function(t,n,e){return r.f(t,n,i(1,e))}:function(t,n,e){return t[n]=e,t}},4677:function(t){t.exports=function(t,n){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:n}}},5999:function(t,n,e){"use strict";var o=e(8734),r=e(4615),i=e(4677);t.exports=function(t,n,e){var a=o(n);a in t?r.f(t,a,i(0,e)):t[a]=e}},9012:function(t,n,e){"use strict";var o=e(7263),r=e(8262),i=e(6268),a=e(4340),c=e(9212),u=e(4683),s=e(729),l=e(7496),f=e(8821),d=e(57),v=e(1270),h=e(3649),p=e(339),g=e(2365),m=a.PROPER,_=a.CONFIGURABLE,b=g.IteratorPrototype,y=g.BUGGY_SAFARI_ITERATORS,w=h("iterator"),E="keys",L="values",T="entries",x=function(){return this};t.exports=function(t,n,e,a,h,g,C){u(e,n,a);var O,I,D,R=function(t){if(t===h&&S)return S;if(!y&&t in P)return P[t];switch(t){case E:case L:case T:return function(){return new e(this,t)}}return function(){return new e(this)}},$=n+" Iterator",k=!1,P=t.prototype,M=P[w]||P["@@iterator"]||h&&P[h],S=!y&&M||R(h),j="Array"==n&&P.entries||M;if(j&&(O=s(j.call(new t)))!==Object.prototype&&O.next&&(i||s(O)===b||(l?l(O,b):c(O[w])||v(O,w,x)),f(O,$,!0,!0),i&&(p[$]=x)),m&&h==L&&M&&M.name!==L&&(!i&&_?d(P,"name",L):(k=!0,S=function(){return r(M,this)})),h)if(I={values:R(L),keys:g?S:R(E),entries:R(T)},C)for(D in I)(y||k||!(D in P))&&v(P,D,I[D]);else o({target:n,proto:!0,forced:y||k},I);return i&&!C||P[w]===S||v(P,w,S,{name:h}),p[n]=S,I}},2219:function(t,n,e){var o=e(1287),r=e(2870),i=e(491),a=e(4615).f;t.exports=function(t){var n=o.Symbol||(o.Symbol={});r(n,t)||a(n,t,{value:i.f(t)})}},8494:function(t,n,e){var o=e(6544);t.exports=!o((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},6668:function(t,n,e){var o=e(7583),r=e(794),i=o.document,a=r(i)&&r(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},6778:function(t){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},9307:function(t,n,e){var o=e(6668)("span").classList,r=o&&o.constructor&&o.constructor.prototype;t.exports=r===Object.prototype?void 0:r},2274:function(t){t.exports="object"==typeof window},3256:function(t,n,e){var o=e(6918),r=e(7583);t.exports=/ipad|iphone|ipod/i.test(o)&&void 0!==r.Pebble},7020:function(t,n,e){var o=e(6918);t.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(o)},5354:function(t,n,e){var o=e(9624),r=e(7583);t.exports="process"==o(r.process)},6846:function(t,n,e){var o=e(6918);t.exports=/web0s(?!.*chrome)/i.test(o)},6918:function(t,n,e){var o=e(5897);t.exports=o("navigator","userAgent")||""},4061:function(t,n,e){var o,r,i=e(7583),a=e(6918),c=i.process,u=i.Deno,s=c&&c.versions||u&&u.version,l=s&&s.v8;l&&(r=(o=l.split("."))[0]>0&&o[0]<4?1:+(o[0]+o[1])),!r&&a&&(!(o=a.match(/Edge\/(\d+)/))||o[1]>=74)&&(o=a.match(/Chrome\/(\d+)/))&&(r=+o[1]),t.exports=r},5690:function(t){t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},1178:function(t,n,e){var o=e(6544),r=e(4677);t.exports=!o((function(){var t=Error("a");return!("stack"in t)||(Object.defineProperty(t,"stack",r(1,7)),7!==t.stack)}))},7263:function(t,n,e){var o=e(7583),r=e(6683).f,i=e(57),a=e(1270),c=e(460),u=e(3478),s=e(4451);t.exports=function(t,n){var e,l,f,d,v,h=t.target,p=t.global,g=t.stat;if(e=p?o:g?o[h]||c(h,{}):(o[h]||{}).prototype)for(l in n){if(d=n[l],f=t.noTargetGet?(v=r(e,l))&&v.value:e[l],!s(p?l:h+(g?".":"#")+l,t.forced)&&void 0!==f){if(typeof d==typeof f)continue;u(d,f)}(t.sham||f&&f.sham)&&i(d,"sham",!0),a(e,l,d,t)}}},6544:function(t){t.exports=function(t){try{return!!t()}catch(t){return!0}}},1611:function(t,n,e){var o=e(8987),r=Function.prototype,i=r.apply,a=r.call;t.exports="object"==typeof Reflect&&Reflect.apply||(o?a.bind(i):function(){return a.apply(i,arguments)})},2938:function(t,n,e){var o=e(7386),r=e(8257),i=e(8987),a=o(o.bind);t.exports=function(t,n){return r(t),void 0===n?t:i?a(t,n):function(){return t.apply(n,arguments)}}},8987:function(t,n,e){var o=e(6544);t.exports=!o((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")}))},8262:function(t,n,e){var o=e(8987),r=Function.prototype.call;t.exports=o?r.bind(r):function(){return r.apply(r,arguments)}},4340:function(t,n,e){var o=e(8494),r=e(2870),i=Function.prototype,a=o&&Object.getOwnPropertyDescriptor,c=r(i,"name"),u=c&&"something"===function(){}.name,s=c&&(!o||o&&a(i,"name").configurable);t.exports={EXISTS:c,PROPER:u,CONFIGURABLE:s}},7386:function(t,n,e){var o=e(8987),r=Function.prototype,i=r.bind,a=r.call,c=o&&i.bind(a,a);t.exports=o?function(t){return t&&c(t)}:function(t){return t&&function(){return a.apply(t,arguments)}}},5897:function(t,n,e){var o=e(7583),r=e(9212),i=function(t){return r(t)?t:void 0};t.exports=function(t,n){return arguments.length<2?i(o[t]):o[t]&&o[t][n]}},8272:function(t,n,e){var o=e(3058),r=e(911),i=e(339),a=e(3649)("iterator");t.exports=function(t){if(null!=t)return r(t,a)||r(t,"@@iterator")||i[o(t)]}},6307:function(t,n,e){var o=e(7583),r=e(8262),i=e(8257),a=e(2569),c=e(5637),u=e(8272),s=o.TypeError;t.exports=function(t,n){var e=arguments.length<2?u(t):n;if(i(e))return a(r(e,t));throw s(c(t)+" is not iterable")}},911:function(t,n,e){var o=e(8257);t.exports=function(t,n){var e=t[n];return null==e?void 0:o(e)}},7583:function(t,n,e){var o=function(t){return t&&t.Math==Math&&t};t.exports=o("object"==typeof globalThis&&globalThis)||o("object"==typeof window&&window)||o("object"==typeof self&&self)||o("object"==typeof e.g&&e.g)||function(){return this}()||Function("return this")()},2870:function(t,n,e){var o=e(7386),r=e(1324),i=o({}.hasOwnProperty);t.exports=Object.hasOwn||function(t,n){return i(r(t),n)}},4639:function(t){t.exports={}},2716:function(t,n,e){var o=e(7583);t.exports=function(t,n){var e=o.console;e&&e.error&&(1==arguments.length?e.error(t):e.error(t,n))}},482:function(t,n,e){var o=e(5897);t.exports=o("document","documentElement")},275:function(t,n,e){var o=e(8494),r=e(6544),i=e(6668);t.exports=!o&&!r((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},5044:function(t,n,e){var o=e(7583),r=e(7386),i=e(6544),a=e(9624),c=o.Object,u=r("".split);t.exports=i((function(){return!c("z").propertyIsEnumerable(0)}))?function(t){return"String"==a(t)?u(t,""):c(t)}:c},9734:function(t,n,e){var o=e(7386),r=e(9212),i=e(1314),a=o(Function.toString);r(i.inspectSource)||(i.inspectSource=function(t){return a(t)}),t.exports=i.inspectSource},4402:function(t,n,e){var o=e(794),r=e(57);t.exports=function(t,n){o(n)&&"cause"in n&&r(t,"cause",n.cause)}},2743:function(t,n,e){var o,r,i,a=e(9491),c=e(7583),u=e(7386),s=e(794),l=e(57),f=e(2870),d=e(1314),v=e(9137),h=e(4639),p="Object already initialized",g=c.TypeError,m=c.WeakMap;if(a||d.state){var _=d.state||(d.state=new m),b=u(_.get),y=u(_.has),w=u(_.set);o=function(t,n){if(y(_,t))throw new g(p);return n.facade=t,w(_,t,n),n},r=function(t){return b(_,t)||{}},i=function(t){return y(_,t)}}else{var E=v("state");h[E]=!0,o=function(t,n){if(f(t,E))throw new g(p);return n.facade=t,l(t,E,n),n},r=function(t){return f(t,E)?t[E]:{}},i=function(t){return f(t,E)}}t.exports={set:o,get:r,has:i,enforce:function(t){return i(t)?r(t):o(t,{})},getterFor:function(t){return function(n){var e;if(!s(n)||(e=r(n)).type!==t)throw g("Incompatible receiver, "+t+" required");return e}}}},114:function(t,n,e){var o=e(3649),r=e(339),i=o("iterator"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||a[i]===t)}},4521:function(t,n,e){var o=e(9624);t.exports=Array.isArray||function(t){return"Array"==o(t)}},9212:function(t){t.exports=function(t){return"function"==typeof t}},2097:function(t,n,e){var o=e(7386),r=e(6544),i=e(9212),a=e(3058),c=e(5897),u=e(9734),s=function(){},l=[],f=c("Reflect","construct"),d=/^\s*(?:class|function)\b/,v=o(d.exec),h=!d.exec(s),p=function(t){if(!i(t))return!1;try{return f(s,l,t),!0}catch(t){return!1}},g=function(t){if(!i(t))return!1;switch(a(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return h||!!v(d,u(t))}catch(t){return!0}};g.sham=!0,t.exports=!f||r((function(){var t;return p(p.call)||!p(Object)||!p((function(){t=!0}))||t}))?g:p},4451:function(t,n,e){var o=e(6544),r=e(9212),i=/#|\.prototype\./,a=function(t,n){var e=u[c(t)];return e==l||e!=s&&(r(n)?o(n):!!n)},c=a.normalize=function(t){return String(t).replace(i,".").toLowerCase()},u=a.data={},s=a.NATIVE="N",l=a.POLYFILL="P";t.exports=a},794:function(t,n,e){var o=e(9212);t.exports=function(t){return"object"==typeof t?null!==t:o(t)}},6268:function(t){t.exports=!1},5871:function(t,n,e){var o=e(7583),r=e(5897),i=e(9212),a=e(2447),c=e(7786),u=o.Object;t.exports=c?function(t){return"symbol"==typeof t}:function(t){var n=r("Symbol");return i(n)&&a(n.prototype,u(t))}},4026:function(t,n,e){var o=e(7583),r=e(2938),i=e(8262),a=e(2569),c=e(5637),u=e(114),s=e(1825),l=e(2447),f=e(6307),d=e(8272),v=e(7093),h=o.TypeError,p=function(t,n){this.stopped=t,this.result=n},g=p.prototype;t.exports=function(t,n,e){var o,m,_,b,y,w,E,L=e&&e.that,T=!(!e||!e.AS_ENTRIES),x=!(!e||!e.IS_ITERATOR),C=!(!e||!e.INTERRUPTED),O=r(n,L),I=function(t){return o&&v(o,"normal",t),new p(!0,t)},D=function(t){return T?(a(t),C?O(t[0],t[1],I):O(t[0],t[1])):C?O(t,I):O(t)};if(x)o=t;else{if(!(m=d(t)))throw h(c(t)+" is not iterable");if(u(m)){for(_=0,b=s(t);b>_;_++)if((y=D(t[_]))&&l(g,y))return y;return new p(!1)}o=f(t,m)}for(w=o.next;!(E=i(w,o)).done;){try{y=D(E.value)}catch(t){v(o,"throw",t)}if("object"==typeof y&&y&&l(g,y))return y}return new p(!1)}},7093:function(t,n,e){var o=e(8262),r=e(2569),i=e(911);t.exports=function(t,n,e){var a,c;r(t);try{if(!(a=i(t,"return"))){if("throw"===n)throw e;return e}a=o(a,t)}catch(t){c=!0,a=t}if("throw"===n)throw e;if(c)throw a;return r(a),e}},2365:function(t,n,e){"use strict";var o,r,i,a=e(6544),c=e(9212),u=e(3590),s=e(729),l=e(1270),f=e(3649),d=e(6268),v=f("iterator"),h=!1;[].keys&&("next"in(i=[].keys())?(r=s(s(i)))!==Object.prototype&&(o=r):h=!0),null==o||a((function(){var t={};return o[v].call(t)!==t}))?o={}:d&&(o=u(o)),c(o[v])||l(o,v,(function(){return this})),t.exports={IteratorPrototype:o,BUGGY_SAFARI_ITERATORS:h}},339:function(t){t.exports={}},1825:function(t,n,e){var o=e(97);t.exports=function(t){return o(t.length)}},2095:function(t,n,e){var o,r,i,a,c,u,s,l,f=e(7583),d=e(2938),v=e(6683).f,h=e(8117).set,p=e(7020),g=e(3256),m=e(6846),_=e(5354),b=f.MutationObserver||f.WebKitMutationObserver,y=f.document,w=f.process,E=f.Promise,L=v(f,"queueMicrotask"),T=L&&L.value;T||(o=function(){var t,n;for(_&&(t=w.domain)&&t.exit();r;){n=r.fn,r=r.next;try{n()}catch(t){throw r?a():i=void 0,t}}i=void 0,t&&t.enter()},p||_||m||!b||!y?!g&&E&&E.resolve?((s=E.resolve(void 0)).constructor=E,l=d(s.then,s),a=function(){l(o)}):_?a=function(){w.nextTick(o)}:(h=d(h,f),a=function(){h(o)}):(c=!0,u=y.createTextNode(""),new b(o).observe(u,{characterData:!0}),a=function(){u.data=c=!c})),t.exports=T||function(t){var n={fn:t,next:void 0};i&&(i.next=n),r||(r=n,a()),i=n}},783:function(t,n,e){var o=e(7583);t.exports=o.Promise},8640:function(t,n,e){var o=e(4061),r=e(6544);t.exports=!!Object.getOwnPropertySymbols&&!r((function(){var t=Symbol();return!String(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&o&&o<41}))},9491:function(t,n,e){var o=e(7583),r=e(9212),i=e(9734),a=o.WeakMap;t.exports=r(a)&&/native code/.test(i(a))},5084:function(t,n,e){"use strict";var o=e(8257),r=function(t){var n,e;this.promise=new t((function(t,o){if(void 0!==n||void 0!==e)throw TypeError("Bad Promise constructor");n=t,e=o})),this.resolve=o(n),this.reject=o(e)};t.exports.f=function(t){return new r(t)}},2764:function(t,n,e){var o=e(8320);t.exports=function(t,n){return void 0===t?arguments.length<2?"":n:o(t)}},3590:function(t,n,e){var o,r=e(2569),i=e(8728),a=e(5690),c=e(4639),u=e(482),s=e(6668),l=e(9137),f=l("IE_PROTO"),d=function(){},v=function(t){return"<script>"+t+"</"+"script>"},h=function(t){t.write(v("")),t.close();var n=t.parentWindow.Object;return t=null,n},p=function(){try{o=new ActiveXObject("htmlfile")}catch(t){}var t,n;p="undefined"!=typeof document?document.domain&&o?h(o):((n=s("iframe")).style.display="none",u.appendChild(n),n.src=String("javascript:"),(t=n.contentWindow.document).open(),t.write(v("document.F=Object")),t.close(),t.F):h(o);for(var e=a.length;e--;)delete p.prototype[a[e]];return p()};c[f]=!0,t.exports=Object.create||function(t,n){var e;return null!==t?(d.prototype=r(t),e=new d,d.prototype=null,e[f]=t):e=p(),void 0===n?e:i.f(e,n)}},8728:function(t,n,e){var o=e(8494),r=e(7670),i=e(4615),a=e(2569),c=e(2977),u=e(5432);n.f=o&&!r?Object.defineProperties:function(t,n){a(t);for(var e,o=c(n),r=u(n),s=r.length,l=0;s>l;)i.f(t,e=r[l++],o[e]);return t}},4615:function(t,n,e){var o=e(7583),r=e(8494),i=e(275),a=e(7670),c=e(2569),u=e(8734),s=o.TypeError,l=Object.defineProperty,f=Object.getOwnPropertyDescriptor,d="enumerable",v="configurable",h="writable";n.f=r?a?function(t,n,e){if(c(t),n=u(n),c(e),"function"==typeof t&&"prototype"===n&&"value"in e&&h in e&&!e.writable){var o=f(t,n);o&&o.writable&&(t[n]=e.value,e={configurable:v in e?e.configurable:o.configurable,enumerable:d in e?e.enumerable:o.enumerable,writable:!1})}return l(t,n,e)}:l:function(t,n,e){if(c(t),n=u(n),c(e),i)try{return l(t,n,e)}catch(t){}if("get"in e||"set"in e)throw s("Accessors not supported");return"value"in e&&(t[n]=e.value),t}},6683:function(t,n,e){var o=e(8494),r=e(8262),i=e(112),a=e(4677),c=e(2977),u=e(8734),s=e(2870),l=e(275),f=Object.getOwnPropertyDescriptor;n.f=o?f:function(t,n){if(t=c(t),n=u(n),l)try{return f(t,n)}catch(t){}if(s(t,n))return a(!r(i.f,t,n),t[n])}},3130:function(t,n,e){var o=e(9624),r=e(2977),i=e(9275).f,a=e(4546),c="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return c&&"Window"==o(t)?function(t){try{return i(t)}catch(t){return a(c)}}(t):i(r(t))}},9275:function(t,n,e){var o=e(8356),r=e(5690).concat("length","prototype");n.f=Object.getOwnPropertyNames||function(t){return o(t,r)}},4012:function(t,n){n.f=Object.getOwnPropertySymbols},729:function(t,n,e){var o=e(7583),r=e(2870),i=e(9212),a=e(1324),c=e(9137),u=e(926),s=c("IE_PROTO"),l=o.Object,f=l.prototype;t.exports=u?l.getPrototypeOf:function(t){var n=a(t);if(r(n,s))return n[s];var e=n.constructor;return i(e)&&n instanceof e?e.prototype:n instanceof l?f:null}},2447:function(t,n,e){var o=e(7386);t.exports=o({}.isPrototypeOf)},8356:function(t,n,e){var o=e(7386),r=e(2870),i=e(2977),a=e(5766).indexOf,c=e(4639),u=o([].push);t.exports=function(t,n){var e,o=i(t),s=0,l=[];for(e in o)!r(c,e)&&r(o,e)&&u(l,e);for(;n.length>s;)r(o,e=n[s++])&&(~a(l,e)||u(l,e));return l}},5432:function(t,n,e){var o=e(8356),r=e(5690);t.exports=Object.keys||function(t){return o(t,r)}},112:function(t,n){"use strict";var e={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,r=o&&!e.call({1:2},1);n.f=r?function(t){var n=o(this,t);return!!n&&n.enumerable}:e},7496:function(t,n,e){var o=e(7386),r=e(2569),i=e(9882);t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,n=!1,e={};try{(t=o(Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set))(e,[]),n=e instanceof Array}catch(t){}return function(e,o){return r(e),i(o),n?t(e,o):e.__proto__=o,e}}():void 0)},3060:function(t,n,e){"use strict";var o=e(8191),r=e(3058);t.exports=o?{}.toString:function(){return"[object "+r(this)+"]"}},6252:function(t,n,e){var o=e(7583),r=e(8262),i=e(9212),a=e(794),c=o.TypeError;t.exports=function(t,n){var e,o;if("string"===n&&i(e=t.toString)&&!a(o=r(e,t)))return o;if(i(e=t.valueOf)&&!a(o=r(e,t)))return o;if("string"!==n&&i(e=t.toString)&&!a(o=r(e,t)))return o;throw c("Can't convert object to primitive value")}},929:function(t,n,e){var o=e(5897),r=e(7386),i=e(9275),a=e(4012),c=e(2569),u=r([].concat);t.exports=o("Reflect","ownKeys")||function(t){var n=i.f(c(t)),e=a.f;return e?u(n,e(t)):n}},1287:function(t,n,e){var o=e(7583);t.exports=o},544:function(t){t.exports=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}}},5732:function(t,n,e){var o=e(2569),r=e(794),i=e(5084);t.exports=function(t,n){if(o(t),r(n)&&n.constructor===t)return n;var e=i.f(t);return(0,e.resolve)(n),e.promise}},2723:function(t){var n=function(){this.head=null,this.tail=null};n.prototype={add:function(t){var n={item:t,next:null};this.head?this.tail.next=n:this.head=n,this.tail=n},get:function(){var t=this.head;if(t)return this.head=t.next,this.tail===t&&(this.tail=null),t.item}},t.exports=n},6893:function(t,n,e){var o=e(1270);t.exports=function(t,n,e){for(var r in n)o(t,r,n[r],e);return t}},1270:function(t,n,e){var o=e(7583),r=e(9212),i=e(2870),a=e(57),c=e(460),u=e(9734),s=e(2743),l=e(4340).CONFIGURABLE,f=s.get,d=s.enforce,v=String(String).split("String");(t.exports=function(t,n,e,u){var s,f=!!u&&!!u.unsafe,h=!!u&&!!u.enumerable,p=!!u&&!!u.noTargetGet,g=u&&void 0!==u.name?u.name:n;r(e)&&("Symbol("===String(g).slice(0,7)&&(g="["+String(g).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!i(e,"name")||l&&e.name!==g)&&a(e,"name",g),(s=d(e)).source||(s.source=v.join("string"==typeof g?g:""))),t!==o?(f?!p&&t[n]&&(h=!0):delete t[n],h?t[n]=e:a(t,n,e)):h?t[n]=e:c(n,e)})(Function.prototype,"toString",(function(){return r(this)&&f(this).source||u(this)}))},3955:function(t,n,e){var o=e(7583).TypeError;t.exports=function(t){if(null==t)throw o("Can't call method on "+t);return t}},460:function(t,n,e){var o=e(7583),r=Object.defineProperty;t.exports=function(t,n){try{r(o,t,{value:n,configurable:!0,writable:!0})}catch(e){o[t]=n}return n}},7730:function(t,n,e){"use strict";var o=e(5897),r=e(4615),i=e(3649),a=e(8494),c=i("species");t.exports=function(t){var n=o(t),e=r.f;a&&n&&!n[c]&&e(n,c,{configurable:!0,get:function(){return this}})}},8821:function(t,n,e){var o=e(4615).f,r=e(2870),i=e(3649)("toStringTag");t.exports=function(t,n,e){t&&!e&&(t=t.prototype),t&&!r(t,i)&&o(t,i,{configurable:!0,value:n})}},9137:function(t,n,e){var o=e(7836),r=e(8284),i=o("keys");t.exports=function(t){return i[t]||(i[t]=r(t))}},1314:function(t,n,e){var o=e(7583),r=e(460),i="__core-js_shared__",a=o[i]||r(i,{});t.exports=a},7836:function(t,n,e){var o=e(6268),r=e(1314);(t.exports=function(t,n){return r[t]||(r[t]=void 0!==n?n:{})})("versions",[]).push({version:"3.21.1",mode:o?"pure":"global",copyright:"© 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.21.1/LICENSE",source:"https://github.com/zloirock/core-js"})},564:function(t,n,e){var o=e(2569),r=e(1186),i=e(3649)("species");t.exports=function(t,n){var e,a=o(t).constructor;return void 0===a||null==(e=o(a)[i])?n:r(e)}},6389:function(t,n,e){var o=e(7386),r=e(7486),i=e(8320),a=e(3955),c=o("".charAt),u=o("".charCodeAt),s=o("".slice),l=function(t){return function(n,e){var o,l,f=i(a(n)),d=r(e),v=f.length;return d<0||d>=v?t?"":void 0:(o=u(f,d))<55296||o>56319||d+1===v||(l=u(f,d+1))<56320||l>57343?t?c(f,d):o:t?s(f,d,d+2):l-56320+(o-55296<<10)+65536}};t.exports={codeAt:l(!1),charAt:l(!0)}},8117:function(t,n,e){var o,r,i,a,c=e(7583),u=e(1611),s=e(2938),l=e(9212),f=e(2870),d=e(6544),v=e(482),h=e(6917),p=e(6668),g=e(7520),m=e(7020),_=e(5354),b=c.setImmediate,y=c.clearImmediate,w=c.process,E=c.Dispatch,L=c.Function,T=c.MessageChannel,x=c.String,C=0,O={},I="onreadystatechange";try{o=c.location}catch(t){}var D=function(t){if(f(O,t)){var n=O[t];delete O[t],n()}},R=function(t){return function(){D(t)}},$=function(t){D(t.data)},k=function(t){c.postMessage(x(t),o.protocol+"//"+o.host)};b&&y||(b=function(t){g(arguments.length,1);var n=l(t)?t:L(t),e=h(arguments,1);return O[++C]=function(){u(n,void 0,e)},r(C),C},y=function(t){delete O[t]},_?r=function(t){w.nextTick(R(t))}:E&&E.now?r=function(t){E.now(R(t))}:T&&!m?(a=(i=new T).port2,i.port1.onmessage=$,r=s(a.postMessage,a)):c.addEventListener&&l(c.postMessage)&&!c.importScripts&&o&&"file:"!==o.protocol&&!d(k)?(r=k,c.addEventListener("message",$,!1)):r=I in p("script")?function(t){v.appendChild(p("script")).onreadystatechange=function(){v.removeChild(this),D(t)}}:function(t){setTimeout(R(t),0)}),t.exports={set:b,clear:y}},6782:function(t,n,e){var o=e(7486),r=Math.max,i=Math.min;t.exports=function(t,n){var e=o(t);return e<0?r(e+n,0):i(e,n)}},2977:function(t,n,e){var o=e(5044),r=e(3955);t.exports=function(t){return o(r(t))}},7486:function(t){var n=Math.ceil,e=Math.floor;t.exports=function(t){var o=+t;return o!=o||0===o?0:(o>0?e:n)(o)}},97:function(t,n,e){var o=e(7486),r=Math.min;t.exports=function(t){return t>0?r(o(t),9007199254740991):0}},1324:function(t,n,e){var o=e(7583),r=e(3955),i=o.Object;t.exports=function(t){return i(r(t))}},2670:function(t,n,e){var o=e(7583),r=e(8262),i=e(794),a=e(5871),c=e(911),u=e(6252),s=e(3649),l=o.TypeError,f=s("toPrimitive");t.exports=function(t,n){if(!i(t)||a(t))return t;var e,o=c(t,f);if(o){if(void 0===n&&(n="default"),e=r(o,t,n),!i(e)||a(e))return e;throw l("Can't convert object to primitive value")}return void 0===n&&(n="number"),u(t,n)}},8734:function(t,n,e){var o=e(2670),r=e(5871);t.exports=function(t){var n=o(t,"string");return r(n)?n:n+""}},8191:function(t,n,e){var o={};o[e(3649)("toStringTag")]="z",t.exports="[object z]"===String(o)},8320:function(t,n,e){var o=e(7583),r=e(3058),i=o.String;t.exports=function(t){if("Symbol"===r(t))throw TypeError("Cannot convert a Symbol value to a string");return i(t)}},5637:function(t,n,e){var o=e(7583).String;t.exports=function(t){try{return o(t)}catch(t){return"Object"}}},8284:function(t,n,e){var o=e(7386),r=0,i=Math.random(),a=o(1..toString);t.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+a(++r+i,36)}},7786:function(t,n,e){var o=e(8640);t.exports=o&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},7670:function(t,n,e){var o=e(8494),r=e(6544);t.exports=o&&r((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},7520:function(t,n,e){var o=e(7583).TypeError;t.exports=function(t,n){if(t<n)throw o("Not enough arguments");return t}},491:function(t,n,e){var o=e(3649);n.f=o},3649:function(t,n,e){var o=e(7583),r=e(7836),i=e(2870),a=e(8284),c=e(8640),u=e(7786),s=r("wks"),l=o.Symbol,f=l&&l.for,d=u?l:l&&l.withoutSetter||a;t.exports=function(t){if(!i(s,t)||!c&&"string"!=typeof s[t]){var n="Symbol."+t;c&&i(l,t)?s[t]=l[t]:s[t]=u&&f?f(n):d(n)}return s[t]}},1719:function(t,n,e){"use strict";var o=e(7263),r=e(7583),i=e(2447),a=e(729),c=e(7496),u=e(3478),s=e(3590),l=e(57),f=e(4677),d=e(1509),v=e(4402),h=e(4026),p=e(2764),g=e(3649),m=e(1178),_=g("toStringTag"),b=r.Error,y=[].push,w=function(t,n){var e,o=arguments.length>2?arguments[2]:void 0,r=i(E,this);c?e=c(new b,r?a(this):E):(e=r?this:s(E),l(e,_,"Error")),void 0!==n&&l(e,"message",p(n)),m&&l(e,"stack",d(e.stack,1)),v(e,o);var u=[];return h(t,y,{that:u}),l(e,"errors",u),e};c?c(w,b):u(w,b,{name:!0});var E=w.prototype=s(b.prototype,{constructor:f(1,w),message:f(1,""),name:f(1,"AggregateError")});o({global:!0},{AggregateError:w})},1646:function(t,n,e){"use strict";var o=e(7263),r=e(7583),i=e(6544),a=e(4521),c=e(794),u=e(1324),s=e(1825),l=e(5999),f=e(4822),d=e(9269),v=e(3649),h=e(4061),p=v("isConcatSpreadable"),g=9007199254740991,m="Maximum allowed index exceeded",_=r.TypeError,b=h>=51||!i((function(){var t=[];return t[p]=!1,t.concat()[0]!==t})),y=d("concat"),w=function(t){if(!c(t))return!1;var n=t[p];return void 0!==n?!!n:a(t)};o({target:"Array",proto:!0,forced:!b||!y},{concat:function(t){var n,e,o,r,i,a=u(this),c=f(a,0),d=0;for(n=-1,o=arguments.length;n<o;n++)if(w(i=-1===n?a:arguments[n])){if(d+(r=s(i))>g)throw _(m);for(e=0;e<r;e++,d++)e in i&&l(c,d,i[e])}else{if(d>=g)throw _(m);l(c,d++,i)}return c.length=d,c}})},5677:function(t,n,e){"use strict";var o=e(2977),r=e(6288),i=e(339),a=e(2743),c=e(4615).f,u=e(9012),s=e(6268),l=e(8494),f="Array Iterator",d=a.set,v=a.getterFor(f);t.exports=u(Array,"Array",(function(t,n){d(this,{type:f,target:o(t),index:0,kind:n})}),(function(){var t=v(this),n=t.target,e=t.kind,o=t.index++;return!n||o>=n.length?(t.target=void 0,{value:void 0,done:!0}):"keys"==e?{value:o,done:!1}:"values"==e?{value:n[o],done:!1}:{value:[o,n[o]],done:!1}}),"values");var h=i.Arguments=i.Array;if(r("keys"),r("values"),r("entries"),!s&&l&&"values"!==h.name)try{c(h,"name",{value:"values"})}catch(t){}},6956:function(t,n,e){var o=e(7583);e(8821)(o.JSON,"JSON",!0)},5222:function(t,n,e){e(8821)(Math,"Math",!0)},6394:function(t,n,e){var o=e(8191),r=e(1270),i=e(3060);o||r(Object.prototype,"toString",i,{unsafe:!0})},6969:function(t,n,e){"use strict";var o=e(7263),r=e(8262),i=e(8257),a=e(5084),c=e(544),u=e(4026);o({target:"Promise",stat:!0},{allSettled:function(t){var n=this,e=a.f(n),o=e.resolve,s=e.reject,l=c((function(){var e=i(n.resolve),a=[],c=0,s=1;u(t,(function(t){var i=c++,u=!1;s++,r(e,n,t).then((function(t){u||(u=!0,a[i]={status:"fulfilled",value:t},--s||o(a))}),(function(t){u||(u=!0,a[i]={status:"rejected",reason:t},--s||o(a))}))})),--s||o(a)}));return l.error&&s(l.value),e.promise}})},2021:function(t,n,e){"use strict";var o=e(7263),r=e(8257),i=e(5897),a=e(8262),c=e(5084),u=e(544),s=e(4026),l="No one promise resolved";o({target:"Promise",stat:!0},{any:function(t){var n=this,e=i("AggregateError"),o=c.f(n),f=o.resolve,d=o.reject,v=u((function(){var o=r(n.resolve),i=[],c=0,u=1,v=!1;s(t,(function(t){var r=c++,s=!1;u++,a(o,n,t).then((function(t){s||v||(v=!0,f(t))}),(function(t){s||v||(s=!0,i[r]=t,--u||d(new e(i,l)))}))})),--u||d(new e(i,l))}));return v.error&&d(v.value),o.promise}})},8328:function(t,n,e){"use strict";var o=e(7263),r=e(6268),i=e(783),a=e(6544),c=e(5897),u=e(9212),s=e(564),l=e(5732),f=e(1270);if(o({target:"Promise",proto:!0,real:!0,forced:!!i&&a((function(){i.prototype.finally.call({then:function(){}},(function(){}))}))},{finally:function(t){var n=s(this,c("Promise")),e=u(t);return this.then(e?function(e){return l(n,t()).then((function(){return e}))}:t,e?function(e){return l(n,t()).then((function(){throw e}))}:t)}}),!r&&u(i)){var d=c("Promise").prototype.finally;i.prototype.finally!==d&&f(i.prototype,"finally",d,{unsafe:!0})}},5334:function(t,n,e){"use strict";var o,r,i,a,c=e(7263),u=e(6268),s=e(7583),l=e(5897),f=e(8262),d=e(783),v=e(1270),h=e(6893),p=e(7496),g=e(8821),m=e(7730),_=e(8257),b=e(9212),y=e(794),w=e(4761),E=e(9734),L=e(4026),T=e(3616),x=e(564),C=e(8117).set,O=e(2095),I=e(5732),D=e(2716),R=e(5084),$=e(544),k=e(2723),P=e(2743),M=e(4451),S=e(3649),j=e(2274),B=e(5354),A=e(4061),U=S("species"),G="Promise",N=P.getterFor(G),V=P.set,W=P.getterFor(G),K=d&&d.prototype,H=d,F=K,q=s.TypeError,Z=s.document,X=s.process,z=R.f,Y=z,J=!!(Z&&Z.createEvent&&s.dispatchEvent),Q=b(s.PromiseRejectionEvent),tt="unhandledrejection",nt=!1,et=M(G,(function(){var t=E(H),n=t!==String(H);if(!n&&66===A)return!0;if(u&&!F.finally)return!0;if(A>=51&&/native code/.test(t))return!1;var e=new H((function(t){t(1)})),o=function(t){t((function(){}),(function(){}))};return(e.constructor={})[U]=o,!(nt=e.then((function(){}))instanceof o)||!n&&j&&!Q})),ot=et||!T((function(t){H.all(t).catch((function(){}))})),rt=function(t){var n;return!(!y(t)||!b(n=t.then))&&n},it=function(t,n){var e,o,r,i=n.value,a=1==n.state,c=a?t.ok:t.fail,u=t.resolve,s=t.reject,l=t.domain;try{c?(a||(2===n.rejection&&lt(n),n.rejection=1),!0===c?e=i:(l&&l.enter(),e=c(i),l&&(l.exit(),r=!0)),e===t.promise?s(q("Promise-chain cycle")):(o=rt(e))?f(o,e,u,s):u(e)):s(i)}catch(t){l&&!r&&l.exit(),s(t)}},at=function(t,n){t.notified||(t.notified=!0,O((function(){for(var e,o=t.reactions;e=o.get();)it(e,t);t.notified=!1,n&&!t.rejection&&ut(t)})))},ct=function(t,n,e){var o,r;J?((o=Z.createEvent("Event")).promise=n,o.reason=e,o.initEvent(t,!1,!0),s.dispatchEvent(o)):o={promise:n,reason:e},!Q&&(r=s["on"+t])?r(o):t===tt&&D("Unhandled promise rejection",e)},ut=function(t){f(C,s,(function(){var n,e=t.facade,o=t.value;if(st(t)&&(n=$((function(){B?X.emit("unhandledRejection",o,e):ct(tt,e,o)})),t.rejection=B||st(t)?2:1,n.error))throw n.value}))},st=function(t){return 1!==t.rejection&&!t.parent},lt=function(t){f(C,s,(function(){var n=t.facade;B?X.emit("rejectionHandled",n):ct("rejectionhandled",n,t.value)}))},ft=function(t,n,e){return function(o){t(n,o,e)}},dt=function(t,n,e){t.done||(t.done=!0,e&&(t=e),t.value=n,t.state=2,at(t,!0))},vt=function t(n,e,o){if(!n.done){n.done=!0,o&&(n=o);try{if(n.facade===e)throw q("Promise can't be resolved itself");var r=rt(e);r?O((function(){var o={done:!1};try{f(r,e,ft(t,o,n),ft(dt,o,n))}catch(t){dt(o,t,n)}})):(n.value=e,n.state=1,at(n,!1))}catch(t){dt({done:!1},t,n)}}};if(et&&(F=(H=function(t){w(this,F),_(t),f(o,this);var n=N(this);try{t(ft(vt,n),ft(dt,n))}catch(t){dt(n,t)}}).prototype,(o=function(t){V(this,{type:G,done:!1,notified:!1,parent:!1,reactions:new k,rejection:!1,state:0,value:void 0})}).prototype=h(F,{then:function(t,n){var e=W(this),o=z(x(this,H));return e.parent=!0,o.ok=!b(t)||t,o.fail=b(n)&&n,o.domain=B?X.domain:void 0,0==e.state?e.reactions.add(o):O((function(){it(o,e)})),o.promise},catch:function(t){return this.then(void 0,t)}}),r=function(){var t=new o,n=N(t);this.promise=t,this.resolve=ft(vt,n),this.reject=ft(dt,n)},R.f=z=function(t){return t===H||t===i?new r(t):Y(t)},!u&&b(d)&&K!==Object.prototype)){a=K.then,nt||(v(K,"then",(function(t,n){var e=this;return new H((function(t,n){f(a,e,t,n)})).then(t,n)}),{unsafe:!0}),v(K,"catch",F.catch,{unsafe:!0}));try{delete K.constructor}catch(t){}p&&p(K,F)}c({global:!0,wrap:!0,forced:et},{Promise:H}),g(H,G,!1,!0),m(G),i=l(G),c({target:G,stat:!0,forced:et},{reject:function(t){var n=z(this);return f(n.reject,void 0,t),n.promise}}),c({target:G,stat:!0,forced:u||et},{resolve:function(t){return I(u&&this===i?H:this,t)}}),c({target:G,stat:!0,forced:ot},{all:function(t){var n=this,e=z(n),o=e.resolve,r=e.reject,i=$((function(){var e=_(n.resolve),i=[],a=0,c=1;L(t,(function(t){var u=a++,s=!1;c++,f(e,n,t).then((function(t){s||(s=!0,i[u]=t,--c||o(i))}),r)})),--c||o(i)}));return i.error&&r(i.value),e.promise},race:function(t){var n=this,e=z(n),o=e.reject,r=$((function(){var r=_(n.resolve);L(t,(function(t){f(r,n,t).then(e.resolve,o)}))}));return r.error&&o(r.value),e.promise}})},2257:function(t,n,e){var o=e(7263),r=e(7583),i=e(8821);o({global:!0},{Reflect:{}}),i(r.Reflect,"Reflect",!0)},2129:function(t,n,e){"use strict";var o=e(6389).charAt,r=e(8320),i=e(2743),a=e(9012),c="String Iterator",u=i.set,s=i.getterFor(c);a(String,"String",(function(t){u(this,{type:c,string:r(t),index:0})}),(function(){var t,n=s(this),e=n.string,r=n.index;return r>=e.length?{value:void 0,done:!0}:(t=o(e,r),n.index+=t.length,{value:t,done:!1})}))},462:function(t,n,e){e(2219)("asyncIterator")},8407:function(t,n,e){"use strict";var o=e(7263),r=e(8494),i=e(7583),a=e(7386),c=e(2870),u=e(9212),s=e(2447),l=e(8320),f=e(4615).f,d=e(3478),v=i.Symbol,h=v&&v.prototype;if(r&&u(v)&&(!("description"in h)||void 0!==v().description)){var p={},g=function(){var t=arguments.length<1||void 0===arguments[0]?void 0:l(arguments[0]),n=s(h,this)?new v(t):void 0===t?v():v(t);return""===t&&(p[n]=!0),n};d(g,v),g.prototype=h,h.constructor=g;var m="Symbol(test)"==String(v("test")),_=a(h.toString),b=a(h.valueOf),y=/^Symbol\((.*)\)[^)]+$/,w=a("".replace),E=a("".slice);f(h,"description",{configurable:!0,get:function(){var t=b(this),n=_(t);if(c(p,t))return"";var e=m?E(n,7,-1):w(n,y,"$1");return""===e?void 0:e}}),o({global:!0,forced:!0},{Symbol:g})}},2429:function(t,n,e){e(2219)("hasInstance")},1172:function(t,n,e){e(2219)("isConcatSpreadable")},8288:function(t,n,e){e(2219)("iterator")},2004:function(t,n,e){"use strict";var o=e(7263),r=e(7583),i=e(5897),a=e(1611),c=e(8262),u=e(7386),s=e(6268),l=e(8494),f=e(8640),d=e(6544),v=e(2870),h=e(4521),p=e(9212),g=e(794),m=e(2447),_=e(5871),b=e(2569),y=e(1324),w=e(2977),E=e(8734),L=e(8320),T=e(4677),x=e(3590),C=e(5432),O=e(9275),I=e(3130),D=e(4012),R=e(6683),$=e(4615),k=e(8728),P=e(112),M=e(6917),S=e(1270),j=e(7836),B=e(9137),A=e(4639),U=e(8284),G=e(3649),N=e(491),V=e(2219),W=e(8821),K=e(2743),H=e(4805).forEach,F=B("hidden"),q="Symbol",Z=G("toPrimitive"),X=K.set,z=K.getterFor(q),Y=Object.prototype,J=r.Symbol,Q=J&&J.prototype,tt=r.TypeError,nt=r.QObject,et=i("JSON","stringify"),ot=R.f,rt=$.f,it=I.f,at=P.f,ct=u([].push),ut=j("symbols"),st=j("op-symbols"),lt=j("string-to-symbol-registry"),ft=j("symbol-to-string-registry"),dt=j("wks"),vt=!nt||!nt.prototype||!nt.prototype.findChild,ht=l&&d((function(){return 7!=x(rt({},"a",{get:function(){return rt(this,"a",{value:7}).a}})).a}))?function(t,n,e){var o=ot(Y,n);o&&delete Y[n],rt(t,n,e),o&&t!==Y&&rt(Y,n,o)}:rt,pt=function(t,n){var e=ut[t]=x(Q);return X(e,{type:q,tag:t,description:n}),l||(e.description=n),e},gt=function(t,n,e){t===Y&&gt(st,n,e),b(t);var o=E(n);return b(e),v(ut,o)?(e.enumerable?(v(t,F)&&t[F][o]&&(t[F][o]=!1),e=x(e,{enumerable:T(0,!1)})):(v(t,F)||rt(t,F,T(1,{})),t[F][o]=!0),ht(t,o,e)):rt(t,o,e)},mt=function(t,n){b(t);var e=w(n),o=C(e).concat(wt(e));return H(o,(function(n){l&&!c(_t,e,n)||gt(t,n,e[n])})),t},_t=function(t){var n=E(t),e=c(at,this,n);return!(this===Y&&v(ut,n)&&!v(st,n))&&(!(e||!v(this,n)||!v(ut,n)||v(this,F)&&this[F][n])||e)},bt=function(t,n){var e=w(t),o=E(n);if(e!==Y||!v(ut,o)||v(st,o)){var r=ot(e,o);return!r||!v(ut,o)||v(e,F)&&e[F][o]||(r.enumerable=!0),r}},yt=function(t){var n=it(w(t)),e=[];return H(n,(function(t){v(ut,t)||v(A,t)||ct(e,t)})),e},wt=function(t){var n=t===Y,e=it(n?st:w(t)),o=[];return H(e,(function(t){!v(ut,t)||n&&!v(Y,t)||ct(o,ut[t])})),o};(f||(J=function(){if(m(Q,this))throw tt("Symbol is not a constructor");var t=arguments.length&&void 0!==arguments[0]?L(arguments[0]):void 0,n=U(t),e=function t(e){this===Y&&c(t,st,e),v(this,F)&&v(this[F],n)&&(this[F][n]=!1),ht(this,n,T(1,e))};return l&&vt&&ht(Y,n,{configurable:!0,set:e}),pt(n,t)},S(Q=J.prototype,"toString",(function(){return z(this).tag})),S(J,"withoutSetter",(function(t){return pt(U(t),t)})),P.f=_t,$.f=gt,k.f=mt,R.f=bt,O.f=I.f=yt,D.f=wt,N.f=function(t){return pt(G(t),t)},l&&(rt(Q,"description",{configurable:!0,get:function(){return z(this).description}}),s||S(Y,"propertyIsEnumerable",_t,{unsafe:!0}))),o({global:!0,wrap:!0,forced:!f,sham:!f},{Symbol:J}),H(C(dt),(function(t){V(t)})),o({target:q,stat:!0,forced:!f},{for:function(t){var n=L(t);if(v(lt,n))return lt[n];var e=J(n);return lt[n]=e,ft[e]=n,e},keyFor:function(t){if(!_(t))throw tt(t+" is not a symbol");if(v(ft,t))return ft[t]},useSetter:function(){vt=!0},useSimple:function(){vt=!1}}),o({target:"Object",stat:!0,forced:!f,sham:!l},{create:function(t,n){return void 0===n?x(t):mt(x(t),n)},defineProperty:gt,defineProperties:mt,getOwnPropertyDescriptor:bt}),o({target:"Object",stat:!0,forced:!f},{getOwnPropertyNames:yt,getOwnPropertySymbols:wt}),o({target:"Object",stat:!0,forced:d((function(){D.f(1)}))},{getOwnPropertySymbols:function(t){return D.f(y(t))}}),et)&&o({target:"JSON",stat:!0,forced:!f||d((function(){var t=J();return"[null]"!=et([t])||"{}"!=et({a:t})||"{}"!=et(Object(t))}))},{stringify:function(t,n,e){var o=M(arguments),r=n;if((g(n)||void 0!==t)&&!_(t))return h(n)||(n=function(t,n){if(p(r)&&(n=c(r,this,t,n)),!_(n))return n}),o[1]=n,a(et,null,o)}});if(!Q[Z]){var Et=Q.valueOf;S(Q,Z,(function(t){return c(Et,this)}))}W(J,q),A[F]=!0},8201:function(t,n,e){e(2219)("matchAll")},1274:function(t,n,e){e(2219)("match")},6626:function(t,n,e){e(2219)("replace")},3211:function(t,n,e){e(2219)("search")},9952:function(t,n,e){e(2219)("species")},15:function(t,n,e){e(2219)("split")},9831:function(t,n,e){e(2219)("toPrimitive")},7521:function(t,n,e){e(2219)("toStringTag")},2972:function(t,n,e){e(2219)("unscopables")},4655:function(t,n,e){var o=e(7583),r=e(6778),i=e(9307),a=e(5677),c=e(57),u=e(3649),s=u("iterator"),l=u("toStringTag"),f=a.values,d=function(t,n){if(t){if(t[s]!==f)try{c(t,s,f)}catch(n){t[s]=f}if(t[l]||c(t,l,n),r[n])for(var e in a)if(t[e]!==a[e])try{c(t,e,a[e])}catch(n){t[e]=a[e]}}};for(var v in r)d(o[v]&&o[v].prototype,v);d(i,"DOMTokenList")},8765:function(t,n,e){var o=e(5036);e(4655),t.exports=o},5441:function(t,n,e){var o=e(2582);e(4655),t.exports=o},7705:function(t){"use strict";t.exports=function(t){var n=[];return n.toString=function(){return this.map((function(n){var e="",o=void 0!==n[5];return n[4]&&(e+="@supports (".concat(n[4],") {")),n[2]&&(e+="@media ".concat(n[2]," {")),o&&(e+="@layer".concat(n[5].length>0?" ".concat(n[5]):""," {")),e+=t(n),o&&(e+="}"),n[2]&&(e+="}"),n[4]&&(e+="}"),e})).join("")},n.i=function(t,e,o,r,i){"string"==typeof t&&(t=[[null,t,void 0]]);var a={};if(o)for(var c=0;c<this.length;c++){var u=this[c][0];null!=u&&(a[u]=!0)}for(var s=0;s<t.length;s++){var l=[].concat(t[s]);o&&a[l[0]]||(void 0!==i&&(void 0===l[5]||(l[1]="@layer".concat(l[5].length>0?" ".concat(l[5]):""," {").concat(l[1],"}")),l[5]=i),e&&(l[2]?(l[1]="@media ".concat(l[2]," {").concat(l[1],"}"),l[2]=e):l[2]=e),r&&(l[4]?(l[1]="@supports (".concat(l[4],") {").concat(l[1],"}"),l[4]=r):l[4]="".concat(r)),n.push(l))}},n}},6738:function(t){"use strict";t.exports=function(t){return t[1]}},8679:function(t){var n=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver,e=window.WeakMap;if(void 0===e){var o=Object.defineProperty,r=Date.now()%1e9;(e=function(){this.name="__st"+(1e9*Math.random()>>>0)+r+++"__"}).prototype={set:function(t,n){var e=t[this.name];return e&&e[0]===t?e[1]=n:o(t,this.name,{value:[t,n],writable:!0}),this},get:function(t){var n;return(n=t[this.name])&&n[0]===t?n[1]:void 0},delete:function(t){var n=t[this.name];if(!n)return!1;var e=n[0]===t;return n[0]=n[1]=void 0,e},has:function(t){var n=t[this.name];return!!n&&n[0]===t}}}var i=new e,a=window.msSetImmediate;if(!a){var c=[],u=String(Math.random());window.addEventListener("message",(function(t){if(t.data===u){var n=c;c=[],n.forEach((function(t){t()}))}})),a=function(t){c.push(t),window.postMessage(u,"*")}}var s=!1,l=[];function f(){s=!1;var t=l;l=[],t.sort((function(t,n){return t.uid_-n.uid_}));var n=!1;t.forEach((function(t){var e=t.takeRecords();!function(t){t.nodes_.forEach((function(n){var e=i.get(n);e&&e.forEach((function(n){n.observer===t&&n.removeTransientObservers()}))}))}(t),e.length&&(t.callback_(e,t),n=!0)})),n&&f()}function d(t,n){for(var e=t;e;e=e.parentNode){var o=i.get(e);if(o)for(var r=0;r<o.length;r++){var a=o[r],c=a.options;if(e===t||c.subtree){var u=n(c);u&&a.enqueue(u)}}}}var v,h,p=0;function g(t){this.callback_=t,this.nodes_=[],this.records_=[],this.uid_=++p}function m(t,n){this.type=t,this.target=n,this.addedNodes=[],this.removedNodes=[],this.previousSibling=null,this.nextSibling=null,this.attributeName=null,this.attributeNamespace=null,this.oldValue=null}function _(t,n){return v=new m(t,n)}function b(t){return h||((e=new m((n=v).type,n.target)).addedNodes=n.addedNodes.slice(),e.removedNodes=n.removedNodes.slice(),e.previousSibling=n.previousSibling,e.nextSibling=n.nextSibling,e.attributeName=n.attributeName,e.attributeNamespace=n.attributeNamespace,e.oldValue=n.oldValue,(h=e).oldValue=t,h);var n,e}function y(t,n){return t===n?t:h&&((e=t)===h||e===v)?h:null;var e}function w(t,n,e){this.observer=t,this.target=n,this.options=e,this.transientObservedNodes=[]}g.prototype={observe:function(t,n){var e;if(e=t,t=window.ShadowDOMPolyfill&&window.ShadowDOMPolyfill.wrapIfNeeded(e)||e,!n.childList&&!n.attributes&&!n.characterData||n.attributeOldValue&&!n.attributes||n.attributeFilter&&n.attributeFilter.length&&!n.attributes||n.characterDataOldValue&&!n.characterData)throw new SyntaxError;var o,r=i.get(t);r||i.set(t,r=[]);for(var a=0;a<r.length;a++)if(r[a].observer===this){(o=r[a]).removeListeners(),o.options=n;break}o||(o=new w(this,t,n),r.push(o),this.nodes_.push(t)),o.addListeners()},disconnect:function(){this.nodes_.forEach((function(t){for(var n=i.get(t),e=0;e<n.length;e++){var o=n[e];if(o.observer===this){o.removeListeners(),n.splice(e,1);break}}}),this),this.records_=[]},takeRecords:function(){var t=this.records_;return this.records_=[],t}},w.prototype={enqueue:function(t){var n,e=this.observer.records_,o=e.length;if(e.length>0){var r=y(e[o-1],t);if(r)return void(e[o-1]=r)}else n=this.observer,l.push(n),s||(s=!0,a(f));e[o]=t},addListeners:function(){this.addListeners_(this.target)},addListeners_:function(t){var n=this.options;n.attributes&&t.addEventListener("DOMAttrModified",this,!0),n.characterData&&t.addEventListener("DOMCharacterDataModified",this,!0),n.childList&&t.addEventListener("DOMNodeInserted",this,!0),(n.childList||n.subtree)&&t.addEventListener("DOMNodeRemoved",this,!0)},removeListeners:function(){this.removeListeners_(this.target)},removeListeners_:function(t){var n=this.options;n.attributes&&t.removeEventListener("DOMAttrModified",this,!0),n.characterData&&t.removeEventListener("DOMCharacterDataModified",this,!0),n.childList&&t.removeEventListener("DOMNodeInserted",this,!0),(n.childList||n.subtree)&&t.removeEventListener("DOMNodeRemoved",this,!0)},addTransientObserver:function(t){if(t!==this.target){this.addListeners_(t),this.transientObservedNodes.push(t);var n=i.get(t);n||i.set(t,n=[]),n.push(this)}},removeTransientObservers:function(){var t=this.transientObservedNodes;this.transientObservedNodes=[],t.forEach((function(t){this.removeListeners_(t);for(var n=i.get(t),e=0;e<n.length;e++)if(n[e]===this){n.splice(e,1);break}}),this)},handleEvent:function(t){switch(t.stopImmediatePropagation(),t.type){case"DOMAttrModified":var n=t.attrName,e=t.relatedNode.namespaceURI,o=t.target;(i=new _("attributes",o)).attributeName=n,i.attributeNamespace=e;var r=null;"undefined"!=typeof MutationEvent&&t.attrChange===MutationEvent.ADDITION||(r=t.prevValue),d(o,(function(t){if(t.attributes&&(!t.attributeFilter||!t.attributeFilter.length||-1!==t.attributeFilter.indexOf(n)||-1!==t.attributeFilter.indexOf(e)))return t.attributeOldValue?b(r):i}));break;case"DOMCharacterDataModified":var i=_("characterData",o=t.target);r=t.prevValue;d(o,(function(t){if(t.characterData)return t.characterDataOldValue?b(r):i}));break;case"DOMNodeRemoved":this.addTransientObserver(t.target);case"DOMNodeInserted":o=t.relatedNode;var a,c,u=t.target;"DOMNodeInserted"===t.type?(a=[u],c=[]):(a=[],c=[u]);var s=u.previousSibling,l=u.nextSibling;(i=_("childList",o)).addedNodes=a,i.removedNodes=c,i.previousSibling=s,i.nextSibling=l,d(o,(function(t){if(t.childList)return i}))}v=h=void 0}},n||(n=g),t.exports=n},7588:function(t){var n=function(t){"use strict";var n,e=Object.prototype,o=e.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},i=r.iterator||"@@iterator",a=r.asyncIterator||"@@asyncIterator",c=r.toStringTag||"@@toStringTag";function u(t,n,e){return Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}),t[n]}try{u({},"")}catch(t){u=function(t,n,e){return t[n]=e}}function s(t,n,e,o){var r=n&&n.prototype instanceof g?n:g,i=Object.create(r.prototype),a=new I(o||[]);return i._invoke=function(t,n,e){var o=f;return function(r,i){if(o===v)throw new Error("Generator is already running");if(o===h){if("throw"===r)throw i;return R()}for(e.method=r,e.arg=i;;){var a=e.delegate;if(a){var c=x(a,e);if(c){if(c===p)continue;return c}}if("next"===e.method)e.sent=e._sent=e.arg;else if("throw"===e.method){if(o===f)throw o=h,e.arg;e.dispatchException(e.arg)}else"return"===e.method&&e.abrupt("return",e.arg);o=v;var u=l(t,n,e);if("normal"===u.type){if(o=e.done?h:d,u.arg===p)continue;return{value:u.arg,done:e.done}}"throw"===u.type&&(o=h,e.method="throw",e.arg=u.arg)}}}(t,e,a),i}function l(t,n,e){try{return{type:"normal",arg:t.call(n,e)}}catch(t){return{type:"throw",arg:t}}}t.wrap=s;var f="suspendedStart",d="suspendedYield",v="executing",h="completed",p={};function g(){}function m(){}function _(){}var b={};u(b,i,(function(){return this}));var y=Object.getPrototypeOf,w=y&&y(y(D([])));w&&w!==e&&o.call(w,i)&&(b=w);var E=_.prototype=g.prototype=Object.create(b);function L(t){["next","throw","return"].forEach((function(n){u(t,n,(function(t){return this._invoke(n,t)}))}))}function T(t,n){function e(r,i,a,c){var u=l(t[r],t,i);if("throw"!==u.type){var s=u.arg,f=s.value;return f&&"object"==typeof f&&o.call(f,"__await")?n.resolve(f.__await).then((function(t){e("next",t,a,c)}),(function(t){e("throw",t,a,c)})):n.resolve(f).then((function(t){s.value=t,a(s)}),(function(t){return e("throw",t,a,c)}))}c(u.arg)}var r;this._invoke=function(t,o){function i(){return new n((function(n,r){e(t,o,n,r)}))}return r=r?r.then(i,i):i()}}function x(t,e){var o=t.iterator[e.method];if(o===n){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=n,x(t,e),"throw"===e.method))return p;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return p}var r=l(o,t.iterator,e.arg);if("throw"===r.type)return e.method="throw",e.arg=r.arg,e.delegate=null,p;var i=r.arg;return i?i.done?(e[t.resultName]=i.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=n),e.delegate=null,p):i:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,p)}function C(t){var n={tryLoc:t[0]};1 in t&&(n.catchLoc=t[1]),2 in t&&(n.finallyLoc=t[2],n.afterLoc=t[3]),this.tryEntries.push(n)}function O(t){var n=t.completion||{};n.type="normal",delete n.arg,t.completion=n}function I(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(C,this),this.reset(!0)}function D(t){if(t){var e=t[i];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,a=function e(){for(;++r<t.length;)if(o.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=n,e.done=!0,e};return a.next=a}}return{next:R}}function R(){return{value:n,done:!0}}return m.prototype=_,u(E,"constructor",_),u(_,"constructor",m),m.displayName=u(_,c,"GeneratorFunction"),t.isGeneratorFunction=function(t){var n="function"==typeof t&&t.constructor;return!!n&&(n===m||"GeneratorFunction"===(n.displayName||n.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,_):(t.__proto__=_,u(t,c,"GeneratorFunction")),t.prototype=Object.create(E),t},t.awrap=function(t){return{__await:t}},L(T.prototype),u(T.prototype,a,(function(){return this})),t.AsyncIterator=T,t.async=function(n,e,o,r,i){void 0===i&&(i=Promise);var a=new T(s(n,e,o,r),i);return t.isGeneratorFunction(e)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},L(E),u(E,c,"Generator"),u(E,i,(function(){return this})),u(E,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var n=[];for(var e in t)n.push(e);return n.reverse(),function e(){for(;n.length;){var o=n.pop();if(o in t)return e.value=o,e.done=!1,e}return e.done=!0,e}},t.values=D,I.prototype={constructor:I,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=n,this.done=!1,this.delegate=null,this.method="next",this.arg=n,this.tryEntries.forEach(O),!t)for(var e in this)"t"===e.charAt(0)&&o.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=n)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(o,r){return c.type="throw",c.arg=t,e.next=o,r&&(e.method="next",e.arg=n),!!r}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var u=o.call(a,"catchLoc"),s=o.call(a,"finallyLoc");if(u&&s){if(this.prev<a.catchLoc)return r(a.catchLoc,!0);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}else if(u){if(this.prev<a.catchLoc)return r(a.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return r(a.finallyLoc)}}}},abrupt:function(t,n){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc<=this.prev&&o.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var i=r;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=n&&n<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=n,i?(this.method="next",this.next=i.finallyLoc,p):this.complete(a)},complete:function(t,n){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&n&&(this.next=n),p},finish:function(t){for(var n=this.tryEntries.length-1;n>=0;--n){var e=this.tryEntries[n];if(e.finallyLoc===t)return this.complete(e.completion,e.afterLoc),O(e),p}},catch:function(t){for(var n=this.tryEntries.length-1;n>=0;--n){var e=this.tryEntries[n];if(e.tryLoc===t){var o=e.completion;if("throw"===o.type){var r=o.arg;O(e)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,o){return this.delegate={iterator:D(t),resultName:e,nextLoc:o},"next"===this.method&&(this.arg=n),p}},t}(t.exports);try{regeneratorRuntime=n}catch(t){"object"==typeof globalThis?globalThis.regeneratorRuntime=n:Function("r","regeneratorRuntime = r")(n)}},8702:function(t,n,e){"use strict";e.d(n,{Z:function(){return j}});var o=e(4296),r=e(6464),i=e(6881),a=e(2942),c=e(7003),u=e(3379),s=e.n(u),l=e(7795),f=e.n(l),d=e(569),v=e.n(d),h=e(3565),p=e.n(h),g=e(9216),m=e.n(g),_=e(4589),b=e.n(_),y=e(5313),w={};y.Z&&y.Z.locals&&(w.locals=y.Z.locals);var E,L=0,T={};T.styleTagTransform=b(),T.setAttributes=p(),T.insert=v().bind(null,"head"),T.domAPI=f(),T.insertStyleElement=m(),w.use=function(t){return T.options=t||{},L++||(E=s()(y.Z,T)),w},w.unuse=function(){L>0&&!--L&&(E(),E=null)};var x=w;function C(t){var n,e;return{c:function(){n=(0,a.bi5)("svg"),e=(0,a.bi5)("path"),(0,a.Ljt)(e,"d","M599.99999 832.000004h47.999999a24 24 0 0 0 23.999999-24V376.000013a24 24 0 0 0-23.999999-24h-47.999999a24 24 0 0 0-24 24v431.999991a24 24 0 0 0 24 24zM927.999983 160.000017h-164.819997l-67.999998-113.399998A95.999998 95.999998 0 0 0 612.819989 0.00002H411.179993a95.999998 95.999998 0 0 0-82.319998 46.599999L260.819996 160.000017H95.999999A31.999999 31.999999 0 0 0 64 192.000016v32a31.999999 31.999999 0 0 0 31.999999 31.999999h32v671.999987a95.999998 95.999998 0 0 0 95.999998 95.999998h575.999989a95.999998 95.999998 0 0 0 95.999998-95.999998V256.000015h31.999999a31.999999 31.999999 0 0 0 32-31.999999V192.000016a31.999999 31.999999 0 0 0-32-31.999999zM407.679993 101.820018A12 12 0 0 1 417.999993 96.000018h187.999996a12 12 0 0 1 10.3 5.82L651.219989 160.000017H372.779994zM799.999986 928.000002H223.999997V256.000015h575.999989z m-423.999992-95.999998h47.999999a24 24 0 0 0 24-24V376.000013a24 24 0 0 0-24-24h-47.999999a24 24 0 0 0-24 24v431.999991a24 24 0 0 0 24 24z"),(0,a.Ljt)(n,"class","vc-icon-delete"),(0,a.Ljt)(n,"viewBox","0 0 1024 1024"),(0,a.Ljt)(n,"width","200"),(0,a.Ljt)(n,"height","200")},m:function(t,o){(0,a.$Tr)(t,n,o),(0,a.R3I)(n,e)},d:function(t){t&&(0,a.ogt)(n)}}}function O(t){var n,e,o;return{c:function(){n=(0,a.bi5)("svg"),e=(0,a.bi5)("path"),o=(0,a.bi5)("path"),(0,a.Ljt)(e,"d","M874.154197 150.116875A511.970373 511.970373 0 1 0 1023.993986 511.991687a511.927744 511.927744 0 0 0-149.839789-361.874812z m-75.324866 648.382129A405.398688 405.398688 0 1 1 917.422301 511.991687a405.313431 405.313431 0 0 1-118.59297 286.507317z"),(0,a.Ljt)(o,"d","M725.039096 299.274605a54.351559 54.351559 0 0 0-76.731613 0l-135.431297 135.431297L377.274375 299.274605a54.436817 54.436817 0 0 0-76.944756 76.987385l135.388668 135.431297-135.388668 135.473925a54.436817 54.436817 0 0 0 76.944756 76.987385l135.388668-135.431297 135.431297 135.473926a54.436817 54.436817 0 0 0 76.731613-76.987385l-135.388668-135.473926 135.388668-135.431296a54.479445 54.479445 0 0 0 0.213143-77.030014z"),(0,a.Ljt)(n,"viewBox","0 0 1024 1024"),(0,a.Ljt)(n,"width","200"),(0,a.Ljt)(n,"height","200")},m:function(t,r){(0,a.$Tr)(t,n,r),(0,a.R3I)(n,e),(0,a.R3I)(n,o)},d:function(t){t&&(0,a.ogt)(n)}}}function I(t){var n,e;return{c:function(){n=(0,a.bi5)("svg"),e=(0,a.bi5)("path"),(0,a.Ljt)(e,"fill-rule","evenodd"),(0,a.Ljt)(e,"d","M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z"),(0,a.Ljt)(n,"class","vc-icon-copy"),(0,a.Ljt)(n,"viewBox","0 0 16 16")},m:function(t,o){(0,a.$Tr)(t,n,o),(0,a.R3I)(n,e)},d:function(t){t&&(0,a.ogt)(n)}}}function D(t){var n,e;return{c:function(){n=(0,a.bi5)("svg"),e=(0,a.bi5)("path"),(0,a.Ljt)(e,"fill-rule","evenodd"),(0,a.Ljt)(e,"d","M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"),(0,a.Ljt)(n,"class","vc-icon-suc"),(0,a.Ljt)(n,"viewBox","0 0 16 16")},m:function(t,o){(0,a.$Tr)(t,n,o),(0,a.R3I)(n,e)},d:function(t){t&&(0,a.ogt)(n)}}}function R(t){var n,e,o;return{c:function(){n=(0,a.bi5)("svg"),e=(0,a.bi5)("path"),o=(0,a.bi5)("path"),(0,a.Ljt)(e,"d","M776.533333 1024 162.133333 1024C72.533333 1024 0 951.466667 0 861.866667L0 247.466667C0 157.866667 72.533333 85.333333 162.133333 85.333333L469.333333 85.333333c25.6 0 42.666667 17.066667 42.666667 42.666667s-17.066667 42.666667-42.666667 42.666667L162.133333 170.666667C119.466667 170.666667 85.333333 204.8 85.333333 247.466667l0 610.133333c0 42.666667 34.133333 76.8 76.8 76.8l610.133333 0c42.666667 0 76.8-34.133333 76.8-76.8L849.066667 554.666667c0-25.6 17.066667-42.666667 42.666667-42.666667s42.666667 17.066667 42.666667 42.666667l0 307.2C938.666667 951.466667 866.133333 1024 776.533333 1024z"),(0,a.Ljt)(o,"d","M256 810.666667c-12.8 0-21.333333-4.266667-29.866667-12.8C217.6 789.333333 213.333333 772.266667 213.333333 759.466667l42.666667-213.333333c0-8.533333 4.266667-17.066667 12.8-21.333333l512-512c17.066667-17.066667 42.666667-17.066667 59.733333 0l170.666667 170.666667c17.066667 17.066667 17.066667 42.666667 0 59.733333l-512 512c-4.266667 4.266667-12.8 8.533333-21.333333 12.8l-213.333333 42.666667C260.266667 810.666667 260.266667 810.666667 256 810.666667zM337.066667 576l-25.6 136.533333 136.533333-25.6L921.6 213.333333 810.666667 102.4 337.066667 576z"),(0,a.Ljt)(n,"class","vc-icon-edit"),(0,a.Ljt)(n,"viewBox","0 0 1024 1024"),(0,a.Ljt)(n,"width","200"),(0,a.Ljt)(n,"height","200")},m:function(t,r){(0,a.$Tr)(t,n,r),(0,a.R3I)(n,e),(0,a.R3I)(n,o)},d:function(t){t&&(0,a.ogt)(n)}}}function $(t){var n,e;return{c:function(){n=(0,a.bi5)("svg"),e=(0,a.bi5)("path"),(0,a.Ljt)(e,"d","M581.338005 987.646578c-2.867097 4.095853-4.573702 8.669555-8.191705 12.287558a83.214071 83.214071 0 0 1-60.959939 24.029001 83.214071 83.214071 0 0 1-61.028203-24.029001c-3.618003-3.618003-5.324608-8.191705-8.123441-12.15103L24.370323 569.050448a83.418864 83.418864 0 0 1 117.892289-117.89229l369.923749 369.92375L1308.829682 24.438587A83.418864 83.418864 0 0 1 1426.721971 142.194348L581.338005 987.646578z"),(0,a.Ljt)(n,"class","vc-icon-don"),(0,a.Ljt)(n,"viewBox","0 0 1501 1024"),(0,a.Ljt)(n,"width","200"),(0,a.Ljt)(n,"height","200")},m:function(t,o){(0,a.$Tr)(t,n,o),(0,a.R3I)(n,e)},d:function(t){t&&(0,a.ogt)(n)}}}function k(t){var n,e;return{c:function(){n=(0,a.bi5)("svg"),e=(0,a.bi5)("path"),(0,a.Ljt)(e,"d","M894.976 574.464q0 78.848-29.696 148.48t-81.408 123.392-121.856 88.064-151.04 41.472q-5.12 1.024-9.216 1.536t-9.216 0.512l-177.152 0q-17.408 0-34.304-6.144t-30.208-16.896-22.016-25.088-8.704-29.696 8.192-29.696 21.504-24.576 29.696-16.384 33.792-6.144l158.72 1.024q54.272 0 102.4-19.968t83.968-53.76 56.32-79.36 20.48-97.792q0-49.152-18.432-92.16t-50.688-76.8-75.264-54.784-93.184-26.112q-2.048 0-2.56 0.512t-2.56 0.512l-162.816 0 0 80.896q0 17.408-13.824 25.6t-44.544-10.24q-8.192-5.12-26.112-17.92t-41.984-30.208-50.688-36.864l-51.2-38.912q-15.36-12.288-26.624-22.016t-11.264-24.064q0-12.288 12.8-25.6t29.184-26.624q18.432-15.36 44.032-35.84t50.688-39.936 45.056-35.328 28.16-22.016q24.576-17.408 39.936-7.168t16.384 30.72l0 81.92 162.816 0q5.12 0 10.752 1.024t10.752 2.048q79.872 8.192 149.504 41.984t121.344 87.552 80.896 123.392 29.184 147.456z"),(0,a.Ljt)(n,"class","vc-icon-cancel"),(0,a.Ljt)(n,"viewBox","0 0 1024 1024"),(0,a.Ljt)(n,"width","200"),(0,a.Ljt)(n,"height","200")},m:function(t,o){(0,a.$Tr)(t,n,o),(0,a.R3I)(n,e)},d:function(t){t&&(0,a.ogt)(n)}}}function P(t){var n,e,o,r,i,c,u,s,l,f="delete"===t[0]&&C(),d="clear"===t[0]&&O(),v="copy"===t[0]&&I(),h="success"===t[0]&&D(),p="edit"===t[0]&&R(),g="done"===t[0]&&$(),m="cancel"===t[0]&&k();return{c:function(){n=(0,a.bGB)("i"),f&&f.c(),e=(0,a.DhX)(),d&&d.c(),o=(0,a.DhX)(),v&&v.c(),r=(0,a.DhX)(),h&&h.c(),i=(0,a.DhX)(),p&&p.c(),c=(0,a.DhX)(),g&&g.c(),u=(0,a.DhX)(),m&&m.c(),(0,a.Ljt)(n,"class","vc-icon")},m:function(_,b){(0,a.$Tr)(_,n,b),f&&f.m(n,null),(0,a.R3I)(n,e),d&&d.m(n,null),(0,a.R3I)(n,o),v&&v.m(n,null),(0,a.R3I)(n,r),h&&h.m(n,null),(0,a.R3I)(n,i),p&&p.m(n,null),(0,a.R3I)(n,c),g&&g.m(n,null),(0,a.R3I)(n,u),m&&m.m(n,null),s||(l=(0,a.oLt)(n,"click",t[1]),s=!0)},p:function(t,a){a[0];"delete"===t[0]?f||((f=C()).c(),f.m(n,e)):f&&(f.d(1),f=null),"clear"===t[0]?d||((d=O()).c(),d.m(n,o)):d&&(d.d(1),d=null),"copy"===t[0]?v||((v=I()).c(),v.m(n,r)):v&&(v.d(1),v=null),"success"===t[0]?h||((h=D()).c(),h.m(n,i)):h&&(h.d(1),h=null),"edit"===t[0]?p||((p=R()).c(),p.m(n,c)):p&&(p.d(1),p=null),"done"===t[0]?g||((g=$()).c(),g.m(n,u)):g&&(g.d(1),g=null),"cancel"===t[0]?m||((m=k()).c(),m.m(n,null)):m&&(m.d(1),m=null)},i:a.ZTd,o:a.ZTd,d:function(t){t&&(0,a.ogt)(n),f&&f.d(),d&&d.d(),v&&v.d(),h&&h.d(),p&&p.d(),g&&g.d(),m&&m.d(),s=!1,l()}}}function M(t,n,e){var o=n.name;return(0,c.H3)((function(){x.use()})),(0,c.ev)((function(){x.unuse()})),t.$$set=function(t){"name"in t&&e(0,o=t.name)},[o,function(n){a.cKT.call(this,t,n)}]}var S=function(t){function n(n){var e;return e=t.call(this)||this,(0,a.S1n)((0,r.Z)(e),n,M,P,a.N8,{name:0}),e}return(0,i.Z)(n,t),(0,o.Z)(n,[{key:"name",get:function(){return this.$$.ctx[0]},set:function(t){this.$$set({name:t}),(0,a.yl1)()}}]),n}(a.f_C),j=S},3903:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){"use strict";var _babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__(6464),_babel_runtime_helpers_inheritsLoose__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__(6881),svelte_internal__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(2942),svelte__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(7003),_component_icon_icon_svelte__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(8702),_logTool__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__(8665),_log_model__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(5629),_logCommand_less__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(3411);function get_each_context(t,n,e){var o=t.slice();return o[28]=n[e],o}function create_if_block_2(t){var n,e,o;return{c:function(){(n=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("li")).textContent="Close",(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(n,"class","vc-cmd-prompted-hide")},m:function(r,i){(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.$Tr)(r,n,i),e||(o=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.oLt)(n,"click",t[5]),e=!0)},p:svelte_internal__WEBPACK_IMPORTED_MODULE_0__.ZTd,d:function(t){t&&(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.ogt)(n),e=!1,o()}}}function create_else_block(t){var n;return{c:function(){(n=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("li")).textContent="No Prompted"},m:function(t,e){(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.$Tr)(t,n,e)},p:svelte_internal__WEBPACK_IMPORTED_MODULE_0__.ZTd,d:function(t){t&&(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.ogt)(n)}}}function create_each_block(t){var n,e,o,r,i=t[28].text+"";function a(){return t[14](t[28])}return{c:function(){n=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("li"),e=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.fLW)(i)},m:function(t,i){(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.$Tr)(t,n,i),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(n,e),o||(r=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.oLt)(n,"click",a),o=!0)},p:function(n,o){t=n,8&o&&i!==(i=t[28].text+"")&&(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.rTO)(e,i)},d:function(t){t&&(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.ogt)(n),o=!1,r()}}}function create_if_block_1(t){var n,e,o,r,i;return e=new _component_icon_icon_svelte__WEBPACK_IMPORTED_MODULE_2__.Z({props:{name:"clear"}}),{c:function(){n=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("div"),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.YCL)(e.$$.fragment),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(n,"class","vc-cmd-clear-btn")},m:function(a,c){(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.$Tr)(a,n,c),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.yef)(e,n,null),o=!0,r||(i=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.oLt)(n,"click",(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.AT7)(t[17])),r=!0)},p:svelte_internal__WEBPACK_IMPORTED_MODULE_0__.ZTd,i:function(t){o||((0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ui)(e.$$.fragment,t),o=!0)},o:function(t){(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.etI)(e.$$.fragment,t),o=!1},d:function(t){t&&(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.ogt)(n),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.vpE)(e),r=!1,i()}}}function create_if_block(t){var n,e,o,r,i;return e=new _component_icon_icon_svelte__WEBPACK_IMPORTED_MODULE_2__.Z({props:{name:"clear"}}),{c:function(){n=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("div"),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.YCL)(e.$$.fragment),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(n,"class","vc-cmd-clear-btn")},m:function(a,c){(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.$Tr)(a,n,c),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.yef)(e,n,null),o=!0,r||(i=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.oLt)(n,"click",(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.AT7)(t[19])),r=!0)},p:svelte_internal__WEBPACK_IMPORTED_MODULE_0__.ZTd,i:function(t){o||((0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ui)(e.$$.fragment,t),o=!0)},o:function(t){(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.etI)(e.$$.fragment,t),o=!1},d:function(t){t&&(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.ogt)(n),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.vpE)(e),r=!1,i()}}}function create_fragment(t){for(var n,e,o,r,i,a,c,u,s,l,f,d,v,h,p,g,m,_,b,y,w,E=t[3].length>0&&create_if_block_2(t),L=t[3],T=[],x=0;x<L.length;x+=1)T[x]=create_each_block(get_each_context(t,L,x));var C=null;L.length||(C=create_else_block(t));var O=t[1].length>0&&create_if_block_1(t),I=t[4].length>0&&create_if_block(t);return{c:function(){n=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("form"),e=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("ul"),E&&E.c(),o=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.DhX)();for(var b=0;b<T.length;b+=1)T[b].c();C&&C.c(),r=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.DhX)(),i=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("div"),a=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("textarea"),c=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.DhX)(),O&&O.c(),u=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.DhX)(),(s=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("button")).textContent="OK",l=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.DhX)(),f=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("form"),d=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("ul"),v=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.DhX)(),h=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("div"),p=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("textarea"),g=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.DhX)(),I&&I.c(),m=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.DhX)(),(_=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("button")).textContent="Filter",(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(e,"class","vc-cmd-prompted"),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(e,"style",t[2]),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(a,"class","vc-cmd-input"),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(a,"placeholder","command..."),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(i,"class","vc-cmd-input-wrap"),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(s,"class","vc-cmd-btn"),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(s,"type","submit"),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(n,"class","vc-cmd"),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(d,"class","vc-cmd-prompted"),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(p,"class","vc-cmd-input"),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(p,"placeholder","filter..."),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(h,"class","vc-cmd-input-wrap"),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(_,"class","vc-cmd-btn"),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(_,"type","submit"),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(f,"class","vc-cmd vc-filter")},m:function(L,x){(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.$Tr)(L,n,x),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(n,e),E&&E.m(e,null),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(e,o);for(var D=0;D<T.length;D+=1)T[D].m(e,null);C&&C.m(e,null),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(n,r),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(n,i),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(i,a),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.BmG)(a,t[1]),t[16](a),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(i,c),O&&O.m(i,null),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(n,u),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(n,s),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.$Tr)(L,l,x),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.$Tr)(L,f,x),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(f,d),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(f,v),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(f,h),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(h,p),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.BmG)(p,t[4]),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(h,g),I&&I.m(h,null),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(f,m),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(f,_),b=!0,y||(w=[(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.oLt)(a,"input",t[15]),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.oLt)(a,"keydown",t[10]),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.oLt)(a,"keyup",t[11]),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.oLt)(a,"focus",t[8]),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.oLt)(a,"blur",t[9]),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.oLt)(n,"submit",(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.AT7)(t[12])),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.oLt)(p,"input",t[18]),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.oLt)(f,"submit",(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.AT7)(t[13]))],y=!0)},p:function(t,n){var r=n[0];if(t[3].length>0?E?E.p(t,r):((E=create_if_block_2(t)).c(),E.m(e,o)):E&&(E.d(1),E=null),136&r){var c;for(L=t[3],c=0;c<L.length;c+=1){var u=get_each_context(t,L,c);T[c]?T[c].p(u,r):(T[c]=create_each_block(u),T[c].c(),T[c].m(e,null))}for(;c<T.length;c+=1)T[c].d(1);T.length=L.length,!L.length&&C?C.p(t,r):L.length?C&&(C.d(1),C=null):((C=create_else_block(t)).c(),C.m(e,null))}(!b||4&r)&&(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(e,"style",t[2]),2&r&&(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.BmG)(a,t[1]),t[1].length>0?O?(O.p(t,r),2&r&&(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ui)(O,1)):((O=create_if_block_1(t)).c(),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ui)(O,1),O.m(i,null)):O&&((0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.dvw)(),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.etI)(O,1,1,(function(){O=null})),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.gbL)()),16&r&&(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.BmG)(p,t[4]),t[4].length>0?I?(I.p(t,r),16&r&&(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ui)(I,1)):((I=create_if_block(t)).c(),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ui)(I,1),I.m(h,null)):I&&((0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.dvw)(),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.etI)(I,1,1,(function(){I=null})),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.gbL)())},i:function(t){b||((0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ui)(O),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ui)(I),b=!0)},o:function(t){(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.etI)(O),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.etI)(I),b=!1},d:function(e){e&&(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.ogt)(n),E&&E.d(),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.RMB)(T,e),C&&C.d(),t[16](null),O&&O.d(),e&&(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.ogt)(l),e&&(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.ogt)(f),I&&I.d(),y=!1,(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.j7q)(w)}}}function instance($$self,$$props,$$invalidate){var module=_log_model__WEBPACK_IMPORTED_MODULE_3__.W.getSingleton(_log_model__WEBPACK_IMPORTED_MODULE_3__.W,"VConsoleLogModel"),cachedObjKeys={},dispatch=(0,svelte__WEBPACK_IMPORTED_MODULE_1__.x)(),cmdElement,cmdValue="",promptedStyle="",promptedList=[],filterValue="";(0,svelte__WEBPACK_IMPORTED_MODULE_1__.H3)((function(){_logCommand_less__WEBPACK_IMPORTED_MODULE_4__.Z.use()})),(0,svelte__WEBPACK_IMPORTED_MODULE_1__.ev)((function(){_logCommand_less__WEBPACK_IMPORTED_MODULE_4__.Z.unuse()}));var evalCommand=function(t){module.evalCommand(t)},moveCursorToPos=function(t,n){t.setSelectionRange&&setTimeout((function(){t.setSelectionRange(n,n)}),1)},clearPromptedList=function(){$$invalidate(2,promptedStyle="display: none;"),$$invalidate(3,promptedList=[])},updatePromptedList=function updatePromptedList(identifier){if(""!==cmdValue){identifier||(identifier=(0,_logTool__WEBPACK_IMPORTED_MODULE_5__.oj)(cmdValue));var objName="window",keyName=cmdValue;if("."!==identifier.front.text&&"["!==identifier.front.text||(objName=identifier.front.before,keyName=""!==identifier.back.text?identifier.back.before:identifier.front.after),keyName=keyName.replace(/(^['"]+)|(['"']+$)/g,""),!cachedObjKeys[objName])try{cachedObjKeys[objName]=Object.getOwnPropertyNames(eval("("+objName+")")).sort()}catch(t){}try{if(cachedObjKeys[objName])for(var i=0;i<cachedObjKeys[objName].length&&!(promptedList.length>=100);i++){var key=String(cachedObjKeys[objName][i]),keyPattern=new RegExp("^"+keyName,"i");if(keyPattern.test(key)){var completeCmd=objName;"."===identifier.front.text||""===identifier.front.text?completeCmd+="."+key:"["===identifier.front.text&&(completeCmd+="['"+key+"']"),promptedList.push({text:key,value:completeCmd})}}}catch(t){}if(promptedList.length>0){var m=Math.min(200,31*(promptedList.length+1));$$invalidate(2,promptedStyle="display: block; height: "+m+"px; margin-top: "+(-m-2)+"px;"),$$invalidate(3,promptedList)}else clearPromptedList()}else clearPromptedList()},autoCompleteBrackets=function(t,n){if(!(8===n||46===n)&&""===t.front.after)switch(t.front.text){case"[":return $$invalidate(1,cmdValue+="]"),void moveCursorToPos(cmdElement,cmdValue.length-1);case"(":return $$invalidate(1,cmdValue+=")"),void moveCursorToPos(cmdElement,cmdValue.length-1);case"{":return $$invalidate(1,cmdValue+="}"),void moveCursorToPos(cmdElement,cmdValue.length-1)}},dispatchFilterEvent=function(){dispatch("filterText",{filterText:filterValue})},onTapClearText=function(t){"cmd"===t?($$invalidate(1,cmdValue=""),clearPromptedList()):"filter"===t&&($$invalidate(4,filterValue=""),dispatchFilterEvent())},onTapPromptedItem=function onTapPromptedItem(item){var type="";try{type=eval("typeof "+item.value)}catch(t){}$$invalidate(1,cmdValue=item.value+("function"===type?"()":"")),clearPromptedList()},onCmdFocus=function(){updatePromptedList()},onCmdBlur=function(){},onCmdKeyDown=function(t){13===t.keyCode&&(t.preventDefault(),onCmdSubmit())},onCmdKeyUp=function(t){$$invalidate(3,promptedList=[]);var n=(0,_logTool__WEBPACK_IMPORTED_MODULE_5__.oj)(t.target.value);autoCompleteBrackets(n,t.keyCode),updatePromptedList(n)},onCmdSubmit=function(){""!==cmdValue&&evalCommand(cmdValue),clearPromptedList()},onFilterSubmit=function(t){dispatchFilterEvent()},click_handler=function(t){return onTapPromptedItem(t)};function textarea0_input_handler(){cmdValue=this.value,$$invalidate(1,cmdValue)}function textarea0_binding(t){svelte_internal__WEBPACK_IMPORTED_MODULE_0__.VnY[t?"unshift":"push"]((function(){$$invalidate(0,cmdElement=t)}))}var click_handler_1=function(){return onTapClearText("cmd")};function textarea1_input_handler(){filterValue=this.value,$$invalidate(4,filterValue)}var click_handler_2=function(){return onTapClearText("filter")};return[cmdElement,cmdValue,promptedStyle,promptedList,filterValue,clearPromptedList,onTapClearText,onTapPromptedItem,onCmdFocus,onCmdBlur,onCmdKeyDown,onCmdKeyUp,onCmdSubmit,onFilterSubmit,click_handler,textarea0_input_handler,textarea0_binding,click_handler_1,textarea1_input_handler,click_handler_2]}var LogCommand=function(t){function n(n){var e;return e=t.call(this)||this,(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.S1n)((0,_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_7__.Z)(e),n,instance,create_fragment,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.N8,{}),e}return(0,_babel_runtime_helpers_inheritsLoose__WEBPACK_IMPORTED_MODULE_6__.Z)(n,t),n}(svelte_internal__WEBPACK_IMPORTED_MODULE_0__.f_C);__webpack_exports__.Z=LogCommand},4687:function(t,n,e){"use strict";e.d(n,{x:function(){return r}});var o=e(3313),r=function(){var t=(0,o.fZ)({updateTime:0}),n=t.subscribe,e=t.set,r=t.update;return{subscribe:n,set:e,update:r,updateTime:function(){r((function(t){return t.updateTime=Date.now(),t}))}}}()},643:function(t,n,e){"use strict";e.d(n,{N:function(){return o}});var o=function(){function t(){this._onDataUpdateCallbacks=[]}return t.getSingleton=function(n,e){return e||(e=n.toString()),t.singleton[e]||(t.singleton[e]=new n),t.singleton[e]},t}();o.singleton={}},5103:function(t,n,e){"use strict";function o(t){var n=t>0?new Date(t):new Date,e=n.getDate()<10?"0"+n.getDate():n.getDate(),o=n.getMonth()<9?"0"+(n.getMonth()+1):n.getMonth()+1,r=n.getFullYear(),i=n.getHours()<10?"0"+n.getHours():n.getHours(),a=n.getMinutes()<10?"0"+n.getMinutes():n.getMinutes(),c=n.getSeconds()<10?"0"+n.getSeconds():n.getSeconds(),u=n.getMilliseconds()<10?"0"+n.getMilliseconds():n.getMilliseconds();return u<100&&(u="0"+u),{time:+n,year:r,month:o,day:e,hour:i,minute:a,second:c,millisecond:u}}function r(t){return"[object Number]"===Object.prototype.toString.call(t)}function i(t){return"bigint"==typeof t}function a(t){return"string"==typeof t}function c(t){return"[object Array]"===Object.prototype.toString.call(t)}function u(t){return"boolean"==typeof t}function s(t){return void 0===t}function l(t){return null===t}function f(t){return"symbol"==typeof t}function d(t){return!("[object Object]"!==Object.prototype.toString.call(t)&&(r(t)||i(t)||a(t)||u(t)||c(t)||l(t)||v(t)||s(t)||f(t)))}function v(t){return"function"==typeof t}function h(t){return"object"==typeof HTMLElement?t instanceof HTMLElement:t&&"object"==typeof t&&null!==t&&1===t.nodeType&&"string"==typeof t.nodeName}function p(t){var n=Object.prototype.toString.call(t);return"[object Window]"===n||"[object DOMWindow]"===n||"[object global]"===n}function g(t){return null!=t&&"string"!=typeof t&&"boolean"!=typeof t&&"number"!=typeof t&&"function"!=typeof t&&"symbol"!=typeof t&&"bigint"!=typeof t&&("undefined"!=typeof Symbol&&"function"==typeof t[Symbol.iterator])}function m(t){return Object.prototype.toString.call(t).replace(/\[object (.*)\]/,"$1")}e.d(n,{C4:function(){return i},DV:function(){return b},FJ:function(){return p},Ft:function(){return l},HD:function(){return a},H_:function(){return B},KL:function(){return O},Kn:function(){return d},MH:function(){return $},PO:function(){return y},QI:function(){return j},QK:function(){return k},TW:function(){return g},_3:function(){return o},_D:function(){return P},cF:function(){return S},hZ:function(){return C},hj:function(){return r},id:function(){return I},jn:function(){return u},kJ:function(){return c},kK:function(){return h},mf:function(){return v},o8:function(){return s},po:function(){return M},qr:function(){return R},qt:function(){return A},rE:function(){return L},yk:function(){return f},zl:function(){return m}});var _=/(function|class) ([^ \{\()}]{1,})[\(| ]/;function b(t){var n;if(null==t)return"";var e=_.exec((null==t||null==(n=t.constructor)?void 0:n.toString())||"");return e&&e.length>1?e[2]:""}function y(t){var n,e=Object.prototype.hasOwnProperty;if(!t||"object"!=typeof t||t.nodeType||p(t))return!1;try{if(t.constructor&&!e.call(t,"constructor")&&!e.call(t.constructor.prototype,"isPrototypeOf"))return!1}catch(t){return!1}for(n in t);return void 0===n||e.call(t,n)}var w=/[\n\t]/g,E=function(t){return{"\n":"\\n","\t":"\\t"}[t]};function L(t){return"string"!=typeof t?t:String(t).replace(w,E)}var T=function(t,n){void 0===n&&(n=0);var e="";return a(t)?(n>0&&(t=I(t,n)),e+='"'+L(t)+'"'):f(t)?e+=String(t).replace(/^Symbol\((.*)\)$/i,'Symbol("$1")'):v(t)?e+=(t.name||"function")+"()":i(t)?e+=String(t)+"n":e+=String(t),e},x=function t(n,e,o){if(void 0===o&&(o=0),d(n)||c(n))if(e.circularFinder(n)){var r="";if(c(n))r="(Circular Array)";else if(d(n)){var i;r="(Circular "+((null==(i=n.constructor)?void 0:i.name)||"Object")+")"}e.ret+=e.standardJSON?'"'+r+'"':r}else{var u="",s="";if(e.pretty){for(var l=0;l<=o;l++)u+="  ";s="\n"}var v="{",h="}";c(n)&&(v="[",h="]"),e.ret+=v+s;for(var p=$(n),g=0;g<p.length;g++){var m=p[g];e.ret+=u;try{c(n)||(d(m)||c(m)||f(m)?e.ret+=Object.prototype.toString.call(m):a(m)&&e.standardJSON?e.ret+='"'+m+'"':e.ret+=m,e.ret+=": ")}catch(t){continue}try{var _=n[m];if(c(_))e.maxDepth>-1&&o>=e.maxDepth?e.ret+="Array("+_.length+")":t(_,e,o+1);else if(d(_)){var b;if(e.maxDepth>-1&&o>=e.maxDepth)e.ret+=((null==(b=_.constructor)?void 0:b.name)||"Object")+" {}";else t(_,e,o+1)}else e.ret+=T(_,e.keyMaxLen)}catch(t){e.ret+=e.standardJSON?'"(PARSE_ERROR)"':"(PARSE_ERROR)"}if(e.keyMaxLen>0&&e.ret.length>=10*e.keyMaxLen){e.ret+=", (...)";break}g<p.length-1&&(e.ret+=", "),e.ret+=s}e.ret+=u.substring(0,u.length-2)+h}else e.ret+=T(n,e.keyMaxLen)};function C(t,n){void 0===n&&(n={maxDepth:-1,keyMaxLen:-1,pretty:!1,standardJSON:!1});var e,o=Object.assign({ret:"",maxDepth:-1,keyMaxLen:-1,pretty:!1,standardJSON:!1,circularFinder:(e=new WeakSet,function(t){if("object"==typeof t&&null!==t){if(e.has(t))return!0;e.add(t)}return!1})},n);return x(t,o),o.ret}function O(t){return t<=0?"":t>=1e6?(t/1e3/1e3).toFixed(1)+" MB":t>=1e3?(t/1e3).toFixed(1)+" KB":t+" B"}function I(t,n){return t.length>n&&(t=t.substring(0,n)+"...("+O(function(t){try{return encodeURI(t).split(/%(?:u[0-9A-F]{2})?[0-9A-F]{2}|./).length-1}catch(t){return 0}}(t))+")"),t}var D=function(t,n){return String(t).localeCompare(String(n),void 0,{numeric:!0,sensitivity:"base"})};function R(t){return t.sort(D)}function $(t){return d(t)||c(t)?Object.keys(t):[]}function k(t){var n=$(t),e=function(t){return d(t)||c(t)?Object.getOwnPropertyNames(t):[]}(t);return e.filter((function(t){return-1===n.indexOf(t)}))}function P(t){return d(t)||c(t)?Object.getOwnPropertySymbols(t):[]}function M(t,n){window.localStorage&&(t="vConsole_"+t,localStorage.setItem(t,n))}function S(t){if(window.localStorage)return t="vConsole_"+t,localStorage.getItem(t)}function j(t){return void 0===t&&(t=""),"__vc_"+t+Math.random().toString(36).substring(2,8)}function B(){return"undefined"!=typeof window&&!!window.__wxConfig&&!!window.wx&&!!window.__virtualDOM__}function A(t){if(B()&&"function"==typeof window.wx[t])try{for(var n,e=arguments.length,o=new Array(e>1?e-1:0),r=1;r<e;r++)o[r-1]=arguments[r];var i=(n=window.wx[t]).call.apply(n,[window.wx].concat(o));return i}catch(n){return void console.debug("[vConsole] Fail to call wx."+t+"():",n)}}},5629:function(t,n,e){"use strict";e.d(n,{W:function(){return h}});var o=e(8270),r=e(6881),i=e(5103),a=e(643),c=e(4687),u=e(8665),s=e(9923);function l(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable}))),e.push.apply(e,o)}return e}function f(t){for(var n=1;n<arguments.length;n++){var e=null!=arguments[n]?arguments[n]:{};n%2?l(Object(e),!0).forEach((function(n){(0,o.Z)(t,n,e[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):l(Object(e)).forEach((function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))}))}return t}function d(t,n){var e="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(e)return(e=e.call(t)).next.bind(e);if(Array.isArray(t)||(e=function(t,n){if(!t)return;if("string"==typeof t)return v(t,n);var e=Object.prototype.toString.call(t).slice(8,-1);"Object"===e&&t.constructor&&(e=t.constructor.name);if("Map"===e||"Set"===e)return Array.from(t);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return v(t,n)}(t))||n&&t&&"number"==typeof t.length){e&&(t=e);var o=0;return function(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function v(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,o=new Array(n);e<n;e++)o[e]=t[e];return o}var h=function(t){function n(){for(var n,e=arguments.length,o=new Array(e),r=0;r<e;r++)o[r]=arguments[r];return(n=t.call.apply(t,[this].concat(o))||this).LOG_METHODS=["log","info","warn","debug","error"],n.ADDED_LOG_PLUGIN_ID=[],n.maxLogNumber=1e3,n.logCounter=0,n.groupLevel=0,n.groupLabelCollapsedStack=[],n.pluginPattern=void 0,n.logQueue=[],n.flushLogScheduled=!1,n.origConsole={},n}(0,r.Z)(n,t);var e=n.prototype;return e.bindPlugin=function(t){return!(this.ADDED_LOG_PLUGIN_ID.indexOf(t)>-1)&&(0===this.ADDED_LOG_PLUGIN_ID.length&&this.mockConsole(),s.O.create(t),this.ADDED_LOG_PLUGIN_ID.push(t),this.pluginPattern=new RegExp("^\\[("+this.ADDED_LOG_PLUGIN_ID.join("|")+")\\]$","i"),!0)},e.unbindPlugin=function(t){var n=this.ADDED_LOG_PLUGIN_ID.indexOf(t);return-1!==n&&(this.ADDED_LOG_PLUGIN_ID.splice(n,1),s.O.delete(t),0===this.ADDED_LOG_PLUGIN_ID.length&&this.unmockConsole(),!0)},e.mockConsole=function(){var t=this;"function"!=typeof this.origConsole.log&&(window.console?(this.LOG_METHODS.map((function(n){t.origConsole[n]=window.console[n]})),this.origConsole.time=window.console.time,this.origConsole.timeEnd=window.console.timeEnd,this.origConsole.clear=window.console.clear,this.origConsole.group=window.console.group,this.origConsole.groupCollapsed=window.console.groupCollapsed,this.origConsole.groupEnd=window.console.groupEnd):window.console={},this._mockConsoleLog(),this._mockConsoleTime(),this._mockConsoleGroup(),this._mockConsoleClear(),window._vcOrigConsole=this.origConsole)},e._mockConsoleLog=function(){var t=this;this.LOG_METHODS.map((function(n){window.console[n]=function(){for(var e=arguments.length,o=new Array(e),r=0;r<e;r++)o[r]=arguments[r];t.addLog({type:n,origData:o||[]})}.bind(window.console)}))},e._mockConsoleTime=function(){var t=this,n={};window.console.time=function(t){void 0===t&&(t=""),n[t]=Date.now()}.bind(window.console),window.console.timeEnd=function(e){void 0===e&&(e="");var o=n[e],r=0;o&&(r=Date.now()-o,delete n[e]),t.addLog({type:"log",origData:[e+": "+r+"ms"]})}.bind(window.console)},e._mockConsoleGroup=function(){var t=this,n=function(n){return function(e){void 0===e&&(e="console.group");var o=Symbol(e);t.groupLabelCollapsedStack.push({label:o,collapsed:n}),t.addLog({type:"log",origData:[e],isGroupHeader:n?2:1,isGroupCollapsed:!1},{noOrig:!0}),t.groupLevel++,n?t.origConsole.groupCollapsed(e):t.origConsole.group(e)}.bind(window.console)};window.console.group=n(!1),window.console.groupCollapsed=n(!0),window.console.groupEnd=function(){t.groupLabelCollapsedStack.pop(),t.groupLevel=Math.max(0,t.groupLevel-1),t.origConsole.groupEnd()}.bind(window.console)},e._mockConsoleClear=function(){var t=this;window.console.clear=function(){t.clearLog();for(var n=arguments.length,e=new Array(n),o=0;o<n;o++)e[o]=arguments[o];t.callOriginalConsole.apply(t,["clear"].concat(e))}.bind(window.console)},e.unmockConsole=function(){for(var t in this.origConsole)window.console[t]=this.origConsole[t],delete this.origConsole[t];window._vcOrigConsole&&delete window._vcOrigConsole},e.callOriginalConsole=function(t){if("function"==typeof this.origConsole[t]){for(var n=arguments.length,e=new Array(n>1?n-1:0),o=1;o<n;o++)e[o-1]=arguments[o];this.origConsole[t].apply(window.console,e)}},e.clearLog=function(){var t=s.O.getAll();for(var n in t)t[n].update((function(t){return t.logList=[],t}))},e.clearPluginLog=function(t){s.O.get(t).update((function(t){return t.logList=[],t}))},e.addLog=function(t,n){void 0===t&&(t={type:"log",origData:[],isGroupHeader:0,isGroupCollapsed:!1});var e=this.groupLabelCollapsedStack[this.groupLabelCollapsedStack.length-2],o=this.groupLabelCollapsedStack[this.groupLabelCollapsedStack.length-1],r={_id:i.QI(),type:t.type,cmdType:null==n?void 0:n.cmdType,toggle:{},date:Date.now(),data:(0,u.b1)(t.origData||[]),repeated:0,groupLabel:null==o?void 0:o.label,groupLevel:this.groupLevel,groupHeader:t.isGroupHeader,groupCollapsed:t.isGroupHeader?!(null==e||!e.collapsed):!(null==o||!o.collapsed)};this._signalLog(r),null!=n&&n.noOrig||this.callOriginalConsole.apply(this,[t.type].concat(t.origData))},e.evalCommand=function(t){this.addLog({type:"log",origData:[t]},{cmdType:"input"});var n=void 0;try{n=eval.call(window,"("+t+")")}catch(e){try{n=eval.call(window,t)}catch(t){}}this.addLog({type:"log",origData:[n]},{cmdType:"output"})},e._signalLog=function(t){var n=this;this.flushLogScheduled||(this.flushLogScheduled=!0,window.requestAnimationFrame((function(){n.flushLogScheduled=!1,n._flushLogs()}))),this.logQueue.push(t)},e._flushLogs=function(){var t=this,n=this.logQueue;this.logQueue=[];for(var e,o={},r=d(n);!(e=r()).done;){var i=e.value,a=this._extractPluginIdByLog(i);(o[a]=o[a]||[]).push(i)}for(var u=function(n){var e=o[n];s.O.get(n).update((function(n){for(var o,r=[].concat(n.logList),i=d(e);!(o=i()).done;){var a=o.value;t._isRepeatedLog(r,a)?t._updateLastLogRepeated(r):r.push(a)}return{logList:r=t._limitLogListLength(r)}}))},l=0,f=Object.keys(o);l<f.length;l++){u(f[l])}c.x.updateTime()},e._extractPluginIdByLog=function(t){var n,e="default",o=null==(n=t.data[0])?void 0:n.origData;if(i.HD(o)){var r=o.match(this.pluginPattern);if(null!==r&&r.length>1){var a=r[1].toLowerCase();this.ADDED_LOG_PLUGIN_ID.indexOf(a)>-1&&(e=a,t.data.shift())}}return e},e._isRepeatedLog=function(t,n){var e=t[t.length-1];if(!e)return!1;var o=!1;if(n.type===e.type&&n.cmdType===e.cmdType&&n.data.length===e.data.length){o=!0;for(var r=0;r<n.data.length;r++)if(n.data[r].origData!==e.data[r].origData){o=!1;break}}return o},e._updateLastLogRepeated=function(t){var n=t[t.length-1],e=n.repeated?n.repeated+1:2;return t[t.length-1]=f(f({},n),{},{repeated:e}),t},e._limitLogListLength=function(t){var n=t.length,e=this.maxLogNumber;return n>e?t.slice(n-e,n):t},n}(a.N)},9923:function(t,n,e){"use strict";e.d(n,{O:function(){return r}});var o=e(3313),r=function(){function t(){}return t.create=function(t){return this.storeMap[t]||(this.storeMap[t]=(0,o.fZ)({logList:[]})),this.storeMap[t]},t.delete=function(t){this.storeMap[t]&&delete this.storeMap[t]},t.get=function(t){return this.storeMap[t]},t.getRaw=function(t){return(0,o.U2)(this.storeMap[t])},t.getAll=function(){return this.storeMap},t}();r.storeMap={}},8665:function(t,n,e){"use strict";e.d(n,{HX:function(){return l},LH:function(){return i},Tg:function(){return v},b1:function(){return d},oj:function(){return s}});var o=e(5103),r=function(t){var n=o.hZ(t,{maxDepth:0}),e=n.substring(0,36),r=o.DV(t);return n.length>36&&(e+="..."),r=o.rE(r+" "+e)},i=function(t,n){void 0===n&&(n=!0);var e="undefined",i=t;return t instanceof v?(e="uninvocatable",i="(...)"):o.kJ(t)?(e="array",i=r(t)):o.Kn(t)?(e="object",i=r(t)):o.HD(t)?(e="string",i=o.rE(t),n&&(i='"'+i+'"')):o.hj(t)?(e="number",i=String(t)):o.C4(t)?(e="bigint",i=String(t)+"n"):o.jn(t)?(e="boolean",i=String(t)):o.Ft(t)?(e="null",i="null"):o.o8(t)?(e="undefined",i="undefined"):o.mf(t)?(e="function",i=(t.name||"function")+"()"):o.yk(t)&&(e="symbol",i=String(t)),{text:i,valueType:e}},a=[".","[","(","{","}"],c=["]",")","}"],u=function(t,n,e){void 0===e&&(e=0);for(var o={text:"",pos:-1,before:"",after:""},r=t.length-1;r>=e;r--){var i=n.indexOf(t[r]);if(i>-1){o.text=n[i],o.pos=r,o.before=t.substring(e,r),o.after=t.substring(r+1,t.length);break}}return o},s=function(t){var n=u(t,a,0);return{front:n,back:u(t,c,n.pos+1)}},l=function(t,n){if(""===n)return!0;for(var e=0;e<t.data.length;e++){if("string"===typeof t.data[e].origData&&t.data[e].origData.indexOf(n)>-1)return!0}return!1},f=/(\%[csdo] )|( \%[csdo])/g,d=function(t){if(f.lastIndex=0,o.HD(t[0])&&f.test(t[0])){for(var n,e=[].concat(t),r=e.shift().split(f).filter((function(t){return void 0!==t&&""!==t})),i=e,a=[],c=!1,u="";r.length>0;){var s=r.shift();if(/ ?\%c ?/.test(s)?i.length>0?"string"!=typeof(u=i.shift())&&(u=""):(n=s,u="",c=!0):/ ?\%[sd] ?/.test(s)?(n=i.length>0?o.Kn(i[0])?o.DV(i.shift()):String(i.shift()):s,c=!0):/ ?\%o ?/.test(s)?(n=i.length>0?i.shift():s,c=!0):(n=s,c=!0),c){var l={origData:n};u&&(l.style=u),a.push(l),c=!1,n=void 0,u=""}}for(var d=0;d<i.length;d++)a.push({origData:i[d]});return a}for(var v=[],h=0;h<t.length;h++)v.push({origData:t[h]});return v},v=function(){}},5313:function(t,n,e){"use strict";var o=e(6738),r=e.n(o),i=e(7705),a=e.n(i)()(r());a.push([t.id,".vc-icon {\n  word-break: normal;\n  white-space: normal;\n  overflow: visible;\n}\n.vc-icon svg {\n  fill: var(--VC-FG-2);\n  height: 1em;\n  width: 1em;\n  vertical-align: -0.11em;\n}\n.vc-icon .vc-icon-delete {\n  vertical-align: -0.11em;\n}\n.vc-icon .vc-icon-copy {\n  height: 1.1em;\n  width: 1.1em;\n  vertical-align: -0.16em;\n}\n.vc-icon .vc-icon-suc {\n  fill: var(--VC-TEXTGREEN);\n  height: 1.1em;\n  width: 1.1em;\n  vertical-align: -0.16em;\n}\n",""]),n.Z=a},1142:function(t,n,e){"use strict";var o=e(6738),r=e.n(o),i=e(7705),a=e.n(i)()(r());a.push([t.id,".vc-scroller-viewport {\n  position: relative;\n  overflow: hidden;\n  height: 100%;\n}\n.vc-scroller-contents {\n  min-height: 100%;\n  will-change: transform;\n}\n.vc-scroller-items {\n  will-change: height;\n  position: relative;\n}\n.vc-scroller-item {\n  display: none;\n  position: absolute;\n  left: 0;\n  right: 0;\n}\n.vc-scroller-scrollbar-track {\n  width: 4px;\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  padding: 1px;\n}\n.vc-scroller-scrollbar-thumb {\n  position: relative;\n  width: 100%;\n  height: 100%;\n  background: rgba(0, 0, 0, 0.5);\n  border-radius: 999px;\n}\n",""]),n.Z=a},3283:function(t,n,e){"use strict";var o=e(6738),r=e.n(o),i=e(7705),a=e.n(i)()(r());a.push([t.id,'#__vconsole {\n  --VC-BG-0: #ededed;\n  --VC-BG-1: #f7f7f7;\n  --VC-BG-2: #fff;\n  --VC-BG-3: #f7f7f7;\n  --VC-BG-4: #4c4c4c;\n  --VC-BG-5: #fff;\n  --VC-BG-6: rgba(0, 0, 0, 0.1);\n  --VC-FG-0: rgba(0, 0, 0, 0.9);\n  --VC-FG-HALF: rgba(0, 0, 0, 0.9);\n  --VC-FG-1: rgba(0, 0, 0, 0.5);\n  --VC-FG-2: rgba(0, 0, 0, 0.3);\n  --VC-FG-3: rgba(0, 0, 0, 0.1);\n  --VC-RED: #fa5151;\n  --VC-ORANGE: #fa9d3b;\n  --VC-YELLOW: #ffc300;\n  --VC-GREEN: #91d300;\n  --VC-LIGHTGREEN: #95ec69;\n  --VC-BRAND: #07c160;\n  --VC-BLUE: #10aeff;\n  --VC-INDIGO: #1485ee;\n  --VC-PURPLE: #6467f0;\n  --VC-LINK: #576b95;\n  --VC-TEXTGREEN: #06ae56;\n  --VC-FG: black;\n  --VC-BG: white;\n  --VC-BG-COLOR-ACTIVE: #ececec;\n  --VC-WARN-BG: #fff3cc;\n  --VC-WARN-BORDER: #ffe799;\n  --VC-ERROR-BG: #fedcdc;\n  --VC-ERROR-BORDER: #fdb9b9;\n  --VC-DOM-TAG-NAME-COLOR: #881280;\n  --VC-DOM-ATTRIBUTE-NAME-COLOR: #994500;\n  --VC-DOM-ATTRIBUTE-VALUE-COLOR: #1a1aa6;\n  --VC-CODE-KEY-FG: #881391;\n  --VC-CODE-PRIVATE-KEY-FG: #cfa1d3;\n  --VC-CODE-FUNC-FG: #0d22aa;\n  --VC-CODE-NUMBER-FG: #1c00cf;\n  --VC-CODE-STR-FG: #c41a16;\n  --VC-CODE-NULL-FG: #808080;\n  color: var(--VC-FG-0);\n  font-size: 13px;\n  font-family: Helvetica Neue, Helvetica, Arial, sans-serif;\n  -webkit-user-select: auto;\n  /* global */\n}\n#__vconsole .vc-max-height {\n  max-height: 19.23076923em;\n}\n#__vconsole .vc-max-height-line {\n  max-height: 6.30769231em;\n}\n#__vconsole .vc-min-height {\n  min-height: 3.07692308em;\n}\n#__vconsole dd,\n#__vconsole dl,\n#__vconsole pre {\n  margin: 0;\n}\n#__vconsole pre {\n  white-space: pre-wrap;\n}\n#__vconsole i {\n  font-style: normal;\n}\n.vc-table {\n  height: 100%;\n}\n.vc-table .vc-table-row {\n  line-height: 1.5;\n  display: -webkit-box;\n  display: -webkit-flex;\n  display: -moz-box;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-box-orient: horizontal;\n  -webkit-box-direction: normal;\n  -webkit-flex-direction: row;\n  -moz-box-orient: horizontal;\n  -moz-box-direction: normal;\n  -ms-flex-direction: row;\n  flex-direction: row;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  overflow: hidden;\n  border-bottom: 1px solid var(--VC-FG-3);\n}\n.vc-table .vc-table-row.vc-left-border {\n  border-left: 1px solid var(--VC-FG-3);\n}\n.vc-table .vc-table-row-icon {\n  margin-left: 4px;\n}\n.vc-table .vc-table-col {\n  -webkit-box-flex: 1;\n  -webkit-flex: 1;\n  -moz-box-flex: 1;\n  -ms-flex: 1;\n  flex: 1;\n  padding: 0.23076923em 0.30769231em;\n  border-left: 1px solid var(--VC-FG-3);\n  overflow: auto;\n}\n.vc-table .vc-table-col:first-child {\n  border: none;\n}\n.vc-table .vc-table-col-value {\n  white-space: pre-wrap;\n  word-break: break-word;\n  /*white-space: nowrap;\n    text-overflow: ellipsis;*/\n  -webkit-overflow-scrolling: touch;\n}\n.vc-table .vc-small .vc-table-col {\n  padding: 0 0.30769231em;\n  font-size: 0.92307692em;\n}\n.vc-table .vc-table-col-2 {\n  -webkit-box-flex: 2;\n  -webkit-flex: 2;\n  -moz-box-flex: 2;\n  -ms-flex: 2;\n  flex: 2;\n}\n.vc-table .vc-table-col-3 {\n  -webkit-box-flex: 3;\n  -webkit-flex: 3;\n  -moz-box-flex: 3;\n  -ms-flex: 3;\n  flex: 3;\n}\n.vc-table .vc-table-col-4 {\n  -webkit-box-flex: 4;\n  -webkit-flex: 4;\n  -moz-box-flex: 4;\n  -ms-flex: 4;\n  flex: 4;\n}\n.vc-table .vc-table-col-5 {\n  -webkit-box-flex: 5;\n  -webkit-flex: 5;\n  -moz-box-flex: 5;\n  -ms-flex: 5;\n  flex: 5;\n}\n.vc-table .vc-table-col-6 {\n  -webkit-box-flex: 6;\n  -webkit-flex: 6;\n  -moz-box-flex: 6;\n  -ms-flex: 6;\n  flex: 6;\n}\n.vc-table .vc-table-row-error {\n  border-color: var(--VC-ERROR-BORDER);\n  background-color: var(--VC-ERROR-BG);\n}\n.vc-table .vc-table-row-error .vc-table-col {\n  color: var(--VC-RED);\n  border-color: var(--VC-ERROR-BORDER);\n}\n.vc-table .vc-table-col-title {\n  font-weight: bold;\n}\n.vc-table .vc-table-action {\n  display: flex;\n  justify-content: space-evenly;\n}\n.vc-table .vc-table-action .vc-icon {\n  flex: 1;\n  text-align: center;\n  display: block;\n}\n.vc-table .vc-table-action .vc-icon:hover {\n  background: var(--VC-BG-3);\n}\n.vc-table .vc-table-action .vc-icon:active {\n  background: var(--VC-BG-1);\n}\n.vc-table .vc-table-input {\n  width: 100%;\n  border: none;\n  color: var(--VC-FG-0);\n  background-color: var(--VC-BG-6);\n  height: 3.53846154em;\n}\n.vc-table .vc-table-input:focus {\n  background-color: var(--VC-FG-2);\n}\n@media (prefers-color-scheme: dark) {\n  #__vconsole:not([data-theme="light"]) {\n    --VC-BG-0: #191919;\n    --VC-BG-1: #1f1f1f;\n    --VC-BG-2: #232323;\n    --VC-BG-3: #2f2f2f;\n    --VC-BG-4: #606060;\n    --VC-BG-5: #2c2c2c;\n    --VC-BG-6: rgba(255, 255, 255, 0.2);\n    --VC-FG-0: rgba(255, 255, 255, 0.8);\n    --VC-FG-HALF: rgba(255, 255, 255, 0.6);\n    --VC-FG-1: rgba(255, 255, 255, 0.5);\n    --VC-FG-2: rgba(255, 255, 255, 0.3);\n    --VC-FG-3: rgba(255, 255, 255, 0.05);\n    --VC-RED: #fa5151;\n    --VC-ORANGE: #c87d2f;\n    --VC-YELLOW: #cc9c00;\n    --VC-GREEN: #74a800;\n    --VC-LIGHTGREEN: #28b561;\n    --VC-BRAND: #07c160;\n    --VC-BLUE: #10aeff;\n    --VC-INDIGO: #1196ff;\n    --VC-PURPLE: #8183ff;\n    --VC-LINK: #7d90a9;\n    --VC-TEXTGREEN: #259c5c;\n    --VC-FG: white;\n    --VC-BG: black;\n    --VC-BG-COLOR-ACTIVE: #282828;\n    --VC-WARN-BG: #332700;\n    --VC-WARN-BORDER: #664e00;\n    --VC-ERROR-BG: #321010;\n    --VC-ERROR-BORDER: #642020;\n    --VC-DOM-TAG-NAME-COLOR: #5DB0D7;\n    --VC-DOM-ATTRIBUTE-NAME-COLOR: #9BBBDC;\n    --VC-DOM-ATTRIBUTE-VALUE-COLOR: #f29766;\n    --VC-CODE-KEY-FG: #e36eec;\n    --VC-CODE-PRIVATE-KEY-FG: #f4c5f7;\n    --VC-CODE-FUNC-FG: #556af2;\n    --VC-CODE-NUMBER-FG: #9980ff;\n    --VC-CODE-STR-FG: #e93f3b;\n    --VC-CODE-NULL-FG: #808080;\n  }\n}\n#__vconsole[data-theme="dark"] {\n  --VC-BG-0: #191919;\n  --VC-BG-1: #1f1f1f;\n  --VC-BG-2: #232323;\n  --VC-BG-3: #2f2f2f;\n  --VC-BG-4: #606060;\n  --VC-BG-5: #2c2c2c;\n  --VC-BG-6: rgba(255, 255, 255, 0.2);\n  --VC-FG-0: rgba(255, 255, 255, 0.8);\n  --VC-FG-HALF: rgba(255, 255, 255, 0.6);\n  --VC-FG-1: rgba(255, 255, 255, 0.5);\n  --VC-FG-2: rgba(255, 255, 255, 0.3);\n  --VC-FG-3: rgba(255, 255, 255, 0.05);\n  --VC-RED: #fa5151;\n  --VC-ORANGE: #c87d2f;\n  --VC-YELLOW: #cc9c00;\n  --VC-GREEN: #74a800;\n  --VC-LIGHTGREEN: #28b561;\n  --VC-BRAND: #07c160;\n  --VC-BLUE: #10aeff;\n  --VC-INDIGO: #1196ff;\n  --VC-PURPLE: #8183ff;\n  --VC-LINK: #7d90a9;\n  --VC-TEXTGREEN: #259c5c;\n  --VC-FG: white;\n  --VC-BG: black;\n  --VC-BG-COLOR-ACTIVE: #282828;\n  --VC-WARN-BG: #332700;\n  --VC-WARN-BORDER: #664e00;\n  --VC-ERROR-BG: #321010;\n  --VC-ERROR-BORDER: #642020;\n  --VC-DOM-TAG-NAME-COLOR: #5DB0D7;\n  --VC-DOM-ATTRIBUTE-NAME-COLOR: #9BBBDC;\n  --VC-DOM-ATTRIBUTE-VALUE-COLOR: #f29766;\n  --VC-CODE-KEY-FG: #e36eec;\n  --VC-CODE-PRIVATE-KEY-FG: #f4c5f7;\n  --VC-CODE-FUNC-FG: #556af2;\n  --VC-CODE-NUMBER-FG: #9980ff;\n  --VC-CODE-STR-FG: #e93f3b;\n  --VC-CODE-NULL-FG: #808080;\n}\n.vc-tabbar {\n  border-bottom: 1px solid var(--VC-FG-3);\n  overflow-x: auto;\n  height: 3em;\n  width: auto;\n  white-space: nowrap;\n}\n.vc-tabbar .vc-tab {\n  display: inline-block;\n  line-height: 3em;\n  padding: 0 1.15384615em;\n  border-right: 1px solid var(--VC-FG-3);\n  text-decoration: none;\n  color: var(--VC-FG-0);\n  -webkit-tap-highlight-color: transparent;\n  -webkit-touch-callout: none;\n}\n.vc-tabbar .vc-tab:active {\n  background-color: rgba(0, 0, 0, 0.15);\n}\n.vc-tabbar .vc-tab.vc-actived {\n  background-color: var(--VC-BG-1);\n}\n.vc-toolbar {\n  border-top: 1px solid var(--VC-FG-3);\n  line-height: 3em;\n  position: absolute;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  display: -webkit-box;\n  display: -webkit-flex;\n  display: -moz-box;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-box-orient: horizontal;\n  -webkit-box-direction: normal;\n  -webkit-flex-direction: row;\n  -moz-box-orient: horizontal;\n  -moz-box-direction: normal;\n  -ms-flex-direction: row;\n  flex-direction: row;\n}\n.vc-toolbar .vc-tool {\n  display: none;\n  font-style: normal;\n  text-decoration: none;\n  color: var(--VC-FG-0);\n  width: 50%;\n  -webkit-box-flex: 1;\n  -webkit-flex: 1;\n  -moz-box-flex: 1;\n  -ms-flex: 1;\n  flex: 1;\n  text-align: center;\n  position: relative;\n  -webkit-touch-callout: none;\n}\n.vc-toolbar .vc-tool.vc-toggle,\n.vc-toolbar .vc-tool.vc-global-tool {\n  display: block;\n}\n.vc-toolbar .vc-tool:active {\n  background-color: rgba(0, 0, 0, 0.15);\n}\n.vc-toolbar .vc-tool:after {\n  content: " ";\n  position: absolute;\n  top: 0.53846154em;\n  bottom: 0.53846154em;\n  right: 0;\n  border-left: 1px solid var(--VC-FG-3);\n}\n.vc-toolbar .vc-tool-last:after {\n  border: none;\n}\n.vc-topbar {\n  background-color: var(--VC-BG-1);\n  display: -webkit-box;\n  display: -webkit-flex;\n  display: -moz-box;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-box-orient: horizontal;\n  -webkit-box-direction: normal;\n  -webkit-flex-direction: row;\n  -moz-box-orient: horizontal;\n  -moz-box-direction: normal;\n  -ms-flex-direction: row;\n  flex-direction: row;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  width: 100%;\n}\n.vc-topbar .vc-toptab {\n  display: none;\n  -webkit-box-flex: 1;\n  -webkit-flex: 1;\n  -moz-box-flex: 1;\n  -ms-flex: 1;\n  flex: 1;\n  line-height: 2.30769231em;\n  padding: 0 1.15384615em;\n  border-bottom: 1px solid var(--VC-FG-3);\n  text-decoration: none;\n  text-align: center;\n  color: var(--VC-FG-0);\n  -webkit-tap-highlight-color: transparent;\n  -webkit-touch-callout: none;\n}\n.vc-topbar .vc-toptab.vc-toggle {\n  display: block;\n}\n.vc-topbar .vc-toptab:active {\n  background-color: rgba(0, 0, 0, 0.15);\n}\n.vc-topbar .vc-toptab.vc-actived {\n  border-bottom: 1px solid var(--VC-INDIGO);\n}\n.vc-mask {\n  display: none;\n  position: fixed;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  background: rgba(0, 0, 0, 0);\n  z-index: 10001;\n  -webkit-transition: background 0.3s;\n  transition: background 0.3s;\n  -webkit-tap-highlight-color: transparent;\n  overflow-y: scroll;\n}\n.vc-panel {\n  display: none;\n  position: fixed;\n  min-height: 85%;\n  left: 0;\n  right: 0;\n  bottom: -100%;\n  z-index: 10002;\n  background-color: var(--VC-BG-0);\n  transition: bottom 0.3s;\n}\n.vc-toggle .vc-switch {\n  display: none;\n}\n.vc-toggle .vc-mask {\n  background: rgba(0, 0, 0, 0.6);\n  display: block;\n}\n.vc-toggle .vc-panel {\n  bottom: 0;\n}\n.vc-content {\n  background-color: var(--VC-BG-2);\n  overflow-x: hidden;\n  overflow-y: auto;\n  position: absolute;\n  top: 3.07692308em;\n  left: 0;\n  right: 0;\n  bottom: 3.07692308em;\n  -webkit-overflow-scrolling: touch;\n  margin-bottom: constant(safe-area-inset-bottom);\n  margin-bottom: env(safe-area-inset-bottom);\n}\n.vc-content.vc-has-topbar {\n  top: 5.46153846em;\n}\n.vc-plugin-box {\n  display: none;\n  position: relative;\n  min-height: 100%;\n}\n.vc-plugin-box.vc-fixed-height {\n  height: 100%;\n}\n.vc-plugin-box.vc-actived {\n  display: block;\n}\n.vc-plugin-content {\n  display: flex;\n  width: 100%;\n  height: 100%;\n  overflow-y: auto;\n  flex-direction: column;\n  -webkit-tap-highlight-color: transparent;\n}\n.vc-plugin-content:empty:before {\n  content: "Empty";\n  color: var(--VC-FG-1);\n  position: absolute;\n  top: 45%;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  font-size: 1.15384615em;\n  text-align: center;\n}\n.vc-plugin-empty {\n  color: var(--VC-FG-1);\n  font-size: 1.15384615em;\n  height: 100%;\n  width: 100%;\n  padding: 1.15384615em 0;\n  text-align: center;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n}\n@supports (bottom: constant(safe-area-inset-bottom)) or (bottom: env(safe-area-inset-bottom)) {\n  .vc-toolbar,\n  .vc-switch {\n    bottom: constant(safe-area-inset-bottom);\n    bottom: env(safe-area-inset-bottom);\n  }\n}\n',""]),n.Z=a},7558:function(t,n,e){"use strict";var o=e(6738),r=e.n(o),i=e(7705),a=e.n(i)()(r());a.push([t.id,".vc-switch {\n  display: block;\n  position: fixed;\n  right: 0.76923077em;\n  bottom: 0.76923077em;\n  color: #FFF;\n  background-color: var(--VC-BRAND);\n  line-height: 1;\n  font-size: 1.07692308em;\n  padding: 0.61538462em 1.23076923em;\n  z-index: 10000;\n  border-radius: 0.30769231em;\n  box-shadow: 0 0 0.61538462em rgba(0, 0, 0, 0.4);\n}\n",""]),n.Z=a},5670:function(t,n,e){"use strict";var o=e(6738),r=e.n(o),i=e(7705),a=e.n(i)()(r());a.push([t.id,'/* color */\n.vcelm-node {\n  color: var(--VC-DOM-TAG-NAME-COLOR);\n}\n.vcelm-k {\n  color: var(--VC-DOM-ATTRIBUTE-NAME-COLOR);\n}\n.vcelm-v {\n  color: var(--VC-DOM-ATTRIBUTE-VALUE-COLOR);\n}\n.vcelm-l.vc-actived > .vcelm-node {\n  background-color: var(--VC-FG-3);\n}\n/* layout */\n.vcelm-l {\n  padding-left: 8px;\n  position: relative;\n  word-wrap: break-word;\n  line-height: 1.2;\n}\n/*.vcelm-l.vcelm-noc {\n  padding-left: 0;\n}*/\n.vcelm-l .vcelm-node:active {\n  background-color: var(--VC-BG-COLOR-ACTIVE);\n}\n.vcelm-l.vcelm-noc .vcelm-node:active {\n  background-color: transparent;\n}\n.vcelm-t {\n  white-space: pre-wrap;\n  word-wrap: break-word;\n}\n/* level */\n/* arrow */\n.vcelm-l:before {\n  content: "";\n  display: block;\n  position: absolute;\n  top: 6px;\n  left: 3px;\n  width: 0;\n  height: 0;\n  border: transparent solid 3px;\n  border-left-color: var(--VC-FG-1);\n}\n.vcelm-l.vc-toggle:before {\n  display: block;\n  top: 6px;\n  left: 0;\n  border-top-color: var(--VC-FG-1);\n  border-left-color: transparent;\n}\n.vcelm-l.vcelm-noc:before {\n  display: none;\n}\n',""]),n.Z=a},3327:function(t,n,e){"use strict";var o=e(6738),r=e.n(o),i=e(7705),a=e.n(i)()(r());a.push([t.id,"",""]),n.Z=a},1130:function(t,n,e){"use strict";var o=e(6738),r=e.n(o),i=e(7705),a=e.n(i)()(r());a.push([t.id,".vc-cmd {\n  height: 3.07692308em;\n  border-top: 1px solid var(--VC-FG-3);\n  display: flex;\n  flex-direction: row;\n}\n.vc-cmd.vc-filter {\n  bottom: 0;\n}\n.vc-cmd-input-wrap {\n  display: flex;\n  align-items: center;\n  flex: 1;\n  position: relative;\n  height: 2.15384615em;\n  padding: 0.46153846em 0.61538462em;\n}\n.vc-cmd-input {\n  width: 100%;\n  border: none;\n  resize: none;\n  outline: none;\n  padding: 0;\n  font-size: 0.92307692em;\n  background-color: transparent;\n  color: var(--VC-FG-0);\n}\n.vc-cmd-input::-webkit-input-placeholder {\n  line-height: 2.15384615em;\n}\n.vc-cmd-btn {\n  width: 3.07692308em;\n  border: none;\n  background-color: var(--VC-BG-0);\n  color: var(--VC-FG-0);\n  outline: none;\n  -webkit-touch-callout: none;\n  font-size: 1em;\n}\n.vc-cmd-clear-btn {\n  flex: 1 3.07692308em;\n  text-align: center;\n  line-height: 3.07692308em;\n}\n.vc-cmd-btn:active,\n.vc-cmd-clear-btn:active {\n  background-color: var(--VC-BG-COLOR-ACTIVE);\n}\n.vc-cmd-prompted {\n  position: absolute;\n  left: 0.46153846em;\n  right: 0.46153846em;\n  background-color: var(--VC-BG-3);\n  border: 1px solid var(--VC-FG-3);\n  overflow-x: scroll;\n  display: none;\n}\n.vc-cmd-prompted li {\n  list-style: none;\n  line-height: 30px;\n  padding: 0 0.46153846em;\n  border-bottom: 1px solid var(--VC-FG-3);\n}\n.vc-cmd-prompted li:active {\n  background-color: var(--VC-BG-COLOR-ACTIVE);\n}\n.vc-cmd-prompted-hide {\n  text-align: center;\n}\n",""]),n.Z=a},7147:function(t,n,e){"use strict";var o=e(6738),r=e.n(o),i=e(7705),a=e.n(i)()(r());a.push([t.id,'.vc-log-row {\n  margin: 0;\n  padding: 0.46153846em 0.61538462em;\n  overflow: hidden;\n  line-height: 1.3;\n  border-bottom: 1px solid var(--VC-FG-3);\n  word-break: break-word;\n  position: relative;\n  display: flex;\n}\n.vc-log-info {\n  color: var(--VC-PURPLE);\n}\n.vc-log-debug {\n  color: var(--VC-YELLOW);\n}\n.vc-log-warn {\n  color: var(--VC-ORANGE);\n  border-color: var(--VC-WARN-BORDER);\n  background-color: var(--VC-WARN-BG);\n}\n.vc-log-error {\n  color: var(--VC-RED);\n  border-color: var(--VC-ERROR-BORDER);\n  background-color: var(--VC-ERROR-BG);\n}\n.vc-logrow-icon {\n  margin-left: auto;\n}\n.vc-log-padding {\n  width: 1.53846154em;\n  border-left: 1px solid var(--VC-FG-3);\n}\n.vc-log-group .vc-log-content {\n  font-weight: bold;\n}\n.vc-log-group-toggle {\n  padding-left: 0.76923077em;\n}\n.vc-log-group-toggle {\n  display: block;\n  font-style: italic;\n  padding-left: 0.76923077em;\n  position: relative;\n}\n.vc-log-group-toggle:active {\n  background-color: var(--VC-BG-COLOR-ACTIVE);\n}\n.vc-log-group > .vc-log-group-toggle::before {\n  content: "";\n  position: absolute;\n  top: 0.30769231em;\n  left: 0.15384615em;\n  width: 0;\n  height: 0;\n  border: transparent solid 0.30769231em;\n  border-left-color: var(--VC-FG-1);\n}\n.vc-log-group.vc-toggle > .vc-log-group-toggle::before {\n  top: 0.46153846em;\n  left: 0;\n  border-top-color: var(--VC-FG-1);\n  border-left-color: transparent;\n}\n.vc-log-time {\n  width: 6.15384615em;\n  color: #777;\n}\n.vc-log-repeat i {\n  margin-right: 0.30769231em;\n  padding: 0 6.5px;\n  color: #D7E0EF;\n  background-color: #42597F;\n  border-radius: 8.66666667px;\n}\n.vc-log-error .vc-log-repeat i {\n  color: #901818;\n  background-color: var(--VC-RED);\n}\n.vc-log-warn .vc-log-repeat i {\n  color: #987D20;\n  background-color: #F4BD02;\n}\n.vc-log-content {\n  flex: 1;\n}\n.vc-log-input,\n.vc-log-output {\n  padding-left: 0.92307692em;\n}\n.vc-log-input:before,\n.vc-log-output:before {\n  content: "›";\n  position: absolute;\n  top: 0.15384615em;\n  left: 0;\n  font-size: 1.23076923em;\n  color: #6A5ACD;\n}\n.vc-log-output:before {\n  content: "‹";\n}\n',""]),n.Z=a},1237:function(t,n,e){"use strict";var o=e(6738),r=e.n(o),i=e(7705),a=e.n(i)()(r());a.push([t.id,'.vc-log-tree {\n  display: block;\n  overflow: auto;\n  position: relative;\n  -webkit-overflow-scrolling: touch;\n}\n.vc-log-tree-node {\n  display: block;\n  font-style: italic;\n  padding-left: 0.76923077em;\n  position: relative;\n}\n.vc-log-tree.vc-is-tree > .vc-log-tree-node:active {\n  background-color: var(--VC-BG-COLOR-ACTIVE);\n}\n.vc-log-tree.vc-is-tree > .vc-log-tree-node::before {\n  content: "";\n  position: absolute;\n  top: 0.30769231em;\n  left: 0.15384615em;\n  width: 0;\n  height: 0;\n  border: transparent solid 0.30769231em;\n  border-left-color: var(--VC-FG-1);\n}\n.vc-log-tree.vc-is-tree.vc-toggle > .vc-log-tree-node::before {\n  top: 0.46153846em;\n  left: 0;\n  border-top-color: var(--VC-FG-1);\n  border-left-color: transparent;\n}\n.vc-log-tree-child {\n  margin-left: 0.76923077em;\n}\n.vc-log-tree-loadmore {\n  text-decoration: underline;\n  padding-left: 1.84615385em;\n  position: relative;\n  color: var(--VC-CODE-FUNC-FG);\n}\n.vc-log-tree-loadmore::before {\n  content: "››";\n  position: absolute;\n  top: -0.15384615em;\n  left: 0.76923077em;\n  font-size: 1.23076923em;\n  color: var(--VC-CODE-FUNC-FG);\n}\n.vc-log-tree-loadmore:active {\n  background-color: var(--VC-BG-COLOR-ACTIVE);\n}\n',""]),n.Z=a},845:function(t,n,e){"use strict";var o=e(6738),r=e.n(o),i=e(7705),a=e.n(i)()(r());a.push([t.id,".vc-log-key {\n  color: var(--VC-CODE-KEY-FG);\n}\n.vc-log-key-private {\n  color: var(--VC-CODE-PRIVATE-KEY-FG);\n}\n.vc-log-val {\n  white-space: pre-line;\n}\n.vc-log-val-function {\n  color: var(--VC-CODE-FUNC-FG);\n  font-style: italic !important;\n}\n.vc-log-val-bigint {\n  color: var(--VC-CODE-FUNC-FG);\n}\n.vc-log-val-number,\n.vc-log-val-boolean {\n  color: var(--VC-CODE-NUMBER-FG);\n}\n.vc-log-val-string {\n  white-space: pre-wrap;\n}\n.vc-log-val-string.vc-log-val-haskey {\n  color: var(--VC-CODE-STR-FG);\n  white-space: normal;\n}\n.vc-log-val-null,\n.vc-log-val-undefined,\n.vc-log-val-uninvocatable {\n  color: var(--VC-CODE-NULL-FG);\n}\n.vc-log-val-symbol {\n  color: var(--VC-CODE-STR-FG);\n}\n",""]),n.Z=a},8747:function(t,n,e){"use strict";var o=e(6738),r=e.n(o),i=e(7705),a=e.n(i)()(r());a.push([t.id,".vc-group .vc-group-preview {\n  -webkit-touch-callout: none;\n}\n.vc-group .vc-group-preview:active {\n  background-color: var(--VC-BG-COLOR-ACTIVE);\n}\n.vc-group .vc-group-detail {\n  display: none;\n  padding: 0 0 0.76923077em 1.53846154em;\n  border-bottom: 1px solid var(--VC-FG-3);\n}\n.vc-group.vc-actived .vc-group-detail {\n  display: block;\n  background-color: var(--VC-BG-1);\n}\n.vc-group.vc-actived .vc-table-row {\n  background-color: var(--VC-BG-2);\n}\n.vc-group.vc-actived .vc-group-preview {\n  background-color: var(--VC-BG-1);\n}\n",""]),n.Z=a},3411:function(t,n,e){"use strict";var o=e(3379),r=e.n(o),i=e(7795),a=e.n(i),c=e(569),u=e.n(c),s=e(3565),l=e.n(s),f=e(9216),d=e.n(f),v=e(4589),h=e.n(v),p=e(1130),g={};p.Z&&p.Z.locals&&(g.locals=p.Z.locals);var m,_=0,b={};b.styleTagTransform=h(),b.setAttributes=l(),b.insert=u().bind(null,"head"),b.domAPI=a(),b.insertStyleElement=d(),g.use=function(t){return b.options=t||{},_++||(m=r()(p.Z,b)),g},g.unuse=function(){_>0&&!--_&&(m(),m=null)},n.Z=g},3379:function(t){"use strict";var n=[];function e(t){for(var e=-1,o=0;o<n.length;o++)if(n[o].identifier===t){e=o;break}return e}function o(t,o){for(var i={},a=[],c=0;c<t.length;c++){var u=t[c],s=o.base?u[0]+o.base:u[0],l=i[s]||0,f="".concat(s," ").concat(l);i[s]=l+1;var d=e(f),v={css:u[1],media:u[2],sourceMap:u[3],supports:u[4],layer:u[5]};if(-1!==d)n[d].references++,n[d].updater(v);else{var h=r(v,o);o.byIndex=c,n.splice(c,0,{identifier:f,updater:h,references:1})}a.push(f)}return a}function r(t,n){var e=n.domAPI(n);e.update(t);return function(n){if(n){if(n.css===t.css&&n.media===t.media&&n.sourceMap===t.sourceMap&&n.supports===t.supports&&n.layer===t.layer)return;e.update(t=n)}else e.remove()}}t.exports=function(t,r){var i=o(t=t||[],r=r||{});return function(t){t=t||[];for(var a=0;a<i.length;a++){var c=e(i[a]);n[c].references--}for(var u=o(t,r),s=0;s<i.length;s++){var l=e(i[s]);0===n[l].references&&(n[l].updater(),n.splice(l,1))}i=u}}},569:function(t){"use strict";var n={};t.exports=function(t,e){var o=function(t){if(void 0===n[t]){var e=document.querySelector(t);if(window.HTMLIFrameElement&&e instanceof window.HTMLIFrameElement)try{e=e.contentDocument.head}catch(t){e=null}n[t]=e}return n[t]}(t);if(!o)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");o.appendChild(e)}},9216:function(t){"use strict";t.exports=function(t){var n=document.createElement("style");return t.setAttributes(n,t.attributes),t.insert(n,t.options),n}},3565:function(t,n,e){"use strict";t.exports=function(t){var n=e.nc;n&&t.setAttribute("nonce",n)}},7795:function(t){"use strict";t.exports=function(t){var n=t.insertStyleElement(t);return{update:function(e){!function(t,n,e){var o="";e.supports&&(o+="@supports (".concat(e.supports,") {")),e.media&&(o+="@media ".concat(e.media," {"));var r=void 0!==e.layer;r&&(o+="@layer".concat(e.layer.length>0?" ".concat(e.layer):""," {")),o+=e.css,r&&(o+="}"),e.media&&(o+="}"),e.supports&&(o+="}");var i=e.sourceMap;i&&"undefined"!=typeof btoa&&(o+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),n.styleTagTransform(o,t,n.options)}(n,t,e)},remove:function(){!function(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t)}(n)}}}},4589:function(t){"use strict";t.exports=function(t,n){if(n.styleSheet)n.styleSheet.cssText=t;else{for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(document.createTextNode(t))}}},6464:function(t,n,e){"use strict";function o(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}e.d(n,{Z:function(){return o}})},4296:function(t,n,e){"use strict";function o(t,n){for(var e=0;e<n.length;e++){var o=n[e];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}function r(t,n,e){return n&&o(t.prototype,n),e&&o(t,e),Object.defineProperty(t,"prototype",{writable:!1}),t}e.d(n,{Z:function(){return r}})},8270:function(t,n,e){"use strict";function o(t,n,e){return n in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}e.d(n,{Z:function(){return o}})},6881:function(t,n,e){"use strict";e.d(n,{Z:function(){return r}});var o=e(2717);function r(t,n){t.prototype=Object.create(n.prototype),t.prototype.constructor=t,(0,o.Z)(t,n)}},2717:function(t,n,e){"use strict";function o(t,n){return o=Object.setPrototypeOf||function(t,n){return t.__proto__=n,t},o(t,n)}e.d(n,{Z:function(){return o}})},7003:function(t,n,e){"use strict";e.d(n,{H3:function(){return o.H3E},ev:function(){return o.evW},x:function(){return o.xa3}});var o=e(2942)},2942:function(t,n,e){"use strict";function o(t){return o=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},o(t)}e.d(n,{f_C:function(){return Ct},hjT:function(){return at},R3I:function(){return O},Ljt:function(){return U},akz:function(){return yt},VnY:function(){return Q},cKT:function(){return Y},gbL:function(){return ht},FIv:function(){return b},XGm:function(){return x},xa3:function(){return z},YCL:function(){return wt},nuO:function(){return y},vpE:function(){return Lt},RMB:function(){return R},ogt:function(){return D},bGB:function(){return $},cSb:function(){return S},yl1:function(){return st},VOJ:function(){return T},u2N:function(){return E},$XI:function(){return _},lig:function(){return mt},dvw:function(){return vt},S1n:function(){return xt},$Tr:function(){return I},oLt:function(){return j},yef:function(){return Et},ZTd:function(){return s},AqN:function(){return p},evW:function(){return X},H3E:function(){return Z},cly:function(){return _t},AT7:function(){return B},j7q:function(){return d},N8:function(){return h},rTO:function(){return G},BmG:function(){return N},fxP:function(){return C},czc:function(){return V},DhX:function(){return M},XET:function(){return A},LdU:function(){return m},bi5:function(){return k},fLW:function(){return P},VHj:function(){return W},Ui:function(){return pt},etI:function(){return gt},GQg:function(){return bt},kmG:function(){return L}});var r=e(2717);function i(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}function a(t,n,e){return a=i()?Reflect.construct:function(t,n,e){var o=[null];o.push.apply(o,n);var i=new(Function.bind.apply(t,o));return e&&(0,r.Z)(i,e.prototype),i},a.apply(null,arguments)}function c(t){var n="function"==typeof Map?new Map:void 0;return c=function(t){if(null===t||(e=t,-1===Function.toString.call(e).indexOf("[native code]")))return t;var e;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==n){if(n.has(t))return n.get(t);n.set(t,i)}function i(){return a(t,arguments,o(this).constructor)}return i.prototype=Object.create(t.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),(0,r.Z)(i,t)},c(t)}var u=e(6881);function s(){}function l(t){return t()}function f(){return Object.create(null)}function d(t){t.forEach(l)}function v(t){return"function"==typeof t}function h(t,n){return t!=t?n==n:t!==n||t&&"object"==typeof t||"function"==typeof t}function p(t,n){return t!=t?n==n:t!==n}function g(t){return 0===Object.keys(t).length}function m(t){if(null==t)return s;for(var n=arguments.length,e=new Array(n>1?n-1:0),o=1;o<n;o++)e[o-1]=arguments[o];var r=t.subscribe.apply(t,e);return r.unsubscribe?function(){return r.unsubscribe()}:r}function _(t){var n;return m(t,(function(t){return n=t}))(),n}function b(t,n,e){t.$$.on_destroy.push(m(n,e))}function y(t,n,e,o){if(t){var r=w(t,n,e,o);return t[0](r)}}function w(t,n,e,o){return t[1]&&o?function(t,n){for(var e in n)t[e]=n[e];return t}(e.ctx.slice(),t[1](o(n))):e.ctx}function E(t,n,e,o){if(t[2]&&o){var r=t[2](o(e));if(void 0===n.dirty)return r;if("object"==typeof r){for(var i=[],a=Math.max(n.dirty.length,r.length),c=0;c<a;c+=1)i[c]=n.dirty[c]|r[c];return i}return n.dirty|r}return n.dirty}function L(t,n,e,o,r,i){if(r){var a=w(n,e,o,i);t.p(a,r)}}function T(t){if(t.ctx.length>32){for(var n=[],e=t.ctx.length/32,o=0;o<e;o++)n[o]=-1;return n}return-1}function x(t){var n={};for(var e in t)n[e]=!0;return n}function C(t,n,e){return t.set(e),n}new Set;function O(t,n){t.appendChild(n)}function I(t,n,e){t.insertBefore(n,e||null)}function D(t){t.parentNode.removeChild(t)}function R(t,n){for(var e=0;e<t.length;e+=1)t[e]&&t[e].d(n)}function $(t){return document.createElement(t)}function k(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}function P(t){return document.createTextNode(t)}function M(){return P(" ")}function S(){return P("")}function j(t,n,e,o){return t.addEventListener(n,e,o),function(){return t.removeEventListener(n,e,o)}}function B(t){return function(n){return n.preventDefault(),t.call(this,n)}}function A(t){return function(n){return n.stopPropagation(),t.call(this,n)}}function U(t,n,e){null==e?t.removeAttribute(n):t.getAttribute(n)!==e&&t.setAttribute(n,e)}function G(t,n){n=""+n,t.wholeText!==n&&(t.data=n)}function N(t,n){t.value=null==n?"":n}function V(t,n,e,o){null===e?t.style.removeProperty(n):t.style.setProperty(n,e,o?"important":"")}function W(t,n,e){t.classList[e?"add":"remove"](n)}function K(t,n,e){void 0===e&&(e=!1);var o=document.createEvent("CustomEvent");return o.initCustomEvent(t,e,!1,n),o}var H;new Map;function F(t){H=t}function q(){if(!H)throw new Error("Function called outside component initialization");return H}function Z(t){q().$$.on_mount.push(t)}function X(t){q().$$.on_destroy.push(t)}function z(){var t=q();return function(n,e){var o=t.$$.callbacks[n];if(o){var r=K(n,e);o.slice().forEach((function(n){n.call(t,r)}))}}}function Y(t,n){var e=this,o=t.$$.callbacks[n.type];o&&o.slice().forEach((function(t){return t.call(e,n)}))}var J=[],Q=[],tt=[],nt=[],et=Promise.resolve(),ot=!1;function rt(){ot||(ot=!0,et.then(st))}function it(t){tt.push(t)}function at(t){nt.push(t)}var ct=new Set,ut=0;function st(){var t=H;do{for(;ut<J.length;){var n=J[ut];ut++,F(n),lt(n.$$)}for(F(null),J.length=0,ut=0;Q.length;)Q.pop()();for(var e=0;e<tt.length;e+=1){var o=tt[e];ct.has(o)||(ct.add(o),o())}tt.length=0}while(J.length);for(;nt.length;)nt.pop()();ot=!1,ct.clear(),F(t)}function lt(t){if(null!==t.fragment){t.update(),d(t.before_update);var n=t.dirty;t.dirty=[-1],t.fragment&&t.fragment.p(t.ctx,n),t.after_update.forEach(it)}}var ft,dt=new Set;function vt(){ft={r:0,c:[],p:ft}}function ht(){ft.r||d(ft.c),ft=ft.p}function pt(t,n){t&&t.i&&(dt.delete(t),t.i(n))}function gt(t,n,e,o){if(t&&t.o){if(dt.has(t))return;dt.add(t),ft.c.push((function(){dt.delete(t),o&&(e&&t.d(1),o())})),t.o(n)}}var mt="undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:global;function _t(t,n){gt(t,1,1,(function(){n.delete(t.key)}))}function bt(t,n,e,o,r,i,a,c,u,s,l,f){for(var d=t.length,v=i.length,h=d,p={};h--;)p[t[h].key]=h;var g=[],m=new Map,_=new Map;for(h=v;h--;){var b=f(r,i,h),y=e(b),w=a.get(y);w?o&&w.p(b,n):(w=s(y,b)).c(),m.set(y,g[h]=w),y in p&&_.set(y,Math.abs(h-p[y]))}var E=new Set,L=new Set;function T(t){pt(t,1),t.m(c,l),a.set(t.key,t),l=t.first,v--}for(;d&&v;){var x=g[v-1],C=t[d-1],O=x.key,I=C.key;x===C?(l=x.first,d--,v--):m.has(I)?!a.has(O)||E.has(O)?T(x):L.has(I)?d--:_.get(O)>_.get(I)?(L.add(O),T(x)):(E.add(I),d--):(u(C,a),d--)}for(;d--;){var D=t[d];m.has(D.key)||u(D,a)}for(;v;)T(g[v-1]);return g}new Set(["allowfullscreen","allowpaymentrequest","async","autofocus","autoplay","checked","controls","default","defer","disabled","formnovalidate","hidden","ismap","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","selected"]);function yt(t,n,e){var o=t.$$.props[n];void 0!==o&&(t.$$.bound[o]=e,e(t.$$.ctx[o]))}function wt(t){t&&t.c()}function Et(t,n,e,o){var r=t.$$,i=r.fragment,a=r.on_mount,c=r.on_destroy,u=r.after_update;i&&i.m(n,e),o||it((function(){var n=a.map(l).filter(v);c?c.push.apply(c,n):d(n),t.$$.on_mount=[]})),u.forEach(it)}function Lt(t,n){var e=t.$$;null!==e.fragment&&(d(e.on_destroy),e.fragment&&e.fragment.d(n),e.on_destroy=e.fragment=null,e.ctx=[])}function Tt(t,n){-1===t.$$.dirty[0]&&(J.push(t),rt(),t.$$.dirty.fill(0)),t.$$.dirty[n/31|0]|=1<<n%31}function xt(t,n,e,o,r,i,a,c){void 0===c&&(c=[-1]);var u=H;F(t);var l=t.$$={fragment:null,ctx:null,props:i,update:s,not_equal:r,bound:f(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(n.context||(u?u.$$.context:[])),callbacks:f(),dirty:c,skip_bound:!1,root:n.target||u.$$.root};a&&a(l.root);var v,h=!1;if(l.ctx=e?e(t,n.props||{},(function(n,e){var o=!(arguments.length<=2)&&arguments.length-2?arguments.length<=2?void 0:arguments[2]:e;return l.ctx&&r(l.ctx[n],l.ctx[n]=o)&&(!l.skip_bound&&l.bound[n]&&l.bound[n](o),h&&Tt(t,n)),e})):[],l.update(),h=!0,d(l.before_update),l.fragment=!!o&&o(l.ctx),n.target){if(n.hydrate){!0;var p=(v=n.target,Array.from(v.childNodes));l.fragment&&l.fragment.l(p),p.forEach(D)}else l.fragment&&l.fragment.c();n.intro&&pt(t.$$.fragment),Et(t,n.target,n.anchor,n.customElement),!1,st()}F(u)}"function"==typeof HTMLElement&&HTMLElement;var Ct=function(){function t(){}var n=t.prototype;return n.$destroy=function(){Lt(this,1),this.$destroy=s},n.$on=function(t,n){var e=this.$$.callbacks[t]||(this.$$.callbacks[t]=[]);return e.push(n),function(){var t=e.indexOf(n);-1!==t&&e.splice(t,1)}},n.$set=function(t){this.$$set&&!g(t)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)},t}()},3313:function(t,n,e){"use strict";e.d(n,{U2:function(){return o.$XI},fZ:function(){return c}});var o=e(2942);function r(t,n){var e="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(e)return(e=e.call(t)).next.bind(e);if(Array.isArray(t)||(e=function(t,n){if(!t)return;if("string"==typeof t)return i(t,n);var e=Object.prototype.toString.call(t).slice(8,-1);"Object"===e&&t.constructor&&(e=t.constructor.name);if("Map"===e||"Set"===e)return Array.from(t);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return i(t,n)}(t))||n&&t&&"number"==typeof t.length){e&&(t=e);var o=0;return function(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function i(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,o=new Array(n);e<n;e++)o[e]=t[e];return o}var a=[];function c(t,n){var e;void 0===n&&(n=o.ZTd);var i=new Set;function c(n){if((0,o.N8)(t,n)&&(t=n,e)){for(var c,u=!a.length,s=r(i);!(c=s()).done;){var l=c.value;l[1](),a.push(l,t)}if(u){for(var f=0;f<a.length;f+=2)a[f][0](a[f+1]);a.length=0}}}return{set:c,update:function(n){c(n(t))},subscribe:function(r,a){void 0===a&&(a=o.ZTd);var u=[r,a];return i.add(u),1===i.size&&(e=n(c)||o.ZTd),r(t),function(){i.delete(u),0===i.size&&(e(),e=null)}}}}}},__webpack_module_cache__={};function __webpack_require__(t){var n=__webpack_module_cache__[t];if(void 0!==n)return n.exports;var e=__webpack_module_cache__[t]={id:t,exports:{}};return __webpack_modules__[t](e,e.exports,__webpack_require__),e.exports}__webpack_require__.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return __webpack_require__.d(n,{a:n}),n},__webpack_require__.d=function(t,n){for(var e in n)__webpack_require__.o(n,e)&&!__webpack_require__.o(t,e)&&Object.defineProperty(t,e,{enumerable:!0,get:n[e]})},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),__webpack_require__.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)};var __webpack_exports__={};return function(){"use strict";__webpack_require__.d(__webpack_exports__,{default:function(){return Rr}});__webpack_require__(5441),__webpack_require__(8765);var t=__webpack_require__(4296),n=__webpack_require__(5103),e={one:function(t,n){void 0===n&&(n=document);try{return n.querySelector(t)||void 0}catch(t){return}},all:function(t,n){void 0===n&&(n=document);try{var e=n.querySelectorAll(t);return[].slice.call(e)}catch(t){return[]}},addClass:function(t,e){if(t)for(var o=(0,n.kJ)(t)?t:[t],r=0;r<o.length;r++){var i=(o[r].className||"").split(" ");i.indexOf(e)>-1||(i.push(e),o[r].className=i.join(" "))}},removeClass:function(t,e){if(t)for(var o=(0,n.kJ)(t)?t:[t],r=0;r<o.length;r++){for(var i=o[r].className.split(" "),a=0;a<i.length;a++)i[a]==e&&(i[a]="");o[r].className=i.join(" ").trim()}},hasClass:function(t,n){return!(!t||!t.classList)&&t.classList.contains(n)},bind:function(t,e,o,r){(void 0===r&&(r=!1),t)&&((0,n.kJ)(t)?t:[t]).forEach((function(t){t.addEventListener(e,o,!!r)}))},delegate:function(t,n,o,r){t&&t.addEventListener(n,(function(n){var i=e.all(o,t);if(i)t:for(var a=0;a<i.length;a++)for(var c=n.target;c;){if(c==i[a]){r.call(c,n,c);break t}if((c=c.parentNode)==t)break}}),!1)},removeChildren:function(t){for(;t.firstChild;)t.removeChild(t.lastChild);return t}},o=e,r=__webpack_require__(6464),i=__webpack_require__(6881),a=__webpack_require__(2942),c=__webpack_require__(7003),u=__webpack_require__(3379),s=__webpack_require__.n(u),l=__webpack_require__(7795),f=__webpack_require__.n(l),d=__webpack_require__(569),v=__webpack_require__.n(d),h=__webpack_require__(3565),p=__webpack_require__.n(h),g=__webpack_require__(9216),m=__webpack_require__.n(g),_=__webpack_require__(4589),b=__webpack_require__.n(_),y=__webpack_require__(7558),w={};y.Z&&y.Z.locals&&(w.locals=y.Z.locals);var E,L=0,T={};T.styleTagTransform=b(),T.setAttributes=p(),T.insert=v().bind(null,"head"),T.domAPI=f(),T.insertStyleElement=m(),w.use=function(t){return T.options=t||{},L++||(E=s()(y.Z,T)),w},w.unuse=function(){L>0&&!--L&&(E(),E=null)};var x=w;function C(t){var n,e,o,r;return{c:function(){n=(0,a.bGB)("div"),e=(0,a.fLW)("vConsole"),(0,a.Ljt)(n,"class","vc-switch"),(0,a.czc)(n,"right",t[2].x+"px"),(0,a.czc)(n,"bottom",t[2].y+"px"),(0,a.czc)(n,"display",t[0]?"block":"none")},m:function(i,c){(0,a.$Tr)(i,n,c),(0,a.R3I)(n,e),t[8](n),o||(r=[(0,a.oLt)(n,"touchstart",t[3],{passive:!1}),(0,a.oLt)(n,"touchend",t[4],{passive:!1}),(0,a.oLt)(n,"touchmove",t[5],{passive:!1}),(0,a.oLt)(n,"click",t[7])],o=!0)},p:function(t,e){var o=e[0];4&o&&(0,a.czc)(n,"right",t[2].x+"px"),4&o&&(0,a.czc)(n,"bottom",t[2].y+"px"),1&o&&(0,a.czc)(n,"display",t[0]?"block":"none")},i:a.ZTd,o:a.ZTd,d:function(e){e&&(0,a.ogt)(n),t[8](null),o=!1,(0,a.j7q)(r)}}}function O(t,e,o){var r,i=e.show,u=void 0===i||i,s=e.position,l=void 0===s?{x:0,y:0}:s,f={hasMoved:!1,x:0,y:0,startX:0,startY:0,endX:0,endY:0},d={x:0,y:0};(0,c.H3)((function(){x.use()})),(0,c.ev)((function(){x.unuse()}));var v=function(t,e){var r=h(t,e);t=r[0],e=r[1],f.x=t,f.y=e,o(2,d.x=t,d),o(2,d.y=e,d),n.po("switch_x",t+""),n.po("switch_y",e+"")},h=function(t,n){var e=Math.max(document.documentElement.offsetWidth,window.innerWidth),o=Math.max(document.documentElement.offsetHeight,window.innerHeight);return t+r.offsetWidth>e&&(t=e-r.offsetWidth),n+r.offsetHeight>o&&(n=o-r.offsetHeight),t<0&&(t=0),n<20&&(n=20),[t,n]};return t.$$set=function(t){"show"in t&&o(0,u=t.show),"position"in t&&o(6,l=t.position)},t.$$.update=function(){66&t.$$.dirty&&r&&v(l.x,l.y)},[u,r,d,function(t){f.startX=t.touches[0].pageX,f.startY=t.touches[0].pageY,f.hasMoved=!1},function(t){f.hasMoved&&(f.startX=0,f.startY=0,f.hasMoved=!1,v(f.endX,f.endY))},function(t){if(!(t.touches.length<=0)){var n=t.touches[0].pageX-f.startX,e=t.touches[0].pageY-f.startY,r=Math.floor(f.x-n),i=Math.floor(f.y-e),a=h(r,i);r=a[0],i=a[1],o(2,d.x=r,d),o(2,d.y=i,d),f.endX=r,f.endY=i,f.hasMoved=!0,t.preventDefault()}},l,function(n){a.cKT.call(this,t,n)},function(t){a.VnY[t?"unshift":"push"]((function(){o(1,r=t)}))}]}var I=function(n){function e(t){var e;return e=n.call(this)||this,(0,a.S1n)((0,r.Z)(e),t,O,C,a.N8,{show:0,position:6}),e}return(0,i.Z)(e,n),(0,t.Z)(e,[{key:"show",get:function(){return this.$$.ctx[0]},set:function(t){this.$$set({show:t}),(0,a.yl1)()}},{key:"position",get:function(){return this.$$.ctx[6]},set:function(t){this.$$set({position:t}),(0,a.yl1)()}}]),e}(a.f_C),D=I,R=__webpack_require__(4687),$=__webpack_require__(3283),k={};$.Z&&$.Z.locals&&(k.locals=$.Z.locals);var P,M=0,S={};S.styleTagTransform=b(),S.setAttributes=p(),S.insert=v().bind(null,"head"),S.domAPI=f(),S.insertStyleElement=m(),k.use=function(t){return S.options=t||{},M++||(P=s()($.Z,S)),k},k.unuse=function(){M>0&&!--M&&(P(),P=null)};var j=k;function B(t,n,e){var o=t.slice();return o[39]=n[e][0],o[40]=n[e][1],o}function A(t,n,e){var o=t.slice();return o[43]=n[e],o[45]=e,o}function U(t,n,e){var o=t.slice();return o[39]=n[e][0],o[40]=n[e][1],o}function G(t,n,e){var o=t.slice();return o[39]=n[e][0],o[40]=n[e][1],o}function N(t,n,e){var o=t.slice();return o[43]=n[e],o[45]=e,o}function V(t,n,e){var o=t.slice();return o[39]=n[e][0],o[40]=n[e][1],o}function W(t){var n,e,o,r,i,c=t[40].name+"";function u(){return t[25](t[40])}return{c:function(){n=(0,a.bGB)("a"),e=(0,a.fLW)(c),(0,a.Ljt)(n,"class","vc-tab"),(0,a.Ljt)(n,"id",o="__vc_tab_"+t[40].id),(0,a.VHj)(n,"vc-actived",t[40].id===t[2])},m:function(t,o){(0,a.$Tr)(t,n,o),(0,a.R3I)(n,e),r||(i=(0,a.oLt)(n,"click",u),r=!0)},p:function(r,i){t=r,8&i[0]&&c!==(c=t[40].name+"")&&(0,a.rTO)(e,c),8&i[0]&&o!==(o="__vc_tab_"+t[40].id)&&(0,a.Ljt)(n,"id",o),12&i[0]&&(0,a.VHj)(n,"vc-actived",t[40].id===t[2])},d:function(t){t&&(0,a.ogt)(n),r=!1,i()}}}function K(t){var n,e=t[40].hasTabPanel&&W(t);return{c:function(){e&&e.c(),n=(0,a.cSb)()},m:function(t,o){e&&e.m(t,o),(0,a.$Tr)(t,n,o)},p:function(t,o){t[40].hasTabPanel?e?e.p(t,o):((e=W(t)).c(),e.m(n.parentNode,n)):e&&(e.d(1),e=null)},d:function(t){e&&e.d(t),t&&(0,a.ogt)(n)}}}function H(t){var n,e,o,r,i,c=t[43].name+"";function u(){for(var n,e=arguments.length,o=new Array(e),r=0;r<e;r++)o[r]=arguments[r];return(n=t)[26].apply(n,[t[40],t[45]].concat(o))}return{c:function(){n=(0,a.bGB)("i"),e=(0,a.fLW)(c),(0,a.Ljt)(n,"class",o="vc-toptab vc-topbar-"+t[40].id+" "+t[43].className),(0,a.VHj)(n,"vc-toggle",t[40].id===t[2]),(0,a.VHj)(n,"vc-actived",t[43].actived)},m:function(t,o){(0,a.$Tr)(t,n,o),(0,a.R3I)(n,e),r||(i=(0,a.oLt)(n,"click",u),r=!0)},p:function(r,i){t=r,8&i[0]&&c!==(c=t[43].name+"")&&(0,a.rTO)(e,c),8&i[0]&&o!==(o="vc-toptab vc-topbar-"+t[40].id+" "+t[43].className)&&(0,a.Ljt)(n,"class",o),12&i[0]&&(0,a.VHj)(n,"vc-toggle",t[40].id===t[2]),8&i[0]&&(0,a.VHj)(n,"vc-actived",t[43].actived)},d:function(t){t&&(0,a.ogt)(n),r=!1,i()}}}function F(t){for(var n,e=t[40].topbarList,o=[],r=0;r<e.length;r+=1)o[r]=H(N(t,e,r));return{c:function(){for(var t=0;t<o.length;t+=1)o[t].c();n=(0,a.cSb)()},m:function(t,e){for(var r=0;r<o.length;r+=1)o[r].m(t,e);(0,a.$Tr)(t,n,e)},p:function(t,r){if(8204&r[0]){var i;for(e=t[40].topbarList,i=0;i<e.length;i+=1){var a=N(t,e,i);o[i]?o[i].p(a,r):(o[i]=H(a),o[i].c(),o[i].m(n.parentNode,n))}for(;i<o.length;i+=1)o[i].d(1);o.length=e.length}},d:function(t){(0,a.RMB)(o,t),t&&(0,a.ogt)(n)}}}function q(t){var n,e;return{c:function(){var o;n=(0,a.bGB)("div"),(0,a.Ljt)(n,"id",e="__vc_plug_"+t[40].id),(0,a.Ljt)(n,"class","vc-plugin-box"),(0,a.VHj)(n,"vc-fixed-height",null==(o=t[40].tabOptions)?void 0:o.fixedHeight),(0,a.VHj)(n,"vc-actived",t[40].id===t[2])},m:function(t,e){(0,a.$Tr)(t,n,e)},p:function(t,o){var r;(8&o[0]&&e!==(e="__vc_plug_"+t[40].id)&&(0,a.Ljt)(n,"id",e),8&o[0])&&(0,a.VHj)(n,"vc-fixed-height",null==(r=t[40].tabOptions)?void 0:r.fixedHeight);12&o[0]&&(0,a.VHj)(n,"vc-actived",t[40].id===t[2])},d:function(t){t&&(0,a.ogt)(n)}}}function Z(t){var n,e,o,r,i,c=t[43].name+"";function u(){for(var n,e=arguments.length,o=new Array(e),r=0;r<e;r++)o[r]=arguments[r];return(n=t)[28].apply(n,[t[40],t[45]].concat(o))}return{c:function(){n=(0,a.bGB)("i"),e=(0,a.fLW)(c),(0,a.Ljt)(n,"class",o="vc-tool vc-tool-"+t[40].id),(0,a.VHj)(n,"vc-global-tool",t[43].global),(0,a.VHj)(n,"vc-toggle",t[40].id===t[2])},m:function(t,o){(0,a.$Tr)(t,n,o),(0,a.R3I)(n,e),r||(i=(0,a.oLt)(n,"click",u),r=!0)},p:function(r,i){t=r,8&i[0]&&c!==(c=t[43].name+"")&&(0,a.rTO)(e,c),8&i[0]&&o!==(o="vc-tool vc-tool-"+t[40].id)&&(0,a.Ljt)(n,"class",o),8&i[0]&&(0,a.VHj)(n,"vc-global-tool",t[43].global),12&i[0]&&(0,a.VHj)(n,"vc-toggle",t[40].id===t[2])},d:function(t){t&&(0,a.ogt)(n),r=!1,i()}}}function X(t){for(var n,e=t[40].toolbarList,o=[],r=0;r<e.length;r+=1)o[r]=Z(A(t,e,r));return{c:function(){for(var t=0;t<o.length;t+=1)o[t].c();n=(0,a.cSb)()},m:function(t,e){for(var r=0;r<o.length;r+=1)o[r].m(t,e);(0,a.$Tr)(t,n,e)},p:function(t,r){if(16396&r[0]){var i;for(e=t[40].toolbarList,i=0;i<e.length;i+=1){var a=A(t,e,i);o[i]?o[i].p(a,r):(o[i]=Z(a),o[i].c(),o[i].m(n.parentNode,n))}for(;i<o.length;i+=1)o[i].d(1);o.length=e.length}},d:function(t){(0,a.RMB)(o,t),t&&(0,a.ogt)(n)}}}function z(t){var n,e,o,r,i,c,u,s,l,f,d,v,h,p,g,m,_,b,y,w,E;function L(n){t[23](n)}function T(n){t[24](n)}var x={};void 0!==t[0]&&(x.show=t[0]),void 0!==t[1]&&(x.position=t[1]),e=new D({props:x}),a.VnY.push((function(){return(0,a.akz)(e,"show",L)})),a.VnY.push((function(){return(0,a.akz)(e,"position",T)})),e.$on("click",t[10]);for(var C=Object.entries(t[3]),O=[],I=0;I<C.length;I+=1)O[I]=K(V(t,C,I));for(var R=Object.entries(t[3]),$=[],k=0;k<R.length;k+=1)$[k]=F(G(t,R,k));for(var P=Object.entries(t[3]),M=[],S=0;S<P.length;S+=1)M[S]=q(U(t,P,S));for(var j=Object.entries(t[3]),A=[],N=0;N<j.length;N+=1)A[N]=X(B(t,j,N));return{c:function(){var o,r;n=(0,a.bGB)("div"),(0,a.YCL)(e.$$.fragment),i=(0,a.DhX)(),c=(0,a.bGB)("div"),u=(0,a.DhX)(),s=(0,a.bGB)("div"),l=(0,a.bGB)("div");for(var y=0;y<O.length;y+=1)O[y].c();f=(0,a.DhX)(),d=(0,a.bGB)("div");for(var w=0;w<$.length;w+=1)$[w].c();v=(0,a.DhX)(),h=(0,a.bGB)("div");for(var E=0;E<M.length;E+=1)M[E].c();p=(0,a.DhX)(),g=(0,a.bGB)("div");for(var L=0;L<A.length;L+=1)A[L].c();m=(0,a.DhX)(),(_=(0,a.bGB)("i")).textContent="Hide",(0,a.Ljt)(c,"class","vc-mask"),(0,a.czc)(c,"display",t[9]?"block":"none"),(0,a.Ljt)(l,"class","vc-tabbar"),(0,a.Ljt)(d,"class","vc-topbar"),(0,a.Ljt)(h,"class","vc-content"),(0,a.VHj)(h,"vc-has-topbar",(null==(o=t[3][t[2]])||null==(r=o.topbarList)?void 0:r.length)>0),(0,a.Ljt)(_,"class","vc-tool vc-global-tool vc-tool-last vc-hide"),(0,a.Ljt)(g,"class","vc-toolbar"),(0,a.Ljt)(s,"class","vc-panel"),(0,a.czc)(s,"display",t[8]?"block":"none"),(0,a.Ljt)(n,"id","__vconsole"),(0,a.Ljt)(n,"style",b=t[6]?"font-size:"+t[6]+";":""),(0,a.Ljt)(n,"data-theme",t[5]),(0,a.VHj)(n,"vc-toggle",t[7])},m:function(o,r){(0,a.$Tr)(o,n,r),(0,a.yef)(e,n,null),(0,a.R3I)(n,i),(0,a.R3I)(n,c),(0,a.R3I)(n,u),(0,a.R3I)(n,s),(0,a.R3I)(s,l);for(var b=0;b<O.length;b+=1)O[b].m(l,null);(0,a.R3I)(s,f),(0,a.R3I)(s,d);for(var L=0;L<$.length;L+=1)$[L].m(d,null);(0,a.R3I)(s,v),(0,a.R3I)(s,h);for(var T=0;T<M.length;T+=1)M[T].m(h,null);t[27](h),(0,a.R3I)(s,p),(0,a.R3I)(s,g);for(var x=0;x<A.length;x+=1)A[x].m(g,null);(0,a.R3I)(g,m),(0,a.R3I)(g,_),y=!0,w||(E=[(0,a.oLt)(c,"click",t[11]),(0,a.oLt)(h,"touchstart",t[15]),(0,a.oLt)(h,"touchmove",t[16]),(0,a.oLt)(h,"touchend",t[17]),(0,a.oLt)(h,"scroll",t[18]),(0,a.oLt)(_,"click",t[11]),(0,a.oLt)(n,"touchstart",t[19].touchStart,{passive:!1,capture:!0}),(0,a.oLt)(n,"touchmove",t[19].touchMove,{passive:!1,capture:!0}),(0,a.oLt)(n,"touchend",t[19].touchEnd,{passive:!1,capture:!0})],w=!0)},p:function(t,i){var u,f,v={};if(!o&&1&i[0]&&(o=!0,v.show=t[0],(0,a.hjT)((function(){return o=!1}))),!r&&2&i[0]&&(r=!0,v.position=t[1],(0,a.hjT)((function(){return r=!1}))),e.$set(v),(!y||512&i[0])&&(0,a.czc)(c,"display",t[9]?"block":"none"),4108&i[0]){var p;for(C=Object.entries(t[3]),p=0;p<C.length;p+=1){var _=V(t,C,p);O[p]?O[p].p(_,i):(O[p]=K(_),O[p].c(),O[p].m(l,null))}for(;p<O.length;p+=1)O[p].d(1);O.length=C.length}if(8204&i[0]){var w;for(R=Object.entries(t[3]),w=0;w<R.length;w+=1){var E=G(t,R,w);$[w]?$[w].p(E,i):($[w]=F(E),$[w].c(),$[w].m(d,null))}for(;w<$.length;w+=1)$[w].d(1);$.length=R.length}if(12&i[0]){var L;for(P=Object.entries(t[3]),L=0;L<P.length;L+=1){var T=U(t,P,L);M[L]?M[L].p(T,i):(M[L]=q(T),M[L].c(),M[L].m(h,null))}for(;L<M.length;L+=1)M[L].d(1);M.length=P.length}12&i[0]&&(0,a.VHj)(h,"vc-has-topbar",(null==(u=t[3][t[2]])||null==(f=u.topbarList)?void 0:f.length)>0);if(16396&i[0]){var x;for(j=Object.entries(t[3]),x=0;x<j.length;x+=1){var I=B(t,j,x);A[x]?A[x].p(I,i):(A[x]=X(I),A[x].c(),A[x].m(g,m))}for(;x<A.length;x+=1)A[x].d(1);A.length=j.length}(!y||256&i[0])&&(0,a.czc)(s,"display",t[8]?"block":"none"),(!y||64&i[0]&&b!==(b=t[6]?"font-size:"+t[6]+";":""))&&(0,a.Ljt)(n,"style",b),(!y||32&i[0])&&(0,a.Ljt)(n,"data-theme",t[5]),128&i[0]&&(0,a.VHj)(n,"vc-toggle",t[7])},i:function(t){y||((0,a.Ui)(e.$$.fragment,t),y=!0)},o:function(t){(0,a.etI)(e.$$.fragment,t),y=!1},d:function(o){o&&(0,a.ogt)(n),(0,a.vpE)(e),(0,a.RMB)(O,o),(0,a.RMB)($,o),(0,a.RMB)(M,o),t[27](null),(0,a.RMB)(A,o),w=!1,(0,a.j7q)(E)}}}function Y(t,e,o){var r,i=e.theme,u=void 0===i?"":i,s=e.disableScrolling,l=void 0!==s&&s,f=e.show,d=void 0!==f&&f,v=e.showSwitchButton,h=void 0===v||v,p=e.switchButtonPosition,g=void 0===p?{x:0,y:0}:p,m=e.activedPluginId,_=void 0===m?"":m,b=e.pluginList,y=void 0===b?{}:b,w=e.divContent,E=(0,c.x)(),L=!1,T="",x=!1,C=!1,O=!1,I=!0,D=0,$=null,k={};(0,c.H3)((function(){var t=document.querySelectorAll('[name="viewport"]');if(t&&t[0]){var n=(t[t.length-1].getAttribute("content")||"").match(/initial\-scale\=\d+(\.\d+)?/),e=n?parseFloat(n[0].split("=")[1]):1;1!==e&&o(6,T=Math.floor(1/e*13)+"px")}j.use&&j.use(),r=R.x.subscribe((function(t){d&&D!==t.updateTime&&(D=t.updateTime,P())}))})),(0,c.ev)((function(){j.unuse&&j.unuse(),r&&r()}));var P=function(){!l&&I&&w&&o(4,w.scrollTop=w.scrollHeight-w.offsetHeight,w)},M=function(t){t!==_&&(o(2,_=t),E("changePanel",{pluginId:t}),setTimeout((function(){w&&o(4,w.scrollTop=k[_]||0,w)}),0))},S=function(t,e,r){var i=y[e].topbarList[r],a=!0;if(n.mf(i.onClick)&&(a=i.onClick.call(t.target,t,i.data)),!1===a);else{for(var c=0;c<y[e].topbarList.length;c++)o(3,y[e].topbarList[c].actived=r===c,y);o(3,y)}},B=function(t,e,o){var r=y[e].toolbarList[o];n.mf(r.onClick)&&r.onClick.call(t.target,t,r.data)},A={tapTime:700,tapBoundary:10,lastTouchStartTime:0,touchstartX:0,touchstartY:0,touchHasMoved:!1,targetElem:null},U={touchStart:function(t){if(0===A.lastTouchStartTime){var n=t.targetTouches[0];A.touchstartX=n.pageX,A.touchstartY=n.pageY,A.lastTouchStartTime=t.timeStamp,A.targetElem=t.target.nodeType===Node.TEXT_NODE?t.target.parentNode:t.target}},touchMove:function(t){var n=t.changedTouches[0];(Math.abs(n.pageX-A.touchstartX)>A.tapBoundary||Math.abs(n.pageY-A.touchstartY)>A.tapBoundary)&&(A.touchHasMoved=!0)},touchEnd:function(t){if(!1===A.touchHasMoved&&t.timeStamp-A.lastTouchStartTime<A.tapTime&&null!=A.targetElem){var n=!1;switch(A.targetElem.tagName.toLowerCase()){case"textarea":n=!0;break;case"select":n=!A.targetElem.disabled&&!A.targetElem.readOnly;break;case"input":switch(A.targetElem.type){case"button":case"checkbox":case"file":case"image":case"radio":case"submit":n=!1;break;default:n=!A.targetElem.disabled&&!A.targetElem.readOnly}}n?A.targetElem.focus():t.preventDefault();var e=t.changedTouches[0],o=new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window,screenX:e.screenX,screenY:e.screenY,clientX:e.clientX,clientY:e.clientY});A.targetElem.dispatchEvent(o)}A.lastTouchStartTime=0,A.touchHasMoved=!1,A.targetElem=null}};return t.$$set=function(t){"theme"in t&&o(5,u=t.theme),"disableScrolling"in t&&o(20,l=t.disableScrolling),"show"in t&&o(21,d=t.show),"showSwitchButton"in t&&o(0,h=t.showSwitchButton),"switchButtonPosition"in t&&o(1,g=t.switchButtonPosition),"activedPluginId"in t&&o(2,_=t.activedPluginId),"pluginList"in t&&o(3,y=t.pluginList),"divContent"in t&&o(4,w=t.divContent)},t.$$.update=function(){6291456&t.$$.dirty[0]&&(!0===d?(o(8,C=!0),o(9,O=!0),$&&clearTimeout($),o(22,$=setTimeout((function(){o(7,x=!0),P()}),10))):(o(7,x=!1),$&&clearTimeout($),o(22,$=setTimeout((function(){o(8,C=!1),o(9,O=!1)}),330))))},[h,g,_,y,w,u,T,x,C,O,function(t){E("show",{show:!0})},function(t){E("show",{show:!1})},M,S,B,function(t){if(!("INPUT"===t.target.tagName||"TEXTAREA"===t.target.tagName)){var n=!1;if("function"==typeof window.getComputedStyle){var e=window.getComputedStyle(t.target);"auto"!==e.overflow&&"scroll"!==e.overflow||(n=!0)}if(!n){var r=w.scrollTop,i=w.scrollHeight,a=r+w.offsetHeight;0===r?(o(4,w.scrollTop=1,w),0===w.scrollTop&&(L=!0)):a===i&&(o(4,w.scrollTop=r-1,w),w.scrollTop===r&&(L=!0))}}},function(t){L&&t.preventDefault()},function(t){L=!1},function(t){d&&(I=w.scrollTop+w.offsetHeight>=w.scrollHeight-50,k[_]=w.scrollTop)},U,l,d,$,function(t){o(0,h=t)},function(t){o(1,g=t)},function(t){return M(t.id)},function(t,n,e){return S(e,t.id,n)},function(t){a.VnY[t?"unshift":"push"]((function(){o(4,w=t)}))},function(t,n,e){return B(e,t.id,n)}]}var J=function(n){function e(t){var e;return e=n.call(this)||this,(0,a.S1n)((0,r.Z)(e),t,Y,z,a.N8,{theme:5,disableScrolling:20,show:21,showSwitchButton:0,switchButtonPosition:1,activedPluginId:2,pluginList:3,divContent:4},null,[-1,-1]),e}return(0,i.Z)(e,n),(0,t.Z)(e,[{key:"theme",get:function(){return this.$$.ctx[5]},set:function(t){this.$$set({theme:t}),(0,a.yl1)()}},{key:"disableScrolling",get:function(){return this.$$.ctx[20]},set:function(t){this.$$set({disableScrolling:t}),(0,a.yl1)()}},{key:"show",get:function(){return this.$$.ctx[21]},set:function(t){this.$$set({show:t}),(0,a.yl1)()}},{key:"showSwitchButton",get:function(){return this.$$.ctx[0]},set:function(t){this.$$set({showSwitchButton:t}),(0,a.yl1)()}},{key:"switchButtonPosition",get:function(){return this.$$.ctx[1]},set:function(t){this.$$set({switchButtonPosition:t}),(0,a.yl1)()}},{key:"activedPluginId",get:function(){return this.$$.ctx[2]},set:function(t){this.$$set({activedPluginId:t}),(0,a.yl1)()}},{key:"pluginList",get:function(){return this.$$.ctx[3]},set:function(t){this.$$set({pluginList:t}),(0,a.yl1)()}},{key:"divContent",get:function(){return this.$$.ctx[4]},set:function(t){this.$$set({divContent:t}),(0,a.yl1)()}}]),e}(a.f_C),Q=J,tt=function(){function e(t,n){void 0===n&&(n="newPlugin"),this.isReady=!1,this.eventMap=new Map,this.exporter=void 0,this._id=void 0,this._name=void 0,this._vConsole=void 0,this.id=t,this.name=n,this.isReady=!1}var o=e.prototype;return o.on=function(t,n){return this.eventMap.set(t,n),this},o.onRemove=function(){this.unbindExporter()},o.trigger=function(t,n){var e=this.eventMap.get(t);if("function"==typeof e)e.call(this,n);else{var o="on"+t.charAt(0).toUpperCase()+t.slice(1);"function"==typeof this[o]&&this[o].call(this,n)}return this},o.bindExporter=function(){if(this._vConsole&&this.exporter){var t="default"===this.id?"log":this.id;this._vConsole[t]=this.exporter}},o.unbindExporter=function(){var t="default"===this.id?"log":this.id;this._vConsole&&this._vConsole[t]&&(this._vConsole[t]=void 0)},o.getUniqueID=function(t){return void 0===t&&(t=""),(0,n.QI)(t)},(0,t.Z)(e,[{key:"id",get:function(){return this._id},set:function(t){if("string"!=typeof t)throw"[vConsole] Plugin ID must be a string.";if(!t)throw"[vConsole] Plugin ID cannot be empty.";this._id=t.toLowerCase()}},{key:"name",get:function(){return this._name},set:function(t){if("string"!=typeof t)throw"[vConsole] Plugin name must be a string.";if(!t)throw"[vConsole] Plugin name cannot be empty.";this._name=t}},{key:"vConsole",get:function(){return this._vConsole||void 0},set:function(t){if(!t)throw"[vConsole] vConsole cannot be empty";this._vConsole=t,this.bindExporter()}}]),e}(),nt=function(t){function n(n,e,o,r){var i;return(i=t.call(this,n,e)||this).CompClass=void 0,i.compInstance=void 0,i.initialProps=void 0,i.CompClass=o,i.initialProps=r,i}(0,i.Z)(n,t);var e=n.prototype;return e.onReady=function(){this.isReady=!0},e.onRenderTab=function(t){var n=document.createElement("div"),e=this.compInstance=new this.CompClass({target:n,props:this.initialProps});t(n.firstElementChild,e.options)},e.onRemove=function(){t.prototype.onRemove&&t.prototype.onRemove.call(this),this.compInstance&&this.compInstance.$destroy()},n}(tt),et=__webpack_require__(8665),ot=__webpack_require__(9923);var rt=__webpack_require__(8702);function it(t){var n,e;return(n=new rt.Z({props:{name:t[0]?"success":"copy"}})).$on("click",t[1]),{c:function(){(0,a.YCL)(n.$$.fragment)},m:function(t,o){(0,a.yef)(n,t,o),e=!0},p:function(t,e){var o={};1&e[0]&&(o.name=t[0]?"success":"copy"),n.$set(o)},i:function(t){e||((0,a.Ui)(n.$$.fragment,t),e=!0)},o:function(t){(0,a.etI)(n.$$.fragment,t),e=!1},d:function(t){(0,a.vpE)(n,t)}}}function at(t,e,o){var r=e.content,i=void 0===r?"":r,a=e.handler,c=void 0===a?void 0:a,u={target:document.documentElement},s=!1;return t.$$set=function(t){"content"in t&&o(2,i=t.content),"handler"in t&&o(3,c=t.handler)},[s,function(t){(function(t,n){var e=(void 0===n?{}:n).target,o=void 0===e?document.body:e,r=document.createElement("textarea"),i=document.activeElement;r.value=t,r.setAttribute("readonly",""),r.style.contain="strict",r.style.position="absolute",r.style.left="-9999px",r.style.fontSize="12pt";var a=document.getSelection(),c=!1;a.rangeCount>0&&(c=a.getRangeAt(0)),o.append(r),r.select(),r.selectionStart=0,r.selectionEnd=t.length;var u=!1;try{u=document.execCommand("copy")}catch(t){}r.remove(),c&&(a.removeAllRanges(),a.addRange(c)),i&&i.focus()})(n.mf(c)?c(i)||"":n.Kn(i)||n.kJ(i)?n.hZ(i,{maxDepth:10,keyMaxLen:1e4,pretty:!1,standardJSON:!0}):i,u),o(0,s=!0),setTimeout((function(){o(0,s=!1)}),600)},i,c]}var ct=function(n){function e(t){var e;return e=n.call(this)||this,(0,a.S1n)((0,r.Z)(e),t,at,it,a.N8,{content:2,handler:3}),e}return(0,i.Z)(e,n),(0,t.Z)(e,[{key:"content",get:function(){return this.$$.ctx[2]},set:function(t){this.$$set({content:t}),(0,a.yl1)()}},{key:"handler",get:function(){return this.$$.ctx[3]},set:function(t){this.$$set({handler:t}),(0,a.yl1)()}}]),e}(a.f_C),ut=ct,st=__webpack_require__(845),lt={};st.Z&&st.Z.locals&&(lt.locals=st.Z.locals);var ft,dt=0,vt={};vt.styleTagTransform=b(),vt.setAttributes=p(),vt.insert=v().bind(null,"head"),vt.domAPI=f(),vt.insertStyleElement=m(),lt.use=function(t){return vt.options=t||{},dt++||(ft=s()(st.Z,vt)),lt},lt.unuse=function(){dt>0&&!--dt&&(ft(),ft=null)};var ht=lt;function pt(t){var e,o,r,i=n.rE(t[1])+"";return{c:function(){e=(0,a.bGB)("i"),o=(0,a.fLW)(i),r=(0,a.fLW)(":"),(0,a.Ljt)(e,"class","vc-log-key"),(0,a.VHj)(e,"vc-log-key-symbol","symbol"===t[2]),(0,a.VHj)(e,"vc-log-key-private","private"===t[2])},m:function(t,n){(0,a.$Tr)(t,e,n),(0,a.R3I)(e,o),(0,a.$Tr)(t,r,n)},p:function(t,r){2&r&&i!==(i=n.rE(t[1])+"")&&(0,a.rTO)(o,i),4&r&&(0,a.VHj)(e,"vc-log-key-symbol","symbol"===t[2]),4&r&&(0,a.VHj)(e,"vc-log-key-private","private"===t[2])},d:function(t){t&&(0,a.ogt)(e),t&&(0,a.ogt)(r)}}}function gt(t){var n,e,o,r,i=void 0!==t[1]&&pt(t);return{c:function(){i&&i.c(),n=(0,a.DhX)(),e=(0,a.bGB)("i"),o=(0,a.fLW)(t[3]),(0,a.Ljt)(e,"class",r="vc-log-val vc-log-val-"+t[4]),(0,a.Ljt)(e,"style",t[0]),(0,a.VHj)(e,"vc-log-val-haskey",void 0!==t[1])},m:function(t,r){i&&i.m(t,r),(0,a.$Tr)(t,n,r),(0,a.$Tr)(t,e,r),(0,a.R3I)(e,o)},p:function(t,c){var u=c[0];void 0!==t[1]?i?i.p(t,u):((i=pt(t)).c(),i.m(n.parentNode,n)):i&&(i.d(1),i=null),8&u&&(0,a.rTO)(o,t[3]),16&u&&r!==(r="vc-log-val vc-log-val-"+t[4])&&(0,a.Ljt)(e,"class",r),1&u&&(0,a.Ljt)(e,"style",t[0]),18&u&&(0,a.VHj)(e,"vc-log-val-haskey",void 0!==t[1])},i:a.ZTd,o:a.ZTd,d:function(t){i&&i.d(t),t&&(0,a.ogt)(n),t&&(0,a.ogt)(e)}}}function mt(t,n,e){var o=n.origData,r=n.style,i=void 0===r?"":r,a=n.dataKey,u=void 0===a?void 0:a,s=n.keyType,l=void 0===s?"":s,f="",d="",v=!1;return(0,c.H3)((function(){ht.use()})),(0,c.ev)((function(){ht.unuse()})),t.$$set=function(t){"origData"in t&&e(5,o=t.origData),"style"in t&&e(0,i=t.style),"dataKey"in t&&e(1,u=t.dataKey),"keyType"in t&&e(2,l=t.keyType)},t.$$.update=function(){if(122&t.$$.dirty){e(6,v=void 0!==u);var n=(0,et.LH)(o,v);e(4,d=n.valueType),e(3,f=n.text),v||"string"!==d||e(3,f=f.replace(/\\n/g,"\n").replace(/\\t/g,"    "))}},[i,u,l,f,d,o,v]}var _t=function(n){function e(t){var e;return e=n.call(this)||this,(0,a.S1n)((0,r.Z)(e),t,mt,gt,a.AqN,{origData:5,style:0,dataKey:1,keyType:2}),e}return(0,i.Z)(e,n),(0,t.Z)(e,[{key:"origData",get:function(){return this.$$.ctx[5]},set:function(t){this.$$set({origData:t}),(0,a.yl1)()}},{key:"style",get:function(){return this.$$.ctx[0]},set:function(t){this.$$set({style:t}),(0,a.yl1)()}},{key:"dataKey",get:function(){return this.$$.ctx[1]},set:function(t){this.$$set({dataKey:t}),(0,a.yl1)()}},{key:"keyType",get:function(){return this.$$.ctx[2]},set:function(t){this.$$set({keyType:t}),(0,a.yl1)()}}]),e}(a.f_C),bt=_t,yt=__webpack_require__(1237),wt={};yt.Z&&yt.Z.locals&&(wt.locals=yt.Z.locals);var Et,Lt=0,Tt={};Tt.styleTagTransform=b(),Tt.setAttributes=p(),Tt.insert=v().bind(null,"head"),Tt.domAPI=f(),Tt.insertStyleElement=m(),wt.use=function(t){return Tt.options=t||{},Lt++||(Et=s()(yt.Z,Tt)),wt},wt.unuse=function(){Lt>0&&!--Lt&&(Et(),Et=null)};var xt=wt;function Ct(t,n,e){var o=t.slice();return o[19]=n[e],o[21]=e,o}function Ot(t,n,e){var o=t.slice();return o[19]=n[e],o}function It(t,n,e){var o=t.slice();return o[19]=n[e],o[21]=e,o}function Dt(t){for(var n,e,o,r,i,c,u,s=[],l=new Map,f=[],d=new Map,v=[],h=new Map,p=t[7],g=function(t){return t[19]},m=0;m<p.length;m+=1){var _=It(t,p,m),b=g(_);l.set(b,s[m]=$t(b,_))}for(var y=t[11]<t[7].length&&kt(t),w=t[9],E=function(t){return t[19]},L=0;L<w.length;L+=1){var T=Ot(t,w,L),x=E(T);d.set(x,f[L]=Pt(x,T))}for(var C=t[8],O=function(t){return t[19]},I=0;I<C.length;I+=1){var D=Ct(t,C,I),R=O(D);h.set(R,v[I]=St(R,D))}var $=t[12]<t[8].length&&jt(t),k=t[10]&&Bt(t);return{c:function(){n=(0,a.bGB)("div");for(var t=0;t<s.length;t+=1)s[t].c();e=(0,a.DhX)(),y&&y.c(),o=(0,a.DhX)();for(var u=0;u<f.length;u+=1)f[u].c();r=(0,a.DhX)();for(var l=0;l<v.length;l+=1)v[l].c();i=(0,a.DhX)(),$&&$.c(),c=(0,a.DhX)(),k&&k.c(),(0,a.Ljt)(n,"class","vc-log-tree-child")},m:function(t,l){(0,a.$Tr)(t,n,l);for(var d=0;d<s.length;d+=1)s[d].m(n,null);(0,a.R3I)(n,e),y&&y.m(n,null),(0,a.R3I)(n,o);for(var h=0;h<f.length;h+=1)f[h].m(n,null);(0,a.R3I)(n,r);for(var p=0;p<v.length;p+=1)v[p].m(n,null);(0,a.R3I)(n,i),$&&$.m(n,null),(0,a.R3I)(n,c),k&&k.m(n,null),u=!0},p:function(t,u){67721&u&&(p=t[7],(0,a.dvw)(),s=(0,a.GQg)(s,u,g,1,t,p,l,n,a.cly,$t,e,It),(0,a.gbL)()),t[11]<t[7].length?y?y.p(t,u):((y=kt(t)).c(),y.m(n,o)):y&&(y.d(1),y=null),66057&u&&(w=t[9],(0,a.dvw)(),f=(0,a.GQg)(f,u,E,1,t,w,d,n,a.cly,Pt,r,Ot),(0,a.gbL)()),69897&u&&(C=t[8],(0,a.dvw)(),v=(0,a.GQg)(v,u,O,1,t,C,h,n,a.cly,St,i,Ct),(0,a.gbL)()),t[12]<t[8].length?$?$.p(t,u):(($=jt(t)).c(),$.m(n,c)):$&&($.d(1),$=null),t[10]?k?(k.p(t,u),1024&u&&(0,a.Ui)(k,1)):((k=Bt(t)).c(),(0,a.Ui)(k,1),k.m(n,null)):k&&((0,a.dvw)(),(0,a.etI)(k,1,1,(function(){k=null})),(0,a.gbL)())},i:function(t){if(!u){for(var n=0;n<p.length;n+=1)(0,a.Ui)(s[n]);for(var e=0;e<w.length;e+=1)(0,a.Ui)(f[e]);for(var o=0;o<C.length;o+=1)(0,a.Ui)(v[o]);(0,a.Ui)(k),u=!0}},o:function(t){for(var n=0;n<s.length;n+=1)(0,a.etI)(s[n]);for(var e=0;e<f.length;e+=1)(0,a.etI)(f[e]);for(var o=0;o<v.length;o+=1)(0,a.etI)(v[o]);(0,a.etI)(k),u=!1},d:function(t){t&&(0,a.ogt)(n);for(var e=0;e<s.length;e+=1)s[e].d();y&&y.d();for(var o=0;o<f.length;o+=1)f[o].d();for(var r=0;r<v.length;r+=1)v[r].d();$&&$.d(),k&&k.d()}}}function Rt(t){var n,e;return n=new Gt({props:{origData:t[16](t[19]),dataKey:t[19],keyPath:t[3]+"."+t[19],toggle:t[0]}}),{c:function(){(0,a.YCL)(n.$$.fragment)},m:function(t,o){(0,a.yef)(n,t,o),e=!0},p:function(t,e){var o={};128&e&&(o.origData=t[16](t[19])),128&e&&(o.dataKey=t[19]),136&e&&(o.keyPath=t[3]+"."+t[19]),1&e&&(o.toggle=t[0]),n.$set(o)},i:function(t){e||((0,a.Ui)(n.$$.fragment,t),e=!0)},o:function(t){(0,a.etI)(n.$$.fragment,t),e=!1},d:function(t){(0,a.vpE)(n,t)}}}function $t(t,n){var e,o,r,i=n[21]<n[11]&&Rt(n);return{key:t,first:null,c:function(){e=(0,a.cSb)(),i&&i.c(),o=(0,a.cSb)(),this.first=e},m:function(t,n){(0,a.$Tr)(t,e,n),i&&i.m(t,n),(0,a.$Tr)(t,o,n),r=!0},p:function(t,e){(n=t)[21]<n[11]?i?(i.p(n,e),2176&e&&(0,a.Ui)(i,1)):((i=Rt(n)).c(),(0,a.Ui)(i,1),i.m(o.parentNode,o)):i&&((0,a.dvw)(),(0,a.etI)(i,1,1,(function(){i=null})),(0,a.gbL)())},i:function(t){r||((0,a.Ui)(i),r=!0)},o:function(t){(0,a.etI)(i),r=!1},d:function(t){t&&(0,a.ogt)(e),i&&i.d(t),t&&(0,a.ogt)(o)}}}function kt(t){var n,e,o,r,i=t[14](t[7].length-t[11])+"";return{c:function(){n=(0,a.bGB)("div"),e=(0,a.fLW)(i),(0,a.Ljt)(n,"class","vc-log-tree-loadmore")},m:function(i,c){(0,a.$Tr)(i,n,c),(0,a.R3I)(n,e),o||(r=(0,a.oLt)(n,"click",t[17]),o=!0)},p:function(t,n){2176&n&&i!==(i=t[14](t[7].length-t[11])+"")&&(0,a.rTO)(e,i)},d:function(t){t&&(0,a.ogt)(n),o=!1,r()}}}function Pt(t,n){var e,o,r;return o=new Gt({props:{origData:n[16](n[19]),dataKey:String(n[19]),keyType:"symbol",keyPath:n[3]+"["+String(n[19])+"]",toggle:n[0]}}),{key:t,first:null,c:function(){e=(0,a.cSb)(),(0,a.YCL)(o.$$.fragment),this.first=e},m:function(t,n){(0,a.$Tr)(t,e,n),(0,a.yef)(o,t,n),r=!0},p:function(t,e){n=t;var r={};512&e&&(r.origData=n[16](n[19])),512&e&&(r.dataKey=String(n[19])),520&e&&(r.keyPath=n[3]+"["+String(n[19])+"]"),1&e&&(r.toggle=n[0]),o.$set(r)},i:function(t){r||((0,a.Ui)(o.$$.fragment,t),r=!0)},o:function(t){(0,a.etI)(o.$$.fragment,t),r=!1},d:function(t){t&&(0,a.ogt)(e),(0,a.vpE)(o,t)}}}function Mt(t){var n,e;return n=new Gt({props:{origData:t[16](t[19]),dataKey:t[19],keyType:"private",keyPath:t[3]+"."+t[19],toggle:t[0]}}),{c:function(){(0,a.YCL)(n.$$.fragment)},m:function(t,o){(0,a.yef)(n,t,o),e=!0},p:function(t,e){var o={};256&e&&(o.origData=t[16](t[19])),256&e&&(o.dataKey=t[19]),264&e&&(o.keyPath=t[3]+"."+t[19]),1&e&&(o.toggle=t[0]),n.$set(o)},i:function(t){e||((0,a.Ui)(n.$$.fragment,t),e=!0)},o:function(t){(0,a.etI)(n.$$.fragment,t),e=!1},d:function(t){(0,a.vpE)(n,t)}}}function St(t,n){var e,o,r,i=n[21]<n[12]&&Mt(n);return{key:t,first:null,c:function(){e=(0,a.cSb)(),i&&i.c(),o=(0,a.cSb)(),this.first=e},m:function(t,n){(0,a.$Tr)(t,e,n),i&&i.m(t,n),(0,a.$Tr)(t,o,n),r=!0},p:function(t,e){(n=t)[21]<n[12]?i?(i.p(n,e),4352&e&&(0,a.Ui)(i,1)):((i=Mt(n)).c(),(0,a.Ui)(i,1),i.m(o.parentNode,o)):i&&((0,a.dvw)(),(0,a.etI)(i,1,1,(function(){i=null})),(0,a.gbL)())},i:function(t){r||((0,a.Ui)(i),r=!0)},o:function(t){(0,a.etI)(i),r=!1},d:function(t){t&&(0,a.ogt)(e),i&&i.d(t),t&&(0,a.ogt)(o)}}}function jt(t){var n,e,o,r,i=t[14](t[8].length-t[12])+"";return{c:function(){n=(0,a.bGB)("div"),e=(0,a.fLW)(i),(0,a.Ljt)(n,"class","vc-log-tree-loadmore")},m:function(i,c){(0,a.$Tr)(i,n,c),(0,a.R3I)(n,e),o||(r=(0,a.oLt)(n,"click",t[18]),o=!0)},p:function(t,n){4352&n&&i!==(i=t[14](t[8].length-t[12])+"")&&(0,a.rTO)(e,i)},d:function(t){t&&(0,a.ogt)(n),o=!1,r()}}}function Bt(t){var n,e;return n=new Gt({props:{origData:t[16]("__proto__"),dataKey:"__proto__",keyType:"private",keyPath:t[3]+".__proto__",toggle:t[0]}}),{c:function(){(0,a.YCL)(n.$$.fragment)},m:function(t,o){(0,a.yef)(n,t,o),e=!0},p:function(t,e){var o={};8&e&&(o.keyPath=t[3]+".__proto__"),1&e&&(o.toggle=t[0]),n.$set(o)},i:function(t){e||((0,a.Ui)(n.$$.fragment,t),e=!0)},o:function(t){(0,a.etI)(n.$$.fragment,t),e=!1},d:function(t){(0,a.vpE)(n,t)}}}function At(t){var n,e,o,r,i,c,u;o=new bt({props:{origData:t[1],dataKey:t[2],keyType:t[4]}});var s=t[6]&&t[5]&&Dt(t);return{c:function(){n=(0,a.bGB)("div"),e=(0,a.bGB)("div"),(0,a.YCL)(o.$$.fragment),r=(0,a.DhX)(),s&&s.c(),(0,a.Ljt)(e,"class","vc-log-tree-node"),(0,a.Ljt)(n,"class","vc-log-tree"),(0,a.Ljt)(n,"data-keypath",t[3]),(0,a.VHj)(n,"vc-toggle",t[5]),(0,a.VHj)(n,"vc-is-tree",t[6])},m:function(l,f){(0,a.$Tr)(l,n,f),(0,a.R3I)(n,e),(0,a.yef)(o,e,null),(0,a.R3I)(n,r),s&&s.m(n,null),i=!0,c||(u=(0,a.oLt)(e,"click",(0,a.XET)(t[15])),c=!0)},p:function(t,e){var r=e[0],c={};2&r&&(c.origData=t[1]),4&r&&(c.dataKey=t[2]),16&r&&(c.keyType=t[4]),o.$set(c),t[6]&&t[5]?s?(s.p(t,r),96&r&&(0,a.Ui)(s,1)):((s=Dt(t)).c(),(0,a.Ui)(s,1),s.m(n,null)):s&&((0,a.dvw)(),(0,a.etI)(s,1,1,(function(){s=null})),(0,a.gbL)()),(!i||8&r)&&(0,a.Ljt)(n,"data-keypath",t[3]),32&r&&(0,a.VHj)(n,"vc-toggle",t[5]),64&r&&(0,a.VHj)(n,"vc-is-tree",t[6])},i:function(t){i||((0,a.Ui)(o.$$.fragment,t),(0,a.Ui)(s),i=!0)},o:function(t){(0,a.etI)(o.$$.fragment,t),(0,a.etI)(s),i=!1},d:function(t){t&&(0,a.ogt)(n),(0,a.vpE)(o),s&&s.d(),c=!1,u()}}}function Ut(t,e,o){var r,i,a,u=e.origData,s=e.dataKey,l=void 0===s?void 0:s,f=e.keyPath,d=void 0===f?"":f,v=e.keyType,h=void 0===v?"":v,p=e.toggle,g=void 0===p?{}:p,m=!1,_=!1,b=!1,y=50,w=50;(0,c.H3)((function(){xt.use()})),(0,c.ev)((function(){xt.unuse()}));var E=function(t){"enum"===t?o(11,y+=50):"nonEnum"===t&&o(12,w+=50)};return t.$$set=function(t){"origData"in t&&o(1,u=t.origData),"dataKey"in t&&o(2,l=t.dataKey),"keyPath"in t&&o(3,d=t.keyPath),"keyType"in t&&o(4,h=t.keyType),"toggle"in t&&o(0,g=t.toggle)},t.$$.update=function(){1003&t.$$.dirty&&(o(5,m=g[d]||!1),o(6,_=!(u instanceof et.Tg)&&(n.kJ(u)||n.Kn(u))),_&&m&&(o(7,r=r||n.qr(n.MH(u))),o(8,i=i||n.qr(n.QK(u))),o(9,a=a||n._D(u)),o(10,b=n.Kn(u)&&-1===i.indexOf("__proto__"))))},[g,u,l,d,h,m,_,r,i,a,b,y,w,E,function(t){return"(..."+t+" Key"+(t>1?"s":"")+" Left)"},function(){o(5,m=!m),o(0,g[d]=m,g)},function(t){try{return u[t]}catch(t){return new et.Tg}},function(){return E("enum")},function(){return E("nonEnum")}]}var Gt=function(n){function e(t){var e;return e=n.call(this)||this,(0,a.S1n)((0,r.Z)(e),t,Ut,At,a.AqN,{origData:1,dataKey:2,keyPath:3,keyType:4,toggle:0}),e}return(0,i.Z)(e,n),(0,t.Z)(e,[{key:"origData",get:function(){return this.$$.ctx[1]},set:function(t){this.$$set({origData:t}),(0,a.yl1)()}},{key:"dataKey",get:function(){return this.$$.ctx[2]},set:function(t){this.$$set({dataKey:t}),(0,a.yl1)()}},{key:"keyPath",get:function(){return this.$$.ctx[3]},set:function(t){this.$$set({keyPath:t}),(0,a.yl1)()}},{key:"keyType",get:function(){return this.$$.ctx[4]},set:function(t){this.$$set({keyType:t}),(0,a.yl1)()}},{key:"toggle",get:function(){return this.$$.ctx[0]},set:function(t){this.$$set({toggle:t}),(0,a.yl1)()}}]),e}(a.f_C),Nt=Gt,Vt=__webpack_require__(7147),Wt={};Vt.Z&&Vt.Z.locals&&(Wt.locals=Vt.Z.locals);var Kt,Ht=0,Ft={};Ft.styleTagTransform=b(),Ft.setAttributes=p(),Ft.insert=v().bind(null,"head"),Ft.domAPI=f(),Ft.insertStyleElement=m(),Wt.use=function(t){return Ft.options=t||{},Ht++||(Kt=s()(Vt.Z,Ft)),Wt},Wt.unuse=function(){Ht>0&&!--Ht&&(Kt(),Kt=null)};var qt=Wt;function Zt(t,n,e){var o=t.slice();return o[9]=n[e],o[11]=e,o}function Xt(t,n,e){var o=t.slice();return o[12]=n[e],o}function zt(t){for(var n,e,o,r,i,c,u,s,l,f,d,v,h,p=[],g=new Map,m=t[0].groupLevel&&Yt(t),_=t[2]>0&&Qt(t),b=t[1]&&tn(t),y=t[0].repeated&&nn(t),w=t[0].data,E=function(t){return t[11]},L=0;L<w.length;L+=1){var T=Zt(t,w,L),x=E(T);g.set(x,p[L]=rn(x,T))}return l=new ut({props:{handler:t[6]}}),{c:function(){n=(0,a.bGB)("div"),m&&m.c(),e=(0,a.DhX)(),_&&_.c(),o=(0,a.DhX)(),b&&b.c(),r=(0,a.DhX)(),y&&y.c(),i=(0,a.DhX)(),c=(0,a.bGB)("div");for(var d=0;d<p.length;d+=1)p[d].c();u=(0,a.DhX)(),s=(0,a.bGB)("div"),(0,a.YCL)(l.$$.fragment),(0,a.Ljt)(c,"class","vc-log-content"),(0,a.Ljt)(s,"class","vc-logrow-icon"),(0,a.Ljt)(n,"class",f="vc-log-row vc-log-"+t[0].type),(0,a.VHj)(n,"vc-log-input","input"===t[0].cmdType),(0,a.VHj)(n,"vc-log-output","output"===t[0].cmdType),(0,a.VHj)(n,"vc-log-group",t[2]>0),(0,a.VHj)(n,"vc-toggle",1===t[2])},m:function(f,g){(0,a.$Tr)(f,n,g),m&&m.m(n,null),(0,a.R3I)(n,e),_&&_.m(n,null),(0,a.R3I)(n,o),b&&b.m(n,null),(0,a.R3I)(n,r),y&&y.m(n,null),(0,a.R3I)(n,i),(0,a.R3I)(n,c);for(var w=0;w<p.length;w+=1)p[w].m(c,null);(0,a.R3I)(n,u),(0,a.R3I)(n,s),(0,a.yef)(l,s,null),d=!0,v||(h=(0,a.oLt)(n,"click",t[5]),v=!0)},p:function(t,u){t[0].groupLevel?m?m.p(t,u):((m=Yt(t)).c(),m.m(n,e)):m&&(m.d(1),m=null),t[2]>0?_||((_=Qt(t)).c(),_.m(n,o)):_&&(_.d(1),_=null),t[1]?b?b.p(t,u):((b=tn(t)).c(),b.m(n,r)):b&&(b.d(1),b=null),t[0].repeated?y?y.p(t,u):((y=nn(t)).c(),y.m(n,i)):y&&(y.d(1),y=null),17&u&&(w=t[0].data,(0,a.dvw)(),p=(0,a.GQg)(p,u,E,1,t,w,g,c,a.cly,rn,null,Zt),(0,a.gbL)()),(!d||1&u&&f!==(f="vc-log-row vc-log-"+t[0].type))&&(0,a.Ljt)(n,"class",f),1&u&&(0,a.VHj)(n,"vc-log-input","input"===t[0].cmdType),1&u&&(0,a.VHj)(n,"vc-log-output","output"===t[0].cmdType),5&u&&(0,a.VHj)(n,"vc-log-group",t[2]>0),5&u&&(0,a.VHj)(n,"vc-toggle",1===t[2])},i:function(t){if(!d){for(var n=0;n<w.length;n+=1)(0,a.Ui)(p[n]);(0,a.Ui)(l.$$.fragment,t),d=!0}},o:function(t){for(var n=0;n<p.length;n+=1)(0,a.etI)(p[n]);(0,a.etI)(l.$$.fragment,t),d=!1},d:function(t){t&&(0,a.ogt)(n),m&&m.d(),_&&_.d(),b&&b.d(),y&&y.d();for(var e=0;e<p.length;e+=1)p[e].d();(0,a.vpE)(l),v=!1,h()}}}function Yt(t){for(var n,e=new Array(t[0].groupLevel),o=[],r=0;r<e.length;r+=1)o[r]=Jt(Xt(t,e,r));return{c:function(){for(var t=0;t<o.length;t+=1)o[t].c();n=(0,a.cSb)()},m:function(t,e){for(var r=0;r<o.length;r+=1)o[r].m(t,e);(0,a.$Tr)(t,n,e)},p:function(t,r){if(1&r){var i;for(e=new Array(t[0].groupLevel),i=0;i<e.length;i+=1){var a=Xt(t,e,i);o[i]?o[i].p(a,r):(o[i]=Jt(a),o[i].c(),o[i].m(n.parentNode,n))}for(;i<o.length;i+=1)o[i].d(1);o.length=e.length}},d:function(t){(0,a.RMB)(o,t),t&&(0,a.ogt)(n)}}}function Jt(t){var n;return{c:function(){n=(0,a.bGB)("i"),(0,a.Ljt)(n,"class","vc-log-padding")},m:function(t,e){(0,a.$Tr)(t,n,e)},p:a.ZTd,d:function(t){t&&(0,a.ogt)(n)}}}function Qt(t){var n;return{c:function(){n=(0,a.bGB)("div"),(0,a.Ljt)(n,"class","vc-log-group-toggle")},m:function(t,e){(0,a.$Tr)(t,n,e)},d:function(t){t&&(0,a.ogt)(n)}}}function tn(t){var n,e;return{c:function(){n=(0,a.bGB)("div"),e=(0,a.fLW)(t[3]),(0,a.Ljt)(n,"class","vc-log-time")},m:function(t,o){(0,a.$Tr)(t,n,o),(0,a.R3I)(n,e)},p:function(t,n){8&n&&(0,a.rTO)(e,t[3])},d:function(t){t&&(0,a.ogt)(n)}}}function nn(t){var n,e,o,r=t[0].repeated+"";return{c:function(){n=(0,a.bGB)("div"),e=(0,a.bGB)("i"),o=(0,a.fLW)(r),(0,a.Ljt)(n,"class","vc-log-repeat")},m:function(t,r){(0,a.$Tr)(t,n,r),(0,a.R3I)(n,e),(0,a.R3I)(e,o)},p:function(t,n){1&n&&r!==(r=t[0].repeated+"")&&(0,a.rTO)(o,r)},d:function(t){t&&(0,a.ogt)(n)}}}function en(t){var n,e;return n=new bt({props:{origData:t[9].origData,style:t[9].style}}),{c:function(){(0,a.YCL)(n.$$.fragment)},m:function(t,o){(0,a.yef)(n,t,o),e=!0},p:function(t,e){var o={};1&e&&(o.origData=t[9].origData),1&e&&(o.style=t[9].style),n.$set(o)},i:function(t){e||((0,a.Ui)(n.$$.fragment,t),e=!0)},o:function(t){(0,a.etI)(n.$$.fragment,t),e=!1},d:function(t){(0,a.vpE)(n,t)}}}function on(t){var n,e;return n=new Nt({props:{origData:t[9].origData,keyPath:String(t[11]),toggle:t[0].toggle}}),{c:function(){(0,a.YCL)(n.$$.fragment)},m:function(t,o){(0,a.yef)(n,t,o),e=!0},p:function(t,e){var o={};1&e&&(o.origData=t[9].origData),1&e&&(o.keyPath=String(t[11])),1&e&&(o.toggle=t[0].toggle),n.$set(o)},i:function(t){e||((0,a.Ui)(n.$$.fragment,t),e=!0)},o:function(t){(0,a.etI)(n.$$.fragment,t),e=!1},d:function(t){(0,a.vpE)(n,t)}}}function rn(t,n){var e,o,r,i,c,u,s=[on,en],l=[];function f(t,n){return 1&n&&(o=null),null==o&&(o=!!t[4](t[9].origData)),o?0:1}return r=f(n,-1),i=l[r]=s[r](n),{key:t,first:null,c:function(){e=(0,a.cSb)(),i.c(),c=(0,a.cSb)(),this.first=e},m:function(t,n){(0,a.$Tr)(t,e,n),l[r].m(t,n),(0,a.$Tr)(t,c,n),u=!0},p:function(t,e){var o=r;(r=f(n=t,e))===o?l[r].p(n,e):((0,a.dvw)(),(0,a.etI)(l[o],1,1,(function(){l[o]=null})),(0,a.gbL)(),(i=l[r])?i.p(n,e):(i=l[r]=s[r](n)).c(),(0,a.Ui)(i,1),i.m(c.parentNode,c))},i:function(t){u||((0,a.Ui)(i),u=!0)},o:function(t){(0,a.etI)(i),u=!1},d:function(t){t&&(0,a.ogt)(e),l[r].d(t),t&&(0,a.ogt)(c)}}}function an(t){var n,e,o=t[0]&&zt(t);return{c:function(){o&&o.c(),n=(0,a.cSb)()},m:function(t,r){o&&o.m(t,r),(0,a.$Tr)(t,n,r),e=!0},p:function(t,e){var r=e[0];t[0]?o?(o.p(t,r),1&r&&(0,a.Ui)(o,1)):((o=zt(t)).c(),(0,a.Ui)(o,1),o.m(n.parentNode,n)):o&&((0,a.dvw)(),(0,a.etI)(o,1,1,(function(){o=null})),(0,a.gbL)())},i:function(t){e||((0,a.Ui)(o),e=!0)},o:function(t){(0,a.etI)(o),e=!1},d:function(t){o&&o.d(t),t&&(0,a.ogt)(n)}}}function cn(t,e,o){var r=e.log,i=e.showTimestamps,a=void 0!==i&&i,u=e.groupHeader,s=void 0===u?0:u,l=(0,c.x)(),f="",d=function(t,n){var e="000"+t;return e.substring(e.length-n)};(0,c.H3)((function(){qt.use()})),(0,c.ev)((function(){qt.unuse()}));return t.$$set=function(t){"log"in t&&o(0,r=t.log),"showTimestamps"in t&&o(1,a=t.showTimestamps),"groupHeader"in t&&o(2,s=t.groupHeader)},t.$$.update=function(){if(3&t.$$.dirty&&a){var n=new Date(r.date);o(3,f=d(n.getHours(),2)+":"+d(n.getMinutes(),2)+":"+d(n.getSeconds(),2)+":"+d(n.getMilliseconds(),3))}},[r,a,s,f,function(t){return!(t instanceof et.Tg)&&(n.kJ(t)||n.Kn(t))},function(){s>0&&l("groupCollapsed",{groupLabel:r.groupLabel,groupHeader:1===s?2:1,isGroupCollapsed:1===s})},function(){var t=[];try{for(var e=0;e<r.data.length;e++)n.HD(r.data[e].origData)||n.hj(r.data[e].origData)?t.push(r.data[e].origData):t.push(n.hZ(r.data[e].origData,{maxDepth:10,keyMaxLen:1e4,pretty:!1,standardJSON:!0}))}catch(t){}return t.join(" ")}]}var un=function(n){function e(t){var e;return e=n.call(this)||this,(0,a.S1n)((0,r.Z)(e),t,cn,an,a.AqN,{log:0,showTimestamps:1,groupHeader:2}),e}return(0,i.Z)(e,n),(0,t.Z)(e,[{key:"log",get:function(){return this.$$.ctx[0]},set:function(t){this.$$set({log:t}),(0,a.yl1)()}},{key:"showTimestamps",get:function(){return this.$$.ctx[1]},set:function(t){this.$$set({showTimestamps:t}),(0,a.yl1)()}},{key:"groupHeader",get:function(){return this.$$.ctx[2]},set:function(t){this.$$set({groupHeader:t}),(0,a.yl1)()}}]),e}(a.f_C),sn=un,ln=__webpack_require__(3903),fn=__webpack_require__(3327),dn={};fn.Z&&fn.Z.locals&&(dn.locals=fn.Z.locals);var vn,hn=0,pn={};pn.styleTagTransform=b(),pn.setAttributes=p(),pn.insert=v().bind(null,"head"),pn.domAPI=f(),pn.insertStyleElement=m(),dn.use=function(t){return pn.options=t||{},hn++||(vn=s()(fn.Z,pn)),dn},dn.unuse=function(){hn>0&&!--hn&&(vn(),vn=null)};var gn=dn,mn=__webpack_require__(4264),_n=__webpack_require__.n(mn);function bn(t){var n,e,o=t[1]+"px",r=t[5].default,i=(0,a.nuO)(r,t,t[4],null);return{c:function(){n=(0,a.bGB)("div"),i&&i.c(),(0,a.Ljt)(n,"class","vc-scroller-item"),(0,a.czc)(n,"display",t[0]?"block":"none",!1),(0,a.czc)(n,"top",o,!1)},m:function(o,r){(0,a.$Tr)(o,n,r),i&&i.m(n,null),t[6](n),e=!0},p:function(t,c){var u=c[0];i&&i.p&&(!e||16&u)&&(0,a.kmG)(i,r,t,t[4],e?(0,a.u2N)(r,t[4],u,null):(0,a.VOJ)(t[4]),null),1&u&&(0,a.czc)(n,"display",t[0]?"block":"none",!1),2&u&&o!==(o=t[1]+"px")&&(0,a.czc)(n,"top",o,!1)},i:function(t){e||((0,a.Ui)(i,t),e=!0)},o:function(t){(0,a.etI)(i,t),e=!1},d:function(e){e&&(0,a.ogt)(n),i&&i.d(e),t[6](null)}}}function yn(t,n,e){var o,r=n.$$slots,i=void 0===r?{}:r,u=n.$$scope,s=n.show,l=n.top,f=n.onResize,d=void 0===f?function(){}:f,v=null;return(0,c.H3)((function(){s&&d(o.getBoundingClientRect().height),(v=new ResizeObserver((function(t){var n=t[0];s&&d(n.contentRect.height)}))).observe(o)})),(0,c.ev)((function(){v.disconnect()})),t.$$set=function(t){"show"in t&&e(0,s=t.show),"top"in t&&e(1,l=t.top),"onResize"in t&&e(3,d=t.onResize),"$$scope"in t&&e(4,u=t.$$scope)},[s,l,o,d,u,i,function(t){a.VnY[t?"unshift":"push"]((function(){e(2,o=t)}))}]}var wn=function(n){function e(t){var e;return e=n.call(this)||this,(0,a.S1n)((0,r.Z)(e),t,yn,bn,a.N8,{show:0,top:1,onResize:3}),e}return(0,i.Z)(e,n),(0,t.Z)(e,[{key:"show",get:function(){return this.$$.ctx[0]},set:function(t){this.$$set({show:t}),(0,a.yl1)()}},{key:"top",get:function(){return this.$$.ctx[1]},set:function(t){this.$$set({top:t}),(0,a.yl1)()}},{key:"onResize",get:function(){return this.$$.ctx[3]},set:function(t){this.$$set({onResize:t}),(0,a.yl1)()}}]),e}(a.f_C),En=wn,Ln=function(){function t(){this._x=0,this._endX=0,this._v=0,this._startTime=0,this._endTime=0}var n=t.prototype;return n.set=function(t,n,e,o){this._x=t,this._endX=n,this._v=(n-t)/e,this._startTime=o||Date.now(),this._endTime=this._startTime+e},n.x=function(t){if(this.done(t))return this._endX;var n=t-this._startTime;return this._x+this._v*n},n.dx=function(t){return this.done(t)?0:this._v},n.done=function(t){return t>=this._endTime},t}(),Tn=function(){function t(t){this._drag=void 0,this._dragLog=void 0,this._x=0,this._v=0,this._startTime=0,this._drag=t,this._dragLog=Math.log(t)}var n=t.prototype;return n.set=function(t,n,e){this._x=t,this._v=n,this._startTime=e||Date.now()},n.x=function(t){var n=(t-this._startTime)/1e3;return this._x+this._v*Math.pow(this._drag,n)/this._dragLog-this._v/this._dragLog},n.dx=function(t){var n=(t-this._startTime)/1e3;return this._v*Math.pow(this._drag,n)},n.done=function(t){return Math.abs(this.dx(t))<3},t}(),xn=function(t,n){return t>n-.1&&t<n+.1},Cn=function(t){return xn(t,0)},On=function(){function t(t,n,e){this._solver=void 0,this._solution=void 0,this._endPosition=void 0,this._startTime=void 0,this._solver=function(t,n,e){var o=e,r=t,i=n,a=o*o-4*r*i;if(0==a){var c=-o/(2*r);return function(t,n){var e=t,o=n/(c*t);return{x:function(t){return(e+o*t)*Math.pow(Math.E,c*t)},dx:function(t){return(c*(e+o*t)+o)*Math.pow(Math.E,c*t)}}}}if(a>0){var u=(-o-Math.sqrt(a))/(2*r),s=(-o+Math.sqrt(a))/(2*r);return function(t,n){var e=(n-u*t)/(s-u),o=t-e;return{x:function(t){return o*Math.pow(Math.E,u*t)+e*Math.pow(Math.E,s*t)},dx:function(t){return o*u*Math.pow(Math.E,u*t)+e*s*Math.pow(Math.E,s*t)}}}}var l=Math.sqrt(4*r*i-o*o)/(2*r),f=-o/2*r;return function(t,n){var e=t,o=(n-f*t)/l;return{x:function(t){return Math.pow(Math.E,f*t)*(e*Math.cos(l*t)+o*Math.sin(l*t))},dx:function(t){var n=Math.pow(Math.E,f*t),r=Math.cos(l*t),i=Math.sin(l*t);return n*(o*l*r-e*l*i)+f*n*(o*i+e*r)}}}}(t,n,e),this._solution=null,this._endPosition=0,this._startTime=0}var n=t.prototype;return n.x=function(t){if(!this._solution)return 0;var n=(t-this._startTime)/1e3;return this._endPosition+this._solution.x(n)},n.dx=function(t){if(!this._solution)return 0;var n=(t-this._startTime)/1e3;return this._solution.dx(n)},n.set=function(t,n,e,o){o||(o=Date.now()),this._endPosition=t,n==t&&Cn(e)||(this._solution=this._solver(n-t,e),this._startTime=o)},n.done=function(t){return t||(t=Date.now()),xn(this.x(t),this._endPosition)&&Cn(this.dx(t))},t}(),In=function(){function t(t,n){this._enableSpring=n,this._getExtend=void 0,this._friction=new Tn(.05),this._spring=new On(1,90,20),this._toEdge=!1,this._getExtend=t}var n=t.prototype;return n.set=function(t,n,e){if(void 0===e&&(e=Date.now()),this._friction.set(t,n,e),t>0&&n>=0)this._toEdge=!0,this._enableSpring&&this._spring.set(0,t,n,e);else{var o=this._getExtend();t<-o&&n<=0?(this._toEdge=!0,this._enableSpring&&this._spring.set(-o,t,n,e)):this._toEdge=!1}},n.x=function(t){if(this._enableSpring&&this._toEdge)return this._spring.x(t);var n=this._friction.x(t),e=this._friction.dx(t);if(n>0&&e>=0){if(this._toEdge=!0,!this._enableSpring)return 0;this._spring.set(0,n,e,t)}else{var o=this._getExtend();if(n<-o&&e<=0){if(this._toEdge=!0,!this._enableSpring)return-o;this._spring.set(-o,n,e,t)}}return n},n.dx=function(t){return this._toEdge?this._enableSpring?this._spring.dx(t):0:this._friction.dx(t)},n.done=function(t){return this._toEdge?!this._enableSpring||this._spring.done(t):this._friction.done(t)},t}();function Dn(t,n){var e,o;return function r(){if(!o){var i=Date.now();n(i),t.done(i)||(e=requestAnimationFrame(r))}}(),{cancel:function(){cancelAnimationFrame(e),o=!0}}}var Rn=function(){function t(t,n){this._updatePosition=n,this._scrollModel=void 0,this._linearModel=void 0,this._startPosition=0,this._position=0,this._animate=null,this._getExtent=void 0,this._getExtent=t,this._scrollModel=new In(t,!1),this._linearModel=new Ln}var n=t.prototype;return n.onTouchStart=function(){var t=this._position;if(t>0)t*=0;else{var n=this._getExtent();t<-n&&(t=0*(t+n)-n)}this._startPosition=this._position=t,this._animate&&(this._animate.cancel(),this._animate=null),this._updatePosition(-t)},n.onTouchMove=function(t,n){var e=n+this._startPosition;if(e>0)e*=0;else{var o=this._getExtent();e<-o&&(e=0*(e+o)-o)}this._position=e,this._updatePosition(-e)},n.onTouchEnd=function(t,n,e,o){var r=this,i=n+this._startPosition;if(i>0)i*=0;else{var a=this._getExtent();i<-a&&(i=0*(i+a)-a)}if(this._position=i,this._updatePosition(-i),!(Math.abs(n)<=.1&&Math.abs(o)<=.1)){var c=this._scrollModel;c.set(i,o),this._animate=Dn(c,(function(t){var n=r._position=c.x(t);r._updatePosition(-n)}))}},n.onTouchCancel=function(){var t=this,n=this._position;if(n>0)n*=0;else{var e=this._getExtent();n<-e&&(n=0*(n+e)-e)}this._position=n;var o=this._scrollModel;o.set(n,0),this._animate=Dn(o,(function(n){var e=t._position=o.x(n);t._updatePosition(-e)}))},n.onWheel=function(t,n){var e=this._position-n;if(this._animate&&(this._animate.cancel(),this._animate=null),e>0)e=0;else{var o=this._getExtent();e<-o&&(e=-o)}this._position=e,this._updatePosition(-e)},n.getPosition=function(){return-this._position},n.updatePosition=function(t){var n=-t-this._position;this._startPosition+=n,this._position+=n;var e=this._position;this._updatePosition(-e);var o=this._scrollModel,r=Date.now();if(!o.done(r)){var i=o.dx(r);o.set(e,i,r)}},n.scrollTo=function(t,n){var e=this;if(this._animate&&(this._animate.cancel(),this._animate=null),n>0){var o=this._linearModel;o.set(this._position,-t,n),this._animate=Dn(this._linearModel,(function(t){var n=e._position=o.x(t);e._updatePosition(-n)}))}else this._updatePosition(t)},t}();function $n(t,n){var e="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(e)return(e=e.call(t)).next.bind(e);if(Array.isArray(t)||(e=function(t,n){if(!t)return;if("string"==typeof t)return kn(t,n);var e=Object.prototype.toString.call(t).slice(8,-1);"Object"===e&&t.constructor&&(e=t.constructor.name);if("Map"===e||"Set"===e)return Array.from(t);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return kn(t,n)}(t))||n&&t&&"number"==typeof t.length){e&&(t=e);var o=0;return function(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function kn(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,o=new Array(n);e<n;e++)o[e]=t[e];return o}var Pn=function(t){var n=null,e=!1,o=function o(){e=!1,t(),n=requestAnimationFrame((function(){n=null,e&&o()}))};return{trigger:function(){null===n?o():e=!0},cancel:function(){n&&(cancelAnimationFrame(n),e=!1,n=null)}}},Mn=function(){function t(t){var n=this;this._handler=t,this._touchId=null,this._startX=0,this._startY=0,this._historyX=[],this._historyY=[],this._historyTime=[],this._wheelDeltaX=0,this._wheelDeltaY=0,this._onTouchMove=function(){var t=n._historyX[n._historyX.length-1],e=n._historyY[n._historyY.length-1];n._handler.onTouchMove(t,e)},this._onWheel=Pn((function(){var t=n._wheelDeltaX,e=n._wheelDeltaY;n._wheelDeltaX=0,n._wheelDeltaY=0,n._handler.onWheel(t,e)})),this.handleTouchStart=function(t){var e;if("1"!==(null==(e=t.target.dataset)?void 0:e.scrollable)){t.preventDefault();var o=t.touches[0];n._touchId=o.identifier,n._startX=o.pageX,n._startY=o.pageY,n._historyX=[0],n._historyY=[0],n._historyTime=[Date.now()],n._handler.onTouchStart()}},this.handleTouchMove=function(t){var e;if("1"!==(null==(e=t.target.dataset)?void 0:e.scrollable)){t.preventDefault();var o=n._getTouchDelta(t);null!==o&&(n._historyX.push(o.x),n._historyY.push(o.y),n._historyTime.push(Date.now()),n._onTouchMove())}},this.handleTouchEnd=function(t){var e;if("1"!==(null==(e=t.target.dataset)?void 0:e.scrollable)){t.preventDefault();var o=n._getTouchDelta(t);if(null!==o){for(var r=0,i=0,a=Date.now(),c=o.y,u=o.x,s=n._historyTime,l=s.length-1;l>0;l-=1){var f=a-s[l];if(f>30){r=1e3*(u-n._historyX[l])/f,i=1e3*(c-n._historyY[l])/f;break}}n._touchId=null,n._handler.onTouchEnd(o.x,o.y,r,i)}}},this.handleTouchCancel=function(t){var e;"1"!==(null==(e=t.target.dataset)?void 0:e.scrollable)&&(t.preventDefault(),null!==n._getTouchDelta(t)&&(n._touchId=null,n._handler.onTouchCancel()))},this.handleWheel=function(t){var e;"1"!==(null==(e=t.target.dataset)?void 0:e.scrollable)&&(t.preventDefault(),n._wheelDeltaX+=t.deltaX,n._wheelDeltaY+=t.deltaY,n._onWheel.trigger())}}return t.prototype._getTouchDelta=function(t){if(null===this._touchId)return null;for(var n,e=$n(t.changedTouches);!(n=e()).done;){var o=n.value;if(o.identifier===this._touchId)return{x:o.pageX-this._startX,y:o.pageY-this._startY}}return null},t}(),Sn=__webpack_require__(1142),jn={};Sn.Z&&Sn.Z.locals&&(jn.locals=Sn.Z.locals);var Bn,An=0,Un={};Un.styleTagTransform=b(),Un.setAttributes=p(),Un.insert=v().bind(null,"head"),Un.domAPI=f(),Un.insertStyleElement=m(),jn.use=function(t){return Un.options=t||{},An++||(Bn=s()(Sn.Z,Un)),jn},jn.unuse=function(){An>0&&!--An&&(Bn(),Bn=null)};var Gn=jn,Nn=function(){var t=[],n=[],e=0,o=0,r=0,i=0,a=0;return function(c,u,s){if(r===c&&i===u&&a===s)return t;var l=n.length,f=u<=o?Math.max(0,Math.min(u,Math.max(e,Math.min(o-1,s-l)))):u,d=e<=s?Math.max(s,Math.min(c,Math.max(e+1,Math.min(o,f+l)))):s;if(0===l||d-f<l){for(var v=t.length=n.length=s-u,h=0;h<v;h+=1)n[h]=h,t[h]={key:h,index:h+u,show:!0};return e=u,o=s,r=c,i=u,a=s,t}var p=0,g=0,m=0,_=0;o<f||d<e?(m=f,_=f+l):e<f?(g=f-e,m=f,_=f+l):d<o?(g=l-(o-d),m=d-l,_=d):f<=e&&o<=d&&(m=e,_=o);for(var b=f;b<u;b+=1,p+=1){var y=n[(g+p)%l],w=t[b-f];w.key=y,w.index=b,w.show=!1}for(var E=u,L=0;E<s;E+=1){var T=void 0;m<=E&&E<_?(T=n[(g+p)%l],p+=1):(T=l+L,L+=1);var x=E-f;if(x<t.length){var C=t[x];C.key=T,C.index=E,C.show=!0}else t.push({key:T,index:E,show:!0})}for(var O=s;O<d;O+=1,p+=1){var I=n[(g+p)%l],D=t[O-f];D.key=I,D.index=O,D.show=!1}for(var R=0;R<t.length;R+=1)n[R]=t[R].key;return t.sort((function(t,n){return t.key-n.key})),e=f,o=d,r=c,i=u,a=s,t}},Vn=a.lig.Map,Wn=function(t){return{}},Kn=function(t){return{}},Hn=function(t){return{}},Fn=function(t){return{}};function qn(t,n,e){var o=t.slice();return o[48]=n[e],o[50]=e,o}var Zn=function(t){return{item:1025&t[0]}},Xn=function(t){return{item:t[0][t[48].index]}},zn=function(t){return{}},Yn=function(t){return{}};function Jn(t){var n,e,o=t[22].header,r=(0,a.nuO)(o,t,t[29],Yn);return{c:function(){n=(0,a.bGB)("div"),r&&r.c(),(0,a.Ljt)(n,"class","vc-scroller-header")},m:function(o,i){(0,a.$Tr)(o,n,i),r&&r.m(n,null),t[23](n),e=!0},p:function(t,n){r&&r.p&&(!e||536870912&n[0])&&(0,a.kmG)(r,o,t,t[29],e?(0,a.u2N)(o,t[29],n,zn):(0,a.VOJ)(t[29]),Yn)},i:function(t){e||((0,a.Ui)(r,t),e=!0)},o:function(t){(0,a.etI)(r,t),e=!1},d:function(e){e&&(0,a.ogt)(n),r&&r.d(e),t[23](null)}}}function Qn(t){var n,e=t[22].empty,o=(0,a.nuO)(e,t,t[29],Fn);return{c:function(){o&&o.c()},m:function(t,e){o&&o.m(t,e),n=!0},p:function(t,r){o&&o.p&&(!n||536870912&r[0])&&(0,a.kmG)(o,e,t,t[29],n?(0,a.u2N)(e,t[29],r,Hn):(0,a.VOJ)(t[29]),Fn)},i:function(t){n||((0,a.Ui)(o,t),n=!0)},o:function(t){(0,a.etI)(o,t),n=!1},d:function(t){o&&o.d(t)}}}function te(t){for(var n,e,o=[],r=new Vn,i=t[10],c=function(t){return t[48].key},u=0;u<i.length;u+=1){var s=qn(t,i,u),l=c(s);r.set(l,o[u]=ee(l,s))}return{c:function(){for(var t=0;t<o.length;t+=1)o[t].c();n=(0,a.cSb)()},m:function(t,r){for(var i=0;i<o.length;i+=1)o[i].m(t,r);(0,a.$Tr)(t,n,r),e=!0},p:function(t,e){536874497&e[0]&&(i=t[10],(0,a.dvw)(),o=(0,a.GQg)(o,e,c,1,t,i,r,n.parentNode,a.cly,ee,n,qn),(0,a.gbL)())},i:function(t){if(!e){for(var n=0;n<i.length;n+=1)(0,a.Ui)(o[n]);e=!0}},o:function(t){for(var n=0;n<o.length;n+=1)(0,a.etI)(o[n]);e=!1},d:function(t){for(var e=0;e<o.length;e+=1)o[e].d(t);t&&(0,a.ogt)(n)}}}function ne(t){var n,e,o=t[22].item,r=(0,a.nuO)(o,t,t[29],Xn),i=r||function(t){var n;return{c:function(){n=(0,a.fLW)("Missing template")},m:function(t,e){(0,a.$Tr)(t,n,e)},d:function(t){t&&(0,a.ogt)(n)}}}();return{c:function(){i&&i.c(),n=(0,a.DhX)()},m:function(t,o){i&&i.m(t,o),(0,a.$Tr)(t,n,o),e=!0},p:function(t,n){r&&r.p&&(!e||536871937&n[0])&&(0,a.kmG)(r,o,t,t[29],e?(0,a.u2N)(o,t[29],n,Zn):(0,a.VOJ)(t[29]),Xn)},i:function(t){e||((0,a.Ui)(i,t),e=!0)},o:function(t){(0,a.etI)(i,t),e=!1},d:function(t){i&&i.d(t),t&&(0,a.ogt)(n)}}}function ee(t,n){var e,o,r;function i(){for(var t,e=arguments.length,o=new Array(e),r=0;r<e;r++)o[r]=arguments[r];return(t=n)[24].apply(t,[n[48]].concat(o))}return o=new En({props:{show:n[48].show,top:n[9][n[48].index],onResize:i,$$slots:{default:[ne]},$$scope:{ctx:n}}}),{key:t,first:null,c:function(){e=(0,a.cSb)(),(0,a.YCL)(o.$$.fragment),this.first=e},m:function(t,n){(0,a.$Tr)(t,e,n),(0,a.yef)(o,t,n),r=!0},p:function(t,e){n=t;var r={};1024&e[0]&&(r.show=n[48].show),1536&e[0]&&(r.top=n[9][n[48].index]),1024&e[0]&&(r.onResize=i),536871937&e[0]&&(r.$$scope={dirty:e,ctx:n}),o.$set(r)},i:function(t){r||((0,a.Ui)(o.$$.fragment,t),r=!0)},o:function(t){(0,a.etI)(o.$$.fragment,t),r=!1},d:function(t){t&&(0,a.ogt)(e),(0,a.vpE)(o,t)}}}function oe(t){var n,e,o=t[22].footer,r=(0,a.nuO)(o,t,t[29],Kn);return{c:function(){n=(0,a.bGB)("div"),r&&r.c(),(0,a.Ljt)(n,"class","vc-scroller-footer")},m:function(o,i){(0,a.$Tr)(o,n,i),r&&r.m(n,null),t[26](n),e=!0},p:function(t,n){r&&r.p&&(!e||536870912&n[0])&&(0,a.kmG)(r,o,t,t[29],e?(0,a.u2N)(o,t[29],n,Wn):(0,a.VOJ)(t[29]),Kn)},i:function(t){e||((0,a.Ui)(r,t),e=!0)},o:function(t){(0,a.etI)(r,t),e=!1},d:function(e){e&&(0,a.ogt)(n),r&&r.d(e),t[26](null)}}}function re(t){var n,e,o=t[7]+"%",r=t[8]+"%";return{c:function(){n=(0,a.bGB)("div"),e=(0,a.bGB)("div"),(0,a.Ljt)(e,"class","vc-scroller-scrollbar-thumb"),(0,a.czc)(e,"height",o,!1),(0,a.czc)(e,"top",r,!1),(0,a.Ljt)(n,"class","vc-scroller-scrollbar-track"),(0,a.czc)(n,"display",t[7]<100?"block":"none",!1)},m:function(t,o){(0,a.$Tr)(t,n,o),(0,a.R3I)(n,e)},p:function(t,i){128&i[0]&&o!==(o=t[7]+"%")&&(0,a.czc)(e,"height",o,!1),256&i[0]&&r!==(r=t[8]+"%")&&(0,a.czc)(e,"top",r,!1),128&i[0]&&(0,a.czc)(n,"display",t[7]<100?"block":"none",!1)},d:function(t){t&&(0,a.ogt)(n)}}}function ie(t){var n,e,o,r,i,c,u,s,l,f,d,v=t[13].header&&Jn(t),h=[te,Qn],p=[];function g(t,n){return t[0].length?0:1}i=g(t),c=p[i]=h[i](t);var m=t[13].footer&&oe(t),_=t[1]&&re(t);return{c:function(){n=(0,a.bGB)("div"),e=(0,a.bGB)("div"),v&&v.c(),o=(0,a.DhX)(),r=(0,a.bGB)("div"),c.c(),u=(0,a.DhX)(),m&&m.c(),s=(0,a.DhX)(),_&&_.c(),(0,a.Ljt)(r,"class","vc-scroller-items"),(0,a.Ljt)(e,"class","vc-scroller-contents"),(0,a.Ljt)(n,"class","vc-scroller-viewport")},m:function(c,h){(0,a.$Tr)(c,n,h),(0,a.R3I)(n,e),v&&v.m(e,null),(0,a.R3I)(e,o),(0,a.R3I)(e,r),p[i].m(r,null),t[25](r),(0,a.R3I)(e,u),m&&m.m(e,null),t[27](e),(0,a.R3I)(n,s),_&&_.m(n,null),t[28](n),l=!0,f||(d=[(0,a.oLt)(n,"touchstart",t[12].handleTouchStart),(0,a.oLt)(n,"touchmove",t[12].handleTouchMove),(0,a.oLt)(n,"touchend",t[12].handleTouchEnd),(0,a.oLt)(n,"touchcancel",t[12].handleTouchCancel),(0,a.oLt)(n,"wheel",t[12].handleWheel)],f=!0)},p:function(t,u){t[13].header?v?(v.p(t,u),8192&u[0]&&(0,a.Ui)(v,1)):((v=Jn(t)).c(),(0,a.Ui)(v,1),v.m(e,o)):v&&((0,a.dvw)(),(0,a.etI)(v,1,1,(function(){v=null})),(0,a.gbL)());var s=i;(i=g(t))===s?p[i].p(t,u):((0,a.dvw)(),(0,a.etI)(p[s],1,1,(function(){p[s]=null})),(0,a.gbL)(),(c=p[i])?c.p(t,u):(c=p[i]=h[i](t)).c(),(0,a.Ui)(c,1),c.m(r,null)),t[13].footer?m?(m.p(t,u),8192&u[0]&&(0,a.Ui)(m,1)):((m=oe(t)).c(),(0,a.Ui)(m,1),m.m(e,null)):m&&((0,a.dvw)(),(0,a.etI)(m,1,1,(function(){m=null})),(0,a.gbL)()),t[1]?_?_.p(t,u):((_=re(t)).c(),_.m(n,null)):_&&(_.d(1),_=null)},i:function(t){l||((0,a.Ui)(v),(0,a.Ui)(c),(0,a.Ui)(m),l=!0)},o:function(t){(0,a.etI)(v),(0,a.etI)(c),(0,a.etI)(m),l=!1},d:function(e){e&&(0,a.ogt)(n),v&&v.d(),p[i].d(),t[25](null),m&&m.d(),t[27](null),_&&_.d(),t[28](null),f=!1,(0,a.j7q)(d)}}}function ae(t,n,e){var o,r,i,u,s,l=n.$$slots,f=void 0===l?{}:l,d=n.$$scope,v=(0,a.XGm)(f),h=this&&this.__awaiter||function(t,n,e,o){return new(e||(e=Promise))((function(r,i){function a(t){try{u(o.next(t))}catch(t){i(t)}}function c(t){try{u(o.throw(t))}catch(t){i(t)}}function u(t){var n;t.done?r(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(a,c)}u((o=o.apply(t,n||[])).next())}))},p=n.items,g=n.itemKey,m=void 0===g?void 0:g,_=n.itemHeight,b=void 0===_?void 0:_,y=n.buffer,w=void 0===y?200:y,E=n.stickToBottom,L=void 0!==E&&E,T=n.scrollbar,x=void 0!==T&&T,C=n.start,O=void 0===C?0:C,I=n.end,D=void 0===I?0:I,R=0,$=0,k=0,P=0,M=100,S=0,j=[],B=[],A=[],U=Nn(),G=function(){return Math.max(0,P+R+$-k)},N=!0,V=!1,W=new Rn(G,(function(t){return h(void 0,void 0,void 0,_n().mark((function n(){var o;return _n().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(o=G(),N=Math.abs(t-o)<=1,e(5,u.style.transform="translateY("+-t+"px) translateZ(0)",u),K(),!V){n.next=8;break}V=!1,n.next=11;break;case 8:return n.next=10,new Promise((function(t){return setTimeout(t,0)}));case 10:X(p,t,k);case 11:case"end":return n.stop()}}),n)})))})),K=function(){var t=W.getPosition(),n=100/(P+R+$);e(8,S=t*n),e(7,M=k*n)},H=function(t){var n=G();(t||W.getPosition()>n)&&W.updatePosition(n)};function F(t){return function(t,n,o){for(var r=new Map,i=0;i<Z.length;i+=1){var a=Z[i],c=void 0===m?a:a[m];r.set(c,j[i])}e(9,B.length=j.length=t.length,B);for(var u=0,l=0;l<t.length;l+=1){var f=t[l],d=void 0===m?f:f[m];r.has(d)?j[l]=r.get(d):j[l]=o,e(9,B[l]=u,B),u+=j[l]}P=Math.max(u,n-R-$),Z=t,X(t,W.getPosition(),n),e(6,s.style.height=P+"px",s),H(N&&L),K()}(t,k,b)}var q,Z=[];function X(t,n,o){for(var r=0,i=0;r<t.length&&i+j[r]<n-w;)i+=j[r],r+=1;for(e(14,O=r);r<t.length&&o&&i<n+o+w;)i+=j[r],r+=1;e(15,D=r),e(10,A=U(t.length,O,D))}var z=function(t,n){var e;(0,c.H3)((function(){var o=t();o?(n(o.getBoundingClientRect().height),e&&e.disconnect(),(e=new ResizeObserver((function(t){var e=t[0];n(e.contentRect.height)}))).observe(o)):(n(0),e&&(e.disconnect(),e=null))})),(0,c.ev)((function(){e&&(e.disconnect(),e=null)}))};z((function(){return i}),(function(t){return h(void 0,void 0,void 0,_n().mark((function n(){var o,r;return _n().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(k!==t){n.next=2;break}return n.abrupt("return");case 2:for(k=t,o=0,r=0;r<p.length;r+=1)o+=j[r];return P=Math.max(o,k-$),e(6,s.style.height=P+"px",s),n.next=9,new Promise((function(t){return setTimeout(t,0)}));case 9:F(p),X(p,W.getPosition(),k),0!==k&&H(N&&L),K();case 13:case"end":return n.stop()}}),n)})))})),z((function(){return r}),(function(t){if($!==t){$=t;for(var n=0,o=0;o<p.length;o+=1)n+=j[o];P=Math.max(n,k-R-$),e(6,s.style.height=P+"px",s),0!==k&&H(N&&L),K()}})),z((function(){return o}),(function(t){R!==t&&(R=t,F(p),K())}));var Y=function(t,n){return h(void 0,void 0,void 0,_n().mark((function o(){var r,i,a,c;return _n().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:if(j[t]!==n&&0!==k){o.next=2;break}return o.abrupt("return");case 2:for(r=j[t],j[t]=n,i=p.length,a=t;a<i-1;a+=1)e(9,B[a+1]=B[a]+j[a],B);return P=Math.max(B[i-1]+j[i-1],k-R-$),c=W.getPosition(),V=!0,B[t]+r<c?W.updatePosition(c+n-r):H(N&&L),o.next=12,new Promise((function(t){return setTimeout(t,0)}));case 12:X(p,W.getPosition(),k),e(6,s.style.height=P+"px",s),K();case 15:case"end":return o.stop()}}),o)})))};(0,c.H3)((function(){e(21,q=!0),Gn.use()})),(0,c.ev)((function(){Gn.unuse()}));var J=new Mn(W),Q={scrollTo:function(t){var n=B[Math.max(0,Math.min(p.length-1,t))],e=Math.min(G(),n),o=Math.min(Math.floor(500*Math.abs(W.getPosition()-e)/2e3),500);W.scrollTo(e,o)}};return t.$$set=function(t){"items"in t&&e(0,p=t.items),"itemKey"in t&&e(16,m=t.itemKey),"itemHeight"in t&&e(17,b=t.itemHeight),"buffer"in t&&e(18,w=t.buffer),"stickToBottom"in t&&e(19,L=t.stickToBottom),"scrollbar"in t&&e(1,x=t.scrollbar),"start"in t&&e(14,O=t.start),"end"in t&&e(15,D=t.end),"$$scope"in t&&e(29,d=t.$$scope)},t.$$.update=function(){2097153&t.$$.dirty[0]&&q&&F(p)},[p,x,o,r,i,u,s,M,S,B,A,Y,J,v,O,D,m,b,w,L,Q,q,f,function(t){a.VnY[t?"unshift":"push"]((function(){e(2,o=t)}))},function(t,n){return Y(t.index,n)},function(t){a.VnY[t?"unshift":"push"]((function(){e(6,s=t)}))},function(t){a.VnY[t?"unshift":"push"]((function(){e(3,r=t)}))},function(t){a.VnY[t?"unshift":"push"]((function(){e(5,u=t)}))},function(t){a.VnY[t?"unshift":"push"]((function(){e(4,i=t)}))},d]}var ce=function(n){function e(t){var e;return e=n.call(this)||this,(0,a.S1n)((0,r.Z)(e),t,ae,ie,a.N8,{items:0,itemKey:16,itemHeight:17,buffer:18,stickToBottom:19,scrollbar:1,start:14,end:15,handler:20},null,[-1,-1]),e}return(0,i.Z)(e,n),(0,t.Z)(e,[{key:"items",get:function(){return this.$$.ctx[0]},set:function(t){this.$$set({items:t}),(0,a.yl1)()}},{key:"itemKey",get:function(){return this.$$.ctx[16]},set:function(t){this.$$set({itemKey:t}),(0,a.yl1)()}},{key:"itemHeight",get:function(){return this.$$.ctx[17]},set:function(t){this.$$set({itemHeight:t}),(0,a.yl1)()}},{key:"buffer",get:function(){return this.$$.ctx[18]},set:function(t){this.$$set({buffer:t}),(0,a.yl1)()}},{key:"stickToBottom",get:function(){return this.$$.ctx[19]},set:function(t){this.$$set({stickToBottom:t}),(0,a.yl1)()}},{key:"scrollbar",get:function(){return this.$$.ctx[1]},set:function(t){this.$$set({scrollbar:t}),(0,a.yl1)()}},{key:"start",get:function(){return this.$$.ctx[14]},set:function(t){this.$$set({start:t}),(0,a.yl1)()}},{key:"end",get:function(){return this.$$.ctx[15]},set:function(t){this.$$set({end:t}),(0,a.yl1)()}},{key:"handler",get:function(){return this.$$.ctx[20]}}]),e}(a.f_C),ue=ce;function se(t){var n;return{c:function(){(n=(0,a.bGB)("div")).textContent="Empty",(0,a.Ljt)(n,"slot","empty"),(0,a.Ljt)(n,"class","vc-plugin-empty")},m:function(t,e){(0,a.$Tr)(t,n,e)},p:a.ZTd,d:function(t){t&&(0,a.ogt)(n)}}}function le(t){var n,e;return(n=new sn({props:{slot:"item",log:t[16],showTimestamps:t[1],groupHeader:t[16].groupHeader}})).$on("groupCollapsed",t[6]),{c:function(){(0,a.YCL)(n.$$.fragment)},m:function(t,o){(0,a.yef)(n,t,o),e=!0},p:function(t,e){var o={};65536&e&&(o.log=t[16]),2&e&&(o.showTimestamps=t[1]),65536&e&&(o.groupHeader=t[16].groupHeader),n.$set(o)},i:function(t){e||((0,a.Ui)(n.$$.fragment,t),e=!0)},o:function(t){(0,a.etI)(n.$$.fragment,t),e=!1},d:function(t){(0,a.vpE)(n,t)}}}function fe(t){var n,e;return(n=new ln.Z({})).$on("filterText",t[5]),{c:function(){(0,a.YCL)(n.$$.fragment)},m:function(t,o){(0,a.yef)(n,t,o),e=!0},p:a.ZTd,i:function(t){e||((0,a.Ui)(n.$$.fragment,t),e=!0)},o:function(t){(0,a.etI)(n.$$.fragment,t),e=!1},d:function(t){(0,a.vpE)(n,t)}}}function de(t){var n,e,o=t[0]&&fe(t);return{c:function(){o&&o.c(),n=(0,a.cSb)()},m:function(t,r){o&&o.m(t,r),(0,a.$Tr)(t,n,r),e=!0},p:function(t,e){t[0]?o?(o.p(t,e),1&e&&(0,a.Ui)(o,1)):((o=fe(t)).c(),(0,a.Ui)(o,1),o.m(n.parentNode,n)):o&&((0,a.dvw)(),(0,a.etI)(o,1,1,(function(){o=null})),(0,a.gbL)())},i:function(t){e||((0,a.Ui)(o),e=!0)},o:function(t){(0,a.etI)(o),e=!1},d:function(t){o&&o.d(t),t&&(0,a.ogt)(n)}}}function ve(t){var n,e,o,r;function i(n){t[15](n)}var c={items:t[4],itemKey:"_id",itemHeight:30,buffer:100,stickToBottom:!0,scrollbar:!0,$$slots:{footer:[de],item:[le,function(t){return{16:t.item}},function(t){return t.item?65536:0}],empty:[se]},$$scope:{ctx:t}};return void 0!==t[3]&&(c.handler=t[3]),e=new ue({props:c}),a.VnY.push((function(){return(0,a.akz)(e,"handler",i)})),{c:function(){n=(0,a.bGB)("div"),(0,a.YCL)(e.$$.fragment),(0,a.Ljt)(n,"class","vc-plugin-content"),(0,a.VHj)(n,"vc-logs-has-cmd",t[0])},m:function(t,o){(0,a.$Tr)(t,n,o),(0,a.yef)(e,n,null),r=!0},p:function(t,r){var i=r[0],c={};16&i&&(c.items=t[4]),196611&i&&(c.$$scope={dirty:i,ctx:t}),!o&&8&i&&(o=!0,c.handler=t[3],(0,a.hjT)((function(){return o=!1}))),e.$set(c),1&i&&(0,a.VHj)(n,"vc-logs-has-cmd",t[0])},i:function(t){r||((0,a.Ui)(e.$$.fragment,t),r=!0)},o:function(t){(0,a.etI)(e.$$.fragment,t),r=!1},d:function(t){t&&(0,a.ogt)(n),(0,a.vpE)(e)}}}function he(t,n,e){var o,r=a.ZTd;t.$$.on_destroy.push((function(){return r()}));var i,u,s=n.pluginId,l=void 0===s?"default":s,f=n.showCmd,d=void 0!==f&&f,v=n.filterType,h=void 0===v?"all":v,p=n.showTimestamps,g=void 0!==p&&p,m=!1,_="",b=[];(0,c.H3)((function(){gn.use()})),(0,c.ev)((function(){gn.unuse()}));return t.$$set=function(t){"pluginId"in t&&e(7,l=t.pluginId),"showCmd"in t&&e(0,d=t.showCmd),"filterType"in t&&e(8,h=t.filterType),"showTimestamps"in t&&e(1,g=t.showTimestamps)},t.$$.update=function(){29056&t.$$.dirty&&(m||(e(2,i=ot.O.get(l)),r(),r=(0,a.LdU)(i,(function(t){return e(14,o=t)})),e(12,m=!0)),e(4,b=o.logList.filter((function(t){return("all"===h||h===t.type)&&(""===_||(0,et.HX)(t,_))&&!t.groupCollapsed}))))},[d,g,i,u,b,function(t){e(13,_=t.detail.filterText||"")},function(t){var n=t.detail.groupLabel,e=t.detail.groupHeader,o=t.detail.isGroupCollapsed;i.update((function(t){return t.logList.forEach((function(t){t.groupLabel===n&&(t.groupHeader>0?t.groupHeader=e:t.groupCollapsed=o)})),t}))},l,h,function(){u.scrollTo(0)},function(){u.scrollTo(b.length-1)},{fixedHeight:!0},m,_,o,function(t){e(3,u=t)}]}var pe=function(n){function e(t){var e;return e=n.call(this)||this,(0,a.S1n)((0,r.Z)(e),t,he,ve,a.N8,{pluginId:7,showCmd:0,filterType:8,showTimestamps:1,scrollToTop:9,scrollToBottom:10,options:11}),e}return(0,i.Z)(e,n),(0,t.Z)(e,[{key:"pluginId",get:function(){return this.$$.ctx[7]},set:function(t){this.$$set({pluginId:t}),(0,a.yl1)()}},{key:"showCmd",get:function(){return this.$$.ctx[0]},set:function(t){this.$$set({showCmd:t}),(0,a.yl1)()}},{key:"filterType",get:function(){return this.$$.ctx[8]},set:function(t){this.$$set({filterType:t}),(0,a.yl1)()}},{key:"showTimestamps",get:function(){return this.$$.ctx[1]},set:function(t){this.$$set({showTimestamps:t}),(0,a.yl1)()}},{key:"scrollToTop",get:function(){return this.$$.ctx[9]}},{key:"scrollToBottom",get:function(){return this.$$.ctx[10]}},{key:"options",get:function(){return this.$$.ctx[11]}}]),e}(a.f_C),ge=pe,me=__webpack_require__(5629),_e=function(){function t(t){this.model=void 0,this.pluginId=void 0,this.pluginId=t}return t.prototype.destroy=function(){this.model=void 0},t}(),be=function(t){function n(){for(var n,e=arguments.length,o=new Array(e),r=0;r<e;r++)o[r]=arguments[r];return(n=t.call.apply(t,[this].concat(o))||this).model=me.W.getSingleton(me.W,"VConsoleLogModel"),n}(0,i.Z)(n,t);var e=n.prototype;return e.log=function(){for(var t=arguments.length,n=new Array(t),e=0;e<t;e++)n[e]=arguments[e];this.addLog.apply(this,["log"].concat(n))},e.info=function(){for(var t=arguments.length,n=new Array(t),e=0;e<t;e++)n[e]=arguments[e];this.addLog.apply(this,["info"].concat(n))},e.debug=function(){for(var t=arguments.length,n=new Array(t),e=0;e<t;e++)n[e]=arguments[e];this.addLog.apply(this,["debug"].concat(n))},e.warn=function(){for(var t=arguments.length,n=new Array(t),e=0;e<t;e++)n[e]=arguments[e];this.addLog.apply(this,["warn"].concat(n))},e.error=function(){for(var t=arguments.length,n=new Array(t),e=0;e<t;e++)n[e]=arguments[e];this.addLog.apply(this,["error"].concat(n))},e.clear=function(){this.model&&this.model.clearPluginLog(this.pluginId)},e.addLog=function(t){if(this.model){for(var n=arguments.length,e=new Array(n>1?n-1:0),o=1;o<n;o++)e[o-1]=arguments[o];e.unshift("["+this.pluginId+"]"),this.model.addLog({type:t,origData:e},{noOrig:!0})}},n}(_e),ye=function(t){function n(n,e){var o;return(o=t.call(this,n,e,ge,{pluginId:n,filterType:"all"})||this).model=me.W.getSingleton(me.W,"VConsoleLogModel"),o.isReady=!1,o.isShow=!1,o.isInBottom=!0,o.model.bindPlugin(n),o.exporter=new be(n),o}(0,i.Z)(n,t);var e=n.prototype;return e.onReady=function(){var n,e;t.prototype.onReady.call(this),this.model.maxLogNumber=Number(null==(n=this.vConsole.option.log)?void 0:n.maxLogNumber)||1e3,this.compInstance.showTimestamps=!(null==(e=this.vConsole.option.log)||!e.showTimestamps)},e.onRemove=function(){t.prototype.onRemove.call(this),this.model.unbindPlugin(this.id)},e.onAddTopBar=function(t){for(var n=this,e=["All","Log","Info","Warn","Error"],o=[],r=0;r<e.length;r++)o.push({name:e[r],data:{type:e[r].toLowerCase()},actived:0===r,className:"",onClick:function(t,e){if(e.type===n.compInstance.filterType)return!1;n.compInstance.filterType=e.type}});o[0].className="vc-actived",t(o)},e.onAddTool=function(t){var n=this;t([{name:"Clear",global:!1,onClick:function(t){n.model.clearPluginLog(n.id),n.vConsole.triggerEvent("clearLog")}},{name:"Top",global:!1,onClick:function(t){n.compInstance.scrollToTop()}},{name:"Bottom",global:!1,onClick:function(t){n.compInstance.scrollToBottom()}}])},e.onUpdateOption=function(){var t,n,e,o;(null==(t=this.vConsole.option.log)?void 0:t.maxLogNumber)!==this.model.maxLogNumber&&(this.model.maxLogNumber=Number(null==(e=this.vConsole.option.log)?void 0:e.maxLogNumber)||1e3);!(null==(n=this.vConsole.option.log)||!n.showTimestamps)!==this.compInstance.showTimestamps&&(this.compInstance.showTimestamps=!(null==(o=this.vConsole.option.log)||!o.showTimestamps))},n}(nt),we=function(t){function e(){for(var n,e=arguments.length,o=new Array(e),r=0;r<e;r++)o[r]=arguments[r];return(n=t.call.apply(t,[this].concat(o))||this).onErrorHandler=void 0,n.resourceErrorHandler=void 0,n.rejectionHandler=void 0,n}(0,i.Z)(e,t);var o=e.prototype;return o.onReady=function(){t.prototype.onReady.call(this),this.bindErrors(),this.compInstance.showCmd=!0},o.onRemove=function(){t.prototype.onRemove.call(this),this.unbindErrors()},o.bindErrors=function(){n.FJ(window)&&n.mf(window.addEventListener)&&(this.catchWindowOnError(),this.catchResourceError(),this.catchUnhandledRejection())},o.unbindErrors=function(){n.FJ(window)&&n.mf(window.addEventListener)&&(window.removeEventListener("error",this.onErrorHandler),window.removeEventListener("error",this.resourceErrorHandler),window.removeEventListener("unhandledrejection",this.rejectionHandler))},o.catchWindowOnError=function(){var t=this;this.onErrorHandler=this.onErrorHandler?this.onErrorHandler:function(n){var e=n.message;n.filename&&(e+="\\n\\t"+n.filename.replace(location.origin,""),(n.lineno||n.colno)&&(e+=":"+n.lineno+":"+n.colno)),e+="\\n"+(!!n.error&&!!n.error.stack&&n.error.stack.toString()||""),t.model.addLog({type:"error",origData:[e]},{noOrig:!0})},window.removeEventListener("error",this.onErrorHandler),window.addEventListener("error",this.onErrorHandler)},o.catchResourceError=function(){var t=this;this.resourceErrorHandler=this.resourceErrorHandler?this.resourceErrorHandler:function(n){var e=n.target;if(["link","video","script","img","audio"].indexOf(e.localName)>-1){var o=e.href||e.src||e.currentSrc;t.model.addLog({type:"error",origData:["GET <"+e.localName+"> error: "+o]},{noOrig:!0})}},window.removeEventListener("error",this.resourceErrorHandler),window.addEventListener("error",this.resourceErrorHandler,!0)},o.catchUnhandledRejection=function(){var t=this;this.rejectionHandler=this.rejectionHandler?this.rejectionHandler:function(n){var e=n&&n.reason,o="Uncaught (in promise) ",r=[o,e];e instanceof Error&&(r=[o,{name:e.name,message:e.message,stack:e.stack}]),t.model.addLog({type:"error",origData:r},{noOrig:!0})},window.removeEventListener("unhandledrejection",this.rejectionHandler),window.addEventListener("unhandledrejection",this.rejectionHandler)},e}(ye),Ee=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.onReady=function(){t.prototype.onReady.call(this),this.printSystemInfo()},e.printSystemInfo=function(){var t=navigator.userAgent,n=[],e=t.match(/MicroMessenger\/([\d\.]+)/i),o=e&&e[1]?e[1]:null;"servicewechat.com"===location.host||console.info("[system]","Location:",location.href);var r=t.match(/(ipod).*\s([\d_]+)/i),i=t.match(/(ipad).*\s([\d_]+)/i),a=t.match(/(iphone)\sos\s([\d_]+)/i),c=t.match(/(android)\s([\d\.]+)/i),u=t.match(/(Mac OS X)\s([\d_]+)/i);n=[],c?n.push("Android "+c[2]):a?n.push("iPhone, iOS "+a[2].replace(/_/g,".")):i?n.push("iPad, iOS "+i[2].replace(/_/g,".")):r?n.push("iPod, iOS "+r[2].replace(/_/g,".")):u&&n.push("Mac, MacOS "+u[2].replace(/_/g,".")),o&&n.push("WeChat "+o),console.info("[system]","Client:",n.length?n.join(", "):"Unknown");var s=t.toLowerCase().match(/ nettype\/([^ ]+)/g);s&&s[0]&&(n=[(s=s[0].split("/"))[1]],console.info("[system]","Network:",n.length?n.join(", "):"Unknown")),console.info("[system]","UA:",t),setTimeout((function(){var t=window.performance||window.msPerformance||window.webkitPerformance;if(t&&t.timing){var n=t.timing;n.navigationStart&&console.info("[system]","navigationStart:",n.navigationStart),n.navigationStart&&n.domainLookupStart&&console.info("[system]","navigation:",n.domainLookupStart-n.navigationStart+"ms"),n.domainLookupEnd&&n.domainLookupStart&&console.info("[system]","dns:",n.domainLookupEnd-n.domainLookupStart+"ms"),n.connectEnd&&n.connectStart&&(n.connectEnd&&n.secureConnectionStart?console.info("[system]","tcp (ssl):",n.connectEnd-n.connectStart+"ms ("+(n.connectEnd-n.secureConnectionStart)+"ms)"):console.info("[system]","tcp:",n.connectEnd-n.connectStart+"ms")),n.responseStart&&n.requestStart&&console.info("[system]","request:",n.responseStart-n.requestStart+"ms"),n.responseEnd&&n.responseStart&&console.info("[system]","response:",n.responseEnd-n.responseStart+"ms"),n.domComplete&&n.domLoading&&(n.domContentLoadedEventStart&&n.domLoading?console.info("[system]","domComplete (domLoaded):",n.domComplete-n.domLoading+"ms ("+(n.domContentLoadedEventStart-n.domLoading)+"ms)"):console.info("[system]","domComplete:",n.domComplete-n.domLoading+"ms")),n.loadEventEnd&&n.loadEventStart&&console.info("[system]","loadEvent:",n.loadEventEnd-n.loadEventStart+"ms"),n.navigationStart&&n.loadEventEnd&&console.info("[system]","total (DOM):",n.loadEventEnd-n.navigationStart+"ms ("+(n.domComplete-n.navigationStart)+"ms)")}}),0)},n}(ye),Le=__webpack_require__(3313),Te=__webpack_require__(643);function xe(t,n){var e="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(e)return(e=e.call(t)).next.bind(e);if(Array.isArray(t)||(e=function(t,n){if(!t)return;if("string"==typeof t)return Ce(t,n);var e=Object.prototype.toString.call(t).slice(8,-1);"Object"===e&&t.constructor&&(e=t.constructor.name);if("Map"===e||"Set"===e)return Array.from(t);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return Ce(t,n)}(t))||n&&t&&"number"==typeof t.length){e&&(t=e);var o=0;return function(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function Ce(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,o=new Array(n);e<n;e++)o[e]=t[e];return o}var Oe=function(t,e){void 0===e&&(e={}),n.Kn(e)||(e={});var o=t?t.split("?"):[];if(o.shift(),o.length>0)for(var r,i=xe(o=o.join("?").split("&"));!(r=i()).done;){var a=r.value.split("=");try{e[a[0]]=decodeURIComponent(a[1])}catch(t){e[a[0]]=a[1]}}return e},Ie=function(t,e){var o="";switch(t){case"":case"text":case"json":if(n.HD(e))try{o=JSON.parse(e),o=n.hZ(o,{maxDepth:10,keyMaxLen:1e4,pretty:!0,standardJSON:!0})}catch(t){o=n.id(String(e),1e4)}else n.Kn(e)||n.kJ(e)?o=n.hZ(e,{maxDepth:10,keyMaxLen:1e4,pretty:!0,standardJSON:!0}):void 0!==e&&(o=Object.prototype.toString.call(e));break;default:void 0!==e&&(o=Object.prototype.toString.call(e))}return o},De=function(t){if(!t)return null;var e=null;if("string"==typeof t)try{e=JSON.parse(t)}catch(n){var o=t.split("&");if(1===o.length)e=t;else{e={};for(var r,i=xe(o);!(r=i()).done;){var a=r.value.split("=");e[a[0]]=void 0===a[1]?"undefined":a[1]}}}else if(n.TW(t)){e={};for(var c,u=xe(t);!(c=u()).done;){var s=c.value,l=s[0],f=s[1];e[l]="string"==typeof f?f:"[object Object]"}}else if(n.PO(t))e=t;else{e="[object "+n.zl(t)+"]"}return e},Re=function(t){(void 0===t&&(t=""),t.startsWith("//"))&&(t=""+new URL(window.location.href).protocol+t);return t.startsWith("http")?new URL(t):new URL(t,window.location.href)},$e=function(){this.id="",this.name="",this.method="",this.url="",this.status=0,this.statusText="",this.cancelState=0,this.readyState=0,this.header=null,this.responseType="",this.requestType=void 0,this.requestHeader=null,this.response=void 0,this.responseSize=0,this.responseSizeText="",this.startTime=0,this.startTimeText="",this.endTime=0,this.costTime=0,this.getData=null,this.postData=null,this.actived=!1,this.noVConsole=!1,this.id=(0,n.QI)()},ke=function(t){function n(e){var o;return(o=t.call(this)||this)._response=void 0,new Proxy(e,n.Handler)||(0,r.Z)(o)}return(0,i.Z)(n,t),n}($e);ke.Handler={get:function(t,n){return"response"===n?t._response:Reflect.get(t,n)},set:function(t,n,e){var o;switch(n){case"response":return t._response=Ie(t.responseType,e),!0;case"url":var r=(null==(o=e=String(e))?void 0:o.replace(new RegExp("[/]*$"),"").split("/").pop())||"Unknown";Reflect.set(t,"name",r);var i=Oe(e,t.getData);Reflect.set(t,"getData",i);break;case"status":var a=String(e)||"Unknown";Reflect.set(t,"statusText",a);break;case"startTime":if(e&&t.endTime){var c=t.endTime-e;Reflect.set(t,"costTime",c)}break;case"endTime":if(e&&t.startTime){var u=e-t.startTime;Reflect.set(t,"costTime",u)}}return Reflect.set(t,n,e)}};var Pe=function(){function t(t,n){var e=this;this.XMLReq=void 0,this.item=void 0,this.onUpdateCallback=void 0,this.XMLReq=t,this.XMLReq.onreadystatechange=function(){e.onReadyStateChange()},this.XMLReq.onabort=function(){e.onAbort()},this.XMLReq.ontimeout=function(){e.onTimeout()},this.item=new $e,this.item.requestType="xhr",this.onUpdateCallback=n}var e=t.prototype;return e.get=function(t,n){switch(n){case"_noVConsole":return this.item.noVConsole;case"open":return this.getOpen(t);case"send":return this.getSend(t);case"setRequestHeader":return this.getSetRequestHeader(t);default:var e=Reflect.get(t,n);return"function"==typeof e?e.bind(t):e}},e.set=function(t,n,e){switch(n){case"_noVConsole":return void(this.item.noVConsole=!!e);case"onreadystatechange":return this.setOnReadyStateChange(t,n,e);case"onabort":return this.setOnAbort(t,n,e);case"ontimeout":return this.setOnTimeout(t,n,e)}return Reflect.set(t,n,e)},e.onReadyStateChange=function(){this.item.readyState=this.XMLReq.readyState,this.item.responseType=this.XMLReq.responseType,this.item.endTime=Date.now(),this.item.costTime=this.item.endTime-this.item.startTime,this.updateItemByReadyState(),this.item.response=Ie(this.item.responseType,this.item.response),this.triggerUpdate()},e.onAbort=function(){this.item.cancelState=1,this.item.statusText="Abort",this.triggerUpdate()},e.onTimeout=function(){this.item.cancelState=3,this.item.statusText="Timeout",this.triggerUpdate()},e.triggerUpdate=function(){this.item.noVConsole||this.onUpdateCallback(this.item)},e.getOpen=function(t){var n=this,e=Reflect.get(t,"open");return function(){for(var o=arguments.length,r=new Array(o),i=0;i<o;i++)r[i]=arguments[i];var a=r[0],c=r[1];return n.item.method=a?a.toUpperCase():"GET",n.item.url=c||"",n.item.name=n.item.url.replace(new RegExp("[/]*$"),"").split("/").pop()||"",n.item.getData=Oe(n.item.url,{}),n.triggerUpdate(),e.apply(t,r)}},e.getSend=function(t){var n=this,e=Reflect.get(t,"send");return function(){for(var o=arguments.length,r=new Array(o),i=0;i<o;i++)r[i]=arguments[i];var a=r[0];return n.item.postData=De(a),n.triggerUpdate(),e.apply(t,r)}},e.getSetRequestHeader=function(t){var n=this,e=Reflect.get(t,"setRequestHeader");return function(){n.item.requestHeader||(n.item.requestHeader={});for(var o=arguments.length,r=new Array(o),i=0;i<o;i++)r[i]=arguments[i];return n.item.requestHeader[r[0]]=r[1],n.triggerUpdate(),e.apply(t,r)}},e.setOnReadyStateChange=function(t,n,e){var o=this;return Reflect.set(t,n,(function(){o.onReadyStateChange();for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];e.apply(t,r)}))},e.setOnAbort=function(t,n,e){var o=this;return Reflect.set(t,n,(function(){o.onAbort();for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];e.apply(t,r)}))},e.setOnTimeout=function(t,n,e){var o=this;return Reflect.set(t,n,(function(){o.onTimeout();for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];e.apply(t,r)}))},e.updateItemByReadyState=function(){switch(this.XMLReq.readyState){case 0:case 1:if(this.item.status=0,this.item.statusText="Pending",!this.item.startTime){this.item.startTime=Date.now();var t=(0,n._3)(this.item.startTime);this.item.startTimeText=t.year+"-"+t.month+"-"+t.day+" "+t.hour+":"+t.minute+":"+t.second+"."+t.millisecond}break;case 2:this.item.status=this.XMLReq.status,this.item.statusText="Loading",this.item.header={};for(var e=(this.XMLReq.getAllResponseHeaders()||"").split("\n"),o=0;o<e.length;o++){var r=e[o];if(r){var i=r.split(": "),a=i[0],c=i.slice(1).join(": ");this.item.header[a]=c}}break;case 3:this.item.status=this.XMLReq.status,this.item.statusText="Loading",this.XMLReq.response&&this.XMLReq.response.length&&(this.item.responseSize=this.XMLReq.response.length,this.item.responseSizeText=(0,n.KL)(this.item.responseSize));break;case 4:this.item.status=this.XMLReq.status||this.item.status||0,this.item.statusText=String(this.item.status),this.item.endTime=Date.now(),this.item.costTime=this.item.endTime-(this.item.startTime||this.item.endTime),this.item.response=this.XMLReq.response,this.XMLReq.response&&this.XMLReq.response.length&&(this.item.responseSize=this.XMLReq.response.length,this.item.responseSizeText=(0,n.KL)(this.item.responseSize));break;default:this.item.status=this.XMLReq.status,this.item.statusText="Unknown"}},t}(),Me=function(){function t(){}return t.create=function(t){return new Proxy(XMLHttpRequest,{construct:function(n){var e=new n;return new Proxy(e,new Pe(e,t))}})},t}();function Se(t,n){var e="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(e)return(e=e.call(t)).next.bind(e);if(Array.isArray(t)||(e=function(t,n){if(!t)return;if("string"==typeof t)return je(t,n);var e=Object.prototype.toString.call(t).slice(8,-1);"Object"===e&&t.constructor&&(e=t.constructor.name);if("Map"===e||"Set"===e)return Array.from(t);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return je(t,n)}(t))||n&&t&&"number"==typeof t.length){e&&(t=e);var o=0;return function(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function je(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,o=new Array(n);e<n;e++)o[e]=t[e];return o}Me.origXMLHttpRequest=XMLHttpRequest;var Be=function(){function t(t,n,e){this.resp=void 0,this.item=void 0,this.onUpdateCallback=void 0,this.resp=t,this.item=n,this.onUpdateCallback=e,this.mockReader()}var e=t.prototype;return e.set=function(t,n,e){return Reflect.set(t,n,e)},e.get=function(t,n){var e=this,o=Reflect.get(t,n);switch(n){case"arrayBuffer":case"blob":case"formData":case"json":case"text":return function(){return e.item.responseType=n.toLowerCase(),o.apply(t).then((function(t){return e.item.response=Ie(e.item.responseType,t),e.onUpdateCallback(e.item),t}))}}return"function"==typeof o?o.bind(t):o},e.mockReader=function(){var t,e=this;if(this.resp.body&&"function"==typeof this.resp.body.getReader){var o=this.resp.body.getReader;this.resp.body.getReader=function(){var r=o.apply(e.resp.body);if(4===e.item.readyState)return r;var i=r.read,a=r.cancel;return e.item.responseType="arraybuffer",r.read=function(){return i.apply(r).then((function(o){if(t){var r=new Uint8Array(t.length+o.value.length);r.set(t),r.set(o.value,t.length),t=r}else t=new Uint8Array(o.value);return e.item.endTime=Date.now(),e.item.costTime=e.item.endTime-(e.item.startTime||e.item.endTime),e.item.readyState=o.done?4:3,e.item.statusText=o.done?String(e.item.status):"Loading",e.item.responseSize=t.length,e.item.responseSizeText=n.KL(e.item.responseSize),o.done&&(e.item.response=Ie(e.item.responseType,t)),e.onUpdateCallback(e.item),o}))},r.cancel=function(){e.item.cancelState=2,e.item.statusText="Cancel",e.item.endTime=Date.now(),e.item.costTime=e.item.endTime-(e.item.startTime||e.item.endTime),e.item.response=Ie(e.item.responseType,t),e.onUpdateCallback(e.item);for(var n=arguments.length,o=new Array(n),i=0;i<n;i++)o[i]=arguments[i];return a.apply(r,o)},r}}},t}(),Ae=function(){function t(t){this.onUpdateCallback=void 0,this.onUpdateCallback=t}var e=t.prototype;return e.apply=function(t,n,e){var o=this,r=e[0],i=e[1],a=new $e;return this.beforeFetch(a,r,i),t.apply(window,e).then(this.afterFetch(a)).catch((function(t){throw a.endTime=Date.now(),a.costTime=a.endTime-(a.startTime||a.endTime),o.onUpdateCallback(a),t}))},e.beforeFetch=function(t,e,o){var r,i="GET",a=null;if(n.HD(e)?(i=(null==o?void 0:o.method)||"GET",r=Re(e),a=(null==o?void 0:o.headers)||null):(i=e.method||"GET",r=Re(e.url),a=e.headers),t.method=i,t.requestType="fetch",t.requestHeader=a,t.url=r.toString(),t.name=(r.pathname.split("/").pop()||"")+r.search,t.status=0,t.statusText="Pending",t.readyState=1,!t.startTime){t.startTime=Date.now();var c=n._3(t.startTime);t.startTimeText=c.year+"-"+c.month+"-"+c.day+" "+c.hour+":"+c.minute+":"+c.second+"."+c.millisecond}if("[object Headers]"===Object.prototype.toString.call(a)){t.requestHeader={};for(var u,s=Se(a);!(u=s()).done;){var l=u.value,f=l[0],d=l[1];t.requestHeader[f]=d}}else t.requestHeader=a;if(r.search&&r.searchParams){t.getData={};for(var v,h=Se(r.searchParams);!(v=h()).done;){var p=v.value,g=p[0],m=p[1];t.getData[g]=m}}null!=o&&o.body&&(t.postData=De(o.body)),this.onUpdateCallback(t)},e.afterFetch=function(t){var e=this;return function(o){t.endTime=Date.now(),t.costTime=t.endTime-(t.startTime||t.endTime),t.status=o.status,t.statusText=String(o.status);var r=!1;t.header={};for(var i,a=Se(o.headers);!(i=a()).done;){var c=i.value,u=c[0],s=c[1];t.header[u]=s,r=s.toLowerCase().indexOf("chunked")>-1||r}return r?t.readyState=3:(t.readyState=4,e.handleResponseBody(o.clone(),t).then((function(o){t.responseSize="string"==typeof o?o.length:o.byteLength,t.responseSizeText=n.KL(t.responseSize),t.response=Ie(t.responseType,o),e.onUpdateCallback(t)}))),e.onUpdateCallback(t),new Proxy(o,new Be(o,t,e.onUpdateCallback))}},e.handleResponseBody=function(t,n){var e=t.headers.get("content-type");return e&&e.includes("application/json")?(n.responseType="json",t.text()):e&&(e.includes("text/html")||e.includes("text/plain"))?(n.responseType="text",t.text()):(n.responseType="arraybuffer",t.arrayBuffer())},t}(),Ue=function(){function t(){}return t.create=function(t){return new Proxy(fetch,new Ae(t))},t}();function Ge(t,n){var e="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(e)return(e=e.call(t)).next.bind(e);if(Array.isArray(t)||(e=function(t,n){if(!t)return;if("string"==typeof t)return Ne(t,n);var e=Object.prototype.toString.call(t).slice(8,-1);"Object"===e&&t.constructor&&(e=t.constructor.name);if("Map"===e||"Set"===e)return Array.from(t);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return Ne(t,n)}(t))||n&&t&&"number"==typeof t.length){e&&(t=e);var o=0;return function(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function Ne(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,o=new Array(n);e<n;e++)o[e]=t[e];return o}Ue.origFetch=fetch;var Ve=function(t){return t instanceof Blob?t.type:t instanceof FormData?"multipart/form-data":t instanceof URLSearchParams?"application/x-www-form-urlencoded;charset=UTF-8":"text/plain;charset=UTF-8"},We=function(){function t(t){this.onUpdateCallback=void 0,this.onUpdateCallback=t}return t.prototype.apply=function(t,n,e){var o=e[0],r=e[1],i=new $e,a=Re(o);if(i.method="POST",i.url=o,i.name=(a.pathname.split("/").pop()||"")+a.search,i.requestType="ping",i.requestHeader={"Content-Type":Ve(r)},i.status=0,i.statusText="Pending",a.search&&a.searchParams){i.getData={};for(var c,u=Ge(a.searchParams);!(c=u()).done;){var s=c.value,l=s[0],f=s[1];i.getData[l]=f}}i.postData=De(r),i.startTime||(i.startTime=Date.now()),this.onUpdateCallback(i);var d=t.apply(n,e);return d?(i.endTime=Date.now(),i.costTime=i.endTime-(i.startTime||i.endTime),i.status=0,i.statusText="Sent",i.readyState=4):(i.status=500,i.statusText="Unknown"),this.onUpdateCallback(i),d},t}(),Ke=function(){function t(){}return t.create=function(t){return new Proxy(navigator.sendBeacon,new We(t))},t}();Ke.origSendBeacon=navigator.sendBeacon;var He=(0,Le.fZ)({}),Fe=function(t){function n(){var n;return(n=t.call(this)||this).maxNetworkNumber=1e3,n.itemCounter=0,n.mockXHR(),n.mockFetch(),n.mockSendBeacon(),n}(0,i.Z)(n,t);var e=n.prototype;return e.unMock=function(){window.hasOwnProperty("XMLHttpRequest")&&(window.XMLHttpRequest=Me.origXMLHttpRequest),window.hasOwnProperty("fetch")&&(window.fetch=Ue.origFetch),window.navigator.sendBeacon&&(window.navigator.sendBeacon=Ke.origSendBeacon)},e.clearLog=function(){He.set({})},e.updateRequest=function(t,n){var e=(0,Le.U2)(He),o=!!e[t];if(o){var r=e[t];for(var i in n)r[i]=n[i];n=r}He.update((function(e){return e[t]=n,e})),o||(R.x.updateTime(),this.limitListLength())},e.mockXHR=function(){var t=this;window.hasOwnProperty("XMLHttpRequest")&&(window.XMLHttpRequest=Me.create((function(n){t.updateRequest(n.id,n)})))},e.mockFetch=function(){var t=this;window.hasOwnProperty("fetch")&&(window.fetch=Ue.create((function(n){t.updateRequest(n.id,n)})))},e.mockSendBeacon=function(){var t=this;window.navigator.sendBeacon&&(window.navigator.sendBeacon=Ke.create((function(n){t.updateRequest(n.id,n)})))},e.limitListLength=function(){var t=this;if(this.itemCounter++,this.itemCounter%10==0){this.itemCounter=0;var n=(0,Le.U2)(He),e=Object.keys(n);e.length>this.maxNetworkNumber-10&&He.update((function(n){for(var o=e.splice(0,e.length-t.maxNetworkNumber+10),r=0;r<o.length;r++)n[o[r]]=void 0,delete n[o[r]];return n}))}},n}(Te.N),qe=__webpack_require__(8747),Ze={};qe.Z&&qe.Z.locals&&(Ze.locals=qe.Z.locals);var Xe,ze=0,Ye={};Ye.styleTagTransform=b(),Ye.setAttributes=p(),Ye.insert=v().bind(null,"head"),Ye.domAPI=f(),Ye.insertStyleElement=m(),Ze.use=function(t){return Ye.options=t||{},ze++||(Xe=s()(qe.Z,Ye)),Ze},Ze.unuse=function(){ze>0&&!--ze&&(Xe(),Xe=null)};var Je=Ze;function Qe(t,n,e){var o=t.slice();return o[11]=n[e][0],o[12]=n[e][1],o}function to(t,n,e){var o=t.slice();return o[11]=n[e][0],o[12]=n[e][1],o}function no(t,n,e){var o=t.slice();return o[11]=n[e][0],o[12]=n[e][1],o}function eo(t,n,e){var o=t.slice();return o[11]=n[e][0],o[12]=n[e][1],o}function oo(t){var n,e,o;return{c:function(){n=(0,a.fLW)("("),e=(0,a.fLW)(t[0]),o=(0,a.fLW)(")")},m:function(t,r){(0,a.$Tr)(t,n,r),(0,a.$Tr)(t,e,r),(0,a.$Tr)(t,o,r)},p:function(t,n){1&n&&(0,a.rTO)(e,t[0])},d:function(t){t&&(0,a.ogt)(n),t&&(0,a.ogt)(e),t&&(0,a.ogt)(o)}}}function ro(t){var n,e,o,r,i,c,u=t[0]>0&&oo(t);return{c:function(){n=(0,a.bGB)("dl"),e=(0,a.bGB)("dd"),o=(0,a.fLW)("Name "),u&&u.c(),(r=(0,a.bGB)("dd")).textContent="Method",(i=(0,a.bGB)("dd")).textContent="Status",(c=(0,a.bGB)("dd")).textContent="Time",(0,a.Ljt)(e,"class","vc-table-col vc-table-col-4"),(0,a.Ljt)(r,"class","vc-table-col"),(0,a.Ljt)(i,"class","vc-table-col"),(0,a.Ljt)(c,"class","vc-table-col"),(0,a.Ljt)(n,"class","vc-table-row")},m:function(t,s){(0,a.$Tr)(t,n,s),(0,a.R3I)(n,e),(0,a.R3I)(e,o),u&&u.m(e,null),(0,a.R3I)(n,r),(0,a.R3I)(n,i),(0,a.R3I)(n,c)},p:function(t,n){t[0]>0?u?u.p(t,n):((u=oo(t)).c(),u.m(e,null)):u&&(u.d(1),u=null)},d:function(t){t&&(0,a.ogt)(n),u&&u.d()}}}function io(t){var n;return{c:function(){(n=(0,a.bGB)("div")).textContent="Empty",(0,a.Ljt)(n,"slot","empty"),(0,a.Ljt)(n,"class","vc-plugin-empty")},m:function(t,e){(0,a.$Tr)(t,n,e)},p:a.ZTd,d:function(t){t&&(0,a.ogt)(n)}}}function ao(t){var n,e,o,r,i,c,u,s;c=new ut({props:{content:t[10].requestHeader}});for(var l=Object.entries(t[10].requestHeader),f=[],d=0;d<l.length;d+=1)f[d]=co(eo(t,l,d));return{c:function(){n=(0,a.bGB)("div"),e=(0,a.bGB)("dl"),o=(0,a.bGB)("dt"),r=(0,a.fLW)("Request Headers\n                "),i=(0,a.bGB)("i"),(0,a.YCL)(c.$$.fragment),u=(0,a.DhX)();for(var t=0;t<f.length;t+=1)f[t].c();(0,a.Ljt)(i,"class","vc-table-row-icon"),(0,a.Ljt)(o,"class","vc-table-col vc-table-col-title"),(0,a.Ljt)(e,"class","vc-table-row vc-left-border")},m:function(t,l){(0,a.$Tr)(t,n,l),(0,a.R3I)(n,e),(0,a.R3I)(e,o),(0,a.R3I)(o,r),(0,a.R3I)(o,i),(0,a.yef)(c,i,null),(0,a.R3I)(n,u);for(var d=0;d<f.length;d+=1)f[d].m(n,null);s=!0},p:function(t,e){var o={};if(1024&e&&(o.content=t[10].requestHeader),c.$set(o),1040&e){var r;for(l=Object.entries(t[10].requestHeader),r=0;r<l.length;r+=1){var i=eo(t,l,r);f[r]?f[r].p(i,e):(f[r]=co(i),f[r].c(),f[r].m(n,null))}for(;r<f.length;r+=1)f[r].d(1);f.length=l.length}},i:function(t){s||((0,a.Ui)(c.$$.fragment,t),s=!0)},o:function(t){(0,a.etI)(c.$$.fragment,t),s=!1},d:function(t){t&&(0,a.ogt)(n),(0,a.vpE)(c),(0,a.RMB)(f,t)}}}function co(t){var n,e,o,r,i,c,u,s=t[11]+"",l=t[4](t[12])+"";return{c:function(){n=(0,a.bGB)("div"),e=(0,a.bGB)("div"),o=(0,a.fLW)(s),r=(0,a.DhX)(),i=(0,a.bGB)("div"),c=(0,a.fLW)(l),u=(0,a.DhX)(),(0,a.Ljt)(e,"class","vc-table-col vc-table-col-2"),(0,a.Ljt)(i,"class","vc-table-col vc-table-col-4 vc-table-col-value vc-max-height-line"),(0,a.Ljt)(n,"class","vc-table-row vc-left-border vc-small")},m:function(t,s){(0,a.$Tr)(t,n,s),(0,a.R3I)(n,e),(0,a.R3I)(e,o),(0,a.R3I)(n,r),(0,a.R3I)(n,i),(0,a.R3I)(i,c),(0,a.R3I)(n,u)},p:function(t,n){1024&n&&s!==(s=t[11]+"")&&(0,a.rTO)(o,s),1024&n&&l!==(l=t[4](t[12])+"")&&(0,a.rTO)(c,l)},d:function(t){t&&(0,a.ogt)(n)}}}function uo(t){var n,e,o,r,i,c,u,s;c=new ut({props:{content:t[10].getData}});for(var l=Object.entries(t[10].getData),f=[],d=0;d<l.length;d+=1)f[d]=so(no(t,l,d));return{c:function(){n=(0,a.bGB)("div"),e=(0,a.bGB)("dl"),o=(0,a.bGB)("dt"),r=(0,a.fLW)("Query String Parameters\n                "),i=(0,a.bGB)("i"),(0,a.YCL)(c.$$.fragment),u=(0,a.DhX)();for(var t=0;t<f.length;t+=1)f[t].c();(0,a.Ljt)(i,"class","vc-table-row-icon"),(0,a.Ljt)(o,"class","vc-table-col vc-table-col-title"),(0,a.Ljt)(e,"class","vc-table-row vc-left-border")},m:function(t,l){(0,a.$Tr)(t,n,l),(0,a.R3I)(n,e),(0,a.R3I)(e,o),(0,a.R3I)(o,r),(0,a.R3I)(o,i),(0,a.yef)(c,i,null),(0,a.R3I)(n,u);for(var d=0;d<f.length;d+=1)f[d].m(n,null);s=!0},p:function(t,e){var o={};if(1024&e&&(o.content=t[10].getData),c.$set(o),1040&e){var r;for(l=Object.entries(t[10].getData),r=0;r<l.length;r+=1){var i=no(t,l,r);f[r]?f[r].p(i,e):(f[r]=so(i),f[r].c(),f[r].m(n,null))}for(;r<f.length;r+=1)f[r].d(1);f.length=l.length}},i:function(t){s||((0,a.Ui)(c.$$.fragment,t),s=!0)},o:function(t){(0,a.etI)(c.$$.fragment,t),s=!1},d:function(t){t&&(0,a.ogt)(n),(0,a.vpE)(c),(0,a.RMB)(f,t)}}}function so(t){var n,e,o,r,i,c,u,s=t[11]+"",l=t[4](t[12])+"";return{c:function(){n=(0,a.bGB)("div"),e=(0,a.bGB)("div"),o=(0,a.fLW)(s),r=(0,a.DhX)(),i=(0,a.bGB)("div"),c=(0,a.fLW)(l),u=(0,a.DhX)(),(0,a.Ljt)(e,"class","vc-table-col vc-table-col-2"),(0,a.Ljt)(i,"class","vc-table-col vc-table-col-4 vc-table-col-value vc-max-height-line"),(0,a.Ljt)(n,"class","vc-table-row vc-left-border vc-small")},m:function(t,s){(0,a.$Tr)(t,n,s),(0,a.R3I)(n,e),(0,a.R3I)(e,o),(0,a.R3I)(n,r),(0,a.R3I)(n,i),(0,a.R3I)(i,c),(0,a.R3I)(n,u)},p:function(t,n){1024&n&&s!==(s=t[11]+"")&&(0,a.rTO)(o,s),1024&n&&l!==(l=t[4](t[12])+"")&&(0,a.rTO)(c,l)},d:function(t){t&&(0,a.ogt)(n)}}}function lo(t){var n,e,o,r,i,c,u,s;function l(t,n){return"string"==typeof t[10].postData?vo:fo}c=new ut({props:{content:t[10].postData}});var f=l(t),d=f(t);return{c:function(){n=(0,a.bGB)("div"),e=(0,a.bGB)("dl"),o=(0,a.bGB)("dt"),r=(0,a.fLW)("Request Payload\n                "),i=(0,a.bGB)("i"),(0,a.YCL)(c.$$.fragment),u=(0,a.DhX)(),d.c(),(0,a.Ljt)(i,"class","vc-table-row-icon"),(0,a.Ljt)(o,"class","vc-table-col vc-table-col-title"),(0,a.Ljt)(e,"class","vc-table-row vc-left-border")},m:function(t,l){(0,a.$Tr)(t,n,l),(0,a.R3I)(n,e),(0,a.R3I)(e,o),(0,a.R3I)(o,r),(0,a.R3I)(o,i),(0,a.yef)(c,i,null),(0,a.R3I)(n,u),d.m(n,null),s=!0},p:function(t,e){var o={};1024&e&&(o.content=t[10].postData),c.$set(o),f===(f=l(t))&&d?d.p(t,e):(d.d(1),(d=f(t))&&(d.c(),d.m(n,null)))},i:function(t){s||((0,a.Ui)(c.$$.fragment,t),s=!0)},o:function(t){(0,a.etI)(c.$$.fragment,t),s=!1},d:function(t){t&&(0,a.ogt)(n),(0,a.vpE)(c),d.d()}}}function fo(t){for(var n,e=Object.entries(t[10].postData),o=[],r=0;r<e.length;r+=1)o[r]=ho(to(t,e,r));return{c:function(){for(var t=0;t<o.length;t+=1)o[t].c();n=(0,a.cSb)()},m:function(t,e){for(var r=0;r<o.length;r+=1)o[r].m(t,e);(0,a.$Tr)(t,n,e)},p:function(t,r){if(1040&r){var i;for(e=Object.entries(t[10].postData),i=0;i<e.length;i+=1){var a=to(t,e,i);o[i]?o[i].p(a,r):(o[i]=ho(a),o[i].c(),o[i].m(n.parentNode,n))}for(;i<o.length;i+=1)o[i].d(1);o.length=e.length}},d:function(t){(0,a.RMB)(o,t),t&&(0,a.ogt)(n)}}}function vo(t){var n,e,o,r=t[10].postData+"";return{c:function(){n=(0,a.bGB)("div"),e=(0,a.bGB)("pre"),o=(0,a.fLW)(r),(0,a.Ljt)(e,"class","vc-table-col vc-table-col-value vc-max-height-line"),(0,a.Ljt)(e,"data-scrollable","1"),(0,a.Ljt)(n,"class","vc-table-row vc-left-border vc-small")},m:function(t,r){(0,a.$Tr)(t,n,r),(0,a.R3I)(n,e),(0,a.R3I)(e,o)},p:function(t,n){1024&n&&r!==(r=t[10].postData+"")&&(0,a.rTO)(o,r)},d:function(t){t&&(0,a.ogt)(n)}}}function ho(t){var n,e,o,r,i,c,u,s=t[11]+"",l=t[4](t[12])+"";return{c:function(){n=(0,a.bGB)("div"),e=(0,a.bGB)("div"),o=(0,a.fLW)(s),r=(0,a.DhX)(),i=(0,a.bGB)("div"),c=(0,a.fLW)(l),u=(0,a.DhX)(),(0,a.Ljt)(e,"class","vc-table-col vc-table-col-2"),(0,a.Ljt)(i,"class","vc-table-col vc-table-col-4 vc-table-col-value vc-max-height-line"),(0,a.Ljt)(i,"data-scrollable","1"),(0,a.Ljt)(n,"class","vc-table-row vc-left-border vc-small")},m:function(t,s){(0,a.$Tr)(t,n,s),(0,a.R3I)(n,e),(0,a.R3I)(e,o),(0,a.R3I)(n,r),(0,a.R3I)(n,i),(0,a.R3I)(i,c),(0,a.R3I)(n,u)},p:function(t,n){1024&n&&s!==(s=t[11]+"")&&(0,a.rTO)(o,s),1024&n&&l!==(l=t[4](t[12])+"")&&(0,a.rTO)(c,l)},d:function(t){t&&(0,a.ogt)(n)}}}function po(t){var n,e,o,r,i,c,u,s;c=new ut({props:{content:t[10].header}});for(var l=Object.entries(t[10].header),f=[],d=0;d<l.length;d+=1)f[d]=go(Qe(t,l,d));return{c:function(){n=(0,a.bGB)("div"),e=(0,a.bGB)("dl"),o=(0,a.bGB)("dt"),r=(0,a.fLW)("Response Headers\n                "),i=(0,a.bGB)("i"),(0,a.YCL)(c.$$.fragment),u=(0,a.DhX)();for(var t=0;t<f.length;t+=1)f[t].c();(0,a.Ljt)(i,"class","vc-table-row-icon"),(0,a.Ljt)(o,"class","vc-table-col vc-table-col-title"),(0,a.Ljt)(e,"class","vc-table-row vc-left-border")},m:function(t,l){(0,a.$Tr)(t,n,l),(0,a.R3I)(n,e),(0,a.R3I)(e,o),(0,a.R3I)(o,r),(0,a.R3I)(o,i),(0,a.yef)(c,i,null),(0,a.R3I)(n,u);for(var d=0;d<f.length;d+=1)f[d].m(n,null);s=!0},p:function(t,e){var o={};if(1024&e&&(o.content=t[10].header),c.$set(o),1040&e){var r;for(l=Object.entries(t[10].header),r=0;r<l.length;r+=1){var i=Qe(t,l,r);f[r]?f[r].p(i,e):(f[r]=go(i),f[r].c(),f[r].m(n,null))}for(;r<f.length;r+=1)f[r].d(1);f.length=l.length}},i:function(t){s||((0,a.Ui)(c.$$.fragment,t),s=!0)},o:function(t){(0,a.etI)(c.$$.fragment,t),s=!1},d:function(t){t&&(0,a.ogt)(n),(0,a.vpE)(c),(0,a.RMB)(f,t)}}}function go(t){var n,e,o,r,i,c,u,s=t[11]+"",l=t[4](t[12])+"";return{c:function(){n=(0,a.bGB)("div"),e=(0,a.bGB)("div"),o=(0,a.fLW)(s),r=(0,a.DhX)(),i=(0,a.bGB)("div"),c=(0,a.fLW)(l),u=(0,a.DhX)(),(0,a.Ljt)(e,"class","vc-table-col vc-table-col-2"),(0,a.Ljt)(i,"class","vc-table-col vc-table-col-4 vc-table-col-value vc-max-height-line"),(0,a.Ljt)(n,"class","vc-table-row vc-left-border vc-small")},m:function(t,s){(0,a.$Tr)(t,n,s),(0,a.R3I)(n,e),(0,a.R3I)(e,o),(0,a.R3I)(n,r),(0,a.R3I)(n,i),(0,a.R3I)(i,c),(0,a.R3I)(n,u)},p:function(t,n){1024&n&&s!==(s=t[11]+"")&&(0,a.rTO)(o,s),1024&n&&l!==(l=t[4](t[12])+"")&&(0,a.rTO)(c,l)},d:function(t){t&&(0,a.ogt)(n)}}}function mo(t){var n,e,o,r,i,c=t[10].responseSizeText+"";return{c:function(){n=(0,a.bGB)("div"),(e=(0,a.bGB)("div")).textContent="Size",o=(0,a.DhX)(),r=(0,a.bGB)("div"),i=(0,a.fLW)(c),(0,a.Ljt)(e,"class","vc-table-col vc-table-col-2"),(0,a.Ljt)(r,"class","vc-table-col vc-table-col-4 vc-table-col-value vc-max-height-line"),(0,a.Ljt)(n,"class","vc-table-row vc-left-border vc-small")},m:function(t,c){(0,a.$Tr)(t,n,c),(0,a.R3I)(n,e),(0,a.R3I)(n,o),(0,a.R3I)(n,r),(0,a.R3I)(r,i)},p:function(t,n){1024&n&&c!==(c=t[10].responseSizeText+"")&&(0,a.rTO)(i,c)},d:function(t){t&&(0,a.ogt)(n)}}}function _o(t){var n,e,o,r,i,c,u,s,l,f,d,v,h,p,g,m,_,b,y,w,E,L,T,x,C,O,I,D,R,$,k,P,M,S,j,B,A,U,G,N,V,W,K,H,F,q,Z,X,z,Y,J,Q,tt,nt,et,ot,rt,it,at,ct,st,lt,ft,dt,vt,ht,pt,gt,mt=t[10].name+"",_t=t[10].method+"",bt=t[10].statusText+"",yt=t[10].costTime+"",wt=t[10].url+"",Et=t[10].method+"",Lt=t[10].requestType+"",Tt=t[10].status+"",xt=t[10].startTimeText+"",Ct=(t[10].response||"")+"";function Ot(){return t[7](t[10])}b=new ut({props:{handler:t[3],content:t[10]}});var It=null!==t[10].requestHeader&&ao(t),Dt=null!==t[10].getData&&uo(t),Rt=null!==t[10].postData&&lo(t),$t=null!==t[10].header&&po(t);at=new ut({props:{content:t[10].response}});var kt=t[10].responseSize>0&&mo(t);return{c:function(){n=(0,a.bGB)("div"),e=(0,a.bGB)("dl"),o=(0,a.bGB)("dd"),r=(0,a.fLW)(mt),i=(0,a.bGB)("dd"),c=(0,a.fLW)(_t),u=(0,a.bGB)("dd"),s=(0,a.fLW)(bt),l=(0,a.bGB)("dd"),f=(0,a.fLW)(yt),d=(0,a.DhX)(),v=(0,a.bGB)("div"),h=(0,a.bGB)("div"),p=(0,a.bGB)("dl"),g=(0,a.bGB)("dt"),m=(0,a.fLW)("General\n                "),_=(0,a.bGB)("i"),(0,a.YCL)(b.$$.fragment),y=(0,a.DhX)(),w=(0,a.bGB)("div"),(E=(0,a.bGB)("div")).textContent="URL",L=(0,a.DhX)(),T=(0,a.bGB)("div"),x=(0,a.fLW)(wt),C=(0,a.DhX)(),O=(0,a.bGB)("div"),(I=(0,a.bGB)("div")).textContent="Method",D=(0,a.DhX)(),R=(0,a.bGB)("div"),$=(0,a.fLW)(Et),k=(0,a.DhX)(),P=(0,a.bGB)("div"),(M=(0,a.bGB)("div")).textContent="Request Type",S=(0,a.DhX)(),j=(0,a.bGB)("div"),B=(0,a.fLW)(Lt),A=(0,a.DhX)(),U=(0,a.bGB)("div"),(G=(0,a.bGB)("div")).textContent="HTTP Status",N=(0,a.DhX)(),V=(0,a.bGB)("div"),W=(0,a.fLW)(Tt),K=(0,a.DhX)(),H=(0,a.bGB)("div"),(F=(0,a.bGB)("div")).textContent="Start Time",q=(0,a.DhX)(),Z=(0,a.bGB)("div"),X=(0,a.fLW)(xt),z=(0,a.DhX)(),It&&It.c(),Y=(0,a.DhX)(),Dt&&Dt.c(),J=(0,a.DhX)(),Rt&&Rt.c(),Q=(0,a.DhX)(),$t&&$t.c(),tt=(0,a.DhX)(),nt=(0,a.bGB)("div"),et=(0,a.bGB)("dl"),ot=(0,a.bGB)("dt"),rt=(0,a.fLW)("Response\n                "),it=(0,a.bGB)("i"),(0,a.YCL)(at.$$.fragment),ct=(0,a.DhX)(),kt&&kt.c(),st=(0,a.DhX)(),lt=(0,a.bGB)("div"),ft=(0,a.bGB)("pre"),dt=(0,a.fLW)(Ct),(0,a.Ljt)(o,"class","vc-table-col vc-table-col-4"),(0,a.Ljt)(i,"class","vc-table-col"),(0,a.Ljt)(u,"class","vc-table-col"),(0,a.Ljt)(l,"class","vc-table-col"),(0,a.Ljt)(e,"class","vc-table-row vc-group-preview"),(0,a.VHj)(e,"vc-table-row-error",t[10].status>=400),(0,a.Ljt)(_,"class","vc-table-row-icon"),(0,a.Ljt)(g,"class","vc-table-col vc-table-col-title"),(0,a.Ljt)(p,"class","vc-table-row vc-left-border"),(0,a.Ljt)(E,"class","vc-table-col vc-table-col-2"),(0,a.Ljt)(T,"class","vc-table-col vc-table-col-4 vc-table-col-value vc-max-height-line"),(0,a.Ljt)(w,"class","vc-table-row vc-left-border vc-small"),(0,a.Ljt)(I,"class","vc-table-col vc-table-col-2"),(0,a.Ljt)(R,"class","vc-table-col vc-table-col-4 vc-table-col-value vc-max-height-line"),(0,a.Ljt)(O,"class","vc-table-row vc-left-border vc-small"),(0,a.Ljt)(M,"class","vc-table-col vc-table-col-2"),(0,a.Ljt)(j,"class","vc-table-col vc-table-col-4 vc-table-col-value vc-max-height-line"),(0,a.Ljt)(P,"class","vc-table-row vc-left-border vc-small"),(0,a.Ljt)(G,"class","vc-table-col vc-table-col-2"),(0,a.Ljt)(V,"class","vc-table-col vc-table-col-4 vc-table-col-value vc-max-height-line"),(0,a.Ljt)(U,"class","vc-table-row vc-left-border vc-small"),(0,a.Ljt)(F,"class","vc-table-col vc-table-col-2"),(0,a.Ljt)(Z,"class","vc-table-col vc-table-col-4 vc-table-col-value vc-max-height-line"),(0,a.Ljt)(H,"class","vc-table-row vc-left-border vc-small"),(0,a.Ljt)(it,"class","vc-table-row-icon"),(0,a.Ljt)(ot,"class","vc-table-col vc-table-col-title"),(0,a.Ljt)(et,"class","vc-table-row vc-left-border"),(0,a.Ljt)(ft,"class","vc-table-col vc-max-height vc-min-height"),(0,a.Ljt)(ft,"data-scrollable","1"),(0,a.Ljt)(lt,"class","vc-table-row vc-left-border vc-small"),(0,a.Ljt)(v,"class","vc-group-detail"),(0,a.Ljt)(n,"slot","item"),(0,a.Ljt)(n,"class","vc-group"),(0,a.Ljt)(n,"id",vt=t[10].id),(0,a.VHj)(n,"vc-actived",t[10].actived)},m:function(t,ut){(0,a.$Tr)(t,n,ut),(0,a.R3I)(n,e),(0,a.R3I)(e,o),(0,a.R3I)(o,r),(0,a.R3I)(e,i),(0,a.R3I)(i,c),(0,a.R3I)(e,u),(0,a.R3I)(u,s),(0,a.R3I)(e,l),(0,a.R3I)(l,f),(0,a.R3I)(n,d),(0,a.R3I)(n,v),(0,a.R3I)(v,h),(0,a.R3I)(h,p),(0,a.R3I)(p,g),(0,a.R3I)(g,m),(0,a.R3I)(g,_),(0,a.yef)(b,_,null),(0,a.R3I)(h,y),(0,a.R3I)(h,w),(0,a.R3I)(w,E),(0,a.R3I)(w,L),(0,a.R3I)(w,T),(0,a.R3I)(T,x),(0,a.R3I)(h,C),(0,a.R3I)(h,O),(0,a.R3I)(O,I),(0,a.R3I)(O,D),(0,a.R3I)(O,R),(0,a.R3I)(R,$),(0,a.R3I)(h,k),(0,a.R3I)(h,P),(0,a.R3I)(P,M),(0,a.R3I)(P,S),(0,a.R3I)(P,j),(0,a.R3I)(j,B),(0,a.R3I)(h,A),(0,a.R3I)(h,U),(0,a.R3I)(U,G),(0,a.R3I)(U,N),(0,a.R3I)(U,V),(0,a.R3I)(V,W),(0,a.R3I)(h,K),(0,a.R3I)(h,H),(0,a.R3I)(H,F),(0,a.R3I)(H,q),(0,a.R3I)(H,Z),(0,a.R3I)(Z,X),(0,a.R3I)(v,z),It&&It.m(v,null),(0,a.R3I)(v,Y),Dt&&Dt.m(v,null),(0,a.R3I)(v,J),Rt&&Rt.m(v,null),(0,a.R3I)(v,Q),$t&&$t.m(v,null),(0,a.R3I)(v,tt),(0,a.R3I)(v,nt),(0,a.R3I)(nt,et),(0,a.R3I)(et,ot),(0,a.R3I)(ot,rt),(0,a.R3I)(ot,it),(0,a.yef)(at,it,null),(0,a.R3I)(nt,ct),kt&&kt.m(nt,null),(0,a.R3I)(nt,st),(0,a.R3I)(nt,lt),(0,a.R3I)(lt,ft),(0,a.R3I)(ft,dt),ht=!0,pt||(gt=(0,a.oLt)(e,"click",Ot),pt=!0)},p:function(o,i){t=o,(!ht||1024&i)&&mt!==(mt=t[10].name+"")&&(0,a.rTO)(r,mt),(!ht||1024&i)&&_t!==(_t=t[10].method+"")&&(0,a.rTO)(c,_t),(!ht||1024&i)&&bt!==(bt=t[10].statusText+"")&&(0,a.rTO)(s,bt),(!ht||1024&i)&&yt!==(yt=t[10].costTime+"")&&(0,a.rTO)(f,yt),1024&i&&(0,a.VHj)(e,"vc-table-row-error",t[10].status>=400);var u={};1024&i&&(u.content=t[10]),b.$set(u),(!ht||1024&i)&&wt!==(wt=t[10].url+"")&&(0,a.rTO)(x,wt),(!ht||1024&i)&&Et!==(Et=t[10].method+"")&&(0,a.rTO)($,Et),(!ht||1024&i)&&Lt!==(Lt=t[10].requestType+"")&&(0,a.rTO)(B,Lt),(!ht||1024&i)&&Tt!==(Tt=t[10].status+"")&&(0,a.rTO)(W,Tt),(!ht||1024&i)&&xt!==(xt=t[10].startTimeText+"")&&(0,a.rTO)(X,xt),null!==t[10].requestHeader?It?(It.p(t,i),1024&i&&(0,a.Ui)(It,1)):((It=ao(t)).c(),(0,a.Ui)(It,1),It.m(v,Y)):It&&((0,a.dvw)(),(0,a.etI)(It,1,1,(function(){It=null})),(0,a.gbL)()),null!==t[10].getData?Dt?(Dt.p(t,i),1024&i&&(0,a.Ui)(Dt,1)):((Dt=uo(t)).c(),(0,a.Ui)(Dt,1),Dt.m(v,J)):Dt&&((0,a.dvw)(),(0,a.etI)(Dt,1,1,(function(){Dt=null})),(0,a.gbL)()),null!==t[10].postData?Rt?(Rt.p(t,i),1024&i&&(0,a.Ui)(Rt,1)):((Rt=lo(t)).c(),(0,a.Ui)(Rt,1),Rt.m(v,Q)):Rt&&((0,a.dvw)(),(0,a.etI)(Rt,1,1,(function(){Rt=null})),(0,a.gbL)()),null!==t[10].header?$t?($t.p(t,i),1024&i&&(0,a.Ui)($t,1)):(($t=po(t)).c(),(0,a.Ui)($t,1),$t.m(v,tt)):$t&&((0,a.dvw)(),(0,a.etI)($t,1,1,(function(){$t=null})),(0,a.gbL)());var l={};1024&i&&(l.content=t[10].response),at.$set(l),t[10].responseSize>0?kt?kt.p(t,i):((kt=mo(t)).c(),kt.m(nt,st)):kt&&(kt.d(1),kt=null),(!ht||1024&i)&&Ct!==(Ct=(t[10].response||"")+"")&&(0,a.rTO)(dt,Ct),(!ht||1024&i&&vt!==(vt=t[10].id))&&(0,a.Ljt)(n,"id",vt),1024&i&&(0,a.VHj)(n,"vc-actived",t[10].actived)},i:function(t){ht||((0,a.Ui)(b.$$.fragment,t),(0,a.Ui)(It),(0,a.Ui)(Dt),(0,a.Ui)(Rt),(0,a.Ui)($t),(0,a.Ui)(at.$$.fragment,t),ht=!0)},o:function(t){(0,a.etI)(b.$$.fragment,t),(0,a.etI)(It),(0,a.etI)(Dt),(0,a.etI)(Rt),(0,a.etI)($t),(0,a.etI)(at.$$.fragment,t),ht=!1},d:function(t){t&&(0,a.ogt)(n),(0,a.vpE)(b),It&&It.d(),Dt&&Dt.d(),Rt&&Rt.d(),$t&&$t.d(),(0,a.vpE)(at),kt&&kt.d(),pt=!1,gt()}}}function bo(t){var n,e,o,r;return o=new ue({props:{items:t[1],itemKey:"id",itemHeight:30,buffer:100,stickToBottom:!0,scrollbar:!0,$$slots:{item:[_o,function(t){return{10:t.item}},function(t){return t.item?1024:0}],empty:[io],header:[ro]},$$scope:{ctx:t}}}),{c:function(){n=(0,a.bGB)("div"),e=(0,a.bGB)("div"),(0,a.YCL)(o.$$.fragment),(0,a.Ljt)(e,"class","vc-plugin-content"),(0,a.Ljt)(n,"class","vc-table")},m:function(t,i){(0,a.$Tr)(t,n,i),(0,a.R3I)(n,e),(0,a.yef)(o,e,null),r=!0},p:function(t,n){var e=n[0],r={};2&e&&(r.items=t[1]),2098177&e&&(r.$$scope={dirty:e,ctx:t}),o.$set(r)},i:function(t){r||((0,a.Ui)(o.$$.fragment,t),r=!0)},o:function(t){(0,a.etI)(o.$$.fragment,t),r=!1},d:function(t){t&&(0,a.ogt)(n),(0,a.vpE)(o)}}}function yo(t,e,o){var r;(0,a.FIv)(t,He,(function(t){return o(6,r=t)}));var i=0,u=function(t){o(0,i=Object.keys(t).length)},s=He.subscribe(u);u(r);var l=[],f=function(t){(0,a.fxP)(He,r[t].actived=!r[t].actived,r)};(0,c.H3)((function(){Je.use()})),(0,c.ev)((function(){s(),Je.unuse()}));return t.$$.update=function(){64&t.$$.dirty&&o(1,l=Object.values(r))},[i,l,f,function(t){var e="curl -X "+t.method;return"string"==typeof t.postData?e+=" -d '"+t.postData+"'":"object"==typeof t.postData&&null!==t.postData&&(e+=" -d '"+n.hZ(t.postData)+"'"),e+" '"+t.url+"'"},function(t){return n.Kn(t)||n.kJ(t)?n.hZ(t,{maxDepth:10,keyMaxLen:1e4,pretty:!0}):t},{fixedHeight:!0},r,function(t){return f(t.id)}]}var wo=function(n){function e(t){var e;return e=n.call(this)||this,(0,a.S1n)((0,r.Z)(e),t,yo,bo,a.N8,{options:5}),e}return(0,i.Z)(e,n),(0,t.Z)(e,[{key:"options",get:function(){return this.$$.ctx[5]}}]),e}(a.f_C),Eo=wo,Lo=function(t){function n(){for(var n,e=arguments.length,o=new Array(e),r=0;r<e;r++)o[r]=arguments[r];return(n=t.call.apply(t,[this].concat(o))||this).model=Fe.getSingleton(Fe,"VConsoleNetworkModel"),n}(0,i.Z)(n,t);var e=n.prototype;return e.add=function(t){var n=new ke(new $e);for(var e in t)n[e]=t[e];return n.startTime=n.startTime||Date.now(),n.requestType=n.requestType||"custom",this.model.updateRequest(n.id,n),n},e.update=function(t,n){this.model.updateRequest(t,n)},e.clear=function(){this.model.clearLog()},n}(_e),To=function(t){function n(n,e,o){var r;return void 0===o&&(o={}),(r=t.call(this,n,e,Eo,o)||this).model=Fe.getSingleton(Fe,"VConsoleNetworkModel"),r.exporter=void 0,r.exporter=new Lo(n),r}(0,i.Z)(n,t);var e=n.prototype;return e.onReady=function(){t.prototype.onReady.call(this),this.onUpdateOption()},e.onAddTool=function(t){var n=this;t([{name:"Clear",global:!1,onClick:function(t){n.model.clearLog()}}])},e.onRemove=function(){t.prototype.onRemove.call(this),this.model&&this.model.unMock()},e.onUpdateOption=function(){var t,n;(null==(t=this.vConsole.option.network)?void 0:t.maxNetworkNumber)!==this.model.maxNetworkNumber&&(this.model.maxNetworkNumber=Number(null==(n=this.vConsole.option.network)?void 0:n.maxNetworkNumber)||1e3)},n}(nt),xo=__webpack_require__(8679),Co=__webpack_require__.n(xo),Oo=(0,Le.fZ)(),Io=(0,Le.fZ)(),Do=__webpack_require__(5670),Ro={};Do.Z&&Do.Z.locals&&(Ro.locals=Do.Z.locals);var $o,ko=0,Po={};Po.styleTagTransform=b(),Po.setAttributes=p(),Po.insert=v().bind(null,"head"),Po.domAPI=f(),Po.insertStyleElement=m(),Ro.use=function(t){return Po.options=t||{},ko++||($o=s()(Do.Z,Po)),Ro},Ro.unuse=function(){ko>0&&!--ko&&($o(),$o=null)};var Mo=Ro;function So(t,n,e){var o=t.slice();return o[8]=n[e],o}function jo(t,n,e){var o=t.slice();return o[11]=n[e],o}function Bo(t){var n,e,o,r=t[0].nodeType===Node.ELEMENT_NODE&&Ao(t),i=t[0].nodeType===Node.TEXT_NODE&&Xo(t);return{c:function(){n=(0,a.bGB)("div"),r&&r.c(),e=(0,a.DhX)(),i&&i.c(),(0,a.Ljt)(n,"class","vcelm-l"),(0,a.VHj)(n,"vc-actived",t[0]._isActived),(0,a.VHj)(n,"vc-toggle",t[0]._isExpand),(0,a.VHj)(n,"vcelm-noc",t[0]._isSingleLine)},m:function(t,c){(0,a.$Tr)(t,n,c),r&&r.m(n,null),(0,a.R3I)(n,e),i&&i.m(n,null),o=!0},p:function(t,o){t[0].nodeType===Node.ELEMENT_NODE?r?(r.p(t,o),1&o&&(0,a.Ui)(r,1)):((r=Ao(t)).c(),(0,a.Ui)(r,1),r.m(n,e)):r&&((0,a.dvw)(),(0,a.etI)(r,1,1,(function(){r=null})),(0,a.gbL)()),t[0].nodeType===Node.TEXT_NODE?i?i.p(t,o):((i=Xo(t)).c(),i.m(n,null)):i&&(i.d(1),i=null),1&o&&(0,a.VHj)(n,"vc-actived",t[0]._isActived),1&o&&(0,a.VHj)(n,"vc-toggle",t[0]._isExpand),1&o&&(0,a.VHj)(n,"vcelm-noc",t[0]._isSingleLine)},i:function(t){o||((0,a.Ui)(r),o=!0)},o:function(t){(0,a.etI)(r),o=!1},d:function(t){t&&(0,a.ogt)(n),r&&r.d(),i&&i.d()}}}function Ao(t){var n,e,o,r,i,c,u,s,l,f,d=t[0].nodeName+"",v=(t[0].className||t[0].attributes.length)&&Uo(t),h=t[0]._isNullEndTag&&Wo(t),p=t[0].childNodes.length>0&&Ko(t),g=!t[0]._isNullEndTag&&Zo(t);return{c:function(){n=(0,a.bGB)("span"),e=(0,a.fLW)("<"),o=(0,a.fLW)(d),v&&v.c(),r=(0,a.cSb)(),h&&h.c(),i=(0,a.fLW)(">"),p&&p.c(),c=(0,a.cSb)(),g&&g.c(),u=(0,a.cSb)(),(0,a.Ljt)(n,"class","vcelm-node")},m:function(d,m){(0,a.$Tr)(d,n,m),(0,a.R3I)(n,e),(0,a.R3I)(n,o),v&&v.m(n,null),(0,a.R3I)(n,r),h&&h.m(n,null),(0,a.R3I)(n,i),p&&p.m(d,m),(0,a.$Tr)(d,c,m),g&&g.m(d,m),(0,a.$Tr)(d,u,m),s=!0,l||(f=(0,a.oLt)(n,"click",t[2]),l=!0)},p:function(t,e){(!s||1&e)&&d!==(d=t[0].nodeName+"")&&(0,a.rTO)(o,d),t[0].className||t[0].attributes.length?v?v.p(t,e):((v=Uo(t)).c(),v.m(n,r)):v&&(v.d(1),v=null),t[0]._isNullEndTag?h||((h=Wo(t)).c(),h.m(n,i)):h&&(h.d(1),h=null),t[0].childNodes.length>0?p?(p.p(t,e),1&e&&(0,a.Ui)(p,1)):((p=Ko(t)).c(),(0,a.Ui)(p,1),p.m(c.parentNode,c)):p&&((0,a.dvw)(),(0,a.etI)(p,1,1,(function(){p=null})),(0,a.gbL)()),t[0]._isNullEndTag?g&&(g.d(1),g=null):g?g.p(t,e):((g=Zo(t)).c(),g.m(u.parentNode,u))},i:function(t){s||((0,a.Ui)(p),s=!0)},o:function(t){(0,a.etI)(p),s=!1},d:function(t){t&&(0,a.ogt)(n),v&&v.d(),h&&h.d(),p&&p.d(t),t&&(0,a.ogt)(c),g&&g.d(t),t&&(0,a.ogt)(u),l=!1,f()}}}function Uo(t){for(var n,e=t[0].attributes,o=[],r=0;r<e.length;r+=1)o[r]=Vo(jo(t,e,r));return{c:function(){n=(0,a.bGB)("i");for(var t=0;t<o.length;t+=1)o[t].c();(0,a.Ljt)(n,"class","vcelm-k")},m:function(t,e){(0,a.$Tr)(t,n,e);for(var r=0;r<o.length;r+=1)o[r].m(n,null)},p:function(t,r){if(1&r){var i;for(e=t[0].attributes,i=0;i<e.length;i+=1){var a=jo(t,e,i);o[i]?o[i].p(a,r):(o[i]=Vo(a),o[i].c(),o[i].m(n,null))}for(;i<o.length;i+=1)o[i].d(1);o.length=e.length}},d:function(t){t&&(0,a.ogt)(n),(0,a.RMB)(o,t)}}}function Go(t){var n,e=t[11].name+"";return{c:function(){n=(0,a.fLW)(e)},m:function(t,e){(0,a.$Tr)(t,n,e)},p:function(t,o){1&o&&e!==(e=t[11].name+"")&&(0,a.rTO)(n,e)},d:function(t){t&&(0,a.ogt)(n)}}}function No(t){var n,e,o,r,i,c=t[11].name+"",u=t[11].value+"";return{c:function(){n=(0,a.fLW)(c),e=(0,a.fLW)('="'),o=(0,a.bGB)("i"),r=(0,a.fLW)(u),i=(0,a.fLW)('"'),(0,a.Ljt)(o,"class","vcelm-v")},m:function(t,c){(0,a.$Tr)(t,n,c),(0,a.$Tr)(t,e,c),(0,a.$Tr)(t,o,c),(0,a.R3I)(o,r),(0,a.$Tr)(t,i,c)},p:function(t,e){1&e&&c!==(c=t[11].name+"")&&(0,a.rTO)(n,c),1&e&&u!==(u=t[11].value+"")&&(0,a.rTO)(r,u)},d:function(t){t&&(0,a.ogt)(n),t&&(0,a.ogt)(e),t&&(0,a.ogt)(o),t&&(0,a.ogt)(i)}}}function Vo(t){var n,e;function o(t,n){return""!==t[11].value?No:Go}var r=o(t),i=r(t);return{c:function(){n=(0,a.fLW)(" \n            "),i.c(),e=(0,a.cSb)()},m:function(t,o){(0,a.$Tr)(t,n,o),i.m(t,o),(0,a.$Tr)(t,e,o)},p:function(t,n){r===(r=o(t))&&i?i.p(t,n):(i.d(1),(i=r(t))&&(i.c(),i.m(e.parentNode,e)))},d:function(t){t&&(0,a.ogt)(n),i.d(t),t&&(0,a.ogt)(e)}}}function Wo(t){var n;return{c:function(){n=(0,a.fLW)("/")},m:function(t,e){(0,a.$Tr)(t,n,e)},d:function(t){t&&(0,a.ogt)(n)}}}function Ko(t){var n,e,o,r,i=[Fo,Ho],c=[];function u(t,n){return t[0]._isExpand?1:0}return n=u(t),e=c[n]=i[n](t),{c:function(){e.c(),o=(0,a.cSb)()},m:function(t,e){c[n].m(t,e),(0,a.$Tr)(t,o,e),r=!0},p:function(t,r){var s=n;(n=u(t))===s?c[n].p(t,r):((0,a.dvw)(),(0,a.etI)(c[s],1,1,(function(){c[s]=null})),(0,a.gbL)(),(e=c[n])?e.p(t,r):(e=c[n]=i[n](t)).c(),(0,a.Ui)(e,1),e.m(o.parentNode,o))},i:function(t){r||((0,a.Ui)(e),r=!0)},o:function(t){(0,a.etI)(e),r=!1},d:function(t){c[n].d(t),t&&(0,a.ogt)(o)}}}function Ho(t){for(var n,e,o=t[0].childNodes,r=[],i=0;i<o.length;i+=1)r[i]=qo(So(t,o,i));var c=function(t){return(0,a.etI)(r[t],1,1,(function(){r[t]=null}))};return{c:function(){for(var t=0;t<r.length;t+=1)r[t].c();n=(0,a.cSb)()},m:function(t,o){for(var i=0;i<r.length;i+=1)r[i].m(t,o);(0,a.$Tr)(t,n,o),e=!0},p:function(t,e){if(1&e){var i;for(o=t[0].childNodes,i=0;i<o.length;i+=1){var u=So(t,o,i);r[i]?(r[i].p(u,e),(0,a.Ui)(r[i],1)):(r[i]=qo(u),r[i].c(),(0,a.Ui)(r[i],1),r[i].m(n.parentNode,n))}for((0,a.dvw)(),i=o.length;i<r.length;i+=1)c(i);(0,a.gbL)()}},i:function(t){if(!e){for(var n=0;n<o.length;n+=1)(0,a.Ui)(r[n]);e=!0}},o:function(t){r=r.filter(Boolean);for(var n=0;n<r.length;n+=1)(0,a.etI)(r[n]);e=!1},d:function(t){(0,a.RMB)(r,t),t&&(0,a.ogt)(n)}}}function Fo(t){var n;return{c:function(){n=(0,a.fLW)("...")},m:function(t,e){(0,a.$Tr)(t,n,e)},p:a.ZTd,i:a.ZTd,o:a.ZTd,d:function(t){t&&(0,a.ogt)(n)}}}function qo(t){var n,e,o;return(n=new Jo({props:{node:t[8]}})).$on("toggleNode",t[4]),{c:function(){(0,a.YCL)(n.$$.fragment),e=(0,a.DhX)()},m:function(t,r){(0,a.yef)(n,t,r),(0,a.$Tr)(t,e,r),o=!0},p:function(t,e){var o={};1&e&&(o.node=t[8]),n.$set(o)},i:function(t){o||((0,a.Ui)(n.$$.fragment,t),o=!0)},o:function(t){(0,a.etI)(n.$$.fragment,t),o=!1},d:function(t){(0,a.vpE)(n,t),t&&(0,a.ogt)(e)}}}function Zo(t){var n,e,o,r,i=t[0].nodeName+"";return{c:function(){n=(0,a.bGB)("span"),e=(0,a.fLW)("</"),o=(0,a.fLW)(i),r=(0,a.fLW)(">"),(0,a.Ljt)(n,"class","vcelm-node")},m:function(t,i){(0,a.$Tr)(t,n,i),(0,a.R3I)(n,e),(0,a.R3I)(n,o),(0,a.R3I)(n,r)},p:function(t,n){1&n&&i!==(i=t[0].nodeName+"")&&(0,a.rTO)(o,i)},d:function(t){t&&(0,a.ogt)(n)}}}function Xo(t){var n,e,o=t[1](t[0].textContent)+"";return{c:function(){n=(0,a.bGB)("span"),e=(0,a.fLW)(o),(0,a.Ljt)(n,"class","vcelm-t vcelm-noc")},m:function(t,o){(0,a.$Tr)(t,n,o),(0,a.R3I)(n,e)},p:function(t,n){1&n&&o!==(o=t[1](t[0].textContent)+"")&&(0,a.rTO)(e,o)},d:function(t){t&&(0,a.ogt)(n)}}}function zo(t){var n,e,o=t[0]&&Bo(t);return{c:function(){o&&o.c(),n=(0,a.cSb)()},m:function(t,r){o&&o.m(t,r),(0,a.$Tr)(t,n,r),e=!0},p:function(t,e){var r=e[0];t[0]?o?(o.p(t,r),1&r&&(0,a.Ui)(o,1)):((o=Bo(t)).c(),(0,a.Ui)(o,1),o.m(n.parentNode,n)):o&&((0,a.dvw)(),(0,a.etI)(o,1,1,(function(){o=null})),(0,a.gbL)())},i:function(t){e||((0,a.Ui)(o),e=!0)},o:function(t){(0,a.etI)(o),e=!1},d:function(t){o&&o.d(t),t&&(0,a.ogt)(n)}}}function Yo(t,n,e){var o;(0,a.FIv)(t,Io,(function(t){return e(3,o=t)}));var r=n.node,i=(0,c.x)(),u=["br","hr","img","input","link","meta"];(0,c.H3)((function(){Mo.use()})),(0,c.ev)((function(){Mo.unuse()}));return t.$$set=function(t){"node"in t&&e(0,r=t.node)},t.$$.update=function(){9&t.$$.dirty&&r&&(e(0,r._isActived=r===o,r),e(0,r._isNullEndTag=function(t){return u.indexOf(t.nodeName)>-1}(r),r),e(0,r._isSingleLine=0===r.childNodes.length||r._isNullEndTag,r))},[r,function(t){return t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")},function(){r._isNullEndTag||(e(0,r._isExpand=!r._isExpand,r),i("toggleNode",{node:r}))},o,function(n){a.cKT.call(this,t,n)}]}var Jo=function(n){function e(t){var e;return e=n.call(this)||this,(0,a.S1n)((0,r.Z)(e),t,Yo,zo,a.N8,{node:0}),e}return(0,i.Z)(e,n),(0,t.Z)(e,[{key:"node",get:function(){return this.$$.ctx[0]},set:function(t){this.$$set({node:t}),(0,a.yl1)()}}]),e}(a.f_C),Qo=Jo;function tr(t){var n,e,o;return(e=new Qo({props:{node:t[0]}})).$on("toggleNode",t[1]),{c:function(){n=(0,a.bGB)("div"),(0,a.YCL)(e.$$.fragment),(0,a.Ljt)(n,"class","vc-plugin-content")},m:function(t,r){(0,a.$Tr)(t,n,r),(0,a.yef)(e,n,null),o=!0},p:function(t,n){var o={};1&n[0]&&(o.node=t[0]),e.$set(o)},i:function(t){o||((0,a.Ui)(e.$$.fragment,t),o=!0)},o:function(t){(0,a.etI)(e.$$.fragment,t),o=!1},d:function(t){t&&(0,a.ogt)(n),(0,a.vpE)(e)}}}function nr(t,n,e){var o;return(0,a.FIv)(t,Oo,(function(t){return e(0,o=t)})),[o,function(n){a.cKT.call(this,t,n)}]}var er=function(t){function n(n){var e;return e=t.call(this)||this,(0,a.S1n)((0,r.Z)(e),n,nr,tr,a.N8,{}),e}return(0,i.Z)(n,t),n}(a.f_C),or=er,rr=function(t){function n(n,e,o){var r;return void 0===o&&(o={}),(r=t.call(this,n,e,or,o)||this).isInited=!1,r.observer=void 0,r.nodeMap=void 0,r}(0,i.Z)(n,t);var e=n.prototype;return e.onShow=function(){this.isInited||this._init()},e.onRemove=function(){t.prototype.onRemove.call(this),this.isInited&&(this.observer.disconnect(),this.isInited=!1,this.nodeMap=void 0,Oo.set(void 0))},e.onAddTool=function(t){var n=this;t([{name:"Expand",global:!1,onClick:function(t){n._expandActivedNode()}},{name:"Collapse",global:!1,onClick:function(t){n._collapseActivedNode()}}])},e._init=function(){var t=this;this.isInited=!0,this.nodeMap=new WeakMap;var n=this._generateVNode(document.documentElement);n._isExpand=!0,Io.set(n),Oo.set(n),this.compInstance.$on("toggleNode",(function(t){Io.set(t.detail.node)})),this.observer=new(Co())((function(n){for(var e=0;e<n.length;e++){var o=n[e];t._isInVConsole(o.target)||t._handleMutation(o)}})),this.observer.observe(document.documentElement,{attributes:!0,childList:!0,characterData:!0,subtree:!0})},e._handleMutation=function(t){switch(t.type){case"childList":t.removedNodes.length>0&&this._onChildRemove(t),t.addedNodes.length>0&&this._onChildAdd(t);break;case"attributes":this._onAttributesChange(t);break;case"characterData":this._onCharacterDataChange(t)}},e._onChildRemove=function(t){var n=this.nodeMap.get(t.target);if(n){for(var e=0;e<t.removedNodes.length;e++){var o=this.nodeMap.get(t.removedNodes[e]);if(o){for(var r=0;r<n.childNodes.length;r++)if(n.childNodes[r]===o){n.childNodes.splice(r,1);break}this.nodeMap.delete(t.removedNodes[e])}}this._refreshStore()}},e._onChildAdd=function(t){var n=this.nodeMap.get(t.target);if(n){for(var e=0;e<t.addedNodes.length;e++){var o=t.addedNodes[e],r=this._generateVNode(o);if(r){var i=void 0,a=o;do{if(null===a.nextSibling)break;a.nodeType===Node.ELEMENT_NODE&&(i=this.nodeMap.get(a.nextSibling)||void 0),a=a.nextSibling}while(void 0===i);if(void 0===i)n.childNodes.push(r);else for(var c=0;c<n.childNodes.length;c++)if(n.childNodes[c]===i){n.childNodes.splice(c,0,r);break}}}this._refreshStore()}},e._onAttributesChange=function(t){this._updateVNodeAttributes(t.target),this._refreshStore()},e._onCharacterDataChange=function(t){var n=this.nodeMap.get(t.target);n&&(n.textContent=t.target.textContent,this._refreshStore())},e._generateVNode=function(t){if(!this._isIgnoredNode(t)){var n={nodeType:t.nodeType,nodeName:t.nodeName.toLowerCase(),textContent:"",id:"",className:"",attributes:[],childNodes:[]};if(this.nodeMap.set(t,n),n.nodeType!=t.TEXT_NODE&&n.nodeType!=t.DOCUMENT_TYPE_NODE||(n.textContent=t.textContent),t.childNodes.length>0){n.childNodes=[];for(var e=0;e<t.childNodes.length;e++){var o=this._generateVNode(t.childNodes[e]);o&&n.childNodes.push(o)}}return this._updateVNodeAttributes(t),n}},e._updateVNodeAttributes=function(t){var n=this.nodeMap.get(t);if(n&&t instanceof Element&&(n.id=t.id||"",n.className=t.className||"",t.hasAttributes&&t.hasAttributes())){n.attributes=[];for(var e=0;e<t.attributes.length;e++)n.attributes.push({name:t.attributes[e].name,value:t.attributes[e].value||""})}},e._expandActivedNode=function(){var t=(0,Le.U2)(Io);if(t._isExpand)for(var n=0;n<t.childNodes.length;n++)t.childNodes[n]._isExpand=!0;else t._isExpand=!0;this._refreshStore()},e._collapseActivedNode=function(){var t=(0,Le.U2)(Io);if(t._isExpand){for(var n=!1,e=0;e<t.childNodes.length;e++)t.childNodes[e]._isExpand&&(n=!0,t.childNodes[e]._isExpand=!1);n||(t._isExpand=!1),this._refreshStore()}},e._isIgnoredNode=function(t){if(t.nodeType===t.TEXT_NODE){if(""===t.textContent.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$|\n+/g,""))return!0}else if(t.nodeType===t.COMMENT_NODE)return!0;return!1},e._isInVConsole=function(t){for(var n=t;void 0!==n;){if("__vconsole"==n.id)return!0;n=n.parentElement||void 0}return!1},e._refreshStore=function(){Oo.update((function(t){return t}))},n}(nt);function ir(t,n,e,o,r,i,a){try{var c=t[i](a),u=c.value}catch(t){return void e(t)}c.done?n(u):Promise.resolve(u).then(o,r)}function ar(t){return function(){var n=this,e=arguments;return new Promise((function(o,r){var i=t.apply(n,e);function a(t){ir(i,o,r,a,c,"next",t)}function c(t){ir(i,o,r,a,c,"throw",t)}a(void 0)}))}}var cr=__webpack_require__(8270);function ur(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable}))),e.push.apply(e,o)}return e}function sr(t){for(var n=1;n<arguments.length;n++){var e=null!=arguments[n]?arguments[n]:{};n%2?ur(Object(e),!0).forEach((function(n){(0,cr.Z)(t,n,e[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):ur(Object(e)).forEach((function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))}))}return t}var lr=function(t){if(!t||0===t.length)return{};for(var n={},e=t.split(";"),o=0;o<e.length;o++){var r=e[o].indexOf("=");if(!(r<0)){var i=e[o].substring(0,r).replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),a=e[o].substring(r+1,e[o].length);try{i=decodeURIComponent(i)}catch(t){}try{a=decodeURIComponent(a)}catch(t){}n[i]=a}}return n},fr=function(t,n,e){"undefined"!=typeof document&&void 0!==document.cookie&&(document.cookie=encodeURIComponent(t)+"="+encodeURIComponent(n)+function(t){void 0===t&&(t={});var n=t,e=n.path,o=n.domain,r=n.expires,i=n.secure,a=n.sameSite,c=["none","lax","strict"].indexOf((a||"").toLowerCase())>-1?a:null;return[null==e?"":";path="+e,null==o?"":";domain="+o,null==r?"":";expires="+r.toUTCString(),void 0===i||!1===i?"":";secure",null===c?"":";SameSite="+c].join("")}(e))},dr=function(){return"undefined"==typeof document||void 0===document.cookie?"":document.cookie},vr=function(){function n(){}var e=n.prototype;return e.key=function(t){return t<this.keys.length?this.keys[t]:null},e.setItem=function(t,n,e){fr(t,n,e)},e.getItem=function(t){var n=lr(dr());return Object.prototype.hasOwnProperty.call(n,t)?n[t]:null},e.removeItem=function(t,n){for(var e,o,r=["","/"],i=(null==(e=location)||null==(o=e.hostname)?void 0:o.split("."))||[];i.length>1;)r.push(i.join(".")),i.shift();for(var a=0;a<r.length;a++)for(var c,u,s=(null==(c=location)||null==(u=c.pathname)?void 0:u.split("/"))||[],l="";s.length>0;){l+=("/"===l?"":"/")+s.shift();var f=sr(sr({},n),{},{path:l,domain:r[a],expires:new Date(0)});fr(t,"",f)}},e.clear=function(){for(var t=[].concat(this.keys),n=0;n<t.length;n++)this.removeItem(t[n])},(0,t.Z)(n,[{key:"length",get:function(){return this.keys.length}},{key:"keys",get:function(){var t=lr(dr());return Object.keys(t).sort()}}]),n}(),hr=function(){function e(){this.keys=[],this.currentSize=0,this.limitSize=0}var o=e.prototype;return o.key=function(t){return t<this.keys.length?this.keys[t]:null},o.prepare=function(){var t=ar(_n().mark((function t(){var e=this;return _n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",new Promise((function(t,o){(0,n.qt)("getStorageInfo",{success:function(n){e.keys=n?n.keys.sort():[],e.currentSize=n?n.currentSize:0,e.limitSize=n?n.limitSize:0,t(!0)},fail:function(){o(!1)}})})));case 1:case"end":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}(),o.getItem=function(t){return new Promise((function(e,o){(0,n.qt)("getStorage",{key:t,success:function(t){var n=t.data;if("object"==typeof t.data)try{n=JSON.stringify(t.data)}catch(t){}e(n)},fail:function(t){o(t)}})}))},o.setItem=function(t,e){return new Promise((function(o,r){(0,n.qt)("setStorage",{key:t,data:e,success:function(t){o(t)},fail:function(t){r(t)}})}))},o.removeItem=function(t){return new Promise((function(e,o){(0,n.qt)("removeStorage",{key:t,success:function(t){e(t)},fail:function(t){o(t)}})}))},o.clear=function(){return new Promise((function(t,e){(0,n.qt)("clearStorage",{success:function(n){t(n)},fail:function(t){e(t)}})}))},(0,t.Z)(e,[{key:"length",get:function(){return this.keys.length}}]),e}(),pr={updateTime:(0,Le.fZ)(0),activedName:(0,Le.fZ)(null),defaultStorages:(0,Le.fZ)(["cookies","localStorage","sessionStorage"])},gr=function(e){function o(){var t;return(t=e.call(this)||this).storage=new Map,pr.activedName.subscribe((function(t){var n=(0,Le.U2)(pr.defaultStorages);n.length>0&&-1===n.indexOf(t)&&pr.activedName.set(n[0])})),pr.defaultStorages.subscribe((function(n){-1===n.indexOf((0,Le.U2)(pr.activedName))&&pr.activedName.set(n[0]),t.updateEnabledStorages()})),t}(0,i.Z)(o,e);var r=o.prototype;return r.getItem=function(){var t=ar(_n().mark((function t(n){return _n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this.activedStorage){t.next=2;break}return t.abrupt("return","");case 2:return t.next=4,this.promisify(this.activedStorage.getItem(n));case 4:return t.abrupt("return",t.sent);case 5:case"end":return t.stop()}}),t,this)})));return function(n){return t.apply(this,arguments)}}(),r.setItem=function(){var t=ar(_n().mark((function t(n,e){var o;return _n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this.activedStorage){t.next=2;break}return t.abrupt("return");case 2:return t.next=4,this.promisify(this.activedStorage.setItem(n,e));case 4:return o=t.sent,this.refresh(),t.abrupt("return",o);case 7:case"end":return t.stop()}}),t,this)})));return function(n,e){return t.apply(this,arguments)}}(),r.removeItem=function(){var t=ar(_n().mark((function t(n){var e;return _n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this.activedStorage){t.next=2;break}return t.abrupt("return");case 2:return t.next=4,this.promisify(this.activedStorage.removeItem(n));case 4:return e=t.sent,this.refresh(),t.abrupt("return",e);case 7:case"end":return t.stop()}}),t,this)})));return function(n){return t.apply(this,arguments)}}(),r.clear=function(){var t=ar(_n().mark((function t(){var n;return _n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this.activedStorage){t.next=2;break}return t.abrupt("return");case 2:return t.next=4,this.promisify(this.activedStorage.clear());case 4:return n=t.sent,this.refresh(),t.abrupt("return",n);case 7:case"end":return t.stop()}}),t,this)})));return function(){return t.apply(this,arguments)}}(),r.refresh=function(){pr.updateTime.set(Date.now())},r.getEntries=function(){var t=ar(_n().mark((function t(){var n,e,o,r,i;return _n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=this.activedStorage){t.next=3;break}return t.abrupt("return",[]);case 3:if("function"!=typeof n.prepare){t.next=6;break}return t.next=6,n.prepare();case 6:e=[],o=0;case 8:if(!(o<n.length)){t.next=17;break}return r=n.key(o),t.next=12,this.getItem(r);case 12:i=t.sent,e.push([r,i]);case 14:o++,t.next=8;break;case 17:return t.abrupt("return",e);case 18:case"end":return t.stop()}}),t,this)})));return function(){return t.apply(this,arguments)}}(),r.updateEnabledStorages=function(){var t=(0,Le.U2)(pr.defaultStorages);t.indexOf("cookies")>-1?void 0!==document.cookie&&this.storage.set("cookies",new vr):this.deleteStorage("cookies"),t.indexOf("localStorage")>-1?window.localStorage&&this.storage.set("localStorage",window.localStorage):this.deleteStorage("localStorage"),t.indexOf("sessionStorage")>-1?window.sessionStorage&&this.storage.set("sessionStorage",window.sessionStorage):this.deleteStorage("sessionStorage"),t.indexOf("wxStorage")>-1?(0,n.H_)()&&this.storage.set("wxStorage",new hr):this.deleteStorage("wxStorage")},r.promisify=function(t){return"string"==typeof t||null==t?Promise.resolve(t):t},r.deleteStorage=function(t){this.storage.has(t)&&this.storage.delete(t)},(0,t.Z)(o,[{key:"activedStorage",get:function(){return this.storage.get((0,Le.U2)(pr.activedName))}}]),o}(Te.N);function mr(t,n,e){var o=t.slice();return o[20]=n[e][0],o[21]=n[e][1],o[23]=e,o}function _r(t){var n;return{c:function(){(n=(0,a.bGB)("div")).textContent="Empty",(0,a.Ljt)(n,"class","vc-plugin-empty")},m:function(t,e){(0,a.$Tr)(t,n,e)},p:a.ZTd,d:function(t){t&&(0,a.ogt)(n)}}}function br(t){var n,e,o,r,i,c=t[20]+"",u=t[5](t[21])+"";return{c:function(){n=(0,a.bGB)("div"),e=(0,a.fLW)(c),o=(0,a.DhX)(),r=(0,a.bGB)("div"),i=(0,a.fLW)(u),(0,a.Ljt)(n,"class","vc-table-col"),(0,a.Ljt)(r,"class","vc-table-col vc-table-col-2")},m:function(t,c){(0,a.$Tr)(t,n,c),(0,a.R3I)(n,e),(0,a.$Tr)(t,o,c),(0,a.$Tr)(t,r,c),(0,a.R3I)(r,i)},p:function(t,n){1&n&&c!==(c=t[20]+"")&&(0,a.rTO)(e,c),1&n&&u!==(u=t[5](t[21])+"")&&(0,a.rTO)(i,u)},d:function(t){t&&(0,a.ogt)(n),t&&(0,a.ogt)(o),t&&(0,a.ogt)(r)}}}function yr(t){var n,e,o,r,i,c,u;return{c:function(){n=(0,a.bGB)("div"),e=(0,a.bGB)("textarea"),o=(0,a.DhX)(),r=(0,a.bGB)("div"),i=(0,a.bGB)("textarea"),(0,a.Ljt)(e,"class","vc-table-input"),(0,a.Ljt)(n,"class","vc-table-col"),(0,a.Ljt)(i,"class","vc-table-input"),(0,a.Ljt)(r,"class","vc-table-col vc-table-col-2")},m:function(s,l){(0,a.$Tr)(s,n,l),(0,a.R3I)(n,e),(0,a.BmG)(e,t[2]),(0,a.$Tr)(s,o,l),(0,a.$Tr)(s,r,l),(0,a.R3I)(r,i),(0,a.BmG)(i,t[3]),c||(u=[(0,a.oLt)(e,"input",t[11]),(0,a.oLt)(i,"input",t[12])],c=!0)},p:function(t,n){4&n&&(0,a.BmG)(e,t[2]),8&n&&(0,a.BmG)(i,t[3])},d:function(t){t&&(0,a.ogt)(n),t&&(0,a.ogt)(o),t&&(0,a.ogt)(r),c=!1,(0,a.j7q)(u)}}}function wr(t){var n,e,o,r,i,c;return(n=new rt.Z({props:{name:"delete"}})).$on("click",(function(){return t[14](t[20])})),o=new ut({props:{content:[t[20],t[21]].join("=")}}),(i=new rt.Z({props:{name:"edit"}})).$on("click",(function(){return t[15](t[20],t[21],t[23])})),{c:function(){(0,a.YCL)(n.$$.fragment),e=(0,a.DhX)(),(0,a.YCL)(o.$$.fragment),r=(0,a.DhX)(),(0,a.YCL)(i.$$.fragment)},m:function(t,u){(0,a.yef)(n,t,u),(0,a.$Tr)(t,e,u),(0,a.yef)(o,t,u),(0,a.$Tr)(t,r,u),(0,a.yef)(i,t,u),c=!0},p:function(n,e){t=n;var r={};1&e&&(r.content=[t[20],t[21]].join("=")),o.$set(r)},i:function(t){c||((0,a.Ui)(n.$$.fragment,t),(0,a.Ui)(o.$$.fragment,t),(0,a.Ui)(i.$$.fragment,t),c=!0)},o:function(t){(0,a.etI)(n.$$.fragment,t),(0,a.etI)(o.$$.fragment,t),(0,a.etI)(i.$$.fragment,t),c=!1},d:function(t){(0,a.vpE)(n,t),t&&(0,a.ogt)(e),(0,a.vpE)(o,t),t&&(0,a.ogt)(r),(0,a.vpE)(i,t)}}}function Er(t){var n,e,o,r;return(n=new rt.Z({props:{name:"cancel"}})).$on("click",t[9]),(o=new rt.Z({props:{name:"done"}})).$on("click",(function(){return t[13](t[20])})),{c:function(){(0,a.YCL)(n.$$.fragment),e=(0,a.DhX)(),(0,a.YCL)(o.$$.fragment)},m:function(t,i){(0,a.yef)(n,t,i),(0,a.$Tr)(t,e,i),(0,a.yef)(o,t,i),r=!0},p:function(n,e){t=n},i:function(t){r||((0,a.Ui)(n.$$.fragment,t),(0,a.Ui)(o.$$.fragment,t),r=!0)},o:function(t){(0,a.etI)(n.$$.fragment,t),(0,a.etI)(o.$$.fragment,t),r=!1},d:function(t){(0,a.vpE)(n,t),t&&(0,a.ogt)(e),(0,a.vpE)(o,t)}}}function Lr(t){var n,e,o,r,i,c,u;function s(t,n){return t[1]===t[23]?yr:br}var l=s(t),f=l(t),d=[Er,wr],v=[];function h(t,n){return t[1]===t[23]?0:1}return r=h(t),i=v[r]=d[r](t),{c:function(){n=(0,a.bGB)("div"),f.c(),e=(0,a.DhX)(),o=(0,a.bGB)("div"),i.c(),c=(0,a.DhX)(),(0,a.Ljt)(o,"class","vc-table-col vc-table-col-1 vc-table-action"),(0,a.Ljt)(n,"class","vc-table-row")},m:function(t,i){(0,a.$Tr)(t,n,i),f.m(n,null),(0,a.R3I)(n,e),(0,a.R3I)(n,o),v[r].m(o,null),(0,a.R3I)(n,c),u=!0},p:function(t,c){l===(l=s(t))&&f?f.p(t,c):(f.d(1),(f=l(t))&&(f.c(),f.m(n,e)));var u=r;(r=h(t))===u?v[r].p(t,c):((0,a.dvw)(),(0,a.etI)(v[u],1,1,(function(){v[u]=null})),(0,a.gbL)(),(i=v[r])?i.p(t,c):(i=v[r]=d[r](t)).c(),(0,a.Ui)(i,1),i.m(o,null))},i:function(t){u||((0,a.Ui)(i),u=!0)},o:function(t){(0,a.etI)(i),u=!1},d:function(t){t&&(0,a.ogt)(n),f.d(),v[r].d()}}}function Tr(t){for(var n,e,o,r,i=t[0],c=[],u=0;u<i.length;u+=1)c[u]=Lr(mr(t,i,u));var s=function(t){return(0,a.etI)(c[t],1,1,(function(){c[t]=null}))},l=null;return i.length||(l=_r()),{c:function(){n=(0,a.bGB)("div"),(e=(0,a.bGB)("div")).innerHTML='<div class="vc-table-col">Key</div> \n    <div class="vc-table-col vc-table-col-2">Value</div> \n    <div class="vc-table-col vc-table-col-1 vc-table-action"></div>',o=(0,a.DhX)();for(var t=0;t<c.length;t+=1)c[t].c();l&&l.c(),(0,a.Ljt)(e,"class","vc-table-row"),(0,a.Ljt)(n,"class","vc-table")},m:function(t,i){(0,a.$Tr)(t,n,i),(0,a.R3I)(n,e),(0,a.R3I)(n,o);for(var u=0;u<c.length;u+=1)c[u].m(n,null);l&&l.m(n,null),r=!0},p:function(t,e){var o=e[0];if(1007&o){var r;for(i=t[0],r=0;r<i.length;r+=1){var u=mr(t,i,r);c[r]?(c[r].p(u,o),(0,a.Ui)(c[r],1)):(c[r]=Lr(u),c[r].c(),(0,a.Ui)(c[r],1),c[r].m(n,null))}for((0,a.dvw)(),r=i.length;r<c.length;r+=1)s(r);(0,a.gbL)(),!i.length&&l?l.p(t,o):i.length?l&&(l.d(1),l=null):((l=_r()).c(),l.m(n,null))}},i:function(t){if(!r){for(var n=0;n<i.length;n+=1)(0,a.Ui)(c[n]);r=!0}},o:function(t){c=c.filter(Boolean);for(var n=0;n<c.length;n+=1)(0,a.etI)(c[n]);r=!1},d:function(t){t&&(0,a.ogt)(n),(0,a.RMB)(c,t),l&&l.d()}}}function xr(t,e,o){var r,i=this&&this.__awaiter||function(t,n,e,o){return new(e||(e=Promise))((function(r,i){function a(t){try{u(o.next(t))}catch(t){i(t)}}function c(t){try{u(o.throw(t))}catch(t){i(t)}}function u(t){var n;t.done?r(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(a,c)}u((o=o.apply(t,n||[])).next())}))},c=gr.getSingleton(gr,"VConsoleStorageModel"),u=pr.updateTime;(0,a.FIv)(t,u,(function(t){return o(10,r=t)}));var s=[],l=-1,f="",d="",v=function(){o(1,l=-1),o(2,f=""),o(3,d="")},h=function(t){return i(void 0,void 0,void 0,_n().mark((function n(){return _n().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,c.removeItem(t);case 2:case"end":return n.stop()}}),n)})))},p=function(t){return i(void 0,void 0,void 0,_n().mark((function n(){return _n().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(f===t){n.next=3;break}return n.next=3,c.removeItem(t);case 3:c.setItem(f,d),v();case 5:case"end":return n.stop()}}),n)})))},g=function(t,n,e){return i(void 0,void 0,void 0,_n().mark((function r(){return _n().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:o(2,f=t),o(3,d=n),o(1,l=e);case 3:case"end":return r.stop()}}),r)})))};return t.$$.update=function(){1024&t.$$.dirty&&r&&i(void 0,void 0,void 0,_n().mark((function t(){return _n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return v(),t.t0=o,t.next=4,c.getEntries();case 4:t.t1=s=t.sent,(0,t.t0)(0,t.t1);case 6:case"end":return t.stop()}}),t)})))},[s,l,f,d,u,function(t){return(0,n.id)(t,1024)},h,p,g,function(){v()},r,function(){f=this.value,o(2,f)},function(){d=this.value,o(3,d)},function(t){return p(t)},function(t){return h(t)},function(t,n,e){return g(t,n,e)}]}var Cr=function(t){function n(n){var e;return e=t.call(this)||this,(0,a.S1n)((0,r.Z)(e),n,xr,Tr,a.N8,{}),e}return(0,i.Z)(n,t),n}(a.f_C),Or=Cr,Ir=function(t){function e(n,e,o){var r;return void 0===o&&(o={}),(r=t.call(this,n,e,Or,o)||this).model=gr.getSingleton(gr,"VConsoleStorageModel"),r.onAddTopBarCallback=void 0,r}(0,i.Z)(e,t);var o=e.prototype;return o.onReady=function(){t.prototype.onReady.call(this),this.onUpdateOption()},o.onShow=function(){this.model.refresh()},o.onAddTopBar=function(t){this.onAddTopBarCallback=t,this.updateTopBar()},o.onAddTool=function(t){var n=this;t([{name:"Add",global:!1,onClick:function(){n.model.setItem("new_"+Date.now(),"new_value")}},{name:"Refresh",global:!1,onClick:function(){n.model.refresh()}},{name:"Clear",global:!1,onClick:function(){n.model.clear()}}])},o.onUpdateOption=function(){var t,e=null==(t=this.vConsole.option.storage)?void 0:t.defaultStorages;(0,n.kJ)(e)&&(e=e.length>0?e:["cookies"])!==(0,Le.U2)(pr.defaultStorages)&&(pr.defaultStorages.set(e),pr.activedName.set(e[0]),this.updateTopBar())},o.updateTopBar=function(){var t=this;if("function"==typeof this.onAddTopBarCallback){for(var n=(0,Le.U2)(pr.defaultStorages),e=[],o=0;o<n.length;o++){var r=n[o];e.push({name:r[0].toUpperCase()+r.substring(1),data:{name:r},actived:r===(0,Le.U2)(pr.activedName),onClick:function(n,e){var o=(0,Le.U2)(pr.activedName);if(e.name===o)return!1;pr.activedName.set(e.name),t.model.refresh()}})}this.onAddTopBarCallback(e)}},e}(nt),Dr=function(){function e(t){var r=this;if(this.version="3.15.0",this.isInited=!1,this.option={},this.compInstance=void 0,this.pluginList={},this.log=void 0,this.system=void 0,this.network=void 0,e.instance&&e.instance instanceof e)return console.debug("[vConsole] vConsole is already exists."),e.instance;if(e.instance=this,this.isInited=!1,this.option={defaultPlugins:["system","network","element","storage"],log:{},network:{},storage:{}},n.Kn(t))for(var i in t)this.option[i]=t[i];void 0!==this.option.maxLogNumber&&(this.option.log.maxLogNumber=this.option.maxLogNumber,console.debug("[vConsole] Deprecated option: `maxLogNumber`, use `log.maxLogNumber` instead.")),void 0!==this.option.onClearLog&&console.debug("[vConsole] Deprecated option: `onClearLog`."),void 0!==this.option.maxNetworkNumber&&(this.option.network.maxNetworkNumber=this.option.maxNetworkNumber,console.debug("[vConsole] Deprecated option: `maxNetworkNumber`, use `network.maxNetworkNumber` instead.")),this._addBuiltInPlugins();var a=function(){r.isInited||(r._initComponent(),r._autoRun())};if(void 0!==document)"loading"===document.readyState?o.bind(window,"DOMContentLoaded",a):a();else{var c;c=setTimeout((function t(){document&&"complete"==document.readyState?(c&&clearTimeout(c),a()):c=setTimeout(t,1)}),1)}}var r=e.prototype;return r._addBuiltInPlugins=function(){this.addPlugin(new we("default","Log"));var t=this.option.defaultPlugins,e={system:{proto:Ee,name:"System"}};if(e.network={proto:To,name:"Network"},e.element={proto:rr,name:"Element"},e.storage={proto:Ir,name:"Storage"},t&&n.kJ(t))for(var o=0;o<t.length;o++){var r=e[t[o]];r?this.addPlugin(new r.proto(t[o],r.name)):console.debug("[vConsole] Unrecognized default plugin ID:",t[o])}},r._initComponent=function(){var t=this;if(!o.one("#__vconsole")){var e,r=1*n.cF("switch_x"),i=1*n.cF("switch_y");"string"==typeof this.option.target?e=document.querySelector(this.option.target):this.option.target instanceof HTMLElement&&(e=this.option.target),e instanceof HTMLElement||(e=document.documentElement),this.compInstance=new Q({target:e,props:{switchButtonPosition:{x:r,y:i}}}),this.compInstance.$on("show",(function(n){n.detail.show?t.show():t.hide()})),this.compInstance.$on("changePanel",(function(n){var e=n.detail.pluginId;t.showPlugin(e)}))}this._updateComponentByOptions()},r._updateComponentByOptions=function(){if(this.compInstance){if(this.compInstance.theme!==this.option.theme){var t=this.option.theme;t="light"!==t&&"dark"!==t?"":t,this.compInstance.theme=t}this.compInstance.disableScrolling!==this.option.disableLogScrolling&&(this.compInstance.disableScrolling=!!this.option.disableLogScrolling)}},r.setSwitchPosition=function(t,n){this.compInstance.switchButtonPosition={x:t,y:n}},r._autoRun=function(){for(var t in this.isInited=!0,this.pluginList)this._initPlugin(this.pluginList[t]);this._showFirstPluginWhenEmpty(),this.triggerEvent("ready")},r._showFirstPluginWhenEmpty=function(){var t=Object.keys(this.pluginList);""===this.compInstance.activedPluginId&&t.length>0&&this.showPlugin(t[0])},r.triggerEvent=function(t,e){var o=this;t="on"+t.charAt(0).toUpperCase()+t.slice(1),n.mf(this.option[t])&&setTimeout((function(){o.option[t].apply(o,e)}),0)},r._initPlugin=function(t){var e=this;t.vConsole=this,this.compInstance.pluginList[t.id]={id:t.id,name:t.name,hasTabPanel:!1,tabOptions:void 0,topbarList:[],toolbarList:[]},this.compInstance.pluginList=this._reorderPluginList(this.compInstance.pluginList),t.trigger("init"),t.trigger("renderTab",(function(o,r){void 0===r&&(r={});var i=e.compInstance.pluginList[t.id];i.hasTabPanel=!0,i.tabOptions=r,o&&setTimeout((function(){var e=document.querySelector("#__vc_plug_"+t.id);n.HD(o)?e.innerHTML+=o:n.mf(o.appendTo)?o.appendTo(e):n.kK(o)&&e.insertAdjacentElement("beforeend",o)}),0),e.compInstance.pluginList=e.compInstance.pluginList})),t.trigger("addTopBar",(function(n){if(n){for(var o=[],r=0;r<n.length;r++){var i=n[r];o.push({name:i.name||"Undefined",className:i.className||"",actived:!!i.actived,data:i.data,onClick:i.onClick})}e.compInstance.pluginList[t.id].topbarList=o,e.compInstance.pluginList=e.compInstance.pluginList}})),t.trigger("addTool",(function(n){if(n){for(var o=[],r=0;r<n.length;r++){var i=n[r];o.push({name:i.name||"Undefined",global:!!i.global,data:i.data,onClick:i.onClick})}e.compInstance.pluginList[t.id].toolbarList=o,e.compInstance.pluginList=e.compInstance.pluginList}})),t.isReady=!0,t.trigger("ready")},r._triggerPluginsEvent=function(t){for(var n in this.pluginList)this.pluginList[n].isReady&&this.pluginList[n].trigger(t)},r._triggerPluginEvent=function(t,n){var e=this.pluginList[t];e&&e.isReady&&e.trigger(n)},r._reorderPluginList=function(t){var e=this;if(!n.kJ(this.option.pluginOrder))return t;for(var o=Object.keys(t).sort((function(t,n){var o=e.option.pluginOrder.indexOf(t),r=e.option.pluginOrder.indexOf(n);return o===r?0:-1===o?1:-1===r?-1:o-r})),r={},i=0;i<o.length;i++)r[o[i]]=t[o[i]];return r},r.addPlugin=function(t){return void 0!==this.pluginList[t.id]?(console.debug("[vConsole] Plugin `"+t.id+"` has already been added."),!1):(this.pluginList[t.id]=t,this.isInited&&(this._initPlugin(t),this._showFirstPluginWhenEmpty()),!0)},r.removePlugin=function(t){t=(t+"").toLowerCase();var n=this.pluginList[t];if(void 0===n)return console.debug("[vConsole] Plugin `"+t+"` does not exist."),!1;n.trigger("remove");try{delete this.pluginList[t],delete this.compInstance.pluginList[t]}catch(n){this.pluginList[t]=void 0,this.compInstance.pluginList[t]=void 0}return this.compInstance.pluginList=this.compInstance.pluginList,this.compInstance.activedPluginId==t&&(this.compInstance.activedPluginId="",this._showFirstPluginWhenEmpty()),!0},r.show=function(){this.isInited&&(this.compInstance.show=!0,this._triggerPluginsEvent("showConsole"))},r.hide=function(){this.isInited&&(this.compInstance.show=!1,this._triggerPluginsEvent("hideConsole"))},r.showSwitch=function(){this.isInited&&(this.compInstance.showSwitchButton=!0)},r.hideSwitch=function(){this.isInited&&(this.compInstance.showSwitchButton=!1)},r.showPlugin=function(t){this.isInited&&(this.pluginList[t]||console.debug("[vConsole] Plugin `"+t+"` does not exist."),this.compInstance.activedPluginId&&this._triggerPluginEvent(this.compInstance.activedPluginId,"hide"),this.compInstance.activedPluginId=t,this._triggerPluginEvent(this.compInstance.activedPluginId,"show"))},r.setOption=function(t,e){if("string"==typeof t){for(var o=t.split("."),r=this.option,i=0;i<o.length-1;i++)void 0===r[o[i]]&&(r[o[i]]={}),r=r[o[i]];r[o[o.length-1]]=e,this._triggerPluginsEvent("updateOption"),this._updateComponentByOptions()}else if(n.Kn(t)){for(var a in t)this.option[a]=t[a];this._triggerPluginsEvent("updateOption"),this._updateComponentByOptions()}else console.debug("[vConsole] The first parameter of `vConsole.setOption()` must be a string or an object.")},r.destroy=function(){if(this.isInited){this.isInited=!1,e.instance=void 0;for(var t=Object.keys(this.pluginList),n=t.length-1;n>=0;n--)this.removePlugin(t[n]);this.compInstance.$destroy()}},(0,t.Z)(e,null,[{key:"instance",get:function(){return window.__VCONSOLE_INSTANCE},set:function(t){void 0===t||t instanceof e?window.__VCONSOLE_INSTANCE=t:console.debug("[vConsole] Cannot set `VConsole.instance` because the value is not the instance of VConsole.")}}]),e}();Dr.VConsolePlugin=void 0,Dr.VConsoleLogPlugin=void 0,Dr.VConsoleDefaultPlugin=void 0,Dr.VConsoleSystemPlugin=void 0,Dr.VConsoleNetworkPlugin=void 0,Dr.VConsoleElementPlugin=void 0,Dr.VConsoleStoragePlugin=void 0,Dr.VConsolePlugin=tt,Dr.VConsoleLogPlugin=ye,Dr.VConsoleDefaultPlugin=we,Dr.VConsoleSystemPlugin=Ee,Dr.VConsoleNetworkPlugin=To,Dr.VConsoleElementPlugin=rr,Dr.VConsoleStoragePlugin=Ir;var Rr=Dr}(),__webpack_exports__=__webpack_exports__.default,__webpack_exports__}()}));
\ No newline at end of file

--
Gitblit v1.9.3