@mapcomponents/ra-geospatial 1.5.3 → 1.5.4-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.babelrc +12 -0
- package/.storybook/main.ts +25 -0
- package/.storybook/manager.js +6 -0
- package/.storybook/mapcomponents_logo.png +0 -0
- package/.storybook/preview.ts +27 -0
- package/.storybook/style.css +20 -0
- package/.storybook/wheregroupTheme.js +9 -0
- package/README.md +1 -2
- package/assets/ra_geospatial_screenshots.png +0 -0
- package/dist/README.md +74 -0
- package/dist/components/GeospatialInput.d.ts +9 -0
- package/dist/components/GeospatialInput.d.ts.map +1 -0
- package/dist/components/GeospatialInputMap.d.ts +18 -0
- package/dist/components/GeospatialInputMap.d.ts.map +1 -0
- package/dist/components/GeospatialShow.d.ts +9 -0
- package/dist/components/GeospatialShow.d.ts.map +1 -0
- package/dist/components/GeospatialShowMap.d.ts +11 -0
- package/dist/components/GeospatialShowMap.d.ts.map +1 -0
- package/dist/contexts/DataContext.d.ts +4 -0
- package/dist/contexts/DataContext.d.ts.map +1 -0
- package/dist/contexts/dataProvider.d.ts +35 -0
- package/dist/contexts/dataProvider.d.ts.map +1 -0
- package/dist/contexts/lsDataProvider.d.ts +44 -0
- package/dist/contexts/lsDataProvider.d.ts.map +1 -0
- package/dist/decorators/ReactAdminDefaultDecorator.d.ts +3 -0
- package/dist/decorators/ReactAdminDefaultDecorator.d.ts.map +1 -0
- package/dist/favicon.ico +0 -0
- package/dist/html2canvas.esm-CUkZERmf.cjs +23 -0
- package/dist/html2canvas.esm-CUkZERmf.cjs.map +1 -0
- package/dist/html2canvas.esm-Dmi1NfiH.js +4872 -0
- package/dist/html2canvas.esm-Dmi1NfiH.js.map +1 -0
- package/dist/index-BYtSitNR.js +61509 -0
- package/dist/index-BYtSitNR.js.map +1 -0
- package/dist/index-DD78QbMh.cjs +1222 -0
- package/dist/index-DD78QbMh.cjs.map +1 -0
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.css +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.es-DBcuOIG0.js +6675 -0
- package/dist/index.es-DBcuOIG0.js.map +1 -0
- package/dist/index.es-YxBXdzDQ.cjs +19 -0
- package/dist/index.es-YxBXdzDQ.cjs.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/layout/GisLayout.d.ts +6 -0
- package/dist/layout/GisLayout.d.ts.map +1 -0
- package/dist/logo.png +0 -0
- package/dist/manifest.json +25 -0
- package/dist/package.json +24 -0
- package/dist/purify.es-D1I7B1hP.cjs +3 -0
- package/dist/purify.es-D1I7B1hP.cjs.map +1 -0
- package/dist/purify.es-DHbHSKL1.js +529 -0
- package/dist/purify.es-DHbHSKL1.js.map +1 -0
- package/dist/ra_components/Poi.d.ts +5 -0
- package/dist/ra_components/Poi.d.ts.map +1 -0
- package/dist/ra_components/Property.d.ts +5 -0
- package/dist/ra_components/Property.d.ts.map +1 -0
- package/dist/ra_components/Route.d.ts +5 -0
- package/dist/ra_components/Route.d.ts.map +1 -0
- package/dist/ra_components/raGeospatialProps.d.ts +12 -0
- package/dist/ra_components/raGeospatialProps.d.ts.map +1 -0
- package/dist/ra_components/raGeospatialWebGisProps.d.ts +12 -0
- package/dist/ra_components/raGeospatialWebGisProps.d.ts.map +1 -0
- package/eslint.config.cjs +3 -0
- package/index.html +16 -0
- package/package.json +23 -42
- package/project.json +14 -0
- package/public/favicon.ico +0 -0
- package/public/logo.png +0 -0
- package/public/manifest.json +25 -0
- package/src/components/GeospatialInput.stories.tsx +83 -0
- package/src/components/GeospatialInput.tsx +14 -17
- package/src/components/GeospatialInputMap.tsx +172 -165
- package/src/components/GeospatialShow.stories.tsx +84 -0
- package/src/components/GeospatialShow.tsx +14 -17
- package/src/components/GeospatialShowMap.tsx +53 -58
- package/src/contexts/DataContext.jsx +66 -0
- package/src/contexts/dataProvider.tsx +30 -0
- package/src/contexts/lsDataProvider.js +138 -0
- package/src/decorators/ReactAdminDefaultDecorator.tsx +40 -0
- package/src/index.ts +2 -2
- package/src/layout/GisLayout.jsx +90 -0
- package/src/ra_components/Poi.tsx +42 -0
- package/src/ra_components/Property.tsx +42 -0
- package/src/ra_components/Route.tsx +42 -0
- package/src/ra_components/raGeospatialProps.ts +5 -0
- package/src/ra_components/raGeospatialWebGisProps.ts +5 -0
- package/src/types.d.ts +3 -2
- package/tsconfig.json +7 -101
- package/tsconfig.lib.json +29 -0
- package/vite.config.ts +58 -0
- package/dist/index.esm.js +0 -157
- package/dist/index.esm.js.map +0 -1
- package/rollup.config.js +0 -50
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.es-DBcuOIG0.js","sources":["../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/global-this.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/fails.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/descriptors.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/function-bind-native.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/function-call.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/object-property-is-enumerable.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/create-property-descriptor.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/function-uncurry-this.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/classof-raw.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/indexed-object.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/is-null-or-undefined.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/require-object-coercible.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/to-indexed-object.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/is-callable.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/is-object.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/get-built-in.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/object-is-prototype-of.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/environment-user-agent.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/environment-v8-version.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/symbol-constructor-detection.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/use-symbol-as-uid.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/is-symbol.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/try-to-string.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/a-callable.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/get-method.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/ordinary-to-primitive.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/is-pure.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/define-global-property.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/shared-store.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/shared.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/to-object.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/has-own-property.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/uid.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/well-known-symbol.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/to-primitive.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/to-property-key.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/document-create-element.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/ie8-dom-define.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/object-get-own-property-descriptor.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/v8-prototype-define-bug.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/an-object.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/object-define-property.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/create-non-enumerable-property.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/function-name.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/inspect-source.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/weak-map-basic-detection.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/shared-key.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/hidden-keys.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/internal-state.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/make-built-in.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/define-built-in.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/math-trunc.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/to-integer-or-infinity.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/to-absolute-index.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/to-length.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/length-of-array-like.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/array-includes.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/object-keys-internal.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/enum-bug-keys.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/object-get-own-property-names.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/object-get-own-property-symbols.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/own-keys.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/copy-constructor-properties.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/is-forced.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/export.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/environment.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/environment-is-node.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/path.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/function-uncurry-this-accessor.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/is-possible-prototype.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/a-possible-prototype.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/object-set-prototype-of.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/set-to-string-tag.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/define-built-in-accessor.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/set-species.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/an-instance.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/to-string-tag-support.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/classof.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/is-constructor.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/a-constructor.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/species-constructor.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/function-apply.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/function-uncurry-this-clause.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/function-bind-context.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/html.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/array-slice.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/validate-arguments-length.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/environment-is-ios.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/task.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/safe-get-built-in.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/queue.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/environment-is-ios-pebble.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/environment-is-webos-webkit.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/microtask.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/host-report-errors.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/perform.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/promise-native-constructor.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/promise-constructor-detection.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/new-promise-capability.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/modules/es.promise.constructor.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/iterators.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/is-array-iterator-method.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/get-iterator-method.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/get-iterator.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/iterator-close.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/iterate.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/check-correctness-of-iteration.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/promise-statics-incorrect-iteration.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/modules/es.promise.all.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/modules/es.promise.catch.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/modules/es.promise.race.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/modules/es.promise.reject.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/promise-resolve.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/modules/es.promise.resolve.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/modules/es.promise.js","../../../node_modules/.pnpm/@babel+runtime@7.28.3/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/to-string.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/regexp-flags.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/regexp-sticky-helpers.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/object-keys.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/object-define-properties.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/object-create.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/regexp-unsupported-dot-all.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/regexp-unsupported-ncg.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/regexp-exec.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/modules/es.regexp.exec.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/string-multibyte.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/advance-string-index.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/regexp-flags-detection.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/regexp-get-flags.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/regexp-exec-abstract.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/modules/es.string.match.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/get-substitution.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/modules/es.string.replace.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/is-regexp.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/not-a-regexp.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/correct-is-regexp-logic.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/modules/es.string.starts-with.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/add-to-unscopables.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/correct-prototype-getter.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/object-get-prototype-of.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/iterators-core.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/iterator-create-constructor.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/iterator-define.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/create-iter-result-object.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/modules/es.array.iterator.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/dom-iterables.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/dom-token-list-prototype.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/modules/web.dom-collections.iterator.js","../../../node_modules/.pnpm/@babel+runtime@7.28.3/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../../../node_modules/.pnpm/@babel+runtime@7.28.3/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../../../node_modules/.pnpm/@babel+runtime@7.28.3/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/array-reduce.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/array-method-is-strict.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/modules/es.array.reduce.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/modules/es.string.ends-with.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/modules/es.string.split.js","../../../node_modules/.pnpm/performance-now@2.1.0/node_modules/performance-now/lib/performance-now.js","../../../node_modules/.pnpm/raf@3.4.1/node_modules/raf/index.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/whitespaces.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/string-trim.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/string-trim-forced.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/modules/es.string.trim.js","../../../node_modules/.pnpm/rgbcolor@1.0.1/node_modules/rgbcolor/index.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/modules/es.array.index-of.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/modules/es.string.includes.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/internals/is-array.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/modules/es.array.reverse.js","../../../node_modules/.pnpm/svg-pathdata@6.0.3/node_modules/svg-pathdata/lib/SVGPathData.module.js","../../../node_modules/.pnpm/core-js@3.45.1/node_modules/core-js/modules/es.regexp.to-string.js","../../../node_modules/.pnpm/stackblur-canvas@2.7.0/node_modules/stackblur-canvas/dist/stackblur-es.js","../../../node_modules/.pnpm/canvg@3.0.11/node_modules/canvg/lib/index.es.js"],"sourcesContent":["'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(globalThis[namespace]) : globalThis[namespace] && globalThis[namespace][method];\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nvar navigator = globalThis.navigator;\nvar userAgent = navigator && navigator.userAgent;\n\nmodule.exports = userAgent ? String(userAgent) : '';\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\n\nvar process = globalThis.process;\nvar Deno = globalThis.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/environment-v8-version');\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\nvar $String = globalThis.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL &&\n !Symbol.sham &&\n typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nmodule.exports = false;\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(globalThis, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n globalThis[key] = value;\n } return value;\n};\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar globalThis = require('../internals/global-this');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});\n\n(store.versions || (store.versions = [])).push({\n version: '3.45.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2025 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.45.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar store = require('../internals/shared-store');\n\nmodule.exports = function (key, value) {\n return store[key] || (store[key] = value || {});\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.1.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = globalThis.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\n\nvar document = globalThis.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = globalThis.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = globalThis.TypeError;\nvar WeakMap = globalThis.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\).*$/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n var len = toIntegerOrInfinity(argument);\n return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n if (length === 0) return !IS_INCLUDES && -1;\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = globalThis;\n } else if (STATIC) {\n target = globalThis[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = globalThis[TARGET] && globalThis[TARGET].prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","'use strict';\n/* global Bun, Deno -- detection */\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\nvar classof = require('../internals/classof-raw');\n\nvar userAgentStartsWith = function (string) {\n return userAgent.slice(0, string.length) === string;\n};\n\nmodule.exports = (function () {\n if (userAgentStartsWith('Bun/')) return 'BUN';\n if (userAgentStartsWith('Cloudflare-Workers')) return 'CLOUDFLARE';\n if (userAgentStartsWith('Deno/')) return 'DENO';\n if (userAgentStartsWith('Node.js/')) return 'NODE';\n if (globalThis.Bun && typeof Bun.version == 'string') return 'BUN';\n if (globalThis.Deno && typeof Deno.version == 'object') return 'DENO';\n if (classof(globalThis.process) === 'process') return 'NODE';\n if (globalThis.window && globalThis.document) return 'BROWSER';\n return 'REST';\n})();\n","'use strict';\nvar ENVIRONMENT = require('../internals/environment');\n\nmodule.exports = ENVIRONMENT === 'NODE';\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nmodule.exports = globalThis;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nmodule.exports = function (argument) {\n return isObject(argument) || argument === null;\n};\n","'use strict';\nvar isPossiblePrototype = require('../internals/is-possible-prototype');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (isPossiblePrototype(argument)) return argument;\n throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","'use strict';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar isObject = require('../internals/is-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n requireObjectCoercible(O);\n aPossiblePrototype(proto);\n if (!isObject(O)) return O;\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","'use strict';\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw new $TypeError('Incorrect invocation');\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.test(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, [], argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","'use strict';\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-function-prototype-bind, es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw new $TypeError('Not enough arguments');\n return passed;\n};\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/environment-is-ios');\nvar IS_NODE = require('../internals/environment-is-node');\n\nvar set = globalThis.setImmediate;\nvar clear = globalThis.clearImmediate;\nvar process = globalThis.process;\nvar Dispatch = globalThis.Dispatch;\nvar Function = globalThis.Function;\nvar MessageChannel = globalThis.MessageChannel;\nvar String = globalThis.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = globalThis.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n globalThis.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n globalThis.addEventListener &&\n isCallable(globalThis.postMessage) &&\n !globalThis.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n globalThis.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar DESCRIPTORS = require('../internals/descriptors');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Avoid NodeJS experimental warning\nmodule.exports = function (name) {\n if (!DESCRIPTORS) return globalThis[name];\n var descriptor = getOwnPropertyDescriptor(globalThis, name);\n return descriptor && descriptor.value;\n};\n","'use strict';\nvar Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n var tail = this.tail;\n if (tail) tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n var next = this.head = entry.next;\n if (next === null) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar safeGetBuiltIn = require('../internals/safe-get-built-in');\nvar bind = require('../internals/function-bind-context');\nvar macrotask = require('../internals/task').set;\nvar Queue = require('../internals/queue');\nvar IS_IOS = require('../internals/environment-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/environment-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/environment-is-webos-webkit');\nvar IS_NODE = require('../internals/environment-is-node');\n\nvar MutationObserver = globalThis.MutationObserver || globalThis.WebKitMutationObserver;\nvar document = globalThis.document;\nvar process = globalThis.process;\nvar Promise = globalThis.Promise;\nvar microtask = safeGetBuiltIn('queueMicrotask');\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n var queue = new Queue();\n\n var flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (fn = queue.get()) try {\n fn();\n } catch (error) {\n if (queue.head) notify();\n throw error;\n }\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // `webpack` dev server bug on IE global methods - use bind(fn, global)\n macrotask = bind(macrotask, globalThis);\n notify = function () {\n macrotask(flush);\n };\n }\n\n microtask = function (fn) {\n if (!queue.head) notify();\n queue.add(fn);\n };\n}\n\nmodule.exports = microtask;\n","'use strict';\nmodule.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nmodule.exports = globalThis.Promise;\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar ENVIRONMENT = require('../internals/environment');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/environment-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(globalThis.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (ENVIRONMENT === 'BROWSER' || ENVIRONMENT === 'DENO') && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw new $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/environment-is-node');\nvar globalThis = require('../internals/global-this');\nvar path = require('../internals/path');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = globalThis.TypeError;\nvar document = globalThis.document;\nvar process = globalThis.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && globalThis.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state === FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(new TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n globalThis.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = globalThis['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, globalThis, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, globalThis, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw new TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: null\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state === PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n// `Promise` constructor\n// https://tc39.es/ecma262/#sec-promise-executor\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nPromiseWrapper = path.Promise;\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\nvar classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw new $TypeError(tryToString(argument) + ' is not iterable');\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal');\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n try {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n } catch (error) { return false; } // workaround of old WebKit + `eval` bug\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","'use strict';\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n var capabilityReject = capability.reject;\n capabilityReject(r);\n return capability.promise;\n }\n});\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.promise.constructor');\nrequire('../modules/es.promise.all');\nrequire('../modules/es.promise.catch');\nrequire('../modules/es.promise.race');\nrequire('../modules/es.promise.reject');\nrequire('../modules/es.promise.resolve');\n","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = globalThis.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') !== null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') !== null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","'use strict';\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n // eslint-disable-next-line no-useless-assignment -- avoid memory leak\n activeXDocument = null;\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = globalThis.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.test('\\n') && re.flags === 's');\n});\n","'use strict';\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError\nvar $RegExp = globalThis.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?<a>b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$<a>c') !== 'bc';\n});\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegExp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) !== 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () {\n execCalled = true;\n return null;\n };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: call(nativeRegExpMethod, regexp, str, arg2) };\n }\n return { done: true, value: call(nativeMethod, str, regexp, arg2) };\n }\n return { done: false };\n });\n\n defineBuiltIn(String.prototype, KEY, methods[0]);\n defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar fails = require('../internals/fails');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 'd') -> /./d and it causes SyntaxError\nvar RegExp = globalThis.RegExp;\n\nvar FLAGS_GETTER_IS_CORRECT = !fails(function () {\n var INDICES_SUPPORT = true;\n try {\n RegExp('.', 'd');\n } catch (error) {\n INDICES_SUPPORT = false;\n }\n\n var O = {};\n // modern V8 bug\n var calls = '';\n var expected = INDICES_SUPPORT ? 'dgimsy' : 'gimsy';\n\n var addGetter = function (key, chr) {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(O, key, { get: function () {\n calls += chr;\n return true;\n } });\n };\n\n var pairs = {\n dotAll: 's',\n global: 'g',\n ignoreCase: 'i',\n multiline: 'm',\n sticky: 'y'\n };\n\n if (INDICES_SUPPORT) pairs.hasIndices = 'd';\n\n for (var key in pairs) addGetter(key, pairs[key]);\n\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n var result = Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags').get.call(O);\n\n return result !== expected || calls !== expected;\n});\n\nmodule.exports = { correct: FLAGS_GETTER_IS_CORRECT };\n","'use strict';\nvar call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlagsDetection = require('../internals/regexp-flags-detection');\nvar regExpFlagsGetterImplementation = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = regExpFlagsDetection.correct ? function (it) {\n return it.flags;\n} : function (it) {\n return (!regExpFlagsDetection.correct && isPrototypeOf(RegExpPrototype, it) && !hasOwn(it, 'flags'))\n ? call(regExpFlagsGetterImplementation, it)\n : it.flags;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar $TypeError = TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw new $TypeError('RegExp#exec called on incompatible receiver');\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar getMethod = require('../internals/get-method');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = isObject(regexp) ? getMethod(regexp, MATCH) : undefined;\n return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeMatch, rx, S);\n\n if (res.done) return res.value;\n\n var flags = toString(getRegExpFlags(rx));\n\n if (stringIndexOf(flags, 'g') === -1) return regExpExec(rx, S);\n\n var fullUnicode = stringIndexOf(flags, 'u') !== -1;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = toString(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$<a>') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = isObject(searchValue) ? getMethod(searchValue, REPLACE) : undefined;\n return replacer\n ? call(replacer, searchValue, O, replaceValue)\n : call(nativeReplace, toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue == 'string' &&\n stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n stringIndexOf(replaceValue, '$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n\n var flags = toString(getRegExpFlags(rx));\n var global = stringIndexOf(flags, 'g') !== -1;\n var fullUnicode;\n if (global) {\n fullUnicode = stringIndexOf(flags, 'u') !== -1;\n rx.lastIndex = 0;\n }\n\n var results = [];\n var result;\n while (true) {\n result = regExpExec(rx, S);\n if (result === null) break;\n\n push(results, result);\n if (!global) break;\n\n var matchStr = toString(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = toString(result[0]);\n var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\n var captures = [];\n var replacement;\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = concat([matched], captures, position, S);\n if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n replacement = toString(apply(replaceValue, undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","'use strict';\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) === 'RegExp');\n};\n","'use strict';\nvar isRegExp = require('../internals/is-regexp');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw new $TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = toString(searchString);\n return stringSlice(that, index, index + search.length) === search;\n }\n});\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] === undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND && KIND in IterablePrototype) return IterablePrototype[KIND];\n\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n }\n\n return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME === 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = null;\n return createIterResultObject(undefined, true);\n }\n switch (state.kind) {\n case 'keys': return createIterResultObject(index, false);\n case 'values': return createIterResultObject(target[index], false);\n } return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\n// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","'use strict';\n// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n setToStringTag(CollectionPrototype, COLLECTION_NAME, true);\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(globalThis[COLLECTION_NAME] && globalThis[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar $TypeError = TypeError;\n\nvar REDUCE_EMPTY = 'Reduce of empty array with no initial value';\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(O);\n aCallable(callbackfn);\n if (length === 0 && argumentsLength < 2) throw new $TypeError(REDUCE_EMPTY);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw new $TypeError(REDUCE_EMPTY);\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/environment-v8-version');\nvar IS_NODE = require('../internals/environment-is-node');\n\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\nvar FORCED = CHROME_BUG || !arrayMethodIsStrict('reduce');\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: FORCED }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar slice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = that.length;\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = toString(searchString);\n return slice(that, end - search.length, end) === search;\n }\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar MAX_UINT32 = 0xFFFFFFFF;\nvar min = Math.min;\nvar push = uncurryThis([].push);\nvar stringSlice = uncurryThis(''.slice);\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nvar BUGGY = 'abbc'.split(/(b)*/)[1] === 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length !== 4 ||\n 'ab'.split(/(?:ab)*/).length !== 2 ||\n '.'.split(/(.?)(.?)/).length !== 4 ||\n // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length;\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit = '0'.split(undefined, 0).length ? function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);\n } : nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = isObject(separator) ? getMethod(separator, SPLIT) : undefined;\n return splitter\n ? call(splitter, separator, O, limit)\n : call(internalSplit, toString(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (!BUGGY) {\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n }\n\n var C = speciesConstructor(rx, RegExp);\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return regExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = regExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n push(A, stringSlice(S, p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n push(A, z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n push(A, stringSlice(S, p));\n return A;\n }\n ];\n}, BUGGY || !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","'use strict';\n// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar ltrim = RegExp('^[' + whitespaces + ']+');\nvar rtrim = RegExp('(^|[^' + whitespaces + '])[' + whitespaces + ']+$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '$1');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","/*\n\tBased on rgbcolor.js by Stoyan Stefanov <sstoo@gmail.com>\n\thttp://www.phpied.com/rgb-color-parser-in-javascript/\n*/\n\nmodule.exports = function(color_string) {\n this.ok = false;\n this.alpha = 1.0;\n\n // strip any leading #\n if (color_string.charAt(0) == '#') { // remove # if any\n color_string = color_string.substr(1,6);\n }\n\n color_string = color_string.replace(/ /g,'');\n color_string = color_string.toLowerCase();\n\n // before getting into regexps, try simple matches\n // and overwrite the input\n var simple_colors = {\n aliceblue: 'f0f8ff',\n antiquewhite: 'faebd7',\n aqua: '00ffff',\n aquamarine: '7fffd4',\n azure: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '000000',\n blanchedalmond: 'ffebcd',\n blue: '0000ff',\n blueviolet: '8a2be2',\n brown: 'a52a2a',\n burlywood: 'deb887',\n cadetblue: '5f9ea0',\n chartreuse: '7fff00',\n chocolate: 'd2691e',\n coral: 'ff7f50',\n cornflowerblue: '6495ed',\n cornsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: '00ffff',\n darkblue: '00008b',\n darkcyan: '008b8b',\n darkgoldenrod: 'b8860b',\n darkgray: 'a9a9a9',\n darkgreen: '006400',\n darkkhaki: 'bdb76b',\n darkmagenta: '8b008b',\n darkolivegreen: '556b2f',\n darkorange: 'ff8c00',\n darkorchid: '9932cc',\n darkred: '8b0000',\n darksalmon: 'e9967a',\n darkseagreen: '8fbc8f',\n darkslateblue: '483d8b',\n darkslategray: '2f4f4f',\n darkturquoise: '00ced1',\n darkviolet: '9400d3',\n deeppink: 'ff1493',\n deepskyblue: '00bfff',\n dimgray: '696969',\n dodgerblue: '1e90ff',\n feldspar: 'd19275',\n firebrick: 'b22222',\n floralwhite: 'fffaf0',\n forestgreen: '228b22',\n fuchsia: 'ff00ff',\n gainsboro: 'dcdcdc',\n ghostwhite: 'f8f8ff',\n gold: 'ffd700',\n goldenrod: 'daa520',\n gray: '808080',\n green: '008000',\n greenyellow: 'adff2f',\n honeydew: 'f0fff0',\n hotpink: 'ff69b4',\n indianred : 'cd5c5c',\n indigo : '4b0082',\n ivory: 'fffff0',\n khaki: 'f0e68c',\n lavender: 'e6e6fa',\n lavenderblush: 'fff0f5',\n lawngreen: '7cfc00',\n lemonchiffon: 'fffacd',\n lightblue: 'add8e6',\n lightcoral: 'f08080',\n lightcyan: 'e0ffff',\n lightgoldenrodyellow: 'fafad2',\n lightgrey: 'd3d3d3',\n lightgreen: '90ee90',\n lightpink: 'ffb6c1',\n lightsalmon: 'ffa07a',\n lightseagreen: '20b2aa',\n lightskyblue: '87cefa',\n lightslateblue: '8470ff',\n lightslategray: '778899',\n lightsteelblue: 'b0c4de',\n lightyellow: 'ffffe0',\n lime: '00ff00',\n limegreen: '32cd32',\n linen: 'faf0e6',\n magenta: 'ff00ff',\n maroon: '800000',\n mediumaquamarine: '66cdaa',\n mediumblue: '0000cd',\n mediumorchid: 'ba55d3',\n mediumpurple: '9370d8',\n mediumseagreen: '3cb371',\n mediumslateblue: '7b68ee',\n mediumspringgreen: '00fa9a',\n mediumturquoise: '48d1cc',\n mediumvioletred: 'c71585',\n midnightblue: '191970',\n mintcream: 'f5fffa',\n mistyrose: 'ffe4e1',\n moccasin: 'ffe4b5',\n navajowhite: 'ffdead',\n navy: '000080',\n oldlace: 'fdf5e6',\n olive: '808000',\n olivedrab: '6b8e23',\n orange: 'ffa500',\n orangered: 'ff4500',\n orchid: 'da70d6',\n palegoldenrod: 'eee8aa',\n palegreen: '98fb98',\n paleturquoise: 'afeeee',\n palevioletred: 'd87093',\n papayawhip: 'ffefd5',\n peachpuff: 'ffdab9',\n peru: 'cd853f',\n pink: 'ffc0cb',\n plum: 'dda0dd',\n powderblue: 'b0e0e6',\n purple: '800080',\n rebeccapurple: '663399',\n red: 'ff0000',\n rosybrown: 'bc8f8f',\n royalblue: '4169e1',\n saddlebrown: '8b4513',\n salmon: 'fa8072',\n sandybrown: 'f4a460',\n seagreen: '2e8b57',\n seashell: 'fff5ee',\n sienna: 'a0522d',\n silver: 'c0c0c0',\n skyblue: '87ceeb',\n slateblue: '6a5acd',\n slategray: '708090',\n snow: 'fffafa',\n springgreen: '00ff7f',\n steelblue: '4682b4',\n tan: 'd2b48c',\n teal: '008080',\n thistle: 'd8bfd8',\n tomato: 'ff6347',\n turquoise: '40e0d0',\n violet: 'ee82ee',\n violetred: 'd02090',\n wheat: 'f5deb3',\n white: 'ffffff',\n whitesmoke: 'f5f5f5',\n yellow: 'ffff00',\n yellowgreen: '9acd32'\n };\n color_string = simple_colors[color_string] || color_string;\n // emd of simple type-in colors\n\n // array of color definition objects\n var color_defs = [\n {\n re: /^rgba\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3}),\\s*((?:\\d?\\.)?\\d)\\)$/,\n example: ['rgba(123, 234, 45, 0.8)', 'rgba(255,234,245,1.0)'],\n process: function (bits){\n return [\n parseInt(bits[1]),\n parseInt(bits[2]),\n parseInt(bits[3]),\n parseFloat(bits[4])\n ];\n }\n },\n {\n re: /^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\n example: ['rgb(123, 234, 45)', 'rgb(255,234,245)'],\n process: function (bits){\n return [\n parseInt(bits[1]),\n parseInt(bits[2]),\n parseInt(bits[3])\n ];\n }\n },\n {\n re: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n example: ['#00ff00', '336699'],\n process: function (bits){\n return [\n parseInt(bits[1], 16),\n parseInt(bits[2], 16),\n parseInt(bits[3], 16)\n ];\n }\n },\n {\n re: /^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n example: ['#fb0', 'f0f'],\n process: function (bits){\n return [\n parseInt(bits[1] + bits[1], 16),\n parseInt(bits[2] + bits[2], 16),\n parseInt(bits[3] + bits[3], 16)\n ];\n }\n }\n ];\n\n // search through the definitions to find a match\n for (var i = 0; i < color_defs.length; i++) {\n var re = color_defs[i].re;\n var processor = color_defs[i].process;\n var bits = re.exec(color_string);\n if (bits) {\n var channels = processor(bits);\n this.r = channels[0];\n this.g = channels[1];\n this.b = channels[2];\n if (channels.length > 3) {\n this.alpha = channels[3];\n }\n this.ok = true;\n }\n\n }\n\n // validate/cleanup values\n this.r = (this.r < 0 || isNaN(this.r)) ? 0 : ((this.r > 255) ? 255 : this.r);\n this.g = (this.g < 0 || isNaN(this.g)) ? 0 : ((this.g > 255) ? 255 : this.g);\n this.b = (this.b < 0 || isNaN(this.b)) ? 0 : ((this.b > 255) ? 255 : this.b);\n this.alpha = (this.alpha < 0) ? 0 : ((this.alpha > 1.0 || isNaN(this.alpha)) ? 1.0 : this.alpha);\n\n // some getters\n this.toRGB = function () {\n return 'rgb(' + this.r + ', ' + this.g + ', ' + this.b + ')';\n }\n this.toRGBA = function () {\n return 'rgba(' + this.r + ', ' + this.g + ', ' + this.b + ', ' + this.alpha + ')';\n }\n this.toHex = function () {\n var r = this.r.toString(16);\n var g = this.g.toString(16);\n var b = this.b.toString(16);\n if (r.length == 1) r = '0' + r;\n if (g.length == 1) g = '0' + g;\n if (b.length == 1) b = '0' + b;\n return '#' + r + g + b;\n }\n\n // help\n this.getHelpXML = function () {\n\n var examples = new Array();\n // add regexps\n for (var i = 0; i < color_defs.length; i++) {\n var example = color_defs[i].example;\n for (var j = 0; j < example.length; j++) {\n examples[examples.length] = example[j];\n }\n }\n // add type-in colors\n for (var sc in simple_colors) {\n examples[examples.length] = sc;\n }\n\n var xml = document.createElement('ul');\n xml.setAttribute('id', 'rgbcolor-examples');\n for (var i = 0; i < examples.length; i++) {\n try {\n var list_item = document.createElement('li');\n var list_color = new RGBColor(examples[i]);\n var example_div = document.createElement('div');\n example_div.style.cssText =\n 'margin: 3px; '\n + 'border: 1px solid black; '\n + 'background:' + list_color.toHex() + '; '\n + 'color:' + list_color.toHex()\n ;\n example_div.appendChild(document.createTextNode('test'));\n var list_item_value = document.createTextNode(\n ' ' + examples[i] + ' -> ' + list_color.toRGB() + ' -> ' + list_color.toHex()\n );\n list_item.appendChild(example_div);\n list_item.appendChild(list_item_value);\n xml.appendChild(list_item);\n\n } catch(e){}\n }\n return xml;\n\n }\n\n}\n","'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeIndexOf = uncurryThis([].indexOf);\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0;\nvar FORCED = NEGATIVE_ZERO || !arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: FORCED }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n var fromIndex = arguments.length > 1 ? arguments[1] : undefined;\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf(this, searchElement, fromIndex) || 0\n : $indexOf(this, searchElement, fromIndex);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\n});\n","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) === 'Array';\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\n\nvar nativeReverse = uncurryThis([].reverse);\nvar test = [1, 2];\n\n// `Array.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-array.prototype.reverse\n// fix for Safari 12.0 bug\n// https://bugs.webkit.org/show_bug.cgi?id=188794\n$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, {\n reverse: function reverse() {\n // eslint-disable-next-line no-self-assign -- dirty hack\n if (isArray(this)) this.length = this.length;\n return nativeReverse(this);\n }\n});\n","/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\nvar t=function(r,e){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(t[e]=r[e])})(r,e)};function r(r,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Class extends value \"+String(e)+\" is not a constructor or null\");function i(){this.constructor=r}t(r,e),r.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}function e(t){var r=\"\";Array.isArray(t)||(t=[t]);for(var e=0;e<t.length;e++){var i=t[e];if(i.type===_.CLOSE_PATH)r+=\"z\";else if(i.type===_.HORIZ_LINE_TO)r+=(i.relative?\"h\":\"H\")+i.x;else if(i.type===_.VERT_LINE_TO)r+=(i.relative?\"v\":\"V\")+i.y;else if(i.type===_.MOVE_TO)r+=(i.relative?\"m\":\"M\")+i.x+\" \"+i.y;else if(i.type===_.LINE_TO)r+=(i.relative?\"l\":\"L\")+i.x+\" \"+i.y;else if(i.type===_.CURVE_TO)r+=(i.relative?\"c\":\"C\")+i.x1+\" \"+i.y1+\" \"+i.x2+\" \"+i.y2+\" \"+i.x+\" \"+i.y;else if(i.type===_.SMOOTH_CURVE_TO)r+=(i.relative?\"s\":\"S\")+i.x2+\" \"+i.y2+\" \"+i.x+\" \"+i.y;else if(i.type===_.QUAD_TO)r+=(i.relative?\"q\":\"Q\")+i.x1+\" \"+i.y1+\" \"+i.x+\" \"+i.y;else if(i.type===_.SMOOTH_QUAD_TO)r+=(i.relative?\"t\":\"T\")+i.x+\" \"+i.y;else{if(i.type!==_.ARC)throw new Error('Unexpected command type \"'+i.type+'\" at index '+e+\".\");r+=(i.relative?\"a\":\"A\")+i.rX+\" \"+i.rY+\" \"+i.xRot+\" \"+ +i.lArcFlag+\" \"+ +i.sweepFlag+\" \"+i.x+\" \"+i.y}}return r}function i(t,r){var e=t[0],i=t[1];return[e*Math.cos(r)-i*Math.sin(r),e*Math.sin(r)+i*Math.cos(r)]}function a(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];for(var e=0;e<t.length;e++)if(\"number\"!=typeof t[e])throw new Error(\"assertNumbers arguments[\"+e+\"] is not a number. \"+typeof t[e]+\" == typeof \"+t[e]);return!0}var n=Math.PI;function o(t,r,e){t.lArcFlag=0===t.lArcFlag?0:1,t.sweepFlag=0===t.sweepFlag?0:1;var a=t.rX,o=t.rY,s=t.x,u=t.y;a=Math.abs(t.rX),o=Math.abs(t.rY);var h=i([(r-s)/2,(e-u)/2],-t.xRot/180*n),c=h[0],y=h[1],p=Math.pow(c,2)/Math.pow(a,2)+Math.pow(y,2)/Math.pow(o,2);1<p&&(a*=Math.sqrt(p),o*=Math.sqrt(p)),t.rX=a,t.rY=o;var m=Math.pow(a,2)*Math.pow(y,2)+Math.pow(o,2)*Math.pow(c,2),O=(t.lArcFlag!==t.sweepFlag?1:-1)*Math.sqrt(Math.max(0,(Math.pow(a,2)*Math.pow(o,2)-m)/m)),l=a*y/o*O,T=-o*c/a*O,v=i([l,T],t.xRot/180*n);t.cX=v[0]+(r+s)/2,t.cY=v[1]+(e+u)/2,t.phi1=Math.atan2((y-T)/o,(c-l)/a),t.phi2=Math.atan2((-y-T)/o,(-c-l)/a),0===t.sweepFlag&&t.phi2>t.phi1&&(t.phi2-=2*n),1===t.sweepFlag&&t.phi2<t.phi1&&(t.phi2+=2*n),t.phi1*=180/n,t.phi2*=180/n}function s(t,r,e){a(t,r,e);var i=t*t+r*r-e*e;if(0>i)return[];if(0===i)return[[t*e/(t*t+r*r),r*e/(t*t+r*r)]];var n=Math.sqrt(i);return[[(t*e+r*n)/(t*t+r*r),(r*e-t*n)/(t*t+r*r)],[(t*e-r*n)/(t*t+r*r),(r*e+t*n)/(t*t+r*r)]]}var u,h=Math.PI/180;function c(t,r,e){return(1-e)*t+e*r}function y(t,r,e,i){return t+Math.cos(i/180*n)*r+Math.sin(i/180*n)*e}function p(t,r,e,i){var a=1e-6,n=r-t,o=e-r,s=3*n+3*(i-e)-6*o,u=6*(o-n),h=3*n;return Math.abs(s)<a?[-h/u]:function(t,r,e){void 0===e&&(e=1e-6);var i=t*t/4-r;if(i<-e)return[];if(i<=e)return[-t/2];var a=Math.sqrt(i);return[-t/2-a,-t/2+a]}(u/s,h/s,a)}function m(t,r,e,i,a){var n=1-a;return t*(n*n*n)+r*(3*n*n*a)+e*(3*n*a*a)+i*(a*a*a)}!function(t){function r(){return u((function(t,r,e){return t.relative&&(void 0!==t.x1&&(t.x1+=r),void 0!==t.y1&&(t.y1+=e),void 0!==t.x2&&(t.x2+=r),void 0!==t.y2&&(t.y2+=e),void 0!==t.x&&(t.x+=r),void 0!==t.y&&(t.y+=e),t.relative=!1),t}))}function e(){var t=NaN,r=NaN,e=NaN,i=NaN;return u((function(a,n,o){return a.type&_.SMOOTH_CURVE_TO&&(a.type=_.CURVE_TO,t=isNaN(t)?n:t,r=isNaN(r)?o:r,a.x1=a.relative?n-t:2*n-t,a.y1=a.relative?o-r:2*o-r),a.type&_.CURVE_TO?(t=a.relative?n+a.x2:a.x2,r=a.relative?o+a.y2:a.y2):(t=NaN,r=NaN),a.type&_.SMOOTH_QUAD_TO&&(a.type=_.QUAD_TO,e=isNaN(e)?n:e,i=isNaN(i)?o:i,a.x1=a.relative?n-e:2*n-e,a.y1=a.relative?o-i:2*o-i),a.type&_.QUAD_TO?(e=a.relative?n+a.x1:a.x1,i=a.relative?o+a.y1:a.y1):(e=NaN,i=NaN),a}))}function n(){var t=NaN,r=NaN;return u((function(e,i,a){if(e.type&_.SMOOTH_QUAD_TO&&(e.type=_.QUAD_TO,t=isNaN(t)?i:t,r=isNaN(r)?a:r,e.x1=e.relative?i-t:2*i-t,e.y1=e.relative?a-r:2*a-r),e.type&_.QUAD_TO){t=e.relative?i+e.x1:e.x1,r=e.relative?a+e.y1:e.y1;var n=e.x1,o=e.y1;e.type=_.CURVE_TO,e.x1=((e.relative?0:i)+2*n)/3,e.y1=((e.relative?0:a)+2*o)/3,e.x2=(e.x+2*n)/3,e.y2=(e.y+2*o)/3}else t=NaN,r=NaN;return e}))}function u(t){var r=0,e=0,i=NaN,a=NaN;return function(n){if(isNaN(i)&&!(n.type&_.MOVE_TO))throw new Error(\"path must start with moveto\");var o=t(n,r,e,i,a);return n.type&_.CLOSE_PATH&&(r=i,e=a),void 0!==n.x&&(r=n.relative?r+n.x:n.x),void 0!==n.y&&(e=n.relative?e+n.y:n.y),n.type&_.MOVE_TO&&(i=r,a=e),o}}function O(t,r,e,i,n,o){return a(t,r,e,i,n,o),u((function(a,s,u,h){var c=a.x1,y=a.x2,p=a.relative&&!isNaN(h),m=void 0!==a.x?a.x:p?0:s,O=void 0!==a.y?a.y:p?0:u;function l(t){return t*t}a.type&_.HORIZ_LINE_TO&&0!==r&&(a.type=_.LINE_TO,a.y=a.relative?0:u),a.type&_.VERT_LINE_TO&&0!==e&&(a.type=_.LINE_TO,a.x=a.relative?0:s),void 0!==a.x&&(a.x=a.x*t+O*e+(p?0:n)),void 0!==a.y&&(a.y=m*r+a.y*i+(p?0:o)),void 0!==a.x1&&(a.x1=a.x1*t+a.y1*e+(p?0:n)),void 0!==a.y1&&(a.y1=c*r+a.y1*i+(p?0:o)),void 0!==a.x2&&(a.x2=a.x2*t+a.y2*e+(p?0:n)),void 0!==a.y2&&(a.y2=y*r+a.y2*i+(p?0:o));var T=t*i-r*e;if(void 0!==a.xRot&&(1!==t||0!==r||0!==e||1!==i))if(0===T)delete a.rX,delete a.rY,delete a.xRot,delete a.lArcFlag,delete a.sweepFlag,a.type=_.LINE_TO;else{var v=a.xRot*Math.PI/180,f=Math.sin(v),N=Math.cos(v),x=1/l(a.rX),d=1/l(a.rY),E=l(N)*x+l(f)*d,A=2*f*N*(x-d),C=l(f)*x+l(N)*d,M=E*i*i-A*r*i+C*r*r,R=A*(t*i+r*e)-2*(E*e*i+C*t*r),g=E*e*e-A*t*e+C*t*t,I=(Math.atan2(R,M-g)+Math.PI)%Math.PI/2,S=Math.sin(I),L=Math.cos(I);a.rX=Math.abs(T)/Math.sqrt(M*l(L)+R*S*L+g*l(S)),a.rY=Math.abs(T)/Math.sqrt(M*l(S)-R*S*L+g*l(L)),a.xRot=180*I/Math.PI}return void 0!==a.sweepFlag&&0>T&&(a.sweepFlag=+!a.sweepFlag),a}))}function l(){return function(t){var r={};for(var e in t)r[e]=t[e];return r}}t.ROUND=function(t){function r(r){return Math.round(r*t)/t}return void 0===t&&(t=1e13),a(t),function(t){return void 0!==t.x1&&(t.x1=r(t.x1)),void 0!==t.y1&&(t.y1=r(t.y1)),void 0!==t.x2&&(t.x2=r(t.x2)),void 0!==t.y2&&(t.y2=r(t.y2)),void 0!==t.x&&(t.x=r(t.x)),void 0!==t.y&&(t.y=r(t.y)),void 0!==t.rX&&(t.rX=r(t.rX)),void 0!==t.rY&&(t.rY=r(t.rY)),t}},t.TO_ABS=r,t.TO_REL=function(){return u((function(t,r,e){return t.relative||(void 0!==t.x1&&(t.x1-=r),void 0!==t.y1&&(t.y1-=e),void 0!==t.x2&&(t.x2-=r),void 0!==t.y2&&(t.y2-=e),void 0!==t.x&&(t.x-=r),void 0!==t.y&&(t.y-=e),t.relative=!0),t}))},t.NORMALIZE_HVZ=function(t,r,e){return void 0===t&&(t=!0),void 0===r&&(r=!0),void 0===e&&(e=!0),u((function(i,a,n,o,s){if(isNaN(o)&&!(i.type&_.MOVE_TO))throw new Error(\"path must start with moveto\");return r&&i.type&_.HORIZ_LINE_TO&&(i.type=_.LINE_TO,i.y=i.relative?0:n),e&&i.type&_.VERT_LINE_TO&&(i.type=_.LINE_TO,i.x=i.relative?0:a),t&&i.type&_.CLOSE_PATH&&(i.type=_.LINE_TO,i.x=i.relative?o-a:o,i.y=i.relative?s-n:s),i.type&_.ARC&&(0===i.rX||0===i.rY)&&(i.type=_.LINE_TO,delete i.rX,delete i.rY,delete i.xRot,delete i.lArcFlag,delete i.sweepFlag),i}))},t.NORMALIZE_ST=e,t.QT_TO_C=n,t.INFO=u,t.SANITIZE=function(t){void 0===t&&(t=0),a(t);var r=NaN,e=NaN,i=NaN,n=NaN;return u((function(a,o,s,u,h){var c=Math.abs,y=!1,p=0,m=0;if(a.type&_.SMOOTH_CURVE_TO&&(p=isNaN(r)?0:o-r,m=isNaN(e)?0:s-e),a.type&(_.CURVE_TO|_.SMOOTH_CURVE_TO)?(r=a.relative?o+a.x2:a.x2,e=a.relative?s+a.y2:a.y2):(r=NaN,e=NaN),a.type&_.SMOOTH_QUAD_TO?(i=isNaN(i)?o:2*o-i,n=isNaN(n)?s:2*s-n):a.type&_.QUAD_TO?(i=a.relative?o+a.x1:a.x1,n=a.relative?s+a.y1:a.y2):(i=NaN,n=NaN),a.type&_.LINE_COMMANDS||a.type&_.ARC&&(0===a.rX||0===a.rY||!a.lArcFlag)||a.type&_.CURVE_TO||a.type&_.SMOOTH_CURVE_TO||a.type&_.QUAD_TO||a.type&_.SMOOTH_QUAD_TO){var O=void 0===a.x?0:a.relative?a.x:a.x-o,l=void 0===a.y?0:a.relative?a.y:a.y-s;p=isNaN(i)?void 0===a.x1?p:a.relative?a.x:a.x1-o:i-o,m=isNaN(n)?void 0===a.y1?m:a.relative?a.y:a.y1-s:n-s;var T=void 0===a.x2?0:a.relative?a.x:a.x2-o,v=void 0===a.y2?0:a.relative?a.y:a.y2-s;c(O)<=t&&c(l)<=t&&c(p)<=t&&c(m)<=t&&c(T)<=t&&c(v)<=t&&(y=!0)}return a.type&_.CLOSE_PATH&&c(o-u)<=t&&c(s-h)<=t&&(y=!0),y?[]:a}))},t.MATRIX=O,t.ROTATE=function(t,r,e){void 0===r&&(r=0),void 0===e&&(e=0),a(t,r,e);var i=Math.sin(t),n=Math.cos(t);return O(n,i,-i,n,r-r*n+e*i,e-r*i-e*n)},t.TRANSLATE=function(t,r){return void 0===r&&(r=0),a(t,r),O(1,0,0,1,t,r)},t.SCALE=function(t,r){return void 0===r&&(r=t),a(t,r),O(t,0,0,r,0,0)},t.SKEW_X=function(t){return a(t),O(1,0,Math.atan(t),1,0,0)},t.SKEW_Y=function(t){return a(t),O(1,Math.atan(t),0,1,0,0)},t.X_AXIS_SYMMETRY=function(t){return void 0===t&&(t=0),a(t),O(-1,0,0,1,t,0)},t.Y_AXIS_SYMMETRY=function(t){return void 0===t&&(t=0),a(t),O(1,0,0,-1,0,t)},t.A_TO_C=function(){return u((function(t,r,e){return _.ARC===t.type?function(t,r,e){var a,n,s,u;t.cX||o(t,r,e);for(var y=Math.min(t.phi1,t.phi2),p=Math.max(t.phi1,t.phi2)-y,m=Math.ceil(p/90),O=new Array(m),l=r,T=e,v=0;v<m;v++){var f=c(t.phi1,t.phi2,v/m),N=c(t.phi1,t.phi2,(v+1)/m),x=N-f,d=4/3*Math.tan(x*h/4),E=[Math.cos(f*h)-d*Math.sin(f*h),Math.sin(f*h)+d*Math.cos(f*h)],A=E[0],C=E[1],M=[Math.cos(N*h),Math.sin(N*h)],R=M[0],g=M[1],I=[R+d*Math.sin(N*h),g-d*Math.cos(N*h)],S=I[0],L=I[1];O[v]={relative:t.relative,type:_.CURVE_TO};var H=function(r,e){var a=i([r*t.rX,e*t.rY],t.xRot),n=a[0],o=a[1];return[t.cX+n,t.cY+o]};a=H(A,C),O[v].x1=a[0],O[v].y1=a[1],n=H(S,L),O[v].x2=n[0],O[v].y2=n[1],s=H(R,g),O[v].x=s[0],O[v].y=s[1],t.relative&&(O[v].x1-=l,O[v].y1-=T,O[v].x2-=l,O[v].y2-=T,O[v].x-=l,O[v].y-=T),l=(u=[O[v].x,O[v].y])[0],T=u[1]}return O}(t,t.relative?0:r,t.relative?0:e):t}))},t.ANNOTATE_ARCS=function(){return u((function(t,r,e){return t.relative&&(r=0,e=0),_.ARC===t.type&&o(t,r,e),t}))},t.CLONE=l,t.CALCULATE_BOUNDS=function(){var t=function(t){var r={};for(var e in t)r[e]=t[e];return r},i=r(),a=n(),h=e(),c=u((function(r,e,n){var u=h(a(i(t(r))));function O(t){t>c.maxX&&(c.maxX=t),t<c.minX&&(c.minX=t)}function l(t){t>c.maxY&&(c.maxY=t),t<c.minY&&(c.minY=t)}if(u.type&_.DRAWING_COMMANDS&&(O(e),l(n)),u.type&_.HORIZ_LINE_TO&&O(u.x),u.type&_.VERT_LINE_TO&&l(u.y),u.type&_.LINE_TO&&(O(u.x),l(u.y)),u.type&_.CURVE_TO){O(u.x),l(u.y);for(var T=0,v=p(e,u.x1,u.x2,u.x);T<v.length;T++){0<(w=v[T])&&1>w&&O(m(e,u.x1,u.x2,u.x,w))}for(var f=0,N=p(n,u.y1,u.y2,u.y);f<N.length;f++){0<(w=N[f])&&1>w&&l(m(n,u.y1,u.y2,u.y,w))}}if(u.type&_.ARC){O(u.x),l(u.y),o(u,e,n);for(var x=u.xRot/180*Math.PI,d=Math.cos(x)*u.rX,E=Math.sin(x)*u.rX,A=-Math.sin(x)*u.rY,C=Math.cos(x)*u.rY,M=u.phi1<u.phi2?[u.phi1,u.phi2]:-180>u.phi2?[u.phi2+360,u.phi1+360]:[u.phi2,u.phi1],R=M[0],g=M[1],I=function(t){var r=t[0],e=t[1],i=180*Math.atan2(e,r)/Math.PI;return i<R?i+360:i},S=0,L=s(A,-d,0).map(I);S<L.length;S++){(w=L[S])>R&&w<g&&O(y(u.cX,d,A,w))}for(var H=0,U=s(C,-E,0).map(I);H<U.length;H++){var w;(w=U[H])>R&&w<g&&l(y(u.cY,E,C,w))}}return r}));return c.minX=1/0,c.maxX=-1/0,c.minY=1/0,c.maxY=-1/0,c}}(u||(u={}));var O,l=function(){function t(){}return t.prototype.round=function(t){return this.transform(u.ROUND(t))},t.prototype.toAbs=function(){return this.transform(u.TO_ABS())},t.prototype.toRel=function(){return this.transform(u.TO_REL())},t.prototype.normalizeHVZ=function(t,r,e){return this.transform(u.NORMALIZE_HVZ(t,r,e))},t.prototype.normalizeST=function(){return this.transform(u.NORMALIZE_ST())},t.prototype.qtToC=function(){return this.transform(u.QT_TO_C())},t.prototype.aToC=function(){return this.transform(u.A_TO_C())},t.prototype.sanitize=function(t){return this.transform(u.SANITIZE(t))},t.prototype.translate=function(t,r){return this.transform(u.TRANSLATE(t,r))},t.prototype.scale=function(t,r){return this.transform(u.SCALE(t,r))},t.prototype.rotate=function(t,r,e){return this.transform(u.ROTATE(t,r,e))},t.prototype.matrix=function(t,r,e,i,a,n){return this.transform(u.MATRIX(t,r,e,i,a,n))},t.prototype.skewX=function(t){return this.transform(u.SKEW_X(t))},t.prototype.skewY=function(t){return this.transform(u.SKEW_Y(t))},t.prototype.xSymmetry=function(t){return this.transform(u.X_AXIS_SYMMETRY(t))},t.prototype.ySymmetry=function(t){return this.transform(u.Y_AXIS_SYMMETRY(t))},t.prototype.annotateArcs=function(){return this.transform(u.ANNOTATE_ARCS())},t}(),T=function(t){return\" \"===t||\"\\t\"===t||\"\\r\"===t||\"\\n\"===t},v=function(t){return\"0\".charCodeAt(0)<=t.charCodeAt(0)&&t.charCodeAt(0)<=\"9\".charCodeAt(0)},f=function(t){function e(){var r=t.call(this)||this;return r.curNumber=\"\",r.curCommandType=-1,r.curCommandRelative=!1,r.canParseCommandOrComma=!0,r.curNumberHasExp=!1,r.curNumberHasExpDigits=!1,r.curNumberHasDecimal=!1,r.curArgs=[],r}return r(e,t),e.prototype.finish=function(t){if(void 0===t&&(t=[]),this.parse(\" \",t),0!==this.curArgs.length||!this.canParseCommandOrComma)throw new SyntaxError(\"Unterminated command at the path end.\");return t},e.prototype.parse=function(t,r){var e=this;void 0===r&&(r=[]);for(var i=function(t){r.push(t),e.curArgs.length=0,e.canParseCommandOrComma=!0},a=0;a<t.length;a++){var n=t[a],o=!(this.curCommandType!==_.ARC||3!==this.curArgs.length&&4!==this.curArgs.length||1!==this.curNumber.length||\"0\"!==this.curNumber&&\"1\"!==this.curNumber),s=v(n)&&(\"0\"===this.curNumber&&\"0\"===n||o);if(!v(n)||s)if(\"e\"!==n&&\"E\"!==n)if(\"-\"!==n&&\"+\"!==n||!this.curNumberHasExp||this.curNumberHasExpDigits)if(\".\"!==n||this.curNumberHasExp||this.curNumberHasDecimal||o){if(this.curNumber&&-1!==this.curCommandType){var u=Number(this.curNumber);if(isNaN(u))throw new SyntaxError(\"Invalid number ending at \"+a);if(this.curCommandType===_.ARC)if(0===this.curArgs.length||1===this.curArgs.length){if(0>u)throw new SyntaxError('Expected positive number, got \"'+u+'\" at index \"'+a+'\"')}else if((3===this.curArgs.length||4===this.curArgs.length)&&\"0\"!==this.curNumber&&\"1\"!==this.curNumber)throw new SyntaxError('Expected a flag, got \"'+this.curNumber+'\" at index \"'+a+'\"');this.curArgs.push(u),this.curArgs.length===N[this.curCommandType]&&(_.HORIZ_LINE_TO===this.curCommandType?i({type:_.HORIZ_LINE_TO,relative:this.curCommandRelative,x:u}):_.VERT_LINE_TO===this.curCommandType?i({type:_.VERT_LINE_TO,relative:this.curCommandRelative,y:u}):this.curCommandType===_.MOVE_TO||this.curCommandType===_.LINE_TO||this.curCommandType===_.SMOOTH_QUAD_TO?(i({type:this.curCommandType,relative:this.curCommandRelative,x:this.curArgs[0],y:this.curArgs[1]}),_.MOVE_TO===this.curCommandType&&(this.curCommandType=_.LINE_TO)):this.curCommandType===_.CURVE_TO?i({type:_.CURVE_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x2:this.curArgs[2],y2:this.curArgs[3],x:this.curArgs[4],y:this.curArgs[5]}):this.curCommandType===_.SMOOTH_CURVE_TO?i({type:_.SMOOTH_CURVE_TO,relative:this.curCommandRelative,x2:this.curArgs[0],y2:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===_.QUAD_TO?i({type:_.QUAD_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===_.ARC&&i({type:_.ARC,relative:this.curCommandRelative,rX:this.curArgs[0],rY:this.curArgs[1],xRot:this.curArgs[2],lArcFlag:this.curArgs[3],sweepFlag:this.curArgs[4],x:this.curArgs[5],y:this.curArgs[6]})),this.curNumber=\"\",this.curNumberHasExpDigits=!1,this.curNumberHasExp=!1,this.curNumberHasDecimal=!1,this.canParseCommandOrComma=!0}if(!T(n))if(\",\"===n&&this.canParseCommandOrComma)this.canParseCommandOrComma=!1;else if(\"+\"!==n&&\"-\"!==n&&\".\"!==n)if(s)this.curNumber=n,this.curNumberHasDecimal=!1;else{if(0!==this.curArgs.length)throw new SyntaxError(\"Unterminated command at index \"+a+\".\");if(!this.canParseCommandOrComma)throw new SyntaxError('Unexpected character \"'+n+'\" at index '+a+\". Command cannot follow comma\");if(this.canParseCommandOrComma=!1,\"z\"!==n&&\"Z\"!==n)if(\"h\"===n||\"H\"===n)this.curCommandType=_.HORIZ_LINE_TO,this.curCommandRelative=\"h\"===n;else if(\"v\"===n||\"V\"===n)this.curCommandType=_.VERT_LINE_TO,this.curCommandRelative=\"v\"===n;else if(\"m\"===n||\"M\"===n)this.curCommandType=_.MOVE_TO,this.curCommandRelative=\"m\"===n;else if(\"l\"===n||\"L\"===n)this.curCommandType=_.LINE_TO,this.curCommandRelative=\"l\"===n;else if(\"c\"===n||\"C\"===n)this.curCommandType=_.CURVE_TO,this.curCommandRelative=\"c\"===n;else if(\"s\"===n||\"S\"===n)this.curCommandType=_.SMOOTH_CURVE_TO,this.curCommandRelative=\"s\"===n;else if(\"q\"===n||\"Q\"===n)this.curCommandType=_.QUAD_TO,this.curCommandRelative=\"q\"===n;else if(\"t\"===n||\"T\"===n)this.curCommandType=_.SMOOTH_QUAD_TO,this.curCommandRelative=\"t\"===n;else{if(\"a\"!==n&&\"A\"!==n)throw new SyntaxError('Unexpected character \"'+n+'\" at index '+a+\".\");this.curCommandType=_.ARC,this.curCommandRelative=\"a\"===n}else r.push({type:_.CLOSE_PATH}),this.canParseCommandOrComma=!0,this.curCommandType=-1}else this.curNumber=n,this.curNumberHasDecimal=\".\"===n}else this.curNumber+=n,this.curNumberHasDecimal=!0;else this.curNumber+=n;else this.curNumber+=n,this.curNumberHasExp=!0;else this.curNumber+=n,this.curNumberHasExpDigits=this.curNumberHasExp}return r},e.prototype.transform=function(t){return Object.create(this,{parse:{value:function(r,e){void 0===e&&(e=[]);for(var i=0,a=Object.getPrototypeOf(this).parse.call(this,r);i<a.length;i++){var n=a[i],o=t(n);Array.isArray(o)?e.push.apply(e,o):e.push(o)}return e}}})},e}(l),_=function(t){function i(r){var e=t.call(this)||this;return e.commands=\"string\"==typeof r?i.parse(r):r,e}return r(i,t),i.prototype.encode=function(){return i.encode(this.commands)},i.prototype.getBounds=function(){var t=u.CALCULATE_BOUNDS();return this.transform(t),t},i.prototype.transform=function(t){for(var r=[],e=0,i=this.commands;e<i.length;e++){var a=t(i[e]);Array.isArray(a)?r.push.apply(r,a):r.push(a)}return this.commands=r,this},i.encode=function(t){return e(t)},i.parse=function(t){var r=new f,e=[];return r.parse(t,e),r.finish(e),e},i.CLOSE_PATH=1,i.MOVE_TO=2,i.HORIZ_LINE_TO=4,i.VERT_LINE_TO=8,i.LINE_TO=16,i.CURVE_TO=32,i.SMOOTH_CURVE_TO=64,i.QUAD_TO=128,i.SMOOTH_QUAD_TO=256,i.ARC=512,i.LINE_COMMANDS=i.LINE_TO|i.HORIZ_LINE_TO|i.VERT_LINE_TO,i.DRAWING_COMMANDS=i.HORIZ_LINE_TO|i.VERT_LINE_TO|i.LINE_TO|i.CURVE_TO|i.SMOOTH_CURVE_TO|i.QUAD_TO|i.SMOOTH_QUAD_TO|i.ARC,i}(l),N=((O={})[_.MOVE_TO]=2,O[_.LINE_TO]=2,O[_.HORIZ_LINE_TO]=1,O[_.VERT_LINE_TO]=1,O[_.CLOSE_PATH]=0,O[_.QUAD_TO]=4,O[_.SMOOTH_QUAD_TO]=2,O[_.CURVE_TO]=6,O[_.SMOOTH_CURVE_TO]=4,O[_.ARC]=7,O);export{N as COMMAND_ARG_COUNTS,_ as SVGPathData,f as SVGPathDataParser,u as SVGPathDataTransformer,e as encodeSVGPath};\n//# sourceMappingURL=SVGPathData.module.js.map\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar anObject = require('../internals/an-object');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) !== '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name !== TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n defineBuiltIn(RegExpPrototype, TO_STRING, function toString() {\n var R = anObject(this);\n var pattern = $toString(R.source);\n var flags = $toString(getRegExpFlags(R));\n return '/' + pattern + '/' + flags;\n }, { unsafe: true });\n}\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\n/* eslint-disable no-bitwise -- used for calculations */\n\n/* eslint-disable unicorn/prefer-query-selector -- aiming at\n backward-compatibility */\n\n/**\n* StackBlur - a fast almost Gaussian Blur For Canvas\n*\n* In case you find this class useful - especially in commercial projects -\n* I am not totally unhappy for a small donation to my PayPal account\n* mario@quasimondo.de\n*\n* Or support me on flattr:\n* {@link https://flattr.com/thing/72791/StackBlur-a-fast-almost-Gaussian-Blur-Effect-for-CanvasJavascript}.\n*\n* @module StackBlur\n* @author Mario Klingemann\n* Contact: mario@quasimondo.com\n* Website: {@link http://www.quasimondo.com/StackBlurForCanvas/StackBlurDemo.html}\n* Twitter: @quasimondo\n*\n* @copyright (c) 2010 Mario Klingemann\n*\n* Permission is hereby granted, free of charge, to any person\n* obtaining a copy of this software and associated documentation\n* files (the \"Software\"), to deal in the Software without\n* restriction, including without limitation the rights to use,\n* copy, modify, merge, publish, distribute, sublicense, and/or sell\n* copies of the Software, and to permit persons to whom the\n* Software is furnished to do so, subject to the following\n* conditions:\n*\n* The above copyright notice and this permission notice shall be\n* included in all copies or substantial portions of the Software.\n*\n* THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n* OTHER DEALINGS IN THE SOFTWARE.\n*/\nvar mulTable = [512, 512, 456, 512, 328, 456, 335, 512, 405, 328, 271, 456, 388, 335, 292, 512, 454, 405, 364, 328, 298, 271, 496, 456, 420, 388, 360, 335, 312, 292, 273, 512, 482, 454, 428, 405, 383, 364, 345, 328, 312, 298, 284, 271, 259, 496, 475, 456, 437, 420, 404, 388, 374, 360, 347, 335, 323, 312, 302, 292, 282, 273, 265, 512, 497, 482, 468, 454, 441, 428, 417, 405, 394, 383, 373, 364, 354, 345, 337, 328, 320, 312, 305, 298, 291, 284, 278, 271, 265, 259, 507, 496, 485, 475, 465, 456, 446, 437, 428, 420, 412, 404, 396, 388, 381, 374, 367, 360, 354, 347, 341, 335, 329, 323, 318, 312, 307, 302, 297, 292, 287, 282, 278, 273, 269, 265, 261, 512, 505, 497, 489, 482, 475, 468, 461, 454, 447, 441, 435, 428, 422, 417, 411, 405, 399, 394, 389, 383, 378, 373, 368, 364, 359, 354, 350, 345, 341, 337, 332, 328, 324, 320, 316, 312, 309, 305, 301, 298, 294, 291, 287, 284, 281, 278, 274, 271, 268, 265, 262, 259, 257, 507, 501, 496, 491, 485, 480, 475, 470, 465, 460, 456, 451, 446, 442, 437, 433, 428, 424, 420, 416, 412, 408, 404, 400, 396, 392, 388, 385, 381, 377, 374, 370, 367, 363, 360, 357, 354, 350, 347, 344, 341, 338, 335, 332, 329, 326, 323, 320, 318, 315, 312, 310, 307, 304, 302, 299, 297, 294, 292, 289, 287, 285, 282, 280, 278, 275, 273, 271, 269, 267, 265, 263, 261, 259];\nvar shgTable = [9, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24];\n/**\n * @param {string|HTMLImageElement} img\n * @param {string|HTMLCanvasElement} canvas\n * @param {Float} radius\n * @param {boolean} blurAlphaChannel\n * @param {boolean} useOffset\n * @param {boolean} skipStyles\n * @returns {undefined}\n */\n\nfunction processImage(img, canvas, radius, blurAlphaChannel, useOffset, skipStyles) {\n if (typeof img === 'string') {\n img = document.getElementById(img);\n }\n\n if (!img || Object.prototype.toString.call(img).slice(8, -1) === 'HTMLImageElement' && !('naturalWidth' in img)) {\n return;\n }\n\n var dimensionType = useOffset ? 'offset' : 'natural';\n var w = img[dimensionType + 'Width'];\n var h = img[dimensionType + 'Height']; // add ImageBitmap support,can blur texture source\n\n if (Object.prototype.toString.call(img).slice(8, -1) === 'ImageBitmap') {\n w = img.width;\n h = img.height;\n }\n\n if (typeof canvas === 'string') {\n canvas = document.getElementById(canvas);\n }\n\n if (!canvas || !('getContext' in canvas)) {\n return;\n }\n\n if (!skipStyles) {\n canvas.style.width = w + 'px';\n canvas.style.height = h + 'px';\n }\n\n canvas.width = w;\n canvas.height = h;\n var context = canvas.getContext('2d');\n context.clearRect(0, 0, w, h);\n context.drawImage(img, 0, 0, img.naturalWidth, img.naturalHeight, 0, 0, w, h);\n\n if (isNaN(radius) || radius < 1) {\n return;\n }\n\n if (blurAlphaChannel) {\n processCanvasRGBA(canvas, 0, 0, w, h, radius);\n } else {\n processCanvasRGB(canvas, 0, 0, w, h, radius);\n }\n}\n/**\n * @param {string|HTMLCanvasElement} canvas\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @throws {Error|TypeError}\n * @returns {ImageData} See {@link https://html.spec.whatwg.org/multipage/canvas.html#imagedata}\n */\n\n\nfunction getImageDataFromCanvas(canvas, topX, topY, width, height) {\n if (typeof canvas === 'string') {\n canvas = document.getElementById(canvas);\n }\n\n if (!canvas || _typeof(canvas) !== 'object' || !('getContext' in canvas)) {\n throw new TypeError('Expecting canvas with `getContext` method ' + 'in processCanvasRGB(A) calls!');\n }\n\n var context = canvas.getContext('2d');\n\n try {\n return context.getImageData(topX, topY, width, height);\n } catch (e) {\n throw new Error('unable to access image data: ' + e);\n }\n}\n/**\n * @param {HTMLCanvasElement} canvas\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {undefined}\n */\n\n\nfunction processCanvasRGBA(canvas, topX, topY, width, height, radius) {\n if (isNaN(radius) || radius < 1) {\n return;\n }\n\n radius |= 0;\n var imageData = getImageDataFromCanvas(canvas, topX, topY, width, height);\n imageData = processImageDataRGBA(imageData, topX, topY, width, height, radius);\n canvas.getContext('2d').putImageData(imageData, topX, topY);\n}\n/**\n * @param {ImageData} imageData\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {ImageData}\n */\n\n\nfunction processImageDataRGBA(imageData, topX, topY, width, height, radius) {\n var pixels = imageData.data;\n var div = 2 * radius + 1; // const w4 = width << 2;\n\n var widthMinus1 = width - 1;\n var heightMinus1 = height - 1;\n var radiusPlus1 = radius + 1;\n var sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;\n var stackStart = new BlurStack();\n var stack = stackStart;\n var stackEnd;\n\n for (var i = 1; i < div; i++) {\n stack = stack.next = new BlurStack();\n\n if (i === radiusPlus1) {\n stackEnd = stack;\n }\n }\n\n stack.next = stackStart;\n var stackIn = null,\n stackOut = null,\n yw = 0,\n yi = 0;\n var mulSum = mulTable[radius];\n var shgSum = shgTable[radius];\n\n for (var y = 0; y < height; y++) {\n stack = stackStart;\n var pr = pixels[yi],\n pg = pixels[yi + 1],\n pb = pixels[yi + 2],\n pa = pixels[yi + 3];\n\n for (var _i = 0; _i < radiusPlus1; _i++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack.a = pa;\n stack = stack.next;\n }\n\n var rInSum = 0,\n gInSum = 0,\n bInSum = 0,\n aInSum = 0,\n rOutSum = radiusPlus1 * pr,\n gOutSum = radiusPlus1 * pg,\n bOutSum = radiusPlus1 * pb,\n aOutSum = radiusPlus1 * pa,\n rSum = sumFactor * pr,\n gSum = sumFactor * pg,\n bSum = sumFactor * pb,\n aSum = sumFactor * pa;\n\n for (var _i2 = 1; _i2 < radiusPlus1; _i2++) {\n var p = yi + ((widthMinus1 < _i2 ? widthMinus1 : _i2) << 2);\n var r = pixels[p],\n g = pixels[p + 1],\n b = pixels[p + 2],\n a = pixels[p + 3];\n var rbs = radiusPlus1 - _i2;\n rSum += (stack.r = r) * rbs;\n gSum += (stack.g = g) * rbs;\n bSum += (stack.b = b) * rbs;\n aSum += (stack.a = a) * rbs;\n rInSum += r;\n gInSum += g;\n bInSum += b;\n aInSum += a;\n stack = stack.next;\n }\n\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var x = 0; x < width; x++) {\n var paInitial = aSum * mulSum >>> shgSum;\n pixels[yi + 3] = paInitial;\n\n if (paInitial !== 0) {\n var _a2 = 255 / paInitial;\n\n pixels[yi] = (rSum * mulSum >>> shgSum) * _a2;\n pixels[yi + 1] = (gSum * mulSum >>> shgSum) * _a2;\n pixels[yi + 2] = (bSum * mulSum >>> shgSum) * _a2;\n } else {\n pixels[yi] = pixels[yi + 1] = pixels[yi + 2] = 0;\n }\n\n rSum -= rOutSum;\n gSum -= gOutSum;\n bSum -= bOutSum;\n aSum -= aOutSum;\n rOutSum -= stackIn.r;\n gOutSum -= stackIn.g;\n bOutSum -= stackIn.b;\n aOutSum -= stackIn.a;\n\n var _p = x + radius + 1;\n\n _p = yw + (_p < widthMinus1 ? _p : widthMinus1) << 2;\n rInSum += stackIn.r = pixels[_p];\n gInSum += stackIn.g = pixels[_p + 1];\n bInSum += stackIn.b = pixels[_p + 2];\n aInSum += stackIn.a = pixels[_p + 3];\n rSum += rInSum;\n gSum += gInSum;\n bSum += bInSum;\n aSum += aInSum;\n stackIn = stackIn.next;\n var _stackOut = stackOut,\n _r = _stackOut.r,\n _g = _stackOut.g,\n _b = _stackOut.b,\n _a = _stackOut.a;\n rOutSum += _r;\n gOutSum += _g;\n bOutSum += _b;\n aOutSum += _a;\n rInSum -= _r;\n gInSum -= _g;\n bInSum -= _b;\n aInSum -= _a;\n stackOut = stackOut.next;\n yi += 4;\n }\n\n yw += width;\n }\n\n for (var _x = 0; _x < width; _x++) {\n yi = _x << 2;\n\n var _pr = pixels[yi],\n _pg = pixels[yi + 1],\n _pb = pixels[yi + 2],\n _pa = pixels[yi + 3],\n _rOutSum = radiusPlus1 * _pr,\n _gOutSum = radiusPlus1 * _pg,\n _bOutSum = radiusPlus1 * _pb,\n _aOutSum = radiusPlus1 * _pa,\n _rSum = sumFactor * _pr,\n _gSum = sumFactor * _pg,\n _bSum = sumFactor * _pb,\n _aSum = sumFactor * _pa;\n\n stack = stackStart;\n\n for (var _i3 = 0; _i3 < radiusPlus1; _i3++) {\n stack.r = _pr;\n stack.g = _pg;\n stack.b = _pb;\n stack.a = _pa;\n stack = stack.next;\n }\n\n var yp = width;\n var _gInSum = 0,\n _bInSum = 0,\n _aInSum = 0,\n _rInSum = 0;\n\n for (var _i4 = 1; _i4 <= radius; _i4++) {\n yi = yp + _x << 2;\n\n var _rbs = radiusPlus1 - _i4;\n\n _rSum += (stack.r = _pr = pixels[yi]) * _rbs;\n _gSum += (stack.g = _pg = pixels[yi + 1]) * _rbs;\n _bSum += (stack.b = _pb = pixels[yi + 2]) * _rbs;\n _aSum += (stack.a = _pa = pixels[yi + 3]) * _rbs;\n _rInSum += _pr;\n _gInSum += _pg;\n _bInSum += _pb;\n _aInSum += _pa;\n stack = stack.next;\n\n if (_i4 < heightMinus1) {\n yp += width;\n }\n }\n\n yi = _x;\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var _y = 0; _y < height; _y++) {\n var _p2 = yi << 2;\n\n pixels[_p2 + 3] = _pa = _aSum * mulSum >>> shgSum;\n\n if (_pa > 0) {\n _pa = 255 / _pa;\n pixels[_p2] = (_rSum * mulSum >>> shgSum) * _pa;\n pixels[_p2 + 1] = (_gSum * mulSum >>> shgSum) * _pa;\n pixels[_p2 + 2] = (_bSum * mulSum >>> shgSum) * _pa;\n } else {\n pixels[_p2] = pixels[_p2 + 1] = pixels[_p2 + 2] = 0;\n }\n\n _rSum -= _rOutSum;\n _gSum -= _gOutSum;\n _bSum -= _bOutSum;\n _aSum -= _aOutSum;\n _rOutSum -= stackIn.r;\n _gOutSum -= stackIn.g;\n _bOutSum -= stackIn.b;\n _aOutSum -= stackIn.a;\n _p2 = _x + ((_p2 = _y + radiusPlus1) < heightMinus1 ? _p2 : heightMinus1) * width << 2;\n _rSum += _rInSum += stackIn.r = pixels[_p2];\n _gSum += _gInSum += stackIn.g = pixels[_p2 + 1];\n _bSum += _bInSum += stackIn.b = pixels[_p2 + 2];\n _aSum += _aInSum += stackIn.a = pixels[_p2 + 3];\n stackIn = stackIn.next;\n _rOutSum += _pr = stackOut.r;\n _gOutSum += _pg = stackOut.g;\n _bOutSum += _pb = stackOut.b;\n _aOutSum += _pa = stackOut.a;\n _rInSum -= _pr;\n _gInSum -= _pg;\n _bInSum -= _pb;\n _aInSum -= _pa;\n stackOut = stackOut.next;\n yi += width;\n }\n }\n\n return imageData;\n}\n/**\n * @param {HTMLCanvasElement} canvas\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {undefined}\n */\n\n\nfunction processCanvasRGB(canvas, topX, topY, width, height, radius) {\n if (isNaN(radius) || radius < 1) {\n return;\n }\n\n radius |= 0;\n var imageData = getImageDataFromCanvas(canvas, topX, topY, width, height);\n imageData = processImageDataRGB(imageData, topX, topY, width, height, radius);\n canvas.getContext('2d').putImageData(imageData, topX, topY);\n}\n/**\n * @param {ImageData} imageData\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {ImageData}\n */\n\n\nfunction processImageDataRGB(imageData, topX, topY, width, height, radius) {\n var pixels = imageData.data;\n var div = 2 * radius + 1; // const w4 = width << 2;\n\n var widthMinus1 = width - 1;\n var heightMinus1 = height - 1;\n var radiusPlus1 = radius + 1;\n var sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;\n var stackStart = new BlurStack();\n var stack = stackStart;\n var stackEnd;\n\n for (var i = 1; i < div; i++) {\n stack = stack.next = new BlurStack();\n\n if (i === radiusPlus1) {\n stackEnd = stack;\n }\n }\n\n stack.next = stackStart;\n var stackIn = null;\n var stackOut = null;\n var mulSum = mulTable[radius];\n var shgSum = shgTable[radius];\n var p, rbs;\n var yw = 0,\n yi = 0;\n\n for (var y = 0; y < height; y++) {\n var pr = pixels[yi],\n pg = pixels[yi + 1],\n pb = pixels[yi + 2],\n rOutSum = radiusPlus1 * pr,\n gOutSum = radiusPlus1 * pg,\n bOutSum = radiusPlus1 * pb,\n rSum = sumFactor * pr,\n gSum = sumFactor * pg,\n bSum = sumFactor * pb;\n stack = stackStart;\n\n for (var _i5 = 0; _i5 < radiusPlus1; _i5++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack = stack.next;\n }\n\n var rInSum = 0,\n gInSum = 0,\n bInSum = 0;\n\n for (var _i6 = 1; _i6 < radiusPlus1; _i6++) {\n p = yi + ((widthMinus1 < _i6 ? widthMinus1 : _i6) << 2);\n rSum += (stack.r = pr = pixels[p]) * (rbs = radiusPlus1 - _i6);\n gSum += (stack.g = pg = pixels[p + 1]) * rbs;\n bSum += (stack.b = pb = pixels[p + 2]) * rbs;\n rInSum += pr;\n gInSum += pg;\n bInSum += pb;\n stack = stack.next;\n }\n\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var x = 0; x < width; x++) {\n pixels[yi] = rSum * mulSum >>> shgSum;\n pixels[yi + 1] = gSum * mulSum >>> shgSum;\n pixels[yi + 2] = bSum * mulSum >>> shgSum;\n rSum -= rOutSum;\n gSum -= gOutSum;\n bSum -= bOutSum;\n rOutSum -= stackIn.r;\n gOutSum -= stackIn.g;\n bOutSum -= stackIn.b;\n p = yw + ((p = x + radius + 1) < widthMinus1 ? p : widthMinus1) << 2;\n rInSum += stackIn.r = pixels[p];\n gInSum += stackIn.g = pixels[p + 1];\n bInSum += stackIn.b = pixels[p + 2];\n rSum += rInSum;\n gSum += gInSum;\n bSum += bInSum;\n stackIn = stackIn.next;\n rOutSum += pr = stackOut.r;\n gOutSum += pg = stackOut.g;\n bOutSum += pb = stackOut.b;\n rInSum -= pr;\n gInSum -= pg;\n bInSum -= pb;\n stackOut = stackOut.next;\n yi += 4;\n }\n\n yw += width;\n }\n\n for (var _x2 = 0; _x2 < width; _x2++) {\n yi = _x2 << 2;\n\n var _pr2 = pixels[yi],\n _pg2 = pixels[yi + 1],\n _pb2 = pixels[yi + 2],\n _rOutSum2 = radiusPlus1 * _pr2,\n _gOutSum2 = radiusPlus1 * _pg2,\n _bOutSum2 = radiusPlus1 * _pb2,\n _rSum2 = sumFactor * _pr2,\n _gSum2 = sumFactor * _pg2,\n _bSum2 = sumFactor * _pb2;\n\n stack = stackStart;\n\n for (var _i7 = 0; _i7 < radiusPlus1; _i7++) {\n stack.r = _pr2;\n stack.g = _pg2;\n stack.b = _pb2;\n stack = stack.next;\n }\n\n var _rInSum2 = 0,\n _gInSum2 = 0,\n _bInSum2 = 0;\n\n for (var _i8 = 1, yp = width; _i8 <= radius; _i8++) {\n yi = yp + _x2 << 2;\n _rSum2 += (stack.r = _pr2 = pixels[yi]) * (rbs = radiusPlus1 - _i8);\n _gSum2 += (stack.g = _pg2 = pixels[yi + 1]) * rbs;\n _bSum2 += (stack.b = _pb2 = pixels[yi + 2]) * rbs;\n _rInSum2 += _pr2;\n _gInSum2 += _pg2;\n _bInSum2 += _pb2;\n stack = stack.next;\n\n if (_i8 < heightMinus1) {\n yp += width;\n }\n }\n\n yi = _x2;\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var _y2 = 0; _y2 < height; _y2++) {\n p = yi << 2;\n pixels[p] = _rSum2 * mulSum >>> shgSum;\n pixels[p + 1] = _gSum2 * mulSum >>> shgSum;\n pixels[p + 2] = _bSum2 * mulSum >>> shgSum;\n _rSum2 -= _rOutSum2;\n _gSum2 -= _gOutSum2;\n _bSum2 -= _bOutSum2;\n _rOutSum2 -= stackIn.r;\n _gOutSum2 -= stackIn.g;\n _bOutSum2 -= stackIn.b;\n p = _x2 + ((p = _y2 + radiusPlus1) < heightMinus1 ? p : heightMinus1) * width << 2;\n _rSum2 += _rInSum2 += stackIn.r = pixels[p];\n _gSum2 += _gInSum2 += stackIn.g = pixels[p + 1];\n _bSum2 += _bInSum2 += stackIn.b = pixels[p + 2];\n stackIn = stackIn.next;\n _rOutSum2 += _pr2 = stackOut.r;\n _gOutSum2 += _pg2 = stackOut.g;\n _bOutSum2 += _pb2 = stackOut.b;\n _rInSum2 -= _pr2;\n _gInSum2 -= _pg2;\n _bInSum2 -= _pb2;\n stackOut = stackOut.next;\n yi += width;\n }\n }\n\n return imageData;\n}\n/**\n *\n */\n\n\nvar BlurStack =\n/**\n * Set properties.\n */\nfunction BlurStack() {\n _classCallCheck(this, BlurStack);\n\n this.r = 0;\n this.g = 0;\n this.b = 0;\n this.a = 0;\n this.next = null;\n};\n\nexport { BlurStack, processCanvasRGB as canvasRGB, processCanvasRGBA as canvasRGBA, processImage as image, processImageDataRGB as imageDataRGB, processImageDataRGBA as imageDataRGBA };\n","import 'core-js/modules/es.promise.js';\nimport _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';\nimport 'core-js/modules/es.string.match.js';\nimport 'core-js/modules/es.string.replace.js';\nimport 'core-js/modules/es.string.starts-with.js';\nimport 'core-js/modules/es.array.iterator.js';\nimport 'core-js/modules/web.dom-collections.iterator.js';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport 'core-js/modules/es.array.reduce.js';\nimport 'core-js/modules/es.string.ends-with.js';\nimport 'core-js/modules/es.string.split.js';\nimport requestAnimationFrame from 'raf';\nimport 'core-js/modules/es.string.trim.js';\nimport RGBColor from 'rgbcolor';\nimport 'core-js/modules/es.array.index-of.js';\nimport 'core-js/modules/es.string.includes.js';\nimport 'core-js/modules/es.array.reverse.js';\nimport { SVGPathData } from 'svg-pathdata';\nimport 'core-js/modules/es.regexp.to-string.js';\nimport { canvasRGBA } from 'stackblur-canvas';\n\n/**\r\n * Options preset for `OffscreenCanvas`.\r\n * @param config - Preset requirements.\r\n * @param config.DOMParser - XML/HTML parser from string into DOM Document.\r\n * @returns Preset object.\r\n */\nfunction offscreen() {\n var {\n DOMParser: DOMParserFallback\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var preset = {\n window: null,\n ignoreAnimation: true,\n ignoreMouse: true,\n DOMParser: DOMParserFallback,\n\n createCanvas(width, height) {\n return new OffscreenCanvas(width, height);\n },\n\n createImage(url) {\n return _asyncToGenerator(function* () {\n var response = yield fetch(url);\n var blob = yield response.blob();\n var img = yield createImageBitmap(blob);\n return img;\n })();\n }\n\n };\n\n if (typeof DOMParser !== 'undefined' || typeof DOMParserFallback === 'undefined') {\n Reflect.deleteProperty(preset, 'DOMParser');\n }\n\n return preset;\n}\n\n/**\r\n * Options preset for `node-canvas`.\r\n * @param config - Preset requirements.\r\n * @param config.DOMParser - XML/HTML parser from string into DOM Document.\r\n * @param config.canvas - `node-canvas` exports.\r\n * @param config.fetch - WHATWG-compatible `fetch` function.\r\n * @returns Preset object.\r\n */\nfunction node(_ref) {\n var {\n DOMParser,\n canvas,\n fetch\n } = _ref;\n return {\n window: null,\n ignoreAnimation: true,\n ignoreMouse: true,\n DOMParser,\n fetch,\n createCanvas: canvas.createCanvas,\n createImage: canvas.loadImage\n };\n}\n\nvar index = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\toffscreen: offscreen,\n\tnode: node\n});\n\n/**\r\n * HTML-safe compress white-spaces.\r\n * @param str - String to compress.\r\n * @returns String.\r\n */\nfunction compressSpaces(str) {\n return str.replace(/(?!\\u3000)\\s+/gm, ' ');\n}\n/**\r\n * HTML-safe left trim.\r\n * @param str - String to trim.\r\n * @returns String.\r\n */\n\nfunction trimLeft(str) {\n return str.replace(/^[\\n \\t]+/, '');\n}\n/**\r\n * HTML-safe right trim.\r\n * @param str - String to trim.\r\n * @returns String.\r\n */\n\nfunction trimRight(str) {\n return str.replace(/[\\n \\t]+$/, '');\n}\n/**\r\n * String to numbers array.\r\n * @param str - Numbers string.\r\n * @returns Numbers array.\r\n */\n\nfunction toNumbers(str) {\n var matches = (str || '').match(/-?(\\d+(?:\\.\\d*(?:[eE][+-]?\\d+)?)?|\\.\\d+)(?=\\D|$)/gm) || [];\n return matches.map(parseFloat);\n} // Microsoft Edge fix\n\nvar allUppercase = /^[A-Z-]+$/;\n/**\r\n * Normalize attribute name.\r\n * @param name - Attribute name.\r\n * @returns Normalized attribute name.\r\n */\n\nfunction normalizeAttributeName(name) {\n if (allUppercase.test(name)) {\n return name.toLowerCase();\n }\n\n return name;\n}\n/**\r\n * Parse external URL.\r\n * @param url - CSS url string.\r\n * @returns Parsed URL.\r\n */\n\nfunction parseExternalUrl(url) {\n // single quotes [2]\n // v double quotes [3]\n // v v no quotes [4]\n // v v v\n var urlMatch = /url\\(('([^']+)'|\"([^\"]+)\"|([^'\")]+))\\)/.exec(url) || [];\n return urlMatch[2] || urlMatch[3] || urlMatch[4];\n}\n/**\r\n * Transform floats to integers in rgb colors.\r\n * @param color - Color to normalize.\r\n * @returns Normalized color.\r\n */\n\nfunction normalizeColor(color) {\n if (!color.startsWith('rgb')) {\n return color;\n }\n\n var rgbParts = 3;\n var normalizedColor = color.replace(/\\d+(\\.\\d+)?/g, (num, isFloat) => rgbParts-- && isFloat ? String(Math.round(parseFloat(num))) : num);\n return normalizedColor;\n}\n\n// slightly modified version of https://github.com/keeganstreet/specificity/blob/master/specificity.js\nvar attributeRegex = /(\\[[^\\]]+\\])/g;\nvar idRegex = /(#[^\\s+>~.[:]+)/g;\nvar classRegex = /(\\.[^\\s+>~.[:]+)/g;\nvar pseudoElementRegex = /(::[^\\s+>~.[:]+|:first-line|:first-letter|:before|:after)/gi;\nvar pseudoClassWithBracketsRegex = /(:[\\w-]+\\([^)]*\\))/gi;\nvar pseudoClassRegex = /(:[^\\s+>~.[:]+)/g;\nvar elementRegex = /([^\\s+>~.[:]+)/g;\n\nfunction findSelectorMatch(selector, regex) {\n var matches = regex.exec(selector);\n\n if (!matches) {\n return [selector, 0];\n }\n\n return [selector.replace(regex, ' '), matches.length];\n}\n/**\r\n * Measure selector specificity.\r\n * @param selector - Selector to measure.\r\n * @returns Specificity.\r\n */\n\n\nfunction getSelectorSpecificity(selector) {\n var specificity = [0, 0, 0];\n var currentSelector = selector.replace(/:not\\(([^)]*)\\)/g, ' $1 ').replace(/{[\\s\\S]*/gm, ' ');\n var delta = 0;\n [currentSelector, delta] = findSelectorMatch(currentSelector, attributeRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, idRegex);\n specificity[0] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, classRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoElementRegex);\n specificity[2] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoClassWithBracketsRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoClassRegex);\n specificity[1] += delta;\n currentSelector = currentSelector.replace(/[*\\s+>~]/g, ' ').replace(/[#.]/g, ' ');\n [currentSelector, delta] = findSelectorMatch(currentSelector, elementRegex); // lgtm [js/useless-assignment-to-local]\n\n specificity[2] += delta;\n return specificity.join('');\n}\n\nvar PSEUDO_ZERO = .00000001;\n/**\r\n * Vector magnitude.\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorMagnitude(v) {\n return Math.sqrt(Math.pow(v[0], 2) + Math.pow(v[1], 2));\n}\n/**\r\n * Ratio between two vectors.\r\n * @param u\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorsRatio(u, v) {\n return (u[0] * v[0] + u[1] * v[1]) / (vectorMagnitude(u) * vectorMagnitude(v));\n}\n/**\r\n * Angle between two vectors.\r\n * @param u\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorsAngle(u, v) {\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vectorsRatio(u, v));\n}\nfunction CB1(t) {\n return t * t * t;\n}\nfunction CB2(t) {\n return 3 * t * t * (1 - t);\n}\nfunction CB3(t) {\n return 3 * t * (1 - t) * (1 - t);\n}\nfunction CB4(t) {\n return (1 - t) * (1 - t) * (1 - t);\n}\nfunction QB1(t) {\n return t * t;\n}\nfunction QB2(t) {\n return 2 * t * (1 - t);\n}\nfunction QB3(t) {\n return (1 - t) * (1 - t);\n}\n\nclass Property {\n constructor(document, name, value) {\n this.document = document;\n this.name = name;\n this.value = value;\n this.isNormalizedColor = false;\n }\n\n static empty(document) {\n return new Property(document, 'EMPTY', '');\n }\n\n split() {\n var separator = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ' ';\n var {\n document,\n name\n } = this;\n return compressSpaces(this.getString()).trim().split(separator).map(value => new Property(document, name, value));\n }\n\n hasValue(zeroIsValue) {\n var {\n value\n } = this;\n return value !== null && value !== '' && (zeroIsValue || value !== 0) && typeof value !== 'undefined';\n }\n\n isString(regexp) {\n var {\n value\n } = this;\n var result = typeof value === 'string';\n\n if (!result || !regexp) {\n return result;\n }\n\n return regexp.test(value);\n }\n\n isUrlDefinition() {\n return this.isString(/^url\\(/);\n }\n\n isPixels() {\n if (!this.hasValue()) {\n return false;\n }\n\n var asString = this.getString();\n\n switch (true) {\n case asString.endsWith('px'):\n case /^[0-9]+$/.test(asString):\n return true;\n\n default:\n return false;\n }\n }\n\n setValue(value) {\n this.value = value;\n return this;\n }\n\n getValue(def) {\n if (typeof def === 'undefined' || this.hasValue()) {\n return this.value;\n }\n\n return def;\n }\n\n getNumber(def) {\n if (!this.hasValue()) {\n if (typeof def === 'undefined') {\n return 0;\n }\n\n return parseFloat(def);\n }\n\n var {\n value\n } = this;\n var n = parseFloat(value);\n\n if (this.isString(/%$/)) {\n n /= 100.0;\n }\n\n return n;\n }\n\n getString(def) {\n if (typeof def === 'undefined' || this.hasValue()) {\n return typeof this.value === 'undefined' ? '' : String(this.value);\n }\n\n return String(def);\n }\n\n getColor(def) {\n var color = this.getString(def);\n\n if (this.isNormalizedColor) {\n return color;\n }\n\n this.isNormalizedColor = true;\n color = normalizeColor(color);\n this.value = color;\n return color;\n }\n\n getDpi() {\n return 96.0; // TODO: compute?\n }\n\n getRem() {\n return this.document.rootEmSize;\n }\n\n getEm() {\n return this.document.emSize;\n }\n\n getUnits() {\n return this.getString().replace(/[0-9.-]/g, '');\n }\n\n getPixels(axisOrIsFontSize) {\n var processPercent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!this.hasValue()) {\n return 0;\n }\n\n var [axis, isFontSize] = typeof axisOrIsFontSize === 'boolean' ? [undefined, axisOrIsFontSize] : [axisOrIsFontSize];\n var {\n viewPort\n } = this.document.screen;\n\n switch (true) {\n case this.isString(/vmin$/):\n return this.getNumber() / 100.0 * Math.min(viewPort.computeSize('x'), viewPort.computeSize('y'));\n\n case this.isString(/vmax$/):\n return this.getNumber() / 100.0 * Math.max(viewPort.computeSize('x'), viewPort.computeSize('y'));\n\n case this.isString(/vw$/):\n return this.getNumber() / 100.0 * viewPort.computeSize('x');\n\n case this.isString(/vh$/):\n return this.getNumber() / 100.0 * viewPort.computeSize('y');\n\n case this.isString(/rem$/):\n return this.getNumber() * this.getRem();\n\n case this.isString(/em$/):\n return this.getNumber() * this.getEm();\n\n case this.isString(/ex$/):\n return this.getNumber() * this.getEm() / 2.0;\n\n case this.isString(/px$/):\n return this.getNumber();\n\n case this.isString(/pt$/):\n return this.getNumber() * this.getDpi() * (1.0 / 72.0);\n\n case this.isString(/pc$/):\n return this.getNumber() * 15;\n\n case this.isString(/cm$/):\n return this.getNumber() * this.getDpi() / 2.54;\n\n case this.isString(/mm$/):\n return this.getNumber() * this.getDpi() / 25.4;\n\n case this.isString(/in$/):\n return this.getNumber() * this.getDpi();\n\n case this.isString(/%$/) && isFontSize:\n return this.getNumber() * this.getEm();\n\n case this.isString(/%$/):\n return this.getNumber() * viewPort.computeSize(axis);\n\n default:\n {\n var n = this.getNumber();\n\n if (processPercent && n < 1.0) {\n return n * viewPort.computeSize(axis);\n }\n\n return n;\n }\n }\n }\n\n getMilliseconds() {\n if (!this.hasValue()) {\n return 0;\n }\n\n if (this.isString(/ms$/)) {\n return this.getNumber();\n }\n\n return this.getNumber() * 1000;\n }\n\n getRadians() {\n if (!this.hasValue()) {\n return 0;\n }\n\n switch (true) {\n case this.isString(/deg$/):\n return this.getNumber() * (Math.PI / 180.0);\n\n case this.isString(/grad$/):\n return this.getNumber() * (Math.PI / 200.0);\n\n case this.isString(/rad$/):\n return this.getNumber();\n\n default:\n return this.getNumber() * (Math.PI / 180.0);\n }\n }\n\n getDefinition() {\n var asString = this.getString();\n var name = /#([^)'\"]+)/.exec(asString);\n\n if (name) {\n name = name[1];\n }\n\n if (!name) {\n name = asString;\n }\n\n return this.document.definitions[name];\n }\n\n getFillStyleDefinition(element, opacity) {\n var def = this.getDefinition();\n\n if (!def) {\n return null;\n } // gradient\n\n\n if (typeof def.createGradient === 'function') {\n return def.createGradient(this.document.ctx, element, opacity);\n } // pattern\n\n\n if (typeof def.createPattern === 'function') {\n if (def.getHrefAttribute().hasValue()) {\n var patternTransform = def.getAttribute('patternTransform');\n def = def.getHrefAttribute().getDefinition();\n\n if (patternTransform.hasValue()) {\n def.getAttribute('patternTransform', true).setValue(patternTransform.value);\n }\n }\n\n return def.createPattern(this.document.ctx, element, opacity);\n }\n\n return null;\n }\n\n getTextBaseline() {\n if (!this.hasValue()) {\n return null;\n }\n\n return Property.textBaselineMapping[this.getString()];\n }\n\n addOpacity(opacity) {\n var value = this.getColor();\n var len = value.length;\n var commas = 0; // Simulate old RGBColor version, which can't parse rgba.\n\n for (var i = 0; i < len; i++) {\n if (value[i] === ',') {\n commas++;\n }\n\n if (commas === 3) {\n break;\n }\n }\n\n if (opacity.hasValue() && this.isString() && commas !== 3) {\n var color = new RGBColor(value);\n\n if (color.ok) {\n color.alpha = opacity.getNumber();\n value = color.toRGBA();\n }\n }\n\n return new Property(this.document, this.name, value);\n }\n\n}\nProperty.textBaselineMapping = {\n 'baseline': 'alphabetic',\n 'before-edge': 'top',\n 'text-before-edge': 'top',\n 'middle': 'middle',\n 'central': 'middle',\n 'after-edge': 'bottom',\n 'text-after-edge': 'bottom',\n 'ideographic': 'ideographic',\n 'alphabetic': 'alphabetic',\n 'hanging': 'hanging',\n 'mathematical': 'alphabetic'\n};\n\nclass ViewPort {\n constructor() {\n this.viewPorts = [];\n }\n\n clear() {\n this.viewPorts = [];\n }\n\n setCurrent(width, height) {\n this.viewPorts.push({\n width,\n height\n });\n }\n\n removeCurrent() {\n this.viewPorts.pop();\n }\n\n getCurrent() {\n var {\n viewPorts\n } = this;\n return viewPorts[viewPorts.length - 1];\n }\n\n get width() {\n return this.getCurrent().width;\n }\n\n get height() {\n return this.getCurrent().height;\n }\n\n computeSize(d) {\n if (typeof d === 'number') {\n return d;\n }\n\n if (d === 'x') {\n return this.width;\n }\n\n if (d === 'y') {\n return this.height;\n }\n\n return Math.sqrt(Math.pow(this.width, 2) + Math.pow(this.height, 2)) / Math.sqrt(2);\n }\n\n}\n\nclass Point {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n\n static parse(point) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var [x = defaultValue, y = defaultValue] = toNumbers(point);\n return new Point(x, y);\n }\n\n static parseScale(scale) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var [x = defaultValue, y = x] = toNumbers(scale);\n return new Point(x, y);\n }\n\n static parsePath(path) {\n var points = toNumbers(path);\n var len = points.length;\n var pathPoints = [];\n\n for (var i = 0; i < len; i += 2) {\n pathPoints.push(new Point(points[i], points[i + 1]));\n }\n\n return pathPoints;\n }\n\n angleTo(point) {\n return Math.atan2(point.y - this.y, point.x - this.x);\n }\n\n applyTransform(transform) {\n var {\n x,\n y\n } = this;\n var xp = x * transform[0] + y * transform[2] + transform[4];\n var yp = x * transform[1] + y * transform[3] + transform[5];\n this.x = xp;\n this.y = yp;\n }\n\n}\n\nclass Mouse {\n constructor(screen) {\n this.screen = screen;\n this.working = false;\n this.events = [];\n this.eventElements = []; // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\n this.onClick = this.onClick.bind(this); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\n this.onMouseMove = this.onMouseMove.bind(this);\n }\n\n isWorking() {\n return this.working;\n }\n\n start() {\n if (this.working) {\n return;\n }\n\n var {\n screen,\n onClick,\n onMouseMove\n } = this;\n var canvas = screen.ctx.canvas;\n canvas.onclick = onClick;\n canvas.onmousemove = onMouseMove;\n this.working = true;\n }\n\n stop() {\n if (!this.working) {\n return;\n }\n\n var canvas = this.screen.ctx.canvas;\n this.working = false;\n canvas.onclick = null;\n canvas.onmousemove = null;\n }\n\n hasEvents() {\n return this.working && this.events.length > 0;\n }\n\n runEvents() {\n if (!this.working) {\n return;\n }\n\n var {\n screen: document,\n events,\n eventElements\n } = this;\n var {\n style\n } = document.ctx.canvas;\n\n if (style) {\n style.cursor = '';\n }\n\n events.forEach((_ref, i) => {\n var {\n run\n } = _ref;\n var element = eventElements[i];\n\n while (element) {\n run(element);\n element = element.parent;\n }\n }); // done running, clear\n\n this.events = [];\n this.eventElements = [];\n }\n\n checkPath(element, ctx) {\n if (!this.working || !ctx) {\n return;\n }\n\n var {\n events,\n eventElements\n } = this;\n events.forEach((_ref2, i) => {\n var {\n x,\n y\n } = _ref2;\n\n if (!eventElements[i] && ctx.isPointInPath && ctx.isPointInPath(x, y)) {\n eventElements[i] = element;\n }\n });\n }\n\n checkBoundingBox(element, boundingBox) {\n if (!this.working || !boundingBox) {\n return;\n }\n\n var {\n events,\n eventElements\n } = this;\n events.forEach((_ref3, i) => {\n var {\n x,\n y\n } = _ref3;\n\n if (!eventElements[i] && boundingBox.isPointInBox(x, y)) {\n eventElements[i] = element;\n }\n });\n }\n\n mapXY(x, y) {\n var {\n window,\n ctx\n } = this.screen;\n var point = new Point(x, y);\n var element = ctx.canvas;\n\n while (element) {\n point.x -= element.offsetLeft;\n point.y -= element.offsetTop;\n element = element.offsetParent;\n }\n\n if (window.scrollX) {\n point.x += window.scrollX;\n }\n\n if (window.scrollY) {\n point.y += window.scrollY;\n }\n\n return point;\n }\n\n onClick(event) {\n var {\n x,\n y\n } = this.mapXY(event.clientX, event.clientY);\n this.events.push({\n type: 'onclick',\n x,\n y,\n\n run(eventTarget) {\n if (eventTarget.onClick) {\n eventTarget.onClick();\n }\n }\n\n });\n }\n\n onMouseMove(event) {\n var {\n x,\n y\n } = this.mapXY(event.clientX, event.clientY);\n this.events.push({\n type: 'onmousemove',\n x,\n y,\n\n run(eventTarget) {\n if (eventTarget.onMouseMove) {\n eventTarget.onMouseMove();\n }\n }\n\n });\n }\n\n}\n\nvar defaultWindow = typeof window !== 'undefined' ? window : null;\nvar defaultFetch$1 = typeof fetch !== 'undefined' ? fetch.bind(undefined) // `fetch` depends on context: `someObject.fetch(...)` will throw error.\n: null;\nclass Screen {\n constructor(ctx) {\n var {\n fetch = defaultFetch$1,\n window = defaultWindow\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.ctx = ctx;\n this.FRAMERATE = 30;\n this.MAX_VIRTUAL_PIXELS = 30000;\n this.CLIENT_WIDTH = 800;\n this.CLIENT_HEIGHT = 600;\n this.viewPort = new ViewPort();\n this.mouse = new Mouse(this);\n this.animations = [];\n this.waits = [];\n this.frameDuration = 0;\n this.isReadyLock = false;\n this.isFirstRender = true;\n this.intervalId = null;\n this.window = window;\n this.fetch = fetch;\n }\n\n wait(checker) {\n this.waits.push(checker);\n }\n\n ready() {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n if (!this.readyPromise) {\n return Promise.resolve();\n }\n\n return this.readyPromise;\n }\n\n isReady() {\n if (this.isReadyLock) {\n return true;\n }\n\n var isReadyLock = this.waits.every(_ => _());\n\n if (isReadyLock) {\n this.waits = [];\n\n if (this.resolveReady) {\n this.resolveReady();\n }\n }\n\n this.isReadyLock = isReadyLock;\n return isReadyLock;\n }\n\n setDefaults(ctx) {\n // initial values and defaults\n ctx.strokeStyle = 'rgba(0,0,0,0)';\n ctx.lineCap = 'butt';\n ctx.lineJoin = 'miter';\n ctx.miterLimit = 4;\n }\n\n setViewBox(_ref) {\n var {\n document,\n ctx,\n aspectRatio,\n width,\n desiredWidth,\n height,\n desiredHeight,\n minX = 0,\n minY = 0,\n refX,\n refY,\n clip = false,\n clipX = 0,\n clipY = 0\n } = _ref;\n // aspect ratio - http://www.w3.org/TR/SVG/coords.html#PreserveAspectRatioAttribute\n var cleanAspectRatio = compressSpaces(aspectRatio).replace(/^defer\\s/, ''); // ignore defer\n\n var [aspectRatioAlign, aspectRatioMeetOrSlice] = cleanAspectRatio.split(' ');\n var align = aspectRatioAlign || 'xMidYMid';\n var meetOrSlice = aspectRatioMeetOrSlice || 'meet'; // calculate scale\n\n var scaleX = width / desiredWidth;\n var scaleY = height / desiredHeight;\n var scaleMin = Math.min(scaleX, scaleY);\n var scaleMax = Math.max(scaleX, scaleY);\n var finalDesiredWidth = desiredWidth;\n var finalDesiredHeight = desiredHeight;\n\n if (meetOrSlice === 'meet') {\n finalDesiredWidth *= scaleMin;\n finalDesiredHeight *= scaleMin;\n }\n\n if (meetOrSlice === 'slice') {\n finalDesiredWidth *= scaleMax;\n finalDesiredHeight *= scaleMax;\n }\n\n var refXProp = new Property(document, 'refX', refX);\n var refYProp = new Property(document, 'refY', refY);\n var hasRefs = refXProp.hasValue() && refYProp.hasValue();\n\n if (hasRefs) {\n ctx.translate(-scaleMin * refXProp.getPixels('x'), -scaleMin * refYProp.getPixels('y'));\n }\n\n if (clip) {\n var scaledClipX = scaleMin * clipX;\n var scaledClipY = scaleMin * clipY;\n ctx.beginPath();\n ctx.moveTo(scaledClipX, scaledClipY);\n ctx.lineTo(width, scaledClipY);\n ctx.lineTo(width, height);\n ctx.lineTo(scaledClipX, height);\n ctx.closePath();\n ctx.clip();\n }\n\n if (!hasRefs) {\n var isMeetMinY = meetOrSlice === 'meet' && scaleMin === scaleY;\n var isSliceMaxY = meetOrSlice === 'slice' && scaleMax === scaleY;\n var isMeetMinX = meetOrSlice === 'meet' && scaleMin === scaleX;\n var isSliceMaxX = meetOrSlice === 'slice' && scaleMax === scaleX;\n\n if (align.startsWith('xMid') && (isMeetMinY || isSliceMaxY)) {\n ctx.translate(width / 2.0 - finalDesiredWidth / 2.0, 0);\n }\n\n if (align.endsWith('YMid') && (isMeetMinX || isSliceMaxX)) {\n ctx.translate(0, height / 2.0 - finalDesiredHeight / 2.0);\n }\n\n if (align.startsWith('xMax') && (isMeetMinY || isSliceMaxY)) {\n ctx.translate(width - finalDesiredWidth, 0);\n }\n\n if (align.endsWith('YMax') && (isMeetMinX || isSliceMaxX)) {\n ctx.translate(0, height - finalDesiredHeight);\n }\n } // scale\n\n\n switch (true) {\n case align === 'none':\n ctx.scale(scaleX, scaleY);\n break;\n\n case meetOrSlice === 'meet':\n ctx.scale(scaleMin, scaleMin);\n break;\n\n case meetOrSlice === 'slice':\n ctx.scale(scaleMax, scaleMax);\n break;\n } // translate\n\n\n ctx.translate(-minX, -minY);\n }\n\n start(element) {\n var {\n enableRedraw = false,\n ignoreMouse = false,\n ignoreAnimation = false,\n ignoreDimensions = false,\n ignoreClear = false,\n forceRedraw,\n scaleWidth,\n scaleHeight,\n offsetX,\n offsetY\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n FRAMERATE,\n mouse\n } = this;\n var frameDuration = 1000 / FRAMERATE;\n this.frameDuration = frameDuration;\n this.readyPromise = new Promise(resolve => {\n this.resolveReady = resolve;\n });\n\n if (this.isReady()) {\n this.render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY);\n }\n\n if (!enableRedraw) {\n return;\n }\n\n var now = Date.now();\n var then = now;\n var delta = 0;\n\n var tick = () => {\n now = Date.now();\n delta = now - then;\n\n if (delta >= frameDuration) {\n then = now - delta % frameDuration;\n\n if (this.shouldUpdate(ignoreAnimation, forceRedraw)) {\n this.render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY);\n mouse.runEvents();\n }\n }\n\n this.intervalId = requestAnimationFrame(tick);\n };\n\n if (!ignoreMouse) {\n mouse.start();\n }\n\n this.intervalId = requestAnimationFrame(tick);\n }\n\n stop() {\n if (this.intervalId) {\n requestAnimationFrame.cancel(this.intervalId);\n this.intervalId = null;\n }\n\n this.mouse.stop();\n }\n\n shouldUpdate(ignoreAnimation, forceRedraw) {\n // need update from animations?\n if (!ignoreAnimation) {\n var {\n frameDuration\n } = this;\n var shouldUpdate = this.animations.reduce((shouldUpdate, animation) => animation.update(frameDuration) || shouldUpdate, false);\n\n if (shouldUpdate) {\n return true;\n }\n } // need update from redraw?\n\n\n if (typeof forceRedraw === 'function' && forceRedraw()) {\n return true;\n }\n\n if (!this.isReadyLock && this.isReady()) {\n return true;\n } // need update from mouse events?\n\n\n if (this.mouse.hasEvents()) {\n return true;\n }\n\n return false;\n }\n\n render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY) {\n var {\n CLIENT_WIDTH,\n CLIENT_HEIGHT,\n viewPort,\n ctx,\n isFirstRender\n } = this;\n var canvas = ctx.canvas;\n viewPort.clear();\n\n if (canvas.width && canvas.height) {\n viewPort.setCurrent(canvas.width, canvas.height);\n } else {\n viewPort.setCurrent(CLIENT_WIDTH, CLIENT_HEIGHT);\n }\n\n var widthStyle = element.getStyle('width');\n var heightStyle = element.getStyle('height');\n\n if (!ignoreDimensions && (isFirstRender || typeof scaleWidth !== 'number' && typeof scaleHeight !== 'number')) {\n // set canvas size\n if (widthStyle.hasValue()) {\n canvas.width = widthStyle.getPixels('x');\n\n if (canvas.style) {\n canvas.style.width = \"\".concat(canvas.width, \"px\");\n }\n }\n\n if (heightStyle.hasValue()) {\n canvas.height = heightStyle.getPixels('y');\n\n if (canvas.style) {\n canvas.style.height = \"\".concat(canvas.height, \"px\");\n }\n }\n }\n\n var cWidth = canvas.clientWidth || canvas.width;\n var cHeight = canvas.clientHeight || canvas.height;\n\n if (ignoreDimensions && widthStyle.hasValue() && heightStyle.hasValue()) {\n cWidth = widthStyle.getPixels('x');\n cHeight = heightStyle.getPixels('y');\n }\n\n viewPort.setCurrent(cWidth, cHeight);\n\n if (typeof offsetX === 'number') {\n element.getAttribute('x', true).setValue(offsetX);\n }\n\n if (typeof offsetY === 'number') {\n element.getAttribute('y', true).setValue(offsetY);\n }\n\n if (typeof scaleWidth === 'number' || typeof scaleHeight === 'number') {\n var viewBox = toNumbers(element.getAttribute('viewBox').getString());\n var xRatio = 0;\n var yRatio = 0;\n\n if (typeof scaleWidth === 'number') {\n var _widthStyle = element.getStyle('width');\n\n if (_widthStyle.hasValue()) {\n xRatio = _widthStyle.getPixels('x') / scaleWidth;\n } else if (!isNaN(viewBox[2])) {\n xRatio = viewBox[2] / scaleWidth;\n }\n }\n\n if (typeof scaleHeight === 'number') {\n var _heightStyle = element.getStyle('height');\n\n if (_heightStyle.hasValue()) {\n yRatio = _heightStyle.getPixels('y') / scaleHeight;\n } else if (!isNaN(viewBox[3])) {\n yRatio = viewBox[3] / scaleHeight;\n }\n }\n\n if (!xRatio) {\n xRatio = yRatio;\n }\n\n if (!yRatio) {\n yRatio = xRatio;\n }\n\n element.getAttribute('width', true).setValue(scaleWidth);\n element.getAttribute('height', true).setValue(scaleHeight);\n var transformStyle = element.getStyle('transform', true, true);\n transformStyle.setValue(\"\".concat(transformStyle.getString(), \" scale(\").concat(1.0 / xRatio, \", \").concat(1.0 / yRatio, \")\"));\n } // clear and render\n\n\n if (!ignoreClear) {\n ctx.clearRect(0, 0, cWidth, cHeight);\n }\n\n element.render(ctx);\n\n if (isFirstRender) {\n this.isFirstRender = false;\n }\n }\n\n}\nScreen.defaultWindow = defaultWindow;\nScreen.defaultFetch = defaultFetch$1;\n\nvar {\n defaultFetch\n} = Screen;\nvar DefaultDOMParser = typeof DOMParser !== 'undefined' ? DOMParser : null;\nclass Parser {\n constructor() {\n var {\n fetch = defaultFetch,\n DOMParser = DefaultDOMParser\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.fetch = fetch;\n this.DOMParser = DOMParser;\n }\n\n parse(resource) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n if (resource.startsWith('<')) {\n return _this.parseFromString(resource);\n }\n\n return _this.load(resource);\n })();\n }\n\n parseFromString(xml) {\n var parser = new this.DOMParser();\n\n try {\n return this.checkDocument(parser.parseFromString(xml, 'image/svg+xml'));\n } catch (err) {\n return this.checkDocument(parser.parseFromString(xml, 'text/xml'));\n }\n }\n\n checkDocument(document) {\n var parserError = document.getElementsByTagName('parsererror')[0];\n\n if (parserError) {\n throw new Error(parserError.textContent);\n }\n\n return document;\n }\n\n load(url) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var response = yield _this2.fetch(url);\n var xml = yield response.text();\n return _this2.parseFromString(xml);\n })();\n }\n\n}\n\nclass Translate {\n constructor(_, point) {\n this.type = 'translate';\n this.point = null;\n this.point = Point.parse(point);\n }\n\n apply(ctx) {\n var {\n x,\n y\n } = this.point;\n ctx.translate(x || 0.0, y || 0.0);\n }\n\n unapply(ctx) {\n var {\n x,\n y\n } = this.point;\n ctx.translate(-1.0 * x || 0.0, -1.0 * y || 0.0);\n }\n\n applyToPoint(point) {\n var {\n x,\n y\n } = this.point;\n point.applyTransform([1, 0, 0, 1, x || 0.0, y || 0.0]);\n }\n\n}\n\nclass Rotate {\n constructor(document, rotate, transformOrigin) {\n this.type = 'rotate';\n this.angle = null;\n this.originX = null;\n this.originY = null;\n this.cx = 0;\n this.cy = 0;\n var numbers = toNumbers(rotate);\n this.angle = new Property(document, 'angle', numbers[0]);\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n this.cx = numbers[1] || 0;\n this.cy = numbers[2] || 0;\n }\n\n apply(ctx) {\n var {\n cx,\n cy,\n originX,\n originY,\n angle\n } = this;\n var tx = cx + originX.getPixels('x');\n var ty = cy + originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.rotate(angle.getRadians());\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n cx,\n cy,\n originX,\n originY,\n angle\n } = this;\n var tx = cx + originX.getPixels('x');\n var ty = cy + originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.rotate(-1.0 * angle.getRadians());\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n var {\n cx,\n cy,\n angle\n } = this;\n var rad = angle.getRadians();\n point.applyTransform([1, 0, 0, 1, cx || 0.0, cy || 0.0 // this.p.y\n ]);\n point.applyTransform([Math.cos(rad), Math.sin(rad), -Math.sin(rad), Math.cos(rad), 0, 0]);\n point.applyTransform([1, 0, 0, 1, -cx || 0.0, -cy || 0.0 // -this.p.y\n ]);\n }\n\n}\n\nclass Scale {\n constructor(_, scale, transformOrigin) {\n this.type = 'scale';\n this.scale = null;\n this.originX = null;\n this.originY = null;\n var scaleSize = Point.parseScale(scale); // Workaround for node-canvas\n\n if (scaleSize.x === 0 || scaleSize.y === 0) {\n scaleSize.x = PSEUDO_ZERO;\n scaleSize.y = PSEUDO_ZERO;\n }\n\n this.scale = scaleSize;\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n }\n\n apply(ctx) {\n var {\n scale: {\n x,\n y\n },\n originX,\n originY\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.scale(x, y || x);\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n scale: {\n x,\n y\n },\n originX,\n originY\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.scale(1.0 / x, 1.0 / y || x);\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n var {\n x,\n y\n } = this.scale;\n point.applyTransform([x || 0.0, 0, 0, y || 0.0, 0, 0]);\n }\n\n}\n\nclass Matrix {\n constructor(_, matrix, transformOrigin) {\n this.type = 'matrix';\n this.matrix = [];\n this.originX = null;\n this.originY = null;\n this.matrix = toNumbers(matrix);\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n }\n\n apply(ctx) {\n var {\n originX,\n originY,\n matrix\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n originX,\n originY,\n matrix\n } = this;\n var a = matrix[0];\n var b = matrix[2];\n var c = matrix[4];\n var d = matrix[1];\n var e = matrix[3];\n var f = matrix[5];\n var g = 0.0;\n var h = 0.0;\n var i = 1.0;\n var det = 1 / (a * (e * i - f * h) - b * (d * i - f * g) + c * (d * h - e * g));\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.transform(det * (e * i - f * h), det * (f * g - d * i), det * (c * h - b * i), det * (a * i - c * g), det * (b * f - c * e), det * (c * d - a * f));\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n point.applyTransform(this.matrix);\n }\n\n}\n\nclass Skew extends Matrix {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skew';\n this.angle = null;\n this.angle = new Property(document, 'angle', skew);\n }\n\n}\n\nclass SkewX extends Skew {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skewX';\n this.matrix = [1, 0, Math.tan(this.angle.getRadians()), 1, 0, 0];\n }\n\n}\n\nclass SkewY extends Skew {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skewY';\n this.matrix = [1, Math.tan(this.angle.getRadians()), 0, 1, 0, 0];\n }\n\n}\n\nfunction parseTransforms(transform) {\n return compressSpaces(transform).trim().replace(/\\)([a-zA-Z])/g, ') $1').replace(/\\)(\\s?,\\s?)/g, ') ').split(/\\s(?=[a-z])/);\n}\n\nfunction parseTransform(transform) {\n var [type, value] = transform.split('(');\n return [type.trim(), value.trim().replace(')', '')];\n}\n\nclass Transform {\n constructor(document, transform, transformOrigin) {\n this.document = document;\n this.transforms = [];\n var data = parseTransforms(transform);\n data.forEach(transform => {\n if (transform === 'none') {\n return;\n }\n\n var [type, value] = parseTransform(transform);\n var TransformType = Transform.transformTypes[type];\n\n if (typeof TransformType !== 'undefined') {\n this.transforms.push(new TransformType(this.document, value, transformOrigin));\n }\n });\n }\n\n static fromElement(document, element) {\n var transformStyle = element.getStyle('transform', false, true);\n var [transformOriginXProperty, transformOriginYProperty = transformOriginXProperty] = element.getStyle('transform-origin', false, true).split();\n var transformOrigin = [transformOriginXProperty, transformOriginYProperty];\n\n if (transformStyle.hasValue()) {\n return new Transform(document, transformStyle.getString(), transformOrigin);\n }\n\n return null;\n }\n\n apply(ctx) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = 0; i < len; i++) {\n transforms[i].apply(ctx);\n }\n }\n\n unapply(ctx) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = len - 1; i >= 0; i--) {\n transforms[i].unapply(ctx);\n }\n } // TODO: applyToPoint unused ... remove?\n\n\n applyToPoint(point) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = 0; i < len; i++) {\n transforms[i].applyToPoint(point);\n }\n }\n\n}\nTransform.transformTypes = {\n translate: Translate,\n rotate: Rotate,\n scale: Scale,\n matrix: Matrix,\n skewX: SkewX,\n skewY: SkewY\n};\n\nclass Element {\n constructor(document, node) {\n var captureTextNodes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n this.document = document;\n this.node = node;\n this.captureTextNodes = captureTextNodes;\n this.attributes = Object.create(null);\n this.styles = Object.create(null);\n this.stylesSpecificity = Object.create(null);\n this.animationFrozen = false;\n this.animationFrozenValue = '';\n this.parent = null;\n this.children = [];\n\n if (!node || node.nodeType !== 1) {\n // ELEMENT_NODE\n return;\n } // add attributes\n\n\n Array.from(node.attributes).forEach(attribute => {\n var nodeName = normalizeAttributeName(attribute.nodeName);\n this.attributes[nodeName] = new Property(document, nodeName, attribute.value);\n });\n this.addStylesFromStyleDefinition(); // add inline styles\n\n if (this.getAttribute('style').hasValue()) {\n var styles = this.getAttribute('style').getString().split(';').map(_ => _.trim());\n styles.forEach(style => {\n if (!style) {\n return;\n }\n\n var [name, value] = style.split(':').map(_ => _.trim());\n this.styles[name] = new Property(document, name, value);\n });\n }\n\n var {\n definitions\n } = document;\n var id = this.getAttribute('id'); // add id\n\n if (id.hasValue()) {\n if (!definitions[id.getString()]) {\n definitions[id.getString()] = this;\n }\n }\n\n Array.from(node.childNodes).forEach(childNode => {\n if (childNode.nodeType === 1) {\n this.addChild(childNode); // ELEMENT_NODE\n } else if (captureTextNodes && (childNode.nodeType === 3 || childNode.nodeType === 4)) {\n var textNode = document.createTextNode(childNode);\n\n if (textNode.getText().length > 0) {\n this.addChild(textNode); // TEXT_NODE\n }\n }\n });\n }\n\n getAttribute(name) {\n var createIfNotExists = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var attr = this.attributes[name];\n\n if (!attr && createIfNotExists) {\n var _attr = new Property(this.document, name, '');\n\n this.attributes[name] = _attr;\n return _attr;\n }\n\n return attr || Property.empty(this.document);\n }\n\n getHrefAttribute() {\n for (var key in this.attributes) {\n if (key === 'href' || key.endsWith(':href')) {\n return this.attributes[key];\n }\n }\n\n return Property.empty(this.document);\n }\n\n getStyle(name) {\n var createIfNotExists = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var skipAncestors = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var style = this.styles[name];\n\n if (style) {\n return style;\n }\n\n var attr = this.getAttribute(name);\n\n if (attr !== null && attr !== void 0 && attr.hasValue()) {\n this.styles[name] = attr; // move up to me to cache\n\n return attr;\n }\n\n if (!skipAncestors) {\n var {\n parent\n } = this;\n\n if (parent) {\n var parentStyle = parent.getStyle(name);\n\n if (parentStyle !== null && parentStyle !== void 0 && parentStyle.hasValue()) {\n return parentStyle;\n }\n }\n }\n\n if (createIfNotExists) {\n var _style = new Property(this.document, name, '');\n\n this.styles[name] = _style;\n return _style;\n }\n\n return style || Property.empty(this.document);\n }\n\n render(ctx) {\n // don't render display=none\n // don't render visibility=hidden\n if (this.getStyle('display').getString() === 'none' || this.getStyle('visibility').getString() === 'hidden') {\n return;\n }\n\n ctx.save();\n\n if (this.getStyle('mask').hasValue()) {\n // mask\n var mask = this.getStyle('mask').getDefinition();\n\n if (mask) {\n this.applyEffects(ctx);\n mask.apply(ctx, this);\n }\n } else if (this.getStyle('filter').getValue('none') !== 'none') {\n // filter\n var filter = this.getStyle('filter').getDefinition();\n\n if (filter) {\n this.applyEffects(ctx);\n filter.apply(ctx, this);\n }\n } else {\n this.setContext(ctx);\n this.renderChildren(ctx);\n this.clearContext(ctx);\n }\n\n ctx.restore();\n }\n\n setContext(_) {// NO RENDER\n }\n\n applyEffects(ctx) {\n // transform\n var transform = Transform.fromElement(this.document, this);\n\n if (transform) {\n transform.apply(ctx);\n } // clip\n\n\n var clipPathStyleProp = this.getStyle('clip-path', false, true);\n\n if (clipPathStyleProp.hasValue()) {\n var clip = clipPathStyleProp.getDefinition();\n\n if (clip) {\n clip.apply(ctx);\n }\n }\n }\n\n clearContext(_) {// NO RENDER\n }\n\n renderChildren(ctx) {\n this.children.forEach(child => {\n child.render(ctx);\n });\n }\n\n addChild(childNode) {\n var child = childNode instanceof Element ? childNode : this.document.createElement(childNode);\n child.parent = this;\n\n if (!Element.ignoreChildTypes.includes(child.type)) {\n this.children.push(child);\n }\n }\n\n matchesSelector(selector) {\n var _node$getAttribute;\n\n var {\n node\n } = this;\n\n if (typeof node.matches === 'function') {\n return node.matches(selector);\n }\n\n var styleClasses = (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, 'class');\n\n if (!styleClasses || styleClasses === '') {\n return false;\n }\n\n return styleClasses.split(' ').some(styleClass => \".\".concat(styleClass) === selector);\n }\n\n addStylesFromStyleDefinition() {\n var {\n styles,\n stylesSpecificity\n } = this.document;\n\n for (var selector in styles) {\n if (!selector.startsWith('@') && this.matchesSelector(selector)) {\n var style = styles[selector];\n var specificity = stylesSpecificity[selector];\n\n if (style) {\n for (var name in style) {\n var existingSpecificity = this.stylesSpecificity[name];\n\n if (typeof existingSpecificity === 'undefined') {\n existingSpecificity = '000';\n }\n\n if (specificity >= existingSpecificity) {\n this.styles[name] = style[name];\n this.stylesSpecificity[name] = specificity;\n }\n }\n }\n }\n }\n }\n\n removeStyles(element, ignoreStyles) {\n var toRestore = ignoreStyles.reduce((toRestore, name) => {\n var styleProp = element.getStyle(name);\n\n if (!styleProp.hasValue()) {\n return toRestore;\n }\n\n var value = styleProp.getString();\n styleProp.setValue('');\n return [...toRestore, [name, value]];\n }, []);\n return toRestore;\n }\n\n restoreStyles(element, styles) {\n styles.forEach(_ref => {\n var [name, value] = _ref;\n element.getStyle(name, true).setValue(value);\n });\n }\n\n isFirstChild() {\n var _this$parent;\n\n return ((_this$parent = this.parent) === null || _this$parent === void 0 ? void 0 : _this$parent.children.indexOf(this)) === 0;\n }\n\n}\nElement.ignoreChildTypes = ['title'];\n\nclass UnknownElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n }\n\n}\n\nfunction wrapFontFamily(fontFamily) {\n var trimmed = fontFamily.trim();\n return /^('|\")/.test(trimmed) ? trimmed : \"\\\"\".concat(trimmed, \"\\\"\");\n}\n\nfunction prepareFontFamily(fontFamily) {\n return typeof process === 'undefined' ? fontFamily : fontFamily.trim().split(',').map(wrapFontFamily).join(',');\n}\n/**\r\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-style\r\n * @param fontStyle\r\n * @returns CSS font style.\r\n */\n\n\nfunction prepareFontStyle(fontStyle) {\n if (!fontStyle) {\n return '';\n }\n\n var targetFontStyle = fontStyle.trim().toLowerCase();\n\n switch (targetFontStyle) {\n case 'normal':\n case 'italic':\n case 'oblique':\n case 'inherit':\n case 'initial':\n case 'unset':\n return targetFontStyle;\n\n default:\n if (/^oblique\\s+(-|)\\d+deg$/.test(targetFontStyle)) {\n return targetFontStyle;\n }\n\n return '';\n }\n}\n/**\r\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight\r\n * @param fontWeight\r\n * @returns CSS font weight.\r\n */\n\n\nfunction prepareFontWeight(fontWeight) {\n if (!fontWeight) {\n return '';\n }\n\n var targetFontWeight = fontWeight.trim().toLowerCase();\n\n switch (targetFontWeight) {\n case 'normal':\n case 'bold':\n case 'lighter':\n case 'bolder':\n case 'inherit':\n case 'initial':\n case 'unset':\n return targetFontWeight;\n\n default:\n if (/^[\\d.]+$/.test(targetFontWeight)) {\n return targetFontWeight;\n }\n\n return '';\n }\n}\n\nclass Font {\n constructor(fontStyle, fontVariant, fontWeight, fontSize, fontFamily, inherit) {\n var inheritFont = inherit ? typeof inherit === 'string' ? Font.parse(inherit) : inherit : {};\n this.fontFamily = fontFamily || inheritFont.fontFamily;\n this.fontSize = fontSize || inheritFont.fontSize;\n this.fontStyle = fontStyle || inheritFont.fontStyle;\n this.fontWeight = fontWeight || inheritFont.fontWeight;\n this.fontVariant = fontVariant || inheritFont.fontVariant;\n }\n\n static parse() {\n var font = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var inherit = arguments.length > 1 ? arguments[1] : undefined;\n var fontStyle = '';\n var fontVariant = '';\n var fontWeight = '';\n var fontSize = '';\n var fontFamily = '';\n var parts = compressSpaces(font).trim().split(' ');\n var set = {\n fontSize: false,\n fontStyle: false,\n fontWeight: false,\n fontVariant: false\n };\n parts.forEach(part => {\n switch (true) {\n case !set.fontStyle && Font.styles.includes(part):\n if (part !== 'inherit') {\n fontStyle = part;\n }\n\n set.fontStyle = true;\n break;\n\n case !set.fontVariant && Font.variants.includes(part):\n if (part !== 'inherit') {\n fontVariant = part;\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n break;\n\n case !set.fontWeight && Font.weights.includes(part):\n if (part !== 'inherit') {\n fontWeight = part;\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n set.fontWeight = true;\n break;\n\n case !set.fontSize:\n if (part !== 'inherit') {\n [fontSize] = part.split('/');\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n set.fontWeight = true;\n set.fontSize = true;\n break;\n\n default:\n if (part !== 'inherit') {\n fontFamily += part;\n }\n\n }\n });\n return new Font(fontStyle, fontVariant, fontWeight, fontSize, fontFamily, inherit);\n }\n\n toString() {\n return [prepareFontStyle(this.fontStyle), this.fontVariant, prepareFontWeight(this.fontWeight), this.fontSize, // Wrap fontFamily only on nodejs and only for canvas.ctx\n prepareFontFamily(this.fontFamily)].join(' ').trim();\n }\n\n}\nFont.styles = 'normal|italic|oblique|inherit';\nFont.variants = 'normal|small-caps|inherit';\nFont.weights = 'normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit';\n\nclass BoundingBox {\n constructor() {\n var x1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Number.NaN;\n var y1 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.NaN;\n var x2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Number.NaN;\n var y2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Number.NaN;\n this.x1 = x1;\n this.y1 = y1;\n this.x2 = x2;\n this.y2 = y2;\n this.addPoint(x1, y1);\n this.addPoint(x2, y2);\n }\n\n get x() {\n return this.x1;\n }\n\n get y() {\n return this.y1;\n }\n\n get width() {\n return this.x2 - this.x1;\n }\n\n get height() {\n return this.y2 - this.y1;\n }\n\n addPoint(x, y) {\n if (typeof x !== 'undefined') {\n if (isNaN(this.x1) || isNaN(this.x2)) {\n this.x1 = x;\n this.x2 = x;\n }\n\n if (x < this.x1) {\n this.x1 = x;\n }\n\n if (x > this.x2) {\n this.x2 = x;\n }\n }\n\n if (typeof y !== 'undefined') {\n if (isNaN(this.y1) || isNaN(this.y2)) {\n this.y1 = y;\n this.y2 = y;\n }\n\n if (y < this.y1) {\n this.y1 = y;\n }\n\n if (y > this.y2) {\n this.y2 = y;\n }\n }\n }\n\n addX(x) {\n this.addPoint(x, null);\n }\n\n addY(y) {\n this.addPoint(null, y);\n }\n\n addBoundingBox(boundingBox) {\n if (!boundingBox) {\n return;\n }\n\n var {\n x1,\n y1,\n x2,\n y2\n } = boundingBox;\n this.addPoint(x1, y1);\n this.addPoint(x2, y2);\n }\n\n sumCubic(t, p0, p1, p2, p3) {\n return Math.pow(1 - t, 3) * p0 + 3 * Math.pow(1 - t, 2) * t * p1 + 3 * (1 - t) * Math.pow(t, 2) * p2 + Math.pow(t, 3) * p3;\n }\n\n bezierCurveAdd(forX, p0, p1, p2, p3) {\n var b = 6 * p0 - 12 * p1 + 6 * p2;\n var a = -3 * p0 + 9 * p1 - 9 * p2 + 3 * p3;\n var c = 3 * p1 - 3 * p0;\n\n if (a === 0) {\n if (b === 0) {\n return;\n }\n\n var t = -c / b;\n\n if (0 < t && t < 1) {\n if (forX) {\n this.addX(this.sumCubic(t, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t, p0, p1, p2, p3));\n }\n }\n\n return;\n }\n\n var b2ac = Math.pow(b, 2) - 4 * c * a;\n\n if (b2ac < 0) {\n return;\n }\n\n var t1 = (-b + Math.sqrt(b2ac)) / (2 * a);\n\n if (0 < t1 && t1 < 1) {\n if (forX) {\n this.addX(this.sumCubic(t1, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t1, p0, p1, p2, p3));\n }\n }\n\n var t2 = (-b - Math.sqrt(b2ac)) / (2 * a);\n\n if (0 < t2 && t2 < 1) {\n if (forX) {\n this.addX(this.sumCubic(t2, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t2, p0, p1, p2, p3));\n }\n }\n } // from http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html\n\n\n addBezierCurve(p0x, p0y, p1x, p1y, p2x, p2y, p3x, p3y) {\n this.addPoint(p0x, p0y);\n this.addPoint(p3x, p3y);\n this.bezierCurveAdd(true, p0x, p1x, p2x, p3x);\n this.bezierCurveAdd(false, p0y, p1y, p2y, p3y);\n }\n\n addQuadraticCurve(p0x, p0y, p1x, p1y, p2x, p2y) {\n var cp1x = p0x + 2 / 3 * (p1x - p0x); // CP1 = QP0 + 2/3 *(QP1-QP0)\n\n var cp1y = p0y + 2 / 3 * (p1y - p0y); // CP1 = QP0 + 2/3 *(QP1-QP0)\n\n var cp2x = cp1x + 1 / 3 * (p2x - p0x); // CP2 = CP1 + 1/3 *(QP2-QP0)\n\n var cp2y = cp1y + 1 / 3 * (p2y - p0y); // CP2 = CP1 + 1/3 *(QP2-QP0)\n\n this.addBezierCurve(p0x, p0y, cp1x, cp2x, cp1y, cp2y, p2x, p2y);\n }\n\n isPointInBox(x, y) {\n var {\n x1,\n y1,\n x2,\n y2\n } = this;\n return x1 <= x && x <= x2 && y1 <= y && y <= y2;\n }\n\n}\n\nclass PathParser extends SVGPathData {\n constructor(path) {\n super(path // Fix spaces after signs.\n .replace(/([+\\-.])\\s+/gm, '$1') // Remove invalid part.\n .replace(/[^MmZzLlHhVvCcSsQqTtAae\\d\\s.,+-].*/g, ''));\n this.control = null;\n this.start = null;\n this.current = null;\n this.command = null;\n this.commands = this.commands;\n this.i = -1;\n this.previousCommand = null;\n this.points = [];\n this.angles = [];\n }\n\n reset() {\n this.i = -1;\n this.command = null;\n this.previousCommand = null;\n this.start = new Point(0, 0);\n this.control = new Point(0, 0);\n this.current = new Point(0, 0);\n this.points = [];\n this.angles = [];\n }\n\n isEnd() {\n var {\n i,\n commands\n } = this;\n return i >= commands.length - 1;\n }\n\n next() {\n var command = this.commands[++this.i];\n this.previousCommand = this.command;\n this.command = command;\n return command;\n }\n\n getPoint() {\n var xProp = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'x';\n var yProp = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'y';\n var point = new Point(this.command[xProp], this.command[yProp]);\n return this.makeAbsolute(point);\n }\n\n getAsControlPoint(xProp, yProp) {\n var point = this.getPoint(xProp, yProp);\n this.control = point;\n return point;\n }\n\n getAsCurrentPoint(xProp, yProp) {\n var point = this.getPoint(xProp, yProp);\n this.current = point;\n return point;\n }\n\n getReflectedControlPoint() {\n var previousCommand = this.previousCommand.type;\n\n if (previousCommand !== SVGPathData.CURVE_TO && previousCommand !== SVGPathData.SMOOTH_CURVE_TO && previousCommand !== SVGPathData.QUAD_TO && previousCommand !== SVGPathData.SMOOTH_QUAD_TO) {\n return this.current;\n } // reflect point\n\n\n var {\n current: {\n x: cx,\n y: cy\n },\n control: {\n x: ox,\n y: oy\n }\n } = this;\n var point = new Point(2 * cx - ox, 2 * cy - oy);\n return point;\n }\n\n makeAbsolute(point) {\n if (this.command.relative) {\n var {\n x,\n y\n } = this.current;\n point.x += x;\n point.y += y;\n }\n\n return point;\n }\n\n addMarker(point, from, priorTo) {\n var {\n points,\n angles\n } = this; // if the last angle isn't filled in because we didn't have this point yet ...\n\n if (priorTo && angles.length > 0 && !angles[angles.length - 1]) {\n angles[angles.length - 1] = points[points.length - 1].angleTo(priorTo);\n }\n\n this.addMarkerAngle(point, from ? from.angleTo(point) : null);\n }\n\n addMarkerAngle(point, angle) {\n this.points.push(point);\n this.angles.push(angle);\n }\n\n getMarkerPoints() {\n return this.points;\n }\n\n getMarkerAngles() {\n var {\n angles\n } = this;\n var len = angles.length;\n\n for (var i = 0; i < len; i++) {\n if (!angles[i]) {\n for (var j = i + 1; j < len; j++) {\n if (angles[j]) {\n angles[i] = angles[j];\n break;\n }\n }\n }\n }\n\n return angles;\n }\n\n}\n\nclass RenderedElement extends Element {\n constructor() {\n super(...arguments);\n this.modifiedEmSizeStack = false;\n }\n\n calculateOpacity() {\n var opacity = 1.0; // eslint-disable-next-line @typescript-eslint/no-this-alias, consistent-this\n\n var element = this;\n\n while (element) {\n var opacityStyle = element.getStyle('opacity', false, true); // no ancestors on style call\n\n if (opacityStyle.hasValue(true)) {\n opacity *= opacityStyle.getNumber();\n }\n\n element = element.parent;\n }\n\n return opacity;\n }\n\n setContext(ctx) {\n var fromMeasure = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!fromMeasure) {\n // causes stack overflow when measuring text with gradients\n // fill\n var fillStyleProp = this.getStyle('fill');\n var fillOpacityStyleProp = this.getStyle('fill-opacity');\n var strokeStyleProp = this.getStyle('stroke');\n var strokeOpacityProp = this.getStyle('stroke-opacity');\n\n if (fillStyleProp.isUrlDefinition()) {\n var fillStyle = fillStyleProp.getFillStyleDefinition(this, fillOpacityStyleProp);\n\n if (fillStyle) {\n ctx.fillStyle = fillStyle;\n }\n } else if (fillStyleProp.hasValue()) {\n if (fillStyleProp.getString() === 'currentColor') {\n fillStyleProp.setValue(this.getStyle('color').getColor());\n }\n\n var _fillStyle = fillStyleProp.getColor();\n\n if (_fillStyle !== 'inherit') {\n ctx.fillStyle = _fillStyle === 'none' ? 'rgba(0,0,0,0)' : _fillStyle;\n }\n }\n\n if (fillOpacityStyleProp.hasValue()) {\n var _fillStyle2 = new Property(this.document, 'fill', ctx.fillStyle).addOpacity(fillOpacityStyleProp).getColor();\n\n ctx.fillStyle = _fillStyle2;\n } // stroke\n\n\n if (strokeStyleProp.isUrlDefinition()) {\n var strokeStyle = strokeStyleProp.getFillStyleDefinition(this, strokeOpacityProp);\n\n if (strokeStyle) {\n ctx.strokeStyle = strokeStyle;\n }\n } else if (strokeStyleProp.hasValue()) {\n if (strokeStyleProp.getString() === 'currentColor') {\n strokeStyleProp.setValue(this.getStyle('color').getColor());\n }\n\n var _strokeStyle = strokeStyleProp.getString();\n\n if (_strokeStyle !== 'inherit') {\n ctx.strokeStyle = _strokeStyle === 'none' ? 'rgba(0,0,0,0)' : _strokeStyle;\n }\n }\n\n if (strokeOpacityProp.hasValue()) {\n var _strokeStyle2 = new Property(this.document, 'stroke', ctx.strokeStyle).addOpacity(strokeOpacityProp).getString();\n\n ctx.strokeStyle = _strokeStyle2;\n }\n\n var strokeWidthStyleProp = this.getStyle('stroke-width');\n\n if (strokeWidthStyleProp.hasValue()) {\n var newLineWidth = strokeWidthStyleProp.getPixels();\n ctx.lineWidth = !newLineWidth ? PSEUDO_ZERO // browsers don't respect 0 (or node-canvas? :-)\n : newLineWidth;\n }\n\n var strokeLinecapStyleProp = this.getStyle('stroke-linecap');\n var strokeLinejoinStyleProp = this.getStyle('stroke-linejoin');\n var strokeMiterlimitProp = this.getStyle('stroke-miterlimit'); // NEED TEST\n // const pointOrderStyleProp = this.getStyle('paint-order');\n\n var strokeDasharrayStyleProp = this.getStyle('stroke-dasharray');\n var strokeDashoffsetProp = this.getStyle('stroke-dashoffset');\n\n if (strokeLinecapStyleProp.hasValue()) {\n ctx.lineCap = strokeLinecapStyleProp.getString();\n }\n\n if (strokeLinejoinStyleProp.hasValue()) {\n ctx.lineJoin = strokeLinejoinStyleProp.getString();\n }\n\n if (strokeMiterlimitProp.hasValue()) {\n ctx.miterLimit = strokeMiterlimitProp.getNumber();\n } // NEED TEST\n // if (pointOrderStyleProp.hasValue()) {\n // \t// ?\n // \tctx.paintOrder = pointOrderStyleProp.getValue();\n // }\n\n\n if (strokeDasharrayStyleProp.hasValue() && strokeDasharrayStyleProp.getString() !== 'none') {\n var gaps = toNumbers(strokeDasharrayStyleProp.getString());\n\n if (typeof ctx.setLineDash !== 'undefined') {\n ctx.setLineDash(gaps);\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.webkitLineDash !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.webkitLineDash = gaps;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.mozDash !== 'undefined' && !(gaps.length === 1 && gaps[0] === 0)) {\n // @ts-expect-error Handle browser prefix.\n ctx.mozDash = gaps;\n }\n\n var offset = strokeDashoffsetProp.getPixels();\n\n if (typeof ctx.lineDashOffset !== 'undefined') {\n ctx.lineDashOffset = offset;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.webkitLineDashOffset !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.webkitLineDashOffset = offset;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.mozDashOffset !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.mozDashOffset = offset;\n }\n }\n } // font\n\n\n this.modifiedEmSizeStack = false;\n\n if (typeof ctx.font !== 'undefined') {\n var fontStyleProp = this.getStyle('font');\n var fontStyleStyleProp = this.getStyle('font-style');\n var fontVariantStyleProp = this.getStyle('font-variant');\n var fontWeightStyleProp = this.getStyle('font-weight');\n var fontSizeStyleProp = this.getStyle('font-size');\n var fontFamilyStyleProp = this.getStyle('font-family');\n var font = new Font(fontStyleStyleProp.getString(), fontVariantStyleProp.getString(), fontWeightStyleProp.getString(), fontSizeStyleProp.hasValue() ? \"\".concat(fontSizeStyleProp.getPixels(true), \"px\") : '', fontFamilyStyleProp.getString(), Font.parse(fontStyleProp.getString(), ctx.font));\n fontStyleStyleProp.setValue(font.fontStyle);\n fontVariantStyleProp.setValue(font.fontVariant);\n fontWeightStyleProp.setValue(font.fontWeight);\n fontSizeStyleProp.setValue(font.fontSize);\n fontFamilyStyleProp.setValue(font.fontFamily);\n ctx.font = font.toString();\n\n if (fontSizeStyleProp.isPixels()) {\n this.document.emSize = fontSizeStyleProp.getPixels();\n this.modifiedEmSizeStack = true;\n }\n }\n\n if (!fromMeasure) {\n // effects\n this.applyEffects(ctx); // opacity\n\n ctx.globalAlpha = this.calculateOpacity();\n }\n }\n\n clearContext(ctx) {\n super.clearContext(ctx);\n\n if (this.modifiedEmSizeStack) {\n this.document.popEmSize();\n }\n }\n\n}\n\nclass PathElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'path';\n this.pathParser = null;\n this.pathParser = new PathParser(this.getAttribute('d').getString());\n }\n\n path(ctx) {\n var {\n pathParser\n } = this;\n var boundingBox = new BoundingBox();\n pathParser.reset();\n\n if (ctx) {\n ctx.beginPath();\n }\n\n while (!pathParser.isEnd()) {\n switch (pathParser.next().type) {\n case PathParser.MOVE_TO:\n this.pathM(ctx, boundingBox);\n break;\n\n case PathParser.LINE_TO:\n this.pathL(ctx, boundingBox);\n break;\n\n case PathParser.HORIZ_LINE_TO:\n this.pathH(ctx, boundingBox);\n break;\n\n case PathParser.VERT_LINE_TO:\n this.pathV(ctx, boundingBox);\n break;\n\n case PathParser.CURVE_TO:\n this.pathC(ctx, boundingBox);\n break;\n\n case PathParser.SMOOTH_CURVE_TO:\n this.pathS(ctx, boundingBox);\n break;\n\n case PathParser.QUAD_TO:\n this.pathQ(ctx, boundingBox);\n break;\n\n case PathParser.SMOOTH_QUAD_TO:\n this.pathT(ctx, boundingBox);\n break;\n\n case PathParser.ARC:\n this.pathA(ctx, boundingBox);\n break;\n\n case PathParser.CLOSE_PATH:\n this.pathZ(ctx, boundingBox);\n break;\n }\n }\n\n return boundingBox;\n }\n\n getBoundingBox(_) {\n return this.path();\n }\n\n getMarkers() {\n var {\n pathParser\n } = this;\n var points = pathParser.getMarkerPoints();\n var angles = pathParser.getMarkerAngles();\n var markers = points.map((point, i) => [point, angles[i]]);\n return markers;\n }\n\n renderChildren(ctx) {\n this.path(ctx);\n this.document.screen.mouse.checkPath(this, ctx);\n var fillRuleStyleProp = this.getStyle('fill-rule');\n\n if (ctx.fillStyle !== '') {\n if (fillRuleStyleProp.getString('inherit') !== 'inherit') {\n ctx.fill(fillRuleStyleProp.getString());\n } else {\n ctx.fill();\n }\n }\n\n if (ctx.strokeStyle !== '') {\n if (this.getAttribute('vector-effect').getString() === 'non-scaling-stroke') {\n ctx.save();\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.stroke();\n ctx.restore();\n } else {\n ctx.stroke();\n }\n }\n\n var markers = this.getMarkers();\n\n if (markers) {\n var markersLastIndex = markers.length - 1;\n var markerStartStyleProp = this.getStyle('marker-start');\n var markerMidStyleProp = this.getStyle('marker-mid');\n var markerEndStyleProp = this.getStyle('marker-end');\n\n if (markerStartStyleProp.isUrlDefinition()) {\n var marker = markerStartStyleProp.getDefinition();\n var [point, angle] = markers[0];\n marker.render(ctx, point, angle);\n }\n\n if (markerMidStyleProp.isUrlDefinition()) {\n var _marker = markerMidStyleProp.getDefinition();\n\n for (var i = 1; i < markersLastIndex; i++) {\n var [_point, _angle] = markers[i];\n\n _marker.render(ctx, _point, _angle);\n }\n }\n\n if (markerEndStyleProp.isUrlDefinition()) {\n var _marker2 = markerEndStyleProp.getDefinition();\n\n var [_point2, _angle2] = markers[markersLastIndex];\n\n _marker2.render(ctx, _point2, _angle2);\n }\n }\n }\n\n static pathM(pathParser) {\n var point = pathParser.getAsCurrentPoint();\n pathParser.start = pathParser.current;\n return {\n point\n };\n }\n\n pathM(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n point\n } = PathElement.pathM(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.moveTo(x, y);\n }\n }\n\n static pathL(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getAsCurrentPoint();\n return {\n current,\n point\n };\n }\n\n pathL(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathL(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathH(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var point = new Point((command.relative ? current.x : 0) + command.x, current.y);\n pathParser.current = point;\n return {\n current,\n point\n };\n }\n\n pathH(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathH(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathV(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var point = new Point(current.x, (command.relative ? current.y : 0) + command.y);\n pathParser.current = point;\n return {\n current,\n point\n };\n }\n\n pathV(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathV(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathC(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getPoint('x1', 'y1');\n var controlPoint = pathParser.getAsControlPoint('x2', 'y2');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n point,\n controlPoint,\n currentPoint\n };\n }\n\n pathC(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathC(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, point);\n boundingBox.addBezierCurve(current.x, current.y, point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.bezierCurveTo(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathS(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getReflectedControlPoint();\n var controlPoint = pathParser.getAsControlPoint('x2', 'y2');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n point,\n controlPoint,\n currentPoint\n };\n }\n\n pathS(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathS(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, point);\n boundingBox.addBezierCurve(current.x, current.y, point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.bezierCurveTo(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathQ(pathParser) {\n var {\n current\n } = pathParser;\n var controlPoint = pathParser.getAsControlPoint('x1', 'y1');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n controlPoint,\n currentPoint\n };\n }\n\n pathQ(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n controlPoint,\n currentPoint\n } = PathElement.pathQ(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, controlPoint);\n boundingBox.addQuadraticCurve(current.x, current.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.quadraticCurveTo(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathT(pathParser) {\n var {\n current\n } = pathParser;\n var controlPoint = pathParser.getReflectedControlPoint();\n pathParser.control = controlPoint;\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n controlPoint,\n currentPoint\n };\n }\n\n pathT(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n controlPoint,\n currentPoint\n } = PathElement.pathT(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, controlPoint);\n boundingBox.addQuadraticCurve(current.x, current.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.quadraticCurveTo(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathA(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var {\n rX,\n rY,\n xRot,\n lArcFlag,\n sweepFlag\n } = command;\n var xAxisRotation = xRot * (Math.PI / 180.0);\n var currentPoint = pathParser.getAsCurrentPoint(); // Conversion from endpoint to center parameterization\n // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes\n // x1', y1'\n\n var currp = new Point(Math.cos(xAxisRotation) * (current.x - currentPoint.x) / 2.0 + Math.sin(xAxisRotation) * (current.y - currentPoint.y) / 2.0, -Math.sin(xAxisRotation) * (current.x - currentPoint.x) / 2.0 + Math.cos(xAxisRotation) * (current.y - currentPoint.y) / 2.0); // adjust radii\n\n var l = Math.pow(currp.x, 2) / Math.pow(rX, 2) + Math.pow(currp.y, 2) / Math.pow(rY, 2);\n\n if (l > 1) {\n rX *= Math.sqrt(l);\n rY *= Math.sqrt(l);\n } // cx', cy'\n\n\n var s = (lArcFlag === sweepFlag ? -1 : 1) * Math.sqrt((Math.pow(rX, 2) * Math.pow(rY, 2) - Math.pow(rX, 2) * Math.pow(currp.y, 2) - Math.pow(rY, 2) * Math.pow(currp.x, 2)) / (Math.pow(rX, 2) * Math.pow(currp.y, 2) + Math.pow(rY, 2) * Math.pow(currp.x, 2)));\n\n if (isNaN(s)) {\n s = 0;\n }\n\n var cpp = new Point(s * rX * currp.y / rY, s * -rY * currp.x / rX); // cx, cy\n\n var centp = new Point((current.x + currentPoint.x) / 2.0 + Math.cos(xAxisRotation) * cpp.x - Math.sin(xAxisRotation) * cpp.y, (current.y + currentPoint.y) / 2.0 + Math.sin(xAxisRotation) * cpp.x + Math.cos(xAxisRotation) * cpp.y); // initial angle\n\n var a1 = vectorsAngle([1, 0], [(currp.x - cpp.x) / rX, (currp.y - cpp.y) / rY]); // θ1\n // angle delta\n\n var u = [(currp.x - cpp.x) / rX, (currp.y - cpp.y) / rY];\n var v = [(-currp.x - cpp.x) / rX, (-currp.y - cpp.y) / rY];\n var ad = vectorsAngle(u, v); // Δθ\n\n if (vectorsRatio(u, v) <= -1) {\n ad = Math.PI;\n }\n\n if (vectorsRatio(u, v) >= 1) {\n ad = 0;\n }\n\n return {\n currentPoint,\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n };\n }\n\n pathA(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n currentPoint,\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n } = PathElement.pathA(pathParser); // for markers\n\n var dir = 1 - sweepFlag ? 1.0 : -1.0;\n var ah = a1 + dir * (ad / 2.0);\n var halfWay = new Point(centp.x + rX * Math.cos(ah), centp.y + rY * Math.sin(ah));\n pathParser.addMarkerAngle(halfWay, ah - dir * Math.PI / 2);\n pathParser.addMarkerAngle(currentPoint, ah - dir * Math.PI);\n boundingBox.addPoint(currentPoint.x, currentPoint.y); // TODO: this is too naive, make it better\n\n if (ctx && !isNaN(a1) && !isNaN(ad)) {\n var r = rX > rY ? rX : rY;\n var sx = rX > rY ? 1 : rX / rY;\n var sy = rX > rY ? rY / rX : 1;\n ctx.translate(centp.x, centp.y);\n ctx.rotate(xAxisRotation);\n ctx.scale(sx, sy);\n ctx.arc(0, 0, r, a1, a1 + ad, Boolean(1 - sweepFlag));\n ctx.scale(1 / sx, 1 / sy);\n ctx.rotate(-xAxisRotation);\n ctx.translate(-centp.x, -centp.y);\n }\n }\n\n static pathZ(pathParser) {\n pathParser.current = pathParser.start;\n }\n\n pathZ(ctx, boundingBox) {\n PathElement.pathZ(this.pathParser);\n\n if (ctx) {\n // only close path if it is not a straight line\n if (boundingBox.x1 !== boundingBox.x2 && boundingBox.y1 !== boundingBox.y2) {\n ctx.closePath();\n }\n }\n }\n\n}\n\nclass GlyphElement extends PathElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'glyph';\n this.horizAdvX = this.getAttribute('horiz-adv-x').getNumber();\n this.unicode = this.getAttribute('unicode').getString();\n this.arabicForm = this.getAttribute('arabic-form').getString();\n }\n\n}\n\nclass TextElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, new.target === TextElement ? true : captureTextNodes);\n this.type = 'text';\n this.x = 0;\n this.y = 0;\n this.measureCache = -1;\n }\n\n setContext(ctx) {\n var fromMeasure = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n super.setContext(ctx, fromMeasure);\n var textBaseline = this.getStyle('dominant-baseline').getTextBaseline() || this.getStyle('alignment-baseline').getTextBaseline();\n\n if (textBaseline) {\n ctx.textBaseline = textBaseline;\n }\n }\n\n initializeCoordinates() {\n this.x = 0;\n this.y = 0;\n this.leafTexts = [];\n this.textChunkStart = 0;\n this.minX = Number.POSITIVE_INFINITY;\n this.maxX = Number.NEGATIVE_INFINITY;\n }\n\n getBoundingBox(ctx) {\n if (this.type !== 'text') {\n return this.getTElementBoundingBox(ctx);\n } // first, calculate child positions\n\n\n this.initializeCoordinates();\n this.adjustChildCoordinatesRecursive(ctx);\n var boundingBox = null; // then calculate bounding box\n\n this.children.forEach((_, i) => {\n var childBoundingBox = this.getChildBoundingBox(ctx, this, this, i);\n\n if (!boundingBox) {\n boundingBox = childBoundingBox;\n } else {\n boundingBox.addBoundingBox(childBoundingBox);\n }\n });\n return boundingBox;\n }\n\n getFontSize() {\n var {\n document,\n parent\n } = this;\n var inheritFontSize = Font.parse(document.ctx.font).fontSize;\n var fontSize = parent.getStyle('font-size').getNumber(inheritFontSize);\n return fontSize;\n }\n\n getTElementBoundingBox(ctx) {\n var fontSize = this.getFontSize();\n return new BoundingBox(this.x, this.y - fontSize, this.x + this.measureText(ctx), this.y);\n }\n\n getGlyph(font, text, i) {\n var char = text[i];\n var glyph = null;\n\n if (font.isArabic) {\n var len = text.length;\n var prevChar = text[i - 1];\n var nextChar = text[i + 1];\n var arabicForm = 'isolated';\n\n if ((i === 0 || prevChar === ' ') && i < len - 1 && nextChar !== ' ') {\n arabicForm = 'terminal';\n }\n\n if (i > 0 && prevChar !== ' ' && i < len - 1 && nextChar !== ' ') {\n arabicForm = 'medial';\n }\n\n if (i > 0 && prevChar !== ' ' && (i === len - 1 || nextChar === ' ')) {\n arabicForm = 'initial';\n }\n\n if (typeof font.glyphs[char] !== 'undefined') {\n // NEED TEST\n var maybeGlyph = font.glyphs[char];\n glyph = maybeGlyph instanceof GlyphElement ? maybeGlyph : maybeGlyph[arabicForm];\n }\n } else {\n glyph = font.glyphs[char];\n }\n\n if (!glyph) {\n glyph = font.missingGlyph;\n }\n\n return glyph;\n }\n\n getText() {\n return '';\n }\n\n getTextFromNode(node) {\n var textNode = node || this.node;\n var childNodes = Array.from(textNode.parentNode.childNodes);\n var index = childNodes.indexOf(textNode);\n var lastIndex = childNodes.length - 1;\n var text = compressSpaces( // textNode.value\n // || textNode.text\n textNode.textContent || '');\n\n if (index === 0) {\n text = trimLeft(text);\n }\n\n if (index === lastIndex) {\n text = trimRight(text);\n }\n\n return text;\n }\n\n renderChildren(ctx) {\n if (this.type !== 'text') {\n this.renderTElementChildren(ctx);\n return;\n } // first, calculate child positions\n\n\n this.initializeCoordinates();\n this.adjustChildCoordinatesRecursive(ctx); // then render\n\n this.children.forEach((_, i) => {\n this.renderChild(ctx, this, this, i);\n });\n var {\n mouse\n } = this.document.screen; // Do not calc bounding box if mouse is not working.\n\n if (mouse.isWorking()) {\n mouse.checkBoundingBox(this, this.getBoundingBox(ctx));\n }\n }\n\n renderTElementChildren(ctx) {\n var {\n document,\n parent\n } = this;\n var renderText = this.getText();\n var customFont = parent.getStyle('font-family').getDefinition();\n\n if (customFont) {\n var {\n unitsPerEm\n } = customFont.fontFace;\n var ctxFont = Font.parse(document.ctx.font);\n var fontSize = parent.getStyle('font-size').getNumber(ctxFont.fontSize);\n var fontStyle = parent.getStyle('font-style').getString(ctxFont.fontStyle);\n var scale = fontSize / unitsPerEm;\n var text = customFont.isRTL ? renderText.split('').reverse().join('') : renderText;\n var dx = toNumbers(parent.getAttribute('dx').getString());\n var len = text.length;\n\n for (var i = 0; i < len; i++) {\n var glyph = this.getGlyph(customFont, text, i);\n ctx.translate(this.x, this.y);\n ctx.scale(scale, -scale);\n var lw = ctx.lineWidth;\n ctx.lineWidth = ctx.lineWidth * unitsPerEm / fontSize;\n\n if (fontStyle === 'italic') {\n ctx.transform(1, 0, .4, 1, 0, 0);\n }\n\n glyph.render(ctx);\n\n if (fontStyle === 'italic') {\n ctx.transform(1, 0, -.4, 1, 0, 0);\n }\n\n ctx.lineWidth = lw;\n ctx.scale(1 / scale, -1 / scale);\n ctx.translate(-this.x, -this.y);\n this.x += fontSize * (glyph.horizAdvX || customFont.horizAdvX) / unitsPerEm;\n\n if (typeof dx[i] !== 'undefined' && !isNaN(dx[i])) {\n this.x += dx[i];\n }\n }\n\n return;\n }\n\n var {\n x,\n y\n } = this; // NEED TEST\n // if (ctx.paintOrder === 'stroke') {\n // \tif (ctx.strokeStyle) {\n // \t\tctx.strokeText(renderText, x, y);\n // \t}\n // \tif (ctx.fillStyle) {\n // \t\tctx.fillText(renderText, x, y);\n // \t}\n // } else {\n\n if (ctx.fillStyle) {\n ctx.fillText(renderText, x, y);\n }\n\n if (ctx.strokeStyle) {\n ctx.strokeText(renderText, x, y);\n } // }\n\n }\n\n applyAnchoring() {\n if (this.textChunkStart >= this.leafTexts.length) {\n return;\n } // This is basically the \"Apply anchoring\" part of https://www.w3.org/TR/SVG2/text.html#TextLayoutAlgorithm.\n // The difference is that we apply the anchoring as soon as a chunk is finished. This saves some extra looping.\n // Vertical text is not supported.\n\n\n var firstElement = this.leafTexts[this.textChunkStart];\n var textAnchor = firstElement.getStyle('text-anchor').getString('start');\n var isRTL = false; // we treat RTL like LTR\n\n var shift = 0;\n\n if (textAnchor === 'start' && !isRTL || textAnchor === 'end' && isRTL) {\n shift = firstElement.x - this.minX;\n } else if (textAnchor === 'end' && !isRTL || textAnchor === 'start' && isRTL) {\n shift = firstElement.x - this.maxX;\n } else {\n shift = firstElement.x - (this.minX + this.maxX) / 2;\n }\n\n for (var i = this.textChunkStart; i < this.leafTexts.length; i++) {\n this.leafTexts[i].x += shift;\n } // start new chunk\n\n\n this.minX = Number.POSITIVE_INFINITY;\n this.maxX = Number.NEGATIVE_INFINITY;\n this.textChunkStart = this.leafTexts.length;\n }\n\n adjustChildCoordinatesRecursive(ctx) {\n this.children.forEach((_, i) => {\n this.adjustChildCoordinatesRecursiveCore(ctx, this, this, i);\n });\n this.applyAnchoring();\n }\n\n adjustChildCoordinatesRecursiveCore(ctx, textParent, parent, i) {\n var child = parent.children[i];\n\n if (child.children.length > 0) {\n child.children.forEach((_, i) => {\n textParent.adjustChildCoordinatesRecursiveCore(ctx, textParent, child, i);\n });\n } else {\n // only leafs are relevant\n this.adjustChildCoordinates(ctx, textParent, parent, i);\n }\n }\n\n adjustChildCoordinates(ctx, textParent, parent, i) {\n var child = parent.children[i];\n\n if (typeof child.measureText !== 'function') {\n return child;\n }\n\n ctx.save();\n child.setContext(ctx, true);\n var xAttr = child.getAttribute('x');\n var yAttr = child.getAttribute('y');\n var dxAttr = child.getAttribute('dx');\n var dyAttr = child.getAttribute('dy');\n var customFont = child.getStyle('font-family').getDefinition();\n var isRTL = Boolean(customFont) && customFont.isRTL;\n\n if (i === 0) {\n // First children inherit attributes from parent(s). Positional attributes\n // are only inherited from a parent to it's first child.\n if (!xAttr.hasValue()) {\n xAttr.setValue(child.getInheritedAttribute('x'));\n }\n\n if (!yAttr.hasValue()) {\n yAttr.setValue(child.getInheritedAttribute('y'));\n }\n\n if (!dxAttr.hasValue()) {\n dxAttr.setValue(child.getInheritedAttribute('dx'));\n }\n\n if (!dyAttr.hasValue()) {\n dyAttr.setValue(child.getInheritedAttribute('dy'));\n }\n }\n\n var width = child.measureText(ctx);\n\n if (isRTL) {\n textParent.x -= width;\n }\n\n if (xAttr.hasValue()) {\n // an \"x\" attribute marks the start of a new chunk\n textParent.applyAnchoring();\n child.x = xAttr.getPixels('x');\n\n if (dxAttr.hasValue()) {\n child.x += dxAttr.getPixels('x');\n }\n } else {\n if (dxAttr.hasValue()) {\n textParent.x += dxAttr.getPixels('x');\n }\n\n child.x = textParent.x;\n }\n\n textParent.x = child.x;\n\n if (!isRTL) {\n textParent.x += width;\n }\n\n if (yAttr.hasValue()) {\n child.y = yAttr.getPixels('y');\n\n if (dyAttr.hasValue()) {\n child.y += dyAttr.getPixels('y');\n }\n } else {\n if (dyAttr.hasValue()) {\n textParent.y += dyAttr.getPixels('y');\n }\n\n child.y = textParent.y;\n }\n\n textParent.y = child.y; // update the current chunk and it's bounds\n\n textParent.leafTexts.push(child);\n textParent.minX = Math.min(textParent.minX, child.x, child.x + width);\n textParent.maxX = Math.max(textParent.maxX, child.x, child.x + width);\n child.clearContext(ctx);\n ctx.restore();\n return child;\n }\n\n getChildBoundingBox(ctx, textParent, parent, i) {\n var child = parent.children[i]; // not a text node?\n\n if (typeof child.getBoundingBox !== 'function') {\n return null;\n }\n\n var boundingBox = child.getBoundingBox(ctx);\n\n if (!boundingBox) {\n return null;\n }\n\n child.children.forEach((_, i) => {\n var childBoundingBox = textParent.getChildBoundingBox(ctx, textParent, child, i);\n boundingBox.addBoundingBox(childBoundingBox);\n });\n return boundingBox;\n }\n\n renderChild(ctx, textParent, parent, i) {\n var child = parent.children[i];\n child.render(ctx);\n child.children.forEach((_, i) => {\n textParent.renderChild(ctx, textParent, child, i);\n });\n }\n\n measureText(ctx) {\n var {\n measureCache\n } = this;\n\n if (~measureCache) {\n return measureCache;\n }\n\n var renderText = this.getText();\n var measure = this.measureTargetText(ctx, renderText);\n this.measureCache = measure;\n return measure;\n }\n\n measureTargetText(ctx, targetText) {\n if (!targetText.length) {\n return 0;\n }\n\n var {\n parent\n } = this;\n var customFont = parent.getStyle('font-family').getDefinition();\n\n if (customFont) {\n var fontSize = this.getFontSize();\n var text = customFont.isRTL ? targetText.split('').reverse().join('') : targetText;\n var dx = toNumbers(parent.getAttribute('dx').getString());\n var len = text.length;\n var _measure = 0;\n\n for (var i = 0; i < len; i++) {\n var glyph = this.getGlyph(customFont, text, i);\n _measure += (glyph.horizAdvX || customFont.horizAdvX) * fontSize / customFont.fontFace.unitsPerEm;\n\n if (typeof dx[i] !== 'undefined' && !isNaN(dx[i])) {\n _measure += dx[i];\n }\n }\n\n return _measure;\n }\n\n if (!ctx.measureText) {\n return targetText.length * 10;\n }\n\n ctx.save();\n this.setContext(ctx, true);\n var {\n width: measure\n } = ctx.measureText(targetText);\n this.clearContext(ctx);\n ctx.restore();\n return measure;\n }\n /**\r\n * Inherits positional attributes from {@link TextElement} parent(s). Attributes\r\n * are only inherited from a parent to its first child.\r\n * @param name - The attribute name.\r\n * @returns The attribute value or null.\r\n */\n\n\n getInheritedAttribute(name) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias,consistent-this\n var current = this;\n\n while (current instanceof TextElement && current.isFirstChild()) {\n var parentAttr = current.parent.getAttribute(name);\n\n if (parentAttr.hasValue(true)) {\n return parentAttr.getValue('0');\n }\n\n current = current.parent;\n }\n\n return null;\n }\n\n}\n\nclass TSpanElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, new.target === TSpanElement ? true : captureTextNodes);\n this.type = 'tspan'; // if this node has children, then they own the text\n\n this.text = this.children.length > 0 ? '' : this.getTextFromNode();\n }\n\n getText() {\n return this.text;\n }\n\n}\n\nclass TextNode extends TSpanElement {\n constructor() {\n super(...arguments);\n this.type = 'textNode';\n }\n\n}\n\nclass SVGElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'svg';\n this.root = false;\n }\n\n setContext(ctx) {\n var _this$node$parentNode;\n\n var {\n document\n } = this;\n var {\n screen,\n window\n } = document;\n var canvas = ctx.canvas;\n screen.setDefaults(ctx);\n\n if (canvas.style && typeof ctx.font !== 'undefined' && window && typeof window.getComputedStyle !== 'undefined') {\n ctx.font = window.getComputedStyle(canvas).getPropertyValue('font');\n var fontSizeProp = new Property(document, 'fontSize', Font.parse(ctx.font).fontSize);\n\n if (fontSizeProp.hasValue()) {\n document.rootEmSize = fontSizeProp.getPixels('y');\n document.emSize = document.rootEmSize;\n }\n } // create new view port\n\n\n if (!this.getAttribute('x').hasValue()) {\n this.getAttribute('x', true).setValue(0);\n }\n\n if (!this.getAttribute('y').hasValue()) {\n this.getAttribute('y', true).setValue(0);\n }\n\n var {\n width,\n height\n } = screen.viewPort;\n\n if (!this.getStyle('width').hasValue()) {\n this.getStyle('width', true).setValue('100%');\n }\n\n if (!this.getStyle('height').hasValue()) {\n this.getStyle('height', true).setValue('100%');\n }\n\n if (!this.getStyle('color').hasValue()) {\n this.getStyle('color', true).setValue('black');\n }\n\n var refXAttr = this.getAttribute('refX');\n var refYAttr = this.getAttribute('refY');\n var viewBoxAttr = this.getAttribute('viewBox');\n var viewBox = viewBoxAttr.hasValue() ? toNumbers(viewBoxAttr.getString()) : null;\n var clip = !this.root && this.getStyle('overflow').getValue('hidden') !== 'visible';\n var minX = 0;\n var minY = 0;\n var clipX = 0;\n var clipY = 0;\n\n if (viewBox) {\n minX = viewBox[0];\n minY = viewBox[1];\n }\n\n if (!this.root) {\n width = this.getStyle('width').getPixels('x');\n height = this.getStyle('height').getPixels('y');\n\n if (this.type === 'marker') {\n clipX = minX;\n clipY = minY;\n minX = 0;\n minY = 0;\n }\n }\n\n screen.viewPort.setCurrent(width, height); // Default value of transform-origin is center only for root SVG elements\n // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/transform-origin\n\n if (this.node // is not temporary SVGElement\n && (!this.parent || ((_this$node$parentNode = this.node.parentNode) === null || _this$node$parentNode === void 0 ? void 0 : _this$node$parentNode.nodeName) === 'foreignObject') && this.getStyle('transform', false, true).hasValue() && !this.getStyle('transform-origin', false, true).hasValue()) {\n this.getStyle('transform-origin', true, true).setValue('50% 50%');\n }\n\n super.setContext(ctx);\n ctx.translate(this.getAttribute('x').getPixels('x'), this.getAttribute('y').getPixels('y'));\n\n if (viewBox) {\n width = viewBox[2];\n height = viewBox[3];\n }\n\n document.setViewBox({\n ctx,\n aspectRatio: this.getAttribute('preserveAspectRatio').getString(),\n width: screen.viewPort.width,\n desiredWidth: width,\n height: screen.viewPort.height,\n desiredHeight: height,\n minX,\n minY,\n refX: refXAttr.getValue(),\n refY: refYAttr.getValue(),\n clip,\n clipX,\n clipY\n });\n\n if (viewBox) {\n screen.viewPort.removeCurrent();\n screen.viewPort.setCurrent(width, height);\n }\n }\n\n clearContext(ctx) {\n super.clearContext(ctx);\n this.document.screen.viewPort.removeCurrent();\n }\n /**\r\n * Resize SVG to fit in given size.\r\n * @param width\r\n * @param height\r\n * @param preserveAspectRatio\r\n */\n\n\n resize(width) {\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : width;\n var preserveAspectRatio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var widthAttr = this.getAttribute('width', true);\n var heightAttr = this.getAttribute('height', true);\n var viewBoxAttr = this.getAttribute('viewBox');\n var styleAttr = this.getAttribute('style');\n var originWidth = widthAttr.getNumber(0);\n var originHeight = heightAttr.getNumber(0);\n\n if (preserveAspectRatio) {\n if (typeof preserveAspectRatio === 'string') {\n this.getAttribute('preserveAspectRatio', true).setValue(preserveAspectRatio);\n } else {\n var preserveAspectRatioAttr = this.getAttribute('preserveAspectRatio');\n\n if (preserveAspectRatioAttr.hasValue()) {\n preserveAspectRatioAttr.setValue(preserveAspectRatioAttr.getString().replace(/^\\s*(\\S.*\\S)\\s*$/, '$1'));\n }\n }\n }\n\n widthAttr.setValue(width);\n heightAttr.setValue(height);\n\n if (!viewBoxAttr.hasValue()) {\n viewBoxAttr.setValue(\"0 0 \".concat(originWidth || width, \" \").concat(originHeight || height));\n }\n\n if (styleAttr.hasValue()) {\n var widthStyle = this.getStyle('width');\n var heightStyle = this.getStyle('height');\n\n if (widthStyle.hasValue()) {\n widthStyle.setValue(\"\".concat(width, \"px\"));\n }\n\n if (heightStyle.hasValue()) {\n heightStyle.setValue(\"\".concat(height, \"px\"));\n }\n }\n }\n\n}\n\nclass RectElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'rect';\n }\n\n path(ctx) {\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width', false, true).getPixels('x');\n var height = this.getStyle('height', false, true).getPixels('y');\n var rxAttr = this.getAttribute('rx');\n var ryAttr = this.getAttribute('ry');\n var rx = rxAttr.getPixels('x');\n var ry = ryAttr.getPixels('y');\n\n if (rxAttr.hasValue() && !ryAttr.hasValue()) {\n ry = rx;\n }\n\n if (ryAttr.hasValue() && !rxAttr.hasValue()) {\n rx = ry;\n }\n\n rx = Math.min(rx, width / 2.0);\n ry = Math.min(ry, height / 2.0);\n\n if (ctx) {\n var KAPPA = 4 * ((Math.sqrt(2) - 1) / 3);\n ctx.beginPath(); // always start the path so we don't fill prior paths\n\n if (height > 0 && width > 0) {\n ctx.moveTo(x + rx, y);\n ctx.lineTo(x + width - rx, y);\n ctx.bezierCurveTo(x + width - rx + KAPPA * rx, y, x + width, y + ry - KAPPA * ry, x + width, y + ry);\n ctx.lineTo(x + width, y + height - ry);\n ctx.bezierCurveTo(x + width, y + height - ry + KAPPA * ry, x + width - rx + KAPPA * rx, y + height, x + width - rx, y + height);\n ctx.lineTo(x + rx, y + height);\n ctx.bezierCurveTo(x + rx - KAPPA * rx, y + height, x, y + height - ry + KAPPA * ry, x, y + height - ry);\n ctx.lineTo(x, y + ry);\n ctx.bezierCurveTo(x, y + ry - KAPPA * ry, x + rx - KAPPA * rx, y, x + rx, y);\n ctx.closePath();\n }\n }\n\n return new BoundingBox(x, y, x + width, y + height);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass CircleElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'circle';\n }\n\n path(ctx) {\n var cx = this.getAttribute('cx').getPixels('x');\n var cy = this.getAttribute('cy').getPixels('y');\n var r = this.getAttribute('r').getPixels();\n\n if (ctx && r > 0) {\n ctx.beginPath();\n ctx.arc(cx, cy, r, 0, Math.PI * 2, false);\n ctx.closePath();\n }\n\n return new BoundingBox(cx - r, cy - r, cx + r, cy + r);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass EllipseElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'ellipse';\n }\n\n path(ctx) {\n var KAPPA = 4 * ((Math.sqrt(2) - 1) / 3);\n var rx = this.getAttribute('rx').getPixels('x');\n var ry = this.getAttribute('ry').getPixels('y');\n var cx = this.getAttribute('cx').getPixels('x');\n var cy = this.getAttribute('cy').getPixels('y');\n\n if (ctx && rx > 0 && ry > 0) {\n ctx.beginPath();\n ctx.moveTo(cx + rx, cy);\n ctx.bezierCurveTo(cx + rx, cy + KAPPA * ry, cx + KAPPA * rx, cy + ry, cx, cy + ry);\n ctx.bezierCurveTo(cx - KAPPA * rx, cy + ry, cx - rx, cy + KAPPA * ry, cx - rx, cy);\n ctx.bezierCurveTo(cx - rx, cy - KAPPA * ry, cx - KAPPA * rx, cy - ry, cx, cy - ry);\n ctx.bezierCurveTo(cx + KAPPA * rx, cy - ry, cx + rx, cy - KAPPA * ry, cx + rx, cy);\n ctx.closePath();\n }\n\n return new BoundingBox(cx - rx, cy - ry, cx + rx, cy + ry);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass LineElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'line';\n }\n\n getPoints() {\n return [new Point(this.getAttribute('x1').getPixels('x'), this.getAttribute('y1').getPixels('y')), new Point(this.getAttribute('x2').getPixels('x'), this.getAttribute('y2').getPixels('y'))];\n }\n\n path(ctx) {\n var [{\n x: x0,\n y: y0\n }, {\n x: x1,\n y: y1\n }] = this.getPoints();\n\n if (ctx) {\n ctx.beginPath();\n ctx.moveTo(x0, y0);\n ctx.lineTo(x1, y1);\n }\n\n return new BoundingBox(x0, y0, x1, y1);\n }\n\n getMarkers() {\n var [p0, p1] = this.getPoints();\n var a = p0.angleTo(p1);\n return [[p0, a], [p1, a]];\n }\n\n}\n\nclass PolylineElement extends PathElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'polyline';\n this.points = [];\n this.points = Point.parsePath(this.getAttribute('points').getString());\n }\n\n path(ctx) {\n var {\n points\n } = this;\n var [{\n x: x0,\n y: y0\n }] = points;\n var boundingBox = new BoundingBox(x0, y0);\n\n if (ctx) {\n ctx.beginPath();\n ctx.moveTo(x0, y0);\n }\n\n points.forEach(_ref => {\n var {\n x,\n y\n } = _ref;\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n });\n return boundingBox;\n }\n\n getMarkers() {\n var {\n points\n } = this;\n var lastIndex = points.length - 1;\n var markers = [];\n points.forEach((point, i) => {\n if (i === lastIndex) {\n return;\n }\n\n markers.push([point, point.angleTo(points[i + 1])]);\n });\n\n if (markers.length > 0) {\n markers.push([points[points.length - 1], markers[markers.length - 1][1]]);\n }\n\n return markers;\n }\n\n}\n\nclass PolygonElement extends PolylineElement {\n constructor() {\n super(...arguments);\n this.type = 'polygon';\n }\n\n path(ctx) {\n var boundingBox = super.path(ctx);\n var [{\n x,\n y\n }] = this.points;\n\n if (ctx) {\n ctx.lineTo(x, y);\n ctx.closePath();\n }\n\n return boundingBox;\n }\n\n}\n\nclass PatternElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'pattern';\n }\n\n createPattern(ctx, _, parentOpacityProp) {\n var width = this.getStyle('width').getPixels('x', true);\n var height = this.getStyle('height').getPixels('y', true); // render me using a temporary svg element\n\n var patternSvg = new SVGElement(this.document, null);\n patternSvg.attributes.viewBox = new Property(this.document, 'viewBox', this.getAttribute('viewBox').getValue());\n patternSvg.attributes.width = new Property(this.document, 'width', \"\".concat(width, \"px\"));\n patternSvg.attributes.height = new Property(this.document, 'height', \"\".concat(height, \"px\"));\n patternSvg.attributes.transform = new Property(this.document, 'transform', this.getAttribute('patternTransform').getValue());\n patternSvg.children = this.children;\n var patternCanvas = this.document.createCanvas(width, height);\n var patternCtx = patternCanvas.getContext('2d');\n var xAttr = this.getAttribute('x');\n var yAttr = this.getAttribute('y');\n\n if (xAttr.hasValue() && yAttr.hasValue()) {\n patternCtx.translate(xAttr.getPixels('x', true), yAttr.getPixels('y', true));\n }\n\n if (parentOpacityProp.hasValue()) {\n this.styles['fill-opacity'] = parentOpacityProp;\n } else {\n Reflect.deleteProperty(this.styles, 'fill-opacity');\n } // render 3x3 grid so when we transform there's no white space on edges\n\n\n for (var x = -1; x <= 1; x++) {\n for (var y = -1; y <= 1; y++) {\n patternCtx.save();\n patternSvg.attributes.x = new Property(this.document, 'x', x * patternCanvas.width);\n patternSvg.attributes.y = new Property(this.document, 'y', y * patternCanvas.height);\n patternSvg.render(patternCtx);\n patternCtx.restore();\n }\n }\n\n var pattern = ctx.createPattern(patternCanvas, 'repeat');\n return pattern;\n }\n\n}\n\nclass MarkerElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'marker';\n }\n\n render(ctx, point, angle) {\n if (!point) {\n return;\n }\n\n var {\n x,\n y\n } = point;\n var orient = this.getAttribute('orient').getString('auto');\n var markerUnits = this.getAttribute('markerUnits').getString('strokeWidth');\n ctx.translate(x, y);\n\n if (orient === 'auto') {\n ctx.rotate(angle);\n }\n\n if (markerUnits === 'strokeWidth') {\n ctx.scale(ctx.lineWidth, ctx.lineWidth);\n }\n\n ctx.save(); // render me using a temporary svg element\n\n var markerSvg = new SVGElement(this.document, null);\n markerSvg.type = this.type;\n markerSvg.attributes.viewBox = new Property(this.document, 'viewBox', this.getAttribute('viewBox').getValue());\n markerSvg.attributes.refX = new Property(this.document, 'refX', this.getAttribute('refX').getValue());\n markerSvg.attributes.refY = new Property(this.document, 'refY', this.getAttribute('refY').getValue());\n markerSvg.attributes.width = new Property(this.document, 'width', this.getAttribute('markerWidth').getValue());\n markerSvg.attributes.height = new Property(this.document, 'height', this.getAttribute('markerHeight').getValue());\n markerSvg.attributes.overflow = new Property(this.document, 'overflow', this.getAttribute('overflow').getValue());\n markerSvg.attributes.fill = new Property(this.document, 'fill', this.getAttribute('fill').getColor('black'));\n markerSvg.attributes.stroke = new Property(this.document, 'stroke', this.getAttribute('stroke').getValue('none'));\n markerSvg.children = this.children;\n markerSvg.render(ctx);\n ctx.restore();\n\n if (markerUnits === 'strokeWidth') {\n ctx.scale(1 / ctx.lineWidth, 1 / ctx.lineWidth);\n }\n\n if (orient === 'auto') {\n ctx.rotate(-angle);\n }\n\n ctx.translate(-x, -y);\n }\n\n}\n\nclass DefsElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'defs';\n }\n\n render() {// NOOP\n }\n\n}\n\nclass GElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'g';\n }\n\n getBoundingBox(ctx) {\n var boundingBox = new BoundingBox();\n this.children.forEach(child => {\n boundingBox.addBoundingBox(child.getBoundingBox(ctx));\n });\n return boundingBox;\n }\n\n}\n\nclass GradientElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.attributesToInherit = ['gradientUnits'];\n this.stops = [];\n var {\n stops,\n children\n } = this;\n children.forEach(child => {\n if (child.type === 'stop') {\n stops.push(child);\n }\n });\n }\n\n getGradientUnits() {\n return this.getAttribute('gradientUnits').getString('objectBoundingBox');\n }\n\n createGradient(ctx, element, parentOpacityProp) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias, consistent-this\n var stopsContainer = this;\n\n if (this.getHrefAttribute().hasValue()) {\n stopsContainer = this.getHrefAttribute().getDefinition();\n this.inheritStopContainer(stopsContainer);\n }\n\n var {\n stops\n } = stopsContainer;\n var gradient = this.getGradient(ctx, element);\n\n if (!gradient) {\n return this.addParentOpacity(parentOpacityProp, stops[stops.length - 1].color);\n }\n\n stops.forEach(stop => {\n gradient.addColorStop(stop.offset, this.addParentOpacity(parentOpacityProp, stop.color));\n });\n\n if (this.getAttribute('gradientTransform').hasValue()) {\n // render as transformed pattern on temporary canvas\n var {\n document\n } = this;\n var {\n MAX_VIRTUAL_PIXELS,\n viewPort\n } = document.screen;\n var [rootView] = viewPort.viewPorts;\n var rect = new RectElement(document, null);\n rect.attributes.x = new Property(document, 'x', -MAX_VIRTUAL_PIXELS / 3.0);\n rect.attributes.y = new Property(document, 'y', -MAX_VIRTUAL_PIXELS / 3.0);\n rect.attributes.width = new Property(document, 'width', MAX_VIRTUAL_PIXELS);\n rect.attributes.height = new Property(document, 'height', MAX_VIRTUAL_PIXELS);\n var group = new GElement(document, null);\n group.attributes.transform = new Property(document, 'transform', this.getAttribute('gradientTransform').getValue());\n group.children = [rect];\n var patternSvg = new SVGElement(document, null);\n patternSvg.attributes.x = new Property(document, 'x', 0);\n patternSvg.attributes.y = new Property(document, 'y', 0);\n patternSvg.attributes.width = new Property(document, 'width', rootView.width);\n patternSvg.attributes.height = new Property(document, 'height', rootView.height);\n patternSvg.children = [group];\n var patternCanvas = document.createCanvas(rootView.width, rootView.height);\n var patternCtx = patternCanvas.getContext('2d');\n patternCtx.fillStyle = gradient;\n patternSvg.render(patternCtx);\n return patternCtx.createPattern(patternCanvas, 'no-repeat');\n }\n\n return gradient;\n }\n\n inheritStopContainer(stopsContainer) {\n this.attributesToInherit.forEach(attributeToInherit => {\n if (!this.getAttribute(attributeToInherit).hasValue() && stopsContainer.getAttribute(attributeToInherit).hasValue()) {\n this.getAttribute(attributeToInherit, true).setValue(stopsContainer.getAttribute(attributeToInherit).getValue());\n }\n });\n }\n\n addParentOpacity(parentOpacityProp, color) {\n if (parentOpacityProp.hasValue()) {\n var colorProp = new Property(this.document, 'color', color);\n return colorProp.addOpacity(parentOpacityProp).getColor();\n }\n\n return color;\n }\n\n}\n\nclass LinearGradientElement extends GradientElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'linearGradient';\n this.attributesToInherit.push('x1', 'y1', 'x2', 'y2');\n }\n\n getGradient(ctx, element) {\n var isBoundingBoxUnits = this.getGradientUnits() === 'objectBoundingBox';\n var boundingBox = isBoundingBoxUnits ? element.getBoundingBox(ctx) : null;\n\n if (isBoundingBoxUnits && !boundingBox) {\n return null;\n }\n\n if (!this.getAttribute('x1').hasValue() && !this.getAttribute('y1').hasValue() && !this.getAttribute('x2').hasValue() && !this.getAttribute('y2').hasValue()) {\n this.getAttribute('x1', true).setValue(0);\n this.getAttribute('y1', true).setValue(0);\n this.getAttribute('x2', true).setValue(1);\n this.getAttribute('y2', true).setValue(0);\n }\n\n var x1 = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('x1').getNumber() : this.getAttribute('x1').getPixels('x');\n var y1 = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('y1').getNumber() : this.getAttribute('y1').getPixels('y');\n var x2 = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('x2').getNumber() : this.getAttribute('x2').getPixels('x');\n var y2 = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('y2').getNumber() : this.getAttribute('y2').getPixels('y');\n\n if (x1 === x2 && y1 === y2) {\n return null;\n }\n\n return ctx.createLinearGradient(x1, y1, x2, y2);\n }\n\n}\n\nclass RadialGradientElement extends GradientElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'radialGradient';\n this.attributesToInherit.push('cx', 'cy', 'r', 'fx', 'fy', 'fr');\n }\n\n getGradient(ctx, element) {\n var isBoundingBoxUnits = this.getGradientUnits() === 'objectBoundingBox';\n var boundingBox = element.getBoundingBox(ctx);\n\n if (isBoundingBoxUnits && !boundingBox) {\n return null;\n }\n\n if (!this.getAttribute('cx').hasValue()) {\n this.getAttribute('cx', true).setValue('50%');\n }\n\n if (!this.getAttribute('cy').hasValue()) {\n this.getAttribute('cy', true).setValue('50%');\n }\n\n if (!this.getAttribute('r').hasValue()) {\n this.getAttribute('r', true).setValue('50%');\n }\n\n var cx = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('cx').getNumber() : this.getAttribute('cx').getPixels('x');\n var cy = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('cy').getNumber() : this.getAttribute('cy').getPixels('y');\n var fx = cx;\n var fy = cy;\n\n if (this.getAttribute('fx').hasValue()) {\n fx = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('fx').getNumber() : this.getAttribute('fx').getPixels('x');\n }\n\n if (this.getAttribute('fy').hasValue()) {\n fy = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('fy').getNumber() : this.getAttribute('fy').getPixels('y');\n }\n\n var r = isBoundingBoxUnits ? (boundingBox.width + boundingBox.height) / 2.0 * this.getAttribute('r').getNumber() : this.getAttribute('r').getPixels();\n var fr = this.getAttribute('fr').getPixels();\n return ctx.createRadialGradient(fx, fy, fr, cx, cy, r);\n }\n\n}\n\nclass StopElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'stop';\n var offset = Math.max(0, Math.min(1, this.getAttribute('offset').getNumber()));\n var stopOpacity = this.getStyle('stop-opacity');\n var stopColor = this.getStyle('stop-color', true);\n\n if (stopColor.getString() === '') {\n stopColor.setValue('#000');\n }\n\n if (stopOpacity.hasValue()) {\n stopColor = stopColor.addOpacity(stopOpacity);\n }\n\n this.offset = offset;\n this.color = stopColor.getColor();\n }\n\n}\n\nclass AnimateElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'animate';\n this.duration = 0;\n this.initialValue = null;\n this.initialUnits = '';\n this.removed = false;\n this.frozen = false;\n document.screen.animations.push(this);\n this.begin = this.getAttribute('begin').getMilliseconds();\n this.maxDuration = this.begin + this.getAttribute('dur').getMilliseconds();\n this.from = this.getAttribute('from');\n this.to = this.getAttribute('to');\n this.values = new Property(document, 'values', null);\n var valuesAttr = this.getAttribute('values');\n\n if (valuesAttr.hasValue()) {\n this.values.setValue(valuesAttr.getString().split(';'));\n }\n }\n\n getProperty() {\n var attributeType = this.getAttribute('attributeType').getString();\n var attributeName = this.getAttribute('attributeName').getString();\n\n if (attributeType === 'CSS') {\n return this.parent.getStyle(attributeName, true);\n }\n\n return this.parent.getAttribute(attributeName, true);\n }\n\n calcValue() {\n var {\n initialUnits\n } = this;\n var {\n progress,\n from,\n to\n } = this.getProgress(); // tween value linearly\n\n var newValue = from.getNumber() + (to.getNumber() - from.getNumber()) * progress;\n\n if (initialUnits === '%') {\n newValue *= 100.0; // numValue() returns 0-1 whereas properties are 0-100\n }\n\n return \"\".concat(newValue).concat(initialUnits);\n }\n\n update(delta) {\n var {\n parent\n } = this;\n var prop = this.getProperty(); // set initial value\n\n if (!this.initialValue) {\n this.initialValue = prop.getString();\n this.initialUnits = prop.getUnits();\n } // if we're past the end time\n\n\n if (this.duration > this.maxDuration) {\n var fill = this.getAttribute('fill').getString('remove'); // loop for indefinitely repeating animations\n\n if (this.getAttribute('repeatCount').getString() === 'indefinite' || this.getAttribute('repeatDur').getString() === 'indefinite') {\n this.duration = 0;\n } else if (fill === 'freeze' && !this.frozen) {\n this.frozen = true;\n parent.animationFrozen = true;\n parent.animationFrozenValue = prop.getString();\n } else if (fill === 'remove' && !this.removed) {\n this.removed = true;\n prop.setValue(parent.animationFrozen ? parent.animationFrozenValue : this.initialValue);\n return true;\n }\n\n return false;\n }\n\n this.duration += delta; // if we're past the begin time\n\n var updated = false;\n\n if (this.begin < this.duration) {\n var newValue = this.calcValue(); // tween\n\n var typeAttr = this.getAttribute('type');\n\n if (typeAttr.hasValue()) {\n // for transform, etc.\n var type = typeAttr.getString();\n newValue = \"\".concat(type, \"(\").concat(newValue, \")\");\n }\n\n prop.setValue(newValue);\n updated = true;\n }\n\n return updated;\n }\n\n getProgress() {\n var {\n document,\n values\n } = this;\n var result = {\n progress: (this.duration - this.begin) / (this.maxDuration - this.begin)\n };\n\n if (values.hasValue()) {\n var p = result.progress * (values.getValue().length - 1);\n var lb = Math.floor(p);\n var ub = Math.ceil(p);\n result.from = new Property(document, 'from', parseFloat(values.getValue()[lb]));\n result.to = new Property(document, 'to', parseFloat(values.getValue()[ub]));\n result.progress = (p - lb) / (ub - lb);\n } else {\n result.from = this.from;\n result.to = this.to;\n }\n\n return result;\n }\n\n}\n\nclass AnimateColorElement extends AnimateElement {\n constructor() {\n super(...arguments);\n this.type = 'animateColor';\n }\n\n calcValue() {\n var {\n progress,\n from,\n to\n } = this.getProgress();\n var colorFrom = new RGBColor(from.getColor());\n var colorTo = new RGBColor(to.getColor());\n\n if (colorFrom.ok && colorTo.ok) {\n // tween color linearly\n var r = colorFrom.r + (colorTo.r - colorFrom.r) * progress;\n var g = colorFrom.g + (colorTo.g - colorFrom.g) * progress;\n var b = colorFrom.b + (colorTo.b - colorFrom.b) * progress; // ? alpha\n\n return \"rgb(\".concat(Math.floor(r), \", \").concat(Math.floor(g), \", \").concat(Math.floor(b), \")\");\n }\n\n return this.getAttribute('from').getColor();\n }\n\n}\n\nclass AnimateTransformElement extends AnimateElement {\n constructor() {\n super(...arguments);\n this.type = 'animateTransform';\n }\n\n calcValue() {\n var {\n progress,\n from,\n to\n } = this.getProgress(); // tween value linearly\n\n var transformFrom = toNumbers(from.getString());\n var transformTo = toNumbers(to.getString());\n var newValue = transformFrom.map((from, i) => {\n var to = transformTo[i];\n return from + (to - from) * progress;\n }).join(' ');\n return newValue;\n }\n\n}\n\nclass FontElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'font';\n this.glyphs = Object.create(null);\n this.horizAdvX = this.getAttribute('horiz-adv-x').getNumber();\n var {\n definitions\n } = document;\n var {\n children\n } = this;\n\n for (var child of children) {\n switch (child.type) {\n case 'font-face':\n {\n this.fontFace = child;\n var fontFamilyStyle = child.getStyle('font-family');\n\n if (fontFamilyStyle.hasValue()) {\n definitions[fontFamilyStyle.getString()] = this;\n }\n\n break;\n }\n\n case 'missing-glyph':\n this.missingGlyph = child;\n break;\n\n case 'glyph':\n {\n var glyph = child;\n\n if (glyph.arabicForm) {\n this.isRTL = true;\n this.isArabic = true;\n\n if (typeof this.glyphs[glyph.unicode] === 'undefined') {\n this.glyphs[glyph.unicode] = Object.create(null);\n }\n\n this.glyphs[glyph.unicode][glyph.arabicForm] = glyph;\n } else {\n this.glyphs[glyph.unicode] = glyph;\n }\n\n break;\n }\n }\n }\n }\n\n render() {// NO RENDER\n }\n\n}\n\nclass FontFaceElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'font-face';\n this.ascent = this.getAttribute('ascent').getNumber();\n this.descent = this.getAttribute('descent').getNumber();\n this.unitsPerEm = this.getAttribute('units-per-em').getNumber();\n }\n\n}\n\nclass MissingGlyphElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'missing-glyph';\n this.horizAdvX = 0;\n }\n\n}\n\nclass TRefElement extends TextElement {\n constructor() {\n super(...arguments);\n this.type = 'tref';\n }\n\n getText() {\n var element = this.getHrefAttribute().getDefinition();\n\n if (element) {\n var firstChild = element.children[0];\n\n if (firstChild) {\n return firstChild.getText();\n }\n }\n\n return '';\n }\n\n}\n\nclass AElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'a';\n var {\n childNodes\n } = node;\n var firstChild = childNodes[0];\n var hasText = childNodes.length > 0 && Array.from(childNodes).every(node => node.nodeType === 3);\n this.hasText = hasText;\n this.text = hasText ? this.getTextFromNode(firstChild) : '';\n }\n\n getText() {\n return this.text;\n }\n\n renderChildren(ctx) {\n if (this.hasText) {\n // render as text element\n super.renderChildren(ctx);\n var {\n document,\n x,\n y\n } = this;\n var {\n mouse\n } = document.screen;\n var fontSize = new Property(document, 'fontSize', Font.parse(document.ctx.font).fontSize); // Do not calc bounding box if mouse is not working.\n\n if (mouse.isWorking()) {\n mouse.checkBoundingBox(this, new BoundingBox(x, y - fontSize.getPixels('y'), x + this.measureText(ctx), y));\n }\n } else if (this.children.length > 0) {\n // render as temporary group\n var g = new GElement(this.document, null);\n g.children = this.children;\n g.parent = this;\n g.render(ctx);\n }\n }\n\n onClick() {\n var {\n window\n } = this.document;\n\n if (window) {\n window.open(this.getHrefAttribute().getString());\n }\n }\n\n onMouseMove() {\n var ctx = this.document.ctx;\n ctx.canvas.style.cursor = 'pointer';\n }\n\n}\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nclass TextPathElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'textPath';\n this.textWidth = 0;\n this.textHeight = 0;\n this.pathLength = -1;\n this.glyphInfo = null;\n this.letterSpacingCache = [];\n this.measuresCache = new Map([['', 0]]);\n var pathElement = this.getHrefAttribute().getDefinition();\n this.text = this.getTextFromNode();\n this.dataArray = this.parsePathData(pathElement);\n }\n\n getText() {\n return this.text;\n }\n\n path(ctx) {\n var {\n dataArray\n } = this;\n\n if (ctx) {\n ctx.beginPath();\n }\n\n dataArray.forEach(_ref => {\n var {\n type,\n points\n } = _ref;\n\n switch (type) {\n case PathParser.LINE_TO:\n if (ctx) {\n ctx.lineTo(points[0], points[1]);\n }\n\n break;\n\n case PathParser.MOVE_TO:\n if (ctx) {\n ctx.moveTo(points[0], points[1]);\n }\n\n break;\n\n case PathParser.CURVE_TO:\n if (ctx) {\n ctx.bezierCurveTo(points[0], points[1], points[2], points[3], points[4], points[5]);\n }\n\n break;\n\n case PathParser.QUAD_TO:\n if (ctx) {\n ctx.quadraticCurveTo(points[0], points[1], points[2], points[3]);\n }\n\n break;\n\n case PathParser.ARC:\n {\n var [cx, cy, rx, ry, theta, dTheta, psi, fs] = points;\n var r = rx > ry ? rx : ry;\n var scaleX = rx > ry ? 1 : rx / ry;\n var scaleY = rx > ry ? ry / rx : 1;\n\n if (ctx) {\n ctx.translate(cx, cy);\n ctx.rotate(psi);\n ctx.scale(scaleX, scaleY);\n ctx.arc(0, 0, r, theta, theta + dTheta, Boolean(1 - fs));\n ctx.scale(1 / scaleX, 1 / scaleY);\n ctx.rotate(-psi);\n ctx.translate(-cx, -cy);\n }\n\n break;\n }\n\n case PathParser.CLOSE_PATH:\n if (ctx) {\n ctx.closePath();\n }\n\n break;\n }\n });\n }\n\n renderChildren(ctx) {\n this.setTextData(ctx);\n ctx.save();\n var textDecoration = this.parent.getStyle('text-decoration').getString();\n var fontSize = this.getFontSize();\n var {\n glyphInfo\n } = this;\n var fill = ctx.fillStyle;\n\n if (textDecoration === 'underline') {\n ctx.beginPath();\n }\n\n glyphInfo.forEach((glyph, i) => {\n var {\n p0,\n p1,\n rotation,\n text: partialText\n } = glyph;\n ctx.save();\n ctx.translate(p0.x, p0.y);\n ctx.rotate(rotation);\n\n if (ctx.fillStyle) {\n ctx.fillText(partialText, 0, 0);\n }\n\n if (ctx.strokeStyle) {\n ctx.strokeText(partialText, 0, 0);\n }\n\n ctx.restore();\n\n if (textDecoration === 'underline') {\n if (i === 0) {\n ctx.moveTo(p0.x, p0.y + fontSize / 8);\n }\n\n ctx.lineTo(p1.x, p1.y + fontSize / 5);\n } // // To assist with debugging visually, uncomment following\n //\n // ctx.beginPath();\n // if (i % 2)\n // \tctx.strokeStyle = 'red';\n // else\n // \tctx.strokeStyle = 'green';\n // ctx.moveTo(p0.x, p0.y);\n // ctx.lineTo(p1.x, p1.y);\n // ctx.stroke();\n // ctx.closePath();\n\n });\n\n if (textDecoration === 'underline') {\n ctx.lineWidth = fontSize / 20;\n ctx.strokeStyle = fill;\n ctx.stroke();\n ctx.closePath();\n }\n\n ctx.restore();\n }\n\n getLetterSpacingAt() {\n var idx = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n return this.letterSpacingCache[idx] || 0;\n }\n\n findSegmentToFitChar(ctx, anchor, textFullWidth, fullPathWidth, spacesNumber, inputOffset, dy, c, charI) {\n var offset = inputOffset;\n var glyphWidth = this.measureText(ctx, c);\n\n if (c === ' ' && anchor === 'justify' && textFullWidth < fullPathWidth) {\n glyphWidth += (fullPathWidth - textFullWidth) / spacesNumber;\n }\n\n if (charI > -1) {\n offset += this.getLetterSpacingAt(charI);\n }\n\n var splineStep = this.textHeight / 20;\n var p0 = this.getEquidistantPointOnPath(offset, splineStep, 0);\n var p1 = this.getEquidistantPointOnPath(offset + glyphWidth, splineStep, 0);\n var segment = {\n p0,\n p1\n };\n var rotation = p0 && p1 ? Math.atan2(p1.y - p0.y, p1.x - p0.x) : 0;\n\n if (dy) {\n var dyX = Math.cos(Math.PI / 2 + rotation) * dy;\n var dyY = Math.cos(-rotation) * dy;\n segment.p0 = _objectSpread$2(_objectSpread$2({}, p0), {}, {\n x: p0.x + dyX,\n y: p0.y + dyY\n });\n segment.p1 = _objectSpread$2(_objectSpread$2({}, p1), {}, {\n x: p1.x + dyX,\n y: p1.y + dyY\n });\n }\n\n offset += glyphWidth;\n return {\n offset,\n segment,\n rotation\n };\n }\n\n measureText(ctx, text) {\n var {\n measuresCache\n } = this;\n var targetText = text || this.getText();\n\n if (measuresCache.has(targetText)) {\n return measuresCache.get(targetText);\n }\n\n var measure = this.measureTargetText(ctx, targetText);\n measuresCache.set(targetText, measure);\n return measure;\n } // This method supposes what all custom fonts already loaded.\n // If some font will be loaded after this method call, <textPath> will not be rendered correctly.\n // You need to call this method manually to update glyphs cache.\n\n\n setTextData(ctx) {\n if (this.glyphInfo) {\n return;\n }\n\n var renderText = this.getText();\n var chars = renderText.split('');\n var spacesNumber = renderText.split(' ').length - 1;\n var dx = this.parent.getAttribute('dx').split().map(_ => _.getPixels('x'));\n var dy = this.parent.getAttribute('dy').getPixels('y');\n var anchor = this.parent.getStyle('text-anchor').getString('start');\n var thisSpacing = this.getStyle('letter-spacing');\n var parentSpacing = this.parent.getStyle('letter-spacing');\n var letterSpacing = 0;\n\n if (!thisSpacing.hasValue() || thisSpacing.getValue() === 'inherit') {\n letterSpacing = parentSpacing.getPixels();\n } else if (thisSpacing.hasValue()) {\n if (thisSpacing.getValue() !== 'initial' && thisSpacing.getValue() !== 'unset') {\n letterSpacing = thisSpacing.getPixels();\n }\n } // fill letter-spacing cache\n\n\n var letterSpacingCache = [];\n var textLen = renderText.length;\n this.letterSpacingCache = letterSpacingCache;\n\n for (var i = 0; i < textLen; i++) {\n letterSpacingCache.push(typeof dx[i] !== 'undefined' ? dx[i] : letterSpacing);\n }\n\n var dxSum = letterSpacingCache.reduce((acc, cur, i) => i === 0 ? 0 : acc + cur || 0, 0);\n var textWidth = this.measureText(ctx);\n var textFullWidth = Math.max(textWidth + dxSum, 0);\n this.textWidth = textWidth;\n this.textHeight = this.getFontSize();\n this.glyphInfo = [];\n var fullPathWidth = this.getPathLength();\n var startOffset = this.getStyle('startOffset').getNumber(0) * fullPathWidth;\n var offset = 0;\n\n if (anchor === 'middle' || anchor === 'center') {\n offset = -textFullWidth / 2;\n }\n\n if (anchor === 'end' || anchor === 'right') {\n offset = -textFullWidth;\n }\n\n offset += startOffset;\n chars.forEach((char, i) => {\n // Find such segment what distance between p0 and p1 is approx. width of glyph\n var {\n offset: nextOffset,\n segment,\n rotation\n } = this.findSegmentToFitChar(ctx, anchor, textFullWidth, fullPathWidth, spacesNumber, offset, dy, char, i);\n offset = nextOffset;\n\n if (!segment.p0 || !segment.p1) {\n return;\n } // const width = this.getLineLength(\n // \tsegment.p0.x,\n // \tsegment.p0.y,\n // \tsegment.p1.x,\n // \tsegment.p1.y\n // );\n // Note: Since glyphs are rendered one at a time, any kerning pair data built into the font will not be used.\n // Can foresee having a rough pair table built in that the developer can override as needed.\n // Or use \"dx\" attribute of the <text> node as a naive replacement\n // const kern = 0;\n // placeholder for future implementation\n // const midpoint = this.getPointOnLine(\n // \tkern + width / 2.0,\n // \tsegment.p0.x, segment.p0.y, segment.p1.x, segment.p1.y\n // );\n\n\n this.glyphInfo.push({\n // transposeX: midpoint.x,\n // transposeY: midpoint.y,\n text: chars[i],\n p0: segment.p0,\n p1: segment.p1,\n rotation\n });\n });\n }\n\n parsePathData(path) {\n this.pathLength = -1; // reset path length\n\n if (!path) {\n return [];\n }\n\n var pathCommands = [];\n var {\n pathParser\n } = path;\n pathParser.reset(); // convert l, H, h, V, and v to L\n\n while (!pathParser.isEnd()) {\n var {\n current\n } = pathParser;\n var startX = current ? current.x : 0;\n var startY = current ? current.y : 0;\n var command = pathParser.next();\n var nextCommandType = command.type;\n var points = [];\n\n switch (command.type) {\n case PathParser.MOVE_TO:\n this.pathM(pathParser, points);\n break;\n\n case PathParser.LINE_TO:\n nextCommandType = this.pathL(pathParser, points);\n break;\n\n case PathParser.HORIZ_LINE_TO:\n nextCommandType = this.pathH(pathParser, points);\n break;\n\n case PathParser.VERT_LINE_TO:\n nextCommandType = this.pathV(pathParser, points);\n break;\n\n case PathParser.CURVE_TO:\n this.pathC(pathParser, points);\n break;\n\n case PathParser.SMOOTH_CURVE_TO:\n nextCommandType = this.pathS(pathParser, points);\n break;\n\n case PathParser.QUAD_TO:\n this.pathQ(pathParser, points);\n break;\n\n case PathParser.SMOOTH_QUAD_TO:\n nextCommandType = this.pathT(pathParser, points);\n break;\n\n case PathParser.ARC:\n points = this.pathA(pathParser);\n break;\n\n case PathParser.CLOSE_PATH:\n PathElement.pathZ(pathParser);\n break;\n }\n\n if (command.type !== PathParser.CLOSE_PATH) {\n pathCommands.push({\n type: nextCommandType,\n points,\n start: {\n x: startX,\n y: startY\n },\n pathLength: this.calcLength(startX, startY, nextCommandType, points)\n });\n } else {\n pathCommands.push({\n type: PathParser.CLOSE_PATH,\n points: [],\n pathLength: 0\n });\n }\n }\n\n return pathCommands;\n }\n\n pathM(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathM(pathParser).point;\n points.push(x, y);\n }\n\n pathL(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathL(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathH(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathH(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathV(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathV(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathC(pathParser, points) {\n var {\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathC(pathParser);\n points.push(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n\n pathS(pathParser, points) {\n var {\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathS(pathParser);\n points.push(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n return PathParser.CURVE_TO;\n }\n\n pathQ(pathParser, points) {\n var {\n controlPoint,\n currentPoint\n } = PathElement.pathQ(pathParser);\n points.push(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n\n pathT(pathParser, points) {\n var {\n controlPoint,\n currentPoint\n } = PathElement.pathT(pathParser);\n points.push(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n return PathParser.QUAD_TO;\n }\n\n pathA(pathParser) {\n var {\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n } = PathElement.pathA(pathParser);\n\n if (sweepFlag === 0 && ad > 0) {\n ad -= 2 * Math.PI;\n }\n\n if (sweepFlag === 1 && ad < 0) {\n ad += 2 * Math.PI;\n }\n\n return [centp.x, centp.y, rX, rY, a1, ad, xAxisRotation, sweepFlag];\n }\n\n calcLength(x, y, commandType, points) {\n var len = 0;\n var p1 = null;\n var p2 = null;\n var t = 0;\n\n switch (commandType) {\n case PathParser.LINE_TO:\n return this.getLineLength(x, y, points[0], points[1]);\n\n case PathParser.CURVE_TO:\n // Approximates by breaking curve into 100 line segments\n len = 0.0;\n p1 = this.getPointOnCubicBezier(0, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);\n\n for (t = 0.01; t <= 1; t += 0.01) {\n p2 = this.getPointOnCubicBezier(t, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n\n return len;\n\n case PathParser.QUAD_TO:\n // Approximates by breaking curve into 100 line segments\n len = 0.0;\n p1 = this.getPointOnQuadraticBezier(0, x, y, points[0], points[1], points[2], points[3]);\n\n for (t = 0.01; t <= 1; t += 0.01) {\n p2 = this.getPointOnQuadraticBezier(t, x, y, points[0], points[1], points[2], points[3]);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n\n return len;\n\n case PathParser.ARC:\n {\n // Approximates by breaking curve into line segments\n len = 0.0;\n var start = points[4]; // 4 = theta\n\n var dTheta = points[5]; // 5 = dTheta\n\n var end = points[4] + dTheta;\n var inc = Math.PI / 180.0; // 1 degree resolution\n\n if (Math.abs(start - end) < inc) {\n inc = Math.abs(start - end);\n } // Note: for purpose of calculating arc length, not going to worry about rotating X-axis by angle psi\n\n\n p1 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], start, 0);\n\n if (dTheta < 0) {\n // clockwise\n for (t = start - inc; t > end; t -= inc) {\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n } else {\n // counter-clockwise\n for (t = start + inc; t < end; t += inc) {\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n }\n\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], end, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n return len;\n }\n }\n\n return 0;\n }\n\n getPointOnLine(dist, p1x, p1y, p2x, p2y) {\n var fromX = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : p1x;\n var fromY = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : p1y;\n var m = (p2y - p1y) / (p2x - p1x + PSEUDO_ZERO);\n var run = Math.sqrt(dist * dist / (1 + m * m));\n\n if (p2x < p1x) {\n run *= -1;\n }\n\n var rise = m * run;\n var pt = null;\n\n if (p2x === p1x) {\n // vertical line\n pt = {\n x: fromX,\n y: fromY + rise\n };\n } else if ((fromY - p1y) / (fromX - p1x + PSEUDO_ZERO) === m) {\n pt = {\n x: fromX + run,\n y: fromY + rise\n };\n } else {\n var ix = 0;\n var iy = 0;\n var len = this.getLineLength(p1x, p1y, p2x, p2y);\n\n if (len < PSEUDO_ZERO) {\n return null;\n }\n\n var u = (fromX - p1x) * (p2x - p1x) + (fromY - p1y) * (p2y - p1y);\n u /= len * len;\n ix = p1x + u * (p2x - p1x);\n iy = p1y + u * (p2y - p1y);\n var pRise = this.getLineLength(fromX, fromY, ix, iy);\n var pRun = Math.sqrt(dist * dist - pRise * pRise);\n run = Math.sqrt(pRun * pRun / (1 + m * m));\n\n if (p2x < p1x) {\n run *= -1;\n }\n\n rise = m * run;\n pt = {\n x: ix + run,\n y: iy + rise\n };\n }\n\n return pt;\n }\n\n getPointOnPath(distance) {\n var fullLen = this.getPathLength();\n var cumulativePathLength = 0;\n var p = null;\n\n if (distance < -0.00005 || distance - 0.00005 > fullLen) {\n return null;\n }\n\n var {\n dataArray\n } = this;\n\n for (var command of dataArray) {\n if (command && (command.pathLength < 0.00005 || cumulativePathLength + command.pathLength + 0.00005 < distance)) {\n cumulativePathLength += command.pathLength;\n continue;\n }\n\n var delta = distance - cumulativePathLength;\n var currentT = 0;\n\n switch (command.type) {\n case PathParser.LINE_TO:\n p = this.getPointOnLine(delta, command.start.x, command.start.y, command.points[0], command.points[1], command.start.x, command.start.y);\n break;\n\n case PathParser.ARC:\n {\n var start = command.points[4]; // 4 = theta\n\n var dTheta = command.points[5]; // 5 = dTheta\n\n var end = command.points[4] + dTheta;\n currentT = start + delta / command.pathLength * dTheta;\n\n if (dTheta < 0 && currentT < end || dTheta >= 0 && currentT > end) {\n break;\n }\n\n p = this.getPointOnEllipticalArc(command.points[0], command.points[1], command.points[2], command.points[3], currentT, command.points[6]);\n break;\n }\n\n case PathParser.CURVE_TO:\n currentT = delta / command.pathLength;\n\n if (currentT > 1) {\n currentT = 1;\n }\n\n p = this.getPointOnCubicBezier(currentT, command.start.x, command.start.y, command.points[0], command.points[1], command.points[2], command.points[3], command.points[4], command.points[5]);\n break;\n\n case PathParser.QUAD_TO:\n currentT = delta / command.pathLength;\n\n if (currentT > 1) {\n currentT = 1;\n }\n\n p = this.getPointOnQuadraticBezier(currentT, command.start.x, command.start.y, command.points[0], command.points[1], command.points[2], command.points[3]);\n break;\n }\n\n if (p) {\n return p;\n }\n\n break;\n }\n\n return null;\n }\n\n getLineLength(x1, y1, x2, y2) {\n return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));\n }\n\n getPathLength() {\n if (this.pathLength === -1) {\n this.pathLength = this.dataArray.reduce((length, command) => command.pathLength > 0 ? length + command.pathLength : length, 0);\n }\n\n return this.pathLength;\n }\n\n getPointOnCubicBezier(pct, p1x, p1y, p2x, p2y, p3x, p3y, p4x, p4y) {\n var x = p4x * CB1(pct) + p3x * CB2(pct) + p2x * CB3(pct) + p1x * CB4(pct);\n var y = p4y * CB1(pct) + p3y * CB2(pct) + p2y * CB3(pct) + p1y * CB4(pct);\n return {\n x,\n y\n };\n }\n\n getPointOnQuadraticBezier(pct, p1x, p1y, p2x, p2y, p3x, p3y) {\n var x = p3x * QB1(pct) + p2x * QB2(pct) + p1x * QB3(pct);\n var y = p3y * QB1(pct) + p2y * QB2(pct) + p1y * QB3(pct);\n return {\n x,\n y\n };\n }\n\n getPointOnEllipticalArc(cx, cy, rx, ry, theta, psi) {\n var cosPsi = Math.cos(psi);\n var sinPsi = Math.sin(psi);\n var pt = {\n x: rx * Math.cos(theta),\n y: ry * Math.sin(theta)\n };\n return {\n x: cx + (pt.x * cosPsi - pt.y * sinPsi),\n y: cy + (pt.x * sinPsi + pt.y * cosPsi)\n };\n } // TODO need some optimisations. possibly build cache only for curved segments?\n\n\n buildEquidistantCache(inputStep, inputPrecision) {\n var fullLen = this.getPathLength();\n var precision = inputPrecision || 0.25; // accuracy vs performance\n\n var step = inputStep || fullLen / 100;\n\n if (!this.equidistantCache || this.equidistantCache.step !== step || this.equidistantCache.precision !== precision) {\n // Prepare cache\n this.equidistantCache = {\n step,\n precision,\n points: []\n }; // Calculate points\n\n var s = 0;\n\n for (var l = 0; l <= fullLen; l += precision) {\n var p0 = this.getPointOnPath(l);\n var p1 = this.getPointOnPath(l + precision);\n\n if (!p0 || !p1) {\n continue;\n }\n\n s += this.getLineLength(p0.x, p0.y, p1.x, p1.y);\n\n if (s >= step) {\n this.equidistantCache.points.push({\n x: p0.x,\n y: p0.y,\n distance: l\n });\n s -= step;\n }\n }\n }\n }\n\n getEquidistantPointOnPath(targetDistance, step, precision) {\n this.buildEquidistantCache(step, precision);\n\n if (targetDistance < 0 || targetDistance - this.getPathLength() > 0.00005) {\n return null;\n }\n\n var idx = Math.round(targetDistance / this.getPathLength() * (this.equidistantCache.points.length - 1));\n return this.equidistantCache.points[idx] || null;\n }\n\n}\n\nvar dataUriRegex = /^\\s*data:(([^/,;]+\\/[^/,;]+)(?:;([^,;=]+=[^,;=]+))?)?(?:;(base64))?,(.*)$/i;\nclass ImageElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'image';\n this.loaded = false;\n var href = this.getHrefAttribute().getString();\n\n if (!href) {\n return;\n }\n\n var isSvg = href.endsWith('.svg') || /^\\s*data:image\\/svg\\+xml/i.test(href);\n document.images.push(this);\n\n if (!isSvg) {\n void this.loadImage(href);\n } else {\n void this.loadSvg(href);\n }\n\n this.isSvg = isSvg;\n }\n\n loadImage(href) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n try {\n var image = yield _this.document.createImage(href);\n _this.image = image;\n } catch (err) {\n console.error(\"Error while loading image \\\"\".concat(href, \"\\\":\"), err);\n }\n\n _this.loaded = true;\n })();\n }\n\n loadSvg(href) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var match = dataUriRegex.exec(href);\n\n if (match) {\n var data = match[5];\n\n if (match[4] === 'base64') {\n _this2.image = atob(data);\n } else {\n _this2.image = decodeURIComponent(data);\n }\n } else {\n try {\n var response = yield _this2.document.fetch(href);\n var svg = yield response.text();\n _this2.image = svg;\n } catch (err) {\n console.error(\"Error while loading image \\\"\".concat(href, \"\\\":\"), err);\n }\n }\n\n _this2.loaded = true;\n })();\n }\n\n renderChildren(ctx) {\n var {\n document,\n image,\n loaded\n } = this;\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n\n if (!loaded || !image || !width || !height) {\n return;\n }\n\n ctx.save();\n ctx.translate(x, y);\n\n if (this.isSvg) {\n var subDocument = document.canvg.forkString(ctx, this.image, {\n ignoreMouse: true,\n ignoreAnimation: true,\n ignoreDimensions: true,\n ignoreClear: true,\n offsetX: 0,\n offsetY: 0,\n scaleWidth: width,\n scaleHeight: height\n });\n subDocument.document.documentElement.parent = this;\n void subDocument.render();\n } else {\n var _image = this.image;\n document.setViewBox({\n ctx,\n aspectRatio: this.getAttribute('preserveAspectRatio').getString(),\n width,\n desiredWidth: _image.width,\n height,\n desiredHeight: _image.height\n });\n\n if (this.loaded) {\n if (typeof _image.complete === 'undefined' || _image.complete) {\n ctx.drawImage(_image, 0, 0);\n }\n }\n }\n\n ctx.restore();\n }\n\n getBoundingBox() {\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n return new BoundingBox(x, y, x + width, y + height);\n }\n\n}\n\nclass SymbolElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'symbol';\n }\n\n render(_) {// NO RENDER\n }\n\n}\n\nclass SVGFontLoader {\n constructor(document) {\n this.document = document;\n this.loaded = false;\n document.fonts.push(this);\n }\n\n load(fontFamily, url) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n try {\n var {\n document\n } = _this;\n var svgDocument = yield document.canvg.parser.load(url);\n var fonts = svgDocument.getElementsByTagName('font');\n Array.from(fonts).forEach(fontNode => {\n var font = document.createElement(fontNode);\n document.definitions[fontFamily] = font;\n });\n } catch (err) {\n console.error(\"Error while loading font \\\"\".concat(url, \"\\\":\"), err);\n }\n\n _this.loaded = true;\n })();\n }\n\n}\n\nclass StyleElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'style';\n var css = compressSpaces(Array.from(node.childNodes) // NEED TEST\n .map(_ => _.textContent).join('').replace(/(\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*+\\/)|(^[\\s]*\\/\\/.*)/gm, '') // remove comments\n .replace(/@import.*;/g, '') // remove imports\n );\n var cssDefs = css.split('}');\n cssDefs.forEach(_ => {\n var def = _.trim();\n\n if (!def) {\n return;\n }\n\n var cssParts = def.split('{');\n var cssClasses = cssParts[0].split(',');\n var cssProps = cssParts[1].split(';');\n cssClasses.forEach(_ => {\n var cssClass = _.trim();\n\n if (!cssClass) {\n return;\n }\n\n var props = document.styles[cssClass] || {};\n cssProps.forEach(cssProp => {\n var prop = cssProp.indexOf(':');\n var name = cssProp.substr(0, prop).trim();\n var value = cssProp.substr(prop + 1, cssProp.length - prop).trim();\n\n if (name && value) {\n props[name] = new Property(document, name, value);\n }\n });\n document.styles[cssClass] = props;\n document.stylesSpecificity[cssClass] = getSelectorSpecificity(cssClass);\n\n if (cssClass === '@font-face') {\n // && !nodeEnv\n var fontFamily = props['font-family'].getString().replace(/\"|'/g, '');\n var srcs = props.src.getString().split(',');\n srcs.forEach(src => {\n if (src.indexOf('format(\"svg\")') > 0) {\n var url = parseExternalUrl(src);\n\n if (url) {\n void new SVGFontLoader(document).load(fontFamily, url);\n }\n }\n });\n }\n });\n });\n }\n\n}\nStyleElement.parseExternalUrl = parseExternalUrl;\n\nclass UseElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'use';\n }\n\n setContext(ctx) {\n super.setContext(ctx);\n var xAttr = this.getAttribute('x');\n var yAttr = this.getAttribute('y');\n\n if (xAttr.hasValue()) {\n ctx.translate(xAttr.getPixels('x'), 0);\n }\n\n if (yAttr.hasValue()) {\n ctx.translate(0, yAttr.getPixels('y'));\n }\n }\n\n path(ctx) {\n var {\n element\n } = this;\n\n if (element) {\n element.path(ctx);\n }\n }\n\n renderChildren(ctx) {\n var {\n document,\n element\n } = this;\n\n if (element) {\n var tempSvg = element;\n\n if (element.type === 'symbol') {\n // render me using a temporary svg element in symbol cases (http://www.w3.org/TR/SVG/struct.html#UseElement)\n tempSvg = new SVGElement(document, null);\n tempSvg.attributes.viewBox = new Property(document, 'viewBox', element.getAttribute('viewBox').getString());\n tempSvg.attributes.preserveAspectRatio = new Property(document, 'preserveAspectRatio', element.getAttribute('preserveAspectRatio').getString());\n tempSvg.attributes.overflow = new Property(document, 'overflow', element.getAttribute('overflow').getString());\n tempSvg.children = element.children; // element is still the parent of the children\n\n element.styles.opacity = new Property(document, 'opacity', this.calculateOpacity());\n }\n\n if (tempSvg.type === 'svg') {\n var widthStyle = this.getStyle('width', false, true);\n var heightStyle = this.getStyle('height', false, true); // if symbol or svg, inherit width/height from me\n\n if (widthStyle.hasValue()) {\n tempSvg.attributes.width = new Property(document, 'width', widthStyle.getString());\n }\n\n if (heightStyle.hasValue()) {\n tempSvg.attributes.height = new Property(document, 'height', heightStyle.getString());\n }\n }\n\n var oldParent = tempSvg.parent;\n tempSvg.parent = this;\n tempSvg.render(ctx);\n tempSvg.parent = oldParent;\n }\n }\n\n getBoundingBox(ctx) {\n var {\n element\n } = this;\n\n if (element) {\n return element.getBoundingBox(ctx);\n }\n\n return null;\n }\n\n elementTransform() {\n var {\n document,\n element\n } = this;\n return Transform.fromElement(document, element);\n }\n\n get element() {\n if (!this.cachedElement) {\n this.cachedElement = this.getHrefAttribute().getDefinition();\n }\n\n return this.cachedElement;\n }\n\n}\n\nfunction imGet(img, x, y, width, _height, rgba) {\n return img[y * width * 4 + x * 4 + rgba];\n}\n\nfunction imSet(img, x, y, width, _height, rgba, val) {\n img[y * width * 4 + x * 4 + rgba] = val;\n}\n\nfunction m(matrix, i, v) {\n var mi = matrix[i];\n return mi * v;\n}\n\nfunction c(a, m1, m2, m3) {\n return m1 + Math.cos(a) * m2 + Math.sin(a) * m3;\n}\n\nclass FeColorMatrixElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feColorMatrix';\n var matrix = toNumbers(this.getAttribute('values').getString());\n\n switch (this.getAttribute('type').getString('matrix')) {\n // http://www.w3.org/TR/SVG/filters.html#feColorMatrixElement\n case 'saturate':\n {\n var s = matrix[0];\n /* eslint-disable array-element-newline */\n\n matrix = [0.213 + 0.787 * s, 0.715 - 0.715 * s, 0.072 - 0.072 * s, 0, 0, 0.213 - 0.213 * s, 0.715 + 0.285 * s, 0.072 - 0.072 * s, 0, 0, 0.213 - 0.213 * s, 0.715 - 0.715 * s, 0.072 + 0.928 * s, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n case 'hueRotate':\n {\n var a = matrix[0] * Math.PI / 180.0;\n /* eslint-disable array-element-newline */\n\n matrix = [c(a, 0.213, 0.787, -0.213), c(a, 0.715, -0.715, -0.715), c(a, 0.072, -0.072, 0.928), 0, 0, c(a, 0.213, -0.213, 0.143), c(a, 0.715, 0.285, 0.140), c(a, 0.072, -0.072, -0.283), 0, 0, c(a, 0.213, -0.213, -0.787), c(a, 0.715, -0.715, 0.715), c(a, 0.072, 0.928, 0.072), 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n case 'luminanceToAlpha':\n /* eslint-disable array-element-newline */\n matrix = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2125, 0.7154, 0.0721, 0, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n this.matrix = matrix;\n this.includeOpacity = this.getAttribute('includeOpacity').hasValue();\n }\n\n apply(ctx, _x, _y, width, height) {\n // assuming x==0 && y==0 for now\n var {\n includeOpacity,\n matrix\n } = this;\n var srcData = ctx.getImageData(0, 0, width, height);\n\n for (var y = 0; y < height; y++) {\n for (var x = 0; x < width; x++) {\n var r = imGet(srcData.data, x, y, width, height, 0);\n var g = imGet(srcData.data, x, y, width, height, 1);\n var b = imGet(srcData.data, x, y, width, height, 2);\n var a = imGet(srcData.data, x, y, width, height, 3);\n var nr = m(matrix, 0, r) + m(matrix, 1, g) + m(matrix, 2, b) + m(matrix, 3, a) + m(matrix, 4, 1);\n var ng = m(matrix, 5, r) + m(matrix, 6, g) + m(matrix, 7, b) + m(matrix, 8, a) + m(matrix, 9, 1);\n var nb = m(matrix, 10, r) + m(matrix, 11, g) + m(matrix, 12, b) + m(matrix, 13, a) + m(matrix, 14, 1);\n var na = m(matrix, 15, r) + m(matrix, 16, g) + m(matrix, 17, b) + m(matrix, 18, a) + m(matrix, 19, 1);\n\n if (includeOpacity) {\n nr = 0;\n ng = 0;\n nb = 0;\n na *= a / 255;\n }\n\n imSet(srcData.data, x, y, width, height, 0, nr);\n imSet(srcData.data, x, y, width, height, 1, ng);\n imSet(srcData.data, x, y, width, height, 2, nb);\n imSet(srcData.data, x, y, width, height, 3, na);\n }\n }\n\n ctx.clearRect(0, 0, width, height);\n ctx.putImageData(srcData, 0, 0);\n }\n\n}\n\nclass MaskElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'mask';\n }\n\n apply(ctx, element) {\n var {\n document\n } = this; // render as temp svg\n\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n\n if (!width && !height) {\n var boundingBox = new BoundingBox();\n this.children.forEach(child => {\n boundingBox.addBoundingBox(child.getBoundingBox(ctx));\n });\n x = Math.floor(boundingBox.x1);\n y = Math.floor(boundingBox.y1);\n width = Math.floor(boundingBox.width);\n height = Math.floor(boundingBox.height);\n }\n\n var ignoredStyles = this.removeStyles(element, MaskElement.ignoreStyles);\n var maskCanvas = document.createCanvas(x + width, y + height);\n var maskCtx = maskCanvas.getContext('2d');\n document.screen.setDefaults(maskCtx);\n this.renderChildren(maskCtx); // convert mask to alpha with a fake node\n // TODO: refactor out apply from feColorMatrix\n\n new FeColorMatrixElement(document, {\n nodeType: 1,\n childNodes: [],\n attributes: [{\n nodeName: 'type',\n value: 'luminanceToAlpha'\n }, {\n nodeName: 'includeOpacity',\n value: 'true'\n }]\n }).apply(maskCtx, 0, 0, x + width, y + height);\n var tmpCanvas = document.createCanvas(x + width, y + height);\n var tmpCtx = tmpCanvas.getContext('2d');\n document.screen.setDefaults(tmpCtx);\n element.render(tmpCtx);\n tmpCtx.globalCompositeOperation = 'destination-in';\n tmpCtx.fillStyle = maskCtx.createPattern(maskCanvas, 'no-repeat');\n tmpCtx.fillRect(0, 0, x + width, y + height);\n ctx.fillStyle = tmpCtx.createPattern(tmpCanvas, 'no-repeat');\n ctx.fillRect(0, 0, x + width, y + height); // reassign mask\n\n this.restoreStyles(element, ignoredStyles);\n }\n\n render(_) {// NO RENDER\n }\n\n}\nMaskElement.ignoreStyles = ['mask', 'transform', 'clip-path'];\n\nvar noop = () => {// NOOP\n};\n\nclass ClipPathElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'clipPath';\n }\n\n apply(ctx) {\n var {\n document\n } = this;\n var contextProto = Reflect.getPrototypeOf(ctx);\n var {\n beginPath,\n closePath\n } = ctx;\n\n if (contextProto) {\n contextProto.beginPath = noop;\n contextProto.closePath = noop;\n }\n\n Reflect.apply(beginPath, ctx, []);\n this.children.forEach(child => {\n if (typeof child.path === 'undefined') {\n return;\n }\n\n var transform = typeof child.elementTransform !== 'undefined' ? child.elementTransform() : null; // handle <use />\n\n if (!transform) {\n transform = Transform.fromElement(document, child);\n }\n\n if (transform) {\n transform.apply(ctx);\n }\n\n child.path(ctx);\n\n if (contextProto) {\n contextProto.closePath = closePath;\n }\n\n if (transform) {\n transform.unapply(ctx);\n }\n });\n Reflect.apply(closePath, ctx, []);\n ctx.clip();\n\n if (contextProto) {\n contextProto.beginPath = beginPath;\n contextProto.closePath = closePath;\n }\n }\n\n render(_) {// NO RENDER\n }\n\n}\n\nclass FilterElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'filter';\n }\n\n apply(ctx, element) {\n // render as temp svg\n var {\n document,\n children\n } = this;\n var boundingBox = element.getBoundingBox(ctx);\n\n if (!boundingBox) {\n return;\n }\n\n var px = 0;\n var py = 0;\n children.forEach(child => {\n var efd = child.extraFilterDistance || 0;\n px = Math.max(px, efd);\n py = Math.max(py, efd);\n });\n var width = Math.floor(boundingBox.width);\n var height = Math.floor(boundingBox.height);\n var tmpCanvasWidth = width + 2 * px;\n var tmpCanvasHeight = height + 2 * py;\n\n if (tmpCanvasWidth < 1 || tmpCanvasHeight < 1) {\n return;\n }\n\n var x = Math.floor(boundingBox.x);\n var y = Math.floor(boundingBox.y);\n var ignoredStyles = this.removeStyles(element, FilterElement.ignoreStyles);\n var tmpCanvas = document.createCanvas(tmpCanvasWidth, tmpCanvasHeight);\n var tmpCtx = tmpCanvas.getContext('2d');\n document.screen.setDefaults(tmpCtx);\n tmpCtx.translate(-x + px, -y + py);\n element.render(tmpCtx); // apply filters\n\n children.forEach(child => {\n if (typeof child.apply === 'function') {\n child.apply(tmpCtx, 0, 0, tmpCanvasWidth, tmpCanvasHeight);\n }\n }); // render on me\n\n ctx.drawImage(tmpCanvas, 0, 0, tmpCanvasWidth, tmpCanvasHeight, x - px, y - py, tmpCanvasWidth, tmpCanvasHeight);\n this.restoreStyles(element, ignoredStyles);\n }\n\n render(_) {// NO RENDER\n }\n\n}\nFilterElement.ignoreStyles = ['filter', 'transform', 'clip-path'];\n\nclass FeDropShadowElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feDropShadow';\n this.addStylesFromStyleDefinition();\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeMorphologyElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'feMorphology';\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeCompositeElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'feComposite';\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeGaussianBlurElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feGaussianBlur';\n this.blurRadius = Math.floor(this.getAttribute('stdDeviation').getNumber());\n this.extraFilterDistance = this.blurRadius;\n }\n\n apply(ctx, x, y, width, height) {\n var {\n document,\n blurRadius\n } = this;\n var body = document.window ? document.window.document.body : null;\n var canvas = ctx.canvas; // StackBlur requires canvas be on document\n\n canvas.id = document.getUniqueId();\n\n if (body) {\n canvas.style.display = 'none';\n body.appendChild(canvas);\n }\n\n canvasRGBA(canvas, x, y, width, height, blurRadius);\n\n if (body) {\n body.removeChild(canvas);\n }\n }\n\n}\n\nclass TitleElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'title';\n }\n\n}\n\nclass DescElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'desc';\n }\n\n}\n\nvar elements = {\n 'svg': SVGElement,\n 'rect': RectElement,\n 'circle': CircleElement,\n 'ellipse': EllipseElement,\n 'line': LineElement,\n 'polyline': PolylineElement,\n 'polygon': PolygonElement,\n 'path': PathElement,\n 'pattern': PatternElement,\n 'marker': MarkerElement,\n 'defs': DefsElement,\n 'linearGradient': LinearGradientElement,\n 'radialGradient': RadialGradientElement,\n 'stop': StopElement,\n 'animate': AnimateElement,\n 'animateColor': AnimateColorElement,\n 'animateTransform': AnimateTransformElement,\n 'font': FontElement,\n 'font-face': FontFaceElement,\n 'missing-glyph': MissingGlyphElement,\n 'glyph': GlyphElement,\n 'text': TextElement,\n 'tspan': TSpanElement,\n 'tref': TRefElement,\n 'a': AElement,\n 'textPath': TextPathElement,\n 'image': ImageElement,\n 'g': GElement,\n 'symbol': SymbolElement,\n 'style': StyleElement,\n 'use': UseElement,\n 'mask': MaskElement,\n 'clipPath': ClipPathElement,\n 'filter': FilterElement,\n 'feDropShadow': FeDropShadowElement,\n 'feMorphology': FeMorphologyElement,\n 'feComposite': FeCompositeElement,\n 'feColorMatrix': FeColorMatrixElement,\n 'feGaussianBlur': FeGaussianBlurElement,\n 'title': TitleElement,\n 'desc': DescElement\n};\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction createCanvas(width, height) {\n var canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n}\n\nfunction createImage(_x) {\n return _createImage.apply(this, arguments);\n}\n\nfunction _createImage() {\n _createImage = _asyncToGenerator(function* (src) {\n var anonymousCrossOrigin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var image = document.createElement('img');\n\n if (anonymousCrossOrigin) {\n image.crossOrigin = 'Anonymous';\n }\n\n return new Promise((resolve, reject) => {\n image.onload = () => {\n resolve(image);\n };\n\n image.onerror = (_event, _source, _lineno, _colno, error) => {\n reject(error);\n };\n\n image.src = src;\n });\n });\n return _createImage.apply(this, arguments);\n}\n\nclass Document {\n constructor(canvg) {\n var {\n rootEmSize = 12,\n emSize = 12,\n createCanvas = Document.createCanvas,\n createImage = Document.createImage,\n anonymousCrossOrigin\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.canvg = canvg;\n this.definitions = Object.create(null);\n this.styles = Object.create(null);\n this.stylesSpecificity = Object.create(null);\n this.images = [];\n this.fonts = [];\n this.emSizeStack = [];\n this.uniqueId = 0;\n this.screen = canvg.screen;\n this.rootEmSize = rootEmSize;\n this.emSize = emSize;\n this.createCanvas = createCanvas;\n this.createImage = this.bindCreateImage(createImage, anonymousCrossOrigin);\n this.screen.wait(this.isImagesLoaded.bind(this));\n this.screen.wait(this.isFontsLoaded.bind(this));\n }\n\n bindCreateImage(createImage, anonymousCrossOrigin) {\n if (typeof anonymousCrossOrigin === 'boolean') {\n return (source, forceAnonymousCrossOrigin) => createImage(source, typeof forceAnonymousCrossOrigin === 'boolean' ? forceAnonymousCrossOrigin : anonymousCrossOrigin);\n }\n\n return createImage;\n }\n\n get window() {\n return this.screen.window;\n }\n\n get fetch() {\n return this.screen.fetch;\n }\n\n get ctx() {\n return this.screen.ctx;\n }\n\n get emSize() {\n var {\n emSizeStack\n } = this;\n return emSizeStack[emSizeStack.length - 1];\n }\n\n set emSize(value) {\n var {\n emSizeStack\n } = this;\n emSizeStack.push(value);\n }\n\n popEmSize() {\n var {\n emSizeStack\n } = this;\n emSizeStack.pop();\n }\n\n getUniqueId() {\n return \"canvg\".concat(++this.uniqueId);\n }\n\n isImagesLoaded() {\n return this.images.every(_ => _.loaded);\n }\n\n isFontsLoaded() {\n return this.fonts.every(_ => _.loaded);\n }\n\n createDocumentElement(document) {\n var documentElement = this.createElement(document.documentElement);\n documentElement.root = true;\n documentElement.addStylesFromStyleDefinition();\n this.documentElement = documentElement;\n return documentElement;\n }\n\n createElement(node) {\n var elementType = node.nodeName.replace(/^[^:]+:/, '');\n var ElementType = Document.elementTypes[elementType];\n\n if (typeof ElementType !== 'undefined') {\n return new ElementType(this, node);\n }\n\n return new UnknownElement(this, node);\n }\n\n createTextNode(node) {\n return new TextNode(this, node);\n }\n\n setViewBox(config) {\n this.screen.setViewBox(_objectSpread$1({\n document: this\n }, config));\n }\n\n}\nDocument.createCanvas = createCanvas;\nDocument.createImage = createImage;\nDocument.elementTypes = elements;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n/**\r\n * SVG renderer on canvas.\r\n */\n\nclass Canvg {\n /**\r\n * Main constructor.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG Document.\r\n * @param options - Rendering options.\r\n */\n constructor(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.parser = new Parser(options);\n this.screen = new Screen(ctx, options);\n this.options = options;\n var document = new Document(this, options);\n var documentElement = document.createDocumentElement(svg);\n this.document = document;\n this.documentElement = documentElement;\n }\n /**\r\n * Create Canvg instance from SVG source string or URL.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string or URL.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n static from(ctx, svg) {\n var _arguments = arguments;\n return _asyncToGenerator(function* () {\n var options = _arguments.length > 2 && _arguments[2] !== undefined ? _arguments[2] : {};\n var parser = new Parser(options);\n var svgDocument = yield parser.parse(svg);\n return new Canvg(ctx, svgDocument, options);\n })();\n }\n /**\r\n * Create Canvg instance from SVG source string.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n static fromString(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var parser = new Parser(options);\n var svgDocument = parser.parseFromString(svg);\n return new Canvg(ctx, svgDocument, options);\n }\n /**\r\n * Create new Canvg instance with inherited options.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string or URL.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n fork(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return Canvg.from(ctx, svg, _objectSpread(_objectSpread({}, this.options), options));\n }\n /**\r\n * Create new Canvg instance with inherited options.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n forkString(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return Canvg.fromString(ctx, svg, _objectSpread(_objectSpread({}, this.options), options));\n }\n /**\r\n * Document is ready promise.\r\n * @returns Ready promise.\r\n */\n\n\n ready() {\n return this.screen.ready();\n }\n /**\r\n * Document is ready value.\r\n * @returns Is ready or not.\r\n */\n\n\n isReady() {\n return this.screen.isReady();\n }\n /**\r\n * Render only first frame, ignoring animations and mouse.\r\n * @param options - Rendering options.\r\n */\n\n\n render() {\n var _arguments2 = arguments,\n _this = this;\n\n return _asyncToGenerator(function* () {\n var options = _arguments2.length > 0 && _arguments2[0] !== undefined ? _arguments2[0] : {};\n\n _this.start(_objectSpread({\n enableRedraw: true,\n ignoreAnimation: true,\n ignoreMouse: true\n }, options));\n\n yield _this.ready();\n\n _this.stop();\n })();\n }\n /**\r\n * Start rendering.\r\n * @param options - Render options.\r\n */\n\n\n start() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var {\n documentElement,\n screen,\n options: baseOptions\n } = this;\n screen.start(documentElement, _objectSpread(_objectSpread({\n enableRedraw: true\n }, baseOptions), options));\n }\n /**\r\n * Stop rendering.\r\n */\n\n\n stop() {\n this.screen.stop();\n }\n /**\r\n * Resize SVG to fit in given size.\r\n * @param width\r\n * @param height\r\n * @param preserveAspectRatio\r\n */\n\n\n resize(width) {\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : width;\n var preserveAspectRatio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n this.documentElement.resize(width, height, preserveAspectRatio);\n }\n\n}\n\nexport { AElement, AnimateColorElement, AnimateElement, AnimateTransformElement, BoundingBox, CB1, CB2, CB3, CB4, Canvg, CircleElement, ClipPathElement, DefsElement, DescElement, Document, Element, EllipseElement, FeColorMatrixElement, FeCompositeElement, FeDropShadowElement, FeGaussianBlurElement, FeMorphologyElement, FilterElement, Font, FontElement, FontFaceElement, GElement, GlyphElement, GradientElement, ImageElement, LineElement, LinearGradientElement, MarkerElement, MaskElement, Matrix, MissingGlyphElement, Mouse, PSEUDO_ZERO, Parser, PathElement, PathParser, PatternElement, Point, PolygonElement, PolylineElement, Property, QB1, QB2, QB3, RadialGradientElement, RectElement, RenderedElement, Rotate, SVGElement, SVGFontLoader, Scale, Screen, Skew, SkewX, SkewY, StopElement, StyleElement, SymbolElement, TRefElement, TSpanElement, TextElement, TextPathElement, TitleElement, Transform, Translate, UnknownElement, UseElement, ViewPort, compressSpaces, Canvg as default, getSelectorSpecificity, normalizeAttributeName, normalizeColor, parseExternalUrl, index as presets, toNumbers, trimLeft, trimRight, vectorMagnitude, vectorsAngle, vectorsRatio };\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZXMuanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsifQ==\n"],"names":["check","it","globalThis_1","global","this","fails","exec","require$$0","descriptors","functionBindNative","test","NATIVE_BIND","call","functionCall","$propertyIsEnumerable","getOwnPropertyDescriptor","NASHORN_BUG","objectPropertyIsEnumerable","V","descriptor","createPropertyDescriptor","bitmap","value","FunctionPrototype","uncurryThisWithBind","functionUncurryThis","fn","uncurryThis","toString","stringSlice","classofRaw","require$$1","classof","require$$2","$Object","split","indexedObject","isNullOrUndefined","$TypeError","requireObjectCoercible","IndexedObject","toIndexedObject","documentAll","isCallable","argument","isObject","globalThis","aFunction","getBuiltIn","namespace","method","objectIsPrototypeOf","navigator","userAgent","environmentUserAgent","process","Deno","versions","v8","match","version","environmentV8Version","V8_VERSION","$String","symbolConstructorDetection","symbol","NATIVE_SYMBOL","useSymbolAsUid","isPrototypeOf","USE_SYMBOL_AS_UID","require$$3","isSymbol","$Symbol","tryToString","aCallable","getMethod","P","func","ordinaryToPrimitive","input","pref","val","isPure","defineProperty","defineGlobalProperty","key","IS_PURE","SHARED","store","sharedStoreModule","shared","toObject","hasOwnProperty","hasOwnProperty_1","id","postfix","uid","hasOwn","require$$4","require$$5","Symbol","WellKnownSymbolsStore","createWellKnownSymbol","wellKnownSymbol","name","TO_PRIMITIVE","toPrimitive","exoticToPrim","result","toPropertyKey","document","EXISTS","documentCreateElement","DESCRIPTORS","createElement","ie8DomDefine","propertyIsEnumerableModule","require$$6","IE8_DOM_DEFINE","require$$7","$getOwnPropertyDescriptor","objectGetOwnPropertyDescriptor","O","v8PrototypeDefineBug","anObject","V8_PROTOTYPE_DEFINE_BUG","$defineProperty","ENUMERABLE","CONFIGURABLE","WRITABLE","objectDefineProperty","Attributes","current","definePropertyModule","createNonEnumerableProperty","object","getDescriptor","PROPER","functionName","functionToString","inspectSource","WeakMap","weakMapBasicDetection","keys","sharedKey","hiddenKeys","NATIVE_WEAK_MAP","OBJECT_ALREADY_INITIALIZED","TypeError","set","get","has","enforce","getterFor","TYPE","state","metadata","STATE","internalState","CONFIGURABLE_FUNCTION_NAME","InternalStateModule","enforceInternalState","getInternalState","replace","join","CONFIGURABLE_LENGTH","TEMPLATE","makeBuiltIn","makeBuiltInModule","options","defineBuiltIn","simple","ceil","floor","mathTrunc","x","n","trunc","toIntegerOrInfinity","number","max","min","toAbsoluteIndex","index","length","integer","toLength","len","lengthOfArrayLike","obj","createMethod","IS_INCLUDES","$this","el","fromIndex","arrayIncludes","indexOf","push","objectKeysInternal","names","i","enumBugKeys","internalObjectKeys","objectGetOwnPropertyNames","objectGetOwnPropertySymbols","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","concat","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptorModule","copyConstructorProperties","target","source","exceptions","replacement","isForced","feature","detection","data","normalize","POLYFILL","NATIVE","string","isForced_1","_export","TARGET","GLOBAL","STATIC","FORCED","targetProperty","sourceProperty","userAgentStartsWith","environment","ENVIRONMENT","environmentIsNode","path","functionUncurryThisAccessor","isPossiblePrototype","aPossiblePrototype","uncurryThisAccessor","objectSetPrototypeOf","CORRECT_SETTER","setter","proto","TO_STRING_TAG","setToStringTag","TAG","defineBuiltInAccessor","SPECIES","setSpecies","CONSTRUCTOR_NAME","Constructor","anInstance","Prototype","toStringTagSupport","TO_STRING_TAG_SUPPORT","CORRECT_ARGUMENTS","tryGet","tag","noop","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","isConstructor","called","aConstructor","speciesConstructor","defaultConstructor","C","S","apply","functionApply","functionUncurryThisClause","bind","functionBindContext","that","html","arraySlice","validateArgumentsLength","passed","required","environmentIsIos","require$$8","require$$9","IS_IOS","require$$10","IS_NODE","require$$11","clear","Dispatch","Function","MessageChannel","String","counter","queue","ONREADYSTATECHANGE","$location","defer","channel","port","run","runner","eventListener","event","globalPostMessageDefer","handler","args","task","safeGetBuiltIn","Queue","item","entry","tail","next","environmentIsIosPebble","environmentIsWebosWebkit","macrotask","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","MutationObserver","Promise","microtask","notify","toggle","node","promise","then","flush","parent","error","microtask_1","hostReportErrors","a","b","perform","promiseNativeConstructor","NativePromiseConstructor","NativePromisePrototype","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","resolve","FakePromise","constructor","promiseConstructorDetection","PromiseCapability","reject","$$resolve","$$reject","newPromiseCapability","$","setPrototypeOf","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","require$$21","PromiseConstructorDetection","require$$22","newPromiseCapabilityModule","require$$23","PROMISE","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","setInternalState","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","REJECTED","HANDLED","UNHANDLED","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","isThenable","callReaction","reaction","ok","domain","exited","onHandleUnhandled","isReject","reactions","onUnhandled","dispatchEvent","reason","IS_UNHANDLED","isUnhandled","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","onRejected","iterators","Iterators","ITERATOR","ArrayPrototype","isArrayIteratorMethod","getIteratorMethod","getIterator","usingIterator","iteratorMethod","iteratorClose","iterator","kind","innerResult","innerError","Result","stopped","ResultPrototype","iterate","iterable","unboundFunction","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","iterFn","step","stop","condition","callFn","SAFE_CLOSING","iteratorWithReturn","checkCorrectnessOfIteration","SKIP_CLOSING","ITERATION_SUPPORT","promiseStaticsIncorrectIteration","PROMISE_STATICS_INCORRECT_ITERATION","capability","$promiseResolve","values","remaining","alreadyCalled","r","capabilityReject","promiseResolve","promiseCapability","PromiseConstructorWrapper","CHECK_WRAPPER","asyncGeneratorStep","t","e","o","c","_asyncToGenerator","_next","_throw","regexpFlags","$RegExp","UNSUPPORTED_Y","re","MISSED_STICKY","BROKEN_CARET","regexpStickyHelpers","objectKeys","objectDefineProperties","Properties","props","definePropertiesModule","GT","LT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","NullProtoObjectViaActiveX","activeXDocument","temp","NullProtoObjectViaIFrame","iframe","JS","iframeDocument","NullProtoObject","objectCreate","regexpUnsupportedDotAll","regexpUnsupportedNcg","stickyHelpers","create","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeReplace","nativeExec","patchedExec","charAt","UPDATES_LAST_INDEX_WRONG","re1","re2","NPCG_INCLUDED","PATCH","str","raw","reCopy","lastIndex","group","groups","sticky","flags","charsAdded","strCopy","regexpExec","RegExpPrototype","fixRegexpWellKnownSymbolLogic","KEY","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","methods","nativeMethod","regexp","arg2","forceStringMethod","$exec","charCodeAt","CONVERT_TO_STRING","pos","position","size","first","second","stringMultibyte","advanceStringIndex","unicode","RegExp","FLAGS_GETTER_IS_CORRECT","INDICES_SUPPORT","calls","expected","addGetter","chr","pairs","regexpFlagsDetection","regExpFlagsDetection","regExpFlagsGetterImplementation","regexpGetFlags","regexpExecAbstract","R","fixRegExpWellKnownSymbolLogic","getRegExpFlags","regExpExec","stringIndexOf","MATCH","nativeMatch","maybeCallNative","matcher","rx","res","fullUnicode","A","matchStr","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","getSubstitution","matched","captures","namedCaptures","tailPos","m","symbols","ch","capture","f","REPLACE","maybeToString","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_SUPPORTS_NAMED_GROUPS","_","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","functionalReplace","results","accumulatedResult","nextSourcePosition","j","replacerArgs","isRegexp","isRegExp","notARegexp","correctIsRegexpLogic","METHOD_NAME","notARegExp","correctIsRegExpLogic","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","searchString","search","UNSCOPABLES","addToUnscopables","correctPrototypeGetter","F","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","objectGetPrototypeOf","getPrototypeOf","BUGGY_SAFARI_ITERATORS","IteratorPrototype","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","iteratorsCore","returnThis","iteratorCreateConstructor","IteratorConstructor","NAME","ENUMERABLE_NEXT","FunctionName","createIteratorConstructor","IteratorsCore","PROPER_FUNCTION_NAME","KEYS","VALUES","ENTRIES","iteratorDefine","Iterable","DEFAULT","IS_SET","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","CurrentIteratorPrototype","createIterResultObject","done","defineIterator","ARRAY_ITERATOR","es_array_iterator","iterated","domIterables","classList","DOMTokenListPrototype","domTokenListPrototype","DOMIterables","ArrayIteratorMethods","ArrayValues","handlePrototype","CollectionPrototype","COLLECTION_NAME","_typeof","_defineProperty","REDUCE_EMPTY","IS_RIGHT","callbackfn","argumentsLength","memo","self","arrayReduce","arrayMethodIsStrict","$reduce","CHROME_VERSION","CHROME_BUG","slice","endPosition","end","MAX_UINT32","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","BUGGY","SPLIT","nativeSplit","internalSplit","separator","limit","splitter","unicodeMatching","lim","p","q","getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","performanceNowModule","hr","now","root","vendors","suffix","raf","caf","last","frameDuration","callback","_now","cp","handle","rafModule","whitespaces","ltrim","rtrim","stringTrim","non","stringTrimForced","$trim","forcedStringTrimMethod","rgbcolor","color_string","simple_colors","color_defs","bits","processor","channels","g","examples","example","sc","xml","list_item","list_color","example_div","list_item_value","$indexOf","nativeIndexOf","NEGATIVE_ZERO","searchElement","isArray","nativeReverse","s","u","h","y","l","T","v","N","d","E","M","I","L","H","w","U","$toString","TO_STRING","nativeToString","NOT_GENERIC","INCORRECT_NAME","pattern","_classCallCheck","instance","mulTable","shgTable","getImageDataFromCanvas","canvas","topX","topY","width","height","context","processCanvasRGBA","radius","imageData","processImageDataRGBA","pixels","div","widthMinus1","heightMinus1","radiusPlus1","sumFactor","stackStart","BlurStack","stack","stackEnd","stackIn","stackOut","yw","yi","mulSum","shgSum","pr","pg","pb","pa","_i","rInSum","gInSum","bInSum","aInSum","rOutSum","gOutSum","bOutSum","aOutSum","rSum","gSum","bSum","aSum","_i2","rbs","paInitial","_a2","_p","_stackOut","_r","_g","_b","_a","_x","_pr","_pg","_pb","_pa","_rOutSum","_gOutSum","_bOutSum","_aOutSum","_rSum","_gSum","_bSum","_aSum","_i3","yp","_gInSum","_bInSum","_aInSum","_rInSum","_i4","_rbs","_y","_p2","offscreen","DOMParserFallback","preset","url","response","blob","img","_ref","DOMParser","fetch","compressSpaces","trimLeft","trimRight","toNumbers","matches","allUppercase","normalizeAttributeName","parseExternalUrl","urlMatch","normalizeColor","color","rgbParts","normalizedColor","num","isFloat","attributeRegex","idRegex","classRegex","pseudoElementRegex","pseudoClassWithBracketsRegex","pseudoClassRegex","elementRegex","findSelectorMatch","selector","regex","getSelectorSpecificity","specificity","currentSelector","delta","PSEUDO_ZERO","vectorMagnitude","vectorsRatio","vectorsAngle","CB1","CB2","CB3","CB4","QB1","QB2","QB3","Property","zeroIsValue","asString","def","axisOrIsFontSize","processPercent","axis","isFontSize","viewPort","element","opacity","patternTransform","commas","RGBColor","ViewPort","viewPorts","Point","point","defaultValue","scale","points","pathPoints","transform","xp","Mouse","screen","onClick","onMouseMove","events","eventElements","style","ctx","_ref2","boundingBox","_ref3","window","eventTarget","defaultWindow","defaultFetch$1","Screen","checker","isReadyLock","aspectRatio","desiredWidth","desiredHeight","minX","minY","refX","refY","clip","clipX","clipY","cleanAspectRatio","aspectRatioAlign","aspectRatioMeetOrSlice","align","meetOrSlice","scaleX","scaleY","scaleMin","scaleMax","finalDesiredWidth","finalDesiredHeight","refXProp","refYProp","hasRefs","scaledClipX","scaledClipY","isMeetMinY","isSliceMaxY","isMeetMinX","isSliceMaxX","enableRedraw","ignoreMouse","ignoreAnimation","ignoreDimensions","ignoreClear","forceRedraw","scaleWidth","scaleHeight","offsetX","offsetY","FRAMERATE","mouse","tick","requestAnimationFrame","shouldUpdate","animation","CLIENT_WIDTH","CLIENT_HEIGHT","isFirstRender","widthStyle","heightStyle","cWidth","cHeight","viewBox","xRatio","yRatio","_widthStyle","_heightStyle","transformStyle","defaultFetch","DefaultDOMParser","Parser","resource","_this","parser","parserError","_this2","Translate","Rotate","rotate","transformOrigin","numbers","cx","cy","originX","originY","angle","tx","ty","rad","Scale","scaleSize","Matrix","matrix","det","Skew","skew","SkewX","SkewY","parseTransforms","parseTransform","type","Transform","TransformType","transformOriginXProperty","transformOriginYProperty","transforms","Element","captureTextNodes","attribute","nodeName","styles","definitions","childNode","textNode","createIfNotExists","attr","_attr","skipAncestors","parentStyle","_style","mask","filter","clipPathStyleProp","child","_node$getAttribute","styleClasses","styleClass","stylesSpecificity","existingSpecificity","ignoreStyles","toRestore","styleProp","_this$parent","UnknownElement","wrapFontFamily","fontFamily","trimmed","prepareFontFamily","prepareFontStyle","fontStyle","targetFontStyle","prepareFontWeight","fontWeight","targetFontWeight","Font","fontVariant","fontSize","inherit","inheritFont","font","parts","part","BoundingBox","x1","y1","x2","y2","p0","p1","p2","p3","forX","b2ac","t1","t2","p0x","p0y","p1x","p1y","p2x","p2y","p3x","p3y","cp1x","cp1y","cp2x","cp2y","PathParser","SVGPathData","commands","command","xProp","yProp","previousCommand","ox","oy","from","priorTo","angles","RenderedElement","opacityStyle","fromMeasure","fillStyleProp","fillOpacityStyleProp","strokeStyleProp","strokeOpacityProp","fillStyle","_fillStyle","_fillStyle2","strokeStyle","_strokeStyle","_strokeStyle2","strokeWidthStyleProp","newLineWidth","strokeLinecapStyleProp","strokeLinejoinStyleProp","strokeMiterlimitProp","strokeDasharrayStyleProp","strokeDashoffsetProp","gaps","offset","fontStyleProp","fontStyleStyleProp","fontVariantStyleProp","fontWeightStyleProp","fontSizeStyleProp","fontFamilyStyleProp","PathElement","pathParser","markers","fillRuleStyleProp","markersLastIndex","markerStartStyleProp","markerMidStyleProp","markerEndStyleProp","marker","_marker","_point","_angle","_marker2","_point2","_angle2","controlPoint","currentPoint","rX","rY","xRot","lArcFlag","sweepFlag","xAxisRotation","currp","cpp","centp","a1","ad","dir","ah","halfWay","sx","sy","GlyphElement","TextElement","textBaseline","childBoundingBox","inheritFontSize","text","char","glyph","prevChar","nextChar","arabicForm","maybeGlyph","childNodes","renderText","customFont","unitsPerEm","ctxFont","dx","lw","firstElement","textAnchor","isRTL","shift","textParent","xAttr","yAttr","dxAttr","dyAttr","measureCache","measure","targetText","_measure","parentAttr","TSpanElement","TextNode","SVGElement","_this$node$parentNode","fontSizeProp","refXAttr","refYAttr","viewBoxAttr","preserveAspectRatio","widthAttr","heightAttr","styleAttr","originWidth","originHeight","preserveAspectRatioAttr","RectElement","rxAttr","ryAttr","ry","KAPPA","CircleElement","EllipseElement","LineElement","x0","y0","PolylineElement","PolygonElement","PatternElement","parentOpacityProp","patternSvg","patternCanvas","patternCtx","MarkerElement","orient","markerUnits","markerSvg","DefsElement","GElement","GradientElement","stops","children","stopsContainer","gradient","MAX_VIRTUAL_PIXELS","rootView","rect","attributeToInherit","colorProp","LinearGradientElement","isBoundingBoxUnits","RadialGradientElement","fx","fy","fr","StopElement","stopOpacity","stopColor","AnimateElement","valuesAttr","attributeType","attributeName","initialUnits","progress","to","newValue","prop","fill","updated","typeAttr","lb","ub","AnimateColorElement","colorFrom","colorTo","AnimateTransformElement","transformFrom","transformTo","FontElement","fontFamilyStyle","FontFaceElement","MissingGlyphElement","TRefElement","firstChild","AElement","hasText","ownKeys$2","enumerableOnly","sym","_objectSpread$2","TextPathElement","pathElement","dataArray","theta","dTheta","psi","fs","textDecoration","glyphInfo","rotation","partialText","idx","anchor","textFullWidth","fullPathWidth","spacesNumber","inputOffset","dy","charI","glyphWidth","splineStep","segment","dyX","dyY","measuresCache","chars","thisSpacing","parentSpacing","letterSpacing","letterSpacingCache","textLen","dxSum","acc","cur","textWidth","startOffset","nextOffset","pathCommands","startX","startY","nextCommandType","commandType","start","inc","dist","fromX","fromY","rise","pt","ix","iy","pRise","pRun","distance","fullLen","cumulativePathLength","currentT","pct","p4x","p4y","cosPsi","sinPsi","inputStep","inputPrecision","precision","targetDistance","dataUriRegex","ImageElement","href","isSvg","image","err","svg","loaded","subDocument","_image","SymbolElement","SVGFontLoader","svgDocument","fonts","fontNode","StyleElement","css","cssDefs","cssParts","cssClasses","cssProps","cssClass","cssProp","srcs","src","UseElement","tempSvg","oldParent","imGet","_height","rgba","imSet","mi","m1","m2","m3","FeColorMatrixElement","includeOpacity","srcData","nr","ng","nb","na","MaskElement","ignoredStyles","maskCanvas","maskCtx","tmpCanvas","tmpCtx","ClipPathElement","contextProto","beginPath","closePath","FilterElement","px","py","efd","tmpCanvasWidth","tmpCanvasHeight","FeDropShadowElement","_width","FeMorphologyElement","FeCompositeElement","FeGaussianBlurElement","blurRadius","body","canvasRGBA","TitleElement","DescElement","elements","ownKeys$1","_objectSpread$1","createCanvas","createImage","_createImage","anonymousCrossOrigin","_event","_source","_lineno","_colno","Document","canvg","rootEmSize","emSize","forceAnonymousCrossOrigin","emSizeStack","documentElement","elementType","ElementType","config","_objectSpread","Canvg","_arguments","_arguments2","baseOptions"],"mappings":"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AK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GACrwCC,KAAW,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI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","x_google_ignoreList":[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,25,26,27,28,29,30,31,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,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172]}
|