{"version":3,"file":"js/application-b1e8b30909faddb3d8c8.js","sources":["webpack:///webpack/bootstrap","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/@babel/runtime/helpers/defineProperty.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/@babel/runtime/helpers/extends.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/@hypnosphi/create-react-context/lib/implementation.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/@hypnosphi/create-react-context/lib/index.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/call-bind/callBound.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/call-bind/index.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/classnames/index.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/a-callable.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/a-possible-prototype.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/add-to-unscopables.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/an-instance.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/an-object.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/array-buffer-non-extensible.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/array-includes.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/array-slice-simple.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/classof-raw.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/classof.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/collection-strong.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/collection.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/copy-constructor-properties.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/correct-prototype-getter.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/create-iterator-constructor.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/create-non-enumerable-property.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/create-property-descriptor.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/create-property.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/define-built-in.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/define-built-ins.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/define-iterator.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/descriptors.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/document-create-element.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/engine-user-agent.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/engine-v8-version.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/enum-bug-keys.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/export.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/fails.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/freezing.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/function-bind-context.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/function-bind-native.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/function-call.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/function-name.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/function-uncurry-this.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/get-built-in.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/get-iterator-method.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/get-iterator.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/get-method.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/global.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/has-own-property.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/hidden-keys.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/html.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/ie8-dom-define.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/indexed-object.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/inherit-if-required.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/inspect-source.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/internal-metadata.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/internal-state.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/is-array-iterator-method.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/is-callable.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/is-forced.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/is-object.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/is-pure.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/is-symbol.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/iterate.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/iterator-close.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/iterators-core.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/iterators.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/length-of-array-like.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/make-built-in.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/native-symbol.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/native-weak-map.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/object-create.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/object-define-properties.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/object-define-property.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/object-get-own-property-names-external.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/object-get-own-property-names.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/object-get-prototype-of.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/object-is-extensible.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/object-is-prototype-of.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/object-keys-internal.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/object-keys.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/object-property-is-enumerable.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/object-set-prototype-of.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/object-to-string.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/ordinary-to-primitive.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/own-keys.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/require-object-coercible.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/set-global.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/set-species.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/set-to-string-tag.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/shared-key.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/shared-store.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/shared.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/string-multibyte.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/to-absolute-index.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/to-indexed-object.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/to-integer-or-infinity.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/to-length.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/to-object.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/to-primitive.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/to-property-key.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/to-string-tag-support.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/to-string.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/try-to-string.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/uid.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/use-symbol-as-uid.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/v8-prototype-define-bug.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/internals/well-known-symbol.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/modules/es.array.iterator.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/modules/es.map.constructor.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/modules/es.map.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/modules/es.object.to-string.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/modules/es.set.constructor.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/modules/es.set.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/core-js/modules/es.string.iterator.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/deep-equal/index.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/define-properties/index.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/es5-shim/es5-shim.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/es6-shim/es6-shim.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/font-awesome/css/font-awesome.css","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/froala-editor/css/froala_editor.pkgd.min.css","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/froala-editor/css/froala_style.min.css","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/froala-editor/js/froala_editor.pkgd.min.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/function-bind/implementation.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/function-bind/index.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/functions-have-names/index.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/get-intrinsic/index.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/gud/index.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/has-property-descriptors/index.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/has-symbols/index.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/has-symbols/shams.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/has-tostringtag/shams.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/has/src/index.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/is-arguments/index.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/is-date-object/index.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/is-regex/index.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/isomorphic-fetch/fetch-npm-browserify.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/jquery/dist/jquery.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/lodash/lodash.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/memoize-one/dist/memoize-one.esm.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale sync ^\\.\\/.*$","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/af.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/ar-dz.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/ar-kw.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/ar-ly.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/ar-ma.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/ar-sa.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/ar-tn.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/ar.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/az.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/be.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/bg.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/bm.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/bn-bd.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/bn.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/bo.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/br.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/bs.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/ca.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/cs.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/cv.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/cy.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/da.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/de-at.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/de-ch.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/de.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/dv.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/el.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/en-au.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/en-ca.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/en-gb.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/en-ie.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/en-il.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/en-in.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/en-nz.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/en-sg.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/eo.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/es-do.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/es-mx.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/es-us.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/es.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/et.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/eu.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/fa.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/fi.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/fil.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/fo.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/fr-ca.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/fr-ch.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/fr.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/fy.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/ga.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/gd.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/gl.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/gom-deva.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/gom-latn.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/gu.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/he.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/hi.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/hr.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/hu.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/hy-am.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/id.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/is.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/it-ch.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/it.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/ja.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/jv.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/ka.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/kk.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/km.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/kn.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/ko.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/ku.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/ky.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/lb.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/lo.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/lt.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/lv.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/me.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/mi.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/mk.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/ml.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/mn.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/mr.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/ms-my.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/ms.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/mt.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/my.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/nb.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/ne.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/nl-be.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/nl.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/nn.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/oc-lnc.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/pa-in.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/pl.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/pt-br.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/pt.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/ro.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/ru.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/sd.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/se.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/si.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/sk.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/sl.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/sq.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/sr-cyrl.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/sr.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/ss.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/sv.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/sw.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/ta.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/te.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/tet.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/tg.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/th.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/tk.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/tl-ph.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/tlh.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/tr.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/tzl.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/tzm-latn.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/tzm.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/ug-cn.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/uk.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/ur.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/uz-latn.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/uz.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/vi.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/x-pseudo.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/yo.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/zh-cn.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/zh-hk.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/zh-mo.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/locale/zh-tw.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/moment/moment.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/object-assign/index.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/object-is/implementation.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/object-is/index.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/object-is/polyfill.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/object-is/shim.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/object-keys/implementation.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/object-keys/index.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/object-keys/isArguments.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/popper.js/dist/esm/popper.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/process/browser.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/prop-types/checkPropTypes.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/prop-types/factoryWithTypeCheckers.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/prop-types/index.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/prop-types/lib/has.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react-datepicker/dist/react-datepicker.css","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react-datepicker/es/index.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react-dom/cjs/react-dom-server.browser.development.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react-dom/cjs/react-dom.development.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react-dom/index.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react-dom/server.browser.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react-froala-wysiwyg/FroalaEditorView.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react-froala-wysiwyg/index.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react-is/cjs/react-is.development.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react-is/index.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react-onclickoutside/dist/react-onclickoutside.es.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react-popper/lib/esm/Manager.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react-popper/lib/esm/Popper.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react-popper/lib/esm/Reference.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react-popper/lib/esm/index.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react-popper/lib/esm/utils.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react-trix/lib/react-trix.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react-trix/main.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react-virtualized-auto-sizer/dist/react-virtualized-auto-sizer.module.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react-window/dist/index.esm.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react-window/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react-window/node_modules/@babel/runtime/helpers/esm/extends.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react-window/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react-window/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react-window/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react/cjs/react.development.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react/index.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react_ujs/react_ujs/index.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react_ujs/react_ujs/src/events/detect.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react_ujs/react_ujs/src/events/native.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react_ujs/react_ujs/src/events/pjax.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react_ujs/react_ujs/src/events/turbolinks.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react_ujs/react_ujs/src/events/turbolinksClassic.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react_ujs/react_ujs/src/events/turbolinksClassicDeprecated.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react_ujs/react_ujs/src/getConstructor/fromGlobal.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react_ujs/react_ujs/src/getConstructor/fromRequireContext.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react_ujs/react_ujs/src/getConstructor/fromRequireContextWithGlobalFallback.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/react_ujs/react_ujs/src/renderHelpers.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/regexp.prototype.flags/implementation.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/regexp.prototype.flags/index.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/regexp.prototype.flags/polyfill.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/regexp.prototype.flags/shim.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/scheduler/cjs/scheduler-tracing.development.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/scheduler/cjs/scheduler.development.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/scheduler/index.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/scheduler/tracing.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/setimmediate/setImmediate.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/timers-browserify/main.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/trix/dist/trix.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/warning/warning.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///(webpack)/buildin/global.js","webpack:///(webpack)/buildin/module.js","webpack:////layers/paketo-buildpacks_yarn-install/build-modules/node_modules/whatwg-fetch/fetch.js","webpack:///./app/javascript/Api/index.js","webpack:///./app/javascript/components sync ^\\.\\/.*$","webpack:///./app/javascript/components/Actions.js","webpack:///./app/javascript/components/NavigationTab.js","webpack:///./app/javascript/components/Notification.js","webpack:///./app/javascript/components/StepOne.js","webpack:///./app/javascript/components/StepThree.js","webpack:///./app/javascript/components/StepTwo.js","webpack:///./app/javascript/components/Types.js","webpack:///./app/javascript/components/trixConfig.js","webpack:///./app/javascript/packs/application.js"],"sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./app/javascript/packs/application.js\");\n","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inheritsLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _gud = require('gud');\n\nvar _gud2 = _interopRequireDefault(_gud);\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\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\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof(call) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823; // Inlined Object.is polyfill.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + (0, _gud2.default)() + '__';\n\n var Provider = function (_Component) {\n _inherits(Provider, _Component);\n\n function Provider() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Provider);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.emitter = createEventEmitter(_this.props.value), _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n Provider.prototype.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n Provider.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits = void 0;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0; // No change\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n (0, _warning2.default)((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: %s', changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n Provider.prototype.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(_react.Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = _propTypes2.default.object.isRequired, _Provider$childContex);\n\n var Consumer = function (_Component2) {\n _inherits(Consumer, _Component2);\n\n function Consumer() {\n var _temp2, _this2, _ret2;\n\n _classCallCheck(this, Consumer);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this2 = _possibleConstructorReturn(this, _Component2.call.apply(_Component2, [this].concat(args))), _this2), _this2.state = {\n value: _this2.getValue()\n }, _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n }, _temp2), _possibleConstructorReturn(_this2, _ret2);\n }\n\n Consumer.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n Consumer.prototype.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n Consumer.prototype.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n Consumer.prototype.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n Consumer.prototype.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(_react.Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = _propTypes2.default.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nexports.default = createReactContext;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _implementation = require('./implementation');\n\nvar _implementation2 = _interopRequireDefault(_implementation);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nexports.default = _react2.default.createContext || _implementation2.default;\nmodule.exports = exports['default'];","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n var intrinsic = GetIntrinsic(name, !!allowMissing);\n\n if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n return callBind(intrinsic);\n }\n\n return intrinsic;\n};","'use strict';\n\nvar bind = require('function-bind');\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n try {\n $defineProperty({}, 'a', {\n value: 1\n });\n } catch (e) {\n // IE 8 has a broken defineProperty\n $defineProperty = null;\n }\n}\n\nmodule.exports = function callBind(originalFunction) {\n var func = $reflectApply(bind, $call, arguments);\n\n if ($gOPD && $defineProperty) {\n var desc = $gOPD(func, 'length');\n\n if (desc.configurable) {\n // original length, plus the receiver, minus any additional arguments (after the receiver)\n $defineProperty(func, 'length', {\n value: 1 + $max(0, originalFunction.length - (arguments.length - 1))\n });\n }\n }\n\n return func;\n};\n\nvar applyBind = function applyBind() {\n return $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n $defineProperty(module.exports, 'apply', {\n value: applyBind\n });\n} else {\n module.exports.apply = applyBind;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\n/* global define */\n(function () {\n 'use strict';\n\n var hasOwn = {}.hasOwnProperty;\n\n function classNames() {\n var classes = [];\n\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i];\n if (!arg) continue;\n\n var argType = _typeof(arg);\n\n if (argType === 'string' || argType === 'number') {\n classes.push(arg);\n } else if (Array.isArray(arg)) {\n if (arg.length) {\n var inner = classNames.apply(null, arg);\n\n if (inner) {\n classes.push(inner);\n }\n }\n } else if (argType === 'object') {\n if (arg.toString === Object.prototype.toString) {\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes.push(key);\n }\n }\n } else {\n classes.push(arg.toString());\n }\n }\n }\n\n return classes.join(' ');\n }\n\n if (typeof module !== 'undefined' && module.exports) {\n classNames.default = classNames;\n module.exports = classNames;\n } else if (typeof define === 'function' && _typeof(define.amd) === 'object' && define.amd) {\n // register as 'classnames', consistent with npm package name\n define('classnames', [], function () {\n return classNames;\n });\n } else {\n window.classNames = classNames;\n }\n})();","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a function');\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw TypeError(\"Can't set \" + String(argument) + ' as a prototype');\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\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 definePropertyModule.f(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","var global = require('../internals/global');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw TypeError('Incorrect invocation');\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw TypeError(String(argument) + ' is not an object');\n};\n","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es-x/no-object-isextensible, es-x/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","var 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 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","var global = require('../internals/global');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar Array = global.Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","var 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-x/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 if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\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","var 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","var global = require('../internals/global');\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 = global.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 defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n defineBuiltIns(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(Prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n defineBuiltIn(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, constructor: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var 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","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es-x/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\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","var 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","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar setGlobal = require('../internals/set-global');\n\nmodule.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var name = options && options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return O;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n return O;\n};\n","var defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\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/create-iterator-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 in IterablePrototype) return IterablePrototype[KIND];\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 } 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","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.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","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.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","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\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 setGlobal = require('../internals/set-global');\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.noTargetGet - 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 = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\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","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-object-isextensible, es-x/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\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","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/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","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es-x/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","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = NATIVE_BIND && bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? function (fn) {\n return fn && uncurryThis(fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","var global = require('../internals/global');\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(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var global = require('../internals/global');\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 = global.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 TypeError(tryToString(argument) + ' is not iterable');\n};\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n","var 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-x/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 // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var 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-x/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var 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-x/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar Object = global.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","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","var 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","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-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 = global.TypeError;\nvar WeakMap = global.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 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 var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, 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","var 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","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","var 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","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var global = require('../internals/global');\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 = global.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","var global = require('../internals/global');\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 = global.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_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', condition);\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_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw 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 = 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","var 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 fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\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-x/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 = IteratorPrototype == undefined || 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","module.exports = {};\n","var 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","var 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;\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\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 (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^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 defineProperty(value, 'name', { value: name, configurable: true });\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) try {\n defineProperty(value, 'prototype', { writable: false });\n } catch (error) { /* empty */ }\n } else value.prototype = undefined;\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = TEMPLATE.join(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","/* eslint-disable es-x/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\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","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\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 activeXDocument = null; // avoid memory leak\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-x/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","var 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-x/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","var global = require('../internals/global');\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 = global.TypeError;\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es-x/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 TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var 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-x/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","/* eslint-disable es-x/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var 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-x/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var global = require('../internals/global');\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 = global.Object;\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\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","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es-x/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var 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","var 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-x/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es-x/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","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\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-x/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 // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar TypeError = global.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 TypeError(\"Can't convert object to primitive value\");\n};\n","var 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","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\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 var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var 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","var 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","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.22.5',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.22.5/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var 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","var 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","// 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","var ceil = Math.ceil;\nvar floor = Math.floor;\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 -- safe\n return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);\n};\n","var 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 return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var global = require('../internals/global');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar Object = global.Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var global = require('../internals/global');\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 = global.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 TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var 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","var 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","var global = require('../internals/global');\nvar classof = require('../internals/classof');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};\n","var global = require('../internals/global');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n try {\n return String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","/* eslint-disable es-x/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var 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-x/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\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/define-iterator');\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 kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: 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';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.map.constructor');\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.set.constructor');\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar objectKeys = require('object-keys');\n\nvar isArguments = require('is-arguments');\n\nvar is = require('object-is');\n\nvar isRegex = require('is-regex');\n\nvar flags = require('regexp.prototype.flags');\n\nvar isDate = require('is-date-object');\n\nvar getTime = Date.prototype.getTime;\n\nfunction deepEqual(actual, expected, options) {\n var opts = options || {}; // 7.1. All identical values are equivalent, as determined by ===.\n\n if (opts.strict ? is(actual, expected) : actual === expected) {\n return true;\n } // 7.3. Other pairs that do not both pass typeof value == 'object', equivalence is determined by ==.\n\n\n if (!actual || !expected || _typeof(actual) !== 'object' && _typeof(expected) !== 'object') {\n return opts.strict ? is(actual, expected) : actual == expected;\n }\n /*\n * 7.4. For all other Object pairs, including Array objects, equivalence is\n * determined by having the same number of owned properties (as verified\n * with Object.prototype.hasOwnProperty.call), the same set of keys\n * (although not necessarily the same order), equivalent values for every\n * corresponding key, and an identical 'prototype' property. Note: this\n * accounts for both named and indexed properties on Arrays.\n */\n // eslint-disable-next-line no-use-before-define\n\n\n return objEquiv(actual, expected, opts);\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer(x) {\n if (!x || _typeof(x) !== 'object' || typeof x.length !== 'number') {\n return false;\n }\n\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n\n if (x.length > 0 && typeof x[0] !== 'number') {\n return false;\n }\n\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n /* eslint max-statements: [2, 50] */\n var i, key;\n\n if (_typeof(a) !== _typeof(b)) {\n return false;\n }\n\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) {\n return false;\n } // an identical 'prototype' property.\n\n\n if (a.prototype !== b.prototype) {\n return false;\n }\n\n if (isArguments(a) !== isArguments(b)) {\n return false;\n }\n\n var aIsRegex = isRegex(a);\n var bIsRegex = isRegex(b);\n\n if (aIsRegex !== bIsRegex) {\n return false;\n }\n\n if (aIsRegex || bIsRegex) {\n return a.source === b.source && flags(a) === flags(b);\n }\n\n if (isDate(a) && isDate(b)) {\n return getTime.call(a) === getTime.call(b);\n }\n\n var aIsBuffer = isBuffer(a);\n var bIsBuffer = isBuffer(b);\n\n if (aIsBuffer !== bIsBuffer) {\n return false;\n }\n\n if (aIsBuffer || bIsBuffer) {\n // && would work too, because both are true or both false here\n if (a.length !== b.length) {\n return false;\n }\n\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n if (_typeof(a) !== _typeof(b)) {\n return false;\n }\n\n try {\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n } catch (e) {\n // happens when one is a string literal and the other isn't\n return false;\n } // having the same number of owned properties (keys incorporates hasOwnProperty)\n\n\n if (ka.length !== kb.length) {\n return false;\n } // the same set of keys (although not necessarily the same order),\n\n\n ka.sort();\n kb.sort(); // ~~~cheap key test\n\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i]) {\n return false;\n }\n } // equivalent values for every corresponding key, and ~~~possibly expensive deep test\n\n\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n\n if (!deepEqual(a[key], b[key], opts)) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = deepEqual;","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar keys = require('object-keys');\n\nvar hasSymbols = typeof Symbol === 'function' && _typeof(Symbol('foo')) === 'symbol';\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function isFunction(fn) {\n return typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar hasPropertyDescriptors = require('has-property-descriptors')();\n\nvar supportsDescriptors = origDefineProperty && hasPropertyDescriptors;\n\nvar defineProperty = function defineProperty(object, name, value, predicate) {\n if (name in object && (!isFunction(predicate) || !predicate())) {\n return;\n }\n\n if (supportsDescriptors) {\n origDefineProperty(object, name, {\n configurable: true,\n enumerable: false,\n value: value,\n writable: true\n });\n } else {\n object[name] = value; // eslint-disable-line no-param-reassign\n }\n};\n\nvar defineProperties = function defineProperties(object, map) {\n var predicates = arguments.length > 2 ? arguments[2] : {};\n var props = keys(map);\n\n if (hasSymbols) {\n props = concat.call(props, Object.getOwnPropertySymbols(map));\n }\n\n for (var i = 0; i < props.length; i += 1) {\n defineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n }\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\nmodule.exports = defineProperties;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/*!\n * https://github.com/es-shims/es5-shim\n * @license es5-shim Copyright 2009-2020 by contributors, MIT License\n * see https://github.com/es-shims/es5-shim/blob/master/LICENSE\n */\n// vim: ts=4 sts=4 sw=4 expandtab\n// Add semicolon to prevent IIFE from being passed as argument to concatenated code.\n; // eslint-disable-line no-extra-semi\n// UMD (Universal Module Definition)\n// see https://github.com/umdjs/umd/blob/master/templates/returnExports.js\n\n(function (root, factory) {\n 'use strict';\n /* global define */\n\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(factory);\n } else if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object') {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like enviroments that support module.exports,\n // like Node.\n module.exports = factory();\n } else {\n // Browser globals (root is window)\n root.returnExports = factory(); // eslint-disable-line no-param-reassign\n }\n})(this, function () {\n /**\n * Brings an environment as close to ECMAScript 5 compliance\n * as is possible with the facilities of erstwhile engines.\n *\n * Annotated ES5: https://es5.github.io/ (specific links below)\n * ES5 Spec: https://www.ecma-international.org/wp-content/uploads/ECMA-262_5.1_edition_june_2011.pdf\n * Required reading: https://javascriptweblog.wordpress.com/2011/12/05/extending-javascript-natives/\n */\n // Shortcut to an often accessed properties, in order to avoid multiple\n // dereference that costs universally. This also holds a reference to known-good\n // functions.\n var $Array = Array;\n var ArrayPrototype = $Array.prototype;\n var $Object = Object;\n var ObjectPrototype = $Object.prototype;\n var $Function = Function;\n var FunctionPrototype = $Function.prototype;\n var $String = String;\n var StringPrototype = $String.prototype;\n var $Number = Number;\n var NumberPrototype = $Number.prototype;\n var array_slice = ArrayPrototype.slice;\n var array_splice = ArrayPrototype.splice;\n var array_push = ArrayPrototype.push;\n var array_unshift = ArrayPrototype.unshift;\n var array_concat = ArrayPrototype.concat;\n var array_join = ArrayPrototype.join;\n var call = FunctionPrototype.call;\n var apply = FunctionPrototype.apply;\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n var abs = Math.abs;\n var pow = Math.pow;\n var round = Math.round;\n var log = Math.log;\n var LOG10E = Math.LOG10E;\n\n var log10 = Math.log10 || function log10(value) {\n return log(value) * LOG10E;\n }; // Having a toString local variable name breaks in Opera so use to_string.\n\n\n var to_string = ObjectPrototype.toString;\n /* eslint-disable one-var-declaration-per-line, no-redeclare, max-statements-per-line */\n\n var hasToStringTag = typeof Symbol === 'function' && _typeof(Symbol.toStringTag) === 'symbol';\n var isCallable;\n /* inlined from https://npmjs.com/is-callable */\n\n var fnToStr = Function.prototype.toString,\n constructorRegex = /^\\s*class /,\n isES6ClassFn = function isES6ClassFn(value) {\n try {\n var fnStr = fnToStr.call(value);\n var singleStripped = fnStr.replace(/\\/\\/.*\\n/g, '');\n var multiStripped = singleStripped.replace(/\\/\\*[.\\s\\S]*\\*\\//g, '');\n var spaceStripped = multiStripped.replace(/\\n/mg, ' ').replace(/ {2}/g, ' ');\n return constructorRegex.test(spaceStripped);\n } catch (e) {\n return false;\n /* not a function */\n }\n },\n tryFunctionObject = function tryFunctionObject(value) {\n try {\n if (isES6ClassFn(value)) {\n return false;\n }\n\n fnToStr.call(value);\n return true;\n } catch (e) {\n return false;\n }\n },\n fnClass = '[object Function]',\n genClass = '[object GeneratorFunction]',\n isCallable = function isCallable(value) {\n if (!value) {\n return false;\n }\n\n if (typeof value !== 'function' && _typeof(value) !== 'object') {\n return false;\n }\n\n if (hasToStringTag) {\n return tryFunctionObject(value);\n }\n\n if (isES6ClassFn(value)) {\n return false;\n }\n\n var strClass = to_string.call(value);\n return strClass === fnClass || strClass === genClass;\n };\n\n var isRegex;\n /* inlined from https://npmjs.com/is-regex */\n\n var regexExec = RegExp.prototype.exec,\n tryRegexExec = function tryRegexExec(value) {\n try {\n regexExec.call(value);\n return true;\n } catch (e) {\n return false;\n }\n },\n regexClass = '[object RegExp]';\n\n isRegex = function isRegex(value) {\n if (_typeof(value) !== 'object') {\n return false;\n }\n\n return hasToStringTag ? tryRegexExec(value) : to_string.call(value) === regexClass;\n };\n\n var isString;\n /* inlined from https://npmjs.com/is-string */\n\n var strValue = String.prototype.valueOf,\n tryStringObject = function tryStringObject(value) {\n try {\n strValue.call(value);\n return true;\n } catch (e) {\n return false;\n }\n },\n stringClass = '[object String]';\n\n isString = function isString(value) {\n if (typeof value === 'string') {\n return true;\n }\n\n if (_typeof(value) !== 'object') {\n return false;\n }\n\n return hasToStringTag ? tryStringObject(value) : to_string.call(value) === stringClass;\n };\n /* eslint-enable one-var-declaration-per-line, no-redeclare, max-statements-per-line */\n\n /* inlined from https://npmjs.com/define-properties */\n\n\n var supportsDescriptors = $Object.defineProperty && function () {\n try {\n var obj = {};\n $Object.defineProperty(obj, 'x', {\n enumerable: false,\n value: obj\n }); // eslint-disable-next-line no-unreachable-loop, max-statements-per-line\n\n for (var _ in obj) {\n return false;\n } // jscs:ignore disallowUnusedVariables\n\n\n return obj.x === obj;\n } catch (e) {\n /* this is ES3 */\n return false;\n }\n }();\n\n var defineProperties = function (has) {\n // Define configurable, writable, and non-enumerable props\n // if they don't exist.\n var defineProperty;\n\n if (supportsDescriptors) {\n defineProperty = function defineProperty(object, name, method, forceAssign) {\n if (!forceAssign && name in object) {\n return;\n }\n\n $Object.defineProperty(object, name, {\n configurable: true,\n enumerable: false,\n writable: true,\n value: method\n });\n };\n } else {\n defineProperty = function defineProperty(object, name, method, forceAssign) {\n if (!forceAssign && name in object) {\n return;\n }\n\n object[name] = method; // eslint-disable-line no-param-reassign\n };\n }\n\n return function defineProperties(object, map, forceAssign) {\n for (var name in map) {\n if (has.call(map, name)) {\n defineProperty(object, name, map[name], forceAssign);\n }\n }\n };\n }(ObjectPrototype.hasOwnProperty); // this is needed in Chrome 15 (probably earlier) - 36\n // https://bugs.chromium.org/p/v8/issues/detail?id=3334\n\n\n if ($Object.defineProperty && supportsDescriptors) {\n var F = function F() {};\n\n var toStringSentinel = {};\n var sentinel = {\n toString: toStringSentinel\n };\n $Object.defineProperty(F, 'prototype', {\n value: sentinel,\n writable: false\n });\n\n if (new F().toString !== toStringSentinel) {\n var $dP = $Object.defineProperty;\n var $gOPD = $Object.getOwnPropertyDescriptor;\n defineProperties($Object, {\n defineProperty: function defineProperty(o, k, d) {\n var key = $String(k);\n\n if (typeof o === 'function' && key === 'prototype') {\n var desc = $gOPD(o, key);\n\n if (desc.writable && !d.writable && 'value' in d) {\n try {\n o[key] = d.value; // eslint-disable-line no-param-reassign\n } catch (e) {\n /**/\n }\n }\n\n return $dP(o, key, {\n configurable: 'configurable' in d ? d.configurable : desc.configurable,\n enumerable: 'enumerable' in d ? d.enumerable : desc.enumerable,\n writable: d.writable\n });\n }\n\n return $dP(o, key, d);\n }\n }, true);\n }\n } //\n // Util\n // ======\n //\n\n /* replaceable with https://npmjs.com/package/es-abstract /helpers/isPrimitive */\n\n\n var isPrimitive = function isPrimitive(input) {\n var type = _typeof(input);\n\n return input === null || type !== 'object' && type !== 'function';\n };\n\n var isActualNaN = $Number.isNaN || function isActualNaN(x) {\n return x !== x;\n };\n\n var ES = {\n // ES5 9.4\n // https://es5.github.io/#x9.4\n // http://jsperf.com/to-integer\n\n /* replaceable with https://npmjs.com/package/es-abstract ES5.ToInteger */\n ToInteger: function ToInteger(num) {\n var n = +num;\n\n if (isActualNaN(n)) {\n n = 0;\n } else if (n !== 0 && n !== 1 / 0 && n !== -(1 / 0)) {\n n = (n > 0 || -1) * floor(abs(n));\n }\n\n return n;\n },\n\n /* replaceable with https://npmjs.com/package/es-abstract ES5.ToPrimitive */\n ToPrimitive: function ToPrimitive(input) {\n var val, valueOf, toStr;\n\n if (isPrimitive(input)) {\n return input;\n }\n\n valueOf = input.valueOf;\n\n if (isCallable(valueOf)) {\n val = valueOf.call(input);\n\n if (isPrimitive(val)) {\n return val;\n }\n }\n\n toStr = input.toString;\n\n if (isCallable(toStr)) {\n val = toStr.call(input);\n\n if (isPrimitive(val)) {\n return val;\n }\n }\n\n throw new TypeError();\n },\n // ES5 9.9\n // https://es5.github.io/#x9.9\n\n /* replaceable with https://npmjs.com/package/es-abstract ES5.ToObject */\n ToObject: function ToObject(o) {\n if (o == null) {\n // this matches both null and undefined\n throw new TypeError(\"can't convert \" + o + ' to object');\n }\n\n return $Object(o);\n },\n\n /* replaceable with https://npmjs.com/package/es-abstract ES5.ToUint32 */\n ToUint32: function ToUint32(x) {\n return x >>> 0;\n }\n }; //\n // Function\n // ========\n //\n // ES-5 15.3.4.5\n // https://es5.github.io/#x15.3.4.5\n\n var Empty = function Empty() {};\n\n defineProperties(FunctionPrototype, {\n bind: function bind(that) {\n // .length is 1\n // 1. Let Target be the this value.\n var target = this; // 2. If IsCallable(Target) is false, throw a TypeError exception.\n\n if (!isCallable(target)) {\n throw new TypeError('Function.prototype.bind called on incompatible ' + target);\n } // 3. Let A be a new (possibly empty) internal list of all of the\n // argument values provided after thisArg (arg1, arg2 etc), in order.\n // XXX slicedArgs will stand in for \"A\" if used\n\n\n var args = array_slice.call(arguments, 1); // for normal call\n // 4. Let F be a new native ECMAScript object.\n // 11. Set the [[Prototype]] internal property of F to the standard\n // built-in Function prototype object as specified in 15.3.3.1.\n // 12. Set the [[Call]] internal property of F as described in\n // 15.3.4.5.1.\n // 13. Set the [[Construct]] internal property of F as described in\n // 15.3.4.5.2.\n // 14. Set the [[HasInstance]] internal property of F as described in\n // 15.3.4.5.3.\n\n var bound;\n\n var binder = function binder() {\n if (this instanceof bound) {\n // 15.3.4.5.2 [[Construct]]\n // When the [[Construct]] internal method of a function object,\n // F that was created using the bind function is called with a\n // list of arguments ExtraArgs, the following steps are taken:\n // 1. Let target be the value of F's [[TargetFunction]]\n // internal property.\n // 2. If target has no [[Construct]] internal method, a\n // TypeError exception is thrown.\n // 3. Let boundArgs be the value of F's [[BoundArgs]] internal\n // property.\n // 4. Let args be a new list containing the same values as the\n // list boundArgs in the same order followed by the same\n // values as the list ExtraArgs in the same order.\n // 5. Return the result of calling the [[Construct]] internal\n // method of target providing args as the arguments.\n var result = apply.call(target, this, array_concat.call(args, array_slice.call(arguments)));\n\n if ($Object(result) === result) {\n return result;\n }\n\n return this;\n } // 15.3.4.5.1 [[Call]]\n // When the [[Call]] internal method of a function object, F,\n // which was created using the bind function is called with a\n // this value and a list of arguments ExtraArgs, the following\n // steps are taken:\n // 1. Let boundArgs be the value of F's [[BoundArgs]] internal\n // property.\n // 2. Let boundThis be the value of F's [[BoundThis]] internal\n // property.\n // 3. Let target be the value of F's [[TargetFunction]] internal\n // property.\n // 4. Let args be a new list containing the same values as the\n // list boundArgs in the same order followed by the same\n // values as the list ExtraArgs in the same order.\n // 5. Return the result of calling the [[Call]] internal method\n // of target providing boundThis as the this value and\n // providing args as the arguments.\n // equiv: target.call(this, ...boundArgs, ...args)\n\n\n return apply.call(target, that, array_concat.call(args, array_slice.call(arguments)));\n }; // 15. If the [[Class]] internal property of Target is \"Function\", then\n // a. Let L be the length property of Target minus the length of A.\n // b. Set the length own property of F to either 0 or L, whichever is\n // larger.\n // 16. Else set the length own property of F to 0.\n\n\n var boundLength = max(0, target.length - args.length); // 17. Set the attributes of the length own property of F to the values\n // specified in 15.3.5.1.\n\n var boundArgs = [];\n\n for (var i = 0; i < boundLength; i++) {\n array_push.call(boundArgs, '$' + i);\n } // XXX Build a dynamic function with desired amount of arguments is the only\n // way to set the length property of a function.\n // In environments where Content Security Policies enabled (Chrome extensions,\n // for ex.) all use of eval or Function costructor throws an exception.\n // However in all of these environments Function.prototype.bind exists\n // and so this code will never be executed.\n\n\n bound = $Function('binder', 'return function (' + array_join.call(boundArgs, ',') + '){ return binder.apply(this, arguments); }')(binder);\n\n if (target.prototype) {\n Empty.prototype = target.prototype;\n bound.prototype = new Empty(); // Clean up dangling references.\n\n Empty.prototype = null;\n } // TODO\n // 18. Set the [[Extensible]] internal property of F to true.\n // TODO\n // 19. Let thrower be the [[ThrowTypeError]] function Object (13.2.3).\n // 20. Call the [[DefineOwnProperty]] internal method of F with\n // arguments \"caller\", PropertyDescriptor {[[Get]]: thrower, [[Set]]:\n // thrower, [[Enumerable]]: false, [[Configurable]]: false}, and\n // false.\n // 21. Call the [[DefineOwnProperty]] internal method of F with\n // arguments \"arguments\", PropertyDescriptor {[[Get]]: thrower,\n // [[Set]]: thrower, [[Enumerable]]: false, [[Configurable]]: false},\n // and false.\n // TODO\n // NOTE Function objects created using Function.prototype.bind do not\n // have a prototype property or the [[Code]], [[FormalParameters]], and\n // [[Scope]] internal properties.\n // XXX can't delete prototype in pure-js.\n // 22. Return F.\n\n\n return bound;\n }\n }); // _Please note: Shortcuts are defined after `Function.prototype.bind` as we\n // use it in defining shortcuts.\n\n var owns = call.bind(ObjectPrototype.hasOwnProperty);\n var toStr = call.bind(ObjectPrototype.toString);\n var arraySlice = call.bind(array_slice);\n var arraySliceApply = apply.bind(array_slice);\n /* globals document */\n\n if ((typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) === 'object' && document && document.documentElement) {\n try {\n arraySlice(document.documentElement.childNodes);\n } catch (e) {\n var origArraySlice = arraySlice;\n var origArraySliceApply = arraySliceApply;\n\n arraySlice = function arraySliceIE(arr) {\n var r = [];\n var i = arr.length;\n\n while (i-- > 0) {\n r[i] = arr[i];\n }\n\n return origArraySliceApply(r, origArraySlice(arguments, 1));\n };\n\n arraySliceApply = function arraySliceApplyIE(arr, args) {\n return origArraySliceApply(arraySlice(arr), args);\n };\n }\n }\n\n var strSlice = call.bind(StringPrototype.slice);\n var strSplit = call.bind(StringPrototype.split);\n var strIndexOf = call.bind(StringPrototype.indexOf);\n var pushCall = call.bind(array_push);\n var isEnum = call.bind(ObjectPrototype.propertyIsEnumerable);\n var arraySort = call.bind(ArrayPrototype.sort); //\n // Array\n // =====\n //\n\n var isArray = $Array.isArray || function isArray(obj) {\n return toStr(obj) === '[object Array]';\n }; // ES5 15.4.4.12\n // https://es5.github.io/#x15.4.4.13\n // Return len+argCount.\n // [bugfix, ielt8]\n // IE < 8 bug: [].unshift(0) === undefined but should be \"1\"\n\n\n var hasUnshiftReturnValueBug = [].unshift(0) !== 1;\n defineProperties(ArrayPrototype, {\n unshift: function unshift() {\n array_unshift.apply(this, arguments);\n return this.length;\n }\n }, hasUnshiftReturnValueBug); // ES5 15.4.3.2\n // https://es5.github.io/#x15.4.3.2\n // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/isArray\n\n defineProperties($Array, {\n isArray: isArray\n }); // The IsCallable() check in the Array functions\n // has been replaced with a strict check on the\n // internal class of the object to trap cases where\n // the provided function was actually a regular\n // expression literal, which in V8 and\n // JavaScriptCore is a typeof \"function\". Only in\n // V8 are regular expression literals permitted as\n // reduce parameters, so it is desirable in the\n // general case for the shim to match the more\n // strict and common behavior of rejecting regular\n // expressions.\n // ES5 15.4.4.18\n // https://es5.github.io/#x15.4.4.18\n // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/array/forEach\n // Check failure of by-index access of string characters (IE < 9)\n // and failure of `0 in boxedString` (Rhino)\n\n var boxedString = $Object('a');\n var splitString = boxedString[0] !== 'a' || !(0 in boxedString);\n\n var properlyBoxesContext = function properlyBoxed(method) {\n // Check node 0.6.21 bug where third parameter is not boxed\n var properlyBoxesNonStrict = true;\n var properlyBoxesStrict = true;\n var threwException = false;\n\n if (method) {\n try {\n method.call('foo', function (_, __, context) {\n if (_typeof(context) !== 'object') {\n properlyBoxesNonStrict = false;\n }\n });\n method.call([1], function () {\n 'use strict';\n\n properlyBoxesStrict = typeof this === 'string';\n }, 'x');\n } catch (e) {\n threwException = true;\n }\n }\n\n return !!method && !threwException && properlyBoxesNonStrict && properlyBoxesStrict;\n };\n\n defineProperties(ArrayPrototype, {\n forEach: function forEach(callbackfn\n /*, thisArg*/\n ) {\n var object = ES.ToObject(this);\n var self = splitString && isString(this) ? strSplit(this, '') : object;\n var i = -1;\n var length = ES.ToUint32(self.length);\n var T;\n\n if (arguments.length > 1) {\n T = arguments[1];\n } // If no callback function or if callback is not a callable function\n\n\n if (!isCallable(callbackfn)) {\n throw new TypeError('Array.prototype.forEach callback must be a function');\n }\n\n while (++i < length) {\n if (i in self) {\n // Invoke the callback function with call, passing arguments:\n // context, property value, property key, thisArg object\n if (typeof T === 'undefined') {\n callbackfn(self[i], i, object);\n } else {\n callbackfn.call(T, self[i], i, object);\n }\n }\n }\n }\n }, !properlyBoxesContext(ArrayPrototype.forEach)); // ES5 15.4.4.19\n // https://es5.github.io/#x15.4.4.19\n // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/map\n\n defineProperties(ArrayPrototype, {\n map: function map(callbackfn\n /*, thisArg*/\n ) {\n var object = ES.ToObject(this);\n var self = splitString && isString(this) ? strSplit(this, '') : object;\n var length = ES.ToUint32(self.length);\n var result = $Array(length);\n var T;\n\n if (arguments.length > 1) {\n T = arguments[1];\n } // If no callback function or if callback is not a callable function\n\n\n if (!isCallable(callbackfn)) {\n throw new TypeError('Array.prototype.map callback must be a function');\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self) {\n if (typeof T === 'undefined') {\n result[i] = callbackfn(self[i], i, object);\n } else {\n result[i] = callbackfn.call(T, self[i], i, object);\n }\n }\n }\n\n return result;\n }\n }, !properlyBoxesContext(ArrayPrototype.map)); // ES5 15.4.4.20\n // https://es5.github.io/#x15.4.4.20\n // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/filter\n\n defineProperties(ArrayPrototype, {\n filter: function filter(callbackfn\n /*, thisArg*/\n ) {\n var object = ES.ToObject(this);\n var self = splitString && isString(this) ? strSplit(this, '') : object;\n var length = ES.ToUint32(self.length);\n var result = [];\n var value;\n var T;\n\n if (arguments.length > 1) {\n T = arguments[1];\n } // If no callback function or if callback is not a callable function\n\n\n if (!isCallable(callbackfn)) {\n throw new TypeError('Array.prototype.filter callback must be a function');\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self) {\n value = self[i];\n\n if (typeof T === 'undefined' ? callbackfn(value, i, object) : callbackfn.call(T, value, i, object)) {\n pushCall(result, value);\n }\n }\n }\n\n return result;\n }\n }, !properlyBoxesContext(ArrayPrototype.filter)); // ES5 15.4.4.16\n // https://es5.github.io/#x15.4.4.16\n // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/every\n\n defineProperties(ArrayPrototype, {\n every: function every(callbackfn\n /*, thisArg*/\n ) {\n var object = ES.ToObject(this);\n var self = splitString && isString(this) ? strSplit(this, '') : object;\n var length = ES.ToUint32(self.length);\n var T;\n\n if (arguments.length > 1) {\n T = arguments[1];\n } // If no callback function or if callback is not a callable function\n\n\n if (!isCallable(callbackfn)) {\n throw new TypeError('Array.prototype.every callback must be a function');\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self && !(typeof T === 'undefined' ? callbackfn(self[i], i, object) : callbackfn.call(T, self[i], i, object))) {\n return false;\n }\n }\n\n return true;\n }\n }, !properlyBoxesContext(ArrayPrototype.every)); // ES5 15.4.4.17\n // https://es5.github.io/#x15.4.4.17\n // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/some\n\n defineProperties(ArrayPrototype, {\n some: function some(callbackfn\n /*, thisArg */\n ) {\n var object = ES.ToObject(this);\n var self = splitString && isString(this) ? strSplit(this, '') : object;\n var length = ES.ToUint32(self.length);\n var T;\n\n if (arguments.length > 1) {\n T = arguments[1];\n } // If no callback function or if callback is not a callable function\n\n\n if (!isCallable(callbackfn)) {\n throw new TypeError('Array.prototype.some callback must be a function');\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self && (typeof T === 'undefined' ? callbackfn(self[i], i, object) : callbackfn.call(T, self[i], i, object))) {\n return true;\n }\n }\n\n return false;\n }\n }, !properlyBoxesContext(ArrayPrototype.some)); // ES5 15.4.4.21\n // https://es5.github.io/#x15.4.4.21\n // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/reduce\n\n var reduceCoercesToObject = false;\n\n if (ArrayPrototype.reduce) {\n reduceCoercesToObject = _typeof(ArrayPrototype.reduce.call('es5', function (_, __, ___, list) {\n return list;\n })) === 'object';\n }\n\n defineProperties(ArrayPrototype, {\n reduce: function reduce(callbackfn\n /*, initialValue*/\n ) {\n var object = ES.ToObject(this);\n var self = splitString && isString(this) ? strSplit(this, '') : object;\n var length = ES.ToUint32(self.length); // If no callback function or if callback is not a callable function\n\n if (!isCallable(callbackfn)) {\n throw new TypeError('Array.prototype.reduce callback must be a function');\n } // no value to return if no initial value and an empty array\n\n\n if (length === 0 && arguments.length === 1) {\n throw new TypeError('reduce of empty array with no initial value');\n }\n\n var i = 0;\n var result;\n\n if (arguments.length >= 2) {\n result = arguments[1];\n } else {\n do {\n if (i in self) {\n result = self[i++];\n break;\n } // if array contains no values, no initial value to return\n\n\n if (++i >= length) {\n throw new TypeError('reduce of empty array with no initial value');\n }\n } while (true);\n }\n\n for (; i < length; i++) {\n if (i in self) {\n result = callbackfn(result, self[i], i, object);\n }\n }\n\n return result;\n }\n }, !reduceCoercesToObject); // ES5 15.4.4.22\n // https://es5.github.io/#x15.4.4.22\n // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/reduceRight\n\n var reduceRightCoercesToObject = false;\n\n if (ArrayPrototype.reduceRight) {\n reduceRightCoercesToObject = _typeof(ArrayPrototype.reduceRight.call('es5', function (_, __, ___, list) {\n return list;\n })) === 'object';\n }\n\n defineProperties(ArrayPrototype, {\n reduceRight: function reduceRight(callbackfn\n /*, initial*/\n ) {\n var object = ES.ToObject(this);\n var self = splitString && isString(this) ? strSplit(this, '') : object;\n var length = ES.ToUint32(self.length); // If no callback function or if callback is not a callable function\n\n if (!isCallable(callbackfn)) {\n throw new TypeError('Array.prototype.reduceRight callback must be a function');\n } // no value to return if no initial value, empty array\n\n\n if (length === 0 && arguments.length === 1) {\n throw new TypeError('reduceRight of empty array with no initial value');\n }\n\n var result;\n var i = length - 1;\n\n if (arguments.length >= 2) {\n result = arguments[1];\n } else {\n do {\n if (i in self) {\n result = self[i--];\n break;\n } // if array contains no values, no initial value to return\n\n\n if (--i < 0) {\n throw new TypeError('reduceRight of empty array with no initial value');\n }\n } while (true);\n }\n\n if (i < 0) {\n return result;\n }\n\n do {\n if (i in self) {\n result = callbackfn(result, self[i], i, object);\n }\n } while (i--);\n\n return result;\n }\n }, !reduceRightCoercesToObject); // ES5 15.4.4.14\n // https://es5.github.io/#x15.4.4.14\n // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf\n\n var hasFirefox2IndexOfBug = ArrayPrototype.indexOf && [0, 1].indexOf(1, 2) !== -1;\n defineProperties(ArrayPrototype, {\n indexOf: function indexOf(searchElement\n /*, fromIndex */\n ) {\n var self = splitString && isString(this) ? strSplit(this, '') : ES.ToObject(this);\n var length = ES.ToUint32(self.length);\n\n if (length === 0) {\n return -1;\n }\n\n var i = 0;\n\n if (arguments.length > 1) {\n i = ES.ToInteger(arguments[1]);\n } // handle negative indices\n\n\n i = i >= 0 ? i : max(0, length + i);\n\n for (; i < length; i++) {\n if (i in self && self[i] === searchElement) {\n return i;\n }\n }\n\n return -1;\n }\n }, hasFirefox2IndexOfBug); // ES5 15.4.4.15\n // https://es5.github.io/#x15.4.4.15\n // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/lastIndexOf\n\n var hasFirefox2LastIndexOfBug = ArrayPrototype.lastIndexOf && [0, 1].lastIndexOf(0, -3) !== -1;\n defineProperties(ArrayPrototype, {\n lastIndexOf: function lastIndexOf(searchElement\n /*, fromIndex */\n ) {\n var self = splitString && isString(this) ? strSplit(this, '') : ES.ToObject(this);\n var length = ES.ToUint32(self.length);\n\n if (length === 0) {\n return -1;\n }\n\n var i = length - 1;\n\n if (arguments.length > 1) {\n i = min(i, ES.ToInteger(arguments[1]));\n } // handle negative indices\n\n\n i = i >= 0 ? i : length - abs(i);\n\n for (; i >= 0; i--) {\n if (i in self && searchElement === self[i]) {\n return i;\n }\n }\n\n return -1;\n }\n }, hasFirefox2LastIndexOfBug); // ES5 15.4.4.12\n // https://es5.github.io/#x15.4.4.12\n\n var spliceNoopReturnsEmptyArray = function () {\n var a = [1, 2];\n var result = a.splice();\n return a.length === 2 && isArray(result) && result.length === 0;\n }();\n\n defineProperties(ArrayPrototype, {\n // Safari 5.0 bug where .splice() returns undefined\n splice: function splice(start, deleteCount) {\n if (arguments.length === 0) {\n return [];\n }\n\n return array_splice.apply(this, arguments);\n }\n }, !spliceNoopReturnsEmptyArray);\n\n var spliceWorksWithEmptyObject = function () {\n var obj = {};\n ArrayPrototype.splice.call(obj, 0, 0, 1);\n return obj.length === 1;\n }();\n\n var hasES6Defaults = [0, 1, 2].splice(0).length === 3;\n defineProperties(ArrayPrototype, {\n splice: function splice(start, deleteCount) {\n if (arguments.length === 0) {\n return [];\n }\n\n var args = arguments;\n this.length = max(ES.ToInteger(this.length), 0);\n\n if (arguments.length > 0 && typeof deleteCount !== 'number') {\n args = arraySlice(arguments);\n\n if (args.length < 2) {\n pushCall(args, this.length - start);\n } else {\n args[1] = ES.ToInteger(deleteCount);\n }\n }\n\n return array_splice.apply(this, args);\n }\n }, !spliceWorksWithEmptyObject || !hasES6Defaults);\n\n var spliceWorksWithLargeSparseArrays = function () {\n // Per https://github.com/es-shims/es5-shim/issues/295\n // Safari 7/8 breaks with sparse arrays of size 1e5 or greater\n var arr = new $Array(1e5); // note: the index MUST be 8 or larger or the test will false pass\n\n arr[8] = 'x';\n arr.splice(1, 1); // note: this test must be defined *after* the indexOf shim\n // per https://github.com/es-shims/es5-shim/issues/313\n\n return arr.indexOf('x') === 7;\n }();\n\n var spliceWorksWithSmallSparseArrays = function () {\n // Per https://github.com/es-shims/es5-shim/issues/295\n // Opera 12.15 breaks on this, no idea why.\n var n = 256;\n var arr = [];\n arr[n] = 'a';\n arr.splice(n + 1, 0, 'b');\n return arr[n] === 'a';\n }();\n\n defineProperties(ArrayPrototype, {\n splice: function splice(start, deleteCount) {\n var O = ES.ToObject(this);\n var A = [];\n var len = ES.ToUint32(O.length);\n var relativeStart = ES.ToInteger(start);\n var actualStart = relativeStart < 0 ? max(len + relativeStart, 0) : min(relativeStart, len);\n var actualDeleteCount = arguments.length === 0 ? 0 : arguments.length === 1 ? len - actualStart : min(max(ES.ToInteger(deleteCount), 0), len - actualStart);\n var k = 0;\n var from;\n\n while (k < actualDeleteCount) {\n from = $String(actualStart + k);\n\n if (owns(O, from)) {\n A[k] = O[from];\n }\n\n k += 1;\n }\n\n var items = arraySlice(arguments, 2);\n var itemCount = items.length;\n var to;\n\n if (itemCount < actualDeleteCount) {\n k = actualStart;\n var maxK = len - actualDeleteCount;\n\n while (k < maxK) {\n from = $String(k + actualDeleteCount);\n to = $String(k + itemCount);\n\n if (owns(O, from)) {\n O[to] = O[from];\n } else {\n delete O[to];\n }\n\n k += 1;\n }\n\n k = len;\n var minK = len - actualDeleteCount + itemCount;\n\n while (k > minK) {\n delete O[k - 1];\n k -= 1;\n }\n } else if (itemCount > actualDeleteCount) {\n k = len - actualDeleteCount;\n\n while (k > actualStart) {\n from = $String(k + actualDeleteCount - 1);\n to = $String(k + itemCount - 1);\n\n if (owns(O, from)) {\n O[to] = O[from];\n } else {\n delete O[to];\n }\n\n k -= 1;\n }\n }\n\n k = actualStart;\n\n for (var i = 0; i < items.length; ++i) {\n O[k] = items[i];\n k += 1;\n }\n\n O.length = len - actualDeleteCount + itemCount;\n return A;\n }\n }, !spliceWorksWithLargeSparseArrays || !spliceWorksWithSmallSparseArrays);\n var originalJoin = ArrayPrototype.join;\n var hasStringJoinBug;\n\n try {\n hasStringJoinBug = Array.prototype.join.call('123', ',') !== '1,2,3';\n } catch (e) {\n hasStringJoinBug = true;\n }\n\n if (hasStringJoinBug) {\n defineProperties(ArrayPrototype, {\n join: function join(separator) {\n var sep = typeof separator === 'undefined' ? ',' : separator;\n return originalJoin.call(isString(this) ? strSplit(this, '') : this, sep);\n }\n }, hasStringJoinBug);\n }\n\n var hasJoinUndefinedBug = [1, 2].join(undefined) !== '1,2';\n\n if (hasJoinUndefinedBug) {\n defineProperties(ArrayPrototype, {\n join: function join(separator) {\n var sep = typeof separator === 'undefined' ? ',' : separator;\n return originalJoin.call(this, sep);\n }\n }, hasJoinUndefinedBug);\n }\n\n var pushShim = function push(item) {\n var O = ES.ToObject(this);\n var n = ES.ToUint32(O.length);\n var i = 0;\n\n while (i < arguments.length) {\n O[n + i] = arguments[i];\n i += 1;\n }\n\n O.length = n + i;\n return n + i;\n };\n\n var pushIsNotGeneric = function () {\n var obj = {};\n var result = Array.prototype.push.call(obj, undefined);\n return result !== 1 || obj.length !== 1 || typeof obj[0] !== 'undefined' || !owns(obj, 0);\n }();\n\n defineProperties(ArrayPrototype, {\n push: function push(item) {\n if (isArray(this)) {\n return array_push.apply(this, arguments);\n }\n\n return pushShim.apply(this, arguments);\n }\n }, pushIsNotGeneric); // This fixes a very weird bug in Opera 10.6 when pushing `undefined\n\n var pushUndefinedIsWeird = function () {\n var arr = [];\n var result = arr.push(undefined);\n return result !== 1 || arr.length !== 1 || typeof arr[0] !== 'undefined' || !owns(arr, 0);\n }();\n\n defineProperties(ArrayPrototype, {\n push: pushShim\n }, pushUndefinedIsWeird); // ES5 15.2.3.14\n // https://es5.github.io/#x15.4.4.10\n // Fix boxed string bug\n\n defineProperties(ArrayPrototype, {\n slice: function slice(start, end) {\n var arr = isString(this) ? strSplit(this, '') : this;\n return arraySliceApply(arr, arguments);\n }\n }, splitString);\n\n var sortIgnoresNonFunctions = function () {\n try {\n [1, 2].sort(null);\n } catch (e) {\n try {\n [1, 2].sort({});\n } catch (e2) {\n return false;\n }\n }\n\n return true;\n }();\n\n var sortThrowsOnRegex = function () {\n // this is a problem in Firefox 4, in which `typeof /a/ === 'function'`\n try {\n [1, 2].sort(/a/);\n return false;\n } catch (e) {}\n\n return true;\n }();\n\n var sortIgnoresUndefined = function () {\n // applies in IE 8, for one.\n try {\n [1, 2].sort(undefined);\n return true;\n } catch (e) {}\n\n return false;\n }();\n\n defineProperties(ArrayPrototype, {\n sort: function sort(compareFn) {\n if (typeof compareFn === 'undefined') {\n return arraySort(this);\n }\n\n if (!isCallable(compareFn)) {\n throw new TypeError('Array.prototype.sort callback must be a function');\n }\n\n return arraySort(this, compareFn);\n }\n }, sortIgnoresNonFunctions || !sortIgnoresUndefined || !sortThrowsOnRegex); //\n // Object\n // ======\n //\n // ES5 15.2.3.14\n // https://es5.github.io/#x15.2.3.14\n // https://web.archive.org/web/20140727042234/http://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation\n // eslint-disable-next-line quote-props\n\n var hasDontEnumBug = !isEnum({\n 'toString': null\n }, 'toString'); // jscs:ignore disallowQuotedKeysInObjects\n\n var hasProtoEnumBug = isEnum(function () {}, 'prototype');\n var hasStringEnumBug = !owns('x', '0');\n\n var equalsConstructorPrototype = function equalsConstructorPrototype(o) {\n var ctor = o.constructor;\n return ctor && ctor.prototype === o;\n };\n\n var excludedKeys = {\n $applicationCache: true,\n $console: true,\n $external: true,\n $frame: true,\n $frameElement: true,\n $frames: true,\n $innerHeight: true,\n $innerWidth: true,\n $onmozfullscreenchange: true,\n $onmozfullscreenerror: true,\n $outerHeight: true,\n $outerWidth: true,\n $pageXOffset: true,\n $pageYOffset: true,\n $parent: true,\n $scrollLeft: true,\n $scrollTop: true,\n $scrollX: true,\n $scrollY: true,\n $self: true,\n $webkitIndexedDB: true,\n $webkitStorageInfo: true,\n $window: true,\n $width: true,\n $height: true,\n $top: true,\n $localStorage: true\n };\n\n var hasAutomationEqualityBug = function () {\n /* globals window */\n if (typeof window === 'undefined') {\n return false;\n }\n\n for (var k in window) {\n try {\n if (!excludedKeys['$' + k] && owns(window, k) && window[k] !== null && _typeof(window[k]) === 'object') {\n equalsConstructorPrototype(window[k]);\n }\n } catch (e) {\n return true;\n }\n }\n\n return false;\n }();\n\n var equalsConstructorPrototypeIfNotBuggy = function equalsConstructorPrototypeIfNotBuggy(object) {\n if (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n return equalsConstructorPrototype(object);\n }\n\n try {\n return equalsConstructorPrototype(object);\n } catch (e) {\n return false;\n }\n };\n\n var dontEnums = ['toString', 'toLocaleString', 'valueOf', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'constructor'];\n var dontEnumsLength = dontEnums.length; // taken directly from https://github.com/ljharb/is-arguments/blob/master/index.js\n // can be replaced with require('is-arguments') if we ever use a build process instead\n\n var isStandardArguments = function isArguments(value) {\n return toStr(value) === '[object Arguments]';\n };\n\n var isLegacyArguments = function isArguments(value) {\n return value !== null && _typeof(value) === 'object' && typeof value.length === 'number' && value.length >= 0 && !isArray(value) && isCallable(value.callee);\n };\n\n var isArguments = isStandardArguments(arguments) ? isStandardArguments : isLegacyArguments;\n defineProperties($Object, {\n keys: function keys(object) {\n var isFn = isCallable(object);\n var isArgs = isArguments(object);\n var isObject = object !== null && _typeof(object) === 'object';\n var isStr = isObject && isString(object);\n\n if (!isObject && !isFn && !isArgs) {\n throw new TypeError('Object.keys called on a non-object');\n }\n\n var theKeys = [];\n var skipProto = hasProtoEnumBug && isFn;\n\n if (isStr && hasStringEnumBug || isArgs) {\n for (var i = 0; i < object.length; ++i) {\n pushCall(theKeys, $String(i));\n }\n }\n\n if (!isArgs) {\n for (var name in object) {\n if (!(skipProto && name === 'prototype') && owns(object, name)) {\n pushCall(theKeys, $String(name));\n }\n }\n }\n\n if (hasDontEnumBug) {\n var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n for (var j = 0; j < dontEnumsLength; j++) {\n var dontEnum = dontEnums[j];\n\n if (!(skipConstructor && dontEnum === 'constructor') && owns(object, dontEnum)) {\n pushCall(theKeys, dontEnum);\n }\n }\n }\n\n return theKeys;\n }\n });\n\n var keysWorksWithArguments = $Object.keys && function () {\n // Safari 5.0 bug\n return $Object.keys(arguments).length === 2;\n }(1, 2);\n\n var keysHasArgumentsLengthBug = $Object.keys && function () {\n var argKeys = $Object.keys(arguments);\n return arguments.length !== 1 || argKeys.length !== 1 || argKeys[0] !== 1;\n }(1);\n\n var originalKeys = $Object.keys;\n defineProperties($Object, {\n keys: function keys(object) {\n if (isArguments(object)) {\n return originalKeys(arraySlice(object));\n }\n\n return originalKeys(object);\n }\n }, !keysWorksWithArguments || keysHasArgumentsLengthBug); //\n // Date\n // ====\n //\n\n var hasNegativeMonthYearBug = new Date(-3509827329600292).getUTCMonth() !== 0;\n var aNegativeTestDate = new Date(-1509842289600292);\n var aPositiveTestDate = new Date(1449662400000);\n var hasToUTCStringFormatBug = aNegativeTestDate.toUTCString() !== 'Mon, 01 Jan -45875 11:59:59 GMT';\n var hasToDateStringFormatBug;\n var hasToStringFormatBug;\n var timeZoneOffset = aNegativeTestDate.getTimezoneOffset();\n\n if (timeZoneOffset < -720) {\n hasToDateStringFormatBug = aNegativeTestDate.toDateString() !== 'Tue Jan 02 -45875';\n hasToStringFormatBug = !/^Thu Dec 10 2015 \\d\\d:\\d\\d:\\d\\d GMT[-+]\\d\\d\\d\\d(?: |$)/.test(String(aPositiveTestDate));\n } else {\n hasToDateStringFormatBug = aNegativeTestDate.toDateString() !== 'Mon Jan 01 -45875';\n hasToStringFormatBug = !/^Wed Dec 09 2015 \\d\\d:\\d\\d:\\d\\d GMT[-+]\\d\\d\\d\\d(?: |$)/.test(String(aPositiveTestDate));\n }\n\n var originalGetFullYear = call.bind(Date.prototype.getFullYear);\n var originalGetMonth = call.bind(Date.prototype.getMonth);\n var originalGetDate = call.bind(Date.prototype.getDate);\n var originalGetUTCFullYear = call.bind(Date.prototype.getUTCFullYear);\n var originalGetUTCMonth = call.bind(Date.prototype.getUTCMonth);\n var originalGetUTCDate = call.bind(Date.prototype.getUTCDate);\n var originalGetUTCDay = call.bind(Date.prototype.getUTCDay);\n var originalGetUTCHours = call.bind(Date.prototype.getUTCHours);\n var originalGetUTCMinutes = call.bind(Date.prototype.getUTCMinutes);\n var originalGetUTCSeconds = call.bind(Date.prototype.getUTCSeconds);\n var originalGetUTCMilliseconds = call.bind(Date.prototype.getUTCMilliseconds);\n var dayName = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n var monthName = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n\n var daysInMonth = function daysInMonth(month, year) {\n return originalGetDate(new Date(year, month, 0));\n };\n\n defineProperties(Date.prototype, {\n getFullYear: function getFullYear() {\n if (!this || !(this instanceof Date)) {\n throw new TypeError('this is not a Date object.');\n }\n\n var year = originalGetFullYear(this);\n\n if (year < 0 && originalGetMonth(this) > 11) {\n return year + 1;\n }\n\n return year;\n },\n getMonth: function getMonth() {\n if (!this || !(this instanceof Date)) {\n throw new TypeError('this is not a Date object.');\n }\n\n var year = originalGetFullYear(this);\n var month = originalGetMonth(this);\n\n if (year < 0 && month > 11) {\n return 0;\n }\n\n return month;\n },\n getDate: function getDate() {\n if (!this || !(this instanceof Date)) {\n throw new TypeError('this is not a Date object.');\n }\n\n var year = originalGetFullYear(this);\n var month = originalGetMonth(this);\n var date = originalGetDate(this);\n\n if (year < 0 && month > 11) {\n if (month === 12) {\n return date;\n }\n\n var days = daysInMonth(0, year + 1);\n return days - date + 1;\n }\n\n return date;\n },\n getUTCFullYear: function getUTCFullYear() {\n if (!this || !(this instanceof Date)) {\n throw new TypeError('this is not a Date object.');\n }\n\n var year = originalGetUTCFullYear(this);\n\n if (year < 0 && originalGetUTCMonth(this) > 11) {\n return year + 1;\n }\n\n return year;\n },\n getUTCMonth: function getUTCMonth() {\n if (!this || !(this instanceof Date)) {\n throw new TypeError('this is not a Date object.');\n }\n\n var year = originalGetUTCFullYear(this);\n var month = originalGetUTCMonth(this);\n\n if (year < 0 && month > 11) {\n return 0;\n }\n\n return month;\n },\n getUTCDate: function getUTCDate() {\n if (!this || !(this instanceof Date)) {\n throw new TypeError('this is not a Date object.');\n }\n\n var year = originalGetUTCFullYear(this);\n var month = originalGetUTCMonth(this);\n var date = originalGetUTCDate(this);\n\n if (year < 0 && month > 11) {\n if (month === 12) {\n return date;\n }\n\n var days = daysInMonth(0, year + 1);\n return days - date + 1;\n }\n\n return date;\n }\n }, hasNegativeMonthYearBug);\n defineProperties(Date.prototype, {\n toUTCString: function toUTCString() {\n if (!this || !(this instanceof Date)) {\n throw new TypeError('this is not a Date object.');\n }\n\n var day = originalGetUTCDay(this);\n var date = originalGetUTCDate(this);\n var month = originalGetUTCMonth(this);\n var year = originalGetUTCFullYear(this);\n var hour = originalGetUTCHours(this);\n var minute = originalGetUTCMinutes(this);\n var second = originalGetUTCSeconds(this);\n return dayName[day] + ', ' + (date < 10 ? '0' + date : date) + ' ' + monthName[month] + ' ' + year + ' ' + (hour < 10 ? '0' + hour : hour) + ':' + (minute < 10 ? '0' + minute : minute) + ':' + (second < 10 ? '0' + second : second) + ' GMT';\n }\n }, hasNegativeMonthYearBug || hasToUTCStringFormatBug); // Opera 12 has `,`\n\n defineProperties(Date.prototype, {\n toDateString: function toDateString() {\n if (!this || !(this instanceof Date)) {\n throw new TypeError('this is not a Date object.');\n }\n\n var day = this.getDay();\n var date = this.getDate();\n var month = this.getMonth();\n var year = this.getFullYear();\n return dayName[day] + ' ' + monthName[month] + ' ' + (date < 10 ? '0' + date : date) + ' ' + year;\n }\n }, hasNegativeMonthYearBug || hasToDateStringFormatBug); // can't use defineProperties here because of toString enumeration issue in IE <= 8\n\n if (hasNegativeMonthYearBug || hasToStringFormatBug) {\n Date.prototype.toString = function toString() {\n if (!this || !(this instanceof Date)) {\n throw new TypeError('this is not a Date object.');\n }\n\n var day = this.getDay();\n var date = this.getDate();\n var month = this.getMonth();\n var year = this.getFullYear();\n var hour = this.getHours();\n var minute = this.getMinutes();\n var second = this.getSeconds();\n var timezoneOffset = this.getTimezoneOffset();\n var hoursOffset = floor(abs(timezoneOffset) / 60);\n var minutesOffset = floor(abs(timezoneOffset) % 60);\n return dayName[day] + ' ' + monthName[month] + ' ' + (date < 10 ? '0' + date : date) + ' ' + year + ' ' + (hour < 10 ? '0' + hour : hour) + ':' + (minute < 10 ? '0' + minute : minute) + ':' + (second < 10 ? '0' + second : second) + ' GMT' + (timezoneOffset > 0 ? '-' : '+') + (hoursOffset < 10 ? '0' + hoursOffset : hoursOffset) + (minutesOffset < 10 ? '0' + minutesOffset : minutesOffset);\n };\n\n if (supportsDescriptors) {\n $Object.defineProperty(Date.prototype, 'toString', {\n configurable: true,\n enumerable: false,\n writable: true\n });\n }\n } // ES5 15.9.5.43\n // https://es5.github.io/#x15.9.5.43\n // This function returns a String value represent the instance in time\n // represented by this Date object. The format of the String is the Date Time\n // string format defined in 15.9.1.15. All fields are present in the String.\n // The time zone is always UTC, denoted by the suffix Z. If the time value of\n // this object is not a finite Number a RangeError exception is thrown.\n\n\n var negativeDate = -62198755200000;\n var negativeYearString = '-000001';\n var hasNegativeDateBug = Date.prototype.toISOString && new Date(negativeDate).toISOString().indexOf(negativeYearString) === -1; // eslint-disable-line max-len\n\n var hasSafari51DateBug = Date.prototype.toISOString && new Date(-1).toISOString() !== '1969-12-31T23:59:59.999Z';\n var getTime = call.bind(Date.prototype.getTime);\n defineProperties(Date.prototype, {\n toISOString: function toISOString() {\n if (!isFinite(this) || !isFinite(getTime(this))) {\n // Adope Photoshop requires the second check.\n throw new RangeError('Date.prototype.toISOString called on non-finite value.');\n }\n\n var year = originalGetUTCFullYear(this);\n var month = originalGetUTCMonth(this); // see https://github.com/es-shims/es5-shim/issues/111\n\n year += floor(month / 12);\n month = (month % 12 + 12) % 12; // the date time string format is specified in 15.9.1.15.\n\n var result = [month + 1, originalGetUTCDate(this), originalGetUTCHours(this), originalGetUTCMinutes(this), originalGetUTCSeconds(this)];\n year = (year < 0 ? '-' : year > 9999 ? '+' : '') + strSlice('00000' + abs(year), 0 <= year && year <= 9999 ? -4 : -6);\n\n for (var i = 0; i < result.length; ++i) {\n // pad months, days, hours, minutes, and seconds to have two digits.\n result[i] = strSlice('00' + result[i], -2);\n } // pad milliseconds to have three digits.\n\n\n return year + '-' + arraySlice(result, 0, 2).join('-') + 'T' + arraySlice(result, 2).join(':') + '.' + strSlice('000' + originalGetUTCMilliseconds(this), -3) + 'Z';\n }\n }, hasNegativeDateBug || hasSafari51DateBug); // ES5 15.9.5.44\n // https://es5.github.io/#x15.9.5.44\n // This function provides a String representation of a Date object for use by\n // JSON.stringify (15.12.3).\n\n var dateToJSONIsSupported = function () {\n try {\n return Date.prototype.toJSON && new Date(NaN).toJSON() === null && new Date(negativeDate).toJSON().indexOf(negativeYearString) !== -1 && Date.prototype.toJSON.call({\n // generic\n toISOString: function toISOString() {\n return true;\n }\n });\n } catch (e) {\n return false;\n }\n }();\n\n if (!dateToJSONIsSupported) {\n Date.prototype.toJSON = function toJSON(key) {\n // When the toJSON method is called with argument key, the following\n // steps are taken:\n // 1. Let O be the result of calling ToObject, giving it the this\n // value as its argument.\n // 2. Let tv be ES.ToPrimitive(O, hint Number).\n var O = $Object(this);\n var tv = ES.ToPrimitive(O); // 3. If tv is a Number and is not finite, return null.\n\n if (typeof tv === 'number' && !isFinite(tv)) {\n return null;\n } // 4. Let toISO be the result of calling the [[Get]] internal method of\n // O with argument \"toISOString\".\n\n\n var toISO = O.toISOString; // 5. If IsCallable(toISO) is false, throw a TypeError exception.\n\n if (!isCallable(toISO)) {\n throw new TypeError('toISOString property is not callable');\n } // 6. Return the result of calling the [[Call]] internal method of\n // toISO with O as the this value and an empty argument list.\n\n\n return toISO.call(O); // NOTE 1 The argument is ignored.\n // NOTE 2 The toJSON function is intentionally generic; it does not\n // require that its this value be a Date object. Therefore, it can be\n // transferred to other kinds of objects for use as a method. However,\n // it does require that any such object have a toISOString method. An\n // object is free to use the argument key to filter its\n // stringification.\n };\n } // ES5 15.9.4.2\n // https://es5.github.io/#x15.9.4.2\n // based on work shared by Daniel Friesen (dantman)\n // https://gist.github.com/303249\n\n\n var supportsExtendedYears = Date.parse('+033658-09-27T01:46:40.000Z') === 1e15;\n var acceptsInvalidDates = !isNaN(Date.parse('2012-04-04T24:00:00.500Z')) || !isNaN(Date.parse('2012-11-31T23:59:59.000Z')) || !isNaN(Date.parse('2012-12-31T23:59:60.000Z'));\n var doesNotParseY2KNewYear = isNaN(Date.parse('2000-01-01T00:00:00.000Z'));\n\n if (doesNotParseY2KNewYear || acceptsInvalidDates || !supportsExtendedYears) {\n // XXX global assignment won't work in embeddings that use\n // an alternate object for the context.\n var maxSafeUnsigned32Bit = pow(2, 31) - 1;\n var hasSafariSignedIntBug = isActualNaN(new Date(1970, 0, 1, 0, 0, 0, maxSafeUnsigned32Bit + 1).getTime()); // eslint-disable-next-line no-implicit-globals, no-global-assign\n\n Date = function (NativeDate) {\n // Date.length === 7\n var DateShim = function Date(Y, M, D, h, m, s, ms) {\n var length = arguments.length;\n var date;\n\n if (this instanceof NativeDate) {\n var seconds = s;\n var millis = ms;\n\n if (hasSafariSignedIntBug && length >= 7 && ms > maxSafeUnsigned32Bit) {\n // work around a Safari 8/9 bug where it treats the seconds as signed\n var msToShift = floor(ms / maxSafeUnsigned32Bit) * maxSafeUnsigned32Bit;\n var sToShift = floor(msToShift / 1e3);\n seconds += sToShift;\n millis -= sToShift * 1e3;\n }\n\n var parsed = DateShim.parse(Y);\n var hasNegTimestampParseBug = isNaN(parsed);\n date = length === 1 && $String(Y) === Y && !hasNegTimestampParseBug // isString(Y)\n // We explicitly pass it through parse:\n ? new NativeDate(parsed) // We have to manually make calls depending on argument\n // length here\n : length >= 7 ? new NativeDate(Y, M, D, h, m, seconds, millis) : length >= 6 ? new NativeDate(Y, M, D, h, m, seconds) : length >= 5 ? new NativeDate(Y, M, D, h, m) : length >= 4 ? new NativeDate(Y, M, D, h) : length >= 3 ? new NativeDate(Y, M, D) : length >= 2 ? new NativeDate(Y, M) : length >= 1 ? new NativeDate(Y instanceof NativeDate ? +Y : Y) : new NativeDate();\n } else {\n date = NativeDate.apply(this, arguments);\n }\n\n if (!isPrimitive(date)) {\n // Prevent mixups with unfixed Date object\n defineProperties(date, {\n constructor: DateShim\n }, true);\n }\n\n return date;\n }; // 15.9.1.15 Date Time String Format.\n\n\n var isoDateExpression = new RegExp('^' + '(\\\\d{4}|[+-]\\\\d{6})' // four-digit year capture or sign + 6-digit extended year\n + '(?:-(\\\\d{2})' // optional month capture\n + '(?:-(\\\\d{2})' // optional day capture\n + '(?:' // capture hours:minutes:seconds.milliseconds\n + 'T(\\\\d{2})' // hours capture\n + ':(\\\\d{2})' // minutes capture\n + '(?:' // optional :seconds.milliseconds\n + ':(\\\\d{2})' // seconds capture\n + '(?:(\\\\.\\\\d{1,}))?' // milliseconds capture\n + ')?' + '(' // capture UTC offset component\n + 'Z|' // UTC capture\n + '(?:' // offset specifier +/-hours:minutes\n + '([-+])' // sign capture\n + '(\\\\d{2})' // hours offset capture\n + ':(\\\\d{2})' // minutes offset capture\n + ')' + ')?)?)?)?' + '$');\n var months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365];\n\n var dayFromMonth = function dayFromMonth(year, month) {\n var t = month > 1 ? 1 : 0;\n return months[month] + floor((year - 1969 + t) / 4) - floor((year - 1901 + t) / 100) + floor((year - 1601 + t) / 400) + 365 * (year - 1970);\n };\n\n var toUTC = function toUTC(t) {\n var s = 0;\n var ms = t;\n\n if (hasSafariSignedIntBug && ms > maxSafeUnsigned32Bit) {\n // work around a Safari 8/9 bug where it treats the seconds as signed\n var msToShift = floor(ms / maxSafeUnsigned32Bit) * maxSafeUnsigned32Bit;\n var sToShift = floor(msToShift / 1e3);\n s += sToShift;\n ms -= sToShift * 1e3;\n }\n\n return $Number(new NativeDate(1970, 0, 1, 0, 0, s, ms));\n }; // Copy any custom methods a 3rd party library may have added\n\n\n for (var key in NativeDate) {\n if (owns(NativeDate, key)) {\n DateShim[key] = NativeDate[key];\n }\n } // Copy \"native\" methods explicitly; they may be non-enumerable\n\n\n defineProperties(DateShim, {\n now: NativeDate.now,\n UTC: NativeDate.UTC\n }, true);\n DateShim.prototype = NativeDate.prototype;\n defineProperties(DateShim.prototype, {\n constructor: DateShim\n }, true); // Upgrade Date.parse to handle simplified ISO 8601 strings\n\n var parseShim = function parse(string) {\n var match = isoDateExpression.exec(string);\n\n if (match) {\n // parse months, days, hours, minutes, seconds, and milliseconds\n // provide default values if necessary\n // parse the UTC offset component\n var year = $Number(match[1]),\n month = $Number(match[2] || 1) - 1,\n day = $Number(match[3] || 1) - 1,\n hour = $Number(match[4] || 0),\n minute = $Number(match[5] || 0),\n second = $Number(match[6] || 0),\n millisecond = floor($Number(match[7] || 0) * 1000),\n // When time zone is missed, local offset should be used\n // (ES 5.1 bug)\n // see https://bugs.ecmascript.org/show_bug.cgi?id=112\n isLocalTime = Boolean(match[4] && !match[8]),\n signOffset = match[9] === '-' ? 1 : -1,\n hourOffset = $Number(match[10] || 0),\n minuteOffset = $Number(match[11] || 0),\n result;\n var hasMinutesOrSecondsOrMilliseconds = minute > 0 || second > 0 || millisecond > 0;\n\n if (hour < (hasMinutesOrSecondsOrMilliseconds ? 24 : 25) && minute < 60 && second < 60 && millisecond < 1000 && month > -1 && month < 12 && hourOffset < 24 && minuteOffset < 60 // detect invalid offsets\n && day > -1 && day < dayFromMonth(year, month + 1) - dayFromMonth(year, month)) {\n result = ((dayFromMonth(year, month) + day) * 24 + hour + hourOffset * signOffset) * 60;\n result = ((result + minute + minuteOffset * signOffset) * 60 + second) * 1000 + millisecond;\n\n if (isLocalTime) {\n result = toUTC(result);\n }\n\n if (-8.64e15 <= result && result <= 8.64e15) {\n return result;\n }\n }\n\n return NaN;\n }\n\n return NativeDate.parse.apply(this, arguments);\n };\n\n defineProperties(DateShim, {\n parse: parseShim\n });\n return DateShim;\n }(Date);\n } // ES5 15.9.4.4\n // https://es5.github.io/#x15.9.4.4\n\n\n if (!Date.now) {\n Date.now = function now() {\n return new Date().getTime();\n };\n } //\n // Number\n // ======\n //\n // ES5.1 15.7.4.5\n // https://es5.github.io/#x15.7.4.5\n\n\n var hasToFixedBugs = NumberPrototype.toFixed && (0.00008.toFixed(3) !== '0.000' || 0.9.toFixed(0) !== '1' || 1.255.toFixed(2) !== '1.25' || 1000000000000000128 .toFixed(0) !== '1000000000000000128');\n var toFixedHelpers = {\n base: 1e7,\n size: 6,\n data: [0, 0, 0, 0, 0, 0],\n multiply: function multiply(n, c) {\n var i = -1;\n var c2 = c;\n\n while (++i < toFixedHelpers.size) {\n c2 += n * toFixedHelpers.data[i];\n toFixedHelpers.data[i] = c2 % toFixedHelpers.base;\n c2 = floor(c2 / toFixedHelpers.base);\n }\n },\n divide: function divide(n) {\n var i = toFixedHelpers.size;\n var c = 0;\n\n while (--i >= 0) {\n c += toFixedHelpers.data[i];\n toFixedHelpers.data[i] = floor(c / n);\n c = c % n * toFixedHelpers.base;\n }\n },\n numToString: function numToString() {\n var i = toFixedHelpers.size;\n var s = '';\n\n while (--i >= 0) {\n if (s !== '' || i === 0 || toFixedHelpers.data[i] !== 0) {\n var t = $String(toFixedHelpers.data[i]);\n\n if (s === '') {\n s = t;\n } else {\n s += strSlice('0000000', 0, 7 - t.length) + t;\n }\n }\n }\n\n return s;\n },\n pow: function pow(x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n },\n log: function log(x) {\n var n = 0;\n var x2 = x;\n\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n }\n\n return n;\n }\n };\n\n var toFixedShim = function toFixed(fractionDigits) {\n var f, x, s, m, e, z, j, k; // Test for NaN and round fractionDigits down\n\n f = $Number(fractionDigits);\n f = isActualNaN(f) ? 0 : floor(f);\n\n if (f < 0 || f > 20) {\n throw new RangeError('Number.toFixed called with invalid number of decimals');\n }\n\n x = $Number(this);\n\n if (isActualNaN(x)) {\n return 'NaN';\n } // If it is too big or small, return the string value of the number\n\n\n if (x <= -1e21 || x >= 1e21) {\n return $String(x);\n }\n\n s = '';\n\n if (x < 0) {\n s = '-';\n x = -x;\n }\n\n m = '0';\n\n if (x > 1e-21) {\n // 1e-21 < x < 1e21\n // -70 < log2(x) < 70\n e = toFixedHelpers.log(x * toFixedHelpers.pow(2, 69, 1)) - 69;\n z = e < 0 ? x * toFixedHelpers.pow(2, -e, 1) : x / toFixedHelpers.pow(2, e, 1);\n z *= 0x10000000000000; // pow(2, 52);\n\n e = 52 - e; // -18 < e < 122\n // x = z / 2 ^ e\n\n if (e > 0) {\n toFixedHelpers.multiply(0, z);\n j = f;\n\n while (j >= 7) {\n toFixedHelpers.multiply(1e7, 0);\n j -= 7;\n }\n\n toFixedHelpers.multiply(toFixedHelpers.pow(10, j, 1), 0);\n j = e - 1;\n\n while (j >= 23) {\n toFixedHelpers.divide(1 << 23);\n j -= 23;\n }\n\n toFixedHelpers.divide(1 << j);\n toFixedHelpers.multiply(1, 1);\n toFixedHelpers.divide(2);\n m = toFixedHelpers.numToString();\n } else {\n toFixedHelpers.multiply(0, z);\n toFixedHelpers.multiply(1 << -e, 0);\n m = toFixedHelpers.numToString() + strSlice('0.00000000000000000000', 2, 2 + f);\n }\n }\n\n if (f > 0) {\n k = m.length;\n\n if (k <= f) {\n m = s + strSlice('0.0000000000000000000', 0, f - k + 2) + m;\n } else {\n m = s + strSlice(m, 0, k - f) + '.' + strSlice(m, k - f);\n }\n } else {\n m = s + m;\n }\n\n return m;\n };\n\n defineProperties(NumberPrototype, {\n toFixed: toFixedShim\n }, hasToFixedBugs);\n\n var hasToExponentialRoundingBug = function () {\n try {\n return (-6.9e-11).toExponential(4) !== '-6.9000e-11';\n } catch (e) {\n return false;\n }\n }();\n\n var toExponentialAllowsInfiniteDigits = function () {\n try {\n 1 .toExponential(Infinity);\n 1 .toExponential(-Infinity);\n return true;\n } catch (e) {\n return false;\n }\n }();\n\n var originalToExponential = call.bind(NumberPrototype.toExponential);\n var numberToString = call.bind(NumberPrototype.toString);\n var numberValueOf = call.bind(NumberPrototype.valueOf);\n defineProperties(NumberPrototype, {\n toExponential: function toExponential(fractionDigits) {\n // 1: Let x be this Number value.\n var x = numberValueOf(this);\n\n if (typeof fractionDigits === 'undefined') {\n return originalToExponential(x);\n }\n\n var f = ES.ToInteger(fractionDigits);\n\n if (isActualNaN(x)) {\n return 'NaN';\n }\n\n if (f < 0 || f > 20) {\n if (!isFinite(f)) {\n // IE 6 doesn't throw in the native one\n throw new RangeError('toExponential() argument must be between 0 and 20');\n } // this will probably have thrown already\n\n\n return originalToExponential(x, f);\n } // only cases left are a finite receiver + in-range fractionDigits\n // implementation adapted from https://gist.github.com/SheetJSDev/1100ad56b9f856c95299ed0e068eea08\n // 4: Let s be the empty string\n\n\n var s = ''; // 5: If x < 0\n\n if (x < 0) {\n s = '-';\n x = -x;\n } // 6: If x = +Infinity\n\n\n if (x === Infinity) {\n return s + 'Infinity';\n } // 7: If fractionDigits is not undefined and (f < 0 or f > 20), throw a RangeError exception.\n\n\n if (typeof fractionDigits !== 'undefined' && (f < 0 || f > 20)) {\n throw new RangeError('Fraction digits ' + fractionDigits + ' out of range');\n }\n\n var m = '';\n var e = 0;\n var c = '';\n var d = ''; // 8: If x = 0 then\n\n if (x === 0) {\n e = 0;\n f = 0;\n m = '0';\n } else {\n // 9: Else, x != 0\n var L = log10(x);\n e = floor(L); // 10 ** e <= x and x < 10 ** (e+1)\n\n var n = 0;\n\n if (typeof fractionDigits !== 'undefined') {\n // eslint-disable-line no-negated-condition\n var w = pow(10, e - f); // x / 10 ** (f+1) < w and w <= x / 10 ** f\n\n n = round(x / w); // 10 ** f <= n and n < 10 ** (f+1)\n\n if (2 * x >= (2 * n + 1) * w) {\n n += 1; // pick larger value\n }\n\n if (n >= pow(10, f + 1)) {\n // 10e-1 = 1e0\n n /= 10;\n e += 1;\n }\n } else {\n f = 16; // start from Math.ceil(Math.log10(Number.MAX_SAFE_INTEGER)) and loop down\n\n var guess_n = round(pow(10, L - e + f));\n var target_f = f;\n\n while (f-- > 0) {\n guess_n = round(pow(10, L - e + f));\n\n if (abs(guess_n * pow(10, e - f) - x) <= abs(n * pow(10, e - target_f) - x)) {\n target_f = f;\n n = guess_n;\n }\n }\n }\n\n m = numberToString(n, 10);\n\n if (typeof fractionDigits === 'undefined') {\n while (strSlice(m, -1) === '0') {\n m = strSlice(m, 0, -1);\n d += 1;\n }\n }\n } // 10: If f != 0, then\n\n\n if (f !== 0) {\n m = strSlice(m, 0, 1) + '.' + strSlice(m, 1);\n } // 11: If e = 0, then\n\n\n if (e === 0) {\n c = '+';\n d = '0';\n } else {\n // 12: Else\n c = e > 0 ? '+' : '-';\n d = numberToString(abs(e), 10);\n } // 13: Let m be the concatenation of the four Strings m, \"e\", c, and d.\n\n\n m += 'e' + c + d; // 14: Return the concatenation of the Strings s and m.\n\n return s + m;\n }\n }, hasToExponentialRoundingBug || toExponentialAllowsInfiniteDigits);\n\n var hasToPrecisionUndefinedBug = function () {\n try {\n return 1.0.toPrecision(undefined) === '1';\n } catch (e) {\n return true;\n }\n }();\n\n var originalToPrecision = call.bind(NumberPrototype.toPrecision);\n defineProperties(NumberPrototype, {\n toPrecision: function toPrecision(precision) {\n return typeof precision === 'undefined' ? originalToPrecision(this) : originalToPrecision(this, precision);\n }\n }, hasToPrecisionUndefinedBug); //\n // String\n // ======\n //\n // ES5 15.5.4.14\n // https://es5.github.io/#x15.5.4.14\n // [bugfix, IE lt 9, firefox 4, Konqueror, Opera, obscure browsers]\n // Many browsers do not split properly with regular expressions or they\n // do not perform the split correctly under obscure conditions.\n // See https://blog.stevenlevithan.com/archives/cross-browser-split\n // I've tested in many browsers and this seems to cover the deviant ones:\n // 'ab'.split(/(?:ab)*/) should be [\"\", \"\"], not [\"\"]\n // '.'.split(/(.?)(.?)/) should be [\"\", \".\", \"\", \"\"], not [\"\", \"\"]\n // 'tesst'.split(/(s)*/) should be [\"t\", undefined, \"e\", \"s\", \"t\"], not\n // [undefined, \"t\", undefined, \"e\", ...]\n // ''.split(/.?/) should be [], not [\"\"]\n // '.'.split(/()()/) should be [\".\"], not [\"\", \"\", \".\"]\n\n if ('ab'.split(/(?:ab)*/).length !== 2 || '.'.split(/(.?)(.?)/).length !== 4 || 'tesst'.split(/(s)*/)[1] === 't' || 'test'.split(/(?:)/, -1).length !== 4 || ''.split(/.?/).length || '.'.split(/()()/).length > 1) {\n (function () {\n var compliantExecNpcg = typeof /()??/.exec('')[1] === 'undefined'; // NPCG: nonparticipating capturing group\n\n var maxSafe32BitInt = pow(2, 32) - 1;\n\n StringPrototype.split = function split(separator, limit) {\n var string = String(this);\n\n if (typeof separator === 'undefined' && limit === 0) {\n return [];\n } // If `separator` is not a regex, use native split\n\n\n if (!isRegex(separator)) {\n return strSplit(this, separator, limit);\n }\n\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') + (separator.multiline ? 'm' : '') + (separator.unicode ? 'u' : '') // in ES6\n + (separator.sticky ? 'y' : ''),\n // Firefox 3+ and ES6\n lastLastIndex = 0,\n // Make `global` and avoid `lastIndex` issues by working with a copy\n separator2,\n match,\n lastIndex,\n lastLength;\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n\n if (!compliantExecNpcg) {\n // Doesn't need flags gy, but they don't hurt\n separator2 = new RegExp('^' + separatorCopy.source + '$(?!\\\\s)', flags);\n }\n /* Values for `limit`, per the spec:\n * If undefined: 4294967295 // maxSafe32BitInt\n * If 0, Infinity, or NaN: 0\n * If positive number: limit = floor(limit); if (limit > 4294967295) limit -= 4294967296;\n * If negative number: 4294967296 - floor(abs(limit))\n * If other: Type-convert, then use the above rules\n */\n\n\n var splitLimit = typeof limit === 'undefined' ? maxSafe32BitInt : ES.ToUint32(limit);\n match = separatorCopy.exec(string);\n\n while (match) {\n // `separatorCopy.lastIndex` is not reliable cross-browser\n lastIndex = match.index + match[0].length;\n\n if (lastIndex > lastLastIndex) {\n pushCall(output, strSlice(string, lastLastIndex, match.index)); // Fix browsers whose `exec` methods don't consistently return `undefined` for\n // nonparticipating capturing groups\n\n if (!compliantExecNpcg && match.length > 1) {\n /* eslint-disable no-loop-func */\n match[0].replace(separator2, function () {\n for (var i = 1; i < arguments.length - 2; i++) {\n if (typeof arguments[i] === 'undefined') {\n match[i] = void 0;\n }\n }\n });\n /* eslint-enable no-loop-func */\n }\n\n if (match.length > 1 && match.index < string.length) {\n array_push.apply(output, arraySlice(match, 1));\n }\n\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n\n if (output.length >= splitLimit) {\n break;\n }\n }\n\n if (separatorCopy.lastIndex === match.index) {\n separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n\n match = separatorCopy.exec(string);\n }\n\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) {\n pushCall(output, '');\n }\n } else {\n pushCall(output, strSlice(string, lastLastIndex));\n }\n\n return output.length > splitLimit ? arraySlice(output, 0, splitLimit) : output;\n };\n })(); // [bugfix, chrome]\n // If separator is undefined, then the result array contains just one String,\n // which is the this value (converted to a String). If limit is not undefined,\n // then the output array is truncated so that it contains no more than limit\n // elements.\n // \"0\".split(undefined, 0) -> []\n\n } else if ('0'.split(void 0, 0).length) {\n StringPrototype.split = function split(separator, limit) {\n if (typeof separator === 'undefined' && limit === 0) {\n return [];\n }\n\n return strSplit(this, separator, limit);\n };\n }\n\n var str_replace = StringPrototype.replace;\n\n var replaceReportsGroupsCorrectly = function () {\n var groups = [];\n 'x'.replace(/x(.)?/g, function (match, group) {\n pushCall(groups, group);\n });\n return groups.length === 1 && typeof groups[0] === 'undefined';\n }();\n\n if (!replaceReportsGroupsCorrectly) {\n StringPrototype.replace = function replace(searchValue, replaceValue) {\n var isFn = isCallable(replaceValue);\n var hasCapturingGroups = isRegex(searchValue) && /\\)[*?]/.test(searchValue.source);\n\n if (!isFn || !hasCapturingGroups) {\n return str_replace.call(this, searchValue, replaceValue);\n }\n\n var wrappedReplaceValue = function wrappedReplaceValue(match) {\n var length = arguments.length;\n var originalLastIndex = searchValue.lastIndex;\n searchValue.lastIndex = 0; // eslint-disable-line no-param-reassign\n\n var args = searchValue.exec(match) || [];\n searchValue.lastIndex = originalLastIndex; // eslint-disable-line no-param-reassign\n\n pushCall(args, arguments[length - 2], arguments[length - 1]);\n return replaceValue.apply(this, args);\n };\n\n return str_replace.call(this, searchValue, wrappedReplaceValue);\n };\n } // ECMA-262, 3rd B.2.3\n // Not an ECMAScript standard, although ECMAScript 3rd Edition has a\n // non-normative section suggesting uniform semantics and it should be\n // normalized across all browsers\n // [bugfix, IE lt 9] IE < 9 substr() with negative value not working in IE\n\n\n var hasNegativeSubstrBug = ''.substr && '0b'.substr(-1) !== 'b';\n var string_substr = hasNegativeSubstrBug && call.bind(StringPrototype.substr);\n defineProperties(StringPrototype, {\n substr: function substr(start, length) {\n var normalizedStart = start;\n\n if (start < 0) {\n normalizedStart = max(this.length + start, 0);\n }\n\n return string_substr(this, normalizedStart, length);\n }\n }, hasNegativeSubstrBug); // ES5 15.5.4.20\n // whitespace from: https://es5.github.io/#x15.5.4.20\n\n var mvs = \"\\u180E\";\n var mvsIsWS = /\\s/.test(mvs);\n var ws = \"\\t\\n\\x0B\\f\\r \\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF\".replace(/\\S/g, ''); // remove the mongolian vowel separator (\\u180E) in modern engines\n\n var zeroWidth = \"\\u200B\";\n var wsRegexChars = '[' + ws + ']';\n var trimBeginRegexp = new RegExp('^' + wsRegexChars + wsRegexChars + '*');\n var trimEndRegexp = new RegExp(wsRegexChars + wsRegexChars + '*$');\n var hasTrimWhitespaceBug = StringPrototype.trim && (ws.trim() !== '' // if ws is not considered whitespace\n || zeroWidth.trim() === '' // if zero-width IS considered whitespace\n || mvs.trim() !== (mvsIsWS ? '' : mvs) // if MVS is either wrongly considered whitespace, or, wrongly considered NOT whitespace\n );\n defineProperties(StringPrototype, {\n // https://blog.stevenlevithan.com/archives/faster-trim-javascript\n // http://perfectionkills.com/whitespace-deviations/\n trim: function trim() {\n 'use strict';\n\n if (typeof this === 'undefined' || this === null) {\n throw new TypeError(\"can't convert \" + this + ' to object');\n }\n\n return $String(this).replace(trimBeginRegexp, '').replace(trimEndRegexp, '');\n }\n }, hasTrimWhitespaceBug);\n var trim = call.bind(String.prototype.trim);\n var hasLastIndexBug = StringPrototype.lastIndexOf && 'abcあい'.lastIndexOf('あい', 2) !== -1;\n defineProperties(StringPrototype, {\n lastIndexOf: function lastIndexOf(searchString) {\n if (typeof this === 'undefined' || this === null) {\n throw new TypeError(\"can't convert \" + this + ' to object');\n }\n\n var S = $String(this);\n var searchStr = $String(searchString);\n var numPos = arguments.length > 1 ? $Number(arguments[1]) : NaN;\n var pos = isActualNaN(numPos) ? Infinity : ES.ToInteger(numPos);\n var start = min(max(pos, 0), S.length);\n var searchLen = searchStr.length;\n var k = start + searchLen;\n\n while (k > 0) {\n k = max(0, k - searchLen);\n var index = strIndexOf(strSlice(S, k, start + searchLen), searchStr);\n\n if (index !== -1) {\n return k + index;\n }\n }\n\n return -1;\n }\n }, hasLastIndexBug);\n var originalLastIndexOf = StringPrototype.lastIndexOf;\n defineProperties(StringPrototype, {\n lastIndexOf: function lastIndexOf(searchString) {\n return originalLastIndexOf.apply(this, arguments);\n }\n }, StringPrototype.lastIndexOf.length !== 1);\n var hexRegex = /^[-+]?0[xX]/; // ES-5 15.1.2.2\n\n if (parseInt(ws + '08') !== 8 // eslint-disable-line radix\n || parseInt(ws + '0x16') !== 22 // eslint-disable-line radix\n || (mvsIsWS ? parseInt(mvs + 1) !== 1 : !isNaN(parseInt(mvs + 1))) // eslint-disable-line radix\n ) {\n // eslint-disable-next-line no-global-assign, no-implicit-globals\n parseInt = function (origParseInt) {\n return function parseInt(str, radix) {\n if (this instanceof parseInt) {\n new origParseInt();\n } // eslint-disable-line new-cap, no-new, max-statements-per-line\n\n\n var string = trim(String(str));\n var defaultedRadix = $Number(radix) || (hexRegex.test(string) ? 16 : 10);\n return origParseInt(string, defaultedRadix);\n };\n }(parseInt);\n } // Edge 15-18\n\n\n var parseIntFailsToThrowOnBoxedSymbols = function () {\n if (typeof Symbol !== 'function') {\n return false;\n }\n\n try {\n // eslint-disable-next-line radix\n parseInt(Object(Symbol.iterator));\n return true;\n } catch (e) {\n /**/\n }\n\n try {\n // eslint-disable-next-line radix\n parseInt(Symbol.iterator);\n return true;\n } catch (e) {\n /**/\n }\n\n return false;\n }();\n\n if (parseIntFailsToThrowOnBoxedSymbols) {\n var symbolValueOf = Symbol.prototype.valueOf; // eslint-disable-next-line no-global-assign, no-implicit-globals\n\n parseInt = function (origParseInt) {\n return function parseInt(str, radix) {\n if (this instanceof parseInt) {\n new origParseInt();\n } // eslint-disable-line new-cap, no-new, max-statements-per-line\n\n\n var isSym = _typeof(str) === 'symbol';\n\n if (!isSym && str && _typeof(str) === 'object') {\n try {\n symbolValueOf.call(str);\n isSym = true;\n } catch (e) {\n /**/\n }\n }\n\n if (isSym) {\n // handle Symbols in node 8.3/8.4\n // eslint-disable-next-line no-implicit-coercion, no-unused-expressions\n '' + str; // jscs:ignore disallowImplicitTypeConversion\n }\n\n var string = trim(String(str));\n var defaultedRadix = $Number(radix) || (hexRegex.test(string) ? 16 : 10);\n return origParseInt(string, defaultedRadix);\n };\n }(parseInt);\n } // https://es5.github.io/#x15.1.2.3\n\n\n if (1 / parseFloat('-0') !== -Infinity) {\n // eslint-disable-next-line no-global-assign, no-implicit-globals, no-native-reassign\n parseFloat = function (origParseFloat) {\n return function parseFloat(string) {\n var inputString = trim(String(string));\n var result = origParseFloat(inputString);\n return result === 0 && strSlice(inputString, 0, 1) === '-' ? -0 : result;\n };\n }(parseFloat);\n }\n\n if (String(new RangeError('test')) !== 'RangeError: test') {\n var errorToStringShim = function toString() {\n if (typeof this === 'undefined' || this === null) {\n throw new TypeError(\"can't convert \" + this + ' to object');\n }\n\n var name = this.name;\n\n if (typeof name === 'undefined') {\n name = 'Error';\n } else if (typeof name !== 'string') {\n name = $String(name);\n }\n\n var msg = this.message;\n\n if (typeof msg === 'undefined') {\n msg = '';\n } else if (typeof msg !== 'string') {\n msg = $String(msg);\n }\n\n if (!name) {\n return msg;\n }\n\n if (!msg) {\n return name;\n }\n\n return name + ': ' + msg;\n }; // can't use defineProperties here because of toString enumeration issue in IE <= 8\n\n\n Error.prototype.toString = errorToStringShim;\n }\n\n if (supportsDescriptors) {\n var ensureNonEnumerable = function ensureNonEnumerable(obj, prop) {\n if (isEnum(obj, prop)) {\n var desc = Object.getOwnPropertyDescriptor(obj, prop);\n\n if (desc.configurable) {\n desc.enumerable = false;\n Object.defineProperty(obj, prop, desc);\n }\n }\n };\n\n ensureNonEnumerable(Error.prototype, 'message');\n\n if (Error.prototype.message !== '') {\n Error.prototype.message = '';\n }\n\n ensureNonEnumerable(Error.prototype, 'name');\n }\n\n if (String(/a/mig) !== '/a/gim') {\n var regexToString = function toString() {\n var str = '/' + this.source + '/';\n\n if (this.global) {\n str += 'g';\n }\n\n if (this.ignoreCase) {\n str += 'i';\n }\n\n if (this.multiline) {\n str += 'm';\n }\n\n return str;\n }; // can't use defineProperties here because of toString enumeration issue in IE <= 8\n\n\n RegExp.prototype.toString = regexToString;\n }\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/*!\n * https://github.com/paulmillr/es6-shim\n * @license es6-shim Copyright 2013-2016 by Paul Miller (http://paulmillr.com)\n * and contributors, MIT License\n * es6-shim: v0.35.4\n * see https://github.com/paulmillr/es6-shim/blob/0.35.3/LICENSE\n * Details and documentation:\n * https://github.com/paulmillr/es6-shim/\n */\n// UMD (Universal Module Definition)\n// see https://github.com/umdjs/umd/blob/master/returnExports.js\n(function (root, factory) {\n /*global define */\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(factory);\n } else if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object') {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory();\n } else {\n // Browser globals (root is window)\n root.returnExports = factory();\n }\n})(this, function () {\n 'use strict';\n\n var _apply = Function.call.bind(Function.apply);\n\n var _call = Function.call.bind(Function.call);\n\n var isArray = Array.isArray;\n var keys = Object.keys;\n\n var not = function notThunker(func) {\n return function notThunk() {\n return !_apply(func, this, arguments);\n };\n };\n\n var throwsError = function throwsError(func) {\n try {\n func();\n return false;\n } catch (e) {\n return true;\n }\n };\n\n var valueOrFalseIfThrows = function valueOrFalseIfThrows(func) {\n try {\n return func();\n } catch (e) {\n return false;\n }\n };\n\n var isCallableWithoutNew = not(throwsError);\n\n var arePropertyDescriptorsSupported = function arePropertyDescriptorsSupported() {\n // if Object.defineProperty exists but throws, it's IE 8\n return !throwsError(function () {\n return Object.defineProperty({}, 'x', {\n get: function get() {}\n }); // eslint-disable-line getter-return\n });\n };\n\n var supportsDescriptors = !!Object.defineProperty && arePropertyDescriptorsSupported();\n\n var functionsHaveNames = function foo() {}.name === 'foo'; // eslint-disable-line no-extra-parens\n\n\n var _forEach = Function.call.bind(Array.prototype.forEach);\n\n var _reduce = Function.call.bind(Array.prototype.reduce);\n\n var _filter = Function.call.bind(Array.prototype.filter);\n\n var _some = Function.call.bind(Array.prototype.some);\n\n var defineProperty = function defineProperty(object, name, value, force) {\n if (!force && name in object) {\n return;\n }\n\n if (supportsDescriptors) {\n Object.defineProperty(object, name, {\n configurable: true,\n enumerable: false,\n writable: true,\n value: value\n });\n } else {\n object[name] = value;\n }\n }; // Define configurable, writable and non-enumerable props\n // if they don’t exist.\n\n\n var defineProperties = function defineProperties(object, map, forceOverride) {\n _forEach(keys(map), function (name) {\n var method = map[name];\n defineProperty(object, name, method, !!forceOverride);\n });\n };\n\n var _toString = Function.call.bind(Object.prototype.toString);\n\n var isCallable = typeof /abc/ === 'function' ? function IsCallableSlow(x) {\n // Some old browsers (IE, FF) say that typeof /abc/ === 'function'\n return typeof x === 'function' && _toString(x) === '[object Function]';\n } : function IsCallableFast(x) {\n return typeof x === 'function';\n };\n var Value = {\n getter: function getter(object, name, _getter) {\n if (!supportsDescriptors) {\n throw new TypeError('getters require true ES5 support');\n }\n\n Object.defineProperty(object, name, {\n configurable: true,\n enumerable: false,\n get: _getter\n });\n },\n proxy: function proxy(originalObject, key, targetObject) {\n if (!supportsDescriptors) {\n throw new TypeError('getters require true ES5 support');\n }\n\n var originalDescriptor = Object.getOwnPropertyDescriptor(originalObject, key);\n Object.defineProperty(targetObject, key, {\n configurable: originalDescriptor.configurable,\n enumerable: originalDescriptor.enumerable,\n get: function getKey() {\n return originalObject[key];\n },\n set: function setKey(value) {\n originalObject[key] = value;\n }\n });\n },\n redefine: function redefine(object, property, newValue) {\n if (supportsDescriptors) {\n var descriptor = Object.getOwnPropertyDescriptor(object, property);\n descriptor.value = newValue;\n Object.defineProperty(object, property, descriptor);\n } else {\n object[property] = newValue;\n }\n },\n defineByDescriptor: function defineByDescriptor(object, property, descriptor) {\n if (supportsDescriptors) {\n Object.defineProperty(object, property, descriptor);\n } else if ('value' in descriptor) {\n object[property] = descriptor.value;\n }\n },\n preserveToString: function preserveToString(target, source) {\n if (source && isCallable(source.toString)) {\n defineProperty(target, 'toString', source.toString.bind(source), true);\n }\n }\n }; // Simple shim for Object.create on ES3 browsers\n // (unlike real shim, no attempt to support `prototype === null`)\n\n var create = Object.create || function (prototype, properties) {\n var Prototype = function Prototype() {};\n\n Prototype.prototype = prototype;\n var object = new Prototype();\n\n if (typeof properties !== 'undefined') {\n keys(properties).forEach(function (key) {\n Value.defineByDescriptor(object, key, properties[key]);\n });\n }\n\n return object;\n };\n\n var supportsSubclassing = function supportsSubclassing(C, f) {\n if (!Object.setPrototypeOf) {\n return false;\n /* skip test on IE < 11 */\n }\n\n return valueOrFalseIfThrows(function () {\n var Sub = function Subclass(arg) {\n var o = new C(arg);\n Object.setPrototypeOf(o, Subclass.prototype);\n return o;\n };\n\n Object.setPrototypeOf(Sub, C);\n Sub.prototype = create(C.prototype, {\n constructor: {\n value: Sub\n }\n });\n return f(Sub);\n });\n };\n\n var getGlobal = function getGlobal() {\n /* global self, window */\n // the only reliable means to get the global object is\n // `Function('return this')()`\n // However, this causes CSP violations in Chrome apps.\n if (typeof self !== 'undefined') {\n return self;\n }\n\n if (typeof window !== 'undefined') {\n return window;\n }\n\n if (typeof global !== 'undefined') {\n return global;\n }\n\n throw new Error('unable to locate global object');\n };\n\n var globals = getGlobal();\n var globalIsFinite = globals.isFinite;\n\n var _indexOf = Function.call.bind(String.prototype.indexOf);\n\n var _arrayIndexOfApply = Function.apply.bind(Array.prototype.indexOf);\n\n var _concat = Function.call.bind(Array.prototype.concat); // var _sort = Function.call.bind(Array.prototype.sort);\n\n\n var _strSlice = Function.call.bind(String.prototype.slice);\n\n var _push = Function.call.bind(Array.prototype.push);\n\n var _pushApply = Function.apply.bind(Array.prototype.push);\n\n var _join = Function.call.bind(Array.prototype.join);\n\n var _shift = Function.call.bind(Array.prototype.shift);\n\n var _max = Math.max;\n var _min = Math.min;\n var _floor = Math.floor;\n var _abs = Math.abs;\n var _exp = Math.exp;\n var _log = Math.log;\n var _sqrt = Math.sqrt;\n\n var _hasOwnProperty = Function.call.bind(Object.prototype.hasOwnProperty);\n\n var ArrayIterator; // make our implementation private\n\n var noop = function noop() {};\n\n var OrigMap = globals.Map;\n var origMapDelete = OrigMap && OrigMap.prototype['delete'];\n var origMapGet = OrigMap && OrigMap.prototype.get;\n var origMapHas = OrigMap && OrigMap.prototype.has;\n var origMapSet = OrigMap && OrigMap.prototype.set;\n\n var _Symbol = globals.Symbol || {};\n\n var symbolSpecies = _Symbol.species || '@@species';\n\n var numberIsNaN = Number.isNaN || function isNaN(value) {\n // NaN !== NaN, but they are identical.\n // NaNs are the only non-reflexive value, i.e., if x !== x,\n // then x is NaN.\n // isNaN is broken: it converts its argument to number, so\n // isNaN('foo') => true\n return value !== value;\n };\n\n var numberIsFinite = Number.isFinite || function isFinite(value) {\n return typeof value === 'number' && globalIsFinite(value);\n };\n\n var _sign = isCallable(Math.sign) ? Math.sign : function sign(value) {\n var number = Number(value);\n\n if (number === 0) {\n return number;\n }\n\n if (numberIsNaN(number)) {\n return number;\n }\n\n return number < 0 ? -1 : 1;\n };\n\n var _log1p = function log1p(value) {\n var x = Number(value);\n\n if (x < -1 || numberIsNaN(x)) {\n return NaN;\n }\n\n if (x === 0 || x === Infinity) {\n return x;\n }\n\n if (x === -1) {\n return -Infinity;\n }\n\n return 1 + x - 1 === 0 ? x : x * (_log(1 + x) / (1 + x - 1));\n }; // taken directly from https://github.com/ljharb/is-arguments/blob/master/index.js\n // can be replaced with require('is-arguments') if we ever use a build process instead\n\n\n var isStandardArguments = function isArguments(value) {\n return _toString(value) === '[object Arguments]';\n };\n\n var isLegacyArguments = function isArguments(value) {\n return value !== null && _typeof(value) === 'object' && typeof value.length === 'number' && value.length >= 0 && _toString(value) !== '[object Array]' && _toString(value.callee) === '[object Function]';\n };\n\n var isArguments = isStandardArguments(arguments) ? isStandardArguments : isLegacyArguments;\n var Type = {\n primitive: function primitive(x) {\n return x === null || typeof x !== 'function' && _typeof(x) !== 'object';\n },\n string: function string(x) {\n return _toString(x) === '[object String]';\n },\n regex: function regex(x) {\n return _toString(x) === '[object RegExp]';\n },\n symbol: function symbol(x) {\n return typeof globals.Symbol === 'function' && _typeof(x) === 'symbol';\n }\n };\n\n var overrideNative = function overrideNative(object, property, replacement) {\n var original = object[property];\n defineProperty(object, property, replacement, true);\n Value.preserveToString(object[property], original);\n }; // eslint-disable-next-line no-restricted-properties\n\n\n var hasSymbols = typeof _Symbol === 'function' && typeof _Symbol['for'] === 'function' && Type.symbol(_Symbol()); // This is a private name in the es6 spec, equal to '[Symbol.iterator]'\n // we're going to use an arbitrary _-prefixed name to make our shims\n // work properly with each other, even though we don't have full Iterator\n // support. That is, `Array.from(map.keys())` will work, but we don't\n // pretend to export a \"real\" Iterator interface.\n\n var $iterator$ = Type.symbol(_Symbol.iterator) ? _Symbol.iterator : '_es6-shim iterator_'; // Firefox ships a partial implementation using the name @@iterator.\n // https://bugzilla.mozilla.org/show_bug.cgi?id=907077#c14\n // So use that name if we detect it.\n\n if (globals.Set && typeof new globals.Set()['@@iterator'] === 'function') {\n $iterator$ = '@@iterator';\n } // Reflect\n\n\n if (!globals.Reflect) {\n defineProperty(globals, 'Reflect', {}, true);\n }\n\n var Reflect = globals.Reflect;\n var $String = String;\n /* global document */\n\n var domAll = typeof document === 'undefined' || !document ? null : document.all;\n var isNullOrUndefined = domAll == null ? function isNullOrUndefined(x) {\n return x == null;\n } : function isNullOrUndefinedAndNotDocumentAll(x) {\n return x == null && x !== domAll;\n };\n var ES = {\n // http://www.ecma-international.org/ecma-262/6.0/#sec-call\n Call: function Call(F, V) {\n var args = arguments.length > 2 ? arguments[2] : [];\n\n if (!ES.IsCallable(F)) {\n throw new TypeError(F + ' is not a function');\n }\n\n return _apply(F, V, args);\n },\n RequireObjectCoercible: function RequireObjectCoercible(x, optMessage) {\n if (isNullOrUndefined(x)) {\n throw new TypeError(optMessage || 'Cannot call method on ' + x);\n }\n\n return x;\n },\n // This might miss the \"(non-standard exotic and does not implement\n // [[Call]])\" case from\n // http://www.ecma-international.org/ecma-262/6.0/#sec-typeof-operator-runtime-semantics-evaluation\n // but we can't find any evidence these objects exist in practice.\n // If we find some in the future, you could test `Object(x) === x`,\n // which is reliable according to\n // http://www.ecma-international.org/ecma-262/6.0/#sec-toobject\n // but is not well optimized by runtimes and creates an object\n // whenever it returns false, and thus is very slow.\n TypeIsObject: function TypeIsObject(x) {\n if (x === void 0 || x === null || x === true || x === false) {\n return false;\n }\n\n return typeof x === 'function' || _typeof(x) === 'object' || x === domAll;\n },\n ToObject: function ToObject(o, optMessage) {\n return Object(ES.RequireObjectCoercible(o, optMessage));\n },\n IsCallable: isCallable,\n IsConstructor: function IsConstructor(x) {\n // We can't tell callables from constructors in ES5\n return ES.IsCallable(x);\n },\n ToInt32: function ToInt32(x) {\n return ES.ToNumber(x) >> 0;\n },\n ToUint32: function ToUint32(x) {\n return ES.ToNumber(x) >>> 0;\n },\n ToNumber: function ToNumber(value) {\n if (hasSymbols && _toString(value) === '[object Symbol]') {\n throw new TypeError('Cannot convert a Symbol value to a number');\n }\n\n return +value;\n },\n ToInteger: function ToInteger(value) {\n var number = ES.ToNumber(value);\n\n if (numberIsNaN(number)) {\n return 0;\n }\n\n if (number === 0 || !numberIsFinite(number)) {\n return number;\n }\n\n return (number > 0 ? 1 : -1) * _floor(_abs(number));\n },\n ToLength: function ToLength(value) {\n var len = ES.ToInteger(value);\n\n if (len <= 0) {\n return 0;\n } // includes converting -0 to +0\n\n\n if (len > Number.MAX_SAFE_INTEGER) {\n return Number.MAX_SAFE_INTEGER;\n }\n\n return len;\n },\n SameValue: function SameValue(a, b) {\n if (a === b) {\n // 0 === -0, but they are not identical.\n if (a === 0) {\n return 1 / a === 1 / b;\n }\n\n return true;\n }\n\n return numberIsNaN(a) && numberIsNaN(b);\n },\n SameValueZero: function SameValueZero(a, b) {\n // same as SameValue except for SameValueZero(+0, -0) == true\n return a === b || numberIsNaN(a) && numberIsNaN(b);\n },\n IsIterable: function IsIterable(o) {\n return ES.TypeIsObject(o) && (typeof o[$iterator$] !== 'undefined' || isArguments(o));\n },\n GetIterator: function GetIterator(o) {\n if (isArguments(o)) {\n // special case support for `arguments`\n return new ArrayIterator(o, 'value');\n }\n\n var itFn = ES.GetMethod(o, $iterator$);\n\n if (!ES.IsCallable(itFn)) {\n // Better diagnostics if itFn is null or undefined\n throw new TypeError('value is not an iterable');\n }\n\n var it = ES.Call(itFn, o);\n\n if (!ES.TypeIsObject(it)) {\n throw new TypeError('bad iterator');\n }\n\n return it;\n },\n GetMethod: function GetMethod(o, p) {\n var func = ES.ToObject(o)[p];\n\n if (isNullOrUndefined(func)) {\n return void 0;\n }\n\n if (!ES.IsCallable(func)) {\n throw new TypeError('Method not callable: ' + p);\n }\n\n return func;\n },\n IteratorComplete: function IteratorComplete(iterResult) {\n return !!iterResult.done;\n },\n IteratorClose: function IteratorClose(iterator, completionIsThrow) {\n var returnMethod = ES.GetMethod(iterator, 'return');\n\n if (returnMethod === void 0) {\n return;\n }\n\n var innerResult, innerException;\n\n try {\n innerResult = ES.Call(returnMethod, iterator);\n } catch (e) {\n innerException = e;\n }\n\n if (completionIsThrow) {\n return;\n }\n\n if (innerException) {\n throw innerException;\n }\n\n if (!ES.TypeIsObject(innerResult)) {\n throw new TypeError(\"Iterator's return method returned a non-object.\");\n }\n },\n IteratorNext: function IteratorNext(it) {\n var result = arguments.length > 1 ? it.next(arguments[1]) : it.next();\n\n if (!ES.TypeIsObject(result)) {\n throw new TypeError('bad iterator');\n }\n\n return result;\n },\n IteratorStep: function IteratorStep(it) {\n var result = ES.IteratorNext(it);\n var done = ES.IteratorComplete(result);\n return done ? false : result;\n },\n Construct: function Construct(C, args, newTarget, isES6internal) {\n var target = typeof newTarget === 'undefined' ? C : newTarget;\n\n if (!isES6internal && Reflect.construct) {\n // Try to use Reflect.construct if available\n return Reflect.construct(C, args, target);\n } // OK, we have to fake it. This will only work if the\n // C.[[ConstructorKind]] == \"base\" -- but that's the only\n // kind we can make in ES5 code anyway.\n // OrdinaryCreateFromConstructor(target, \"%ObjectPrototype%\")\n\n\n var proto = target.prototype;\n\n if (!ES.TypeIsObject(proto)) {\n proto = Object.prototype;\n }\n\n var obj = create(proto); // Call the constructor.\n\n var result = ES.Call(C, obj, args);\n return ES.TypeIsObject(result) ? result : obj;\n },\n SpeciesConstructor: function SpeciesConstructor(O, defaultConstructor) {\n var C = O.constructor;\n\n if (C === void 0) {\n return defaultConstructor;\n }\n\n if (!ES.TypeIsObject(C)) {\n throw new TypeError('Bad constructor');\n }\n\n var S = C[symbolSpecies];\n\n if (isNullOrUndefined(S)) {\n return defaultConstructor;\n }\n\n if (!ES.IsConstructor(S)) {\n throw new TypeError('Bad @@species');\n }\n\n return S;\n },\n CreateHTML: function CreateHTML(string, tag, attribute, value) {\n var S = ES.ToString(string);\n var p1 = '<' + tag;\n\n if (attribute !== '') {\n var V = ES.ToString(value);\n var escapedV = V.replace(/\"/g, '"');\n p1 += ' ' + attribute + '=\"' + escapedV + '\"';\n }\n\n var p2 = p1 + '>';\n var p3 = p2 + S;\n return p3 + '';\n },\n IsRegExp: function IsRegExp(argument) {\n if (!ES.TypeIsObject(argument)) {\n return false;\n }\n\n var isRegExp = argument[_Symbol.match];\n\n if (typeof isRegExp !== 'undefined') {\n return !!isRegExp;\n }\n\n return Type.regex(argument);\n },\n ToString: function ToString(string) {\n if (hasSymbols && _toString(string) === '[object Symbol]') {\n throw new TypeError('Cannot convert a Symbol value to a number');\n }\n\n return $String(string);\n }\n }; // Well-known Symbol shims\n\n if (supportsDescriptors && hasSymbols) {\n var defineWellKnownSymbol = function defineWellKnownSymbol(name) {\n if (Type.symbol(_Symbol[name])) {\n return _Symbol[name];\n } // eslint-disable-next-line no-restricted-properties\n\n\n var sym = _Symbol['for']('Symbol.' + name);\n\n Object.defineProperty(_Symbol, name, {\n configurable: false,\n enumerable: false,\n writable: false,\n value: sym\n });\n return sym;\n };\n\n if (!Type.symbol(_Symbol.search)) {\n var symbolSearch = defineWellKnownSymbol('search');\n var originalSearch = String.prototype.search;\n defineProperty(RegExp.prototype, symbolSearch, function search(string) {\n return ES.Call(originalSearch, string, [this]);\n });\n\n var searchShim = function search(regexp) {\n var O = ES.RequireObjectCoercible(this);\n\n if (!isNullOrUndefined(regexp)) {\n var searcher = ES.GetMethod(regexp, symbolSearch);\n\n if (typeof searcher !== 'undefined') {\n return ES.Call(searcher, regexp, [O]);\n }\n }\n\n return ES.Call(originalSearch, O, [ES.ToString(regexp)]);\n };\n\n overrideNative(String.prototype, 'search', searchShim);\n }\n\n if (!Type.symbol(_Symbol.replace)) {\n var symbolReplace = defineWellKnownSymbol('replace');\n var originalReplace = String.prototype.replace;\n defineProperty(RegExp.prototype, symbolReplace, function replace(string, replaceValue) {\n return ES.Call(originalReplace, string, [this, replaceValue]);\n });\n\n var replaceShim = function replace(searchValue, replaceValue) {\n var O = ES.RequireObjectCoercible(this);\n\n if (!isNullOrUndefined(searchValue)) {\n var replacer = ES.GetMethod(searchValue, symbolReplace);\n\n if (typeof replacer !== 'undefined') {\n return ES.Call(replacer, searchValue, [O, replaceValue]);\n }\n }\n\n return ES.Call(originalReplace, O, [ES.ToString(searchValue), replaceValue]);\n };\n\n overrideNative(String.prototype, 'replace', replaceShim);\n }\n\n if (!Type.symbol(_Symbol.split)) {\n var symbolSplit = defineWellKnownSymbol('split');\n var originalSplit = String.prototype.split;\n defineProperty(RegExp.prototype, symbolSplit, function split(string, limit) {\n return ES.Call(originalSplit, string, [this, limit]);\n });\n\n var splitShim = function split(separator, limit) {\n var O = ES.RequireObjectCoercible(this);\n\n if (!isNullOrUndefined(separator)) {\n var splitter = ES.GetMethod(separator, symbolSplit);\n\n if (typeof splitter !== 'undefined') {\n return ES.Call(splitter, separator, [O, limit]);\n }\n }\n\n return ES.Call(originalSplit, O, [ES.ToString(separator), limit]);\n };\n\n overrideNative(String.prototype, 'split', splitShim);\n }\n\n var symbolMatchExists = Type.symbol(_Symbol.match);\n\n var stringMatchIgnoresSymbolMatch = symbolMatchExists && function () {\n // Firefox 41, through Nightly 45 has Symbol.match, but String#match ignores it.\n // Firefox 40 and below have Symbol.match but String#match works fine.\n var o = {};\n\n o[_Symbol.match] = function () {\n return 42;\n };\n\n return 'a'.match(o) !== 42;\n }();\n\n if (!symbolMatchExists || stringMatchIgnoresSymbolMatch) {\n var symbolMatch = defineWellKnownSymbol('match');\n var originalMatch = String.prototype.match;\n defineProperty(RegExp.prototype, symbolMatch, function match(string) {\n return ES.Call(originalMatch, string, [this]);\n });\n\n var matchShim = function match(regexp) {\n var O = ES.RequireObjectCoercible(this);\n\n if (!isNullOrUndefined(regexp)) {\n var matcher = ES.GetMethod(regexp, symbolMatch);\n\n if (typeof matcher !== 'undefined') {\n return ES.Call(matcher, regexp, [O]);\n }\n }\n\n return ES.Call(originalMatch, O, [ES.ToString(regexp)]);\n };\n\n overrideNative(String.prototype, 'match', matchShim);\n }\n }\n\n var wrapConstructor = function wrapConstructor(original, replacement, keysToSkip) {\n Value.preserveToString(replacement, original);\n\n if (Object.setPrototypeOf) {\n // sets up proper prototype chain where possible\n Object.setPrototypeOf(original, replacement);\n }\n\n if (supportsDescriptors) {\n _forEach(Object.getOwnPropertyNames(original), function (key) {\n if (key in noop || keysToSkip[key]) {\n return;\n }\n\n Value.proxy(original, key, replacement);\n });\n } else {\n _forEach(Object.keys(original), function (key) {\n if (key in noop || keysToSkip[key]) {\n return;\n }\n\n replacement[key] = original[key];\n });\n }\n\n replacement.prototype = original.prototype;\n Value.redefine(original.prototype, 'constructor', replacement);\n };\n\n var defaultSpeciesGetter = function defaultSpeciesGetter() {\n return this;\n };\n\n var addDefaultSpecies = function addDefaultSpecies(C) {\n if (supportsDescriptors && !_hasOwnProperty(C, symbolSpecies)) {\n Value.getter(C, symbolSpecies, defaultSpeciesGetter);\n }\n };\n\n var addIterator = function addIterator(prototype, impl) {\n var implementation = impl || function iterator() {\n return this;\n };\n\n defineProperty(prototype, $iterator$, implementation);\n\n if (!prototype[$iterator$] && Type.symbol($iterator$)) {\n // implementations are buggy when $iterator$ is a Symbol\n prototype[$iterator$] = implementation;\n }\n };\n\n var createDataProperty = function createDataProperty(object, name, value) {\n if (supportsDescriptors) {\n Object.defineProperty(object, name, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: value\n });\n } else {\n object[name] = value;\n }\n };\n\n var createDataPropertyOrThrow = function createDataPropertyOrThrow(object, name, value) {\n createDataProperty(object, name, value);\n\n if (!ES.SameValue(object[name], value)) {\n throw new TypeError('property is nonconfigurable');\n }\n };\n\n var emulateES6construct = function emulateES6construct(o, defaultNewTarget, defaultProto, slots) {\n // This is an es5 approximation to es6 construct semantics. in es6,\n // 'new Foo' invokes Foo.[[Construct]] which (for almost all objects)\n // just sets the internal variable NewTarget (in es6 syntax `new.target`)\n // to Foo and then returns Foo().\n // Many ES6 object then have constructors of the form:\n // 1. If NewTarget is undefined, throw a TypeError exception\n // 2. Let xxx by OrdinaryCreateFromConstructor(NewTarget, yyy, zzz)\n // So we're going to emulate those first two steps.\n if (!ES.TypeIsObject(o)) {\n throw new TypeError('Constructor requires `new`: ' + defaultNewTarget.name);\n }\n\n var proto = defaultNewTarget.prototype;\n\n if (!ES.TypeIsObject(proto)) {\n proto = defaultProto;\n }\n\n var obj = create(proto);\n\n for (var name in slots) {\n if (_hasOwnProperty(slots, name)) {\n var value = slots[name];\n defineProperty(obj, name, value, true);\n }\n }\n\n return obj;\n }; // Firefox 31 reports this function's length as 0\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1062484\n\n\n if (String.fromCodePoint && String.fromCodePoint.length !== 1) {\n var originalFromCodePoint = String.fromCodePoint;\n overrideNative(String, 'fromCodePoint', function fromCodePoint(codePoints) {\n return ES.Call(originalFromCodePoint, this, arguments);\n });\n }\n\n var StringShims = {\n fromCodePoint: function fromCodePoint(codePoints) {\n var result = [];\n var next;\n\n for (var i = 0, length = arguments.length; i < length; i++) {\n next = Number(arguments[i]);\n\n if (!ES.SameValue(next, ES.ToInteger(next)) || next < 0 || next > 0x10FFFF) {\n throw new RangeError('Invalid code point ' + next);\n }\n\n if (next < 0x10000) {\n _push(result, String.fromCharCode(next));\n } else {\n next -= 0x10000;\n\n _push(result, String.fromCharCode((next >> 10) + 0xD800));\n\n _push(result, String.fromCharCode(next % 0x400 + 0xDC00));\n }\n }\n\n return _join(result, '');\n },\n raw: function raw(template) {\n var numberOfSubstitutions = arguments.length - 1;\n var cooked = ES.ToObject(template, 'bad template');\n var raw = ES.ToObject(cooked.raw, 'bad raw value');\n var len = raw.length;\n var literalSegments = ES.ToLength(len);\n\n if (literalSegments <= 0) {\n return '';\n }\n\n var stringElements = [];\n var nextIndex = 0;\n var nextKey, next, nextSeg, nextSub;\n\n while (nextIndex < literalSegments) {\n nextKey = ES.ToString(nextIndex);\n nextSeg = ES.ToString(raw[nextKey]);\n\n _push(stringElements, nextSeg);\n\n if (nextIndex + 1 >= literalSegments) {\n break;\n }\n\n next = nextIndex + 1 < arguments.length ? arguments[nextIndex + 1] : '';\n nextSub = ES.ToString(next);\n\n _push(stringElements, nextSub);\n\n nextIndex += 1;\n }\n\n return _join(stringElements, '');\n }\n };\n\n if (String.raw && String.raw({\n raw: {\n 0: 'x',\n 1: 'y',\n length: 2\n }\n }) !== 'xy') {\n // IE 11 TP has a broken String.raw implementation\n overrideNative(String, 'raw', StringShims.raw);\n }\n\n defineProperties(String, StringShims); // Fast repeat, uses the `Exponentiation by squaring` algorithm.\n // Perf: http://jsperf.com/string-repeat2/2\n\n var stringRepeat = function repeat(s, times) {\n if (times < 1) {\n return '';\n }\n\n if (times % 2) {\n return repeat(s, times - 1) + s;\n }\n\n var half = repeat(s, times / 2);\n return half + half;\n };\n\n var stringMaxLength = Infinity;\n var StringPrototypeShims = {\n repeat: function repeat(times) {\n var thisStr = ES.ToString(ES.RequireObjectCoercible(this));\n var numTimes = ES.ToInteger(times);\n\n if (numTimes < 0 || numTimes >= stringMaxLength) {\n throw new RangeError('repeat count must be less than infinity and not overflow maximum string size');\n }\n\n return stringRepeat(thisStr, numTimes);\n },\n startsWith: function startsWith(searchString) {\n var S = ES.ToString(ES.RequireObjectCoercible(this));\n\n if (ES.IsRegExp(searchString)) {\n throw new TypeError('Cannot call method \"startsWith\" with a regex');\n }\n\n var searchStr = ES.ToString(searchString);\n var position;\n\n if (arguments.length > 1) {\n position = arguments[1];\n }\n\n var start = _max(ES.ToInteger(position), 0);\n\n return _strSlice(S, start, start + searchStr.length) === searchStr;\n },\n endsWith: function endsWith(searchString) {\n var S = ES.ToString(ES.RequireObjectCoercible(this));\n\n if (ES.IsRegExp(searchString)) {\n throw new TypeError('Cannot call method \"endsWith\" with a regex');\n }\n\n var searchStr = ES.ToString(searchString);\n var len = S.length;\n var endPosition;\n\n if (arguments.length > 1) {\n endPosition = arguments[1];\n }\n\n var pos = typeof endPosition === 'undefined' ? len : ES.ToInteger(endPosition);\n\n var end = _min(_max(pos, 0), len);\n\n return _strSlice(S, end - searchStr.length, end) === searchStr;\n },\n includes: function includes(searchString) {\n if (ES.IsRegExp(searchString)) {\n throw new TypeError('\"includes\" does not accept a RegExp');\n }\n\n var searchStr = ES.ToString(searchString);\n var position;\n\n if (arguments.length > 1) {\n position = arguments[1];\n } // Somehow this trick makes method 100% compat with the spec.\n\n\n return _indexOf(this, searchStr, position) !== -1;\n },\n codePointAt: function codePointAt(pos) {\n var thisStr = ES.ToString(ES.RequireObjectCoercible(this));\n var position = ES.ToInteger(pos);\n var length = thisStr.length;\n\n if (position >= 0 && position < length) {\n var first = thisStr.charCodeAt(position);\n var isEnd = position + 1 === length;\n\n if (first < 0xD800 || first > 0xDBFF || isEnd) {\n return first;\n }\n\n var second = thisStr.charCodeAt(position + 1);\n\n if (second < 0xDC00 || second > 0xDFFF) {\n return first;\n }\n\n return (first - 0xD800) * 1024 + (second - 0xDC00) + 0x10000;\n }\n }\n };\n\n if (String.prototype.includes && 'a'.includes('a', Infinity) !== false) {\n overrideNative(String.prototype, 'includes', StringPrototypeShims.includes);\n }\n\n if (String.prototype.startsWith && String.prototype.endsWith) {\n var startsWithRejectsRegex = throwsError(function () {\n /* throws if spec-compliant */\n return '/a/'.startsWith(/a/);\n });\n var startsWithHandlesInfinity = valueOrFalseIfThrows(function () {\n return 'abc'.startsWith('a', Infinity) === false;\n });\n\n if (!startsWithRejectsRegex || !startsWithHandlesInfinity) {\n // Firefox (< 37?) and IE 11 TP have a noncompliant startsWith implementation\n overrideNative(String.prototype, 'startsWith', StringPrototypeShims.startsWith);\n overrideNative(String.prototype, 'endsWith', StringPrototypeShims.endsWith);\n }\n }\n\n if (hasSymbols) {\n var startsWithSupportsSymbolMatch = valueOrFalseIfThrows(function () {\n var re = /a/;\n re[_Symbol.match] = false;\n return '/a/'.startsWith(re);\n });\n\n if (!startsWithSupportsSymbolMatch) {\n overrideNative(String.prototype, 'startsWith', StringPrototypeShims.startsWith);\n }\n\n var endsWithSupportsSymbolMatch = valueOrFalseIfThrows(function () {\n var re = /a/;\n re[_Symbol.match] = false;\n return '/a/'.endsWith(re);\n });\n\n if (!endsWithSupportsSymbolMatch) {\n overrideNative(String.prototype, 'endsWith', StringPrototypeShims.endsWith);\n }\n\n var includesSupportsSymbolMatch = valueOrFalseIfThrows(function () {\n var re = /a/;\n re[_Symbol.match] = false;\n return '/a/'.includes(re);\n });\n\n if (!includesSupportsSymbolMatch) {\n overrideNative(String.prototype, 'includes', StringPrototypeShims.includes);\n }\n }\n\n defineProperties(String.prototype, StringPrototypeShims); // whitespace from: http://es5.github.io/#x15.5.4.20\n // implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324\n\n var ws = [\"\\t\\n\\x0B\\f\\r \\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\", \"\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\", \"\\u2029\\uFEFF\"].join('');\n var trimRegexp = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g');\n\n var trimShim = function trim() {\n return ES.ToString(ES.RequireObjectCoercible(this)).replace(trimRegexp, '');\n };\n\n var nonWS = [\"\\x85\", \"\\u200B\", \"\\uFFFE\"].join('');\n var nonWSregex = new RegExp('[' + nonWS + ']', 'g');\n var isBadHexRegex = /^[-+]0x[0-9a-f]+$/i;\n var hasStringTrimBug = nonWS.trim().length !== nonWS.length;\n defineProperty(String.prototype, 'trim', trimShim, hasStringTrimBug); // Given an argument x, it will return an IteratorResult object,\n // with value set to x and done to false.\n // Given no arguments, it will return an iterator completion object.\n\n var iteratorResult = function iteratorResult(x) {\n return {\n value: x,\n done: arguments.length === 0\n };\n }; // see http://www.ecma-international.org/ecma-262/6.0/#sec-string.prototype-@@iterator\n\n\n var StringIterator = function StringIterator(s) {\n ES.RequireObjectCoercible(s);\n this._s = ES.ToString(s);\n this._i = 0;\n };\n\n StringIterator.prototype.next = function () {\n var s = this._s;\n var i = this._i;\n\n if (typeof s === 'undefined' || i >= s.length) {\n this._s = void 0;\n return iteratorResult();\n }\n\n var first = s.charCodeAt(i);\n var second, len;\n\n if (first < 0xD800 || first > 0xDBFF || i + 1 === s.length) {\n len = 1;\n } else {\n second = s.charCodeAt(i + 1);\n len = second < 0xDC00 || second > 0xDFFF ? 1 : 2;\n }\n\n this._i = i + len;\n return iteratorResult(s.substr(i, len));\n };\n\n addIterator(StringIterator.prototype);\n addIterator(String.prototype, function () {\n return new StringIterator(this);\n });\n var ArrayShims = {\n from: function from(items) {\n var C = this;\n var mapFn;\n\n if (arguments.length > 1) {\n mapFn = arguments[1];\n }\n\n var mapping, T;\n\n if (typeof mapFn === 'undefined') {\n mapping = false;\n } else {\n if (!ES.IsCallable(mapFn)) {\n throw new TypeError('Array.from: when provided, the second argument must be a function');\n }\n\n if (arguments.length > 2) {\n T = arguments[2];\n }\n\n mapping = true;\n } // Note that that Arrays will use ArrayIterator:\n // https://bugs.ecmascript.org/show_bug.cgi?id=2416\n\n\n var usingIterator = typeof (isArguments(items) || ES.GetMethod(items, $iterator$)) !== 'undefined';\n var length, result, i;\n\n if (usingIterator) {\n result = ES.IsConstructor(C) ? Object(new C()) : [];\n var iterator = ES.GetIterator(items);\n var next, nextValue;\n i = 0;\n\n while (true) {\n next = ES.IteratorStep(iterator);\n\n if (next === false) {\n break;\n }\n\n nextValue = next.value;\n\n try {\n if (mapping) {\n nextValue = typeof T === 'undefined' ? mapFn(nextValue, i) : _call(mapFn, T, nextValue, i);\n }\n\n result[i] = nextValue;\n } catch (e) {\n ES.IteratorClose(iterator, true);\n throw e;\n }\n\n i += 1;\n }\n\n length = i;\n } else {\n var arrayLike = ES.ToObject(items);\n length = ES.ToLength(arrayLike.length);\n result = ES.IsConstructor(C) ? Object(new C(length)) : new Array(length);\n var value;\n\n for (i = 0; i < length; ++i) {\n value = arrayLike[i];\n\n if (mapping) {\n value = typeof T === 'undefined' ? mapFn(value, i) : _call(mapFn, T, value, i);\n }\n\n createDataPropertyOrThrow(result, i, value);\n }\n }\n\n result.length = length;\n return result;\n },\n of: function of() {\n var len = arguments.length;\n var C = this;\n var A = isArray(C) || !ES.IsCallable(C) ? new Array(len) : ES.Construct(C, [len]);\n\n for (var k = 0; k < len; ++k) {\n createDataPropertyOrThrow(A, k, arguments[k]);\n }\n\n A.length = len;\n return A;\n }\n };\n defineProperties(Array, ArrayShims);\n addDefaultSpecies(Array); // Our ArrayIterator is private; see\n // https://github.com/paulmillr/es6-shim/issues/252\n\n ArrayIterator = function ArrayIterator(array, kind) {\n this.i = 0;\n this.array = array;\n this.kind = kind;\n };\n\n defineProperties(ArrayIterator.prototype, {\n next: function next() {\n var i = this.i;\n var array = this.array;\n\n if (!(this instanceof ArrayIterator)) {\n throw new TypeError('Not an ArrayIterator');\n }\n\n if (typeof array !== 'undefined') {\n var len = ES.ToLength(array.length);\n\n if (i < len) {\n //for (; i < len; i++) {\n var kind = this.kind;\n var retval;\n\n if (kind === 'key') {\n retval = i;\n } else if (kind === 'value') {\n retval = array[i];\n } else if (kind === 'entry') {\n retval = [i, array[i]];\n }\n\n this.i = i + 1;\n return iteratorResult(retval);\n }\n }\n\n this.array = void 0;\n return iteratorResult();\n }\n });\n addIterator(ArrayIterator.prototype);\n /*\n var orderKeys = function orderKeys(a, b) {\n var aNumeric = String(ES.ToInteger(a)) === a;\n var bNumeric = String(ES.ToInteger(b)) === b;\n if (aNumeric && bNumeric) {\n return b - a;\n } else if (aNumeric && !bNumeric) {\n return -1;\n } else if (!aNumeric && bNumeric) {\n return 1;\n } else {\n return a.localeCompare(b);\n }\n };\n var getAllKeys = function getAllKeys(object) {\n var ownKeys = [];\n var keys = [];\n for (var key in object) {\n _push(_hasOwnProperty(object, key) ? ownKeys : keys, key);\n }\n _sort(ownKeys, orderKeys);\n _sort(keys, orderKeys);\n return _concat(ownKeys, keys);\n };\n */\n // note: this is positioned here because it depends on ArrayIterator\n\n var arrayOfSupportsSubclassing = Array.of === ArrayShims.of || function () {\n // Detects a bug in Webkit nightly r181886\n var Foo = function Foo(len) {\n this.length = len;\n };\n\n Foo.prototype = [];\n var fooArr = Array.of.apply(Foo, [1, 2]);\n return fooArr instanceof Foo && fooArr.length === 2;\n }();\n\n if (!arrayOfSupportsSubclassing) {\n overrideNative(Array, 'of', ArrayShims.of);\n }\n\n var ArrayPrototypeShims = {\n copyWithin: function copyWithin(target, start) {\n var o = ES.ToObject(this);\n var len = ES.ToLength(o.length);\n var relativeTarget = ES.ToInteger(target);\n var relativeStart = ES.ToInteger(start);\n var to = relativeTarget < 0 ? _max(len + relativeTarget, 0) : _min(relativeTarget, len);\n var from = relativeStart < 0 ? _max(len + relativeStart, 0) : _min(relativeStart, len);\n var end;\n\n if (arguments.length > 2) {\n end = arguments[2];\n }\n\n var relativeEnd = typeof end === 'undefined' ? len : ES.ToInteger(end);\n var finalItem = relativeEnd < 0 ? _max(len + relativeEnd, 0) : _min(relativeEnd, len);\n\n var count = _min(finalItem - from, len - to);\n\n var direction = 1;\n\n if (from < to && to < from + count) {\n direction = -1;\n from += count - 1;\n to += count - 1;\n }\n\n while (count > 0) {\n if (from in o) {\n o[to] = o[from];\n } else {\n delete o[to];\n }\n\n from += direction;\n to += direction;\n count -= 1;\n }\n\n return o;\n },\n fill: function fill(value) {\n var start;\n\n if (arguments.length > 1) {\n start = arguments[1];\n }\n\n var end;\n\n if (arguments.length > 2) {\n end = arguments[2];\n }\n\n var O = ES.ToObject(this);\n var len = ES.ToLength(O.length);\n start = ES.ToInteger(typeof start === 'undefined' ? 0 : start);\n end = ES.ToInteger(typeof end === 'undefined' ? len : end);\n var relativeStart = start < 0 ? _max(len + start, 0) : _min(start, len);\n var relativeEnd = end < 0 ? len + end : end;\n\n for (var i = relativeStart; i < len && i < relativeEnd; ++i) {\n O[i] = value;\n }\n\n return O;\n },\n find: function find(predicate) {\n var list = ES.ToObject(this);\n var length = ES.ToLength(list.length);\n\n if (!ES.IsCallable(predicate)) {\n throw new TypeError('Array#find: predicate must be a function');\n }\n\n var thisArg = arguments.length > 1 ? arguments[1] : null;\n\n for (var i = 0, value; i < length; i++) {\n value = list[i];\n\n if (thisArg) {\n if (_call(predicate, thisArg, value, i, list)) {\n return value;\n }\n } else if (predicate(value, i, list)) {\n return value;\n }\n }\n },\n findIndex: function findIndex(predicate) {\n var list = ES.ToObject(this);\n var length = ES.ToLength(list.length);\n\n if (!ES.IsCallable(predicate)) {\n throw new TypeError('Array#findIndex: predicate must be a function');\n }\n\n var thisArg = arguments.length > 1 ? arguments[1] : null;\n\n for (var i = 0; i < length; i++) {\n if (thisArg) {\n if (_call(predicate, thisArg, list[i], i, list)) {\n return i;\n }\n } else if (predicate(list[i], i, list)) {\n return i;\n }\n }\n\n return -1;\n },\n keys: function keys() {\n return new ArrayIterator(this, 'key');\n },\n values: function values() {\n return new ArrayIterator(this, 'value');\n },\n entries: function entries() {\n return new ArrayIterator(this, 'entry');\n }\n }; // Safari 7.1 defines Array#keys and Array#entries natively,\n // but the resulting ArrayIterator objects don't have a \"next\" method.\n\n if (Array.prototype.keys && !ES.IsCallable([1].keys().next)) {\n delete Array.prototype.keys;\n }\n\n if (Array.prototype.entries && !ES.IsCallable([1].entries().next)) {\n delete Array.prototype.entries;\n } // Chrome 38 defines Array#keys and Array#entries, and Array#@@iterator, but not Array#values\n\n\n if (Array.prototype.keys && Array.prototype.entries && !Array.prototype.values && Array.prototype[$iterator$]) {\n defineProperties(Array.prototype, {\n values: Array.prototype[$iterator$]\n });\n\n if (Type.symbol(_Symbol.unscopables)) {\n Array.prototype[_Symbol.unscopables].values = true;\n }\n } // Chrome 40 defines Array#values with the incorrect name, although Array#{keys,entries} have the correct name\n\n\n if (functionsHaveNames && Array.prototype.values && Array.prototype.values.name !== 'values') {\n var originalArrayPrototypeValues = Array.prototype.values;\n overrideNative(Array.prototype, 'values', function values() {\n return ES.Call(originalArrayPrototypeValues, this, arguments);\n });\n defineProperty(Array.prototype, $iterator$, Array.prototype.values, true);\n }\n\n defineProperties(Array.prototype, ArrayPrototypeShims);\n\n if (1 / [true].indexOf(true, -0) < 0) {\n // indexOf when given a position arg of -0 should return +0.\n // https://github.com/tc39/ecma262/pull/316\n defineProperty(Array.prototype, 'indexOf', function indexOf(searchElement) {\n var value = _arrayIndexOfApply(this, arguments);\n\n if (value === 0 && 1 / value < 0) {\n return 0;\n }\n\n return value;\n }, true);\n }\n\n addIterator(Array.prototype, function () {\n return this.values();\n }); // Chrome defines keys/values/entries on Array, but doesn't give us\n // any way to identify its iterator. So add our own shimmed field.\n\n if (Object.getPrototypeOf) {\n addIterator(Object.getPrototypeOf([].values()));\n } // note: this is positioned here because it relies on Array#entries\n\n\n var arrayFromSwallowsNegativeLengths = function () {\n // Detects a Firefox bug in v32\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1063993\n return valueOrFalseIfThrows(function () {\n return Array.from({\n length: -1\n }).length === 0;\n });\n }();\n\n var arrayFromHandlesIterables = function () {\n // Detects a bug in Webkit nightly r181886\n var arr = Array.from([0].entries());\n return arr.length === 1 && isArray(arr[0]) && arr[0][0] === 0 && arr[0][1] === 0;\n }();\n\n if (!arrayFromSwallowsNegativeLengths || !arrayFromHandlesIterables) {\n overrideNative(Array, 'from', ArrayShims.from);\n }\n\n var arrayFromHandlesUndefinedMapFunction = function () {\n // Microsoft Edge v0.11 throws if the mapFn argument is *provided* but undefined,\n // but the spec doesn't care if it's provided or not - undefined doesn't throw.\n return valueOrFalseIfThrows(function () {\n return Array.from([0], void 0);\n });\n }();\n\n if (!arrayFromHandlesUndefinedMapFunction) {\n var origArrayFrom = Array.from;\n overrideNative(Array, 'from', function from(items) {\n if (arguments.length > 1 && typeof arguments[1] !== 'undefined') {\n return ES.Call(origArrayFrom, this, arguments);\n } else {\n return _call(origArrayFrom, this, items);\n }\n });\n }\n\n var int32sAsOne = -(Math.pow(2, 32) - 1);\n\n var toLengthsCorrectly = function toLengthsCorrectly(method, reversed) {\n var obj = {\n length: int32sAsOne\n };\n obj[reversed ? (obj.length >>> 0) - 1 : 0] = true;\n return valueOrFalseIfThrows(function () {\n _call(method, obj, function () {\n // note: in nonconforming browsers, this will be called\n // -1 >>> 0 times, which is 4294967295, so the throw matters.\n throw new RangeError('should not reach here');\n }, []);\n\n return true;\n });\n };\n\n if (!toLengthsCorrectly(Array.prototype.forEach)) {\n var originalForEach = Array.prototype.forEach;\n overrideNative(Array.prototype, 'forEach', function forEach(callbackFn) {\n return ES.Call(originalForEach, this.length >= 0 ? this : [], arguments);\n });\n }\n\n if (!toLengthsCorrectly(Array.prototype.map)) {\n var originalMap = Array.prototype.map;\n overrideNative(Array.prototype, 'map', function map(callbackFn) {\n return ES.Call(originalMap, this.length >= 0 ? this : [], arguments);\n });\n }\n\n if (!toLengthsCorrectly(Array.prototype.filter)) {\n var originalFilter = Array.prototype.filter;\n overrideNative(Array.prototype, 'filter', function filter(callbackFn) {\n return ES.Call(originalFilter, this.length >= 0 ? this : [], arguments);\n });\n }\n\n if (!toLengthsCorrectly(Array.prototype.some)) {\n var originalSome = Array.prototype.some;\n overrideNative(Array.prototype, 'some', function some(callbackFn) {\n return ES.Call(originalSome, this.length >= 0 ? this : [], arguments);\n });\n }\n\n if (!toLengthsCorrectly(Array.prototype.every)) {\n var originalEvery = Array.prototype.every;\n overrideNative(Array.prototype, 'every', function every(callbackFn) {\n return ES.Call(originalEvery, this.length >= 0 ? this : [], arguments);\n });\n }\n\n if (!toLengthsCorrectly(Array.prototype.reduce)) {\n var originalReduce = Array.prototype.reduce;\n overrideNative(Array.prototype, 'reduce', function reduce(callbackFn) {\n return ES.Call(originalReduce, this.length >= 0 ? this : [], arguments);\n });\n }\n\n if (!toLengthsCorrectly(Array.prototype.reduceRight, true)) {\n var originalReduceRight = Array.prototype.reduceRight;\n overrideNative(Array.prototype, 'reduceRight', function reduceRight(callbackFn) {\n return ES.Call(originalReduceRight, this.length >= 0 ? this : [], arguments);\n });\n }\n\n var lacksOctalSupport = Number('0o10') !== 8;\n var lacksBinarySupport = Number('0b10') !== 2;\n\n var trimsNonWhitespace = _some(nonWS, function (c) {\n return Number(c + 0 + c) === 0;\n });\n\n if (lacksOctalSupport || lacksBinarySupport || trimsNonWhitespace) {\n var OrigNumber = Number;\n var binaryRegex = /^0b[01]+$/i;\n var octalRegex = /^0o[0-7]+$/i; // Note that in IE 8, RegExp.prototype.test doesn't seem to exist: ie, \"test\" is an own property of regexes. wtf.\n\n var isBinary = binaryRegex.test.bind(binaryRegex);\n var isOctal = octalRegex.test.bind(octalRegex);\n\n var toPrimitive = function toPrimitive(O, hint) {\n // need to replace this with `es-to-primitive/es6`\n var result;\n\n if (typeof O.valueOf === 'function') {\n result = O.valueOf();\n\n if (Type.primitive(result)) {\n return result;\n }\n }\n\n if (typeof O.toString === 'function') {\n result = O.toString();\n\n if (Type.primitive(result)) {\n return result;\n }\n }\n\n throw new TypeError('No default value');\n };\n\n var hasNonWS = nonWSregex.test.bind(nonWSregex);\n var isBadHex = isBadHexRegex.test.bind(isBadHexRegex);\n\n var NumberShim = function () {\n // this is wrapped in an IIFE because of IE 6-8's wacky scoping issues with named function expressions.\n var NumberShim = function Number(value) {\n var primValue;\n\n if (arguments.length > 0) {\n primValue = Type.primitive(value) ? value : toPrimitive(value, 'number');\n } else {\n primValue = 0;\n }\n\n if (typeof primValue === 'string') {\n primValue = ES.Call(trimShim, primValue);\n\n if (isBinary(primValue)) {\n primValue = parseInt(_strSlice(primValue, 2), 2);\n } else if (isOctal(primValue)) {\n primValue = parseInt(_strSlice(primValue, 2), 8);\n } else if (hasNonWS(primValue) || isBadHex(primValue)) {\n primValue = NaN;\n }\n }\n\n var receiver = this;\n var valueOfSucceeds = valueOrFalseIfThrows(function () {\n OrigNumber.prototype.valueOf.call(receiver);\n return true;\n });\n\n if (receiver instanceof NumberShim && !valueOfSucceeds) {\n return new OrigNumber(primValue);\n }\n\n return OrigNumber(primValue);\n };\n\n return NumberShim;\n }();\n\n wrapConstructor(OrigNumber, NumberShim, {}); // this is necessary for ES3 browsers, where these properties are non-enumerable.\n\n defineProperties(NumberShim, {\n NaN: OrigNumber.NaN,\n MAX_VALUE: OrigNumber.MAX_VALUE,\n MIN_VALUE: OrigNumber.MIN_VALUE,\n NEGATIVE_INFINITY: OrigNumber.NEGATIVE_INFINITY,\n POSITIVE_INFINITY: OrigNumber.POSITIVE_INFINITY\n });\n /* eslint-disable no-undef, no-global-assign */\n\n Number = NumberShim;\n Value.redefine(globals, 'Number', NumberShim);\n /* eslint-enable no-undef, no-global-assign */\n }\n\n var maxSafeInteger = Math.pow(2, 53) - 1;\n defineProperties(Number, {\n MAX_SAFE_INTEGER: maxSafeInteger,\n MIN_SAFE_INTEGER: -maxSafeInteger,\n EPSILON: 2.220446049250313e-16,\n parseInt: globals.parseInt,\n parseFloat: globals.parseFloat,\n isFinite: numberIsFinite,\n isInteger: function isInteger(value) {\n return numberIsFinite(value) && ES.ToInteger(value) === value;\n },\n isSafeInteger: function isSafeInteger(value) {\n return Number.isInteger(value) && _abs(value) <= Number.MAX_SAFE_INTEGER;\n },\n isNaN: numberIsNaN\n }); // Firefox 37 has a conforming Number.parseInt, but it's not === to the global parseInt (fixed in v40)\n\n defineProperty(Number, 'parseInt', globals.parseInt, Number.parseInt !== globals.parseInt); // Work around bugs in Array#find and Array#findIndex -- early\n // implementations skipped holes in sparse arrays. (Note that the\n // implementations of find/findIndex indirectly use shimmed\n // methods of Number, so this test has to happen down here.)\n\n /* eslint-disable no-sparse-arrays */\n\n if ([, 1].find(function () {\n return true;\n }) === 1) {\n overrideNative(Array.prototype, 'find', ArrayPrototypeShims.find);\n }\n\n if ([, 1].findIndex(function () {\n return true;\n }) !== 0) {\n overrideNative(Array.prototype, 'findIndex', ArrayPrototypeShims.findIndex);\n }\n /* eslint-enable no-sparse-arrays */\n\n\n var isEnumerableOn = Function.bind.call(Function.bind, Object.prototype.propertyIsEnumerable);\n\n var ensureEnumerable = function ensureEnumerable(obj, prop) {\n if (supportsDescriptors && isEnumerableOn(obj, prop)) {\n Object.defineProperty(obj, prop, {\n enumerable: false\n });\n }\n };\n\n var sliceArgs = function sliceArgs() {\n // per https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments\n // and https://gist.github.com/WebReflection/4327762cb87a8c634a29\n var initial = Number(this);\n var len = arguments.length;\n var desiredArgCount = len - initial;\n var args = new Array(desiredArgCount < 0 ? 0 : desiredArgCount);\n\n for (var i = initial; i < len; ++i) {\n args[i - initial] = arguments[i];\n }\n\n return args;\n };\n\n var assignTo = function assignTo(source) {\n return function assignToSource(target, key) {\n target[key] = source[key];\n return target;\n };\n };\n\n var assignReducer = function assignReducer(target, source) {\n var sourceKeys = keys(Object(source));\n var symbols;\n\n if (ES.IsCallable(Object.getOwnPropertySymbols)) {\n symbols = _filter(Object.getOwnPropertySymbols(Object(source)), isEnumerableOn(source));\n }\n\n return _reduce(_concat(sourceKeys, symbols || []), assignTo(source), target);\n };\n\n var ObjectShims = {\n // 19.1.3.1\n assign: function assign(target, source) {\n var to = ES.ToObject(target, 'Cannot convert undefined or null to object');\n return _reduce(ES.Call(sliceArgs, 1, arguments), assignReducer, to);\n },\n // Added in WebKit in https://bugs.webkit.org/show_bug.cgi?id=143865\n is: function is(a, b) {\n return ES.SameValue(a, b);\n }\n };\n\n var assignHasPendingExceptions = Object.assign && Object.preventExtensions && function () {\n // Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n // which is 72% slower than our shim, and Firefox 40's native implementation.\n var thrower = Object.preventExtensions({\n 1: 2\n });\n\n try {\n Object.assign(thrower, 'xy');\n } catch (e) {\n return thrower[1] === 'y';\n }\n }();\n\n if (assignHasPendingExceptions) {\n overrideNative(Object, 'assign', ObjectShims.assign);\n }\n\n defineProperties(Object, ObjectShims);\n\n if (supportsDescriptors) {\n var ES5ObjectShims = {\n // 19.1.3.9\n // shim from https://gist.github.com/WebReflection/5593554\n setPrototypeOf: function (Object, magic) {\n var set;\n\n var checkArgs = function checkArgs(O, proto) {\n if (!ES.TypeIsObject(O)) {\n throw new TypeError('cannot set prototype on a non-object');\n }\n\n if (!(proto === null || ES.TypeIsObject(proto))) {\n throw new TypeError('can only set prototype to an object or null' + proto);\n }\n };\n\n var setPrototypeOf = function setPrototypeOf(O, proto) {\n checkArgs(O, proto);\n\n _call(set, O, proto);\n\n return O;\n };\n\n try {\n // this works already in Firefox and Safari\n set = Object.getOwnPropertyDescriptor(Object.prototype, magic).set;\n\n _call(set, {}, null);\n } catch (e) {\n if (Object.prototype !== {}[magic]) {\n // IE < 11 cannot be shimmed\n return;\n } // probably Chrome or some old Mobile stock browser\n\n\n set = function set(proto) {\n this[magic] = proto;\n }; // please note that this will **not** work\n // in those browsers that do not inherit\n // __proto__ by mistake from Object.prototype\n // in these cases we should probably throw an error\n // or at least be informed about the issue\n\n\n setPrototypeOf.polyfill = setPrototypeOf(setPrototypeOf({}, null), Object.prototype) instanceof Object; // setPrototypeOf.polyfill === true means it works as meant\n // setPrototypeOf.polyfill === false means it's not 100% reliable\n // setPrototypeOf.polyfill === undefined\n // or\n // setPrototypeOf.polyfill == null means it's not a polyfill\n // which means it works as expected\n // we can even delete Object.prototype.__proto__;\n }\n\n return setPrototypeOf;\n }(Object, '__proto__')\n };\n defineProperties(Object, ES5ObjectShims);\n } // Workaround bug in Opera 12 where setPrototypeOf(x, null) doesn't work,\n // but Object.create(null) does.\n\n\n if (Object.setPrototypeOf && Object.getPrototypeOf && Object.getPrototypeOf(Object.setPrototypeOf({}, null)) !== null && Object.getPrototypeOf(Object.create(null)) === null) {\n (function () {\n var FAKENULL = Object.create(null);\n var gpo = Object.getPrototypeOf;\n var spo = Object.setPrototypeOf;\n\n Object.getPrototypeOf = function (o) {\n var result = gpo(o);\n return result === FAKENULL ? null : result;\n };\n\n Object.setPrototypeOf = function (o, p) {\n var proto = p === null ? FAKENULL : p;\n return spo(o, proto);\n };\n\n Object.setPrototypeOf.polyfill = false;\n })();\n }\n\n var objectKeysAcceptsPrimitives = !throwsError(function () {\n return Object.keys('foo');\n });\n\n if (!objectKeysAcceptsPrimitives) {\n var originalObjectKeys = Object.keys;\n overrideNative(Object, 'keys', function keys(value) {\n return originalObjectKeys(ES.ToObject(value));\n });\n keys = Object.keys;\n }\n\n var objectKeysRejectsRegex = throwsError(function () {\n return Object.keys(/a/g);\n });\n\n if (objectKeysRejectsRegex) {\n var regexRejectingObjectKeys = Object.keys;\n overrideNative(Object, 'keys', function keys(value) {\n if (Type.regex(value)) {\n var regexKeys = [];\n\n for (var k in value) {\n if (_hasOwnProperty(value, k)) {\n _push(regexKeys, k);\n }\n }\n\n return regexKeys;\n }\n\n return regexRejectingObjectKeys(value);\n });\n keys = Object.keys;\n }\n\n if (Object.getOwnPropertyNames) {\n var objectGOPNAcceptsPrimitives = !throwsError(function () {\n return Object.getOwnPropertyNames('foo');\n });\n\n if (!objectGOPNAcceptsPrimitives) {\n var cachedWindowNames = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === 'object' ? Object.getOwnPropertyNames(window) : [];\n var originalObjectGetOwnPropertyNames = Object.getOwnPropertyNames;\n overrideNative(Object, 'getOwnPropertyNames', function getOwnPropertyNames(value) {\n var val = ES.ToObject(value);\n\n if (_toString(val) === '[object Window]') {\n try {\n return originalObjectGetOwnPropertyNames(val);\n } catch (e) {\n // IE bug where layout engine calls userland gOPN for cross-domain `window` objects\n return _concat([], cachedWindowNames);\n }\n }\n\n return originalObjectGetOwnPropertyNames(val);\n });\n }\n }\n\n if (Object.getOwnPropertyDescriptor) {\n var objectGOPDAcceptsPrimitives = !throwsError(function () {\n return Object.getOwnPropertyDescriptor('foo', 'bar');\n });\n\n if (!objectGOPDAcceptsPrimitives) {\n var originalObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n overrideNative(Object, 'getOwnPropertyDescriptor', function getOwnPropertyDescriptor(value, property) {\n return originalObjectGetOwnPropertyDescriptor(ES.ToObject(value), property);\n });\n }\n }\n\n if (Object.seal) {\n var objectSealAcceptsPrimitives = !throwsError(function () {\n return Object.seal('foo');\n });\n\n if (!objectSealAcceptsPrimitives) {\n var originalObjectSeal = Object.seal;\n overrideNative(Object, 'seal', function seal(value) {\n if (!ES.TypeIsObject(value)) {\n return value;\n }\n\n return originalObjectSeal(value);\n });\n }\n }\n\n if (Object.isSealed) {\n var objectIsSealedAcceptsPrimitives = !throwsError(function () {\n return Object.isSealed('foo');\n });\n\n if (!objectIsSealedAcceptsPrimitives) {\n var originalObjectIsSealed = Object.isSealed;\n overrideNative(Object, 'isSealed', function isSealed(value) {\n if (!ES.TypeIsObject(value)) {\n return true;\n }\n\n return originalObjectIsSealed(value);\n });\n }\n }\n\n if (Object.freeze) {\n var objectFreezeAcceptsPrimitives = !throwsError(function () {\n return Object.freeze('foo');\n });\n\n if (!objectFreezeAcceptsPrimitives) {\n var originalObjectFreeze = Object.freeze;\n overrideNative(Object, 'freeze', function freeze(value) {\n if (!ES.TypeIsObject(value)) {\n return value;\n }\n\n return originalObjectFreeze(value);\n });\n }\n }\n\n if (Object.isFrozen) {\n var objectIsFrozenAcceptsPrimitives = !throwsError(function () {\n return Object.isFrozen('foo');\n });\n\n if (!objectIsFrozenAcceptsPrimitives) {\n var originalObjectIsFrozen = Object.isFrozen;\n overrideNative(Object, 'isFrozen', function isFrozen(value) {\n if (!ES.TypeIsObject(value)) {\n return true;\n }\n\n return originalObjectIsFrozen(value);\n });\n }\n }\n\n if (Object.preventExtensions) {\n var objectPreventExtensionsAcceptsPrimitives = !throwsError(function () {\n return Object.preventExtensions('foo');\n });\n\n if (!objectPreventExtensionsAcceptsPrimitives) {\n var originalObjectPreventExtensions = Object.preventExtensions;\n overrideNative(Object, 'preventExtensions', function preventExtensions(value) {\n if (!ES.TypeIsObject(value)) {\n return value;\n }\n\n return originalObjectPreventExtensions(value);\n });\n }\n }\n\n if (Object.isExtensible) {\n var objectIsExtensibleAcceptsPrimitives = !throwsError(function () {\n return Object.isExtensible('foo');\n });\n\n if (!objectIsExtensibleAcceptsPrimitives) {\n var originalObjectIsExtensible = Object.isExtensible;\n overrideNative(Object, 'isExtensible', function isExtensible(value) {\n if (!ES.TypeIsObject(value)) {\n return false;\n }\n\n return originalObjectIsExtensible(value);\n });\n }\n }\n\n if (Object.getPrototypeOf) {\n var objectGetProtoAcceptsPrimitives = !throwsError(function () {\n return Object.getPrototypeOf('foo');\n });\n\n if (!objectGetProtoAcceptsPrimitives) {\n var originalGetProto = Object.getPrototypeOf;\n overrideNative(Object, 'getPrototypeOf', function getPrototypeOf(value) {\n return originalGetProto(ES.ToObject(value));\n });\n }\n }\n\n var hasFlags = supportsDescriptors && function () {\n var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags');\n return desc && ES.IsCallable(desc.get);\n }();\n\n if (supportsDescriptors && !hasFlags) {\n var regExpFlagsGetter = function flags() {\n if (!ES.TypeIsObject(this)) {\n throw new TypeError('Method called on incompatible type: must be an object.');\n }\n\n var result = '';\n\n if (this.global) {\n result += 'g';\n }\n\n if (this.ignoreCase) {\n result += 'i';\n }\n\n if (this.multiline) {\n result += 'm';\n }\n\n if (this.unicode) {\n result += 'u';\n }\n\n if (this.sticky) {\n result += 'y';\n }\n\n return result;\n };\n\n Value.getter(RegExp.prototype, 'flags', regExpFlagsGetter);\n }\n\n var regExpSupportsFlagsWithRegex = supportsDescriptors && valueOrFalseIfThrows(function () {\n return String(new RegExp(/a/g, 'i')) === '/a/i';\n });\n\n var regExpNeedsToSupportSymbolMatch = hasSymbols && supportsDescriptors && function () {\n // Edge 0.12 supports flags fully, but does not support Symbol.match\n var regex = /./;\n regex[_Symbol.match] = false;\n return RegExp(regex) === regex;\n }();\n\n var regexToStringIsGeneric = valueOrFalseIfThrows(function () {\n return RegExp.prototype.toString.call({\n source: 'abc'\n }) === '/abc/';\n });\n var regexToStringSupportsGenericFlags = regexToStringIsGeneric && valueOrFalseIfThrows(function () {\n return RegExp.prototype.toString.call({\n source: 'a',\n flags: 'b'\n }) === '/a/b';\n });\n\n if (!regexToStringIsGeneric || !regexToStringSupportsGenericFlags) {\n var origRegExpToString = RegExp.prototype.toString;\n defineProperty(RegExp.prototype, 'toString', function toString() {\n var R = ES.RequireObjectCoercible(this);\n\n if (Type.regex(R)) {\n return _call(origRegExpToString, R);\n }\n\n var pattern = $String(R.source);\n var flags = $String(R.flags);\n return '/' + pattern + '/' + flags;\n }, true);\n Value.preserveToString(RegExp.prototype.toString, origRegExpToString);\n }\n\n if (supportsDescriptors && (!regExpSupportsFlagsWithRegex || regExpNeedsToSupportSymbolMatch)) {\n var flagsGetter = Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags').get;\n var sourceDesc = Object.getOwnPropertyDescriptor(RegExp.prototype, 'source') || {};\n\n var legacySourceGetter = function legacySourceGetter() {\n // prior to it being a getter, it's own + nonconfigurable\n return this.source;\n };\n\n var sourceGetter = ES.IsCallable(sourceDesc.get) ? sourceDesc.get : legacySourceGetter;\n var OrigRegExp = RegExp;\n\n var RegExpShim = function () {\n return function RegExp(pattern, flags) {\n var patternIsRegExp = ES.IsRegExp(pattern);\n var calledWithNew = this instanceof RegExp;\n\n if (!calledWithNew && patternIsRegExp && typeof flags === 'undefined' && pattern.constructor === RegExp) {\n return pattern;\n }\n\n var P = pattern;\n var F = flags;\n\n if (Type.regex(pattern)) {\n P = ES.Call(sourceGetter, pattern);\n F = typeof flags === 'undefined' ? ES.Call(flagsGetter, pattern) : flags;\n return new RegExp(P, F);\n } else if (patternIsRegExp) {\n P = pattern.source;\n F = typeof flags === 'undefined' ? pattern.flags : flags;\n }\n\n return new OrigRegExp(pattern, flags);\n };\n }();\n\n wrapConstructor(OrigRegExp, RegExpShim, {\n $input: true // Chrome < v39 & Opera < 26 have a nonstandard \"$input\" property\n\n });\n /* eslint-disable no-undef, no-global-assign */\n\n RegExp = RegExpShim;\n Value.redefine(globals, 'RegExp', RegExpShim);\n /* eslint-enable no-undef, no-global-assign */\n }\n\n if (supportsDescriptors) {\n var regexGlobals = {\n input: '$_',\n lastMatch: '$&',\n lastParen: '$+',\n leftContext: '$`',\n rightContext: '$\\''\n };\n\n _forEach(keys(regexGlobals), function (prop) {\n if (prop in RegExp && !(regexGlobals[prop] in RegExp)) {\n Value.getter(RegExp, regexGlobals[prop], function get() {\n return RegExp[prop];\n });\n }\n });\n }\n\n addDefaultSpecies(RegExp);\n var inverseEpsilon = 1 / Number.EPSILON;\n\n var roundTiesToEven = function roundTiesToEven(n) {\n // Even though this reduces down to `return n`, it takes advantage of built-in rounding.\n return n + inverseEpsilon - inverseEpsilon;\n };\n\n var BINARY_32_EPSILON = Math.pow(2, -23);\n var BINARY_32_MAX_VALUE = Math.pow(2, 127) * (2 - BINARY_32_EPSILON);\n var BINARY_32_MIN_VALUE = Math.pow(2, -126);\n var E = Math.E;\n var LOG2E = Math.LOG2E;\n var LOG10E = Math.LOG10E;\n var numberCLZ = Number.prototype.clz;\n delete Number.prototype.clz; // Safari 8 has Number#clz\n\n var MathShims = {\n acosh: function acosh(value) {\n var x = Number(value);\n\n if (numberIsNaN(x) || value < 1) {\n return NaN;\n }\n\n if (x === 1) {\n return 0;\n }\n\n if (x === Infinity) {\n return x;\n }\n\n var xInvSquared = 1 / (x * x);\n\n if (x < 2) {\n return _log1p(x - 1 + _sqrt(1 - xInvSquared) * x);\n }\n\n var halfX = x / 2;\n return _log1p(halfX + _sqrt(1 - xInvSquared) * halfX - 1) + 1 / LOG2E;\n },\n asinh: function asinh(value) {\n var x = Number(value);\n\n if (x === 0 || !globalIsFinite(x)) {\n return x;\n }\n\n var a = _abs(x);\n\n var aSquared = a * a;\n\n var s = _sign(x);\n\n if (a < 1) {\n return s * _log1p(a + aSquared / (_sqrt(aSquared + 1) + 1));\n }\n\n return s * (_log1p(a / 2 + _sqrt(1 + 1 / aSquared) * a / 2 - 1) + 1 / LOG2E);\n },\n atanh: function atanh(value) {\n var x = Number(value);\n\n if (x === 0) {\n return x;\n }\n\n if (x === -1) {\n return -Infinity;\n }\n\n if (x === 1) {\n return Infinity;\n }\n\n if (numberIsNaN(x) || x < -1 || x > 1) {\n return NaN;\n }\n\n var a = _abs(x);\n\n return _sign(x) * _log1p(2 * a / (1 - a)) / 2;\n },\n cbrt: function cbrt(value) {\n var x = Number(value);\n\n if (x === 0) {\n return x;\n }\n\n var negate = x < 0;\n var result;\n\n if (negate) {\n x = -x;\n }\n\n if (x === Infinity) {\n result = Infinity;\n } else {\n result = _exp(_log(x) / 3); // from http://en.wikipedia.org/wiki/Cube_root#Numerical_methods\n\n result = (x / (result * result) + 2 * result) / 3;\n }\n\n return negate ? -result : result;\n },\n clz32: function clz32(value) {\n // See https://bugs.ecmascript.org/show_bug.cgi?id=2465\n var x = Number(value);\n var number = ES.ToUint32(x);\n\n if (number === 0) {\n return 32;\n }\n\n return numberCLZ ? ES.Call(numberCLZ, number) : 31 - _floor(_log(number + 0.5) * LOG2E);\n },\n cosh: function cosh(value) {\n var x = Number(value);\n\n if (x === 0) {\n return 1;\n } // +0 or -0\n\n\n if (numberIsNaN(x)) {\n return NaN;\n }\n\n if (!globalIsFinite(x)) {\n return Infinity;\n }\n\n var t = _exp(_abs(x) - 1);\n\n return (t + 1 / (t * E * E)) * (E / 2);\n },\n expm1: function expm1(value) {\n var x = Number(value);\n\n if (x === -Infinity) {\n return -1;\n }\n\n if (!globalIsFinite(x) || x === 0) {\n return x;\n }\n\n if (_abs(x) > 0.5) {\n return _exp(x) - 1;\n } // A more precise approximation using Taylor series expansion\n // from https://github.com/paulmillr/es6-shim/issues/314#issuecomment-70293986\n\n\n var t = x;\n var sum = 0;\n var n = 1;\n\n while (sum + t !== sum) {\n sum += t;\n n += 1;\n t *= x / n;\n }\n\n return sum;\n },\n hypot: function hypot(x, y) {\n var result = 0;\n var largest = 0;\n\n for (var i = 0; i < arguments.length; ++i) {\n var value = _abs(Number(arguments[i]));\n\n if (largest < value) {\n result *= largest / value * (largest / value);\n result += 1;\n largest = value;\n } else {\n result += value > 0 ? value / largest * (value / largest) : value;\n }\n }\n\n return largest === Infinity ? Infinity : largest * _sqrt(result);\n },\n log2: function log2(value) {\n return _log(value) * LOG2E;\n },\n log10: function log10(value) {\n return _log(value) * LOG10E;\n },\n log1p: _log1p,\n sign: _sign,\n sinh: function sinh(value) {\n var x = Number(value);\n\n if (!globalIsFinite(x) || x === 0) {\n return x;\n }\n\n var a = _abs(x);\n\n if (a < 1) {\n var u = Math.expm1(a);\n return _sign(x) * u * (1 + 1 / (u + 1)) / 2;\n }\n\n var t = _exp(a - 1);\n\n return _sign(x) * (t - 1 / (t * E * E)) * (E / 2);\n },\n tanh: function tanh(value) {\n var x = Number(value);\n\n if (numberIsNaN(x) || x === 0) {\n return x;\n } // can exit early at +-20 as JS loses precision for true value at this integer\n\n\n if (x >= 20) {\n return 1;\n }\n\n if (x <= -20) {\n return -1;\n }\n\n return (Math.expm1(x) - Math.expm1(-x)) / (_exp(x) + _exp(-x));\n },\n trunc: function trunc(value) {\n var x = Number(value);\n return x < 0 ? -_floor(-x) : _floor(x);\n },\n imul: function imul(x, y) {\n // taken from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul\n var a = ES.ToUint32(x);\n var b = ES.ToUint32(y);\n var ah = a >>> 16 & 0xffff;\n var al = a & 0xffff;\n var bh = b >>> 16 & 0xffff;\n var bl = b & 0xffff; // the shift by 0 fixes the sign on the high part\n // the final |0 converts the unsigned value into a signed value\n\n return al * bl + (ah * bl + al * bh << 16 >>> 0) | 0;\n },\n fround: function fround(x) {\n var v = Number(x);\n\n if (v === 0 || v === Infinity || v === -Infinity || numberIsNaN(v)) {\n return v;\n }\n\n var sign = _sign(v);\n\n var abs = _abs(v);\n\n if (abs < BINARY_32_MIN_VALUE) {\n return sign * roundTiesToEven(abs / BINARY_32_MIN_VALUE / BINARY_32_EPSILON) * BINARY_32_MIN_VALUE * BINARY_32_EPSILON;\n } // Veltkamp's splitting (?)\n\n\n var a = (1 + BINARY_32_EPSILON / Number.EPSILON) * abs;\n var result = a - (a - abs);\n\n if (result > BINARY_32_MAX_VALUE || numberIsNaN(result)) {\n return sign * Infinity;\n }\n\n return sign * result;\n }\n };\n\n var withinULPDistance = function withinULPDistance(result, expected, distance) {\n return _abs(1 - result / expected) / Number.EPSILON < (distance || 8);\n };\n\n defineProperties(Math, MathShims); // Chrome < 40 sinh returns ∞ for large numbers\n\n defineProperty(Math, 'sinh', MathShims.sinh, Math.sinh(710) === Infinity); // Chrome < 40 cosh returns ∞ for large numbers\n\n defineProperty(Math, 'cosh', MathShims.cosh, Math.cosh(710) === Infinity); // IE 11 TP has an imprecise log1p: reports Math.log1p(-1e-17) as 0\n\n defineProperty(Math, 'log1p', MathShims.log1p, Math.log1p(-1e-17) !== -1e-17); // IE 11 TP has an imprecise asinh: reports Math.asinh(-1e7) as not exactly equal to -Math.asinh(1e7)\n\n defineProperty(Math, 'asinh', MathShims.asinh, Math.asinh(-1e7) !== -Math.asinh(1e7)); // Chrome < 54 asinh returns ∞ for large numbers and should not\n\n defineProperty(Math, 'asinh', MathShims.asinh, Math.asinh(1e+300) === Infinity); // Chrome < 54 atanh incorrectly returns 0 for large numbers\n\n defineProperty(Math, 'atanh', MathShims.atanh, Math.atanh(1e-300) === 0); // Chrome 40 has an imprecise Math.tanh with very small numbers\n\n defineProperty(Math, 'tanh', MathShims.tanh, Math.tanh(-2e-17) !== -2e-17); // Chrome 40 loses Math.acosh precision with high numbers\n\n defineProperty(Math, 'acosh', MathShims.acosh, Math.acosh(Number.MAX_VALUE) === Infinity); // Chrome < 54 has an inaccurate acosh for EPSILON deltas\n\n defineProperty(Math, 'acosh', MathShims.acosh, !withinULPDistance(Math.acosh(1 + Number.EPSILON), Math.sqrt(2 * Number.EPSILON))); // Firefox 38 on Windows\n\n defineProperty(Math, 'cbrt', MathShims.cbrt, !withinULPDistance(Math.cbrt(1e-300), 1e-100)); // node 0.11 has an imprecise Math.sinh with very small numbers\n\n defineProperty(Math, 'sinh', MathShims.sinh, Math.sinh(-2e-17) !== -2e-17); // FF 35 on Linux reports 22025.465794806725 for Math.expm1(10)\n\n var expm1OfTen = Math.expm1(10);\n defineProperty(Math, 'expm1', MathShims.expm1, expm1OfTen > 22025.465794806719 || expm1OfTen < 22025.4657948067165168); // node v12.11 - v12.15 report NaN\n\n defineProperty(Math, 'hypot', MathShims.hypot, Math.hypot(Infinity, NaN) !== Infinity);\n var origMathRound = Math.round; // breaks in e.g. Safari 8, Internet Explorer 11, Opera 12\n\n var roundHandlesBoundaryConditions = Math.round(0.5 - Number.EPSILON / 4) === 0 && Math.round(-0.5 + Number.EPSILON / 3.99) === 1; // When engines use Math.floor(x + 0.5) internally, Math.round can be buggy for large integers.\n // This behavior should be governed by \"round to nearest, ties to even mode\"\n // see http://www.ecma-international.org/ecma-262/6.0/#sec-terms-and-definitions-number-type\n // These are the boundary cases where it breaks.\n\n var smallestPositiveNumberWhereRoundBreaks = inverseEpsilon + 1;\n var largestPositiveNumberWhereRoundBreaks = 2 * inverseEpsilon - 1;\n var roundDoesNotIncreaseIntegers = [smallestPositiveNumberWhereRoundBreaks, largestPositiveNumberWhereRoundBreaks].every(function (num) {\n return Math.round(num) === num;\n });\n defineProperty(Math, 'round', function round(x) {\n var floor = _floor(x);\n\n var ceil = floor === -1 ? -0 : floor + 1;\n return x - floor < 0.5 ? floor : ceil;\n }, !roundHandlesBoundaryConditions || !roundDoesNotIncreaseIntegers);\n Value.preserveToString(Math.round, origMathRound);\n var origImul = Math.imul;\n\n if (Math.imul(0xffffffff, 5) !== -5) {\n // Safari 6.1, at least, reports \"0\" for this value\n Math.imul = MathShims.imul;\n Value.preserveToString(Math.imul, origImul);\n }\n\n if (Math.imul.length !== 2) {\n // Safari 8.0.4 has a length of 1\n // fixed in https://bugs.webkit.org/show_bug.cgi?id=143658\n overrideNative(Math, 'imul', function imul(x, y) {\n return ES.Call(origImul, Math, arguments);\n });\n } // Promises\n // Simplest possible implementation; use a 3rd-party library if you\n // want the best possible speed and/or long stack traces.\n\n\n var PromiseShim = function () {\n var setTimeout = globals.setTimeout; // some environments don't have setTimeout - no way to shim here.\n\n if (typeof setTimeout !== 'function' && _typeof(setTimeout) !== 'object') {\n return;\n }\n\n ES.IsPromise = function (promise) {\n if (!ES.TypeIsObject(promise)) {\n return false;\n }\n\n if (typeof promise._promise === 'undefined') {\n return false; // uninitialized, or missing our hidden field.\n }\n\n return true;\n }; // \"PromiseCapability\" in the spec is what most promise implementations\n // call a \"deferred\".\n\n\n var PromiseCapability = function PromiseCapability(C) {\n if (!ES.IsConstructor(C)) {\n throw new TypeError('Bad promise constructor');\n }\n\n var capability = this;\n\n var resolver = function resolver(resolve, reject) {\n if (capability.resolve !== void 0 || capability.reject !== void 0) {\n throw new TypeError('Bad Promise implementation!');\n }\n\n capability.resolve = resolve;\n capability.reject = reject;\n }; // Initialize fields to inform optimizers about the object shape.\n\n\n capability.resolve = void 0;\n capability.reject = void 0;\n capability.promise = new C(resolver);\n\n if (!(ES.IsCallable(capability.resolve) && ES.IsCallable(capability.reject))) {\n throw new TypeError('Bad promise constructor');\n }\n }; // find an appropriate setImmediate-alike\n\n\n var makeZeroTimeout;\n\n if (typeof window !== 'undefined' && ES.IsCallable(window.postMessage)) {\n makeZeroTimeout = function makeZeroTimeout() {\n // from http://dbaron.org/log/20100309-faster-timeouts\n var timeouts = [];\n var messageName = 'zero-timeout-message';\n\n var setZeroTimeout = function setZeroTimeout(fn) {\n _push(timeouts, fn);\n\n window.postMessage(messageName, '*');\n };\n\n var handleMessage = function handleMessage(event) {\n if (event.source === window && event.data === messageName) {\n event.stopPropagation();\n\n if (timeouts.length === 0) {\n return;\n }\n\n var fn = _shift(timeouts);\n\n fn();\n }\n };\n\n window.addEventListener('message', handleMessage, true);\n return setZeroTimeout;\n };\n }\n\n var makePromiseAsap = function makePromiseAsap() {\n // An efficient task-scheduler based on a pre-existing Promise\n // implementation, which we can use even if we override the\n // global Promise below (in order to workaround bugs)\n // https://github.com/Raynos/observ-hash/issues/2#issuecomment-35857671\n var P = globals.Promise;\n var pr = P && P.resolve && P.resolve();\n return pr && function (task) {\n return pr.then(task);\n };\n };\n\n var enqueue = ES.IsCallable(globals.setImmediate) ? globals.setImmediate : (typeof process === \"undefined\" ? \"undefined\" : _typeof(process)) === 'object' && process.nextTick ? process.nextTick : makePromiseAsap() || (ES.IsCallable(makeZeroTimeout) ? makeZeroTimeout() : function (task) {\n setTimeout(task, 0);\n }); // fallback\n // Constants for Promise implementation\n\n var PROMISE_IDENTITY = function PROMISE_IDENTITY(x) {\n return x;\n };\n\n var PROMISE_THROWER = function PROMISE_THROWER(e) {\n throw e;\n };\n\n var PROMISE_PENDING = 0;\n var PROMISE_FULFILLED = 1;\n var PROMISE_REJECTED = 2; // We store fulfill/reject handlers and capabilities in a single array.\n\n var PROMISE_FULFILL_OFFSET = 0;\n var PROMISE_REJECT_OFFSET = 1;\n var PROMISE_CAPABILITY_OFFSET = 2; // This is used in an optimization for chaining promises via then.\n\n var PROMISE_FAKE_CAPABILITY = {};\n\n var enqueuePromiseReactionJob = function enqueuePromiseReactionJob(handler, capability, argument) {\n enqueue(function () {\n promiseReactionJob(handler, capability, argument);\n });\n };\n\n var promiseReactionJob = function promiseReactionJob(handler, promiseCapability, argument) {\n var handlerResult, f;\n\n if (promiseCapability === PROMISE_FAKE_CAPABILITY) {\n // Fast case, when we don't actually need to chain through to a\n // (real) promiseCapability.\n return handler(argument);\n }\n\n try {\n handlerResult = handler(argument);\n f = promiseCapability.resolve;\n } catch (e) {\n handlerResult = e;\n f = promiseCapability.reject;\n }\n\n f(handlerResult);\n };\n\n var fulfillPromise = function fulfillPromise(promise, value) {\n var _promise = promise._promise;\n var length = _promise.reactionLength;\n\n if (length > 0) {\n enqueuePromiseReactionJob(_promise.fulfillReactionHandler0, _promise.reactionCapability0, value);\n _promise.fulfillReactionHandler0 = void 0;\n _promise.rejectReactions0 = void 0;\n _promise.reactionCapability0 = void 0;\n\n if (length > 1) {\n for (var i = 1, idx = 0; i < length; i++, idx += 3) {\n enqueuePromiseReactionJob(_promise[idx + PROMISE_FULFILL_OFFSET], _promise[idx + PROMISE_CAPABILITY_OFFSET], value);\n promise[idx + PROMISE_FULFILL_OFFSET] = void 0;\n promise[idx + PROMISE_REJECT_OFFSET] = void 0;\n promise[idx + PROMISE_CAPABILITY_OFFSET] = void 0;\n }\n }\n }\n\n _promise.result = value;\n _promise.state = PROMISE_FULFILLED;\n _promise.reactionLength = 0;\n };\n\n var rejectPromise = function rejectPromise(promise, reason) {\n var _promise = promise._promise;\n var length = _promise.reactionLength;\n\n if (length > 0) {\n enqueuePromiseReactionJob(_promise.rejectReactionHandler0, _promise.reactionCapability0, reason);\n _promise.fulfillReactionHandler0 = void 0;\n _promise.rejectReactions0 = void 0;\n _promise.reactionCapability0 = void 0;\n\n if (length > 1) {\n for (var i = 1, idx = 0; i < length; i++, idx += 3) {\n enqueuePromiseReactionJob(_promise[idx + PROMISE_REJECT_OFFSET], _promise[idx + PROMISE_CAPABILITY_OFFSET], reason);\n promise[idx + PROMISE_FULFILL_OFFSET] = void 0;\n promise[idx + PROMISE_REJECT_OFFSET] = void 0;\n promise[idx + PROMISE_CAPABILITY_OFFSET] = void 0;\n }\n }\n }\n\n _promise.result = reason;\n _promise.state = PROMISE_REJECTED;\n _promise.reactionLength = 0;\n };\n\n var createResolvingFunctions = function createResolvingFunctions(promise) {\n var alreadyResolved = false;\n\n var resolve = function resolve(resolution) {\n var then;\n\n if (alreadyResolved) {\n return;\n }\n\n alreadyResolved = true;\n\n if (resolution === promise) {\n return rejectPromise(promise, new TypeError('Self resolution'));\n }\n\n if (!ES.TypeIsObject(resolution)) {\n return fulfillPromise(promise, resolution);\n }\n\n try {\n then = resolution.then;\n } catch (e) {\n return rejectPromise(promise, e);\n }\n\n if (!ES.IsCallable(then)) {\n return fulfillPromise(promise, resolution);\n }\n\n enqueue(function () {\n promiseResolveThenableJob(promise, resolution, then);\n });\n };\n\n var reject = function reject(reason) {\n if (alreadyResolved) {\n return;\n }\n\n alreadyResolved = true;\n return rejectPromise(promise, reason);\n };\n\n return {\n resolve: resolve,\n reject: reject\n };\n };\n\n var optimizedThen = function optimizedThen(then, thenable, resolve, reject) {\n // Optimization: since we discard the result, we can pass our\n // own then implementation a special hint to let it know it\n // doesn't have to create it. (The PROMISE_FAKE_CAPABILITY\n // object is local to this implementation and unforgeable outside.)\n if (then === Promise$prototype$then) {\n _call(then, thenable, resolve, reject, PROMISE_FAKE_CAPABILITY);\n } else {\n _call(then, thenable, resolve, reject);\n }\n };\n\n var promiseResolveThenableJob = function promiseResolveThenableJob(promise, thenable, then) {\n var resolvingFunctions = createResolvingFunctions(promise);\n var resolve = resolvingFunctions.resolve;\n var reject = resolvingFunctions.reject;\n\n try {\n optimizedThen(then, thenable, resolve, reject);\n } catch (e) {\n reject(e);\n }\n };\n\n var Promise$prototype, Promise$prototype$then;\n\n var Promise = function () {\n var PromiseShim = function Promise(resolver) {\n if (!(this instanceof PromiseShim)) {\n throw new TypeError('Constructor Promise requires \"new\"');\n }\n\n if (this && this._promise) {\n throw new TypeError('Bad construction');\n } // see https://bugs.ecmascript.org/show_bug.cgi?id=2482\n\n\n if (!ES.IsCallable(resolver)) {\n throw new TypeError('not a valid resolver');\n }\n\n var promise = emulateES6construct(this, PromiseShim, Promise$prototype, {\n _promise: {\n result: void 0,\n state: PROMISE_PENDING,\n // The first member of the \"reactions\" array is inlined here,\n // since most promises only have one reaction.\n // We've also exploded the 'reaction' object to inline the\n // \"handler\" and \"capability\" fields, since both fulfill and\n // reject reactions share the same capability.\n reactionLength: 0,\n fulfillReactionHandler0: void 0,\n rejectReactionHandler0: void 0,\n reactionCapability0: void 0\n }\n });\n var resolvingFunctions = createResolvingFunctions(promise);\n var reject = resolvingFunctions.reject;\n\n try {\n resolver(resolvingFunctions.resolve, reject);\n } catch (e) {\n reject(e);\n }\n\n return promise;\n };\n\n return PromiseShim;\n }();\n\n Promise$prototype = Promise.prototype;\n\n var _promiseAllResolver = function _promiseAllResolver(index, values, capability, remaining) {\n var alreadyCalled = false;\n return function (x) {\n if (alreadyCalled) {\n return;\n }\n\n alreadyCalled = true;\n values[index] = x;\n\n if (--remaining.count === 0) {\n var resolve = capability.resolve;\n resolve(values); // call w/ this===undefined\n }\n };\n };\n\n var performPromiseAll = function performPromiseAll(iteratorRecord, C, resultCapability) {\n var it = iteratorRecord.iterator;\n var values = [];\n var remaining = {\n count: 1\n };\n var next, nextValue;\n var index = 0;\n\n while (true) {\n try {\n next = ES.IteratorStep(it);\n\n if (next === false) {\n iteratorRecord.done = true;\n break;\n }\n\n nextValue = next.value;\n } catch (e) {\n iteratorRecord.done = true;\n throw e;\n }\n\n values[index] = void 0;\n var nextPromise = C.resolve(nextValue);\n\n var resolveElement = _promiseAllResolver(index, values, resultCapability, remaining);\n\n remaining.count += 1;\n optimizedThen(nextPromise.then, nextPromise, resolveElement, resultCapability.reject);\n index += 1;\n }\n\n if (--remaining.count === 0) {\n var resolve = resultCapability.resolve;\n resolve(values); // call w/ this===undefined\n }\n\n return resultCapability.promise;\n };\n\n var performPromiseRace = function performPromiseRace(iteratorRecord, C, resultCapability) {\n var it = iteratorRecord.iterator;\n var next, nextValue, nextPromise;\n\n while (true) {\n try {\n next = ES.IteratorStep(it);\n\n if (next === false) {\n // NOTE: If iterable has no items, resulting promise will never\n // resolve; see:\n // https://github.com/domenic/promises-unwrapping/issues/75\n // https://bugs.ecmascript.org/show_bug.cgi?id=2515\n iteratorRecord.done = true;\n break;\n }\n\n nextValue = next.value;\n } catch (e) {\n iteratorRecord.done = true;\n throw e;\n }\n\n nextPromise = C.resolve(nextValue);\n optimizedThen(nextPromise.then, nextPromise, resultCapability.resolve, resultCapability.reject);\n }\n\n return resultCapability.promise;\n };\n\n defineProperties(Promise, {\n all: function all(iterable) {\n var C = this;\n\n if (!ES.TypeIsObject(C)) {\n throw new TypeError('Promise is not object');\n }\n\n var capability = new PromiseCapability(C);\n var iterator, iteratorRecord;\n\n try {\n iterator = ES.GetIterator(iterable);\n iteratorRecord = {\n iterator: iterator,\n done: false\n };\n return performPromiseAll(iteratorRecord, C, capability);\n } catch (e) {\n var exception = e;\n\n if (iteratorRecord && !iteratorRecord.done) {\n try {\n ES.IteratorClose(iterator, true);\n } catch (ee) {\n exception = ee;\n }\n }\n\n var reject = capability.reject;\n reject(exception);\n return capability.promise;\n }\n },\n race: function race(iterable) {\n var C = this;\n\n if (!ES.TypeIsObject(C)) {\n throw new TypeError('Promise is not object');\n }\n\n var capability = new PromiseCapability(C);\n var iterator, iteratorRecord;\n\n try {\n iterator = ES.GetIterator(iterable);\n iteratorRecord = {\n iterator: iterator,\n done: false\n };\n return performPromiseRace(iteratorRecord, C, capability);\n } catch (e) {\n var exception = e;\n\n if (iteratorRecord && !iteratorRecord.done) {\n try {\n ES.IteratorClose(iterator, true);\n } catch (ee) {\n exception = ee;\n }\n }\n\n var reject = capability.reject;\n reject(exception);\n return capability.promise;\n }\n },\n reject: function reject(reason) {\n var C = this;\n\n if (!ES.TypeIsObject(C)) {\n throw new TypeError('Bad promise constructor');\n }\n\n var capability = new PromiseCapability(C);\n var rejectFunc = capability.reject;\n rejectFunc(reason); // call with this===undefined\n\n return capability.promise;\n },\n resolve: function resolve(v) {\n // See https://esdiscuss.org/topic/fixing-promise-resolve for spec\n var C = this;\n\n if (!ES.TypeIsObject(C)) {\n throw new TypeError('Bad promise constructor');\n }\n\n if (ES.IsPromise(v)) {\n var constructor = v.constructor;\n\n if (constructor === C) {\n return v;\n }\n }\n\n var capability = new PromiseCapability(C);\n var resolveFunc = capability.resolve;\n resolveFunc(v); // call with this===undefined\n\n return capability.promise;\n }\n });\n defineProperties(Promise$prototype, {\n 'catch': function _catch(onRejected) {\n return this.then(null, onRejected);\n },\n then: function then(onFulfilled, onRejected) {\n var promise = this;\n\n if (!ES.IsPromise(promise)) {\n throw new TypeError('not a promise');\n }\n\n var C = ES.SpeciesConstructor(promise, Promise);\n var resultCapability;\n var returnValueIsIgnored = arguments.length > 2 && arguments[2] === PROMISE_FAKE_CAPABILITY;\n\n if (returnValueIsIgnored && C === Promise) {\n resultCapability = PROMISE_FAKE_CAPABILITY;\n } else {\n resultCapability = new PromiseCapability(C);\n } // PerformPromiseThen(promise, onFulfilled, onRejected, resultCapability)\n // Note that we've split the 'reaction' object into its two\n // components, \"capabilities\" and \"handler\"\n // \"capabilities\" is always equal to `resultCapability`\n\n\n var fulfillReactionHandler = ES.IsCallable(onFulfilled) ? onFulfilled : PROMISE_IDENTITY;\n var rejectReactionHandler = ES.IsCallable(onRejected) ? onRejected : PROMISE_THROWER;\n var _promise = promise._promise;\n var value;\n\n if (_promise.state === PROMISE_PENDING) {\n if (_promise.reactionLength === 0) {\n _promise.fulfillReactionHandler0 = fulfillReactionHandler;\n _promise.rejectReactionHandler0 = rejectReactionHandler;\n _promise.reactionCapability0 = resultCapability;\n } else {\n var idx = 3 * (_promise.reactionLength - 1);\n _promise[idx + PROMISE_FULFILL_OFFSET] = fulfillReactionHandler;\n _promise[idx + PROMISE_REJECT_OFFSET] = rejectReactionHandler;\n _promise[idx + PROMISE_CAPABILITY_OFFSET] = resultCapability;\n }\n\n _promise.reactionLength += 1;\n } else if (_promise.state === PROMISE_FULFILLED) {\n value = _promise.result;\n enqueuePromiseReactionJob(fulfillReactionHandler, resultCapability, value);\n } else if (_promise.state === PROMISE_REJECTED) {\n value = _promise.result;\n enqueuePromiseReactionJob(rejectReactionHandler, resultCapability, value);\n } else {\n throw new TypeError('unexpected Promise state');\n }\n\n return resultCapability.promise;\n }\n }); // This helps the optimizer by ensuring that methods which take\n // capabilities aren't polymorphic.\n\n PROMISE_FAKE_CAPABILITY = new PromiseCapability(Promise);\n Promise$prototype$then = Promise$prototype.then;\n return Promise;\n }(); // Chrome's native Promise has extra methods that it shouldn't have. Let's remove them.\n\n\n if (globals.Promise) {\n delete globals.Promise.accept;\n delete globals.Promise.defer;\n delete globals.Promise.prototype.chain;\n }\n\n if (typeof PromiseShim === 'function') {\n // export the Promise constructor.\n defineProperties(globals, {\n Promise: PromiseShim\n }); // In Chrome 33 (and thereabouts) Promise is defined, but the\n // implementation is buggy in a number of ways. Let's check subclassing\n // support to see if we have a buggy implementation.\n\n var promiseSupportsSubclassing = supportsSubclassing(globals.Promise, function (S) {\n return S.resolve(42).then(function () {}) instanceof S;\n });\n var promiseIgnoresNonFunctionThenCallbacks = !throwsError(function () {\n return globals.Promise.reject(42).then(null, 5).then(null, noop);\n });\n var promiseRequiresObjectContext = throwsError(function () {\n return globals.Promise.call(3, noop);\n }); // Promise.resolve() was errata'ed late in the ES6 process.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1170742\n // https://code.google.com/p/v8/issues/detail?id=4161\n // It serves as a proxy for a number of other bugs in early Promise\n // implementations.\n\n var promiseResolveBroken = function (Promise) {\n var p = Promise.resolve(5);\n p.constructor = {};\n var p2 = Promise.resolve(p);\n\n try {\n p2.then(null, noop).then(null, noop); // avoid \"uncaught rejection\" warnings in console\n } catch (e) {\n return true; // v8 native Promises break here https://code.google.com/p/chromium/issues/detail?id=575314\n }\n\n return p === p2; // This *should* be false!\n }(globals.Promise); // Chrome 46 (probably older too) does not retrieve a thenable's .then synchronously\n\n\n var getsThenSynchronously = supportsDescriptors && function () {\n var count = 0; // eslint-disable-next-line getter-return\n\n var thenable = Object.defineProperty({}, 'then', {\n get: function get() {\n count += 1;\n }\n });\n Promise.resolve(thenable);\n return count === 1;\n }();\n\n var BadResolverPromise = function BadResolverPromise(executor) {\n var p = new Promise(executor);\n executor(3, function () {});\n this.then = p.then;\n this.constructor = BadResolverPromise;\n };\n\n BadResolverPromise.prototype = Promise.prototype;\n BadResolverPromise.all = Promise.all; // Chrome Canary 49 (probably older too) has some implementation bugs\n\n var hasBadResolverPromise = valueOrFalseIfThrows(function () {\n return !!BadResolverPromise.all([1, 2]);\n });\n\n if (!promiseSupportsSubclassing || !promiseIgnoresNonFunctionThenCallbacks || !promiseRequiresObjectContext || promiseResolveBroken || !getsThenSynchronously || hasBadResolverPromise) {\n /* globals Promise: true */\n\n /* eslint-disable no-undef, no-global-assign */\n Promise = PromiseShim;\n /* eslint-enable no-undef, no-global-assign */\n\n overrideNative(globals, 'Promise', PromiseShim);\n }\n\n if (Promise.all.length !== 1) {\n var origAll = Promise.all;\n overrideNative(Promise, 'all', function all(iterable) {\n return ES.Call(origAll, this, arguments);\n });\n }\n\n if (Promise.race.length !== 1) {\n var origRace = Promise.race;\n overrideNative(Promise, 'race', function race(iterable) {\n return ES.Call(origRace, this, arguments);\n });\n }\n\n if (Promise.resolve.length !== 1) {\n var origResolve = Promise.resolve;\n overrideNative(Promise, 'resolve', function resolve(x) {\n return ES.Call(origResolve, this, arguments);\n });\n }\n\n if (Promise.reject.length !== 1) {\n var origReject = Promise.reject;\n overrideNative(Promise, 'reject', function reject(r) {\n return ES.Call(origReject, this, arguments);\n });\n }\n\n ensureEnumerable(Promise, 'all');\n ensureEnumerable(Promise, 'race');\n ensureEnumerable(Promise, 'resolve');\n ensureEnumerable(Promise, 'reject');\n addDefaultSpecies(Promise);\n } // Map and Set require a true ES5 environment\n // Their fast path also requires that the environment preserve\n // property insertion order, which is not guaranteed by the spec.\n\n\n var testOrder = function testOrder(a) {\n var b = keys(_reduce(a, function (o, k) {\n o[k] = true;\n return o;\n }, {}));\n return a.join(':') === b.join(':');\n };\n\n var preservesInsertionOrder = testOrder(['z', 'a', 'bb']); // some engines (eg, Chrome) only preserve insertion order for string keys\n\n var preservesNumericInsertionOrder = testOrder(['z', 1, 'a', '3', 2]);\n\n if (supportsDescriptors) {\n var fastkey = function fastkey(key, skipInsertionOrderCheck) {\n if (!skipInsertionOrderCheck && !preservesInsertionOrder) {\n return null;\n }\n\n if (isNullOrUndefined(key)) {\n return '^' + ES.ToString(key);\n } else if (typeof key === 'string') {\n return '$' + key;\n } else if (typeof key === 'number') {\n // note that -0 will get coerced to \"0\" when used as a property key\n if (!preservesNumericInsertionOrder) {\n return 'n' + key;\n }\n\n return key;\n } else if (typeof key === 'boolean') {\n return 'b' + key;\n }\n\n return null;\n };\n\n var emptyObject = function emptyObject() {\n // accomodate some older not-quite-ES5 browsers\n return Object.create ? Object.create(null) : {};\n };\n\n var addIterableToMap = function addIterableToMap(MapConstructor, map, iterable) {\n if (isArray(iterable) || Type.string(iterable)) {\n _forEach(iterable, function (entry) {\n if (!ES.TypeIsObject(entry)) {\n throw new TypeError('Iterator value ' + entry + ' is not an entry object');\n }\n\n map.set(entry[0], entry[1]);\n });\n } else if (iterable instanceof MapConstructor) {\n _call(MapConstructor.prototype.forEach, iterable, function (value, key) {\n map.set(key, value);\n });\n } else {\n var iter, adder;\n\n if (!isNullOrUndefined(iterable)) {\n adder = map.set;\n\n if (!ES.IsCallable(adder)) {\n throw new TypeError('bad map');\n }\n\n iter = ES.GetIterator(iterable);\n }\n\n if (typeof iter !== 'undefined') {\n while (true) {\n var next = ES.IteratorStep(iter);\n\n if (next === false) {\n break;\n }\n\n var nextItem = next.value;\n\n try {\n if (!ES.TypeIsObject(nextItem)) {\n throw new TypeError('Iterator value ' + nextItem + ' is not an entry object');\n }\n\n _call(adder, map, nextItem[0], nextItem[1]);\n } catch (e) {\n ES.IteratorClose(iter, true);\n throw e;\n }\n }\n }\n }\n };\n\n var addIterableToSet = function addIterableToSet(SetConstructor, set, iterable) {\n if (isArray(iterable) || Type.string(iterable)) {\n _forEach(iterable, function (value) {\n set.add(value);\n });\n } else if (iterable instanceof SetConstructor) {\n _call(SetConstructor.prototype.forEach, iterable, function (value) {\n set.add(value);\n });\n } else {\n var iter, adder;\n\n if (!isNullOrUndefined(iterable)) {\n adder = set.add;\n\n if (!ES.IsCallable(adder)) {\n throw new TypeError('bad set');\n }\n\n iter = ES.GetIterator(iterable);\n }\n\n if (typeof iter !== 'undefined') {\n while (true) {\n var next = ES.IteratorStep(iter);\n\n if (next === false) {\n break;\n }\n\n var nextValue = next.value;\n\n try {\n _call(adder, set, nextValue);\n } catch (e) {\n ES.IteratorClose(iter, true);\n throw e;\n }\n }\n }\n }\n };\n\n var collectionShims = {\n Map: function () {\n var empty = {};\n\n var MapEntry = function MapEntry(key, value) {\n this.key = key;\n this.value = value;\n this.next = null;\n this.prev = null;\n };\n\n MapEntry.prototype.isRemoved = function isRemoved() {\n return this.key === empty;\n };\n\n var isMap = function isMap(map) {\n return !!map._es6map;\n };\n\n var requireMapSlot = function requireMapSlot(map, method) {\n if (!ES.TypeIsObject(map) || !isMap(map)) {\n throw new TypeError('Method Map.prototype.' + method + ' called on incompatible receiver ' + ES.ToString(map));\n }\n };\n\n var MapIterator = function MapIterator(map, kind) {\n requireMapSlot(map, '[[MapIterator]]');\n this.head = map._head;\n this.i = this.head;\n this.kind = kind;\n };\n\n MapIterator.prototype = {\n isMapIterator: true,\n next: function next() {\n if (!this.isMapIterator) {\n throw new TypeError('Not a MapIterator');\n }\n\n var i = this.i;\n var kind = this.kind;\n var head = this.head;\n\n if (typeof this.i === 'undefined') {\n return iteratorResult();\n }\n\n while (i.isRemoved() && i !== head) {\n // back up off of removed entries\n i = i.prev;\n } // advance to next unreturned element.\n\n\n var result;\n\n while (i.next !== head) {\n i = i.next;\n\n if (!i.isRemoved()) {\n if (kind === 'key') {\n result = i.key;\n } else if (kind === 'value') {\n result = i.value;\n } else {\n result = [i.key, i.value];\n }\n\n this.i = i;\n return iteratorResult(result);\n }\n } // once the iterator is done, it is done forever.\n\n\n this.i = void 0;\n return iteratorResult();\n }\n };\n addIterator(MapIterator.prototype);\n var Map$prototype;\n\n var MapShim = function Map() {\n if (!(this instanceof Map)) {\n throw new TypeError('Constructor Map requires \"new\"');\n }\n\n if (this && this._es6map) {\n throw new TypeError('Bad construction');\n }\n\n var map = emulateES6construct(this, Map, Map$prototype, {\n _es6map: true,\n _head: null,\n _map: OrigMap ? new OrigMap() : null,\n _size: 0,\n _storage: emptyObject()\n });\n var head = new MapEntry(null, null); // circular doubly-linked list.\n\n /* eslint no-multi-assign: 1 */\n\n head.next = head.prev = head;\n map._head = head; // Optionally initialize map from iterable\n\n if (arguments.length > 0) {\n addIterableToMap(Map, map, arguments[0]);\n }\n\n return map;\n };\n\n Map$prototype = MapShim.prototype;\n Value.getter(Map$prototype, 'size', function () {\n if (typeof this._size === 'undefined') {\n throw new TypeError('size method called on incompatible Map');\n }\n\n return this._size;\n });\n defineProperties(Map$prototype, {\n get: function get(key) {\n requireMapSlot(this, 'get');\n var entry;\n var fkey = fastkey(key, true);\n\n if (fkey !== null) {\n // fast O(1) path\n entry = this._storage[fkey];\n\n if (entry) {\n return entry.value;\n } else {\n return;\n }\n }\n\n if (this._map) {\n // fast object key path\n entry = origMapGet.call(this._map, key);\n\n if (entry) {\n return entry.value;\n } else {\n return;\n }\n }\n\n var head = this._head;\n var i = head;\n\n while ((i = i.next) !== head) {\n if (ES.SameValueZero(i.key, key)) {\n return i.value;\n }\n }\n },\n has: function has(key) {\n requireMapSlot(this, 'has');\n var fkey = fastkey(key, true);\n\n if (fkey !== null) {\n // fast O(1) path\n return typeof this._storage[fkey] !== 'undefined';\n }\n\n if (this._map) {\n // fast object key path\n return origMapHas.call(this._map, key);\n }\n\n var head = this._head;\n var i = head;\n\n while ((i = i.next) !== head) {\n if (ES.SameValueZero(i.key, key)) {\n return true;\n }\n }\n\n return false;\n },\n set: function set(key, value) {\n requireMapSlot(this, 'set');\n var head = this._head;\n var i = head;\n var entry;\n var fkey = fastkey(key, true);\n\n if (fkey !== null) {\n // fast O(1) path\n if (typeof this._storage[fkey] !== 'undefined') {\n this._storage[fkey].value = value;\n return this;\n } else {\n entry = this._storage[fkey] = new MapEntry(key, value);\n /* eslint no-multi-assign: 1 */\n\n i = head.prev; // fall through\n }\n } else if (this._map) {\n // fast object key path\n if (origMapHas.call(this._map, key)) {\n origMapGet.call(this._map, key).value = value;\n } else {\n entry = new MapEntry(key, value);\n origMapSet.call(this._map, key, entry);\n i = head.prev; // fall through\n }\n }\n\n while ((i = i.next) !== head) {\n if (ES.SameValueZero(i.key, key)) {\n i.value = value;\n return this;\n }\n }\n\n entry = entry || new MapEntry(key, value);\n\n if (ES.SameValue(-0, key)) {\n entry.key = +0; // coerce -0 to +0 in entry\n }\n\n entry.next = this._head;\n entry.prev = this._head.prev;\n entry.prev.next = entry;\n entry.next.prev = entry;\n this._size += 1;\n return this;\n },\n 'delete': function _delete(key) {\n requireMapSlot(this, 'delete');\n var head = this._head;\n var i = head;\n var fkey = fastkey(key, true);\n\n if (fkey !== null) {\n // fast O(1) path\n if (typeof this._storage[fkey] === 'undefined') {\n return false;\n }\n\n i = this._storage[fkey].prev;\n delete this._storage[fkey]; // fall through\n } else if (this._map) {\n // fast object key path\n if (!origMapHas.call(this._map, key)) {\n return false;\n }\n\n i = origMapGet.call(this._map, key).prev;\n origMapDelete.call(this._map, key); // fall through\n }\n\n while ((i = i.next) !== head) {\n if (ES.SameValueZero(i.key, key)) {\n i.key = empty;\n i.value = empty;\n i.prev.next = i.next;\n i.next.prev = i.prev;\n this._size -= 1;\n return true;\n }\n }\n\n return false;\n },\n clear: function clear() {\n /* eslint no-multi-assign: 1 */\n requireMapSlot(this, 'clear');\n this._map = OrigMap ? new OrigMap() : null;\n this._size = 0;\n this._storage = emptyObject();\n var head = this._head;\n var i = head;\n var p = i.next;\n\n while ((i = p) !== head) {\n i.key = empty;\n i.value = empty;\n p = i.next;\n i.next = i.prev = head;\n }\n\n head.next = head.prev = head;\n },\n keys: function keys() {\n requireMapSlot(this, 'keys');\n return new MapIterator(this, 'key');\n },\n values: function values() {\n requireMapSlot(this, 'values');\n return new MapIterator(this, 'value');\n },\n entries: function entries() {\n requireMapSlot(this, 'entries');\n return new MapIterator(this, 'key+value');\n },\n forEach: function forEach(callback) {\n requireMapSlot(this, 'forEach');\n var context = arguments.length > 1 ? arguments[1] : null;\n var it = this.entries();\n\n for (var entry = it.next(); !entry.done; entry = it.next()) {\n if (context) {\n _call(callback, context, entry.value[1], entry.value[0], this);\n } else {\n callback(entry.value[1], entry.value[0], this);\n }\n }\n }\n });\n addIterator(Map$prototype, Map$prototype.entries);\n return MapShim;\n }(),\n Set: function () {\n var isSet = function isSet(set) {\n return set._es6set && typeof set._storage !== 'undefined';\n };\n\n var requireSetSlot = function requireSetSlot(set, method) {\n if (!ES.TypeIsObject(set) || !isSet(set)) {\n // https://github.com/paulmillr/es6-shim/issues/176\n throw new TypeError('Set.prototype.' + method + ' called on incompatible receiver ' + ES.ToString(set));\n }\n }; // Creating a Map is expensive. To speed up the common case of\n // Sets containing only string or numeric keys, we use an object\n // as backing storage and lazily create a full Map only when\n // required.\n\n\n var Set$prototype;\n\n var SetShim = function Set() {\n if (!(this instanceof Set)) {\n throw new TypeError('Constructor Set requires \"new\"');\n }\n\n if (this && this._es6set) {\n throw new TypeError('Bad construction');\n }\n\n var set = emulateES6construct(this, Set, Set$prototype, {\n _es6set: true,\n '[[SetData]]': null,\n _storage: emptyObject()\n });\n\n if (!set._es6set) {\n throw new TypeError('bad set');\n } // Optionally initialize Set from iterable\n\n\n if (arguments.length > 0) {\n addIterableToSet(Set, set, arguments[0]);\n }\n\n return set;\n };\n\n Set$prototype = SetShim.prototype;\n\n var decodeKey = function decodeKey(key) {\n var k = key;\n\n if (k === '^null') {\n return null;\n } else if (k === '^undefined') {\n return void 0;\n } else {\n var first = k.charAt(0);\n\n if (first === '$') {\n return _strSlice(k, 1);\n } else if (first === 'n') {\n return +_strSlice(k, 1);\n } else if (first === 'b') {\n return k === 'btrue';\n }\n }\n\n return +k;\n }; // Switch from the object backing storage to a full Map.\n\n\n var ensureMap = function ensureMap(set) {\n if (!set['[[SetData]]']) {\n var m = new collectionShims.Map();\n set['[[SetData]]'] = m;\n\n _forEach(keys(set._storage), function (key) {\n var k = decodeKey(key);\n m.set(k, k);\n });\n\n set['[[SetData]]'] = m;\n }\n\n set._storage = null; // free old backing storage\n };\n\n Value.getter(SetShim.prototype, 'size', function () {\n requireSetSlot(this, 'size');\n\n if (this._storage) {\n return keys(this._storage).length;\n }\n\n ensureMap(this);\n return this['[[SetData]]'].size;\n });\n defineProperties(SetShim.prototype, {\n has: function has(key) {\n requireSetSlot(this, 'has');\n var fkey;\n\n if (this._storage && (fkey = fastkey(key)) !== null) {\n return !!this._storage[fkey];\n }\n\n ensureMap(this);\n return this['[[SetData]]'].has(key);\n },\n add: function add(key) {\n requireSetSlot(this, 'add');\n var fkey;\n\n if (this._storage && (fkey = fastkey(key)) !== null) {\n this._storage[fkey] = true;\n return this;\n }\n\n ensureMap(this);\n this['[[SetData]]'].set(key, key);\n return this;\n },\n 'delete': function _delete(key) {\n requireSetSlot(this, 'delete');\n var fkey;\n\n if (this._storage && (fkey = fastkey(key)) !== null) {\n var hasFKey = _hasOwnProperty(this._storage, fkey);\n\n return delete this._storage[fkey] && hasFKey;\n }\n\n ensureMap(this);\n return this['[[SetData]]']['delete'](key);\n },\n clear: function clear() {\n requireSetSlot(this, 'clear');\n\n if (this._storage) {\n this._storage = emptyObject();\n }\n\n if (this['[[SetData]]']) {\n this['[[SetData]]'].clear();\n }\n },\n values: function values() {\n requireSetSlot(this, 'values');\n ensureMap(this);\n return new SetIterator(this['[[SetData]]'].values());\n },\n entries: function entries() {\n requireSetSlot(this, 'entries');\n ensureMap(this);\n return new SetIterator(this['[[SetData]]'].entries());\n },\n forEach: function forEach(callback) {\n requireSetSlot(this, 'forEach');\n var context = arguments.length > 1 ? arguments[1] : null;\n var entireSet = this;\n ensureMap(entireSet);\n this['[[SetData]]'].forEach(function (value, key) {\n if (context) {\n _call(callback, context, key, key, entireSet);\n } else {\n callback(key, key, entireSet);\n }\n });\n }\n });\n defineProperty(SetShim.prototype, 'keys', SetShim.prototype.values, true);\n addIterator(SetShim.prototype, SetShim.prototype.values);\n\n var SetIterator = function SetIterator(it) {\n this.it = it;\n };\n\n SetIterator.prototype = {\n isSetIterator: true,\n next: function next() {\n if (!this.isSetIterator) {\n throw new TypeError('Not a SetIterator');\n }\n\n return this.it.next();\n }\n };\n addIterator(SetIterator.prototype);\n return SetShim;\n }()\n };\n var isGoogleTranslate = globals.Set && !Set.prototype['delete'] && Set.prototype.remove && Set.prototype.items && Set.prototype.map && Array.isArray(new Set().keys);\n\n if (isGoogleTranslate) {\n // special-case force removal of wildly invalid Set implementation in Google Translate iframes\n // see https://github.com/paulmillr/es6-shim/issues/438 / https://twitter.com/ljharb/status/849335573114363904\n globals.Set = collectionShims.Set;\n }\n\n if (globals.Map || globals.Set) {\n // Safari 8, for example, doesn't accept an iterable.\n var mapAcceptsArguments = valueOrFalseIfThrows(function () {\n return new Map([[1, 2]]).get(1) === 2;\n });\n\n if (!mapAcceptsArguments) {\n globals.Map = function Map() {\n if (!(this instanceof Map)) {\n throw new TypeError('Constructor Map requires \"new\"');\n }\n\n var m = new OrigMap();\n\n if (arguments.length > 0) {\n addIterableToMap(Map, m, arguments[0]);\n }\n\n delete m.constructor;\n Object.setPrototypeOf(m, globals.Map.prototype);\n return m;\n };\n\n globals.Map.prototype = create(OrigMap.prototype);\n defineProperty(globals.Map.prototype, 'constructor', globals.Map, true);\n Value.preserveToString(globals.Map, OrigMap);\n }\n\n var testMap = new Map();\n\n var mapUsesSameValueZero = function () {\n // Chrome 38-42, node 0.11/0.12, iojs 1/2 also have a bug when the Map has a size > 4\n var m = new Map([[1, 0], [2, 0], [3, 0], [4, 0]]);\n m.set(-0, m);\n return m.get(0) === m && m.get(-0) === m && m.has(0) && m.has(-0);\n }();\n\n var mapSupportsChaining = testMap.set(1, 2) === testMap;\n\n if (!mapUsesSameValueZero || !mapSupportsChaining) {\n overrideNative(Map.prototype, 'set', function set(k, v) {\n _call(origMapSet, this, k === 0 ? 0 : k, v);\n\n return this;\n });\n }\n\n if (!mapUsesSameValueZero) {\n defineProperties(Map.prototype, {\n get: function get(k) {\n return _call(origMapGet, this, k === 0 ? 0 : k);\n },\n has: function has(k) {\n return _call(origMapHas, this, k === 0 ? 0 : k);\n }\n }, true);\n Value.preserveToString(Map.prototype.get, origMapGet);\n Value.preserveToString(Map.prototype.has, origMapHas);\n }\n\n var testSet = new Set();\n\n var setUsesSameValueZero = Set.prototype['delete'] && Set.prototype.add && Set.prototype.has && function (s) {\n s['delete'](0);\n s.add(-0);\n return !s.has(0);\n }(testSet);\n\n var setSupportsChaining = testSet.add(1) === testSet;\n\n if (!setUsesSameValueZero || !setSupportsChaining) {\n var origSetAdd = Set.prototype.add;\n\n Set.prototype.add = function add(v) {\n _call(origSetAdd, this, v === 0 ? 0 : v);\n\n return this;\n };\n\n Value.preserveToString(Set.prototype.add, origSetAdd);\n }\n\n if (!setUsesSameValueZero) {\n var origSetHas = Set.prototype.has;\n\n Set.prototype.has = function has(v) {\n return _call(origSetHas, this, v === 0 ? 0 : v);\n };\n\n Value.preserveToString(Set.prototype.has, origSetHas);\n var origSetDel = Set.prototype['delete'];\n\n Set.prototype['delete'] = function SetDelete(v) {\n return _call(origSetDel, this, v === 0 ? 0 : v);\n };\n\n Value.preserveToString(Set.prototype['delete'], origSetDel);\n }\n\n var mapSupportsSubclassing = supportsSubclassing(globals.Map, function (M) {\n var m = new M([]); // Firefox 32 is ok with the instantiating the subclass but will\n // throw when the map is used.\n\n m.set(42, 42);\n return m instanceof M;\n }); // without Object.setPrototypeOf, subclassing is not possible\n\n var mapFailsToSupportSubclassing = Object.setPrototypeOf && !mapSupportsSubclassing;\n\n var mapRequiresNew = function () {\n try {\n return !(globals.Map() instanceof globals.Map);\n } catch (e) {\n return e instanceof TypeError;\n }\n }();\n\n if (globals.Map.length !== 0 || mapFailsToSupportSubclassing || !mapRequiresNew) {\n globals.Map = function Map() {\n if (!(this instanceof Map)) {\n throw new TypeError('Constructor Map requires \"new\"');\n }\n\n var m = new OrigMap();\n\n if (arguments.length > 0) {\n addIterableToMap(Map, m, arguments[0]);\n }\n\n delete m.constructor;\n Object.setPrototypeOf(m, Map.prototype);\n return m;\n };\n\n globals.Map.prototype = OrigMap.prototype;\n defineProperty(globals.Map.prototype, 'constructor', globals.Map, true);\n Value.preserveToString(globals.Map, OrigMap);\n }\n\n var setSupportsSubclassing = supportsSubclassing(globals.Set, function (S) {\n var s = new S([]);\n s.add(42, 42);\n return s instanceof S;\n }); // without Object.setPrototypeOf, subclassing is not possible\n\n var setFailsToSupportSubclassing = Object.setPrototypeOf && !setSupportsSubclassing;\n\n var setRequiresNew = function () {\n try {\n return !(globals.Set() instanceof globals.Set);\n } catch (e) {\n return e instanceof TypeError;\n }\n }();\n\n if (globals.Set.length !== 0 || setFailsToSupportSubclassing || !setRequiresNew) {\n var OrigSet = globals.Set;\n\n globals.Set = function Set() {\n if (!(this instanceof Set)) {\n throw new TypeError('Constructor Set requires \"new\"');\n }\n\n var s = new OrigSet();\n\n if (arguments.length > 0) {\n addIterableToSet(Set, s, arguments[0]);\n }\n\n delete s.constructor;\n Object.setPrototypeOf(s, Set.prototype);\n return s;\n };\n\n globals.Set.prototype = OrigSet.prototype;\n defineProperty(globals.Set.prototype, 'constructor', globals.Set, true);\n Value.preserveToString(globals.Set, OrigSet);\n }\n\n var newMap = new globals.Map();\n var mapIterationThrowsStopIterator = !valueOrFalseIfThrows(function () {\n return newMap.keys().next().done;\n });\n /*\n - In Firefox < 23, Map#size is a function.\n - In all current Firefox, Set#entries/keys/values & Map#clear do not exist\n - https://bugzilla.mozilla.org/show_bug.cgi?id=869996\n - In Firefox 24, Map and Set do not implement forEach\n - In Firefox 25 at least, Map and Set are callable without \"new\"\n */\n\n if (typeof globals.Map.prototype.clear !== 'function' || new globals.Set().size !== 0 || newMap.size !== 0 || typeof globals.Map.prototype.keys !== 'function' || typeof globals.Set.prototype.keys !== 'function' || typeof globals.Map.prototype.forEach !== 'function' || typeof globals.Set.prototype.forEach !== 'function' || isCallableWithoutNew(globals.Map) || isCallableWithoutNew(globals.Set) || typeof newMap.keys().next !== 'function' || // Safari 8\n mapIterationThrowsStopIterator || // Firefox 25\n !mapSupportsSubclassing) {\n defineProperties(globals, {\n Map: collectionShims.Map,\n Set: collectionShims.Set\n }, true);\n }\n\n if (globals.Set.prototype.keys !== globals.Set.prototype.values) {\n // Fixed in WebKit with https://bugs.webkit.org/show_bug.cgi?id=144190\n defineProperty(globals.Set.prototype, 'keys', globals.Set.prototype.values, true);\n } // Shim incomplete iterator implementations.\n\n\n addIterator(Object.getPrototypeOf(new globals.Map().keys()));\n addIterator(Object.getPrototypeOf(new globals.Set().keys()));\n\n if (functionsHaveNames && globals.Set.prototype.has.name !== 'has') {\n // Microsoft Edge v0.11.10074.0 is missing a name on Set#has\n var anonymousSetHas = globals.Set.prototype.has;\n overrideNative(globals.Set.prototype, 'has', function has(key) {\n return _call(anonymousSetHas, this, key);\n });\n }\n }\n\n defineProperties(globals, collectionShims);\n addDefaultSpecies(globals.Map);\n addDefaultSpecies(globals.Set);\n }\n\n var throwUnlessTargetIsObject = function throwUnlessTargetIsObject(target) {\n if (!ES.TypeIsObject(target)) {\n throw new TypeError('target must be an object');\n }\n }; // Some Reflect methods are basically the same as\n // those on the Object global, except that a TypeError is thrown if\n // target isn't an object. As well as returning a boolean indicating\n // the success of the operation.\n\n\n var ReflectShims = {\n // Apply method in a functional form.\n apply: function apply() {\n return ES.Call(ES.Call, null, arguments);\n },\n // New operator in a functional form.\n construct: function construct(constructor, args) {\n if (!ES.IsConstructor(constructor)) {\n throw new TypeError('First argument must be a constructor.');\n }\n\n var newTarget = arguments.length > 2 ? arguments[2] : constructor;\n\n if (!ES.IsConstructor(newTarget)) {\n throw new TypeError('new.target must be a constructor.');\n }\n\n return ES.Construct(constructor, args, newTarget, 'internal');\n },\n // When deleting a non-existent or configurable property,\n // true is returned.\n // When attempting to delete a non-configurable property,\n // it will return false.\n deleteProperty: function deleteProperty(target, key) {\n throwUnlessTargetIsObject(target);\n\n if (supportsDescriptors) {\n var desc = Object.getOwnPropertyDescriptor(target, key);\n\n if (desc && !desc.configurable) {\n return false;\n }\n } // Will return true.\n\n\n return delete target[key];\n },\n has: function has(target, key) {\n throwUnlessTargetIsObject(target);\n return key in target;\n }\n };\n\n if (Object.getOwnPropertyNames) {\n Object.assign(ReflectShims, {\n // Basically the result of calling the internal [[OwnPropertyKeys]].\n // Concatenating propertyNames and propertySymbols should do the trick.\n // This should continue to work together with a Symbol shim\n // which overrides Object.getOwnPropertyNames and implements\n // Object.getOwnPropertySymbols.\n ownKeys: function ownKeys(target) {\n throwUnlessTargetIsObject(target);\n var keys = Object.getOwnPropertyNames(target);\n\n if (ES.IsCallable(Object.getOwnPropertySymbols)) {\n _pushApply(keys, Object.getOwnPropertySymbols(target));\n }\n\n return keys;\n }\n });\n }\n\n var callAndCatchException = function ConvertExceptionToBoolean(func) {\n return !throwsError(func);\n };\n\n if (Object.preventExtensions) {\n Object.assign(ReflectShims, {\n isExtensible: function isExtensible(target) {\n throwUnlessTargetIsObject(target);\n return Object.isExtensible(target);\n },\n preventExtensions: function preventExtensions(target) {\n throwUnlessTargetIsObject(target);\n return callAndCatchException(function () {\n return Object.preventExtensions(target);\n });\n }\n });\n }\n\n if (supportsDescriptors) {\n var internalGet = function get(target, key, receiver) {\n var desc = Object.getOwnPropertyDescriptor(target, key);\n\n if (!desc) {\n var parent = Object.getPrototypeOf(target);\n\n if (parent === null) {\n return void 0;\n }\n\n return internalGet(parent, key, receiver);\n }\n\n if ('value' in desc) {\n return desc.value;\n }\n\n if (desc.get) {\n return ES.Call(desc.get, receiver);\n }\n\n return void 0;\n };\n\n var internalSet = function set(target, key, value, receiver) {\n var desc = Object.getOwnPropertyDescriptor(target, key);\n\n if (!desc) {\n var parent = Object.getPrototypeOf(target);\n\n if (parent !== null) {\n return internalSet(parent, key, value, receiver);\n }\n\n desc = {\n value: void 0,\n writable: true,\n enumerable: true,\n configurable: true\n };\n }\n\n if ('value' in desc) {\n if (!desc.writable) {\n return false;\n }\n\n if (!ES.TypeIsObject(receiver)) {\n return false;\n }\n\n var existingDesc = Object.getOwnPropertyDescriptor(receiver, key);\n\n if (existingDesc) {\n return Reflect.defineProperty(receiver, key, {\n value: value\n });\n } else {\n return Reflect.defineProperty(receiver, key, {\n value: value,\n writable: true,\n enumerable: true,\n configurable: true\n });\n }\n }\n\n if (desc.set) {\n _call(desc.set, receiver, value);\n\n return true;\n }\n\n return false;\n };\n\n Object.assign(ReflectShims, {\n defineProperty: function defineProperty(target, propertyKey, attributes) {\n throwUnlessTargetIsObject(target);\n return callAndCatchException(function () {\n return Object.defineProperty(target, propertyKey, attributes);\n });\n },\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n throwUnlessTargetIsObject(target);\n return Object.getOwnPropertyDescriptor(target, propertyKey);\n },\n // Syntax in a functional form.\n get: function get(target, key) {\n throwUnlessTargetIsObject(target);\n var receiver = arguments.length > 2 ? arguments[2] : target;\n return internalGet(target, key, receiver);\n },\n set: function set(target, key, value) {\n throwUnlessTargetIsObject(target);\n var receiver = arguments.length > 3 ? arguments[3] : target;\n return internalSet(target, key, value, receiver);\n }\n });\n }\n\n if (Object.getPrototypeOf) {\n var objectDotGetPrototypeOf = Object.getPrototypeOf;\n\n ReflectShims.getPrototypeOf = function getPrototypeOf(target) {\n throwUnlessTargetIsObject(target);\n return objectDotGetPrototypeOf(target);\n };\n }\n\n if (Object.setPrototypeOf && ReflectShims.getPrototypeOf) {\n var willCreateCircularPrototype = function willCreateCircularPrototype(object, lastProto) {\n var proto = lastProto;\n\n while (proto) {\n if (object === proto) {\n return true;\n }\n\n proto = ReflectShims.getPrototypeOf(proto);\n }\n\n return false;\n };\n\n Object.assign(ReflectShims, {\n // Sets the prototype of the given object.\n // Returns true on success, otherwise false.\n setPrototypeOf: function setPrototypeOf(object, proto) {\n throwUnlessTargetIsObject(object);\n\n if (proto !== null && !ES.TypeIsObject(proto)) {\n throw new TypeError('proto must be an object or null');\n } // If they already are the same, we're done.\n\n\n if (proto === Reflect.getPrototypeOf(object)) {\n return true;\n } // Cannot alter prototype if object not extensible.\n\n\n if (Reflect.isExtensible && !Reflect.isExtensible(object)) {\n return false;\n } // Ensure that we do not create a circular prototype chain.\n\n\n if (willCreateCircularPrototype(object, proto)) {\n return false;\n }\n\n Object.setPrototypeOf(object, proto);\n return true;\n }\n });\n }\n\n var defineOrOverrideReflectProperty = function defineOrOverrideReflectProperty(key, shim) {\n if (!ES.IsCallable(globals.Reflect[key])) {\n defineProperty(globals.Reflect, key, shim);\n } else {\n var acceptsPrimitives = valueOrFalseIfThrows(function () {\n globals.Reflect[key](1);\n globals.Reflect[key](NaN);\n globals.Reflect[key](true);\n return true;\n });\n\n if (acceptsPrimitives) {\n overrideNative(globals.Reflect, key, shim);\n }\n }\n };\n\n Object.keys(ReflectShims).forEach(function (key) {\n defineOrOverrideReflectProperty(key, ReflectShims[key]);\n });\n var originalReflectGetProto = globals.Reflect.getPrototypeOf;\n\n if (functionsHaveNames && originalReflectGetProto && originalReflectGetProto.name !== 'getPrototypeOf') {\n overrideNative(globals.Reflect, 'getPrototypeOf', function getPrototypeOf(target) {\n return _call(originalReflectGetProto, globals.Reflect, target);\n });\n }\n\n if (globals.Reflect.setPrototypeOf) {\n if (valueOrFalseIfThrows(function () {\n globals.Reflect.setPrototypeOf(1, {});\n return true;\n })) {\n overrideNative(globals.Reflect, 'setPrototypeOf', ReflectShims.setPrototypeOf);\n }\n }\n\n if (globals.Reflect.defineProperty) {\n if (!valueOrFalseIfThrows(function () {\n var basic = !globals.Reflect.defineProperty(1, 'test', {\n value: 1\n }); // \"extensible\" fails on Edge 0.12\n\n var extensible = typeof Object.preventExtensions !== 'function' || !globals.Reflect.defineProperty(Object.preventExtensions({}), 'test', {});\n return basic && extensible;\n })) {\n overrideNative(globals.Reflect, 'defineProperty', ReflectShims.defineProperty);\n }\n }\n\n if (globals.Reflect.construct) {\n if (!valueOrFalseIfThrows(function () {\n var F = function F() {};\n\n return globals.Reflect.construct(function () {}, [], F) instanceof F;\n })) {\n overrideNative(globals.Reflect, 'construct', ReflectShims.construct);\n }\n }\n\n if (String(new Date(NaN)) !== 'Invalid Date') {\n var dateToString = Date.prototype.toString;\n\n var shimmedDateToString = function toString() {\n var valueOf = +this;\n\n if (valueOf !== valueOf) {\n return 'Invalid Date';\n }\n\n return ES.Call(dateToString, this);\n };\n\n overrideNative(Date.prototype, 'toString', shimmedDateToString);\n } // Annex B HTML methods\n // http://www.ecma-international.org/ecma-262/6.0/#sec-additional-properties-of-the-string.prototype-object\n\n\n var stringHTMLshims = {\n anchor: function anchor(name) {\n return ES.CreateHTML(this, 'a', 'name', name);\n },\n big: function big() {\n return ES.CreateHTML(this, 'big', '', '');\n },\n blink: function blink() {\n return ES.CreateHTML(this, 'blink', '', '');\n },\n bold: function bold() {\n return ES.CreateHTML(this, 'b', '', '');\n },\n fixed: function fixed() {\n return ES.CreateHTML(this, 'tt', '', '');\n },\n fontcolor: function fontcolor(color) {\n return ES.CreateHTML(this, 'font', 'color', color);\n },\n fontsize: function fontsize(size) {\n return ES.CreateHTML(this, 'font', 'size', size);\n },\n italics: function italics() {\n return ES.CreateHTML(this, 'i', '', '');\n },\n link: function link(url) {\n return ES.CreateHTML(this, 'a', 'href', url);\n },\n small: function small() {\n return ES.CreateHTML(this, 'small', '', '');\n },\n strike: function strike() {\n return ES.CreateHTML(this, 'strike', '', '');\n },\n sub: function sub() {\n return ES.CreateHTML(this, 'sub', '', '');\n },\n sup: function sub() {\n return ES.CreateHTML(this, 'sup', '', '');\n }\n };\n\n _forEach(Object.keys(stringHTMLshims), function (key) {\n var method = String.prototype[key];\n var shouldOverwrite = false;\n\n if (ES.IsCallable(method)) {\n var output = _call(method, '', ' \" ');\n\n var quotesCount = _concat([], output.match(/\"/g)).length;\n\n shouldOverwrite = output !== output.toLowerCase() || quotesCount > 2;\n } else {\n shouldOverwrite = true;\n }\n\n if (shouldOverwrite) {\n overrideNative(String.prototype, key, stringHTMLshims[key]);\n }\n });\n\n var JSONstringifiesSymbols = function () {\n // Microsoft Edge v0.12 stringifies Symbols incorrectly\n if (!hasSymbols) {\n return false;\n } // Symbols are not supported\n\n\n var stringify = (typeof JSON === \"undefined\" ? \"undefined\" : _typeof(JSON)) === 'object' && typeof JSON.stringify === 'function' ? JSON.stringify : null;\n\n if (!stringify) {\n return false;\n } // JSON.stringify is not supported\n\n\n if (typeof stringify(_Symbol()) !== 'undefined') {\n return true;\n } // Symbols should become `undefined`\n\n\n if (stringify([_Symbol()]) !== '[null]') {\n return true;\n } // Symbols in arrays should become `null`\n\n\n var obj = {\n a: _Symbol()\n };\n obj[_Symbol()] = true;\n\n if (stringify(obj) !== '{}') {\n return true;\n } // Symbol-valued keys *and* Symbol-valued properties should be omitted\n\n\n return false;\n }();\n\n var JSONstringifyAcceptsObjectSymbol = valueOrFalseIfThrows(function () {\n // Chrome 45 throws on stringifying object symbols\n if (!hasSymbols) {\n return true;\n } // Symbols are not supported\n\n\n return JSON.stringify(Object(_Symbol())) === '{}' && JSON.stringify([Object(_Symbol())]) === '[{}]';\n });\n\n if (JSONstringifiesSymbols || !JSONstringifyAcceptsObjectSymbol) {\n var origStringify = JSON.stringify;\n overrideNative(JSON, 'stringify', function stringify(value) {\n if (_typeof(value) === 'symbol') {\n return;\n }\n\n var replacer;\n\n if (arguments.length > 1) {\n replacer = arguments[1];\n }\n\n var args = [value];\n\n if (!isArray(replacer)) {\n var replaceFn = ES.IsCallable(replacer) ? replacer : null;\n\n var wrappedReplacer = function wrappedReplacer(key, val) {\n var parsedValue = replaceFn ? _call(replaceFn, this, key, val) : val;\n\n if (_typeof(parsedValue) !== 'symbol') {\n if (Type.symbol(parsedValue)) {\n return assignTo({})(parsedValue);\n } else {\n return parsedValue;\n }\n }\n };\n\n args.push(wrappedReplacer);\n } else {\n // create wrapped replacer that handles an array replacer?\n args.push(replacer);\n }\n\n if (arguments.length > 2) {\n args.push(arguments[2]);\n }\n\n return origStringify.apply(this, args);\n });\n }\n\n return globals;\n});","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/*!\r\n * froala_editor v2.9.8 (https://www.froala.com/wysiwyg-editor)\r\n * License https://froala.com/wysiwyg-editor/terms/\r\n * Copyright 2014-2020 Froala Labs\r\n */\n!function (n) {\n \"function\" == typeof define && define.amd ? define([\"jquery\"], n) : \"object\" == (typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) && module.exports ? module.exports = function (e, t) {\n return t === undefined && (t = \"undefined\" != typeof window ? require(\"jquery\") : require(\"jquery\")(e)), n(t);\n } : n(window.jQuery);\n}(function (Te) {\n var s = function s(e, t) {\n this.id = ++Te.FE.ID;\n var n = {};\n t && t.documentReady && (n.toolbarButtons = [\"fullscreen\", \"undo\", \"redo\", \"getPDF\", \"print\", \"|\", \"bold\", \"italic\", \"underline\", \"color\", \"clearFormatting\", \"|\", \"alignLeft\", \"alignCenter\", \"alignRight\", \"alignJustify\", \"|\", \"formatOL\", \"formatUL\", \"indent\", \"outdent\", \"-\", \"paragraphFormat\", \"|\", \"fontFamily\", \"|\", \"fontSize\", \"|\", \"insertLink\", \"insertImage\", \"quote\"], n.paragraphFormatSelection = !0, n.fontFamilySelection = !0, n.fontSizeSelection = !0, n.placeholderText = \"Type something\", n.quickInsertEnabled = !1, n.charCounterCount = !1), this.opts = Te.extend(!0, {}, Te.extend({}, s.DEFAULTS, n, \"object\" == _typeof(t) && t));\n var r = JSON.stringify(this.opts);\n Te.FE.OPTS_MAPPING[r] = Te.FE.OPTS_MAPPING[r] || this.id, this.sid = Te.FE.OPTS_MAPPING[r], Te.FE.SHARED[this.sid] = Te.FE.SHARED[this.sid] || {}, this.shared = Te.FE.SHARED[this.sid], this.shared.count = (this.shared.count || 0) + 1, this.$oel = Te(e), this.$oel.data(\"froala.editor\", this), this.o_doc = e.ownerDocument, this.o_win = \"defaultView\" in this.o_doc ? this.o_doc.defaultView : this.o_doc.parentWindow;\n var i = Te(this.o_win).scrollTop();\n this.$oel.on(\"froala.doInit\", Te.proxy(function () {\n this.$oel.off(\"froala.doInit\"), this.doc = this.$el.get(0).ownerDocument, this.win = \"defaultView\" in this.doc ? this.doc.defaultView : this.doc.parentWindow, this.$doc = Te(this.doc), this.$win = Te(this.win), this.opts.pluginsEnabled || (this.opts.pluginsEnabled = Object.keys(Te.FE.PLUGINS)), this.opts.initOnClick ? (this.load(Te.FE.MODULES), this.$el.on(\"touchstart.init\", function () {\n Te(this).data(\"touched\", !0);\n }), this.$el.on(\"touchmove.init\", function () {\n Te(this).removeData(\"touched\");\n }), this.$el.on(\"mousedown.init touchend.init dragenter.init focus.init\", Te.proxy(function (e) {\n if (\"touchend\" == e.type && !this.$el.data(\"touched\")) return !0;\n\n if (1 === e.which || !e.which) {\n this.$el.off(\"mousedown.init touchstart.init touchmove.init touchend.init dragenter.init focus.init\"), this.load(Te.FE.MODULES), this.load(Te.FE.PLUGINS);\n var t = e.originalEvent && e.originalEvent.originalTarget;\n t && \"IMG\" == t.tagName && Te(t).trigger(\"mousedown\"), \"undefined\" == typeof this.ul && this.destroy(), \"touchend\" == e.type && this.image && e.originalEvent && e.originalEvent.target && Te(e.originalEvent.target).is(\"img\") && setTimeout(Te.proxy(function () {\n this.image.edit(Te(e.originalEvent.target));\n }, this), 100), this.ready = !0, this.events.trigger(\"initialized\");\n }\n }, this)), this.events.trigger(\"initializationDelayed\")) : (this.load(Te.FE.MODULES), this.load(Te.FE.PLUGINS), Te(this.o_win).scrollTop(i), \"undefined\" == typeof this.ul && this.destroy(), this.ready = !0, this.events.trigger(\"initialized\"));\n }, this)), this._init();\n };\n\n s.DEFAULTS = {\n initOnClick: !1,\n pluginsEnabled: null\n }, s.MODULES = {}, s.PLUGINS = {}, s.VERSION = \"2.9.8\", s.INSTANCES = [], s.OPTS_MAPPING = {}, s.SHARED = {}, s.ID = 0, s.prototype._init = function () {\n var e = this.$oel.prop(\"tagName\");\n this.$oel.closest(\"label\").length;\n var t = Te.proxy(function () {\n \"TEXTAREA\" != e && (this._original_html = this._original_html || this.$oel.html()), this.$box = this.$box || this.$oel, this.opts.fullPage && (this.opts.iframe = !0), this.opts.iframe ? (this.$iframe = Te('',\n provider: \"youtube\"\n }, {\n test_regex: /^.*(?:vimeo.com)\\/(?:channels(\\/\\w+\\/)?|groups\\/*\\/videos\\/\\u200b\\d+\\/|video\\/|)(\\d+)(?:$|\\/|\\?)/,\n url_regex: /(?:https?:\\/\\/)?(?:www\\.|player\\.)?vimeo.com\\/(?:channels\\/(?:\\w+\\/)?|groups\\/(?:[^\\/]*)\\/videos\\/|album\\/(?:\\d+)\\/video\\/|video\\/|)(\\d+)(?:[a-zA-Z0-9_\\-]+)?(\\/[a-zA-Z0-9_\\-]+)?/i,\n url_text: \"https://player.vimeo.com/video/$1\",\n html: '',\n provider: \"vimeo\"\n }, {\n test_regex: /^.+(dailymotion.com|dai.ly)\\/(video|hub)?\\/?([^_]+)[^#]*(#video=([^_&]+))?/,\n url_regex: /(?:https?:\\/\\/)?(?:www\\.)?(?:dailymotion\\.com|dai\\.ly)\\/(?:video|hub)?\\/?(.+)/g,\n url_text: \"https://www.dailymotion.com/embed/video/$1\",\n html: '',\n provider: \"dailymotion\"\n }, {\n test_regex: /^.+(screen.yahoo.com)\\/[^_&]+/,\n url_regex: \"\",\n url_text: \"\",\n html: '',\n provider: \"yahoo\"\n }, {\n test_regex: /^.+(rutube.ru)\\/[^_&]+/,\n url_regex: /(?:https?:\\/\\/)?(?:www\\.)?(?:rutube\\.ru)\\/(?:video)?\\/?(.+)/g,\n url_text: \"https://rutube.ru/play/embed/$1\",\n html: '',\n provider: \"rutube\"\n }, {\n test_regex: /^(?:.+)vidyard.com\\/(?:watch)?\\/?([^.&/]+)\\/?(?:[^_.&]+)?/,\n url_regex: /^(?:.+)vidyard.com\\/(?:watch)?\\/?([^.&/]+)\\/?(?:[^_.&]+)?/g,\n url_text: \"https://play.vidyard.com/$1\",\n html: '',\n provider: \"vidyard\"\n }, {\n test_regex: /^(http(s)?:\\/\\/|www\\.).*(\\.mp4|\\.mkv|\\.mpg|\\.mp2|\\.mpeg|\\.mpv|\\.m4p|\\.m4v|\\.webm|\\.ogg|\\.ogv|\\.avi|\\.wmv|\\.mov|\\.flv|\\.swf)$/,\n url_regex: \"\",\n url_text: \"\",\n html: '',\n provider: \"unknown\"\n }], Te.FE.VIDEO_EMBED_REGEX = /^\\W*(((\\s|\\n)*<\\/iframe>)|())\\W*$/i, Te.FE.PLUGINS.video = function (p) {\n var s,\n c,\n f,\n u,\n r,\n n,\n l = \"https://i.froala.com/upload\",\n d = 2,\n h = 3,\n g = 4,\n m = 5,\n v = 6,\n i = {};\n\n function E() {\n var e = p.popups.get(\"video.insert\");\n e.find(\".fr-video-by-url-layer input\").val(\"\").trigger(\"change\");\n var t = e.find(\".fr-video-embed-layer textarea\");\n t.val(\"\").trigger(\"change\"), (t = e.find(\".fr-video-upload-layer input\")).val(\"\").trigger(\"change\");\n }\n\n function a() {\n var e = p.popups.get(\"video.edit\");\n\n if (e || (e = function () {\n var e = \"\";\n\n if (0 < p.opts.videoEditButtons.length) {\n p.opts.videoResponsive && (-1 < p.opts.videoEditButtons.indexOf(\"videoSize\") && p.opts.videoEditButtons.splice(p.opts.videoEditButtons.indexOf(\"videoSize\"), 1), -1 < p.opts.videoEditButtons.indexOf(\"videoDisplay\") && p.opts.videoEditButtons.splice(p.opts.videoEditButtons.indexOf(\"videoDisplay\"), 1), -1 < p.opts.videoEditButtons.indexOf(\"videoAlign\") && p.opts.videoEditButtons.splice(p.opts.videoEditButtons.indexOf(\"videoAlign\"), 1)), e += '
', e += p.button.buildList(p.opts.videoEditButtons);\n var t = {\n buttons: e += \"
\"\n },\n n = p.popups.create(\"video.edit\", t);\n return p.events.$on(p.$wp, \"scroll.video-edit\", function () {\n u && p.popups.isVisible(\"video.edit\") && (p.events.disableBlur(), L(u));\n }), n;\n }\n\n return !1;\n }()), e) {\n p.popups.setContainer(\"video.edit\", p.$sc), p.popups.refresh(\"video.edit\");\n var t = u.find(\"iframe, embed, video\"),\n n = t.offset().left + t.outerWidth() / 2,\n r = t.offset().top + t.outerHeight();\n p.popups.show(\"video.edit\", n, r, t.outerHeight());\n }\n }\n\n function o(e) {\n if (e) return p.popups.onRefresh(\"video.insert\", E), p.popups.onHide(\"image.insert\", X), !0;\n var t = \"\";\n p.opts.videoUpload || -1 === p.opts.videoInsertButtons.indexOf(\"videoUpload\") || p.opts.videoInsertButtons.splice(p.opts.videoInsertButtons.indexOf(\"videoUpload\"), 1);\n var n = p.button.buildList(p.opts.videoInsertButtons);\n \"\" !== n && (t = '
' + n + \"
\");\n var r,\n i = \"\",\n a = p.opts.videoInsertButtons.indexOf(\"videoUpload\"),\n o = p.opts.videoInsertButtons.indexOf(\"videoByURL\"),\n s = p.opts.videoInsertButtons.indexOf(\"videoEmbed\");\n 0 <= o && (r = \" fr-active\", (a < o && 0 <= a || s < o && 0 <= s) && (r = \"\"), i = '
\");\n var l = \"\";\n 0 <= s && (r = \" fr-active\", (a < s && 0 <= a || o < s && 0 <= o) && (r = \"\"), l = '
\");\n var d = \"\";\n 0 <= a && (r = \" fr-active\", (s < a && 0 <= s || o < a && 0 <= o) && (r = \"\"), d = '
' + p.language.translate(\"Drop video\") + \"
(\" + p.language.translate(\"or click\") + ')
');\n var c = {\n buttons: t,\n by_url_layer: i,\n embed_layer: l,\n upload_layer: d,\n progress_bar: '

Uploading

'\n },\n f = p.popups.create(\"video.insert\", c);\n return function (r) {\n p.events.$on(r, \"dragover dragenter\", \".fr-video-upload-layer\", function () {\n return Te(this).addClass(\"fr-drop\"), !1;\n }, !0), p.events.$on(r, \"dragleave dragend\", \".fr-video-upload-layer\", function () {\n return Te(this).removeClass(\"fr-drop\"), !1;\n }, !0), p.events.$on(r, \"drop\", \".fr-video-upload-layer\", function (e) {\n e.preventDefault(), e.stopPropagation(), Te(this).removeClass(\"fr-drop\");\n var t = e.originalEvent.dataTransfer;\n\n if (t && t.files) {\n var n = r.data(\"instance\") || p;\n n.events.disableBlur(), n.video.upload(t.files), n.events.enableBlur();\n }\n }, !0), p.helpers.isIOS() && p.events.$on(r, \"touchstart\", '.fr-video-upload-layer input[type=\"file\"]', function () {\n Te(this).trigger(\"click\");\n }, !0);\n p.events.$on(r, \"change\", '.fr-video-upload-layer input[type=\"file\"]', function () {\n if (this.files) {\n var e = r.data(\"instance\") || p;\n e.events.disableBlur(), r.find(\"input:focus\").blur(), e.events.enableBlur(), e.video.upload(this.files);\n }\n\n Te(this).val(\"\");\n }, !0);\n }(f), f;\n }\n\n function b(e) {\n p.events.focus(!0), p.selection.restore();\n var t = !1;\n u && (V(), t = !0), p.html.insert('' + e + \"\", !1, p.opts.videoSplitHTML), p.popups.hide(\"video.insert\");\n var n = p.$el.find(\".fr-jiv\");\n n.removeClass(\"fr-jiv\"), n.toggleClass(\"fr-rv\", p.opts.videoResponsive), q(n, p.opts.videoDefaultDisplay, p.opts.videoDefaultAlign), n.toggleClass(\"fr-draggable\", p.opts.videoMove), p.events.trigger(t ? \"video.replaced\" : \"video.inserted\", [n]);\n }\n\n function T() {\n var e = Te(this);\n p.popups.hide(\"video.insert\"), e.removeClass(\"fr-uploading\"), e.parent().next().is(\"br\") && e.parent().next().remove(), L(e.parent()), p.events.trigger(\"video.loaded\", [e.parent()]);\n }\n\n function A(s, e, l, d, c) {\n p.edit.off(), R(\"Loading video\"), e && (s = p.helpers.sanitizeURL(s));\n C(\"Loading video\"), function () {\n var e, t;\n\n if (d) {\n p.undo.canDo() || d.find(\"video\").hasClass(\"fr-uploading\") || p.undo.saveStep();\n var n = d.find(\"video\").data(\"fr-old-src\"),\n r = d.data(\"fr-replaced\");\n d.data(\"fr-replaced\", !1), p.$wp ? ((e = d.clone()).find(\"video\").removeData(\"fr-old-src\").removeClass(\"fr-uploading\"), e.find(\"video\").off(\"canplay\"), n && d.find(\"video\").attr(\"src\", n), d.replaceWith(e)) : e = d;\n\n for (var i = e.find(\"video\").get(0).attributes, a = 0; a < i.length; a++) {\n var o = i[a];\n 0 === o.nodeName.indexOf(\"data-\") && e.find(\"video\").removeAttr(o.nodeName);\n }\n\n if (void 0 !== l) for (t in l) {\n l.hasOwnProperty(t) && \"link\" != t && e.find(\"video\").attr(\"data-\" + t, l[t]);\n }\n e.find(\"video\").on(\"canplay\", T), e.find(\"video\").attr(\"src\", s), p.edit.on(), F(), p.undo.saveStep(), p.$el.blur(), p.events.trigger(r ? \"video.replaced\" : \"video.inserted\", [e, c]);\n } else e = function (e, t, n) {\n var r,\n i = \"\";\n if (t && void 0 !== t) for (r in t) {\n t.hasOwnProperty(r) && \"link\" != r && (i += \" data-\" + r + '=\"' + t[r] + '\"');\n }\n var a = p.opts.videoDefaultWidth;\n a && \"auto\" != a && (a += \"px\");\n var o = Te('\");\n o.toggleClass(\"fr-draggable\", p.opts.videoMove), p.edit.on(), p.events.focus(!0), p.selection.restore(), p.undo.saveStep(), p.opts.videoSplitHTML ? p.markers.split() : p.markers.insert(), p.html.wrap();\n var s = p.$el.find(\".fr-marker\");\n return p.node.isLastSibling(s) && s.parent().hasClass(\"fr-deletable\") && s.insertAfter(s.parent()), s.replaceWith(o), p.selection.clear(), o.find(\"video\").get(0).readyState > o.find(\"video\").get(0).HAVE_FUTURE_DATA || p.helpers.isIOS() ? n.call(o.find(\"video\").get(0)) : o.find(\"video\").on(\"canplaythrough load\", n), o;\n }(s, l, T), F(), p.undo.saveStep(), p.events.trigger(\"video.inserted\", [e, c]);\n }();\n }\n\n function C(e) {\n var t = p.popups.get(\"video.insert\");\n\n if (t || (t = o()), t.find(\".fr-layer.fr-active\").removeClass(\"fr-active\").addClass(\"fr-pactive\"), t.find(\".fr-video-progress-bar-layer\").addClass(\"fr-active\"), t.find(\".fr-buttons\").hide(), u) {\n var n = u.find(\"video\");\n p.popups.setContainer(\"video.insert\", p.$sc);\n var r = n.offset().left + n.width() / 2,\n i = n.offset().top + n.height();\n p.popups.show(\"video.insert\", r, i, n.outerHeight());\n }\n\n void 0 === e && R(p.language.translate(\"Uploading\"), 0);\n }\n\n function S(e) {\n var t = p.popups.get(\"video.insert\");\n\n if (t && (t.find(\".fr-layer.fr-pactive\").addClass(\"fr-active\").removeClass(\"fr-pactive\"), t.find(\".fr-video-progress-bar-layer\").removeClass(\"fr-active\"), t.find(\".fr-buttons\").show(), e || p.$el.find(\"video.fr-error\").length)) {\n if (p.events.focus(), p.$el.find(\"video.fr-error\").length && (p.$el.find(\"video.fr-error\").parent().remove(), p.undo.saveStep(), p.undo.run(), p.undo.dropRedo()), !p.$wp && u) {\n var n = u;\n B(!0), p.selection.setAfter(n.find(\"video\").get(0)), p.selection.restore();\n }\n\n p.popups.hide(\"video.insert\");\n }\n }\n\n function R(e, t) {\n var n = p.popups.get(\"video.insert\");\n\n if (n) {\n var r = n.find(\".fr-video-progress-bar-layer\");\n r.find(\"h3\").text(e + (t ? \" \" + t + \"%\" : \"\")), r.removeClass(\"fr-error\"), t ? (r.find(\"div\").removeClass(\"fr-indeterminate\"), r.find(\"div > span\").css(\"width\", t + \"%\")) : r.find(\"div\").addClass(\"fr-indeterminate\");\n }\n }\n\n function y(e) {\n C();\n var t = p.popups.get(\"video.insert\").find(\".fr-video-progress-bar-layer\");\n t.addClass(\"fr-error\");\n var n = t.find(\"h3\");\n n.text(e), p.events.disableBlur(), n.focus();\n }\n\n function L(e) {\n $.call(e.get(0));\n }\n\n function _(e) {\n R(\"Loading video\");\n var t = this.status,\n n = this.response,\n r = this.responseXML,\n i = this.responseText;\n\n try {\n if (p.opts.videoUploadToS3) {\n if (201 == t) {\n var a = function (e) {\n try {\n var t = Te(e).find(\"Location\").text(),\n n = Te(e).find(\"Key\").text();\n return !1 === p.events.trigger(\"video.uploadedToS3\", [t, n, e], !0) ? (p.edit.on(), !1) : t;\n } catch (r) {\n return H(g, e), !1;\n }\n }(r);\n\n a && A(a, !1, [], e, n || r);\n } else H(g, n || r);\n } else if (200 <= t && t < 300) {\n var o = function (e) {\n try {\n if (!1 === p.events.trigger(\"video.uploaded\", [e], !0)) return p.edit.on(), !1;\n var t = JSON.parse(e);\n return t.link ? t : (H(d, e), !1);\n } catch (n) {\n return H(g, e), !1;\n }\n }(i);\n\n o && A(o.link, !1, o, e, n || i);\n } else H(h, n || i);\n } catch (s) {\n H(g, n || i);\n }\n }\n\n function N() {\n H(g, this.response || this.responseText || this.responseXML);\n }\n\n function x(e) {\n if (e.lengthComputable) {\n var t = e.loaded / e.total * 100 | 0;\n R(p.language.translate(\"Uploading\"), t);\n }\n }\n\n function w() {\n p.edit.on(), S(!0);\n }\n\n function O(e) {\n if (!p.core.sameInstance(f)) return !0;\n e.preventDefault(), e.stopPropagation();\n var t = e.pageX || (e.originalEvent.touches ? e.originalEvent.touches[0].pageX : null),\n n = e.pageY || (e.originalEvent.touches ? e.originalEvent.touches[0].pageY : null);\n if (!t || !n) return !1;\n\n if (\"mousedown\" == e.type) {\n var r = p.$oel.get(0).ownerDocument,\n i = r.defaultView || r.parentWindow,\n a = !1;\n\n try {\n a = i.location != i.parent.location && !(i.$ && i.$.FE);\n } catch (o) {}\n\n a && i.frameElement && (t += p.helpers.getPX(Te(i.frameElement).offset().left) + i.frameElement.clientLeft, n = e.clientY + p.helpers.getPX(Te(i.frameElement).offset().top) + i.frameElement.clientTop);\n }\n\n p.undo.canDo() || p.undo.saveStep(), (c = Te(this)).data(\"start-x\", t), c.data(\"start-y\", n), s.show(), p.popups.hideAll(), P();\n }\n\n function I(e) {\n if (!p.core.sameInstance(f)) return !0;\n\n if (c) {\n e.preventDefault();\n var t = e.pageX || (e.originalEvent.touches ? e.originalEvent.touches[0].pageX : null),\n n = e.pageY || (e.originalEvent.touches ? e.originalEvent.touches[0].pageY : null);\n if (!t || !n) return !1;\n var r = c.data(\"start-x\"),\n i = c.data(\"start-y\");\n c.data(\"start-x\", t), c.data(\"start-y\", n);\n var a = t - r,\n o = n - i,\n s = u.find(\"iframe, embed, video\"),\n l = s.width(),\n d = s.height();\n (c.hasClass(\"fr-hnw\") || c.hasClass(\"fr-hsw\")) && (a = 0 - a), (c.hasClass(\"fr-hnw\") || c.hasClass(\"fr-hne\")) && (o = 0 - o), s.css(\"width\", l + a), s.css(\"height\", d + o), s.removeAttr(\"width\"), s.removeAttr(\"height\"), M();\n }\n }\n\n function k(e) {\n if (!p.core.sameInstance(f)) return !0;\n c && u && (e && e.stopPropagation(), c = null, s.hide(), M(), a(), p.undo.saveStep());\n }\n\n function t(e) {\n return '
';\n }\n\n function D(e, t, n, r) {\n return e.pageX = t, e.pageY = t, O.call(this, e), e.pageX = e.pageX + n * Math.floor(Math.pow(1.1, r)), e.pageY = e.pageY + n * Math.floor(Math.pow(1.1, r)), I.call(this, e), k.call(this, e), ++r;\n }\n\n function F() {\n var e,\n t = Array.prototype.slice.call(p.el.querySelectorAll(\"video, .fr-video > *\")),\n n = [];\n\n for (e = 0; e < t.length; e++) {\n n.push(t[e].getAttribute(\"src\")), Te(t[e]).toggleClass(\"fr-draggable\", p.opts.videoMove), \"\" === t[e].getAttribute(\"class\") && t[e].removeAttribute(\"class\"), \"\" === t[e].getAttribute(\"style\") && t[e].removeAttribute(\"style\");\n }\n\n if (r) for (e = 0; e < r.length; e++) {\n n.indexOf(r[e].getAttribute(\"src\")) < 0 && p.events.trigger(\"video.removed\", [Te(r[e])]);\n }\n r = t;\n }\n\n function M() {\n f || function () {\n var e;\n\n if (p.shared.$video_resizer ? (f = p.shared.$video_resizer, s = p.shared.$vid_overlay, p.events.on(\"destroy\", function () {\n f.removeClass(\"fr-active\").appendTo(Te(\"body:first\"));\n }, !0)) : (p.shared.$video_resizer = Te('
'), f = p.shared.$video_resizer, p.events.$on(f, \"mousedown\", function (e) {\n e.stopPropagation();\n }, !0), p.opts.videoResize && (f.append(t(\"nw\") + t(\"ne\") + t(\"sw\") + t(\"se\")), p.shared.$vid_overlay = Te('
'), s = p.shared.$vid_overlay, e = f.get(0).ownerDocument, Te(e).find(\"body:first\").append(s))), p.events.on(\"shared.destroy\", function () {\n f.html(\"\").removeData().remove(), f = null, p.opts.videoResize && (s.remove(), s = null);\n }, !0), p.helpers.isMobile() || p.events.$on(Te(p.o_win), \"resize.video\", function () {\n B(!0);\n }), p.opts.videoResize) {\n e = f.get(0).ownerDocument, p.events.$on(f, p._mousedown, \".fr-handler\", O), p.events.$on(Te(e), p._mousemove, I), p.events.$on(Te(e.defaultView || e.parentWindow), p._mouseup, k), p.events.$on(s, \"mouseleave\", k);\n var r = 1,\n i = null,\n a = 0;\n p.events.on(\"keydown\", function (e) {\n if (u) {\n var t = -1 != navigator.userAgent.indexOf(\"Mac OS X\") ? e.metaKey : e.ctrlKey,\n n = e.which;\n (n !== i || 200 < e.timeStamp - a) && (r = 1), (n == Te.FE.KEYCODE.EQUALS || p.browser.mozilla && n == Te.FE.KEYCODE.FF_EQUALS) && t && !e.altKey ? r = D.call(this, e, 1, 1, r) : (n == Te.FE.KEYCODE.HYPHEN || p.browser.mozilla && n == Te.FE.KEYCODE.FF_HYPHEN) && t && !e.altKey && (r = D.call(this, e, 2, -1, r)), i = n, a = e.timeStamp;\n }\n }), p.events.on(\"keyup\", function () {\n r = 1;\n });\n }\n }(), (p.$wp || p.$sc).append(f), f.data(\"instance\", p);\n var e = u.find(\"iframe, embed, video\");\n f.css(\"top\", (p.opts.iframe ? e.offset().top - 1 : e.offset().top - p.$wp.offset().top - 1) + p.$wp.scrollTop()).css(\"left\", (p.opts.iframe ? e.offset().left - 1 : e.offset().left - p.$wp.offset().left - 1) + p.$wp.scrollLeft()).css(\"width\", e.get(0).getBoundingClientRect().width).css(\"height\", e.get(0).getBoundingClientRect().height).addClass(\"fr-active\");\n }\n\n function $(e) {\n if (e && \"touchend\" == e.type && n) return !0;\n if (e && p.edit.isDisabled()) return e.stopPropagation(), e.preventDefault(), !1;\n if (p.edit.isDisabled()) return !1;\n\n for (var t = 0; t < Te.FE.INSTANCES.length; t++) {\n Te.FE.INSTANCES[t] != p && Te.FE.INSTANCES[t].events.trigger(\"video.hideResizer\");\n }\n\n p.toolbar.disable(), p.helpers.isMobile() && (p.events.disableBlur(), p.$el.blur(), p.events.enableBlur()), p.$el.find(\".fr-video.fr-active\").removeClass(\"fr-active\"), (u = Te(this)).addClass(\"fr-active\"), p.opts.iframe && p.size.syncIframe(), Q(), M(), a(), p.selection.clear(), p.button.bulkRefresh(), p.events.trigger(\"image.hideResizer\");\n }\n\n function B(e) {\n u && (p.shared.vid_exit_flag || !0 === e) && (f.removeClass(\"fr-active\"), p.toolbar.enable(), u.removeClass(\"fr-active\"), u = null, P());\n }\n\n function e() {\n p.shared.vid_exit_flag = !0;\n }\n\n function P() {\n p.shared.vid_exit_flag = !1;\n }\n\n function U(e) {\n var t = e.originalEvent.dataTransfer;\n\n if (t && t.files && t.files.length) {\n var n = t.files[0];\n\n if (n && n.type && -1 !== n.type.indexOf(\"video\")) {\n if (!p.opts.videoUpload) return e.preventDefault(), e.stopPropagation(), !1;\n p.markers.remove(), p.markers.insertAtPoint(e.originalEvent), p.$el.find(\".fr-marker\").replaceWith(Te.FE.MARKERS), p.popups.hideAll();\n var r = p.popups.get(\"video.insert\");\n return r || (r = o()), p.popups.setContainer(\"video.insert\", p.$sc), p.popups.show(\"video.insert\", e.originalEvent.pageX, e.originalEvent.pageY), C(), 0 <= p.opts.videoAllowedTypes.indexOf(n.type.replace(/video\\//g, \"\")) ? K(t.files) : H(v), e.preventDefault(), e.stopPropagation(), !1;\n }\n }\n }\n\n function K(e) {\n if (void 0 !== e && 0 < e.length) {\n if (!1 === p.events.trigger(\"video.beforeUpload\", [e])) return !1;\n var t,\n n = e[0];\n if (n.size > p.opts.videoMaxSize) return H(m), !1;\n if (p.opts.videoAllowedTypes.indexOf(n.type.replace(/video\\//g, \"\")) < 0) return H(v), !1;\n if ((null === p.opts.videoUploadURL || p.opts.videoUploadURL == l) && !p.opts.videoUploadToS3) return function (t) {\n u && u.find(\"iframe\") && u.find(\"iframe\").length && V();\n var n = new FileReader();\n n.onload = function () {\n var e = n.result;\n A(e = window.URL.createObjectURL(new Blob([e], {\n type: t.type\n })), !1, null, u);\n }, C(), n.readAsArrayBuffer(t);\n }(n), !1;\n\n if (p.drag_support.formdata && (t = p.drag_support.formdata ? new FormData() : null), t) {\n var r;\n if (!1 !== p.opts.videoUploadToS3) for (r in t.append(\"key\", p.opts.videoUploadToS3.keyStart + new Date().getTime() + \"-\" + (n.name || \"untitled\")), t.append(\"success_action_status\", \"201\"), t.append(\"X-Requested-With\", \"xhr\"), t.append(\"Content-Type\", n.type), p.opts.videoUploadToS3.params) {\n p.opts.videoUploadToS3.params.hasOwnProperty(r) && t.append(r, p.opts.videoUploadToS3.params[r]);\n }\n\n for (r in p.opts.videoUploadParams) {\n p.opts.videoUploadParams.hasOwnProperty(r) && t.append(r, p.opts.videoUploadParams[r]);\n }\n\n t.append(p.opts.videoUploadParam, n);\n var i = p.opts.videoUploadURL;\n p.opts.videoUploadToS3 && (i = p.opts.videoUploadToS3.uploadURL ? p.opts.videoUploadToS3.uploadURL : \"https://\" + p.opts.videoUploadToS3.region + \".amazonaws.com/\" + p.opts.videoUploadToS3.bucket);\n var a = p.core.getXHR(i, p.opts.videoUploadMethod);\n a.onload = function () {\n _.call(a, u);\n }, a.onerror = N, a.upload.onprogress = x, a.onabort = w, C(), p.events.disableBlur(), p.edit.off(), p.events.enableBlur();\n var o = p.popups.get(\"video.insert\");\n o && o.off(\"abortUpload\").on(\"abortUpload\", function () {\n 4 != a.readyState && a.abort();\n }), a.send(t);\n }\n }\n }\n\n function H(e, t) {\n p.edit.on(), u && u.find(\"video\").addClass(\"fr-error\"), y(p.language.translate(\"Something went wrong. Please try again.\")), p.events.trigger(\"video.error\", [{\n code: e,\n message: i[e]\n }, t]);\n }\n\n function W() {\n if (u) {\n var e = p.popups.get(\"video.size\"),\n t = u.find(\"iframe, embed, video\");\n e.find('input[name=\"width\"]').val(t.get(0).style.width || t.attr(\"width\")).trigger(\"change\"), e.find('input[name=\"height\"]').val(t.get(0).style.height || t.attr(\"height\")).trigger(\"change\");\n }\n }\n\n function z(e) {\n if (e) return p.popups.onRefresh(\"video.size\", W), !0;\n var t = {\n buttons: '
' + p.button.buildList(p.opts.videoSizeButtons) + \"
\",\n size_layer: '
\"\n },\n n = p.popups.create(\"video.size\", t);\n return p.events.$on(p.$wp, \"scroll\", function () {\n u && p.popups.isVisible(\"video.size\") && (p.events.disableBlur(), L(u));\n }), n;\n }\n\n function Y(e) {\n if (void 0 === e && (e = u), e) {\n if (e.hasClass(\"fr-fvl\")) return \"left\";\n if (e.hasClass(\"fr-fvr\")) return \"right\";\n if (e.hasClass(\"fr-dvb\") || e.hasClass(\"fr-dvi\")) return \"center\";\n\n if (\"block\" == e.css(\"display\")) {\n if (\"left\" == e.css(\"text-algin\")) return \"left\";\n if (\"right\" == e.css(\"text-align\")) return \"right\";\n } else {\n if (\"left\" == e.css(\"float\")) return \"left\";\n if (\"right\" == e.css(\"float\")) return \"right\";\n }\n }\n\n return \"center\";\n }\n\n function G(e) {\n void 0 === e && (e = u);\n var t = e.css(\"float\");\n return e.css(\"float\", \"none\"), \"block\" == e.css(\"display\") ? (e.css(\"float\", \"\"), e.css(\"float\") != t && e.css(\"float\", t), \"block\") : (e.css(\"float\", \"\"), e.css(\"float\") != t && e.css(\"float\", t), \"inline\");\n }\n\n function V() {\n if (u && !1 !== p.events.trigger(\"video.beforeRemove\", [u])) {\n var e = u;\n p.popups.hideAll(), B(!0), p.selection.setBefore(e.get(0)) || p.selection.setAfter(e.get(0)), e.remove(), p.selection.restore(), p.html.fillEmptyBlocks();\n }\n }\n\n function X() {\n S();\n }\n\n function q(e, t, n) {\n !p.opts.htmlUntouched && p.opts.useClasses ? (e.removeClass(\"fr-fvl fr-fvr fr-dvb fr-dvi\"), e.addClass(\"fr-fv\" + n[0] + \" fr-dv\" + t[0])) : \"inline\" == t ? (e.css({\n display: \"inline-block\"\n }), \"center\" == n ? e.css({\n \"float\": \"none\"\n }) : \"left\" == n ? e.css({\n \"float\": \"left\"\n }) : e.css({\n \"float\": \"right\"\n })) : (e.css({\n display: \"block\",\n clear: \"both\"\n }), \"left\" == n ? e.css({\n textAlign: \"left\"\n }) : \"right\" == n ? e.css({\n textAlign: \"right\"\n }) : e.css({\n textAlign: \"center\"\n }));\n }\n\n function j() {\n p.$el.find(\"video\").filter(function () {\n return 0 === Te(this).parents(\"span.fr-video\").length;\n }).wrap(''), p.$el.find(\"embed, iframe\").filter(function () {\n if (p.browser.safari && this.getAttribute(\"src\") && this.setAttribute(\"src\", this.src), 0 < Te(this).parents(\"span.fr-video\").length) return !1;\n\n for (var e = Te(this).attr(\"src\"), t = 0; t < Te.FE.VIDEO_PROVIDERS.length; t++) {\n var n = Te.FE.VIDEO_PROVIDERS[t];\n if (n.test_regex.test(e) && new RegExp(p.opts.videoAllowedProviders.join(\"|\")).test(n.provider)) return !0;\n }\n\n return !1;\n }).map(function () {\n return 0 === Te(this).parents(\"object\").length ? this : Te(this).parents(\"object\").get(0);\n }).wrap('');\n\n for (var e, t, n = p.$el.find(\"span.fr-video, video\"), r = 0; r < n.length; r++) {\n var i = Te(n[r]);\n !p.opts.htmlUntouched && p.opts.useClasses ? ((t = i).hasClass(\"fr-dvi\") || t.hasClass(\"fr-dvb\") || (t.addClass(\"fr-fv\" + Y(t)[0]), t.addClass(\"fr-dv\" + G(t)[0])), p.opts.videoTextNear || i.removeClass(\"fr-dvi\").addClass(\"fr-dvb\")) : p.opts.htmlUntouched || p.opts.useClasses || (q(e = i, e.hasClass(\"fr-dvb\") ? \"block\" : e.hasClass(\"fr-dvi\") ? \"inline\" : null, e.hasClass(\"fr-fvl\") ? \"left\" : e.hasClass(\"fr-fvr\") ? \"right\" : Y(e)), e.removeClass(\"fr-dvb fr-dvi fr-fvr fr-fvl\"));\n }\n\n n.toggleClass(\"fr-draggable\", p.opts.videoMove);\n }\n\n function Q() {\n if (u) {\n p.selection.clear();\n var e = p.doc.createRange();\n e.selectNode(u.get(0)), p.selection.get().addRange(e);\n }\n }\n\n return i[1] = \"Video cannot be loaded from the passed link.\", i[d] = \"No link in upload response.\", i[h] = \"Error during file upload.\", i[g] = \"Parsing response failed.\", i[m] = \"File is too large.\", i[v] = \"Video file type is invalid.\", i[7] = \"Files can be uploaded only to same domain in IE 8 and IE 9.\", p.shared.vid_exit_flag = !1, {\n _init: function _init() {\n p.opts.videoResponsive && (p.opts.videoResize = !1), p.events.on(\"drop\", U, !0), p.events.on(\"mousedown window.mousedown\", e), p.events.on(\"window.touchmove\", P), p.events.on(\"mouseup window.mouseup\", B), p.events.on(\"commands.mousedown\", function (e) {\n 0 < e.parents(\".fr-toolbar\").length && B();\n }), p.events.on(\"video.hideResizer commands.undo commands.redo element.dropped\", function () {\n B(!0);\n }), p.helpers.isMobile() && (p.events.$on(p.$el, \"touchstart\", \"span.fr-video\", function () {\n n = !1;\n }), p.events.$on(p.$el, \"touchmove\", function () {\n n = !0;\n })), p.events.on(\"html.set\", j), j(), p.events.$on(p.$el, \"mousedown\", \"span.fr-video\", function (e) {\n e.stopPropagation(), (p.browser.msie || p.browser.edge) && (e.target.dragDrop(), $.call(this, e));\n }), p.events.$on(p.$el, \"click touchend\", \"span.fr-video\", function (e) {\n if (\"false\" == Te(this).parents(\"[contenteditable]:not(.fr-element):not(.fr-img-caption):not(body):first\").attr(\"contenteditable\")) return !0;\n $.call(this, e);\n }), p.events.on(\"keydown\", function (e) {\n var t = e.which;\n return !u || t != Te.FE.KEYCODE.BACKSPACE && t != Te.FE.KEYCODE.DELETE ? u && t == Te.FE.KEYCODE.ESC ? (B(!0), e.preventDefault(), !1) : u && t != Te.FE.KEYCODE.F10 && !p.keys.isBrowserAction(e) ? (e.preventDefault(), !1) : void 0 : (e.preventDefault(), V(), p.undo.saveStep(), !1);\n }, !0), p.events.on(\"toolbar.esc\", function () {\n if (u) return p.events.disableBlur(), p.events.focus(), !1;\n }, !0), p.events.on(\"toolbar.focusEditor\", function () {\n if (u) return !1;\n }, !0), p.events.on(\"keydown\", function () {\n p.$el.find(\"span.fr-video:empty\").remove();\n }), p.$wp && (F(), p.events.on(\"contentChanged\", F)), o(!0), z(!0);\n },\n showInsertPopup: function showInsertPopup() {\n var e = p.$tb.find('.fr-command[data-cmd=\"insertVideo\"]'),\n t = p.popups.get(\"video.insert\");\n if (t || (t = o()), S(), !t.hasClass(\"fr-active\")) if (p.popups.refresh(\"video.insert\"), p.popups.setContainer(\"video.insert\", p.$tb), e.is(\":visible\")) {\n var n = e.offset().left + e.outerWidth() / 2,\n r = p.position.getTbarPupupTop(\"video.insert\", e);\n p.popups.show(\"video.insert\", n, r, e.outerHeight());\n } else p.position.forSelection(t), p.popups.show(\"video.insert\");\n },\n showLayer: function showLayer(e) {\n var t,\n n,\n r = p.popups.get(\"video.insert\");\n\n if (!u && !p.opts.toolbarInline) {\n var i = p.$tb.find('.fr-command[data-cmd=\"insertVideo\"]');\n t = i.offset().left + i.outerWidth() / 2, n = p.position.getTbarPupupTop(\"video.insert\", i);\n }\n\n p.opts.toolbarInline && (n = r.offset().top - p.helpers.getPX(r.css(\"margin-top\")), r.hasClass(\"fr-above\") && (n += r.outerHeight())), r.find(\".fr-layer\").removeClass(\"fr-active\"), r.find(\".fr-\" + e + \"-layer\").addClass(\"fr-active\"), p.popups.show(\"video.insert\", t, n, 0), p.accessibility.focusPopup(r);\n },\n refreshByURLButton: function refreshByURLButton(e) {\n p.popups.get(\"video.insert\").find(\".fr-video-by-url-layer\").hasClass(\"fr-active\") && e.addClass(\"fr-active\").attr(\"aria-pressed\", !0);\n },\n refreshEmbedButton: function refreshEmbedButton(e) {\n p.popups.get(\"video.insert\").find(\".fr-video-embed-layer\").hasClass(\"fr-active\") && e.addClass(\"fr-active\").attr(\"aria-pressed\", !0);\n },\n refreshUploadButton: function refreshUploadButton(e) {\n p.popups.get(\"video.insert\").find(\".fr-video-upload-layer\").hasClass(\"fr-active\") && e.addClass(\"fr-active\").attr(\"aria-pressed\", !0);\n },\n upload: K,\n insertByURL: function insertByURL(e) {\n void 0 === e && (e = (p.popups.get(\"video.insert\").find('.fr-video-by-url-layer input[type=\"text\"]').val() || \"\").trim());\n var t = null;\n if (/^http/.test(e) || (e = \"https://\" + e), p.helpers.isURL(e)) for (var n = 0; n < Te.FE.VIDEO_PROVIDERS.length; n++) {\n var r = Te.FE.VIDEO_PROVIDERS[n];\n\n if (r.test_regex.test(e) && new RegExp(p.opts.videoAllowedProviders.join(\"|\")).test(r.provider)) {\n t = e.replace(r.url_regex, r.url_text), t = r.html.replace(/\\{url\\}/, t);\n break;\n }\n }\n t ? b(t) : (y(p.language.translate(\"Something went wrong. Please try again.\")), p.events.trigger(\"video.linkError\", [e]));\n },\n insertEmbed: function insertEmbed(e) {\n void 0 === e && (e = p.popups.get(\"video.insert\").find(\".fr-video-embed-layer textarea\").val() || \"\"), 0 !== e.length && Te.FE.VIDEO_EMBED_REGEX.test(e) ? b(e) : (y(p.language.translate(\"Something went wrong. Please try again.\")), p.events.trigger(\"video.codeError\", [e]));\n },\n insert: b,\n align: function align(e) {\n u.removeClass(\"fr-fvr fr-fvl\"), !p.opts.htmlUntouched && p.opts.useClasses ? \"left\" == e ? u.addClass(\"fr-fvl\") : \"right\" == e && u.addClass(\"fr-fvr\") : q(u, G(), e), Q(), M(), a(), p.selection.clear();\n },\n refreshAlign: function refreshAlign(e) {\n if (!u) return !1;\n e.find(\"> *:first\").replaceWith(p.icon.create(\"video-align-\" + Y()));\n },\n refreshAlignOnShow: function refreshAlignOnShow(e, t) {\n u && t.find('.fr-command[data-param1=\"' + Y() + '\"]').addClass(\"fr-active\").attr(\"aria-selected\", !0);\n },\n display: function display(e) {\n u.removeClass(\"fr-dvi fr-dvb\"), !p.opts.htmlUntouched && p.opts.useClasses ? \"inline\" == e ? u.addClass(\"fr-dvi\") : \"block\" == e && u.addClass(\"fr-dvb\") : q(u, e, Y()), Q(), M(), a(), p.selection.clear();\n },\n refreshDisplayOnShow: function refreshDisplayOnShow(e, t) {\n u && t.find('.fr-command[data-param1=\"' + G() + '\"]').addClass(\"fr-active\").attr(\"aria-selected\", !0);\n },\n remove: V,\n hideProgressBar: S,\n showSizePopup: function showSizePopup() {\n var e = p.popups.get(\"video.size\");\n e || (e = z()), S(), p.popups.refresh(\"video.size\"), p.popups.setContainer(\"video.size\", p.$sc);\n var t = u.find(\"iframe, embed, video\"),\n n = t.offset().left + t.width() / 2,\n r = t.offset().top + t.height();\n p.popups.show(\"video.size\", n, r, t.height());\n },\n replace: function replace() {\n var e = p.popups.get(\"video.insert\");\n e || (e = o()), p.popups.isVisible(\"video.insert\") || (S(), p.popups.refresh(\"video.insert\"), p.popups.setContainer(\"video.insert\", p.$sc));\n var t = u.offset().left + u.width() / 2,\n n = u.offset().top + u.height();\n p.popups.show(\"video.insert\", t, n, u.outerHeight());\n },\n back: function back() {\n u ? (p.events.disableBlur(), u.trigger(\"click\")) : (p.events.disableBlur(), p.selection.restore(), p.events.enableBlur(), p.popups.hide(\"video.insert\"), p.toolbar.showInline());\n },\n setSize: function setSize(e, t) {\n if (u) {\n var n = p.popups.get(\"video.size\"),\n r = u.find(\"iframe, embed, video\");\n r.css(\"width\", e || n.find('input[name=\"width\"]').val()), r.css(\"height\", t || n.find('input[name=\"height\"]').val()), r.get(0).style.width && r.removeAttr(\"width\"), r.get(0).style.height && r.removeAttr(\"height\"), n.find(\"input:focus\").blur(), setTimeout(function () {\n u.trigger(\"click\");\n }, p.helpers.isAndroid() ? 50 : 0);\n }\n },\n get: function get() {\n return u;\n },\n showProgressBar: C\n };\n }, Te.FE.RegisterCommand(\"insertVideo\", {\n title: \"Insert Video\",\n undo: !1,\n focus: !0,\n refreshAfterCallback: !1,\n popup: !0,\n callback: function callback() {\n this.popups.isVisible(\"video.insert\") ? (this.$el.find(\".fr-marker\").length && (this.events.disableBlur(), this.selection.restore()), this.popups.hide(\"video.insert\")) : this.video.showInsertPopup();\n },\n plugin: \"video\"\n }), Te.FE.DefineIcon(\"insertVideo\", {\n NAME: \"video-camera\",\n FA5NAME: \"camera\"\n }), Te.FE.DefineIcon(\"videoByURL\", {\n NAME: \"link\"\n }), Te.FE.RegisterCommand(\"videoByURL\", {\n title: \"By URL\",\n undo: !1,\n focus: !1,\n toggle: !0,\n callback: function callback() {\n this.video.showLayer(\"video-by-url\");\n },\n refresh: function refresh(e) {\n this.video.refreshByURLButton(e);\n }\n }), Te.FE.DefineIcon(\"videoEmbed\", {\n NAME: \"code\"\n }), Te.FE.RegisterCommand(\"videoEmbed\", {\n title: \"Embedded Code\",\n undo: !1,\n focus: !1,\n toggle: !0,\n callback: function callback() {\n this.video.showLayer(\"video-embed\");\n },\n refresh: function refresh(e) {\n this.video.refreshEmbedButton(e);\n }\n }), Te.FE.DefineIcon(\"videoUpload\", {\n NAME: \"upload\"\n }), Te.FE.RegisterCommand(\"videoUpload\", {\n title: \"Upload Video\",\n undo: !1,\n focus: !1,\n toggle: !0,\n callback: function callback() {\n this.video.showLayer(\"video-upload\");\n },\n refresh: function refresh(e) {\n this.video.refreshUploadButton(e);\n }\n }), Te.FE.RegisterCommand(\"videoInsertByURL\", {\n undo: !0,\n focus: !0,\n callback: function callback() {\n this.video.insertByURL();\n }\n }), Te.FE.RegisterCommand(\"videoInsertEmbed\", {\n undo: !0,\n focus: !0,\n callback: function callback() {\n this.video.insertEmbed();\n }\n }), Te.FE.DefineIcon(\"videoDisplay\", {\n NAME: \"star\"\n }), Te.FE.RegisterCommand(\"videoDisplay\", {\n title: \"Display\",\n type: \"dropdown\",\n options: {\n inline: \"Inline\",\n block: \"Break Text\"\n },\n callback: function callback(e, t) {\n this.video.display(t);\n },\n refresh: function refresh(e) {\n this.opts.videoTextNear || e.addClass(\"fr-hidden\");\n },\n refreshOnShow: function refreshOnShow(e, t) {\n this.video.refreshDisplayOnShow(e, t);\n }\n }), Te.FE.DefineIcon(\"video-align\", {\n NAME: \"align-left\"\n }), Te.FE.DefineIcon(\"video-align-left\", {\n NAME: \"align-left\"\n }), Te.FE.DefineIcon(\"video-align-right\", {\n NAME: \"align-right\"\n }), Te.FE.DefineIcon(\"video-align-center\", {\n NAME: \"align-justify\"\n }), Te.FE.DefineIcon(\"videoAlign\", {\n NAME: \"align-center\"\n }), Te.FE.RegisterCommand(\"videoAlign\", {\n type: \"dropdown\",\n title: \"Align\",\n options: {\n left: \"Align Left\",\n center: \"None\",\n right: \"Align Right\"\n },\n html: function html() {\n var e = '\";\n },\n callback: function callback(e, t) {\n this.video.align(t);\n },\n refresh: function refresh(e) {\n this.video.refreshAlign(e);\n },\n refreshOnShow: function refreshOnShow(e, t) {\n this.video.refreshAlignOnShow(e, t);\n }\n }), Te.FE.DefineIcon(\"videoReplace\", {\n NAME: \"exchange\",\n FA5NAME: \"exchange-alt\"\n }), Te.FE.RegisterCommand(\"videoReplace\", {\n title: \"Replace\",\n undo: !1,\n focus: !1,\n popup: !0,\n refreshAfterCallback: !1,\n callback: function callback() {\n this.video.replace();\n }\n }), Te.FE.DefineIcon(\"videoRemove\", {\n NAME: \"trash\"\n }), Te.FE.RegisterCommand(\"videoRemove\", {\n title: \"Remove\",\n callback: function callback() {\n this.video.remove();\n }\n }), Te.FE.DefineIcon(\"videoSize\", {\n NAME: \"arrows-alt\"\n }), Te.FE.RegisterCommand(\"videoSize\", {\n undo: !1,\n focus: !1,\n popup: !0,\n title: \"Change Size\",\n callback: function callback() {\n this.video.showSizePopup();\n }\n }), Te.FE.DefineIcon(\"videoBack\", {\n NAME: \"arrow-left\"\n }), Te.FE.RegisterCommand(\"videoBack\", {\n title: \"Back\",\n undo: !1,\n focus: !1,\n back: !0,\n callback: function callback() {\n this.video.back();\n },\n refresh: function refresh(e) {\n this.video.get() || this.opts.toolbarInline ? (e.removeClass(\"fr-hidden\"), e.next(\".fr-separator\").removeClass(\"fr-hidden\")) : (e.addClass(\"fr-hidden\"), e.next(\".fr-separator\").addClass(\"fr-hidden\"));\n }\n }), Te.FE.RegisterCommand(\"videoDismissError\", {\n title: \"OK\",\n undo: !1,\n callback: function callback() {\n this.video.hideProgressBar(!0);\n }\n }), Te.FE.RegisterCommand(\"videoSetSize\", {\n undo: !0,\n focus: !1,\n title: \"Update\",\n refreshAfterCallback: !1,\n callback: function callback() {\n this.video.setSize();\n }\n }), Te.extend(Te.FE.DEFAULTS, {\n wordDeniedTags: [],\n wordDeniedAttrs: [],\n wordAllowedStyleProps: [\"font-family\", \"font-size\", \"background\", \"color\", \"width\", \"text-align\", \"vertical-align\", \"background-color\", \"padding\", \"margin\", \"height\", \"margin-top\", \"margin-left\", \"margin-right\", \"margin-bottom\", \"text-decoration\", \"font-weight\", \"font-style\", \"text-indent\", \"border\", \"border-.*\", \"line-height\", \"list-style-type\"],\n wordPasteModal: !0,\n wordPasteKeepFormatting: !0\n }), Te.FE.PLUGINS.wordPaste = function (T) {\n var a,\n r,\n o = \"word_paste\";\n\n function t(e) {\n var t = T.opts.wordAllowedStyleProps;\n e || (T.opts.wordAllowedStyleProps = []), 0 === r.indexOf(\"\") && (r = \"\" + r + \"
\"), r = function (e, t) {\n 0 <= e.indexOf(\"]*(]*>[.\\s\\S\\w\\W<>]*<\\/html>)[.\\s\\S\\w\\W<>]*/i, \"$1\"));\n !function (e) {\n for (var t = e.split(\"v:shape\"), n = 1; n < t.length; n++) {\n var r = t[n],\n i = r.split(' id=\"')[1];\n\n if (i && 1 < i.length) {\n i = i.split('\"')[0];\n var a = r.split(' o:spid=\"')[1];\n a && 1 < a.length && (a = a.split('\"')[0], h[i] = a);\n }\n }\n }(e);\n\n var n = new DOMParser().parseFromString(e, \"text/html\"),\n r = n.head,\n i = n.body,\n s = function (e) {\n var t = {},\n n = e.getElementsByTagName(\"style\");\n\n if (n.length) {\n var r = n[0],\n i = r.innerHTML.match(/[\\S ]+\\s+{[\\s\\S]+?}/gi);\n if (i) for (var a = 0; a < i.length; a++) {\n var o = i[a],\n s = o.replace(/([\\S ]+\\s+){[\\s\\S]+?}/gi, \"$1\"),\n l = o.replace(/[\\S ]+\\s+{([\\s\\S]+?)}/gi, \"$1\");\n s = s.replace(/^[\\s]|[\\s]$/gm, \"\"), l = l.replace(/^[\\s]|[\\s]$/gm, \"\"), s = s.replace(/\\n|\\r|\\n\\r/g, \"\"), l = l.replace(/\\n|\\r|\\n\\r/g, \"\");\n\n for (var d = s.split(\", \"), c = 0; c < d.length; c++) {\n t[d[c]] = l;\n }\n }\n }\n\n return t;\n }(r);\n\n c(i, function (e) {\n if (e.nodeType == Node.TEXT_NODE && /\\n|\\u00a0|\\r/.test(e.data)) {\n if (!/\\S| /.test(e.data) && !/[\\u00a0]+/.test(e.data)) return e.data == Te.FE.UNICODE_NBSP ? (e.data = \"\\u200B\", !0) : 1 == e.data.length && 10 == e.data.charCodeAt(0) ? (e.data = \" \", !0) : (A(e), !1);\n e.data = e.data.replace(/\\n|\\r/gi, \" \");\n }\n\n return !0;\n }), c(i, function (e) {\n return e.nodeType != Node.ELEMENT_NODE || \"V:IMAGEDATA\" != e.tagName && \"IMG\" != e.tagName || function (e, t) {\n if (!t) return;\n var n;\n\n if (\"IMG\" == e.tagName) {\n var r = e.getAttribute(\"src\");\n if (!r || -1 == r.indexOf(\"file://\")) return;\n if (0 === r.indexOf(\"file://\") && T.helpers.isURL(e.getAttribute(\"alt\"))) return e.setAttribute(\"src\", e.getAttribute(\"alt\"));\n (n = h[e.getAttribute(\"v:shapes\")]) || (n = e.getAttribute(\"v:shapes\"), e.parentNode && e.parentNode.parentNode && 0 <= e.parentNode.parentNode.innerHTML.indexOf(\"msEquation\") && (n = null));\n } else n = e.parentNode.getAttribute(\"o:spid\");\n\n if (e.removeAttribute(\"height\"), !n) return;\n i = t, u = {}, f(i, \"i\", \"\\\\shppict\"), f(i, \"s\", \"\\\\shp{\");\n var i;\n var a = u[n.substring(7)];\n\n if (a) {\n var o = function (e) {\n for (var t = e.match(/[0-9a-f]{2}/gi), n = [], r = 0; r < t.length; r++) {\n n.push(String.fromCharCode(parseInt(t[r], 16)));\n }\n\n var i = n.join(\"\");\n return btoa(i);\n }(a.image_hex),\n s = \"data:\" + a.image_type + \";base64,\" + o;\n\n \"IMG\" === e.tagName ? (e.src = s, e.setAttribute(\"data-fr-image-pasted\", !0)) : Te(e.parentNode).before('').remove();\n }\n }(e, t), !0;\n });\n\n for (var a = i.querySelectorAll(\"ul > ul, ul > ol, ol > ul, ol > ol\"), o = a.length - 1; 0 <= o; o--) {\n a[o].previousElementSibling && \"LI\" === a[o].previousElementSibling.tagName && a[o].previousElementSibling.appendChild(a[o]);\n }\n\n c(i, function (t) {\n if (t.nodeType == Node.TEXT_NODE) return t.data = t.data.replace(/
(\\n|\\r)/gi, \"
\"), !1;\n\n if (t.nodeType == Node.ELEMENT_NODE) {\n if (S(t)) {\n var n = t.parentNode,\n r = t.previousSibling,\n i = function e(t, n, r) {\n t.firstElementChild.innerHTML = t.firstElementChild && t.firstElementChild.innerHTML.replace(/\\r?\\n|\\r/g, \"\");\n var i = /[0-9a-zA-Z\\\\xa7\\s]/gi;\n var a = !1;\n var o = t.querySelector('span[style=\"mso-list:Ignore\"]');\n var s;\n var l;\n var d;\n var c;\n var f;\n var p;\n var u;\n var h = navigator.userAgent.toLowerCase();\n var g;\n var m = \"\";\n var v;\n -1 != h.indexOf(\"safari\") && (h = -1 < h.indexOf(\"chrome\") ? 1 : \"safari\");\n null == o && \"safari\" == h && (o = t.querySelector('span[lang=\"PT-BR\"]'));\n o && (a = a || i.test(o.textContent));\n null !== o && (g = o.textContent.trim().split(\".\")[0]);\n 1 == a ? (\"1\" == g ? u = \"decimal;\" : \"i\" == g ? u = \"lower-roman;\" : \"I\" == g ? u = \"upper-roman;\" : \"o\" == g ? u = \"circle;\" : \"\\xa7\" == g ? u = \"square;\" : g.match(/^v$/) || (g.match(/^[a-z]$/) || g.match(/^[a-z]\\)$/) ? u = \"lower-alpha;\" : (g.match(/^[A-Z]$/) || g.match(/^[A-Z]\\)$/)) && (u = \"upper-alpha;\")), u = \"list-style-type: \" + u, p = \"ol\") : p = \"ul\";\n o == undefined || o.textContent == undefined || isNaN(parseInt(o.textContent.trim().split(\".\")[1], 10)) || (m = ' class=\"decimal_type\" ');\n var E;\n \"list-style-type: upper-alpha;\" == u ? (E = g.charCodeAt(0) - 64, v = u ? \"<\" + p + m + ' style = \"' + u + '\" start=\"' + E + '\">' : \"<\" + p + \">\") : \"list-style-type: lower-alpha;\" == u ? (E = g.charCodeAt(0) - 96, v = u ? \"<\" + p + m + ' style = \"' + u + '\" start=\"' + E + '\">' : \"<\" + p + \">\") : v = u ? \"<\" + p + m + ' style = \"' + u + '\">' : \"<\" + p + \">\";\n\n for (; t;) {\n if (!S(t)) {\n if (t.outerHTML && 0 < t.outerHTML.indexOf(\"mso-bookmark\") && 0 === (t.textContent || \"\").length) {\n t = t.nextElementSibling;\n continue;\n }\n\n break;\n }\n\n var b = t.getAttribute(\"style\").replace(/\\n/gi, \"\").replace(/.*level([0-9]+?).*/gi, \"$1\");\n if ((r = r || b) < b) f = e(t, n, b), v += f.el.outerHTML, t = f.currentNode;else {\n if (b < r) break;\n t.firstElementChild && t.firstElementChild.firstElementChild && t.firstElementChild.firstElementChild.firstChild && (i.lastIndex = 0, l = i.test(t.firstElementChild.firstElementChild.firstChild.data || t.firstElementChild.firstElementChild.firstChild.firstChild && t.firstElementChild.firstElementChild.firstChild.firstChild.data || \"\")), s && s.firstElementChild && s.firstElementChild.firstElementChild && s.firstElementChild.firstElementChild.firstChild && (i.lastIndex = 0, d = i.test(s.firstElementChild.firstElementChild.firstChild.data || s.firstElementChild.firstElementChild.firstChild.firstChild && s.firstElementChild.firstElementChild.firstChild.firstChild.data || \"\")), d === undefined || d === l ? (c = R(t, n), v += \"
  • \" + c + \"
  • \") : (f = e(t, n, b), v += f.el.outerHTML, t = f.currentNode);\n var T = t && t.nextElementSibling;\n T && (s = T.previousElementSibling), t && t.parentNode && t.parentNode.removeChild(t), t = T;\n }\n }\n\n v += \"\";\n var A = document.createElement(\"div\");\n A.innerHTML = v;\n var C = A.firstElementChild;\n return {\n el: C,\n currentNode: t\n };\n }(t, s).el,\n a = null;\n\n return (a = r ? r.nextSibling : n.firstChild) ? n.insertBefore(i, a) : n.appendChild(i), !1;\n }\n\n return \"FONT\" === t.tagName && s[\".\" + t.getAttribute(\"class\")] && (t = v(t, \"span\")), p(t, s);\n }\n\n if (t.nodeType == Node.COMMENT_NODE) {\n if (-1 < t.data.indexOf(\"[if !supportLineBreakNewLine]\")) for (var o = t.nextSibling; o;) {\n (o = t.nextSibling) && A(o), o.data && -1 < o.data.indexOf(\"[endif]\") && (o = null);\n }\n return A(t), !1;\n }\n\n return !0;\n }), c(i, function (e) {\n if (e.nodeType == Node.ELEMENT_NODE) {\n var t = e.tagName;\n\n if (!e.innerHTML && -1 == [\"BR\", \"IMG\"].indexOf(t)) {\n for (var n = e.parentNode; n && (A(e), !(e = n).innerHTML);) {\n n = e.parentNode;\n }\n\n return !1;\n }\n\n !function (e) {\n var t = e.getAttribute(\"style\");\n if (!t) return;\n (t = y(t)) && \";\" != t.slice(-1) && (t += \";\");\n var n = t.match(/(^|\\S+?):.+?;{1,1}/gi);\n if (!n) return;\n\n for (var r = {}, i = 0; i < n.length; i++) {\n var a = n[i],\n o = a.split(\":\");\n 2 == o.length && (\"text-align\" == o[0] && \"SPAN\" == e.tagName || (r[o[0]] = o[1]));\n }\n\n var s = \"\";\n\n for (var l in r) {\n if (r.hasOwnProperty(l)) {\n if (\"font-size\" == l && \"pt;\" == r[l].slice(-3)) {\n var d = null;\n\n try {\n d = parseFloat(r[l].slice(0, -3), 10);\n } catch (c) {}\n\n d && (d = Math.round(1.33 * d), r[l] = d + \"px;\");\n }\n\n s += l + \":\" + r[l];\n }\n }\n\n s && e.setAttribute(\"style\", s);\n }(e);\n }\n\n return !0;\n }), c(i, function (e) {\n if (e && \"A\" === e.nodeName && \"\" === e.href) {\n for (var t = document.createDocumentFragment(); e.firstChild;) {\n t.appendChild(e.firstChild);\n }\n\n e.parentNode.replaceChild(t, e);\n }\n\n return !0;\n });\n var l = i.outerHTML,\n d = T.opts.htmlAllowedStyleProps;\n return T.opts.htmlAllowedStyleProps = T.opts.wordAllowedStyleProps, l = T.clean.html(l, T.opts.wordDeniedTags, T.opts.wordDeniedAttrs, !1), T.opts.htmlAllowedStyleProps = d, l;\n }(r = r.replace(/([\\r\\n\\u00a0 ]*)<\\/span>/g, function (e, t) {\n for (var n = \"\", r = 0; r++ < t.length;) {\n n += \" \";\n }\n\n return n;\n }), T.paste.getRtfClipboard());\n var n = T.doc.createElement(\"DIV\");\n n.innerHTML = r, T.html.cleanBlankSpaces(n), r = n.innerHTML, r = (r = T.paste.cleanEmptyTagsAndDivs(r)).replace(/\\u200b/g, \"\"), T.modals.hide(o), T.paste.clean(r, !0, !0, !0), T.opts.wordAllowedStyleProps = t;\n }\n\n function A(e) {\n e.parentNode && e.parentNode.removeChild(e);\n }\n\n function c(e, t) {\n if (t(e)) for (var n = e.firstChild; n;) {\n var r = n,\n i = n.previousSibling;\n n = n.nextSibling, c(r, t), r.previousSibling || r.nextSibling || r.parentNode || !n || i == n.previousSibling || !n.parentNode ? r.previousSibling || r.nextSibling || r.parentNode || !n || n.previousSibling || n.nextSibling || n.parentNode || (i ? n = i.nextSibling ? i.nextSibling.nextSibling : null : e.firstChild && (n = e.firstChild.nextSibling)) : n = i ? i.nextSibling : e.firstChild;\n }\n }\n\n function S(e) {\n if (!e.getAttribute(\"style\") || !/mso-list:[\\s]*l/gi.test(e.getAttribute(\"style\").replace(/\\n/gi, \"\"))) return !1;\n\n try {\n if (!e.querySelector('[style=\"mso-list:Ignore\"]')) return !!(e.outerHTML && 0 <= e.outerHTML.indexOf(\"\\x3c!--[if !supportLists]--\\x3e\"));\n } catch (t) {\n return !1;\n }\n\n return !0;\n }\n\n function R(e, i) {\n var t = e.cloneNode(!0);\n\n if (-1 != [\"H1\", \"H2\", \"H3\", \"H4\", \"H5\", \"H6\"].indexOf(e.tagName)) {\n var n = document.createElement(e.tagName.toLowerCase());\n n.setAttribute(\"style\", e.getAttribute(\"style\")), n.innerHTML = t.innerHTML, t.innerHTML = n.outerHTML;\n }\n\n c(t, function (e) {\n if (e.nodeType == Node.COMMENT_NODE && (T.browser.msie || T.browser.safari || T.browser.edge)) try {\n if (\"[if !supportLists]\" === e.data) {\n for (e = e.nextSibling; e && e.nodeType !== Node.COMMENT_NODE;) {\n var t = e.nextSibling;\n e.parentNode.removeChild(e), e = t;\n }\n\n e && e.nodeType == Node.COMMENT_NODE && e.parentNode.removeChild(e);\n }\n } catch (r) {}\n\n if (e.nodeType == Node.ELEMENT_NODE) {\n var n = e.getAttribute(\"style\");\n n && \"mso-list:Ignore\" == n.replace(/\\r?\\n|\\r/g, \"\") && e.parentNode.removeChild(e), e.setAttribute(\"style\", function (e) {\n var n = \"\",\n r = e.getAttribute(\"style\");\n r && [\"line-height\", \"font-family\", \"font-size\", \"color\", \"background\"].forEach(function (e) {\n var t = r.match(new RegExp(e + \":.*;\"));\n t && (n += t[0] + \";\");\n });\n return n;\n }(e)), p(e, i);\n }\n\n return !0;\n });\n var r = t.innerHTML;\n return r = r.replace(//gi, \"\");\n }\n\n function v(e, t) {\n for (var n = document.createElement(t), r = 0; r < e.attributes.length; r++) {\n var i = e.attributes[r].name;\n n.setAttribute(i, e.getAttribute(i));\n }\n\n return n.innerHTML = e.innerHTML, e.parentNode.replaceChild(n, e), n;\n }\n\n function C(e) {\n var t = e.getAttribute(\"align\");\n t && (e.style[\"text-align\"] = t, e.removeAttribute(\"align\"));\n }\n\n function y(e) {\n return e.replace(/\\n|\\r|\\n\\r|"/g, \"\");\n }\n\n function L(e, t, n) {\n if (t) {\n var r = e.getAttribute(\"style\");\n r && \";\" != r.slice(-1) && (r += \";\"), t && \";\" != t.slice(-1) && (t += \";\"), t = t.replace(/\\n/gi, \"\");\n var i = null;\n i = n ? (r || \"\") + t : t + (r || \"\"), e.setAttribute(\"style\", i);\n }\n }\n\n var u = null;\n\n function f(e, t, n) {\n for (var r = e.split(n), i = 1; i < r.length; i++) {\n var a = r[i];\n\n if (1 < (a = a.split(\"shplid\")).length) {\n a = a[1];\n\n for (var o = \"\", s = 0; s < a.length && \"\\\\\" != a[s] && \"{\" != a[s] && \" \" != a[s] && \"\\r\" != a[s] && \"\\n\" != a[s];) {\n o += a[s], s++;\n }\n\n var l = a.split(\"bliptag\");\n if (l && l.length < 2) continue;\n var d = null;\n if (-1 != l[0].indexOf(\"pngblip\") ? d = \"image/png\" : -1 != l[0].indexOf(\"jpegblip\") && (d = \"image/jpeg\"), !d) continue;\n var c,\n f = l[1].split(\"}\");\n if (f && f.length < 2) continue;\n if (2 < f.length && -1 != f[0].indexOf(\"blipuid\")) c = f[1].split(\" \");else {\n if ((c = f[0].split(\" \")) && c.length < 2) continue;\n c.shift();\n }\n var p = c.join(\"\");\n u[t + o] = {\n image_hex: p,\n image_type: d\n };\n }\n }\n }\n\n function p(e, t) {\n var n = e.tagName,\n r = n.toLowerCase();\n e.firstElementChild && (\"I\" == e.firstElementChild.tagName ? v(e.firstElementChild, \"em\") : \"B\" == e.firstElementChild.tagName && v(e.firstElementChild, \"strong\"));\n if (-1 != [\"SCRIPT\", \"APPLET\", \"EMBED\", \"NOFRAMES\", \"NOSCRIPT\"].indexOf(n)) return A(e), !1;\n var i = -1,\n a = [\"META\", \"LINK\", \"XML\", \"ST1:\", \"O:\", \"W:\", \"FONT\"];\n\n for (i = 0; i < a.length; i++) {\n if (-1 != n.indexOf(a[i])) return e.innerHTML && (e.outerHTML = e.innerHTML), A(e), !1;\n }\n\n if (\"TD\" != n) {\n var o = e.getAttribute(\"class\") || \"MsoNormal\";\n\n if (t && o) {\n var s = (o = y(o)).split(\" \");\n\n for (i = 0; i < s.length; i++) {\n var l = [],\n d = \".\" + s[i];\n l.push(d), d = r + d, l.push(d);\n\n for (var c = 0; c < l.length; c++) {\n t[l[c]] && L(e, t[l[c]]);\n }\n }\n\n e.removeAttribute(\"class\");\n }\n\n t && t[r] && L(e, t[r]);\n }\n\n if (-1 != [\"P\", \"H1\", \"H2\", \"H3\", \"H4\", \"H5\", \"H6\", \"PRE\"].indexOf(n)) {\n var f = e.getAttribute(\"class\");\n\n if (f && (t && t[n.toLowerCase() + \".\" + f] && L(e, t[n.toLowerCase() + \".\" + f]), -1 != f.toLowerCase().indexOf(\"mso\"))) {\n var p = y(f);\n (p = p.replace(/[0-9a-z-_]*mso[0-9a-z-_]*/gi, \"\")) ? e.setAttribute(\"class\", p) : e.removeAttribute(\"class\");\n }\n\n var u = e.getAttribute(\"style\");\n\n if (u) {\n var h = u.match(/text-align:.+?[; \"]{1,1}/gi);\n h && h[h.length - 1].replace(/(text-align:.+?[; \"]{1,1})/gi, \"$1\");\n }\n\n C(e);\n }\n\n if (\"TR\" == n && function (e, t) {\n T.node.clearAttributes(e);\n\n for (var n = e.firstElementChild, r = 0, i = !1, a = null; n;) {\n n.firstElementChild && -1 != n.firstElementChild.tagName.indexOf(\"W:\") && (n.innerHTML = n.firstElementChild.innerHTML), (a = n.getAttribute(\"width\")) || i || (i = !0), r += parseInt(a, 10), (!n.firstChild || n.firstChild && n.firstChild.data == Te.FE.UNICODE_NBSP) && (n.firstChild && A(n.firstChild), n.innerHTML = \"
    \");\n\n for (var o = n.firstElementChild, s = 1 == n.children.length; o;) {\n \"P\" != o.tagName || S(o) || s && C(o), o = o.nextElementSibling;\n }\n\n if (t) {\n var l = n.getAttribute(\"class\");\n\n if (l) {\n var d = (l = y(l)).match(/xl[0-9]+/gi);\n\n if (d) {\n var c = \".\" + d[0];\n t[c] && (\"TD\" === n.tagName && (t[c] = t[c].replace(/(border[^:]*:)(\\d*\\.\\d*)(pt)/g, function (e, t, n, r) {\n return [t, Math.round(2 * parseFloat(n)), r].join(\"\");\n })), L(n, t[c]));\n }\n }\n\n t.td && L(n, t.td);\n }\n\n var f = n.getAttribute(\"style\");\n f && (f = y(f)) && \";\" != f.slice(-1) && (f += \";\");\n var p = n.getAttribute(\"valign\");\n\n if (!p && f) {\n var u = f.match(/vertical-align:.+?[; \"]{1,1}/gi);\n u && (p = u[u.length - 1].replace(/vertical-align:(.+?)[; \"]{1,1}/gi, \"$1\"));\n }\n\n var h = null;\n\n if (f) {\n var g = f.match(/text-align:.+?[; \"]{1,1}/gi);\n g && (h = g[g.length - 1].replace(/text-align:(.+?)[; \"]{1,1}/gi, \"$1\")), \"general\" == h && (h = null);\n }\n\n var m = null;\n\n if (f) {\n var v = f.match(/background:.+?[; \"]{1,1}/gi);\n v && (m = v[v.length - 1].replace(/background:(.+?)[; \"]{1,1}/gi, \"$1\"));\n }\n\n var E = n.getAttribute(\"colspan\"),\n b = n.getAttribute(\"rowspan\");\n E && n.setAttribute(\"colspan\", E), b && n.setAttribute(\"rowspan\", b), p && (n.style[\"vertical-align\"] = p), h && (n.style[\"text-align\"] = h), m && (n.style[\"background-color\"] = m), a && n.setAttribute(\"width\", a), n = n.nextElementSibling;\n }\n\n for (n = e.firstElementChild; n;) {\n a = n.getAttribute(\"width\"), i ? n.removeAttribute(\"width\") : n.setAttribute(\"width\", 100 * parseInt(a, 10) / r + \"%\"), n = n.nextElementSibling;\n }\n }(e, t), \"A\" != n || e.attributes.getNamedItem(\"href\") || e.attributes.getNamedItem(\"name\") || !e.innerHTML || (e.outerHTML = e.innerHTML), \"A\" == n && e.getAttribute(\"href\") && e.querySelector(\"img\")) {\n var g = e.querySelectorAll(\"span\");\n\n for (i = 0; i < g.length; i++) {\n g[i].innerText || (g[i].outerHTML = g[i].innerHTML);\n }\n }\n\n if (\"TD\" != n && \"TH\" != n || e.innerHTML || (e.innerHTML = \"
    \"), \"TABLE\" == n && (e.style.width = e.style.width), e.getAttribute(\"lang\") && e.removeAttribute(\"lang\"), e.getAttribute(\"style\") && -1 != e.getAttribute(\"style\").toLowerCase().indexOf(\"mso\")) {\n var m = y(e.getAttribute(\"style\"));\n (m = m.replace(/[0-9a-z-_]*mso[0-9a-z-_]*:.+?(;{1,1}|$)/gi, \"\")) ? e.setAttribute(\"style\", m) : e.removeAttribute(\"style\");\n }\n\n return !0;\n }\n\n var h = {};\n return {\n _init: function _init() {\n T.events.on(\"paste.wordPaste\", function (e) {\n return r = e, T.opts.wordPasteModal ? function () {\n if (!a) {\n var e = '

    ' + T.language.translate(\"Word Paste Detected\") + \"

    \",\n t = (i = '
    ', i += '

    ' + T.language.translate(\"The pasted content is coming from a Microsoft Word document. Do you want to keep the format or clean it up?\") + \"

    \", i += '
    \", i += \"
    \"),\n n = T.modals.create(o, e, t),\n r = n.$body;\n a = n.$modal, n.$modal.addClass(\"fr-middle\"), T.events.bindClick(r, \"button.fr-remove-word\", function () {\n var e = a.data(\"instance\") || T;\n e.wordPaste.clean();\n }), T.events.bindClick(r, \"button.fr-keep-word\", function () {\n var e = a.data(\"instance\") || T;\n e.wordPaste.clean(!0);\n }), T.events.$on(Te(T.o_win), \"resize\", function () {\n T.modals.resize(o);\n });\n }\n\n var i;\n T.modals.show(o), T.modals.resize(o);\n }() : t(T.opts.wordPasteKeepFormatting), !1;\n });\n },\n clean: t\n };\n };\n});","'use strict';\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n\n var args = slice.call(arguments, 1);\n var bound;\n\n var binder = function binder() {\n if (this instanceof bound) {\n var result = target.apply(this, args.concat(slice.call(arguments)));\n\n if (Object(result) === result) {\n return result;\n }\n\n return this;\n } else {\n return target.apply(that, args.concat(slice.call(arguments)));\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;","'use strict';\n\nvar functionsHaveNames = function functionsHaveNames() {\n return typeof function f() {}.name === 'string';\n};\n\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nif (gOPD) {\n try {\n gOPD([], 'length');\n } catch (e) {\n // IE 8 has a broken gOPD\n gOPD = null;\n }\n}\n\nfunctionsHaveNames.functionsHaveConfigurableNames = function functionsHaveConfigurableNames() {\n if (!functionsHaveNames() || !gOPD) {\n return false;\n }\n\n var desc = gOPD(function () {}, 'name');\n return !!desc && !!desc.configurable;\n};\n\nvar $bind = Function.prototype.bind;\n\nfunctionsHaveNames.boundFunctionsHaveNames = function boundFunctionsHaveNames() {\n return functionsHaveNames() && typeof $bind === 'function' && function f() {}.bind().name !== '';\n};\n\nmodule.exports = functionsHaveNames;","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar undefined;\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError; // eslint-disable-next-line consistent-return\n\nvar getEvalledConstructor = function getEvalledConstructor(expressionSyntax) {\n try {\n return $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n } catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\n\nif ($gOPD) {\n try {\n $gOPD({}, '');\n } catch (e) {\n $gOPD = null; // this is IE 8, which has a broken gOPD\n }\n}\n\nvar throwTypeError = function throwTypeError() {\n throw new $TypeError();\n};\n\nvar ThrowTypeError = $gOPD ? function () {\n try {\n // eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n arguments.callee; // IE 8 does not throw here\n\n return throwTypeError;\n } catch (calleeThrows) {\n try {\n // IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n return $gOPD(arguments, 'callee').get;\n } catch (gOPDthrows) {\n return throwTypeError;\n }\n }\n}() : throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) {\n return x.__proto__;\n}; // eslint-disable-line no-proto\n\n\nvar needsEval = {};\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\nvar INTRINSICS = {\n '%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n '%Array%': Array,\n '%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n '%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n '%AsyncFromSyncIteratorPrototype%': undefined,\n '%AsyncFunction%': needsEval,\n '%AsyncGenerator%': needsEval,\n '%AsyncGeneratorFunction%': needsEval,\n '%AsyncIteratorPrototype%': needsEval,\n '%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n '%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n '%Boolean%': Boolean,\n '%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n '%Date%': Date,\n '%decodeURI%': decodeURI,\n '%decodeURIComponent%': decodeURIComponent,\n '%encodeURI%': encodeURI,\n '%encodeURIComponent%': encodeURIComponent,\n '%Error%': Error,\n '%eval%': eval,\n // eslint-disable-line no-eval\n '%EvalError%': EvalError,\n '%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n '%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n '%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n '%Function%': $Function,\n '%GeneratorFunction%': needsEval,\n '%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n '%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n '%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n '%isFinite%': isFinite,\n '%isNaN%': isNaN,\n '%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n '%JSON%': (typeof JSON === \"undefined\" ? \"undefined\" : _typeof(JSON)) === 'object' ? JSON : undefined,\n '%Map%': typeof Map === 'undefined' ? undefined : Map,\n '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n '%Math%': Math,\n '%Number%': Number,\n '%Object%': Object,\n '%parseFloat%': parseFloat,\n '%parseInt%': parseInt,\n '%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n '%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n '%RangeError%': RangeError,\n '%ReferenceError%': ReferenceError,\n '%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n '%RegExp%': RegExp,\n '%Set%': typeof Set === 'undefined' ? undefined : Set,\n '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n '%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n '%String%': String,\n '%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n '%Symbol%': hasSymbols ? Symbol : undefined,\n '%SyntaxError%': $SyntaxError,\n '%ThrowTypeError%': ThrowTypeError,\n '%TypedArray%': TypedArray,\n '%TypeError%': $TypeError,\n '%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n '%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n '%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n '%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n '%URIError%': URIError,\n '%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n '%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n '%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar doEval = function doEval(name) {\n var value;\n\n if (name === '%AsyncFunction%') {\n value = getEvalledConstructor('async function () {}');\n } else if (name === '%GeneratorFunction%') {\n value = getEvalledConstructor('function* () {}');\n } else if (name === '%AsyncGeneratorFunction%') {\n value = getEvalledConstructor('async function* () {}');\n } else if (name === '%AsyncGenerator%') {\n var fn = doEval('%AsyncGeneratorFunction%');\n\n if (fn) {\n value = fn.prototype;\n }\n } else if (name === '%AsyncIteratorPrototype%') {\n var gen = doEval('%AsyncGenerator%');\n\n if (gen) {\n value = getProto(gen.prototype);\n }\n }\n\n INTRINSICS[name] = value;\n return value;\n};\n\nvar LEGACY_ALIASES = {\n '%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n '%ArrayPrototype%': ['Array', 'prototype'],\n '%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n '%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n '%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n '%ArrayProto_values%': ['Array', 'prototype', 'values'],\n '%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n '%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n '%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n '%BooleanPrototype%': ['Boolean', 'prototype'],\n '%DataViewPrototype%': ['DataView', 'prototype'],\n '%DatePrototype%': ['Date', 'prototype'],\n '%ErrorPrototype%': ['Error', 'prototype'],\n '%EvalErrorPrototype%': ['EvalError', 'prototype'],\n '%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n '%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n '%FunctionPrototype%': ['Function', 'prototype'],\n '%Generator%': ['GeneratorFunction', 'prototype'],\n '%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n '%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n '%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n '%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n '%JSONParse%': ['JSON', 'parse'],\n '%JSONStringify%': ['JSON', 'stringify'],\n '%MapPrototype%': ['Map', 'prototype'],\n '%NumberPrototype%': ['Number', 'prototype'],\n '%ObjectPrototype%': ['Object', 'prototype'],\n '%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n '%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n '%PromisePrototype%': ['Promise', 'prototype'],\n '%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n '%Promise_all%': ['Promise', 'all'],\n '%Promise_reject%': ['Promise', 'reject'],\n '%Promise_resolve%': ['Promise', 'resolve'],\n '%RangeErrorPrototype%': ['RangeError', 'prototype'],\n '%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n '%RegExpPrototype%': ['RegExp', 'prototype'],\n '%SetPrototype%': ['Set', 'prototype'],\n '%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n '%StringPrototype%': ['String', 'prototype'],\n '%SymbolPrototype%': ['Symbol', 'prototype'],\n '%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n '%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n '%TypeErrorPrototype%': ['TypeError', 'prototype'],\n '%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n '%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n '%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n '%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n '%URIErrorPrototype%': ['URIError', 'prototype'],\n '%WeakMapPrototype%': ['WeakMap', 'prototype'],\n '%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\n\nvar hasOwn = require('has');\n\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\n\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g;\n/** Used to match backslashes in property paths. */\n\nvar stringToPath = function stringToPath(string) {\n var first = $strSlice(string, 0, 1);\n var last = $strSlice(string, -1);\n\n if (first === '%' && last !== '%') {\n throw new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n } else if (last === '%' && first !== '%') {\n throw new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n }\n\n var result = [];\n $replace(string, rePropName, function (match, number, quote, subString) {\n result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n });\n return result;\n};\n/* end adaptation */\n\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n var intrinsicName = name;\n var alias;\n\n if (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n alias = LEGACY_ALIASES[intrinsicName];\n intrinsicName = '%' + alias[0] + '%';\n }\n\n if (hasOwn(INTRINSICS, intrinsicName)) {\n var value = INTRINSICS[intrinsicName];\n\n if (value === needsEval) {\n value = doEval(intrinsicName);\n }\n\n if (typeof value === 'undefined' && !allowMissing) {\n throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n }\n\n return {\n alias: alias,\n name: intrinsicName,\n value: value\n };\n }\n\n throw new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n if (typeof name !== 'string' || name.length === 0) {\n throw new $TypeError('intrinsic name must be a non-empty string');\n }\n\n if (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n throw new $TypeError('\"allowMissing\" argument must be a boolean');\n }\n\n var parts = stringToPath(name);\n var intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n var intrinsicRealName = intrinsic.name;\n var value = intrinsic.value;\n var skipFurtherCaching = false;\n var alias = intrinsic.alias;\n\n if (alias) {\n intrinsicBaseName = alias[0];\n $spliceApply(parts, $concat([0, 1], alias));\n }\n\n for (var i = 1, isOwn = true; i < parts.length; i += 1) {\n var part = parts[i];\n var first = $strSlice(part, 0, 1);\n var last = $strSlice(part, -1);\n\n if ((first === '\"' || first === \"'\" || first === '`' || last === '\"' || last === \"'\" || last === '`') && first !== last) {\n throw new $SyntaxError('property names with quotes must have matching quotes');\n }\n\n if (part === 'constructor' || !isOwn) {\n skipFurtherCaching = true;\n }\n\n intrinsicBaseName += '.' + part;\n intrinsicRealName = '%' + intrinsicBaseName + '%';\n\n if (hasOwn(INTRINSICS, intrinsicRealName)) {\n value = INTRINSICS[intrinsicRealName];\n } else if (value != null) {\n if (!(part in value)) {\n if (!allowMissing) {\n throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n }\n\n return void undefined;\n }\n\n if ($gOPD && i + 1 >= parts.length) {\n var desc = $gOPD(value, part);\n isOwn = !!desc; // By convention, when a data property is converted to an accessor\n // property to emulate a data property that does not suffer from\n // the override mistake, that accessor's getter is marked with\n // an `originalValue` property. Here, when we detect this, we\n // uphold the illusion by pretending to see that original data\n // property, i.e., returning the value rather than the getter\n // itself.\n\n if (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n value = desc.get;\n } else {\n value = value[part];\n }\n } else {\n isOwn = hasOwn(value, part);\n value = value[part];\n }\n\n if (isOwn && !skipFurtherCaching) {\n INTRINSICS[intrinsicRealName] = value;\n }\n }\n }\n\n return value;\n};","// @flow\n'use strict';\n\nvar key = '__global_unique_id__';\n\nmodule.exports = function () {\n return global[key] = (global[key] || 0) + 1;\n};","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n if ($defineProperty) {\n try {\n $defineProperty({}, 'a', {\n value: 1\n });\n return true;\n } catch (e) {\n // IE 8 has a broken defineProperty\n return false;\n }\n }\n\n return false;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n // node v0.6 has a bug where array lengths can be Set but not Defined\n if (!hasPropertyDescriptors()) {\n return null;\n }\n\n try {\n return $defineProperty([], 'length', {\n value: 1\n }).length !== 1;\n } catch (e) {\n // In Firefox 4-22, defining length on an array throws an exception.\n return true;\n }\n};\n\nmodule.exports = hasPropertyDescriptors;","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\n\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n if (typeof origSymbol !== 'function') {\n return false;\n }\n\n if (typeof Symbol !== 'function') {\n return false;\n }\n\n if (_typeof(origSymbol('foo')) !== 'symbol') {\n return false;\n }\n\n if (_typeof(Symbol('bar')) !== 'symbol') {\n return false;\n }\n\n return hasSymbolSham();\n};","'use strict';\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nmodule.exports = function hasSymbols() {\n if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') {\n return false;\n }\n\n if (_typeof(Symbol.iterator) === 'symbol') {\n return true;\n }\n\n var obj = {};\n var sym = Symbol('test');\n var symObj = Object(sym);\n\n if (typeof sym === 'string') {\n return false;\n }\n\n if (Object.prototype.toString.call(sym) !== '[object Symbol]') {\n return false;\n }\n\n if (Object.prototype.toString.call(symObj) !== '[object Symbol]') {\n return false;\n } // temp disabled per https://github.com/ljharb/object.assign/issues/17\n // if (sym instanceof Symbol) { return false; }\n // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n // if (!(symObj instanceof Symbol)) { return false; }\n // if (typeof Symbol.prototype.toString !== 'function') { return false; }\n // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\n var symVal = 42;\n obj[sym] = symVal;\n\n for (sym in obj) {\n return false;\n } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\n\n if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) {\n return false;\n }\n\n if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) {\n return false;\n }\n\n var syms = Object.getOwnPropertySymbols(obj);\n\n if (syms.length !== 1 || syms[0] !== sym) {\n return false;\n }\n\n if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) {\n return false;\n }\n\n if (typeof Object.getOwnPropertyDescriptor === 'function') {\n var descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\n if (descriptor.value !== symVal || descriptor.enumerable !== true) {\n return false;\n }\n }\n\n return true;\n};","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\nmodule.exports = function hasToStringTagShams() {\n return hasSymbols() && !!Symbol.toStringTag;\n};","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n if (hasToStringTag && value && _typeof(value) === 'object' && Symbol.toStringTag in value) {\n return false;\n }\n\n return $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n if (isStandardArguments(value)) {\n return true;\n }\n\n return value !== null && _typeof(value) === 'object' && typeof value.length === 'number' && value.length >= 0 && $toString(value) !== '[object Array]' && $toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = function () {\n return isStandardArguments(arguments);\n}();\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar getDay = Date.prototype.getDay;\n\nvar tryDateObject = function tryDateGetDayCall(value) {\n try {\n getDay.call(value);\n return true;\n } catch (e) {\n return false;\n }\n};\n\nvar toStr = Object.prototype.toString;\nvar dateClass = '[object Date]';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nmodule.exports = function isDateObject(value) {\n if (_typeof(value) !== 'object' || value === null) {\n return false;\n }\n\n return hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;\n};","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar callBound = require('call-bind/callBound');\n\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar has;\nvar $exec;\nvar isRegexMarker;\nvar badStringifier;\n\nif (hasToStringTag) {\n has = callBound('Object.prototype.hasOwnProperty');\n $exec = callBound('RegExp.prototype.exec');\n isRegexMarker = {};\n\n var throwRegexMarker = function throwRegexMarker() {\n throw isRegexMarker;\n };\n\n badStringifier = {\n toString: throwRegexMarker,\n valueOf: throwRegexMarker\n };\n\n if (_typeof(Symbol.toPrimitive) === 'symbol') {\n badStringifier[Symbol.toPrimitive] = throwRegexMarker;\n }\n}\n\nvar $toString = callBound('Object.prototype.toString');\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar regexClass = '[object RegExp]';\nmodule.exports = hasToStringTag // eslint-disable-next-line consistent-return\n? function isRegex(value) {\n if (!value || _typeof(value) !== 'object') {\n return false;\n }\n\n var descriptor = gOPD(value, 'lastIndex');\n var hasLastIndexDataProperty = descriptor && has(descriptor, 'value');\n\n if (!hasLastIndexDataProperty) {\n return false;\n }\n\n try {\n $exec(value, badStringifier);\n } catch (e) {\n return e === isRegexMarker;\n }\n} : function isRegex(value) {\n // In older browsers, typeof regex incorrectly returns 'function'\n if (!value || _typeof(value) !== 'object' && typeof value !== 'function') {\n return false;\n }\n\n return $toString(value) === regexClass;\n};","// the whatwg-fetch polyfill installs the fetch() function\n// on the global object (window or self)\n//\n// Return that as the export for use in Webpack, Browserify etc.\nrequire('whatwg-fetch');\n\nmodule.exports = self.fetch.bind(self);","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/*!\n * jQuery JavaScript Library v3.6.0\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2021-03-02T17:08Z\n */\n(function (global, factory) {\n \"use strict\";\n\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && _typeof(module.exports) === \"object\") {\n // For CommonJS and CommonJS-like environments where a proper `window`\n // is present, execute the factory and get jQuery.\n // For environments that do not have a `window` with a `document`\n // (such as Node.js), expose a factory as module.exports.\n // This accentuates the need for the creation of a real `window`.\n // e.g. var jQuery = require(\"jquery\")(window);\n // See ticket #14549 for more info.\n module.exports = global.document ? factory(global, true) : function (w) {\n if (!w.document) {\n throw new Error(\"jQuery requires a window with a document\");\n }\n\n return factory(w);\n };\n } else {\n factory(global);\n } // Pass this if window is not defined yet\n\n})(typeof window !== \"undefined\" ? window : this, function (window, noGlobal) {\n // Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n // throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n // arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n // enough that all such attempts are guarded in a try block.\n \"use strict\";\n\n var arr = [];\n var getProto = Object.getPrototypeOf;\n var _slice = arr.slice;\n var flat = arr.flat ? function (array) {\n return arr.flat.call(array);\n } : function (array) {\n return arr.concat.apply([], array);\n };\n var push = arr.push;\n var indexOf = arr.indexOf;\n var class2type = {};\n var toString = class2type.toString;\n var hasOwn = class2type.hasOwnProperty;\n var fnToString = hasOwn.toString;\n var ObjectFunctionString = fnToString.call(Object);\n var support = {};\n\n var isFunction = function isFunction(obj) {\n // Support: Chrome <=57, Firefox <=52\n // In some browsers, typeof returns \"function\" for HTML elements\n // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n // We don't want to classify *any* DOM node as a function.\n // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n // Plus for old WebKit, typeof returns \"function\" for HTML collections\n // (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\" && typeof obj.item !== \"function\";\n };\n\n var isWindow = function isWindow(obj) {\n return obj != null && obj === obj.window;\n };\n\n var document = window.document;\n var preservedScriptAttributes = {\n type: true,\n src: true,\n nonce: true,\n noModule: true\n };\n\n function DOMEval(code, node, doc) {\n doc = doc || document;\n var i,\n val,\n script = doc.createElement(\"script\");\n script.text = code;\n\n if (node) {\n for (i in preservedScriptAttributes) {\n // Support: Firefox 64+, Edge 18+\n // Some browsers don't support the \"nonce\" property on scripts.\n // On the other hand, just using `getAttribute` is not enough as\n // the `nonce` attribute is reset to an empty string whenever it\n // becomes browsing-context connected.\n // See https://github.com/whatwg/html/issues/2369\n // See https://html.spec.whatwg.org/#nonce-attributes\n // The `node.getAttribute` check was added for the sake of\n // `jQuery.globalEval` so that it can fake a nonce-containing node\n // via an object.\n val = node[i] || node.getAttribute && node.getAttribute(i);\n\n if (val) {\n script.setAttribute(i, val);\n }\n }\n }\n\n doc.head.appendChild(script).parentNode.removeChild(script);\n }\n\n function toType(obj) {\n if (obj == null) {\n return obj + \"\";\n } // Support: Android <=2.3 only (functionish RegExp)\n\n\n return _typeof(obj) === \"object\" || typeof obj === \"function\" ? class2type[toString.call(obj)] || \"object\" : _typeof(obj);\n }\n /* global Symbol */\n // Defining this global in .eslintrc.json would create a danger of using the global\n // unguarded in another place, it seems safer to define global only for this module\n\n\n var version = \"3.6.0\",\n // Define a local copy of jQuery\n jQuery = function jQuery(selector, context) {\n // The jQuery object is actually just the init constructor 'enhanced'\n // Need init if jQuery is called (just allow error to be thrown if not included)\n return new jQuery.fn.init(selector, context);\n };\n\n jQuery.fn = jQuery.prototype = {\n // The current version of jQuery being used\n jquery: version,\n constructor: jQuery,\n // The default length of a jQuery object is 0\n length: 0,\n toArray: function toArray() {\n return _slice.call(this);\n },\n // Get the Nth element in the matched element set OR\n // Get the whole matched element set as a clean array\n get: function get(num) {\n // Return all the elements in a clean array\n if (num == null) {\n return _slice.call(this);\n } // Return just the one element from the set\n\n\n return num < 0 ? this[num + this.length] : this[num];\n },\n // Take an array of elements and push it onto the stack\n // (returning the new matched element set)\n pushStack: function pushStack(elems) {\n // Build a new jQuery matched element set\n var ret = jQuery.merge(this.constructor(), elems); // Add the old object onto the stack (as a reference)\n\n ret.prevObject = this; // Return the newly-formed element set\n\n return ret;\n },\n // Execute a callback for every element in the matched set.\n each: function each(callback) {\n return jQuery.each(this, callback);\n },\n map: function map(callback) {\n return this.pushStack(jQuery.map(this, function (elem, i) {\n return callback.call(elem, i, elem);\n }));\n },\n slice: function slice() {\n return this.pushStack(_slice.apply(this, arguments));\n },\n first: function first() {\n return this.eq(0);\n },\n last: function last() {\n return this.eq(-1);\n },\n even: function even() {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return (i + 1) % 2;\n }));\n },\n odd: function odd() {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return i % 2;\n }));\n },\n eq: function eq(i) {\n var len = this.length,\n j = +i + (i < 0 ? len : 0);\n return this.pushStack(j >= 0 && j < len ? [this[j]] : []);\n },\n end: function end() {\n return this.prevObject || this.constructor();\n },\n // For internal use only.\n // Behaves like an Array's method, not like a jQuery method.\n push: push,\n sort: arr.sort,\n splice: arr.splice\n };\n\n jQuery.extend = jQuery.fn.extend = function () {\n var options,\n name,\n src,\n copy,\n copyIsArray,\n clone,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length,\n deep = false; // Handle a deep copy situation\n\n if (typeof target === \"boolean\") {\n deep = target; // Skip the boolean and the target\n\n target = arguments[i] || {};\n i++;\n } // Handle case when target is a string or something (possible in deep copy)\n\n\n if (_typeof(target) !== \"object\" && !isFunction(target)) {\n target = {};\n } // Extend jQuery itself if only one argument is passed\n\n\n if (i === length) {\n target = this;\n i--;\n }\n\n for (; i < length; i++) {\n // Only deal with non-null/undefined values\n if ((options = arguments[i]) != null) {\n // Extend the base object\n for (name in options) {\n copy = options[name]; // Prevent Object.prototype pollution\n // Prevent never-ending loop\n\n if (name === \"__proto__\" || target === copy) {\n continue;\n } // Recurse if we're merging plain objects or arrays\n\n\n if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) {\n src = target[name]; // Ensure proper type for the source value\n\n if (copyIsArray && !Array.isArray(src)) {\n clone = [];\n } else if (!copyIsArray && !jQuery.isPlainObject(src)) {\n clone = {};\n } else {\n clone = src;\n }\n\n copyIsArray = false; // Never move original objects, clone them\n\n target[name] = jQuery.extend(deep, clone, copy); // Don't bring in undefined values\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n } // Return the modified object\n\n\n return target;\n };\n\n jQuery.extend({\n // Unique for each copy of jQuery on the page\n expando: \"jQuery\" + (version + Math.random()).replace(/\\D/g, \"\"),\n // Assume jQuery is ready without the ready module\n isReady: true,\n error: function error(msg) {\n throw new Error(msg);\n },\n noop: function noop() {},\n isPlainObject: function isPlainObject(obj) {\n var proto, Ctor; // Detect obvious negatives\n // Use toString instead of jQuery.type to catch host objects\n\n if (!obj || toString.call(obj) !== \"[object Object]\") {\n return false;\n }\n\n proto = getProto(obj); // Objects with no prototype (e.g., `Object.create( null )`) are plain\n\n if (!proto) {\n return true;\n } // Objects with prototype are plain iff they were constructed by a global Object function\n\n\n Ctor = hasOwn.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && fnToString.call(Ctor) === ObjectFunctionString;\n },\n isEmptyObject: function isEmptyObject(obj) {\n var name;\n\n for (name in obj) {\n return false;\n }\n\n return true;\n },\n // Evaluates a script in a provided context; falls back to the global one\n // if not specified.\n globalEval: function globalEval(code, options, doc) {\n DOMEval(code, {\n nonce: options && options.nonce\n }, doc);\n },\n each: function each(obj, callback) {\n var length,\n i = 0;\n\n if (isArrayLike(obj)) {\n length = obj.length;\n\n for (; i < length; i++) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n } else {\n for (i in obj) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n }\n\n return obj;\n },\n // results is for internal usage only\n makeArray: function makeArray(arr, results) {\n var ret = results || [];\n\n if (arr != null) {\n if (isArrayLike(Object(arr))) {\n jQuery.merge(ret, typeof arr === \"string\" ? [arr] : arr);\n } else {\n push.call(ret, arr);\n }\n }\n\n return ret;\n },\n inArray: function inArray(elem, arr, i) {\n return arr == null ? -1 : indexOf.call(arr, elem, i);\n },\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n merge: function merge(first, second) {\n var len = +second.length,\n j = 0,\n i = first.length;\n\n for (; j < len; j++) {\n first[i++] = second[j];\n }\n\n first.length = i;\n return first;\n },\n grep: function grep(elems, callback, invert) {\n var callbackInverse,\n matches = [],\n i = 0,\n length = elems.length,\n callbackExpect = !invert; // Go through the array, only saving the items\n // that pass the validator function\n\n for (; i < length; i++) {\n callbackInverse = !callback(elems[i], i);\n\n if (callbackInverse !== callbackExpect) {\n matches.push(elems[i]);\n }\n }\n\n return matches;\n },\n // arg is for internal usage only\n map: function map(elems, callback, arg) {\n var length,\n value,\n i = 0,\n ret = []; // Go through the array, translating each of the items to their new values\n\n if (isArrayLike(elems)) {\n length = elems.length;\n\n for (; i < length; i++) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n } // Go through every key on the object,\n\n } else {\n for (i in elems) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n }\n } // Flatten any nested arrays\n\n\n return flat(ret);\n },\n // A global GUID counter for objects\n guid: 1,\n // jQuery.support is not used in Core but other projects attach their\n // properties to it so it needs to exist.\n support: support\n });\n\n if (typeof Symbol === \"function\") {\n jQuery.fn[Symbol.iterator] = arr[Symbol.iterator];\n } // Populate the class2type map\n\n\n jQuery.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"), function (_i, name) {\n class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\n });\n\n function isArrayLike(obj) {\n // Support: real iOS 8.2 only (not reproducible in simulator)\n // `in` check used to prevent JIT error (gh-2145)\n // hasOwn isn't used here due to false negatives\n // regarding Nodelist length in IE\n var length = !!obj && \"length\" in obj && obj.length,\n type = toType(obj);\n\n if (isFunction(obj) || isWindow(obj)) {\n return false;\n }\n\n return type === \"array\" || length === 0 || typeof length === \"number\" && length > 0 && length - 1 in obj;\n }\n\n var Sizzle =\n /*!\n * Sizzle CSS Selector Engine v2.3.6\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2021-02-16\n */\n function (window) {\n var i,\n support,\n Expr,\n getText,\n isXML,\n tokenize,\n compile,\n select,\n outermostContext,\n sortInput,\n hasDuplicate,\n // Local document vars\n setDocument,\n document,\n docElem,\n documentIsHTML,\n rbuggyQSA,\n rbuggyMatches,\n matches,\n contains,\n // Instance-specific data\n expando = \"sizzle\" + 1 * new Date(),\n preferredDoc = window.document,\n dirruns = 0,\n done = 0,\n classCache = createCache(),\n tokenCache = createCache(),\n compilerCache = createCache(),\n nonnativeSelectorCache = createCache(),\n sortOrder = function sortOrder(a, b) {\n if (a === b) {\n hasDuplicate = true;\n }\n\n return 0;\n },\n // Instance methods\n hasOwn = {}.hasOwnProperty,\n arr = [],\n pop = arr.pop,\n pushNative = arr.push,\n push = arr.push,\n slice = arr.slice,\n // Use a stripped-down indexOf as it's faster than native\n // https://jsperf.com/thor-indexof-vs-for/5\n indexOf = function indexOf(list, elem) {\n var i = 0,\n len = list.length;\n\n for (; i < len; i++) {\n if (list[i] === elem) {\n return i;\n }\n }\n\n return -1;\n },\n booleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" + \"ismap|loop|multiple|open|readonly|required|scoped\",\n // Regular expressions\n // http://www.w3.org/TR/css3-selectors/#whitespace\n whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n identifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n attributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace + // Operator (capture 2)\n \"*([*^$|!~]?=)\" + whitespace + // \"Attribute values must be CSS identifiers [capture 5]\n // or strings [capture 3 or capture 4]\"\n \"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace + \"*\\\\]\",\n pseudos = \":(\" + identifier + \")(?:\\\\((\" + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n // 1. quoted (capture 3; capture 4 or capture 5)\n \"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" + // 2. simple (capture 6)\n \"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" + // 3. anything else (capture 2)\n \".*\" + \")\\\\)|)\",\n // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n rwhitespace = new RegExp(whitespace + \"+\", \"g\"),\n rtrim = new RegExp(\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\"),\n rcomma = new RegExp(\"^\" + whitespace + \"*,\" + whitespace + \"*\"),\n rcombinators = new RegExp(\"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\"),\n rdescend = new RegExp(whitespace + \"|>\"),\n rpseudo = new RegExp(pseudos),\n ridentifier = new RegExp(\"^\" + identifier + \"$\"),\n matchExpr = {\n \"ID\": new RegExp(\"^#(\" + identifier + \")\"),\n \"CLASS\": new RegExp(\"^\\\\.(\" + identifier + \")\"),\n \"TAG\": new RegExp(\"^(\" + identifier + \"|[*])\"),\n \"ATTR\": new RegExp(\"^\" + attributes),\n \"PSEUDO\": new RegExp(\"^\" + pseudos),\n \"CHILD\": new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\"),\n \"bool\": new RegExp(\"^(?:\" + booleans + \")$\", \"i\"),\n // For use in libraries implementing .is()\n // We use this for POS matching in `select`\n \"needsContext\": new RegExp(\"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\")\n },\n rhtml = /HTML$/i,\n rinputs = /^(?:input|select|textarea|button)$/i,\n rheader = /^h\\d$/i,\n rnative = /^[^{]+\\{\\s*\\[native \\w/,\n // Easily-parseable/retrievable ID or TAG or CLASS selectors\n rquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n rsibling = /[+~]/,\n // CSS escapes\n // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n runescape = new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\"),\n funescape = function funescape(escape, nonHex) {\n var high = \"0x\" + escape.slice(1) - 0x10000;\n return nonHex ? // Strip the backslash prefix from a non-hex escape sequence\n nonHex : // Replace a hexadecimal escape sequence with the encoded Unicode code point\n // Support: IE <=11+\n // For values outside the Basic Multilingual Plane (BMP), manually construct a\n // surrogate pair\n high < 0 ? String.fromCharCode(high + 0x10000) : String.fromCharCode(high >> 10 | 0xD800, high & 0x3FF | 0xDC00);\n },\n // CSS string/identifier serialization\n // https://drafts.csswg.org/cssom/#common-serializing-idioms\n rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n fcssescape = function fcssescape(ch, asCodePoint) {\n if (asCodePoint) {\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n if (ch === \"\\0\") {\n return \"\\uFFFD\";\n } // Control characters and (dependent upon position) numbers get escaped as code points\n\n\n return ch.slice(0, -1) + \"\\\\\" + ch.charCodeAt(ch.length - 1).toString(16) + \" \";\n } // Other potentially-special ASCII characters get backslash-escaped\n\n\n return \"\\\\\" + ch;\n },\n // Used for iframes\n // See setDocument()\n // Removing the function wrapper causes a \"Permission Denied\"\n // error in IE\n unloadHandler = function unloadHandler() {\n setDocument();\n },\n inDisabledFieldset = addCombinator(function (elem) {\n return elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n }, {\n dir: \"parentNode\",\n next: \"legend\"\n }); // Optimize for push.apply( _, NodeList )\n\n\n try {\n push.apply(arr = slice.call(preferredDoc.childNodes), preferredDoc.childNodes); // Support: Android<4.0\n // Detect silently failing push.apply\n // eslint-disable-next-line no-unused-expressions\n\n arr[preferredDoc.childNodes.length].nodeType;\n } catch (e) {\n push = {\n apply: arr.length ? // Leverage slice if possible\n function (target, els) {\n pushNative.apply(target, slice.call(els));\n } : // Support: IE<9\n // Otherwise append directly\n function (target, els) {\n var j = target.length,\n i = 0; // Can't trust NodeList.length\n\n while (target[j++] = els[i++]) {}\n\n target.length = j - 1;\n }\n };\n }\n\n function Sizzle(selector, context, results, seed) {\n var m,\n i,\n elem,\n nid,\n match,\n groups,\n newSelector,\n newContext = context && context.ownerDocument,\n // nodeType defaults to 9, since context defaults to document\n nodeType = context ? context.nodeType : 9;\n results = results || []; // Return early from calls with invalid selector or context\n\n if (typeof selector !== \"string\" || !selector || nodeType !== 1 && nodeType !== 9 && nodeType !== 11) {\n return results;\n } // Try to shortcut find operations (as opposed to filters) in HTML documents\n\n\n if (!seed) {\n setDocument(context);\n context = context || document;\n\n if (documentIsHTML) {\n // If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n // (excepting DocumentFragment context, where the methods don't exist)\n if (nodeType !== 11 && (match = rquickExpr.exec(selector))) {\n // ID selector\n if (m = match[1]) {\n // Document context\n if (nodeType === 9) {\n if (elem = context.getElementById(m)) {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (elem.id === m) {\n results.push(elem);\n return results;\n }\n } else {\n return results;\n } // Element context\n\n } else {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (newContext && (elem = newContext.getElementById(m)) && contains(context, elem) && elem.id === m) {\n results.push(elem);\n return results;\n }\n } // Type selector\n\n } else if (match[2]) {\n push.apply(results, context.getElementsByTagName(selector));\n return results; // Class selector\n } else if ((m = match[3]) && support.getElementsByClassName && context.getElementsByClassName) {\n push.apply(results, context.getElementsByClassName(m));\n return results;\n }\n } // Take advantage of querySelectorAll\n\n\n if (support.qsa && !nonnativeSelectorCache[selector + \" \"] && (!rbuggyQSA || !rbuggyQSA.test(selector)) && ( // Support: IE 8 only\n // Exclude object elements\n nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\")) {\n newSelector = selector;\n newContext = context; // qSA considers elements outside a scoping root when evaluating child or\n // descendant combinators, which is not what we want.\n // In such cases, we work around the behavior by prefixing every selector in the\n // list with an ID selector referencing the scope context.\n // The technique has to be used as well when a leading combinator is used\n // as such selectors are not recognized by querySelectorAll.\n // Thanks to Andrew Dupont for this technique.\n\n if (nodeType === 1 && (rdescend.test(selector) || rcombinators.test(selector))) {\n // Expand context for sibling selectors\n newContext = rsibling.test(selector) && testContext(context.parentNode) || context; // We can use :scope instead of the ID hack if the browser\n // supports it & if we're not changing the context.\n\n if (newContext !== context || !support.scope) {\n // Capture the context ID, setting it first if necessary\n if (nid = context.getAttribute(\"id\")) {\n nid = nid.replace(rcssescape, fcssescape);\n } else {\n context.setAttribute(\"id\", nid = expando);\n }\n } // Prefix every selector in the list\n\n\n groups = tokenize(selector);\n i = groups.length;\n\n while (i--) {\n groups[i] = (nid ? \"#\" + nid : \":scope\") + \" \" + toSelector(groups[i]);\n }\n\n newSelector = groups.join(\",\");\n }\n\n try {\n push.apply(results, newContext.querySelectorAll(newSelector));\n return results;\n } catch (qsaError) {\n nonnativeSelectorCache(selector, true);\n } finally {\n if (nid === expando) {\n context.removeAttribute(\"id\");\n }\n }\n }\n }\n } // All others\n\n\n return select(selector.replace(rtrim, \"$1\"), context, results, seed);\n }\n /**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\n\n\n function createCache() {\n var keys = [];\n\n function cache(key, value) {\n // Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n if (keys.push(key + \" \") > Expr.cacheLength) {\n // Only keep the most recent entries\n delete cache[keys.shift()];\n }\n\n return cache[key + \" \"] = value;\n }\n\n return cache;\n }\n /**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\n\n\n function markFunction(fn) {\n fn[expando] = true;\n return fn;\n }\n /**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\n\n\n function assert(fn) {\n var el = document.createElement(\"fieldset\");\n\n try {\n return !!fn(el);\n } catch (e) {\n return false;\n } finally {\n // Remove from its parent by default\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n } // release memory in IE\n\n\n el = null;\n }\n }\n /**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\n\n\n function addHandle(attrs, handler) {\n var arr = attrs.split(\"|\"),\n i = arr.length;\n\n while (i--) {\n Expr.attrHandle[arr[i]] = handler;\n }\n }\n /**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\n\n\n function siblingCheck(a, b) {\n var cur = b && a,\n diff = cur && a.nodeType === 1 && b.nodeType === 1 && a.sourceIndex - b.sourceIndex; // Use IE sourceIndex if available on both nodes\n\n if (diff) {\n return diff;\n } // Check if b follows a\n\n\n if (cur) {\n while (cur = cur.nextSibling) {\n if (cur === b) {\n return -1;\n }\n }\n }\n\n return a ? 1 : -1;\n }\n /**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\n\n\n function createInputPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === type;\n };\n }\n /**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\n\n\n function createButtonPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return (name === \"input\" || name === \"button\") && elem.type === type;\n };\n }\n /**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\n\n\n function createDisabledPseudo(disabled) {\n // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n return function (elem) {\n // Only certain elements can match :enabled or :disabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n if (\"form\" in elem) {\n // Check for inherited disabledness on relevant non-disabled elements:\n // * listed form-associated elements in a disabled fieldset\n // https://html.spec.whatwg.org/multipage/forms.html#category-listed\n // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n // * option elements in a disabled optgroup\n // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n // All such elements have a \"form\" property.\n if (elem.parentNode && elem.disabled === false) {\n // Option elements defer to a parent optgroup if present\n if (\"label\" in elem) {\n if (\"label\" in elem.parentNode) {\n return elem.parentNode.disabled === disabled;\n } else {\n return elem.disabled === disabled;\n }\n } // Support: IE 6 - 11\n // Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\n\n return elem.isDisabled === disabled || // Where there is no isDisabled, check manually\n\n /* jshint -W018 */\n elem.isDisabled !== !disabled && inDisabledFieldset(elem) === disabled;\n }\n\n return elem.disabled === disabled; // Try to winnow out elements that can't be disabled before trusting the disabled property.\n // Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n // even exist on them, let alone have a boolean value.\n } else if (\"label\" in elem) {\n return elem.disabled === disabled;\n } // Remaining elements are neither :enabled nor :disabled\n\n\n return false;\n };\n }\n /**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\n\n\n function createPositionalPseudo(fn) {\n return markFunction(function (argument) {\n argument = +argument;\n return markFunction(function (seed, matches) {\n var j,\n matchIndexes = fn([], seed.length, argument),\n i = matchIndexes.length; // Match elements found at the specified indexes\n\n while (i--) {\n if (seed[j = matchIndexes[i]]) {\n seed[j] = !(matches[j] = seed[j]);\n }\n }\n });\n });\n }\n /**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\n\n\n function testContext(context) {\n return context && typeof context.getElementsByTagName !== \"undefined\" && context;\n } // Expose support vars for convenience\n\n\n support = Sizzle.support = {};\n /**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\n\n isXML = Sizzle.isXML = function (elem) {\n var namespace = elem && elem.namespaceURI,\n docElem = elem && (elem.ownerDocument || elem).documentElement; // Support: IE <=8\n // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n // https://bugs.jquery.com/ticket/4833\n\n return !rhtml.test(namespace || docElem && docElem.nodeName || \"HTML\");\n };\n /**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\n\n\n setDocument = Sizzle.setDocument = function (node) {\n var hasCompare,\n subWindow,\n doc = node ? node.ownerDocument || node : preferredDoc; // Return early if doc is invalid or already selected\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (doc == document || doc.nodeType !== 9 || !doc.documentElement) {\n return document;\n } // Update global variables\n\n\n document = doc;\n docElem = document.documentElement;\n documentIsHTML = !isXML(document); // Support: IE 9 - 11+, Edge 12 - 18+\n // Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (preferredDoc != document && (subWindow = document.defaultView) && subWindow.top !== subWindow) {\n // Support: IE 11, Edge\n if (subWindow.addEventListener) {\n subWindow.addEventListener(\"unload\", unloadHandler, false); // Support: IE 9 - 10 only\n } else if (subWindow.attachEvent) {\n subWindow.attachEvent(\"onunload\", unloadHandler);\n }\n } // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n // Safari 4 - 5 only, Opera <=11.6 - 12.x only\n // IE/Edge & older browsers don't support the :scope pseudo-class.\n // Support: Safari 6.0 only\n // Safari 6.0 supports :scope but it's an alias of :root there.\n\n\n support.scope = assert(function (el) {\n docElem.appendChild(el).appendChild(document.createElement(\"div\"));\n return typeof el.querySelectorAll !== \"undefined\" && !el.querySelectorAll(\":scope fieldset div\").length;\n });\n /* Attributes\n ---------------------------------------------------------------------- */\n // Support: IE<8\n // Verify that getAttribute really returns attributes and not properties\n // (excepting IE8 booleans)\n\n support.attributes = assert(function (el) {\n el.className = \"i\";\n return !el.getAttribute(\"className\");\n });\n /* getElement(s)By*\n ---------------------------------------------------------------------- */\n // Check if getElementsByTagName(\"*\") returns only elements\n\n support.getElementsByTagName = assert(function (el) {\n el.appendChild(document.createComment(\"\"));\n return !el.getElementsByTagName(\"*\").length;\n }); // Support: IE<9\n\n support.getElementsByClassName = rnative.test(document.getElementsByClassName); // Support: IE<10\n // Check if getElementById returns elements by name\n // The broken getElementById methods don't pick up programmatically-set names,\n // so use a roundabout getElementsByName test\n\n support.getById = assert(function (el) {\n docElem.appendChild(el).id = expando;\n return !document.getElementsByName || !document.getElementsByName(expando).length;\n }); // ID filter and find\n\n if (support.getById) {\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n return elem.getAttribute(\"id\") === attrId;\n };\n };\n\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var elem = context.getElementById(id);\n return elem ? [elem] : [];\n }\n };\n } else {\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n var node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n return node && node.value === attrId;\n };\n }; // Support: IE 6 - 7 only\n // getElementById is not reliable as a find shortcut\n\n\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var node,\n i,\n elems,\n elem = context.getElementById(id);\n\n if (elem) {\n // Verify the id attribute\n node = elem.getAttributeNode(\"id\");\n\n if (node && node.value === id) {\n return [elem];\n } // Fall back on getElementsByName\n\n\n elems = context.getElementsByName(id);\n i = 0;\n\n while (elem = elems[i++]) {\n node = elem.getAttributeNode(\"id\");\n\n if (node && node.value === id) {\n return [elem];\n }\n }\n }\n\n return [];\n }\n };\n } // Tag\n\n\n Expr.find[\"TAG\"] = support.getElementsByTagName ? function (tag, context) {\n if (typeof context.getElementsByTagName !== \"undefined\") {\n return context.getElementsByTagName(tag); // DocumentFragment nodes don't have gEBTN\n } else if (support.qsa) {\n return context.querySelectorAll(tag);\n }\n } : function (tag, context) {\n var elem,\n tmp = [],\n i = 0,\n // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n results = context.getElementsByTagName(tag); // Filter out possible comments\n\n if (tag === \"*\") {\n while (elem = results[i++]) {\n if (elem.nodeType === 1) {\n tmp.push(elem);\n }\n }\n\n return tmp;\n }\n\n return results;\n }; // Class\n\n Expr.find[\"CLASS\"] = support.getElementsByClassName && function (className, context) {\n if (typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML) {\n return context.getElementsByClassName(className);\n }\n };\n /* QSA/matchesSelector\n ---------------------------------------------------------------------- */\n // QSA and matchesSelector support\n // matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\n\n rbuggyMatches = []; // qSa(:focus) reports false when true (Chrome 21)\n // We allow this because of a bug in IE8/9 that throws an error\n // whenever `document.activeElement` is accessed on an iframe\n // So, we allow :focus to pass through QSA all the time to avoid the IE error\n // See https://bugs.jquery.com/ticket/13378\n\n rbuggyQSA = [];\n\n if (support.qsa = rnative.test(document.querySelectorAll)) {\n // Build QSA regex\n // Regex strategy adopted from Diego Perini\n assert(function (el) {\n var input; // Select is set to empty string on purpose\n // This is to test IE's treatment of not explicitly\n // setting a boolean content attribute,\n // since its presence should be enough\n // https://bugs.jquery.com/ticket/12359\n\n docElem.appendChild(el).innerHTML = \"\" + \"\"; // Support: IE8, Opera 11-12.16\n // Nothing should be selected when empty strings follow ^= or $= or *=\n // The test attribute must be unknown in Opera but \"safe\" for WinRT\n // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\n if (el.querySelectorAll(\"[msallowcapture^='']\").length) {\n rbuggyQSA.push(\"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\");\n } // Support: IE8\n // Boolean attributes and \"value\" are not treated correctly\n\n\n if (!el.querySelectorAll(\"[selected]\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\");\n } // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\n\n if (!el.querySelectorAll(\"[id~=\" + expando + \"-]\").length) {\n rbuggyQSA.push(\"~=\");\n } // Support: IE 11+, Edge 15 - 18+\n // IE 11/Edge don't find elements on a `[name='']` query in some cases.\n // Adding a temporary attribute to the document before the selection works\n // around the issue.\n // Interestingly, IE 10 & older don't seem to have the issue.\n\n\n input = document.createElement(\"input\");\n input.setAttribute(\"name\", \"\");\n el.appendChild(input);\n\n if (!el.querySelectorAll(\"[name='']\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" + whitespace + \"*(?:''|\\\"\\\")\");\n } // Webkit/Opera - :checked should return selected option elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n // IE8 throws error here and will not see later tests\n\n\n if (!el.querySelectorAll(\":checked\").length) {\n rbuggyQSA.push(\":checked\");\n } // Support: Safari 8+, iOS 8+\n // https://bugs.webkit.org/show_bug.cgi?id=136851\n // In-page `selector#id sibling-combinator selector` fails\n\n\n if (!el.querySelectorAll(\"a#\" + expando + \"+*\").length) {\n rbuggyQSA.push(\".#.+[+~]\");\n } // Support: Firefox <=3.6 - 5 only\n // Old Firefox doesn't throw on a badly-escaped identifier.\n\n\n el.querySelectorAll(\"\\\\\\f\");\n rbuggyQSA.push(\"[\\\\r\\\\n\\\\f]\");\n });\n assert(function (el) {\n el.innerHTML = \"\" + \"\"; // Support: Windows 8 Native Apps\n // The type and name attributes are restricted during .innerHTML assignment\n\n var input = document.createElement(\"input\");\n input.setAttribute(\"type\", \"hidden\");\n el.appendChild(input).setAttribute(\"name\", \"D\"); // Support: IE8\n // Enforce case-sensitivity of name attribute\n\n if (el.querySelectorAll(\"[name=d]\").length) {\n rbuggyQSA.push(\"name\" + whitespace + \"*[*^$|!~]?=\");\n } // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n // IE8 throws error here and will not see later tests\n\n\n if (el.querySelectorAll(\":enabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n } // Support: IE9-11+\n // IE's :disabled selector does not pick up the children of disabled fieldsets\n\n\n docElem.appendChild(el).disabled = true;\n\n if (el.querySelectorAll(\":disabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n } // Support: Opera 10 - 11 only\n // Opera 10-11 does not throw on post-comma invalid pseudos\n\n\n el.querySelectorAll(\"*,:x\");\n rbuggyQSA.push(\",.*:\");\n });\n }\n\n if (support.matchesSelector = rnative.test(matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || docElem.msMatchesSelector)) {\n assert(function (el) {\n // Check to see if it's possible to do matchesSelector\n // on a disconnected node (IE 9)\n support.disconnectedMatch = matches.call(el, \"*\"); // This should fail with an exception\n // Gecko does not error, returns false instead\n\n matches.call(el, \"[s!='']:x\");\n rbuggyMatches.push(\"!=\", pseudos);\n });\n }\n\n rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join(\"|\"));\n rbuggyMatches = rbuggyMatches.length && new RegExp(rbuggyMatches.join(\"|\"));\n /* Contains\n ---------------------------------------------------------------------- */\n\n hasCompare = rnative.test(docElem.compareDocumentPosition); // Element contains another\n // Purposefully self-exclusive\n // As in, an element does not contain itself\n\n contains = hasCompare || rnative.test(docElem.contains) ? function (a, b) {\n var adown = a.nodeType === 9 ? a.documentElement : a,\n bup = b && b.parentNode;\n return a === bup || !!(bup && bup.nodeType === 1 && (adown.contains ? adown.contains(bup) : a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16));\n } : function (a, b) {\n if (b) {\n while (b = b.parentNode) {\n if (b === a) {\n return true;\n }\n }\n }\n\n return false;\n };\n /* Sorting\n ---------------------------------------------------------------------- */\n // Document order sorting\n\n sortOrder = hasCompare ? function (a, b) {\n // Flag for duplicate removal\n if (a === b) {\n hasDuplicate = true;\n return 0;\n } // Sort on method existence if only one input has compareDocumentPosition\n\n\n var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\n if (compare) {\n return compare;\n } // Calculate position if both inputs belong to the same document\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n\n compare = (a.ownerDocument || a) == (b.ownerDocument || b) ? a.compareDocumentPosition(b) : // Otherwise we know they are disconnected\n 1; // Disconnected nodes\n\n if (compare & 1 || !support.sortDetached && b.compareDocumentPosition(a) === compare) {\n // Choose the first element that is related to our preferred document\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (a == document || a.ownerDocument == preferredDoc && contains(preferredDoc, a)) {\n return -1;\n } // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n\n if (b == document || b.ownerDocument == preferredDoc && contains(preferredDoc, b)) {\n return 1;\n } // Maintain original order\n\n\n return sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0;\n }\n\n return compare & 4 ? -1 : 1;\n } : function (a, b) {\n // Exit early if the nodes are identical\n if (a === b) {\n hasDuplicate = true;\n return 0;\n }\n\n var cur,\n i = 0,\n aup = a.parentNode,\n bup = b.parentNode,\n ap = [a],\n bp = [b]; // Parentless nodes are either documents or disconnected\n\n if (!aup || !bup) {\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n\n /* eslint-disable eqeqeq */\n return a == document ? -1 : b == document ? 1 :\n /* eslint-enable eqeqeq */\n aup ? -1 : bup ? 1 : sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0; // If the nodes are siblings, we can do a quick check\n } else if (aup === bup) {\n return siblingCheck(a, b);\n } // Otherwise we need full lists of their ancestors for comparison\n\n\n cur = a;\n\n while (cur = cur.parentNode) {\n ap.unshift(cur);\n }\n\n cur = b;\n\n while (cur = cur.parentNode) {\n bp.unshift(cur);\n } // Walk down the tree looking for a discrepancy\n\n\n while (ap[i] === bp[i]) {\n i++;\n }\n\n return i ? // Do a sibling check if the nodes have a common ancestor\n siblingCheck(ap[i], bp[i]) : // Otherwise nodes in our document sort first\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n\n /* eslint-disable eqeqeq */\n ap[i] == preferredDoc ? -1 : bp[i] == preferredDoc ? 1 :\n /* eslint-enable eqeqeq */\n 0;\n };\n return document;\n };\n\n Sizzle.matches = function (expr, elements) {\n return Sizzle(expr, null, null, elements);\n };\n\n Sizzle.matchesSelector = function (elem, expr) {\n setDocument(elem);\n\n if (support.matchesSelector && documentIsHTML && !nonnativeSelectorCache[expr + \" \"] && (!rbuggyMatches || !rbuggyMatches.test(expr)) && (!rbuggyQSA || !rbuggyQSA.test(expr))) {\n try {\n var ret = matches.call(elem, expr); // IE 9's matchesSelector returns false on disconnected nodes\n\n if (ret || support.disconnectedMatch || // As well, disconnected nodes are said to be in a document\n // fragment in IE 9\n elem.document && elem.document.nodeType !== 11) {\n return ret;\n }\n } catch (e) {\n nonnativeSelectorCache(expr, true);\n }\n }\n\n return Sizzle(expr, document, null, [elem]).length > 0;\n };\n\n Sizzle.contains = function (context, elem) {\n // Set document vars if needed\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if ((context.ownerDocument || context) != document) {\n setDocument(context);\n }\n\n return contains(context, elem);\n };\n\n Sizzle.attr = function (elem, name) {\n // Set document vars if needed\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if ((elem.ownerDocument || elem) != document) {\n setDocument(elem);\n }\n\n var fn = Expr.attrHandle[name.toLowerCase()],\n // Don't get fooled by Object.prototype properties (jQuery #13807)\n val = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ? fn(elem, name, !documentIsHTML) : undefined;\n return val !== undefined ? val : support.attributes || !documentIsHTML ? elem.getAttribute(name) : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n };\n\n Sizzle.escape = function (sel) {\n return (sel + \"\").replace(rcssescape, fcssescape);\n };\n\n Sizzle.error = function (msg) {\n throw new Error(\"Syntax error, unrecognized expression: \" + msg);\n };\n /**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\n\n\n Sizzle.uniqueSort = function (results) {\n var elem,\n duplicates = [],\n j = 0,\n i = 0; // Unless we *know* we can detect duplicates, assume their presence\n\n hasDuplicate = !support.detectDuplicates;\n sortInput = !support.sortStable && results.slice(0);\n results.sort(sortOrder);\n\n if (hasDuplicate) {\n while (elem = results[i++]) {\n if (elem === results[i]) {\n j = duplicates.push(i);\n }\n }\n\n while (j--) {\n results.splice(duplicates[j], 1);\n }\n } // Clear input after sorting to release objects\n // See https://github.com/jquery/sizzle/pull/225\n\n\n sortInput = null;\n return results;\n };\n /**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\n\n\n getText = Sizzle.getText = function (elem) {\n var node,\n ret = \"\",\n i = 0,\n nodeType = elem.nodeType;\n\n if (!nodeType) {\n // If no nodeType, this is expected to be an array\n while (node = elem[i++]) {\n // Do not traverse comment nodes\n ret += getText(node);\n }\n } else if (nodeType === 1 || nodeType === 9 || nodeType === 11) {\n // Use textContent for elements\n // innerText usage removed for consistency of new lines (jQuery #11153)\n if (typeof elem.textContent === \"string\") {\n return elem.textContent;\n } else {\n // Traverse its children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n ret += getText(elem);\n }\n }\n } else if (nodeType === 3 || nodeType === 4) {\n return elem.nodeValue;\n } // Do not include comment or processing instruction nodes\n\n\n return ret;\n };\n\n Expr = Sizzle.selectors = {\n // Can be adjusted by the user\n cacheLength: 50,\n createPseudo: markFunction,\n match: matchExpr,\n attrHandle: {},\n find: {},\n relative: {\n \">\": {\n dir: \"parentNode\",\n first: true\n },\n \" \": {\n dir: \"parentNode\"\n },\n \"+\": {\n dir: \"previousSibling\",\n first: true\n },\n \"~\": {\n dir: \"previousSibling\"\n }\n },\n preFilter: {\n \"ATTR\": function ATTR(match) {\n match[1] = match[1].replace(runescape, funescape); // Move the given value to match[3] whether quoted or unquoted\n\n match[3] = (match[3] || match[4] || match[5] || \"\").replace(runescape, funescape);\n\n if (match[2] === \"~=\") {\n match[3] = \" \" + match[3] + \" \";\n }\n\n return match.slice(0, 4);\n },\n \"CHILD\": function CHILD(match) {\n /* matches from matchExpr[\"CHILD\"]\n \t1 type (only|nth|...)\n \t2 what (child|of-type)\n \t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n \t4 xn-component of xn+y argument ([+-]?\\d*n|)\n \t5 sign of xn-component\n \t6 x of xn-component\n \t7 sign of y-component\n \t8 y of y-component\n */\n match[1] = match[1].toLowerCase();\n\n if (match[1].slice(0, 3) === \"nth\") {\n // nth-* requires argument\n if (!match[3]) {\n Sizzle.error(match[0]);\n } // numeric x and y parameters for Expr.filter.CHILD\n // remember that false/true cast respectively to 0/1\n\n\n match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === \"even\" || match[3] === \"odd\"));\n match[5] = +(match[7] + match[8] || match[3] === \"odd\"); // other types prohibit arguments\n } else if (match[3]) {\n Sizzle.error(match[0]);\n }\n\n return match;\n },\n \"PSEUDO\": function PSEUDO(match) {\n var excess,\n unquoted = !match[6] && match[2];\n\n if (matchExpr[\"CHILD\"].test(match[0])) {\n return null;\n } // Accept quoted arguments as-is\n\n\n if (match[3]) {\n match[2] = match[4] || match[5] || \"\"; // Strip excess characters from unquoted arguments\n } else if (unquoted && rpseudo.test(unquoted) && ( // Get excess from tokenize (recursively)\n excess = tokenize(unquoted, true)) && ( // advance to the next closing parenthesis\n excess = unquoted.indexOf(\")\", unquoted.length - excess) - unquoted.length)) {\n // excess is a negative index\n match[0] = match[0].slice(0, excess);\n match[2] = unquoted.slice(0, excess);\n } // Return only captures needed by the pseudo filter method (type and argument)\n\n\n return match.slice(0, 3);\n }\n },\n filter: {\n \"TAG\": function TAG(nodeNameSelector) {\n var nodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase();\n return nodeNameSelector === \"*\" ? function () {\n return true;\n } : function (elem) {\n return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n };\n },\n \"CLASS\": function CLASS(className) {\n var pattern = classCache[className + \" \"];\n return pattern || (pattern = new RegExp(\"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\")) && classCache(className, function (elem) {\n return pattern.test(typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\");\n });\n },\n \"ATTR\": function ATTR(name, operator, check) {\n return function (elem) {\n var result = Sizzle.attr(elem, name);\n\n if (result == null) {\n return operator === \"!=\";\n }\n\n if (!operator) {\n return true;\n }\n\n result += \"\";\n /* eslint-disable max-len */\n\n return operator === \"=\" ? result === check : operator === \"!=\" ? result !== check : operator === \"^=\" ? check && result.indexOf(check) === 0 : operator === \"*=\" ? check && result.indexOf(check) > -1 : operator === \"$=\" ? check && result.slice(-check.length) === check : operator === \"~=\" ? (\" \" + result.replace(rwhitespace, \" \") + \" \").indexOf(check) > -1 : operator === \"|=\" ? result === check || result.slice(0, check.length + 1) === check + \"-\" : false;\n /* eslint-enable max-len */\n };\n },\n \"CHILD\": function CHILD(type, what, _argument, first, last) {\n var simple = type.slice(0, 3) !== \"nth\",\n forward = type.slice(-4) !== \"last\",\n ofType = what === \"of-type\";\n return first === 1 && last === 0 ? // Shortcut for :nth-*(n)\n function (elem) {\n return !!elem.parentNode;\n } : function (elem, _context, xml) {\n var cache,\n uniqueCache,\n outerCache,\n node,\n nodeIndex,\n start,\n dir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n parent = elem.parentNode,\n name = ofType && elem.nodeName.toLowerCase(),\n useCache = !xml && !ofType,\n diff = false;\n\n if (parent) {\n // :(first|last|only)-(child|of-type)\n if (simple) {\n while (dir) {\n node = elem;\n\n while (node = node[dir]) {\n if (ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) {\n return false;\n }\n } // Reverse direction for :only-* (if we haven't yet done so)\n\n\n start = dir = type === \"only\" && !start && \"nextSibling\";\n }\n\n return true;\n }\n\n start = [forward ? parent.firstChild : parent.lastChild]; // non-xml :nth-child(...) stores cache data on `parent`\n\n if (forward && useCache) {\n // Seek `elem` from a previously-cached index\n // ...in a gzip-friendly way\n node = parent;\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex && cache[2];\n node = nodeIndex && parent.childNodes[nodeIndex];\n\n while (node = ++nodeIndex && node && node[dir] || ( // Fallback to seeking `elem` from the start\n diff = nodeIndex = 0) || start.pop()) {\n // When found, cache indexes on `parent` and break\n if (node.nodeType === 1 && ++diff && node === elem) {\n uniqueCache[type] = [dirruns, nodeIndex, diff];\n break;\n }\n }\n } else {\n // Use previously-cached element index if available\n if (useCache) {\n // ...in a gzip-friendly way\n node = elem;\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex;\n } // xml :nth-child(...)\n // or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\n\n if (diff === false) {\n // Use the same loop as above to seek `elem` from the start\n while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) {\n if ((ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) && ++diff) {\n // Cache the index of each encountered element\n if (useCache) {\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n uniqueCache[type] = [dirruns, diff];\n }\n\n if (node === elem) {\n break;\n }\n }\n }\n }\n } // Incorporate the offset, then check against cycle size\n\n\n diff -= last;\n return diff === first || diff % first === 0 && diff / first >= 0;\n }\n };\n },\n \"PSEUDO\": function PSEUDO(pseudo, argument) {\n // pseudo-class names are case-insensitive\n // http://www.w3.org/TR/selectors/#pseudo-classes\n // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n // Remember that setFilters inherits from pseudos\n var args,\n fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || Sizzle.error(\"unsupported pseudo: \" + pseudo); // The user may use createPseudo to indicate that\n // arguments are needed to create the filter function\n // just as Sizzle does\n\n if (fn[expando]) {\n return fn(argument);\n } // But maintain support for old signatures\n\n\n if (fn.length > 1) {\n args = [pseudo, pseudo, \"\", argument];\n return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function (seed, matches) {\n var idx,\n matched = fn(seed, argument),\n i = matched.length;\n\n while (i--) {\n idx = indexOf(seed, matched[i]);\n seed[idx] = !(matches[idx] = matched[i]);\n }\n }) : function (elem) {\n return fn(elem, 0, args);\n };\n }\n\n return fn;\n }\n },\n pseudos: {\n // Potentially complex pseudos\n \"not\": markFunction(function (selector) {\n // Trim the selector passed to compile\n // to avoid treating leading and trailing\n // spaces as combinators\n var input = [],\n results = [],\n matcher = compile(selector.replace(rtrim, \"$1\"));\n return matcher[expando] ? markFunction(function (seed, matches, _context, xml) {\n var elem,\n unmatched = matcher(seed, null, xml, []),\n i = seed.length; // Match elements unmatched by `matcher`\n\n while (i--) {\n if (elem = unmatched[i]) {\n seed[i] = !(matches[i] = elem);\n }\n }\n }) : function (elem, _context, xml) {\n input[0] = elem;\n matcher(input, null, xml, results); // Don't keep the element (issue #299)\n\n input[0] = null;\n return !results.pop();\n };\n }),\n \"has\": markFunction(function (selector) {\n return function (elem) {\n return Sizzle(selector, elem).length > 0;\n };\n }),\n \"contains\": markFunction(function (text) {\n text = text.replace(runescape, funescape);\n return function (elem) {\n return (elem.textContent || getText(elem)).indexOf(text) > -1;\n };\n }),\n // \"Whether an element is represented by a :lang() selector\n // is based solely on the element's language value\n // being equal to the identifier C,\n // or beginning with the identifier C immediately followed by \"-\".\n // The matching of C against the element's language value is performed case-insensitively.\n // The identifier C does not have to be a valid language name.\"\n // http://www.w3.org/TR/selectors/#lang-pseudo\n \"lang\": markFunction(function (lang) {\n // lang value must be a valid identifier\n if (!ridentifier.test(lang || \"\")) {\n Sizzle.error(\"unsupported lang: \" + lang);\n }\n\n lang = lang.replace(runescape, funescape).toLowerCase();\n return function (elem) {\n var elemLang;\n\n do {\n if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) {\n elemLang = elemLang.toLowerCase();\n return elemLang === lang || elemLang.indexOf(lang + \"-\") === 0;\n }\n } while ((elem = elem.parentNode) && elem.nodeType === 1);\n\n return false;\n };\n }),\n // Miscellaneous\n \"target\": function target(elem) {\n var hash = window.location && window.location.hash;\n return hash && hash.slice(1) === elem.id;\n },\n \"root\": function root(elem) {\n return elem === docElem;\n },\n \"focus\": function focus(elem) {\n return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n },\n // Boolean properties\n \"enabled\": createDisabledPseudo(false),\n \"disabled\": createDisabledPseudo(true),\n \"checked\": function checked(elem) {\n // In CSS3, :checked should return both checked and selected elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n var nodeName = elem.nodeName.toLowerCase();\n return nodeName === \"input\" && !!elem.checked || nodeName === \"option\" && !!elem.selected;\n },\n \"selected\": function selected(elem) {\n // Accessing this property makes selected-by-default\n // options in Safari work properly\n if (elem.parentNode) {\n // eslint-disable-next-line no-unused-expressions\n elem.parentNode.selectedIndex;\n }\n\n return elem.selected === true;\n },\n // Contents\n \"empty\": function empty(elem) {\n // http://www.w3.org/TR/selectors/#empty-pseudo\n // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n // but not by others (comment: 8; processing instruction: 7; etc.)\n // nodeType < 6 works because attributes (2) do not appear as children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n if (elem.nodeType < 6) {\n return false;\n }\n }\n\n return true;\n },\n \"parent\": function parent(elem) {\n return !Expr.pseudos[\"empty\"](elem);\n },\n // Element/input types\n \"header\": function header(elem) {\n return rheader.test(elem.nodeName);\n },\n \"input\": function input(elem) {\n return rinputs.test(elem.nodeName);\n },\n \"button\": function button(elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === \"button\" || name === \"button\";\n },\n \"text\": function text(elem) {\n var attr;\n return elem.nodeName.toLowerCase() === \"input\" && elem.type === \"text\" && ( // Support: IE<8\n // New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\");\n },\n // Position-in-collection\n \"first\": createPositionalPseudo(function () {\n return [0];\n }),\n \"last\": createPositionalPseudo(function (_matchIndexes, length) {\n return [length - 1];\n }),\n \"eq\": createPositionalPseudo(function (_matchIndexes, length, argument) {\n return [argument < 0 ? argument + length : argument];\n }),\n \"even\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 0;\n\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"odd\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 1;\n\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"lt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument > length ? length : argument;\n\n for (; --i >= 0;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"gt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument;\n\n for (; ++i < length;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n })\n }\n };\n Expr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"]; // Add button/input type pseudos\n\n for (i in {\n radio: true,\n checkbox: true,\n file: true,\n password: true,\n image: true\n }) {\n Expr.pseudos[i] = createInputPseudo(i);\n }\n\n for (i in {\n submit: true,\n reset: true\n }) {\n Expr.pseudos[i] = createButtonPseudo(i);\n } // Easy API for creating new setFilters\n\n\n function setFilters() {}\n\n setFilters.prototype = Expr.filters = Expr.pseudos;\n Expr.setFilters = new setFilters();\n\n tokenize = Sizzle.tokenize = function (selector, parseOnly) {\n var matched,\n match,\n tokens,\n type,\n soFar,\n groups,\n preFilters,\n cached = tokenCache[selector + \" \"];\n\n if (cached) {\n return parseOnly ? 0 : cached.slice(0);\n }\n\n soFar = selector;\n groups = [];\n preFilters = Expr.preFilter;\n\n while (soFar) {\n // Comma and first run\n if (!matched || (match = rcomma.exec(soFar))) {\n if (match) {\n // Don't consume trailing commas as valid\n soFar = soFar.slice(match[0].length) || soFar;\n }\n\n groups.push(tokens = []);\n }\n\n matched = false; // Combinators\n\n if (match = rcombinators.exec(soFar)) {\n matched = match.shift();\n tokens.push({\n value: matched,\n // Cast descendant combinators to space\n type: match[0].replace(rtrim, \" \")\n });\n soFar = soFar.slice(matched.length);\n } // Filters\n\n\n for (type in Expr.filter) {\n if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] || (match = preFilters[type](match)))) {\n matched = match.shift();\n tokens.push({\n value: matched,\n type: type,\n matches: match\n });\n soFar = soFar.slice(matched.length);\n }\n }\n\n if (!matched) {\n break;\n }\n } // Return the length of the invalid excess\n // if we're just parsing\n // Otherwise, throw an error or return tokens\n\n\n return parseOnly ? soFar.length : soFar ? Sizzle.error(selector) : // Cache the tokens\n tokenCache(selector, groups).slice(0);\n };\n\n function toSelector(tokens) {\n var i = 0,\n len = tokens.length,\n selector = \"\";\n\n for (; i < len; i++) {\n selector += tokens[i].value;\n }\n\n return selector;\n }\n\n function addCombinator(matcher, combinator, base) {\n var dir = combinator.dir,\n skip = combinator.next,\n key = skip || dir,\n checkNonElements = base && key === \"parentNode\",\n doneName = done++;\n return combinator.first ? // Check against closest ancestor/preceding element\n function (elem, context, xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n return matcher(elem, context, xml);\n }\n }\n\n return false;\n } : // Check against all ancestor/preceding elements\n function (elem, context, xml) {\n var oldCache,\n uniqueCache,\n outerCache,\n newCache = [dirruns, doneName]; // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\n if (xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n if (matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n } else {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n outerCache = elem[expando] || (elem[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[elem.uniqueID] || (outerCache[elem.uniqueID] = {});\n\n if (skip && skip === elem.nodeName.toLowerCase()) {\n elem = elem[dir] || elem;\n } else if ((oldCache = uniqueCache[key]) && oldCache[0] === dirruns && oldCache[1] === doneName) {\n // Assign to newCache so results back-propagate to previous elements\n return newCache[2] = oldCache[2];\n } else {\n // Reuse newcache so results back-propagate to previous elements\n uniqueCache[key] = newCache; // A match means we're done; a fail means we have to keep checking\n\n if (newCache[2] = matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n }\n }\n\n return false;\n };\n }\n\n function elementMatcher(matchers) {\n return matchers.length > 1 ? function (elem, context, xml) {\n var i = matchers.length;\n\n while (i--) {\n if (!matchers[i](elem, context, xml)) {\n return false;\n }\n }\n\n return true;\n } : matchers[0];\n }\n\n function multipleContexts(selector, contexts, results) {\n var i = 0,\n len = contexts.length;\n\n for (; i < len; i++) {\n Sizzle(selector, contexts[i], results);\n }\n\n return results;\n }\n\n function condense(unmatched, map, filter, context, xml) {\n var elem,\n newUnmatched = [],\n i = 0,\n len = unmatched.length,\n mapped = map != null;\n\n for (; i < len; i++) {\n if (elem = unmatched[i]) {\n if (!filter || filter(elem, context, xml)) {\n newUnmatched.push(elem);\n\n if (mapped) {\n map.push(i);\n }\n }\n }\n }\n\n return newUnmatched;\n }\n\n function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) {\n if (postFilter && !postFilter[expando]) {\n postFilter = setMatcher(postFilter);\n }\n\n if (postFinder && !postFinder[expando]) {\n postFinder = setMatcher(postFinder, postSelector);\n }\n\n return markFunction(function (seed, results, context, xml) {\n var temp,\n i,\n elem,\n preMap = [],\n postMap = [],\n preexisting = results.length,\n // Get initial elements from seed or context\n elems = seed || multipleContexts(selector || \"*\", context.nodeType ? [context] : context, []),\n // Prefilter to get matcher input, preserving a map for seed-results synchronization\n matcherIn = preFilter && (seed || !selector) ? condense(elems, preMap, preFilter, context, xml) : elems,\n matcherOut = matcher ? // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n postFinder || (seed ? preFilter : preexisting || postFilter) ? // ...intermediate processing is necessary\n [] : // ...otherwise use results directly\n results : matcherIn; // Find primary matches\n\n if (matcher) {\n matcher(matcherIn, matcherOut, context, xml);\n } // Apply postFilter\n\n\n if (postFilter) {\n temp = condense(matcherOut, postMap);\n postFilter(temp, [], context, xml); // Un-match failing elements by moving them back to matcherIn\n\n i = temp.length;\n\n while (i--) {\n if (elem = temp[i]) {\n matcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem);\n }\n }\n }\n\n if (seed) {\n if (postFinder || preFilter) {\n if (postFinder) {\n // Get the final matcherOut by condensing this intermediate into postFinder contexts\n temp = [];\n i = matcherOut.length;\n\n while (i--) {\n if (elem = matcherOut[i]) {\n // Restore matcherIn since elem is not yet a final match\n temp.push(matcherIn[i] = elem);\n }\n }\n\n postFinder(null, matcherOut = [], temp, xml);\n } // Move matched elements from seed to results to keep them synchronized\n\n\n i = matcherOut.length;\n\n while (i--) {\n if ((elem = matcherOut[i]) && (temp = postFinder ? indexOf(seed, elem) : preMap[i]) > -1) {\n seed[temp] = !(results[temp] = elem);\n }\n }\n } // Add elements to results, through postFinder if defined\n\n } else {\n matcherOut = condense(matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut);\n\n if (postFinder) {\n postFinder(null, results, matcherOut, xml);\n } else {\n push.apply(results, matcherOut);\n }\n }\n });\n }\n\n function matcherFromTokens(tokens) {\n var checkContext,\n matcher,\n j,\n len = tokens.length,\n leadingRelative = Expr.relative[tokens[0].type],\n implicitRelative = leadingRelative || Expr.relative[\" \"],\n i = leadingRelative ? 1 : 0,\n // The foundational matcher ensures that elements are reachable from top-level context(s)\n matchContext = addCombinator(function (elem) {\n return elem === checkContext;\n }, implicitRelative, true),\n matchAnyContext = addCombinator(function (elem) {\n return indexOf(checkContext, elem) > -1;\n }, implicitRelative, true),\n matchers = [function (elem, context, xml) {\n var ret = !leadingRelative && (xml || context !== outermostContext) || ((checkContext = context).nodeType ? matchContext(elem, context, xml) : matchAnyContext(elem, context, xml)); // Avoid hanging onto element (issue #299)\n\n checkContext = null;\n return ret;\n }];\n\n for (; i < len; i++) {\n if (matcher = Expr.relative[tokens[i].type]) {\n matchers = [addCombinator(elementMatcher(matchers), matcher)];\n } else {\n matcher = Expr.filter[tokens[i].type].apply(null, tokens[i].matches); // Return special upon seeing a positional matcher\n\n if (matcher[expando]) {\n // Find the next relative operator (if any) for proper handling\n j = ++i;\n\n for (; j < len; j++) {\n if (Expr.relative[tokens[j].type]) {\n break;\n }\n }\n\n return setMatcher(i > 1 && elementMatcher(matchers), i > 1 && toSelector( // If the preceding token was a descendant combinator, insert an implicit any-element `*`\n tokens.slice(0, i - 1).concat({\n value: tokens[i - 2].type === \" \" ? \"*\" : \"\"\n })).replace(rtrim, \"$1\"), matcher, i < j && matcherFromTokens(tokens.slice(i, j)), j < len && matcherFromTokens(tokens = tokens.slice(j)), j < len && toSelector(tokens));\n }\n\n matchers.push(matcher);\n }\n }\n\n return elementMatcher(matchers);\n }\n\n function matcherFromGroupMatchers(elementMatchers, setMatchers) {\n var bySet = setMatchers.length > 0,\n byElement = elementMatchers.length > 0,\n superMatcher = function superMatcher(seed, context, xml, results, outermost) {\n var elem,\n j,\n matcher,\n matchedCount = 0,\n i = \"0\",\n unmatched = seed && [],\n setMatched = [],\n contextBackup = outermostContext,\n // We must always have either seed elements or outermost context\n elems = seed || byElement && Expr.find[\"TAG\"](\"*\", outermost),\n // Use integer dirruns iff this is the outermost matcher\n dirrunsUnique = dirruns += contextBackup == null ? 1 : Math.random() || 0.1,\n len = elems.length;\n\n if (outermost) {\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n outermostContext = context == document || context || outermost;\n } // Add elements passing elementMatchers directly to results\n // Support: IE<9, Safari\n // Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\n\n for (; i !== len && (elem = elems[i]) != null; i++) {\n if (byElement && elem) {\n j = 0; // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (!context && elem.ownerDocument != document) {\n setDocument(elem);\n xml = !documentIsHTML;\n }\n\n while (matcher = elementMatchers[j++]) {\n if (matcher(elem, context || document, xml)) {\n results.push(elem);\n break;\n }\n }\n\n if (outermost) {\n dirruns = dirrunsUnique;\n }\n } // Track unmatched elements for set filters\n\n\n if (bySet) {\n // They will have gone through all possible matchers\n if (elem = !matcher && elem) {\n matchedCount--;\n } // Lengthen the array for every element, matched or not\n\n\n if (seed) {\n unmatched.push(elem);\n }\n }\n } // `i` is now the count of elements visited above, and adding it to `matchedCount`\n // makes the latter nonnegative.\n\n\n matchedCount += i; // Apply set filters to unmatched elements\n // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n // equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n // no element matchers and no seed.\n // Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n // case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n // numerically zero.\n\n if (bySet && i !== matchedCount) {\n j = 0;\n\n while (matcher = setMatchers[j++]) {\n matcher(unmatched, setMatched, context, xml);\n }\n\n if (seed) {\n // Reintegrate element matches to eliminate the need for sorting\n if (matchedCount > 0) {\n while (i--) {\n if (!(unmatched[i] || setMatched[i])) {\n setMatched[i] = pop.call(results);\n }\n }\n } // Discard index placeholder values to get only actual matches\n\n\n setMatched = condense(setMatched);\n } // Add matches to results\n\n\n push.apply(results, setMatched); // Seedless set matches succeeding multiple successful matchers stipulate sorting\n\n if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) {\n Sizzle.uniqueSort(results);\n }\n } // Override manipulation of globals by nested matchers\n\n\n if (outermost) {\n dirruns = dirrunsUnique;\n outermostContext = contextBackup;\n }\n\n return unmatched;\n };\n\n return bySet ? markFunction(superMatcher) : superMatcher;\n }\n\n compile = Sizzle.compile = function (selector, match\n /* Internal Use Only */\n ) {\n var i,\n setMatchers = [],\n elementMatchers = [],\n cached = compilerCache[selector + \" \"];\n\n if (!cached) {\n // Generate a function of recursive functions that can be used to check each element\n if (!match) {\n match = tokenize(selector);\n }\n\n i = match.length;\n\n while (i--) {\n cached = matcherFromTokens(match[i]);\n\n if (cached[expando]) {\n setMatchers.push(cached);\n } else {\n elementMatchers.push(cached);\n }\n } // Cache the compiled function\n\n\n cached = compilerCache(selector, matcherFromGroupMatchers(elementMatchers, setMatchers)); // Save selector and tokenization\n\n cached.selector = selector;\n }\n\n return cached;\n };\n /**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\n\n\n select = Sizzle.select = function (selector, context, results, seed) {\n var i,\n tokens,\n token,\n type,\n find,\n compiled = typeof selector === \"function\" && selector,\n match = !seed && tokenize(selector = compiled.selector || selector);\n results = results || []; // Try to minimize operations if there is only one selector in the list and no seed\n // (the latter of which guarantees us context)\n\n if (match.length === 1) {\n // Reduce context if the leading compound selector is an ID\n tokens = match[0] = match[0].slice(0);\n\n if (tokens.length > 2 && (token = tokens[0]).type === \"ID\" && context.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) {\n context = (Expr.find[\"ID\"](token.matches[0].replace(runescape, funescape), context) || [])[0];\n\n if (!context) {\n return results; // Precompiled matchers will still verify ancestry, so step up a level\n } else if (compiled) {\n context = context.parentNode;\n }\n\n selector = selector.slice(tokens.shift().value.length);\n } // Fetch a seed set for right-to-left matching\n\n\n i = matchExpr[\"needsContext\"].test(selector) ? 0 : tokens.length;\n\n while (i--) {\n token = tokens[i]; // Abort if we hit a combinator\n\n if (Expr.relative[type = token.type]) {\n break;\n }\n\n if (find = Expr.find[type]) {\n // Search, expanding context for leading sibling combinators\n if (seed = find(token.matches[0].replace(runescape, funescape), rsibling.test(tokens[0].type) && testContext(context.parentNode) || context)) {\n // If seed is empty or no tokens remain, we can return early\n tokens.splice(i, 1);\n selector = seed.length && toSelector(tokens);\n\n if (!selector) {\n push.apply(results, seed);\n return results;\n }\n\n break;\n }\n }\n }\n } // Compile and execute a filtering function if one is not provided\n // Provide `match` to avoid retokenization if we modified the selector above\n\n\n (compiled || compile(selector, match))(seed, context, !documentIsHTML, results, !context || rsibling.test(selector) && testContext(context.parentNode) || context);\n return results;\n }; // One-time assignments\n // Sort stability\n\n\n support.sortStable = expando.split(\"\").sort(sortOrder).join(\"\") === expando; // Support: Chrome 14-35+\n // Always assume duplicates if they aren't passed to the comparison function\n\n support.detectDuplicates = !!hasDuplicate; // Initialize against the default document\n\n setDocument(); // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n // Detached nodes confoundingly follow *each other*\n\n support.sortDetached = assert(function (el) {\n // Should return 1, but returns 4 (following)\n return el.compareDocumentPosition(document.createElement(\"fieldset\")) & 1;\n }); // Support: IE<8\n // Prevent attribute/property \"interpolation\"\n // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\n\n if (!assert(function (el) {\n el.innerHTML = \"\";\n return el.firstChild.getAttribute(\"href\") === \"#\";\n })) {\n addHandle(\"type|href|height|width\", function (elem, name, isXML) {\n if (!isXML) {\n return elem.getAttribute(name, name.toLowerCase() === \"type\" ? 1 : 2);\n }\n });\n } // Support: IE<9\n // Use defaultValue in place of getAttribute(\"value\")\n\n\n if (!support.attributes || !assert(function (el) {\n el.innerHTML = \"\";\n el.firstChild.setAttribute(\"value\", \"\");\n return el.firstChild.getAttribute(\"value\") === \"\";\n })) {\n addHandle(\"value\", function (elem, _name, isXML) {\n if (!isXML && elem.nodeName.toLowerCase() === \"input\") {\n return elem.defaultValue;\n }\n });\n } // Support: IE<9\n // Use getAttributeNode to fetch booleans when getAttribute lies\n\n\n if (!assert(function (el) {\n return el.getAttribute(\"disabled\") == null;\n })) {\n addHandle(booleans, function (elem, name, isXML) {\n var val;\n\n if (!isXML) {\n return elem[name] === true ? name.toLowerCase() : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n }\n });\n }\n\n return Sizzle;\n }(window);\n\n jQuery.find = Sizzle;\n jQuery.expr = Sizzle.selectors; // Deprecated\n\n jQuery.expr[\":\"] = jQuery.expr.pseudos;\n jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\n jQuery.text = Sizzle.getText;\n jQuery.isXMLDoc = Sizzle.isXML;\n jQuery.contains = Sizzle.contains;\n jQuery.escapeSelector = Sizzle.escape;\n\n var dir = function dir(elem, _dir, until) {\n var matched = [],\n truncate = until !== undefined;\n\n while ((elem = elem[_dir]) && elem.nodeType !== 9) {\n if (elem.nodeType === 1) {\n if (truncate && jQuery(elem).is(until)) {\n break;\n }\n\n matched.push(elem);\n }\n }\n\n return matched;\n };\n\n var _siblings = function siblings(n, elem) {\n var matched = [];\n\n for (; n; n = n.nextSibling) {\n if (n.nodeType === 1 && n !== elem) {\n matched.push(n);\n }\n }\n\n return matched;\n };\n\n var rneedsContext = jQuery.expr.match.needsContext;\n\n function nodeName(elem, name) {\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n }\n\n var rsingleTag = /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i; // Implement the identical functionality for filter and not\n\n function winnow(elements, qualifier, not) {\n if (isFunction(qualifier)) {\n return jQuery.grep(elements, function (elem, i) {\n return !!qualifier.call(elem, i, elem) !== not;\n });\n } // Single element\n\n\n if (qualifier.nodeType) {\n return jQuery.grep(elements, function (elem) {\n return elem === qualifier !== not;\n });\n } // Arraylike of elements (jQuery, arguments, Array)\n\n\n if (typeof qualifier !== \"string\") {\n return jQuery.grep(elements, function (elem) {\n return indexOf.call(qualifier, elem) > -1 !== not;\n });\n } // Filtered directly for both simple and complex selectors\n\n\n return jQuery.filter(qualifier, elements, not);\n }\n\n jQuery.filter = function (expr, elems, not) {\n var elem = elems[0];\n\n if (not) {\n expr = \":not(\" + expr + \")\";\n }\n\n if (elems.length === 1 && elem.nodeType === 1) {\n return jQuery.find.matchesSelector(elem, expr) ? [elem] : [];\n }\n\n return jQuery.find.matches(expr, jQuery.grep(elems, function (elem) {\n return elem.nodeType === 1;\n }));\n };\n\n jQuery.fn.extend({\n find: function find(selector) {\n var i,\n ret,\n len = this.length,\n self = this;\n\n if (typeof selector !== \"string\") {\n return this.pushStack(jQuery(selector).filter(function () {\n for (i = 0; i < len; i++) {\n if (jQuery.contains(self[i], this)) {\n return true;\n }\n }\n }));\n }\n\n ret = this.pushStack([]);\n\n for (i = 0; i < len; i++) {\n jQuery.find(selector, self[i], ret);\n }\n\n return len > 1 ? jQuery.uniqueSort(ret) : ret;\n },\n filter: function filter(selector) {\n return this.pushStack(winnow(this, selector || [], false));\n },\n not: function not(selector) {\n return this.pushStack(winnow(this, selector || [], true));\n },\n is: function is(selector) {\n return !!winnow(this, // If this is a positional/relative selector, check membership in the returned set\n // so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n typeof selector === \"string\" && rneedsContext.test(selector) ? jQuery(selector) : selector || [], false).length;\n }\n }); // Initialize a jQuery object\n // A central reference to the root jQuery(document)\n\n var rootjQuery,\n // A simple way to check for HTML strings\n // Prioritize #id over to avoid XSS via location.hash (#9521)\n // Strict HTML recognition (#11290: must start with <)\n // Shortcut simple #id case for speed\n rquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n init = jQuery.fn.init = function (selector, context, root) {\n var match, elem; // HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\n if (!selector) {\n return this;\n } // Method init() accepts an alternate rootjQuery\n // so migrate can support jQuery.sub (gh-2101)\n\n\n root = root || rootjQuery; // Handle HTML strings\n\n if (typeof selector === \"string\") {\n if (selector[0] === \"<\" && selector[selector.length - 1] === \">\" && selector.length >= 3) {\n // Assume that strings that start and end with <> are HTML and skip the regex check\n match = [null, selector, null];\n } else {\n match = rquickExpr.exec(selector);\n } // Match html or make sure no context is specified for #id\n\n\n if (match && (match[1] || !context)) {\n // HANDLE: $(html) -> $(array)\n if (match[1]) {\n context = context instanceof jQuery ? context[0] : context; // Option to run scripts is true for back-compat\n // Intentionally let the error be thrown if parseHTML is not present\n\n jQuery.merge(this, jQuery.parseHTML(match[1], context && context.nodeType ? context.ownerDocument || context : document, true)); // HANDLE: $(html, props)\n\n if (rsingleTag.test(match[1]) && jQuery.isPlainObject(context)) {\n for (match in context) {\n // Properties of context are called as methods if possible\n if (isFunction(this[match])) {\n this[match](context[match]); // ...and otherwise set as attributes\n } else {\n this.attr(match, context[match]);\n }\n }\n }\n\n return this; // HANDLE: $(#id)\n } else {\n elem = document.getElementById(match[2]);\n\n if (elem) {\n // Inject the element directly into the jQuery object\n this[0] = elem;\n this.length = 1;\n }\n\n return this;\n } // HANDLE: $(expr, $(...))\n\n } else if (!context || context.jquery) {\n return (context || root).find(selector); // HANDLE: $(expr, context)\n // (which is just equivalent to: $(context).find(expr)\n } else {\n return this.constructor(context).find(selector);\n } // HANDLE: $(DOMElement)\n\n } else if (selector.nodeType) {\n this[0] = selector;\n this.length = 1;\n return this; // HANDLE: $(function)\n // Shortcut for document ready\n } else if (isFunction(selector)) {\n return root.ready !== undefined ? root.ready(selector) : // Execute immediately if ready is not present\n selector(jQuery);\n }\n\n return jQuery.makeArray(selector, this);\n }; // Give the init function the jQuery prototype for later instantiation\n\n\n init.prototype = jQuery.fn; // Initialize central reference\n\n rootjQuery = jQuery(document);\n var rparentsprev = /^(?:parents|prev(?:Until|All))/,\n // Methods guaranteed to produce a unique set when starting from a unique set\n guaranteedUnique = {\n children: true,\n contents: true,\n next: true,\n prev: true\n };\n jQuery.fn.extend({\n has: function has(target) {\n var targets = jQuery(target, this),\n l = targets.length;\n return this.filter(function () {\n var i = 0;\n\n for (; i < l; i++) {\n if (jQuery.contains(this, targets[i])) {\n return true;\n }\n }\n });\n },\n closest: function closest(selectors, context) {\n var cur,\n i = 0,\n l = this.length,\n matched = [],\n targets = typeof selectors !== \"string\" && jQuery(selectors); // Positional selectors never match, since there's no _selection_ context\n\n if (!rneedsContext.test(selectors)) {\n for (; i < l; i++) {\n for (cur = this[i]; cur && cur !== context; cur = cur.parentNode) {\n // Always skip document fragments\n if (cur.nodeType < 11 && (targets ? targets.index(cur) > -1 : // Don't pass non-elements to Sizzle\n cur.nodeType === 1 && jQuery.find.matchesSelector(cur, selectors))) {\n matched.push(cur);\n break;\n }\n }\n }\n }\n\n return this.pushStack(matched.length > 1 ? jQuery.uniqueSort(matched) : matched);\n },\n // Determine the position of an element within the set\n index: function index(elem) {\n // No argument, return index in parent\n if (!elem) {\n return this[0] && this[0].parentNode ? this.first().prevAll().length : -1;\n } // Index in selector\n\n\n if (typeof elem === \"string\") {\n return indexOf.call(jQuery(elem), this[0]);\n } // Locate the position of the desired element\n\n\n return indexOf.call(this, // If it receives a jQuery object, the first element is used\n elem.jquery ? elem[0] : elem);\n },\n add: function add(selector, context) {\n return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(), jQuery(selector, context))));\n },\n addBack: function addBack(selector) {\n return this.add(selector == null ? this.prevObject : this.prevObject.filter(selector));\n }\n });\n\n function sibling(cur, dir) {\n while ((cur = cur[dir]) && cur.nodeType !== 1) {}\n\n return cur;\n }\n\n jQuery.each({\n parent: function parent(elem) {\n var parent = elem.parentNode;\n return parent && parent.nodeType !== 11 ? parent : null;\n },\n parents: function parents(elem) {\n return dir(elem, \"parentNode\");\n },\n parentsUntil: function parentsUntil(elem, _i, until) {\n return dir(elem, \"parentNode\", until);\n },\n next: function next(elem) {\n return sibling(elem, \"nextSibling\");\n },\n prev: function prev(elem) {\n return sibling(elem, \"previousSibling\");\n },\n nextAll: function nextAll(elem) {\n return dir(elem, \"nextSibling\");\n },\n prevAll: function prevAll(elem) {\n return dir(elem, \"previousSibling\");\n },\n nextUntil: function nextUntil(elem, _i, until) {\n return dir(elem, \"nextSibling\", until);\n },\n prevUntil: function prevUntil(elem, _i, until) {\n return dir(elem, \"previousSibling\", until);\n },\n siblings: function siblings(elem) {\n return _siblings((elem.parentNode || {}).firstChild, elem);\n },\n children: function children(elem) {\n return _siblings(elem.firstChild);\n },\n contents: function contents(elem) {\n if (elem.contentDocument != null && // Support: IE 11+\n // elements with no `data` attribute has an object\n // `contentDocument` with a `null` prototype.\n getProto(elem.contentDocument)) {\n return elem.contentDocument;\n } // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n // Treat the template element as a regular one in browsers that\n // don't support it.\n\n\n if (nodeName(elem, \"template\")) {\n elem = elem.content || elem;\n }\n\n return jQuery.merge([], elem.childNodes);\n }\n }, function (name, fn) {\n jQuery.fn[name] = function (until, selector) {\n var matched = jQuery.map(this, fn, until);\n\n if (name.slice(-5) !== \"Until\") {\n selector = until;\n }\n\n if (selector && typeof selector === \"string\") {\n matched = jQuery.filter(selector, matched);\n }\n\n if (this.length > 1) {\n // Remove duplicates\n if (!guaranteedUnique[name]) {\n jQuery.uniqueSort(matched);\n } // Reverse order for parents* and prev-derivatives\n\n\n if (rparentsprev.test(name)) {\n matched.reverse();\n }\n }\n\n return this.pushStack(matched);\n };\n });\n var rnothtmlwhite = /[^\\x20\\t\\r\\n\\f]+/g; // Convert String-formatted options into Object-formatted ones\n\n function createOptions(options) {\n var object = {};\n jQuery.each(options.match(rnothtmlwhite) || [], function (_, flag) {\n object[flag] = true;\n });\n return object;\n }\n /*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\n\n\n jQuery.Callbacks = function (options) {\n // Convert options from String-formatted to Object-formatted if needed\n // (we check in cache first)\n options = typeof options === \"string\" ? createOptions(options) : jQuery.extend({}, options);\n\n var // Flag to know if list is currently firing\n firing,\n // Last fire value for non-forgettable lists\n memory,\n // Flag to know if list was already fired\n _fired,\n // Flag to prevent firing\n _locked,\n // Actual callback list\n list = [],\n // Queue of execution data for repeatable lists\n queue = [],\n // Index of currently firing callback (modified by add/remove as needed)\n firingIndex = -1,\n // Fire callbacks\n fire = function fire() {\n // Enforce single-firing\n _locked = _locked || options.once; // Execute callbacks for all pending executions,\n // respecting firingIndex overrides and runtime changes\n\n _fired = firing = true;\n\n for (; queue.length; firingIndex = -1) {\n memory = queue.shift();\n\n while (++firingIndex < list.length) {\n // Run callback and check for early termination\n if (list[firingIndex].apply(memory[0], memory[1]) === false && options.stopOnFalse) {\n // Jump to end and forget the data so .add doesn't re-fire\n firingIndex = list.length;\n memory = false;\n }\n }\n } // Forget the data if we're done with it\n\n\n if (!options.memory) {\n memory = false;\n }\n\n firing = false; // Clean up if we're done firing for good\n\n if (_locked) {\n // Keep an empty list if we have data for future add calls\n if (memory) {\n list = []; // Otherwise, this object is spent\n } else {\n list = \"\";\n }\n }\n },\n // Actual Callbacks object\n self = {\n // Add a callback or a collection of callbacks to the list\n add: function add() {\n if (list) {\n // If we have memory from a past run, we should fire after adding\n if (memory && !firing) {\n firingIndex = list.length - 1;\n queue.push(memory);\n }\n\n (function add(args) {\n jQuery.each(args, function (_, arg) {\n if (isFunction(arg)) {\n if (!options.unique || !self.has(arg)) {\n list.push(arg);\n }\n } else if (arg && arg.length && toType(arg) !== \"string\") {\n // Inspect recursively\n add(arg);\n }\n });\n })(arguments);\n\n if (memory && !firing) {\n fire();\n }\n }\n\n return this;\n },\n // Remove a callback from the list\n remove: function remove() {\n jQuery.each(arguments, function (_, arg) {\n var index;\n\n while ((index = jQuery.inArray(arg, list, index)) > -1) {\n list.splice(index, 1); // Handle firing indexes\n\n if (index <= firingIndex) {\n firingIndex--;\n }\n }\n });\n return this;\n },\n // Check if a given callback is in the list.\n // If no argument is given, return whether or not list has callbacks attached.\n has: function has(fn) {\n return fn ? jQuery.inArray(fn, list) > -1 : list.length > 0;\n },\n // Remove all callbacks from the list\n empty: function empty() {\n if (list) {\n list = [];\n }\n\n return this;\n },\n // Disable .fire and .add\n // Abort any current/pending executions\n // Clear all callbacks and values\n disable: function disable() {\n _locked = queue = [];\n list = memory = \"\";\n return this;\n },\n disabled: function disabled() {\n return !list;\n },\n // Disable .fire\n // Also disable .add unless we have memory (since it would have no effect)\n // Abort any pending executions\n lock: function lock() {\n _locked = queue = [];\n\n if (!memory && !firing) {\n list = memory = \"\";\n }\n\n return this;\n },\n locked: function locked() {\n return !!_locked;\n },\n // Call all callbacks with the given context and arguments\n fireWith: function fireWith(context, args) {\n if (!_locked) {\n args = args || [];\n args = [context, args.slice ? args.slice() : args];\n queue.push(args);\n\n if (!firing) {\n fire();\n }\n }\n\n return this;\n },\n // Call all the callbacks with the given arguments\n fire: function fire() {\n self.fireWith(this, arguments);\n return this;\n },\n // To know if the callbacks have already been called at least once\n fired: function fired() {\n return !!_fired;\n }\n };\n\n return self;\n };\n\n function Identity(v) {\n return v;\n }\n\n function Thrower(ex) {\n throw ex;\n }\n\n function adoptValue(value, resolve, reject, noValue) {\n var method;\n\n try {\n // Check for promise aspect first to privilege synchronous behavior\n if (value && isFunction(method = value.promise)) {\n method.call(value).done(resolve).fail(reject); // Other thenables\n } else if (value && isFunction(method = value.then)) {\n method.call(value, resolve, reject); // Other non-thenables\n } else {\n // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n // * false: [ value ].slice( 0 ) => resolve( value )\n // * true: [ value ].slice( 1 ) => resolve()\n resolve.apply(undefined, [value].slice(noValue));\n } // For Promises/A+, convert exceptions into rejections\n // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n // Deferred#then to conditionally suppress rejection.\n\n } catch (value) {\n // Support: Android 4.0 only\n // Strict mode functions invoked without .call/.apply get global-object context\n reject.apply(undefined, [value]);\n }\n }\n\n jQuery.extend({\n Deferred: function Deferred(func) {\n var tuples = [// action, add listener, callbacks,\n // ... .then handlers, argument index, [final state]\n [\"notify\", \"progress\", jQuery.Callbacks(\"memory\"), jQuery.Callbacks(\"memory\"), 2], [\"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 0, \"resolved\"], [\"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 1, \"rejected\"]],\n _state = \"pending\",\n _promise = {\n state: function state() {\n return _state;\n },\n always: function always() {\n deferred.done(arguments).fail(arguments);\n return this;\n },\n \"catch\": function _catch(fn) {\n return _promise.then(null, fn);\n },\n // Keep pipe for back-compat\n pipe: function\n /* fnDone, fnFail, fnProgress */\n pipe() {\n var fns = arguments;\n return jQuery.Deferred(function (newDefer) {\n jQuery.each(tuples, function (_i, tuple) {\n // Map tuples (progress, done, fail) to arguments (done, fail, progress)\n var fn = isFunction(fns[tuple[4]]) && fns[tuple[4]]; // deferred.progress(function() { bind to newDefer or newDefer.notify })\n // deferred.done(function() { bind to newDefer or newDefer.resolve })\n // deferred.fail(function() { bind to newDefer or newDefer.reject })\n\n deferred[tuple[1]](function () {\n var returned = fn && fn.apply(this, arguments);\n\n if (returned && isFunction(returned.promise)) {\n returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject);\n } else {\n newDefer[tuple[0] + \"With\"](this, fn ? [returned] : arguments);\n }\n });\n });\n fns = null;\n }).promise();\n },\n then: function then(onFulfilled, onRejected, onProgress) {\n var maxDepth = 0;\n\n function resolve(depth, deferred, handler, special) {\n return function () {\n var that = this,\n args = arguments,\n mightThrow = function mightThrow() {\n var returned, then; // Support: Promises/A+ section 2.3.3.3.3\n // https://promisesaplus.com/#point-59\n // Ignore double-resolution attempts\n\n if (depth < maxDepth) {\n return;\n }\n\n returned = handler.apply(that, args); // Support: Promises/A+ section 2.3.1\n // https://promisesaplus.com/#point-48\n\n if (returned === deferred.promise()) {\n throw new TypeError(\"Thenable self-resolution\");\n } // Support: Promises/A+ sections 2.3.3.1, 3.5\n // https://promisesaplus.com/#point-54\n // https://promisesaplus.com/#point-75\n // Retrieve `then` only once\n\n\n then = returned && ( // Support: Promises/A+ section 2.3.4\n // https://promisesaplus.com/#point-64\n // Only check objects and functions for thenability\n _typeof(returned) === \"object\" || typeof returned === \"function\") && returned.then; // Handle a returned thenable\n\n if (isFunction(then)) {\n // Special processors (notify) just wait for resolution\n if (special) {\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special)); // Normal processors (resolve) also hook into progress\n } else {\n // ...and disregard older resolution values\n maxDepth++;\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special), resolve(maxDepth, deferred, Identity, deferred.notifyWith));\n } // Handle all other returned values\n\n } else {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Identity) {\n that = undefined;\n args = [returned];\n } // Process the value(s)\n // Default process is resolve\n\n\n (special || deferred.resolveWith)(that, args);\n }\n },\n // Only normal processors (resolve) catch and reject exceptions\n process = special ? mightThrow : function () {\n try {\n mightThrow();\n } catch (e) {\n if (jQuery.Deferred.exceptionHook) {\n jQuery.Deferred.exceptionHook(e, process.stackTrace);\n } // Support: Promises/A+ section 2.3.3.3.4.1\n // https://promisesaplus.com/#point-61\n // Ignore post-resolution exceptions\n\n\n if (depth + 1 >= maxDepth) {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Thrower) {\n that = undefined;\n args = [e];\n }\n\n deferred.rejectWith(that, args);\n }\n }\n }; // Support: Promises/A+ section 2.3.3.3.1\n // https://promisesaplus.com/#point-57\n // Re-resolve promises immediately to dodge false rejection from\n // subsequent errors\n\n\n if (depth) {\n process();\n } else {\n // Call an optional hook to record the stack, in case of exception\n // since it's otherwise lost when execution goes async\n if (jQuery.Deferred.getStackHook) {\n process.stackTrace = jQuery.Deferred.getStackHook();\n }\n\n window.setTimeout(process);\n }\n };\n }\n\n return jQuery.Deferred(function (newDefer) {\n // progress_handlers.add( ... )\n tuples[0][3].add(resolve(0, newDefer, isFunction(onProgress) ? onProgress : Identity, newDefer.notifyWith)); // fulfilled_handlers.add( ... )\n\n tuples[1][3].add(resolve(0, newDefer, isFunction(onFulfilled) ? onFulfilled : Identity)); // rejected_handlers.add( ... )\n\n tuples[2][3].add(resolve(0, newDefer, isFunction(onRejected) ? onRejected : Thrower));\n }).promise();\n },\n // Get a promise for this deferred\n // If obj is provided, the promise aspect is added to the object\n promise: function promise(obj) {\n return obj != null ? jQuery.extend(obj, _promise) : _promise;\n }\n },\n deferred = {}; // Add list-specific methods\n\n jQuery.each(tuples, function (i, tuple) {\n var list = tuple[2],\n stateString = tuple[5]; // promise.progress = list.add\n // promise.done = list.add\n // promise.fail = list.add\n\n _promise[tuple[1]] = list.add; // Handle state\n\n if (stateString) {\n list.add(function () {\n // state = \"resolved\" (i.e., fulfilled)\n // state = \"rejected\"\n _state = stateString;\n }, // rejected_callbacks.disable\n // fulfilled_callbacks.disable\n tuples[3 - i][2].disable, // rejected_handlers.disable\n // fulfilled_handlers.disable\n tuples[3 - i][3].disable, // progress_callbacks.lock\n tuples[0][2].lock, // progress_handlers.lock\n tuples[0][3].lock);\n } // progress_handlers.fire\n // fulfilled_handlers.fire\n // rejected_handlers.fire\n\n\n list.add(tuple[3].fire); // deferred.notify = function() { deferred.notifyWith(...) }\n // deferred.resolve = function() { deferred.resolveWith(...) }\n // deferred.reject = function() { deferred.rejectWith(...) }\n\n deferred[tuple[0]] = function () {\n deferred[tuple[0] + \"With\"](this === deferred ? undefined : this, arguments);\n return this;\n }; // deferred.notifyWith = list.fireWith\n // deferred.resolveWith = list.fireWith\n // deferred.rejectWith = list.fireWith\n\n\n deferred[tuple[0] + \"With\"] = list.fireWith;\n }); // Make the deferred a promise\n\n _promise.promise(deferred); // Call given func if any\n\n\n if (func) {\n func.call(deferred, deferred);\n } // All done!\n\n\n return deferred;\n },\n // Deferred helper\n when: function when(singleValue) {\n var // count of uncompleted subordinates\n remaining = arguments.length,\n // count of unprocessed arguments\n i = remaining,\n // subordinate fulfillment data\n resolveContexts = Array(i),\n resolveValues = _slice.call(arguments),\n // the primary Deferred\n primary = jQuery.Deferred(),\n // subordinate callback factory\n updateFunc = function updateFunc(i) {\n return function (value) {\n resolveContexts[i] = this;\n resolveValues[i] = arguments.length > 1 ? _slice.call(arguments) : value;\n\n if (! --remaining) {\n primary.resolveWith(resolveContexts, resolveValues);\n }\n };\n }; // Single- and empty arguments are adopted like Promise.resolve\n\n\n if (remaining <= 1) {\n adoptValue(singleValue, primary.done(updateFunc(i)).resolve, primary.reject, !remaining); // Use .then() to unwrap secondary thenables (cf. gh-3000)\n\n if (primary.state() === \"pending\" || isFunction(resolveValues[i] && resolveValues[i].then)) {\n return primary.then();\n }\n } // Multiple arguments are aggregated like Promise.all array elements\n\n\n while (i--) {\n adoptValue(resolveValues[i], updateFunc(i), primary.reject);\n }\n\n return primary.promise();\n }\n }); // These usually indicate a programmer mistake during development,\n // warn about them ASAP rather than swallowing them by default.\n\n var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\n jQuery.Deferred.exceptionHook = function (error, stack) {\n // Support: IE 8 - 9 only\n // Console exists when dev tools are open, which can happen at any time\n if (window.console && window.console.warn && error && rerrorNames.test(error.name)) {\n window.console.warn(\"jQuery.Deferred exception: \" + error.message, error.stack, stack);\n }\n };\n\n jQuery.readyException = function (error) {\n window.setTimeout(function () {\n throw error;\n });\n }; // The deferred used on DOM ready\n\n\n var readyList = jQuery.Deferred();\n\n jQuery.fn.ready = function (fn) {\n readyList.then(fn) // Wrap jQuery.readyException in a function so that the lookup\n // happens at the time of error handling instead of callback\n // registration.\n .catch(function (error) {\n jQuery.readyException(error);\n });\n return this;\n };\n\n jQuery.extend({\n // Is the DOM ready to be used? Set to true once it occurs.\n isReady: false,\n // A counter to track how many items to wait for before\n // the ready event fires. See #6781\n readyWait: 1,\n // Handle when the DOM is ready\n ready: function ready(wait) {\n // Abort if there are pending holds or we're already ready\n if (wait === true ? --jQuery.readyWait : jQuery.isReady) {\n return;\n } // Remember that the DOM is ready\n\n\n jQuery.isReady = true; // If a normal DOM Ready event fired, decrement, and wait if need be\n\n if (wait !== true && --jQuery.readyWait > 0) {\n return;\n } // If there are functions bound, to execute\n\n\n readyList.resolveWith(document, [jQuery]);\n }\n });\n jQuery.ready.then = readyList.then; // The ready event handler and self cleanup method\n\n function completed() {\n document.removeEventListener(\"DOMContentLoaded\", completed);\n window.removeEventListener(\"load\", completed);\n jQuery.ready();\n } // Catch cases where $(document).ready() is called\n // after the browser event has already occurred.\n // Support: IE <=9 - 10 only\n // Older IE sometimes signals \"interactive\" too soon\n\n\n if (document.readyState === \"complete\" || document.readyState !== \"loading\" && !document.documentElement.doScroll) {\n // Handle it asynchronously to allow scripts the opportunity to delay ready\n window.setTimeout(jQuery.ready);\n } else {\n // Use the handy event callback\n document.addEventListener(\"DOMContentLoaded\", completed); // A fallback to window.onload, that will always work\n\n window.addEventListener(\"load\", completed);\n } // Multifunctional method to get and set values of a collection\n // The value/s can optionally be executed if it's a function\n\n\n var access = function access(elems, fn, key, value, chainable, emptyGet, raw) {\n var i = 0,\n len = elems.length,\n bulk = key == null; // Sets many values\n\n if (toType(key) === \"object\") {\n chainable = true;\n\n for (i in key) {\n access(elems, fn, i, key[i], true, emptyGet, raw);\n } // Sets one value\n\n } else if (value !== undefined) {\n chainable = true;\n\n if (!isFunction(value)) {\n raw = true;\n }\n\n if (bulk) {\n // Bulk operations run against the entire set\n if (raw) {\n fn.call(elems, value);\n fn = null; // ...except when executing function values\n } else {\n bulk = fn;\n\n fn = function fn(elem, _key, value) {\n return bulk.call(jQuery(elem), value);\n };\n }\n }\n\n if (fn) {\n for (; i < len; i++) {\n fn(elems[i], key, raw ? value : value.call(elems[i], i, fn(elems[i], key)));\n }\n }\n }\n\n if (chainable) {\n return elems;\n } // Gets\n\n\n if (bulk) {\n return fn.call(elems);\n }\n\n return len ? fn(elems[0], key) : emptyGet;\n }; // Matches dashed string for camelizing\n\n\n var rmsPrefix = /^-ms-/,\n rdashAlpha = /-([a-z])/g; // Used by camelCase as callback to replace()\n\n function fcamelCase(_all, letter) {\n return letter.toUpperCase();\n } // Convert dashed to camelCase; used by the css and data modules\n // Support: IE <=9 - 11, Edge 12 - 15\n // Microsoft forgot to hump their vendor prefix (#9572)\n\n\n function camelCase(string) {\n return string.replace(rmsPrefix, \"ms-\").replace(rdashAlpha, fcamelCase);\n }\n\n var acceptData = function acceptData(owner) {\n // Accepts only:\n // - Node\n // - Node.ELEMENT_NODE\n // - Node.DOCUMENT_NODE\n // - Object\n // - Any\n return owner.nodeType === 1 || owner.nodeType === 9 || !+owner.nodeType;\n };\n\n function Data() {\n this.expando = jQuery.expando + Data.uid++;\n }\n\n Data.uid = 1;\n Data.prototype = {\n cache: function cache(owner) {\n // Check if the owner object already has a cache\n var value = owner[this.expando]; // If not, create one\n\n if (!value) {\n value = {}; // We can accept data for non-element nodes in modern browsers,\n // but we should not, see #8335.\n // Always return an empty object.\n\n if (acceptData(owner)) {\n // If it is a node unlikely to be stringify-ed or looped over\n // use plain assignment\n if (owner.nodeType) {\n owner[this.expando] = value; // Otherwise secure it in a non-enumerable property\n // configurable must be true to allow the property to be\n // deleted when data is removed\n } else {\n Object.defineProperty(owner, this.expando, {\n value: value,\n configurable: true\n });\n }\n }\n }\n\n return value;\n },\n set: function set(owner, data, value) {\n var prop,\n cache = this.cache(owner); // Handle: [ owner, key, value ] args\n // Always use camelCase key (gh-2257)\n\n if (typeof data === \"string\") {\n cache[camelCase(data)] = value; // Handle: [ owner, { properties } ] args\n } else {\n // Copy the properties one-by-one to the cache object\n for (prop in data) {\n cache[camelCase(prop)] = data[prop];\n }\n }\n\n return cache;\n },\n get: function get(owner, key) {\n return key === undefined ? this.cache(owner) : // Always use camelCase key (gh-2257)\n owner[this.expando] && owner[this.expando][camelCase(key)];\n },\n access: function access(owner, key, value) {\n // In cases where either:\n //\n // 1. No key was specified\n // 2. A string key was specified, but no value provided\n //\n // Take the \"read\" path and allow the get method to determine\n // which value to return, respectively either:\n //\n // 1. The entire cache object\n // 2. The data stored at the key\n //\n if (key === undefined || key && typeof key === \"string\" && value === undefined) {\n return this.get(owner, key);\n } // When the key is not a string, or both a key and value\n // are specified, set or extend (existing objects) with either:\n //\n // 1. An object of properties\n // 2. A key and value\n //\n\n\n this.set(owner, key, value); // Since the \"set\" path can have two possible entry points\n // return the expected data based on which path was taken[*]\n\n return value !== undefined ? value : key;\n },\n remove: function remove(owner, key) {\n var i,\n cache = owner[this.expando];\n\n if (cache === undefined) {\n return;\n }\n\n if (key !== undefined) {\n // Support array or space separated string of keys\n if (Array.isArray(key)) {\n // If key is an array of keys...\n // We always set camelCase keys, so remove that.\n key = key.map(camelCase);\n } else {\n key = camelCase(key); // If a key with the spaces exists, use it.\n // Otherwise, create an array by matching non-whitespace\n\n key = key in cache ? [key] : key.match(rnothtmlwhite) || [];\n }\n\n i = key.length;\n\n while (i--) {\n delete cache[key[i]];\n }\n } // Remove the expando if there's no more data\n\n\n if (key === undefined || jQuery.isEmptyObject(cache)) {\n // Support: Chrome <=35 - 45\n // Webkit & Blink performance suffers when deleting properties\n // from DOM nodes, so set to undefined instead\n // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n if (owner.nodeType) {\n owner[this.expando] = undefined;\n } else {\n delete owner[this.expando];\n }\n }\n },\n hasData: function hasData(owner) {\n var cache = owner[this.expando];\n return cache !== undefined && !jQuery.isEmptyObject(cache);\n }\n };\n var dataPriv = new Data();\n var dataUser = new Data(); //\tImplementation Summary\n //\n //\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n //\t2. Improve the module's maintainability by reducing the storage\n //\t\tpaths to a single mechanism.\n //\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n //\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n //\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n //\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\n var rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n rmultiDash = /[A-Z]/g;\n\n function getData(data) {\n if (data === \"true\") {\n return true;\n }\n\n if (data === \"false\") {\n return false;\n }\n\n if (data === \"null\") {\n return null;\n } // Only convert to a number if it doesn't change the string\n\n\n if (data === +data + \"\") {\n return +data;\n }\n\n if (rbrace.test(data)) {\n return JSON.parse(data);\n }\n\n return data;\n }\n\n function dataAttr(elem, key, data) {\n var name; // If nothing was found internally, try to fetch any\n // data from the HTML5 data-* attribute\n\n if (data === undefined && elem.nodeType === 1) {\n name = \"data-\" + key.replace(rmultiDash, \"-$&\").toLowerCase();\n data = elem.getAttribute(name);\n\n if (typeof data === \"string\") {\n try {\n data = getData(data);\n } catch (e) {} // Make sure we set the data so it isn't changed later\n\n\n dataUser.set(elem, key, data);\n } else {\n data = undefined;\n }\n }\n\n return data;\n }\n\n jQuery.extend({\n hasData: function hasData(elem) {\n return dataUser.hasData(elem) || dataPriv.hasData(elem);\n },\n data: function data(elem, name, _data) {\n return dataUser.access(elem, name, _data);\n },\n removeData: function removeData(elem, name) {\n dataUser.remove(elem, name);\n },\n // TODO: Now that all calls to _data and _removeData have been replaced\n // with direct calls to dataPriv methods, these can be deprecated.\n _data: function _data(elem, name, data) {\n return dataPriv.access(elem, name, data);\n },\n _removeData: function _removeData(elem, name) {\n dataPriv.remove(elem, name);\n }\n });\n jQuery.fn.extend({\n data: function data(key, value) {\n var i,\n name,\n data,\n elem = this[0],\n attrs = elem && elem.attributes; // Gets all values\n\n if (key === undefined) {\n if (this.length) {\n data = dataUser.get(elem);\n\n if (elem.nodeType === 1 && !dataPriv.get(elem, \"hasDataAttrs\")) {\n i = attrs.length;\n\n while (i--) {\n // Support: IE 11 only\n // The attrs elements can be null (#14894)\n if (attrs[i]) {\n name = attrs[i].name;\n\n if (name.indexOf(\"data-\") === 0) {\n name = camelCase(name.slice(5));\n dataAttr(elem, name, data[name]);\n }\n }\n }\n\n dataPriv.set(elem, \"hasDataAttrs\", true);\n }\n }\n\n return data;\n } // Sets multiple values\n\n\n if (_typeof(key) === \"object\") {\n return this.each(function () {\n dataUser.set(this, key);\n });\n }\n\n return access(this, function (value) {\n var data; // The calling jQuery object (element matches) is not empty\n // (and therefore has an element appears at this[ 0 ]) and the\n // `value` parameter was not undefined. An empty jQuery object\n // will result in `undefined` for elem = this[ 0 ] which will\n // throw an exception if an attempt to read a data cache is made.\n\n if (elem && value === undefined) {\n // Attempt to get data from the cache\n // The key will always be camelCased in Data\n data = dataUser.get(elem, key);\n\n if (data !== undefined) {\n return data;\n } // Attempt to \"discover\" the data in\n // HTML5 custom data-* attrs\n\n\n data = dataAttr(elem, key);\n\n if (data !== undefined) {\n return data;\n } // We tried really hard, but the data doesn't exist.\n\n\n return;\n } // Set the data...\n\n\n this.each(function () {\n // We always store the camelCased key\n dataUser.set(this, key, value);\n });\n }, null, value, arguments.length > 1, null, true);\n },\n removeData: function removeData(key) {\n return this.each(function () {\n dataUser.remove(this, key);\n });\n }\n });\n jQuery.extend({\n queue: function queue(elem, type, data) {\n var queue;\n\n if (elem) {\n type = (type || \"fx\") + \"queue\";\n queue = dataPriv.get(elem, type); // Speed up dequeue by getting out quickly if this is just a lookup\n\n if (data) {\n if (!queue || Array.isArray(data)) {\n queue = dataPriv.access(elem, type, jQuery.makeArray(data));\n } else {\n queue.push(data);\n }\n }\n\n return queue || [];\n }\n },\n dequeue: function dequeue(elem, type) {\n type = type || \"fx\";\n\n var queue = jQuery.queue(elem, type),\n startLength = queue.length,\n fn = queue.shift(),\n hooks = jQuery._queueHooks(elem, type),\n next = function next() {\n jQuery.dequeue(elem, type);\n }; // If the fx queue is dequeued, always remove the progress sentinel\n\n\n if (fn === \"inprogress\") {\n fn = queue.shift();\n startLength--;\n }\n\n if (fn) {\n // Add a progress sentinel to prevent the fx queue from being\n // automatically dequeued\n if (type === \"fx\") {\n queue.unshift(\"inprogress\");\n } // Clear up the last queue stop function\n\n\n delete hooks.stop;\n fn.call(elem, next, hooks);\n }\n\n if (!startLength && hooks) {\n hooks.empty.fire();\n }\n },\n // Not public - generate a queueHooks object, or return the current one\n _queueHooks: function _queueHooks(elem, type) {\n var key = type + \"queueHooks\";\n return dataPriv.get(elem, key) || dataPriv.access(elem, key, {\n empty: jQuery.Callbacks(\"once memory\").add(function () {\n dataPriv.remove(elem, [type + \"queue\", key]);\n })\n });\n }\n });\n jQuery.fn.extend({\n queue: function queue(type, data) {\n var setter = 2;\n\n if (typeof type !== \"string\") {\n data = type;\n type = \"fx\";\n setter--;\n }\n\n if (arguments.length < setter) {\n return jQuery.queue(this[0], type);\n }\n\n return data === undefined ? this : this.each(function () {\n var queue = jQuery.queue(this, type, data); // Ensure a hooks for this queue\n\n jQuery._queueHooks(this, type);\n\n if (type === \"fx\" && queue[0] !== \"inprogress\") {\n jQuery.dequeue(this, type);\n }\n });\n },\n dequeue: function dequeue(type) {\n return this.each(function () {\n jQuery.dequeue(this, type);\n });\n },\n clearQueue: function clearQueue(type) {\n return this.queue(type || \"fx\", []);\n },\n // Get a promise resolved when queues of a certain type\n // are emptied (fx is the type by default)\n promise: function promise(type, obj) {\n var tmp,\n count = 1,\n defer = jQuery.Deferred(),\n elements = this,\n i = this.length,\n resolve = function resolve() {\n if (! --count) {\n defer.resolveWith(elements, [elements]);\n }\n };\n\n if (typeof type !== \"string\") {\n obj = type;\n type = undefined;\n }\n\n type = type || \"fx\";\n\n while (i--) {\n tmp = dataPriv.get(elements[i], type + \"queueHooks\");\n\n if (tmp && tmp.empty) {\n count++;\n tmp.empty.add(resolve);\n }\n }\n\n resolve();\n return defer.promise(obj);\n }\n });\n var pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\n var rcssNum = new RegExp(\"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\");\n var cssExpand = [\"Top\", \"Right\", \"Bottom\", \"Left\"];\n var documentElement = document.documentElement;\n\n var isAttached = function isAttached(elem) {\n return jQuery.contains(elem.ownerDocument, elem);\n },\n composed = {\n composed: true\n }; // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n // Check attachment across shadow DOM boundaries when possible (gh-3504)\n // Support: iOS 10.0-10.2 only\n // Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n // leading to errors. We need to check for `getRootNode`.\n\n\n if (documentElement.getRootNode) {\n isAttached = function isAttached(elem) {\n return jQuery.contains(elem.ownerDocument, elem) || elem.getRootNode(composed) === elem.ownerDocument;\n };\n }\n\n var isHiddenWithinTree = function isHiddenWithinTree(elem, el) {\n // isHiddenWithinTree might be called from jQuery#filter function;\n // in that case, element will be second argument\n elem = el || elem; // Inline style trumps all\n\n return elem.style.display === \"none\" || elem.style.display === \"\" && // Otherwise, check computed style\n // Support: Firefox <=43 - 45\n // Disconnected elements can have computed display: none, so first confirm that elem is\n // in the document.\n isAttached(elem) && jQuery.css(elem, \"display\") === \"none\";\n };\n\n function adjustCSS(elem, prop, valueParts, tween) {\n var adjusted,\n scale,\n maxIterations = 20,\n currentValue = tween ? function () {\n return tween.cur();\n } : function () {\n return jQuery.css(elem, prop, \"\");\n },\n initial = currentValue(),\n unit = valueParts && valueParts[3] || (jQuery.cssNumber[prop] ? \"\" : \"px\"),\n // Starting value computation is required for potential unit mismatches\n initialInUnit = elem.nodeType && (jQuery.cssNumber[prop] || unit !== \"px\" && +initial) && rcssNum.exec(jQuery.css(elem, prop));\n\n if (initialInUnit && initialInUnit[3] !== unit) {\n // Support: Firefox <=54\n // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n initial = initial / 2; // Trust units reported by jQuery.css\n\n unit = unit || initialInUnit[3]; // Iteratively approximate from a nonzero starting point\n\n initialInUnit = +initial || 1;\n\n while (maxIterations--) {\n // Evaluate and update our best guess (doubling guesses that zero out).\n // Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n jQuery.style(elem, prop, initialInUnit + unit);\n\n if ((1 - scale) * (1 - (scale = currentValue() / initial || 0.5)) <= 0) {\n maxIterations = 0;\n }\n\n initialInUnit = initialInUnit / scale;\n }\n\n initialInUnit = initialInUnit * 2;\n jQuery.style(elem, prop, initialInUnit + unit); // Make sure we update the tween properties later on\n\n valueParts = valueParts || [];\n }\n\n if (valueParts) {\n initialInUnit = +initialInUnit || +initial || 0; // Apply relative offset (+=/-=) if specified\n\n adjusted = valueParts[1] ? initialInUnit + (valueParts[1] + 1) * valueParts[2] : +valueParts[2];\n\n if (tween) {\n tween.unit = unit;\n tween.start = initialInUnit;\n tween.end = adjusted;\n }\n }\n\n return adjusted;\n }\n\n var defaultDisplayMap = {};\n\n function getDefaultDisplay(elem) {\n var temp,\n doc = elem.ownerDocument,\n nodeName = elem.nodeName,\n display = defaultDisplayMap[nodeName];\n\n if (display) {\n return display;\n }\n\n temp = doc.body.appendChild(doc.createElement(nodeName));\n display = jQuery.css(temp, \"display\");\n temp.parentNode.removeChild(temp);\n\n if (display === \"none\") {\n display = \"block\";\n }\n\n defaultDisplayMap[nodeName] = display;\n return display;\n }\n\n function showHide(elements, show) {\n var display,\n elem,\n values = [],\n index = 0,\n length = elements.length; // Determine new display value for elements that need to change\n\n for (; index < length; index++) {\n elem = elements[index];\n\n if (!elem.style) {\n continue;\n }\n\n display = elem.style.display;\n\n if (show) {\n // Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n // check is required in this first loop unless we have a nonempty display value (either\n // inline or about-to-be-restored)\n if (display === \"none\") {\n values[index] = dataPriv.get(elem, \"display\") || null;\n\n if (!values[index]) {\n elem.style.display = \"\";\n }\n }\n\n if (elem.style.display === \"\" && isHiddenWithinTree(elem)) {\n values[index] = getDefaultDisplay(elem);\n }\n } else {\n if (display !== \"none\") {\n values[index] = \"none\"; // Remember what we're overwriting\n\n dataPriv.set(elem, \"display\", display);\n }\n }\n } // Set the display of the elements in a second loop to avoid constant reflow\n\n\n for (index = 0; index < length; index++) {\n if (values[index] != null) {\n elements[index].style.display = values[index];\n }\n }\n\n return elements;\n }\n\n jQuery.fn.extend({\n show: function show() {\n return showHide(this, true);\n },\n hide: function hide() {\n return showHide(this);\n },\n toggle: function toggle(state) {\n if (typeof state === \"boolean\") {\n return state ? this.show() : this.hide();\n }\n\n return this.each(function () {\n if (isHiddenWithinTree(this)) {\n jQuery(this).show();\n } else {\n jQuery(this).hide();\n }\n });\n }\n });\n var rcheckableType = /^(?:checkbox|radio)$/i;\n var rtagName = /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i;\n var rscriptType = /^$|^module$|\\/(?:java|ecma)script/i;\n\n (function () {\n var fragment = document.createDocumentFragment(),\n div = fragment.appendChild(document.createElement(\"div\")),\n input = document.createElement(\"input\"); // Support: Android 4.0 - 4.3 only\n // Check state lost if the name is set (#11217)\n // Support: Windows Web Apps (WWA)\n // `name` and `type` must use .setAttribute for WWA (#14901)\n\n input.setAttribute(\"type\", \"radio\");\n input.setAttribute(\"checked\", \"checked\");\n input.setAttribute(\"name\", \"t\");\n div.appendChild(input); // Support: Android <=4.1 only\n // Older WebKit doesn't clone checked state correctly in fragments\n\n support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked; // Support: IE <=11 only\n // Make sure textarea (and checkbox) defaultValue is properly cloned\n\n div.innerHTML = \"\";\n support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue; // Support: IE <=9 only\n // IE <=9 replaces \";\n support.option = !!div.lastChild;\n })(); // We have to close these tags to support XHTML (#13200)\n\n\n var wrapMap = {\n // XHTML parsers do not magically insert elements in the\n // same way that tag soup parsers do. So we cannot shorten\n // this by omitting or other required elements.\n thead: [1, \"\", \"
    \"],\n col: [2, \"\", \"
    \"],\n tr: [2, \"\", \"
    \"],\n td: [3, \"\", \"
    \"],\n _default: [0, \"\", \"\"]\n };\n wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\n wrapMap.th = wrapMap.td; // Support: IE <=9 only\n\n if (!support.option) {\n wrapMap.optgroup = wrapMap.option = [1, \"\"];\n }\n\n function getAll(context, tag) {\n // Support: IE <=9 - 11 only\n // Use typeof to avoid zero-argument method invocation on host objects (#15151)\n var ret;\n\n if (typeof context.getElementsByTagName !== \"undefined\") {\n ret = context.getElementsByTagName(tag || \"*\");\n } else if (typeof context.querySelectorAll !== \"undefined\") {\n ret = context.querySelectorAll(tag || \"*\");\n } else {\n ret = [];\n }\n\n if (tag === undefined || tag && nodeName(context, tag)) {\n return jQuery.merge([context], ret);\n }\n\n return ret;\n } // Mark scripts as having already been evaluated\n\n\n function setGlobalEval(elems, refElements) {\n var i = 0,\n l = elems.length;\n\n for (; i < l; i++) {\n dataPriv.set(elems[i], \"globalEval\", !refElements || dataPriv.get(refElements[i], \"globalEval\"));\n }\n }\n\n var rhtml = /<|&#?\\w+;/;\n\n function buildFragment(elems, context, scripts, selection, ignored) {\n var elem,\n tmp,\n tag,\n wrap,\n attached,\n j,\n fragment = context.createDocumentFragment(),\n nodes = [],\n i = 0,\n l = elems.length;\n\n for (; i < l; i++) {\n elem = elems[i];\n\n if (elem || elem === 0) {\n // Add nodes directly\n if (toType(elem) === \"object\") {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(nodes, elem.nodeType ? [elem] : elem); // Convert non-html into a text node\n } else if (!rhtml.test(elem)) {\n nodes.push(context.createTextNode(elem)); // Convert html into DOM nodes\n } else {\n tmp = tmp || fragment.appendChild(context.createElement(\"div\")); // Deserialize a standard representation\n\n tag = (rtagName.exec(elem) || [\"\", \"\"])[1].toLowerCase();\n wrap = wrapMap[tag] || wrapMap._default;\n tmp.innerHTML = wrap[1] + jQuery.htmlPrefilter(elem) + wrap[2]; // Descend through wrappers to the right content\n\n j = wrap[0];\n\n while (j--) {\n tmp = tmp.lastChild;\n } // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n\n\n jQuery.merge(nodes, tmp.childNodes); // Remember the top-level container\n\n tmp = fragment.firstChild; // Ensure the created nodes are orphaned (#12392)\n\n tmp.textContent = \"\";\n }\n }\n } // Remove wrapper from fragment\n\n\n fragment.textContent = \"\";\n i = 0;\n\n while (elem = nodes[i++]) {\n // Skip elements already in the context collection (trac-4087)\n if (selection && jQuery.inArray(elem, selection) > -1) {\n if (ignored) {\n ignored.push(elem);\n }\n\n continue;\n }\n\n attached = isAttached(elem); // Append to fragment\n\n tmp = getAll(fragment.appendChild(elem), \"script\"); // Preserve script evaluation history\n\n if (attached) {\n setGlobalEval(tmp);\n } // Capture executables\n\n\n if (scripts) {\n j = 0;\n\n while (elem = tmp[j++]) {\n if (rscriptType.test(elem.type || \"\")) {\n scripts.push(elem);\n }\n }\n }\n }\n\n return fragment;\n }\n\n var rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\n function returnTrue() {\n return true;\n }\n\n function returnFalse() {\n return false;\n } // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous, except when they are no-op.\n // So expect focus to be synchronous when the element is already active,\n // and blur to be synchronous when the element is not already active.\n // (focus and blur are always synchronous in other supported browsers,\n // this just defines when we can count on it).\n\n\n function expectSync(elem, type) {\n return elem === safeActiveElement() === (type === \"focus\");\n } // Support: IE <=9 only\n // Accessing document.activeElement can throw unexpectedly\n // https://bugs.jquery.com/ticket/13393\n\n\n function safeActiveElement() {\n try {\n return document.activeElement;\n } catch (err) {}\n }\n\n function _on(elem, types, selector, data, fn, one) {\n var origFn, type; // Types can be a map of types/handlers\n\n if (_typeof(types) === \"object\") {\n // ( types-Object, selector, data )\n if (typeof selector !== \"string\") {\n // ( types-Object, data )\n data = data || selector;\n selector = undefined;\n }\n\n for (type in types) {\n _on(elem, type, selector, data, types[type], one);\n }\n\n return elem;\n }\n\n if (data == null && fn == null) {\n // ( types, fn )\n fn = selector;\n data = selector = undefined;\n } else if (fn == null) {\n if (typeof selector === \"string\") {\n // ( types, selector, fn )\n fn = data;\n data = undefined;\n } else {\n // ( types, data, fn )\n fn = data;\n data = selector;\n selector = undefined;\n }\n }\n\n if (fn === false) {\n fn = returnFalse;\n } else if (!fn) {\n return elem;\n }\n\n if (one === 1) {\n origFn = fn;\n\n fn = function fn(event) {\n // Can use an empty set, since event contains the info\n jQuery().off(event);\n return origFn.apply(this, arguments);\n }; // Use same guid so caller can remove using origFn\n\n\n fn.guid = origFn.guid || (origFn.guid = jQuery.guid++);\n }\n\n return elem.each(function () {\n jQuery.event.add(this, types, fn, data, selector);\n });\n }\n /*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\n\n\n jQuery.event = {\n global: {},\n add: function add(elem, types, handler, data, selector) {\n var handleObjIn,\n eventHandle,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.get(elem); // Only attach events to objects that accept data\n\n if (!acceptData(elem)) {\n return;\n } // Caller can pass in an object of custom data in lieu of the handler\n\n\n if (handler.handler) {\n handleObjIn = handler;\n handler = handleObjIn.handler;\n selector = handleObjIn.selector;\n } // Ensure that invalid selectors throw exceptions at attach time\n // Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\n\n if (selector) {\n jQuery.find.matchesSelector(documentElement, selector);\n } // Make sure that the handler has a unique ID, used to find/remove it later\n\n\n if (!handler.guid) {\n handler.guid = jQuery.guid++;\n } // Init the element's event structure and main handler, if this is the first\n\n\n if (!(events = elemData.events)) {\n events = elemData.events = Object.create(null);\n }\n\n if (!(eventHandle = elemData.handle)) {\n eventHandle = elemData.handle = function (e) {\n // Discard the second event of a jQuery.event.trigger() and\n // when an event is called after a page has unloaded\n return typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ? jQuery.event.dispatch.apply(elem, arguments) : undefined;\n };\n } // Handle multiple events separated by a space\n\n\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // There *must* be a type, no attaching namespace-only handlers\n\n if (!type) {\n continue;\n } // If event changes its type, use the special event handlers for the changed type\n\n\n special = jQuery.event.special[type] || {}; // If selector defined, determine special event api type, otherwise given type\n\n type = (selector ? special.delegateType : special.bindType) || type; // Update special based on newly reset type\n\n special = jQuery.event.special[type] || {}; // handleObj is passed to all event handlers\n\n handleObj = jQuery.extend({\n type: type,\n origType: origType,\n data: data,\n handler: handler,\n guid: handler.guid,\n selector: selector,\n needsContext: selector && jQuery.expr.match.needsContext.test(selector),\n namespace: namespaces.join(\".\")\n }, handleObjIn); // Init the event handler queue if we're the first\n\n if (!(handlers = events[type])) {\n handlers = events[type] = [];\n handlers.delegateCount = 0; // Only use addEventListener if the special events handler returns false\n\n if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) {\n if (elem.addEventListener) {\n elem.addEventListener(type, eventHandle);\n }\n }\n }\n\n if (special.add) {\n special.add.call(elem, handleObj);\n\n if (!handleObj.handler.guid) {\n handleObj.handler.guid = handler.guid;\n }\n } // Add to the element's handler list, delegates in front\n\n\n if (selector) {\n handlers.splice(handlers.delegateCount++, 0, handleObj);\n } else {\n handlers.push(handleObj);\n } // Keep track of which events have ever been used, for event optimization\n\n\n jQuery.event.global[type] = true;\n }\n },\n // Detach an event or set of events from an element\n remove: function remove(elem, types, handler, selector, mappedTypes) {\n var j,\n origCount,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.hasData(elem) && dataPriv.get(elem);\n\n if (!elemData || !(events = elemData.events)) {\n return;\n } // Once for each type.namespace in types; type may be omitted\n\n\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // Unbind all events (on this namespace, if provided) for the element\n\n if (!type) {\n for (type in events) {\n jQuery.event.remove(elem, type + types[t], handler, selector, true);\n }\n\n continue;\n }\n\n special = jQuery.event.special[type] || {};\n type = (selector ? special.delegateType : special.bindType) || type;\n handlers = events[type] || [];\n tmp = tmp[2] && new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\"); // Remove matching events\n\n origCount = j = handlers.length;\n\n while (j--) {\n handleObj = handlers[j];\n\n if ((mappedTypes || origType === handleObj.origType) && (!handler || handler.guid === handleObj.guid) && (!tmp || tmp.test(handleObj.namespace)) && (!selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector)) {\n handlers.splice(j, 1);\n\n if (handleObj.selector) {\n handlers.delegateCount--;\n }\n\n if (special.remove) {\n special.remove.call(elem, handleObj);\n }\n }\n } // Remove generic event handler if we removed something and no more handlers exist\n // (avoids potential for endless recursion during removal of special event handlers)\n\n\n if (origCount && !handlers.length) {\n if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) {\n jQuery.removeEvent(elem, type, elemData.handle);\n }\n\n delete events[type];\n }\n } // Remove data and the expando if it's no longer used\n\n\n if (jQuery.isEmptyObject(events)) {\n dataPriv.remove(elem, \"handle events\");\n }\n },\n dispatch: function dispatch(nativeEvent) {\n var i,\n j,\n ret,\n matched,\n handleObj,\n handlerQueue,\n args = new Array(arguments.length),\n // Make a writable jQuery.Event from the native event object\n event = jQuery.event.fix(nativeEvent),\n handlers = (dataPriv.get(this, \"events\") || Object.create(null))[event.type] || [],\n special = jQuery.event.special[event.type] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event\n\n args[0] = event;\n\n for (i = 1; i < arguments.length; i++) {\n args[i] = arguments[i];\n }\n\n event.delegateTarget = this; // Call the preDispatch hook for the mapped type, and let it bail if desired\n\n if (special.preDispatch && special.preDispatch.call(this, event) === false) {\n return;\n } // Determine handlers\n\n\n handlerQueue = jQuery.event.handlers.call(this, event, handlers); // Run delegates first; they may want to stop propagation beneath us\n\n i = 0;\n\n while ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) {\n event.currentTarget = matched.elem;\n j = 0;\n\n while ((handleObj = matched.handlers[j++]) && !event.isImmediatePropagationStopped()) {\n // If the event is namespaced, then each handler is only invoked if it is\n // specially universal or its namespaces are a superset of the event's.\n if (!event.rnamespace || handleObj.namespace === false || event.rnamespace.test(handleObj.namespace)) {\n event.handleObj = handleObj;\n event.data = handleObj.data;\n ret = ((jQuery.event.special[handleObj.origType] || {}).handle || handleObj.handler).apply(matched.elem, args);\n\n if (ret !== undefined) {\n if ((event.result = ret) === false) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n } // Call the postDispatch hook for the mapped type\n\n\n if (special.postDispatch) {\n special.postDispatch.call(this, event);\n }\n\n return event.result;\n },\n handlers: function handlers(event, _handlers) {\n var i,\n handleObj,\n sel,\n matchedHandlers,\n matchedSelectors,\n handlerQueue = [],\n delegateCount = _handlers.delegateCount,\n cur = event.target; // Find delegate handlers\n\n if (delegateCount && // Support: IE <=9\n // Black-hole SVG instance trees (trac-13180)\n cur.nodeType && // Support: Firefox <=42\n // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n // Support: IE 11 only\n // ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n !(event.type === \"click\" && event.button >= 1)) {\n for (; cur !== this; cur = cur.parentNode || this) {\n // Don't check non-elements (#13208)\n // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n if (cur.nodeType === 1 && !(event.type === \"click\" && cur.disabled === true)) {\n matchedHandlers = [];\n matchedSelectors = {};\n\n for (i = 0; i < delegateCount; i++) {\n handleObj = _handlers[i]; // Don't conflict with Object.prototype properties (#13203)\n\n sel = handleObj.selector + \" \";\n\n if (matchedSelectors[sel] === undefined) {\n matchedSelectors[sel] = handleObj.needsContext ? jQuery(sel, this).index(cur) > -1 : jQuery.find(sel, this, null, [cur]).length;\n }\n\n if (matchedSelectors[sel]) {\n matchedHandlers.push(handleObj);\n }\n }\n\n if (matchedHandlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: matchedHandlers\n });\n }\n }\n }\n } // Add the remaining (directly-bound) handlers\n\n\n cur = this;\n\n if (delegateCount < _handlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: _handlers.slice(delegateCount)\n });\n }\n\n return handlerQueue;\n },\n addProp: function addProp(name, hook) {\n Object.defineProperty(jQuery.Event.prototype, name, {\n enumerable: true,\n configurable: true,\n get: isFunction(hook) ? function () {\n if (this.originalEvent) {\n return hook(this.originalEvent);\n }\n } : function () {\n if (this.originalEvent) {\n return this.originalEvent[name];\n }\n },\n set: function set(value) {\n Object.defineProperty(this, name, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: value\n });\n }\n });\n },\n fix: function fix(originalEvent) {\n return originalEvent[jQuery.expando] ? originalEvent : new jQuery.Event(originalEvent);\n },\n special: {\n load: {\n // Prevent triggered image.load events from bubbling to window.load\n noBubble: true\n },\n click: {\n // Utilize native event to ensure correct state for checkable inputs\n setup: function setup(data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data; // Claim the first handler\n\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n // dataPriv.set( el, \"click\", ... )\n leverageNative(el, \"click\", returnTrue);\n } // Return false to allow normal processing in the caller\n\n\n return false;\n },\n trigger: function trigger(data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data; // Force setup before triggering a click\n\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n leverageNative(el, \"click\");\n } // Return non-false to allow normal event-path propagation\n\n\n return true;\n },\n // For cross-browser consistency, suppress native .click() on links\n // Also prevent it if we're currently inside a leveraged native-event stack\n _default: function _default(event) {\n var target = event.target;\n return rcheckableType.test(target.type) && target.click && nodeName(target, \"input\") && dataPriv.get(target, \"click\") || nodeName(target, \"a\");\n }\n },\n beforeunload: {\n postDispatch: function postDispatch(event) {\n // Support: Firefox 20+\n // Firefox doesn't alert if the returnValue field is not set.\n if (event.result !== undefined && event.originalEvent) {\n event.originalEvent.returnValue = event.result;\n }\n }\n }\n }\n }; // Ensure the presence of an event listener that handles manually-triggered\n // synthetic events by interrupting progress until reinvoked in response to\n // *native* events that it fires directly, ensuring that state changes have\n // already occurred before other listeners are invoked.\n\n function leverageNative(el, type, expectSync) {\n // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n if (!expectSync) {\n if (dataPriv.get(el, type) === undefined) {\n jQuery.event.add(el, type, returnTrue);\n }\n\n return;\n } // Register the controller as a special universal handler for all event namespaces\n\n\n dataPriv.set(el, type, false);\n jQuery.event.add(el, type, {\n namespace: false,\n handler: function handler(event) {\n var notAsync,\n result,\n saved = dataPriv.get(this, type);\n\n if (event.isTrigger & 1 && this[type]) {\n // Interrupt processing of the outer synthetic .trigger()ed event\n // Saved data should be false in such cases, but might be a leftover capture object\n // from an async native handler (gh-4350)\n if (!saved.length) {\n // Store arguments for use when handling the inner native event\n // There will always be at least one argument (an event object), so this array\n // will not be confused with a leftover capture object.\n saved = _slice.call(arguments);\n dataPriv.set(this, type, saved); // Trigger the native event and capture its result\n // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous\n\n notAsync = expectSync(this, type);\n this[type]();\n result = dataPriv.get(this, type);\n\n if (saved !== result || notAsync) {\n dataPriv.set(this, type, false);\n } else {\n result = {};\n }\n\n if (saved !== result) {\n // Cancel the outer synthetic event\n event.stopImmediatePropagation();\n event.preventDefault(); // Support: Chrome 86+\n // In Chrome, if an element having a focusout handler is blurred by\n // clicking outside of it, it invokes the handler synchronously. If\n // that handler calls `.remove()` on the element, the data is cleared,\n // leaving `result` undefined. We need to guard against this.\n\n return result && result.value;\n } // If this is an inner synthetic event for an event with a bubbling surrogate\n // (focus or blur), assume that the surrogate already propagated from triggering the\n // native event and prevent that from happening again here.\n // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n // bubbling surrogate propagates *after* the non-bubbling base), but that seems\n // less bad than duplication.\n\n } else if ((jQuery.event.special[type] || {}).delegateType) {\n event.stopPropagation();\n } // If this is a native event triggered above, everything is now in order\n // Fire an inner synthetic event with the original arguments\n\n } else if (saved.length) {\n // ...and capture the result\n dataPriv.set(this, type, {\n value: jQuery.event.trigger( // Support: IE <=9 - 11+\n // Extend with the prototype to reset the above stopImmediatePropagation()\n jQuery.extend(saved[0], jQuery.Event.prototype), saved.slice(1), this)\n }); // Abort handling of the native event\n\n event.stopImmediatePropagation();\n }\n }\n });\n }\n\n jQuery.removeEvent = function (elem, type, handle) {\n // This \"if\" is needed for plain objects\n if (elem.removeEventListener) {\n elem.removeEventListener(type, handle);\n }\n };\n\n jQuery.Event = function (src, props) {\n // Allow instantiation without the 'new' keyword\n if (!(this instanceof jQuery.Event)) {\n return new jQuery.Event(src, props);\n } // Event object\n\n\n if (src && src.type) {\n this.originalEvent = src;\n this.type = src.type; // Events bubbling up the document may have been marked as prevented\n // by a handler lower down the tree; reflect the correct value.\n\n this.isDefaultPrevented = src.defaultPrevented || src.defaultPrevented === undefined && // Support: Android <=2.3 only\n src.returnValue === false ? returnTrue : returnFalse; // Create target properties\n // Support: Safari <=6 - 7 only\n // Target should not be a text node (#504, #13143)\n\n this.target = src.target && src.target.nodeType === 3 ? src.target.parentNode : src.target;\n this.currentTarget = src.currentTarget;\n this.relatedTarget = src.relatedTarget; // Event type\n } else {\n this.type = src;\n } // Put explicitly provided properties onto the event object\n\n\n if (props) {\n jQuery.extend(this, props);\n } // Create a timestamp if incoming event doesn't have one\n\n\n this.timeStamp = src && src.timeStamp || Date.now(); // Mark it as fixed\n\n this[jQuery.expando] = true;\n }; // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n // https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\n\n\n jQuery.Event.prototype = {\n constructor: jQuery.Event,\n isDefaultPrevented: returnFalse,\n isPropagationStopped: returnFalse,\n isImmediatePropagationStopped: returnFalse,\n isSimulated: false,\n preventDefault: function preventDefault() {\n var e = this.originalEvent;\n this.isDefaultPrevented = returnTrue;\n\n if (e && !this.isSimulated) {\n e.preventDefault();\n }\n },\n stopPropagation: function stopPropagation() {\n var e = this.originalEvent;\n this.isPropagationStopped = returnTrue;\n\n if (e && !this.isSimulated) {\n e.stopPropagation();\n }\n },\n stopImmediatePropagation: function stopImmediatePropagation() {\n var e = this.originalEvent;\n this.isImmediatePropagationStopped = returnTrue;\n\n if (e && !this.isSimulated) {\n e.stopImmediatePropagation();\n }\n\n this.stopPropagation();\n }\n }; // Includes all common event props including KeyEvent and MouseEvent specific props\n\n jQuery.each({\n altKey: true,\n bubbles: true,\n cancelable: true,\n changedTouches: true,\n ctrlKey: true,\n detail: true,\n eventPhase: true,\n metaKey: true,\n pageX: true,\n pageY: true,\n shiftKey: true,\n view: true,\n \"char\": true,\n code: true,\n charCode: true,\n key: true,\n keyCode: true,\n button: true,\n buttons: true,\n clientX: true,\n clientY: true,\n offsetX: true,\n offsetY: true,\n pointerId: true,\n pointerType: true,\n screenX: true,\n screenY: true,\n targetTouches: true,\n toElement: true,\n touches: true,\n which: true\n }, jQuery.event.addProp);\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (type, delegateType) {\n jQuery.event.special[type] = {\n // Utilize native event if possible so blur/focus sequence is correct\n setup: function setup() {\n // Claim the first handler\n // dataPriv.set( this, \"focus\", ... )\n // dataPriv.set( this, \"blur\", ... )\n leverageNative(this, type, expectSync); // Return false to allow normal processing in the caller\n\n return false;\n },\n trigger: function trigger() {\n // Force setup before trigger\n leverageNative(this, type); // Return non-false to allow normal event-path propagation\n\n return true;\n },\n // Suppress native focus or blur as it's already being fired\n // in leverageNative.\n _default: function _default() {\n return true;\n },\n delegateType: delegateType\n };\n }); // Create mouseenter/leave events using mouseover/out and event-time checks\n // so that event delegation works in jQuery.\n // Do the same for pointerenter/pointerleave and pointerover/pointerout\n //\n // Support: Safari 7 only\n // Safari sends mouseenter too often; see:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n // for the description of the bug (it existed in older Chrome versions as well).\n\n jQuery.each({\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\",\n pointerenter: \"pointerover\",\n pointerleave: \"pointerout\"\n }, function (orig, fix) {\n jQuery.event.special[orig] = {\n delegateType: fix,\n bindType: fix,\n handle: function handle(event) {\n var ret,\n target = this,\n related = event.relatedTarget,\n handleObj = event.handleObj; // For mouseenter/leave call the handler if related is outside the target.\n // NB: No relatedTarget if the mouse left/entered the browser window\n\n if (!related || related !== target && !jQuery.contains(target, related)) {\n event.type = handleObj.origType;\n ret = handleObj.handler.apply(this, arguments);\n event.type = fix;\n }\n\n return ret;\n }\n };\n });\n jQuery.fn.extend({\n on: function on(types, selector, data, fn) {\n return _on(this, types, selector, data, fn);\n },\n one: function one(types, selector, data, fn) {\n return _on(this, types, selector, data, fn, 1);\n },\n off: function off(types, selector, fn) {\n var handleObj, type;\n\n if (types && types.preventDefault && types.handleObj) {\n // ( event ) dispatched jQuery.Event\n handleObj = types.handleObj;\n jQuery(types.delegateTarget).off(handleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType, handleObj.selector, handleObj.handler);\n return this;\n }\n\n if (_typeof(types) === \"object\") {\n // ( types-object [, selector] )\n for (type in types) {\n this.off(type, selector, types[type]);\n }\n\n return this;\n }\n\n if (selector === false || typeof selector === \"function\") {\n // ( types [, fn] )\n fn = selector;\n selector = undefined;\n }\n\n if (fn === false) {\n fn = returnFalse;\n }\n\n return this.each(function () {\n jQuery.event.remove(this, types, fn, selector);\n });\n }\n });\n var // Support: IE <=10 - 11, Edge 12 - 13 only\n // In IE/Edge using regex groups here causes severe slowdowns.\n // See https://connect.microsoft.com/IE/feedback/details/1736512/\n rnoInnerhtml = /\\s*$/g; // Prefer a tbody over its parent table for containing new rows\n\n function manipulationTarget(elem, content) {\n if (nodeName(elem, \"table\") && nodeName(content.nodeType !== 11 ? content : content.firstChild, \"tr\")) {\n return jQuery(elem).children(\"tbody\")[0] || elem;\n }\n\n return elem;\n } // Replace/restore the type attribute of script elements for safe DOM manipulation\n\n\n function disableScript(elem) {\n elem.type = (elem.getAttribute(\"type\") !== null) + \"/\" + elem.type;\n return elem;\n }\n\n function restoreScript(elem) {\n if ((elem.type || \"\").slice(0, 5) === \"true/\") {\n elem.type = elem.type.slice(5);\n } else {\n elem.removeAttribute(\"type\");\n }\n\n return elem;\n }\n\n function cloneCopyEvent(src, dest) {\n var i, l, type, pdataOld, udataOld, udataCur, events;\n\n if (dest.nodeType !== 1) {\n return;\n } // 1. Copy private data: events, handlers, etc.\n\n\n if (dataPriv.hasData(src)) {\n pdataOld = dataPriv.get(src);\n events = pdataOld.events;\n\n if (events) {\n dataPriv.remove(dest, \"handle events\");\n\n for (type in events) {\n for (i = 0, l = events[type].length; i < l; i++) {\n jQuery.event.add(dest, type, events[type][i]);\n }\n }\n }\n } // 2. Copy user data\n\n\n if (dataUser.hasData(src)) {\n udataOld = dataUser.access(src);\n udataCur = jQuery.extend({}, udataOld);\n dataUser.set(dest, udataCur);\n }\n } // Fix IE bugs, see support tests\n\n\n function fixInput(src, dest) {\n var nodeName = dest.nodeName.toLowerCase(); // Fails to persist the checked state of a cloned checkbox or radio button.\n\n if (nodeName === \"input\" && rcheckableType.test(src.type)) {\n dest.checked = src.checked; // Fails to return the selected option to the default selected state when cloning options\n } else if (nodeName === \"input\" || nodeName === \"textarea\") {\n dest.defaultValue = src.defaultValue;\n }\n }\n\n function domManip(collection, args, callback, ignored) {\n // Flatten any nested arrays\n args = flat(args);\n var fragment,\n first,\n scripts,\n hasScripts,\n node,\n doc,\n i = 0,\n l = collection.length,\n iNoClone = l - 1,\n value = args[0],\n valueIsFunction = isFunction(value); // We can't cloneNode fragments that contain checked, in WebKit\n\n if (valueIsFunction || l > 1 && typeof value === \"string\" && !support.checkClone && rchecked.test(value)) {\n return collection.each(function (index) {\n var self = collection.eq(index);\n\n if (valueIsFunction) {\n args[0] = value.call(this, index, self.html());\n }\n\n domManip(self, args, callback, ignored);\n });\n }\n\n if (l) {\n fragment = buildFragment(args, collection[0].ownerDocument, false, collection, ignored);\n first = fragment.firstChild;\n\n if (fragment.childNodes.length === 1) {\n fragment = first;\n } // Require either new content or an interest in ignored elements to invoke the callback\n\n\n if (first || ignored) {\n scripts = jQuery.map(getAll(fragment, \"script\"), disableScript);\n hasScripts = scripts.length; // Use the original fragment for the last item\n // instead of the first because it can end up\n // being emptied incorrectly in certain situations (#8070).\n\n for (; i < l; i++) {\n node = fragment;\n\n if (i !== iNoClone) {\n node = jQuery.clone(node, true, true); // Keep references to cloned scripts for later restoration\n\n if (hasScripts) {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(scripts, getAll(node, \"script\"));\n }\n }\n\n callback.call(collection[i], node, i);\n }\n\n if (hasScripts) {\n doc = scripts[scripts.length - 1].ownerDocument; // Reenable scripts\n\n jQuery.map(scripts, restoreScript); // Evaluate executable scripts on first document insertion\n\n for (i = 0; i < hasScripts; i++) {\n node = scripts[i];\n\n if (rscriptType.test(node.type || \"\") && !dataPriv.access(node, \"globalEval\") && jQuery.contains(doc, node)) {\n if (node.src && (node.type || \"\").toLowerCase() !== \"module\") {\n // Optional AJAX dependency, but won't run scripts if not present\n if (jQuery._evalUrl && !node.noModule) {\n jQuery._evalUrl(node.src, {\n nonce: node.nonce || node.getAttribute(\"nonce\")\n }, doc);\n }\n } else {\n DOMEval(node.textContent.replace(rcleanScript, \"\"), node, doc);\n }\n }\n }\n }\n }\n }\n\n return collection;\n }\n\n function _remove(elem, selector, keepData) {\n var node,\n nodes = selector ? jQuery.filter(selector, elem) : elem,\n i = 0;\n\n for (; (node = nodes[i]) != null; i++) {\n if (!keepData && node.nodeType === 1) {\n jQuery.cleanData(getAll(node));\n }\n\n if (node.parentNode) {\n if (keepData && isAttached(node)) {\n setGlobalEval(getAll(node, \"script\"));\n }\n\n node.parentNode.removeChild(node);\n }\n }\n\n return elem;\n }\n\n jQuery.extend({\n htmlPrefilter: function htmlPrefilter(html) {\n return html;\n },\n clone: function clone(elem, dataAndEvents, deepDataAndEvents) {\n var i,\n l,\n srcElements,\n destElements,\n clone = elem.cloneNode(true),\n inPage = isAttached(elem); // Fix IE cloning issues\n\n if (!support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem)) {\n // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n destElements = getAll(clone);\n srcElements = getAll(elem);\n\n for (i = 0, l = srcElements.length; i < l; i++) {\n fixInput(srcElements[i], destElements[i]);\n }\n } // Copy the events from the original to the clone\n\n\n if (dataAndEvents) {\n if (deepDataAndEvents) {\n srcElements = srcElements || getAll(elem);\n destElements = destElements || getAll(clone);\n\n for (i = 0, l = srcElements.length; i < l; i++) {\n cloneCopyEvent(srcElements[i], destElements[i]);\n }\n } else {\n cloneCopyEvent(elem, clone);\n }\n } // Preserve script evaluation history\n\n\n destElements = getAll(clone, \"script\");\n\n if (destElements.length > 0) {\n setGlobalEval(destElements, !inPage && getAll(elem, \"script\"));\n } // Return the cloned set\n\n\n return clone;\n },\n cleanData: function cleanData(elems) {\n var data,\n elem,\n type,\n special = jQuery.event.special,\n i = 0;\n\n for (; (elem = elems[i]) !== undefined; i++) {\n if (acceptData(elem)) {\n if (data = elem[dataPriv.expando]) {\n if (data.events) {\n for (type in data.events) {\n if (special[type]) {\n jQuery.event.remove(elem, type); // This is a shortcut to avoid jQuery.event.remove's overhead\n } else {\n jQuery.removeEvent(elem, type, data.handle);\n }\n }\n } // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n\n\n elem[dataPriv.expando] = undefined;\n }\n\n if (elem[dataUser.expando]) {\n // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n elem[dataUser.expando] = undefined;\n }\n }\n }\n }\n });\n jQuery.fn.extend({\n detach: function detach(selector) {\n return _remove(this, selector, true);\n },\n remove: function remove(selector) {\n return _remove(this, selector);\n },\n text: function text(value) {\n return access(this, function (value) {\n return value === undefined ? jQuery.text(this) : this.empty().each(function () {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n this.textContent = value;\n }\n });\n }, null, value, arguments.length);\n },\n append: function append() {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.appendChild(elem);\n }\n });\n },\n prepend: function prepend() {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.insertBefore(elem, target.firstChild);\n }\n });\n },\n before: function before() {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this);\n }\n });\n },\n after: function after() {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this.nextSibling);\n }\n });\n },\n empty: function empty() {\n var elem,\n i = 0;\n\n for (; (elem = this[i]) != null; i++) {\n if (elem.nodeType === 1) {\n // Prevent memory leaks\n jQuery.cleanData(getAll(elem, false)); // Remove any remaining nodes\n\n elem.textContent = \"\";\n }\n }\n\n return this;\n },\n clone: function clone(dataAndEvents, deepDataAndEvents) {\n dataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n return this.map(function () {\n return jQuery.clone(this, dataAndEvents, deepDataAndEvents);\n });\n },\n html: function html(value) {\n return access(this, function (value) {\n var elem = this[0] || {},\n i = 0,\n l = this.length;\n\n if (value === undefined && elem.nodeType === 1) {\n return elem.innerHTML;\n } // See if we can take a shortcut and just use innerHTML\n\n\n if (typeof value === \"string\" && !rnoInnerhtml.test(value) && !wrapMap[(rtagName.exec(value) || [\"\", \"\"])[1].toLowerCase()]) {\n value = jQuery.htmlPrefilter(value);\n\n try {\n for (; i < l; i++) {\n elem = this[i] || {}; // Remove element nodes and prevent memory leaks\n\n if (elem.nodeType === 1) {\n jQuery.cleanData(getAll(elem, false));\n elem.innerHTML = value;\n }\n }\n\n elem = 0; // If using innerHTML throws an exception, use the fallback method\n } catch (e) {}\n }\n\n if (elem) {\n this.empty().append(value);\n }\n }, null, value, arguments.length);\n },\n replaceWith: function replaceWith() {\n var ignored = []; // Make the changes, replacing each non-ignored context element with the new content\n\n return domManip(this, arguments, function (elem) {\n var parent = this.parentNode;\n\n if (jQuery.inArray(this, ignored) < 0) {\n jQuery.cleanData(getAll(this));\n\n if (parent) {\n parent.replaceChild(elem, this);\n }\n } // Force callback invocation\n\n }, ignored);\n }\n });\n jQuery.each({\n appendTo: \"append\",\n prependTo: \"prepend\",\n insertBefore: \"before\",\n insertAfter: \"after\",\n replaceAll: \"replaceWith\"\n }, function (name, original) {\n jQuery.fn[name] = function (selector) {\n var elems,\n ret = [],\n insert = jQuery(selector),\n last = insert.length - 1,\n i = 0;\n\n for (; i <= last; i++) {\n elems = i === last ? this : this.clone(true);\n jQuery(insert[i])[original](elems); // Support: Android <=4.0 only, PhantomJS 1 only\n // .get() because push.apply(_, arraylike) throws on ancient WebKit\n\n push.apply(ret, elems.get());\n }\n\n return this.pushStack(ret);\n };\n });\n var rnumnonpx = new RegExp(\"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\");\n\n var getStyles = function getStyles(elem) {\n // Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n // IE throws on elements created in popups\n // FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n var view = elem.ownerDocument.defaultView;\n\n if (!view || !view.opener) {\n view = window;\n }\n\n return view.getComputedStyle(elem);\n };\n\n var swap = function swap(elem, options, callback) {\n var ret,\n name,\n old = {}; // Remember the old values, and insert the new ones\n\n for (name in options) {\n old[name] = elem.style[name];\n elem.style[name] = options[name];\n }\n\n ret = callback.call(elem); // Revert the old values\n\n for (name in options) {\n elem.style[name] = old[name];\n }\n\n return ret;\n };\n\n var rboxStyle = new RegExp(cssExpand.join(\"|\"), \"i\");\n\n (function () {\n // Executing both pixelPosition & boxSizingReliable tests require only one layout\n // so they're executed at the same time to save the second computation.\n function computeStyleTests() {\n // This is a singleton, we need to execute it only once\n if (!div) {\n return;\n }\n\n container.style.cssText = \"position:absolute;left:-11111px;width:60px;\" + \"margin-top:1px;padding:0;border:0\";\n div.style.cssText = \"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" + \"margin:auto;border:1px;padding:1px;\" + \"width:60%;top:1%\";\n documentElement.appendChild(container).appendChild(div);\n var divStyle = window.getComputedStyle(div);\n pixelPositionVal = divStyle.top !== \"1%\"; // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\n reliableMarginLeftVal = roundPixelMeasures(divStyle.marginLeft) === 12; // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n // Some styles come back with percentage values, even though they shouldn't\n\n div.style.right = \"60%\";\n pixelBoxStylesVal = roundPixelMeasures(divStyle.right) === 36; // Support: IE 9 - 11 only\n // Detect misreporting of content dimensions for box-sizing:border-box elements\n\n boxSizingReliableVal = roundPixelMeasures(divStyle.width) === 36; // Support: IE 9 only\n // Detect overflow:scroll screwiness (gh-3699)\n // Support: Chrome <=64\n // Don't get tricked when zoom affects offsetWidth (gh-4029)\n\n div.style.position = \"absolute\";\n scrollboxSizeVal = roundPixelMeasures(div.offsetWidth / 3) === 12;\n documentElement.removeChild(container); // Nullify the div so it wouldn't be stored in the memory and\n // it will also be a sign that checks already performed\n\n div = null;\n }\n\n function roundPixelMeasures(measure) {\n return Math.round(parseFloat(measure));\n }\n\n var pixelPositionVal,\n boxSizingReliableVal,\n scrollboxSizeVal,\n pixelBoxStylesVal,\n reliableTrDimensionsVal,\n reliableMarginLeftVal,\n container = document.createElement(\"div\"),\n div = document.createElement(\"div\"); // Finish early in limited (non-browser) environments\n\n if (!div.style) {\n return;\n } // Support: IE <=9 - 11 only\n // Style of cloned element affects source element cloned (#8908)\n\n\n div.style.backgroundClip = \"content-box\";\n div.cloneNode(true).style.backgroundClip = \"\";\n support.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n jQuery.extend(support, {\n boxSizingReliable: function boxSizingReliable() {\n computeStyleTests();\n return boxSizingReliableVal;\n },\n pixelBoxStyles: function pixelBoxStyles() {\n computeStyleTests();\n return pixelBoxStylesVal;\n },\n pixelPosition: function pixelPosition() {\n computeStyleTests();\n return pixelPositionVal;\n },\n reliableMarginLeft: function reliableMarginLeft() {\n computeStyleTests();\n return reliableMarginLeftVal;\n },\n scrollboxSize: function scrollboxSize() {\n computeStyleTests();\n return scrollboxSizeVal;\n },\n // Support: IE 9 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Behavior in IE 9 is more subtle than in newer versions & it passes\n // some versions of this test; make sure not to make it pass there!\n //\n // Support: Firefox 70+\n // Only Firefox includes border widths\n // in computed dimensions. (gh-4529)\n reliableTrDimensions: function reliableTrDimensions() {\n var table, tr, trChild, trStyle;\n\n if (reliableTrDimensionsVal == null) {\n table = document.createElement(\"table\");\n tr = document.createElement(\"tr\");\n trChild = document.createElement(\"div\");\n table.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n tr.style.cssText = \"border:1px solid\"; // Support: Chrome 86+\n // Height set through cssText does not get applied.\n // Computed height then comes back as 0.\n\n tr.style.height = \"1px\";\n trChild.style.height = \"9px\"; // Support: Android 8 Chrome 86+\n // In our bodyBackground.html iframe,\n // display for all div elements is set to \"inline\",\n // which causes a problem only in Android 8 Chrome 86.\n // Ensuring the div is display: block\n // gets around this issue.\n\n trChild.style.display = \"block\";\n documentElement.appendChild(table).appendChild(tr).appendChild(trChild);\n trStyle = window.getComputedStyle(tr);\n reliableTrDimensionsVal = parseInt(trStyle.height, 10) + parseInt(trStyle.borderTopWidth, 10) + parseInt(trStyle.borderBottomWidth, 10) === tr.offsetHeight;\n documentElement.removeChild(table);\n }\n\n return reliableTrDimensionsVal;\n }\n });\n })();\n\n function curCSS(elem, name, computed) {\n var width,\n minWidth,\n maxWidth,\n ret,\n // Support: Firefox 51+\n // Retrieving style before computed somehow\n // fixes an issue with getting wrong values\n // on detached elements\n style = elem.style;\n computed = computed || getStyles(elem); // getPropertyValue is needed for:\n // .css('filter') (IE 9 only, #12537)\n // .css('--customProperty) (#3144)\n\n if (computed) {\n ret = computed.getPropertyValue(name) || computed[name];\n\n if (ret === \"\" && !isAttached(elem)) {\n ret = jQuery.style(elem, name);\n } // A tribute to the \"awesome hack by Dean Edwards\"\n // Android Browser returns percentage for some values,\n // but width seems to be reliably pixels.\n // This is against the CSSOM draft spec:\n // https://drafts.csswg.org/cssom/#resolved-values\n\n\n if (!support.pixelBoxStyles() && rnumnonpx.test(ret) && rboxStyle.test(name)) {\n // Remember the original values\n width = style.width;\n minWidth = style.minWidth;\n maxWidth = style.maxWidth; // Put in the new values to get a computed value out\n\n style.minWidth = style.maxWidth = style.width = ret;\n ret = computed.width; // Revert the changed values\n\n style.width = width;\n style.minWidth = minWidth;\n style.maxWidth = maxWidth;\n }\n }\n\n return ret !== undefined ? // Support: IE <=9 - 11 only\n // IE returns zIndex value as an integer.\n ret + \"\" : ret;\n }\n\n function addGetHookIf(conditionFn, hookFn) {\n // Define the hook, we'll check on the first run if it's really needed.\n return {\n get: function get() {\n if (conditionFn()) {\n // Hook not needed (or it's not possible to use it due\n // to missing dependency), remove it.\n delete this.get;\n return;\n } // Hook needed; redefine it so that the support test is not executed again.\n\n\n return (this.get = hookFn).apply(this, arguments);\n }\n };\n }\n\n var cssPrefixes = [\"Webkit\", \"Moz\", \"ms\"],\n emptyStyle = document.createElement(\"div\").style,\n vendorProps = {}; // Return a vendor-prefixed property or undefined\n\n function vendorPropName(name) {\n // Check for vendor prefixed names\n var capName = name[0].toUpperCase() + name.slice(1),\n i = cssPrefixes.length;\n\n while (i--) {\n name = cssPrefixes[i] + capName;\n\n if (name in emptyStyle) {\n return name;\n }\n }\n } // Return a potentially-mapped jQuery.cssProps or vendor prefixed property\n\n\n function finalPropName(name) {\n var final = jQuery.cssProps[name] || vendorProps[name];\n\n if (final) {\n return final;\n }\n\n if (name in emptyStyle) {\n return name;\n }\n\n return vendorProps[name] = vendorPropName(name) || name;\n }\n\n var // Swappable if display is none or starts with table\n // except \"table\", \"table-cell\", or \"table-caption\"\n // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n rdisplayswap = /^(none|table(?!-c[ea]).+)/,\n rcustomProp = /^--/,\n cssShow = {\n position: \"absolute\",\n visibility: \"hidden\",\n display: \"block\"\n },\n cssNormalTransform = {\n letterSpacing: \"0\",\n fontWeight: \"400\"\n };\n\n function setPositiveNumber(_elem, value, subtract) {\n // Any relative (+/-) values have already been\n // normalized at this point\n var matches = rcssNum.exec(value);\n return matches ? // Guard against undefined \"subtract\", e.g., when used as in cssHooks\n Math.max(0, matches[2] - (subtract || 0)) + (matches[3] || \"px\") : value;\n }\n\n function boxModelAdjustment(elem, dimension, box, isBorderBox, styles, computedVal) {\n var i = dimension === \"width\" ? 1 : 0,\n extra = 0,\n delta = 0; // Adjustment may not be necessary\n\n if (box === (isBorderBox ? \"border\" : \"content\")) {\n return 0;\n }\n\n for (; i < 4; i += 2) {\n // Both box models exclude margin\n if (box === \"margin\") {\n delta += jQuery.css(elem, box + cssExpand[i], true, styles);\n } // If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\n\n if (!isBorderBox) {\n // Add padding\n delta += jQuery.css(elem, \"padding\" + cssExpand[i], true, styles); // For \"border\" or \"margin\", add border\n\n if (box !== \"padding\") {\n delta += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles); // But still keep track of it otherwise\n } else {\n extra += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n } // If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n // \"padding\" or \"margin\"\n\n } else {\n // For \"content\", subtract padding\n if (box === \"content\") {\n delta -= jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\n } // For \"content\" or \"padding\", subtract border\n\n\n if (box !== \"margin\") {\n delta -= jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n }\n }\n } // Account for positive content-box scroll gutter when requested by providing computedVal\n\n\n if (!isBorderBox && computedVal >= 0) {\n // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n // Assuming integer scroll gutter, subtract the rest and round down\n delta += Math.max(0, Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - computedVal - delta - extra - 0.5 // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n // Use an explicit zero to avoid NaN (gh-3964)\n )) || 0;\n }\n\n return delta;\n }\n\n function getWidthOrHeight(elem, dimension, extra) {\n // Start with computed style\n var styles = getStyles(elem),\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n // Fake content-box until we know it's needed to know the true value.\n boxSizingNeeded = !support.boxSizingReliable() || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n valueIsBorderBox = isBorderBox,\n val = curCSS(elem, dimension, styles),\n offsetProp = \"offset\" + dimension[0].toUpperCase() + dimension.slice(1); // Support: Firefox <=54\n // Return a confounding non-pixel value or feign ignorance, as appropriate.\n\n if (rnumnonpx.test(val)) {\n if (!extra) {\n return val;\n }\n\n val = \"auto\";\n } // Support: IE 9 - 11 only\n // Use offsetWidth/offsetHeight for when box sizing is unreliable.\n // In those cases, the computed value can be trusted to be border-box.\n\n\n if ((!support.boxSizingReliable() && isBorderBox || // Support: IE 10 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Interestingly, in some cases IE 9 doesn't suffer from this issue.\n !support.reliableTrDimensions() && nodeName(elem, \"tr\") || // Fall back to offsetWidth/offsetHeight when value is \"auto\"\n // This happens for inline elements with no explicit setting (gh-3571)\n val === \"auto\" || // Support: Android <=4.1 - 4.3 only\n // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n !parseFloat(val) && jQuery.css(elem, \"display\", false, styles) === \"inline\") && // Make sure the element is visible & connected\n elem.getClientRects().length) {\n isBorderBox = jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\"; // Where available, offsetWidth/offsetHeight approximate border box dimensions.\n // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n // retrieved value as a content box dimension.\n\n valueIsBorderBox = offsetProp in elem;\n\n if (valueIsBorderBox) {\n val = elem[offsetProp];\n }\n } // Normalize \"\" and auto\n\n\n val = parseFloat(val) || 0; // Adjust for the element's box model\n\n return val + boxModelAdjustment(elem, dimension, extra || (isBorderBox ? \"border\" : \"content\"), valueIsBorderBox, styles, // Provide the current computed size to request scroll gutter calculation (gh-3589)\n val) + \"px\";\n }\n\n jQuery.extend({\n // Add in style property hooks for overriding the default\n // behavior of getting and setting a style property\n cssHooks: {\n opacity: {\n get: function get(elem, computed) {\n if (computed) {\n // We should always get a number back from opacity\n var ret = curCSS(elem, \"opacity\");\n return ret === \"\" ? \"1\" : ret;\n }\n }\n }\n },\n // Don't automatically add \"px\" to these possibly-unitless properties\n cssNumber: {\n \"animationIterationCount\": true,\n \"columnCount\": true,\n \"fillOpacity\": true,\n \"flexGrow\": true,\n \"flexShrink\": true,\n \"fontWeight\": true,\n \"gridArea\": true,\n \"gridColumn\": true,\n \"gridColumnEnd\": true,\n \"gridColumnStart\": true,\n \"gridRow\": true,\n \"gridRowEnd\": true,\n \"gridRowStart\": true,\n \"lineHeight\": true,\n \"opacity\": true,\n \"order\": true,\n \"orphans\": true,\n \"widows\": true,\n \"zIndex\": true,\n \"zoom\": true\n },\n // Add in properties whose names you wish to fix before\n // setting or getting the value\n cssProps: {},\n // Get and set the style property on a DOM Node\n style: function style(elem, name, value, extra) {\n // Don't set styles on text and comment nodes\n if (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) {\n return;\n } // Make sure that we're working with the right name\n\n\n var ret,\n type,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name),\n style = elem.style; // Make sure that we're working with the right name. We don't\n // want to query the value if it is a CSS custom property\n // since they are user-defined.\n\n if (!isCustomProp) {\n name = finalPropName(origName);\n } // Gets hook for the prefixed version, then unprefixed version\n\n\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // Check if we're setting a value\n\n if (value !== undefined) {\n type = _typeof(value); // Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\n if (type === \"string\" && (ret = rcssNum.exec(value)) && ret[1]) {\n value = adjustCSS(elem, name, ret); // Fixes bug #9237\n\n type = \"number\";\n } // Make sure that null and NaN values aren't set (#7116)\n\n\n if (value == null || value !== value) {\n return;\n } // If a number was passed in, add the unit (except for certain CSS properties)\n // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n // \"px\" to a few hardcoded values.\n\n\n if (type === \"number\" && !isCustomProp) {\n value += ret && ret[3] || (jQuery.cssNumber[origName] ? \"\" : \"px\");\n } // background-* props affect original clone's values\n\n\n if (!support.clearCloneStyle && value === \"\" && name.indexOf(\"background\") === 0) {\n style[name] = \"inherit\";\n } // If a hook was provided, use that value, otherwise just set the specified value\n\n\n if (!hooks || !(\"set\" in hooks) || (value = hooks.set(elem, value, extra)) !== undefined) {\n if (isCustomProp) {\n style.setProperty(name, value);\n } else {\n style[name] = value;\n }\n }\n } else {\n // If a hook was provided get the non-computed value from there\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, false, extra)) !== undefined) {\n return ret;\n } // Otherwise just get the value from the style object\n\n\n return style[name];\n }\n },\n css: function css(elem, name, extra, styles) {\n var val,\n num,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name); // Make sure that we're working with the right name. We don't\n // want to modify the value if it is a CSS custom property\n // since they are user-defined.\n\n if (!isCustomProp) {\n name = finalPropName(origName);\n } // Try prefixed name followed by the unprefixed name\n\n\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // If a hook was provided get the computed value from there\n\n if (hooks && \"get\" in hooks) {\n val = hooks.get(elem, true, extra);\n } // Otherwise, if a way to get the computed value exists, use that\n\n\n if (val === undefined) {\n val = curCSS(elem, name, styles);\n } // Convert \"normal\" to computed value\n\n\n if (val === \"normal\" && name in cssNormalTransform) {\n val = cssNormalTransform[name];\n } // Make numeric if forced or a qualifier was provided and val looks numeric\n\n\n if (extra === \"\" || extra) {\n num = parseFloat(val);\n return extra === true || isFinite(num) ? num || 0 : val;\n }\n\n return val;\n }\n });\n jQuery.each([\"height\", \"width\"], function (_i, dimension) {\n jQuery.cssHooks[dimension] = {\n get: function get(elem, computed, extra) {\n if (computed) {\n // Certain elements can have dimension info if we invisibly show them\n // but it must have a current display style that would benefit\n return rdisplayswap.test(jQuery.css(elem, \"display\")) && ( // Support: Safari 8+\n // Table columns in Safari have non-zero offsetWidth & zero\n // getBoundingClientRect().width unless display is changed.\n // Support: IE <=11 only\n // Running getBoundingClientRect on a disconnected node\n // in IE throws an error.\n !elem.getClientRects().length || !elem.getBoundingClientRect().width) ? swap(elem, cssShow, function () {\n return getWidthOrHeight(elem, dimension, extra);\n }) : getWidthOrHeight(elem, dimension, extra);\n }\n },\n set: function set(elem, value, extra) {\n var matches,\n styles = getStyles(elem),\n // Only read styles.position if the test has a chance to fail\n // to avoid forcing a reflow.\n scrollboxSizeBuggy = !support.scrollboxSize() && styles.position === \"absolute\",\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n boxSizingNeeded = scrollboxSizeBuggy || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n subtract = extra ? boxModelAdjustment(elem, dimension, extra, isBorderBox, styles) : 0; // Account for unreliable border-box dimensions by comparing offset* to computed and\n // faking a content-box to get border and padding (gh-3699)\n\n if (isBorderBox && scrollboxSizeBuggy) {\n subtract -= Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - parseFloat(styles[dimension]) - boxModelAdjustment(elem, dimension, \"border\", false, styles) - 0.5);\n } // Convert to pixels if value adjustment is needed\n\n\n if (subtract && (matches = rcssNum.exec(value)) && (matches[3] || \"px\") !== \"px\") {\n elem.style[dimension] = value;\n value = jQuery.css(elem, dimension);\n }\n\n return setPositiveNumber(elem, value, subtract);\n }\n };\n });\n jQuery.cssHooks.marginLeft = addGetHookIf(support.reliableMarginLeft, function (elem, computed) {\n if (computed) {\n return (parseFloat(curCSS(elem, \"marginLeft\")) || elem.getBoundingClientRect().left - swap(elem, {\n marginLeft: 0\n }, function () {\n return elem.getBoundingClientRect().left;\n })) + \"px\";\n }\n }); // These hooks are used by animate to expand properties\n\n jQuery.each({\n margin: \"\",\n padding: \"\",\n border: \"Width\"\n }, function (prefix, suffix) {\n jQuery.cssHooks[prefix + suffix] = {\n expand: function expand(value) {\n var i = 0,\n expanded = {},\n // Assumes a single number if not a string\n parts = typeof value === \"string\" ? value.split(\" \") : [value];\n\n for (; i < 4; i++) {\n expanded[prefix + cssExpand[i] + suffix] = parts[i] || parts[i - 2] || parts[0];\n }\n\n return expanded;\n }\n };\n\n if (prefix !== \"margin\") {\n jQuery.cssHooks[prefix + suffix].set = setPositiveNumber;\n }\n });\n jQuery.fn.extend({\n css: function css(name, value) {\n return access(this, function (elem, name, value) {\n var styles,\n len,\n map = {},\n i = 0;\n\n if (Array.isArray(name)) {\n styles = getStyles(elem);\n len = name.length;\n\n for (; i < len; i++) {\n map[name[i]] = jQuery.css(elem, name[i], false, styles);\n }\n\n return map;\n }\n\n return value !== undefined ? jQuery.style(elem, name, value) : jQuery.css(elem, name);\n }, name, value, arguments.length > 1);\n }\n });\n\n function Tween(elem, options, prop, end, easing) {\n return new Tween.prototype.init(elem, options, prop, end, easing);\n }\n\n jQuery.Tween = Tween;\n Tween.prototype = {\n constructor: Tween,\n init: function init(elem, options, prop, end, easing, unit) {\n this.elem = elem;\n this.prop = prop;\n this.easing = easing || jQuery.easing._default;\n this.options = options;\n this.start = this.now = this.cur();\n this.end = end;\n this.unit = unit || (jQuery.cssNumber[prop] ? \"\" : \"px\");\n },\n cur: function cur() {\n var hooks = Tween.propHooks[this.prop];\n return hooks && hooks.get ? hooks.get(this) : Tween.propHooks._default.get(this);\n },\n run: function run(percent) {\n var eased,\n hooks = Tween.propHooks[this.prop];\n\n if (this.options.duration) {\n this.pos = eased = jQuery.easing[this.easing](percent, this.options.duration * percent, 0, 1, this.options.duration);\n } else {\n this.pos = eased = percent;\n }\n\n this.now = (this.end - this.start) * eased + this.start;\n\n if (this.options.step) {\n this.options.step.call(this.elem, this.now, this);\n }\n\n if (hooks && hooks.set) {\n hooks.set(this);\n } else {\n Tween.propHooks._default.set(this);\n }\n\n return this;\n }\n };\n Tween.prototype.init.prototype = Tween.prototype;\n Tween.propHooks = {\n _default: {\n get: function get(tween) {\n var result; // Use a property on the element directly when it is not a DOM element,\n // or when there is no matching style property that exists.\n\n if (tween.elem.nodeType !== 1 || tween.elem[tween.prop] != null && tween.elem.style[tween.prop] == null) {\n return tween.elem[tween.prop];\n } // Passing an empty string as a 3rd parameter to .css will automatically\n // attempt a parseFloat and fallback to a string if the parse fails.\n // Simple values such as \"10px\" are parsed to Float;\n // complex values such as \"rotate(1rad)\" are returned as-is.\n\n\n result = jQuery.css(tween.elem, tween.prop, \"\"); // Empty strings, null, undefined and \"auto\" are converted to 0.\n\n return !result || result === \"auto\" ? 0 : result;\n },\n set: function set(tween) {\n // Use step hook for back compat.\n // Use cssHook if its there.\n // Use .style if available and use plain properties where available.\n if (jQuery.fx.step[tween.prop]) {\n jQuery.fx.step[tween.prop](tween);\n } else if (tween.elem.nodeType === 1 && (jQuery.cssHooks[tween.prop] || tween.elem.style[finalPropName(tween.prop)] != null)) {\n jQuery.style(tween.elem, tween.prop, tween.now + tween.unit);\n } else {\n tween.elem[tween.prop] = tween.now;\n }\n }\n }\n }; // Support: IE <=9 only\n // Panic based approach to setting things on disconnected nodes\n\n Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n set: function set(tween) {\n if (tween.elem.nodeType && tween.elem.parentNode) {\n tween.elem[tween.prop] = tween.now;\n }\n }\n };\n jQuery.easing = {\n linear: function linear(p) {\n return p;\n },\n swing: function swing(p) {\n return 0.5 - Math.cos(p * Math.PI) / 2;\n },\n _default: \"swing\"\n };\n jQuery.fx = Tween.prototype.init; // Back compat <1.8 extension point\n\n jQuery.fx.step = {};\n var fxNow,\n inProgress,\n rfxtypes = /^(?:toggle|show|hide)$/,\n rrun = /queueHooks$/;\n\n function schedule() {\n if (inProgress) {\n if (document.hidden === false && window.requestAnimationFrame) {\n window.requestAnimationFrame(schedule);\n } else {\n window.setTimeout(schedule, jQuery.fx.interval);\n }\n\n jQuery.fx.tick();\n }\n } // Animations created synchronously will run synchronously\n\n\n function createFxNow() {\n window.setTimeout(function () {\n fxNow = undefined;\n });\n return fxNow = Date.now();\n } // Generate parameters to create a standard animation\n\n\n function genFx(type, includeWidth) {\n var which,\n i = 0,\n attrs = {\n height: type\n }; // If we include width, step value is 1 to do all cssExpand values,\n // otherwise step value is 2 to skip over Left and Right\n\n includeWidth = includeWidth ? 1 : 0;\n\n for (; i < 4; i += 2 - includeWidth) {\n which = cssExpand[i];\n attrs[\"margin\" + which] = attrs[\"padding\" + which] = type;\n }\n\n if (includeWidth) {\n attrs.opacity = attrs.width = type;\n }\n\n return attrs;\n }\n\n function createTween(value, prop, animation) {\n var tween,\n collection = (Animation.tweeners[prop] || []).concat(Animation.tweeners[\"*\"]),\n index = 0,\n length = collection.length;\n\n for (; index < length; index++) {\n if (tween = collection[index].call(animation, prop, value)) {\n // We're done with this property\n return tween;\n }\n }\n }\n\n function defaultPrefilter(elem, props, opts) {\n var prop,\n value,\n toggle,\n hooks,\n oldfire,\n propTween,\n restoreDisplay,\n display,\n isBox = \"width\" in props || \"height\" in props,\n anim = this,\n orig = {},\n style = elem.style,\n hidden = elem.nodeType && isHiddenWithinTree(elem),\n dataShow = dataPriv.get(elem, \"fxshow\"); // Queue-skipping animations hijack the fx hooks\n\n if (!opts.queue) {\n hooks = jQuery._queueHooks(elem, \"fx\");\n\n if (hooks.unqueued == null) {\n hooks.unqueued = 0;\n oldfire = hooks.empty.fire;\n\n hooks.empty.fire = function () {\n if (!hooks.unqueued) {\n oldfire();\n }\n };\n }\n\n hooks.unqueued++;\n anim.always(function () {\n // Ensure the complete handler is called before this completes\n anim.always(function () {\n hooks.unqueued--;\n\n if (!jQuery.queue(elem, \"fx\").length) {\n hooks.empty.fire();\n }\n });\n });\n } // Detect show/hide animations\n\n\n for (prop in props) {\n value = props[prop];\n\n if (rfxtypes.test(value)) {\n delete props[prop];\n toggle = toggle || value === \"toggle\";\n\n if (value === (hidden ? \"hide\" : \"show\")) {\n // Pretend to be hidden if this is a \"show\" and\n // there is still data from a stopped show/hide\n if (value === \"show\" && dataShow && dataShow[prop] !== undefined) {\n hidden = true; // Ignore all other no-op show/hide data\n } else {\n continue;\n }\n }\n\n orig[prop] = dataShow && dataShow[prop] || jQuery.style(elem, prop);\n }\n } // Bail out if this is a no-op like .hide().hide()\n\n\n propTween = !jQuery.isEmptyObject(props);\n\n if (!propTween && jQuery.isEmptyObject(orig)) {\n return;\n } // Restrict \"overflow\" and \"display\" styles during box animations\n\n\n if (isBox && elem.nodeType === 1) {\n // Support: IE <=9 - 11, Edge 12 - 15\n // Record all 3 overflow attributes because IE does not infer the shorthand\n // from identically-valued overflowX and overflowY and Edge just mirrors\n // the overflowX value there.\n opts.overflow = [style.overflow, style.overflowX, style.overflowY]; // Identify a display type, preferring old show/hide data over the CSS cascade\n\n restoreDisplay = dataShow && dataShow.display;\n\n if (restoreDisplay == null) {\n restoreDisplay = dataPriv.get(elem, \"display\");\n }\n\n display = jQuery.css(elem, \"display\");\n\n if (display === \"none\") {\n if (restoreDisplay) {\n display = restoreDisplay;\n } else {\n // Get nonempty value(s) by temporarily forcing visibility\n showHide([elem], true);\n restoreDisplay = elem.style.display || restoreDisplay;\n display = jQuery.css(elem, \"display\");\n showHide([elem]);\n }\n } // Animate inline elements as inline-block\n\n\n if (display === \"inline\" || display === \"inline-block\" && restoreDisplay != null) {\n if (jQuery.css(elem, \"float\") === \"none\") {\n // Restore the original display value at the end of pure show/hide animations\n if (!propTween) {\n anim.done(function () {\n style.display = restoreDisplay;\n });\n\n if (restoreDisplay == null) {\n display = style.display;\n restoreDisplay = display === \"none\" ? \"\" : display;\n }\n }\n\n style.display = \"inline-block\";\n }\n }\n }\n\n if (opts.overflow) {\n style.overflow = \"hidden\";\n anim.always(function () {\n style.overflow = opts.overflow[0];\n style.overflowX = opts.overflow[1];\n style.overflowY = opts.overflow[2];\n });\n } // Implement show/hide animations\n\n\n propTween = false;\n\n for (prop in orig) {\n // General show/hide setup for this element animation\n if (!propTween) {\n if (dataShow) {\n if (\"hidden\" in dataShow) {\n hidden = dataShow.hidden;\n }\n } else {\n dataShow = dataPriv.access(elem, \"fxshow\", {\n display: restoreDisplay\n });\n } // Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\n\n if (toggle) {\n dataShow.hidden = !hidden;\n } // Show elements before animating them\n\n\n if (hidden) {\n showHide([elem], true);\n }\n /* eslint-disable no-loop-func */\n\n\n anim.done(function () {\n /* eslint-enable no-loop-func */\n // The final step of a \"hide\" animation is actually hiding the element\n if (!hidden) {\n showHide([elem]);\n }\n\n dataPriv.remove(elem, \"fxshow\");\n\n for (prop in orig) {\n jQuery.style(elem, prop, orig[prop]);\n }\n });\n } // Per-property setup\n\n\n propTween = createTween(hidden ? dataShow[prop] : 0, prop, anim);\n\n if (!(prop in dataShow)) {\n dataShow[prop] = propTween.start;\n\n if (hidden) {\n propTween.end = propTween.start;\n propTween.start = 0;\n }\n }\n }\n }\n\n function propFilter(props, specialEasing) {\n var index, name, easing, value, hooks; // camelCase, specialEasing and expand cssHook pass\n\n for (index in props) {\n name = camelCase(index);\n easing = specialEasing[name];\n value = props[index];\n\n if (Array.isArray(value)) {\n easing = value[1];\n value = props[index] = value[0];\n }\n\n if (index !== name) {\n props[name] = value;\n delete props[index];\n }\n\n hooks = jQuery.cssHooks[name];\n\n if (hooks && \"expand\" in hooks) {\n value = hooks.expand(value);\n delete props[name]; // Not quite $.extend, this won't overwrite existing keys.\n // Reusing 'index' because we have the correct \"name\"\n\n for (index in value) {\n if (!(index in props)) {\n props[index] = value[index];\n specialEasing[index] = easing;\n }\n }\n } else {\n specialEasing[name] = easing;\n }\n }\n }\n\n function Animation(elem, properties, options) {\n var result,\n stopped,\n index = 0,\n length = Animation.prefilters.length,\n deferred = jQuery.Deferred().always(function () {\n // Don't match elem in the :animated selector\n delete tick.elem;\n }),\n tick = function tick() {\n if (stopped) {\n return false;\n }\n\n var currentTime = fxNow || createFxNow(),\n remaining = Math.max(0, animation.startTime + animation.duration - currentTime),\n // Support: Android 2.3 only\n // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n temp = remaining / animation.duration || 0,\n percent = 1 - temp,\n index = 0,\n length = animation.tweens.length;\n\n for (; index < length; index++) {\n animation.tweens[index].run(percent);\n }\n\n deferred.notifyWith(elem, [animation, percent, remaining]); // If there's more to do, yield\n\n if (percent < 1 && length) {\n return remaining;\n } // If this was an empty animation, synthesize a final progress notification\n\n\n if (!length) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n } // Resolve the animation and report its conclusion\n\n\n deferred.resolveWith(elem, [animation]);\n return false;\n },\n animation = deferred.promise({\n elem: elem,\n props: jQuery.extend({}, properties),\n opts: jQuery.extend(true, {\n specialEasing: {},\n easing: jQuery.easing._default\n }, options),\n originalProperties: properties,\n originalOptions: options,\n startTime: fxNow || createFxNow(),\n duration: options.duration,\n tweens: [],\n createTween: function createTween(prop, end) {\n var tween = jQuery.Tween(elem, animation.opts, prop, end, animation.opts.specialEasing[prop] || animation.opts.easing);\n animation.tweens.push(tween);\n return tween;\n },\n stop: function stop(gotoEnd) {\n var index = 0,\n // If we are going to the end, we want to run all the tweens\n // otherwise we skip this part\n length = gotoEnd ? animation.tweens.length : 0;\n\n if (stopped) {\n return this;\n }\n\n stopped = true;\n\n for (; index < length; index++) {\n animation.tweens[index].run(1);\n } // Resolve when we played the last frame; otherwise, reject\n\n\n if (gotoEnd) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n deferred.resolveWith(elem, [animation, gotoEnd]);\n } else {\n deferred.rejectWith(elem, [animation, gotoEnd]);\n }\n\n return this;\n }\n }),\n props = animation.props;\n\n propFilter(props, animation.opts.specialEasing);\n\n for (; index < length; index++) {\n result = Animation.prefilters[index].call(animation, elem, props, animation.opts);\n\n if (result) {\n if (isFunction(result.stop)) {\n jQuery._queueHooks(animation.elem, animation.opts.queue).stop = result.stop.bind(result);\n }\n\n return result;\n }\n }\n\n jQuery.map(props, createTween, animation);\n\n if (isFunction(animation.opts.start)) {\n animation.opts.start.call(elem, animation);\n } // Attach callbacks from options\n\n\n animation.progress(animation.opts.progress).done(animation.opts.done, animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always);\n jQuery.fx.timer(jQuery.extend(tick, {\n elem: elem,\n anim: animation,\n queue: animation.opts.queue\n }));\n return animation;\n }\n\n jQuery.Animation = jQuery.extend(Animation, {\n tweeners: {\n \"*\": [function (prop, value) {\n var tween = this.createTween(prop, value);\n adjustCSS(tween.elem, prop, rcssNum.exec(value), tween);\n return tween;\n }]\n },\n tweener: function tweener(props, callback) {\n if (isFunction(props)) {\n callback = props;\n props = [\"*\"];\n } else {\n props = props.match(rnothtmlwhite);\n }\n\n var prop,\n index = 0,\n length = props.length;\n\n for (; index < length; index++) {\n prop = props[index];\n Animation.tweeners[prop] = Animation.tweeners[prop] || [];\n Animation.tweeners[prop].unshift(callback);\n }\n },\n prefilters: [defaultPrefilter],\n prefilter: function prefilter(callback, prepend) {\n if (prepend) {\n Animation.prefilters.unshift(callback);\n } else {\n Animation.prefilters.push(callback);\n }\n }\n });\n\n jQuery.speed = function (speed, easing, fn) {\n var opt = speed && _typeof(speed) === \"object\" ? jQuery.extend({}, speed) : {\n complete: fn || !fn && easing || isFunction(speed) && speed,\n duration: speed,\n easing: fn && easing || easing && !isFunction(easing) && easing\n }; // Go to the end state if fx are off\n\n if (jQuery.fx.off) {\n opt.duration = 0;\n } else {\n if (typeof opt.duration !== \"number\") {\n if (opt.duration in jQuery.fx.speeds) {\n opt.duration = jQuery.fx.speeds[opt.duration];\n } else {\n opt.duration = jQuery.fx.speeds._default;\n }\n }\n } // Normalize opt.queue - true/undefined/null -> \"fx\"\n\n\n if (opt.queue == null || opt.queue === true) {\n opt.queue = \"fx\";\n } // Queueing\n\n\n opt.old = opt.complete;\n\n opt.complete = function () {\n if (isFunction(opt.old)) {\n opt.old.call(this);\n }\n\n if (opt.queue) {\n jQuery.dequeue(this, opt.queue);\n }\n };\n\n return opt;\n };\n\n jQuery.fn.extend({\n fadeTo: function fadeTo(speed, to, easing, callback) {\n // Show any hidden elements after setting opacity to 0\n return this.filter(isHiddenWithinTree).css(\"opacity\", 0).show() // Animate to the value specified\n .end().animate({\n opacity: to\n }, speed, easing, callback);\n },\n animate: function animate(prop, speed, easing, callback) {\n var empty = jQuery.isEmptyObject(prop),\n optall = jQuery.speed(speed, easing, callback),\n doAnimation = function doAnimation() {\n // Operate on a copy of prop so per-property easing won't be lost\n var anim = Animation(this, jQuery.extend({}, prop), optall); // Empty animations, or finishing resolves immediately\n\n if (empty || dataPriv.get(this, \"finish\")) {\n anim.stop(true);\n }\n };\n\n doAnimation.finish = doAnimation;\n return empty || optall.queue === false ? this.each(doAnimation) : this.queue(optall.queue, doAnimation);\n },\n stop: function stop(type, clearQueue, gotoEnd) {\n var stopQueue = function stopQueue(hooks) {\n var stop = hooks.stop;\n delete hooks.stop;\n stop(gotoEnd);\n };\n\n if (typeof type !== \"string\") {\n gotoEnd = clearQueue;\n clearQueue = type;\n type = undefined;\n }\n\n if (clearQueue) {\n this.queue(type || \"fx\", []);\n }\n\n return this.each(function () {\n var dequeue = true,\n index = type != null && type + \"queueHooks\",\n timers = jQuery.timers,\n data = dataPriv.get(this);\n\n if (index) {\n if (data[index] && data[index].stop) {\n stopQueue(data[index]);\n }\n } else {\n for (index in data) {\n if (data[index] && data[index].stop && rrun.test(index)) {\n stopQueue(data[index]);\n }\n }\n }\n\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && (type == null || timers[index].queue === type)) {\n timers[index].anim.stop(gotoEnd);\n dequeue = false;\n timers.splice(index, 1);\n }\n } // Start the next in the queue if the last step wasn't forced.\n // Timers currently will call their complete callbacks, which\n // will dequeue but only if they were gotoEnd.\n\n\n if (dequeue || !gotoEnd) {\n jQuery.dequeue(this, type);\n }\n });\n },\n finish: function finish(type) {\n if (type !== false) {\n type = type || \"fx\";\n }\n\n return this.each(function () {\n var index,\n data = dataPriv.get(this),\n queue = data[type + \"queue\"],\n hooks = data[type + \"queueHooks\"],\n timers = jQuery.timers,\n length = queue ? queue.length : 0; // Enable finishing flag on private data\n\n data.finish = true; // Empty the queue first\n\n jQuery.queue(this, type, []);\n\n if (hooks && hooks.stop) {\n hooks.stop.call(this, true);\n } // Look for any active animations, and finish them\n\n\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && timers[index].queue === type) {\n timers[index].anim.stop(true);\n timers.splice(index, 1);\n }\n } // Look for any animations in the old queue and finish them\n\n\n for (index = 0; index < length; index++) {\n if (queue[index] && queue[index].finish) {\n queue[index].finish.call(this);\n }\n } // Turn off finishing flag\n\n\n delete data.finish;\n });\n }\n });\n jQuery.each([\"toggle\", \"show\", \"hide\"], function (_i, name) {\n var cssFn = jQuery.fn[name];\n\n jQuery.fn[name] = function (speed, easing, callback) {\n return speed == null || typeof speed === \"boolean\" ? cssFn.apply(this, arguments) : this.animate(genFx(name, true), speed, easing, callback);\n };\n }); // Generate shortcuts for custom animations\n\n jQuery.each({\n slideDown: genFx(\"show\"),\n slideUp: genFx(\"hide\"),\n slideToggle: genFx(\"toggle\"),\n fadeIn: {\n opacity: \"show\"\n },\n fadeOut: {\n opacity: \"hide\"\n },\n fadeToggle: {\n opacity: \"toggle\"\n }\n }, function (name, props) {\n jQuery.fn[name] = function (speed, easing, callback) {\n return this.animate(props, speed, easing, callback);\n };\n });\n jQuery.timers = [];\n\n jQuery.fx.tick = function () {\n var timer,\n i = 0,\n timers = jQuery.timers;\n fxNow = Date.now();\n\n for (; i < timers.length; i++) {\n timer = timers[i]; // Run the timer and safely remove it when done (allowing for external removal)\n\n if (!timer() && timers[i] === timer) {\n timers.splice(i--, 1);\n }\n }\n\n if (!timers.length) {\n jQuery.fx.stop();\n }\n\n fxNow = undefined;\n };\n\n jQuery.fx.timer = function (timer) {\n jQuery.timers.push(timer);\n jQuery.fx.start();\n };\n\n jQuery.fx.interval = 13;\n\n jQuery.fx.start = function () {\n if (inProgress) {\n return;\n }\n\n inProgress = true;\n schedule();\n };\n\n jQuery.fx.stop = function () {\n inProgress = null;\n };\n\n jQuery.fx.speeds = {\n slow: 600,\n fast: 200,\n // Default speed\n _default: 400\n }; // Based off of the plugin by Clint Helfers, with permission.\n // https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\n\n jQuery.fn.delay = function (time, type) {\n time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;\n type = type || \"fx\";\n return this.queue(type, function (next, hooks) {\n var timeout = window.setTimeout(next, time);\n\n hooks.stop = function () {\n window.clearTimeout(timeout);\n };\n });\n };\n\n (function () {\n var input = document.createElement(\"input\"),\n select = document.createElement(\"select\"),\n opt = select.appendChild(document.createElement(\"option\"));\n input.type = \"checkbox\"; // Support: Android <=4.3 only\n // Default value for a checkbox should be \"on\"\n\n support.checkOn = input.value !== \"\"; // Support: IE <=11 only\n // Must access selectedIndex to make default options select\n\n support.optSelected = opt.selected; // Support: IE <=11 only\n // An input loses its value after becoming a radio\n\n input = document.createElement(\"input\");\n input.value = \"t\";\n input.type = \"radio\";\n support.radioValue = input.value === \"t\";\n })();\n\n var boolHook,\n attrHandle = jQuery.expr.attrHandle;\n jQuery.fn.extend({\n attr: function attr(name, value) {\n return access(this, jQuery.attr, name, value, arguments.length > 1);\n },\n removeAttr: function removeAttr(name) {\n return this.each(function () {\n jQuery.removeAttr(this, name);\n });\n }\n });\n jQuery.extend({\n attr: function attr(elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType; // Don't get/set attributes on text, comment and attribute nodes\n\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n } // Fallback to prop when attributes are not supported\n\n\n if (typeof elem.getAttribute === \"undefined\") {\n return jQuery.prop(elem, name, value);\n } // Attribute hooks are determined by the lowercase version\n // Grab necessary hook if one is defined\n\n\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n hooks = jQuery.attrHooks[name.toLowerCase()] || (jQuery.expr.match.bool.test(name) ? boolHook : undefined);\n }\n\n if (value !== undefined) {\n if (value === null) {\n jQuery.removeAttr(elem, name);\n return;\n }\n\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n\n elem.setAttribute(name, value + \"\");\n return value;\n }\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n\n ret = jQuery.find.attr(elem, name); // Non-existent attributes return null, we normalize to undefined\n\n return ret == null ? undefined : ret;\n },\n attrHooks: {\n type: {\n set: function set(elem, value) {\n if (!support.radioValue && value === \"radio\" && nodeName(elem, \"input\")) {\n var val = elem.value;\n elem.setAttribute(\"type\", value);\n\n if (val) {\n elem.value = val;\n }\n\n return value;\n }\n }\n }\n },\n removeAttr: function removeAttr(elem, value) {\n var name,\n i = 0,\n // Attribute names can contain non-HTML whitespace characters\n // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n attrNames = value && value.match(rnothtmlwhite);\n\n if (attrNames && elem.nodeType === 1) {\n while (name = attrNames[i++]) {\n elem.removeAttribute(name);\n }\n }\n }\n }); // Hooks for boolean attributes\n\n boolHook = {\n set: function set(elem, value, name) {\n if (value === false) {\n // Remove boolean attributes when set to false\n jQuery.removeAttr(elem, name);\n } else {\n elem.setAttribute(name, name);\n }\n\n return name;\n }\n };\n jQuery.each(jQuery.expr.match.bool.source.match(/\\w+/g), function (_i, name) {\n var getter = attrHandle[name] || jQuery.find.attr;\n\n attrHandle[name] = function (elem, name, isXML) {\n var ret,\n handle,\n lowercaseName = name.toLowerCase();\n\n if (!isXML) {\n // Avoid an infinite loop by temporarily removing this function from the getter\n handle = attrHandle[lowercaseName];\n attrHandle[lowercaseName] = ret;\n ret = getter(elem, name, isXML) != null ? lowercaseName : null;\n attrHandle[lowercaseName] = handle;\n }\n\n return ret;\n };\n });\n var rfocusable = /^(?:input|select|textarea|button)$/i,\n rclickable = /^(?:a|area)$/i;\n jQuery.fn.extend({\n prop: function prop(name, value) {\n return access(this, jQuery.prop, name, value, arguments.length > 1);\n },\n removeProp: function removeProp(name) {\n return this.each(function () {\n delete this[jQuery.propFix[name] || name];\n });\n }\n });\n jQuery.extend({\n prop: function prop(elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType; // Don't get/set properties on text, comment and attribute nodes\n\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n }\n\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n // Fix name and attach hooks\n name = jQuery.propFix[name] || name;\n hooks = jQuery.propHooks[name];\n }\n\n if (value !== undefined) {\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n\n return elem[name] = value;\n }\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n\n return elem[name];\n },\n propHooks: {\n tabIndex: {\n get: function get(elem) {\n // Support: IE <=9 - 11 only\n // elem.tabIndex doesn't always return the\n // correct value when it hasn't been explicitly set\n // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n // Use proper attribute retrieval(#12072)\n var tabindex = jQuery.find.attr(elem, \"tabindex\");\n\n if (tabindex) {\n return parseInt(tabindex, 10);\n }\n\n if (rfocusable.test(elem.nodeName) || rclickable.test(elem.nodeName) && elem.href) {\n return 0;\n }\n\n return -1;\n }\n }\n },\n propFix: {\n \"for\": \"htmlFor\",\n \"class\": \"className\"\n }\n }); // Support: IE <=11 only\n // Accessing the selectedIndex property\n // forces the browser to respect setting selected\n // on the option\n // The getter ensures a default option is selected\n // when in an optgroup\n // eslint rule \"no-unused-expressions\" is disabled for this code\n // since it considers such accessions noop\n\n if (!support.optSelected) {\n jQuery.propHooks.selected = {\n get: function get(elem) {\n /* eslint no-unused-expressions: \"off\" */\n var parent = elem.parentNode;\n\n if (parent && parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n\n return null;\n },\n set: function set(elem) {\n /* eslint no-unused-expressions: \"off\" */\n var parent = elem.parentNode;\n\n if (parent) {\n parent.selectedIndex;\n\n if (parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n }\n }\n };\n }\n\n jQuery.each([\"tabIndex\", \"readOnly\", \"maxLength\", \"cellSpacing\", \"cellPadding\", \"rowSpan\", \"colSpan\", \"useMap\", \"frameBorder\", \"contentEditable\"], function () {\n jQuery.propFix[this.toLowerCase()] = this;\n }); // Strip and collapse whitespace according to HTML spec\n // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\n function stripAndCollapse(value) {\n var tokens = value.match(rnothtmlwhite) || [];\n return tokens.join(\" \");\n }\n\n function getClass(elem) {\n return elem.getAttribute && elem.getAttribute(\"class\") || \"\";\n }\n\n function classesToArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n\n if (typeof value === \"string\") {\n return value.match(rnothtmlwhite) || [];\n }\n\n return [];\n }\n\n jQuery.fn.extend({\n addClass: function addClass(value) {\n var classes,\n elem,\n cur,\n curValue,\n clazz,\n j,\n finalValue,\n i = 0;\n\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).addClass(value.call(this, j, getClass(this)));\n });\n }\n\n classes = classesToArray(value);\n\n if (classes.length) {\n while (elem = this[i++]) {\n curValue = getClass(elem);\n cur = elem.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n\n if (cur) {\n j = 0;\n\n while (clazz = classes[j++]) {\n if (cur.indexOf(\" \" + clazz + \" \") < 0) {\n cur += clazz + \" \";\n }\n } // Only assign if different to avoid unneeded rendering.\n\n\n finalValue = stripAndCollapse(cur);\n\n if (curValue !== finalValue) {\n elem.setAttribute(\"class\", finalValue);\n }\n }\n }\n }\n\n return this;\n },\n removeClass: function removeClass(value) {\n var classes,\n elem,\n cur,\n curValue,\n clazz,\n j,\n finalValue,\n i = 0;\n\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).removeClass(value.call(this, j, getClass(this)));\n });\n }\n\n if (!arguments.length) {\n return this.attr(\"class\", \"\");\n }\n\n classes = classesToArray(value);\n\n if (classes.length) {\n while (elem = this[i++]) {\n curValue = getClass(elem); // This expression is here for better compressibility (see addClass)\n\n cur = elem.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n\n if (cur) {\n j = 0;\n\n while (clazz = classes[j++]) {\n // Remove *all* instances\n while (cur.indexOf(\" \" + clazz + \" \") > -1) {\n cur = cur.replace(\" \" + clazz + \" \", \" \");\n }\n } // Only assign if different to avoid unneeded rendering.\n\n\n finalValue = stripAndCollapse(cur);\n\n if (curValue !== finalValue) {\n elem.setAttribute(\"class\", finalValue);\n }\n }\n }\n }\n\n return this;\n },\n toggleClass: function toggleClass(value, stateVal) {\n var type = _typeof(value),\n isValidValue = type === \"string\" || Array.isArray(value);\n\n if (typeof stateVal === \"boolean\" && isValidValue) {\n return stateVal ? this.addClass(value) : this.removeClass(value);\n }\n\n if (isFunction(value)) {\n return this.each(function (i) {\n jQuery(this).toggleClass(value.call(this, i, getClass(this), stateVal), stateVal);\n });\n }\n\n return this.each(function () {\n var className, i, self, classNames;\n\n if (isValidValue) {\n // Toggle individual class names\n i = 0;\n self = jQuery(this);\n classNames = classesToArray(value);\n\n while (className = classNames[i++]) {\n // Check each className given, space separated list\n if (self.hasClass(className)) {\n self.removeClass(className);\n } else {\n self.addClass(className);\n }\n } // Toggle whole class name\n\n } else if (value === undefined || type === \"boolean\") {\n className = getClass(this);\n\n if (className) {\n // Store className if set\n dataPriv.set(this, \"__className__\", className);\n } // If the element has a class name or if we're passed `false`,\n // then remove the whole classname (if there was one, the above saved it).\n // Otherwise bring back whatever was previously saved (if anything),\n // falling back to the empty string if nothing was stored.\n\n\n if (this.setAttribute) {\n this.setAttribute(\"class\", className || value === false ? \"\" : dataPriv.get(this, \"__className__\") || \"\");\n }\n }\n });\n },\n hasClass: function hasClass(selector) {\n var className,\n elem,\n i = 0;\n className = \" \" + selector + \" \";\n\n while (elem = this[i++]) {\n if (elem.nodeType === 1 && (\" \" + stripAndCollapse(getClass(elem)) + \" \").indexOf(className) > -1) {\n return true;\n }\n }\n\n return false;\n }\n });\n var rreturn = /\\r/g;\n jQuery.fn.extend({\n val: function val(value) {\n var hooks,\n ret,\n valueIsFunction,\n elem = this[0];\n\n if (!arguments.length) {\n if (elem) {\n hooks = jQuery.valHooks[elem.type] || jQuery.valHooks[elem.nodeName.toLowerCase()];\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, \"value\")) !== undefined) {\n return ret;\n }\n\n ret = elem.value; // Handle most common string cases\n\n if (typeof ret === \"string\") {\n return ret.replace(rreturn, \"\");\n } // Handle cases where value is null/undef or number\n\n\n return ret == null ? \"\" : ret;\n }\n\n return;\n }\n\n valueIsFunction = isFunction(value);\n return this.each(function (i) {\n var val;\n\n if (this.nodeType !== 1) {\n return;\n }\n\n if (valueIsFunction) {\n val = value.call(this, i, jQuery(this).val());\n } else {\n val = value;\n } // Treat null/undefined as \"\"; convert numbers to string\n\n\n if (val == null) {\n val = \"\";\n } else if (typeof val === \"number\") {\n val += \"\";\n } else if (Array.isArray(val)) {\n val = jQuery.map(val, function (value) {\n return value == null ? \"\" : value + \"\";\n });\n }\n\n hooks = jQuery.valHooks[this.type] || jQuery.valHooks[this.nodeName.toLowerCase()]; // If set returns undefined, fall back to normal setting\n\n if (!hooks || !(\"set\" in hooks) || hooks.set(this, val, \"value\") === undefined) {\n this.value = val;\n }\n });\n }\n });\n jQuery.extend({\n valHooks: {\n option: {\n get: function get(elem) {\n var val = jQuery.find.attr(elem, \"value\");\n return val != null ? val : // Support: IE <=10 - 11 only\n // option.text throws exceptions (#14686, #14858)\n // Strip and collapse whitespace\n // https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n stripAndCollapse(jQuery.text(elem));\n }\n },\n select: {\n get: function get(elem) {\n var value,\n option,\n i,\n options = elem.options,\n index = elem.selectedIndex,\n one = elem.type === \"select-one\",\n values = one ? null : [],\n max = one ? index + 1 : options.length;\n\n if (index < 0) {\n i = max;\n } else {\n i = one ? index : 0;\n } // Loop through all the selected options\n\n\n for (; i < max; i++) {\n option = options[i]; // Support: IE <=9 only\n // IE8-9 doesn't update selected after form reset (#2551)\n\n if ((option.selected || i === index) && // Don't return options that are disabled or in a disabled optgroup\n !option.disabled && (!option.parentNode.disabled || !nodeName(option.parentNode, \"optgroup\"))) {\n // Get the specific value for the option\n value = jQuery(option).val(); // We don't need an array for one selects\n\n if (one) {\n return value;\n } // Multi-Selects return an array\n\n\n values.push(value);\n }\n }\n\n return values;\n },\n set: function set(elem, value) {\n var optionSet,\n option,\n options = elem.options,\n values = jQuery.makeArray(value),\n i = options.length;\n\n while (i--) {\n option = options[i];\n /* eslint-disable no-cond-assign */\n\n if (option.selected = jQuery.inArray(jQuery.valHooks.option.get(option), values) > -1) {\n optionSet = true;\n }\n /* eslint-enable no-cond-assign */\n\n } // Force browsers to behave consistently when non-matching value is set\n\n\n if (!optionSet) {\n elem.selectedIndex = -1;\n }\n\n return values;\n }\n }\n }\n }); // Radios and checkboxes getter/setter\n\n jQuery.each([\"radio\", \"checkbox\"], function () {\n jQuery.valHooks[this] = {\n set: function set(elem, value) {\n if (Array.isArray(value)) {\n return elem.checked = jQuery.inArray(jQuery(elem).val(), value) > -1;\n }\n }\n };\n\n if (!support.checkOn) {\n jQuery.valHooks[this].get = function (elem) {\n return elem.getAttribute(\"value\") === null ? \"on\" : elem.value;\n };\n }\n }); // Return jQuery for attributes-only inclusion\n\n support.focusin = \"onfocusin\" in window;\n\n var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n stopPropagationCallback = function stopPropagationCallback(e) {\n e.stopPropagation();\n };\n\n jQuery.extend(jQuery.event, {\n trigger: function trigger(event, data, elem, onlyHandlers) {\n var i,\n cur,\n tmp,\n bubbleType,\n ontype,\n handle,\n special,\n lastElement,\n eventPath = [elem || document],\n type = hasOwn.call(event, \"type\") ? event.type : event,\n namespaces = hasOwn.call(event, \"namespace\") ? event.namespace.split(\".\") : [];\n cur = lastElement = tmp = elem = elem || document; // Don't do events on text and comment nodes\n\n if (elem.nodeType === 3 || elem.nodeType === 8) {\n return;\n } // focus/blur morphs to focusin/out; ensure we're not firing them right now\n\n\n if (rfocusMorph.test(type + jQuery.event.triggered)) {\n return;\n }\n\n if (type.indexOf(\".\") > -1) {\n // Namespaced trigger; create a regexp to match event type in handle()\n namespaces = type.split(\".\");\n type = namespaces.shift();\n namespaces.sort();\n }\n\n ontype = type.indexOf(\":\") < 0 && \"on\" + type; // Caller can pass in a jQuery.Event object, Object, or just an event type string\n\n event = event[jQuery.expando] ? event : new jQuery.Event(type, _typeof(event) === \"object\" && event); // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\n event.isTrigger = onlyHandlers ? 2 : 3;\n event.namespace = namespaces.join(\".\");\n event.rnamespace = event.namespace ? new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") : null; // Clean up the event in case it is being reused\n\n event.result = undefined;\n\n if (!event.target) {\n event.target = elem;\n } // Clone any incoming data and prepend the event, creating the handler arg list\n\n\n data = data == null ? [event] : jQuery.makeArray(data, [event]); // Allow special events to draw outside the lines\n\n special = jQuery.event.special[type] || {};\n\n if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) {\n return;\n } // Determine event propagation path in advance, per W3C events spec (#9951)\n // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\n\n if (!onlyHandlers && !special.noBubble && !isWindow(elem)) {\n bubbleType = special.delegateType || type;\n\n if (!rfocusMorph.test(bubbleType + type)) {\n cur = cur.parentNode;\n }\n\n for (; cur; cur = cur.parentNode) {\n eventPath.push(cur);\n tmp = cur;\n } // Only add window if we got to document (e.g., not plain obj or detached DOM)\n\n\n if (tmp === (elem.ownerDocument || document)) {\n eventPath.push(tmp.defaultView || tmp.parentWindow || window);\n }\n } // Fire handlers on the event path\n\n\n i = 0;\n\n while ((cur = eventPath[i++]) && !event.isPropagationStopped()) {\n lastElement = cur;\n event.type = i > 1 ? bubbleType : special.bindType || type; // jQuery handler\n\n handle = (dataPriv.get(cur, \"events\") || Object.create(null))[event.type] && dataPriv.get(cur, \"handle\");\n\n if (handle) {\n handle.apply(cur, data);\n } // Native handler\n\n\n handle = ontype && cur[ontype];\n\n if (handle && handle.apply && acceptData(cur)) {\n event.result = handle.apply(cur, data);\n\n if (event.result === false) {\n event.preventDefault();\n }\n }\n }\n\n event.type = type; // If nobody prevented the default action, do it now\n\n if (!onlyHandlers && !event.isDefaultPrevented()) {\n if ((!special._default || special._default.apply(eventPath.pop(), data) === false) && acceptData(elem)) {\n // Call a native DOM method on the target with the same name as the event.\n // Don't do default actions on window, that's where global variables be (#6170)\n if (ontype && isFunction(elem[type]) && !isWindow(elem)) {\n // Don't re-trigger an onFOO event when we call its FOO() method\n tmp = elem[ontype];\n\n if (tmp) {\n elem[ontype] = null;\n } // Prevent re-triggering of the same event, since we already bubbled it above\n\n\n jQuery.event.triggered = type;\n\n if (event.isPropagationStopped()) {\n lastElement.addEventListener(type, stopPropagationCallback);\n }\n\n elem[type]();\n\n if (event.isPropagationStopped()) {\n lastElement.removeEventListener(type, stopPropagationCallback);\n }\n\n jQuery.event.triggered = undefined;\n\n if (tmp) {\n elem[ontype] = tmp;\n }\n }\n }\n }\n\n return event.result;\n },\n // Piggyback on a donor event to simulate a different one\n // Used only for `focus(in | out)` events\n simulate: function simulate(type, elem, event) {\n var e = jQuery.extend(new jQuery.Event(), event, {\n type: type,\n isSimulated: true\n });\n jQuery.event.trigger(e, null, elem);\n }\n });\n jQuery.fn.extend({\n trigger: function trigger(type, data) {\n return this.each(function () {\n jQuery.event.trigger(type, data, this);\n });\n },\n triggerHandler: function triggerHandler(type, data) {\n var elem = this[0];\n\n if (elem) {\n return jQuery.event.trigger(type, data, elem, true);\n }\n }\n }); // Support: Firefox <=44\n // Firefox doesn't have focus(in | out) events\n // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n //\n // Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n // focus(in | out) events fire after focus & blur events,\n // which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n // Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\n\n if (!support.focusin) {\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (orig, fix) {\n // Attach a single capturing handler on the document while someone wants focusin/focusout\n var handler = function handler(event) {\n jQuery.event.simulate(fix, event.target, jQuery.event.fix(event));\n };\n\n jQuery.event.special[fix] = {\n setup: function setup() {\n // Handle: regular nodes (via `this.ownerDocument`), window\n // (via `this.document`) & document (via `this`).\n var doc = this.ownerDocument || this.document || this,\n attaches = dataPriv.access(doc, fix);\n\n if (!attaches) {\n doc.addEventListener(orig, handler, true);\n }\n\n dataPriv.access(doc, fix, (attaches || 0) + 1);\n },\n teardown: function teardown() {\n var doc = this.ownerDocument || this.document || this,\n attaches = dataPriv.access(doc, fix) - 1;\n\n if (!attaches) {\n doc.removeEventListener(orig, handler, true);\n dataPriv.remove(doc, fix);\n } else {\n dataPriv.access(doc, fix, attaches);\n }\n }\n };\n });\n }\n\n var location = window.location;\n var nonce = {\n guid: Date.now()\n };\n var rquery = /\\?/; // Cross-browser xml parsing\n\n jQuery.parseXML = function (data) {\n var xml, parserErrorElem;\n\n if (!data || typeof data !== \"string\") {\n return null;\n } // Support: IE 9 - 11 only\n // IE throws on parseFromString with invalid input.\n\n\n try {\n xml = new window.DOMParser().parseFromString(data, \"text/xml\");\n } catch (e) {}\n\n parserErrorElem = xml && xml.getElementsByTagName(\"parsererror\")[0];\n\n if (!xml || parserErrorElem) {\n jQuery.error(\"Invalid XML: \" + (parserErrorElem ? jQuery.map(parserErrorElem.childNodes, function (el) {\n return el.textContent;\n }).join(\"\\n\") : data));\n }\n\n return xml;\n };\n\n var rbracket = /\\[\\]$/,\n rCRLF = /\\r?\\n/g,\n rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n rsubmittable = /^(?:input|select|textarea|keygen)/i;\n\n function buildParams(prefix, obj, traditional, add) {\n var name;\n\n if (Array.isArray(obj)) {\n // Serialize array item.\n jQuery.each(obj, function (i, v) {\n if (traditional || rbracket.test(prefix)) {\n // Treat each array item as a scalar.\n add(prefix, v);\n } else {\n // Item is non-scalar (array or object), encode its numeric index.\n buildParams(prefix + \"[\" + (_typeof(v) === \"object\" && v != null ? i : \"\") + \"]\", v, traditional, add);\n }\n });\n } else if (!traditional && toType(obj) === \"object\") {\n // Serialize object item.\n for (name in obj) {\n buildParams(prefix + \"[\" + name + \"]\", obj[name], traditional, add);\n }\n } else {\n // Serialize scalar item.\n add(prefix, obj);\n }\n } // Serialize an array of form elements or a set of\n // key/values into a query string\n\n\n jQuery.param = function (a, traditional) {\n var prefix,\n s = [],\n add = function add(key, valueOrFunction) {\n // If value is a function, invoke it and use its return value\n var value = isFunction(valueOrFunction) ? valueOrFunction() : valueOrFunction;\n s[s.length] = encodeURIComponent(key) + \"=\" + encodeURIComponent(value == null ? \"\" : value);\n };\n\n if (a == null) {\n return \"\";\n } // If an array was passed in, assume that it is an array of form elements.\n\n\n if (Array.isArray(a) || a.jquery && !jQuery.isPlainObject(a)) {\n // Serialize the form elements\n jQuery.each(a, function () {\n add(this.name, this.value);\n });\n } else {\n // If traditional, encode the \"old\" way (the way 1.3.2 or older\n // did it), otherwise encode params recursively.\n for (prefix in a) {\n buildParams(prefix, a[prefix], traditional, add);\n }\n } // Return the resulting serialization\n\n\n return s.join(\"&\");\n };\n\n jQuery.fn.extend({\n serialize: function serialize() {\n return jQuery.param(this.serializeArray());\n },\n serializeArray: function serializeArray() {\n return this.map(function () {\n // Can add propHook for \"elements\" to filter or add form elements\n var elements = jQuery.prop(this, \"elements\");\n return elements ? jQuery.makeArray(elements) : this;\n }).filter(function () {\n var type = this.type; // Use .is( \":disabled\" ) so that fieldset[disabled] works\n\n return this.name && !jQuery(this).is(\":disabled\") && rsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type) && (this.checked || !rcheckableType.test(type));\n }).map(function (_i, elem) {\n var val = jQuery(this).val();\n\n if (val == null) {\n return null;\n }\n\n if (Array.isArray(val)) {\n return jQuery.map(val, function (val) {\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n });\n }\n\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n }).get();\n }\n });\n var r20 = /%20/g,\n rhash = /#.*$/,\n rantiCache = /([?&])_=[^&]*/,\n rheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n // #7653, #8125, #8152: local protocol detection\n rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n rnoContent = /^(?:GET|HEAD)$/,\n rprotocol = /^\\/\\//,\n\n /* Prefilters\n * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n * 2) These are called:\n * - BEFORE asking for a transport\n * - AFTER param serialization (s.data is a string if s.processData is true)\n * 3) key is the dataType\n * 4) the catchall symbol \"*\" can be used\n * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n */\n prefilters = {},\n\n /* Transports bindings\n * 1) key is the dataType\n * 2) the catchall symbol \"*\" can be used\n * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n */\n transports = {},\n // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n allTypes = \"*/\".concat(\"*\"),\n // Anchor tag for parsing the document origin\n originAnchor = document.createElement(\"a\");\n originAnchor.href = location.href; // Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\n\n function addToPrefiltersOrTransports(structure) {\n // dataTypeExpression is optional and defaults to \"*\"\n return function (dataTypeExpression, func) {\n if (typeof dataTypeExpression !== \"string\") {\n func = dataTypeExpression;\n dataTypeExpression = \"*\";\n }\n\n var dataType,\n i = 0,\n dataTypes = dataTypeExpression.toLowerCase().match(rnothtmlwhite) || [];\n\n if (isFunction(func)) {\n // For each dataType in the dataTypeExpression\n while (dataType = dataTypes[i++]) {\n // Prepend if requested\n if (dataType[0] === \"+\") {\n dataType = dataType.slice(1) || \"*\";\n (structure[dataType] = structure[dataType] || []).unshift(func); // Otherwise append\n } else {\n (structure[dataType] = structure[dataType] || []).push(func);\n }\n }\n }\n };\n } // Base inspection function for prefilters and transports\n\n\n function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) {\n var inspected = {},\n seekingTransport = structure === transports;\n\n function inspect(dataType) {\n var selected;\n inspected[dataType] = true;\n jQuery.each(structure[dataType] || [], function (_, prefilterOrFactory) {\n var dataTypeOrTransport = prefilterOrFactory(options, originalOptions, jqXHR);\n\n if (typeof dataTypeOrTransport === \"string\" && !seekingTransport && !inspected[dataTypeOrTransport]) {\n options.dataTypes.unshift(dataTypeOrTransport);\n inspect(dataTypeOrTransport);\n return false;\n } else if (seekingTransport) {\n return !(selected = dataTypeOrTransport);\n }\n });\n return selected;\n }\n\n return inspect(options.dataTypes[0]) || !inspected[\"*\"] && inspect(\"*\");\n } // A special extend for ajax options\n // that takes \"flat\" options (not to be deep extended)\n // Fixes #9887\n\n\n function ajaxExtend(target, src) {\n var key,\n deep,\n flatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n for (key in src) {\n if (src[key] !== undefined) {\n (flatOptions[key] ? target : deep || (deep = {}))[key] = src[key];\n }\n }\n\n if (deep) {\n jQuery.extend(true, target, deep);\n }\n\n return target;\n }\n /* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\n\n\n function ajaxHandleResponses(s, jqXHR, responses) {\n var ct,\n type,\n finalDataType,\n firstDataType,\n contents = s.contents,\n dataTypes = s.dataTypes; // Remove auto dataType and get content-type in the process\n\n while (dataTypes[0] === \"*\") {\n dataTypes.shift();\n\n if (ct === undefined) {\n ct = s.mimeType || jqXHR.getResponseHeader(\"Content-Type\");\n }\n } // Check if we're dealing with a known content-type\n\n\n if (ct) {\n for (type in contents) {\n if (contents[type] && contents[type].test(ct)) {\n dataTypes.unshift(type);\n break;\n }\n }\n } // Check to see if we have a response for the expected dataType\n\n\n if (dataTypes[0] in responses) {\n finalDataType = dataTypes[0];\n } else {\n // Try convertible dataTypes\n for (type in responses) {\n if (!dataTypes[0] || s.converters[type + \" \" + dataTypes[0]]) {\n finalDataType = type;\n break;\n }\n\n if (!firstDataType) {\n firstDataType = type;\n }\n } // Or just use first one\n\n\n finalDataType = finalDataType || firstDataType;\n } // If we found a dataType\n // We add the dataType to the list if needed\n // and return the corresponding response\n\n\n if (finalDataType) {\n if (finalDataType !== dataTypes[0]) {\n dataTypes.unshift(finalDataType);\n }\n\n return responses[finalDataType];\n }\n }\n /* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\n\n\n function ajaxConvert(s, response, jqXHR, isSuccess) {\n var conv2,\n current,\n conv,\n tmp,\n prev,\n converters = {},\n // Work with a copy of dataTypes in case we need to modify it for conversion\n dataTypes = s.dataTypes.slice(); // Create converters map with lowercased keys\n\n if (dataTypes[1]) {\n for (conv in s.converters) {\n converters[conv.toLowerCase()] = s.converters[conv];\n }\n }\n\n current = dataTypes.shift(); // Convert to each sequential dataType\n\n while (current) {\n if (s.responseFields[current]) {\n jqXHR[s.responseFields[current]] = response;\n } // Apply the dataFilter if provided\n\n\n if (!prev && isSuccess && s.dataFilter) {\n response = s.dataFilter(response, s.dataType);\n }\n\n prev = current;\n current = dataTypes.shift();\n\n if (current) {\n // There's only work to do if current dataType is non-auto\n if (current === \"*\") {\n current = prev; // Convert response if prev dataType is non-auto and differs from current\n } else if (prev !== \"*\" && prev !== current) {\n // Seek a direct converter\n conv = converters[prev + \" \" + current] || converters[\"* \" + current]; // If none found, seek a pair\n\n if (!conv) {\n for (conv2 in converters) {\n // If conv2 outputs current\n tmp = conv2.split(\" \");\n\n if (tmp[1] === current) {\n // If prev can be converted to accepted input\n conv = converters[prev + \" \" + tmp[0]] || converters[\"* \" + tmp[0]];\n\n if (conv) {\n // Condense equivalence converters\n if (conv === true) {\n conv = converters[conv2]; // Otherwise, insert the intermediate dataType\n } else if (converters[conv2] !== true) {\n current = tmp[0];\n dataTypes.unshift(tmp[1]);\n }\n\n break;\n }\n }\n }\n } // Apply converter (if not an equivalence)\n\n\n if (conv !== true) {\n // Unless errors are allowed to bubble, catch and return them\n if (conv && s.throws) {\n response = conv(response);\n } else {\n try {\n response = conv(response);\n } catch (e) {\n return {\n state: \"parsererror\",\n error: conv ? e : \"No conversion from \" + prev + \" to \" + current\n };\n }\n }\n }\n }\n }\n }\n\n return {\n state: \"success\",\n data: response\n };\n }\n\n jQuery.extend({\n // Counter for holding the number of active queries\n active: 0,\n // Last-Modified header cache for next request\n lastModified: {},\n etag: {},\n ajaxSettings: {\n url: location.href,\n type: \"GET\",\n isLocal: rlocalProtocol.test(location.protocol),\n global: true,\n processData: true,\n async: true,\n contentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n /*\n timeout: 0,\n data: null,\n dataType: null,\n username: null,\n password: null,\n cache: null,\n throws: false,\n traditional: false,\n headers: {},\n */\n accepts: {\n \"*\": allTypes,\n text: \"text/plain\",\n html: \"text/html\",\n xml: \"application/xml, text/xml\",\n json: \"application/json, text/javascript\"\n },\n contents: {\n xml: /\\bxml\\b/,\n html: /\\bhtml/,\n json: /\\bjson\\b/\n },\n responseFields: {\n xml: \"responseXML\",\n text: \"responseText\",\n json: \"responseJSON\"\n },\n // Data converters\n // Keys separate source (or catchall \"*\") and destination types with a single space\n converters: {\n // Convert anything to text\n \"* text\": String,\n // Text to html (true = no transformation)\n \"text html\": true,\n // Evaluate text as a json expression\n \"text json\": JSON.parse,\n // Parse text as xml\n \"text xml\": jQuery.parseXML\n },\n // For options that shouldn't be deep extended:\n // you can add your own custom options here if\n // and when you create one that shouldn't be\n // deep extended (see ajaxExtend)\n flatOptions: {\n url: true,\n context: true\n }\n },\n // Creates a full fledged settings object into target\n // with both ajaxSettings and settings fields.\n // If target is omitted, writes into ajaxSettings.\n ajaxSetup: function ajaxSetup(target, settings) {\n return settings ? // Building a settings object\n ajaxExtend(ajaxExtend(target, jQuery.ajaxSettings), settings) : // Extending ajaxSettings\n ajaxExtend(jQuery.ajaxSettings, target);\n },\n ajaxPrefilter: addToPrefiltersOrTransports(prefilters),\n ajaxTransport: addToPrefiltersOrTransports(transports),\n // Main method\n ajax: function ajax(url, options) {\n // If url is an object, simulate pre-1.5 signature\n if (_typeof(url) === \"object\") {\n options = url;\n url = undefined;\n } // Force options to be an object\n\n\n options = options || {};\n\n var transport,\n // URL without anti-cache param\n cacheURL,\n // Response headers\n responseHeadersString,\n responseHeaders,\n // timeout handle\n timeoutTimer,\n // Url cleanup var\n urlAnchor,\n // Request state (becomes false upon send and true upon completion)\n completed,\n // To know if global events are to be dispatched\n fireGlobals,\n // Loop variable\n i,\n // uncached part of the url\n uncached,\n // Create the final options object\n s = jQuery.ajaxSetup({}, options),\n // Callbacks context\n callbackContext = s.context || s,\n // Context for global events is callbackContext if it is a DOM node or jQuery collection\n globalEventContext = s.context && (callbackContext.nodeType || callbackContext.jquery) ? jQuery(callbackContext) : jQuery.event,\n // Deferreds\n deferred = jQuery.Deferred(),\n completeDeferred = jQuery.Callbacks(\"once memory\"),\n // Status-dependent callbacks\n _statusCode = s.statusCode || {},\n // Headers (they are sent all at once)\n requestHeaders = {},\n requestHeadersNames = {},\n // Default abort message\n strAbort = \"canceled\",\n // Fake xhr\n jqXHR = {\n readyState: 0,\n // Builds headers hashtable if needed\n getResponseHeader: function getResponseHeader(key) {\n var match;\n\n if (completed) {\n if (!responseHeaders) {\n responseHeaders = {};\n\n while (match = rheaders.exec(responseHeadersString)) {\n responseHeaders[match[1].toLowerCase() + \" \"] = (responseHeaders[match[1].toLowerCase() + \" \"] || []).concat(match[2]);\n }\n }\n\n match = responseHeaders[key.toLowerCase() + \" \"];\n }\n\n return match == null ? null : match.join(\", \");\n },\n // Raw string\n getAllResponseHeaders: function getAllResponseHeaders() {\n return completed ? responseHeadersString : null;\n },\n // Caches the header\n setRequestHeader: function setRequestHeader(name, value) {\n if (completed == null) {\n name = requestHeadersNames[name.toLowerCase()] = requestHeadersNames[name.toLowerCase()] || name;\n requestHeaders[name] = value;\n }\n\n return this;\n },\n // Overrides response content-type header\n overrideMimeType: function overrideMimeType(type) {\n if (completed == null) {\n s.mimeType = type;\n }\n\n return this;\n },\n // Status-dependent callbacks\n statusCode: function statusCode(map) {\n var code;\n\n if (map) {\n if (completed) {\n // Execute the appropriate callbacks\n jqXHR.always(map[jqXHR.status]);\n } else {\n // Lazy-add the new callbacks in a way that preserves old ones\n for (code in map) {\n _statusCode[code] = [_statusCode[code], map[code]];\n }\n }\n }\n\n return this;\n },\n // Cancel the request\n abort: function abort(statusText) {\n var finalText = statusText || strAbort;\n\n if (transport) {\n transport.abort(finalText);\n }\n\n done(0, finalText);\n return this;\n }\n }; // Attach deferreds\n\n\n deferred.promise(jqXHR); // Add protocol if not provided (prefilters might expect it)\n // Handle falsy url in the settings object (#10093: consistency with old signature)\n // We also use the url parameter if available\n\n s.url = ((url || s.url || location.href) + \"\").replace(rprotocol, location.protocol + \"//\"); // Alias method option to type as per ticket #12004\n\n s.type = options.method || options.type || s.method || s.type; // Extract dataTypes list\n\n s.dataTypes = (s.dataType || \"*\").toLowerCase().match(rnothtmlwhite) || [\"\"]; // A cross-domain request is in order when the origin doesn't match the current origin.\n\n if (s.crossDomain == null) {\n urlAnchor = document.createElement(\"a\"); // Support: IE <=8 - 11, Edge 12 - 15\n // IE throws exception on accessing the href property if url is malformed,\n // e.g. http://example.com:80x/\n\n try {\n urlAnchor.href = s.url; // Support: IE <=8 - 11 only\n // Anchor's host property isn't correctly set when s.url is relative\n\n urlAnchor.href = urlAnchor.href;\n s.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !== urlAnchor.protocol + \"//\" + urlAnchor.host;\n } catch (e) {\n // If there is an error parsing the URL, assume it is crossDomain,\n // it can be rejected by the transport if it is invalid\n s.crossDomain = true;\n }\n } // Convert data if not already a string\n\n\n if (s.data && s.processData && typeof s.data !== \"string\") {\n s.data = jQuery.param(s.data, s.traditional);\n } // Apply prefilters\n\n\n inspectPrefiltersOrTransports(prefilters, s, options, jqXHR); // If request was aborted inside a prefilter, stop there\n\n if (completed) {\n return jqXHR;\n } // We can fire global events as of now if asked to\n // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\n\n fireGlobals = jQuery.event && s.global; // Watch for a new set of requests\n\n if (fireGlobals && jQuery.active++ === 0) {\n jQuery.event.trigger(\"ajaxStart\");\n } // Uppercase the type\n\n\n s.type = s.type.toUpperCase(); // Determine if request has content\n\n s.hasContent = !rnoContent.test(s.type); // Save the URL in case we're toying with the If-Modified-Since\n // and/or If-None-Match header later on\n // Remove hash to simplify url manipulation\n\n cacheURL = s.url.replace(rhash, \"\"); // More options handling for requests with no content\n\n if (!s.hasContent) {\n // Remember the hash so we can put it back\n uncached = s.url.slice(cacheURL.length); // If data is available and should be processed, append data to url\n\n if (s.data && (s.processData || typeof s.data === \"string\")) {\n cacheURL += (rquery.test(cacheURL) ? \"&\" : \"?\") + s.data; // #9682: remove data so that it's not used in an eventual retry\n\n delete s.data;\n } // Add or update anti-cache param if needed\n\n\n if (s.cache === false) {\n cacheURL = cacheURL.replace(rantiCache, \"$1\");\n uncached = (rquery.test(cacheURL) ? \"&\" : \"?\") + \"_=\" + nonce.guid++ + uncached;\n } // Put hash and anti-cache on the URL that will be requested (gh-1732)\n\n\n s.url = cacheURL + uncached; // Change '%20' to '+' if this is encoded form body content (gh-2658)\n } else if (s.data && s.processData && (s.contentType || \"\").indexOf(\"application/x-www-form-urlencoded\") === 0) {\n s.data = s.data.replace(r20, \"+\");\n } // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\n\n if (s.ifModified) {\n if (jQuery.lastModified[cacheURL]) {\n jqXHR.setRequestHeader(\"If-Modified-Since\", jQuery.lastModified[cacheURL]);\n }\n\n if (jQuery.etag[cacheURL]) {\n jqXHR.setRequestHeader(\"If-None-Match\", jQuery.etag[cacheURL]);\n }\n } // Set the correct header, if data is being sent\n\n\n if (s.data && s.hasContent && s.contentType !== false || options.contentType) {\n jqXHR.setRequestHeader(\"Content-Type\", s.contentType);\n } // Set the Accepts header for the server, depending on the dataType\n\n\n jqXHR.setRequestHeader(\"Accept\", s.dataTypes[0] && s.accepts[s.dataTypes[0]] ? s.accepts[s.dataTypes[0]] + (s.dataTypes[0] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\") : s.accepts[\"*\"]); // Check for headers option\n\n for (i in s.headers) {\n jqXHR.setRequestHeader(i, s.headers[i]);\n } // Allow custom headers/mimetypes and early abort\n\n\n if (s.beforeSend && (s.beforeSend.call(callbackContext, jqXHR, s) === false || completed)) {\n // Abort if not done already and return\n return jqXHR.abort();\n } // Aborting is no longer a cancellation\n\n\n strAbort = \"abort\"; // Install callbacks on deferreds\n\n completeDeferred.add(s.complete);\n jqXHR.done(s.success);\n jqXHR.fail(s.error); // Get transport\n\n transport = inspectPrefiltersOrTransports(transports, s, options, jqXHR); // If no transport, we auto-abort\n\n if (!transport) {\n done(-1, \"No Transport\");\n } else {\n jqXHR.readyState = 1; // Send global event\n\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxSend\", [jqXHR, s]);\n } // If request was aborted inside ajaxSend, stop there\n\n\n if (completed) {\n return jqXHR;\n } // Timeout\n\n\n if (s.async && s.timeout > 0) {\n timeoutTimer = window.setTimeout(function () {\n jqXHR.abort(\"timeout\");\n }, s.timeout);\n }\n\n try {\n completed = false;\n transport.send(requestHeaders, done);\n } catch (e) {\n // Rethrow post-completion exceptions\n if (completed) {\n throw e;\n } // Propagate others as results\n\n\n done(-1, e);\n }\n } // Callback for when everything is done\n\n\n function done(status, nativeStatusText, responses, headers) {\n var isSuccess,\n success,\n error,\n response,\n modified,\n statusText = nativeStatusText; // Ignore repeat invocations\n\n if (completed) {\n return;\n }\n\n completed = true; // Clear timeout if it exists\n\n if (timeoutTimer) {\n window.clearTimeout(timeoutTimer);\n } // Dereference transport for early garbage collection\n // (no matter how long the jqXHR object will be used)\n\n\n transport = undefined; // Cache response headers\n\n responseHeadersString = headers || \"\"; // Set readyState\n\n jqXHR.readyState = status > 0 ? 4 : 0; // Determine if successful\n\n isSuccess = status >= 200 && status < 300 || status === 304; // Get response data\n\n if (responses) {\n response = ajaxHandleResponses(s, jqXHR, responses);\n } // Use a noop converter for missing script but not if jsonp\n\n\n if (!isSuccess && jQuery.inArray(\"script\", s.dataTypes) > -1 && jQuery.inArray(\"json\", s.dataTypes) < 0) {\n s.converters[\"text script\"] = function () {};\n } // Convert no matter what (that way responseXXX fields are always set)\n\n\n response = ajaxConvert(s, response, jqXHR, isSuccess); // If successful, handle type chaining\n\n if (isSuccess) {\n // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n if (s.ifModified) {\n modified = jqXHR.getResponseHeader(\"Last-Modified\");\n\n if (modified) {\n jQuery.lastModified[cacheURL] = modified;\n }\n\n modified = jqXHR.getResponseHeader(\"etag\");\n\n if (modified) {\n jQuery.etag[cacheURL] = modified;\n }\n } // if no content\n\n\n if (status === 204 || s.type === \"HEAD\") {\n statusText = \"nocontent\"; // if not modified\n } else if (status === 304) {\n statusText = \"notmodified\"; // If we have data, let's convert it\n } else {\n statusText = response.state;\n success = response.data;\n error = response.error;\n isSuccess = !error;\n }\n } else {\n // Extract error from statusText and normalize for non-aborts\n error = statusText;\n\n if (status || !statusText) {\n statusText = \"error\";\n\n if (status < 0) {\n status = 0;\n }\n }\n } // Set data for the fake xhr object\n\n\n jqXHR.status = status;\n jqXHR.statusText = (nativeStatusText || statusText) + \"\"; // Success/Error\n\n if (isSuccess) {\n deferred.resolveWith(callbackContext, [success, statusText, jqXHR]);\n } else {\n deferred.rejectWith(callbackContext, [jqXHR, statusText, error]);\n } // Status-dependent callbacks\n\n\n jqXHR.statusCode(_statusCode);\n _statusCode = undefined;\n\n if (fireGlobals) {\n globalEventContext.trigger(isSuccess ? \"ajaxSuccess\" : \"ajaxError\", [jqXHR, s, isSuccess ? success : error]);\n } // Complete\n\n\n completeDeferred.fireWith(callbackContext, [jqXHR, statusText]);\n\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxComplete\", [jqXHR, s]); // Handle the global AJAX counter\n\n if (! --jQuery.active) {\n jQuery.event.trigger(\"ajaxStop\");\n }\n }\n }\n\n return jqXHR;\n },\n getJSON: function getJSON(url, data, callback) {\n return jQuery.get(url, data, callback, \"json\");\n },\n getScript: function getScript(url, callback) {\n return jQuery.get(url, undefined, callback, \"script\");\n }\n });\n jQuery.each([\"get\", \"post\"], function (_i, method) {\n jQuery[method] = function (url, data, callback, type) {\n // Shift arguments if data argument was omitted\n if (isFunction(data)) {\n type = type || callback;\n callback = data;\n data = undefined;\n } // The url can be an options object (which then must have .url)\n\n\n return jQuery.ajax(jQuery.extend({\n url: url,\n type: method,\n dataType: type,\n data: data,\n success: callback\n }, jQuery.isPlainObject(url) && url));\n };\n });\n jQuery.ajaxPrefilter(function (s) {\n var i;\n\n for (i in s.headers) {\n if (i.toLowerCase() === \"content-type\") {\n s.contentType = s.headers[i] || \"\";\n }\n }\n });\n\n jQuery._evalUrl = function (url, options, doc) {\n return jQuery.ajax({\n url: url,\n // Make this explicit, since user can override this through ajaxSetup (#11264)\n type: \"GET\",\n dataType: \"script\",\n cache: true,\n async: false,\n global: false,\n // Only evaluate the response if it is successful (gh-4126)\n // dataFilter is not invoked for failure responses, so using it instead\n // of the default converter is kludgy but it works.\n converters: {\n \"text script\": function textScript() {}\n },\n dataFilter: function dataFilter(response) {\n jQuery.globalEval(response, options, doc);\n }\n });\n };\n\n jQuery.fn.extend({\n wrapAll: function wrapAll(html) {\n var wrap;\n\n if (this[0]) {\n if (isFunction(html)) {\n html = html.call(this[0]);\n } // The elements to wrap the target around\n\n\n wrap = jQuery(html, this[0].ownerDocument).eq(0).clone(true);\n\n if (this[0].parentNode) {\n wrap.insertBefore(this[0]);\n }\n\n wrap.map(function () {\n var elem = this;\n\n while (elem.firstElementChild) {\n elem = elem.firstElementChild;\n }\n\n return elem;\n }).append(this);\n }\n\n return this;\n },\n wrapInner: function wrapInner(html) {\n if (isFunction(html)) {\n return this.each(function (i) {\n jQuery(this).wrapInner(html.call(this, i));\n });\n }\n\n return this.each(function () {\n var self = jQuery(this),\n contents = self.contents();\n\n if (contents.length) {\n contents.wrapAll(html);\n } else {\n self.append(html);\n }\n });\n },\n wrap: function wrap(html) {\n var htmlIsFunction = isFunction(html);\n return this.each(function (i) {\n jQuery(this).wrapAll(htmlIsFunction ? html.call(this, i) : html);\n });\n },\n unwrap: function unwrap(selector) {\n this.parent(selector).not(\"body\").each(function () {\n jQuery(this).replaceWith(this.childNodes);\n });\n return this;\n }\n });\n\n jQuery.expr.pseudos.hidden = function (elem) {\n return !jQuery.expr.pseudos.visible(elem);\n };\n\n jQuery.expr.pseudos.visible = function (elem) {\n return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);\n };\n\n jQuery.ajaxSettings.xhr = function () {\n try {\n return new window.XMLHttpRequest();\n } catch (e) {}\n };\n\n var xhrSuccessStatus = {\n // File protocol always yields status code 0, assume 200\n 0: 200,\n // Support: IE <=9 only\n // #1450: sometimes IE returns 1223 when it should be 204\n 1223: 204\n },\n xhrSupported = jQuery.ajaxSettings.xhr();\n support.cors = !!xhrSupported && \"withCredentials\" in xhrSupported;\n support.ajax = xhrSupported = !!xhrSupported;\n jQuery.ajaxTransport(function (options) {\n var _callback, errorCallback; // Cross domain only allowed if supported through XMLHttpRequest\n\n\n if (support.cors || xhrSupported && !options.crossDomain) {\n return {\n send: function send(headers, complete) {\n var i,\n xhr = options.xhr();\n xhr.open(options.type, options.url, options.async, options.username, options.password); // Apply custom fields if provided\n\n if (options.xhrFields) {\n for (i in options.xhrFields) {\n xhr[i] = options.xhrFields[i];\n }\n } // Override mime type if needed\n\n\n if (options.mimeType && xhr.overrideMimeType) {\n xhr.overrideMimeType(options.mimeType);\n } // X-Requested-With header\n // For cross-domain requests, seeing as conditions for a preflight are\n // akin to a jigsaw puzzle, we simply never set it to be sure.\n // (it can always be set on a per-request basis or even using ajaxSetup)\n // For same-domain requests, won't change header if already provided.\n\n\n if (!options.crossDomain && !headers[\"X-Requested-With\"]) {\n headers[\"X-Requested-With\"] = \"XMLHttpRequest\";\n } // Set headers\n\n\n for (i in headers) {\n xhr.setRequestHeader(i, headers[i]);\n } // Callback\n\n\n _callback = function callback(type) {\n return function () {\n if (_callback) {\n _callback = errorCallback = xhr.onload = xhr.onerror = xhr.onabort = xhr.ontimeout = xhr.onreadystatechange = null;\n\n if (type === \"abort\") {\n xhr.abort();\n } else if (type === \"error\") {\n // Support: IE <=9 only\n // On a manual native abort, IE9 throws\n // errors on any property access that is not readyState\n if (typeof xhr.status !== \"number\") {\n complete(0, \"error\");\n } else {\n complete( // File: protocol always yields status 0; see #8605, #14207\n xhr.status, xhr.statusText);\n }\n } else {\n complete(xhrSuccessStatus[xhr.status] || xhr.status, xhr.statusText, // Support: IE <=9 only\n // IE9 has no XHR2 but throws on binary (trac-11426)\n // For XHR2 non-text, let the caller handle it (gh-2498)\n (xhr.responseType || \"text\") !== \"text\" || typeof xhr.responseText !== \"string\" ? {\n binary: xhr.response\n } : {\n text: xhr.responseText\n }, xhr.getAllResponseHeaders());\n }\n }\n };\n }; // Listen to events\n\n\n xhr.onload = _callback();\n errorCallback = xhr.onerror = xhr.ontimeout = _callback(\"error\"); // Support: IE 9 only\n // Use onreadystatechange to replace onabort\n // to handle uncaught aborts\n\n if (xhr.onabort !== undefined) {\n xhr.onabort = errorCallback;\n } else {\n xhr.onreadystatechange = function () {\n // Check readyState before timeout as it changes\n if (xhr.readyState === 4) {\n // Allow onerror to be called first,\n // but that will not handle a native abort\n // Also, save errorCallback to a variable\n // as xhr.onerror cannot be accessed\n window.setTimeout(function () {\n if (_callback) {\n errorCallback();\n }\n });\n }\n };\n } // Create the abort callback\n\n\n _callback = _callback(\"abort\");\n\n try {\n // Do send the request (this may raise an exception)\n xhr.send(options.hasContent && options.data || null);\n } catch (e) {\n // #14683: Only rethrow if this hasn't been notified as an error yet\n if (_callback) {\n throw e;\n }\n }\n },\n abort: function abort() {\n if (_callback) {\n _callback();\n }\n }\n };\n }\n }); // Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\n\n jQuery.ajaxPrefilter(function (s) {\n if (s.crossDomain) {\n s.contents.script = false;\n }\n }); // Install script dataType\n\n jQuery.ajaxSetup({\n accepts: {\n script: \"text/javascript, application/javascript, \" + \"application/ecmascript, application/x-ecmascript\"\n },\n contents: {\n script: /\\b(?:java|ecma)script\\b/\n },\n converters: {\n \"text script\": function textScript(text) {\n jQuery.globalEval(text);\n return text;\n }\n }\n }); // Handle cache's special case and crossDomain\n\n jQuery.ajaxPrefilter(\"script\", function (s) {\n if (s.cache === undefined) {\n s.cache = false;\n }\n\n if (s.crossDomain) {\n s.type = \"GET\";\n }\n }); // Bind script tag hack transport\n\n jQuery.ajaxTransport(\"script\", function (s) {\n // This transport only deals with cross domain or forced-by-attrs requests\n if (s.crossDomain || s.scriptAttrs) {\n var script, _callback2;\n\n return {\n send: function send(_, complete) {\n script = jQuery(\"