{"version":3,"file":"static/js/main.f229e48d.js","mappings":"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","sources":["webpack://home-page-ts/./src/components/Download/download.module.less?2e3e","components/Download/Download.tsx","webpack://home-page-ts/./src/components/Footer/Footer.module.less?260e","components/Footer/Footer.tsx","components/Img/index.tsx","components/Layout/Layout.module.less","webpack://home-page-ts/./src/components/Header/Header.module.less?b2e0","components/Header/Header.tsx","webpack://home-page-ts/./src/components/HeaderHome/Header.module.less?9ad8","components/HeaderHome/Header.tsx","components/Layout/Layout.tsx","const.ts","hooks.ts","stores/AuthContext.tsx","webpack://home-page-ts/./src/stores/style.module.less?75e6","stores/ToastContext.tsx","util/tool.tsx","../node_modules/@ant-design/colors/dist/index.esm.js","../node_modules/@ant-design/icons/es/utils.js","../node_modules/@ant-design/icons/es/components/IconBase.js","../node_modules/@ant-design/icons/es/components/twoTonePrimaryColor.js","../node_modules/@ant-design/icons/es/components/AntdIcon.js","../node_modules/@ant-design/icons/es/components/Context.js","../node_modules/@ant-design/icons-svg/es/asn/CheckCircleFilled.js","../node_modules/@ant-design/icons/es/icons/CheckCircleFilled.js","../node_modules/@ant-design/icons-svg/es/asn/CloseCircleFilled.js","../node_modules/@ant-design/icons/es/icons/CloseCircleFilled.js","../node_modules/@ant-design/icons-svg/es/asn/CloseOutlined.js","../node_modules/@ant-design/icons/es/icons/CloseOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ExclamationCircleFilled.js","../node_modules/@ant-design/icons/es/icons/ExclamationCircleFilled.js","../node_modules/@ant-design/icons-svg/es/asn/LoadingOutlined.js","../node_modules/@ant-design/icons/es/icons/LoadingOutlined.js","../node_modules/@ctrl/tinycolor/dist/module/conversion.js","../node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","../node_modules/@ctrl/tinycolor/dist/module/format-input.js","../node_modules/@ctrl/tinycolor/dist/module/util.js","../node_modules/antd/es/config-provider/DisabledContext.js","../node_modules/antd/es/config-provider/SizeContext.js","../node_modules/antd/es/config-provider/context.js","../node_modules/antd/es/modal/locale.js","../node_modules/antd/es/locale-provider/index.js","../node_modules/@ant-design/icons-svg/es/asn/CheckCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/CheckCircleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CloseCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/CloseCircleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ExclamationCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/ExclamationCircleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/InfoCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/InfoCircleOutlined.js","../node_modules/antd/es/notification/index.js","../node_modules/antd/es/notification/hooks/useNotification.js","../node_modules/@ctrl/tinycolor/dist/module/index.js","../node_modules/antd/es/config-provider/cssVariables.js","../node_modules/antd/es/config-provider/index.js","../node_modules/antd/es/locale-provider/default.js","../node_modules/antd/es/locale-provider/LocaleReceiver.js","../node_modules/antd/es/locale-provider/context.js","../node_modules/rc-picker/es/locale/en_US.js","../node_modules/antd/es/time-picker/locale/en_US.js","../node_modules/antd/es/date-picker/locale/en_US.js","../node_modules/antd/es/calendar/locale/en_US.js","../node_modules/antd/es/locale/default.js","../node_modules/@ant-design/icons-svg/es/asn/InfoCircleFilled.js","../node_modules/@ant-design/icons/es/icons/InfoCircleFilled.js","../node_modules/antd/es/message/index.js","../node_modules/antd/es/message/hooks/useMessage.js","../node_modules/classnames/index.js","../node_modules/dijkstrajs/dijkstra.js","../node_modules/encode-utf8/index.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/history/esm/history.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/lottie-react/compiled/hooks/useLottie.js","../node_modules/lottie-react/compiled/hooks/useLottieInteractivity.js","../node_modules/lottie-react/compiled/components/Lottie.js","../node_modules/lottie-web/build/player/lottie.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/qrcode/lib/browser.js","../node_modules/qrcode/lib/can-promise.js","../node_modules/qrcode/lib/core/alignment-pattern.js","../node_modules/qrcode/lib/core/alphanumeric-data.js","../node_modules/qrcode/lib/core/bit-buffer.js","../node_modules/qrcode/lib/core/bit-matrix.js","../node_modules/qrcode/lib/core/byte-data.js","../node_modules/qrcode/lib/core/error-correction-code.js","../node_modules/qrcode/lib/core/error-correction-level.js","../node_modules/qrcode/lib/core/finder-pattern.js","../node_modules/qrcode/lib/core/format-info.js","../node_modules/qrcode/lib/core/galois-field.js","../node_modules/qrcode/lib/core/kanji-data.js","../node_modules/qrcode/lib/core/mask-pattern.js","../node_modules/qrcode/lib/core/mode.js","../node_modules/qrcode/lib/core/numeric-data.js","../node_modules/qrcode/lib/core/polynomial.js","../node_modules/qrcode/lib/core/qrcode.js","../node_modules/qrcode/lib/core/reed-solomon-encoder.js","../node_modules/qrcode/lib/core/regex.js","../node_modules/qrcode/lib/core/segments.js","../node_modules/qrcode/lib/core/utils.js","../node_modules/qrcode/lib/core/version-check.js","../node_modules/qrcode/lib/core/version.js","../node_modules/qrcode/lib/renderer/canvas.js","../node_modules/qrcode/lib/renderer/svg-tag.js","../node_modules/qrcode/lib/renderer/utils.js","../node_modules/rc-field-form/es/FieldContext.js","../node_modules/rc-field-form/es/utils/typeUtil.js","../node_modules/src/util.ts","../node_modules/src/rule/required.ts","../node_modules/src/rule/url.ts","../node_modules/src/rule/type.ts","../node_modules/src/rule/index.ts","../node_modules/src/rule/whitespace.ts","../node_modules/src/rule/range.ts","../node_modules/src/rule/enum.ts","../node_modules/src/rule/pattern.ts","../node_modules/src/validator/type.ts","../node_modules/src/validator/index.ts","../node_modules/src/validator/string.ts","../node_modules/src/validator/method.ts","../node_modules/src/validator/number.ts","../node_modules/src/validator/boolean.ts","../node_modules/src/validator/regexp.ts","../node_modules/src/validator/integer.ts","../node_modules/src/validator/float.ts","../node_modules/src/validator/array.ts","../node_modules/src/validator/object.ts","../node_modules/src/validator/enum.ts","../node_modules/src/validator/pattern.ts","../node_modules/src/validator/date.ts","../node_modules/src/validator/required.ts","../node_modules/src/validator/any.ts","../node_modules/src/messages.ts","../node_modules/src/index.ts","../node_modules/rc-field-form/es/utils/messages.js","../node_modules/rc-util/es/utils/get.js","../node_modules/rc-util/es/utils/set.js","../node_modules/rc-field-form/es/utils/cloneDeep.js","../node_modules/rc-field-form/es/utils/valueUtil.js","../node_modules/rc-field-form/es/utils/validateUtil.js","../node_modules/rc-field-form/es/Field.js","../node_modules/rc-field-form/es/ListContext.js","../node_modules/rc-field-form/es/List.js","../node_modules/rc-field-form/es/utils/NameMap.js","../node_modules/rc-field-form/es/useForm.js","../node_modules/rc-field-form/es/utils/asyncUtil.js","../node_modules/rc-field-form/es/FormContext.js","../node_modules/rc-field-form/es/Form.js","../node_modules/rc-field-form/es/useWatch.js","../node_modules/rc-field-form/es/index.js","../node_modules/rc-motion/es/util/motion.js","../node_modules/rc-motion/es/interface.js","../node_modules/rc-motion/es/hooks/useIsomorphicLayoutEffect.js","../node_modules/rc-motion/es/hooks/useStepQueue.js","../node_modules/rc-motion/es/hooks/useNextFrame.js","../node_modules/rc-motion/es/hooks/useStatus.js","../node_modules/rc-motion/es/hooks/useDomMotionEvents.js","../node_modules/rc-motion/es/DomWrapper.js","../node_modules/rc-motion/es/CSSMotion.js","../node_modules/rc-motion/es/util/diff.js","../node_modules/rc-motion/es/CSSMotionList.js","../node_modules/rc-motion/es/index.js","../node_modules/rc-notification/es/Notice.js","../node_modules/rc-util/es/React/render.js","../node_modules/rc-notification/es/Notification.js","../node_modules/rc-notification/es/index.js","../node_modules/rc-notification/es/useNotification.js","../node_modules/rc-pagination/es/locale/en_US.js","../node_modules/rc-util/es/Children/toArray.js","../node_modules/rc-util/es/Dom/canUseDom.js","../node_modules/rc-util/es/Dom/contains.js","../node_modules/rc-util/es/Dom/dynamicCSS.js","../node_modules/rc-util/es/Dom/findDOMNode.js","../node_modules/rc-util/es/hooks/useMemo.js","../node_modules/rc-util/es/hooks/useState.js","../node_modules/rc-util/es/raf.js","../node_modules/rc-util/es/ref.js","../node_modules/rc-util/es/warning.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-i18next/dist/es/unescape.js","../node_modules/react-i18next/dist/es/context.js","../node_modules/react-i18next/dist/es/utils.js","../node_modules/react-i18next/dist/es/useTranslation.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react-router-dom/modules/BrowserRouter.js","../node_modules/react-router-dom/modules/HashRouter.js","../node_modules/react-router-dom/modules/utils/locationUtils.js","../node_modules/react-router-dom/modules/Link.js","../node_modules/react-router-dom/modules/NavLink.js","../node_modules/react-router/modules/miniCreateReactContext.js","../node_modules/react-router/modules/createContext.js","../node_modules/react-router/modules/createNamedContext.js","../node_modules/react-router/modules/HistoryContext.js","../node_modules/react-router/modules/RouterContext.js","../node_modules/react-router/modules/Router.js","../node_modules/react-router/modules/MemoryRouter.js","../node_modules/react-router/modules/Lifecycle.js","../node_modules/react-router/modules/matchPath.js","../node_modules/react-router/modules/Route.js","../node_modules/react-router/modules/StaticRouter.js","../node_modules/react-router/modules/Switch.js","../node_modules/react-router/modules/hooks.js","../node_modules/react-router/node_modules/isarray/index.js","../node_modules/react-router/node_modules/path-to-regexp/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/css loading","../webpack/runtime/jsonp chunk loading","../node_modules/i18next/dist/esm/i18next.js","locales/resources.ts","i18n.ts","webpack://home-page-ts/./src/pages/Home/mobile/home.module.less?ac95","pages/Home/mobile/Home.tsx","webpack://home-page-ts/./src/pages/Home/pc/home.module.less?7d5a","pages/Home/pc/Home.tsx","pages/Home/Home.tsx","App.tsx","index.tsx"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"bottom\":\"download_bottom__WomSu\",\"up\":\"download_up__Y6K0M\",\"left\":\"download_left__1NEXi\",\"img\":\"download_img__1BpEt\",\"middle\":\"download_middle__9ZdRb\",\"right\":\"download_right__jqr4D\",\"title\":\"download_title__PvTF7\",\"line\":\"download_line__v4Twc\",\"down\":\"download_down__vI+G3\",\"down_top\":\"download_down_top__miEuz\",\"down_bottom\":\"download_down_bottom__g7Fuh\"};","import React, { FC } from 'react';\nimport styleObj from './download.module.less';\nimport { useTranslation } from 'react-i18next';\nimport img1 from '../../assets/images/1.png';\nimport { useAndroid, useSmallWindow } from '../../hooks';\nimport { Link } from 'react-router-dom';\n\nconst Download: FC<{ isSimple?: boolean }> = ({ isSimple = false }) => {\n  const { t, i18n: { language } } = useTranslation();\n  const [isMobile] = useSmallWindow();\n  const [isAndroid] = useAndroid();\n\n  return (\n    <div className={styleObj.bottom}>\n      <div className={styleObj.up}>\n        <div className={styleObj.left}>\n          <Link to=\"/\">\n            <img\n              className={styleObj.img}\n              src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IkQ2SjNQM1pVRDdDTk1HN1ZZR05NRlhJR1hONTdEUSIsInciOjEyNCwiaCI6NjAsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjoxMjE5MDU3ODI0MTk1MjEwODg2NCwiYWIiOjB9?format=originalOFGHLERTH\"\n              alt=\"\"\n            />\n          </Link>\n          <div>{t('download.text1')}</div>\n          <div>\n            {`${t('download.text2')}\\n${t('download.text3')}`}\n            <img src={img1} style={{ height: 16 }} alt=\"\" />\n          </div>\n          <div>{t('download.text4')}</div>\n          <div>\n            <a href=\"https://www.instagram.com/explore/tags/omiapp/?hl=en\" target=\"_blank\" rel=\"noreferrer\">\n              <img\n                src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IjJXVVg3NlQzTk9QVldMWkFFMlhLRUJaUU5UMkROViIsInciOjY4LCJoIjo2OCwiZCI6MCwibXQiOiJpbWFnZS9qcGVnIiwiZGgiOjEwODUxNDY3Mjc4NTg5MDI3OTksImFiIjowfQ?format=originalOFGHLERTH\"\n                alt=\"\"\n              />\n            </a>\n            <a href=\"https://www.tiktok.com/@omi.malaysia\" target=\"_blank\" rel=\"noreferrer\">\n              <img\n                src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IjNSSk9BNlNJUkVNMkVUQk9TQktUR0hWMldKUEM0TyIsInciOjY4LCJoIjo2OCwiZCI6MCwibXQiOiJpbWFnZS9qcGVnIiwiZGgiOjIyNDY1NjEwMzA5MDIyMDUxOTEsImFiIjowfQ?format=originalOFGHLERTH\"\n                alt=\"\"\n              />\n            </a>\n            <img\n              src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IjY3RU5DR0wyNUxYWUtVS1EyNVJLQ1ZHTE9SQUhVSCIsInciOjY4LCJoIjo2OCwiZCI6MCwibXQiOiJpbWFnZS9qcGVnIiwiZGgiOjE2NjE2NTgyOTEwMDMwMDU3MTEsImFiIjowfQ?format=originalOFGHLERTH\"\n              alt=\"\"\n            />\n            <img\n              src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IldMVUVNSTJSUklTVUFTQVA3Tk1DQTRVNUZWWEpGUyIsInciOjY4LCJoIjo2OCwiZCI6MCwibXQiOiJpbWFnZS9qcGVnIiwiZGgiOjIyNDQ4NDU5NzIwMzA3MTEwNTUsImFiIjowfQ?format=originalOFGHLERTH\"\n              alt=\"\"\n            />\n          </div>\n        </div>\n        {isMobile && <div className={styleObj.line} />}\n        <div className={styleObj.middle}>\n          <div className={styleObj.title}>{t('download.text5')}</div>\n          <div><a href={'/company'}>{t('download.text6')}</a></div>\n          <div><a href={'/company/join'}>{t('download.text7')}</a></div>\n          <div className={styleObj.title}>{t('download.text11')}</div>\n          <div><a href=\"/why\" target=\"_blank\">{t('download.text12')}</a></div>\n          <div><a href={`/norms/${language}`} target=\"_blank\" rel=\"noreferrer\">{t('download.text13')}</a></div>\n          <div><a href=\"/help\" target=\"_blank\">{t('download.text14')}</a></div>\n        </div>\n\n        <div className={styleObj.right}>\n          <div className={styleObj.title}>{t('download.text8')}</div>\n          <div><a href=\"/features/toolkit\">{t('download.text9')}</a></div>\n          <div><a href=\"/features/subscription\">{t('download.text10')}</a></div>\n          <div className={styleObj.title}>{t('download.text15')}</div>\n          <div><a href=\"/support\">{t('download.text16')}</a></div>\n          <div><a href=\"/press\">{t('download.text17')}</a></div>\n          <div><a href=\"https://omiapp.onelink.me/HCKs/g7zp1mmz\">{t('download.text18')}</a></div>\n        </div>\n      </div>\n      {\n                !isMobile &&\n                <>\n                  <div className={styleObj.line} />\n                  <div className={styleObj.down}>\n                    <div className={styleObj.down_top}>\n                      <div>{t('home.getApp')}</div>\n                      {\n                        <a target=\"_blank\" href=\"https://omiapp.onelink.me/HCKs/g7zp1mmz\" rel=\"noreferrer\">\n                          <img\n                            src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IjVYUlNEUkxaTkNQNlJCTloySUJCQ0xBTVhTWUM1ViIsInciOjM1MCwiaCI6MTAwLCJkIjowLCJtdCI6ImltYWdlL2pwZWciLCJkaCI6MTIzNzQ1MzQxNDE0Nzg0MCwiYWIiOjB9?format=originalOFGHLERTH\"\n                            alt=\"\"\n                          />\n\n                        </a>\n                            }\n                      {\n                        <a\n                          target=\"_blank\"\n                          href=\"https://play.google.com/store/apps/details?id=sg.omi&hl=en&gl=US\"\n                          rel=\"noreferrer\"\n                        >\n                          <img\n                            src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IldOSjVRUk5IUVBWVUZQRkRUUE5BUkhTVE5IWk1KVSIsInciOjM1MCwiaCI6MTAwLCJkIjowLCJtdCI6ImltYWdlL2pwZWciLCJkaCI6MTA0NzQzMDQ1MDY3MjMzMjE1MDUsImFiIjowfQ?format=originalOFGHLERTH\"\n                            alt=\"\"\n                          />\n                        </a>\n                            }\n                    </div>\n                    {\n                            !isSimple &&\n                            <div className={styleObj.down_bottom}>\n                                {`${t('home.text1')}\\n\\n${t('home.text2')}\\n\\n${t('home.text3')}\\n\\n${t('home.text4')}`}\n                            </div>\n                        }\n                  </div>\n                </>\n            }\n      {\n                isMobile &&\n                <>\n                  <div className={styleObj.line} />\n                  <div className={styleObj.down}>\n                    <div className={styleObj.down_top}>\n                      <div>{t('home.getApp')}</div>\n                      {\n                                (!isAndroid || !isMobile) &&\n                                <a target=\"_blank\" href=\"https://omiapp.onelink.me/HCKs/g7zp1mmz\" rel=\"noreferrer\">\n                                  <img\n                                    src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IjVYUlNEUkxaTkNQNlJCTloySUJCQ0xBTVhTWUM1ViIsInciOjM1MCwiaCI6MTAwLCJkIjowLCJtdCI6ImltYWdlL2pwZWciLCJkaCI6MTIzNzQ1MzQxNDE0Nzg0MCwiYWIiOjB9?format=originalOFGHLERTH\"\n                                    alt=\"\"\n                                  />\n\n                                </a>\n                            }\n                      {\n                                (isAndroid || !isMobile) && <a\n                                  target=\"_blank\"\n                                  href=\"https://play.google.com/store/apps/details?id=sg.omi&hl=en&gl=US\"\n                                  rel=\"noreferrer\"\n                                >\n                                  <img\n                                    src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IldOSjVRUk5IUVBWVUZQRkRUUE5BUkhTVE5IWk1KVSIsInciOjM1MCwiaCI6MTAwLCJkIjowLCJtdCI6ImltYWdlL2pwZWciLCJkaCI6MTA0NzQzMDQ1MDY3MjMzMjE1MDUsImFiIjowfQ?format=originalOFGHLERTH\"\n                                    alt=\"\"\n                                  />\n                                </a>\n                            }\n                    </div>\n                    {\n                            !isSimple &&\n                            <div className={styleObj.down_bottom}>\n                                {`${t('home.text1')}\\n\\n${t('home.text2')}\\n\\n${t('home.text3')}\\n\\n${t('home.text4')}`}\n                            </div>\n                        }\n                  </div>\n                </>\n            }\n    </div>\n  );\n};\n\nexport default Download;\n","// extracted by mini-css-extract-plugin\nexport default {\"footer\":\"Footer_footer__wEQFt\",\"line\":\"Footer_line__6kGEe\",\"content\":\"Footer_content__UuiMh\",\"left\":\"Footer_left__U24jX\",\"right\":\"Footer_right__6Zdu+\",\"top\":\"Footer_top__jYhVw\",\"center\":\"Footer_center__QM3iu\",\"bottom\":\"Footer_bottom__roAo7\"};","import React, {FC} from \"react\";\nimport styleObj from \"./Footer.module.less\";\nimport {useTranslation} from \"react-i18next\";\nimport {Link} from \"react-router-dom\";\nimport {useSmallWindow} from \"../../hooks\";\n\nconst Footer: FC = () => {\n    const [isMobile] = useSmallWindow();\n    const {t, i18n: {language}} = useTranslation();\n    return (\n        <div className={styleObj.footer}>\n            <div className={styleObj.line}/>\n            <div className={styleObj.content}>\n                <div className={styleObj.left}>\n                    <a\n                        target=\"_blank\"\n                        href={`/privacy/${language}`}\n                    > {t(\"home.privacy\")} </a>\n                    {\n                        !isMobile ?\n                            <span>&nbsp;&nbsp;|&nbsp;&nbsp;</span>\n                            :\n                            <span>&nbsp;|&nbsp;</span>\n                    }\n                    <a\n                        target=\"_blank\"\n                        href={`/terms/${language}`}\n                    > {t(\"home.terms\")} </a>\n                    {\n                        !isMobile ?\n                            <span>&nbsp;&nbsp;|&nbsp;&nbsp;</span>\n                            :\n                            <span>&nbsp;|&nbsp;</span>\n                    }\n                    <a\n                        target=\"_blank\"\n                        href=\"https://omiapp.onelink.me/HCKs/g7zp1mmz\"\n                    > {t(\"home.download\")} </a>\n                    {\n                        !isMobile ?\n                            <span>&nbsp;&nbsp;|&nbsp;&nbsp;</span>\n                            :\n                            <span>&nbsp;|&nbsp;</span>\n                    }\n                    <a\n                        target=\"_blank\"\n                        href={`/norms/${language}`}\n                    > {t(\"home.guidelines\")} </a>\n                    {\n                        !isMobile ?\n                            <span>&nbsp;&nbsp;|&nbsp;&nbsp;</span>\n                            :\n                            <span>&nbsp;|&nbsp;</span>\n                    }\n                    <a\n                        target=\"_blank\"\n                        href=\"/help\"\n                    > {t(\"home.help\")} </a>\n                    {\n                        !isMobile ?\n                            <span>&nbsp;&nbsp;|&nbsp;&nbsp;</span>\n                            :\n                            <span>&nbsp;|&nbsp;</span>\n                    }\n                    <Link\n                        to=\"/support\"\n                    > {t(\"home.contact\")} </Link>\n                </div>\n                <div className={styleObj.right}>\n                    {t(\"home.copyright\")}\n                </div>\n            </div>\n        </div>\n    );\n};\n\nexport default Footer;\n","import React from 'react';\n\ntype ImageProps = React.ImgHTMLAttributes<HTMLImageElement>;\n\nconst Img: React.FC<ImageProps> = (props) => {\n    const imgProps = {\n        ...props,\n        src: props.src + \"?format=originalOFGHLERTH\"\n    }\n    return <img {...imgProps} />;\n};\n\nexport default Img;\n","// extracted by mini-css-extract-plugin\nexport default {};","// extracted by mini-css-extract-plugin\nexport default {\"header\":\"Header_header__jMcwM\",\"content_wrapper\":\"Header_content_wrapper__tBbpf\",\"content\":\"Header_content__XIbGT\",\"logo\":\"Header_logo__JpQY4\",\"menu\":\"Header_menu__F2F4U\",\"link\":\"Header_link__qmqGy\",\"selected\":\"Header_selected__0qNhW\",\"features_child\":\"Header_features_child__MLEnJ\",\"language\":\"Header_language__VVFQb\",\"clicked\":\"Header_clicked__jze52\",\"language_dropdown\":\"Header_language_dropdown__NugEO\",\"language_dropdown_box\":\"Header_language_dropdown_box__KSxxX\",\"menu_dropdown\":\"Header_menu_dropdown__QzYwF\",\"menu_box\":\"Header_menu_box__-Wvuu\",\"language_box\":\"Header_language_box__dbqks\",\"inverse_color\":\"Header_inverse_color__kadSx\",\"line\":\"Header_line__zud2E\",\"language_dropdown_logo\":\"Header_language_dropdown_logo__cw3V9\",\"menu_dropdown_img\":\"Header_menu_dropdown_img__U4lDG\",\"menu_box_header\":\"Header_menu_box_header__elUTA\",\"menu_box_content\":\"Header_menu_box_content__WHdU1\",\"menu_box_logo\":\"Header_menu_box_logo__IaNOI\",\"menu_box_language_dropdown\":\"Header_menu_box_language_dropdown__SecpH\",\"menu_box_language_dropdown_logo\":\"Header_menu_box_language_dropdown_logo__Ljy0P\",\"menu_box_close\":\"Header_menu_box_close__uGo74\",\"menu_box_language_dropdown_box\":\"Header_menu_box_language_dropdown_box__TIoVp\",\"menu_box_header_line\":\"Header_menu_box_header_line__nMgV4\",\"menu_box_body\":\"Header_menu_box_body__xHVoQ\",\"features_wrapper\":\"Header_features_wrapper__LvRbf\",\"features_flag\":\"Header_features_flag__Tz6Pi\"};","import React, {useEffect, useImperativeHandle, useRef, useState} from \"react\";\nimport styleObj from \"./Header.module.less\";\nimport {Link, NavLink} from \"react-router-dom\";\nimport {useTranslation} from \"react-i18next\";\n\ntype Props = {\n    headerStyle?: object\n}\n\nexport type HeaderRef = {\n    logoDom: HTMLDivElement | null,\n    menuDom: HTMLDivElement | null,\n    languageDom: HTMLDivElement | null,\n    languageMobileDom: HTMLDivElement | null,\n    menuLogoDom: HTMLDivElement | null,\n    headerDiv?: HTMLDivElement | null,\n}\n\nconst Header = React.forwardRef<HeaderRef, Props>(({headerStyle = {}}, ref) => {\n    const {t, i18n: {changeLanguage}} = useTranslation();\n    const logoDom = useRef<HTMLDivElement | null>(null);  //logo(PC、移动)\n    const menuDom = useRef<HTMLDivElement | null>(null);  //导航文字(PC)\n    const languageDom = useRef<HTMLDivElement | null>(null);  //小地球(PC)\n    const languageBoxDom = useRef<HTMLDivElement | null>(null);  //多语选择框(PC)\n    const languageMobileDom = useRef<HTMLDivElement | null>(null);  //多语下拉框(移动端)\n    const menuLogoDom = useRef<HTMLDivElement | null>(null);  //导航图标(移动端)\n    const menuBoxDom = useRef<HTMLDivElement | null>(null);  //导航box(移动端)\n    const menuBoxLanguageDom = useRef<HTMLDivElement | null>(null);  //导航box中的多语切换开关(移动端)\n    const languageDropdownLogoDom = useRef<HTMLDivElement | null>(null);  //导航box中的多语选择box后的小三角(移动端)\n    const menuBoxLanguageDropdownLogoDom = useRef<HTMLDivElement | null>(null);  //导航box中的多语选择box后的小三角(移动端)\n\n    const [showLanguage, setShowLanguage] = useState<boolean>(false);  //多语展示标志位(PC小地球)\n    const [showLanguageMobile, setShowLanguageMobile] = useState<boolean>(false);  //多语展示标志位(移动下拉框)\n    const [showMenu, setShowMenu] = useState<boolean>(false);  //移动端导航展示标志位\n    const [showMenuBoxLanguageBoxDom, setShowMenuBoxLanguageBoxDom] = useState<boolean>(false);  //移动端全屏导航栏中的多语选择框展示标志位\n    const [showFeaturesChild, setShowFeaturesChild] = useState<boolean>(false);  //展示 features 的子导航\n    const [showFeaturesChildMobile, setShowFeaturesChildMobile] = useState<boolean>(false);  //展示 features 的子导航(移动端)\n\n    const [languageBoxLeft, setLanguageBoxLeft] = useState<number>(50);\n    const [featureChildLeft, setFeatureChildLeft] = useState<number>(800);\n\n    useImperativeHandle(ref, () => ({\n        logoDom: logoDom.current,  //logo(PC、移动)\n        menuDom: menuDom.current,  //导航文字(PC)\n        languageDom: languageDom.current,  //小地球(PC)\n        languageMobileDom: languageMobileDom.current,  //多语下拉框(移动端)\n        menuLogoDom: menuLogoDom.current  //导航图标(移动端)\n    }));\n\n    useEffect(() => {\n        //多语点击事件\n        document.addEventListener(\"click\", e => {\n            const target = e.target as HTMLDivElement;\n            if (target?.className?.includes(styleObj.language)) {  //PC端多语\n                setShowLanguage(value => !value);\n            } else if (\n                target?.className?.includes(styleObj.language_dropdown) ||\n                target?.className?.includes(styleObj.language_dropdown_logo)\n            ) {  //移动端多语\n                if (!languageDropdownLogoDom.current) return;\n                const clientRect = languageDropdownLogoDom.current.getBoundingClientRect();\n                const {left: targetLeft} = clientRect;\n                setLanguageBoxLeft(targetLeft - 78);  //需要控制多语弹窗位置\n                setShowLanguageMobile(value => !value);\n            } else if (  //移动端导航\n                target?.className?.includes(styleObj.menu_dropdown_img) ||\n                target?.className?.includes(styleObj.menu_dropdown)\n            ) {\n                setShowMenu(value => !value);\n            } else if (\n                target?.className?.includes(styleObj.menu_box_language_dropdown) ||\n                target?.className?.includes(styleObj.menu_box_language_dropdown_logo)\n            ) {\n                //点击移动端全屏导航的多语切换\n                if (!menuBoxLanguageDropdownLogoDom.current) return;\n                const clientRect = menuBoxLanguageDropdownLogoDom.current.getBoundingClientRect();\n                const {left: targetLeft} = clientRect;\n                setLanguageBoxLeft(targetLeft - 78);  //需要控制多语弹窗位置\n                setShowMenuBoxLanguageBoxDom(value => !value);\n            } else {\n                setTimeout(() => {  //防止多语还没点击就消失\n                    setShowLanguage(false);\n                    setShowLanguageMobile(false);\n                    setShowMenuBoxLanguageBoxDom(false);\n                });\n            }\n        }, true);\n        return () => {\n            document.onclick = null;\n        };\n    }, []);\n\n    let timeout: any;\n    const handleOverFeatures = ({target}: { target: HTMLDivElement }): void => {\n        const {left, width} = target.getBoundingClientRect();\n        setFeatureChildLeft(left + 0.5 * width);\n        timeout && clearTimeout(timeout);\n        setShowFeaturesChild(true);\n    };\n\n    const handleOutFeatures = (): void => {\n        timeout = setTimeout(() => {\n            setShowFeaturesChild(false);\n        }, 350);\n    };\n\n    const handleOverFeaturesChild = (): void => {\n        timeout && clearTimeout(timeout);\n        setShowFeaturesChild(true);\n    };\n\n    const handleOutFeaturesChild = (): void => {\n        setShowFeaturesChild(false);\n    };\n\n    return (\n        <div\n            style={headerStyle}\n            className={styleObj.header}\n        >\n            {/*白色内容,变色时候把白色内容拉起来即可(理解为拉窗帘)*/}\n            <div className={styleObj.content_wrapper}>\n                <div className={styleObj.content}>\n                    <div\n                        ref={logoDom}\n                        className={styleObj.logo}> {/*左上角的logo*/}\n                        <Link to=\"/\">\n                            <img\n                                src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IkQ2SjNQM1pVRDdDTk1HN1ZZR05NRlhJR1hONTdEUSIsInciOjEyNCwiaCI6NjAsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjoxMjE5MDU3ODI0MTk1MjEwODg2NCwiYWIiOjB9?format=originalOFGHLERTH\"\n                                alt=\"\"\n                            />\n                        </Link>\n                    </div>\n\n                    <div\n                        ref={menuDom}\n                        className={styleObj.menu}\n                    >\n                        <NavLink\n                            to=\"/features\"\n                            exact\n                            className={styleObj.link}\n                            activeClassName={styleObj.selected}\n                            onMouseOver={handleOverFeatures}\n                            onMouseOut={handleOutFeatures}\n                        >\n                            {t(\"home.features\")}\n                        </NavLink>\n                        <NavLink\n                            to=\"/why\"\n                            exact\n                            className={styleObj.link}\n                            activeClassName={styleObj.selected}\n                        >\n                            {t(\"home.whyOmi\")}\n                        </NavLink>\n                        <NavLink\n                            to=\"/press\"\n                            exact\n                            className={styleObj.link}\n                            activeClassName={styleObj.selected}\n                        >\n                            {t(\"home.press\")}\n                        </NavLink>\n                        <NavLink\n                            to=\"/support\"\n                            exact\n                            className={styleObj.link}\n                            activeClassName={styleObj.selected}\n                        >\n                            {t(\"home.support\")}\n                        </NavLink>\n                    </div>\n                    <div\n                        className={styleObj.features_child}\n                        style={{left: featureChildLeft, display: showFeaturesChild ? \"\" : \"none\"}}\n                        onMouseOver={handleOverFeaturesChild}\n                        onMouseOut={handleOutFeaturesChild}\n                    >\n                        <NavLink\n                            to=\"/features/toolkit\"\n                            exact\n                            className={styleObj.link}\n                            activeClassName={styleObj.selected}\n                        >\n                            {t(\"header.toolkit\")}\n                        </NavLink>\n                        <NavLink\n                            to=\"/features/subscription\"\n                            exact\n                            className={styleObj.link}\n                            activeClassName={styleObj.selected}\n                        >\n                            {t(\"header.subscription\")}\n                        </NavLink>\n                    </div>\n                    <div\n                        ref={languageDom}\n                        className={`${styleObj.language} ${showLanguage ? styleObj.clicked : \"\"}`}\n                    >\n                        {t(\"header.currentLanguage\")}\n                    </div>\n                    {\n                        showLanguage &&\n                        <div\n                            ref={languageBoxDom}\n                            className={styleObj.language_box}\n                        >\n                            <span onClick={\n                                () => {\n                                    changeLanguage(\"zh\");\n                                    window.localStorage.setItem(\"lan\", \"zh\");\n                                }\n                            }>繁體中文</span>\n                            <span onClick={\n                                () => {\n                                    changeLanguage(\"en\");\n                                    window.localStorage.setItem(\"lan\", \"en\");\n                                }\n                            }>ENGLISH</span>\n                            <span onClick={\n                                () => {\n                                    changeLanguage(\"my\");\n                                    window.localStorage.setItem(\"lan\", \"my\");\n                                }\n                            }>BAHASA MELAYU</span>\n                            <span onClick={\n                                () => {\n                                    changeLanguage(\"th\");\n                                    window.localStorage.setItem(\"lan\", \"th\");\n                                }\n                            }>ภาษาไทย</span>\n                            <span onClick={\n                                () => {\n                                    changeLanguage(\"id\");\n                                    window.localStorage.setItem(\"lan\", \"id\");\n                                }\n                            }>BAHASA INDONESIA</span>\n                        </div>\n                    }\n\n                    {/*移动端多语切换开关*/}\n                    <div\n                        ref={languageMobileDom}\n                        className={styleObj.language_dropdown}\n                    >\n                        {t(\"header.currentLanguage\")}\n                        <span\n                            ref={languageDropdownLogoDom}\n                            className={styleObj.language_dropdown_logo}\n                        />\n                    </div>\n\n                    {/*移动端下拉多语*/}\n                    {\n                        showLanguageMobile &&\n                        <div\n                            className={styleObj.language_dropdown_box}\n                            style={{left: languageBoxLeft}}\n                        >\n                            <span onClick={\n                                () => {\n                                    changeLanguage(\"zh\");\n                                    window.localStorage.setItem(\"lan\", \"zh\");\n                                }\n                            }>繁體中文</span>\n                            <span onClick={\n                                () => {\n                                    changeLanguage(\"en\");\n                                    window.localStorage.setItem(\"lan\", \"en\");\n                                }\n                            }>ENGLISH</span>\n                            <span onClick={\n                                () => {\n                                    changeLanguage(\"my\");\n                                    window.localStorage.setItem(\"lan\", \"my\");\n                                }\n                            }>BAHASA MELAYU</span>\n                            <span onClick={\n                                () => {\n                                    changeLanguage(\"th\");\n                                    window.localStorage.setItem(\"lan\", \"th\");\n                                }\n                            }>ภาษาไทย</span>\n                            <span onClick={\n                                () => {\n                                    changeLanguage(\"id\");\n                                    window.localStorage.setItem(\"lan\", \"id\");\n                                }\n                            }>BAHASA INDONESIA</span>\n                        </div>\n                    }\n\n                    {/*移动端导航开关*/}\n                    <div\n                        ref={menuLogoDom}\n                        className={styleObj.menu_dropdown}\n                    >\n                        <img\n                            className={styleObj.menu_dropdown_img}\n                            src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IktQVE5IS05RMko3MkxJQjZYUFBRQjNTSEJNTkhWTyIsInciOjQwLCJoIjo0MCwiZCI6MCwibXQiOiJpbWFnZS9qcGVnIiwiZGgiOjE5NDk3NjM5Njk5ODkxNDU2LCJhYiI6MH0?format=originalOFGHLERTH\"\n                            alt=\"\"/>\n                    </div>\n\n                    {/*移动端下拉导航点击后展示的全屏导航栏*/}\n                    {\n                        showMenu &&\n                        <div\n                            ref={menuBoxDom}\n                            className={styleObj.menu_box}\n                        >\n                            <div className={styleObj.menu_box_header}>\n                                <div className={styleObj.menu_box_content}>\n                                    {/*logo*/}\n                                    <div\n                                        ref={logoDom}\n                                        className={styleObj.menu_box_logo}>\n                                        <Link to=\"/\">\n                                            <img\n                                                src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IkQ2SjNQM1pVRDdDTk1HN1ZZR05NRlhJR1hONTdEUSIsInciOjEyNCwiaCI6NjAsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjoxMjE5MDU3ODI0MTk1MjEwODg2NCwiYWIiOjB9?format=originalOFGHLERTH\"\n                                                alt=\"\"\n                                            />\n                                        </Link>\n                                    </div>\n\n                                    {/*全屏导航:移动端多语切换开关*/}\n                                    <div\n                                        ref={menuBoxLanguageDom}\n                                        className={styleObj.menu_box_language_dropdown}\n                                    >\n                                        {t(\"header.currentLanguage\")}\n                                        <span\n                                            ref={menuBoxLanguageDropdownLogoDom}\n                                            className={styleObj.menu_box_language_dropdown_logo}\n                                        />\n                                    </div>\n\n                                    {/*全屏导航:关闭按钮*/}\n                                    <div\n                                        className={styleObj.menu_box_close}\n                                        onClick={() => setShowMenu(false)}\n                                    >\n                                        <img\n                                            src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IjdVRkJWMjIyN1FWUVQ1SVNPQlI0QUozTUFGWjNIUiIsInciOjM2LCJoIjozNCwiZCI6MCwibXQiOiJpbWFnZS9qcGVnIiwiZGgiOjc1OTc5MTAxODE4MTE1NDg1MjEsImFiIjowfQ?format=originalOFGHLERTH\"\n                                            alt=\"\"/>\n                                    </div>\n\n                                    {/*全屏导航:移动端下拉多语*/}\n                                    {\n                                        showMenuBoxLanguageBoxDom &&\n                                        <div\n                                            className={styleObj.menu_box_language_dropdown_box}\n                                            style={{left: languageBoxLeft}}\n                                        >\n                                            <span onClick={\n                                                () => {\n                                                    changeLanguage(\"zh\");\n                                                    window.localStorage.setItem(\"lan\", \"zh\");\n                                                }\n                                            }>繁體中文</span>\n                                            <span onClick={\n                                                () => {\n                                                    changeLanguage(\"en\");\n                                                    window.localStorage.setItem(\"lan\", \"en\");\n                                                }\n                                            }>ENGLISH</span>\n                                            <span onClick={\n                                                () => {\n                                                    changeLanguage(\"my\");\n                                                    window.localStorage.setItem(\"lan\", \"my\");\n                                                }\n                                            }>BAHASA MELAYU</span>\n                                            <span onClick={\n                                                () => {\n                                                    changeLanguage(\"th\");\n                                                    window.localStorage.setItem(\"lan\", \"th\");\n                                                }\n                                            }>ภาษาไทย</span>\n                                            <span onClick={\n                                                () => {\n                                                    changeLanguage(\"id\");\n                                                    window.localStorage.setItem(\"lan\", \"id\");\n                                                }\n                                            }>BAHASA INDONESIA</span>\n                                        </div>\n                                    }\n                                </div>\n                                <div className={styleObj.menu_box_header_line}/>\n                            </div>\n                            <div className={styleObj.menu_box_body}>\n                                <div className={styleObj.features_wrapper}>\n                                    <NavLink\n                                        to=\"/features\"\n                                        exact\n                                        className={styleObj.link}\n                                        activeClassName={styleObj.selected}\n                                        onClick={() => setShowMenu(false)}\n                                    >\n                                        {t(\"home.features\")}\n                                    </NavLink>\n                                    <img\n                                        src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IjI0UEJHU1Q0QTJVVE5XQlZEUENaRExOWDI1NURNSiIsInciOjI0LCJoIjoxMiwiZCI6MCwibXQiOiJpbWFnZS9qcGVnIiwiZGgiOjg4NjM4MDczOTQ1ODQzMzM0OSwiYWIiOjB9?format=originalOFGHLERTH\"\n                                        className={styleObj.features_flag}\n                                        alt=\"\"\n                                        onClick={() => setShowFeaturesChildMobile(val => !val)}\n                                        style={showFeaturesChildMobile ? {transform: \"rotate(180deg)\"} : {}}\n                                    />\n                                </div>\n                                {/*移动端的 features 子导航*/}\n                                <div\n                                    className={styleObj.features_child}\n                                    style={{display: showFeaturesChildMobile ? \"\" : \"none\"}}\n                                >\n                                    <NavLink\n                                        to=\"/features/toolkit\"\n                                        exact\n                                        className={styleObj.link}\n                                        activeClassName={styleObj.selected}\n                                    >\n                                        {t(\"header.toolkit\")}\n                                    </NavLink>\n                                    <NavLink\n                                        to=\"/features/subscription\"\n                                        exact\n                                        className={styleObj.link}\n                                        activeClassName={styleObj.selected}\n                                    >\n                                        {t(\"header.subscription\")}\n                                    </NavLink>\n                                </div>\n                                <NavLink\n                                    to=\"/why\"\n                                    exact\n                                    className={styleObj.link}\n                                    activeClassName={styleObj.selected}\n                                    onClick={() => setShowMenu(false)}\n                                >\n                                    {t(\"home.whyOmi\")}\n                                </NavLink>\n                                <NavLink\n                                    to=\"/press\"\n                                    exact\n                                    className={styleObj.link}\n                                    activeClassName={styleObj.selected}\n                                    onClick={() => setShowMenu(false)}\n                                >\n                                    {t(\"home.press\")}\n                                </NavLink>\n                                <NavLink\n                                    to=\"/support\"\n                                    exact\n                                    className={styleObj.link}\n                                    activeClassName={styleObj.selected}\n                                    onClick={() => setShowMenu(false)}\n                                >\n                                    {t(\"home.support\")}\n                                </NavLink>\n                            </div>\n                        </div>\n                    }\n                </div>\n            </div>\n\n            {/*反色内容*/}\n            <div className={styleObj.content_wrapper}>\n                <div className={`${styleObj.content} ${styleObj.inverse_color}`}>\n\n                    {/*反色:PC端Omi*/}\n                    <div className={styleObj.logo}>\n                        <Link to=\"/\">\n                            <img\n                                src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IkQ2SjNQM1pVRDdDTk1HN1ZZR05NRlhJR1hONTdEUSIsInciOjEyNCwiaCI6NjAsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjoxMjE5MDU3ODI0MTk1MjEwODg2NCwiYWIiOjB9?format=originalOFGHLERTH\"\n                                alt=\"\"\n                            />\n                        </Link>\n                    </div>\n\n                    {/*反色:PC端导航*/}\n                    <div className={styleObj.menu}>\n                        <NavLink\n                            to=\"/features\"\n                            exact\n                            className={styleObj.link}\n                            activeClassName={styleObj.selected}\n                            onMouseOver={handleOverFeatures}\n                            onMouseOut={handleOutFeatures}\n                        >\n                            {t(\"home.features\")}\n                        </NavLink>\n                        <NavLink\n                            to=\"/why\"\n                            exact\n                            className={styleObj.link}\n                            activeClassName={styleObj.selected}\n                        >\n                            {t(\"home.whyOmi\")}\n                        </NavLink>\n                        <NavLink\n                            to=\"/press\"\n                            exact\n                            className={styleObj.link}\n                            activeClassName={styleObj.selected}\n                        >\n                            {t(\"home.press\")}\n                        </NavLink>\n                        <NavLink\n                            to=\"/support\"\n                            exact\n                            className={styleObj.link}\n                            activeClassName={styleObj.selected}\n                        >\n                            {t(\"home.support\")}\n                        </NavLink>\n                    </div>\n\n                    {/*反色:PC端地球*/}\n                    <div\n                        className={`${styleObj.language} ${showLanguage ? styleObj.clicked : \"\"}`}\n                    >\n                        {t(\"header.currentLanguage\")}\n                    </div>\n\n                    {/*反色:移动端多语切换开关*/}\n                    <div\n                        className={styleObj.language_dropdown}\n                    >\n                        {t(\"header.currentLanguage\")}\n                        <span className={styleObj.language_dropdown_logo}/>\n                    </div>\n\n                    {/*反色:移动端下拉多语*/}\n                    {\n                        showLanguageMobile &&\n                        <div\n                            className={styleObj.language_dropdown_box}\n                            style={{left: languageBoxLeft}}\n                        >\n                            <span onClick={\n                                () => {\n                                    changeLanguage(\"zh\");\n                                    window.localStorage.setItem(\"lan\", \"zh\");\n                                }\n                            }>繁體中文</span>\n                            <span onClick={\n                                () => {\n                                    changeLanguage(\"en\");\n                                    window.localStorage.setItem(\"lan\", \"en\");\n                                }\n                            }>ENGLISH</span>\n                            <span onClick={\n                                () => {\n                                    changeLanguage(\"my\");\n                                    window.localStorage.setItem(\"lan\", \"my\");\n                                }\n                            }>BAHASA MELAYU</span>\n                            <span onClick={\n                                () => {\n                                    changeLanguage(\"th\");\n                                    window.localStorage.setItem(\"lan\", \"th\");\n                                }\n                            }>ภาษาไทย</span>\n                            <span onClick={\n                                () => {\n                                    changeLanguage(\"id\");\n                                    window.localStorage.setItem(\"lan\", \"id\");\n                                }\n                            }>BAHASA INDONESIA</span>\n                        </div>\n                    }\n\n                    {/*反色:移动端导航开关*/}\n                    <div\n                        className={styleObj.menu_dropdown}\n                    >\n                        <img\n                            className={styleObj.menu_dropdown_img}\n                            src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IlQySDZBVzNTWVdONUlQSVQ0TjNKU0FMMk1LRFVLRyIsInciOjQwLCJoIjo0MCwiZCI6MCwibXQiOiJpbWFnZS9qcGVnIiwiZGgiOjE4MzcxNzM5NzkzMDQ3ODA4LCJhYiI6MH0?format=originalOFGHLERTH\"\n                            alt=\"\"/>\n                    </div>\n\n                </div>\n            </div>\n            <div className={styleObj.line}/>\n        </div>\n    );\n});\n\nexport default Header;\n","// extracted by mini-css-extract-plugin\nexport default {\"header\":\"Header_header__fEW2p\",\"content_wrapper\":\"Header_content_wrapper__35UED\",\"content\":\"Header_content__7hwtD\",\"logo\":\"Header_logo__0+Q4I\",\"menu\":\"Header_menu__yomWa\",\"link\":\"Header_link__t9oTM\",\"selected\":\"Header_selected__4p+5y\",\"features_child\":\"Header_features_child__CQhkv\",\"language\":\"Header_language__vqCct\",\"clicked\":\"Header_clicked__JS994\",\"language_dropdown\":\"Header_language_dropdown__1hWwX\",\"language_dropdown_box\":\"Header_language_dropdown_box__uW2Vx\",\"menu_dropdown\":\"Header_menu_dropdown__3CSe+\",\"menu_box\":\"Header_menu_box__O5W0r\",\"language_box\":\"Header_language_box__EQ0nI\",\"inverse_color\":\"Header_inverse_color__uBsBb\",\"line\":\"Header_line__UFum1\",\"language_dropdown_logo\":\"Header_language_dropdown_logo__1rGXi\",\"menu_dropdown_img\":\"Header_menu_dropdown_img__gWyWx\",\"menu_box_header\":\"Header_menu_box_header__HAeFQ\",\"menu_box_content\":\"Header_menu_box_content__z0H75\",\"menu_box_logo\":\"Header_menu_box_logo__pc4bt\",\"menu_box_language_dropdown\":\"Header_menu_box_language_dropdown__fWksO\",\"menu_box_language_dropdown_logo\":\"Header_menu_box_language_dropdown_logo__+Qco2\",\"menu_box_close\":\"Header_menu_box_close__ZbUyn\",\"menu_box_language_dropdown_box\":\"Header_menu_box_language_dropdown_box__n7H7W\",\"menu_box_header_line\":\"Header_menu_box_header_line__12Nji\",\"menu_box_body\":\"Header_menu_box_body__GtnAn\",\"features_wrapper\":\"Header_features_wrapper__g4vtK\",\"features_flag\":\"Header_features_flag__vtnD7\",\"log_out\":\"Header_log_out__9Phi5\"};","import React, {useEffect, useImperativeHandle, useRef, useState} from \"react\";\nimport styleObj from \"./Header.module.less\";\nimport {Link, NavLink} from \"react-router-dom\";\nimport {useTranslation} from \"react-i18next\";\nimport {useMobile} from \"../../hooks\";\nimport { useAuth } from '../../stores/AuthContext';\n\n\ntype Props = {\n    headerStyle?: object\n}\n\nexport type HeaderRef = {\n    logoDom: HTMLDivElement | null,\n    menuDom: HTMLDivElement | null,\n    languageDom: HTMLDivElement | null,\n    languageMobileDom: HTMLDivElement | null,\n    menuLogoDom: HTMLDivElement | null,\n}\n\nconst Header = React.forwardRef<HeaderRef, Props>(({headerStyle = {}}, ref) => {\n    const [showPay] = useMobile();  //展示支付入口\n    const {t, i18n: {changeLanguage}} = useTranslation();\n    const headerDiv = useRef<HTMLDivElement | null>(null);  //整个标题栏\n    const logoDom = useRef<HTMLDivElement | null>(null);  //logo(PC、移动)\n    const menuDom = useRef<HTMLDivElement | null>(null);  //导航文字(PC)\n    const languageDom = useRef<HTMLDivElement | null>(null);  //小地球(PC)\n    const languageBoxDom = useRef<HTMLDivElement | null>(null);  //多语选择框(PC)\n    const languageMobileDom = useRef<HTMLDivElement | null>(null);  //多语下拉框(移动端)\n    const menuLogoDom = useRef<HTMLDivElement | null>(null);  //导航图标(移动端)\n    const menuBoxDom = useRef<HTMLDivElement | null>(null);  //导航box(移动端)\n    const menuBoxLanguageDom = useRef<HTMLDivElement | null>(null);  //导航box中的多语切换开关(移动端)\n    const languageDropdownLogoDom = useRef<HTMLDivElement | null>(null);  //导航box中的多语选择box后的小三角(移动端)\n    const menuBoxLanguageDropdownLogoDom = useRef<HTMLDivElement | null>(null);  //导航box中的多语选择box后的小三角(移动端)\n\n    const [showLanguage, setShowLanguage] = useState<boolean>(false);  //多语展示标志位(PC小地球)\n    const [showLanguageMobile, setShowLanguageMobile] = useState<boolean>(false);  //多语展示标志位(移动下拉框)\n    const [showMenu, setShowMenu] = useState<boolean>(false);  //移动端导航展示标志位\n    const [showMenuBoxLanguageBoxDom, setShowMenuBoxLanguageBoxDom] = useState<boolean>(false);  //移动端全屏导航栏中的多语选择框展示标志位\n    const [showFeaturesChild, setShowFeaturesChild] = useState<boolean>(false);  //展示 features 的子导航\n    const [showFeaturesChildMobile, setShowFeaturesChildMobile] = useState<boolean>(false);  //展示 features 的子导航(移动端)\n\n    const [languageBoxLeft, setLanguageBoxLeft] = useState<number>(50);\n    const [featureChildLeft, setFeatureChildLeft] = useState<number>(800);\n    const { logged, logout } = useAuth();\n\n    useImperativeHandle(ref, () => ({\n        logoDom: logoDom.current,  //logo(PC、移动)\n        menuDom: menuDom.current,  //导航文字(PC)\n        languageDom: languageDom.current,  //小地球(PC)\n        languageMobileDom: languageMobileDom.current,  //多语下拉框(移动端)\n        menuLogoDom: menuLogoDom.current,  //导航图标(移动端)\n        headerDiv: headerDiv.current  //整个标题栏\n    }));\n\n    useEffect(() => {\n        //多语点击事件\n        document.addEventListener(\"click\", e => {\n            const target = e.target as HTMLDivElement;\n            if (target?.className?.includes(styleObj.language)) {  //PC端多语\n                setShowLanguage(value => !value);\n            } else if (\n                target?.className?.includes(styleObj.language_dropdown) ||\n                target?.className?.includes(styleObj.language_dropdown_logo)\n            ) {  //移动端多语\n                if (!languageDropdownLogoDom.current) return;\n                const clientRect = languageDropdownLogoDom.current.getBoundingClientRect();\n                const {left: targetLeft} = clientRect;\n                setLanguageBoxLeft(targetLeft - 78);  //需要控制多语弹窗位置\n                setShowLanguageMobile(value => !value);\n            } else if (  //移动端导航\n                target?.className?.includes(styleObj.menu_dropdown_img) ||\n                target?.className?.includes(styleObj.menu_dropdown)\n            ) {\n                setShowMenu(value => !value);\n            } else if (\n                target?.className?.includes(styleObj.menu_box_language_dropdown) ||\n                target?.className?.includes(styleObj.menu_box_language_dropdown_logo)\n            ) {\n                //点击移动端全屏导航的多语切换\n                if (!menuBoxLanguageDropdownLogoDom.current) return;\n                const clientRect = menuBoxLanguageDropdownLogoDom.current.getBoundingClientRect();\n                const {left: targetLeft} = clientRect;\n                setLanguageBoxLeft(targetLeft - 78);  //需要控制多语弹窗位置\n                setShowMenuBoxLanguageBoxDom(value => !value);\n            } else {\n                setTimeout(() => {  //防止多语还没点击就消失\n                    setShowLanguage(false);\n                    setShowLanguageMobile(false);\n                    setShowMenuBoxLanguageBoxDom(false);\n                });\n            }\n        }, true);\n        return () => {\n            document.onclick = null;\n        };\n    }, []);\n\n    let timeout: any;\n    const handleOverFeatures = ({target}: { target: HTMLDivElement }): void => {\n        const {left, width} = target.getBoundingClientRect();\n        setFeatureChildLeft(left + 0.5 * width);\n        timeout && clearTimeout(timeout);\n        setShowFeaturesChild(true);\n    };\n\n    const handleOutFeatures = (): void => {\n        timeout = setTimeout(() => {\n            setShowFeaturesChild(false);\n        }, 350);\n    };\n\n    const handleOverFeaturesChild = (): void => {\n        timeout && clearTimeout(timeout);\n        setShowFeaturesChild(true);\n    };\n\n    const handleOutFeaturesChild = (): void => {\n        setShowFeaturesChild(false);\n    };\n\n    return (\n        <div\n            style={headerStyle}\n            className={`${styleObj.header} animate__animated`}\n            ref={headerDiv}\n        >\n            {/*白色内容,变色时候把白色内容拉起来即可(理解为拉窗帘)*/}\n            <div className={styleObj.content_wrapper}>\n                <div className={styleObj.content}>\n                    {\n                        !showPay &&\n                        <div\n                            ref={logoDom}\n                            className={styleObj.logo}> {/*左上角的logo*/}\n                            <Link to=\"/\">\n                                <img\n                                    src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IkQ2SjNQM1pVRDdDTk1HN1ZZR05NRlhJR1hONTdEUSIsInciOjEyNCwiaCI6NjAsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjoxMjE5MDU3ODI0MTk1MjEwODg2NCwiYWIiOjB9?format=originalOFGHLERTH\"\n                                    alt=\"\"\n                                />\n                            </Link>\n                        </div>\n                    }\n\n                    <div\n                        ref={menuDom}\n                        className={styleObj.menu}\n                    >\n                        <NavLink\n                            to=\"/features\"\n                            exact\n                            className={styleObj.link}\n                            activeClassName={styleObj.selected}\n                            onMouseOver={handleOverFeatures}\n                            onMouseOut={handleOutFeatures}\n                        >\n                            {t(\"home.features\")}\n                        </NavLink>\n                        <NavLink\n                            to=\"/why\"\n                            exact\n                            className={styleObj.link}\n                            activeClassName={styleObj.selected}\n                        >\n                            {t(\"home.whyOmi\")}\n                        </NavLink>\n                        <NavLink\n                            to=\"/press\"\n                            exact\n                            className={styleObj.link}\n                            activeClassName={styleObj.selected}\n                        >\n                            {t(\"home.press\")}\n                        </NavLink>\n                        <NavLink\n                            to=\"/support\"\n                            exact\n                            className={styleObj.link}\n                            activeClassName={styleObj.selected}\n                        >\n                            {t(\"home.support\")}\n                        </NavLink>\n                    </div>\n                    <div\n                        className={styleObj.features_child}\n                        style={{left: featureChildLeft, display: showFeaturesChild ? \"\" : \"none\"}}\n                        onMouseOver={handleOverFeaturesChild}\n                        onMouseOut={handleOutFeaturesChild}\n                    >\n                        <NavLink\n                            to=\"/features/toolkit\"\n                            exact\n                            className={styleObj.link}\n                            activeClassName={styleObj.selected}\n                        >\n                            {t(\"header.toolkit\")}\n                        </NavLink>\n                        <NavLink\n                            to=\"/features/subscription\"\n                            exact\n                            className={styleObj.link}\n                            activeClassName={styleObj.selected}\n                        >\n                            {t(\"header.subscription\")}\n                        </NavLink>\n                    </div>\n                    <div\n                        ref={languageDom}\n                        className={`${styleObj.language} ${showLanguage ? styleObj.clicked : \"\"}`}\n                    >\n                        {t(\"header.currentLanguage\")}\n                    </div>\n                    {\n                        showLanguage &&\n                        <div\n                            ref={languageBoxDom}\n                            className={styleObj.language_box}\n                        >\n                            <span onClick={\n                                () => {\n                                    changeLanguage(\"zh\");\n                                    window.localStorage.setItem(\"lan\", \"zh\");\n                                }\n                            }>\n                                繁體中文\n                            </span>\n                            <span onClick={\n                                () => {\n                                    changeLanguage(\"en\");\n                                    window.localStorage.setItem(\"lan\", \"en\");\n                                }\n                            }>ENGLISH</span>\n                            <span onClick={\n                                () => {\n                                    changeLanguage(\"my\");\n                                    window.localStorage.setItem(\"lan\", \"my\");\n                                }\n                            }>BAHASA MELAYU</span>\n                            <span onClick={\n                                () => {\n                                    changeLanguage(\"th\");\n                                    window.localStorage.setItem(\"lan\", \"th\");\n                                }\n                            }>ภาษาไทย</span>\n                            <span onClick={\n                                () => {\n                                    changeLanguage(\"id\");\n                                    window.localStorage.setItem(\"lan\", \"id\");\n                                }\n                            }>BAHASA INDONESIA</span>\n                        </div>\n                    }\n\n                    {/*移动端多语切换开关*/}\n                    <div\n                        ref={languageMobileDom}\n                        className={styleObj.language_dropdown}\n                    >\n                        {t(\"header.currentLanguage\")}\n                        <span\n                            ref={languageDropdownLogoDom}\n                            className={styleObj.language_dropdown_logo}\n                        />\n                    </div>\n\n                    {/*移动端下拉多语*/}\n                    {\n                        showLanguageMobile &&\n                        <div\n                            className={styleObj.language_dropdown_box}\n                            style={{left: languageBoxLeft}}\n                        >\n                            <span onClick={() => {\n                                changeLanguage(\"zh\");\n                                window.localStorage.setItem(\"lan\", \"zh\");\n                            }}>繁體中文</span>\n                            <span onClick={() => {\n                                changeLanguage(\"en\");\n                                window.localStorage.setItem(\"lan\", \"en\");\n                            }}>ENGLISH</span>\n                            <span onClick={() => {\n                                changeLanguage(\"my\");\n                                window.localStorage.setItem(\"lan\", \"my\");\n                            }}>BAHASA MELAYU</span>\n                            <span onClick={() => {\n                                changeLanguage(\"th\");\n                                window.localStorage.setItem(\"lan\", \"th\");\n                            }}>ภาษาไทย</span>\n                            <span onClick={() => {\n                                changeLanguage(\"id\");\n                                window.localStorage.setItem(\"lan\", \"id\");\n                            }}>BAHASA INDONESIA</span>\n                        </div>\n                    }\n                    {/* 退出登陆 */}\n                   {logged && <div className={styleObj.log_out} onClick={logout}>{t('home.OMI_PHONE_WEBSITE_LOGIN_OUT_TITLE')}</div>}\n\n                    {/*移动端导航开关*/}\n                    <div\n                        ref={menuLogoDom}\n                        className={styleObj.menu_dropdown}\n                    >\n                        <img\n                            className={styleObj.menu_dropdown_img}\n                            src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IktQVE5IS05RMko3MkxJQjZYUFBRQjNTSEJNTkhWTyIsInciOjQwLCJoIjo0MCwiZCI6MCwibXQiOiJpbWFnZS9qcGVnIiwiZGgiOjE5NDk3NjM5Njk5ODkxNDU2LCJhYiI6MH0?format=originalOFGHLERTH\"\n                            alt=\"\"/>\n                    </div>\n\n                    {/*移动端下拉导航点击后展示的全屏导航栏*/}\n                    {\n                        showMenu &&\n                        <div\n                            ref={menuBoxDom}\n                            className={styleObj.menu_box}\n                        >\n                            <div className={styleObj.menu_box_header}>\n                                <div className={styleObj.menu_box_content}>\n                                    {/*logo*/}\n                                    <div\n                                        ref={logoDom}\n                                        className={styleObj.menu_box_logo}>\n                                        <Link to=\"/\">\n                                            <img\n                                                src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IkQ2SjNQM1pVRDdDTk1HN1ZZR05NRlhJR1hONTdEUSIsInciOjEyNCwiaCI6NjAsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjoxMjE5MDU3ODI0MTk1MjEwODg2NCwiYWIiOjB9?format=originalOFGHLERTH\"\n                                                alt=\"\"\n                                            />\n                                        </Link>\n                                    </div>\n\n                                    {/*全屏导航:移动端多语切换开关*/}\n                                    <div\n                                        ref={menuBoxLanguageDom}\n                                        className={styleObj.menu_box_language_dropdown}\n                                    >\n                                        {t(\"header.currentLanguage\")}\n                                        <span\n                                            ref={menuBoxLanguageDropdownLogoDom}\n                                            className={styleObj.menu_box_language_dropdown_logo}\n                                        />\n                                    </div>\n\n                                    {/*全屏导航:关闭按钮*/}\n                                    <div\n                                        className={styleObj.menu_box_close}\n                                        onClick={() => setShowMenu(false)}\n                                    >\n                                        <img\n                                            src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IjdVRkJWMjIyN1FWUVQ1SVNPQlI0QUozTUFGWjNIUiIsInciOjM2LCJoIjozNCwiZCI6MCwibXQiOiJpbWFnZS9qcGVnIiwiZGgiOjc1OTc5MTAxODE4MTE1NDg1MjEsImFiIjowfQ?format=originalOFGHLERTH\"\n                                            alt=\"\"/>\n                                    </div>\n\n                                    {/*全屏导航:移动端下拉多语*/}\n                                    {\n                                        showMenuBoxLanguageBoxDom &&\n                                        <div\n                                            className={styleObj.menu_box_language_dropdown_box}\n                                            style={{left: languageBoxLeft}}\n                                        >\n                                            <span onClick={\n                                                () => {\n                                                    changeLanguage(\"zh\");\n                                                    window.localStorage.setItem(\"lan\", \"zh\");\n                                                }\n                                            }>繁體中文</span>\n                                            <span onClick={() => {\n                                                changeLanguage(\"en\");\n                                                window.localStorage.setItem(\"lan\", \"en\");\n                                            }}>ENGLISH</span>\n                                            <span onClick={() => {\n                                                changeLanguage(\"my\");\n                                                window.localStorage.setItem(\"lan\", \"my\");\n                                            }}>BAHASA MELAYU</span>\n                                            <span onClick={() => {\n                                                changeLanguage(\"th\");\n                                                window.localStorage.setItem(\"lan\", \"th\");\n                                            }}>ภาษาไทย</span>\n                                            <span onClick={() => {\n                                                changeLanguage(\"id\");\n                                                window.localStorage.setItem(\"lan\", \"id\");\n                                            }}>BAHASA INDONESIA</span>\n                                        </div>\n                                    }\n                                </div>\n                                <div className={styleObj.menu_box_header_line}/>\n                            </div>\n                            <div className={styleObj.menu_box_body}>\n                                <div className={styleObj.features_wrapper}>\n                                    <NavLink\n                                        to=\"/features\"\n                                        exact\n                                        className={styleObj.link}\n                                        activeClassName={styleObj.selected}\n                                        onClick={() => setShowMenu(false)}\n                                    >\n                                        {t(\"home.features\")}\n                                    </NavLink>\n                                    <img\n                                        src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IjI0UEJHU1Q0QTJVVE5XQlZEUENaRExOWDI1NURNSiIsInciOjI0LCJoIjoxMiwiZCI6MCwibXQiOiJpbWFnZS9qcGVnIiwiZGgiOjg4NjM4MDczOTQ1ODQzMzM0OSwiYWIiOjB9?format=originalOFGHLERTH\"\n                                        className={styleObj.features_flag}\n                                        alt=\"\"\n                                        onClick={() => setShowFeaturesChildMobile(val => !val)}\n                                        style={showFeaturesChildMobile ? {transform: \"rotate(180deg)\"} : {}}\n                                    />\n                                </div>\n                                {/*移动端的 features 子导航*/}\n                                <div\n                                    className={styleObj.features_child}\n                                    style={{display: showFeaturesChildMobile ? \"\" : \"none\"}}\n                                >\n                                    <NavLink\n                                        to=\"/features/toolkit\"\n                                        exact\n                                        className={styleObj.link}\n                                        activeClassName={styleObj.selected}\n                                    >\n                                        {t(\"header.toolkit\")}\n                                    </NavLink>\n                                    <NavLink\n                                        to=\"/features/subscription\"\n                                        exact\n                                        className={styleObj.link}\n                                        activeClassName={styleObj.selected}\n                                    >\n                                        {t(\"header.subscription\")}\n                                    </NavLink>\n                                </div>\n                                <NavLink\n                                    to=\"/why\"\n                                    exact\n                                    className={styleObj.link}\n                                    activeClassName={styleObj.selected}\n                                    onClick={() => setShowMenu(false)}\n                                >\n                                    {t(\"home.whyOmi\")}\n                                </NavLink>\n                                <NavLink\n                                    to=\"/press\"\n                                    exact\n                                    className={styleObj.link}\n                                    activeClassName={styleObj.selected}\n                                    onClick={() => setShowMenu(false)}\n                                >\n                                    {t(\"home.press\")}\n                                </NavLink>\n                                <NavLink\n                                    to=\"/support\"\n                                    exact\n                                    className={styleObj.link}\n                                    activeClassName={styleObj.selected}\n                                    onClick={() => setShowMenu(false)}\n                                >\n                                    {t(\"home.support\")}\n                                </NavLink>\n                            </div>\n                        </div>\n                    }\n                </div>\n            </div>\n\n            {/*反色内容*/}\n            <div className={styleObj.content_wrapper}>\n                <div className={`${styleObj.content} ${styleObj.inverse_color}`}>\n\n                    {/*反色:PC端Omi*/}\n                    {\n                        !showPay &&\n                        <div className={styleObj.logo}>\n                            <Link to=\"/\">\n                                <img\n                                    src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IkQ2SjNQM1pVRDdDTk1HN1ZZR05NRlhJR1hONTdEUSIsInciOjEyNCwiaCI6NjAsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjoxMjE5MDU3ODI0MTk1MjEwODg2NCwiYWIiOjB9?format=originalOFGHLERTH\"\n                                    alt=\"\"\n                                />\n                            </Link>\n                        </div>\n                    }\n\n                    {/*反色:PC端导航*/}\n                    <div className={styleObj.menu}>\n                        <NavLink\n                            to=\"/features\"\n                            exact\n                            className={styleObj.link}\n                            activeClassName={styleObj.selected}\n                            onMouseOver={handleOverFeatures}\n                            onMouseOut={handleOutFeatures}\n                        >\n                            {t(\"home.features\")}\n                        </NavLink>\n                        <NavLink\n                            to=\"/why\"\n                            exact\n                            className={styleObj.link}\n                            activeClassName={styleObj.selected}\n                        >\n                            {t(\"home.whyOmi\")}\n                        </NavLink>\n                        <NavLink\n                            to=\"/press\"\n                            exact\n                            className={styleObj.link}\n                            activeClassName={styleObj.selected}\n                        >\n                            {t(\"home.press\")}\n                        </NavLink>\n                        <NavLink\n                            to=\"/support\"\n                            exact\n                            className={styleObj.link}\n                            activeClassName={styleObj.selected}\n                        >\n                            {t(\"home.support\")}\n                        </NavLink>\n                    </div>\n\n                    {/*反色:PC端地球*/}\n                    <div\n                        className={`${styleObj.language} ${showLanguage ? styleObj.clicked : \"\"}`}\n                    >\n                        {t(\"header.currentLanguage\")}\n                    </div>\n\n                    {/*反色:移动端多语切换开关*/}\n                    <div\n                        className={styleObj.language_dropdown}\n                    >\n                        {t(\"header.currentLanguage\")}\n                        <span className={styleObj.language_dropdown_logo}/>\n                    </div>\n\n                    {/*反色:移动端下拉多语*/}\n                    {\n                        showLanguageMobile &&\n                        <div\n                            className={styleObj.language_dropdown_box}\n                            style={{left: languageBoxLeft}}\n                        >\n                            <span onClick={() => {\n                                changeLanguage(\"zh\");\n                                window.localStorage.setItem(\"lan\", \"zh\");\n                            }}>繁體中文</span>\n                            <span onClick={\n                                () => {\n                                    changeLanguage(\"en\");\n                                    window.localStorage.setItem(\"lan\", \"en\");\n                                }\n                            }>ENGLISH</span>\n                            <span onClick={\n                                () => {\n                                    changeLanguage(\"my\");\n                                    window.localStorage.setItem(\"lan\", \"my\");\n                                }\n                            }>BAHASA MELAYU</span>\n                            <span onClick={\n                                () => {\n                                    changeLanguage(\"th\");\n                                    window.localStorage.setItem(\"lan\", \"th\");\n                                }\n                            }>ภาษาไทย</span>\n                            <span onClick={\n                                () => {\n                                    changeLanguage(\"id\");\n                                    window.localStorage.setItem(\"lan\", \"id\");\n                                }\n                            }>BAHASA INDONESIA</span>\n                        </div>\n                    }\n\n                  {logged && <div className={styleObj.log_out} onClick={logout}>{t('home.OMI_PHONE_WEBSITE_LOGIN_OUT_TITLE')}</div>}\n                    {/*反色:移动端导航开关*/}\n                    <div\n                        className={styleObj.menu_dropdown}\n                    >\n                        <img\n                            className={styleObj.menu_dropdown_img}\n                            src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IlQySDZBVzNTWVdONUlQSVQ0TjNKU0FMMk1LRFVLRyIsInciOjQwLCJoIjo0MCwiZCI6MCwibXQiOiJpbWFnZS9qcGVnIiwiZGgiOjE4MzcxNzM5NzkzMDQ3ODA4LCJhYiI6MH0?format=originalOFGHLERTH\"\n                            alt=\"\"/>\n                    </div>\n\n                </div>\n            </div>\n            <div className={styleObj.line}/>\n        </div>\n    );\n});\n\nexport default Header;\n","import React, {useImperativeHandle, useRef} from \"react\";\nimport styleObj from \"./Layout.module.less\";\nimport Header, {HeaderRef} from \"../Header/Header\";\nimport HeaderHome from \"../HeaderHome/Header\";\n\ntype Props = {\n    children: React.ReactNode,\n    isHome?: boolean,\n    headerStyle?: object\n}\n\nexport type LayoutRef = {\n    logoDom: HTMLDivElement | null | undefined,\n    menuDom: HTMLDivElement | null | undefined,\n    languageDom: HTMLDivElement | null | undefined,\n    languageMobileDom: HTMLDivElement | null | undefined,\n    menuLogoDom: HTMLDivElement | null | undefined,\n    headerDiv?: HTMLDivElement | null | undefined,\n}\n\nconst Layout = React.forwardRef<LayoutRef, Props>((props, ref) => {\n    const {children, headerStyle, isHome = false} = props;\n    const headerRef = useRef<HeaderRef>(null);\n\n    useImperativeHandle(ref, () => ({\n        logoDom: headerRef?.current?.logoDom,\n        menuDom: headerRef?.current?.menuDom,\n        languageDom: headerRef?.current?.languageDom,\n        languageMobileDom: headerRef?.current?.languageMobileDom,\n        menuLogoDom: headerRef?.current?.menuLogoDom,\n        headerDiv: headerRef?.current?.headerDiv\n    }));\n\n    return (\n        <div\n            className={styleObj.layout}\n        >\n            {\n                isHome ?\n                    <HeaderHome\n                        ref={headerRef}\n                        headerStyle={headerStyle}\n                    />\n                    :\n                    <Header\n                        ref={headerRef}\n                        headerStyle={headerStyle}\n                    />\n            }\n            {children}\n        </div>\n    );\n});\n\nexport default Layout;\n","export const PERMISSION_PRY_TYPE = ['TWD', 'IDR', 'THB', 'MYR'];\n\nexport const ESPECIAL_PAY_TYPE = ['IDR', 'TWD', 'HKD', 'THB', 'RUB']; // 这几种货币特殊计算\n\nexport const PAY_CARD: any = {\n  TWD: [\n    'https://auto.omicdn.com/v1/images/eyJpZCI6IldDV0RFUEJZQlNISldNSEw0SEFTTVBTWkg2QktBNiIsInciOjE5MiwiaCI6NzIsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjo2MTgwODQ5NTgzNjM0NTUyNDA1fQ',\n    'https://auto.omicdn.com/v1/images/eyJpZCI6IlBKMjRNMzJZN1JEWEYzT1RWNU5IU0RYWE9WMlRNRCIsInciOjE5MiwiaCI6NzIsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjo1ODgyMzEwOTM5NTUyNDk0MTY1fQ',\n    'https://auto.omicdn.com/v1/images/eyJpZCI6Ik1HTjVZQktDVEY3NUM3RVY3WVM2REszTEdDV09GQSIsInciOjE5MiwiaCI6NzIsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjo1MDAzNjE5NDUxMTU0NTU3MDEzfQ',\n  ],\n  IDR: [\n    'https://auto.omicdn.com/v1/images/eyJpZCI6IjVSREkyWUw2UFRRSVMyWEJRU0haWUJCSDYzVEVRWiIsInciOjE5MiwiaCI6NzIsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjo2MTgwODQ5NTgzNjM0NTUyNDA1fQ',\n    'https://auto.omicdn.com/v1/images/eyJpZCI6Ikg0U05UNjVBNlEzWEtCQlI3V1lMSFhUQlFLUUNGRCIsInciOjE5MiwiaCI6NzIsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjo1NjA3NTk0OTEyMzcxMjgyNTA5fQ',\n    'https://auto.omicdn.com/v1/images/eyJpZCI6IktMNDdBSVhMSFdaS0xMTFVFSEJWMlVVWVNDNExWTyIsInciOjE5MiwiaCI6NzIsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjo1MDAzNjE5NDUxMTU0NTU3MDEzfQ',\n  ],\n  MYR: [\n    'https://auto.omicdn.com/v1/images/eyJpZCI6IkRST01UUUFKWTZDRUFOTkxIM09YTDRFN1RBNUdLTSIsInciOjE5MiwiaCI6NzIsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjo2MTgwODQ5NTgzNjM0NTUyNDA1fQ',\n    'https://auto.omicdn.com/v1/images/eyJpZCI6Ik5RVjUzRzZQQ01KQ0FJN1NVN0tFMkVTSUdOTTIzWSIsInciOjE5MiwiaCI6NzIsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjo4MTkyNzM1MzA5NDk4MjY0MTc3fQ',\n    'https://auto.omicdn.com/v1/images/eyJpZCI6IkdINjZVN1lENEhBMlMzWFBDWk9HQkZFTVZaRkQyUCIsInciOjE5MiwiaCI6NzIsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjo1MDAzNjE5NDUxMTU0NTU3MDEzfQ',\n  ],\n  THB: [\n    'https://auto.omicdn.com/v1/images/eyJpZCI6Ik83WFhEWExZWkhLRTJMVTJQQVE0S0pSUkZLRUY2UCIsInciOjE5MiwiaCI6NzIsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjo2MTgwODQ5NTgzNjM0NTUyNDA1fQ',\n    'https://auto.omicdn.com/v1/images/eyJpZCI6IjNNWFRSV1lUV0lLUlA3TzZNWUFXT0EyTUVRWk1HRCIsInciOjE5MiwiaCI6NzIsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjo1NTg5NjUwNDAxNTQ5MjU3MDQ1fQ',\n    'https://auto.omicdn.com/v1/images/eyJpZCI6IkFaM0tMTk5ETFdFWFlRN05YRzRDTlBDRU5HQkFQTSIsInciOjE5MiwiaCI6NzIsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjo1MDAzNjE5NDUxMTU0NTU3MDEzfQ',\n  ],\n};\n","import {useRef, useEffect, useState, useMemo} from \"react\";\nimport {LayoutRef} from \"./components/Layout/Layout\";\n\n/**\n * 使用白色底色的标题栏\n */\nexport function useWhite() {\n    const layoutRef = useRef<LayoutRef>(null);\n    useEffect(() => {\n        const logoDom = layoutRef?.current?.logoDom;  //logo(PC、移动)\n        const languageMobileDom = layoutRef?.current?.languageMobileDom;  //多语下拉框(移动端)\n        const menuDom = layoutRef?.current?.menuDom;  //导航文字(PC)\n        const languageDom = layoutRef?.current?.languageDom;  //小地球(PC)\n        const menuLogoDom = layoutRef?.current?.menuLogoDom;  //导航图标(移动端)\n        logoDom && (logoDom.style.height = \"0\");  //logo\n        menuDom && (menuDom.style.height = \"0\");  //导航文字\n        languageDom && (languageDom.style.height = \"0\");  //小地球\n        languageMobileDom && (languageMobileDom.style.height = \"0\");  //多语下拉框(移动端)\n        menuLogoDom && (menuLogoDom.style.height = \"0\");  //导航图标(移动端)\n    }, []);\n    return [layoutRef];\n}\n\n/*\n* PC系统判断\n* */\nexport function useSystem() {\n    const [isWindows, setIsWindows] = useState<boolean>(true);\n    useEffect(() => {\n        const agent = navigator.userAgent.toLowerCase();\n        const isMac = /macintosh|mac os x/i.test(navigator.userAgent);\n        if (agent.indexOf(\"win32\") >= 0 || agent.indexOf(\"wow32\") >= 0) {\n            setIsWindows(true);\n        }\n        if (agent.indexOf(\"win64\") >= 0 || agent.indexOf(\"wow64\") >= 0) {\n            setIsWindows(true);\n        }\n        if (isMac) {\n            setIsWindows(false);\n        }\n    }, []);\n    return [isWindows];\n}\n\n/**\n * 小窗口判断(宽度小于800)\n */\nexport function useSmallWindow() {\n    const isMobile = useMemo(() => {\n        return window.innerWidth <= 800;\n    }, [window.innerWidth]);\n    return [isMobile];\n}\n\n/**\n * 移动端系统判断\n */\nexport function useAndroid() {\n    const [isAndroid, setIsAndroid] = useState(true);\n    useEffect(() => {\n        let u = navigator.userAgent;\n        let isIOS = !!u.match(/\\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端\n        if (isIOS) setIsAndroid(false);\n    }, []);\n    return [isAndroid];\n}\n\n/*系统语言判断*/\nexport function useLanguage() {\n    const [language, setLanguage] = useState<string>(\"en\");\n\n    useEffect(() => {\n        const language = window?.navigator?.language;  //获取系统语言\n        if (language.includes(\"zh\")) {  //中文(分3种)\n            if (language.match(/cn|CN/)) {  //简体\n                setLanguage(\"zh-CN\");\n            } else if (language.match(/tw|TW/)) {  //繁体\n                setLanguage(\"zh-TW\");\n            } else if (language.match(/hk|HK/)) {\n                setLanguage(\"zh-HK\");\n            } else {\n                setLanguage(\"zh-CN\");\n            }\n        } else if (language.includes(\"en\")) {  //英文\n            setLanguage(\"en\");\n        } else if (language.includes(\"ms\")) {  //马来语\n            setLanguage(\"ms\");\n        } else if (language.includes(\"th\")) {  //泰语\n            setLanguage(\"th\");\n        } else if (language.includes(\"id\")) {  //印尼语\n            setLanguage(\"id\");\n        } else {\n            setLanguage(\"en\");  //英语\n        }\n    }, []);\n\n    return [language];\n}\n\n/*将系统语言转化为官网支持的语言()*/\nexport function useChangeOsLanguage() {\n    const [language, setLanguage] = useState<string>(\"en\");\n\n    useEffect(() => {\n        const language = window?.navigator?.language;  //获取系统语言\n        if (language.includes(\"zh\")) {  //中文(分3种)\n            setLanguage(\"zh\");  //繁体中文\n        } else if (language.includes(\"en\")) {  //英文\n            setLanguage(\"en\");\n        } else if (language.includes(\"ms\")) {  //马来语\n            setLanguage(\"my\");\n        } else if (language.includes(\"th\")) {  //泰语\n            setLanguage(\"th\");\n        } else if (language.includes(\"id\")) {  //印尼语\n            setLanguage(\"id\");\n        } else {\n            setLanguage(\"en\");  //英语\n        }\n    }, []);\n\n    return [language];\n}\n\n/*判断是否为移动端*/\nexport function useMobile() {\n    const [isMobile, setMobile] = useState<boolean>(false);\n    useEffect(() => {\n        if (/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent) && window.matchMedia(\"only screen and (max-width:767px)\").matches) {\n            setMobile(true)\n        } else (\n            setMobile(false)\n        )\n    }, [navigator.userAgent])\n    return [isMobile]\n}\n\nexport const useCountDown = ({ endTime, onEnd }: {endTime: number, onEnd?: VoidFunction}): {second: string,minute: string, hour: string} => {\n  const [end, setEnd] = useState(false);\n  const calculateTimeLeft = () => {\n\n    const difference = Math.max(new Date(endTime).valueOf() - new Date().valueOf(), 0);\n    const hour = Math.floor((difference / (1000 * 60 * 60)))\n    const minute = Math.floor((difference / 1000 / 60) % 60)\n    const second = Math.floor((difference / 1000) % 60)\n    const timeLeft = {\n      hour: hour < 10 ? `0${hour}` : `${hour}`,\n      minute: minute < 10 ? (`0${minute}`) : `${minute}`,\n      second: second < 10 ? `0${second}` : `${second}`,\n    }\n\n    return timeLeft;\n  };\n\n  const [timeLeft, setTimeLeft] = useState(calculateTimeLeft());\n\n  useEffect(() => {\n    const timer = setInterval(() => {\n      setTimeLeft(calculateTimeLeft());\n      const difference = Math.max(new Date(endTime).valueOf() - new Date().valueOf(), 0);\n      if (difference <= 0) {\n        setEnd(true);\n      }\n    }, 1000);\n\n    // 清除计时器\n    return () => clearInterval(timer);\n  }, [endTime]);\n\n  useEffect(() => {\n    if (end) {\n      onEnd && onEnd();\n    }\n  }, [end]);\n\n\n\n  return timeLeft;\n};\n\nexport default useCountDown;\n","import React, { createContext, useState, useContext, ReactNode } from 'react';\n\n\ninterface AuthContextType {\n  logged: boolean;\n  login: () => void;\n  logout: () => void;\n}\n\nconst AuthContext = createContext<AuthContextType | undefined>(undefined);\n\nexport const AuthProvider: React.FC<{ children: ReactNode }> = ({ children }) => {\n  const [logged, setLogged] = useState<boolean>(false);\n\n  // 登录函数\n  const login = () => {\n    setLogged(true);\n  };\n\n  // 登出函数\n  const logout = () => {\n    setLogged(false);\n    localStorage.removeItem('accessToken');\n    // setUser(null);\n  };\n\n  return (\n    <AuthContext.Provider value={{ logged, login, logout }}>\n      {children}\n    </AuthContext.Provider>\n  );\n};\n\nexport const useAuth = (): AuthContextType => {\n  const context = useContext(AuthContext);\n  if (!context) {\n    throw new Error('useAuth must be used within an AuthProvider');\n  }\n  return context;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"toast\":\"style_toast__VLS+4\"};","import React, { createContext, useContext, useState, useCallback, ReactNode } from 'react';\nimport s from './style.module.less';\n\n// eslint-disable-next-line no-unused-vars\nconst ToastContext = createContext((a: any, b?: any) => {});\n\nexport const useToast = () => useContext(ToastContext);\n\nexport const ToastProvider = ({ children }: {children: ReactNode}) => {\n  const [toast, setToast] = useState({ message: '', duration: 0 });\n\n  const showToast = useCallback((message:string, duration?: number) => {\n    const time = duration || 3000;\n    setToast({ message, duration: time });\n    setTimeout(() => setToast({ message: '', duration: 0 }), time);\n  }, []);\n\n  return (\n    <ToastContext.Provider value={showToast}>\n      {children}\n      {toast.message && <div className={s.toast}>{toast.message}</div>}\n    </ToastContext.Provider>\n  );\n};\n","import React from 'react';\nimport { ESPECIAL_PAY_TYPE } from '../const';\n\nexport const getAgentOs = () => {\n  const uat = navigator.userAgent;\n  if (uat.indexOf('Android') > -1 || uat.indexOf('Linux') > -1) {\n    return 'android';\n  } else if (uat.match(/\\(i[^;]+;( U;)? CPU.+Mac OS X/)) {\n    return 'ios';\n  }\n  return 'ios';\n};\n\nfunction parseJSON(response: any) {\n  return response.json();\n}\n\nfunction checkStatus(response: any) {\n  if (response.status >= 200 && response.status < 300) {\n    return response;\n  }\n  const error = new Error(response.statusText);\n  throw error;\n}\n\n/**\n *\n * @param data {meta: {code: 200, message: \"OK\"}, data: {...}}\n * @returns {*}\n */\nfunction checkMeta(data: any) {\n  if (!data || !data.meta) {\n    throw new Error('no meta data');\n  } else {\n    const { meta, ...d } = data;\n    if (meta.code !== 200 && meta.code !== 201) {\n      throw new Error(meta);\n    } else {\n      return d;\n    }\n  }\n}\n\nfunction request(url: any, options?: any) {\n  if (!options) {\n    options = {};\n  }\n\n  return fetch(url, { ...options, credentials: 'include' })\n    .then(checkStatus)\n    .then(parseJSON)\n    .then(checkMeta);\n}\n\nexport function post(url: any, data: any) {\n  return request(url, {\n    method: 'POST',\n    body: JSON.stringify(data),\n    headers: {\n      'Content-Type': 'application/json',\n    },\n  });\n}\n\nexport function get(url: any) {\n  return request(url);\n}\n\nexport function sendMail(mail: any) {\n  return post('/api/mail', mail);\n}\n\nexport function getSearchParams(search: string = '') {\n  if (!search.length) return {};\n  const obj: any = {};\n  const paramArr = search.substring(1).split('&');\n  paramArr.forEach((item) => {\n    const itemArr = item.split('=');\n    obj[itemArr[0]] = itemArr[1];\n  });\n  return obj;\n}\n\nconst vipObj: any = {\n  vip: 0,\n  seeWhoLikedMe: 1,\n  supreme: 2,\n  diamond: 3,\n};\n\nexport function filterPrice(data: any, tags: Array<string> = [], promotion?: boolean) {\n  const filterKey = Object.keys(vipObj);\n  const filterArr = data?.filter((item: any) => filterKey.includes(item.category)) || [];\n  const reduceArr = filterArr.reduce((did: any, cur: any) => {\n    const stockKeepUnit = promotion ? (cur.promotionStockKeepUnits?.[0] || {}) : (cur.defaultStockKeepUnits?.[0] || {});\n    const prices = stockKeepUnit.prices || {};\n    const tagPrice = prices.tagPrice || {};\n    let price = tagPrice.default || 0;\n    if (Array.isArray(tags) && tags.length > 0) {\n      for (const tag of tags) {\n        if (tagPrice[tag] > 0) {\n          price = tagPrice[tag];\n          break;\n        }\n      }\n    }\n    const { currencySymbol, currencyCode, inAppPrice } = prices;\n    const month = cur.quantity;\n    const price1 = price / month; // 月单价\n    const obj = {\n      ...cur,\n      id: stockKeepUnit.id,\n      currencySymbol, // 货币符号\n      price, // 原始价格,不做展示,只用于计算\n      price1: ESPECIAL_PAY_TYPE.includes(currencyCode) ? Math.ceil(price1) : price1?.toFixed(2), // 月单价\n      month,\n      vipType: vipObj[cur.category],\n      inAppPrice,\n      tagPrice,\n    };\n    // // 测试数据\n    // if (did.length === 1) {\n    //   obj.tag = 'bestDeal';\n    // }\n    did.push(obj);\n    return did;\n  }, []);\n  return reduceArr;\n}\n\nexport function getApi(url: string, headers: HeadersInit = {}) {\n  const accessToken = localStorage.getItem('accessToken'); // 拿到用户的token\n  // const accessToken = 'b3229e60a9472fcf2052279c35043e6af4df35c064a60d6b7fb53a7aa63bf981'; // 拿到用户的token\n  // const path = `http://web-api.omi.dev.p1.cn${url}`;\n\n  return fetch(url,\n    {\n      method: 'GET',\n      headers: {\n        ...headers,\n        Authorization: `Bearer ${accessToken}`,\n      },\n    }).then((res) => res.json());\n}\n\nexport function postApi(url: string, data: object, headers: HeadersInit = {}) {\n  const accessToken = localStorage.getItem('accessToken'); // 拿到用户的token\n  // const accessToken = 'b3229e60a9472fcf2052279c35043e6af4df35c064a60d6b7fb53a7aa63bf981'; // 拿到用户的token\n  // const path = `http://web-api.omi.dev.p1.cn${url}`;\n  return fetch(url,\n    {\n      method: 'POST',\n      headers: {\n        ...headers,\n        Authorization: `Bearer ${accessToken}`,\n        'Content-Type': 'application/json; charset=utf-8',\n      },\n      body: JSON.stringify(data),\n    }).then((res) => res.json());\n}\n\nexport function sendPoint(params: object) {\n  Object.defineProperty(\n    params,\n    'system',\n    {\n      value: getMobileOperatingSystem(),\n      writable: true,\n      configurable: true,\n      enumerable: true,\n    },\n  );\n  const accessToken = localStorage.getItem('accessToken'); // 拿到用户的token\n  let url = '/web/event?';\n  Object.entries(params).forEach((item) => {\n    url += `${item[0]}=${item[1]}&`;\n  });\n  const init: any = {};\n  if (accessToken) init.headers = { Authorization: `Bearer ${accessToken}` };\n  fetch(url.slice(0, -1), init);\n}\n\nexport function addLink(text: string, text1: string, text2: string) {\n  const res = text.replace(text1, `<a href=\"https://omi.sg/privacy\">${text1}</a>`)\n    .replace(text2, `<a href=\"https://omi.sg/terms\">${text2}</a>`);\n  return <div dangerouslySetInnerHTML={{ __html: res }} />;\n}\n\n// 获取手机系统信息\nexport function getMobileOperatingSystem() {\n  const { userAgent } = navigator;\n\n  if (/android/i.test(userAgent)) {\n    return 'Android';\n  }\n  if (/iPad|iPhone|iPod/.test(userAgent)) {\n    return 'iOS';\n  }\n  return 'Unknown';\n}\n\nconst countryCodeMap: any = {\n  HKD: 'HK',\n  TWD: 'TW',\n  MYR: 'MY',\n  THB: 'TH',\n  IDR: 'ID',\n};\n\n// 苹果支付\nexport const handlePaymentApple = (\n  {\n    itemId,\n    price,\n    currencyCode,\n    targetOrg,\n    paymentMethod,\n    upgradeOrderId,\n  }: any,\n  successCallback: Function,\n  errorCallback: Function,\n) => {\n  const { ApplePaySession } = window as any;\n  const applePaySession = new ApplePaySession(\n    6, // 版本\n    {\n      countryCode: countryCodeMap[currencyCode],\n      currencyCode,\n      supportedNetworks: ['visa', 'masterCard'],\n      merchantCapabilities: ['supports3DS'],\n      total: {\n        label: 'omi',\n        amount: price,\n      },\n    },\n  );\n  applePaySession.begin();\n\n  applePaySession.onvalidatemerchant = function (event: any) { // 验证商户\n    const theValidationURL = event.validationURL;\n    postApi(\n      '/web-api/payment/checkout/validate-applepay-session',\n      { appleUrl: theValidationURL },\n    )\n      .then((response) => {\n        applePaySession.completeMerchantValidation(response.data);\n      });\n  };\n\n  applePaySession.onpaymentauthorized = function (event: any) { // 处理支付授权\n    const applePaymentToken = event.payment.token;\n    const params:any = {\n      token: applePaymentToken,\n      itemId,\n      price,\n      currencyCode,\n      targetOrg,\n      paymentMethod,\n    };\n    if (upgradeOrderId) {\n      params.upgradeOrderId = upgradeOrderId;\n    }\n    postApi(\n      '/web-api/payment/checkout/pay',\n      params,\n    )\n      .then((response) => {\n        if (response.data) {\n          applePaySession.completePayment(ApplePaySession.STATUS_SUCCESS);\n          successCallback();\n        } else {\n          applePaySession.completePayment(ApplePaySession.STATUS_FAILURE);\n          errorCallback();\n        }\n      });\n  };\n};\n\nexport function thousandsSeparator(n: number): string {\n  const strSplit = n.toString().split('.');\n  const integer = strSplit[0];\n  const decimal = strSplit[1] || '';\n  return integer.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',') + decimal;\n}\n\nexport function postWithoutAuth(url: string, data: object, headers: HeadersInit = {}) {\n  return fetch(url,\n    {\n      method: 'POST',\n      headers: {\n        ...headers,\n        'Content-Type': 'application/json; charset=utf-8',\n      },\n      body: JSON.stringify(data),\n    }).then((res) => res.json());\n}\n","import { inputToRGB, rgbToHex, rgbToHsv } from '@ctrl/tinycolor';\n\nvar hueStep = 2; // 色相阶梯\n\nvar saturationStep = 0.16; // 饱和度阶梯,浅色部分\n\nvar saturationStep2 = 0.05; // 饱和度阶梯,深色部分\n\nvar brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\n\nvar brightnessStep2 = 0.15; // 亮度阶梯,深色部分\n\nvar lightColorCount = 5; // 浅色数量,主色上\n\nvar darkColorCount = 4; // 深色数量,主色下\n// 暗色主题颜色映射关系表\n\nvar darkColorMap = [{\n  index: 7,\n  opacity: 0.15\n}, {\n  index: 6,\n  opacity: 0.25\n}, {\n  index: 5,\n  opacity: 0.3\n}, {\n  index: 5,\n  opacity: 0.45\n}, {\n  index: 5,\n  opacity: 0.65\n}, {\n  index: 5,\n  opacity: 0.85\n}, {\n  index: 4,\n  opacity: 0.9\n}, {\n  index: 3,\n  opacity: 0.95\n}, {\n  index: 2,\n  opacity: 0.97\n}, {\n  index: 1,\n  opacity: 0.98\n}]; // Wrapper function ported from TinyColor.prototype.toHsv\n// Keep it here because of `hsv.h * 360`\n\nfunction toHsv(_ref) {\n  var r = _ref.r,\n      g = _ref.g,\n      b = _ref.b;\n  var hsv = rgbToHsv(r, g, b);\n  return {\n    h: hsv.h * 360,\n    s: hsv.s,\n    v: hsv.v\n  };\n} // Wrapper function ported from TinyColor.prototype.toHexString\n// Keep it here because of the prefix `#`\n\n\nfunction toHex(_ref2) {\n  var r = _ref2.r,\n      g = _ref2.g,\n      b = _ref2.b;\n  return \"#\".concat(rgbToHex(r, g, b, false));\n} // Wrapper function ported from TinyColor.prototype.mix, not treeshakable.\n// Amount in range [0, 1]\n// Assume color1 & color2 has no alpha, since the following src code did so.\n\n\nfunction mix(rgb1, rgb2, amount) {\n  var p = amount / 100;\n  var rgb = {\n    r: (rgb2.r - rgb1.r) * p + rgb1.r,\n    g: (rgb2.g - rgb1.g) * p + rgb1.g,\n    b: (rgb2.b - rgb1.b) * p + rgb1.b\n  };\n  return rgb;\n}\n\nfunction getHue(hsv, i, light) {\n  var hue; // 根据色相不同,色相转向不同\n\n  if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n    hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n  } else {\n    hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n  }\n\n  if (hue < 0) {\n    hue += 360;\n  } else if (hue >= 360) {\n    hue -= 360;\n  }\n\n  return hue;\n}\n\nfunction getSaturation(hsv, i, light) {\n  // grey color don't change saturation\n  if (hsv.h === 0 && hsv.s === 0) {\n    return hsv.s;\n  }\n\n  var saturation;\n\n  if (light) {\n    saturation = hsv.s - saturationStep * i;\n  } else if (i === darkColorCount) {\n    saturation = hsv.s + saturationStep;\n  } else {\n    saturation = hsv.s + saturationStep2 * i;\n  } // 边界值修正\n\n\n  if (saturation > 1) {\n    saturation = 1;\n  } // 第一格的 s 限制在 0.06-0.1 之间\n\n\n  if (light && i === lightColorCount && saturation > 0.1) {\n    saturation = 0.1;\n  }\n\n  if (saturation < 0.06) {\n    saturation = 0.06;\n  }\n\n  return Number(saturation.toFixed(2));\n}\n\nfunction getValue(hsv, i, light) {\n  var value;\n\n  if (light) {\n    value = hsv.v + brightnessStep1 * i;\n  } else {\n    value = hsv.v - brightnessStep2 * i;\n  }\n\n  if (value > 1) {\n    value = 1;\n  }\n\n  return Number(value.toFixed(2));\n}\n\nfunction generate(color) {\n  var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var patterns = [];\n  var pColor = inputToRGB(color);\n\n  for (var i = lightColorCount; i > 0; i -= 1) {\n    var hsv = toHsv(pColor);\n    var colorString = toHex(inputToRGB({\n      h: getHue(hsv, i, true),\n      s: getSaturation(hsv, i, true),\n      v: getValue(hsv, i, true)\n    }));\n    patterns.push(colorString);\n  }\n\n  patterns.push(toHex(pColor));\n\n  for (var _i = 1; _i <= darkColorCount; _i += 1) {\n    var _hsv = toHsv(pColor);\n\n    var _colorString = toHex(inputToRGB({\n      h: getHue(_hsv, _i),\n      s: getSaturation(_hsv, _i),\n      v: getValue(_hsv, _i)\n    }));\n\n    patterns.push(_colorString);\n  } // dark theme patterns\n\n\n  if (opts.theme === 'dark') {\n    return darkColorMap.map(function (_ref3) {\n      var index = _ref3.index,\n          opacity = _ref3.opacity;\n      var darkColorString = toHex(mix(inputToRGB(opts.backgroundColor || '#141414'), inputToRGB(patterns[index]), opacity * 100));\n      return darkColorString;\n    });\n  }\n\n  return patterns;\n}\n\nvar presetPrimaryColors = {\n  red: '#F5222D',\n  volcano: '#FA541C',\n  orange: '#FA8C16',\n  gold: '#FAAD14',\n  yellow: '#FADB14',\n  lime: '#A0D911',\n  green: '#52C41A',\n  cyan: '#13C2C2',\n  blue: '#1890FF',\n  geekblue: '#2F54EB',\n  purple: '#722ED1',\n  magenta: '#EB2F96',\n  grey: '#666666'\n};\nvar presetPalettes = {};\nvar presetDarkPalettes = {};\nObject.keys(presetPrimaryColors).forEach(function (key) {\n  presetPalettes[key] = generate(presetPrimaryColors[key]);\n  presetPalettes[key].primary = presetPalettes[key][5]; // dark presetPalettes\n\n  presetDarkPalettes[key] = generate(presetPrimaryColors[key], {\n    theme: 'dark',\n    backgroundColor: '#141414'\n  });\n  presetDarkPalettes[key].primary = presetDarkPalettes[key][5];\n});\nvar red = presetPalettes.red;\nvar volcano = presetPalettes.volcano;\nvar gold = presetPalettes.gold;\nvar orange = presetPalettes.orange;\nvar yellow = presetPalettes.yellow;\nvar lime = presetPalettes.lime;\nvar green = presetPalettes.green;\nvar cyan = presetPalettes.cyan;\nvar blue = presetPalettes.blue;\nvar geekblue = presetPalettes.geekblue;\nvar purple = presetPalettes.purple;\nvar magenta = presetPalettes.magenta;\nvar grey = presetPalettes.grey;\n\nexport { blue, cyan, geekblue, generate, gold, green, grey, lime, magenta, orange, presetDarkPalettes, presetPalettes, presetPrimaryColors, purple, red, volcano, yellow };\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { generate as generateColor } from '@ant-design/colors';\nimport React, { useContext, useEffect } from 'react';\nimport warn from \"rc-util/es/warning\";\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport IconContext from './components/Context';\nexport function warning(valid, message) {\n  warn(valid, \"[@ant-design/icons] \".concat(message));\n}\nexport function isIconDefinition(target) {\n  return _typeof(target) === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && (_typeof(target.icon) === 'object' || typeof target.icon === 'function');\n}\nexport function normalizeAttrs() {\n  var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  return Object.keys(attrs).reduce(function (acc, key) {\n    var val = attrs[key];\n\n    switch (key) {\n      case 'class':\n        acc.className = val;\n        delete acc.class;\n        break;\n\n      default:\n        acc[key] = val;\n    }\n\n    return acc;\n  }, {});\n}\nexport function generate(node, key, rootProps) {\n  if (!rootProps) {\n    return /*#__PURE__*/React.createElement(node.tag, _objectSpread({\n      key: key\n    }, normalizeAttrs(node.attrs)), (node.children || []).map(function (child, index) {\n      return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n    }));\n  }\n\n  return /*#__PURE__*/React.createElement(node.tag, _objectSpread(_objectSpread({\n    key: key\n  }, normalizeAttrs(node.attrs)), rootProps), (node.children || []).map(function (child, index) {\n    return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n  }));\n}\nexport function getSecondaryColor(primaryColor) {\n  // choose the second color\n  return generateColor(primaryColor)[0];\n}\nexport function normalizeTwoToneColors(twoToneColor) {\n  if (!twoToneColor) {\n    return [];\n  }\n\n  return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n} // These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\n\nexport var svgBaseProps = {\n  width: '1em',\n  height: '1em',\n  fill: 'currentColor',\n  'aria-hidden': 'true',\n  focusable: 'false'\n};\nexport var iconStyles = \"\\n.anticon {\\n  display: inline-block;\\n  color: inherit;\\n  font-style: normal;\\n  line-height: 0;\\n  text-align: center;\\n  text-transform: none;\\n  vertical-align: -0.125em;\\n  text-rendering: optimizeLegibility;\\n  -webkit-font-smoothing: antialiased;\\n  -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.anticon > * {\\n  line-height: 1;\\n}\\n\\n.anticon svg {\\n  display: inline-block;\\n}\\n\\n.anticon::before {\\n  display: none;\\n}\\n\\n.anticon .anticon-icon {\\n  display: block;\\n}\\n\\n.anticon[tabindex] {\\n  cursor: pointer;\\n}\\n\\n.anticon-spin::before,\\n.anticon-spin {\\n  display: inline-block;\\n  -webkit-animation: loadingCircle 1s infinite linear;\\n  animation: loadingCircle 1s infinite linear;\\n}\\n\\n@-webkit-keyframes loadingCircle {\\n  100% {\\n    -webkit-transform: rotate(360deg);\\n    transform: rotate(360deg);\\n  }\\n}\\n\\n@keyframes loadingCircle {\\n  100% {\\n    -webkit-transform: rotate(360deg);\\n    transform: rotate(360deg);\\n  }\\n}\\n\";\nexport var useInsertStyles = function useInsertStyles() {\n  var styleStr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : iconStyles;\n\n  var _useContext = useContext(IconContext),\n      csp = _useContext.csp;\n\n  useEffect(function () {\n    updateCSS(styleStr, '@ant-design-icons', {\n      prepend: true,\n      csp: csp\n    });\n  }, []);\n};","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"icon\", \"className\", \"onClick\", \"style\", \"primaryColor\", \"secondaryColor\"];\nimport { generate, getSecondaryColor, isIconDefinition, warning, useInsertStyles } from '../utils';\nvar twoToneColorPalette = {\n  primaryColor: '#333',\n  secondaryColor: '#E6E6E6',\n  calculated: false\n};\n\nfunction setTwoToneColors(_ref) {\n  var primaryColor = _ref.primaryColor,\n      secondaryColor = _ref.secondaryColor;\n  twoToneColorPalette.primaryColor = primaryColor;\n  twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);\n  twoToneColorPalette.calculated = !!secondaryColor;\n}\n\nfunction getTwoToneColors() {\n  return _objectSpread({}, twoToneColorPalette);\n}\n\nvar IconBase = function IconBase(props) {\n  var icon = props.icon,\n      className = props.className,\n      onClick = props.onClick,\n      style = props.style,\n      primaryColor = props.primaryColor,\n      secondaryColor = props.secondaryColor,\n      restProps = _objectWithoutProperties(props, _excluded);\n\n  var colors = twoToneColorPalette;\n\n  if (primaryColor) {\n    colors = {\n      primaryColor: primaryColor,\n      secondaryColor: secondaryColor || getSecondaryColor(primaryColor)\n    };\n  }\n\n  useInsertStyles();\n  warning(isIconDefinition(icon), \"icon should be icon definiton, but got \".concat(icon));\n\n  if (!isIconDefinition(icon)) {\n    return null;\n  }\n\n  var target = icon;\n\n  if (target && typeof target.icon === 'function') {\n    target = _objectSpread(_objectSpread({}, target), {}, {\n      icon: target.icon(colors.primaryColor, colors.secondaryColor)\n    });\n  }\n\n  return generate(target.icon, \"svg-\".concat(target.name), _objectSpread({\n    className: className,\n    onClick: onClick,\n    style: style,\n    'data-icon': target.name,\n    width: '1em',\n    height: '1em',\n    fill: 'currentColor',\n    'aria-hidden': 'true'\n  }, restProps));\n};\n\nIconBase.displayName = 'IconReact';\nIconBase.getTwoToneColors = getTwoToneColors;\nIconBase.setTwoToneColors = setTwoToneColors;\nexport default IconBase;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ReactIcon from './IconBase';\nimport { normalizeTwoToneColors } from '../utils';\nexport function setTwoToneColor(twoToneColor) {\n  var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n      _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n      primaryColor = _normalizeTwoToneColo2[0],\n      secondaryColor = _normalizeTwoToneColo2[1];\n\n  return ReactIcon.setTwoToneColors({\n    primaryColor: primaryColor,\n    secondaryColor: secondaryColor\n  });\n}\nexport function getTwoToneColor() {\n  var colors = ReactIcon.getTwoToneColors();\n\n  if (!colors.calculated) {\n    return colors.primaryColor;\n  }\n\n  return [colors.primaryColor, colors.secondaryColor];\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"icon\", \"spin\", \"rotate\", \"tabIndex\", \"onClick\", \"twoToneColor\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Context from './Context';\nimport ReactIcon from './IconBase';\nimport { getTwoToneColor, setTwoToneColor } from './twoTonePrimaryColor';\nimport { normalizeTwoToneColors } from '../utils'; // Initial setting\n// should move it to antd main repo?\n\nsetTwoToneColor('#1890ff');\nvar Icon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var _classNames;\n\n  var className = props.className,\n      icon = props.icon,\n      spin = props.spin,\n      rotate = props.rotate,\n      tabIndex = props.tabIndex,\n      onClick = props.onClick,\n      twoToneColor = props.twoToneColor,\n      restProps = _objectWithoutProperties(props, _excluded);\n\n  var _React$useContext = React.useContext(Context),\n      _React$useContext$pre = _React$useContext.prefixCls,\n      prefixCls = _React$useContext$pre === void 0 ? 'anticon' : _React$useContext$pre;\n\n  var classString = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(icon.name), !!icon.name), _defineProperty(_classNames, \"\".concat(prefixCls, \"-spin\"), !!spin || icon.name === 'loading'), _classNames), className);\n  var iconTabIndex = tabIndex;\n\n  if (iconTabIndex === undefined && onClick) {\n    iconTabIndex = -1;\n  }\n\n  var svgStyle = rotate ? {\n    msTransform: \"rotate(\".concat(rotate, \"deg)\"),\n    transform: \"rotate(\".concat(rotate, \"deg)\")\n  } : undefined;\n\n  var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n      _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n      primaryColor = _normalizeTwoToneColo2[0],\n      secondaryColor = _normalizeTwoToneColo2[1];\n\n  return /*#__PURE__*/React.createElement(\"span\", _objectSpread(_objectSpread({\n    role: \"img\",\n    \"aria-label\": icon.name\n  }, restProps), {}, {\n    ref: ref,\n    tabIndex: iconTabIndex,\n    onClick: onClick,\n    className: classString\n  }), /*#__PURE__*/React.createElement(ReactIcon, {\n    icon: icon,\n    primaryColor: primaryColor,\n    secondaryColor: secondaryColor,\n    style: svgStyle\n  }));\n});\nIcon.displayName = 'AntdIcon';\nIcon.getTwoToneColor = getTwoToneColor;\nIcon.setTwoToneColor = setTwoToneColor;\nexport default Icon;","import { createContext } from 'react';\nvar IconContext = /*#__PURE__*/createContext({});\nexport default IconContext;","// This icon file is generated automatically.\nvar CheckCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 01-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z\" } }] }, \"name\": \"check-circle\", \"theme\": \"filled\" };\nexport default CheckCircleFilled;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CheckCircleFilledSvg from \"@ant-design/icons-svg/es/asn/CheckCircleFilled\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CheckCircleFilled = function CheckCircleFilled(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n    ref: ref,\n    icon: CheckCircleFilledSvg\n  }));\n};\n\nCheckCircleFilled.displayName = 'CheckCircleFilled';\nexport default /*#__PURE__*/React.forwardRef(CheckCircleFilled);","// This icon file is generated automatically.\nvar CloseCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z\" } }] }, \"name\": \"close-circle\", \"theme\": \"filled\" };\nexport default CloseCircleFilled;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CloseCircleFilledSvg from \"@ant-design/icons-svg/es/asn/CloseCircleFilled\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CloseCircleFilled = function CloseCircleFilled(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n    ref: ref,\n    icon: CloseCircleFilledSvg\n  }));\n};\n\nCloseCircleFilled.displayName = 'CloseCircleFilled';\nexport default /*#__PURE__*/React.forwardRef(CloseCircleFilled);","// This icon file is generated automatically.\nvar CloseOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 00203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z\" } }] }, \"name\": \"close\", \"theme\": \"outlined\" };\nexport default CloseOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CloseOutlinedSvg from \"@ant-design/icons-svg/es/asn/CloseOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CloseOutlined = function CloseOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n    ref: ref,\n    icon: CloseOutlinedSvg\n  }));\n};\n\nCloseOutlined.displayName = 'CloseOutlined';\nexport default /*#__PURE__*/React.forwardRef(CloseOutlined);","// This icon file is generated automatically.\nvar ExclamationCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-32 232c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 010-96 48.01 48.01 0 010 96z\" } }] }, \"name\": \"exclamation-circle\", \"theme\": \"filled\" };\nexport default ExclamationCircleFilled;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport ExclamationCircleFilledSvg from \"@ant-design/icons-svg/es/asn/ExclamationCircleFilled\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar ExclamationCircleFilled = function ExclamationCircleFilled(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n    ref: ref,\n    icon: ExclamationCircleFilledSvg\n  }));\n};\n\nExclamationCircleFilled.displayName = 'ExclamationCircleFilled';\nexport default /*#__PURE__*/React.forwardRef(ExclamationCircleFilled);","// This icon file is generated automatically.\nvar LoadingOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z\" } }] }, \"name\": \"loading\", \"theme\": \"outlined\" };\nexport default LoadingOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport LoadingOutlinedSvg from \"@ant-design/icons-svg/es/asn/LoadingOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar LoadingOutlined = function LoadingOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n    ref: ref,\n    icon: LoadingOutlinedSvg\n  }));\n};\n\nLoadingOutlined.displayName = 'LoadingOutlined';\nexport default /*#__PURE__*/React.forwardRef(LoadingOutlined);","import { bound01, pad2 } from './util';\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * <http://www.w3.org/TR/css3-color/>\n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\nexport function rgbToRgb(r, g, b) {\n    return {\n        r: bound01(r, 255) * 255,\n        g: bound01(g, 255) * 255,\n        b: bound01(b, 255) * 255,\n    };\n}\n/**\n * Converts an RGB color value to HSL.\n * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n * *Returns:* { h, s, l } in [0,1]\n */\nexport function rgbToHsl(r, g, b) {\n    r = bound01(r, 255);\n    g = bound01(g, 255);\n    b = bound01(b, 255);\n    var max = Math.max(r, g, b);\n    var min = Math.min(r, g, b);\n    var h = 0;\n    var s = 0;\n    var l = (max + min) / 2;\n    if (max === min) {\n        s = 0;\n        h = 0; // achromatic\n    }\n    else {\n        var d = max - min;\n        s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n        switch (max) {\n            case r:\n                h = (g - b) / d + (g < b ? 6 : 0);\n                break;\n            case g:\n                h = (b - r) / d + 2;\n                break;\n            case b:\n                h = (r - g) / d + 4;\n                break;\n            default:\n                break;\n        }\n        h /= 6;\n    }\n    return { h: h, s: s, l: l };\n}\nfunction hue2rgb(p, q, t) {\n    if (t < 0) {\n        t += 1;\n    }\n    if (t > 1) {\n        t -= 1;\n    }\n    if (t < 1 / 6) {\n        return p + (q - p) * (6 * t);\n    }\n    if (t < 1 / 2) {\n        return q;\n    }\n    if (t < 2 / 3) {\n        return p + (q - p) * (2 / 3 - t) * 6;\n    }\n    return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hslToRgb(h, s, l) {\n    var r;\n    var g;\n    var b;\n    h = bound01(h, 360);\n    s = bound01(s, 100);\n    l = bound01(l, 100);\n    if (s === 0) {\n        // achromatic\n        g = l;\n        b = l;\n        r = l;\n    }\n    else {\n        var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n        var p = 2 * l - q;\n        r = hue2rgb(p, q, h + 1 / 3);\n        g = hue2rgb(p, q, h);\n        b = hue2rgb(p, q, h - 1 / 3);\n    }\n    return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\nexport function rgbToHsv(r, g, b) {\n    r = bound01(r, 255);\n    g = bound01(g, 255);\n    b = bound01(b, 255);\n    var max = Math.max(r, g, b);\n    var min = Math.min(r, g, b);\n    var h = 0;\n    var v = max;\n    var d = max - min;\n    var s = max === 0 ? 0 : d / max;\n    if (max === min) {\n        h = 0; // achromatic\n    }\n    else {\n        switch (max) {\n            case r:\n                h = (g - b) / d + (g < b ? 6 : 0);\n                break;\n            case g:\n                h = (b - r) / d + 2;\n                break;\n            case b:\n                h = (r - g) / d + 4;\n                break;\n            default:\n                break;\n        }\n        h /= 6;\n    }\n    return { h: h, s: s, v: v };\n}\n/**\n * Converts an HSV color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hsvToRgb(h, s, v) {\n    h = bound01(h, 360) * 6;\n    s = bound01(s, 100);\n    v = bound01(v, 100);\n    var i = Math.floor(h);\n    var f = h - i;\n    var p = v * (1 - s);\n    var q = v * (1 - f * s);\n    var t = v * (1 - (1 - f) * s);\n    var mod = i % 6;\n    var r = [v, q, p, p, t, v][mod];\n    var g = [t, v, v, q, p, p][mod];\n    var b = [p, p, t, v, v, q][mod];\n    return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\nexport function rgbToHex(r, g, b, allow3Char) {\n    var hex = [\n        pad2(Math.round(r).toString(16)),\n        pad2(Math.round(g).toString(16)),\n        pad2(Math.round(b).toString(16)),\n    ];\n    // Return a 3 character hex if possible\n    if (allow3Char &&\n        hex[0].startsWith(hex[0].charAt(1)) &&\n        hex[1].startsWith(hex[1].charAt(1)) &&\n        hex[2].startsWith(hex[2].charAt(1))) {\n        return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n    }\n    return hex.join('');\n}\n/**\n * Converts an RGBA color plus alpha transparency to hex\n *\n * Assumes r, g, b are contained in the set [0, 255] and\n * a in [0, 1]. Returns a 4 or 8 character rgba hex\n */\n// eslint-disable-next-line max-params\nexport function rgbaToHex(r, g, b, a, allow4Char) {\n    var hex = [\n        pad2(Math.round(r).toString(16)),\n        pad2(Math.round(g).toString(16)),\n        pad2(Math.round(b).toString(16)),\n        pad2(convertDecimalToHex(a)),\n    ];\n    // Return a 4 character hex if possible\n    if (allow4Char &&\n        hex[0].startsWith(hex[0].charAt(1)) &&\n        hex[1].startsWith(hex[1].charAt(1)) &&\n        hex[2].startsWith(hex[2].charAt(1)) &&\n        hex[3].startsWith(hex[3].charAt(1))) {\n        return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n    }\n    return hex.join('');\n}\n/**\n * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n */\nexport function rgbaToArgbHex(r, g, b, a) {\n    var hex = [\n        pad2(convertDecimalToHex(a)),\n        pad2(Math.round(r).toString(16)),\n        pad2(Math.round(g).toString(16)),\n        pad2(Math.round(b).toString(16)),\n    ];\n    return hex.join('');\n}\n/** Converts a decimal to a hex value */\nexport function convertDecimalToHex(d) {\n    return Math.round(parseFloat(d) * 255).toString(16);\n}\n/** Converts a hex value to a decimal */\nexport function convertHexToDecimal(h) {\n    return parseIntFromHex(h) / 255;\n}\n/** Parse a base-16 hex value into a base-10 integer */\nexport function parseIntFromHex(val) {\n    return parseInt(val, 16);\n}\nexport function numberInputToObject(color) {\n    return {\n        r: color >> 16,\n        g: (color & 0xff00) >> 8,\n        b: color & 0xff,\n    };\n}\n","// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json\n/**\n * @hidden\n */\nexport var names = {\n    aliceblue: '#f0f8ff',\n    antiquewhite: '#faebd7',\n    aqua: '#00ffff',\n    aquamarine: '#7fffd4',\n    azure: '#f0ffff',\n    beige: '#f5f5dc',\n    bisque: '#ffe4c4',\n    black: '#000000',\n    blanchedalmond: '#ffebcd',\n    blue: '#0000ff',\n    blueviolet: '#8a2be2',\n    brown: '#a52a2a',\n    burlywood: '#deb887',\n    cadetblue: '#5f9ea0',\n    chartreuse: '#7fff00',\n    chocolate: '#d2691e',\n    coral: '#ff7f50',\n    cornflowerblue: '#6495ed',\n    cornsilk: '#fff8dc',\n    crimson: '#dc143c',\n    cyan: '#00ffff',\n    darkblue: '#00008b',\n    darkcyan: '#008b8b',\n    darkgoldenrod: '#b8860b',\n    darkgray: '#a9a9a9',\n    darkgreen: '#006400',\n    darkgrey: '#a9a9a9',\n    darkkhaki: '#bdb76b',\n    darkmagenta: '#8b008b',\n    darkolivegreen: '#556b2f',\n    darkorange: '#ff8c00',\n    darkorchid: '#9932cc',\n    darkred: '#8b0000',\n    darksalmon: '#e9967a',\n    darkseagreen: '#8fbc8f',\n    darkslateblue: '#483d8b',\n    darkslategray: '#2f4f4f',\n    darkslategrey: '#2f4f4f',\n    darkturquoise: '#00ced1',\n    darkviolet: '#9400d3',\n    deeppink: '#ff1493',\n    deepskyblue: '#00bfff',\n    dimgray: '#696969',\n    dimgrey: '#696969',\n    dodgerblue: '#1e90ff',\n    firebrick: '#b22222',\n    floralwhite: '#fffaf0',\n    forestgreen: '#228b22',\n    fuchsia: '#ff00ff',\n    gainsboro: '#dcdcdc',\n    ghostwhite: '#f8f8ff',\n    goldenrod: '#daa520',\n    gold: '#ffd700',\n    gray: '#808080',\n    green: '#008000',\n    greenyellow: '#adff2f',\n    grey: '#808080',\n    honeydew: '#f0fff0',\n    hotpink: '#ff69b4',\n    indianred: '#cd5c5c',\n    indigo: '#4b0082',\n    ivory: '#fffff0',\n    khaki: '#f0e68c',\n    lavenderblush: '#fff0f5',\n    lavender: '#e6e6fa',\n    lawngreen: '#7cfc00',\n    lemonchiffon: '#fffacd',\n    lightblue: '#add8e6',\n    lightcoral: '#f08080',\n    lightcyan: '#e0ffff',\n    lightgoldenrodyellow: '#fafad2',\n    lightgray: '#d3d3d3',\n    lightgreen: '#90ee90',\n    lightgrey: '#d3d3d3',\n    lightpink: '#ffb6c1',\n    lightsalmon: '#ffa07a',\n    lightseagreen: '#20b2aa',\n    lightskyblue: '#87cefa',\n    lightslategray: '#778899',\n    lightslategrey: '#778899',\n    lightsteelblue: '#b0c4de',\n    lightyellow: '#ffffe0',\n    lime: '#00ff00',\n    limegreen: '#32cd32',\n    linen: '#faf0e6',\n    magenta: '#ff00ff',\n    maroon: '#800000',\n    mediumaquamarine: '#66cdaa',\n    mediumblue: '#0000cd',\n    mediumorchid: '#ba55d3',\n    mediumpurple: '#9370db',\n    mediumseagreen: '#3cb371',\n    mediumslateblue: '#7b68ee',\n    mediumspringgreen: '#00fa9a',\n    mediumturquoise: '#48d1cc',\n    mediumvioletred: '#c71585',\n    midnightblue: '#191970',\n    mintcream: '#f5fffa',\n    mistyrose: '#ffe4e1',\n    moccasin: '#ffe4b5',\n    navajowhite: '#ffdead',\n    navy: '#000080',\n    oldlace: '#fdf5e6',\n    olive: '#808000',\n    olivedrab: '#6b8e23',\n    orange: '#ffa500',\n    orangered: '#ff4500',\n    orchid: '#da70d6',\n    palegoldenrod: '#eee8aa',\n    palegreen: '#98fb98',\n    paleturquoise: '#afeeee',\n    palevioletred: '#db7093',\n    papayawhip: '#ffefd5',\n    peachpuff: '#ffdab9',\n    peru: '#cd853f',\n    pink: '#ffc0cb',\n    plum: '#dda0dd',\n    powderblue: '#b0e0e6',\n    purple: '#800080',\n    rebeccapurple: '#663399',\n    red: '#ff0000',\n    rosybrown: '#bc8f8f',\n    royalblue: '#4169e1',\n    saddlebrown: '#8b4513',\n    salmon: '#fa8072',\n    sandybrown: '#f4a460',\n    seagreen: '#2e8b57',\n    seashell: '#fff5ee',\n    sienna: '#a0522d',\n    silver: '#c0c0c0',\n    skyblue: '#87ceeb',\n    slateblue: '#6a5acd',\n    slategray: '#708090',\n    slategrey: '#708090',\n    snow: '#fffafa',\n    springgreen: '#00ff7f',\n    steelblue: '#4682b4',\n    tan: '#d2b48c',\n    teal: '#008080',\n    thistle: '#d8bfd8',\n    tomato: '#ff6347',\n    turquoise: '#40e0d0',\n    violet: '#ee82ee',\n    wheat: '#f5deb3',\n    white: '#ffffff',\n    whitesmoke: '#f5f5f5',\n    yellow: '#ffff00',\n    yellowgreen: '#9acd32',\n};\n","import { convertHexToDecimal, hslToRgb, hsvToRgb, parseIntFromHex, rgbToRgb } from './conversion';\nimport { names } from './css-color-names';\nimport { boundAlpha, convertToPercentage } from './util';\n/**\n * Given a string or object, convert that input to RGB\n *\n * Possible string inputs:\n * ```\n * \"red\"\n * \"#f00\" or \"f00\"\n * \"#ff0000\" or \"ff0000\"\n * \"#ff000000\" or \"ff000000\"\n * \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n * \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n * \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n * \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n * \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n * \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n * \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n * ```\n */\nexport function inputToRGB(color) {\n    var rgb = { r: 0, g: 0, b: 0 };\n    var a = 1;\n    var s = null;\n    var v = null;\n    var l = null;\n    var ok = false;\n    var format = false;\n    if (typeof color === 'string') {\n        color = stringInputToObject(color);\n    }\n    if (typeof color === 'object') {\n        if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n            rgb = rgbToRgb(color.r, color.g, color.b);\n            ok = true;\n            format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n        }\n        else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n            s = convertToPercentage(color.s);\n            v = convertToPercentage(color.v);\n            rgb = hsvToRgb(color.h, s, v);\n            ok = true;\n            format = 'hsv';\n        }\n        else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n            s = convertToPercentage(color.s);\n            l = convertToPercentage(color.l);\n            rgb = hslToRgb(color.h, s, l);\n            ok = true;\n            format = 'hsl';\n        }\n        if (Object.prototype.hasOwnProperty.call(color, 'a')) {\n            a = color.a;\n        }\n    }\n    a = boundAlpha(a);\n    return {\n        ok: ok,\n        format: color.format || format,\n        r: Math.min(255, Math.max(rgb.r, 0)),\n        g: Math.min(255, Math.max(rgb.g, 0)),\n        b: Math.min(255, Math.max(rgb.b, 0)),\n        a: a,\n    };\n}\n// <http://www.w3.org/TR/css3-values/#integers>\nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n// <http://www.w3.org/TR/css3-values/#number-value>\nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n// Allow positive/negative integer/number.  Don't capture the either/or, just the entire outcome.\nvar CSS_UNIT = \"(?:\".concat(CSS_NUMBER, \")|(?:\").concat(CSS_INTEGER, \")\");\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening paren\nvar PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar matchers = {\n    CSS_UNIT: new RegExp(CSS_UNIT),\n    rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n    rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n    hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n    hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n    hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n    hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n    hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n    hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n    hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n    hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n};\n/**\n * Permissive string parsing.  Take in a number of formats, and output an object\n * based on detected format.  Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n */\nexport function stringInputToObject(color) {\n    color = color.trim().toLowerCase();\n    if (color.length === 0) {\n        return false;\n    }\n    var named = false;\n    if (names[color]) {\n        color = names[color];\n        named = true;\n    }\n    else if (color === 'transparent') {\n        return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n    }\n    // Try to match string input using regular expressions.\n    // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n    // Just return an object and let the conversion functions handle that.\n    // This way the result will be the same whether the tinycolor is initialized with string or object.\n    var match = matchers.rgb.exec(color);\n    if (match) {\n        return { r: match[1], g: match[2], b: match[3] };\n    }\n    match = matchers.rgba.exec(color);\n    if (match) {\n        return { r: match[1], g: match[2], b: match[3], a: match[4] };\n    }\n    match = matchers.hsl.exec(color);\n    if (match) {\n        return { h: match[1], s: match[2], l: match[3] };\n    }\n    match = matchers.hsla.exec(color);\n    if (match) {\n        return { h: match[1], s: match[2], l: match[3], a: match[4] };\n    }\n    match = matchers.hsv.exec(color);\n    if (match) {\n        return { h: match[1], s: match[2], v: match[3] };\n    }\n    match = matchers.hsva.exec(color);\n    if (match) {\n        return { h: match[1], s: match[2], v: match[3], a: match[4] };\n    }\n    match = matchers.hex8.exec(color);\n    if (match) {\n        return {\n            r: parseIntFromHex(match[1]),\n            g: parseIntFromHex(match[2]),\n            b: parseIntFromHex(match[3]),\n            a: convertHexToDecimal(match[4]),\n            format: named ? 'name' : 'hex8',\n        };\n    }\n    match = matchers.hex6.exec(color);\n    if (match) {\n        return {\n            r: parseIntFromHex(match[1]),\n            g: parseIntFromHex(match[2]),\n            b: parseIntFromHex(match[3]),\n            format: named ? 'name' : 'hex',\n        };\n    }\n    match = matchers.hex4.exec(color);\n    if (match) {\n        return {\n            r: parseIntFromHex(match[1] + match[1]),\n            g: parseIntFromHex(match[2] + match[2]),\n            b: parseIntFromHex(match[3] + match[3]),\n            a: convertHexToDecimal(match[4] + match[4]),\n            format: named ? 'name' : 'hex8',\n        };\n    }\n    match = matchers.hex3.exec(color);\n    if (match) {\n        return {\n            r: parseIntFromHex(match[1] + match[1]),\n            g: parseIntFromHex(match[2] + match[2]),\n            b: parseIntFromHex(match[3] + match[3]),\n            format: named ? 'name' : 'hex',\n        };\n    }\n    return false;\n}\n/**\n * Check to see if it looks like a CSS unit\n * (see `matchers` above for definition).\n */\nexport function isValidCSSUnit(color) {\n    return Boolean(matchers.CSS_UNIT.exec(String(color)));\n}\n","/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nexport function bound01(n, max) {\n    if (isOnePointZero(n)) {\n        n = '100%';\n    }\n    var isPercent = isPercentage(n);\n    n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\n    // Automatically convert percentage into number\n    if (isPercent) {\n        n = parseInt(String(n * max), 10) / 100;\n    }\n    // Handle floating point rounding errors\n    if (Math.abs(n - max) < 0.000001) {\n        return 1;\n    }\n    // Convert into [0, 1] range if it isn't already\n    if (max === 360) {\n        // If n is a hue given in degrees,\n        // wrap around out-of-range values into [0, 360] range\n        // then convert into [0, 1].\n        n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\n    }\n    else {\n        // If n not a hue given in degrees\n        // Convert into [0, 1] range if it isn't already.\n        n = (n % max) / parseFloat(String(max));\n    }\n    return n;\n}\n/**\n * Force a number between 0 and 1\n * @hidden\n */\nexport function clamp01(val) {\n    return Math.min(1, Math.max(0, val));\n}\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\n * @hidden\n */\nexport function isOnePointZero(n) {\n    return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\nexport function isPercentage(n) {\n    return typeof n === 'string' && n.indexOf('%') !== -1;\n}\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\nexport function boundAlpha(a) {\n    a = parseFloat(a);\n    if (isNaN(a) || a < 0 || a > 1) {\n        a = 1;\n    }\n    return a;\n}\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\nexport function convertToPercentage(n) {\n    if (n <= 1) {\n        return \"\".concat(Number(n) * 100, \"%\");\n    }\n    return n;\n}\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\nexport function pad2(c) {\n    return c.length === 1 ? '0' + c : String(c);\n}\n","import * as React from 'react';\nvar DisabledContext = /*#__PURE__*/React.createContext(false);\nexport var DisabledContextProvider = function DisabledContextProvider(_ref) {\n  var children = _ref.children,\n    disabled = _ref.disabled;\n  var originDisabled = React.useContext(DisabledContext);\n  return /*#__PURE__*/React.createElement(DisabledContext.Provider, {\n    value: disabled || originDisabled\n  }, children);\n};\nexport default DisabledContext;","import * as React from 'react';\nvar SizeContext = /*#__PURE__*/React.createContext(undefined);\nexport var SizeContextProvider = function SizeContextProvider(_ref) {\n  var children = _ref.children,\n    size = _ref.size;\n  return /*#__PURE__*/React.createElement(SizeContext.Consumer, null, function (originSize) {\n    return /*#__PURE__*/React.createElement(SizeContext.Provider, {\n      value: size || originSize\n    }, children);\n  });\n};\nexport default SizeContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nvar defaultGetPrefixCls = function defaultGetPrefixCls(suffixCls, customizePrefixCls) {\n  if (customizePrefixCls) return customizePrefixCls;\n  return suffixCls ? \"ant-\".concat(suffixCls) : 'ant';\n};\n// zombieJ: 🚨 Do not pass `defaultRenderEmpty` here since it will case circular dependency.\nexport var ConfigContext = /*#__PURE__*/React.createContext({\n  // We provide a default function for Context without provider\n  getPrefixCls: defaultGetPrefixCls\n});\nexport var ConfigConsumer = ConfigContext.Consumer;\n/** @deprecated Use hooks instead. This is a legacy function */\nexport function withConfigConsumer(config) {\n  return function withConfigConsumerFunc(Component) {\n    // Wrap with ConfigConsumer. Since we need compatible with react 15, be care when using ref methods\n    var SFC = function SFC(props) {\n      return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (configProps) {\n        var basicPrefixCls = config.prefixCls;\n        var getPrefixCls = configProps.getPrefixCls;\n        var customizePrefixCls = props.prefixCls;\n        var prefixCls = getPrefixCls(basicPrefixCls, customizePrefixCls);\n        return /*#__PURE__*/React.createElement(Component, _extends({}, configProps, props, {\n          prefixCls: prefixCls\n        }));\n      });\n    };\n    var cons = Component.constructor;\n    var name = cons && cons.displayName || Component.name || 'Component';\n    if (process.env.NODE_ENV !== 'production') {\n      SFC.displayName = \"withConfigConsumer(\".concat(name, \")\");\n    }\n    return SFC;\n  };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport defaultLocale from '../locale/default';\nvar runtimeLocale = _extends({}, defaultLocale.Modal);\nexport function changeConfirmLocale(newLocale) {\n  if (newLocale) {\n    runtimeLocale = _extends(_extends({}, runtimeLocale), newLocale);\n  } else {\n    runtimeLocale = _extends({}, defaultLocale.Modal);\n  }\n}\nexport function getConfirmLocale() {\n  return runtimeLocale;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport { changeConfirmLocale } from '../modal/locale';\nimport LocaleContext from './context';\nexport var ANT_MARK = 'internalMark';\nvar LocaleProvider = function LocaleProvider(props) {\n  var _props$locale = props.locale,\n    locale = _props$locale === void 0 ? {} : _props$locale,\n    children = props.children,\n    _ANT_MARK__ = props._ANT_MARK__;\n  if (process.env.NODE_ENV !== 'production') {\n    process.env.NODE_ENV !== \"production\" ? warning(_ANT_MARK__ === ANT_MARK, 'LocaleProvider', '`LocaleProvider` is deprecated. Please use `locale` with `ConfigProvider` instead: http://u.ant.design/locale') : void 0;\n  }\n  React.useEffect(function () {\n    changeConfirmLocale(locale && locale.Modal);\n    return function () {\n      changeConfirmLocale();\n    };\n  }, [locale]);\n  var getMemoizedContextValue = React.useMemo(function () {\n    return _extends(_extends({}, locale), {\n      exist: true\n    });\n  }, [locale]);\n  return /*#__PURE__*/React.createElement(LocaleContext.Provider, {\n    value: getMemoizedContextValue\n  }, children);\n};\nexport default LocaleProvider;","// This icon file is generated automatically.\nvar CheckCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0051.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }] }, \"name\": \"check-circle\", \"theme\": \"outlined\" };\nexport default CheckCircleOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CheckCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/CheckCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CheckCircleOutlined = function CheckCircleOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n    ref: ref,\n    icon: CheckCircleOutlinedSvg\n  }));\n};\n\nCheckCircleOutlined.displayName = 'CheckCircleOutlined';\nexport default /*#__PURE__*/React.forwardRef(CheckCircleOutlined);","// This icon file is generated automatically.\nvar CloseCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M685.4 354.8c0-4.4-3.6-8-8-8l-66 .3L512 465.6l-99.3-118.4-66.1-.3c-4.4 0-8 3.5-8 8 0 1.9.7 3.7 1.9 5.2l130.1 155L340.5 670a8.32 8.32 0 00-1.9 5.2c0 4.4 3.6 8 8 8l66.1-.3L512 564.4l99.3 118.4 66 .3c4.4 0 8-3.5 8-8 0-1.9-.7-3.7-1.9-5.2L553.5 515l130.1-155c1.2-1.4 1.8-3.3 1.8-5.2z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M512 65C264.6 65 64 265.6 64 513s200.6 448 448 448 448-200.6 448-448S759.4 65 512 65zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }] }, \"name\": \"close-circle\", \"theme\": \"outlined\" };\nexport default CloseCircleOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CloseCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/CloseCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CloseCircleOutlined = function CloseCircleOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n    ref: ref,\n    icon: CloseCircleOutlinedSvg\n  }));\n};\n\nCloseCircleOutlined.displayName = 'CloseCircleOutlined';\nexport default /*#__PURE__*/React.forwardRef(CloseCircleOutlined);","// This icon file is generated automatically.\nvar ExclamationCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M464 688a48 48 0 1096 0 48 48 0 10-96 0zm24-112h48c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8z\" } }] }, \"name\": \"exclamation-circle\", \"theme\": \"outlined\" };\nexport default ExclamationCircleOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport ExclamationCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/ExclamationCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar ExclamationCircleOutlined = function ExclamationCircleOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n    ref: ref,\n    icon: ExclamationCircleOutlinedSvg\n  }));\n};\n\nExclamationCircleOutlined.displayName = 'ExclamationCircleOutlined';\nexport default /*#__PURE__*/React.forwardRef(ExclamationCircleOutlined);","// This icon file is generated automatically.\nvar InfoCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M464 336a48 48 0 1096 0 48 48 0 10-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"info-circle\", \"theme\": \"outlined\" };\nexport default InfoCircleOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport InfoCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/InfoCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar InfoCircleOutlined = function InfoCircleOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n    ref: ref,\n    icon: InfoCircleOutlinedSvg\n  }));\n};\n\nInfoCircleOutlined.displayName = 'InfoCircleOutlined';\nexport default /*#__PURE__*/React.forwardRef(InfoCircleOutlined);","import _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n  function adopt(value) {\n    return value instanceof P ? value : new P(function (resolve) {\n      resolve(value);\n    });\n  }\n  return new (P || (P = Promise))(function (resolve, reject) {\n    function fulfilled(value) {\n      try {\n        step(generator.next(value));\n      } catch (e) {\n        reject(e);\n      }\n    }\n    function rejected(value) {\n      try {\n        step(generator[\"throw\"](value));\n      } catch (e) {\n        reject(e);\n      }\n    }\n    function step(result) {\n      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n    }\n    step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n};\nimport CheckCircleOutlined from \"@ant-design/icons/es/icons/CheckCircleOutlined\";\nimport CloseCircleOutlined from \"@ant-design/icons/es/icons/CloseCircleOutlined\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport ExclamationCircleOutlined from \"@ant-design/icons/es/icons/ExclamationCircleOutlined\";\nimport InfoCircleOutlined from \"@ant-design/icons/es/icons/InfoCircleOutlined\";\nimport classNames from 'classnames';\nimport Notification from 'rc-notification';\nimport * as React from 'react';\nimport ConfigProvider, { globalConfig } from '../config-provider';\nimport createUseNotification from './hooks/useNotification';\nvar notificationInstance = {};\nvar defaultDuration = 4.5;\nvar defaultTop = 24;\nvar defaultBottom = 24;\nvar defaultPrefixCls = '';\nvar defaultPlacement = 'topRight';\nvar defaultGetContainer;\nvar defaultCloseIcon;\nvar rtl = false;\nvar maxCount;\nfunction setNotificationConfig(options) {\n  var duration = options.duration,\n    placement = options.placement,\n    bottom = options.bottom,\n    top = options.top,\n    getContainer = options.getContainer,\n    closeIcon = options.closeIcon,\n    prefixCls = options.prefixCls;\n  if (prefixCls !== undefined) {\n    defaultPrefixCls = prefixCls;\n  }\n  if (duration !== undefined) {\n    defaultDuration = duration;\n  }\n  if (placement !== undefined) {\n    defaultPlacement = placement;\n  } else if (options.rtl) {\n    defaultPlacement = 'topLeft';\n  }\n  if (bottom !== undefined) {\n    defaultBottom = bottom;\n  }\n  if (top !== undefined) {\n    defaultTop = top;\n  }\n  if (getContainer !== undefined) {\n    defaultGetContainer = getContainer;\n  }\n  if (closeIcon !== undefined) {\n    defaultCloseIcon = closeIcon;\n  }\n  if (options.rtl !== undefined) {\n    rtl = options.rtl;\n  }\n  if (options.maxCount !== undefined) {\n    maxCount = options.maxCount;\n  }\n}\nfunction getPlacementStyle(placement) {\n  var top = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultTop;\n  var bottom = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultBottom;\n  var style;\n  switch (placement) {\n    case 'top':\n      style = {\n        left: '50%',\n        transform: 'translateX(-50%)',\n        right: 'auto',\n        top: top,\n        bottom: 'auto'\n      };\n      break;\n    case 'topLeft':\n      style = {\n        left: 0,\n        top: top,\n        bottom: 'auto'\n      };\n      break;\n    case 'topRight':\n      style = {\n        right: 0,\n        top: top,\n        bottom: 'auto'\n      };\n      break;\n    case 'bottom':\n      style = {\n        left: '50%',\n        transform: 'translateX(-50%)',\n        right: 'auto',\n        top: 'auto',\n        bottom: bottom\n      };\n      break;\n    case 'bottomLeft':\n      style = {\n        left: 0,\n        top: 'auto',\n        bottom: bottom\n      };\n      break;\n    default:\n      style = {\n        right: 0,\n        top: 'auto',\n        bottom: bottom\n      };\n      break;\n  }\n  return style;\n}\nfunction getNotificationInstance(args, callback) {\n  var _args$placement = args.placement,\n    placement = _args$placement === void 0 ? defaultPlacement : _args$placement,\n    top = args.top,\n    bottom = args.bottom,\n    _args$getContainer = args.getContainer,\n    getContainer = _args$getContainer === void 0 ? defaultGetContainer : _args$getContainer,\n    customizePrefixCls = args.prefixCls;\n  var _globalConfig = globalConfig(),\n    getPrefixCls = _globalConfig.getPrefixCls,\n    getIconPrefixCls = _globalConfig.getIconPrefixCls;\n  var prefixCls = getPrefixCls('notification', customizePrefixCls || defaultPrefixCls);\n  var iconPrefixCls = getIconPrefixCls();\n  var cacheKey = \"\".concat(prefixCls, \"-\").concat(placement);\n  var cacheInstance = notificationInstance[cacheKey];\n  if (cacheInstance) {\n    Promise.resolve(cacheInstance).then(function (instance) {\n      callback({\n        prefixCls: \"\".concat(prefixCls, \"-notice\"),\n        iconPrefixCls: iconPrefixCls,\n        instance: instance\n      });\n    });\n    return;\n  }\n  var notificationClass = classNames(\"\".concat(prefixCls, \"-\").concat(placement), _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), rtl === true));\n  notificationInstance[cacheKey] = new Promise(function (resolve) {\n    Notification.newInstance({\n      prefixCls: prefixCls,\n      className: notificationClass,\n      style: getPlacementStyle(placement, top, bottom),\n      getContainer: getContainer,\n      maxCount: maxCount\n    }, function (notification) {\n      resolve(notification);\n      callback({\n        prefixCls: \"\".concat(prefixCls, \"-notice\"),\n        iconPrefixCls: iconPrefixCls,\n        instance: notification\n      });\n    });\n  });\n}\nvar typeToIcon = {\n  success: CheckCircleOutlined,\n  info: InfoCircleOutlined,\n  error: CloseCircleOutlined,\n  warning: ExclamationCircleOutlined\n};\nfunction getRCNoticeProps(args, prefixCls, iconPrefixCls) {\n  var durationArg = args.duration,\n    icon = args.icon,\n    type = args.type,\n    description = args.description,\n    message = args.message,\n    btn = args.btn,\n    onClose = args.onClose,\n    onClick = args.onClick,\n    key = args.key,\n    style = args.style,\n    className = args.className,\n    _args$closeIcon = args.closeIcon,\n    closeIcon = _args$closeIcon === void 0 ? defaultCloseIcon : _args$closeIcon,\n    props = args.props;\n  var duration = durationArg === undefined ? defaultDuration : durationArg;\n  var iconNode = null;\n  if (icon) {\n    iconNode = /*#__PURE__*/React.createElement(\"span\", {\n      className: \"\".concat(prefixCls, \"-icon\")\n    }, args.icon);\n  } else if (type) {\n    iconNode = /*#__PURE__*/React.createElement(typeToIcon[type] || null, {\n      className: \"\".concat(prefixCls, \"-icon \").concat(prefixCls, \"-icon-\").concat(type)\n    });\n  }\n  var closeIconToRender = /*#__PURE__*/React.createElement(\"span\", {\n    className: \"\".concat(prefixCls, \"-close-x\")\n  }, closeIcon || /*#__PURE__*/React.createElement(CloseOutlined, {\n    className: \"\".concat(prefixCls, \"-close-icon\")\n  }));\n  var autoMarginTag = !description && iconNode ? /*#__PURE__*/React.createElement(\"span\", {\n    className: \"\".concat(prefixCls, \"-message-single-line-auto-margin\")\n  }) : null;\n  return {\n    content: /*#__PURE__*/React.createElement(ConfigProvider, {\n      iconPrefixCls: iconPrefixCls\n    }, /*#__PURE__*/React.createElement(\"div\", {\n      className: iconNode ? \"\".concat(prefixCls, \"-with-icon\") : '',\n      role: \"alert\"\n    }, iconNode, /*#__PURE__*/React.createElement(\"div\", {\n      className: \"\".concat(prefixCls, \"-message\")\n    }, autoMarginTag, message), /*#__PURE__*/React.createElement(\"div\", {\n      className: \"\".concat(prefixCls, \"-description\")\n    }, description), btn ? /*#__PURE__*/React.createElement(\"span\", {\n      className: \"\".concat(prefixCls, \"-btn\")\n    }, btn) : null)),\n    duration: duration,\n    closable: true,\n    closeIcon: closeIconToRender,\n    onClose: onClose,\n    onClick: onClick,\n    key: key,\n    style: style || {},\n    className: classNames(className, _defineProperty({}, \"\".concat(prefixCls, \"-\").concat(type), !!type)),\n    props: props\n  };\n}\nfunction notice(args) {\n  getNotificationInstance(args, function (_ref) {\n    var prefixCls = _ref.prefixCls,\n      iconPrefixCls = _ref.iconPrefixCls,\n      instance = _ref.instance;\n    instance.notice(getRCNoticeProps(args, prefixCls, iconPrefixCls));\n  });\n}\nvar api = {\n  open: notice,\n  close: function close(key) {\n    Object.keys(notificationInstance).forEach(function (cacheKey) {\n      return Promise.resolve(notificationInstance[cacheKey]).then(function (instance) {\n        instance.removeNotice(key);\n      });\n    });\n  },\n  config: setNotificationConfig,\n  destroy: function destroy() {\n    Object.keys(notificationInstance).forEach(function (cacheKey) {\n      Promise.resolve(notificationInstance[cacheKey]).then(function (instance) {\n        instance.destroy();\n      });\n      delete notificationInstance[cacheKey]; // lgtm[js/missing-await]\n    });\n  }\n};\n\n['success', 'info', 'warning', 'error'].forEach(function (type) {\n  api[type] = function (args) {\n    return api.open(_extends(_extends({}, args), {\n      type: type\n    }));\n  };\n});\napi.warn = api.warning;\napi.useNotification = createUseNotification(getNotificationInstance, getRCNoticeProps);\n/** @internal test Only function. Not work on production */\nexport var getInstance = function getInstance(cacheKey) {\n  return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n    return _regeneratorRuntime().wrap(function _callee$(_context) {\n      while (1) {\n        switch (_context.prev = _context.next) {\n          case 0:\n            return _context.abrupt(\"return\", process.env.NODE_ENV === 'test' ? notificationInstance[cacheKey] : null);\n          case 1:\n          case \"end\":\n            return _context.stop();\n        }\n      }\n    }, _callee);\n  }));\n};\nexport default api;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useRCNotification from \"rc-notification/es/useNotification\";\nimport * as React from 'react';\nimport { ConfigConsumer } from '../../config-provider';\nexport default function createUseNotification(getNotificationInstance, getRCNoticeProps) {\n  var useNotification = function useNotification() {\n    // We can only get content by render\n    var getPrefixCls;\n    // We create a proxy to handle delay created instance\n    var innerInstance = null;\n    var proxy = {\n      add: function add(noticeProps, holderCallback) {\n        innerInstance === null || innerInstance === void 0 ? void 0 : innerInstance.component.add(noticeProps, holderCallback);\n      }\n    };\n    var _useRCNotification = useRCNotification(proxy),\n      _useRCNotification2 = _slicedToArray(_useRCNotification, 2),\n      hookNotify = _useRCNotification2[0],\n      holder = _useRCNotification2[1];\n    function notify(args) {\n      var customizePrefixCls = args.prefixCls;\n      var mergedPrefixCls = getPrefixCls('notification', customizePrefixCls);\n      getNotificationInstance(_extends(_extends({}, args), {\n        prefixCls: mergedPrefixCls\n      }), function (_ref) {\n        var prefixCls = _ref.prefixCls,\n          instance = _ref.instance;\n        innerInstance = instance;\n        hookNotify(getRCNoticeProps(args, prefixCls));\n      });\n    }\n    // Fill functions\n    var hookApiRef = React.useRef({});\n    hookApiRef.current.open = notify;\n    ['success', 'info', 'warning', 'error'].forEach(function (type) {\n      hookApiRef.current[type] = function (args) {\n        return hookApiRef.current.open(_extends(_extends({}, args), {\n          type: type\n        }));\n      };\n    });\n    return [hookApiRef.current, /*#__PURE__*/React.createElement(ConfigConsumer, {\n      key: \"holder\"\n    }, function (context) {\n      getPrefixCls = context.getPrefixCls;\n      return holder;\n    })];\n  };\n  return useNotification;\n}","import { numberInputToObject, rgbaToHex, rgbToHex, rgbToHsl, rgbToHsv } from './conversion';\nimport { names } from './css-color-names';\nimport { inputToRGB } from './format-input';\nimport { bound01, boundAlpha, clamp01 } from './util';\nvar TinyColor = /** @class */ (function () {\n    function TinyColor(color, opts) {\n        if (color === void 0) { color = ''; }\n        if (opts === void 0) { opts = {}; }\n        var _a;\n        // If input is already a tinycolor, return itself\n        if (color instanceof TinyColor) {\n            // eslint-disable-next-line no-constructor-return\n            return color;\n        }\n        if (typeof color === 'number') {\n            color = numberInputToObject(color);\n        }\n        this.originalInput = color;\n        var rgb = inputToRGB(color);\n        this.originalInput = color;\n        this.r = rgb.r;\n        this.g = rgb.g;\n        this.b = rgb.b;\n        this.a = rgb.a;\n        this.roundA = Math.round(100 * this.a) / 100;\n        this.format = (_a = opts.format) !== null && _a !== void 0 ? _a : rgb.format;\n        this.gradientType = opts.gradientType;\n        // Don't let the range of [0,255] come back in [0,1].\n        // Potentially lose a little bit of precision here, but will fix issues where\n        // .5 gets interpreted as half of the total, instead of half of 1\n        // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n        if (this.r < 1) {\n            this.r = Math.round(this.r);\n        }\n        if (this.g < 1) {\n            this.g = Math.round(this.g);\n        }\n        if (this.b < 1) {\n            this.b = Math.round(this.b);\n        }\n        this.isValid = rgb.ok;\n    }\n    TinyColor.prototype.isDark = function () {\n        return this.getBrightness() < 128;\n    };\n    TinyColor.prototype.isLight = function () {\n        return !this.isDark();\n    };\n    /**\n     * Returns the perceived brightness of the color, from 0-255.\n     */\n    TinyColor.prototype.getBrightness = function () {\n        // http://www.w3.org/TR/AERT#color-contrast\n        var rgb = this.toRgb();\n        return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n    };\n    /**\n     * Returns the perceived luminance of a color, from 0-1.\n     */\n    TinyColor.prototype.getLuminance = function () {\n        // http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n        var rgb = this.toRgb();\n        var R;\n        var G;\n        var B;\n        var RsRGB = rgb.r / 255;\n        var GsRGB = rgb.g / 255;\n        var BsRGB = rgb.b / 255;\n        if (RsRGB <= 0.03928) {\n            R = RsRGB / 12.92;\n        }\n        else {\n            // eslint-disable-next-line prefer-exponentiation-operator\n            R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n        }\n        if (GsRGB <= 0.03928) {\n            G = GsRGB / 12.92;\n        }\n        else {\n            // eslint-disable-next-line prefer-exponentiation-operator\n            G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n        }\n        if (BsRGB <= 0.03928) {\n            B = BsRGB / 12.92;\n        }\n        else {\n            // eslint-disable-next-line prefer-exponentiation-operator\n            B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n        }\n        return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n    };\n    /**\n     * Returns the alpha value of a color, from 0-1.\n     */\n    TinyColor.prototype.getAlpha = function () {\n        return this.a;\n    };\n    /**\n     * Sets the alpha value on the current color.\n     *\n     * @param alpha - The new alpha value. The accepted range is 0-1.\n     */\n    TinyColor.prototype.setAlpha = function (alpha) {\n        this.a = boundAlpha(alpha);\n        this.roundA = Math.round(100 * this.a) / 100;\n        return this;\n    };\n    /**\n     * Returns the object as a HSVA object.\n     */\n    TinyColor.prototype.toHsv = function () {\n        var hsv = rgbToHsv(this.r, this.g, this.b);\n        return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this.a };\n    };\n    /**\n     * Returns the hsva values interpolated into a string with the following format:\n     * \"hsva(xxx, xxx, xxx, xx)\".\n     */\n    TinyColor.prototype.toHsvString = function () {\n        var hsv = rgbToHsv(this.r, this.g, this.b);\n        var h = Math.round(hsv.h * 360);\n        var s = Math.round(hsv.s * 100);\n        var v = Math.round(hsv.v * 100);\n        return this.a === 1 ? \"hsv(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%)\") : \"hsva(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%, \").concat(this.roundA, \")\");\n    };\n    /**\n     * Returns the object as a HSLA object.\n     */\n    TinyColor.prototype.toHsl = function () {\n        var hsl = rgbToHsl(this.r, this.g, this.b);\n        return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this.a };\n    };\n    /**\n     * Returns the hsla values interpolated into a string with the following format:\n     * \"hsla(xxx, xxx, xxx, xx)\".\n     */\n    TinyColor.prototype.toHslString = function () {\n        var hsl = rgbToHsl(this.r, this.g, this.b);\n        var h = Math.round(hsl.h * 360);\n        var s = Math.round(hsl.s * 100);\n        var l = Math.round(hsl.l * 100);\n        return this.a === 1 ? \"hsl(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%)\") : \"hsla(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%, \").concat(this.roundA, \")\");\n    };\n    /**\n     * Returns the hex value of the color.\n     * @param allow3Char will shorten hex value to 3 char if possible\n     */\n    TinyColor.prototype.toHex = function (allow3Char) {\n        if (allow3Char === void 0) { allow3Char = false; }\n        return rgbToHex(this.r, this.g, this.b, allow3Char);\n    };\n    /**\n     * Returns the hex value of the color -with a # appened.\n     * @param allow3Char will shorten hex value to 3 char if possible\n     */\n    TinyColor.prototype.toHexString = function (allow3Char) {\n        if (allow3Char === void 0) { allow3Char = false; }\n        return '#' + this.toHex(allow3Char);\n    };\n    /**\n     * Returns the hex 8 value of the color.\n     * @param allow4Char will shorten hex value to 4 char if possible\n     */\n    TinyColor.prototype.toHex8 = function (allow4Char) {\n        if (allow4Char === void 0) { allow4Char = false; }\n        return rgbaToHex(this.r, this.g, this.b, this.a, allow4Char);\n    };\n    /**\n     * Returns the hex 8 value of the color -with a # appened.\n     * @param allow4Char will shorten hex value to 4 char if possible\n     */\n    TinyColor.prototype.toHex8String = function (allow4Char) {\n        if (allow4Char === void 0) { allow4Char = false; }\n        return '#' + this.toHex8(allow4Char);\n    };\n    /**\n     * Returns the object as a RGBA object.\n     */\n    TinyColor.prototype.toRgb = function () {\n        return {\n            r: Math.round(this.r),\n            g: Math.round(this.g),\n            b: Math.round(this.b),\n            a: this.a,\n        };\n    };\n    /**\n     * Returns the RGBA values interpolated into a string with the following format:\n     * \"RGBA(xxx, xxx, xxx, xx)\".\n     */\n    TinyColor.prototype.toRgbString = function () {\n        var r = Math.round(this.r);\n        var g = Math.round(this.g);\n        var b = Math.round(this.b);\n        return this.a === 1 ? \"rgb(\".concat(r, \", \").concat(g, \", \").concat(b, \")\") : \"rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", \").concat(this.roundA, \")\");\n    };\n    /**\n     * Returns the object as a RGBA object.\n     */\n    TinyColor.prototype.toPercentageRgb = function () {\n        var fmt = function (x) { return \"\".concat(Math.round(bound01(x, 255) * 100), \"%\"); };\n        return {\n            r: fmt(this.r),\n            g: fmt(this.g),\n            b: fmt(this.b),\n            a: this.a,\n        };\n    };\n    /**\n     * Returns the RGBA relative values interpolated into a string\n     */\n    TinyColor.prototype.toPercentageRgbString = function () {\n        var rnd = function (x) { return Math.round(bound01(x, 255) * 100); };\n        return this.a === 1\n            ? \"rgb(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%)\")\n            : \"rgba(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%, \").concat(this.roundA, \")\");\n    };\n    /**\n     * The 'real' name of the color -if there is one.\n     */\n    TinyColor.prototype.toName = function () {\n        if (this.a === 0) {\n            return 'transparent';\n        }\n        if (this.a < 1) {\n            return false;\n        }\n        var hex = '#' + rgbToHex(this.r, this.g, this.b, false);\n        for (var _i = 0, _a = Object.entries(names); _i < _a.length; _i++) {\n            var _b = _a[_i], key = _b[0], value = _b[1];\n            if (hex === value) {\n                return key;\n            }\n        }\n        return false;\n    };\n    TinyColor.prototype.toString = function (format) {\n        var formatSet = Boolean(format);\n        format = format !== null && format !== void 0 ? format : this.format;\n        var formattedString = false;\n        var hasAlpha = this.a < 1 && this.a >= 0;\n        var needsAlphaFormat = !formatSet && hasAlpha && (format.startsWith('hex') || format === 'name');\n        if (needsAlphaFormat) {\n            // Special case for \"transparent\", all other non-alpha formats\n            // will return rgba when there is transparency.\n            if (format === 'name' && this.a === 0) {\n                return this.toName();\n            }\n            return this.toRgbString();\n        }\n        if (format === 'rgb') {\n            formattedString = this.toRgbString();\n        }\n        if (format === 'prgb') {\n            formattedString = this.toPercentageRgbString();\n        }\n        if (format === 'hex' || format === 'hex6') {\n            formattedString = this.toHexString();\n        }\n        if (format === 'hex3') {\n            formattedString = this.toHexString(true);\n        }\n        if (format === 'hex4') {\n            formattedString = this.toHex8String(true);\n        }\n        if (format === 'hex8') {\n            formattedString = this.toHex8String();\n        }\n        if (format === 'name') {\n            formattedString = this.toName();\n        }\n        if (format === 'hsl') {\n            formattedString = this.toHslString();\n        }\n        if (format === 'hsv') {\n            formattedString = this.toHsvString();\n        }\n        return formattedString || this.toHexString();\n    };\n    TinyColor.prototype.toNumber = function () {\n        return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b);\n    };\n    TinyColor.prototype.clone = function () {\n        return new TinyColor(this.toString());\n    };\n    /**\n     * Lighten the color a given amount. Providing 100 will always return white.\n     * @param amount - valid between 1-100\n     */\n    TinyColor.prototype.lighten = function (amount) {\n        if (amount === void 0) { amount = 10; }\n        var hsl = this.toHsl();\n        hsl.l += amount / 100;\n        hsl.l = clamp01(hsl.l);\n        return new TinyColor(hsl);\n    };\n    /**\n     * Brighten the color a given amount, from 0 to 100.\n     * @param amount - valid between 1-100\n     */\n    TinyColor.prototype.brighten = function (amount) {\n        if (amount === void 0) { amount = 10; }\n        var rgb = this.toRgb();\n        rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n        rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n        rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n        return new TinyColor(rgb);\n    };\n    /**\n     * Darken the color a given amount, from 0 to 100.\n     * Providing 100 will always return black.\n     * @param amount - valid between 1-100\n     */\n    TinyColor.prototype.darken = function (amount) {\n        if (amount === void 0) { amount = 10; }\n        var hsl = this.toHsl();\n        hsl.l -= amount / 100;\n        hsl.l = clamp01(hsl.l);\n        return new TinyColor(hsl);\n    };\n    /**\n     * Mix the color with pure white, from 0 to 100.\n     * Providing 0 will do nothing, providing 100 will always return white.\n     * @param amount - valid between 1-100\n     */\n    TinyColor.prototype.tint = function (amount) {\n        if (amount === void 0) { amount = 10; }\n        return this.mix('white', amount);\n    };\n    /**\n     * Mix the color with pure black, from 0 to 100.\n     * Providing 0 will do nothing, providing 100 will always return black.\n     * @param amount - valid between 1-100\n     */\n    TinyColor.prototype.shade = function (amount) {\n        if (amount === void 0) { amount = 10; }\n        return this.mix('black', amount);\n    };\n    /**\n     * Desaturate the color a given amount, from 0 to 100.\n     * Providing 100 will is the same as calling greyscale\n     * @param amount - valid between 1-100\n     */\n    TinyColor.prototype.desaturate = function (amount) {\n        if (amount === void 0) { amount = 10; }\n        var hsl = this.toHsl();\n        hsl.s -= amount / 100;\n        hsl.s = clamp01(hsl.s);\n        return new TinyColor(hsl);\n    };\n    /**\n     * Saturate the color a given amount, from 0 to 100.\n     * @param amount - valid between 1-100\n     */\n    TinyColor.prototype.saturate = function (amount) {\n        if (amount === void 0) { amount = 10; }\n        var hsl = this.toHsl();\n        hsl.s += amount / 100;\n        hsl.s = clamp01(hsl.s);\n        return new TinyColor(hsl);\n    };\n    /**\n     * Completely desaturates a color into greyscale.\n     * Same as calling `desaturate(100)`\n     */\n    TinyColor.prototype.greyscale = function () {\n        return this.desaturate(100);\n    };\n    /**\n     * Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n     * Values outside of this range will be wrapped into this range.\n     */\n    TinyColor.prototype.spin = function (amount) {\n        var hsl = this.toHsl();\n        var hue = (hsl.h + amount) % 360;\n        hsl.h = hue < 0 ? 360 + hue : hue;\n        return new TinyColor(hsl);\n    };\n    /**\n     * Mix the current color a given amount with another color, from 0 to 100.\n     * 0 means no mixing (return current color).\n     */\n    TinyColor.prototype.mix = function (color, amount) {\n        if (amount === void 0) { amount = 50; }\n        var rgb1 = this.toRgb();\n        var rgb2 = new TinyColor(color).toRgb();\n        var p = amount / 100;\n        var rgba = {\n            r: (rgb2.r - rgb1.r) * p + rgb1.r,\n            g: (rgb2.g - rgb1.g) * p + rgb1.g,\n            b: (rgb2.b - rgb1.b) * p + rgb1.b,\n            a: (rgb2.a - rgb1.a) * p + rgb1.a,\n        };\n        return new TinyColor(rgba);\n    };\n    TinyColor.prototype.analogous = function (results, slices) {\n        if (results === void 0) { results = 6; }\n        if (slices === void 0) { slices = 30; }\n        var hsl = this.toHsl();\n        var part = 360 / slices;\n        var ret = [this];\n        for (hsl.h = (hsl.h - ((part * results) >> 1) + 720) % 360; --results;) {\n            hsl.h = (hsl.h + part) % 360;\n            ret.push(new TinyColor(hsl));\n        }\n        return ret;\n    };\n    /**\n     * taken from https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js\n     */\n    TinyColor.prototype.complement = function () {\n        var hsl = this.toHsl();\n        hsl.h = (hsl.h + 180) % 360;\n        return new TinyColor(hsl);\n    };\n    TinyColor.prototype.monochromatic = function (results) {\n        if (results === void 0) { results = 6; }\n        var hsv = this.toHsv();\n        var h = hsv.h;\n        var s = hsv.s;\n        var v = hsv.v;\n        var res = [];\n        var modification = 1 / results;\n        while (results--) {\n            res.push(new TinyColor({ h: h, s: s, v: v }));\n            v = (v + modification) % 1;\n        }\n        return res;\n    };\n    TinyColor.prototype.splitcomplement = function () {\n        var hsl = this.toHsl();\n        var h = hsl.h;\n        return [\n            this,\n            new TinyColor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l }),\n            new TinyColor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l }),\n        ];\n    };\n    /**\n     * Compute how the color would appear on a background\n     */\n    TinyColor.prototype.onBackground = function (background) {\n        var fg = this.toRgb();\n        var bg = new TinyColor(background).toRgb();\n        return new TinyColor({\n            r: bg.r + (fg.r - bg.r) * fg.a,\n            g: bg.g + (fg.g - bg.g) * fg.a,\n            b: bg.b + (fg.b - bg.b) * fg.a,\n        });\n    };\n    /**\n     * Alias for `polyad(3)`\n     */\n    TinyColor.prototype.triad = function () {\n        return this.polyad(3);\n    };\n    /**\n     * Alias for `polyad(4)`\n     */\n    TinyColor.prototype.tetrad = function () {\n        return this.polyad(4);\n    };\n    /**\n     * Get polyad colors, like (for 1, 2, 3, 4, 5, 6, 7, 8, etc...)\n     * monad, dyad, triad, tetrad, pentad, hexad, heptad, octad, etc...\n     */\n    TinyColor.prototype.polyad = function (n) {\n        var hsl = this.toHsl();\n        var h = hsl.h;\n        var result = [this];\n        var increment = 360 / n;\n        for (var i = 1; i < n; i++) {\n            result.push(new TinyColor({ h: (h + i * increment) % 360, s: hsl.s, l: hsl.l }));\n        }\n        return result;\n    };\n    /**\n     * compare color vs current color\n     */\n    TinyColor.prototype.equals = function (color) {\n        return this.toRgbString() === new TinyColor(color).toRgbString();\n    };\n    return TinyColor;\n}());\nexport { TinyColor };\n// kept for backwards compatability with v1\nexport function tinycolor(color, opts) {\n    if (color === void 0) { color = ''; }\n    if (opts === void 0) { opts = {}; }\n    return new TinyColor(color, opts);\n}\n","/* eslint-disable import/prefer-default-export, prefer-destructuring */\nimport { generate } from '@ant-design/colors';\nimport { TinyColor } from '@ctrl/tinycolor';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport warning from '../_util/warning';\nvar dynamicStyleMark = \"-ant-\".concat(Date.now(), \"-\").concat(Math.random());\nexport function getStyle(globalPrefixCls, theme) {\n  var variables = {};\n  var formatColor = function formatColor(color, updater) {\n    var clone = color.clone();\n    clone = (updater === null || updater === void 0 ? void 0 : updater(clone)) || clone;\n    return clone.toRgbString();\n  };\n  var fillColor = function fillColor(colorVal, type) {\n    var baseColor = new TinyColor(colorVal);\n    var colorPalettes = generate(baseColor.toRgbString());\n    variables[\"\".concat(type, \"-color\")] = formatColor(baseColor);\n    variables[\"\".concat(type, \"-color-disabled\")] = colorPalettes[1];\n    variables[\"\".concat(type, \"-color-hover\")] = colorPalettes[4];\n    variables[\"\".concat(type, \"-color-active\")] = colorPalettes[6];\n    variables[\"\".concat(type, \"-color-outline\")] = baseColor.clone().setAlpha(0.2).toRgbString();\n    variables[\"\".concat(type, \"-color-deprecated-bg\")] = colorPalettes[0];\n    variables[\"\".concat(type, \"-color-deprecated-border\")] = colorPalettes[2];\n  };\n  // ================ Primary Color ================\n  if (theme.primaryColor) {\n    fillColor(theme.primaryColor, 'primary');\n    var primaryColor = new TinyColor(theme.primaryColor);\n    var primaryColors = generate(primaryColor.toRgbString());\n    // Legacy - We should use semantic naming standard\n    primaryColors.forEach(function (color, index) {\n      variables[\"primary-\".concat(index + 1)] = color;\n    });\n    // Deprecated\n    variables['primary-color-deprecated-l-35'] = formatColor(primaryColor, function (c) {\n      return c.lighten(35);\n    });\n    variables['primary-color-deprecated-l-20'] = formatColor(primaryColor, function (c) {\n      return c.lighten(20);\n    });\n    variables['primary-color-deprecated-t-20'] = formatColor(primaryColor, function (c) {\n      return c.tint(20);\n    });\n    variables['primary-color-deprecated-t-50'] = formatColor(primaryColor, function (c) {\n      return c.tint(50);\n    });\n    variables['primary-color-deprecated-f-12'] = formatColor(primaryColor, function (c) {\n      return c.setAlpha(c.getAlpha() * 0.12);\n    });\n    var primaryActiveColor = new TinyColor(primaryColors[0]);\n    variables['primary-color-active-deprecated-f-30'] = formatColor(primaryActiveColor, function (c) {\n      return c.setAlpha(c.getAlpha() * 0.3);\n    });\n    variables['primary-color-active-deprecated-d-02'] = formatColor(primaryActiveColor, function (c) {\n      return c.darken(2);\n    });\n  }\n  // ================ Success Color ================\n  if (theme.successColor) {\n    fillColor(theme.successColor, 'success');\n  }\n  // ================ Warning Color ================\n  if (theme.warningColor) {\n    fillColor(theme.warningColor, 'warning');\n  }\n  // ================= Error Color =================\n  if (theme.errorColor) {\n    fillColor(theme.errorColor, 'error');\n  }\n  // ================= Info Color ==================\n  if (theme.infoColor) {\n    fillColor(theme.infoColor, 'info');\n  }\n  // Convert to css variables\n  var cssList = Object.keys(variables).map(function (key) {\n    return \"--\".concat(globalPrefixCls, \"-\").concat(key, \": \").concat(variables[key], \";\");\n  });\n  return \"\\n  :root {\\n    \".concat(cssList.join('\\n'), \"\\n  }\\n  \").trim();\n}\nexport function registerTheme(globalPrefixCls, theme) {\n  var style = getStyle(globalPrefixCls, theme);\n  if (canUseDom()) {\n    updateCSS(style, \"\".concat(dynamicStyleMark, \"-dynamic-theme\"));\n  } else {\n    process.env.NODE_ENV !== \"production\" ? warning(false, 'ConfigProvider', 'SSR do not support dynamic theme with css variables.') : void 0;\n  }\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport IconContext from \"@ant-design/icons/es/components/Context\";\nimport { FormProvider as RcFormProvider } from 'rc-field-form';\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport * as React from 'react';\nimport LocaleProvider, { ANT_MARK } from '../locale-provider';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport defaultLocale from '../locale/default';\nimport message from '../message';\nimport notification from '../notification';\nimport { ConfigConsumer, ConfigContext } from './context';\nimport { registerTheme } from './cssVariables';\nimport { DisabledContextProvider } from './DisabledContext';\nimport SizeContext, { SizeContextProvider } from './SizeContext';\nexport { ConfigContext, ConfigConsumer };\nexport var configConsumerProps = ['getTargetContainer', 'getPopupContainer', 'rootPrefixCls', 'getPrefixCls', 'renderEmpty', 'csp', 'autoInsertSpaceInButton', 'locale', 'pageHeader'];\n// These props is used by `useContext` directly in sub component\nvar PASSED_PROPS = ['getTargetContainer', 'getPopupContainer', 'renderEmpty', 'pageHeader', 'input', 'pagination', 'form'];\nexport var defaultPrefixCls = 'ant';\nexport var defaultIconPrefixCls = 'anticon';\nvar globalPrefixCls;\nvar globalIconPrefixCls;\nfunction getGlobalPrefixCls() {\n  return globalPrefixCls || defaultPrefixCls;\n}\nfunction getGlobalIconPrefixCls() {\n  return globalIconPrefixCls || defaultIconPrefixCls;\n}\nvar setGlobalConfig = function setGlobalConfig(_ref) {\n  var prefixCls = _ref.prefixCls,\n    iconPrefixCls = _ref.iconPrefixCls,\n    theme = _ref.theme;\n  if (prefixCls !== undefined) {\n    globalPrefixCls = prefixCls;\n  }\n  if (iconPrefixCls !== undefined) {\n    globalIconPrefixCls = iconPrefixCls;\n  }\n  if (theme) {\n    registerTheme(getGlobalPrefixCls(), theme);\n  }\n};\nexport var globalConfig = function globalConfig() {\n  return {\n    getPrefixCls: function getPrefixCls(suffixCls, customizePrefixCls) {\n      if (customizePrefixCls) return customizePrefixCls;\n      return suffixCls ? \"\".concat(getGlobalPrefixCls(), \"-\").concat(suffixCls) : getGlobalPrefixCls();\n    },\n    getIconPrefixCls: getGlobalIconPrefixCls,\n    getRootPrefixCls: function getRootPrefixCls(rootPrefixCls, customizePrefixCls) {\n      // Customize rootPrefixCls is first priority\n      if (rootPrefixCls) {\n        return rootPrefixCls;\n      }\n      // If Global prefixCls provided, use this\n      if (globalPrefixCls) {\n        return globalPrefixCls;\n      }\n      // [Legacy] If customize prefixCls provided, we cut it to get the prefixCls\n      if (customizePrefixCls && customizePrefixCls.includes('-')) {\n        return customizePrefixCls.replace(/^(.*)-[^-]*$/, '$1');\n      }\n      // Fallback to default prefixCls\n      return getGlobalPrefixCls();\n    }\n  };\n};\nvar ProviderChildren = function ProviderChildren(props) {\n  var _a, _b;\n  var children = props.children,\n    csp = props.csp,\n    autoInsertSpaceInButton = props.autoInsertSpaceInButton,\n    form = props.form,\n    locale = props.locale,\n    componentSize = props.componentSize,\n    direction = props.direction,\n    space = props.space,\n    virtual = props.virtual,\n    dropdownMatchSelectWidth = props.dropdownMatchSelectWidth,\n    legacyLocale = props.legacyLocale,\n    parentContext = props.parentContext,\n    iconPrefixCls = props.iconPrefixCls,\n    componentDisabled = props.componentDisabled;\n  var getPrefixCls = React.useCallback(function (suffixCls, customizePrefixCls) {\n    var prefixCls = props.prefixCls;\n    if (customizePrefixCls) return customizePrefixCls;\n    var mergedPrefixCls = prefixCls || parentContext.getPrefixCls('');\n    return suffixCls ? \"\".concat(mergedPrefixCls, \"-\").concat(suffixCls) : mergedPrefixCls;\n  }, [parentContext.getPrefixCls, props.prefixCls]);\n  var config = _extends(_extends({}, parentContext), {\n    csp: csp,\n    autoInsertSpaceInButton: autoInsertSpaceInButton,\n    locale: locale || legacyLocale,\n    direction: direction,\n    space: space,\n    virtual: virtual,\n    dropdownMatchSelectWidth: dropdownMatchSelectWidth,\n    getPrefixCls: getPrefixCls\n  });\n  // Pass the props used by `useContext` directly with child component.\n  // These props should merged into `config`.\n  PASSED_PROPS.forEach(function (propName) {\n    var propValue = props[propName];\n    if (propValue) {\n      config[propName] = propValue;\n    }\n  });\n  // https://github.com/ant-design/ant-design/issues/27617\n  var memoedConfig = useMemo(function () {\n    return config;\n  }, config, function (prevConfig, currentConfig) {\n    var prevKeys = Object.keys(prevConfig);\n    var currentKeys = Object.keys(currentConfig);\n    return prevKeys.length !== currentKeys.length || prevKeys.some(function (key) {\n      return prevConfig[key] !== currentConfig[key];\n    });\n  });\n  var memoIconContextValue = React.useMemo(function () {\n    return {\n      prefixCls: iconPrefixCls,\n      csp: csp\n    };\n  }, [iconPrefixCls, csp]);\n  var childNode = children;\n  // Additional Form provider\n  var validateMessages = {};\n  if (locale) {\n    validateMessages = ((_a = locale.Form) === null || _a === void 0 ? void 0 : _a.defaultValidateMessages) || ((_b = defaultLocale.Form) === null || _b === void 0 ? void 0 : _b.defaultValidateMessages) || {};\n  }\n  if (form && form.validateMessages) {\n    validateMessages = _extends(_extends({}, validateMessages), form.validateMessages);\n  }\n  if (Object.keys(validateMessages).length > 0) {\n    childNode = /*#__PURE__*/React.createElement(RcFormProvider, {\n      validateMessages: validateMessages\n    }, children);\n  }\n  if (locale) {\n    childNode = /*#__PURE__*/React.createElement(LocaleProvider, {\n      locale: locale,\n      _ANT_MARK__: ANT_MARK\n    }, childNode);\n  }\n  if (iconPrefixCls || csp) {\n    childNode = /*#__PURE__*/React.createElement(IconContext.Provider, {\n      value: memoIconContextValue\n    }, childNode);\n  }\n  if (componentSize) {\n    childNode = /*#__PURE__*/React.createElement(SizeContextProvider, {\n      size: componentSize\n    }, childNode);\n  }\n  if (componentDisabled !== undefined) {\n    childNode = /*#__PURE__*/React.createElement(DisabledContextProvider, {\n      disabled: componentDisabled\n    }, childNode);\n  }\n  return /*#__PURE__*/React.createElement(ConfigContext.Provider, {\n    value: memoedConfig\n  }, childNode);\n};\nvar ConfigProvider = function ConfigProvider(props) {\n  React.useEffect(function () {\n    if (props.direction) {\n      message.config({\n        rtl: props.direction === 'rtl'\n      });\n      notification.config({\n        rtl: props.direction === 'rtl'\n      });\n    }\n  }, [props.direction]);\n  return /*#__PURE__*/React.createElement(LocaleReceiver, null, function (_, __, legacyLocale) {\n    return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (context) {\n      return /*#__PURE__*/React.createElement(ProviderChildren, _extends({\n        parentContext: context,\n        legacyLocale: legacyLocale\n      }, props));\n    });\n  });\n};\n/** @private internal Usage. do not use in your production */\nConfigProvider.ConfigContext = ConfigContext;\nConfigProvider.SizeContext = SizeContext;\nConfigProvider.config = setGlobalConfig;\nexport default ConfigProvider;","import locale from '../locale/default';\nexport default locale;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport LocaleContext from './context';\nimport defaultLocaleData from './default';\nvar LocaleReceiver = function LocaleReceiver(props) {\n  var _props$componentName = props.componentName,\n    componentName = _props$componentName === void 0 ? 'global' : _props$componentName,\n    defaultLocale = props.defaultLocale,\n    children = props.children;\n  var antLocale = React.useContext(LocaleContext);\n  var getLocale = React.useMemo(function () {\n    var _a;\n    var locale = defaultLocale || defaultLocaleData[componentName];\n    var localeFromContext = (_a = antLocale === null || antLocale === void 0 ? void 0 : antLocale[componentName]) !== null && _a !== void 0 ? _a : {};\n    return _extends(_extends({}, locale instanceof Function ? locale() : locale), localeFromContext || {});\n  }, [componentName, defaultLocale, antLocale]);\n  var getLocaleCode = React.useMemo(function () {\n    var localeCode = antLocale && antLocale.locale;\n    // Had use LocaleProvide but didn't set locale\n    if (antLocale && antLocale.exist && !localeCode) {\n      return defaultLocaleData.locale;\n    }\n    return localeCode;\n  }, [antLocale]);\n  return children(getLocale, getLocaleCode, antLocale);\n};\nexport default LocaleReceiver;\nexport var useLocaleReceiver = function useLocaleReceiver(componentName, defaultLocale) {\n  var antLocale = React.useContext(LocaleContext);\n  var getLocale = React.useMemo(function () {\n    var _a;\n    var locale = defaultLocale || defaultLocaleData[componentName];\n    var localeFromContext = (_a = antLocale === null || antLocale === void 0 ? void 0 : antLocale[componentName]) !== null && _a !== void 0 ? _a : {};\n    return _extends(_extends({}, typeof locale === 'function' ? locale() : locale), localeFromContext || {});\n  }, [componentName, defaultLocale, antLocale]);\n  return [getLocale];\n};","import { createContext } from 'react';\nvar LocaleContext = /*#__PURE__*/createContext(undefined);\nexport default LocaleContext;","var locale = {\n  locale: 'en_US',\n  today: 'Today',\n  now: 'Now',\n  backToToday: 'Back to today',\n  ok: 'OK',\n  clear: 'Clear',\n  month: 'Month',\n  year: 'Year',\n  timeSelect: 'select time',\n  dateSelect: 'select date',\n  weekSelect: 'Choose a week',\n  monthSelect: 'Choose a month',\n  yearSelect: 'Choose a year',\n  decadeSelect: 'Choose a decade',\n  yearFormat: 'YYYY',\n  dateFormat: 'M/D/YYYY',\n  dayFormat: 'D',\n  dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n  monthBeforeYear: true,\n  previousMonth: 'Previous month (PageUp)',\n  nextMonth: 'Next month (PageDown)',\n  previousYear: 'Last year (Control + left)',\n  nextYear: 'Next year (Control + right)',\n  previousDecade: 'Last decade',\n  nextDecade: 'Next decade',\n  previousCentury: 'Last century',\n  nextCentury: 'Next century'\n};\nexport default locale;","var locale = {\n  placeholder: 'Select time',\n  rangePlaceholder: ['Start time', 'End time']\n};\nexport default locale;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport CalendarLocale from \"rc-picker/es/locale/en_US\";\nimport TimePickerLocale from '../../time-picker/locale/en_US';\n// Merge into a locale object\nvar locale = {\n  lang: _extends({\n    placeholder: 'Select date',\n    yearPlaceholder: 'Select year',\n    quarterPlaceholder: 'Select quarter',\n    monthPlaceholder: 'Select month',\n    weekPlaceholder: 'Select week',\n    rangePlaceholder: ['Start date', 'End date'],\n    rangeYearPlaceholder: ['Start year', 'End year'],\n    rangeQuarterPlaceholder: ['Start quarter', 'End quarter'],\n    rangeMonthPlaceholder: ['Start month', 'End month'],\n    rangeWeekPlaceholder: ['Start week', 'End week']\n  }, CalendarLocale),\n  timePickerLocale: _extends({}, TimePickerLocale)\n};\n// All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\nexport default locale;","import enUS from '../../date-picker/locale/en_US';\nexport default enUS;","/* eslint-disable no-template-curly-in-string */\nimport Pagination from \"rc-pagination/es/locale/en_US\";\nimport Calendar from '../calendar/locale/en_US';\nimport DatePicker from '../date-picker/locale/en_US';\nimport TimePicker from '../time-picker/locale/en_US';\nvar typeTemplate = '${label} is not a valid ${type}';\nvar localeValues = {\n  locale: 'en',\n  Pagination: Pagination,\n  DatePicker: DatePicker,\n  TimePicker: TimePicker,\n  Calendar: Calendar,\n  global: {\n    placeholder: 'Please select'\n  },\n  Table: {\n    filterTitle: 'Filter menu',\n    filterConfirm: 'OK',\n    filterReset: 'Reset',\n    filterEmptyText: 'No filters',\n    filterCheckall: 'Select all items',\n    filterSearchPlaceholder: 'Search in filters',\n    emptyText: 'No data',\n    selectAll: 'Select current page',\n    selectInvert: 'Invert current page',\n    selectNone: 'Clear all data',\n    selectionAll: 'Select all data',\n    sortTitle: 'Sort',\n    expand: 'Expand row',\n    collapse: 'Collapse row',\n    triggerDesc: 'Click to sort descending',\n    triggerAsc: 'Click to sort ascending',\n    cancelSort: 'Click to cancel sorting'\n  },\n  Modal: {\n    okText: 'OK',\n    cancelText: 'Cancel',\n    justOkText: 'OK'\n  },\n  Popconfirm: {\n    okText: 'OK',\n    cancelText: 'Cancel'\n  },\n  Transfer: {\n    titles: ['', ''],\n    searchPlaceholder: 'Search here',\n    itemUnit: 'item',\n    itemsUnit: 'items',\n    remove: 'Remove',\n    selectCurrent: 'Select current page',\n    removeCurrent: 'Remove current page',\n    selectAll: 'Select all data',\n    removeAll: 'Remove all data',\n    selectInvert: 'Invert current page'\n  },\n  Upload: {\n    uploading: 'Uploading...',\n    removeFile: 'Remove file',\n    uploadError: 'Upload error',\n    previewFile: 'Preview file',\n    downloadFile: 'Download file'\n  },\n  Empty: {\n    description: 'No data'\n  },\n  Icon: {\n    icon: 'icon'\n  },\n  Text: {\n    edit: 'Edit',\n    copy: 'Copy',\n    copied: 'Copied',\n    expand: 'Expand'\n  },\n  PageHeader: {\n    back: 'Back'\n  },\n  Form: {\n    optional: '(optional)',\n    defaultValidateMessages: {\n      \"default\": 'Field validation error for ${label}',\n      required: 'Please enter ${label}',\n      \"enum\": '${label} must be one of [${enum}]',\n      whitespace: '${label} cannot be a blank character',\n      date: {\n        format: '${label} date format is invalid',\n        parse: '${label} cannot be converted to a date',\n        invalid: '${label} is an invalid date'\n      },\n      types: {\n        string: typeTemplate,\n        method: typeTemplate,\n        array: typeTemplate,\n        object: typeTemplate,\n        number: typeTemplate,\n        date: typeTemplate,\n        \"boolean\": typeTemplate,\n        integer: typeTemplate,\n        \"float\": typeTemplate,\n        regexp: typeTemplate,\n        email: typeTemplate,\n        url: typeTemplate,\n        hex: typeTemplate\n      },\n      string: {\n        len: '${label} must be ${len} characters',\n        min: '${label} must be at least ${min} characters',\n        max: '${label} must be up to ${max} characters',\n        range: '${label} must be between ${min}-${max} characters'\n      },\n      number: {\n        len: '${label} must be equal to ${len}',\n        min: '${label} must be minimum ${min}',\n        max: '${label} must be maximum ${max}',\n        range: '${label} must be between ${min}-${max}'\n      },\n      array: {\n        len: 'Must be ${len} ${label}',\n        min: 'At least ${min} ${label}',\n        max: 'At most ${max} ${label}',\n        range: 'The amount of ${label} must be between ${min}-${max}'\n      },\n      pattern: {\n        mismatch: '${label} does not match the pattern ${pattern}'\n      }\n    }\n  },\n  Image: {\n    preview: 'Preview'\n  }\n};\nexport default localeValues;","// This icon file is generated automatically.\nvar InfoCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm32 664c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272zm-32-344a48.01 48.01 0 010-96 48.01 48.01 0 010 96z\" } }] }, \"name\": \"info-circle\", \"theme\": \"filled\" };\nexport default InfoCircleFilled;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport InfoCircleFilledSvg from \"@ant-design/icons-svg/es/asn/InfoCircleFilled\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar InfoCircleFilled = function InfoCircleFilled(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n    ref: ref,\n    icon: InfoCircleFilledSvg\n  }));\n};\n\nInfoCircleFilled.displayName = 'InfoCircleFilled';\nexport default /*#__PURE__*/React.forwardRef(InfoCircleFilled);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport InfoCircleFilled from \"@ant-design/icons/es/icons/InfoCircleFilled\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport classNames from 'classnames';\nimport RCNotification from 'rc-notification';\nimport * as React from 'react';\nimport ConfigProvider, { globalConfig } from '../config-provider';\nimport createUseMessage from './hooks/useMessage';\nvar messageInstance;\nvar defaultDuration = 3;\nvar defaultTop;\nvar key = 1;\nvar localPrefixCls = '';\nvar transitionName = 'move-up';\nvar hasTransitionName = false;\nvar getContainer;\nvar maxCount;\nvar rtl = false;\nexport function getKeyThenIncreaseKey() {\n  return key++;\n}\nfunction setMessageConfig(options) {\n  if (options.top !== undefined) {\n    defaultTop = options.top;\n    messageInstance = null; // delete messageInstance for new defaultTop\n  }\n\n  if (options.duration !== undefined) {\n    defaultDuration = options.duration;\n  }\n  if (options.prefixCls !== undefined) {\n    localPrefixCls = options.prefixCls;\n  }\n  if (options.getContainer !== undefined) {\n    getContainer = options.getContainer;\n    messageInstance = null; // delete messageInstance for new getContainer\n  }\n\n  if (options.transitionName !== undefined) {\n    transitionName = options.transitionName;\n    messageInstance = null; // delete messageInstance for new transitionName\n    hasTransitionName = true;\n  }\n  if (options.maxCount !== undefined) {\n    maxCount = options.maxCount;\n    messageInstance = null;\n  }\n  if (options.rtl !== undefined) {\n    rtl = options.rtl;\n  }\n}\nfunction getRCNotificationInstance(args, callback) {\n  var customizePrefixCls = args.prefixCls,\n    getContextPopupContainer = args.getPopupContainer;\n  var _globalConfig = globalConfig(),\n    getPrefixCls = _globalConfig.getPrefixCls,\n    getRootPrefixCls = _globalConfig.getRootPrefixCls,\n    getIconPrefixCls = _globalConfig.getIconPrefixCls;\n  var prefixCls = getPrefixCls('message', customizePrefixCls || localPrefixCls);\n  var rootPrefixCls = getRootPrefixCls(args.rootPrefixCls, prefixCls);\n  var iconPrefixCls = getIconPrefixCls();\n  if (messageInstance) {\n    callback({\n      prefixCls: prefixCls,\n      rootPrefixCls: rootPrefixCls,\n      iconPrefixCls: iconPrefixCls,\n      instance: messageInstance\n    });\n    return;\n  }\n  var instanceConfig = {\n    prefixCls: prefixCls,\n    transitionName: hasTransitionName ? transitionName : \"\".concat(rootPrefixCls, \"-\").concat(transitionName),\n    style: {\n      top: defaultTop\n    },\n    getContainer: getContainer || getContextPopupContainer,\n    maxCount: maxCount\n  };\n  RCNotification.newInstance(instanceConfig, function (instance) {\n    if (messageInstance) {\n      callback({\n        prefixCls: prefixCls,\n        rootPrefixCls: rootPrefixCls,\n        iconPrefixCls: iconPrefixCls,\n        instance: messageInstance\n      });\n      return;\n    }\n    messageInstance = instance;\n    if (process.env.NODE_ENV === 'test') {\n      messageInstance.config = instanceConfig;\n    }\n    callback({\n      prefixCls: prefixCls,\n      rootPrefixCls: rootPrefixCls,\n      iconPrefixCls: iconPrefixCls,\n      instance: instance\n    });\n  });\n}\nvar typeToIcon = {\n  info: InfoCircleFilled,\n  success: CheckCircleFilled,\n  error: CloseCircleFilled,\n  warning: ExclamationCircleFilled,\n  loading: LoadingOutlined\n};\nexport var typeList = Object.keys(typeToIcon);\nfunction getRCNoticeProps(args, prefixCls, iconPrefixCls) {\n  var _classNames;\n  var duration = args.duration !== undefined ? args.duration : defaultDuration;\n  var IconComponent = typeToIcon[args.type];\n  var messageClass = classNames(\"\".concat(prefixCls, \"-custom-content\"), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(args.type), args.type), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), rtl === true), _classNames));\n  return {\n    key: args.key,\n    duration: duration,\n    style: args.style || {},\n    className: args.className,\n    content: /*#__PURE__*/React.createElement(ConfigProvider, {\n      iconPrefixCls: iconPrefixCls\n    }, /*#__PURE__*/React.createElement(\"div\", {\n      className: messageClass\n    }, args.icon || IconComponent && /*#__PURE__*/React.createElement(IconComponent, null), /*#__PURE__*/React.createElement(\"span\", null, args.content))),\n    onClose: args.onClose,\n    onClick: args.onClick\n  };\n}\nfunction notice(args) {\n  var target = args.key || getKeyThenIncreaseKey();\n  var closePromise = new Promise(function (resolve) {\n    var callback = function callback() {\n      if (typeof args.onClose === 'function') {\n        args.onClose();\n      }\n      return resolve(true);\n    };\n    getRCNotificationInstance(args, function (_ref) {\n      var prefixCls = _ref.prefixCls,\n        iconPrefixCls = _ref.iconPrefixCls,\n        instance = _ref.instance;\n      instance.notice(getRCNoticeProps(_extends(_extends({}, args), {\n        key: target,\n        onClose: callback\n      }), prefixCls, iconPrefixCls));\n    });\n  });\n  var result = function result() {\n    if (messageInstance) {\n      messageInstance.removeNotice(target);\n    }\n  };\n  result.then = function (filled, rejected) {\n    return closePromise.then(filled, rejected);\n  };\n  result.promise = closePromise;\n  return result;\n}\nfunction isArgsProps(content) {\n  return Object.prototype.toString.call(content) === '[object Object]' && !!content.content;\n}\nvar api = {\n  open: notice,\n  config: setMessageConfig,\n  destroy: function destroy(messageKey) {\n    if (messageInstance) {\n      if (messageKey) {\n        var _messageInstance = messageInstance,\n          removeNotice = _messageInstance.removeNotice;\n        removeNotice(messageKey);\n      } else {\n        var _messageInstance2 = messageInstance,\n          destroy = _messageInstance2.destroy;\n        destroy();\n        messageInstance = null;\n      }\n    }\n  }\n};\nexport function attachTypeApi(originalApi, type) {\n  originalApi[type] = function (content, duration, onClose) {\n    if (isArgsProps(content)) {\n      return originalApi.open(_extends(_extends({}, content), {\n        type: type\n      }));\n    }\n    if (typeof duration === 'function') {\n      onClose = duration;\n      duration = undefined;\n    }\n    return originalApi.open({\n      content: content,\n      duration: duration,\n      type: type,\n      onClose: onClose\n    });\n  };\n}\ntypeList.forEach(function (type) {\n  return attachTypeApi(api, type);\n});\napi.warn = api.warning;\napi.useMessage = createUseMessage(getRCNotificationInstance, getRCNoticeProps);\n/** @internal test Only function. Not work on production */\nexport var getInstance = function getInstance() {\n  return process.env.NODE_ENV === 'test' ? messageInstance : null;\n};\nexport default api;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useRCNotification from \"rc-notification/es/useNotification\";\nimport * as React from 'react';\nimport { attachTypeApi, getKeyThenIncreaseKey, typeList } from '..';\nimport { ConfigConsumer } from '../../config-provider';\nexport default function createUseMessage(getRcNotificationInstance, getRCNoticeProps) {\n  var useMessage = function useMessage() {\n    // We can only get content by render\n    var getPrefixCls;\n    var getPopupContainer;\n    // We create a proxy to handle delay created instance\n    var innerInstance = null;\n    var proxy = {\n      add: function add(noticeProps, holderCallback) {\n        innerInstance === null || innerInstance === void 0 ? void 0 : innerInstance.component.add(noticeProps, holderCallback);\n      }\n    };\n    var _useRCNotification = useRCNotification(proxy),\n      _useRCNotification2 = _slicedToArray(_useRCNotification, 2),\n      hookNotify = _useRCNotification2[0],\n      holder = _useRCNotification2[1];\n    function notify(args) {\n      var customizePrefixCls = args.prefixCls;\n      var mergedPrefixCls = getPrefixCls('message', customizePrefixCls);\n      var rootPrefixCls = getPrefixCls();\n      var target = args.key || getKeyThenIncreaseKey();\n      var closePromise = new Promise(function (resolve) {\n        var callback = function callback() {\n          if (typeof args.onClose === 'function') {\n            args.onClose();\n          }\n          return resolve(true);\n        };\n        getRcNotificationInstance(_extends(_extends({}, args), {\n          prefixCls: mergedPrefixCls,\n          rootPrefixCls: rootPrefixCls,\n          getPopupContainer: getPopupContainer\n        }), function (_ref) {\n          var prefixCls = _ref.prefixCls,\n            instance = _ref.instance;\n          innerInstance = instance;\n          hookNotify(getRCNoticeProps(_extends(_extends({}, args), {\n            key: target,\n            onClose: callback\n          }), prefixCls));\n        });\n      });\n      var result = function result() {\n        if (innerInstance) {\n          innerInstance.removeNotice(target);\n        }\n      };\n      result.then = function (filled, rejected) {\n        return closePromise.then(filled, rejected);\n      };\n      result.promise = closePromise;\n      return result;\n    }\n    // Fill functions\n    var hookApiRef = React.useRef({});\n    hookApiRef.current.open = notify;\n    typeList.forEach(function (type) {\n      return attachTypeApi(hookApiRef.current, type);\n    });\n    return [hookApiRef.current, /*#__PURE__*/React.createElement(ConfigConsumer, {\n      key: \"holder\"\n    }, function (context) {\n      getPrefixCls = context.getPrefixCls;\n      getPopupContainer = context.getPopupContainer;\n      return holder;\n    })];\n  };\n  return useMessage;\n}","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","'use strict';\n\n/******************************************************************************\n * Created 2008-08-19.\n *\n * Dijkstra path-finding functions. Adapted from the Dijkstar Python project.\n *\n * Copyright (C) 2008\n *   Wyatt Baldwin <self@wyattbaldwin.com>\n *   All rights reserved\n *\n * Licensed under the MIT license.\n *\n *   http://www.opensource.org/licenses/mit-license.php\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *****************************************************************************/\nvar dijkstra = {\n  single_source_shortest_paths: function(graph, s, d) {\n    // Predecessor map for each node that has been encountered.\n    // node ID => predecessor node ID\n    var predecessors = {};\n\n    // Costs of shortest paths from s to all nodes encountered.\n    // node ID => cost\n    var costs = {};\n    costs[s] = 0;\n\n    // Costs of shortest paths from s to all nodes encountered; differs from\n    // `costs` in that it provides easy access to the node that currently has\n    // the known shortest path from s.\n    // XXX: Do we actually need both `costs` and `open`?\n    var open = dijkstra.PriorityQueue.make();\n    open.push(s, 0);\n\n    var closest,\n        u, v,\n        cost_of_s_to_u,\n        adjacent_nodes,\n        cost_of_e,\n        cost_of_s_to_u_plus_cost_of_e,\n        cost_of_s_to_v,\n        first_visit;\n    while (!open.empty()) {\n      // In the nodes remaining in graph that have a known cost from s,\n      // find the node, u, that currently has the shortest path from s.\n      closest = open.pop();\n      u = closest.value;\n      cost_of_s_to_u = closest.cost;\n\n      // Get nodes adjacent to u...\n      adjacent_nodes = graph[u] || {};\n\n      // ...and explore the edges that connect u to those nodes, updating\n      // the cost of the shortest paths to any or all of those nodes as\n      // necessary. v is the node across the current edge from u.\n      for (v in adjacent_nodes) {\n        if (adjacent_nodes.hasOwnProperty(v)) {\n          // Get the cost of the edge running from u to v.\n          cost_of_e = adjacent_nodes[v];\n\n          // Cost of s to u plus the cost of u to v across e--this is *a*\n          // cost from s to v that may or may not be less than the current\n          // known cost to v.\n          cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e;\n\n          // If we haven't visited v yet OR if the current known cost from s to\n          // v is greater than the new cost we just found (cost of s to u plus\n          // cost of u to v across e), update v's cost in the cost list and\n          // update v's predecessor in the predecessor list (it's now u).\n          cost_of_s_to_v = costs[v];\n          first_visit = (typeof costs[v] === 'undefined');\n          if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) {\n            costs[v] = cost_of_s_to_u_plus_cost_of_e;\n            open.push(v, cost_of_s_to_u_plus_cost_of_e);\n            predecessors[v] = u;\n          }\n        }\n      }\n    }\n\n    if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') {\n      var msg = ['Could not find a path from ', s, ' to ', d, '.'].join('');\n      throw new Error(msg);\n    }\n\n    return predecessors;\n  },\n\n  extract_shortest_path_from_predecessor_list: function(predecessors, d) {\n    var nodes = [];\n    var u = d;\n    var predecessor;\n    while (u) {\n      nodes.push(u);\n      predecessor = predecessors[u];\n      u = predecessors[u];\n    }\n    nodes.reverse();\n    return nodes;\n  },\n\n  find_path: function(graph, s, d) {\n    var predecessors = dijkstra.single_source_shortest_paths(graph, s, d);\n    return dijkstra.extract_shortest_path_from_predecessor_list(\n      predecessors, d);\n  },\n\n  /**\n   * A very naive priority queue implementation.\n   */\n  PriorityQueue: {\n    make: function (opts) {\n      var T = dijkstra.PriorityQueue,\n          t = {},\n          key;\n      opts = opts || {};\n      for (key in T) {\n        if (T.hasOwnProperty(key)) {\n          t[key] = T[key];\n        }\n      }\n      t.queue = [];\n      t.sorter = opts.sorter || T.default_sorter;\n      return t;\n    },\n\n    default_sorter: function (a, b) {\n      return a.cost - b.cost;\n    },\n\n    /**\n     * Add a new item to the queue and ensure the highest priority element\n     * is at the front of the queue.\n     */\n    push: function (value, cost) {\n      var item = {value: value, cost: cost};\n      this.queue.push(item);\n      this.queue.sort(this.sorter);\n    },\n\n    /**\n     * Return the highest priority element in the queue.\n     */\n    pop: function () {\n      return this.queue.shift();\n    },\n\n    empty: function () {\n      return this.queue.length === 0;\n    }\n  }\n};\n\n\n// node.js module exports\nif (typeof module !== 'undefined') {\n  module.exports = dijkstra;\n}\n","'use strict'\n\nmodule.exports = function encodeUtf8 (input) {\n  var result = []\n  var size = input.length\n\n  for (var index = 0; index < size; index++) {\n    var point = input.charCodeAt(index)\n\n    if (point >= 0xD800 && point <= 0xDBFF && size > index + 1) {\n      var second = input.charCodeAt(index + 1)\n\n      if (second >= 0xDC00 && second <= 0xDFFF) {\n        // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n        point = (point - 0xD800) * 0x400 + second - 0xDC00 + 0x10000\n        index += 1\n      }\n    }\n\n    // US-ASCII\n    if (point < 0x80) {\n      result.push(point)\n      continue\n    }\n\n    // 2-byte UTF-8\n    if (point < 0x800) {\n      result.push((point >> 6) | 192)\n      result.push((point & 63) | 128)\n      continue\n    }\n\n    // 3-byte UTF-8\n    if (point < 0xD800 || (point >= 0xE000 && point < 0x10000)) {\n      result.push((point >> 12) | 224)\n      result.push(((point >> 6) & 63) | 128)\n      result.push((point & 63) | 128)\n      continue\n    }\n\n    // 4-byte UTF-8\n    if (point >= 0x10000 && point <= 0x10FFFF) {\n      result.push((point >> 18) | 240)\n      result.push(((point >> 12) & 63) | 128)\n      result.push(((point >> 6) & 63) | 128)\n      result.push((point & 63) | 128)\n      continue\n    }\n\n    // Invalid character\n    result.push(0xEF, 0xBF, 0xBD)\n  }\n\n  return new Uint8Array(result).buffer\n}\n","function isAbsolute(pathname) {\n  return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n  for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n    list[i] = list[k];\n  }\n\n  list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n  if (from === undefined) from = '';\n\n  var toParts = (to && to.split('/')) || [];\n  var fromParts = (from && from.split('/')) || [];\n\n  var isToAbs = to && isAbsolute(to);\n  var isFromAbs = from && isAbsolute(from);\n  var mustEndAbs = isToAbs || isFromAbs;\n\n  if (to && isAbsolute(to)) {\n    // to is absolute\n    fromParts = toParts;\n  } else if (toParts.length) {\n    // to is relative, drop the filename\n    fromParts.pop();\n    fromParts = fromParts.concat(toParts);\n  }\n\n  if (!fromParts.length) return '/';\n\n  var hasTrailingSlash;\n  if (fromParts.length) {\n    var last = fromParts[fromParts.length - 1];\n    hasTrailingSlash = last === '.' || last === '..' || last === '';\n  } else {\n    hasTrailingSlash = false;\n  }\n\n  var up = 0;\n  for (var i = fromParts.length; i >= 0; i--) {\n    var part = fromParts[i];\n\n    if (part === '.') {\n      spliceOne(fromParts, i);\n    } else if (part === '..') {\n      spliceOne(fromParts, i);\n      up++;\n    } else if (up) {\n      spliceOne(fromParts, i);\n      up--;\n    }\n  }\n\n  if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n  if (\n    mustEndAbs &&\n    fromParts[0] !== '' &&\n    (!fromParts[0] || !isAbsolute(fromParts[0]))\n  )\n    fromParts.unshift('');\n\n  var result = fromParts.join('/');\n\n  if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n  return result;\n}\n\nexport default resolvePathname;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n  return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n  return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n  return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n  return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n  return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n  var pathname = path || '/';\n  var search = '';\n  var hash = '';\n  var hashIndex = pathname.indexOf('#');\n\n  if (hashIndex !== -1) {\n    hash = pathname.substr(hashIndex);\n    pathname = pathname.substr(0, hashIndex);\n  }\n\n  var searchIndex = pathname.indexOf('?');\n\n  if (searchIndex !== -1) {\n    search = pathname.substr(searchIndex);\n    pathname = pathname.substr(0, searchIndex);\n  }\n\n  return {\n    pathname: pathname,\n    search: search === '?' ? '' : search,\n    hash: hash === '#' ? '' : hash\n  };\n}\nfunction createPath(location) {\n  var pathname = location.pathname,\n      search = location.search,\n      hash = location.hash;\n  var path = pathname || '/';\n  if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n  if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n  return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n  var location;\n\n  if (typeof path === 'string') {\n    // Two-arg form: push(path, state)\n    location = parsePath(path);\n    location.state = state;\n  } else {\n    // One-arg form: push(location)\n    location = _extends({}, path);\n    if (location.pathname === undefined) location.pathname = '';\n\n    if (location.search) {\n      if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n    } else {\n      location.search = '';\n    }\n\n    if (location.hash) {\n      if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n    } else {\n      location.hash = '';\n    }\n\n    if (state !== undefined && location.state === undefined) location.state = state;\n  }\n\n  try {\n    location.pathname = decodeURI(location.pathname);\n  } catch (e) {\n    if (e instanceof URIError) {\n      throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n    } else {\n      throw e;\n    }\n  }\n\n  if (key) location.key = key;\n\n  if (currentLocation) {\n    // Resolve incomplete/relative pathname relative to current location.\n    if (!location.pathname) {\n      location.pathname = currentLocation.pathname;\n    } else if (location.pathname.charAt(0) !== '/') {\n      location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n    }\n  } else {\n    // When there is no prior location and pathname is empty, set it to /\n    if (!location.pathname) {\n      location.pathname = '/';\n    }\n  }\n\n  return location;\n}\nfunction locationsAreEqual(a, b) {\n  return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n  var prompt = null;\n\n  function setPrompt(nextPrompt) {\n    process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n    prompt = nextPrompt;\n    return function () {\n      if (prompt === nextPrompt) prompt = null;\n    };\n  }\n\n  function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n    // TODO: If another transition starts while we're still confirming\n    // the previous one, we may end up in a weird state. Figure out the\n    // best way to handle this.\n    if (prompt != null) {\n      var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n      if (typeof result === 'string') {\n        if (typeof getUserConfirmation === 'function') {\n          getUserConfirmation(result, callback);\n        } else {\n          process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n          callback(true);\n        }\n      } else {\n        // Return false from a transition hook to cancel the transition.\n        callback(result !== false);\n      }\n    } else {\n      callback(true);\n    }\n  }\n\n  var listeners = [];\n\n  function appendListener(fn) {\n    var isActive = true;\n\n    function listener() {\n      if (isActive) fn.apply(void 0, arguments);\n    }\n\n    listeners.push(listener);\n    return function () {\n      isActive = false;\n      listeners = listeners.filter(function (item) {\n        return item !== listener;\n      });\n    };\n  }\n\n  function notifyListeners() {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    listeners.forEach(function (listener) {\n      return listener.apply(void 0, args);\n    });\n  }\n\n  return {\n    setPrompt: setPrompt,\n    confirmTransitionTo: confirmTransitionTo,\n    appendListener: appendListener,\n    notifyListeners: notifyListeners\n  };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n  callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n  var ua = window.navigator.userAgent;\n  if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n  return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n  return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n  return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n  return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n  try {\n    return window.history.state || {};\n  } catch (e) {\n    // IE 11 sometimes throws when accessing window.history.state\n    // See https://github.com/ReactTraining/history/pull/289\n    return {};\n  }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n  if (props === void 0) {\n    props = {};\n  }\n\n  !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n  var globalHistory = window.history;\n  var canUseHistory = supportsHistory();\n  var needsHashChangeListener = !supportsPopStateOnHashChange();\n  var _props = props,\n      _props$forceRefresh = _props.forceRefresh,\n      forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n      _props$getUserConfirm = _props.getUserConfirmation,\n      getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n      _props$keyLength = _props.keyLength,\n      keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n  var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n  function getDOMLocation(historyState) {\n    var _ref = historyState || {},\n        key = _ref.key,\n        state = _ref.state;\n\n    var _window$location = window.location,\n        pathname = _window$location.pathname,\n        search = _window$location.search,\n        hash = _window$location.hash;\n    var path = pathname + search + hash;\n    process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n    if (basename) path = stripBasename(path, basename);\n    return createLocation(path, state, key);\n  }\n\n  function createKey() {\n    return Math.random().toString(36).substr(2, keyLength);\n  }\n\n  var transitionManager = createTransitionManager();\n\n  function setState(nextState) {\n    _extends(history, nextState);\n\n    history.length = globalHistory.length;\n    transitionManager.notifyListeners(history.location, history.action);\n  }\n\n  function handlePopState(event) {\n    // Ignore extraneous popstate events in WebKit.\n    if (isExtraneousPopstateEvent(event)) return;\n    handlePop(getDOMLocation(event.state));\n  }\n\n  function handleHashChange() {\n    handlePop(getDOMLocation(getHistoryState()));\n  }\n\n  var forceNextPop = false;\n\n  function handlePop(location) {\n    if (forceNextPop) {\n      forceNextPop = false;\n      setState();\n    } else {\n      var action = 'POP';\n      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n        if (ok) {\n          setState({\n            action: action,\n            location: location\n          });\n        } else {\n          revertPop(location);\n        }\n      });\n    }\n  }\n\n  function revertPop(fromLocation) {\n    var toLocation = history.location; // TODO: We could probably make this more reliable by\n    // keeping a list of keys we've seen in sessionStorage.\n    // Instead, we just default to 0 for keys we don't know.\n\n    var toIndex = allKeys.indexOf(toLocation.key);\n    if (toIndex === -1) toIndex = 0;\n    var fromIndex = allKeys.indexOf(fromLocation.key);\n    if (fromIndex === -1) fromIndex = 0;\n    var delta = toIndex - fromIndex;\n\n    if (delta) {\n      forceNextPop = true;\n      go(delta);\n    }\n  }\n\n  var initialLocation = getDOMLocation(getHistoryState());\n  var allKeys = [initialLocation.key]; // Public interface\n\n  function createHref(location) {\n    return basename + createPath(location);\n  }\n\n  function push(path, state) {\n    process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n    var action = 'PUSH';\n    var location = createLocation(path, state, createKey(), history.location);\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n      var href = createHref(location);\n      var key = location.key,\n          state = location.state;\n\n      if (canUseHistory) {\n        globalHistory.pushState({\n          key: key,\n          state: state\n        }, null, href);\n\n        if (forceRefresh) {\n          window.location.href = href;\n        } else {\n          var prevIndex = allKeys.indexOf(history.location.key);\n          var nextKeys = allKeys.slice(0, prevIndex + 1);\n          nextKeys.push(location.key);\n          allKeys = nextKeys;\n          setState({\n            action: action,\n            location: location\n          });\n        }\n      } else {\n        process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n        window.location.href = href;\n      }\n    });\n  }\n\n  function replace(path, state) {\n    process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n    var action = 'REPLACE';\n    var location = createLocation(path, state, createKey(), history.location);\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n      var href = createHref(location);\n      var key = location.key,\n          state = location.state;\n\n      if (canUseHistory) {\n        globalHistory.replaceState({\n          key: key,\n          state: state\n        }, null, href);\n\n        if (forceRefresh) {\n          window.location.replace(href);\n        } else {\n          var prevIndex = allKeys.indexOf(history.location.key);\n          if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n          setState({\n            action: action,\n            location: location\n          });\n        }\n      } else {\n        process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n        window.location.replace(href);\n      }\n    });\n  }\n\n  function go(n) {\n    globalHistory.go(n);\n  }\n\n  function goBack() {\n    go(-1);\n  }\n\n  function goForward() {\n    go(1);\n  }\n\n  var listenerCount = 0;\n\n  function checkDOMListeners(delta) {\n    listenerCount += delta;\n\n    if (listenerCount === 1 && delta === 1) {\n      window.addEventListener(PopStateEvent, handlePopState);\n      if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n    } else if (listenerCount === 0) {\n      window.removeEventListener(PopStateEvent, handlePopState);\n      if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n    }\n  }\n\n  var isBlocked = false;\n\n  function block(prompt) {\n    if (prompt === void 0) {\n      prompt = false;\n    }\n\n    var unblock = transitionManager.setPrompt(prompt);\n\n    if (!isBlocked) {\n      checkDOMListeners(1);\n      isBlocked = true;\n    }\n\n    return function () {\n      if (isBlocked) {\n        isBlocked = false;\n        checkDOMListeners(-1);\n      }\n\n      return unblock();\n    };\n  }\n\n  function listen(listener) {\n    var unlisten = transitionManager.appendListener(listener);\n    checkDOMListeners(1);\n    return function () {\n      checkDOMListeners(-1);\n      unlisten();\n    };\n  }\n\n  var history = {\n    length: globalHistory.length,\n    action: 'POP',\n    location: initialLocation,\n    createHref: createHref,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    block: block,\n    listen: listen\n  };\n  return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n  hashbang: {\n    encodePath: function encodePath(path) {\n      return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n    },\n    decodePath: function decodePath(path) {\n      return path.charAt(0) === '!' ? path.substr(1) : path;\n    }\n  },\n  noslash: {\n    encodePath: stripLeadingSlash,\n    decodePath: addLeadingSlash\n  },\n  slash: {\n    encodePath: addLeadingSlash,\n    decodePath: addLeadingSlash\n  }\n};\n\nfunction stripHash(url) {\n  var hashIndex = url.indexOf('#');\n  return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n  // We can't use window.location.hash here because it's not\n  // consistent across browsers - Firefox will pre-decode it!\n  var href = window.location.href;\n  var hashIndex = href.indexOf('#');\n  return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n  window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n  window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n  if (props === void 0) {\n    props = {};\n  }\n\n  !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n  var globalHistory = window.history;\n  var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n  var _props = props,\n      _props$getUserConfirm = _props.getUserConfirmation,\n      getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n      _props$hashType = _props.hashType,\n      hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n  var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n  var _HashPathCoders$hashT = HashPathCoders[hashType],\n      encodePath = _HashPathCoders$hashT.encodePath,\n      decodePath = _HashPathCoders$hashT.decodePath;\n\n  function getDOMLocation() {\n    var path = decodePath(getHashPath());\n    process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n    if (basename) path = stripBasename(path, basename);\n    return createLocation(path);\n  }\n\n  var transitionManager = createTransitionManager();\n\n  function setState(nextState) {\n    _extends(history, nextState);\n\n    history.length = globalHistory.length;\n    transitionManager.notifyListeners(history.location, history.action);\n  }\n\n  var forceNextPop = false;\n  var ignorePath = null;\n\n  function locationsAreEqual$$1(a, b) {\n    return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n  }\n\n  function handleHashChange() {\n    var path = getHashPath();\n    var encodedPath = encodePath(path);\n\n    if (path !== encodedPath) {\n      // Ensure we always have a properly-encoded hash.\n      replaceHashPath(encodedPath);\n    } else {\n      var location = getDOMLocation();\n      var prevLocation = history.location;\n      if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n      if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n      ignorePath = null;\n      handlePop(location);\n    }\n  }\n\n  function handlePop(location) {\n    if (forceNextPop) {\n      forceNextPop = false;\n      setState();\n    } else {\n      var action = 'POP';\n      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n        if (ok) {\n          setState({\n            action: action,\n            location: location\n          });\n        } else {\n          revertPop(location);\n        }\n      });\n    }\n  }\n\n  function revertPop(fromLocation) {\n    var toLocation = history.location; // TODO: We could probably make this more reliable by\n    // keeping a list of paths we've seen in sessionStorage.\n    // Instead, we just default to 0 for paths we don't know.\n\n    var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n    if (toIndex === -1) toIndex = 0;\n    var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n    if (fromIndex === -1) fromIndex = 0;\n    var delta = toIndex - fromIndex;\n\n    if (delta) {\n      forceNextPop = true;\n      go(delta);\n    }\n  } // Ensure the hash is encoded properly before doing anything else.\n\n\n  var path = getHashPath();\n  var encodedPath = encodePath(path);\n  if (path !== encodedPath) replaceHashPath(encodedPath);\n  var initialLocation = getDOMLocation();\n  var allPaths = [createPath(initialLocation)]; // Public interface\n\n  function createHref(location) {\n    var baseTag = document.querySelector('base');\n    var href = '';\n\n    if (baseTag && baseTag.getAttribute('href')) {\n      href = stripHash(window.location.href);\n    }\n\n    return href + '#' + encodePath(basename + createPath(location));\n  }\n\n  function push(path, state) {\n    process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n    var action = 'PUSH';\n    var location = createLocation(path, undefined, undefined, history.location);\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n      var path = createPath(location);\n      var encodedPath = encodePath(basename + path);\n      var hashChanged = getHashPath() !== encodedPath;\n\n      if (hashChanged) {\n        // We cannot tell if a hashchange was caused by a PUSH, so we'd\n        // rather setState here and ignore the hashchange. The caveat here\n        // is that other hash histories in the page will consider it a POP.\n        ignorePath = path;\n        pushHashPath(encodedPath);\n        var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n        var nextPaths = allPaths.slice(0, prevIndex + 1);\n        nextPaths.push(path);\n        allPaths = nextPaths;\n        setState({\n          action: action,\n          location: location\n        });\n      } else {\n        process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n        setState();\n      }\n    });\n  }\n\n  function replace(path, state) {\n    process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n    var action = 'REPLACE';\n    var location = createLocation(path, undefined, undefined, history.location);\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n      var path = createPath(location);\n      var encodedPath = encodePath(basename + path);\n      var hashChanged = getHashPath() !== encodedPath;\n\n      if (hashChanged) {\n        // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n        // rather setState here and ignore the hashchange. The caveat here\n        // is that other hash histories in the page will consider it a POP.\n        ignorePath = path;\n        replaceHashPath(encodedPath);\n      }\n\n      var prevIndex = allPaths.indexOf(createPath(history.location));\n      if (prevIndex !== -1) allPaths[prevIndex] = path;\n      setState({\n        action: action,\n        location: location\n      });\n    });\n  }\n\n  function go(n) {\n    process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n    globalHistory.go(n);\n  }\n\n  function goBack() {\n    go(-1);\n  }\n\n  function goForward() {\n    go(1);\n  }\n\n  var listenerCount = 0;\n\n  function checkDOMListeners(delta) {\n    listenerCount += delta;\n\n    if (listenerCount === 1 && delta === 1) {\n      window.addEventListener(HashChangeEvent$1, handleHashChange);\n    } else if (listenerCount === 0) {\n      window.removeEventListener(HashChangeEvent$1, handleHashChange);\n    }\n  }\n\n  var isBlocked = false;\n\n  function block(prompt) {\n    if (prompt === void 0) {\n      prompt = false;\n    }\n\n    var unblock = transitionManager.setPrompt(prompt);\n\n    if (!isBlocked) {\n      checkDOMListeners(1);\n      isBlocked = true;\n    }\n\n    return function () {\n      if (isBlocked) {\n        isBlocked = false;\n        checkDOMListeners(-1);\n      }\n\n      return unblock();\n    };\n  }\n\n  function listen(listener) {\n    var unlisten = transitionManager.appendListener(listener);\n    checkDOMListeners(1);\n    return function () {\n      checkDOMListeners(-1);\n      unlisten();\n    };\n  }\n\n  var history = {\n    length: globalHistory.length,\n    action: 'POP',\n    location: initialLocation,\n    createHref: createHref,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    block: block,\n    listen: listen\n  };\n  return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n  return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n  if (props === void 0) {\n    props = {};\n  }\n\n  var _props = props,\n      getUserConfirmation = _props.getUserConfirmation,\n      _props$initialEntries = _props.initialEntries,\n      initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n      _props$initialIndex = _props.initialIndex,\n      initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n      _props$keyLength = _props.keyLength,\n      keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n  var transitionManager = createTransitionManager();\n\n  function setState(nextState) {\n    _extends(history, nextState);\n\n    history.length = history.entries.length;\n    transitionManager.notifyListeners(history.location, history.action);\n  }\n\n  function createKey() {\n    return Math.random().toString(36).substr(2, keyLength);\n  }\n\n  var index = clamp(initialIndex, 0, initialEntries.length - 1);\n  var entries = initialEntries.map(function (entry) {\n    return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n  }); // Public interface\n\n  var createHref = createPath;\n\n  function push(path, state) {\n    process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n    var action = 'PUSH';\n    var location = createLocation(path, state, createKey(), history.location);\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n      var prevIndex = history.index;\n      var nextIndex = prevIndex + 1;\n      var nextEntries = history.entries.slice(0);\n\n      if (nextEntries.length > nextIndex) {\n        nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n      } else {\n        nextEntries.push(location);\n      }\n\n      setState({\n        action: action,\n        location: location,\n        index: nextIndex,\n        entries: nextEntries\n      });\n    });\n  }\n\n  function replace(path, state) {\n    process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n    var action = 'REPLACE';\n    var location = createLocation(path, state, createKey(), history.location);\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n      history.entries[history.index] = location;\n      setState({\n        action: action,\n        location: location\n      });\n    });\n  }\n\n  function go(n) {\n    var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n    var action = 'POP';\n    var location = history.entries[nextIndex];\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (ok) {\n        setState({\n          action: action,\n          location: location,\n          index: nextIndex\n        });\n      } else {\n        // Mimic the behavior of DOM histories by\n        // causing a render after a cancelled POP.\n        setState();\n      }\n    });\n  }\n\n  function goBack() {\n    go(-1);\n  }\n\n  function goForward() {\n    go(1);\n  }\n\n  function canGo(n) {\n    var nextIndex = history.index + n;\n    return nextIndex >= 0 && nextIndex < history.entries.length;\n  }\n\n  function block(prompt) {\n    if (prompt === void 0) {\n      prompt = false;\n    }\n\n    return transitionManager.setPrompt(prompt);\n  }\n\n  function listen(listener) {\n    return transitionManager.appendListener(listener);\n  }\n\n  var history = {\n    length: entries.length,\n    action: 'POP',\n    location: entries[index],\n    index: index,\n    entries: entries,\n    createHref: createHref,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    canGo: canGo,\n    block: block,\n    listen: listen\n  };\n  return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n  childContextTypes: true,\n  contextType: true,\n  contextTypes: true,\n  defaultProps: true,\n  displayName: true,\n  getDefaultProps: true,\n  getDerivedStateFromError: true,\n  getDerivedStateFromProps: true,\n  mixins: true,\n  propTypes: true,\n  type: true\n};\nvar KNOWN_STATICS = {\n  name: true,\n  length: true,\n  prototype: true,\n  caller: true,\n  callee: true,\n  arguments: true,\n  arity: true\n};\nvar FORWARD_REF_STATICS = {\n  '$$typeof': true,\n  render: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true\n};\nvar MEMO_STATICS = {\n  '$$typeof': true,\n  compare: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true,\n  type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n  // React v16.11 and below\n  if (reactIs.isMemo(component)) {\n    return MEMO_STATICS;\n  } // React v16.12 and above\n\n\n  return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n  if (typeof sourceComponent !== 'string') {\n    // don't hoist over string (html) components\n    if (objectPrototype) {\n      var inheritedComponent = getPrototypeOf(sourceComponent);\n\n      if (inheritedComponent && inheritedComponent !== objectPrototype) {\n        hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n      }\n    }\n\n    var keys = getOwnPropertyNames(sourceComponent);\n\n    if (getOwnPropertySymbols) {\n      keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n    }\n\n    var targetStatics = getStatics(targetComponent);\n    var sourceStatics = getStatics(sourceComponent);\n\n    for (var i = 0; i < keys.length; ++i) {\n      var key = keys[i];\n\n      if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n        var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n        try {\n          // Avoid failures from read-only properties\n          defineProperty(targetComponent, key, descriptor);\n        } catch (e) {}\n      }\n    }\n  }\n\n  return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import lottie from \"lottie-web\";\nimport React, { useEffect, useRef, useState, } from \"react\";\nconst useLottie = (props, style) => {\n    const { animationData, loop, autoplay, initialSegment, onComplete, onLoopComplete, onEnterFrame, onSegmentStart, onConfigReady, onDataReady, onDataFailed, onLoadedImages, onDOMLoaded, onDestroy, \n    // Specified here to take them out from the 'rest'\n    lottieRef, renderer, name, assetsPath, rendererSettings, \n    // TODO: find a better way to extract the html props to avoid specifying\n    //  all the props that we want to exclude (as you can see above)\n    ...rest } = props;\n    const [animationLoaded, setAnimationLoaded] = useState(false);\n    const animationInstanceRef = useRef();\n    const animationContainer = useRef(null);\n    /*\n          ======================================\n              INTERACTION METHODS\n          ======================================\n       */\n    /**\n     * Play\n     */\n    const play = () => {\n        var _a;\n        (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.play();\n    };\n    /**\n     * Stop\n     */\n    const stop = () => {\n        var _a;\n        (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.stop();\n    };\n    /**\n     * Pause\n     */\n    const pause = () => {\n        var _a;\n        (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.pause();\n    };\n    /**\n     * Set animation speed\n     * @param speed\n     */\n    const setSpeed = (speed) => {\n        var _a;\n        (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setSpeed(speed);\n    };\n    /**\n     * Got to frame and play\n     * @param value\n     * @param isFrame\n     */\n    const goToAndPlay = (value, isFrame) => {\n        var _a;\n        (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.goToAndPlay(value, isFrame);\n    };\n    /**\n     * Got to frame and stop\n     * @param value\n     * @param isFrame\n     */\n    const goToAndStop = (value, isFrame) => {\n        var _a;\n        (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.goToAndStop(value, isFrame);\n    };\n    /**\n     * Set animation direction\n     * @param direction\n     */\n    const setDirection = (direction) => {\n        var _a;\n        (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setDirection(direction);\n    };\n    /**\n     * Play animation segments\n     * @param segments\n     * @param forceFlag\n     */\n    const playSegments = (segments, forceFlag) => {\n        var _a;\n        (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.playSegments(segments, forceFlag);\n    };\n    /**\n     * Set sub frames\n     * @param useSubFrames\n     */\n    const setSubframe = (useSubFrames) => {\n        var _a;\n        (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setSubframe(useSubFrames);\n    };\n    /**\n     * Get animation duration\n     * @param inFrames\n     */\n    const getDuration = (inFrames) => { var _a; return (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.getDuration(inFrames); };\n    /**\n     * Destroy animation\n     */\n    const destroy = () => {\n        var _a;\n        (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n        // Removing the reference to the animation so separate cleanups are skipped.\n        // Without it the internal `lottie-react` instance throws exceptions as it already cleared itself on destroy.\n        animationInstanceRef.current = undefined;\n    };\n    /*\n          ======================================\n              LOTTIE\n          ======================================\n       */\n    /**\n     * Load a new animation, and if it's the case, destroy the previous one\n     * @param {Object} forcedConfigs\n     */\n    const loadAnimation = (forcedConfigs = {}) => {\n        var _a;\n        // Return if the container ref is null\n        if (!animationContainer.current) {\n            return;\n        }\n        // Destroy any previous instance\n        (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n        // Build the animation configuration\n        const config = {\n            ...props,\n            ...forcedConfigs,\n            container: animationContainer.current,\n        };\n        // Save the animation instance\n        animationInstanceRef.current = lottie.loadAnimation(config);\n        setAnimationLoaded(!!animationInstanceRef.current);\n        // Return a function that will clean up\n        return () => {\n            var _a;\n            (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n            animationInstanceRef.current = undefined;\n        };\n    };\n    /**\n     * (Re)Initialize when animation data changed\n     */\n    useEffect(() => {\n        const onUnmount = loadAnimation();\n        // Clean up on unmount\n        return () => onUnmount === null || onUnmount === void 0 ? void 0 : onUnmount();\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [animationData, loop]);\n    // Update the autoplay state\n    useEffect(() => {\n        if (!animationInstanceRef.current) {\n            return;\n        }\n        animationInstanceRef.current.autoplay = !!autoplay;\n    }, [autoplay]);\n    // Update the initial segment state\n    useEffect(() => {\n        if (!animationInstanceRef.current) {\n            return;\n        }\n        // When null should reset to default animation length\n        if (!initialSegment) {\n            animationInstanceRef.current.resetSegments(true);\n            return;\n        }\n        // If it's not a valid segment, do nothing\n        if (!Array.isArray(initialSegment) || !initialSegment.length) {\n            return;\n        }\n        // If the current position it's not in the new segment\n        // set the current position to start\n        if (animationInstanceRef.current.currentRawFrame < initialSegment[0] ||\n            animationInstanceRef.current.currentRawFrame > initialSegment[1]) {\n            animationInstanceRef.current.currentRawFrame = initialSegment[0];\n        }\n        // Update the segment\n        animationInstanceRef.current.setSegment(initialSegment[0], initialSegment[1]);\n    }, [initialSegment]);\n    /*\n          ======================================\n              EVENTS\n          ======================================\n       */\n    /**\n     * Reinitialize listener on change\n     */\n    useEffect(() => {\n        const partialListeners = [\n            { name: \"complete\", handler: onComplete },\n            { name: \"loopComplete\", handler: onLoopComplete },\n            { name: \"enterFrame\", handler: onEnterFrame },\n            { name: \"segmentStart\", handler: onSegmentStart },\n            { name: \"config_ready\", handler: onConfigReady },\n            { name: \"data_ready\", handler: onDataReady },\n            { name: \"data_failed\", handler: onDataFailed },\n            { name: \"loaded_images\", handler: onLoadedImages },\n            { name: \"DOMLoaded\", handler: onDOMLoaded },\n            { name: \"destroy\", handler: onDestroy },\n        ];\n        const listeners = partialListeners.filter((listener) => listener.handler != null);\n        if (!listeners.length) {\n            return;\n        }\n        const deregisterList = listeners.map(\n        /**\n         * Handle the process of adding an event listener\n         * @param {Listener} listener\n         * @return {Function} Function that deregister the listener\n         */\n        (listener) => {\n            var _a;\n            (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener(listener.name, listener.handler);\n            // Return a function to deregister this listener\n            return () => {\n                var _a;\n                (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener(listener.name, listener.handler);\n            };\n        });\n        // Deregister listeners on unmount\n        return () => {\n            deregisterList.forEach((deregister) => deregister());\n        };\n    }, [\n        onComplete,\n        onLoopComplete,\n        onEnterFrame,\n        onSegmentStart,\n        onConfigReady,\n        onDataReady,\n        onDataFailed,\n        onLoadedImages,\n        onDOMLoaded,\n        onDestroy,\n    ]);\n    /**\n     * Build the animation view\n     */\n    const View = React.createElement(\"div\", { style: style, ref: animationContainer, ...rest });\n    return {\n        View,\n        play,\n        stop,\n        pause,\n        setSpeed,\n        goToAndStop,\n        goToAndPlay,\n        setDirection,\n        playSegments,\n        setSubframe,\n        getDuration,\n        destroy,\n        animationContainerRef: animationContainer,\n        animationLoaded,\n        animationItem: animationInstanceRef.current,\n    };\n};\nexport default useLottie;\n","import { useEffect } from \"react\";\n// helpers\nexport function getContainerVisibility(container) {\n    const { top, height } = container.getBoundingClientRect();\n    const current = window.innerHeight - top;\n    const max = window.innerHeight + height;\n    return current / max;\n}\nexport function getContainerCursorPosition(container, cursorX, cursorY) {\n    const { top, left, width, height } = container.getBoundingClientRect();\n    const x = (cursorX - left) / width;\n    const y = (cursorY - top) / height;\n    return { x, y };\n}\nexport const useInitInteractivity = ({ wrapperRef, animationItem, mode, actions, }) => {\n    useEffect(() => {\n        const wrapper = wrapperRef.current;\n        if (!wrapper || !animationItem || !actions.length) {\n            return;\n        }\n        animationItem.stop();\n        const scrollModeHandler = () => {\n            let assignedSegment = null;\n            const scrollHandler = () => {\n                const currentPercent = getContainerVisibility(wrapper);\n                // Find the first action that satisfies the current position conditions\n                const action = actions.find(({ visibility }) => visibility &&\n                    currentPercent >= visibility[0] &&\n                    currentPercent <= visibility[1]);\n                // Skip if no matching action was found!\n                if (!action) {\n                    return;\n                }\n                if (action.type === \"seek\" &&\n                    action.visibility &&\n                    action.frames.length === 2) {\n                    // Seek: Go to a frame based on player scroll position action\n                    const frameToGo = action.frames[0] +\n                        Math.ceil(((currentPercent - action.visibility[0]) /\n                            (action.visibility[1] - action.visibility[0])) *\n                            action.frames[1]);\n                    //! goToAndStop must be relative to the start of the current segment\n                    animationItem.goToAndStop(frameToGo - animationItem.firstFrame - 1, true);\n                }\n                if (action.type === \"loop\") {\n                    // Loop: Loop a given frames\n                    if (assignedSegment === null) {\n                        // if not playing any segments currently. play those segments and save to state\n                        animationItem.playSegments(action.frames, true);\n                        assignedSegment = action.frames;\n                    }\n                    else {\n                        // if playing any segments currently.\n                        //check if segments in state are equal to the frames selected by action\n                        if (assignedSegment !== action.frames) {\n                            // if they are not equal. new segments are to be loaded\n                            animationItem.playSegments(action.frames, true);\n                            assignedSegment = action.frames;\n                        }\n                        else if (animationItem.isPaused) {\n                            // if they are equal the play method must be called only if lottie is paused\n                            animationItem.playSegments(action.frames, true);\n                            assignedSegment = action.frames;\n                        }\n                    }\n                }\n                if (action.type === \"play\" && animationItem.isPaused) {\n                    // Play: Reset segments and continue playing full animation from current position\n                    animationItem.resetSegments(true);\n                    animationItem.play();\n                }\n                if (action.type === \"stop\") {\n                    // Stop: Stop playback\n                    animationItem.goToAndStop(action.frames[0] - animationItem.firstFrame - 1, true);\n                }\n            };\n            document.addEventListener(\"scroll\", scrollHandler);\n            return () => {\n                document.removeEventListener(\"scroll\", scrollHandler);\n            };\n        };\n        const cursorModeHandler = () => {\n            const handleCursor = (_x, _y) => {\n                let x = _x;\n                let y = _y;\n                // Resolve cursor position if cursor is inside container\n                if (x !== -1 && y !== -1) {\n                    // Get container cursor position\n                    const pos = getContainerCursorPosition(wrapper, x, y);\n                    // Use the resolved position\n                    x = pos.x;\n                    y = pos.y;\n                }\n                // Find the first action that satisfies the current position conditions\n                const action = actions.find(({ position }) => {\n                    if (position &&\n                        Array.isArray(position.x) &&\n                        Array.isArray(position.y)) {\n                        return (x >= position.x[0] &&\n                            x <= position.x[1] &&\n                            y >= position.y[0] &&\n                            y <= position.y[1]);\n                    }\n                    if (position &&\n                        !Number.isNaN(position.x) &&\n                        !Number.isNaN(position.y)) {\n                        return x === position.x && y === position.y;\n                    }\n                    return false;\n                });\n                // Skip if no matching action was found!\n                if (!action) {\n                    return;\n                }\n                // Process action types:\n                if (action.type === \"seek\" &&\n                    action.position &&\n                    Array.isArray(action.position.x) &&\n                    Array.isArray(action.position.y) &&\n                    action.frames.length === 2) {\n                    // Seek: Go to a frame based on player scroll position action\n                    const xPercent = (x - action.position.x[0]) /\n                        (action.position.x[1] - action.position.x[0]);\n                    const yPercent = (y - action.position.y[0]) /\n                        (action.position.y[1] - action.position.y[0]);\n                    animationItem.playSegments(action.frames, true);\n                    animationItem.goToAndStop(Math.ceil(((xPercent + yPercent) / 2) *\n                        (action.frames[1] - action.frames[0])), true);\n                }\n                if (action.type === \"loop\") {\n                    animationItem.playSegments(action.frames, true);\n                }\n                if (action.type === \"play\") {\n                    // Play: Reset segments and continue playing full animation from current position\n                    if (animationItem.isPaused) {\n                        animationItem.resetSegments(false);\n                    }\n                    animationItem.playSegments(action.frames);\n                }\n                if (action.type === \"stop\") {\n                    animationItem.goToAndStop(action.frames[0], true);\n                }\n            };\n            const mouseMoveHandler = (ev) => {\n                handleCursor(ev.clientX, ev.clientY);\n            };\n            const mouseOutHandler = () => {\n                handleCursor(-1, -1);\n            };\n            wrapper.addEventListener(\"mousemove\", mouseMoveHandler);\n            wrapper.addEventListener(\"mouseout\", mouseOutHandler);\n            return () => {\n                wrapper.removeEventListener(\"mousemove\", mouseMoveHandler);\n                wrapper.removeEventListener(\"mouseout\", mouseOutHandler);\n            };\n        };\n        switch (mode) {\n            case \"scroll\":\n                return scrollModeHandler();\n            case \"cursor\":\n                return cursorModeHandler();\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [mode, animationItem]);\n};\nconst useLottieInteractivity = ({ actions, mode, lottieObj, }) => {\n    const { animationItem, View, animationContainerRef } = lottieObj;\n    useInitInteractivity({\n        actions,\n        animationItem,\n        mode,\n        wrapperRef: animationContainerRef,\n    });\n    return View;\n};\nexport default useLottieInteractivity;\n","import { useEffect } from \"react\";\nimport useLottie from \"../hooks/useLottie\";\nimport useLottieInteractivity from \"../hooks/useLottieInteractivity\";\nconst Lottie = (props) => {\n    var _a, _b, _c;\n    const { style, interactivity, ...lottieProps } = props;\n    /**\n     * Initialize the 'useLottie' hook\n     */\n    const { View, play, stop, pause, setSpeed, goToAndStop, goToAndPlay, setDirection, playSegments, setSubframe, getDuration, destroy, animationContainerRef, animationLoaded, animationItem, } = useLottie(lottieProps, style);\n    /**\n     * Make the hook variables/methods available through the provided 'lottieRef'\n     */\n    useEffect(() => {\n        if (props.lottieRef) {\n            props.lottieRef.current = {\n                play,\n                stop,\n                pause,\n                setSpeed,\n                goToAndPlay,\n                goToAndStop,\n                setDirection,\n                playSegments,\n                setSubframe,\n                getDuration,\n                destroy,\n                animationContainerRef,\n                animationLoaded,\n                animationItem,\n            };\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [(_a = props.lottieRef) === null || _a === void 0 ? void 0 : _a.current]);\n    return useLottieInteractivity({\n        lottieObj: {\n            View,\n            play,\n            stop,\n            pause,\n            setSpeed,\n            goToAndStop,\n            goToAndPlay,\n            setDirection,\n            playSegments,\n            setSubframe,\n            getDuration,\n            destroy,\n            animationContainerRef,\n            animationLoaded,\n            animationItem,\n        },\n        actions: (_b = interactivity === null || interactivity === void 0 ? void 0 : interactivity.actions) !== null && _b !== void 0 ? _b : [],\n        mode: (_c = interactivity === null || interactivity === void 0 ? void 0 : interactivity.mode) !== null && _c !== void 0 ? _c : \"scroll\",\n    });\n};\nexport default Lottie;\n","(typeof navigator !== \"undefined\") && (function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n  typeof define === 'function' && define.amd ? define(factory) :\n  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\n})(this, (function () { 'use strict';\n\n  var svgNS = 'http://www.w3.org/2000/svg';\n  var locationHref = '';\n  var _useWebWorker = false;\n  var initialDefaultFrame = -999999;\n\n  var setWebWorker = function setWebWorker(flag) {\n    _useWebWorker = !!flag;\n  };\n\n  var getWebWorker = function getWebWorker() {\n    return _useWebWorker;\n  };\n\n  var setLocationHref = function setLocationHref(value) {\n    locationHref = value;\n  };\n\n  var getLocationHref = function getLocationHref() {\n    return locationHref;\n  };\n\n  function createTag(type) {\n    // return {appendChild:function(){},setAttribute:function(){},style:{}}\n    return document.createElement(type);\n  }\n\n  function extendPrototype(sources, destination) {\n    var i;\n    var len = sources.length;\n    var sourcePrototype;\n\n    for (i = 0; i < len; i += 1) {\n      sourcePrototype = sources[i].prototype;\n\n      for (var attr in sourcePrototype) {\n        if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n      }\n    }\n  }\n\n  function getDescriptor(object, prop) {\n    return Object.getOwnPropertyDescriptor(object, prop);\n  }\n\n  function createProxyFunction(prototype) {\n    function ProxyFunction() {}\n\n    ProxyFunction.prototype = prototype;\n    return ProxyFunction;\n  }\n\n  // import Howl from '../../3rd_party/howler';\n  var audioControllerFactory = function () {\n    function AudioController(audioFactory) {\n      this.audios = [];\n      this.audioFactory = audioFactory;\n      this._volume = 1;\n      this._isMuted = false;\n    }\n\n    AudioController.prototype = {\n      addAudio: function addAudio(audio) {\n        this.audios.push(audio);\n      },\n      pause: function pause() {\n        var i;\n        var len = this.audios.length;\n\n        for (i = 0; i < len; i += 1) {\n          this.audios[i].pause();\n        }\n      },\n      resume: function resume() {\n        var i;\n        var len = this.audios.length;\n\n        for (i = 0; i < len; i += 1) {\n          this.audios[i].resume();\n        }\n      },\n      setRate: function setRate(rateValue) {\n        var i;\n        var len = this.audios.length;\n\n        for (i = 0; i < len; i += 1) {\n          this.audios[i].setRate(rateValue);\n        }\n      },\n      createAudio: function createAudio(assetPath) {\n        if (this.audioFactory) {\n          return this.audioFactory(assetPath);\n        }\n\n        if (window.Howl) {\n          return new window.Howl({\n            src: [assetPath]\n          });\n        }\n\n        return {\n          isPlaying: false,\n          play: function play() {\n            this.isPlaying = true;\n          },\n          seek: function seek() {\n            this.isPlaying = false;\n          },\n          playing: function playing() {},\n          rate: function rate() {},\n          setVolume: function setVolume() {}\n        };\n      },\n      setAudioFactory: function setAudioFactory(audioFactory) {\n        this.audioFactory = audioFactory;\n      },\n      setVolume: function setVolume(value) {\n        this._volume = value;\n\n        this._updateVolume();\n      },\n      mute: function mute() {\n        this._isMuted = true;\n\n        this._updateVolume();\n      },\n      unmute: function unmute() {\n        this._isMuted = false;\n\n        this._updateVolume();\n      },\n      getVolume: function getVolume() {\n        return this._volume;\n      },\n      _updateVolume: function _updateVolume() {\n        var i;\n        var len = this.audios.length;\n\n        for (i = 0; i < len; i += 1) {\n          this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n        }\n      }\n    };\n    return function () {\n      return new AudioController();\n    };\n  }();\n\n  var createTypedArray = function () {\n    function createRegularArray(type, len) {\n      var i = 0;\n      var arr = [];\n      var value;\n\n      switch (type) {\n        case 'int16':\n        case 'uint8c':\n          value = 1;\n          break;\n\n        default:\n          value = 1.1;\n          break;\n      }\n\n      for (i = 0; i < len; i += 1) {\n        arr.push(value);\n      }\n\n      return arr;\n    }\n\n    function createTypedArrayFactory(type, len) {\n      if (type === 'float32') {\n        return new Float32Array(len);\n      }\n\n      if (type === 'int16') {\n        return new Int16Array(len);\n      }\n\n      if (type === 'uint8c') {\n        return new Uint8ClampedArray(len);\n      }\n\n      return createRegularArray(type, len);\n    }\n\n    if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n      return createTypedArrayFactory;\n    }\n\n    return createRegularArray;\n  }();\n\n  function createSizedArray(len) {\n    return Array.apply(null, {\n      length: len\n    });\n  }\n\n  function _typeof$6(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$6(obj); }\n  var subframeEnabled = true;\n  var expressionsPlugin = null;\n  var idPrefix$1 = '';\n  var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n  var _shouldRoundValues = false;\n  var bmPow = Math.pow;\n  var bmSqrt = Math.sqrt;\n  var bmFloor = Math.floor;\n  var bmMax = Math.max;\n  var bmMin = Math.min;\n  var BMMath = {};\n\n  (function () {\n    var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\n    var i;\n    var len = propertyNames.length;\n\n    for (i = 0; i < len; i += 1) {\n      BMMath[propertyNames[i]] = Math[propertyNames[i]];\n    }\n  })();\n\n  function ProjectInterface$1() {\n    return {};\n  }\n\n  BMMath.random = Math.random;\n\n  BMMath.abs = function (val) {\n    var tOfVal = _typeof$6(val);\n\n    if (tOfVal === 'object' && val.length) {\n      var absArr = createSizedArray(val.length);\n      var i;\n      var len = val.length;\n\n      for (i = 0; i < len; i += 1) {\n        absArr[i] = Math.abs(val[i]);\n      }\n\n      return absArr;\n    }\n\n    return Math.abs(val);\n  };\n\n  var defaultCurveSegments = 150;\n  var degToRads = Math.PI / 180;\n  var roundCorner = 0.5519;\n\n  function roundValues(flag) {\n    _shouldRoundValues = !!flag;\n  }\n\n  function bmRnd(value) {\n    if (_shouldRoundValues) {\n      return Math.round(value);\n    }\n\n    return value;\n  }\n\n  function styleDiv(element) {\n    element.style.position = 'absolute';\n    element.style.top = 0;\n    element.style.left = 0;\n    element.style.display = 'block';\n    element.style.transformOrigin = '0 0';\n    element.style.webkitTransformOrigin = '0 0';\n    element.style.backfaceVisibility = 'visible';\n    element.style.webkitBackfaceVisibility = 'visible';\n    element.style.transformStyle = 'preserve-3d';\n    element.style.webkitTransformStyle = 'preserve-3d';\n    element.style.mozTransformStyle = 'preserve-3d';\n  }\n\n  function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n    this.type = type;\n    this.currentTime = currentTime;\n    this.totalTime = totalTime;\n    this.direction = frameMultiplier < 0 ? -1 : 1;\n  }\n\n  function BMCompleteEvent(type, frameMultiplier) {\n    this.type = type;\n    this.direction = frameMultiplier < 0 ? -1 : 1;\n  }\n\n  function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n    this.type = type;\n    this.currentLoop = currentLoop;\n    this.totalLoops = totalLoops;\n    this.direction = frameMultiplier < 0 ? -1 : 1;\n  }\n\n  function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n    this.type = type;\n    this.firstFrame = firstFrame;\n    this.totalFrames = totalFrames;\n  }\n\n  function BMDestroyEvent(type, target) {\n    this.type = type;\n    this.target = target;\n  }\n\n  function BMRenderFrameErrorEvent(nativeError, currentTime) {\n    this.type = 'renderFrameError';\n    this.nativeError = nativeError;\n    this.currentTime = currentTime;\n  }\n\n  function BMConfigErrorEvent(nativeError) {\n    this.type = 'configError';\n    this.nativeError = nativeError;\n  }\n\n  function BMAnimationConfigErrorEvent(type, nativeError) {\n    this.type = type;\n    this.nativeError = nativeError;\n  }\n\n  var createElementID = function () {\n    var _count = 0;\n    return function createID() {\n      _count += 1;\n      return idPrefix$1 + '__lottie_element_' + _count;\n    };\n  }();\n\n  function HSVtoRGB(h, s, v) {\n    var r;\n    var g;\n    var b;\n    var i;\n    var f;\n    var p;\n    var q;\n    var t;\n    i = Math.floor(h * 6);\n    f = h * 6 - i;\n    p = v * (1 - s);\n    q = v * (1 - f * s);\n    t = v * (1 - (1 - f) * s);\n\n    switch (i % 6) {\n      case 0:\n        r = v;\n        g = t;\n        b = p;\n        break;\n\n      case 1:\n        r = q;\n        g = v;\n        b = p;\n        break;\n\n      case 2:\n        r = p;\n        g = v;\n        b = t;\n        break;\n\n      case 3:\n        r = p;\n        g = q;\n        b = v;\n        break;\n\n      case 4:\n        r = t;\n        g = p;\n        b = v;\n        break;\n\n      case 5:\n        r = v;\n        g = p;\n        b = q;\n        break;\n\n      default:\n        break;\n    }\n\n    return [r, g, b];\n  }\n\n  function RGBtoHSV(r, g, b) {\n    var max = Math.max(r, g, b);\n    var min = Math.min(r, g, b);\n    var d = max - min;\n    var h;\n    var s = max === 0 ? 0 : d / max;\n    var v = max / 255;\n\n    switch (max) {\n      case min:\n        h = 0;\n        break;\n\n      case r:\n        h = g - b + d * (g < b ? 6 : 0);\n        h /= 6 * d;\n        break;\n\n      case g:\n        h = b - r + d * 2;\n        h /= 6 * d;\n        break;\n\n      case b:\n        h = r - g + d * 4;\n        h /= 6 * d;\n        break;\n\n      default:\n        break;\n    }\n\n    return [h, s, v];\n  }\n\n  function addSaturationToRGB(color, offset) {\n    var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n    hsv[1] += offset;\n\n    if (hsv[1] > 1) {\n      hsv[1] = 1;\n    } else if (hsv[1] <= 0) {\n      hsv[1] = 0;\n    }\n\n    return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n  }\n\n  function addBrightnessToRGB(color, offset) {\n    var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n    hsv[2] += offset;\n\n    if (hsv[2] > 1) {\n      hsv[2] = 1;\n    } else if (hsv[2] < 0) {\n      hsv[2] = 0;\n    }\n\n    return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n  }\n\n  function addHueToRGB(color, offset) {\n    var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n    hsv[0] += offset / 360;\n\n    if (hsv[0] > 1) {\n      hsv[0] -= 1;\n    } else if (hsv[0] < 0) {\n      hsv[0] += 1;\n    }\n\n    return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n  }\n\n  var rgbToHex = function () {\n    var colorMap = [];\n    var i;\n    var hex;\n\n    for (i = 0; i < 256; i += 1) {\n      hex = i.toString(16);\n      colorMap[i] = hex.length === 1 ? '0' + hex : hex;\n    }\n\n    return function (r, g, b) {\n      if (r < 0) {\n        r = 0;\n      }\n\n      if (g < 0) {\n        g = 0;\n      }\n\n      if (b < 0) {\n        b = 0;\n      }\n\n      return '#' + colorMap[r] + colorMap[g] + colorMap[b];\n    };\n  }();\n\n  var setSubframeEnabled = function setSubframeEnabled(flag) {\n    subframeEnabled = !!flag;\n  };\n\n  var getSubframeEnabled = function getSubframeEnabled() {\n    return subframeEnabled;\n  };\n\n  var setExpressionsPlugin = function setExpressionsPlugin(value) {\n    expressionsPlugin = value;\n  };\n\n  var getExpressionsPlugin = function getExpressionsPlugin() {\n    return expressionsPlugin;\n  };\n\n  var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\n    defaultCurveSegments = value;\n  };\n\n  var getDefaultCurveSegments = function getDefaultCurveSegments() {\n    return defaultCurveSegments;\n  };\n\n  var setIdPrefix = function setIdPrefix(value) {\n    idPrefix$1 = value;\n  };\n\n  var getIdPrefix = function getIdPrefix() {\n    return idPrefix$1;\n  };\n\n  function createNS(type) {\n    // return {appendChild:function(){},setAttribute:function(){},style:{}}\n    return document.createElementNS(svgNS, type);\n  }\n\n  function _typeof$5(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$5(obj); }\n\n  var dataManager = function () {\n    var _counterId = 1;\n    var processes = [];\n    var workerFn;\n    var workerInstance;\n    var workerProxy = {\n      onmessage: function onmessage() {},\n      postMessage: function postMessage(path) {\n        workerFn({\n          data: path\n        });\n      }\n    };\n    var _workerSelf = {\n      postMessage: function postMessage(data) {\n        workerProxy.onmessage({\n          data: data\n        });\n      }\n    };\n\n    function createWorker(fn) {\n      if (window.Worker && window.Blob && getWebWorker()) {\n        var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\n          type: 'text/javascript'\n        }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\n        var url = URL.createObjectURL(blob);\n        return new Worker(url);\n      }\n\n      workerFn = fn;\n      return workerProxy;\n    }\n\n    function setupWorker() {\n      if (!workerInstance) {\n        workerInstance = createWorker(function workerStart(e) {\n          function dataFunctionManager() {\n            function completeLayers(layers, comps) {\n              var layerData;\n              var i;\n              var len = layers.length;\n              var j;\n              var jLen;\n              var k;\n              var kLen;\n\n              for (i = 0; i < len; i += 1) {\n                layerData = layers[i];\n\n                if ('ks' in layerData && !layerData.completed) {\n                  layerData.completed = true;\n\n                  if (layerData.tt) {\n                    layers[i - 1].td = layerData.tt;\n                  }\n\n                  if (layerData.hasMask) {\n                    var maskProps = layerData.masksProperties;\n                    jLen = maskProps.length;\n\n                    for (j = 0; j < jLen; j += 1) {\n                      if (maskProps[j].pt.k.i) {\n                        convertPathsToAbsoluteValues(maskProps[j].pt.k);\n                      } else {\n                        kLen = maskProps[j].pt.k.length;\n\n                        for (k = 0; k < kLen; k += 1) {\n                          if (maskProps[j].pt.k[k].s) {\n                            convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n                          }\n\n                          if (maskProps[j].pt.k[k].e) {\n                            convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n                          }\n                        }\n                      }\n                    }\n                  }\n\n                  if (layerData.ty === 0) {\n                    layerData.layers = findCompLayers(layerData.refId, comps);\n                    completeLayers(layerData.layers, comps);\n                  } else if (layerData.ty === 4) {\n                    completeShapes(layerData.shapes);\n                  } else if (layerData.ty === 5) {\n                    completeText(layerData);\n                  }\n                }\n              }\n            }\n\n            function completeChars(chars, assets) {\n              if (chars) {\n                var i = 0;\n                var len = chars.length;\n\n                for (i = 0; i < len; i += 1) {\n                  if (chars[i].t === 1) {\n                    // var compData = findComp(chars[i].data.refId, assets);\n                    chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\n                    // chars[i].data.op = 99999;\n                    // chars[i].data.st = 0;\n                    // chars[i].data.sr = 1;\n                    // chars[i].w = compData.w;\n                    // chars[i].data.ks = {\n                    //   a: { k: [0, 0, 0], a: 0 },\n                    //   p: { k: [0, -compData.h, 0], a: 0 },\n                    //   r: { k: 0, a: 0 },\n                    //   s: { k: [100, 100], a: 0 },\n                    //   o: { k: 100, a: 0 },\n                    // };\n\n                    completeLayers(chars[i].data.layers, assets);\n                  }\n                }\n              }\n            }\n\n            function findComp(id, comps) {\n              var i = 0;\n              var len = comps.length;\n\n              while (i < len) {\n                if (comps[i].id === id) {\n                  return comps[i];\n                }\n\n                i += 1;\n              }\n\n              return null;\n            }\n\n            function findCompLayers(id, comps) {\n              var comp = findComp(id, comps);\n\n              if (comp) {\n                if (!comp.layers.__used) {\n                  comp.layers.__used = true;\n                  return comp.layers;\n                }\n\n                return JSON.parse(JSON.stringify(comp.layers));\n              }\n\n              return null;\n            }\n\n            function completeShapes(arr) {\n              var i;\n              var len = arr.length;\n              var j;\n              var jLen;\n\n              for (i = len - 1; i >= 0; i -= 1) {\n                if (arr[i].ty === 'sh') {\n                  if (arr[i].ks.k.i) {\n                    convertPathsToAbsoluteValues(arr[i].ks.k);\n                  } else {\n                    jLen = arr[i].ks.k.length;\n\n                    for (j = 0; j < jLen; j += 1) {\n                      if (arr[i].ks.k[j].s) {\n                        convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n                      }\n\n                      if (arr[i].ks.k[j].e) {\n                        convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n                      }\n                    }\n                  }\n                } else if (arr[i].ty === 'gr') {\n                  completeShapes(arr[i].it);\n                }\n              }\n            }\n\n            function convertPathsToAbsoluteValues(path) {\n              var i;\n              var len = path.i.length;\n\n              for (i = 0; i < len; i += 1) {\n                path.i[i][0] += path.v[i][0];\n                path.i[i][1] += path.v[i][1];\n                path.o[i][0] += path.v[i][0];\n                path.o[i][1] += path.v[i][1];\n              }\n            }\n\n            function checkVersion(minimum, animVersionString) {\n              var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n\n              if (minimum[0] > animVersion[0]) {\n                return true;\n              }\n\n              if (animVersion[0] > minimum[0]) {\n                return false;\n              }\n\n              if (minimum[1] > animVersion[1]) {\n                return true;\n              }\n\n              if (animVersion[1] > minimum[1]) {\n                return false;\n              }\n\n              if (minimum[2] > animVersion[2]) {\n                return true;\n              }\n\n              if (animVersion[2] > minimum[2]) {\n                return false;\n              }\n\n              return null;\n            }\n\n            var checkText = function () {\n              var minimumVersion = [4, 4, 14];\n\n              function updateTextLayer(textLayer) {\n                var documentData = textLayer.t.d;\n                textLayer.t.d = {\n                  k: [{\n                    s: documentData,\n                    t: 0\n                  }]\n                };\n              }\n\n              function iterateLayers(layers) {\n                var i;\n                var len = layers.length;\n\n                for (i = 0; i < len; i += 1) {\n                  if (layers[i].ty === 5) {\n                    updateTextLayer(layers[i]);\n                  }\n                }\n              }\n\n              return function (animationData) {\n                if (checkVersion(minimumVersion, animationData.v)) {\n                  iterateLayers(animationData.layers);\n\n                  if (animationData.assets) {\n                    var i;\n                    var len = animationData.assets.length;\n\n                    for (i = 0; i < len; i += 1) {\n                      if (animationData.assets[i].layers) {\n                        iterateLayers(animationData.assets[i].layers);\n                      }\n                    }\n                  }\n                }\n              };\n            }();\n\n            var checkChars = function () {\n              var minimumVersion = [4, 7, 99];\n              return function (animationData) {\n                if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n                  var i;\n                  var len = animationData.chars.length;\n\n                  for (i = 0; i < len; i += 1) {\n                    var charData = animationData.chars[i];\n\n                    if (charData.data && charData.data.shapes) {\n                      completeShapes(charData.data.shapes);\n                      charData.data.ip = 0;\n                      charData.data.op = 99999;\n                      charData.data.st = 0;\n                      charData.data.sr = 1;\n                      charData.data.ks = {\n                        p: {\n                          k: [0, 0],\n                          a: 0\n                        },\n                        s: {\n                          k: [100, 100],\n                          a: 0\n                        },\n                        a: {\n                          k: [0, 0],\n                          a: 0\n                        },\n                        r: {\n                          k: 0,\n                          a: 0\n                        },\n                        o: {\n                          k: 100,\n                          a: 0\n                        }\n                      };\n\n                      if (!animationData.chars[i].t) {\n                        charData.data.shapes.push({\n                          ty: 'no'\n                        });\n                        charData.data.shapes[0].it.push({\n                          p: {\n                            k: [0, 0],\n                            a: 0\n                          },\n                          s: {\n                            k: [100, 100],\n                            a: 0\n                          },\n                          a: {\n                            k: [0, 0],\n                            a: 0\n                          },\n                          r: {\n                            k: 0,\n                            a: 0\n                          },\n                          o: {\n                            k: 100,\n                            a: 0\n                          },\n                          sk: {\n                            k: 0,\n                            a: 0\n                          },\n                          sa: {\n                            k: 0,\n                            a: 0\n                          },\n                          ty: 'tr'\n                        });\n                      }\n                    }\n                  }\n                }\n              };\n            }();\n\n            var checkPathProperties = function () {\n              var minimumVersion = [5, 7, 15];\n\n              function updateTextLayer(textLayer) {\n                var pathData = textLayer.t.p;\n\n                if (typeof pathData.a === 'number') {\n                  pathData.a = {\n                    a: 0,\n                    k: pathData.a\n                  };\n                }\n\n                if (typeof pathData.p === 'number') {\n                  pathData.p = {\n                    a: 0,\n                    k: pathData.p\n                  };\n                }\n\n                if (typeof pathData.r === 'number') {\n                  pathData.r = {\n                    a: 0,\n                    k: pathData.r\n                  };\n                }\n              }\n\n              function iterateLayers(layers) {\n                var i;\n                var len = layers.length;\n\n                for (i = 0; i < len; i += 1) {\n                  if (layers[i].ty === 5) {\n                    updateTextLayer(layers[i]);\n                  }\n                }\n              }\n\n              return function (animationData) {\n                if (checkVersion(minimumVersion, animationData.v)) {\n                  iterateLayers(animationData.layers);\n\n                  if (animationData.assets) {\n                    var i;\n                    var len = animationData.assets.length;\n\n                    for (i = 0; i < len; i += 1) {\n                      if (animationData.assets[i].layers) {\n                        iterateLayers(animationData.assets[i].layers);\n                      }\n                    }\n                  }\n                }\n              };\n            }();\n\n            var checkColors = function () {\n              var minimumVersion = [4, 1, 9];\n\n              function iterateShapes(shapes) {\n                var i;\n                var len = shapes.length;\n                var j;\n                var jLen;\n\n                for (i = 0; i < len; i += 1) {\n                  if (shapes[i].ty === 'gr') {\n                    iterateShapes(shapes[i].it);\n                  } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n                    if (shapes[i].c.k && shapes[i].c.k[0].i) {\n                      jLen = shapes[i].c.k.length;\n\n                      for (j = 0; j < jLen; j += 1) {\n                        if (shapes[i].c.k[j].s) {\n                          shapes[i].c.k[j].s[0] /= 255;\n                          shapes[i].c.k[j].s[1] /= 255;\n                          shapes[i].c.k[j].s[2] /= 255;\n                          shapes[i].c.k[j].s[3] /= 255;\n                        }\n\n                        if (shapes[i].c.k[j].e) {\n                          shapes[i].c.k[j].e[0] /= 255;\n                          shapes[i].c.k[j].e[1] /= 255;\n                          shapes[i].c.k[j].e[2] /= 255;\n                          shapes[i].c.k[j].e[3] /= 255;\n                        }\n                      }\n                    } else {\n                      shapes[i].c.k[0] /= 255;\n                      shapes[i].c.k[1] /= 255;\n                      shapes[i].c.k[2] /= 255;\n                      shapes[i].c.k[3] /= 255;\n                    }\n                  }\n                }\n              }\n\n              function iterateLayers(layers) {\n                var i;\n                var len = layers.length;\n\n                for (i = 0; i < len; i += 1) {\n                  if (layers[i].ty === 4) {\n                    iterateShapes(layers[i].shapes);\n                  }\n                }\n              }\n\n              return function (animationData) {\n                if (checkVersion(minimumVersion, animationData.v)) {\n                  iterateLayers(animationData.layers);\n\n                  if (animationData.assets) {\n                    var i;\n                    var len = animationData.assets.length;\n\n                    for (i = 0; i < len; i += 1) {\n                      if (animationData.assets[i].layers) {\n                        iterateLayers(animationData.assets[i].layers);\n                      }\n                    }\n                  }\n                }\n              };\n            }();\n\n            var checkShapes = function () {\n              var minimumVersion = [4, 4, 18];\n\n              function completeClosingShapes(arr) {\n                var i;\n                var len = arr.length;\n                var j;\n                var jLen;\n\n                for (i = len - 1; i >= 0; i -= 1) {\n                  if (arr[i].ty === 'sh') {\n                    if (arr[i].ks.k.i) {\n                      arr[i].ks.k.c = arr[i].closed;\n                    } else {\n                      jLen = arr[i].ks.k.length;\n\n                      for (j = 0; j < jLen; j += 1) {\n                        if (arr[i].ks.k[j].s) {\n                          arr[i].ks.k[j].s[0].c = arr[i].closed;\n                        }\n\n                        if (arr[i].ks.k[j].e) {\n                          arr[i].ks.k[j].e[0].c = arr[i].closed;\n                        }\n                      }\n                    }\n                  } else if (arr[i].ty === 'gr') {\n                    completeClosingShapes(arr[i].it);\n                  }\n                }\n              }\n\n              function iterateLayers(layers) {\n                var layerData;\n                var i;\n                var len = layers.length;\n                var j;\n                var jLen;\n                var k;\n                var kLen;\n\n                for (i = 0; i < len; i += 1) {\n                  layerData = layers[i];\n\n                  if (layerData.hasMask) {\n                    var maskProps = layerData.masksProperties;\n                    jLen = maskProps.length;\n\n                    for (j = 0; j < jLen; j += 1) {\n                      if (maskProps[j].pt.k.i) {\n                        maskProps[j].pt.k.c = maskProps[j].cl;\n                      } else {\n                        kLen = maskProps[j].pt.k.length;\n\n                        for (k = 0; k < kLen; k += 1) {\n                          if (maskProps[j].pt.k[k].s) {\n                            maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n                          }\n\n                          if (maskProps[j].pt.k[k].e) {\n                            maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n                          }\n                        }\n                      }\n                    }\n                  }\n\n                  if (layerData.ty === 4) {\n                    completeClosingShapes(layerData.shapes);\n                  }\n                }\n              }\n\n              return function (animationData) {\n                if (checkVersion(minimumVersion, animationData.v)) {\n                  iterateLayers(animationData.layers);\n\n                  if (animationData.assets) {\n                    var i;\n                    var len = animationData.assets.length;\n\n                    for (i = 0; i < len; i += 1) {\n                      if (animationData.assets[i].layers) {\n                        iterateLayers(animationData.assets[i].layers);\n                      }\n                    }\n                  }\n                }\n              };\n            }();\n\n            function completeData(animationData) {\n              if (animationData.__complete) {\n                return;\n              }\n\n              checkColors(animationData);\n              checkText(animationData);\n              checkChars(animationData);\n              checkPathProperties(animationData);\n              checkShapes(animationData);\n              completeLayers(animationData.layers, animationData.assets);\n              completeChars(animationData.chars, animationData.assets);\n              animationData.__complete = true;\n            }\n\n            function completeText(data) {\n              if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\n              }\n            }\n\n            var moduleOb = {};\n            moduleOb.completeData = completeData;\n            moduleOb.checkColors = checkColors;\n            moduleOb.checkChars = checkChars;\n            moduleOb.checkPathProperties = checkPathProperties;\n            moduleOb.checkShapes = checkShapes;\n            moduleOb.completeLayers = completeLayers;\n            return moduleOb;\n          }\n\n          if (!_workerSelf.dataManager) {\n            _workerSelf.dataManager = dataFunctionManager();\n          }\n\n          if (!_workerSelf.assetLoader) {\n            _workerSelf.assetLoader = function () {\n              function formatResponse(xhr) {\n                // using typeof doubles the time of execution of this method,\n                // so if available, it's better to use the header to validate the type\n                var contentTypeHeader = xhr.getResponseHeader('content-type');\n\n                if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n                  return xhr.response;\n                }\n\n                if (xhr.response && _typeof$5(xhr.response) === 'object') {\n                  return xhr.response;\n                }\n\n                if (xhr.response && typeof xhr.response === 'string') {\n                  return JSON.parse(xhr.response);\n                }\n\n                if (xhr.responseText) {\n                  return JSON.parse(xhr.responseText);\n                }\n\n                return null;\n              }\n\n              function loadAsset(path, fullPath, callback, errorCallback) {\n                var response;\n                var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n                try {\n                  // This crashes on Android WebView prior to KitKat\n                  xhr.responseType = 'json';\n                } catch (err) {} // eslint-disable-line no-empty\n\n\n                xhr.onreadystatechange = function () {\n                  if (xhr.readyState === 4) {\n                    if (xhr.status === 200) {\n                      response = formatResponse(xhr);\n                      callback(response);\n                    } else {\n                      try {\n                        response = formatResponse(xhr);\n                        callback(response);\n                      } catch (err) {\n                        if (errorCallback) {\n                          errorCallback(err);\n                        }\n                      }\n                    }\n                  }\n                };\n\n                try {\n                  xhr.open('GET', path, true);\n                } catch (error) {\n                  xhr.open('GET', fullPath + '/' + path, true);\n                }\n\n                xhr.send();\n              }\n\n              return {\n                load: loadAsset\n              };\n            }();\n          }\n\n          if (e.data.type === 'loadAnimation') {\n            _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n              _workerSelf.dataManager.completeData(data);\n\n              _workerSelf.postMessage({\n                id: e.data.id,\n                payload: data,\n                status: 'success'\n              });\n            }, function () {\n              _workerSelf.postMessage({\n                id: e.data.id,\n                status: 'error'\n              });\n            });\n          } else if (e.data.type === 'complete') {\n            var animation = e.data.animation;\n\n            _workerSelf.dataManager.completeData(animation);\n\n            _workerSelf.postMessage({\n              id: e.data.id,\n              payload: animation,\n              status: 'success'\n            });\n          } else if (e.data.type === 'loadData') {\n            _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n              _workerSelf.postMessage({\n                id: e.data.id,\n                payload: data,\n                status: 'success'\n              });\n            }, function () {\n              _workerSelf.postMessage({\n                id: e.data.id,\n                status: 'error'\n              });\n            });\n          }\n        });\n\n        workerInstance.onmessage = function (event) {\n          var data = event.data;\n          var id = data.id;\n          var process = processes[id];\n          processes[id] = null;\n\n          if (data.status === 'success') {\n            process.onComplete(data.payload);\n          } else if (process.onError) {\n            process.onError();\n          }\n        };\n      }\n    }\n\n    function createProcess(onComplete, onError) {\n      _counterId += 1;\n      var id = 'processId_' + _counterId;\n      processes[id] = {\n        onComplete: onComplete,\n        onError: onError\n      };\n      return id;\n    }\n\n    function loadAnimation(path, onComplete, onError) {\n      setupWorker();\n      var processId = createProcess(onComplete, onError);\n      workerInstance.postMessage({\n        type: 'loadAnimation',\n        path: path,\n        fullPath: window.location.origin + window.location.pathname,\n        id: processId\n      });\n    }\n\n    function loadData(path, onComplete, onError) {\n      setupWorker();\n      var processId = createProcess(onComplete, onError);\n      workerInstance.postMessage({\n        type: 'loadData',\n        path: path,\n        fullPath: window.location.origin + window.location.pathname,\n        id: processId\n      });\n    }\n\n    function completeAnimation(anim, onComplete, onError) {\n      setupWorker();\n      var processId = createProcess(onComplete, onError);\n      workerInstance.postMessage({\n        type: 'complete',\n        animation: anim,\n        id: processId\n      });\n    }\n\n    return {\n      loadAnimation: loadAnimation,\n      loadData: loadData,\n      completeAnimation: completeAnimation\n    };\n  }();\n\n  var ImagePreloader = function () {\n    var proxyImage = function () {\n      var canvas = createTag('canvas');\n      canvas.width = 1;\n      canvas.height = 1;\n      var ctx = canvas.getContext('2d');\n      ctx.fillStyle = 'rgba(0,0,0,0)';\n      ctx.fillRect(0, 0, 1, 1);\n      return canvas;\n    }();\n\n    function imageLoaded() {\n      this.loadedAssets += 1;\n\n      if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n        if (this.imagesLoadedCb) {\n          this.imagesLoadedCb(null);\n        }\n      }\n    }\n\n    function footageLoaded() {\n      this.loadedFootagesCount += 1;\n\n      if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n        if (this.imagesLoadedCb) {\n          this.imagesLoadedCb(null);\n        }\n      }\n    }\n\n    function getAssetsPath(assetData, assetsPath, originalPath) {\n      var path = '';\n\n      if (assetData.e) {\n        path = assetData.p;\n      } else if (assetsPath) {\n        var imagePath = assetData.p;\n\n        if (imagePath.indexOf('images/') !== -1) {\n          imagePath = imagePath.split('/')[1];\n        }\n\n        path = assetsPath + imagePath;\n      } else {\n        path = originalPath;\n        path += assetData.u ? assetData.u : '';\n        path += assetData.p;\n      }\n\n      return path;\n    }\n\n    function testImageLoaded(img) {\n      var _count = 0;\n      var intervalId = setInterval(function () {\n        var box = img.getBBox();\n\n        if (box.width || _count > 500) {\n          this._imageLoaded();\n\n          clearInterval(intervalId);\n        }\n\n        _count += 1;\n      }.bind(this), 50);\n    }\n\n    function createImageData(assetData) {\n      var path = getAssetsPath(assetData, this.assetsPath, this.path);\n      var img = createNS('image');\n\n      if (isSafari) {\n        this.testImageLoaded(img);\n      } else {\n        img.addEventListener('load', this._imageLoaded, false);\n      }\n\n      img.addEventListener('error', function () {\n        ob.img = proxyImage;\n\n        this._imageLoaded();\n      }.bind(this), false);\n      img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n\n      if (this._elementHelper.append) {\n        this._elementHelper.append(img);\n      } else {\n        this._elementHelper.appendChild(img);\n      }\n\n      var ob = {\n        img: img,\n        assetData: assetData\n      };\n      return ob;\n    }\n\n    function createImgData(assetData) {\n      var path = getAssetsPath(assetData, this.assetsPath, this.path);\n      var img = createTag('img');\n      img.crossOrigin = 'anonymous';\n      img.addEventListener('load', this._imageLoaded, false);\n      img.addEventListener('error', function () {\n        ob.img = proxyImage;\n\n        this._imageLoaded();\n      }.bind(this), false);\n      img.src = path;\n      var ob = {\n        img: img,\n        assetData: assetData\n      };\n      return ob;\n    }\n\n    function createFootageData(data) {\n      var ob = {\n        assetData: data\n      };\n      var path = getAssetsPath(data, this.assetsPath, this.path);\n      dataManager.loadData(path, function (footageData) {\n        ob.img = footageData;\n\n        this._footageLoaded();\n      }.bind(this), function () {\n        ob.img = {};\n\n        this._footageLoaded();\n      }.bind(this));\n      return ob;\n    }\n\n    function loadAssets(assets, cb) {\n      this.imagesLoadedCb = cb;\n      var i;\n      var len = assets.length;\n\n      for (i = 0; i < len; i += 1) {\n        if (!assets[i].layers) {\n          if (!assets[i].t || assets[i].t === 'seq') {\n            this.totalImages += 1;\n            this.images.push(this._createImageData(assets[i]));\n          } else if (assets[i].t === 3) {\n            this.totalFootages += 1;\n            this.images.push(this.createFootageData(assets[i]));\n          }\n        }\n      }\n    }\n\n    function setPath(path) {\n      this.path = path || '';\n    }\n\n    function setAssetsPath(path) {\n      this.assetsPath = path || '';\n    }\n\n    function getAsset(assetData) {\n      var i = 0;\n      var len = this.images.length;\n\n      while (i < len) {\n        if (this.images[i].assetData === assetData) {\n          return this.images[i].img;\n        }\n\n        i += 1;\n      }\n\n      return null;\n    }\n\n    function destroy() {\n      this.imagesLoadedCb = null;\n      this.images.length = 0;\n    }\n\n    function loadedImages() {\n      return this.totalImages === this.loadedAssets;\n    }\n\n    function loadedFootages() {\n      return this.totalFootages === this.loadedFootagesCount;\n    }\n\n    function setCacheType(type, elementHelper) {\n      if (type === 'svg') {\n        this._elementHelper = elementHelper;\n        this._createImageData = this.createImageData.bind(this);\n      } else {\n        this._createImageData = this.createImgData.bind(this);\n      }\n    }\n\n    function ImagePreloaderFactory() {\n      this._imageLoaded = imageLoaded.bind(this);\n      this._footageLoaded = footageLoaded.bind(this);\n      this.testImageLoaded = testImageLoaded.bind(this);\n      this.createFootageData = createFootageData.bind(this);\n      this.assetsPath = '';\n      this.path = '';\n      this.totalImages = 0;\n      this.totalFootages = 0;\n      this.loadedAssets = 0;\n      this.loadedFootagesCount = 0;\n      this.imagesLoadedCb = null;\n      this.images = [];\n    }\n\n    ImagePreloaderFactory.prototype = {\n      loadAssets: loadAssets,\n      setAssetsPath: setAssetsPath,\n      setPath: setPath,\n      loadedImages: loadedImages,\n      loadedFootages: loadedFootages,\n      destroy: destroy,\n      getAsset: getAsset,\n      createImgData: createImgData,\n      createImageData: createImageData,\n      imageLoaded: imageLoaded,\n      footageLoaded: footageLoaded,\n      setCacheType: setCacheType\n    };\n    return ImagePreloaderFactory;\n  }();\n\n  function BaseEvent() {}\n\n  BaseEvent.prototype = {\n    triggerEvent: function triggerEvent(eventName, args) {\n      if (this._cbs[eventName]) {\n        var callbacks = this._cbs[eventName];\n\n        for (var i = 0; i < callbacks.length; i += 1) {\n          callbacks[i](args);\n        }\n      }\n    },\n    addEventListener: function addEventListener(eventName, callback) {\n      if (!this._cbs[eventName]) {\n        this._cbs[eventName] = [];\n      }\n\n      this._cbs[eventName].push(callback);\n\n      return function () {\n        this.removeEventListener(eventName, callback);\n      }.bind(this);\n    },\n    removeEventListener: function removeEventListener(eventName, callback) {\n      if (!callback) {\n        this._cbs[eventName] = null;\n      } else if (this._cbs[eventName]) {\n        var i = 0;\n        var len = this._cbs[eventName].length;\n\n        while (i < len) {\n          if (this._cbs[eventName][i] === callback) {\n            this._cbs[eventName].splice(i, 1);\n\n            i -= 1;\n            len -= 1;\n          }\n\n          i += 1;\n        }\n\n        if (!this._cbs[eventName].length) {\n          this._cbs[eventName] = null;\n        }\n      }\n    }\n  };\n\n  var markerParser = function () {\n    function parsePayloadLines(payload) {\n      var lines = payload.split('\\r\\n');\n      var keys = {};\n      var line;\n      var keysCount = 0;\n\n      for (var i = 0; i < lines.length; i += 1) {\n        line = lines[i].split(':');\n\n        if (line.length === 2) {\n          keys[line[0]] = line[1].trim();\n          keysCount += 1;\n        }\n      }\n\n      if (keysCount === 0) {\n        throw new Error();\n      }\n\n      return keys;\n    }\n\n    return function (_markers) {\n      var markers = [];\n\n      for (var i = 0; i < _markers.length; i += 1) {\n        var _marker = _markers[i];\n        var markerData = {\n          time: _marker.tm,\n          duration: _marker.dr\n        };\n\n        try {\n          markerData.payload = JSON.parse(_markers[i].cm);\n        } catch (_) {\n          try {\n            markerData.payload = parsePayloadLines(_markers[i].cm);\n          } catch (__) {\n            markerData.payload = {\n              name: _markers[i].cm\n            };\n          }\n        }\n\n        markers.push(markerData);\n      }\n\n      return markers;\n    };\n  }();\n\n  var ProjectInterface = function () {\n    function registerComposition(comp) {\n      this.compositions.push(comp);\n    }\n\n    return function () {\n      function _thisProjectFunction(name) {\n        var i = 0;\n        var len = this.compositions.length;\n\n        while (i < len) {\n          if (this.compositions[i].data && this.compositions[i].data.nm === name) {\n            if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\n              this.compositions[i].prepareFrame(this.currentFrame);\n            }\n\n            return this.compositions[i].compInterface;\n          }\n\n          i += 1;\n        }\n\n        return null;\n      }\n\n      _thisProjectFunction.compositions = [];\n      _thisProjectFunction.currentFrame = 0;\n      _thisProjectFunction.registerComposition = registerComposition;\n      return _thisProjectFunction;\n    };\n  }();\n\n  var renderers = {};\n\n  var registerRenderer = function registerRenderer(key, value) {\n    renderers[key] = value;\n  };\n\n  function getRenderer(key) {\n    return renderers[key];\n  }\n\n  function _typeof$4(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$4(obj); }\n\n  var AnimationItem = function AnimationItem() {\n    this._cbs = [];\n    this.name = '';\n    this.path = '';\n    this.isLoaded = false;\n    this.currentFrame = 0;\n    this.currentRawFrame = 0;\n    this.firstFrame = 0;\n    this.totalFrames = 0;\n    this.frameRate = 0;\n    this.frameMult = 0;\n    this.playSpeed = 1;\n    this.playDirection = 1;\n    this.playCount = 0;\n    this.animationData = {};\n    this.assets = [];\n    this.isPaused = true;\n    this.autoplay = false;\n    this.loop = true;\n    this.renderer = null;\n    this.animationID = createElementID();\n    this.assetsPath = '';\n    this.timeCompleted = 0;\n    this.segmentPos = 0;\n    this.isSubframeEnabled = getSubframeEnabled();\n    this.segments = [];\n    this._idle = true;\n    this._completedLoop = false;\n    this.projectInterface = ProjectInterface();\n    this.imagePreloader = new ImagePreloader();\n    this.audioController = audioControllerFactory();\n    this.markers = [];\n    this.configAnimation = this.configAnimation.bind(this);\n    this.onSetupError = this.onSetupError.bind(this);\n    this.onSegmentComplete = this.onSegmentComplete.bind(this);\n    this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\n  };\n\n  extendPrototype([BaseEvent], AnimationItem);\n\n  AnimationItem.prototype.setParams = function (params) {\n    if (params.wrapper || params.container) {\n      this.wrapper = params.wrapper || params.container;\n    }\n\n    var animType = 'svg';\n\n    if (params.animType) {\n      animType = params.animType;\n    } else if (params.renderer) {\n      animType = params.renderer;\n    }\n\n    var RendererClass = getRenderer(animType);\n    this.renderer = new RendererClass(this, params.rendererSettings);\n    this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n    this.renderer.setProjectInterface(this.projectInterface);\n    this.animType = animType;\n\n    if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\n      this.loop = true;\n    } else if (params.loop === false) {\n      this.loop = false;\n    } else {\n      this.loop = parseInt(params.loop, 10);\n    }\n\n    this.autoplay = 'autoplay' in params ? params.autoplay : true;\n    this.name = params.name ? params.name : '';\n    this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n    this.assetsPath = params.assetsPath;\n    this.initialSegment = params.initialSegment;\n\n    if (params.audioFactory) {\n      this.audioController.setAudioFactory(params.audioFactory);\n    }\n\n    if (params.animationData) {\n      this.setupAnimation(params.animationData);\n    } else if (params.path) {\n      if (params.path.lastIndexOf('\\\\') !== -1) {\n        this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n      } else {\n        this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n      }\n\n      this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n      this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n      dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\n    }\n  };\n\n  AnimationItem.prototype.onSetupError = function () {\n    this.trigger('data_failed');\n  };\n\n  AnimationItem.prototype.setupAnimation = function (data) {\n    dataManager.completeAnimation(data, this.configAnimation);\n  };\n\n  AnimationItem.prototype.setData = function (wrapper, animationData) {\n    if (animationData) {\n      if (_typeof$4(animationData) !== 'object') {\n        animationData = JSON.parse(animationData);\n      }\n    }\n\n    var params = {\n      wrapper: wrapper,\n      animationData: animationData\n    };\n    var wrapperAttributes = wrapper.attributes;\n    params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\n    params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : 'canvas';\n    var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\n\n    if (loop === 'false') {\n      params.loop = false;\n    } else if (loop === 'true') {\n      params.loop = true;\n    } else if (loop !== '') {\n      params.loop = parseInt(loop, 10);\n    }\n\n    var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\n    params.autoplay = autoplay !== 'false';\n    params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\n    var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\n\n    if (prerender === 'false') {\n      params.prerender = false;\n    }\n\n    this.setParams(params);\n  };\n\n  AnimationItem.prototype.includeLayers = function (data) {\n    if (data.op > this.animationData.op) {\n      this.animationData.op = data.op;\n      this.totalFrames = Math.floor(data.op - this.animationData.ip);\n    }\n\n    var layers = this.animationData.layers;\n    var i;\n    var len = layers.length;\n    var newLayers = data.layers;\n    var j;\n    var jLen = newLayers.length;\n\n    for (j = 0; j < jLen; j += 1) {\n      i = 0;\n\n      while (i < len) {\n        if (layers[i].id === newLayers[j].id) {\n          layers[i] = newLayers[j];\n          break;\n        }\n\n        i += 1;\n      }\n    }\n\n    if (data.chars || data.fonts) {\n      this.renderer.globalData.fontManager.addChars(data.chars);\n      this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n    }\n\n    if (data.assets) {\n      len = data.assets.length;\n\n      for (i = 0; i < len; i += 1) {\n        this.animationData.assets.push(data.assets[i]);\n      }\n    }\n\n    this.animationData.__complete = false;\n    dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\n  };\n\n  AnimationItem.prototype.onSegmentComplete = function (data) {\n    this.animationData = data;\n    var expressionsPlugin = getExpressionsPlugin();\n\n    if (expressionsPlugin) {\n      expressionsPlugin.initExpressions(this);\n    }\n\n    this.loadNextSegment();\n  };\n\n  AnimationItem.prototype.loadNextSegment = function () {\n    var segments = this.animationData.segments;\n\n    if (!segments || segments.length === 0 || !this.autoloadSegments) {\n      this.trigger('data_ready');\n      this.timeCompleted = this.totalFrames;\n      return;\n    }\n\n    var segment = segments.shift();\n    this.timeCompleted = segment.time * this.frameRate;\n    var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n    this.segmentPos += 1;\n    dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n      this.trigger('data_failed');\n    }.bind(this));\n  };\n\n  AnimationItem.prototype.loadSegments = function () {\n    var segments = this.animationData.segments;\n\n    if (!segments) {\n      this.timeCompleted = this.totalFrames;\n    }\n\n    this.loadNextSegment();\n  };\n\n  AnimationItem.prototype.imagesLoaded = function () {\n    this.trigger('loaded_images');\n    this.checkLoaded();\n  };\n\n  AnimationItem.prototype.preloadImages = function () {\n    this.imagePreloader.setAssetsPath(this.assetsPath);\n    this.imagePreloader.setPath(this.path);\n    this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n  };\n\n  AnimationItem.prototype.configAnimation = function (animData) {\n    if (!this.renderer) {\n      return;\n    }\n\n    try {\n      this.animationData = animData;\n\n      if (this.initialSegment) {\n        this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n        this.firstFrame = Math.round(this.initialSegment[0]);\n      } else {\n        this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n        this.firstFrame = Math.round(this.animationData.ip);\n      }\n\n      this.renderer.configAnimation(animData);\n\n      if (!animData.assets) {\n        animData.assets = [];\n      }\n\n      this.assets = this.animationData.assets;\n      this.frameRate = this.animationData.fr;\n      this.frameMult = this.animationData.fr / 1000;\n      this.renderer.searchExtraCompositions(animData.assets);\n      this.markers = markerParser(animData.markers || []);\n      this.trigger('config_ready');\n      this.preloadImages();\n      this.loadSegments();\n      this.updaFrameModifier();\n      this.waitForFontsLoaded();\n\n      if (this.isPaused) {\n        this.audioController.pause();\n      }\n    } catch (error) {\n      this.triggerConfigError(error);\n    }\n  };\n\n  AnimationItem.prototype.waitForFontsLoaded = function () {\n    if (!this.renderer) {\n      return;\n    }\n\n    if (this.renderer.globalData.fontManager.isLoaded) {\n      this.checkLoaded();\n    } else {\n      setTimeout(this.waitForFontsLoaded.bind(this), 20);\n    }\n  };\n\n  AnimationItem.prototype.checkLoaded = function () {\n    if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\n      this.isLoaded = true;\n      var expressionsPlugin = getExpressionsPlugin();\n\n      if (expressionsPlugin) {\n        expressionsPlugin.initExpressions(this);\n      }\n\n      this.renderer.initItems();\n      setTimeout(function () {\n        this.trigger('DOMLoaded');\n      }.bind(this), 0);\n      this.gotoFrame();\n\n      if (this.autoplay) {\n        this.play();\n      }\n    }\n  };\n\n  AnimationItem.prototype.resize = function () {\n    this.renderer.updateContainerSize();\n  };\n\n  AnimationItem.prototype.setSubframe = function (flag) {\n    this.isSubframeEnabled = !!flag;\n  };\n\n  AnimationItem.prototype.gotoFrame = function () {\n    this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n    if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n      this.currentFrame = this.timeCompleted;\n    }\n\n    this.trigger('enterFrame');\n    this.renderFrame();\n    this.trigger('drawnFrame');\n  };\n\n  AnimationItem.prototype.renderFrame = function () {\n    if (this.isLoaded === false || !this.renderer) {\n      return;\n    }\n\n    try {\n      this.renderer.renderFrame(this.currentFrame + this.firstFrame);\n    } catch (error) {\n      this.triggerRenderFrameError(error);\n    }\n  };\n\n  AnimationItem.prototype.play = function (name) {\n    if (name && this.name !== name) {\n      return;\n    }\n\n    if (this.isPaused === true) {\n      this.isPaused = false;\n      this.trigger('_pause');\n      this.audioController.resume();\n\n      if (this._idle) {\n        this._idle = false;\n        this.trigger('_active');\n      }\n    }\n  };\n\n  AnimationItem.prototype.pause = function (name) {\n    if (name && this.name !== name) {\n      return;\n    }\n\n    if (this.isPaused === false) {\n      this.isPaused = true;\n      this.trigger('_play');\n      this._idle = true;\n      this.trigger('_idle');\n      this.audioController.pause();\n    }\n  };\n\n  AnimationItem.prototype.togglePause = function (name) {\n    if (name && this.name !== name) {\n      return;\n    }\n\n    if (this.isPaused === true) {\n      this.play();\n    } else {\n      this.pause();\n    }\n  };\n\n  AnimationItem.prototype.stop = function (name) {\n    if (name && this.name !== name) {\n      return;\n    }\n\n    this.pause();\n    this.playCount = 0;\n    this._completedLoop = false;\n    this.setCurrentRawFrameValue(0);\n  };\n\n  AnimationItem.prototype.getMarkerData = function (markerName) {\n    var marker;\n\n    for (var i = 0; i < this.markers.length; i += 1) {\n      marker = this.markers[i];\n\n      if (marker.payload && marker.payload.name === markerName) {\n        return marker;\n      }\n    }\n\n    return null;\n  };\n\n  AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n    if (name && this.name !== name) {\n      return;\n    }\n\n    var numValue = Number(value);\n\n    if (isNaN(numValue)) {\n      var marker = this.getMarkerData(value);\n\n      if (marker) {\n        this.goToAndStop(marker.time, true);\n      }\n    } else if (isFrame) {\n      this.setCurrentRawFrameValue(value);\n    } else {\n      this.setCurrentRawFrameValue(value * this.frameModifier);\n    }\n\n    this.pause();\n  };\n\n  AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n    if (name && this.name !== name) {\n      return;\n    }\n\n    var numValue = Number(value);\n\n    if (isNaN(numValue)) {\n      var marker = this.getMarkerData(value);\n\n      if (marker) {\n        if (!marker.duration) {\n          this.goToAndStop(marker.time, true);\n        } else {\n          this.playSegments([marker.time, marker.time + marker.duration], true);\n        }\n      }\n    } else {\n      this.goToAndStop(numValue, isFrame, name);\n    }\n\n    this.play();\n  };\n\n  AnimationItem.prototype.advanceTime = function (value) {\n    if (this.isPaused === true || this.isLoaded === false) {\n      return;\n    }\n\n    var nextValue = this.currentRawFrame + value * this.frameModifier;\n    var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n    // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\n    if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n      if (!this.loop || this.playCount === this.loop) {\n        if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n          _isComplete = true;\n          nextValue = this.totalFrames - 1;\n        }\n      } else if (nextValue >= this.totalFrames) {\n        this.playCount += 1;\n\n        if (!this.checkSegments(nextValue % this.totalFrames)) {\n          this.setCurrentRawFrameValue(nextValue % this.totalFrames);\n          this._completedLoop = true;\n          this.trigger('loopComplete');\n        }\n      } else {\n        this.setCurrentRawFrameValue(nextValue);\n      }\n    } else if (nextValue < 0) {\n      if (!this.checkSegments(nextValue % this.totalFrames)) {\n        if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\n          // eslint-disable-line no-plusplus\n          this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\n\n          if (!this._completedLoop) {\n            this._completedLoop = true;\n          } else {\n            this.trigger('loopComplete');\n          }\n        } else {\n          _isComplete = true;\n          nextValue = 0;\n        }\n      }\n    } else {\n      this.setCurrentRawFrameValue(nextValue);\n    }\n\n    if (_isComplete) {\n      this.setCurrentRawFrameValue(nextValue);\n      this.pause();\n      this.trigger('complete');\n    }\n  };\n\n  AnimationItem.prototype.adjustSegment = function (arr, offset) {\n    this.playCount = 0;\n\n    if (arr[1] < arr[0]) {\n      if (this.frameModifier > 0) {\n        if (this.playSpeed < 0) {\n          this.setSpeed(-this.playSpeed);\n        } else {\n          this.setDirection(-1);\n        }\n      }\n\n      this.totalFrames = arr[0] - arr[1];\n      this.timeCompleted = this.totalFrames;\n      this.firstFrame = arr[1];\n      this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n    } else if (arr[1] > arr[0]) {\n      if (this.frameModifier < 0) {\n        if (this.playSpeed < 0) {\n          this.setSpeed(-this.playSpeed);\n        } else {\n          this.setDirection(1);\n        }\n      }\n\n      this.totalFrames = arr[1] - arr[0];\n      this.timeCompleted = this.totalFrames;\n      this.firstFrame = arr[0];\n      this.setCurrentRawFrameValue(0.001 + offset);\n    }\n\n    this.trigger('segmentStart');\n  };\n\n  AnimationItem.prototype.setSegment = function (init, end) {\n    var pendingFrame = -1;\n\n    if (this.isPaused) {\n      if (this.currentRawFrame + this.firstFrame < init) {\n        pendingFrame = init;\n      } else if (this.currentRawFrame + this.firstFrame > end) {\n        pendingFrame = end - init;\n      }\n    }\n\n    this.firstFrame = init;\n    this.totalFrames = end - init;\n    this.timeCompleted = this.totalFrames;\n\n    if (pendingFrame !== -1) {\n      this.goToAndStop(pendingFrame, true);\n    }\n  };\n\n  AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n    if (forceFlag) {\n      this.segments.length = 0;\n    }\n\n    if (_typeof$4(arr[0]) === 'object') {\n      var i;\n      var len = arr.length;\n\n      for (i = 0; i < len; i += 1) {\n        this.segments.push(arr[i]);\n      }\n    } else {\n      this.segments.push(arr);\n    }\n\n    if (this.segments.length && forceFlag) {\n      this.adjustSegment(this.segments.shift(), 0);\n    }\n\n    if (this.isPaused) {\n      this.play();\n    }\n  };\n\n  AnimationItem.prototype.resetSegments = function (forceFlag) {\n    this.segments.length = 0;\n    this.segments.push([this.animationData.ip, this.animationData.op]);\n\n    if (forceFlag) {\n      this.checkSegments(0);\n    }\n  };\n\n  AnimationItem.prototype.checkSegments = function (offset) {\n    if (this.segments.length) {\n      this.adjustSegment(this.segments.shift(), offset);\n      return true;\n    }\n\n    return false;\n  };\n\n  AnimationItem.prototype.destroy = function (name) {\n    if (name && this.name !== name || !this.renderer) {\n      return;\n    }\n\n    this.renderer.destroy();\n    this.imagePreloader.destroy();\n    this.trigger('destroy');\n    this._cbs = null;\n    this.onEnterFrame = null;\n    this.onLoopComplete = null;\n    this.onComplete = null;\n    this.onSegmentStart = null;\n    this.onDestroy = null;\n    this.renderer = null;\n    this.renderer = null;\n    this.imagePreloader = null;\n    this.projectInterface = null;\n  };\n\n  AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n    this.currentRawFrame = value;\n    this.gotoFrame();\n  };\n\n  AnimationItem.prototype.setSpeed = function (val) {\n    this.playSpeed = val;\n    this.updaFrameModifier();\n  };\n\n  AnimationItem.prototype.setDirection = function (val) {\n    this.playDirection = val < 0 ? -1 : 1;\n    this.updaFrameModifier();\n  };\n\n  AnimationItem.prototype.setVolume = function (val, name) {\n    if (name && this.name !== name) {\n      return;\n    }\n\n    this.audioController.setVolume(val);\n  };\n\n  AnimationItem.prototype.getVolume = function () {\n    return this.audioController.getVolume();\n  };\n\n  AnimationItem.prototype.mute = function (name) {\n    if (name && this.name !== name) {\n      return;\n    }\n\n    this.audioController.mute();\n  };\n\n  AnimationItem.prototype.unmute = function (name) {\n    if (name && this.name !== name) {\n      return;\n    }\n\n    this.audioController.unmute();\n  };\n\n  AnimationItem.prototype.updaFrameModifier = function () {\n    this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n    this.audioController.setRate(this.playSpeed * this.playDirection);\n  };\n\n  AnimationItem.prototype.getPath = function () {\n    return this.path;\n  };\n\n  AnimationItem.prototype.getAssetsPath = function (assetData) {\n    var path = '';\n\n    if (assetData.e) {\n      path = assetData.p;\n    } else if (this.assetsPath) {\n      var imagePath = assetData.p;\n\n      if (imagePath.indexOf('images/') !== -1) {\n        imagePath = imagePath.split('/')[1];\n      }\n\n      path = this.assetsPath + imagePath;\n    } else {\n      path = this.path;\n      path += assetData.u ? assetData.u : '';\n      path += assetData.p;\n    }\n\n    return path;\n  };\n\n  AnimationItem.prototype.getAssetData = function (id) {\n    var i = 0;\n    var len = this.assets.length;\n\n    while (i < len) {\n      if (id === this.assets[i].id) {\n        return this.assets[i];\n      }\n\n      i += 1;\n    }\n\n    return null;\n  };\n\n  AnimationItem.prototype.hide = function () {\n    this.renderer.hide();\n  };\n\n  AnimationItem.prototype.show = function () {\n    this.renderer.show();\n  };\n\n  AnimationItem.prototype.getDuration = function (isFrame) {\n    return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n  };\n\n  AnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\n    try {\n      var element = this.renderer.getElementByPath(path);\n      element.updateDocumentData(documentData, index);\n    } catch (error) {// TODO: decide how to handle catch case\n    }\n  };\n\n  AnimationItem.prototype.trigger = function (name) {\n    if (this._cbs && this._cbs[name]) {\n      switch (name) {\n        case 'enterFrame':\n          this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\n          break;\n\n        case 'drawnFrame':\n          this.drawnFrameEvent.currentTime = this.currentFrame;\n          this.drawnFrameEvent.totalTime = this.totalFrames;\n          this.drawnFrameEvent.direction = this.frameModifier;\n          this.triggerEvent(name, this.drawnFrameEvent);\n          break;\n\n        case 'loopComplete':\n          this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n          break;\n\n        case 'complete':\n          this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\n          break;\n\n        case 'segmentStart':\n          this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n          break;\n\n        case 'destroy':\n          this.triggerEvent(name, new BMDestroyEvent(name, this));\n          break;\n\n        default:\n          this.triggerEvent(name);\n      }\n    }\n\n    if (name === 'enterFrame' && this.onEnterFrame) {\n      this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\n    }\n\n    if (name === 'loopComplete' && this.onLoopComplete) {\n      this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n    }\n\n    if (name === 'complete' && this.onComplete) {\n      this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\n    }\n\n    if (name === 'segmentStart' && this.onSegmentStart) {\n      this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n    }\n\n    if (name === 'destroy' && this.onDestroy) {\n      this.onDestroy.call(this, new BMDestroyEvent(name, this));\n    }\n  };\n\n  AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n    var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\n    this.triggerEvent('error', error);\n\n    if (this.onError) {\n      this.onError.call(this, error);\n    }\n  };\n\n  AnimationItem.prototype.triggerConfigError = function (nativeError) {\n    var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\n    this.triggerEvent('error', error);\n\n    if (this.onError) {\n      this.onError.call(this, error);\n    }\n  };\n\n  var animationManager = function () {\n    var moduleOb = {};\n    var registeredAnimations = [];\n    var initTime = 0;\n    var len = 0;\n    var playingAnimationsNum = 0;\n    var _stopped = true;\n    var _isFrozen = false;\n\n    function removeElement(ev) {\n      var i = 0;\n      var animItem = ev.target;\n\n      while (i < len) {\n        if (registeredAnimations[i].animation === animItem) {\n          registeredAnimations.splice(i, 1);\n          i -= 1;\n          len -= 1;\n\n          if (!animItem.isPaused) {\n            subtractPlayingCount();\n          }\n        }\n\n        i += 1;\n      }\n    }\n\n    function registerAnimation(element, animationData) {\n      if (!element) {\n        return null;\n      }\n\n      var i = 0;\n\n      while (i < len) {\n        if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n          return registeredAnimations[i].animation;\n        }\n\n        i += 1;\n      }\n\n      var animItem = new AnimationItem();\n      setupAnimation(animItem, element);\n      animItem.setData(element, animationData);\n      return animItem;\n    }\n\n    function getRegisteredAnimations() {\n      var i;\n      var lenAnims = registeredAnimations.length;\n      var animations = [];\n\n      for (i = 0; i < lenAnims; i += 1) {\n        animations.push(registeredAnimations[i].animation);\n      }\n\n      return animations;\n    }\n\n    function addPlayingCount() {\n      playingAnimationsNum += 1;\n      activate();\n    }\n\n    function subtractPlayingCount() {\n      playingAnimationsNum -= 1;\n    }\n\n    function setupAnimation(animItem, element) {\n      animItem.addEventListener('destroy', removeElement);\n      animItem.addEventListener('_active', addPlayingCount);\n      animItem.addEventListener('_idle', subtractPlayingCount);\n      registeredAnimations.push({\n        elem: element,\n        animation: animItem\n      });\n      len += 1;\n    }\n\n    function loadAnimation(params) {\n      var animItem = new AnimationItem();\n      setupAnimation(animItem, null);\n      animItem.setParams(params);\n      return animItem;\n    }\n\n    function setSpeed(val, animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.setSpeed(val, animation);\n      }\n    }\n\n    function setDirection(val, animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.setDirection(val, animation);\n      }\n    }\n\n    function play(animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.play(animation);\n      }\n    }\n\n    function resume(nowTime) {\n      var elapsedTime = nowTime - initTime;\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.advanceTime(elapsedTime);\n      }\n\n      initTime = nowTime;\n\n      if (playingAnimationsNum && !_isFrozen) {\n        window.requestAnimationFrame(resume);\n      } else {\n        _stopped = true;\n      }\n    }\n\n    function first(nowTime) {\n      initTime = nowTime;\n      window.requestAnimationFrame(resume);\n    }\n\n    function pause(animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.pause(animation);\n      }\n    }\n\n    function goToAndStop(value, isFrame, animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n      }\n    }\n\n    function stop(animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.stop(animation);\n      }\n    }\n\n    function togglePause(animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.togglePause(animation);\n      }\n    }\n\n    function destroy(animation) {\n      var i;\n\n      for (i = len - 1; i >= 0; i -= 1) {\n        registeredAnimations[i].animation.destroy(animation);\n      }\n    }\n\n    function searchAnimations(animationData, standalone, renderer) {\n      var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\n      var i;\n      var lenAnims = animElements.length;\n\n      for (i = 0; i < lenAnims; i += 1) {\n        if (renderer) {\n          animElements[i].setAttribute('data-bm-type', renderer);\n        }\n\n        registerAnimation(animElements[i], animationData);\n      }\n\n      if (standalone && lenAnims === 0) {\n        if (!renderer) {\n          renderer = 'svg';\n        }\n\n        var body = document.getElementsByTagName('body')[0];\n        body.innerText = '';\n        var div = createTag('div');\n        div.style.width = '100%';\n        div.style.height = '100%';\n        div.setAttribute('data-bm-type', renderer);\n        body.appendChild(div);\n        registerAnimation(div, animationData);\n      }\n    }\n\n    function resize() {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.resize();\n      }\n    }\n\n    function activate() {\n      if (!_isFrozen && playingAnimationsNum) {\n        if (_stopped) {\n          window.requestAnimationFrame(first);\n          _stopped = false;\n        }\n      }\n    }\n\n    function freeze() {\n      _isFrozen = true;\n    }\n\n    function unfreeze() {\n      _isFrozen = false;\n      activate();\n    }\n\n    function setVolume(val, animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.setVolume(val, animation);\n      }\n    }\n\n    function mute(animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.mute(animation);\n      }\n    }\n\n    function unmute(animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.unmute(animation);\n      }\n    }\n\n    moduleOb.registerAnimation = registerAnimation;\n    moduleOb.loadAnimation = loadAnimation;\n    moduleOb.setSpeed = setSpeed;\n    moduleOb.setDirection = setDirection;\n    moduleOb.play = play;\n    moduleOb.pause = pause;\n    moduleOb.stop = stop;\n    moduleOb.togglePause = togglePause;\n    moduleOb.searchAnimations = searchAnimations;\n    moduleOb.resize = resize; // moduleOb.start = start;\n\n    moduleOb.goToAndStop = goToAndStop;\n    moduleOb.destroy = destroy;\n    moduleOb.freeze = freeze;\n    moduleOb.unfreeze = unfreeze;\n    moduleOb.setVolume = setVolume;\n    moduleOb.mute = mute;\n    moduleOb.unmute = unmute;\n    moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n    return moduleOb;\n  }();\n\n  /* eslint-disable */\n  var BezierFactory = function () {\n    /**\r\n       * BezierEasing - use bezier curve for transition easing function\r\n       * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n       *\r\n       * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n       * Usage:\r\n       * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n       * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n       *\r\n       */\n    var ob = {};\n    ob.getBezierEasing = getBezierEasing;\n    var beziers = {};\n\n    function getBezierEasing(a, b, c, d, nm) {\n      var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\n\n      if (beziers[str]) {\n        return beziers[str];\n      }\n\n      var bezEasing = new BezierEasing([a, b, c, d]);\n      beziers[str] = bezEasing;\n      return bezEasing;\n    } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n    var NEWTON_ITERATIONS = 4;\n    var NEWTON_MIN_SLOPE = 0.001;\n    var SUBDIVISION_PRECISION = 0.0000001;\n    var SUBDIVISION_MAX_ITERATIONS = 10;\n    var kSplineTableSize = 11;\n    var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n    var float32ArraySupported = typeof Float32Array === 'function';\n\n    function A(aA1, aA2) {\n      return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n    }\n\n    function B(aA1, aA2) {\n      return 3.0 * aA2 - 6.0 * aA1;\n    }\n\n    function C(aA1) {\n      return 3.0 * aA1;\n    } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n    function calcBezier(aT, aA1, aA2) {\n      return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n    } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n    function getSlope(aT, aA1, aA2) {\n      return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n    }\n\n    function binarySubdivide(aX, aA, aB, mX1, mX2) {\n      var currentX,\n          currentT,\n          i = 0;\n\n      do {\n        currentT = aA + (aB - aA) / 2.0;\n        currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n        if (currentX > 0.0) {\n          aB = currentT;\n        } else {\n          aA = currentT;\n        }\n      } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n      return currentT;\n    }\n\n    function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n      for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n        var currentSlope = getSlope(aGuessT, mX1, mX2);\n        if (currentSlope === 0.0) return aGuessT;\n        var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n        aGuessT -= currentX / currentSlope;\n      }\n\n      return aGuessT;\n    }\n    /**\r\n       * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n       */\n\n\n    function BezierEasing(points) {\n      this._p = points;\n      this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n      this._precomputed = false;\n      this.get = this.get.bind(this);\n    }\n\n    BezierEasing.prototype = {\n      get: function get(x) {\n        var mX1 = this._p[0],\n            mY1 = this._p[1],\n            mX2 = this._p[2],\n            mY2 = this._p[3];\n        if (!this._precomputed) this._precompute();\n        if (mX1 === mY1 && mX2 === mY2) return x; // linear\n        // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n        if (x === 0) return 0;\n        if (x === 1) return 1;\n        return calcBezier(this._getTForX(x), mY1, mY2);\n      },\n      // Private part\n      _precompute: function _precompute() {\n        var mX1 = this._p[0],\n            mY1 = this._p[1],\n            mX2 = this._p[2],\n            mY2 = this._p[3];\n        this._precomputed = true;\n\n        if (mX1 !== mY1 || mX2 !== mY2) {\n          this._calcSampleValues();\n        }\n      },\n      _calcSampleValues: function _calcSampleValues() {\n        var mX1 = this._p[0],\n            mX2 = this._p[2];\n\n        for (var i = 0; i < kSplineTableSize; ++i) {\n          this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n        }\n      },\n\n      /**\r\n           * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n           */\n      _getTForX: function _getTForX(aX) {\n        var mX1 = this._p[0],\n            mX2 = this._p[2],\n            mSampleValues = this._mSampleValues;\n        var intervalStart = 0.0;\n        var currentSample = 1;\n        var lastSample = kSplineTableSize - 1;\n\n        for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n          intervalStart += kSampleStepSize;\n        }\n\n        --currentSample; // Interpolate to provide an initial guess for t\n\n        var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n        var guessForT = intervalStart + dist * kSampleStepSize;\n        var initialSlope = getSlope(guessForT, mX1, mX2);\n\n        if (initialSlope >= NEWTON_MIN_SLOPE) {\n          return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n        }\n\n        if (initialSlope === 0.0) {\n          return guessForT;\n        }\n\n        return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n      }\n    };\n    return ob;\n  }();\n\n  var pooling = function () {\n    function _double(arr) {\n      return arr.concat(createSizedArray(arr.length));\n    }\n\n    return {\n      \"double\": _double\n    };\n  }();\n\n  var poolFactory = function () {\n    return function (initialLength, _create, _release) {\n      var _length = 0;\n      var _maxLength = initialLength;\n      var pool = createSizedArray(_maxLength);\n      var ob = {\n        newElement: newElement,\n        release: release\n      };\n\n      function newElement() {\n        var element;\n\n        if (_length) {\n          _length -= 1;\n          element = pool[_length];\n        } else {\n          element = _create();\n        }\n\n        return element;\n      }\n\n      function release(element) {\n        if (_length === _maxLength) {\n          pool = pooling[\"double\"](pool);\n          _maxLength *= 2;\n        }\n\n        if (_release) {\n          _release(element);\n        }\n\n        pool[_length] = element;\n        _length += 1;\n      }\n\n      return ob;\n    };\n  }();\n\n  var bezierLengthPool = function () {\n    function create() {\n      return {\n        addedLength: 0,\n        percents: createTypedArray('float32', getDefaultCurveSegments()),\n        lengths: createTypedArray('float32', getDefaultCurveSegments())\n      };\n    }\n\n    return poolFactory(8, create);\n  }();\n\n  var segmentsLengthPool = function () {\n    function create() {\n      return {\n        lengths: [],\n        totalLength: 0\n      };\n    }\n\n    function release(element) {\n      var i;\n      var len = element.lengths.length;\n\n      for (i = 0; i < len; i += 1) {\n        bezierLengthPool.release(element.lengths[i]);\n      }\n\n      element.lengths.length = 0;\n    }\n\n    return poolFactory(8, create, release);\n  }();\n\n  function bezFunction() {\n    var math = Math;\n\n    function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n      var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n      return det1 > -0.001 && det1 < 0.001;\n    }\n\n    function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n      if (z1 === 0 && z2 === 0 && z3 === 0) {\n        return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n      }\n\n      var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n      var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n      var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n      var diffDist;\n\n      if (dist1 > dist2) {\n        if (dist1 > dist3) {\n          diffDist = dist1 - dist2 - dist3;\n        } else {\n          diffDist = dist3 - dist2 - dist1;\n        }\n      } else if (dist3 > dist2) {\n        diffDist = dist3 - dist2 - dist1;\n      } else {\n        diffDist = dist2 - dist1 - dist3;\n      }\n\n      return diffDist > -0.0001 && diffDist < 0.0001;\n    }\n\n    var getBezierLength = function () {\n      return function (pt1, pt2, pt3, pt4) {\n        var curveSegments = getDefaultCurveSegments();\n        var k;\n        var i;\n        var len;\n        var ptCoord;\n        var perc;\n        var addedLength = 0;\n        var ptDistance;\n        var point = [];\n        var lastPoint = [];\n        var lengthData = bezierLengthPool.newElement();\n        len = pt3.length;\n\n        for (k = 0; k < curveSegments; k += 1) {\n          perc = k / (curveSegments - 1);\n          ptDistance = 0;\n\n          for (i = 0; i < len; i += 1) {\n            ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n            point[i] = ptCoord;\n\n            if (lastPoint[i] !== null) {\n              ptDistance += bmPow(point[i] - lastPoint[i], 2);\n            }\n\n            lastPoint[i] = point[i];\n          }\n\n          if (ptDistance) {\n            ptDistance = bmSqrt(ptDistance);\n            addedLength += ptDistance;\n          }\n\n          lengthData.percents[k] = perc;\n          lengthData.lengths[k] = addedLength;\n        }\n\n        lengthData.addedLength = addedLength;\n        return lengthData;\n      };\n    }();\n\n    function getSegmentsLength(shapeData) {\n      var segmentsLength = segmentsLengthPool.newElement();\n      var closed = shapeData.c;\n      var pathV = shapeData.v;\n      var pathO = shapeData.o;\n      var pathI = shapeData.i;\n      var i;\n      var len = shapeData._length;\n      var lengths = segmentsLength.lengths;\n      var totalLength = 0;\n\n      for (i = 0; i < len - 1; i += 1) {\n        lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n        totalLength += lengths[i].addedLength;\n      }\n\n      if (closed && len) {\n        lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n        totalLength += lengths[i].addedLength;\n      }\n\n      segmentsLength.totalLength = totalLength;\n      return segmentsLength;\n    }\n\n    function BezierData(length) {\n      this.segmentLength = 0;\n      this.points = new Array(length);\n    }\n\n    function PointData(partial, point) {\n      this.partialLength = partial;\n      this.point = point;\n    }\n\n    var buildBezierData = function () {\n      var storedData = {};\n      return function (pt1, pt2, pt3, pt4) {\n        var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\n\n        if (!storedData[bezierName]) {\n          var curveSegments = getDefaultCurveSegments();\n          var k;\n          var i;\n          var len;\n          var ptCoord;\n          var perc;\n          var addedLength = 0;\n          var ptDistance;\n          var point;\n          var lastPoint = null;\n\n          if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n            curveSegments = 2;\n          }\n\n          var bezierData = new BezierData(curveSegments);\n          len = pt3.length;\n\n          for (k = 0; k < curveSegments; k += 1) {\n            point = createSizedArray(len);\n            perc = k / (curveSegments - 1);\n            ptDistance = 0;\n\n            for (i = 0; i < len; i += 1) {\n              ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n              point[i] = ptCoord;\n\n              if (lastPoint !== null) {\n                ptDistance += bmPow(point[i] - lastPoint[i], 2);\n              }\n            }\n\n            ptDistance = bmSqrt(ptDistance);\n            addedLength += ptDistance;\n            bezierData.points[k] = new PointData(ptDistance, point);\n            lastPoint = point;\n          }\n\n          bezierData.segmentLength = addedLength;\n          storedData[bezierName] = bezierData;\n        }\n\n        return storedData[bezierName];\n      };\n    }();\n\n    function getDistancePerc(perc, bezierData) {\n      var percents = bezierData.percents;\n      var lengths = bezierData.lengths;\n      var len = percents.length;\n      var initPos = bmFloor((len - 1) * perc);\n      var lengthPos = perc * bezierData.addedLength;\n      var lPerc = 0;\n\n      if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n        return percents[initPos];\n      }\n\n      var dir = lengths[initPos] > lengthPos ? -1 : 1;\n      var flag = true;\n\n      while (flag) {\n        if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n          lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n          flag = false;\n        } else {\n          initPos += dir;\n        }\n\n        if (initPos < 0 || initPos >= len - 1) {\n          // FIX for TypedArrays that don't store floating point values with enough accuracy\n          if (initPos === len - 1) {\n            return percents[initPos];\n          }\n\n          flag = false;\n        }\n      }\n\n      return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n    }\n\n    function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n      var t1 = getDistancePerc(percent, bezierData);\n      var u1 = 1 - t1;\n      var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n      var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n      return [ptX, ptY];\n    }\n\n    var bezierSegmentPoints = createTypedArray('float32', 8);\n\n    function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n      if (startPerc < 0) {\n        startPerc = 0;\n      } else if (startPerc > 1) {\n        startPerc = 1;\n      }\n\n      var t0 = getDistancePerc(startPerc, bezierData);\n      endPerc = endPerc > 1 ? 1 : endPerc;\n      var t1 = getDistancePerc(endPerc, bezierData);\n      var i;\n      var len = pt1.length;\n      var u0 = 1 - t0;\n      var u1 = 1 - t1;\n      var u0u0u0 = u0 * u0 * u0;\n      var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n      var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n      var t0t0t0 = t0 * t0 * t0; //\n\n      var u0u0u1 = u0 * u0 * u1;\n      var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n      var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n      var t0t0t1 = t0 * t0 * t1; //\n\n      var u0u1u1 = u0 * u1 * u1;\n      var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n      var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n      var t0t1t1 = t0 * t1 * t1; //\n\n      var u1u1u1 = u1 * u1 * u1;\n      var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n      var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n      var t1t1t1 = t1 * t1 * t1;\n\n      for (i = 0; i < len; i += 1) {\n        bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n        bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n        bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n        bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n      }\n\n      return bezierSegmentPoints;\n    }\n\n    return {\n      getSegmentsLength: getSegmentsLength,\n      getNewSegment: getNewSegment,\n      getPointInSegment: getPointInSegment,\n      buildBezierData: buildBezierData,\n      pointOnLine2D: pointOnLine2D,\n      pointOnLine3D: pointOnLine3D\n    };\n  }\n\n  var bez = bezFunction();\n\n  var PropertyFactory = function () {\n    var initFrame = initialDefaultFrame;\n    var mathAbs = Math.abs;\n\n    function interpolateValue(frameNum, caching) {\n      var offsetTime = this.offsetTime;\n      var newValue;\n\n      if (this.propType === 'multidimensional') {\n        newValue = createTypedArray('float32', this.pv.length);\n      }\n\n      var iterationIndex = caching.lastIndex;\n      var i = iterationIndex;\n      var len = this.keyframes.length - 1;\n      var flag = true;\n      var keyData;\n      var nextKeyData;\n      var keyframeMetadata;\n\n      while (flag) {\n        keyData = this.keyframes[i];\n        nextKeyData = this.keyframes[i + 1];\n\n        if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n          if (keyData.h) {\n            keyData = nextKeyData;\n          }\n\n          iterationIndex = 0;\n          break;\n        }\n\n        if (nextKeyData.t - offsetTime > frameNum) {\n          iterationIndex = i;\n          break;\n        }\n\n        if (i < len - 1) {\n          i += 1;\n        } else {\n          iterationIndex = 0;\n          flag = false;\n        }\n      }\n\n      keyframeMetadata = this.keyframesMetadata[i] || {};\n      var k;\n      var kLen;\n      var perc;\n      var jLen;\n      var j;\n      var fnc;\n      var nextKeyTime = nextKeyData.t - offsetTime;\n      var keyTime = keyData.t - offsetTime;\n      var endValue;\n\n      if (keyData.to) {\n        if (!keyframeMetadata.bezierData) {\n          keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n        }\n\n        var bezierData = keyframeMetadata.bezierData;\n\n        if (frameNum >= nextKeyTime || frameNum < keyTime) {\n          var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n          kLen = bezierData.points[ind].point.length;\n\n          for (k = 0; k < kLen; k += 1) {\n            newValue[k] = bezierData.points[ind].point[k];\n          } // caching._lastKeyframeIndex = -1;\n\n        } else {\n          if (keyframeMetadata.__fnct) {\n            fnc = keyframeMetadata.__fnct;\n          } else {\n            fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n            keyframeMetadata.__fnct = fnc;\n          }\n\n          perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n          var distanceInLine = bezierData.segmentLength * perc;\n          var segmentPerc;\n          var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n          j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n          flag = true;\n          jLen = bezierData.points.length;\n\n          while (flag) {\n            addedLength += bezierData.points[j].partialLength;\n\n            if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n              kLen = bezierData.points[j].point.length;\n\n              for (k = 0; k < kLen; k += 1) {\n                newValue[k] = bezierData.points[j].point[k];\n              }\n\n              break;\n            } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n              segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n              kLen = bezierData.points[j].point.length;\n\n              for (k = 0; k < kLen; k += 1) {\n                newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n              }\n\n              break;\n            }\n\n            if (j < jLen - 1) {\n              j += 1;\n            } else {\n              flag = false;\n            }\n          }\n\n          caching._lastPoint = j;\n          caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n          caching._lastKeyframeIndex = i;\n        }\n      } else {\n        var outX;\n        var outY;\n        var inX;\n        var inY;\n        var keyValue;\n        len = keyData.s.length;\n        endValue = nextKeyData.s || keyData.e;\n\n        if (this.sh && keyData.h !== 1) {\n          if (frameNum >= nextKeyTime) {\n            newValue[0] = endValue[0];\n            newValue[1] = endValue[1];\n            newValue[2] = endValue[2];\n          } else if (frameNum <= keyTime) {\n            newValue[0] = keyData.s[0];\n            newValue[1] = keyData.s[1];\n            newValue[2] = keyData.s[2];\n          } else {\n            var quatStart = createQuaternion(keyData.s);\n            var quatEnd = createQuaternion(endValue);\n            var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n            quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n          }\n        } else {\n          for (i = 0; i < len; i += 1) {\n            if (keyData.h !== 1) {\n              if (frameNum >= nextKeyTime) {\n                perc = 1;\n              } else if (frameNum < keyTime) {\n                perc = 0;\n              } else {\n                if (keyData.o.x.constructor === Array) {\n                  if (!keyframeMetadata.__fnct) {\n                    keyframeMetadata.__fnct = [];\n                  }\n\n                  if (!keyframeMetadata.__fnct[i]) {\n                    outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n                    outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n                    inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n                    inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n                    fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n                    keyframeMetadata.__fnct[i] = fnc;\n                  } else {\n                    fnc = keyframeMetadata.__fnct[i];\n                  }\n                } else if (!keyframeMetadata.__fnct) {\n                  outX = keyData.o.x;\n                  outY = keyData.o.y;\n                  inX = keyData.i.x;\n                  inY = keyData.i.y;\n                  fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n                  keyData.keyframeMetadata = fnc;\n                } else {\n                  fnc = keyframeMetadata.__fnct;\n                }\n\n                perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n              }\n            }\n\n            endValue = nextKeyData.s || keyData.e;\n            keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n            if (this.propType === 'multidimensional') {\n              newValue[i] = keyValue;\n            } else {\n              newValue = keyValue;\n            }\n          }\n        }\n      }\n\n      caching.lastIndex = iterationIndex;\n      return newValue;\n    } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n    function slerp(a, b, t) {\n      var out = [];\n      var ax = a[0];\n      var ay = a[1];\n      var az = a[2];\n      var aw = a[3];\n      var bx = b[0];\n      var by = b[1];\n      var bz = b[2];\n      var bw = b[3];\n      var omega;\n      var cosom;\n      var sinom;\n      var scale0;\n      var scale1;\n      cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n      if (cosom < 0.0) {\n        cosom = -cosom;\n        bx = -bx;\n        by = -by;\n        bz = -bz;\n        bw = -bw;\n      }\n\n      if (1.0 - cosom > 0.000001) {\n        omega = Math.acos(cosom);\n        sinom = Math.sin(omega);\n        scale0 = Math.sin((1.0 - t) * omega) / sinom;\n        scale1 = Math.sin(t * omega) / sinom;\n      } else {\n        scale0 = 1.0 - t;\n        scale1 = t;\n      }\n\n      out[0] = scale0 * ax + scale1 * bx;\n      out[1] = scale0 * ay + scale1 * by;\n      out[2] = scale0 * az + scale1 * bz;\n      out[3] = scale0 * aw + scale1 * bw;\n      return out;\n    }\n\n    function quaternionToEuler(out, quat) {\n      var qx = quat[0];\n      var qy = quat[1];\n      var qz = quat[2];\n      var qw = quat[3];\n      var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n      var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n      var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n      out[0] = heading / degToRads;\n      out[1] = attitude / degToRads;\n      out[2] = bank / degToRads;\n    }\n\n    function createQuaternion(values) {\n      var heading = values[0] * degToRads;\n      var attitude = values[1] * degToRads;\n      var bank = values[2] * degToRads;\n      var c1 = Math.cos(heading / 2);\n      var c2 = Math.cos(attitude / 2);\n      var c3 = Math.cos(bank / 2);\n      var s1 = Math.sin(heading / 2);\n      var s2 = Math.sin(attitude / 2);\n      var s3 = Math.sin(bank / 2);\n      var w = c1 * c2 * c3 - s1 * s2 * s3;\n      var x = s1 * s2 * c3 + c1 * c2 * s3;\n      var y = s1 * c2 * c3 + c1 * s2 * s3;\n      var z = c1 * s2 * c3 - s1 * c2 * s3;\n      return [x, y, z, w];\n    }\n\n    function getValueAtCurrentTime() {\n      var frameNum = this.comp.renderedFrame - this.offsetTime;\n      var initTime = this.keyframes[0].t - this.offsetTime;\n      var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\n      if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\n        if (this._caching.lastFrame >= frameNum) {\n          this._caching._lastKeyframeIndex = -1;\n          this._caching.lastIndex = 0;\n        }\n\n        var renderResult = this.interpolateValue(frameNum, this._caching);\n        this.pv = renderResult;\n      }\n\n      this._caching.lastFrame = frameNum;\n      return this.pv;\n    }\n\n    function setVValue(val) {\n      var multipliedValue;\n\n      if (this.propType === 'unidimensional') {\n        multipliedValue = val * this.mult;\n\n        if (mathAbs(this.v - multipliedValue) > 0.00001) {\n          this.v = multipliedValue;\n          this._mdf = true;\n        }\n      } else {\n        var i = 0;\n        var len = this.v.length;\n\n        while (i < len) {\n          multipliedValue = val[i] * this.mult;\n\n          if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n            this.v[i] = multipliedValue;\n            this._mdf = true;\n          }\n\n          i += 1;\n        }\n      }\n    }\n\n    function processEffectsSequence() {\n      if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n        return;\n      }\n\n      if (this.lock) {\n        this.setVValue(this.pv);\n        return;\n      }\n\n      this.lock = true;\n      this._mdf = this._isFirstFrame;\n      var i;\n      var len = this.effectsSequence.length;\n      var finalValue = this.kf ? this.pv : this.data.k;\n\n      for (i = 0; i < len; i += 1) {\n        finalValue = this.effectsSequence[i](finalValue);\n      }\n\n      this.setVValue(finalValue);\n      this._isFirstFrame = false;\n      this.lock = false;\n      this.frameId = this.elem.globalData.frameId;\n    }\n\n    function addEffect(effectFunction) {\n      this.effectsSequence.push(effectFunction);\n      this.container.addDynamicProperty(this);\n    }\n\n    function ValueProperty(elem, data, mult, container) {\n      this.propType = 'unidimensional';\n      this.mult = mult || 1;\n      this.data = data;\n      this.v = mult ? data.k * mult : data.k;\n      this.pv = data.k;\n      this._mdf = false;\n      this.elem = elem;\n      this.container = container;\n      this.comp = elem.comp;\n      this.k = false;\n      this.kf = false;\n      this.vel = 0;\n      this.effectsSequence = [];\n      this._isFirstFrame = true;\n      this.getValue = processEffectsSequence;\n      this.setVValue = setVValue;\n      this.addEffect = addEffect;\n    }\n\n    function MultiDimensionalProperty(elem, data, mult, container) {\n      this.propType = 'multidimensional';\n      this.mult = mult || 1;\n      this.data = data;\n      this._mdf = false;\n      this.elem = elem;\n      this.container = container;\n      this.comp = elem.comp;\n      this.k = false;\n      this.kf = false;\n      this.frameId = -1;\n      var i;\n      var len = data.k.length;\n      this.v = createTypedArray('float32', len);\n      this.pv = createTypedArray('float32', len);\n      this.vel = createTypedArray('float32', len);\n\n      for (i = 0; i < len; i += 1) {\n        this.v[i] = data.k[i] * this.mult;\n        this.pv[i] = data.k[i];\n      }\n\n      this._isFirstFrame = true;\n      this.effectsSequence = [];\n      this.getValue = processEffectsSequence;\n      this.setVValue = setVValue;\n      this.addEffect = addEffect;\n    }\n\n    function KeyframedValueProperty(elem, data, mult, container) {\n      this.propType = 'unidimensional';\n      this.keyframes = data.k;\n      this.keyframesMetadata = [];\n      this.offsetTime = elem.data.st;\n      this.frameId = -1;\n      this._caching = {\n        lastFrame: initFrame,\n        lastIndex: 0,\n        value: 0,\n        _lastKeyframeIndex: -1\n      };\n      this.k = true;\n      this.kf = true;\n      this.data = data;\n      this.mult = mult || 1;\n      this.elem = elem;\n      this.container = container;\n      this.comp = elem.comp;\n      this.v = initFrame;\n      this.pv = initFrame;\n      this._isFirstFrame = true;\n      this.getValue = processEffectsSequence;\n      this.setVValue = setVValue;\n      this.interpolateValue = interpolateValue;\n      this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n      this.addEffect = addEffect;\n    }\n\n    function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n      this.propType = 'multidimensional';\n      var i;\n      var len = data.k.length;\n      var s;\n      var e;\n      var to;\n      var ti;\n\n      for (i = 0; i < len - 1; i += 1) {\n        if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n          s = data.k[i].s;\n          e = data.k[i + 1].s;\n          to = data.k[i].to;\n          ti = data.k[i].ti;\n\n          if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n            data.k[i].to = null;\n            data.k[i].ti = null;\n          }\n\n          if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n            if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n              data.k[i].to = null;\n              data.k[i].ti = null;\n            }\n          }\n        }\n      }\n\n      this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n      this.data = data;\n      this.keyframes = data.k;\n      this.keyframesMetadata = [];\n      this.offsetTime = elem.data.st;\n      this.k = true;\n      this.kf = true;\n      this._isFirstFrame = true;\n      this.mult = mult || 1;\n      this.elem = elem;\n      this.container = container;\n      this.comp = elem.comp;\n      this.getValue = processEffectsSequence;\n      this.setVValue = setVValue;\n      this.interpolateValue = interpolateValue;\n      this.frameId = -1;\n      var arrLen = data.k[0].s.length;\n      this.v = createTypedArray('float32', arrLen);\n      this.pv = createTypedArray('float32', arrLen);\n\n      for (i = 0; i < arrLen; i += 1) {\n        this.v[i] = initFrame;\n        this.pv[i] = initFrame;\n      }\n\n      this._caching = {\n        lastFrame: initFrame,\n        lastIndex: 0,\n        value: createTypedArray('float32', arrLen)\n      };\n      this.addEffect = addEffect;\n    }\n\n    function getProp(elem, data, type, mult, container) {\n      var p;\n\n      if (!data.k.length) {\n        p = new ValueProperty(elem, data, mult, container);\n      } else if (typeof data.k[0] === 'number') {\n        p = new MultiDimensionalProperty(elem, data, mult, container);\n      } else {\n        switch (type) {\n          case 0:\n            p = new KeyframedValueProperty(elem, data, mult, container);\n            break;\n\n          case 1:\n            p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n            break;\n\n          default:\n            break;\n        }\n      }\n\n      if (p.effectsSequence.length) {\n        container.addDynamicProperty(p);\n      }\n\n      return p;\n    }\n\n    var ob = {\n      getProp: getProp\n    };\n    return ob;\n  }();\n\n  function DynamicPropertyContainer() {}\n\n  DynamicPropertyContainer.prototype = {\n    addDynamicProperty: function addDynamicProperty(prop) {\n      if (this.dynamicProperties.indexOf(prop) === -1) {\n        this.dynamicProperties.push(prop);\n        this.container.addDynamicProperty(this);\n        this._isAnimated = true;\n      }\n    },\n    iterateDynamicProperties: function iterateDynamicProperties() {\n      this._mdf = false;\n      var i;\n      var len = this.dynamicProperties.length;\n\n      for (i = 0; i < len; i += 1) {\n        this.dynamicProperties[i].getValue();\n\n        if (this.dynamicProperties[i]._mdf) {\n          this._mdf = true;\n        }\n      }\n    },\n    initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\n      this.container = container;\n      this.dynamicProperties = [];\n      this._mdf = false;\n      this._isAnimated = false;\n    }\n  };\n\n  var pointPool = function () {\n    function create() {\n      return createTypedArray('float32', 2);\n    }\n\n    return poolFactory(8, create);\n  }();\n\n  function ShapePath() {\n    this.c = false;\n    this._length = 0;\n    this._maxLength = 8;\n    this.v = createSizedArray(this._maxLength);\n    this.o = createSizedArray(this._maxLength);\n    this.i = createSizedArray(this._maxLength);\n  }\n\n  ShapePath.prototype.setPathData = function (closed, len) {\n    this.c = closed;\n    this.setLength(len);\n    var i = 0;\n\n    while (i < len) {\n      this.v[i] = pointPool.newElement();\n      this.o[i] = pointPool.newElement();\n      this.i[i] = pointPool.newElement();\n      i += 1;\n    }\n  };\n\n  ShapePath.prototype.setLength = function (len) {\n    while (this._maxLength < len) {\n      this.doubleArrayLength();\n    }\n\n    this._length = len;\n  };\n\n  ShapePath.prototype.doubleArrayLength = function () {\n    this.v = this.v.concat(createSizedArray(this._maxLength));\n    this.i = this.i.concat(createSizedArray(this._maxLength));\n    this.o = this.o.concat(createSizedArray(this._maxLength));\n    this._maxLength *= 2;\n  };\n\n  ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n    var arr;\n    this._length = Math.max(this._length, pos + 1);\n\n    if (this._length >= this._maxLength) {\n      this.doubleArrayLength();\n    }\n\n    switch (type) {\n      case 'v':\n        arr = this.v;\n        break;\n\n      case 'i':\n        arr = this.i;\n        break;\n\n      case 'o':\n        arr = this.o;\n        break;\n\n      default:\n        arr = [];\n        break;\n    }\n\n    if (!arr[pos] || arr[pos] && !replace) {\n      arr[pos] = pointPool.newElement();\n    }\n\n    arr[pos][0] = x;\n    arr[pos][1] = y;\n  };\n\n  ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n    this.setXYAt(vX, vY, 'v', pos, replace);\n    this.setXYAt(oX, oY, 'o', pos, replace);\n    this.setXYAt(iX, iY, 'i', pos, replace);\n  };\n\n  ShapePath.prototype.reverse = function () {\n    var newPath = new ShapePath();\n    newPath.setPathData(this.c, this._length);\n    var vertices = this.v;\n    var outPoints = this.o;\n    var inPoints = this.i;\n    var init = 0;\n\n    if (this.c) {\n      newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n      init = 1;\n    }\n\n    var cnt = this._length - 1;\n    var len = this._length;\n    var i;\n\n    for (i = init; i < len; i += 1) {\n      newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n      cnt -= 1;\n    }\n\n    return newPath;\n  };\n\n  var shapePool = function () {\n    function create() {\n      return new ShapePath();\n    }\n\n    function release(shapePath) {\n      var len = shapePath._length;\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        pointPool.release(shapePath.v[i]);\n        pointPool.release(shapePath.i[i]);\n        pointPool.release(shapePath.o[i]);\n        shapePath.v[i] = null;\n        shapePath.i[i] = null;\n        shapePath.o[i] = null;\n      }\n\n      shapePath._length = 0;\n      shapePath.c = false;\n    }\n\n    function clone(shape) {\n      var cloned = factory.newElement();\n      var i;\n      var len = shape._length === undefined ? shape.v.length : shape._length;\n      cloned.setLength(len);\n      cloned.c = shape.c;\n\n      for (i = 0; i < len; i += 1) {\n        cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n      }\n\n      return cloned;\n    }\n\n    var factory = poolFactory(4, create, release);\n    factory.clone = clone;\n    return factory;\n  }();\n\n  function ShapeCollection() {\n    this._length = 0;\n    this._maxLength = 4;\n    this.shapes = createSizedArray(this._maxLength);\n  }\n\n  ShapeCollection.prototype.addShape = function (shapeData) {\n    if (this._length === this._maxLength) {\n      this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n      this._maxLength *= 2;\n    }\n\n    this.shapes[this._length] = shapeData;\n    this._length += 1;\n  };\n\n  ShapeCollection.prototype.releaseShapes = function () {\n    var i;\n\n    for (i = 0; i < this._length; i += 1) {\n      shapePool.release(this.shapes[i]);\n    }\n\n    this._length = 0;\n  };\n\n  var shapeCollectionPool = function () {\n    var ob = {\n      newShapeCollection: newShapeCollection,\n      release: release\n    };\n    var _length = 0;\n    var _maxLength = 4;\n    var pool = createSizedArray(_maxLength);\n\n    function newShapeCollection() {\n      var shapeCollection;\n\n      if (_length) {\n        _length -= 1;\n        shapeCollection = pool[_length];\n      } else {\n        shapeCollection = new ShapeCollection();\n      }\n\n      return shapeCollection;\n    }\n\n    function release(shapeCollection) {\n      var i;\n      var len = shapeCollection._length;\n\n      for (i = 0; i < len; i += 1) {\n        shapePool.release(shapeCollection.shapes[i]);\n      }\n\n      shapeCollection._length = 0;\n\n      if (_length === _maxLength) {\n        pool = pooling[\"double\"](pool);\n        _maxLength *= 2;\n      }\n\n      pool[_length] = shapeCollection;\n      _length += 1;\n    }\n\n    return ob;\n  }();\n\n  var ShapePropertyFactory = function () {\n    var initFrame = -999999;\n\n    function interpolateShape(frameNum, previousValue, caching) {\n      var iterationIndex = caching.lastIndex;\n      var keyPropS;\n      var keyPropE;\n      var isHold;\n      var j;\n      var k;\n      var jLen;\n      var kLen;\n      var perc;\n      var vertexValue;\n      var kf = this.keyframes;\n\n      if (frameNum < kf[0].t - this.offsetTime) {\n        keyPropS = kf[0].s[0];\n        isHold = true;\n        iterationIndex = 0;\n      } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n        keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n        /* if(kf[kf.length - 1].s){\r\n                  keyPropS = kf[kf.length - 1].s[0];\r\n              }else{\r\n                  keyPropS = kf[kf.length - 2].e[0];\r\n              } */\n\n        isHold = true;\n      } else {\n        var i = iterationIndex;\n        var len = kf.length - 1;\n        var flag = true;\n        var keyData;\n        var nextKeyData;\n        var keyframeMetadata;\n\n        while (flag) {\n          keyData = kf[i];\n          nextKeyData = kf[i + 1];\n\n          if (nextKeyData.t - this.offsetTime > frameNum) {\n            break;\n          }\n\n          if (i < len - 1) {\n            i += 1;\n          } else {\n            flag = false;\n          }\n        }\n\n        keyframeMetadata = this.keyframesMetadata[i] || {};\n        isHold = keyData.h === 1;\n        iterationIndex = i;\n\n        if (!isHold) {\n          if (frameNum >= nextKeyData.t - this.offsetTime) {\n            perc = 1;\n          } else if (frameNum < keyData.t - this.offsetTime) {\n            perc = 0;\n          } else {\n            var fnc;\n\n            if (keyframeMetadata.__fnct) {\n              fnc = keyframeMetadata.__fnct;\n            } else {\n              fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n              keyframeMetadata.__fnct = fnc;\n            }\n\n            perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\n          }\n\n          keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n        }\n\n        keyPropS = keyData.s[0];\n      }\n\n      jLen = previousValue._length;\n      kLen = keyPropS.i[0].length;\n      caching.lastIndex = iterationIndex;\n\n      for (j = 0; j < jLen; j += 1) {\n        for (k = 0; k < kLen; k += 1) {\n          vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n          previousValue.i[j][k] = vertexValue;\n          vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n          previousValue.o[j][k] = vertexValue;\n          vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n          previousValue.v[j][k] = vertexValue;\n        }\n      }\n    }\n\n    function interpolateShapeCurrentTime() {\n      var frameNum = this.comp.renderedFrame - this.offsetTime;\n      var initTime = this.keyframes[0].t - this.offsetTime;\n      var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n      var lastFrame = this._caching.lastFrame;\n\n      if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n        /// /\n        this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n        this.interpolateShape(frameNum, this.pv, this._caching); /// /\n      }\n\n      this._caching.lastFrame = frameNum;\n      return this.pv;\n    }\n\n    function resetShape() {\n      this.paths = this.localShapeCollection;\n    }\n\n    function shapesEqual(shape1, shape2) {\n      if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n        return false;\n      }\n\n      var i;\n      var len = shape1._length;\n\n      for (i = 0; i < len; i += 1) {\n        if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n          return false;\n        }\n      }\n\n      return true;\n    }\n\n    function setVValue(newPath) {\n      if (!shapesEqual(this.v, newPath)) {\n        this.v = shapePool.clone(newPath);\n        this.localShapeCollection.releaseShapes();\n        this.localShapeCollection.addShape(this.v);\n        this._mdf = true;\n        this.paths = this.localShapeCollection;\n      }\n    }\n\n    function processEffectsSequence() {\n      if (this.elem.globalData.frameId === this.frameId) {\n        return;\n      }\n\n      if (!this.effectsSequence.length) {\n        this._mdf = false;\n        return;\n      }\n\n      if (this.lock) {\n        this.setVValue(this.pv);\n        return;\n      }\n\n      this.lock = true;\n      this._mdf = false;\n      var finalValue;\n\n      if (this.kf) {\n        finalValue = this.pv;\n      } else if (this.data.ks) {\n        finalValue = this.data.ks.k;\n      } else {\n        finalValue = this.data.pt.k;\n      }\n\n      var i;\n      var len = this.effectsSequence.length;\n\n      for (i = 0; i < len; i += 1) {\n        finalValue = this.effectsSequence[i](finalValue);\n      }\n\n      this.setVValue(finalValue);\n      this.lock = false;\n      this.frameId = this.elem.globalData.frameId;\n    }\n\n    function ShapeProperty(elem, data, type) {\n      this.propType = 'shape';\n      this.comp = elem.comp;\n      this.container = elem;\n      this.elem = elem;\n      this.data = data;\n      this.k = false;\n      this.kf = false;\n      this._mdf = false;\n      var pathData = type === 3 ? data.pt.k : data.ks.k;\n      this.v = shapePool.clone(pathData);\n      this.pv = shapePool.clone(this.v);\n      this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n      this.paths = this.localShapeCollection;\n      this.paths.addShape(this.v);\n      this.reset = resetShape;\n      this.effectsSequence = [];\n    }\n\n    function addEffect(effectFunction) {\n      this.effectsSequence.push(effectFunction);\n      this.container.addDynamicProperty(this);\n    }\n\n    ShapeProperty.prototype.interpolateShape = interpolateShape;\n    ShapeProperty.prototype.getValue = processEffectsSequence;\n    ShapeProperty.prototype.setVValue = setVValue;\n    ShapeProperty.prototype.addEffect = addEffect;\n\n    function KeyframedShapeProperty(elem, data, type) {\n      this.propType = 'shape';\n      this.comp = elem.comp;\n      this.elem = elem;\n      this.container = elem;\n      this.offsetTime = elem.data.st;\n      this.keyframes = type === 3 ? data.pt.k : data.ks.k;\n      this.keyframesMetadata = [];\n      this.k = true;\n      this.kf = true;\n      var len = this.keyframes[0].s[0].i.length;\n      this.v = shapePool.newElement();\n      this.v.setPathData(this.keyframes[0].s[0].c, len);\n      this.pv = shapePool.clone(this.v);\n      this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n      this.paths = this.localShapeCollection;\n      this.paths.addShape(this.v);\n      this.lastFrame = initFrame;\n      this.reset = resetShape;\n      this._caching = {\n        lastFrame: initFrame,\n        lastIndex: 0\n      };\n      this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n    }\n\n    KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n    KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n    KeyframedShapeProperty.prototype.setVValue = setVValue;\n    KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n    var EllShapeProperty = function () {\n      var cPoint = roundCorner;\n\n      function EllShapePropertyFactory(elem, data) {\n        this.v = shapePool.newElement();\n        this.v.setPathData(true, 4);\n        this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n        this.paths = this.localShapeCollection;\n        this.localShapeCollection.addShape(this.v);\n        this.d = data.d;\n        this.elem = elem;\n        this.comp = elem.comp;\n        this.frameId = -1;\n        this.initDynamicPropertyContainer(elem);\n        this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n        this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\n        if (this.dynamicProperties.length) {\n          this.k = true;\n        } else {\n          this.k = false;\n          this.convertEllToPath();\n        }\n      }\n\n      EllShapePropertyFactory.prototype = {\n        reset: resetShape,\n        getValue: function getValue() {\n          if (this.elem.globalData.frameId === this.frameId) {\n            return;\n          }\n\n          this.frameId = this.elem.globalData.frameId;\n          this.iterateDynamicProperties();\n\n          if (this._mdf) {\n            this.convertEllToPath();\n          }\n        },\n        convertEllToPath: function convertEllToPath() {\n          var p0 = this.p.v[0];\n          var p1 = this.p.v[1];\n          var s0 = this.s.v[0] / 2;\n          var s1 = this.s.v[1] / 2;\n\n          var _cw = this.d !== 3;\n\n          var _v = this.v;\n          _v.v[0][0] = p0;\n          _v.v[0][1] = p1 - s1;\n          _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n          _v.v[1][1] = p1;\n          _v.v[2][0] = p0;\n          _v.v[2][1] = p1 + s1;\n          _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n          _v.v[3][1] = p1;\n          _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n          _v.i[0][1] = p1 - s1;\n          _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n          _v.i[1][1] = p1 - s1 * cPoint;\n          _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n          _v.i[2][1] = p1 + s1;\n          _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n          _v.i[3][1] = p1 + s1 * cPoint;\n          _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n          _v.o[0][1] = p1 - s1;\n          _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n          _v.o[1][1] = p1 + s1 * cPoint;\n          _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n          _v.o[2][1] = p1 + s1;\n          _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n          _v.o[3][1] = p1 - s1 * cPoint;\n        }\n      };\n      extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n      return EllShapePropertyFactory;\n    }();\n\n    var StarShapeProperty = function () {\n      function StarShapePropertyFactory(elem, data) {\n        this.v = shapePool.newElement();\n        this.v.setPathData(true, 0);\n        this.elem = elem;\n        this.comp = elem.comp;\n        this.data = data;\n        this.frameId = -1;\n        this.d = data.d;\n        this.initDynamicPropertyContainer(elem);\n\n        if (data.sy === 1) {\n          this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n          this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n          this.convertToPath = this.convertStarToPath;\n        } else {\n          this.convertToPath = this.convertPolygonToPath;\n        }\n\n        this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n        this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n        this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n        this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n        this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n        this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n        this.localShapeCollection.addShape(this.v);\n        this.paths = this.localShapeCollection;\n\n        if (this.dynamicProperties.length) {\n          this.k = true;\n        } else {\n          this.k = false;\n          this.convertToPath();\n        }\n      }\n\n      StarShapePropertyFactory.prototype = {\n        reset: resetShape,\n        getValue: function getValue() {\n          if (this.elem.globalData.frameId === this.frameId) {\n            return;\n          }\n\n          this.frameId = this.elem.globalData.frameId;\n          this.iterateDynamicProperties();\n\n          if (this._mdf) {\n            this.convertToPath();\n          }\n        },\n        convertStarToPath: function convertStarToPath() {\n          var numPts = Math.floor(this.pt.v) * 2;\n          var angle = Math.PI * 2 / numPts;\n          /* this.v.v.length = numPts;\r\n                  this.v.i.length = numPts;\r\n                  this.v.o.length = numPts; */\n\n          var longFlag = true;\n          var longRad = this.or.v;\n          var shortRad = this.ir.v;\n          var longRound = this.os.v;\n          var shortRound = this.is.v;\n          var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n          var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n          var i;\n          var rad;\n          var roundness;\n          var perimSegment;\n          var currentAng = -Math.PI / 2;\n          currentAng += this.r.v;\n          var dir = this.data.d === 3 ? -1 : 1;\n          this.v._length = 0;\n\n          for (i = 0; i < numPts; i += 1) {\n            rad = longFlag ? longRad : shortRad;\n            roundness = longFlag ? longRound : shortRound;\n            perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n            var x = rad * Math.cos(currentAng);\n            var y = rad * Math.sin(currentAng);\n            var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n            var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n            x += +this.p.v[0];\n            y += +this.p.v[1];\n            this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n            /* this.v.v[i] = [x,y];\r\n                      this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n                      this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n                      this.v._length = numPts; */\n\n            longFlag = !longFlag;\n            currentAng += angle * dir;\n          }\n        },\n        convertPolygonToPath: function convertPolygonToPath() {\n          var numPts = Math.floor(this.pt.v);\n          var angle = Math.PI * 2 / numPts;\n          var rad = this.or.v;\n          var roundness = this.os.v;\n          var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n          var i;\n          var currentAng = -Math.PI * 0.5;\n          var dir = this.data.d === 3 ? -1 : 1;\n          currentAng += this.r.v;\n          this.v._length = 0;\n\n          for (i = 0; i < numPts; i += 1) {\n            var x = rad * Math.cos(currentAng);\n            var y = rad * Math.sin(currentAng);\n            var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n            var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n            x += +this.p.v[0];\n            y += +this.p.v[1];\n            this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n            currentAng += angle * dir;\n          }\n\n          this.paths.length = 0;\n          this.paths[0] = this.v;\n        }\n      };\n      extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n      return StarShapePropertyFactory;\n    }();\n\n    var RectShapeProperty = function () {\n      function RectShapePropertyFactory(elem, data) {\n        this.v = shapePool.newElement();\n        this.v.c = true;\n        this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n        this.localShapeCollection.addShape(this.v);\n        this.paths = this.localShapeCollection;\n        this.elem = elem;\n        this.comp = elem.comp;\n        this.frameId = -1;\n        this.d = data.d;\n        this.initDynamicPropertyContainer(elem);\n        this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n        this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n        this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n\n        if (this.dynamicProperties.length) {\n          this.k = true;\n        } else {\n          this.k = false;\n          this.convertRectToPath();\n        }\n      }\n\n      RectShapePropertyFactory.prototype = {\n        convertRectToPath: function convertRectToPath() {\n          var p0 = this.p.v[0];\n          var p1 = this.p.v[1];\n          var v0 = this.s.v[0] / 2;\n          var v1 = this.s.v[1] / 2;\n          var round = bmMin(v0, v1, this.r.v);\n          var cPoint = round * (1 - roundCorner);\n          this.v._length = 0;\n\n          if (this.d === 2 || this.d === 1) {\n            this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n            this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n            if (round !== 0) {\n              this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n              this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n              this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n              this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n              this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n              this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n            } else {\n              this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n              this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n            }\n          } else {\n            this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n            if (round !== 0) {\n              this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n              this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n              this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n              this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n              this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n              this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n              this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n            } else {\n              this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n              this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n              this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n            }\n          }\n        },\n        getValue: function getValue() {\n          if (this.elem.globalData.frameId === this.frameId) {\n            return;\n          }\n\n          this.frameId = this.elem.globalData.frameId;\n          this.iterateDynamicProperties();\n\n          if (this._mdf) {\n            this.convertRectToPath();\n          }\n        },\n        reset: resetShape\n      };\n      extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n      return RectShapePropertyFactory;\n    }();\n\n    function getShapeProp(elem, data, type) {\n      var prop;\n\n      if (type === 3 || type === 4) {\n        var dataProp = type === 3 ? data.pt : data.ks;\n        var keys = dataProp.k;\n\n        if (keys.length) {\n          prop = new KeyframedShapeProperty(elem, data, type);\n        } else {\n          prop = new ShapeProperty(elem, data, type);\n        }\n      } else if (type === 5) {\n        prop = new RectShapeProperty(elem, data);\n      } else if (type === 6) {\n        prop = new EllShapeProperty(elem, data);\n      } else if (type === 7) {\n        prop = new StarShapeProperty(elem, data);\n      }\n\n      if (prop.k) {\n        elem.addDynamicProperty(prop);\n      }\n\n      return prop;\n    }\n\n    function getConstructorFunction() {\n      return ShapeProperty;\n    }\n\n    function getKeyframedConstructorFunction() {\n      return KeyframedShapeProperty;\n    }\n\n    var ob = {};\n    ob.getShapeProp = getShapeProp;\n    ob.getConstructorFunction = getConstructorFunction;\n    ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n    return ob;\n  }();\n\n  /*!\r\n   Transformation Matrix v2.0\r\n   (c) Epistemex 2014-2015\r\n   www.epistemex.com\r\n   By Ken Fyrstenberg\r\n   Contributions by leeoniya.\r\n   License: MIT, header required.\r\n   */\n\n  /**\r\n   * 2D transformation matrix object initialized with identity matrix.\r\n   *\r\n   * The matrix can synchronize a canvas context by supplying the context\r\n   * as an argument, or later apply current absolute transform to an\r\n   * existing context.\r\n   *\r\n   * All values are handled as floating point values.\r\n   *\r\n   * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n   * @prop {number} a - scale x\r\n   * @prop {number} b - shear y\r\n   * @prop {number} c - shear x\r\n   * @prop {number} d - scale y\r\n   * @prop {number} e - translate x\r\n   * @prop {number} f - translate y\r\n   * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n   * @constructor\r\n   */\n\n  var Matrix = function () {\n    var _cos = Math.cos;\n    var _sin = Math.sin;\n    var _tan = Math.tan;\n    var _rnd = Math.round;\n\n    function reset() {\n      this.props[0] = 1;\n      this.props[1] = 0;\n      this.props[2] = 0;\n      this.props[3] = 0;\n      this.props[4] = 0;\n      this.props[5] = 1;\n      this.props[6] = 0;\n      this.props[7] = 0;\n      this.props[8] = 0;\n      this.props[9] = 0;\n      this.props[10] = 1;\n      this.props[11] = 0;\n      this.props[12] = 0;\n      this.props[13] = 0;\n      this.props[14] = 0;\n      this.props[15] = 1;\n      return this;\n    }\n\n    function rotate(angle) {\n      if (angle === 0) {\n        return this;\n      }\n\n      var mCos = _cos(angle);\n\n      var mSin = _sin(angle);\n\n      return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n    }\n\n    function rotateX(angle) {\n      if (angle === 0) {\n        return this;\n      }\n\n      var mCos = _cos(angle);\n\n      var mSin = _sin(angle);\n\n      return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n    }\n\n    function rotateY(angle) {\n      if (angle === 0) {\n        return this;\n      }\n\n      var mCos = _cos(angle);\n\n      var mSin = _sin(angle);\n\n      return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n    }\n\n    function rotateZ(angle) {\n      if (angle === 0) {\n        return this;\n      }\n\n      var mCos = _cos(angle);\n\n      var mSin = _sin(angle);\n\n      return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n    }\n\n    function shear(sx, sy) {\n      return this._t(1, sy, sx, 1, 0, 0);\n    }\n\n    function skew(ax, ay) {\n      return this.shear(_tan(ax), _tan(ay));\n    }\n\n    function skewFromAxis(ax, angle) {\n      var mCos = _cos(angle);\n\n      var mSin = _sin(angle);\n\n      return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n    }\n\n    function scale(sx, sy, sz) {\n      if (!sz && sz !== 0) {\n        sz = 1;\n      }\n\n      if (sx === 1 && sy === 1 && sz === 1) {\n        return this;\n      }\n\n      return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n    }\n\n    function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n      this.props[0] = a;\n      this.props[1] = b;\n      this.props[2] = c;\n      this.props[3] = d;\n      this.props[4] = e;\n      this.props[5] = f;\n      this.props[6] = g;\n      this.props[7] = h;\n      this.props[8] = i;\n      this.props[9] = j;\n      this.props[10] = k;\n      this.props[11] = l;\n      this.props[12] = m;\n      this.props[13] = n;\n      this.props[14] = o;\n      this.props[15] = p;\n      return this;\n    }\n\n    function translate(tx, ty, tz) {\n      tz = tz || 0;\n\n      if (tx !== 0 || ty !== 0 || tz !== 0) {\n        return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n      }\n\n      return this;\n    }\n\n    function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n      var _p = this.props;\n\n      if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n        // NOTE: commenting this condition because TurboFan deoptimizes code when present\n        // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n        _p[12] = _p[12] * a2 + _p[15] * m2;\n        _p[13] = _p[13] * f2 + _p[15] * n2;\n        _p[14] = _p[14] * k2 + _p[15] * o2;\n        _p[15] *= p2; // }\n\n        this._identityCalculated = false;\n        return this;\n      }\n\n      var a1 = _p[0];\n      var b1 = _p[1];\n      var c1 = _p[2];\n      var d1 = _p[3];\n      var e1 = _p[4];\n      var f1 = _p[5];\n      var g1 = _p[6];\n      var h1 = _p[7];\n      var i1 = _p[8];\n      var j1 = _p[9];\n      var k1 = _p[10];\n      var l1 = _p[11];\n      var m1 = _p[12];\n      var n1 = _p[13];\n      var o1 = _p[14];\n      var p1 = _p[15];\n      /* matrix order (canvas compatible):\r\n           * ace\r\n           * bdf\r\n           * 001\r\n           */\n\n      _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n      _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n      _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n      _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n      _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n      _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n      _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n      _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n      _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n      _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n      _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n      _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n      _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n      _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n      _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n      _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n      this._identityCalculated = false;\n      return this;\n    }\n\n    function isIdentity() {\n      if (!this._identityCalculated) {\n        this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\n        this._identityCalculated = true;\n      }\n\n      return this._identity;\n    }\n\n    function equals(matr) {\n      var i = 0;\n\n      while (i < 16) {\n        if (matr.props[i] !== this.props[i]) {\n          return false;\n        }\n\n        i += 1;\n      }\n\n      return true;\n    }\n\n    function clone(matr) {\n      var i;\n\n      for (i = 0; i < 16; i += 1) {\n        matr.props[i] = this.props[i];\n      }\n\n      return matr;\n    }\n\n    function cloneFromProps(props) {\n      var i;\n\n      for (i = 0; i < 16; i += 1) {\n        this.props[i] = props[i];\n      }\n    }\n\n    function applyToPoint(x, y, z) {\n      return {\n        x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n        y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n        z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\n      };\n      /* return {\r\n           x: x * me.a + y * me.c + me.e,\r\n           y: x * me.b + y * me.d + me.f\r\n           }; */\n    }\n\n    function applyToX(x, y, z) {\n      return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n    }\n\n    function applyToY(x, y, z) {\n      return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n    }\n\n    function applyToZ(x, y, z) {\n      return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n    }\n\n    function getInverseMatrix() {\n      var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n      var a = this.props[5] / determinant;\n      var b = -this.props[1] / determinant;\n      var c = -this.props[4] / determinant;\n      var d = this.props[0] / determinant;\n      var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n      var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n      var inverseMatrix = new Matrix();\n      inverseMatrix.props[0] = a;\n      inverseMatrix.props[1] = b;\n      inverseMatrix.props[4] = c;\n      inverseMatrix.props[5] = d;\n      inverseMatrix.props[12] = e;\n      inverseMatrix.props[13] = f;\n      return inverseMatrix;\n    }\n\n    function inversePoint(pt) {\n      var inverseMatrix = this.getInverseMatrix();\n      return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n    }\n\n    function inversePoints(pts) {\n      var i;\n      var len = pts.length;\n      var retPts = [];\n\n      for (i = 0; i < len; i += 1) {\n        retPts[i] = inversePoint(pts[i]);\n      }\n\n      return retPts;\n    }\n\n    function applyToTriplePoints(pt1, pt2, pt3) {\n      var arr = createTypedArray('float32', 6);\n\n      if (this.isIdentity()) {\n        arr[0] = pt1[0];\n        arr[1] = pt1[1];\n        arr[2] = pt2[0];\n        arr[3] = pt2[1];\n        arr[4] = pt3[0];\n        arr[5] = pt3[1];\n      } else {\n        var p0 = this.props[0];\n        var p1 = this.props[1];\n        var p4 = this.props[4];\n        var p5 = this.props[5];\n        var p12 = this.props[12];\n        var p13 = this.props[13];\n        arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n        arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n        arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n        arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n        arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n        arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n      }\n\n      return arr;\n    }\n\n    function applyToPointArray(x, y, z) {\n      var arr;\n\n      if (this.isIdentity()) {\n        arr = [x, y, z];\n      } else {\n        arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\n      }\n\n      return arr;\n    }\n\n    function applyToPointStringified(x, y) {\n      if (this.isIdentity()) {\n        return x + ',' + y;\n      }\n\n      var _p = this.props;\n      return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n    }\n\n    function toCSS() {\n      // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n      /* if(this.isIdentity()) {\r\n              return '';\r\n          } */\n      var i = 0;\n      var props = this.props;\n      var cssValue = 'matrix3d(';\n      var v = 10000;\n\n      while (i < 16) {\n        cssValue += _rnd(props[i] * v) / v;\n        cssValue += i === 15 ? ')' : ',';\n        i += 1;\n      }\n\n      return cssValue;\n    }\n\n    function roundMatrixProperty(val) {\n      var v = 10000;\n\n      if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n        return _rnd(val * v) / v;\n      }\n\n      return val;\n    }\n\n    function to2dCSS() {\n      // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n      /* if(this.isIdentity()) {\r\n              return '';\r\n          } */\n      var props = this.props;\n\n      var _a = roundMatrixProperty(props[0]);\n\n      var _b = roundMatrixProperty(props[1]);\n\n      var _c = roundMatrixProperty(props[4]);\n\n      var _d = roundMatrixProperty(props[5]);\n\n      var _e = roundMatrixProperty(props[12]);\n\n      var _f = roundMatrixProperty(props[13]);\n\n      return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n    }\n\n    return function () {\n      this.reset = reset;\n      this.rotate = rotate;\n      this.rotateX = rotateX;\n      this.rotateY = rotateY;\n      this.rotateZ = rotateZ;\n      this.skew = skew;\n      this.skewFromAxis = skewFromAxis;\n      this.shear = shear;\n      this.scale = scale;\n      this.setTransform = setTransform;\n      this.translate = translate;\n      this.transform = transform;\n      this.applyToPoint = applyToPoint;\n      this.applyToX = applyToX;\n      this.applyToY = applyToY;\n      this.applyToZ = applyToZ;\n      this.applyToPointArray = applyToPointArray;\n      this.applyToTriplePoints = applyToTriplePoints;\n      this.applyToPointStringified = applyToPointStringified;\n      this.toCSS = toCSS;\n      this.to2dCSS = to2dCSS;\n      this.clone = clone;\n      this.cloneFromProps = cloneFromProps;\n      this.equals = equals;\n      this.inversePoints = inversePoints;\n      this.inversePoint = inversePoint;\n      this.getInverseMatrix = getInverseMatrix;\n      this._t = this.transform;\n      this.isIdentity = isIdentity;\n      this._identity = true;\n      this._identityCalculated = false;\n      this.props = createTypedArray('float32', 16);\n      this.reset();\n    };\n  }();\n\n  function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\n  var lottie = {};\n  var standalone = '__[STANDALONE]__';\n  var animationData = '__[ANIMATIONDATA]__';\n  var renderer = '';\n\n  function setLocation(href) {\n    setLocationHref(href);\n  }\n\n  function searchAnimations() {\n    if (standalone === true) {\n      animationManager.searchAnimations(animationData, standalone, renderer);\n    } else {\n      animationManager.searchAnimations();\n    }\n  }\n\n  function setSubframeRendering(flag) {\n    setSubframeEnabled(flag);\n  }\n\n  function setPrefix(prefix) {\n    setIdPrefix(prefix);\n  }\n\n  function loadAnimation(params) {\n    if (standalone === true) {\n      params.animationData = JSON.parse(animationData);\n    }\n\n    return animationManager.loadAnimation(params);\n  }\n\n  function setQuality(value) {\n    if (typeof value === 'string') {\n      switch (value) {\n        case 'high':\n          setDefaultCurveSegments(200);\n          break;\n\n        default:\n        case 'medium':\n          setDefaultCurveSegments(50);\n          break;\n\n        case 'low':\n          setDefaultCurveSegments(10);\n          break;\n      }\n    } else if (!isNaN(value) && value > 1) {\n      setDefaultCurveSegments(value);\n    }\n\n    if (getDefaultCurveSegments() >= 50) {\n      roundValues(false);\n    } else {\n      roundValues(true);\n    }\n  }\n\n  function inBrowser() {\n    return typeof navigator !== 'undefined';\n  }\n\n  function installPlugin(type, plugin) {\n    if (type === 'expressions') {\n      setExpressionsPlugin(plugin);\n    }\n  }\n\n  function getFactory(name) {\n    switch (name) {\n      case 'propertyFactory':\n        return PropertyFactory;\n\n      case 'shapePropertyFactory':\n        return ShapePropertyFactory;\n\n      case 'matrix':\n        return Matrix;\n\n      default:\n        return null;\n    }\n  }\n\n  lottie.play = animationManager.play;\n  lottie.pause = animationManager.pause;\n  lottie.setLocationHref = setLocation;\n  lottie.togglePause = animationManager.togglePause;\n  lottie.setSpeed = animationManager.setSpeed;\n  lottie.setDirection = animationManager.setDirection;\n  lottie.stop = animationManager.stop;\n  lottie.searchAnimations = searchAnimations;\n  lottie.registerAnimation = animationManager.registerAnimation;\n  lottie.loadAnimation = loadAnimation;\n  lottie.setSubframeRendering = setSubframeRendering;\n  lottie.resize = animationManager.resize; // lottie.start = start;\n\n  lottie.goToAndStop = animationManager.goToAndStop;\n  lottie.destroy = animationManager.destroy;\n  lottie.setQuality = setQuality;\n  lottie.inBrowser = inBrowser;\n  lottie.installPlugin = installPlugin;\n  lottie.freeze = animationManager.freeze;\n  lottie.unfreeze = animationManager.unfreeze;\n  lottie.setVolume = animationManager.setVolume;\n  lottie.mute = animationManager.mute;\n  lottie.unmute = animationManager.unmute;\n  lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n  lottie.useWebWorker = setWebWorker;\n  lottie.setIDPrefix = setPrefix;\n  lottie.__getFactory = getFactory;\n  lottie.version = '5.9.6';\n\n  function checkReady() {\n    if (document.readyState === 'complete') {\n      clearInterval(readyStateCheckInterval);\n      searchAnimations();\n    }\n  }\n\n  function getQueryVariable(variable) {\n    var vars = queryString.split('&');\n\n    for (var i = 0; i < vars.length; i += 1) {\n      var pair = vars[i].split('=');\n\n      if (decodeURIComponent(pair[0]) == variable) {\n        // eslint-disable-line eqeqeq\n        return decodeURIComponent(pair[1]);\n      }\n    }\n\n    return null;\n  }\n\n  var queryString = '';\n\n  if (standalone) {\n    var scripts = document.getElementsByTagName('script');\n    var index = scripts.length - 1;\n    var myScript = scripts[index] || {\n      src: ''\n    };\n    queryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\n\n    renderer = getQueryVariable('renderer');\n  }\n\n  var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\n\n  try {\n    if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\n    ) {\n      window.bodymovin = lottie;\n    }\n  } catch (err) {//\n  }\n\n  var ShapeModifiers = function () {\n    var ob = {};\n    var modifiers = {};\n    ob.registerModifier = registerModifier;\n    ob.getModifier = getModifier;\n\n    function registerModifier(nm, factory) {\n      if (!modifiers[nm]) {\n        modifiers[nm] = factory;\n      }\n    }\n\n    function getModifier(nm, elem, data) {\n      return new modifiers[nm](elem, data);\n    }\n\n    return ob;\n  }();\n\n  function ShapeModifier() {}\n\n  ShapeModifier.prototype.initModifierProperties = function () {};\n\n  ShapeModifier.prototype.addShapeToModifier = function () {};\n\n  ShapeModifier.prototype.addShape = function (data) {\n    if (!this.closed) {\n      // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n      data.sh.container.addDynamicProperty(data.sh);\n      var shapeData = {\n        shape: data.sh,\n        data: data,\n        localShapeCollection: shapeCollectionPool.newShapeCollection()\n      };\n      this.shapes.push(shapeData);\n      this.addShapeToModifier(shapeData);\n\n      if (this._isAnimated) {\n        data.setAsAnimated();\n      }\n    }\n  };\n\n  ShapeModifier.prototype.init = function (elem, data) {\n    this.shapes = [];\n    this.elem = elem;\n    this.initDynamicPropertyContainer(elem);\n    this.initModifierProperties(elem, data);\n    this.frameId = initialDefaultFrame;\n    this.closed = false;\n    this.k = false;\n\n    if (this.dynamicProperties.length) {\n      this.k = true;\n    } else {\n      this.getValue(true);\n    }\n  };\n\n  ShapeModifier.prototype.processKeys = function () {\n    if (this.elem.globalData.frameId === this.frameId) {\n      return;\n    }\n\n    this.frameId = this.elem.globalData.frameId;\n    this.iterateDynamicProperties();\n  };\n\n  extendPrototype([DynamicPropertyContainer], ShapeModifier);\n\n  function TrimModifier() {}\n\n  extendPrototype([ShapeModifier], TrimModifier);\n\n  TrimModifier.prototype.initModifierProperties = function (elem, data) {\n    this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\n    this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\n    this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\n    this.sValue = 0;\n    this.eValue = 0;\n    this.getValue = this.processKeys;\n    this.m = data.m;\n    this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n  };\n\n  TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n    shapeData.pathsData = [];\n  };\n\n  TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n    var segments = [];\n\n    if (e <= 1) {\n      segments.push({\n        s: s,\n        e: e\n      });\n    } else if (s >= 1) {\n      segments.push({\n        s: s - 1,\n        e: e - 1\n      });\n    } else {\n      segments.push({\n        s: s,\n        e: 1\n      });\n      segments.push({\n        s: 0,\n        e: e - 1\n      });\n    }\n\n    var shapeSegments = [];\n    var i;\n    var len = segments.length;\n    var segmentOb;\n\n    for (i = 0; i < len; i += 1) {\n      segmentOb = segments[i];\n\n      if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n        var shapeS;\n        var shapeE;\n\n        if (segmentOb.s * totalModifierLength <= addedLength) {\n          shapeS = 0;\n        } else {\n          shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n        }\n\n        if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n          shapeE = 1;\n        } else {\n          shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n        }\n\n        shapeSegments.push([shapeS, shapeE]);\n      }\n    }\n\n    if (!shapeSegments.length) {\n      shapeSegments.push([0, 0]);\n    }\n\n    return shapeSegments;\n  };\n\n  TrimModifier.prototype.releasePathsData = function (pathsData) {\n    var i;\n    var len = pathsData.length;\n\n    for (i = 0; i < len; i += 1) {\n      segmentsLengthPool.release(pathsData[i]);\n    }\n\n    pathsData.length = 0;\n    return pathsData;\n  };\n\n  TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n    var s;\n    var e;\n\n    if (this._mdf || _isFirstFrame) {\n      var o = this.o.v % 360 / 360;\n\n      if (o < 0) {\n        o += 1;\n      }\n\n      if (this.s.v > 1) {\n        s = 1 + o;\n      } else if (this.s.v < 0) {\n        s = 0 + o;\n      } else {\n        s = this.s.v + o;\n      }\n\n      if (this.e.v > 1) {\n        e = 1 + o;\n      } else if (this.e.v < 0) {\n        e = 0 + o;\n      } else {\n        e = this.e.v + o;\n      }\n\n      if (s > e) {\n        var _s = s;\n        s = e;\n        e = _s;\n      }\n\n      s = Math.round(s * 10000) * 0.0001;\n      e = Math.round(e * 10000) * 0.0001;\n      this.sValue = s;\n      this.eValue = e;\n    } else {\n      s = this.sValue;\n      e = this.eValue;\n    }\n\n    var shapePaths;\n    var i;\n    var len = this.shapes.length;\n    var j;\n    var jLen;\n    var pathsData;\n    var pathData;\n    var totalShapeLength;\n    var totalModifierLength = 0;\n\n    if (e === s) {\n      for (i = 0; i < len; i += 1) {\n        this.shapes[i].localShapeCollection.releaseShapes();\n        this.shapes[i].shape._mdf = true;\n        this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\n\n        if (this._mdf) {\n          this.shapes[i].pathsData.length = 0;\n        }\n      }\n    } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n      var segments = [];\n      var shapeData;\n      var localShapeCollection;\n\n      for (i = 0; i < len; i += 1) {\n        shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n        if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\n          shapeData.shape.paths = shapeData.localShapeCollection;\n        } else {\n          shapePaths = shapeData.shape.paths;\n          jLen = shapePaths._length;\n          totalShapeLength = 0;\n\n          if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n            totalShapeLength = shapeData.totalShapeLength;\n          } else {\n            pathsData = this.releasePathsData(shapeData.pathsData);\n\n            for (j = 0; j < jLen; j += 1) {\n              pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n              pathsData.push(pathData);\n              totalShapeLength += pathData.totalLength;\n            }\n\n            shapeData.totalShapeLength = totalShapeLength;\n            shapeData.pathsData = pathsData;\n          }\n\n          totalModifierLength += totalShapeLength;\n          shapeData.shape._mdf = true;\n        }\n      }\n\n      var shapeS = s;\n      var shapeE = e;\n      var addedLength = 0;\n      var edges;\n\n      for (i = len - 1; i >= 0; i -= 1) {\n        shapeData = this.shapes[i];\n\n        if (shapeData.shape._mdf) {\n          localShapeCollection = shapeData.localShapeCollection;\n          localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\n          if (this.m === 2 && len > 1) {\n            edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n            addedLength += shapeData.totalShapeLength;\n          } else {\n            edges = [[shapeS, shapeE]];\n          }\n\n          jLen = edges.length;\n\n          for (j = 0; j < jLen; j += 1) {\n            shapeS = edges[j][0];\n            shapeE = edges[j][1];\n            segments.length = 0;\n\n            if (shapeE <= 1) {\n              segments.push({\n                s: shapeData.totalShapeLength * shapeS,\n                e: shapeData.totalShapeLength * shapeE\n              });\n            } else if (shapeS >= 1) {\n              segments.push({\n                s: shapeData.totalShapeLength * (shapeS - 1),\n                e: shapeData.totalShapeLength * (shapeE - 1)\n              });\n            } else {\n              segments.push({\n                s: shapeData.totalShapeLength * shapeS,\n                e: shapeData.totalShapeLength\n              });\n              segments.push({\n                s: 0,\n                e: shapeData.totalShapeLength * (shapeE - 1)\n              });\n            }\n\n            var newShapesData = this.addShapes(shapeData, segments[0]);\n\n            if (segments[0].s !== segments[0].e) {\n              if (segments.length > 1) {\n                var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n                if (lastShapeInCollection.c) {\n                  var lastShape = newShapesData.pop();\n                  this.addPaths(newShapesData, localShapeCollection);\n                  newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n                } else {\n                  this.addPaths(newShapesData, localShapeCollection);\n                  newShapesData = this.addShapes(shapeData, segments[1]);\n                }\n              }\n\n              this.addPaths(newShapesData, localShapeCollection);\n            }\n          }\n\n          shapeData.shape.paths = localShapeCollection;\n        }\n      }\n    } else if (this._mdf) {\n      for (i = 0; i < len; i += 1) {\n        // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n        // Don't remove this even if it's losing cached info.\n        this.shapes[i].pathsData.length = 0;\n        this.shapes[i].shape._mdf = true;\n      }\n    }\n  };\n\n  TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n    var i;\n    var len = newPaths.length;\n\n    for (i = 0; i < len; i += 1) {\n      localShapeCollection.addShape(newPaths[i]);\n    }\n  };\n\n  TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n    shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\n    shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\n\n    if (newShape) {\n      shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\n    }\n\n    shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\n  };\n\n  TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n    shapePath.setXYAt(points[1], points[5], 'o', pos);\n    shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\n\n    if (newShape) {\n      shapePath.setXYAt(points[0], points[4], 'v', pos);\n    }\n\n    shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\n  };\n\n  TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n    var pathsData = shapeData.pathsData;\n    var shapePaths = shapeData.shape.paths.shapes;\n    var i;\n    var len = shapeData.shape.paths._length;\n    var j;\n    var jLen;\n    var addedLength = 0;\n    var currentLengthData;\n    var segmentCount;\n    var lengths;\n    var segment;\n    var shapes = [];\n    var initPos;\n    var newShape = true;\n\n    if (!shapePath) {\n      shapePath = shapePool.newElement();\n      segmentCount = 0;\n      initPos = 0;\n    } else {\n      segmentCount = shapePath._length;\n      initPos = shapePath._length;\n    }\n\n    shapes.push(shapePath);\n\n    for (i = 0; i < len; i += 1) {\n      lengths = pathsData[i].lengths;\n      shapePath.c = shapePaths[i].c;\n      jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n      for (j = 1; j < jLen; j += 1) {\n        currentLengthData = lengths[j - 1];\n\n        if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n          addedLength += currentLengthData.addedLength;\n          shapePath.c = false;\n        } else if (addedLength > shapeSegment.e) {\n          shapePath.c = false;\n          break;\n        } else {\n          if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n            this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n            newShape = false;\n          } else {\n            segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n            this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n            newShape = false;\n            shapePath.c = false;\n          }\n\n          addedLength += currentLengthData.addedLength;\n          segmentCount += 1;\n        }\n      }\n\n      if (shapePaths[i].c && lengths.length) {\n        currentLengthData = lengths[j - 1];\n\n        if (addedLength <= shapeSegment.e) {\n          var segmentLength = lengths[j - 1].addedLength;\n\n          if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n            this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n            newShape = false;\n          } else {\n            segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n            this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n            newShape = false;\n            shapePath.c = false;\n          }\n        } else {\n          shapePath.c = false;\n        }\n\n        addedLength += currentLengthData.addedLength;\n        segmentCount += 1;\n      }\n\n      if (shapePath._length) {\n        shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\n        shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\n      }\n\n      if (addedLength > shapeSegment.e) {\n        break;\n      }\n\n      if (i < len - 1) {\n        shapePath = shapePool.newElement();\n        newShape = true;\n        shapes.push(shapePath);\n        segmentCount = 0;\n      }\n    }\n\n    return shapes;\n  };\n\n  function PuckerAndBloatModifier() {}\n\n  extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n  PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n    this.getValue = this.processKeys;\n    this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n    this._isAnimated = !!this.amount.effectsSequence.length;\n  };\n\n  PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n    var percent = amount / 100;\n    var centerPoint = [0, 0];\n    var pathLength = path._length;\n    var i = 0;\n\n    for (i = 0; i < pathLength; i += 1) {\n      centerPoint[0] += path.v[i][0];\n      centerPoint[1] += path.v[i][1];\n    }\n\n    centerPoint[0] /= pathLength;\n    centerPoint[1] /= pathLength;\n    var clonedPath = shapePool.newElement();\n    clonedPath.c = path.c;\n    var vX;\n    var vY;\n    var oX;\n    var oY;\n    var iX;\n    var iY;\n\n    for (i = 0; i < pathLength; i += 1) {\n      vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n      vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n      oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n      oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n      iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n      iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n      clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n    }\n\n    return clonedPath;\n  };\n\n  PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n    var shapePaths;\n    var i;\n    var len = this.shapes.length;\n    var j;\n    var jLen;\n    var amount = this.amount.v;\n\n    if (amount !== 0) {\n      var shapeData;\n      var localShapeCollection;\n\n      for (i = 0; i < len; i += 1) {\n        shapeData = this.shapes[i];\n        localShapeCollection = shapeData.localShapeCollection;\n\n        if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n          localShapeCollection.releaseShapes();\n          shapeData.shape._mdf = true;\n          shapePaths = shapeData.shape.paths.shapes;\n          jLen = shapeData.shape.paths._length;\n\n          for (j = 0; j < jLen; j += 1) {\n            localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n          }\n        }\n\n        shapeData.shape.paths = shapeData.localShapeCollection;\n      }\n    }\n\n    if (!this.dynamicProperties.length) {\n      this._mdf = false;\n    }\n  };\n\n  var TransformPropertyFactory = function () {\n    var defaultVector = [0, 0];\n\n    function applyToMatrix(mat) {\n      var _mdf = this._mdf;\n      this.iterateDynamicProperties();\n      this._mdf = this._mdf || _mdf;\n\n      if (this.a) {\n        mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n      }\n\n      if (this.s) {\n        mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n      }\n\n      if (this.sk) {\n        mat.skewFromAxis(-this.sk.v, this.sa.v);\n      }\n\n      if (this.r) {\n        mat.rotate(-this.r.v);\n      } else {\n        mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n      }\n\n      if (this.data.p.s) {\n        if (this.data.p.z) {\n          mat.translate(this.px.v, this.py.v, -this.pz.v);\n        } else {\n          mat.translate(this.px.v, this.py.v, 0);\n        }\n      } else {\n        mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n      }\n    }\n\n    function processKeys(forceRender) {\n      if (this.elem.globalData.frameId === this.frameId) {\n        return;\n      }\n\n      if (this._isDirty) {\n        this.precalculateMatrix();\n        this._isDirty = false;\n      }\n\n      this.iterateDynamicProperties();\n\n      if (this._mdf || forceRender) {\n        var frameRate;\n        this.v.cloneFromProps(this.pre.props);\n\n        if (this.appliedTransformations < 1) {\n          this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n        }\n\n        if (this.appliedTransformations < 2) {\n          this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n        }\n\n        if (this.sk && this.appliedTransformations < 3) {\n          this.v.skewFromAxis(-this.sk.v, this.sa.v);\n        }\n\n        if (this.r && this.appliedTransformations < 4) {\n          this.v.rotate(-this.r.v);\n        } else if (!this.r && this.appliedTransformations < 4) {\n          this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n        }\n\n        if (this.autoOriented) {\n          var v1;\n          var v2;\n          frameRate = this.elem.globalData.frameRate;\n\n          if (this.p && this.p.keyframes && this.p.getValueAtTime) {\n            if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\n              v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\n              v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\n            } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\n              v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\n              v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n            } else {\n              v1 = this.p.pv;\n              v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\n            }\n          } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n            v1 = [];\n            v2 = [];\n            var px = this.px;\n            var py = this.py;\n\n            if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n              v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n              v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n              v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n              v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n            } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n              v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n              v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n              v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n              v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n            } else {\n              v1 = [px.pv, py.pv];\n              v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n              v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n            }\n          } else {\n            v2 = defaultVector;\n            v1 = v2;\n          }\n\n          this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n        }\n\n        if (this.data.p && this.data.p.s) {\n          if (this.data.p.z) {\n            this.v.translate(this.px.v, this.py.v, -this.pz.v);\n          } else {\n            this.v.translate(this.px.v, this.py.v, 0);\n          }\n        } else {\n          this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n        }\n      }\n\n      this.frameId = this.elem.globalData.frameId;\n    }\n\n    function precalculateMatrix() {\n      if (!this.a.k) {\n        this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n        this.appliedTransformations = 1;\n      } else {\n        return;\n      }\n\n      if (!this.s.effectsSequence.length) {\n        this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n        this.appliedTransformations = 2;\n      } else {\n        return;\n      }\n\n      if (this.sk) {\n        if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n          this.pre.skewFromAxis(-this.sk.v, this.sa.v);\n          this.appliedTransformations = 3;\n        } else {\n          return;\n        }\n      }\n\n      if (this.r) {\n        if (!this.r.effectsSequence.length) {\n          this.pre.rotate(-this.r.v);\n          this.appliedTransformations = 4;\n        }\n      } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\n        this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n        this.appliedTransformations = 4;\n      }\n    }\n\n    function autoOrient() {//\n      // var prevP = this.getValueAtTime();\n    }\n\n    function addDynamicProperty(prop) {\n      this._addDynamicProperty(prop);\n\n      this.elem.addDynamicProperty(prop);\n      this._isDirty = true;\n    }\n\n    function TransformProperty(elem, data, container) {\n      this.elem = elem;\n      this.frameId = -1;\n      this.propType = 'transform';\n      this.data = data;\n      this.v = new Matrix(); // Precalculated matrix with non animated properties\n\n      this.pre = new Matrix();\n      this.appliedTransformations = 0;\n      this.initDynamicPropertyContainer(container || elem);\n\n      if (data.p && data.p.s) {\n        this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n        this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n\n        if (data.p.z) {\n          this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n        }\n      } else {\n        this.p = PropertyFactory.getProp(elem, data.p || {\n          k: [0, 0, 0]\n        }, 1, 0, this);\n      }\n\n      if (data.rx) {\n        this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n        this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n        this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n\n        if (data.or.k[0].ti) {\n          var i;\n          var len = data.or.k.length;\n\n          for (i = 0; i < len; i += 1) {\n            data.or.k[i].to = null;\n            data.or.k[i].ti = null;\n          }\n        }\n\n        this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\n\n        this.or.sh = true;\n      } else {\n        this.r = PropertyFactory.getProp(elem, data.r || {\n          k: 0\n        }, 0, degToRads, this);\n      }\n\n      if (data.sk) {\n        this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n        this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n      }\n\n      this.a = PropertyFactory.getProp(elem, data.a || {\n        k: [0, 0, 0]\n      }, 1, 0, this);\n      this.s = PropertyFactory.getProp(elem, data.s || {\n        k: [100, 100, 100]\n      }, 1, 0.01, this); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n\n      if (data.o) {\n        this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n      } else {\n        this.o = {\n          _mdf: false,\n          v: 1\n        };\n      }\n\n      this._isDirty = true;\n\n      if (!this.dynamicProperties.length) {\n        this.getValue(true);\n      }\n    }\n\n    TransformProperty.prototype = {\n      applyToMatrix: applyToMatrix,\n      getValue: processKeys,\n      precalculateMatrix: precalculateMatrix,\n      autoOrient: autoOrient\n    };\n    extendPrototype([DynamicPropertyContainer], TransformProperty);\n    TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n    TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n    function getTransformProperty(elem, data, container) {\n      return new TransformProperty(elem, data, container);\n    }\n\n    return {\n      getTransformProperty: getTransformProperty\n    };\n  }();\n\n  function RepeaterModifier() {}\n\n  extendPrototype([ShapeModifier], RepeaterModifier);\n\n  RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n    this.getValue = this.processKeys;\n    this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n    this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n    this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n    this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n    this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n    this.data = data;\n\n    if (!this.dynamicProperties.length) {\n      this.getValue(true);\n    }\n\n    this._isAnimated = !!this.dynamicProperties.length;\n    this.pMatrix = new Matrix();\n    this.rMatrix = new Matrix();\n    this.sMatrix = new Matrix();\n    this.tMatrix = new Matrix();\n    this.matrix = new Matrix();\n  };\n\n  RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n    var dir = inv ? -1 : 1;\n    var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n    var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n    pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n    rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n    rMatrix.rotate(-transform.r.v * dir * perc);\n    rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n    sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n    sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n    sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n  };\n\n  RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n    this.elem = elem;\n    this.arr = arr;\n    this.pos = pos;\n    this.elemsData = elemsData;\n    this._currentCopies = 0;\n    this._elements = [];\n    this._groups = [];\n    this.frameId = -1;\n    this.initDynamicPropertyContainer(elem);\n    this.initModifierProperties(elem, arr[pos]);\n\n    while (pos > 0) {\n      pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n      this._elements.unshift(arr[pos]);\n    }\n\n    if (this.dynamicProperties.length) {\n      this.k = true;\n    } else {\n      this.getValue(true);\n    }\n  };\n\n  RepeaterModifier.prototype.resetElements = function (elements) {\n    var i;\n    var len = elements.length;\n\n    for (i = 0; i < len; i += 1) {\n      elements[i]._processed = false;\n\n      if (elements[i].ty === 'gr') {\n        this.resetElements(elements[i].it);\n      }\n    }\n  };\n\n  RepeaterModifier.prototype.cloneElements = function (elements) {\n    var newElements = JSON.parse(JSON.stringify(elements));\n    this.resetElements(newElements);\n    return newElements;\n  };\n\n  RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n    var i;\n    var len = elements.length;\n\n    for (i = 0; i < len; i += 1) {\n      elements[i]._render = renderFlag;\n\n      if (elements[i].ty === 'gr') {\n        this.changeGroupRender(elements[i].it, renderFlag);\n      }\n    }\n  };\n\n  RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n    var items;\n    var itemsTransform;\n    var i;\n    var dir;\n    var cont;\n    var hasReloaded = false;\n\n    if (this._mdf || _isFirstFrame) {\n      var copies = Math.ceil(this.c.v);\n\n      if (this._groups.length < copies) {\n        while (this._groups.length < copies) {\n          var group = {\n            it: this.cloneElements(this._elements),\n            ty: 'gr'\n          };\n          group.it.push({\n            a: {\n              a: 0,\n              ix: 1,\n              k: [0, 0]\n            },\n            nm: 'Transform',\n            o: {\n              a: 0,\n              ix: 7,\n              k: 100\n            },\n            p: {\n              a: 0,\n              ix: 2,\n              k: [0, 0]\n            },\n            r: {\n              a: 1,\n              ix: 6,\n              k: [{\n                s: 0,\n                e: 0,\n                t: 0\n              }, {\n                s: 0,\n                e: 0,\n                t: 1\n              }]\n            },\n            s: {\n              a: 0,\n              ix: 3,\n              k: [100, 100]\n            },\n            sa: {\n              a: 0,\n              ix: 5,\n              k: 0\n            },\n            sk: {\n              a: 0,\n              ix: 4,\n              k: 0\n            },\n            ty: 'tr'\n          });\n          this.arr.splice(0, 0, group);\n\n          this._groups.splice(0, 0, group);\n\n          this._currentCopies += 1;\n        }\n\n        this.elem.reloadShapes();\n        hasReloaded = true;\n      }\n\n      cont = 0;\n      var renderFlag;\n\n      for (i = 0; i <= this._groups.length - 1; i += 1) {\n        renderFlag = cont < copies;\n        this._groups[i]._render = renderFlag;\n        this.changeGroupRender(this._groups[i].it, renderFlag);\n\n        if (!renderFlag) {\n          var elems = this.elemsData[i].it;\n          var transformData = elems[elems.length - 1];\n\n          if (transformData.transform.op.v !== 0) {\n            transformData.transform.op._mdf = true;\n            transformData.transform.op.v = 0;\n          } else {\n            transformData.transform.op._mdf = false;\n          }\n        }\n\n        cont += 1;\n      }\n\n      this._currentCopies = copies; /// /\n\n      var offset = this.o.v;\n      var offsetModulo = offset % 1;\n      var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n      var pProps = this.pMatrix.props;\n      var rProps = this.rMatrix.props;\n      var sProps = this.sMatrix.props;\n      this.pMatrix.reset();\n      this.rMatrix.reset();\n      this.sMatrix.reset();\n      this.tMatrix.reset();\n      this.matrix.reset();\n      var iteration = 0;\n\n      if (offset > 0) {\n        while (iteration < roundOffset) {\n          this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n          iteration += 1;\n        }\n\n        if (offsetModulo) {\n          this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n          iteration += offsetModulo;\n        }\n      } else if (offset < 0) {\n        while (iteration > roundOffset) {\n          this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n          iteration -= 1;\n        }\n\n        if (offsetModulo) {\n          this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n          iteration -= offsetModulo;\n        }\n      }\n\n      i = this.data.m === 1 ? 0 : this._currentCopies - 1;\n      dir = this.data.m === 1 ? 1 : -1;\n      cont = this._currentCopies;\n      var j;\n      var jLen;\n\n      while (cont) {\n        items = this.elemsData[i].it;\n        itemsTransform = items[items.length - 1].transform.mProps.v.props;\n        jLen = itemsTransform.length;\n        items[items.length - 1].transform.mProps._mdf = true;\n        items[items.length - 1].transform.op._mdf = true;\n        items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\n\n        if (iteration !== 0) {\n          if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\n            this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n          }\n\n          this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n          this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n          this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n\n          for (j = 0; j < jLen; j += 1) {\n            itemsTransform[j] = this.matrix.props[j];\n          }\n\n          this.matrix.reset();\n        } else {\n          this.matrix.reset();\n\n          for (j = 0; j < jLen; j += 1) {\n            itemsTransform[j] = this.matrix.props[j];\n          }\n        }\n\n        iteration += 1;\n        cont -= 1;\n        i += dir;\n      }\n    } else {\n      cont = this._currentCopies;\n      i = 0;\n      dir = 1;\n\n      while (cont) {\n        items = this.elemsData[i].it;\n        itemsTransform = items[items.length - 1].transform.mProps.v.props;\n        items[items.length - 1].transform.mProps._mdf = false;\n        items[items.length - 1].transform.op._mdf = false;\n        cont -= 1;\n        i += dir;\n      }\n    }\n\n    return hasReloaded;\n  };\n\n  RepeaterModifier.prototype.addShape = function () {};\n\n  function RoundCornersModifier() {}\n\n  extendPrototype([ShapeModifier], RoundCornersModifier);\n\n  RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n    this.getValue = this.processKeys;\n    this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n    this._isAnimated = !!this.rd.effectsSequence.length;\n  };\n\n  RoundCornersModifier.prototype.processPath = function (path, round) {\n    var clonedPath = shapePool.newElement();\n    clonedPath.c = path.c;\n    var i;\n    var len = path._length;\n    var currentV;\n    var currentI;\n    var currentO;\n    var closerV;\n    var distance;\n    var newPosPerc;\n    var index = 0;\n    var vX;\n    var vY;\n    var oX;\n    var oY;\n    var iX;\n    var iY;\n\n    for (i = 0; i < len; i += 1) {\n      currentV = path.v[i];\n      currentO = path.o[i];\n      currentI = path.i[i];\n\n      if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n        if ((i === 0 || i === len - 1) && !path.c) {\n          clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n          /* clonedPath.v[index] = currentV;\r\n                  clonedPath.o[index] = currentO;\r\n                  clonedPath.i[index] = currentI; */\n\n          index += 1;\n        } else {\n          if (i === 0) {\n            closerV = path.v[len - 1];\n          } else {\n            closerV = path.v[i - 1];\n          }\n\n          distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n          newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n          iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n          vX = iX;\n          iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n          vY = iY;\n          oX = vX - (vX - currentV[0]) * roundCorner;\n          oY = vY - (vY - currentV[1]) * roundCorner;\n          clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n          index += 1;\n\n          if (i === len - 1) {\n            closerV = path.v[0];\n          } else {\n            closerV = path.v[i + 1];\n          }\n\n          distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n          newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n          oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n          vX = oX;\n          oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n          vY = oY;\n          iX = vX - (vX - currentV[0]) * roundCorner;\n          iY = vY - (vY - currentV[1]) * roundCorner;\n          clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n          index += 1;\n        }\n      } else {\n        clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n        index += 1;\n      }\n    }\n\n    return clonedPath;\n  };\n\n  RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n    var shapePaths;\n    var i;\n    var len = this.shapes.length;\n    var j;\n    var jLen;\n    var rd = this.rd.v;\n\n    if (rd !== 0) {\n      var shapeData;\n      var localShapeCollection;\n\n      for (i = 0; i < len; i += 1) {\n        shapeData = this.shapes[i];\n        localShapeCollection = shapeData.localShapeCollection;\n\n        if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n          localShapeCollection.releaseShapes();\n          shapeData.shape._mdf = true;\n          shapePaths = shapeData.shape.paths.shapes;\n          jLen = shapeData.shape.paths._length;\n\n          for (j = 0; j < jLen; j += 1) {\n            localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n          }\n        }\n\n        shapeData.shape.paths = shapeData.localShapeCollection;\n      }\n    }\n\n    if (!this.dynamicProperties.length) {\n      this._mdf = false;\n    }\n  };\n\n  function getFontProperties(fontData) {\n    var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n    var fWeight = 'normal';\n    var fStyle = 'normal';\n    var len = styles.length;\n    var styleName;\n\n    for (var i = 0; i < len; i += 1) {\n      styleName = styles[i].toLowerCase();\n\n      switch (styleName) {\n        case 'italic':\n          fStyle = 'italic';\n          break;\n\n        case 'bold':\n          fWeight = '700';\n          break;\n\n        case 'black':\n          fWeight = '900';\n          break;\n\n        case 'medium':\n          fWeight = '500';\n          break;\n\n        case 'regular':\n        case 'normal':\n          fWeight = '400';\n          break;\n\n        case 'light':\n        case 'thin':\n          fWeight = '200';\n          break;\n\n        default:\n          break;\n      }\n    }\n\n    return {\n      style: fStyle,\n      weight: fontData.fWeight || fWeight\n    };\n  }\n\n  var FontManager = function () {\n    var maxWaitingTime = 5000;\n    var emptyChar = {\n      w: 0,\n      size: 0,\n      shapes: [],\n      data: {\n        shapes: []\n      }\n    };\n    var combinedCharacters = []; // Hindi characters\n\n    combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n    var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\n    var zeroWidthJoiner = [65039, 8205];\n\n    function trimFontOptions(font) {\n      var familyArray = font.split(',');\n      var i;\n      var len = familyArray.length;\n      var enabledFamilies = [];\n\n      for (i = 0; i < len; i += 1) {\n        if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n          enabledFamilies.push(familyArray[i]);\n        }\n      }\n\n      return enabledFamilies.join(',');\n    }\n\n    function setUpNode(font, family) {\n      var parentNode = createTag('span'); // Node is invisible to screen readers.\n\n      parentNode.setAttribute('aria-hidden', true);\n      parentNode.style.fontFamily = family;\n      var node = createTag('span'); // Characters that vary significantly among different fonts\n\n      node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\n\n      parentNode.style.position = 'absolute';\n      parentNode.style.left = '-10000px';\n      parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\n\n      parentNode.style.fontSize = '300px'; // Reset any font properties\n\n      parentNode.style.fontVariant = 'normal';\n      parentNode.style.fontStyle = 'normal';\n      parentNode.style.fontWeight = 'normal';\n      parentNode.style.letterSpacing = '0';\n      parentNode.appendChild(node);\n      document.body.appendChild(parentNode); // Remember width with no applied web font\n\n      var width = node.offsetWidth;\n      node.style.fontFamily = trimFontOptions(font) + ', ' + family;\n      return {\n        node: node,\n        w: width,\n        parent: parentNode\n      };\n    }\n\n    function checkLoadedFonts() {\n      var i;\n      var len = this.fonts.length;\n      var node;\n      var w;\n      var loadedCount = len;\n\n      for (i = 0; i < len; i += 1) {\n        if (this.fonts[i].loaded) {\n          loadedCount -= 1;\n        } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n          this.fonts[i].loaded = true;\n        } else {\n          node = this.fonts[i].monoCase.node;\n          w = this.fonts[i].monoCase.w;\n\n          if (node.offsetWidth !== w) {\n            loadedCount -= 1;\n            this.fonts[i].loaded = true;\n          } else {\n            node = this.fonts[i].sansCase.node;\n            w = this.fonts[i].sansCase.w;\n\n            if (node.offsetWidth !== w) {\n              loadedCount -= 1;\n              this.fonts[i].loaded = true;\n            }\n          }\n\n          if (this.fonts[i].loaded) {\n            this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n            this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n          }\n        }\n      }\n\n      if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n        setTimeout(this.checkLoadedFontsBinded, 20);\n      } else {\n        setTimeout(this.setIsLoadedBinded, 10);\n      }\n    }\n\n    function createHelper(fontData, def) {\n      var engine = document.body && def ? 'svg' : 'canvas';\n      var helper;\n      var fontProps = getFontProperties(fontData);\n\n      if (engine === 'svg') {\n        var tHelper = createNS('text');\n        tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\n\n        tHelper.setAttribute('font-family', fontData.fFamily);\n        tHelper.setAttribute('font-style', fontProps.style);\n        tHelper.setAttribute('font-weight', fontProps.weight);\n        tHelper.textContent = '1';\n\n        if (fontData.fClass) {\n          tHelper.style.fontFamily = 'inherit';\n          tHelper.setAttribute('class', fontData.fClass);\n        } else {\n          tHelper.style.fontFamily = fontData.fFamily;\n        }\n\n        def.appendChild(tHelper);\n        helper = tHelper;\n      } else {\n        var tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\n        tCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\n        helper = tCanvasHelper;\n      }\n\n      function measure(text) {\n        if (engine === 'svg') {\n          helper.textContent = text;\n          return helper.getComputedTextLength();\n        }\n\n        return helper.measureText(text).width;\n      }\n\n      return {\n        measureText: measure\n      };\n    }\n\n    function addFonts(fontData, defs) {\n      if (!fontData) {\n        this.isLoaded = true;\n        return;\n      }\n\n      if (this.chars) {\n        this.isLoaded = true;\n        this.fonts = fontData.list;\n        return;\n      }\n\n      if (!document.body) {\n        this.isLoaded = true;\n        fontData.list.forEach(function (data) {\n          data.helper = createHelper(data);\n          data.cache = {};\n        });\n        this.fonts = fontData.list;\n        return;\n      }\n\n      var fontArr = fontData.list;\n      var i;\n      var len = fontArr.length;\n      var _pendingFonts = len;\n\n      for (i = 0; i < len; i += 1) {\n        var shouldLoadFont = true;\n        var loadedSelector;\n        var j;\n        fontArr[i].loaded = false;\n        fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\n        fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\n\n        if (!fontArr[i].fPath) {\n          fontArr[i].loaded = true;\n          _pendingFonts -= 1;\n        } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\n          loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\n\n          if (loadedSelector.length > 0) {\n            shouldLoadFont = false;\n          }\n\n          if (shouldLoadFont) {\n            var s = createTag('style');\n            s.setAttribute('f-forigin', fontArr[i].fOrigin);\n            s.setAttribute('f-origin', fontArr[i].origin);\n            s.setAttribute('f-family', fontArr[i].fFamily);\n            s.type = 'text/css';\n            s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n            defs.appendChild(s);\n          }\n        } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\n          loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\n\n          for (j = 0; j < loadedSelector.length; j += 1) {\n            if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n              // Font is already loaded\n              shouldLoadFont = false;\n            }\n          }\n\n          if (shouldLoadFont) {\n            var l = createTag('link');\n            l.setAttribute('f-forigin', fontArr[i].fOrigin);\n            l.setAttribute('f-origin', fontArr[i].origin);\n            l.type = 'text/css';\n            l.rel = 'stylesheet';\n            l.href = fontArr[i].fPath;\n            document.body.appendChild(l);\n          }\n        } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\n          loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\n\n          for (j = 0; j < loadedSelector.length; j += 1) {\n            if (fontArr[i].fPath === loadedSelector[j].src) {\n              // Font is already loaded\n              shouldLoadFont = false;\n            }\n          }\n\n          if (shouldLoadFont) {\n            var sc = createTag('link');\n            sc.setAttribute('f-forigin', fontArr[i].fOrigin);\n            sc.setAttribute('f-origin', fontArr[i].origin);\n            sc.setAttribute('rel', 'stylesheet');\n            sc.setAttribute('href', fontArr[i].fPath);\n            defs.appendChild(sc);\n          }\n        }\n\n        fontArr[i].helper = createHelper(fontArr[i], defs);\n        fontArr[i].cache = {};\n        this.fonts.push(fontArr[i]);\n      }\n\n      if (_pendingFonts === 0) {\n        this.isLoaded = true;\n      } else {\n        // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n        // Adding this timeout seems to fix it\n        setTimeout(this.checkLoadedFonts.bind(this), 100);\n      }\n    }\n\n    function addChars(chars) {\n      if (!chars) {\n        return;\n      }\n\n      if (!this.chars) {\n        this.chars = [];\n      }\n\n      var i;\n      var len = chars.length;\n      var j;\n      var jLen = this.chars.length;\n      var found;\n\n      for (i = 0; i < len; i += 1) {\n        j = 0;\n        found = false;\n\n        while (j < jLen) {\n          if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\n            found = true;\n          }\n\n          j += 1;\n        }\n\n        if (!found) {\n          this.chars.push(chars[i]);\n          jLen += 1;\n        }\n      }\n    }\n\n    function getCharData(_char, style, font) {\n      var i = 0;\n      var len = this.chars.length;\n\n      while (i < len) {\n        if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\n          return this.chars[i];\n        }\n\n        i += 1;\n      }\n\n      if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\n      && !this._warned) {\n        this._warned = true;\n        console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\n      }\n\n      return emptyChar;\n    }\n\n    function measureText(_char2, fontName, size) {\n      var fontData = this.getFontByName(fontName);\n\n      var index = _char2.charCodeAt(0);\n\n      if (!fontData.cache[index + 1]) {\n        var tHelper = fontData.helper;\n\n        if (_char2 === ' ') {\n          var doubleSize = tHelper.measureText('|' + _char2 + '|');\n          var singleSize = tHelper.measureText('||');\n          fontData.cache[index + 1] = (doubleSize - singleSize) / 100;\n        } else {\n          fontData.cache[index + 1] = tHelper.measureText(_char2) / 100;\n        }\n      }\n\n      return fontData.cache[index + 1] * size;\n    }\n\n    function getFontByName(name) {\n      var i = 0;\n      var len = this.fonts.length;\n\n      while (i < len) {\n        if (this.fonts[i].fName === name) {\n          return this.fonts[i];\n        }\n\n        i += 1;\n      }\n\n      return this.fonts[0];\n    }\n\n    function isModifier(firstCharCode, secondCharCode) {\n      var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n      return surrogateModifiers.indexOf(sum) !== -1;\n    }\n\n    function isZeroWidthJoiner(firstCharCode, secondCharCode) {\n      if (!secondCharCode) {\n        return firstCharCode === zeroWidthJoiner[1];\n      }\n\n      return firstCharCode === zeroWidthJoiner[0] && secondCharCode === zeroWidthJoiner[1];\n    }\n\n    function isCombinedCharacter(_char3) {\n      return combinedCharacters.indexOf(_char3) !== -1;\n    }\n\n    function setIsLoaded() {\n      this.isLoaded = true;\n    }\n\n    var Font = function Font() {\n      this.fonts = [];\n      this.chars = null;\n      this.typekitLoaded = 0;\n      this.isLoaded = false;\n      this._warned = false;\n      this.initTime = Date.now();\n      this.setIsLoadedBinded = this.setIsLoaded.bind(this);\n      this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n    };\n\n    Font.isModifier = isModifier;\n    Font.isZeroWidthJoiner = isZeroWidthJoiner;\n    Font.isCombinedCharacter = isCombinedCharacter;\n    var fontPrototype = {\n      addChars: addChars,\n      addFonts: addFonts,\n      getCharData: getCharData,\n      getFontByName: getFontByName,\n      measureText: measureText,\n      checkLoadedFonts: checkLoadedFonts,\n      setIsLoaded: setIsLoaded\n    };\n    Font.prototype = fontPrototype;\n    return Font;\n  }();\n\n  function RenderableElement() {}\n\n  RenderableElement.prototype = {\n    initRenderable: function initRenderable() {\n      // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n      this.isInRange = false; // layer's display state\n\n      this.hidden = false; // If layer's transparency equals 0, it can be hidden\n\n      this.isTransparent = false; // list of animated components\n\n      this.renderableComponents = [];\n    },\n    addRenderableComponent: function addRenderableComponent(component) {\n      if (this.renderableComponents.indexOf(component) === -1) {\n        this.renderableComponents.push(component);\n      }\n    },\n    removeRenderableComponent: function removeRenderableComponent(component) {\n      if (this.renderableComponents.indexOf(component) !== -1) {\n        this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n      }\n    },\n    prepareRenderableFrame: function prepareRenderableFrame(num) {\n      this.checkLayerLimits(num);\n    },\n    checkTransparency: function checkTransparency() {\n      if (this.finalTransform.mProp.o.v <= 0) {\n        if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n          this.isTransparent = true;\n          this.hide();\n        }\n      } else if (this.isTransparent) {\n        this.isTransparent = false;\n        this.show();\n      }\n    },\n\n    /**\r\n       * @function\r\n       * Initializes frame related properties.\r\n       *\r\n       * @param {number} num\r\n       * current frame number in Layer's time\r\n       *\r\n       */\n    checkLayerLimits: function checkLayerLimits(num) {\n      if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n        if (this.isInRange !== true) {\n          this.globalData._mdf = true;\n          this._mdf = true;\n          this.isInRange = true;\n          this.show();\n        }\n      } else if (this.isInRange !== false) {\n        this.globalData._mdf = true;\n        this.isInRange = false;\n        this.hide();\n      }\n    },\n    renderRenderable: function renderRenderable() {\n      var i;\n      var len = this.renderableComponents.length;\n\n      for (i = 0; i < len; i += 1) {\n        this.renderableComponents[i].renderFrame(this._isFirstFrame);\n      }\n      /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n          this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n    },\n    sourceRectAtTime: function sourceRectAtTime() {\n      return {\n        top: 0,\n        left: 0,\n        width: 100,\n        height: 100\n      };\n    },\n    getLayerSize: function getLayerSize() {\n      if (this.data.ty === 5) {\n        return {\n          w: this.data.textData.width,\n          h: this.data.textData.height\n        };\n      }\n\n      return {\n        w: this.data.width,\n        h: this.data.height\n      };\n    }\n  };\n\n  var MaskManagerInterface = function () {\n    function MaskInterface(mask, data) {\n      this._mask = mask;\n      this._data = data;\n    }\n\n    Object.defineProperty(MaskInterface.prototype, 'maskPath', {\n      get: function get() {\n        if (this._mask.prop.k) {\n          this._mask.prop.getValue();\n        }\n\n        return this._mask.prop;\n      }\n    });\n    Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\n      get: function get() {\n        if (this._mask.op.k) {\n          this._mask.op.getValue();\n        }\n\n        return this._mask.op.v * 100;\n      }\n    });\n\n    var MaskManager = function MaskManager(maskManager) {\n      var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n      var i;\n      var len = maskManager.viewData.length;\n\n      for (i = 0; i < len; i += 1) {\n        _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n      }\n\n      var maskFunction = function maskFunction(name) {\n        i = 0;\n\n        while (i < len) {\n          if (maskManager.masksProperties[i].nm === name) {\n            return _masksInterfaces[i];\n          }\n\n          i += 1;\n        }\n\n        return null;\n      };\n\n      return maskFunction;\n    };\n\n    return MaskManager;\n  }();\n\n  var ExpressionPropertyInterface = function () {\n    var defaultUnidimensionalValue = {\n      pv: 0,\n      v: 0,\n      mult: 1\n    };\n    var defaultMultidimensionalValue = {\n      pv: [0, 0, 0],\n      v: [0, 0, 0],\n      mult: 1\n    };\n\n    function completeProperty(expressionValue, property, type) {\n      Object.defineProperty(expressionValue, 'velocity', {\n        get: function get() {\n          return property.getVelocityAtTime(property.comp.currentFrame);\n        }\n      });\n      expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n      expressionValue.key = function (pos) {\n        if (!expressionValue.numKeys) {\n          return 0;\n        }\n\n        var value = '';\n\n        if ('s' in property.keyframes[pos - 1]) {\n          value = property.keyframes[pos - 1].s;\n        } else if ('e' in property.keyframes[pos - 2]) {\n          value = property.keyframes[pos - 2].e;\n        } else {\n          value = property.keyframes[pos - 2].s;\n        }\n\n        var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n        valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n        valueProp.value = type === 'unidimensional' ? value[0] : value;\n        return valueProp;\n      };\n\n      expressionValue.valueAtTime = property.getValueAtTime;\n      expressionValue.speedAtTime = property.getSpeedAtTime;\n      expressionValue.velocityAtTime = property.getVelocityAtTime;\n      expressionValue.propertyGroup = property.propertyGroup;\n    }\n\n    function UnidimensionalPropertyInterface(property) {\n      if (!property || !('pv' in property)) {\n        property = defaultUnidimensionalValue;\n      }\n\n      var mult = 1 / property.mult;\n      var val = property.pv * mult;\n      var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n      expressionValue.value = val;\n      completeProperty(expressionValue, property, 'unidimensional');\n      return function () {\n        if (property.k) {\n          property.getValue();\n        }\n\n        val = property.v * mult;\n\n        if (expressionValue.value !== val) {\n          expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n          expressionValue.value = val;\n          completeProperty(expressionValue, property, 'unidimensional');\n        }\n\n        return expressionValue;\n      };\n    }\n\n    function MultidimensionalPropertyInterface(property) {\n      if (!property || !('pv' in property)) {\n        property = defaultMultidimensionalValue;\n      }\n\n      var mult = 1 / property.mult;\n      var len = property.data && property.data.l || property.pv.length;\n      var expressionValue = createTypedArray('float32', len);\n      var arrValue = createTypedArray('float32', len);\n      expressionValue.value = arrValue;\n      completeProperty(expressionValue, property, 'multidimensional');\n      return function () {\n        if (property.k) {\n          property.getValue();\n        }\n\n        for (var i = 0; i < len; i += 1) {\n          arrValue[i] = property.v[i] * mult;\n          expressionValue[i] = arrValue[i];\n        }\n\n        return expressionValue;\n      };\n    } // TODO: try to avoid using this getter\n\n\n    function defaultGetter() {\n      return defaultUnidimensionalValue;\n    }\n\n    return function (property) {\n      if (!property) {\n        return defaultGetter;\n      }\n\n      if (property.propType === 'unidimensional') {\n        return UnidimensionalPropertyInterface(property);\n      }\n\n      return MultidimensionalPropertyInterface(property);\n    };\n  }();\n\n  var TransformExpressionInterface = function () {\n    return function (transform) {\n      function _thisFunction(name) {\n        switch (name) {\n          case 'scale':\n          case 'Scale':\n          case 'ADBE Scale':\n          case 6:\n            return _thisFunction.scale;\n\n          case 'rotation':\n          case 'Rotation':\n          case 'ADBE Rotation':\n          case 'ADBE Rotate Z':\n          case 10:\n            return _thisFunction.rotation;\n\n          case 'ADBE Rotate X':\n            return _thisFunction.xRotation;\n\n          case 'ADBE Rotate Y':\n            return _thisFunction.yRotation;\n\n          case 'position':\n          case 'Position':\n          case 'ADBE Position':\n          case 2:\n            return _thisFunction.position;\n\n          case 'ADBE Position_0':\n            return _thisFunction.xPosition;\n\n          case 'ADBE Position_1':\n            return _thisFunction.yPosition;\n\n          case 'ADBE Position_2':\n            return _thisFunction.zPosition;\n\n          case 'anchorPoint':\n          case 'AnchorPoint':\n          case 'Anchor Point':\n          case 'ADBE AnchorPoint':\n          case 1:\n            return _thisFunction.anchorPoint;\n\n          case 'opacity':\n          case 'Opacity':\n          case 11:\n            return _thisFunction.opacity;\n\n          default:\n            return null;\n        }\n      }\n\n      Object.defineProperty(_thisFunction, 'rotation', {\n        get: ExpressionPropertyInterface(transform.r || transform.rz)\n      });\n      Object.defineProperty(_thisFunction, 'zRotation', {\n        get: ExpressionPropertyInterface(transform.rz || transform.r)\n      });\n      Object.defineProperty(_thisFunction, 'xRotation', {\n        get: ExpressionPropertyInterface(transform.rx)\n      });\n      Object.defineProperty(_thisFunction, 'yRotation', {\n        get: ExpressionPropertyInterface(transform.ry)\n      });\n      Object.defineProperty(_thisFunction, 'scale', {\n        get: ExpressionPropertyInterface(transform.s)\n      });\n\n      var _px;\n\n      var _py;\n\n      var _pz;\n\n      var _transformFactory;\n\n      if (transform.p) {\n        _transformFactory = ExpressionPropertyInterface(transform.p);\n      } else {\n        _px = ExpressionPropertyInterface(transform.px);\n        _py = ExpressionPropertyInterface(transform.py);\n\n        if (transform.pz) {\n          _pz = ExpressionPropertyInterface(transform.pz);\n        }\n      }\n\n      Object.defineProperty(_thisFunction, 'position', {\n        get: function get() {\n          if (transform.p) {\n            return _transformFactory();\n          }\n\n          return [_px(), _py(), _pz ? _pz() : 0];\n        }\n      });\n      Object.defineProperty(_thisFunction, 'xPosition', {\n        get: ExpressionPropertyInterface(transform.px)\n      });\n      Object.defineProperty(_thisFunction, 'yPosition', {\n        get: ExpressionPropertyInterface(transform.py)\n      });\n      Object.defineProperty(_thisFunction, 'zPosition', {\n        get: ExpressionPropertyInterface(transform.pz)\n      });\n      Object.defineProperty(_thisFunction, 'anchorPoint', {\n        get: ExpressionPropertyInterface(transform.a)\n      });\n      Object.defineProperty(_thisFunction, 'opacity', {\n        get: ExpressionPropertyInterface(transform.o)\n      });\n      Object.defineProperty(_thisFunction, 'skew', {\n        get: ExpressionPropertyInterface(transform.sk)\n      });\n      Object.defineProperty(_thisFunction, 'skewAxis', {\n        get: ExpressionPropertyInterface(transform.sa)\n      });\n      Object.defineProperty(_thisFunction, 'orientation', {\n        get: ExpressionPropertyInterface(transform.or)\n      });\n      return _thisFunction;\n    };\n  }();\n\n  var LayerExpressionInterface = function () {\n    function getMatrix(time) {\n      var toWorldMat = new Matrix();\n\n      if (time !== undefined) {\n        var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\n\n        propMatrix.clone(toWorldMat);\n      } else {\n        var transformMat = this._elem.finalTransform.mProp;\n        transformMat.applyToMatrix(toWorldMat);\n      }\n\n      return toWorldMat;\n    }\n\n    function toWorldVec(arr, time) {\n      var toWorldMat = this.getMatrix(time);\n      toWorldMat.props[12] = 0;\n      toWorldMat.props[13] = 0;\n      toWorldMat.props[14] = 0;\n      return this.applyPoint(toWorldMat, arr);\n    }\n\n    function toWorld(arr, time) {\n      var toWorldMat = this.getMatrix(time);\n      return this.applyPoint(toWorldMat, arr);\n    }\n\n    function fromWorldVec(arr, time) {\n      var toWorldMat = this.getMatrix(time);\n      toWorldMat.props[12] = 0;\n      toWorldMat.props[13] = 0;\n      toWorldMat.props[14] = 0;\n      return this.invertPoint(toWorldMat, arr);\n    }\n\n    function fromWorld(arr, time) {\n      var toWorldMat = this.getMatrix(time);\n      return this.invertPoint(toWorldMat, arr);\n    }\n\n    function applyPoint(matrix, arr) {\n      if (this._elem.hierarchy && this._elem.hierarchy.length) {\n        var i;\n        var len = this._elem.hierarchy.length;\n\n        for (i = 0; i < len; i += 1) {\n          this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n        }\n      }\n\n      return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n    }\n\n    function invertPoint(matrix, arr) {\n      if (this._elem.hierarchy && this._elem.hierarchy.length) {\n        var i;\n        var len = this._elem.hierarchy.length;\n\n        for (i = 0; i < len; i += 1) {\n          this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n        }\n      }\n\n      return matrix.inversePoint(arr);\n    }\n\n    function fromComp(arr) {\n      var toWorldMat = new Matrix();\n      toWorldMat.reset();\n\n      this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n      if (this._elem.hierarchy && this._elem.hierarchy.length) {\n        var i;\n        var len = this._elem.hierarchy.length;\n\n        for (i = 0; i < len; i += 1) {\n          this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n        }\n\n        return toWorldMat.inversePoint(arr);\n      }\n\n      return toWorldMat.inversePoint(arr);\n    }\n\n    function sampleImage() {\n      return [1, 1, 1, 1];\n    }\n\n    return function (elem) {\n      var transformInterface;\n\n      function _registerMaskInterface(maskManager) {\n        _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n      }\n\n      function _registerEffectsInterface(effects) {\n        _thisLayerFunction.effect = effects;\n      }\n\n      function _thisLayerFunction(name) {\n        switch (name) {\n          case 'ADBE Root Vectors Group':\n          case 'Contents':\n          case 2:\n            return _thisLayerFunction.shapeInterface;\n\n          case 1:\n          case 6:\n          case 'Transform':\n          case 'transform':\n          case 'ADBE Transform Group':\n            return transformInterface;\n\n          case 4:\n          case 'ADBE Effect Parade':\n          case 'effects':\n          case 'Effects':\n            return _thisLayerFunction.effect;\n\n          case 'ADBE Text Properties':\n            return _thisLayerFunction.textInterface;\n\n          default:\n            return null;\n        }\n      }\n\n      _thisLayerFunction.getMatrix = getMatrix;\n      _thisLayerFunction.invertPoint = invertPoint;\n      _thisLayerFunction.applyPoint = applyPoint;\n      _thisLayerFunction.toWorld = toWorld;\n      _thisLayerFunction.toWorldVec = toWorldVec;\n      _thisLayerFunction.fromWorld = fromWorld;\n      _thisLayerFunction.fromWorldVec = fromWorldVec;\n      _thisLayerFunction.toComp = toWorld;\n      _thisLayerFunction.fromComp = fromComp;\n      _thisLayerFunction.sampleImage = sampleImage;\n      _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n      _thisLayerFunction._elem = elem;\n      transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n      var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\n      Object.defineProperties(_thisLayerFunction, {\n        hasParent: {\n          get: function get() {\n            return elem.hierarchy.length;\n          }\n        },\n        parent: {\n          get: function get() {\n            return elem.hierarchy[0].layerInterface;\n          }\n        },\n        rotation: getDescriptor(transformInterface, 'rotation'),\n        scale: getDescriptor(transformInterface, 'scale'),\n        position: getDescriptor(transformInterface, 'position'),\n        opacity: getDescriptor(transformInterface, 'opacity'),\n        anchorPoint: anchorPointDescriptor,\n        anchor_point: anchorPointDescriptor,\n        transform: {\n          get: function get() {\n            return transformInterface;\n          }\n        },\n        active: {\n          get: function get() {\n            return elem.isInRange;\n          }\n        }\n      });\n      _thisLayerFunction.startTime = elem.data.st;\n      _thisLayerFunction.index = elem.data.ind;\n      _thisLayerFunction.source = elem.data.refId;\n      _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n      _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n      _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n      _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n      _thisLayerFunction._name = elem.data.nm;\n      _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n      _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n      return _thisLayerFunction;\n    };\n  }();\n\n  var propertyGroupFactory = function () {\n    return function (interfaceFunction, parentPropertyGroup) {\n      return function (val) {\n        val = val === undefined ? 1 : val;\n\n        if (val <= 0) {\n          return interfaceFunction;\n        }\n\n        return parentPropertyGroup(val - 1);\n      };\n    };\n  }();\n\n  var PropertyInterface = function () {\n    return function (propertyName, propertyGroup) {\n      var interfaceFunction = {\n        _name: propertyName\n      };\n\n      function _propertyGroup(val) {\n        val = val === undefined ? 1 : val;\n\n        if (val <= 0) {\n          return interfaceFunction;\n        }\n\n        return propertyGroup(val - 1);\n      }\n\n      return _propertyGroup;\n    };\n  }();\n\n  var EffectsExpressionInterface = function () {\n    var ob = {\n      createEffectsInterface: createEffectsInterface\n    };\n\n    function createEffectsInterface(elem, propertyGroup) {\n      if (elem.effectsManager) {\n        var effectElements = [];\n        var effectsData = elem.data.ef;\n        var i;\n        var len = elem.effectsManager.effectElements.length;\n\n        for (i = 0; i < len; i += 1) {\n          effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n        }\n\n        var effects = elem.data.ef || [];\n\n        var groupInterface = function groupInterface(name) {\n          i = 0;\n          len = effects.length;\n\n          while (i < len) {\n            if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n              return effectElements[i];\n            }\n\n            i += 1;\n          }\n\n          return null;\n        };\n\n        Object.defineProperty(groupInterface, 'numProperties', {\n          get: function get() {\n            return effects.length;\n          }\n        });\n        return groupInterface;\n      }\n\n      return null;\n    }\n\n    function createGroupInterface(data, elements, propertyGroup, elem) {\n      function groupInterface(name) {\n        var effects = data.ef;\n        var i = 0;\n        var len = effects.length;\n\n        while (i < len) {\n          if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n            if (effects[i].ty === 5) {\n              return effectElements[i];\n            }\n\n            return effectElements[i]();\n          }\n\n          i += 1;\n        }\n\n        throw new Error();\n      }\n\n      var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n      var effectElements = [];\n      var i;\n      var len = data.ef.length;\n\n      for (i = 0; i < len; i += 1) {\n        if (data.ef[i].ty === 5) {\n          effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n        } else {\n          effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n        }\n      }\n\n      if (data.mn === 'ADBE Color Control') {\n        Object.defineProperty(groupInterface, 'color', {\n          get: function get() {\n            return effectElements[0]();\n          }\n        });\n      }\n\n      Object.defineProperties(groupInterface, {\n        numProperties: {\n          get: function get() {\n            return data.np;\n          }\n        },\n        _name: {\n          value: data.nm\n        },\n        propertyGroup: {\n          value: _propertyGroup\n        }\n      });\n      groupInterface.enabled = data.en !== 0;\n      groupInterface.active = groupInterface.enabled;\n      return groupInterface;\n    }\n\n    function createValueInterface(element, type, elem, propertyGroup) {\n      var expressionProperty = ExpressionPropertyInterface(element.p);\n\n      function interfaceFunction() {\n        if (type === 10) {\n          return elem.comp.compInterface(element.p.v);\n        }\n\n        return expressionProperty();\n      }\n\n      if (element.p.setGroupProperty) {\n        element.p.setGroupProperty(PropertyInterface('', propertyGroup));\n      }\n\n      return interfaceFunction;\n    }\n\n    return ob;\n  }();\n\n  var CompExpressionInterface = function () {\n    return function (comp) {\n      function _thisLayerFunction(name) {\n        var i = 0;\n        var len = comp.layers.length;\n\n        while (i < len) {\n          if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n            return comp.elements[i].layerInterface;\n          }\n\n          i += 1;\n        }\n\n        return null; // return {active:false};\n      }\n\n      Object.defineProperty(_thisLayerFunction, '_name', {\n        value: comp.data.nm\n      });\n      _thisLayerFunction.layer = _thisLayerFunction;\n      _thisLayerFunction.pixelAspect = 1;\n      _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n      _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n      _thisLayerFunction.pixelAspect = 1;\n      _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n      _thisLayerFunction.displayStartTime = 0;\n      _thisLayerFunction.numLayers = comp.layers.length;\n      return _thisLayerFunction;\n    };\n  }();\n\n  var ShapePathInterface = function () {\n    return function pathInterfaceFactory(shape, view, propertyGroup) {\n      var prop = view.sh;\n\n      function interfaceFunction(val) {\n        if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\n          return interfaceFunction.path;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\n      Object.defineProperties(interfaceFunction, {\n        path: {\n          get: function get() {\n            if (prop.k) {\n              prop.getValue();\n            }\n\n            return prop;\n          }\n        },\n        shape: {\n          get: function get() {\n            if (prop.k) {\n              prop.getValue();\n            }\n\n            return prop;\n          }\n        },\n        _name: {\n          value: shape.nm\n        },\n        ix: {\n          value: shape.ix\n        },\n        propertyIndex: {\n          value: shape.ix\n        },\n        mn: {\n          value: shape.mn\n        },\n        propertyGroup: {\n          value: propertyGroup\n        }\n      });\n      return interfaceFunction;\n    };\n  }();\n\n  var ShapeExpressionInterface = function () {\n    function iterateElements(shapes, view, propertyGroup) {\n      var arr = [];\n      var i;\n      var len = shapes ? shapes.length : 0;\n\n      for (i = 0; i < len; i += 1) {\n        if (shapes[i].ty === 'gr') {\n          arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === 'fl') {\n          arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === 'st') {\n          arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === 'tm') {\n          arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n        } else if (shapes[i].ty === 'el') {\n          arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === 'sr') {\n          arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === 'sh') {\n          arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === 'rc') {\n          arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === 'rd') {\n          arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === 'rp') {\n          arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === 'gf') {\n          arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else {\n          arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\n        }\n      }\n\n      return arr;\n    }\n\n    function contentsInterfaceFactory(shape, view, propertyGroup) {\n      var interfaces;\n\n      var interfaceFunction = function _interfaceFunction(value) {\n        var i = 0;\n        var len = interfaces.length;\n\n        while (i < len) {\n          if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n            return interfaces[i];\n          }\n\n          i += 1;\n        }\n\n        if (typeof value === 'number') {\n          return interfaces[value - 1];\n        }\n\n        return null;\n      };\n\n      interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n      interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n      interfaceFunction.numProperties = interfaces.length;\n      var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n      interfaceFunction.transform = transformInterface;\n      interfaceFunction.propertyIndex = shape.cix;\n      interfaceFunction._name = shape.nm;\n      return interfaceFunction;\n    }\n\n    function groupInterfaceFactory(shape, view, propertyGroup) {\n      var interfaceFunction = function _interfaceFunction(value) {\n        switch (value) {\n          case 'ADBE Vectors Group':\n          case 'Contents':\n          case 2:\n            return interfaceFunction.content;\n          // Not necessary for now. Keeping them here in case a new case appears\n          // case 'ADBE Vector Transform Group':\n          // case 3:\n\n          default:\n            return interfaceFunction.transform;\n        }\n      };\n\n      interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n      var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n      var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n      interfaceFunction.content = content;\n      interfaceFunction.transform = transformInterface;\n      Object.defineProperty(interfaceFunction, '_name', {\n        get: function get() {\n          return shape.nm;\n        }\n      }); // interfaceFunction.content = interfaceFunction;\n\n      interfaceFunction.numProperties = shape.np;\n      interfaceFunction.propertyIndex = shape.ix;\n      interfaceFunction.nm = shape.nm;\n      interfaceFunction.mn = shape.mn;\n      return interfaceFunction;\n    }\n\n    function fillInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(val) {\n        if (val === 'Color' || val === 'color') {\n          return interfaceFunction.color;\n        }\n\n        if (val === 'Opacity' || val === 'opacity') {\n          return interfaceFunction.opacity;\n        }\n\n        return null;\n      }\n\n      Object.defineProperties(interfaceFunction, {\n        color: {\n          get: ExpressionPropertyInterface(view.c)\n        },\n        opacity: {\n          get: ExpressionPropertyInterface(view.o)\n        },\n        _name: {\n          value: shape.nm\n        },\n        mn: {\n          value: shape.mn\n        }\n      });\n      view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\n      view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n      return interfaceFunction;\n    }\n\n    function gradientFillInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(val) {\n        if (val === 'Start Point' || val === 'start point') {\n          return interfaceFunction.startPoint;\n        }\n\n        if (val === 'End Point' || val === 'end point') {\n          return interfaceFunction.endPoint;\n        }\n\n        if (val === 'Opacity' || val === 'opacity') {\n          return interfaceFunction.opacity;\n        }\n\n        return null;\n      }\n\n      Object.defineProperties(interfaceFunction, {\n        startPoint: {\n          get: ExpressionPropertyInterface(view.s)\n        },\n        endPoint: {\n          get: ExpressionPropertyInterface(view.e)\n        },\n        opacity: {\n          get: ExpressionPropertyInterface(view.o)\n        },\n        type: {\n          get: function get() {\n            return 'a';\n          }\n        },\n        _name: {\n          value: shape.nm\n        },\n        mn: {\n          value: shape.mn\n        }\n      });\n      view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\n      view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\n      view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n      return interfaceFunction;\n    }\n\n    function defaultInterfaceFactory() {\n      function interfaceFunction() {\n        return null;\n      }\n\n      return interfaceFunction;\n    }\n\n    function strokeInterfaceFactory(shape, view, propertyGroup) {\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n      function addPropertyToDashOb(i) {\n        Object.defineProperty(dashOb, shape.d[i].nm, {\n          get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n        });\n      }\n\n      var i;\n      var len = shape.d ? shape.d.length : 0;\n      var dashOb = {};\n\n      for (i = 0; i < len; i += 1) {\n        addPropertyToDashOb(i);\n        view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n      }\n\n      function interfaceFunction(val) {\n        if (val === 'Color' || val === 'color') {\n          return interfaceFunction.color;\n        }\n\n        if (val === 'Opacity' || val === 'opacity') {\n          return interfaceFunction.opacity;\n        }\n\n        if (val === 'Stroke Width' || val === 'stroke width') {\n          return interfaceFunction.strokeWidth;\n        }\n\n        return null;\n      }\n\n      Object.defineProperties(interfaceFunction, {\n        color: {\n          get: ExpressionPropertyInterface(view.c)\n        },\n        opacity: {\n          get: ExpressionPropertyInterface(view.o)\n        },\n        strokeWidth: {\n          get: ExpressionPropertyInterface(view.w)\n        },\n        dash: {\n          get: function get() {\n            return dashOb;\n          }\n        },\n        _name: {\n          value: shape.nm\n        },\n        mn: {\n          value: shape.mn\n        }\n      });\n      view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\n      view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n      view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\n      return interfaceFunction;\n    }\n\n    function trimInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(val) {\n        if (val === shape.e.ix || val === 'End' || val === 'end') {\n          return interfaceFunction.end;\n        }\n\n        if (val === shape.s.ix) {\n          return interfaceFunction.start;\n        }\n\n        if (val === shape.o.ix) {\n          return interfaceFunction.offset;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      interfaceFunction.propertyIndex = shape.ix;\n      view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\n      view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\n      view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n      interfaceFunction.propertyIndex = shape.ix;\n      interfaceFunction.propertyGroup = propertyGroup;\n      Object.defineProperties(interfaceFunction, {\n        start: {\n          get: ExpressionPropertyInterface(view.s)\n        },\n        end: {\n          get: ExpressionPropertyInterface(view.e)\n        },\n        offset: {\n          get: ExpressionPropertyInterface(view.o)\n        },\n        _name: {\n          value: shape.nm\n        }\n      });\n      interfaceFunction.mn = shape.mn;\n      return interfaceFunction;\n    }\n\n    function transformInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(value) {\n        if (shape.a.ix === value || value === 'Anchor Point') {\n          return interfaceFunction.anchorPoint;\n        }\n\n        if (shape.o.ix === value || value === 'Opacity') {\n          return interfaceFunction.opacity;\n        }\n\n        if (shape.p.ix === value || value === 'Position') {\n          return interfaceFunction.position;\n        }\n\n        if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\n          return interfaceFunction.rotation;\n        }\n\n        if (shape.s.ix === value || value === 'Scale') {\n          return interfaceFunction.scale;\n        }\n\n        if (shape.sk && shape.sk.ix === value || value === 'Skew') {\n          return interfaceFunction.skew;\n        }\n\n        if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\n          return interfaceFunction.skewAxis;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n      view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n      view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\n      view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\n      view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n      if (view.transform.mProps.sk) {\n        view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\n        view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\n      }\n\n      view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n      Object.defineProperties(interfaceFunction, {\n        opacity: {\n          get: ExpressionPropertyInterface(view.transform.mProps.o)\n        },\n        position: {\n          get: ExpressionPropertyInterface(view.transform.mProps.p)\n        },\n        anchorPoint: {\n          get: ExpressionPropertyInterface(view.transform.mProps.a)\n        },\n        scale: {\n          get: ExpressionPropertyInterface(view.transform.mProps.s)\n        },\n        rotation: {\n          get: ExpressionPropertyInterface(view.transform.mProps.r)\n        },\n        skew: {\n          get: ExpressionPropertyInterface(view.transform.mProps.sk)\n        },\n        skewAxis: {\n          get: ExpressionPropertyInterface(view.transform.mProps.sa)\n        },\n        _name: {\n          value: shape.nm\n        }\n      });\n      interfaceFunction.ty = 'tr';\n      interfaceFunction.mn = shape.mn;\n      interfaceFunction.propertyGroup = propertyGroup;\n      return interfaceFunction;\n    }\n\n    function ellipseInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(value) {\n        if (shape.p.ix === value) {\n          return interfaceFunction.position;\n        }\n\n        if (shape.s.ix === value) {\n          return interfaceFunction.size;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      interfaceFunction.propertyIndex = shape.ix;\n      var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n      prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n      prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n      Object.defineProperties(interfaceFunction, {\n        size: {\n          get: ExpressionPropertyInterface(prop.s)\n        },\n        position: {\n          get: ExpressionPropertyInterface(prop.p)\n        },\n        _name: {\n          value: shape.nm\n        }\n      });\n      interfaceFunction.mn = shape.mn;\n      return interfaceFunction;\n    }\n\n    function starInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(value) {\n        if (shape.p.ix === value) {\n          return interfaceFunction.position;\n        }\n\n        if (shape.r.ix === value) {\n          return interfaceFunction.rotation;\n        }\n\n        if (shape.pt.ix === value) {\n          return interfaceFunction.points;\n        }\n\n        if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\n          return interfaceFunction.outerRadius;\n        }\n\n        if (shape.os.ix === value) {\n          return interfaceFunction.outerRoundness;\n        }\n\n        if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\n          return interfaceFunction.innerRadius;\n        }\n\n        if (shape.is && shape.is.ix === value) {\n          return interfaceFunction.innerRoundness;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n      interfaceFunction.propertyIndex = shape.ix;\n      prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\n      prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\n      prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\n      prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n      prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n      if (shape.ir) {\n        prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\n        prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\n      }\n\n      Object.defineProperties(interfaceFunction, {\n        position: {\n          get: ExpressionPropertyInterface(prop.p)\n        },\n        rotation: {\n          get: ExpressionPropertyInterface(prop.r)\n        },\n        points: {\n          get: ExpressionPropertyInterface(prop.pt)\n        },\n        outerRadius: {\n          get: ExpressionPropertyInterface(prop.or)\n        },\n        outerRoundness: {\n          get: ExpressionPropertyInterface(prop.os)\n        },\n        innerRadius: {\n          get: ExpressionPropertyInterface(prop.ir)\n        },\n        innerRoundness: {\n          get: ExpressionPropertyInterface(prop.is)\n        },\n        _name: {\n          value: shape.nm\n        }\n      });\n      interfaceFunction.mn = shape.mn;\n      return interfaceFunction;\n    }\n\n    function rectInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(value) {\n        if (shape.p.ix === value) {\n          return interfaceFunction.position;\n        }\n\n        if (shape.r.ix === value) {\n          return interfaceFunction.roundness;\n        }\n\n        if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\n          return interfaceFunction.size;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n      interfaceFunction.propertyIndex = shape.ix;\n      prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n      prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n      prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n      Object.defineProperties(interfaceFunction, {\n        position: {\n          get: ExpressionPropertyInterface(prop.p)\n        },\n        roundness: {\n          get: ExpressionPropertyInterface(prop.r)\n        },\n        size: {\n          get: ExpressionPropertyInterface(prop.s)\n        },\n        _name: {\n          value: shape.nm\n        }\n      });\n      interfaceFunction.mn = shape.mn;\n      return interfaceFunction;\n    }\n\n    function roundedInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(value) {\n        if (shape.r.ix === value || value === 'Round Corners 1') {\n          return interfaceFunction.radius;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      var prop = view;\n      interfaceFunction.propertyIndex = shape.ix;\n      prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\n      Object.defineProperties(interfaceFunction, {\n        radius: {\n          get: ExpressionPropertyInterface(prop.rd)\n        },\n        _name: {\n          value: shape.nm\n        }\n      });\n      interfaceFunction.mn = shape.mn;\n      return interfaceFunction;\n    }\n\n    function repeaterInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(value) {\n        if (shape.c.ix === value || value === 'Copies') {\n          return interfaceFunction.copies;\n        }\n\n        if (shape.o.ix === value || value === 'Offset') {\n          return interfaceFunction.offset;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      var prop = view;\n      interfaceFunction.propertyIndex = shape.ix;\n      prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\n      prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n      Object.defineProperties(interfaceFunction, {\n        copies: {\n          get: ExpressionPropertyInterface(prop.c)\n        },\n        offset: {\n          get: ExpressionPropertyInterface(prop.o)\n        },\n        _name: {\n          value: shape.nm\n        }\n      });\n      interfaceFunction.mn = shape.mn;\n      return interfaceFunction;\n    }\n\n    return function (shapes, view, propertyGroup) {\n      var interfaces;\n\n      function _interfaceFunction(value) {\n        if (typeof value === 'number') {\n          value = value === undefined ? 1 : value;\n\n          if (value === 0) {\n            return propertyGroup;\n          }\n\n          return interfaces[value - 1];\n        }\n\n        var i = 0;\n        var len = interfaces.length;\n\n        while (i < len) {\n          if (interfaces[i]._name === value) {\n            return interfaces[i];\n          }\n\n          i += 1;\n        }\n\n        return null;\n      }\n\n      function parentGroupWrapper() {\n        return propertyGroup;\n      }\n\n      _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n      interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n      _interfaceFunction.numProperties = interfaces.length;\n      _interfaceFunction._name = 'Contents';\n      return _interfaceFunction;\n    };\n  }();\n\n  var TextExpressionInterface = function () {\n    return function (elem) {\n      var _prevValue;\n\n      var _sourceText;\n\n      function _thisLayerFunction(name) {\n        switch (name) {\n          case 'ADBE Text Document':\n            return _thisLayerFunction.sourceText;\n\n          default:\n            return null;\n        }\n      }\n\n      Object.defineProperty(_thisLayerFunction, 'sourceText', {\n        get: function get() {\n          elem.textProperty.getValue();\n          var stringValue = elem.textProperty.currentData.t;\n\n          if (stringValue !== _prevValue) {\n            elem.textProperty.currentData.t = _prevValue;\n            _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n            // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n            _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n          }\n\n          return _sourceText;\n        }\n      });\n      return _thisLayerFunction;\n    };\n  }();\n\n  var getBlendMode = function () {\n    var blendModeEnums = {\n      0: 'source-over',\n      1: 'multiply',\n      2: 'screen',\n      3: 'overlay',\n      4: 'darken',\n      5: 'lighten',\n      6: 'color-dodge',\n      7: 'color-burn',\n      8: 'hard-light',\n      9: 'soft-light',\n      10: 'difference',\n      11: 'exclusion',\n      12: 'hue',\n      13: 'saturation',\n      14: 'color',\n      15: 'luminosity'\n    };\n    return function (mode) {\n      return blendModeEnums[mode] || '';\n    };\n  }();\n\n  function SliderEffect(data, elem, container) {\n    this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n  }\n\n  function AngleEffect(data, elem, container) {\n    this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n  }\n\n  function ColorEffect(data, elem, container) {\n    this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n  }\n\n  function PointEffect(data, elem, container) {\n    this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n  }\n\n  function LayerIndexEffect(data, elem, container) {\n    this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n  }\n\n  function MaskIndexEffect(data, elem, container) {\n    this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n  }\n\n  function CheckboxEffect(data, elem, container) {\n    this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n  }\n\n  function NoValueEffect() {\n    this.p = {};\n  }\n\n  function EffectsManager(data, element) {\n    var effects = data.ef || [];\n    this.effectElements = [];\n    var i;\n    var len = effects.length;\n    var effectItem;\n\n    for (i = 0; i < len; i += 1) {\n      effectItem = new GroupEffect(effects[i], element);\n      this.effectElements.push(effectItem);\n    }\n  }\n\n  function GroupEffect(data, element) {\n    this.init(data, element);\n  }\n\n  extendPrototype([DynamicPropertyContainer], GroupEffect);\n  GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n  GroupEffect.prototype.init = function (data, element) {\n    this.data = data;\n    this.effectElements = [];\n    this.initDynamicPropertyContainer(element);\n    var i;\n    var len = this.data.ef.length;\n    var eff;\n    var effects = this.data.ef;\n\n    for (i = 0; i < len; i += 1) {\n      eff = null;\n\n      switch (effects[i].ty) {\n        case 0:\n          eff = new SliderEffect(effects[i], element, this);\n          break;\n\n        case 1:\n          eff = new AngleEffect(effects[i], element, this);\n          break;\n\n        case 2:\n          eff = new ColorEffect(effects[i], element, this);\n          break;\n\n        case 3:\n          eff = new PointEffect(effects[i], element, this);\n          break;\n\n        case 4:\n        case 7:\n          eff = new CheckboxEffect(effects[i], element, this);\n          break;\n\n        case 10:\n          eff = new LayerIndexEffect(effects[i], element, this);\n          break;\n\n        case 11:\n          eff = new MaskIndexEffect(effects[i], element, this);\n          break;\n\n        case 5:\n          eff = new EffectsManager(effects[i], element, this);\n          break;\n        // case 6:\n\n        default:\n          eff = new NoValueEffect(effects[i], element, this);\n          break;\n      }\n\n      if (eff) {\n        this.effectElements.push(eff);\n      }\n    }\n  };\n\n  function BaseElement() {}\n\n  BaseElement.prototype = {\n    checkMasks: function checkMasks() {\n      if (!this.data.hasMask) {\n        return false;\n      }\n\n      var i = 0;\n      var len = this.data.masksProperties.length;\n\n      while (i < len) {\n        if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\n          return true;\n        }\n\n        i += 1;\n      }\n\n      return false;\n    },\n    initExpressions: function initExpressions() {\n      this.layerInterface = LayerExpressionInterface(this);\n\n      if (this.data.hasMask && this.maskManager) {\n        this.layerInterface.registerMaskInterface(this.maskManager);\n      }\n\n      var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n      this.layerInterface.registerEffectsInterface(effectsInterface);\n\n      if (this.data.ty === 0 || this.data.xt) {\n        this.compInterface = CompExpressionInterface(this);\n      } else if (this.data.ty === 4) {\n        this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n        this.layerInterface.content = this.layerInterface.shapeInterface;\n      } else if (this.data.ty === 5) {\n        this.layerInterface.textInterface = TextExpressionInterface(this);\n        this.layerInterface.text = this.layerInterface.textInterface;\n      }\n    },\n    setBlendMode: function setBlendMode() {\n      var blendModeValue = getBlendMode(this.data.bm);\n      var elem = this.baseElement || this.layerElement;\n      elem.style['mix-blend-mode'] = blendModeValue;\n    },\n    initBaseData: function initBaseData(data, globalData, comp) {\n      this.globalData = globalData;\n      this.comp = comp;\n      this.data = data;\n      this.layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n      if (!this.data.sr) {\n        this.data.sr = 1;\n      } // effects manager\n\n\n      this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n    },\n    getType: function getType() {\n      return this.type;\n    },\n    sourceRectAtTime: function sourceRectAtTime() {}\n  };\n\n  /**\r\n   * @file\r\n   * Handles element's layer frame update.\r\n   * Checks layer in point and out point\r\n   *\r\n   */\n  function FrameElement() {}\n\n  FrameElement.prototype = {\n    /**\r\n       * @function\r\n       * Initializes frame related properties.\r\n       *\r\n       */\n    initFrame: function initFrame() {\n      // set to true when inpoint is rendered\n      this._isFirstFrame = false; // list of animated properties\n\n      this.dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n      this._mdf = false;\n    },\n\n    /**\r\n       * @function\r\n       * Calculates all dynamic values\r\n       *\r\n       * @param {number} num\r\n       * current frame number in Layer's time\r\n       * @param {boolean} isVisible\r\n       * if layers is currently in range\r\n       *\r\n       */\n    prepareProperties: function prepareProperties(num, isVisible) {\n      var i;\n      var len = this.dynamicProperties.length;\n\n      for (i = 0; i < len; i += 1) {\n        if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\n          this.dynamicProperties[i].getValue();\n\n          if (this.dynamicProperties[i]._mdf) {\n            this.globalData._mdf = true;\n            this._mdf = true;\n          }\n        }\n      }\n    },\n    addDynamicProperty: function addDynamicProperty(prop) {\n      if (this.dynamicProperties.indexOf(prop) === -1) {\n        this.dynamicProperties.push(prop);\n      }\n    }\n  };\n\n  function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\n\n  var FootageInterface = function () {\n    var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\n      var currentPropertyName = '';\n      var currentProperty = elem.getFootageData();\n\n      function init() {\n        currentPropertyName = '';\n        currentProperty = elem.getFootageData();\n        return searchProperty;\n      }\n\n      function searchProperty(value) {\n        if (currentProperty[value]) {\n          currentPropertyName = value;\n          currentProperty = currentProperty[value];\n\n          if (_typeof$2(currentProperty) === 'object') {\n            return searchProperty;\n          }\n\n          return currentProperty;\n        }\n\n        var propertyNameIndex = value.indexOf(currentPropertyName);\n\n        if (propertyNameIndex !== -1) {\n          var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n          currentProperty = currentProperty[index];\n\n          if (_typeof$2(currentProperty) === 'object') {\n            return searchProperty;\n          }\n\n          return currentProperty;\n        }\n\n        return '';\n      }\n\n      return init;\n    };\n\n    var dataInterfaceFactory = function dataInterfaceFactory(elem) {\n      function interfaceFunction(value) {\n        if (value === 'Outline') {\n          return interfaceFunction.outlineInterface();\n        }\n\n        return null;\n      }\n\n      interfaceFunction._name = 'Outline';\n      interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n      return interfaceFunction;\n    };\n\n    return function (elem) {\n      function _interfaceFunction(value) {\n        if (value === 'Data') {\n          return _interfaceFunction.dataInterface;\n        }\n\n        return null;\n      }\n\n      _interfaceFunction._name = 'Data';\n      _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n      return _interfaceFunction;\n    };\n  }();\n\n  function FootageElement(data, globalData, comp) {\n    this.initFrame();\n    this.initRenderable();\n    this.assetData = globalData.getAssetData(data.refId);\n    this.footageData = globalData.imageLoader.getAsset(this.assetData);\n    this.initBaseData(data, globalData, comp);\n  }\n\n  FootageElement.prototype.prepareFrame = function () {};\n\n  extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n  FootageElement.prototype.getBaseElement = function () {\n    return null;\n  };\n\n  FootageElement.prototype.renderFrame = function () {};\n\n  FootageElement.prototype.destroy = function () {};\n\n  FootageElement.prototype.initExpressions = function () {\n    this.layerInterface = FootageInterface(this);\n  };\n\n  FootageElement.prototype.getFootageData = function () {\n    return this.footageData;\n  };\n\n  function AudioElement(data, globalData, comp) {\n    this.initFrame();\n    this.initRenderable();\n    this.assetData = globalData.getAssetData(data.refId);\n    this.initBaseData(data, globalData, comp);\n    this._isPlaying = false;\n    this._canPlay = false;\n    var assetPath = this.globalData.getAssetsPath(this.assetData);\n    this.audio = this.globalData.audioController.createAudio(assetPath);\n    this._currentTime = 0;\n    this.globalData.audioController.addAudio(this);\n    this._volumeMultiplier = 1;\n    this._volume = 1;\n    this._previousVolume = null;\n    this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n      _placeholder: true\n    };\n    this.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : {\n      k: [100]\n    }, 1, 0.01, this);\n  }\n\n  AudioElement.prototype.prepareFrame = function (num) {\n    this.prepareRenderableFrame(num, true);\n    this.prepareProperties(num, true);\n\n    if (!this.tm._placeholder) {\n      var timeRemapped = this.tm.v;\n      this._currentTime = timeRemapped;\n    } else {\n      this._currentTime = num / this.data.sr;\n    }\n\n    this._volume = this.lv.v[0];\n    var totalVolume = this._volume * this._volumeMultiplier;\n\n    if (this._previousVolume !== totalVolume) {\n      this._previousVolume = totalVolume;\n      this.audio.volume(totalVolume);\n    }\n  };\n\n  extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n  AudioElement.prototype.renderFrame = function () {\n    if (this.isInRange && this._canPlay) {\n      if (!this._isPlaying) {\n        this.audio.play();\n        this.audio.seek(this._currentTime / this.globalData.frameRate);\n        this._isPlaying = true;\n      } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\n        this.audio.seek(this._currentTime / this.globalData.frameRate);\n      }\n    }\n  };\n\n  AudioElement.prototype.show = function () {// this.audio.play()\n  };\n\n  AudioElement.prototype.hide = function () {\n    this.audio.pause();\n    this._isPlaying = false;\n  };\n\n  AudioElement.prototype.pause = function () {\n    this.audio.pause();\n    this._isPlaying = false;\n    this._canPlay = false;\n  };\n\n  AudioElement.prototype.resume = function () {\n    this._canPlay = true;\n  };\n\n  AudioElement.prototype.setRate = function (rateValue) {\n    this.audio.rate(rateValue);\n  };\n\n  AudioElement.prototype.volume = function (volumeValue) {\n    this._volumeMultiplier = volumeValue;\n    this._previousVolume = volumeValue * this._volume;\n    this.audio.volume(this._previousVolume);\n  };\n\n  AudioElement.prototype.getBaseElement = function () {\n    return null;\n  };\n\n  AudioElement.prototype.destroy = function () {};\n\n  AudioElement.prototype.sourceRectAtTime = function () {};\n\n  AudioElement.prototype.initExpressions = function () {};\n\n  function BaseRenderer() {}\n\n  BaseRenderer.prototype.checkLayers = function (num) {\n    var i;\n    var len = this.layers.length;\n    var data;\n    this.completeLayers = true;\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      if (!this.elements[i]) {\n        data = this.layers[i];\n\n        if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\n          this.buildItem(i);\n        }\n      }\n\n      this.completeLayers = this.elements[i] ? this.completeLayers : false;\n    }\n\n    this.checkPendingElements();\n  };\n\n  BaseRenderer.prototype.createItem = function (layer) {\n    switch (layer.ty) {\n      case 2:\n        return this.createImage(layer);\n\n      case 0:\n        return this.createComp(layer);\n\n      case 1:\n        return this.createSolid(layer);\n\n      case 3:\n        return this.createNull(layer);\n\n      case 4:\n        return this.createShape(layer);\n\n      case 5:\n        return this.createText(layer);\n\n      case 6:\n        return this.createAudio(layer);\n\n      case 13:\n        return this.createCamera(layer);\n\n      case 15:\n        return this.createFootage(layer);\n\n      default:\n        return this.createNull(layer);\n    }\n  };\n\n  BaseRenderer.prototype.createCamera = function () {\n    throw new Error('You\\'re using a 3d camera. Try the html renderer.');\n  };\n\n  BaseRenderer.prototype.createAudio = function (data) {\n    return new AudioElement(data, this.globalData, this);\n  };\n\n  BaseRenderer.prototype.createFootage = function (data) {\n    return new FootageElement(data, this.globalData, this);\n  };\n\n  BaseRenderer.prototype.buildAllItems = function () {\n    var i;\n    var len = this.layers.length;\n\n    for (i = 0; i < len; i += 1) {\n      this.buildItem(i);\n    }\n\n    this.checkPendingElements();\n  };\n\n  BaseRenderer.prototype.includeLayers = function (newLayers) {\n    this.completeLayers = false;\n    var i;\n    var len = newLayers.length;\n    var j;\n    var jLen = this.layers.length;\n\n    for (i = 0; i < len; i += 1) {\n      j = 0;\n\n      while (j < jLen) {\n        if (this.layers[j].id === newLayers[i].id) {\n          this.layers[j] = newLayers[i];\n          break;\n        }\n\n        j += 1;\n      }\n    }\n  };\n\n  BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n    this.globalData.projectInterface = pInterface;\n  };\n\n  BaseRenderer.prototype.initItems = function () {\n    if (!this.globalData.progressiveLoad) {\n      this.buildAllItems();\n    }\n  };\n\n  BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n    var elements = this.elements;\n    var layers = this.layers;\n    var i = 0;\n    var len = layers.length;\n\n    while (i < len) {\n      if (layers[i].ind == parentName) {\n        // eslint-disable-line eqeqeq\n        if (!elements[i] || elements[i] === true) {\n          this.buildItem(i);\n          this.addPendingElement(element);\n        } else {\n          hierarchy.push(elements[i]);\n          elements[i].setAsParent();\n\n          if (layers[i].parent !== undefined) {\n            this.buildElementParenting(element, layers[i].parent, hierarchy);\n          } else {\n            element.setHierarchy(hierarchy);\n          }\n        }\n      }\n\n      i += 1;\n    }\n  };\n\n  BaseRenderer.prototype.addPendingElement = function (element) {\n    this.pendingElements.push(element);\n  };\n\n  BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n    var i;\n    var len = assets.length;\n\n    for (i = 0; i < len; i += 1) {\n      if (assets[i].xt) {\n        var comp = this.createComp(assets[i]);\n        comp.initExpressions();\n        this.globalData.projectInterface.registerComposition(comp);\n      }\n    }\n  };\n\n  BaseRenderer.prototype.getElementByPath = function (path) {\n    var pathValue = path.shift();\n    var element;\n\n    if (typeof pathValue === 'number') {\n      element = this.elements[pathValue];\n    } else {\n      var i;\n      var len = this.elements.length;\n\n      for (i = 0; i < len; i += 1) {\n        if (this.elements[i].data.nm === pathValue) {\n          element = this.elements[i];\n          break;\n        }\n      }\n    }\n\n    if (path.length === 0) {\n      return element;\n    }\n\n    return element.getElementByPath(path);\n  };\n\n  BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n    this.globalData.fontManager = new FontManager();\n    this.globalData.fontManager.addChars(animData.chars);\n    this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n    this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n    this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n    this.globalData.imageLoader = this.animationItem.imagePreloader;\n    this.globalData.audioController = this.animationItem.audioController;\n    this.globalData.frameId = 0;\n    this.globalData.frameRate = animData.fr;\n    this.globalData.nm = animData.nm;\n    this.globalData.compSize = {\n      w: animData.w,\n      h: animData.h\n    };\n  };\n\n  function TransformElement() {}\n\n  TransformElement.prototype = {\n    initTransform: function initTransform() {\n      this.finalTransform = {\n        mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n          o: 0\n        },\n        _matMdf: false,\n        _opMdf: false,\n        mat: new Matrix()\n      };\n\n      if (this.data.ao) {\n        this.finalTransform.mProp.autoOriented = true;\n      } // TODO: check TYPE 11: Guided elements\n\n\n      if (this.data.ty !== 11) {// this.createElements();\n      }\n    },\n    renderTransform: function renderTransform() {\n      this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n      this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n\n      if (this.hierarchy) {\n        var mat;\n        var finalMat = this.finalTransform.mat;\n        var i = 0;\n        var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n        if (!this.finalTransform._matMdf) {\n          while (i < len) {\n            if (this.hierarchy[i].finalTransform.mProp._mdf) {\n              this.finalTransform._matMdf = true;\n              break;\n            }\n\n            i += 1;\n          }\n        }\n\n        if (this.finalTransform._matMdf) {\n          mat = this.finalTransform.mProp.v.props;\n          finalMat.cloneFromProps(mat);\n\n          for (i = 0; i < len; i += 1) {\n            mat = this.hierarchy[i].finalTransform.mProp.v.props;\n            finalMat.transform(mat[0], mat[1], mat[2], mat[3], mat[4], mat[5], mat[6], mat[7], mat[8], mat[9], mat[10], mat[11], mat[12], mat[13], mat[14], mat[15]);\n          }\n        }\n      }\n    },\n    globalToLocal: function globalToLocal(pt) {\n      var transforms = [];\n      transforms.push(this.finalTransform);\n      var flag = true;\n      var comp = this.comp;\n\n      while (flag) {\n        if (comp.finalTransform) {\n          if (comp.data.hasMask) {\n            transforms.splice(0, 0, comp.finalTransform);\n          }\n\n          comp = comp.comp;\n        } else {\n          flag = false;\n        }\n      }\n\n      var i;\n      var len = transforms.length;\n      var ptNew;\n\n      for (i = 0; i < len; i += 1) {\n        ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n        pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n      }\n\n      return pt;\n    },\n    mHelper: new Matrix()\n  };\n\n  function MaskElement(data, element, globalData) {\n    this.data = data;\n    this.element = element;\n    this.globalData = globalData;\n    this.storedData = [];\n    this.masksProperties = this.data.masksProperties || [];\n    this.maskElement = null;\n    var defs = this.globalData.defs;\n    var i;\n    var len = this.masksProperties ? this.masksProperties.length : 0;\n    this.viewData = createSizedArray(len);\n    this.solidPath = '';\n    var path;\n    var properties = this.masksProperties;\n    var count = 0;\n    var currentMasks = [];\n    var j;\n    var jLen;\n    var layerId = createElementID();\n    var rect;\n    var expansor;\n    var feMorph;\n    var x;\n    var maskType = 'clipPath';\n    var maskRef = 'clip-path';\n\n    for (i = 0; i < len; i += 1) {\n      if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n        maskType = 'mask';\n        maskRef = 'mask';\n      }\n\n      if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n        rect = createNS('rect');\n        rect.setAttribute('fill', '#ffffff');\n        rect.setAttribute('width', this.element.comp.data.w || 0);\n        rect.setAttribute('height', this.element.comp.data.h || 0);\n        currentMasks.push(rect);\n      } else {\n        rect = null;\n      }\n\n      path = createNS('path');\n\n      if (properties[i].mode === 'n') {\n        // TODO move this to a factory or to a constructor\n        this.viewData[i] = {\n          op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n          prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n          elem: path,\n          lastPath: ''\n        };\n        defs.appendChild(path);\n      } else {\n        count += 1;\n        path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n        path.setAttribute('clip-rule', 'nonzero');\n        var filterID;\n\n        if (properties[i].x.k !== 0) {\n          maskType = 'mask';\n          maskRef = 'mask';\n          x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n          filterID = createElementID();\n          expansor = createNS('filter');\n          expansor.setAttribute('id', filterID);\n          feMorph = createNS('feMorphology');\n          feMorph.setAttribute('operator', 'erode');\n          feMorph.setAttribute('in', 'SourceGraphic');\n          feMorph.setAttribute('radius', '0');\n          expansor.appendChild(feMorph);\n          defs.appendChild(expansor);\n          path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n        } else {\n          feMorph = null;\n          x = null;\n        } // TODO move this to a factory or to a constructor\n\n\n        this.storedData[i] = {\n          elem: path,\n          x: x,\n          expan: feMorph,\n          lastPath: '',\n          lastOperator: '',\n          filterId: filterID,\n          lastRadius: 0\n        };\n\n        if (properties[i].mode === 'i') {\n          jLen = currentMasks.length;\n          var g = createNS('g');\n\n          for (j = 0; j < jLen; j += 1) {\n            g.appendChild(currentMasks[j]);\n          }\n\n          var mask = createNS('mask');\n          mask.setAttribute('mask-type', 'alpha');\n          mask.setAttribute('id', layerId + '_' + count);\n          mask.appendChild(path);\n          defs.appendChild(mask);\n          g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n          currentMasks.length = 0;\n          currentMasks.push(g);\n        } else {\n          currentMasks.push(path);\n        }\n\n        if (properties[i].inv && !this.solidPath) {\n          this.solidPath = this.createLayerSolidPath();\n        } // TODO move this to a factory or to a constructor\n\n\n        this.viewData[i] = {\n          elem: path,\n          lastPath: '',\n          op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n          prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n          invRect: rect\n        };\n\n        if (!this.viewData[i].prop.k) {\n          this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n        }\n      }\n    }\n\n    this.maskElement = createNS(maskType);\n    len = currentMasks.length;\n\n    for (i = 0; i < len; i += 1) {\n      this.maskElement.appendChild(currentMasks[i]);\n    }\n\n    if (count > 0) {\n      this.maskElement.setAttribute('id', layerId);\n      this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n      defs.appendChild(this.maskElement);\n    }\n\n    if (this.viewData.length) {\n      this.element.addRenderableComponent(this);\n    }\n  }\n\n  MaskElement.prototype.getMaskProperty = function (pos) {\n    return this.viewData[pos].prop;\n  };\n\n  MaskElement.prototype.renderFrame = function (isFirstFrame) {\n    var finalMat = this.element.finalTransform.mat;\n    var i;\n    var len = this.masksProperties.length;\n\n    for (i = 0; i < len; i += 1) {\n      if (this.viewData[i].prop._mdf || isFirstFrame) {\n        this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n      }\n\n      if (this.viewData[i].op._mdf || isFirstFrame) {\n        this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n      }\n\n      if (this.masksProperties[i].mode !== 'n') {\n        if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n          this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n        }\n\n        if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n          var feMorph = this.storedData[i].expan;\n\n          if (this.storedData[i].x.v < 0) {\n            if (this.storedData[i].lastOperator !== 'erode') {\n              this.storedData[i].lastOperator = 'erode';\n              this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n            }\n\n            feMorph.setAttribute('radius', -this.storedData[i].x.v);\n          } else {\n            if (this.storedData[i].lastOperator !== 'dilate') {\n              this.storedData[i].lastOperator = 'dilate';\n              this.storedData[i].elem.setAttribute('filter', null);\n            }\n\n            this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n          }\n        }\n      }\n    }\n  };\n\n  MaskElement.prototype.getMaskelement = function () {\n    return this.maskElement;\n  };\n\n  MaskElement.prototype.createLayerSolidPath = function () {\n    var path = 'M0,0 ';\n    path += ' h' + this.globalData.compSize.w;\n    path += ' v' + this.globalData.compSize.h;\n    path += ' h-' + this.globalData.compSize.w;\n    path += ' v-' + this.globalData.compSize.h + ' ';\n    return path;\n  };\n\n  MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n    var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n    var i;\n    var len;\n    len = pathNodes._length;\n\n    for (i = 1; i < len; i += 1) {\n      // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n      pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\n    } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\n\n    if (pathNodes.c && len > 1) {\n      pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n    } // pathNodes.__renderedString = pathString;\n\n\n    if (viewData.lastPath !== pathString) {\n      var pathShapeValue = '';\n\n      if (viewData.elem) {\n        if (pathNodes.c) {\n          pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n        }\n\n        viewData.elem.setAttribute('d', pathShapeValue);\n      }\n\n      viewData.lastPath = pathString;\n    }\n  };\n\n  MaskElement.prototype.destroy = function () {\n    this.element = null;\n    this.globalData = null;\n    this.maskElement = null;\n    this.data = null;\n    this.masksProperties = null;\n  };\n\n  var filtersFactory = function () {\n    var ob = {};\n    ob.createFilter = createFilter;\n    ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n    function createFilter(filId, skipCoordinates) {\n      var fil = createNS('filter');\n      fil.setAttribute('id', filId);\n\n      if (skipCoordinates !== true) {\n        fil.setAttribute('filterUnits', 'objectBoundingBox');\n        fil.setAttribute('x', '0%');\n        fil.setAttribute('y', '0%');\n        fil.setAttribute('width', '100%');\n        fil.setAttribute('height', '100%');\n      }\n\n      return fil;\n    }\n\n    function createAlphaToLuminanceFilter() {\n      var feColorMatrix = createNS('feColorMatrix');\n      feColorMatrix.setAttribute('type', 'matrix');\n      feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n      feColorMatrix.setAttribute('values', '0 0 0 1 0  0 0 0 1 0  0 0 0 1 0  0 0 0 1 1');\n      return feColorMatrix;\n    }\n\n    return ob;\n  }();\n\n  var featureSupport = function () {\n    var ob = {\n      maskType: true\n    };\n\n    if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n      ob.maskType = false;\n    }\n\n    return ob;\n  }();\n\n  var registeredEffects = {};\n  var idPrefix = 'filter_result_';\n\n  function SVGEffects(elem) {\n    var i;\n    var source = 'SourceGraphic';\n    var len = elem.data.ef ? elem.data.ef.length : 0;\n    var filId = createElementID();\n    var fil = filtersFactory.createFilter(filId, true);\n    var count = 0;\n    this.filters = [];\n    var filterManager;\n\n    for (i = 0; i < len; i += 1) {\n      filterManager = null;\n      var type = elem.data.ef[i].ty;\n\n      if (registeredEffects[type]) {\n        var Effect = registeredEffects[type].effect;\n        filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\n        source = idPrefix + count;\n\n        if (registeredEffects[type].countsAsEffect) {\n          count += 1;\n        }\n      }\n\n      if (filterManager) {\n        this.filters.push(filterManager);\n      }\n    }\n\n    if (count) {\n      elem.globalData.defs.appendChild(fil);\n      elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n    }\n\n    if (this.filters.length) {\n      elem.addRenderableComponent(this);\n    }\n  }\n\n  SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n    var i;\n    var len = this.filters.length;\n\n    for (i = 0; i < len; i += 1) {\n      this.filters[i].renderFrame(_isFirstFrame);\n    }\n  };\n\n  function registerEffect(id, effect, countsAsEffect) {\n    registeredEffects[id] = {\n      effect: effect,\n      countsAsEffect: countsAsEffect\n    };\n  }\n\n  function SVGBaseElement() {}\n\n  SVGBaseElement.prototype = {\n    initRendererElement: function initRendererElement() {\n      this.layerElement = createNS('g');\n    },\n    createContainerElements: function createContainerElements() {\n      this.matteElement = createNS('g');\n      this.transformedElement = this.layerElement;\n      this.maskedElement = this.layerElement;\n      this._sizeChanged = false;\n      var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n      var filId;\n      var fil;\n      var gg;\n\n      if (this.data.td) {\n        if (this.data.td == 3 || this.data.td == 1) {\n          // eslint-disable-line eqeqeq\n          var masker = createNS('mask');\n          masker.setAttribute('id', this.layerId);\n          masker.setAttribute('mask-type', this.data.td == 3 ? 'luminance' : 'alpha'); // eslint-disable-line eqeqeq\n\n          masker.appendChild(this.layerElement);\n          layerElementParent = masker;\n          this.globalData.defs.appendChild(masker); // This is only for IE and Edge when mask if of type alpha\n\n          if (!featureSupport.maskType && this.data.td == 1) {\n            // eslint-disable-line eqeqeq\n            masker.setAttribute('mask-type', 'luminance');\n            filId = createElementID();\n            fil = filtersFactory.createFilter(filId);\n            this.globalData.defs.appendChild(fil);\n            fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n            gg = createNS('g');\n            gg.appendChild(this.layerElement);\n            layerElementParent = gg;\n            masker.appendChild(gg);\n            gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n          }\n        } else if (this.data.td == 2) {\n          // eslint-disable-line eqeqeq\n          var maskGroup = createNS('mask');\n          maskGroup.setAttribute('id', this.layerId);\n          maskGroup.setAttribute('mask-type', 'alpha');\n          var maskGrouper = createNS('g');\n          maskGroup.appendChild(maskGrouper);\n          filId = createElementID();\n          fil = filtersFactory.createFilter(filId); /// /\n          // This solution doesn't work on Android when meta tag with viewport attribute is set\n\n          /* var feColorMatrix = createNS('feColorMatrix');\r\n                  feColorMatrix.setAttribute('type', 'matrix');\r\n                  feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n                  feColorMatrix.setAttribute('values','1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 -1 1');\r\n                  fil.appendChild(feColorMatrix); */\n          /// /\n\n          var feCTr = createNS('feComponentTransfer');\n          feCTr.setAttribute('in', 'SourceGraphic');\n          fil.appendChild(feCTr);\n          var feFunc = createNS('feFuncA');\n          feFunc.setAttribute('type', 'table');\n          feFunc.setAttribute('tableValues', '1.0 0.0');\n          feCTr.appendChild(feFunc); /// /\n\n          this.globalData.defs.appendChild(fil);\n          var alphaRect = createNS('rect');\n          alphaRect.setAttribute('width', this.comp.data.w);\n          alphaRect.setAttribute('height', this.comp.data.h);\n          alphaRect.setAttribute('x', '0');\n          alphaRect.setAttribute('y', '0');\n          alphaRect.setAttribute('fill', '#ffffff');\n          alphaRect.setAttribute('opacity', '0');\n          maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n          maskGrouper.appendChild(alphaRect);\n          maskGrouper.appendChild(this.layerElement);\n          layerElementParent = maskGrouper;\n\n          if (!featureSupport.maskType) {\n            maskGroup.setAttribute('mask-type', 'luminance');\n            fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n            gg = createNS('g');\n            maskGrouper.appendChild(alphaRect);\n            gg.appendChild(this.layerElement);\n            layerElementParent = gg;\n            maskGrouper.appendChild(gg);\n          }\n\n          this.globalData.defs.appendChild(maskGroup);\n        }\n      } else if (this.data.tt) {\n        this.matteElement.appendChild(this.layerElement);\n        layerElementParent = this.matteElement;\n        this.baseElement = this.matteElement;\n      } else {\n        this.baseElement = this.layerElement;\n      }\n\n      if (this.data.ln) {\n        this.layerElement.setAttribute('id', this.data.ln);\n      }\n\n      if (this.data.cl) {\n        this.layerElement.setAttribute('class', this.data.cl);\n      } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n      if (this.data.ty === 0 && !this.data.hd) {\n        var cp = createNS('clipPath');\n        var pt = createNS('path');\n        pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n        var clipId = createElementID();\n        cp.setAttribute('id', clipId);\n        cp.appendChild(pt);\n        this.globalData.defs.appendChild(cp);\n\n        if (this.checkMasks()) {\n          var cpGroup = createNS('g');\n          cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n          cpGroup.appendChild(this.layerElement);\n          this.transformedElement = cpGroup;\n\n          if (layerElementParent) {\n            layerElementParent.appendChild(this.transformedElement);\n          } else {\n            this.baseElement = this.transformedElement;\n          }\n        } else {\n          this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n        }\n      }\n\n      if (this.data.bm !== 0) {\n        this.setBlendMode();\n      }\n    },\n    renderElement: function renderElement() {\n      if (this.finalTransform._matMdf) {\n        this.transformedElement.setAttribute('transform', this.finalTransform.mat.to2dCSS());\n      }\n\n      if (this.finalTransform._opMdf) {\n        this.transformedElement.setAttribute('opacity', this.finalTransform.mProp.o.v);\n      }\n    },\n    destroyBaseElement: function destroyBaseElement() {\n      this.layerElement = null;\n      this.matteElement = null;\n      this.maskManager.destroy();\n    },\n    getBaseElement: function getBaseElement() {\n      if (this.data.hd) {\n        return null;\n      }\n\n      return this.baseElement;\n    },\n    createRenderableComponents: function createRenderableComponents() {\n      this.maskManager = new MaskElement(this.data, this, this.globalData);\n      this.renderableEffectsManager = new SVGEffects(this);\n    },\n    setMatte: function setMatte(id) {\n      if (!this.matteElement) {\n        return;\n      }\n\n      this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n    }\n  };\n\n  /**\r\n   * @file\r\n   * Handles AE's layer parenting property.\r\n   *\r\n   */\n  function HierarchyElement() {}\n\n  HierarchyElement.prototype = {\n    /**\r\n       * @function\r\n       * Initializes hierarchy properties\r\n       *\r\n       */\n    initHierarchy: function initHierarchy() {\n      // element's parent list\n      this.hierarchy = []; // if element is parent of another layer _isParent will be true\n\n      this._isParent = false;\n      this.checkParenting();\n    },\n\n    /**\r\n       * @function\r\n       * Sets layer's hierarchy.\r\n       * @param {array} hierarch\r\n       * layer's parent list\r\n       *\r\n       */\n    setHierarchy: function setHierarchy(hierarchy) {\n      this.hierarchy = hierarchy;\n    },\n\n    /**\r\n       * @function\r\n       * Sets layer as parent.\r\n       *\r\n       */\n    setAsParent: function setAsParent() {\n      this._isParent = true;\n    },\n\n    /**\r\n       * @function\r\n       * Searches layer's parenting chain\r\n       *\r\n       */\n    checkParenting: function checkParenting() {\n      if (this.data.parent !== undefined) {\n        this.comp.buildElementParenting(this, this.data.parent, []);\n      }\n    }\n  };\n\n  function RenderableDOMElement() {}\n\n  (function () {\n    var _prototype = {\n      initElement: function initElement(data, globalData, comp) {\n        this.initFrame();\n        this.initBaseData(data, globalData, comp);\n        this.initTransform(data, globalData, comp);\n        this.initHierarchy();\n        this.initRenderable();\n        this.initRendererElement();\n        this.createContainerElements();\n        this.createRenderableComponents();\n        this.createContent();\n        this.hide();\n      },\n      hide: function hide() {\n        // console.log('HIDE', this);\n        if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n          var elem = this.baseElement || this.layerElement;\n          elem.style.display = 'none';\n          this.hidden = true;\n        }\n      },\n      show: function show() {\n        // console.log('SHOW', this);\n        if (this.isInRange && !this.isTransparent) {\n          if (!this.data.hd) {\n            var elem = this.baseElement || this.layerElement;\n            elem.style.display = 'block';\n          }\n\n          this.hidden = false;\n          this._isFirstFrame = true;\n        }\n      },\n      renderFrame: function renderFrame() {\n        // If it is exported as hidden (data.hd === true) no need to render\n        // If it is not visible no need to render\n        if (this.data.hd || this.hidden) {\n          return;\n        }\n\n        this.renderTransform();\n        this.renderRenderable();\n        this.renderElement();\n        this.renderInnerContent();\n\n        if (this._isFirstFrame) {\n          this._isFirstFrame = false;\n        }\n      },\n      renderInnerContent: function renderInnerContent() {},\n      prepareFrame: function prepareFrame(num) {\n        this._mdf = false;\n        this.prepareRenderableFrame(num);\n        this.prepareProperties(num, this.isInRange);\n        this.checkTransparency();\n      },\n      destroy: function destroy() {\n        this.innerElem = null;\n        this.destroyBaseElement();\n      }\n    };\n    extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n  })();\n\n  function IImageElement(data, globalData, comp) {\n    this.assetData = globalData.getAssetData(data.refId);\n    this.initElement(data, globalData, comp);\n    this.sourceRect = {\n      top: 0,\n      left: 0,\n      width: this.assetData.w,\n      height: this.assetData.h\n    };\n  }\n\n  extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n  IImageElement.prototype.createContent = function () {\n    var assetPath = this.globalData.getAssetsPath(this.assetData);\n    this.innerElem = createNS('image');\n    this.innerElem.setAttribute('width', this.assetData.w + 'px');\n    this.innerElem.setAttribute('height', this.assetData.h + 'px');\n    this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n    this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n    this.layerElement.appendChild(this.innerElem);\n  };\n\n  IImageElement.prototype.sourceRectAtTime = function () {\n    return this.sourceRect;\n  };\n\n  function ProcessedElement(element, position) {\n    this.elem = element;\n    this.pos = position;\n  }\n\n  function IShapeElement() {}\n\n  IShapeElement.prototype = {\n    addShapeToModifiers: function addShapeToModifiers(data) {\n      var i;\n      var len = this.shapeModifiers.length;\n\n      for (i = 0; i < len; i += 1) {\n        this.shapeModifiers[i].addShape(data);\n      }\n    },\n    isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\n      var i = 0;\n      var len = this.shapeModifiers.length;\n\n      while (i < len) {\n        if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n          return true;\n        }\n      }\n\n      return false;\n    },\n    renderModifiers: function renderModifiers() {\n      if (!this.shapeModifiers.length) {\n        return;\n      }\n\n      var i;\n      var len = this.shapes.length;\n\n      for (i = 0; i < len; i += 1) {\n        this.shapes[i].sh.reset();\n      }\n\n      len = this.shapeModifiers.length;\n      var shouldBreakProcess;\n\n      for (i = len - 1; i >= 0; i -= 1) {\n        shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n        // TODO: find a better solution for this\n\n        if (shouldBreakProcess) {\n          break;\n        }\n      }\n    },\n    searchProcessedElement: function searchProcessedElement(elem) {\n      var elements = this.processedElements;\n      var i = 0;\n      var len = elements.length;\n\n      while (i < len) {\n        if (elements[i].elem === elem) {\n          return elements[i].pos;\n        }\n\n        i += 1;\n      }\n\n      return 0;\n    },\n    addProcessedElement: function addProcessedElement(elem, pos) {\n      var elements = this.processedElements;\n      var i = elements.length;\n\n      while (i) {\n        i -= 1;\n\n        if (elements[i].elem === elem) {\n          elements[i].pos = pos;\n          return;\n        }\n      }\n\n      elements.push(new ProcessedElement(elem, pos));\n    },\n    prepareFrame: function prepareFrame(num) {\n      this.prepareRenderableFrame(num);\n      this.prepareProperties(num, this.isInRange);\n    }\n  };\n\n  var lineCapEnum = {\n    1: 'butt',\n    2: 'round',\n    3: 'square'\n  };\n  var lineJoinEnum = {\n    1: 'miter',\n    2: 'round',\n    3: 'bevel'\n  };\n\n  function SVGShapeData(transformers, level, shape) {\n    this.caches = [];\n    this.styles = [];\n    this.transformers = transformers;\n    this.lStr = '';\n    this.sh = shape;\n    this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n    // For now, since shapes add up with other shapes. They have to be calculated every time.\n    // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n    this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n    var i = 0;\n    var len = transformers.length;\n\n    while (i < len) {\n      if (transformers[i].mProps.dynamicProperties.length) {\n        this._isAnimated = true;\n        break;\n      }\n\n      i += 1;\n    }\n  }\n\n  SVGShapeData.prototype.setAsAnimated = function () {\n    this._isAnimated = true;\n  };\n\n  function SVGStyleData(data, level) {\n    this.data = data;\n    this.type = data.ty;\n    this.d = '';\n    this.lvl = level;\n    this._mdf = false;\n    this.closed = data.hd === true;\n    this.pElem = createNS('path');\n    this.msElem = null;\n  }\n\n  SVGStyleData.prototype.reset = function () {\n    this.d = '';\n    this._mdf = false;\n  };\n\n  function DashProperty(elem, data, renderer, container) {\n    this.elem = elem;\n    this.frameId = -1;\n    this.dataProps = createSizedArray(data.length);\n    this.renderer = renderer;\n    this.k = false;\n    this.dashStr = '';\n    this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n    this.dashoffset = createTypedArray('float32', 1);\n    this.initDynamicPropertyContainer(container);\n    var i;\n    var len = data.length || 0;\n    var prop;\n\n    for (i = 0; i < len; i += 1) {\n      prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n      this.k = prop.k || this.k;\n      this.dataProps[i] = {\n        n: data[i].n,\n        p: prop\n      };\n    }\n\n    if (!this.k) {\n      this.getValue(true);\n    }\n\n    this._isAnimated = this.k;\n  }\n\n  DashProperty.prototype.getValue = function (forceRender) {\n    if (this.elem.globalData.frameId === this.frameId && !forceRender) {\n      return;\n    }\n\n    this.frameId = this.elem.globalData.frameId;\n    this.iterateDynamicProperties();\n    this._mdf = this._mdf || forceRender;\n\n    if (this._mdf) {\n      var i = 0;\n      var len = this.dataProps.length;\n\n      if (this.renderer === 'svg') {\n        this.dashStr = '';\n      }\n\n      for (i = 0; i < len; i += 1) {\n        if (this.dataProps[i].n !== 'o') {\n          if (this.renderer === 'svg') {\n            this.dashStr += ' ' + this.dataProps[i].p.v;\n          } else {\n            this.dashArray[i] = this.dataProps[i].p.v;\n          }\n        } else {\n          this.dashoffset[0] = this.dataProps[i].p.v;\n        }\n      }\n    }\n  };\n\n  extendPrototype([DynamicPropertyContainer], DashProperty);\n\n  function SVGStrokeStyleData(elem, data, styleOb) {\n    this.initDynamicPropertyContainer(elem);\n    this.getValue = this.iterateDynamicProperties;\n    this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n    this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n    this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n    this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n    this.style = styleOb;\n    this._isAnimated = !!this._isAnimated;\n  }\n\n  extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\n  function SVGFillStyleData(elem, data, styleOb) {\n    this.initDynamicPropertyContainer(elem);\n    this.getValue = this.iterateDynamicProperties;\n    this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n    this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n    this.style = styleOb;\n  }\n\n  extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\n  function SVGNoStyleData(elem, data, styleOb) {\n    this.initDynamicPropertyContainer(elem);\n    this.getValue = this.iterateDynamicProperties;\n    this.style = styleOb;\n  }\n\n  extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\n  function GradientProperty(elem, data, container) {\n    this.data = data;\n    this.c = createTypedArray('uint8c', data.p * 4);\n    var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n    this.o = createTypedArray('float32', cLength);\n    this._cmdf = false;\n    this._omdf = false;\n    this._collapsable = this.checkCollapsable();\n    this._hasOpacity = cLength;\n    this.initDynamicPropertyContainer(container);\n    this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n    this.k = this.prop.k;\n    this.getValue(true);\n  }\n\n  GradientProperty.prototype.comparePoints = function (values, points) {\n    var i = 0;\n    var len = this.o.length / 2;\n    var diff;\n\n    while (i < len) {\n      diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n      if (diff > 0.01) {\n        return false;\n      }\n\n      i += 1;\n    }\n\n    return true;\n  };\n\n  GradientProperty.prototype.checkCollapsable = function () {\n    if (this.o.length / 2 !== this.c.length / 4) {\n      return false;\n    }\n\n    if (this.data.k.k[0].s) {\n      var i = 0;\n      var len = this.data.k.k.length;\n\n      while (i < len) {\n        if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n          return false;\n        }\n\n        i += 1;\n      }\n    } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n      return false;\n    }\n\n    return true;\n  };\n\n  GradientProperty.prototype.getValue = function (forceRender) {\n    this.prop.getValue();\n    this._mdf = false;\n    this._cmdf = false;\n    this._omdf = false;\n\n    if (this.prop._mdf || forceRender) {\n      var i;\n      var len = this.data.p * 4;\n      var mult;\n      var val;\n\n      for (i = 0; i < len; i += 1) {\n        mult = i % 4 === 0 ? 100 : 255;\n        val = Math.round(this.prop.v[i] * mult);\n\n        if (this.c[i] !== val) {\n          this.c[i] = val;\n          this._cmdf = !forceRender;\n        }\n      }\n\n      if (this.o.length) {\n        len = this.prop.v.length;\n\n        for (i = this.data.p * 4; i < len; i += 1) {\n          mult = i % 2 === 0 ? 100 : 1;\n          val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n\n          if (this.o[i - this.data.p * 4] !== val) {\n            this.o[i - this.data.p * 4] = val;\n            this._omdf = !forceRender;\n          }\n        }\n      }\n\n      this._mdf = !forceRender;\n    }\n  };\n\n  extendPrototype([DynamicPropertyContainer], GradientProperty);\n\n  function SVGGradientFillStyleData(elem, data, styleOb) {\n    this.initDynamicPropertyContainer(elem);\n    this.getValue = this.iterateDynamicProperties;\n    this.initGradientData(elem, data, styleOb);\n  }\n\n  SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n    this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n    this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n    this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n    this.h = PropertyFactory.getProp(elem, data.h || {\n      k: 0\n    }, 0, 0.01, this);\n    this.a = PropertyFactory.getProp(elem, data.a || {\n      k: 0\n    }, 0, degToRads, this);\n    this.g = new GradientProperty(elem, data.g, this);\n    this.style = styleOb;\n    this.stops = [];\n    this.setGradientData(styleOb.pElem, data);\n    this.setGradientOpacity(data, styleOb);\n    this._isAnimated = !!this._isAnimated;\n  };\n\n  SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n    var gradientId = createElementID();\n    var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n    gfill.setAttribute('id', gradientId);\n    gfill.setAttribute('spreadMethod', 'pad');\n    gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n    var stops = [];\n    var stop;\n    var j;\n    var jLen;\n    jLen = data.g.p * 4;\n\n    for (j = 0; j < jLen; j += 4) {\n      stop = createNS('stop');\n      gfill.appendChild(stop);\n      stops.push(stop);\n    }\n\n    pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n    this.gf = gfill;\n    this.cst = stops;\n  };\n\n  SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n    if (this.g._hasOpacity && !this.g._collapsable) {\n      var stop;\n      var j;\n      var jLen;\n      var mask = createNS('mask');\n      var maskElement = createNS('path');\n      mask.appendChild(maskElement);\n      var opacityId = createElementID();\n      var maskId = createElementID();\n      mask.setAttribute('id', maskId);\n      var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n      opFill.setAttribute('id', opacityId);\n      opFill.setAttribute('spreadMethod', 'pad');\n      opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n      jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n      var stops = this.stops;\n\n      for (j = data.g.p * 4; j < jLen; j += 2) {\n        stop = createNS('stop');\n        stop.setAttribute('stop-color', 'rgb(255,255,255)');\n        opFill.appendChild(stop);\n        stops.push(stop);\n      }\n\n      maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n\n      if (data.ty === 'gs') {\n        maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n        maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\n        if (data.lj === 1) {\n          maskElement.setAttribute('stroke-miterlimit', data.ml);\n        }\n      }\n\n      this.of = opFill;\n      this.ms = mask;\n      this.ost = stops;\n      this.maskId = maskId;\n      styleOb.msElem = maskElement;\n    }\n  };\n\n  extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\n  function SVGGradientStrokeStyleData(elem, data, styleOb) {\n    this.initDynamicPropertyContainer(elem);\n    this.getValue = this.iterateDynamicProperties;\n    this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n    this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n    this.initGradientData(elem, data, styleOb);\n    this._isAnimated = !!this._isAnimated;\n  }\n\n  extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\n  function ShapeGroupData() {\n    this.it = [];\n    this.prevViewData = [];\n    this.gr = createNS('g');\n  }\n\n  function SVGTransformData(mProps, op, container) {\n    this.transform = {\n      mProps: mProps,\n      op: op,\n      container: container\n    };\n    this.elements = [];\n    this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n  }\n\n  var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\n    if (length === 0) {\n      return '';\n    }\n\n    var _o = pathNodes.o;\n    var _i = pathNodes.i;\n    var _v = pathNodes.v;\n    var i;\n    var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n    for (i = 1; i < length; i += 1) {\n      shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n    }\n\n    if (closed && length) {\n      shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n      shapeString += 'z';\n    }\n\n    return shapeString;\n  };\n\n  var SVGElementsRenderer = function () {\n    var _identityMatrix = new Matrix();\n\n    var _matrixHelper = new Matrix();\n\n    var ob = {\n      createRenderFunction: createRenderFunction\n    };\n\n    function createRenderFunction(data) {\n      switch (data.ty) {\n        case 'fl':\n          return renderFill;\n\n        case 'gf':\n          return renderGradient;\n\n        case 'gs':\n          return renderGradientStroke;\n\n        case 'st':\n          return renderStroke;\n\n        case 'sh':\n        case 'el':\n        case 'rc':\n        case 'sr':\n          return renderPath;\n\n        case 'tr':\n          return renderContentTransform;\n\n        case 'no':\n          return renderNoop;\n\n        default:\n          return null;\n      }\n    }\n\n    function renderContentTransform(styleData, itemData, isFirstFrame) {\n      if (isFirstFrame || itemData.transform.op._mdf) {\n        itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n      }\n\n      if (isFirstFrame || itemData.transform.mProps._mdf) {\n        itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n      }\n    }\n\n    function renderNoop() {}\n\n    function renderPath(styleData, itemData, isFirstFrame) {\n      var j;\n      var jLen;\n      var pathStringTransformed;\n      var redraw;\n      var pathNodes;\n      var l;\n      var lLen = itemData.styles.length;\n      var lvl = itemData.lvl;\n      var paths;\n      var mat;\n      var props;\n      var iterations;\n      var k;\n\n      for (l = 0; l < lLen; l += 1) {\n        redraw = itemData.sh._mdf || isFirstFrame;\n\n        if (itemData.styles[l].lvl < lvl) {\n          mat = _matrixHelper.reset();\n          iterations = lvl - itemData.styles[l].lvl;\n          k = itemData.transformers.length - 1;\n\n          while (!redraw && iterations > 0) {\n            redraw = itemData.transformers[k].mProps._mdf || redraw;\n            iterations -= 1;\n            k -= 1;\n          }\n\n          if (redraw) {\n            iterations = lvl - itemData.styles[l].lvl;\n            k = itemData.transformers.length - 1;\n\n            while (iterations > 0) {\n              props = itemData.transformers[k].mProps.v.props;\n              mat.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\n              iterations -= 1;\n              k -= 1;\n            }\n          }\n        } else {\n          mat = _identityMatrix;\n        }\n\n        paths = itemData.sh.paths;\n        jLen = paths._length;\n\n        if (redraw) {\n          pathStringTransformed = '';\n\n          for (j = 0; j < jLen; j += 1) {\n            pathNodes = paths.shapes[j];\n\n            if (pathNodes && pathNodes._length) {\n              pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n            }\n          }\n\n          itemData.caches[l] = pathStringTransformed;\n        } else {\n          pathStringTransformed = itemData.caches[l];\n        }\n\n        itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\n        itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n      }\n    }\n\n    function renderFill(styleData, itemData, isFirstFrame) {\n      var styleElem = itemData.style;\n\n      if (itemData.c._mdf || isFirstFrame) {\n        styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n      }\n\n      if (itemData.o._mdf || isFirstFrame) {\n        styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\n      }\n    }\n\n    function renderGradientStroke(styleData, itemData, isFirstFrame) {\n      renderGradient(styleData, itemData, isFirstFrame);\n      renderStroke(styleData, itemData, isFirstFrame);\n    }\n\n    function renderGradient(styleData, itemData, isFirstFrame) {\n      var gfill = itemData.gf;\n      var hasOpacity = itemData.g._hasOpacity;\n      var pt1 = itemData.s.v;\n      var pt2 = itemData.e.v;\n\n      if (itemData.o._mdf || isFirstFrame) {\n        var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\n        itemData.style.pElem.setAttribute(attr, itemData.o.v);\n      }\n\n      if (itemData.s._mdf || isFirstFrame) {\n        var attr1 = styleData.t === 1 ? 'x1' : 'cx';\n        var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\n        gfill.setAttribute(attr1, pt1[0]);\n        gfill.setAttribute(attr2, pt1[1]);\n\n        if (hasOpacity && !itemData.g._collapsable) {\n          itemData.of.setAttribute(attr1, pt1[0]);\n          itemData.of.setAttribute(attr2, pt1[1]);\n        }\n      }\n\n      var stops;\n      var i;\n      var len;\n      var stop;\n\n      if (itemData.g._cmdf || isFirstFrame) {\n        stops = itemData.cst;\n        var cValues = itemData.g.c;\n        len = stops.length;\n\n        for (i = 0; i < len; i += 1) {\n          stop = stops[i];\n          stop.setAttribute('offset', cValues[i * 4] + '%');\n          stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\n        }\n      }\n\n      if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n        var oValues = itemData.g.o;\n\n        if (itemData.g._collapsable) {\n          stops = itemData.cst;\n        } else {\n          stops = itemData.ost;\n        }\n\n        len = stops.length;\n\n        for (i = 0; i < len; i += 1) {\n          stop = stops[i];\n\n          if (!itemData.g._collapsable) {\n            stop.setAttribute('offset', oValues[i * 2] + '%');\n          }\n\n          stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\n        }\n      }\n\n      if (styleData.t === 1) {\n        if (itemData.e._mdf || isFirstFrame) {\n          gfill.setAttribute('x2', pt2[0]);\n          gfill.setAttribute('y2', pt2[1]);\n\n          if (hasOpacity && !itemData.g._collapsable) {\n            itemData.of.setAttribute('x2', pt2[0]);\n            itemData.of.setAttribute('y2', pt2[1]);\n          }\n        }\n      } else {\n        var rad;\n\n        if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n          rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n          gfill.setAttribute('r', rad);\n\n          if (hasOpacity && !itemData.g._collapsable) {\n            itemData.of.setAttribute('r', rad);\n          }\n        }\n\n        if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n          if (!rad) {\n            rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n          }\n\n          var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n          var percent = itemData.h.v;\n\n          if (percent >= 1) {\n            percent = 0.99;\n          } else if (percent <= -1) {\n            percent = -0.99;\n          }\n\n          var dist = rad * percent;\n          var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n          var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n          gfill.setAttribute('fx', x);\n          gfill.setAttribute('fy', y);\n\n          if (hasOpacity && !itemData.g._collapsable) {\n            itemData.of.setAttribute('fx', x);\n            itemData.of.setAttribute('fy', y);\n          }\n        } // gfill.setAttribute('fy','200');\n\n      }\n    }\n\n    function renderStroke(styleData, itemData, isFirstFrame) {\n      var styleElem = itemData.style;\n      var d = itemData.d;\n\n      if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n        styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\n        styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\n      }\n\n      if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n        styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n      }\n\n      if (itemData.o._mdf || isFirstFrame) {\n        styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\n      }\n\n      if (itemData.w._mdf || isFirstFrame) {\n        styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\n\n        if (styleElem.msElem) {\n          styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\n        }\n      }\n    }\n\n    return ob;\n  }();\n\n  function SVGShapeElement(data, globalData, comp) {\n    // List of drawable elements\n    this.shapes = []; // Full shape data\n\n    this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n    this.stylesList = []; // List of modifiers that will be applied to shapes\n\n    this.shapeModifiers = []; // List of items in shape tree\n\n    this.itemsData = []; // List of items in previous shape tree\n\n    this.processedElements = []; // List of animated components\n\n    this.animatedContents = [];\n    this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n    // List of elements that have been created\n\n    this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n  }\n\n  extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n  SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n  SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n  SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n  SVGShapeElement.prototype.createContent = function () {\n    this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n    this.filterUniqueShapes();\n  };\n  /*\r\n  This method searches for multiple shapes that affect a single element and one of them is animated\r\n  */\n\n\n  SVGShapeElement.prototype.filterUniqueShapes = function () {\n    var i;\n    var len = this.shapes.length;\n    var shape;\n    var j;\n    var jLen = this.stylesList.length;\n    var style;\n    var tempShapes = [];\n    var areAnimated = false;\n\n    for (j = 0; j < jLen; j += 1) {\n      style = this.stylesList[j];\n      areAnimated = false;\n      tempShapes.length = 0;\n\n      for (i = 0; i < len; i += 1) {\n        shape = this.shapes[i];\n\n        if (shape.styles.indexOf(style) !== -1) {\n          tempShapes.push(shape);\n          areAnimated = shape._isAnimated || areAnimated;\n        }\n      }\n\n      if (tempShapes.length > 1 && areAnimated) {\n        this.setShapesAsAnimated(tempShapes);\n      }\n    }\n  };\n\n  SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n    var i;\n    var len = shapes.length;\n\n    for (i = 0; i < len; i += 1) {\n      shapes[i].setAsAnimated();\n    }\n  };\n\n  SVGShapeElement.prototype.createStyleElement = function (data, level) {\n    // TODO: prevent drawing of hidden styles\n    var elementData;\n    var styleOb = new SVGStyleData(data, level);\n    var pathElement = styleOb.pElem;\n\n    if (data.ty === 'st') {\n      elementData = new SVGStrokeStyleData(this, data, styleOb);\n    } else if (data.ty === 'fl') {\n      elementData = new SVGFillStyleData(this, data, styleOb);\n    } else if (data.ty === 'gf' || data.ty === 'gs') {\n      var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n      elementData = new GradientConstructor(this, data, styleOb);\n      this.globalData.defs.appendChild(elementData.gf);\n\n      if (elementData.maskId) {\n        this.globalData.defs.appendChild(elementData.ms);\n        this.globalData.defs.appendChild(elementData.of);\n        pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n      }\n    } else if (data.ty === 'no') {\n      elementData = new SVGNoStyleData(this, data, styleOb);\n    }\n\n    if (data.ty === 'st' || data.ty === 'gs') {\n      pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n      pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n      pathElement.setAttribute('fill-opacity', '0');\n\n      if (data.lj === 1) {\n        pathElement.setAttribute('stroke-miterlimit', data.ml);\n      }\n    }\n\n    if (data.r === 2) {\n      pathElement.setAttribute('fill-rule', 'evenodd');\n    }\n\n    if (data.ln) {\n      pathElement.setAttribute('id', data.ln);\n    }\n\n    if (data.cl) {\n      pathElement.setAttribute('class', data.cl);\n    }\n\n    if (data.bm) {\n      pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n    }\n\n    this.stylesList.push(styleOb);\n    this.addToAnimatedContents(data, elementData);\n    return elementData;\n  };\n\n  SVGShapeElement.prototype.createGroupElement = function (data) {\n    var elementData = new ShapeGroupData();\n\n    if (data.ln) {\n      elementData.gr.setAttribute('id', data.ln);\n    }\n\n    if (data.cl) {\n      elementData.gr.setAttribute('class', data.cl);\n    }\n\n    if (data.bm) {\n      elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n    }\n\n    return elementData;\n  };\n\n  SVGShapeElement.prototype.createTransformElement = function (data, container) {\n    var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n    var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n    this.addToAnimatedContents(data, elementData);\n    return elementData;\n  };\n\n  SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n    var ty = 4;\n\n    if (data.ty === 'rc') {\n      ty = 5;\n    } else if (data.ty === 'el') {\n      ty = 6;\n    } else if (data.ty === 'sr') {\n      ty = 7;\n    }\n\n    var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n    var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n    this.shapes.push(elementData);\n    this.addShapeToModifiers(elementData);\n    this.addToAnimatedContents(data, elementData);\n    return elementData;\n  };\n\n  SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n    var i = 0;\n    var len = this.animatedContents.length;\n\n    while (i < len) {\n      if (this.animatedContents[i].element === element) {\n        return;\n      }\n\n      i += 1;\n    }\n\n    this.animatedContents.push({\n      fn: SVGElementsRenderer.createRenderFunction(data),\n      element: element,\n      data: data\n    });\n  };\n\n  SVGShapeElement.prototype.setElementStyles = function (elementData) {\n    var arr = elementData.styles;\n    var j;\n    var jLen = this.stylesList.length;\n\n    for (j = 0; j < jLen; j += 1) {\n      if (!this.stylesList[j].closed) {\n        arr.push(this.stylesList[j]);\n      }\n    }\n  };\n\n  SVGShapeElement.prototype.reloadShapes = function () {\n    this._isFirstFrame = true;\n    var i;\n    var len = this.itemsData.length;\n\n    for (i = 0; i < len; i += 1) {\n      this.prevViewData[i] = this.itemsData[i];\n    }\n\n    this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n    this.filterUniqueShapes();\n    len = this.dynamicProperties.length;\n\n    for (i = 0; i < len; i += 1) {\n      this.dynamicProperties[i].getValue();\n    }\n\n    this.renderModifiers();\n  };\n\n  SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n    var ownTransformers = [].concat(transformers);\n    var i;\n    var len = arr.length - 1;\n    var j;\n    var jLen;\n    var ownStyles = [];\n    var ownModifiers = [];\n    var currentTransform;\n    var modifier;\n    var processedPos;\n\n    for (i = len; i >= 0; i -= 1) {\n      processedPos = this.searchProcessedElement(arr[i]);\n\n      if (!processedPos) {\n        arr[i]._render = render;\n      } else {\n        itemsData[i] = prevViewData[processedPos - 1];\n      }\n\n      if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n        if (!processedPos) {\n          itemsData[i] = this.createStyleElement(arr[i], level);\n        } else {\n          itemsData[i].style.closed = false;\n        }\n\n        if (arr[i]._render) {\n          if (itemsData[i].style.pElem.parentNode !== container) {\n            container.appendChild(itemsData[i].style.pElem);\n          }\n        }\n\n        ownStyles.push(itemsData[i].style);\n      } else if (arr[i].ty === 'gr') {\n        if (!processedPos) {\n          itemsData[i] = this.createGroupElement(arr[i]);\n        } else {\n          jLen = itemsData[i].it.length;\n\n          for (j = 0; j < jLen; j += 1) {\n            itemsData[i].prevViewData[j] = itemsData[i].it[j];\n          }\n        }\n\n        this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n        if (arr[i]._render) {\n          if (itemsData[i].gr.parentNode !== container) {\n            container.appendChild(itemsData[i].gr);\n          }\n        }\n      } else if (arr[i].ty === 'tr') {\n        if (!processedPos) {\n          itemsData[i] = this.createTransformElement(arr[i], container);\n        }\n\n        currentTransform = itemsData[i].transform;\n        ownTransformers.push(currentTransform);\n      } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n        if (!processedPos) {\n          itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n        }\n\n        this.setElementStyles(itemsData[i]);\n      } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb') {\n        if (!processedPos) {\n          modifier = ShapeModifiers.getModifier(arr[i].ty);\n          modifier.init(this, arr[i]);\n          itemsData[i] = modifier;\n          this.shapeModifiers.push(modifier);\n        } else {\n          modifier = itemsData[i];\n          modifier.closed = false;\n        }\n\n        ownModifiers.push(modifier);\n      } else if (arr[i].ty === 'rp') {\n        if (!processedPos) {\n          modifier = ShapeModifiers.getModifier(arr[i].ty);\n          itemsData[i] = modifier;\n          modifier.init(this, arr, i, itemsData);\n          this.shapeModifiers.push(modifier);\n          render = false;\n        } else {\n          modifier = itemsData[i];\n          modifier.closed = true;\n        }\n\n        ownModifiers.push(modifier);\n      }\n\n      this.addProcessedElement(arr[i], i + 1);\n    }\n\n    len = ownStyles.length;\n\n    for (i = 0; i < len; i += 1) {\n      ownStyles[i].closed = true;\n    }\n\n    len = ownModifiers.length;\n\n    for (i = 0; i < len; i += 1) {\n      ownModifiers[i].closed = true;\n    }\n  };\n\n  SVGShapeElement.prototype.renderInnerContent = function () {\n    this.renderModifiers();\n    var i;\n    var len = this.stylesList.length;\n\n    for (i = 0; i < len; i += 1) {\n      this.stylesList[i].reset();\n    }\n\n    this.renderShape();\n\n    for (i = 0; i < len; i += 1) {\n      if (this.stylesList[i]._mdf || this._isFirstFrame) {\n        if (this.stylesList[i].msElem) {\n          this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n          this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n        }\n\n        this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n      }\n    }\n  };\n\n  SVGShapeElement.prototype.renderShape = function () {\n    var i;\n    var len = this.animatedContents.length;\n    var animatedContent;\n\n    for (i = 0; i < len; i += 1) {\n      animatedContent = this.animatedContents[i];\n\n      if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n        animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n      }\n    }\n  };\n\n  SVGShapeElement.prototype.destroy = function () {\n    this.destroyBaseElement();\n    this.shapesData = null;\n    this.itemsData = null;\n  };\n\n  function LetterProps(o, sw, sc, fc, m, p) {\n    this.o = o;\n    this.sw = sw;\n    this.sc = sc;\n    this.fc = fc;\n    this.m = m;\n    this.p = p;\n    this._mdf = {\n      o: true,\n      sw: !!sw,\n      sc: !!sc,\n      fc: !!fc,\n      m: true,\n      p: true\n    };\n  }\n\n  LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n    this._mdf.o = false;\n    this._mdf.sw = false;\n    this._mdf.sc = false;\n    this._mdf.fc = false;\n    this._mdf.m = false;\n    this._mdf.p = false;\n    var updated = false;\n\n    if (this.o !== o) {\n      this.o = o;\n      this._mdf.o = true;\n      updated = true;\n    }\n\n    if (this.sw !== sw) {\n      this.sw = sw;\n      this._mdf.sw = true;\n      updated = true;\n    }\n\n    if (this.sc !== sc) {\n      this.sc = sc;\n      this._mdf.sc = true;\n      updated = true;\n    }\n\n    if (this.fc !== fc) {\n      this.fc = fc;\n      this._mdf.fc = true;\n      updated = true;\n    }\n\n    if (this.m !== m) {\n      this.m = m;\n      this._mdf.m = true;\n      updated = true;\n    }\n\n    if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\n      this.p = p;\n      this._mdf.p = true;\n      updated = true;\n    }\n\n    return updated;\n  };\n\n  function TextProperty(elem, data) {\n    this._frameId = initialDefaultFrame;\n    this.pv = '';\n    this.v = '';\n    this.kf = false;\n    this._isFirstFrame = true;\n    this._mdf = false;\n    this.data = data;\n    this.elem = elem;\n    this.comp = this.elem.comp;\n    this.keysIndex = 0;\n    this.canResize = false;\n    this.minimumFontSize = 1;\n    this.effectsSequence = [];\n    this.currentData = {\n      ascent: 0,\n      boxWidth: this.defaultBoxWidth,\n      f: '',\n      fStyle: '',\n      fWeight: '',\n      fc: '',\n      j: '',\n      justifyOffset: '',\n      l: [],\n      lh: 0,\n      lineWidths: [],\n      ls: '',\n      of: '',\n      s: '',\n      sc: '',\n      sw: 0,\n      t: 0,\n      tr: 0,\n      sz: 0,\n      ps: null,\n      fillColorAnim: false,\n      strokeColorAnim: false,\n      strokeWidthAnim: false,\n      yOffset: 0,\n      finalSize: 0,\n      finalText: [],\n      finalLineHeight: 0,\n      __complete: false\n    };\n    this.copyData(this.currentData, this.data.d.k[0].s);\n\n    if (!this.searchProperty()) {\n      this.completeTextData(this.currentData);\n    }\n  }\n\n  TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n  TextProperty.prototype.copyData = function (obj, data) {\n    for (var s in data) {\n      if (Object.prototype.hasOwnProperty.call(data, s)) {\n        obj[s] = data[s];\n      }\n    }\n\n    return obj;\n  };\n\n  TextProperty.prototype.setCurrentData = function (data) {\n    if (!data.__complete) {\n      this.completeTextData(data);\n    }\n\n    this.currentData = data;\n    this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n    this._mdf = true;\n  };\n\n  TextProperty.prototype.searchProperty = function () {\n    return this.searchKeyframes();\n  };\n\n  TextProperty.prototype.searchKeyframes = function () {\n    this.kf = this.data.d.k.length > 1;\n\n    if (this.kf) {\n      this.addEffect(this.getKeyframeValue.bind(this));\n    }\n\n    return this.kf;\n  };\n\n  TextProperty.prototype.addEffect = function (effectFunction) {\n    this.effectsSequence.push(effectFunction);\n    this.elem.addDynamicProperty(this);\n  };\n\n  TextProperty.prototype.getValue = function (_finalValue) {\n    if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n      return;\n    }\n\n    this.currentData.t = this.data.d.k[this.keysIndex].s.t;\n    var currentValue = this.currentData;\n    var currentIndex = this.keysIndex;\n\n    if (this.lock) {\n      this.setCurrentData(this.currentData);\n      return;\n    }\n\n    this.lock = true;\n    this._mdf = false;\n    var i;\n    var len = this.effectsSequence.length;\n    var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n\n    for (i = 0; i < len; i += 1) {\n      // Checking if index changed to prevent creating a new object every time the expression updates.\n      if (currentIndex !== this.keysIndex) {\n        finalValue = this.effectsSequence[i](finalValue, finalValue.t);\n      } else {\n        finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n      }\n    }\n\n    if (currentValue !== finalValue) {\n      this.setCurrentData(finalValue);\n    }\n\n    this.v = this.currentData;\n    this.pv = this.v;\n    this.lock = false;\n    this.frameId = this.elem.globalData.frameId;\n  };\n\n  TextProperty.prototype.getKeyframeValue = function () {\n    var textKeys = this.data.d.k;\n    var frameNum = this.elem.comp.renderedFrame;\n    var i = 0;\n    var len = textKeys.length;\n\n    while (i <= len - 1) {\n      if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n        break;\n      }\n\n      i += 1;\n    }\n\n    if (this.keysIndex !== i) {\n      this.keysIndex = i;\n    }\n\n    return this.data.d.k[this.keysIndex].s;\n  };\n\n  TextProperty.prototype.buildFinalText = function (text) {\n    var charactersArray = [];\n    var i = 0;\n    var len = text.length;\n    var charCode;\n    var secondCharCode;\n    var shouldCombine = false;\n\n    while (i < len) {\n      charCode = text.charCodeAt(i);\n\n      if (FontManager.isCombinedCharacter(charCode)) {\n        charactersArray[charactersArray.length - 1] += text.charAt(i);\n      } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n        secondCharCode = text.charCodeAt(i + 1);\n\n        if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n          if (shouldCombine || FontManager.isModifier(charCode, secondCharCode)) {\n            charactersArray[charactersArray.length - 1] += text.substr(i, 2);\n            shouldCombine = false;\n          } else {\n            charactersArray.push(text.substr(i, 2));\n          }\n\n          i += 1;\n        } else {\n          charactersArray.push(text.charAt(i));\n        }\n      } else if (charCode > 0xDBFF) {\n        secondCharCode = text.charCodeAt(i + 1);\n\n        if (FontManager.isZeroWidthJoiner(charCode, secondCharCode)) {\n          shouldCombine = true;\n          charactersArray[charactersArray.length - 1] += text.substr(i, 2);\n          i += 1;\n        } else {\n          charactersArray.push(text.charAt(i));\n        }\n      } else if (FontManager.isZeroWidthJoiner(charCode)) {\n        charactersArray[charactersArray.length - 1] += text.charAt(i);\n        shouldCombine = true;\n      } else {\n        charactersArray.push(text.charAt(i));\n      }\n\n      i += 1;\n    }\n\n    return charactersArray;\n  };\n\n  TextProperty.prototype.completeTextData = function (documentData) {\n    documentData.__complete = true;\n    var fontManager = this.elem.globalData.fontManager;\n    var data = this.data;\n    var letters = [];\n    var i;\n    var len;\n    var newLineFlag;\n    var index = 0;\n    var val;\n    var anchorGrouping = data.m.g;\n    var currentSize = 0;\n    var currentPos = 0;\n    var currentLine = 0;\n    var lineWidths = [];\n    var lineWidth = 0;\n    var maxLineWidth = 0;\n    var j;\n    var jLen;\n    var fontData = fontManager.getFontByName(documentData.f);\n    var charData;\n    var cLength = 0;\n    var fontProps = getFontProperties(fontData);\n    documentData.fWeight = fontProps.weight;\n    documentData.fStyle = fontProps.style;\n    documentData.finalSize = documentData.s;\n    documentData.finalText = this.buildFinalText(documentData.t);\n    len = documentData.finalText.length;\n    documentData.finalLineHeight = documentData.lh;\n    var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n    var charCode;\n\n    if (documentData.sz) {\n      var flag = true;\n      var boxWidth = documentData.sz[0];\n      var boxHeight = documentData.sz[1];\n      var currentHeight;\n      var finalText;\n\n      while (flag) {\n        finalText = this.buildFinalText(documentData.t);\n        currentHeight = 0;\n        lineWidth = 0;\n        len = finalText.length;\n        trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n        var lastSpaceIndex = -1;\n\n        for (i = 0; i < len; i += 1) {\n          charCode = finalText[i].charCodeAt(0);\n          newLineFlag = false;\n\n          if (finalText[i] === ' ') {\n            lastSpaceIndex = i;\n          } else if (charCode === 13 || charCode === 3) {\n            lineWidth = 0;\n            newLineFlag = true;\n            currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n          }\n\n          if (fontManager.chars) {\n            charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n            cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n          } else {\n            // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n            cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n          }\n\n          if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n            if (lastSpaceIndex === -1) {\n              len += 1;\n            } else {\n              i = lastSpaceIndex;\n            }\n\n            currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n            finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n            lastSpaceIndex = -1;\n            lineWidth = 0;\n          } else {\n            lineWidth += cLength;\n            lineWidth += trackingOffset;\n          }\n        }\n\n        currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n        if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n          documentData.finalSize -= 1;\n          documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n        } else {\n          documentData.finalText = finalText;\n          len = documentData.finalText.length;\n          flag = false;\n        }\n      }\n    }\n\n    lineWidth = -trackingOffset;\n    cLength = 0;\n    var uncollapsedSpaces = 0;\n    var currentChar;\n\n    for (i = 0; i < len; i += 1) {\n      newLineFlag = false;\n      currentChar = documentData.finalText[i];\n      charCode = currentChar.charCodeAt(0);\n\n      if (charCode === 13 || charCode === 3) {\n        uncollapsedSpaces = 0;\n        lineWidths.push(lineWidth);\n        maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n        lineWidth = -2 * trackingOffset;\n        val = '';\n        newLineFlag = true;\n        currentLine += 1;\n      } else {\n        val = currentChar;\n      }\n\n      if (fontManager.chars) {\n        charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n        cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n      } else {\n        // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n        // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n        cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n      } //\n\n\n      if (currentChar === ' ') {\n        uncollapsedSpaces += cLength + trackingOffset;\n      } else {\n        lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n        uncollapsedSpaces = 0;\n      }\n\n      letters.push({\n        l: cLength,\n        an: cLength,\n        add: currentSize,\n        n: newLineFlag,\n        anIndexes: [],\n        val: val,\n        line: currentLine,\n        animatorJustifyOffset: 0\n      });\n\n      if (anchorGrouping == 2) {\n        // eslint-disable-line eqeqeq\n        currentSize += cLength;\n\n        if (val === '' || val === ' ' || i === len - 1) {\n          if (val === '' || val === ' ') {\n            currentSize -= cLength;\n          }\n\n          while (currentPos <= i) {\n            letters[currentPos].an = currentSize;\n            letters[currentPos].ind = index;\n            letters[currentPos].extra = cLength;\n            currentPos += 1;\n          }\n\n          index += 1;\n          currentSize = 0;\n        }\n      } else if (anchorGrouping == 3) {\n        // eslint-disable-line eqeqeq\n        currentSize += cLength;\n\n        if (val === '' || i === len - 1) {\n          if (val === '') {\n            currentSize -= cLength;\n          }\n\n          while (currentPos <= i) {\n            letters[currentPos].an = currentSize;\n            letters[currentPos].ind = index;\n            letters[currentPos].extra = cLength;\n            currentPos += 1;\n          }\n\n          currentSize = 0;\n          index += 1;\n        }\n      } else {\n        letters[index].ind = index;\n        letters[index].extra = 0;\n        index += 1;\n      }\n    }\n\n    documentData.l = letters;\n    maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n    lineWidths.push(lineWidth);\n\n    if (documentData.sz) {\n      documentData.boxWidth = documentData.sz[0];\n      documentData.justifyOffset = 0;\n    } else {\n      documentData.boxWidth = maxLineWidth;\n\n      switch (documentData.j) {\n        case 1:\n          documentData.justifyOffset = -documentData.boxWidth;\n          break;\n\n        case 2:\n          documentData.justifyOffset = -documentData.boxWidth / 2;\n          break;\n\n        default:\n          documentData.justifyOffset = 0;\n      }\n    }\n\n    documentData.lineWidths = lineWidths;\n    var animators = data.a;\n    var animatorData;\n    var letterData;\n    jLen = animators.length;\n    var based;\n    var ind;\n    var indexes = [];\n\n    for (j = 0; j < jLen; j += 1) {\n      animatorData = animators[j];\n\n      if (animatorData.a.sc) {\n        documentData.strokeColorAnim = true;\n      }\n\n      if (animatorData.a.sw) {\n        documentData.strokeWidthAnim = true;\n      }\n\n      if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n        documentData.fillColorAnim = true;\n      }\n\n      ind = 0;\n      based = animatorData.s.b;\n\n      for (i = 0; i < len; i += 1) {\n        letterData = letters[i];\n        letterData.anIndexes[j] = ind;\n\n        if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n          // eslint-disable-line eqeqeq\n          if (animatorData.s.rn === 1) {\n            indexes.push(ind);\n          }\n\n          ind += 1;\n        }\n      }\n\n      data.a[j].s.totalChars = ind;\n      var currentInd = -1;\n      var newInd;\n\n      if (animatorData.s.rn === 1) {\n        for (i = 0; i < len; i += 1) {\n          letterData = letters[i];\n\n          if (currentInd != letterData.anIndexes[j]) {\n            // eslint-disable-line eqeqeq\n            currentInd = letterData.anIndexes[j];\n            newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n          }\n\n          letterData.anIndexes[j] = newInd;\n        }\n      }\n    }\n\n    documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n    documentData.ls = documentData.ls || 0;\n    documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n  };\n\n  TextProperty.prototype.updateDocumentData = function (newData, index) {\n    index = index === undefined ? this.keysIndex : index;\n    var dData = this.copyData({}, this.data.d.k[index].s);\n    dData = this.copyData(dData, newData);\n    this.data.d.k[index].s = dData;\n    this.recalculate(index);\n    this.elem.addDynamicProperty(this);\n  };\n\n  TextProperty.prototype.recalculate = function (index) {\n    var dData = this.data.d.k[index].s;\n    dData.__complete = false;\n    this.keysIndex = 0;\n    this._isFirstFrame = true;\n    this.getValue(dData);\n  };\n\n  TextProperty.prototype.canResizeFont = function (_canResize) {\n    this.canResize = _canResize;\n    this.recalculate(this.keysIndex);\n    this.elem.addDynamicProperty(this);\n  };\n\n  TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n    this.minimumFontSize = Math.floor(_fontValue) || 1;\n    this.recalculate(this.keysIndex);\n    this.elem.addDynamicProperty(this);\n  };\n\n  var TextSelectorProp = function () {\n    var max = Math.max;\n    var min = Math.min;\n    var floor = Math.floor;\n\n    function TextSelectorPropFactory(elem, data) {\n      this._currentTextLength = -1;\n      this.k = false;\n      this.data = data;\n      this.elem = elem;\n      this.comp = elem.comp;\n      this.finalS = 0;\n      this.finalE = 0;\n      this.initDynamicPropertyContainer(elem);\n      this.s = PropertyFactory.getProp(elem, data.s || {\n        k: 0\n      }, 0, 0, this);\n\n      if ('e' in data) {\n        this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n      } else {\n        this.e = {\n          v: 100\n        };\n      }\n\n      this.o = PropertyFactory.getProp(elem, data.o || {\n        k: 0\n      }, 0, 0, this);\n      this.xe = PropertyFactory.getProp(elem, data.xe || {\n        k: 0\n      }, 0, 0, this);\n      this.ne = PropertyFactory.getProp(elem, data.ne || {\n        k: 0\n      }, 0, 0, this);\n      this.sm = PropertyFactory.getProp(elem, data.sm || {\n        k: 100\n      }, 0, 0, this);\n      this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n\n      if (!this.dynamicProperties.length) {\n        this.getValue();\n      }\n    }\n\n    TextSelectorPropFactory.prototype = {\n      getMult: function getMult(ind) {\n        if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n          this.getValue();\n        }\n\n        var x1 = 0;\n        var y1 = 0;\n        var x2 = 1;\n        var y2 = 1;\n\n        if (this.ne.v > 0) {\n          x1 = this.ne.v / 100.0;\n        } else {\n          y1 = -this.ne.v / 100.0;\n        }\n\n        if (this.xe.v > 0) {\n          x2 = 1.0 - this.xe.v / 100.0;\n        } else {\n          y2 = 1.0 + this.xe.v / 100.0;\n        }\n\n        var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n        var mult = 0;\n        var s = this.finalS;\n        var e = this.finalE;\n        var type = this.data.sh;\n\n        if (type === 2) {\n          if (e === s) {\n            mult = ind >= e ? 1 : 0;\n          } else {\n            mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n          }\n\n          mult = easer(mult);\n        } else if (type === 3) {\n          if (e === s) {\n            mult = ind >= e ? 0 : 1;\n          } else {\n            mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n          }\n\n          mult = easer(mult);\n        } else if (type === 4) {\n          if (e === s) {\n            mult = 0;\n          } else {\n            mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n            if (mult < 0.5) {\n              mult *= 2;\n            } else {\n              mult = 1 - 2 * (mult - 0.5);\n            }\n          }\n\n          mult = easer(mult);\n        } else if (type === 5) {\n          if (e === s) {\n            mult = 0;\n          } else {\n            var tot = e - s;\n            /* ind += 0.5;\r\n                      mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n            ind = min(max(0, ind + 0.5 - s), e - s);\n            var x = -tot / 2 + ind;\n            var a = tot / 2;\n            mult = Math.sqrt(1 - x * x / (a * a));\n          }\n\n          mult = easer(mult);\n        } else if (type === 6) {\n          if (e === s) {\n            mult = 0;\n          } else {\n            ind = min(max(0, ind + 0.5 - s), e - s);\n            mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n          }\n\n          mult = easer(mult);\n        } else {\n          if (ind >= floor(s)) {\n            if (ind - s < 0) {\n              mult = max(0, min(min(e, 1) - (s - ind), 1));\n            } else {\n              mult = max(0, min(e - ind, 1));\n            }\n          }\n\n          mult = easer(mult);\n        } // Smoothness implementation.\n        // The smoothness represents a reduced range of the original [0; 1] range.\n        // if smoothness is 25%, the new range will be [0.375; 0.625]\n        // Steps are:\n        // - find the lower value of the new range (threshold)\n        // - if multiplier is smaller than that value, floor it to 0\n        // - if it is larger,\n        //     - subtract the threshold\n        //     - divide it by the smoothness (this will return the range to [0; 1])\n        // Note: If it doesn't work on some scenarios, consider applying it before the easer.\n\n\n        if (this.sm.v !== 100) {\n          var smoothness = this.sm.v * 0.01;\n\n          if (smoothness === 0) {\n            smoothness = 0.00000001;\n          }\n\n          var threshold = 0.5 - smoothness * 0.5;\n\n          if (mult < threshold) {\n            mult = 0;\n          } else {\n            mult = (mult - threshold) / smoothness;\n\n            if (mult > 1) {\n              mult = 1;\n            }\n          }\n        }\n\n        return mult * this.a.v;\n      },\n      getValue: function getValue(newCharsFlag) {\n        this.iterateDynamicProperties();\n        this._mdf = newCharsFlag || this._mdf;\n        this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n\n        if (newCharsFlag && this.data.r === 2) {\n          this.e.v = this._currentTextLength;\n        }\n\n        var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n        var o = this.o.v / divisor;\n        var s = this.s.v / divisor + o;\n        var e = this.e.v / divisor + o;\n\n        if (s > e) {\n          var _s = s;\n          s = e;\n          e = _s;\n        }\n\n        this.finalS = s;\n        this.finalE = e;\n      }\n    };\n    extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n    function getTextSelectorProp(elem, data, arr) {\n      return new TextSelectorPropFactory(elem, data, arr);\n    }\n\n    return {\n      getTextSelectorProp: getTextSelectorProp\n    };\n  }();\n\n  function TextAnimatorDataProperty(elem, animatorProps, container) {\n    var defaultData = {\n      propType: false\n    };\n    var getProp = PropertyFactory.getProp;\n    var textAnimatorAnimatables = animatorProps.a;\n    this.a = {\n      r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n      rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n      ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n      sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n      sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n      s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n      a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n      o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n      p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n      sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n      sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n      fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n      fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n      fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n      fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n      t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n    };\n    this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n    this.s.t = animatorProps.s.t;\n  }\n\n  function TextAnimatorProperty(textData, renderType, elem) {\n    this._isFirstFrame = true;\n    this._hasMaskedPath = false;\n    this._frameId = -1;\n    this._textData = textData;\n    this._renderType = renderType;\n    this._elem = elem;\n    this._animatorsData = createSizedArray(this._textData.a.length);\n    this._pathData = {};\n    this._moreOptions = {\n      alignment: {}\n    };\n    this.renderedLetters = [];\n    this.lettersChangedFlag = false;\n    this.initDynamicPropertyContainer(elem);\n  }\n\n  TextAnimatorProperty.prototype.searchProperties = function () {\n    var i;\n    var len = this._textData.a.length;\n    var animatorProps;\n    var getProp = PropertyFactory.getProp;\n\n    for (i = 0; i < len; i += 1) {\n      animatorProps = this._textData.a[i];\n      this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n    }\n\n    if (this._textData.p && 'm' in this._textData.p) {\n      this._pathData = {\n        a: getProp(this._elem, this._textData.p.a, 0, 0, this),\n        f: getProp(this._elem, this._textData.p.f, 0, 0, this),\n        l: getProp(this._elem, this._textData.p.l, 0, 0, this),\n        r: getProp(this._elem, this._textData.p.r, 0, 0, this),\n        p: getProp(this._elem, this._textData.p.p, 0, 0, this),\n        m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\n      };\n      this._hasMaskedPath = true;\n    } else {\n      this._hasMaskedPath = false;\n    }\n\n    this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n  };\n\n  TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n    this.lettersChangedFlag = lettersChangedFlag;\n\n    if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n      return;\n    }\n\n    this._isFirstFrame = false;\n    var alignment = this._moreOptions.alignment.v;\n    var animators = this._animatorsData;\n    var textData = this._textData;\n    var matrixHelper = this.mHelper;\n    var renderType = this._renderType;\n    var renderedLettersCount = this.renderedLetters.length;\n    var xPos;\n    var yPos;\n    var i;\n    var len;\n    var letters = documentData.l;\n    var pathInfo;\n    var currentLength;\n    var currentPoint;\n    var segmentLength;\n    var flag;\n    var pointInd;\n    var segmentInd;\n    var prevPoint;\n    var points;\n    var segments;\n    var partialLength;\n    var totalLength;\n    var perc;\n    var tanAngle;\n    var mask;\n\n    if (this._hasMaskedPath) {\n      mask = this._pathData.m;\n\n      if (!this._pathData.n || this._pathData._mdf) {\n        var paths = mask.v;\n\n        if (this._pathData.r.v) {\n          paths = paths.reverse();\n        } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n        pathInfo = {\n          tLength: 0,\n          segments: []\n        };\n        len = paths._length - 1;\n        var bezierData;\n        totalLength = 0;\n\n        for (i = 0; i < len; i += 1) {\n          bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n          pathInfo.tLength += bezierData.segmentLength;\n          pathInfo.segments.push(bezierData);\n          totalLength += bezierData.segmentLength;\n        }\n\n        i = len;\n\n        if (mask.v.c) {\n          bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n          pathInfo.tLength += bezierData.segmentLength;\n          pathInfo.segments.push(bezierData);\n          totalLength += bezierData.segmentLength;\n        }\n\n        this._pathData.pi = pathInfo;\n      }\n\n      pathInfo = this._pathData.pi;\n      currentLength = this._pathData.f.v;\n      segmentInd = 0;\n      pointInd = 1;\n      segmentLength = 0;\n      flag = true;\n      segments = pathInfo.segments;\n\n      if (currentLength < 0 && mask.v.c) {\n        if (pathInfo.tLength < Math.abs(currentLength)) {\n          currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n        }\n\n        segmentInd = segments.length - 1;\n        points = segments[segmentInd].points;\n        pointInd = points.length - 1;\n\n        while (currentLength < 0) {\n          currentLength += points[pointInd].partialLength;\n          pointInd -= 1;\n\n          if (pointInd < 0) {\n            segmentInd -= 1;\n            points = segments[segmentInd].points;\n            pointInd = points.length - 1;\n          }\n        }\n      }\n\n      points = segments[segmentInd].points;\n      prevPoint = points[pointInd - 1];\n      currentPoint = points[pointInd];\n      partialLength = currentPoint.partialLength;\n    }\n\n    len = letters.length;\n    xPos = 0;\n    yPos = 0;\n    var yOff = documentData.finalSize * 1.2 * 0.714;\n    var firstLine = true;\n    var animatorProps;\n    var animatorSelector;\n    var j;\n    var jLen;\n    var letterValue;\n    jLen = animators.length;\n    var mult;\n    var ind = -1;\n    var offf;\n    var xPathPos;\n    var yPathPos;\n    var initPathPos = currentLength;\n    var initSegmentInd = segmentInd;\n    var initPointInd = pointInd;\n    var currentLine = -1;\n    var elemOpacity;\n    var sc;\n    var sw;\n    var fc;\n    var k;\n    var letterSw;\n    var letterSc;\n    var letterFc;\n    var letterM = '';\n    var letterP = this.defaultPropsArray;\n    var letterO; //\n\n    if (documentData.j === 2 || documentData.j === 1) {\n      var animatorJustifyOffset = 0;\n      var animatorFirstCharOffset = 0;\n      var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n      var lastIndex = 0;\n      var isNewLine = true;\n\n      for (i = 0; i < len; i += 1) {\n        if (letters[i].n) {\n          if (animatorJustifyOffset) {\n            animatorJustifyOffset += animatorFirstCharOffset;\n          }\n\n          while (lastIndex < i) {\n            letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n            lastIndex += 1;\n          }\n\n          animatorJustifyOffset = 0;\n          isNewLine = true;\n        } else {\n          for (j = 0; j < jLen; j += 1) {\n            animatorProps = animators[j].a;\n\n            if (animatorProps.t.propType) {\n              if (isNewLine && documentData.j === 2) {\n                animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n              }\n\n              animatorSelector = animators[j].s;\n              mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n              if (mult.length) {\n                animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n              } else {\n                animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n              }\n            }\n          }\n\n          isNewLine = false;\n        }\n      }\n\n      if (animatorJustifyOffset) {\n        animatorJustifyOffset += animatorFirstCharOffset;\n      }\n\n      while (lastIndex < i) {\n        letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n        lastIndex += 1;\n      }\n    } //\n\n\n    for (i = 0; i < len; i += 1) {\n      matrixHelper.reset();\n      elemOpacity = 1;\n\n      if (letters[i].n) {\n        xPos = 0;\n        yPos += documentData.yOffset;\n        yPos += firstLine ? 1 : 0;\n        currentLength = initPathPos;\n        firstLine = false;\n\n        if (this._hasMaskedPath) {\n          segmentInd = initSegmentInd;\n          pointInd = initPointInd;\n          points = segments[segmentInd].points;\n          prevPoint = points[pointInd - 1];\n          currentPoint = points[pointInd];\n          partialLength = currentPoint.partialLength;\n          segmentLength = 0;\n        }\n\n        letterM = '';\n        letterFc = '';\n        letterSw = '';\n        letterO = '';\n        letterP = this.defaultPropsArray;\n      } else {\n        if (this._hasMaskedPath) {\n          if (currentLine !== letters[i].line) {\n            switch (documentData.j) {\n              case 1:\n                currentLength += totalLength - documentData.lineWidths[letters[i].line];\n                break;\n\n              case 2:\n                currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n                break;\n\n              default:\n                break;\n            }\n\n            currentLine = letters[i].line;\n          }\n\n          if (ind !== letters[i].ind) {\n            if (letters[ind]) {\n              currentLength += letters[ind].extra;\n            }\n\n            currentLength += letters[i].an / 2;\n            ind = letters[i].ind;\n          }\n\n          currentLength += alignment[0] * letters[i].an * 0.005;\n          var animatorOffset = 0;\n\n          for (j = 0; j < jLen; j += 1) {\n            animatorProps = animators[j].a;\n\n            if (animatorProps.p.propType) {\n              animatorSelector = animators[j].s;\n              mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n              if (mult.length) {\n                animatorOffset += animatorProps.p.v[0] * mult[0];\n              } else {\n                animatorOffset += animatorProps.p.v[0] * mult;\n              }\n            }\n\n            if (animatorProps.a.propType) {\n              animatorSelector = animators[j].s;\n              mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n              if (mult.length) {\n                animatorOffset += animatorProps.a.v[0] * mult[0];\n              } else {\n                animatorOffset += animatorProps.a.v[0] * mult;\n              }\n            }\n          }\n\n          flag = true; // Force alignment only works with a single line for now\n\n          if (this._pathData.a.v) {\n            currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\n            currentLength += this._pathData.f.v;\n          }\n\n          while (flag) {\n            if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n              perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n              xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n              yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n              matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n              flag = false;\n            } else if (points) {\n              segmentLength += currentPoint.partialLength;\n              pointInd += 1;\n\n              if (pointInd >= points.length) {\n                pointInd = 0;\n                segmentInd += 1;\n\n                if (!segments[segmentInd]) {\n                  if (mask.v.c) {\n                    pointInd = 0;\n                    segmentInd = 0;\n                    points = segments[segmentInd].points;\n                  } else {\n                    segmentLength -= currentPoint.partialLength;\n                    points = null;\n                  }\n                } else {\n                  points = segments[segmentInd].points;\n                }\n              }\n\n              if (points) {\n                prevPoint = currentPoint;\n                currentPoint = points[pointInd];\n                partialLength = currentPoint.partialLength;\n              }\n            }\n          }\n\n          offf = letters[i].an / 2 - letters[i].add;\n          matrixHelper.translate(-offf, 0, 0);\n        } else {\n          offf = letters[i].an / 2 - letters[i].add;\n          matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n          matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n        }\n\n        for (j = 0; j < jLen; j += 1) {\n          animatorProps = animators[j].a;\n\n          if (animatorProps.t.propType) {\n            animatorSelector = animators[j].s;\n            mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n            if (xPos !== 0 || documentData.j !== 0) {\n              if (this._hasMaskedPath) {\n                if (mult.length) {\n                  currentLength += animatorProps.t.v * mult[0];\n                } else {\n                  currentLength += animatorProps.t.v * mult;\n                }\n              } else if (mult.length) {\n                xPos += animatorProps.t.v * mult[0];\n              } else {\n                xPos += animatorProps.t.v * mult;\n              }\n            }\n          }\n        }\n\n        if (documentData.strokeWidthAnim) {\n          sw = documentData.sw || 0;\n        }\n\n        if (documentData.strokeColorAnim) {\n          if (documentData.sc) {\n            sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n          } else {\n            sc = [0, 0, 0];\n          }\n        }\n\n        if (documentData.fillColorAnim && documentData.fc) {\n          fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n        }\n\n        for (j = 0; j < jLen; j += 1) {\n          animatorProps = animators[j].a;\n\n          if (animatorProps.a.propType) {\n            animatorSelector = animators[j].s;\n            mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n            if (mult.length) {\n              matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n            } else {\n              matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n            }\n          }\n        }\n\n        for (j = 0; j < jLen; j += 1) {\n          animatorProps = animators[j].a;\n\n          if (animatorProps.s.propType) {\n            animatorSelector = animators[j].s;\n            mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n            if (mult.length) {\n              matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n            } else {\n              matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n            }\n          }\n        }\n\n        for (j = 0; j < jLen; j += 1) {\n          animatorProps = animators[j].a;\n          animatorSelector = animators[j].s;\n          mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n          if (animatorProps.sk.propType) {\n            if (mult.length) {\n              matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n            } else {\n              matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n            }\n          }\n\n          if (animatorProps.r.propType) {\n            if (mult.length) {\n              matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n            } else {\n              matrixHelper.rotateZ(-animatorProps.r.v * mult);\n            }\n          }\n\n          if (animatorProps.ry.propType) {\n            if (mult.length) {\n              matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n            } else {\n              matrixHelper.rotateY(animatorProps.ry.v * mult);\n            }\n          }\n\n          if (animatorProps.rx.propType) {\n            if (mult.length) {\n              matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n            } else {\n              matrixHelper.rotateX(animatorProps.rx.v * mult);\n            }\n          }\n\n          if (animatorProps.o.propType) {\n            if (mult.length) {\n              elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n            } else {\n              elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n            }\n          }\n\n          if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n            if (mult.length) {\n              sw += animatorProps.sw.v * mult[0];\n            } else {\n              sw += animatorProps.sw.v * mult;\n            }\n          }\n\n          if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n            for (k = 0; k < 3; k += 1) {\n              if (mult.length) {\n                sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n              } else {\n                sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n              }\n            }\n          }\n\n          if (documentData.fillColorAnim && documentData.fc) {\n            if (animatorProps.fc.propType) {\n              for (k = 0; k < 3; k += 1) {\n                if (mult.length) {\n                  fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n                } else {\n                  fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n                }\n              }\n            }\n\n            if (animatorProps.fh.propType) {\n              if (mult.length) {\n                fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n              } else {\n                fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n              }\n            }\n\n            if (animatorProps.fs.propType) {\n              if (mult.length) {\n                fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n              } else {\n                fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n              }\n            }\n\n            if (animatorProps.fb.propType) {\n              if (mult.length) {\n                fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n              } else {\n                fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n              }\n            }\n          }\n        }\n\n        for (j = 0; j < jLen; j += 1) {\n          animatorProps = animators[j].a;\n\n          if (animatorProps.p.propType) {\n            animatorSelector = animators[j].s;\n            mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n            if (this._hasMaskedPath) {\n              if (mult.length) {\n                matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n              } else {\n                matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n              }\n            } else if (mult.length) {\n              matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n            } else {\n              matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n            }\n          }\n        }\n\n        if (documentData.strokeWidthAnim) {\n          letterSw = sw < 0 ? 0 : sw;\n        }\n\n        if (documentData.strokeColorAnim) {\n          letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n        }\n\n        if (documentData.fillColorAnim && documentData.fc) {\n          letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n        }\n\n        if (this._hasMaskedPath) {\n          matrixHelper.translate(0, -documentData.ls);\n          matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n          if (this._pathData.p.v) {\n            tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n            var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n            if (currentPoint.point[0] < prevPoint.point[0]) {\n              rot += 180;\n            }\n\n            matrixHelper.rotate(-rot * Math.PI / 180);\n          }\n\n          matrixHelper.translate(xPathPos, yPathPos, 0);\n          currentLength -= alignment[0] * letters[i].an * 0.005;\n\n          if (letters[i + 1] && ind !== letters[i + 1].ind) {\n            currentLength += letters[i].an / 2;\n            currentLength += documentData.tr * 0.001 * documentData.finalSize;\n          }\n        } else {\n          matrixHelper.translate(xPos, yPos, 0);\n\n          if (documentData.ps) {\n            // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n            matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n          }\n\n          switch (documentData.j) {\n            case 1:\n              matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n              break;\n\n            case 2:\n              matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n              break;\n\n            default:\n              break;\n          }\n\n          matrixHelper.translate(0, -documentData.ls);\n          matrixHelper.translate(offf, 0, 0);\n          matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n          xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n        }\n\n        if (renderType === 'html') {\n          letterM = matrixHelper.toCSS();\n        } else if (renderType === 'svg') {\n          letterM = matrixHelper.to2dCSS();\n        } else {\n          letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n        }\n\n        letterO = elemOpacity;\n      }\n\n      if (renderedLettersCount <= i) {\n        letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n        this.renderedLetters.push(letterValue);\n        renderedLettersCount += 1;\n        this.lettersChangedFlag = true;\n      } else {\n        letterValue = this.renderedLetters[i];\n        this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n      }\n    }\n  };\n\n  TextAnimatorProperty.prototype.getValue = function () {\n    if (this._elem.globalData.frameId === this._frameId) {\n      return;\n    }\n\n    this._frameId = this._elem.globalData.frameId;\n    this.iterateDynamicProperties();\n  };\n\n  TextAnimatorProperty.prototype.mHelper = new Matrix();\n  TextAnimatorProperty.prototype.defaultPropsArray = [];\n  extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\n  function ITextElement() {}\n\n  ITextElement.prototype.initElement = function (data, globalData, comp) {\n    this.lettersChangedFlag = true;\n    this.initFrame();\n    this.initBaseData(data, globalData, comp);\n    this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n    this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n    this.initTransform(data, globalData, comp);\n    this.initHierarchy();\n    this.initRenderable();\n    this.initRendererElement();\n    this.createContainerElements();\n    this.createRenderableComponents();\n    this.createContent();\n    this.hide();\n    this.textAnimator.searchProperties(this.dynamicProperties);\n  };\n\n  ITextElement.prototype.prepareFrame = function (num) {\n    this._mdf = false;\n    this.prepareRenderableFrame(num);\n    this.prepareProperties(num, this.isInRange);\n\n    if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n      this.buildNewText();\n      this.textProperty._isFirstFrame = false;\n      this.textProperty._mdf = false;\n    }\n  };\n\n  ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n    var j;\n    var jLen = shapes.length;\n    var pathNodes;\n    var shapeStr = '';\n\n    for (j = 0; j < jLen; j += 1) {\n      if (shapes[j].ty === 'sh') {\n        pathNodes = shapes[j].ks.k;\n        shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n      }\n    }\n\n    return shapeStr;\n  };\n\n  ITextElement.prototype.updateDocumentData = function (newData, index) {\n    this.textProperty.updateDocumentData(newData, index);\n  };\n\n  ITextElement.prototype.canResizeFont = function (_canResize) {\n    this.textProperty.canResizeFont(_canResize);\n  };\n\n  ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n    this.textProperty.setMinimumFontSize(_fontSize);\n  };\n\n  ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n    if (documentData.ps) {\n      matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n    }\n\n    matrixHelper.translate(0, -documentData.ls, 0);\n\n    switch (documentData.j) {\n      case 1:\n        matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n        break;\n\n      case 2:\n        matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n        break;\n\n      default:\n        break;\n    }\n\n    matrixHelper.translate(xPos, yPos, 0);\n  };\n\n  ITextElement.prototype.buildColor = function (colorData) {\n    return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n  };\n\n  ITextElement.prototype.emptyProp = new LetterProps();\n\n  ITextElement.prototype.destroy = function () {};\n\n  var emptyShapeData = {\n    shapes: []\n  };\n\n  function SVGTextLottieElement(data, globalData, comp) {\n    this.textSpans = [];\n    this.renderType = 'svg';\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n  SVGTextLottieElement.prototype.createContent = function () {\n    if (this.data.singleShape && !this.globalData.fontManager.chars) {\n      this.textContainer = createNS('text');\n    }\n  };\n\n  SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n    var i = 0;\n    var len = textArray.length;\n    var textContents = [];\n    var currentTextContent = '';\n\n    while (i < len) {\n      if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n        textContents.push(currentTextContent);\n        currentTextContent = '';\n      } else {\n        currentTextContent += textArray[i];\n      }\n\n      i += 1;\n    }\n\n    textContents.push(currentTextContent);\n    return textContents;\n  };\n\n  SVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\n    // data should probably be cloned to apply scale separately to each instance of a text on different layers\n    // but since text internal content gets only rendered once and then it's never rerendered,\n    // it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\n    // Avoiding cloning is preferred since cloning each character shape data is expensive\n    if (data.shapes && data.shapes.length) {\n      var shape = data.shapes[0];\n\n      if (shape.it) {\n        var shapeItem = shape.it[shape.it.length - 1];\n\n        if (shapeItem.s) {\n          shapeItem.s.k[0] = scale;\n          shapeItem.s.k[1] = scale;\n        }\n      }\n    }\n\n    return data;\n  };\n\n  SVGTextLottieElement.prototype.buildNewText = function () {\n    this.addDynamicProperty(this);\n    var i;\n    var len;\n    var documentData = this.textProperty.currentData;\n    this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n    if (documentData.fc) {\n      this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\n    } else {\n      this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\n    }\n\n    if (documentData.sc) {\n      this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\n      this.layerElement.setAttribute('stroke-width', documentData.sw);\n    }\n\n    this.layerElement.setAttribute('font-size', documentData.finalSize);\n    var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n    if (fontData.fClass) {\n      this.layerElement.setAttribute('class', fontData.fClass);\n    } else {\n      this.layerElement.setAttribute('font-family', fontData.fFamily);\n      var fWeight = documentData.fWeight;\n      var fStyle = documentData.fStyle;\n      this.layerElement.setAttribute('font-style', fStyle);\n      this.layerElement.setAttribute('font-weight', fWeight);\n    }\n\n    this.layerElement.setAttribute('aria-label', documentData.t);\n    var letters = documentData.l || [];\n    var usesGlyphs = !!this.globalData.fontManager.chars;\n    len = letters.length;\n    var tSpan;\n    var matrixHelper = this.mHelper;\n    var shapeStr = '';\n    var singleShape = this.data.singleShape;\n    var xPos = 0;\n    var yPos = 0;\n    var firstLine = true;\n    var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n    if (singleShape && !usesGlyphs && !documentData.sz) {\n      var tElement = this.textContainer;\n      var justify = 'start';\n\n      switch (documentData.j) {\n        case 1:\n          justify = 'end';\n          break;\n\n        case 2:\n          justify = 'middle';\n          break;\n\n        default:\n          justify = 'start';\n          break;\n      }\n\n      tElement.setAttribute('text-anchor', justify);\n      tElement.setAttribute('letter-spacing', trackingOffset);\n      var textContent = this.buildTextContents(documentData.finalText);\n      len = textContent.length;\n      yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n      for (i = 0; i < len; i += 1) {\n        tSpan = this.textSpans[i].span || createNS('tspan');\n        tSpan.textContent = textContent[i];\n        tSpan.setAttribute('x', 0);\n        tSpan.setAttribute('y', yPos);\n        tSpan.style.display = 'inherit';\n        tElement.appendChild(tSpan);\n\n        if (!this.textSpans[i]) {\n          this.textSpans[i] = {\n            span: null,\n            glyph: null\n          };\n        }\n\n        this.textSpans[i].span = tSpan;\n        yPos += documentData.finalLineHeight;\n      }\n\n      this.layerElement.appendChild(tElement);\n    } else {\n      var cachedSpansLength = this.textSpans.length;\n      var charData;\n\n      for (i = 0; i < len; i += 1) {\n        if (!this.textSpans[i]) {\n          this.textSpans[i] = {\n            span: null,\n            childSpan: null,\n            glyph: null\n          };\n        }\n\n        if (!usesGlyphs || !singleShape || i === 0) {\n          tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\n\n          if (cachedSpansLength <= i) {\n            tSpan.setAttribute('stroke-linecap', 'butt');\n            tSpan.setAttribute('stroke-linejoin', 'round');\n            tSpan.setAttribute('stroke-miterlimit', '4');\n            this.textSpans[i].span = tSpan;\n\n            if (usesGlyphs) {\n              var childSpan = createNS('g');\n              tSpan.appendChild(childSpan);\n              this.textSpans[i].childSpan = childSpan;\n            }\n\n            this.textSpans[i].span = tSpan;\n            this.layerElement.appendChild(tSpan);\n          }\n\n          tSpan.style.display = 'inherit';\n        }\n\n        matrixHelper.reset();\n\n        if (singleShape) {\n          if (letters[i].n) {\n            xPos = -trackingOffset;\n            yPos += documentData.yOffset;\n            yPos += firstLine ? 1 : 0;\n            firstLine = false;\n          }\n\n          this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n          xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n          xPos += trackingOffset;\n        }\n\n        if (usesGlyphs) {\n          charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n          var glyphElement; // t === 1 means the character has been replaced with an animated shaped\n\n          if (charData.t === 1) {\n            glyphElement = new SVGCompElement(charData.data, this.globalData, this);\n          } else {\n            var data = emptyShapeData;\n\n            if (charData.data && charData.data.shapes) {\n              data = this.buildShapeData(charData.data, documentData.finalSize);\n            }\n\n            glyphElement = new SVGShapeElement(data, this.globalData, this);\n          }\n\n          if (this.textSpans[i].glyph) {\n            var glyph = this.textSpans[i].glyph;\n            this.textSpans[i].childSpan.removeChild(glyph.layerElement);\n            glyph.destroy();\n          }\n\n          this.textSpans[i].glyph = glyphElement;\n          glyphElement._debug = true;\n          glyphElement.prepareFrame(0);\n          glyphElement.renderFrame();\n          this.textSpans[i].childSpan.appendChild(glyphElement.layerElement); // when using animated shapes, the layer will be scaled instead of replacing the internal scale\n          // this might have issues with strokes and might need a different solution\n\n          if (charData.t === 1) {\n            this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\n          }\n        } else {\n          if (singleShape) {\n            tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\n          }\n\n          tSpan.textContent = letters[i].val;\n          tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n        } //\n\n      }\n\n      if (singleShape && tSpan) {\n        tSpan.setAttribute('d', shapeStr);\n      }\n    }\n\n    while (i < this.textSpans.length) {\n      this.textSpans[i].span.style.display = 'none';\n      i += 1;\n    }\n\n    this._sizeChanged = true;\n  };\n\n  SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n    this.prepareFrame(this.comp.renderedFrame - this.data.st);\n    this.renderInnerContent();\n\n    if (this._sizeChanged) {\n      this._sizeChanged = false;\n      var textBox = this.layerElement.getBBox();\n      this.bbox = {\n        top: textBox.y,\n        left: textBox.x,\n        width: textBox.width,\n        height: textBox.height\n      };\n    }\n\n    return this.bbox;\n  };\n\n  SVGTextLottieElement.prototype.getValue = function () {\n    var i;\n    var len = this.textSpans.length;\n    var glyphElement;\n    this.renderedFrame = this.comp.renderedFrame;\n\n    for (i = 0; i < len; i += 1) {\n      glyphElement = this.textSpans[i].glyph;\n\n      if (glyphElement) {\n        glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\n\n        if (glyphElement._mdf) {\n          this._mdf = true;\n        }\n      }\n    }\n  };\n\n  SVGTextLottieElement.prototype.renderInnerContent = function () {\n    if (!this.data.singleShape || this._mdf) {\n      this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n      if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n        this._sizeChanged = true;\n        var i;\n        var len;\n        var renderedLetters = this.textAnimator.renderedLetters;\n        var letters = this.textProperty.currentData.l;\n        len = letters.length;\n        var renderedLetter;\n        var textSpan;\n        var glyphElement;\n\n        for (i = 0; i < len; i += 1) {\n          if (!letters[i].n) {\n            renderedLetter = renderedLetters[i];\n            textSpan = this.textSpans[i].span;\n            glyphElement = this.textSpans[i].glyph;\n\n            if (glyphElement) {\n              glyphElement.renderFrame();\n            }\n\n            if (renderedLetter._mdf.m) {\n              textSpan.setAttribute('transform', renderedLetter.m);\n            }\n\n            if (renderedLetter._mdf.o) {\n              textSpan.setAttribute('opacity', renderedLetter.o);\n            }\n\n            if (renderedLetter._mdf.sw) {\n              textSpan.setAttribute('stroke-width', renderedLetter.sw);\n            }\n\n            if (renderedLetter._mdf.sc) {\n              textSpan.setAttribute('stroke', renderedLetter.sc);\n            }\n\n            if (renderedLetter._mdf.fc) {\n              textSpan.setAttribute('fill', renderedLetter.fc);\n            }\n          }\n        }\n      }\n    }\n  };\n\n  function ISolidElement(data, globalData, comp) {\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([IImageElement], ISolidElement);\n\n  ISolidElement.prototype.createContent = function () {\n    var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\n    /// /rect.style.height = this.data.sh;\n    /// /rect.style.fill = this.data.sc;\n\n    rect.setAttribute('width', this.data.sw);\n    rect.setAttribute('height', this.data.sh);\n    rect.setAttribute('fill', this.data.sc);\n    this.layerElement.appendChild(rect);\n  };\n\n  function NullElement(data, globalData, comp) {\n    this.initFrame();\n    this.initBaseData(data, globalData, comp);\n    this.initFrame();\n    this.initTransform(data, globalData, comp);\n    this.initHierarchy();\n  }\n\n  NullElement.prototype.prepareFrame = function (num) {\n    this.prepareProperties(num, true);\n  };\n\n  NullElement.prototype.renderFrame = function () {};\n\n  NullElement.prototype.getBaseElement = function () {\n    return null;\n  };\n\n  NullElement.prototype.destroy = function () {};\n\n  NullElement.prototype.sourceRectAtTime = function () {};\n\n  NullElement.prototype.hide = function () {};\n\n  extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\n  function SVGRendererBase() {}\n\n  extendPrototype([BaseRenderer], SVGRendererBase);\n\n  SVGRendererBase.prototype.createNull = function (data) {\n    return new NullElement(data, this.globalData, this);\n  };\n\n  SVGRendererBase.prototype.createShape = function (data) {\n    return new SVGShapeElement(data, this.globalData, this);\n  };\n\n  SVGRendererBase.prototype.createText = function (data) {\n    return new SVGTextLottieElement(data, this.globalData, this);\n  };\n\n  SVGRendererBase.prototype.createImage = function (data) {\n    return new IImageElement(data, this.globalData, this);\n  };\n\n  SVGRendererBase.prototype.createSolid = function (data) {\n    return new ISolidElement(data, this.globalData, this);\n  };\n\n  SVGRendererBase.prototype.configAnimation = function (animData) {\n    this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n\n    if (this.renderConfig.viewBoxSize) {\n      this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n    } else {\n      this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n    }\n\n    if (!this.renderConfig.viewBoxOnly) {\n      this.svgElement.setAttribute('width', animData.w);\n      this.svgElement.setAttribute('height', animData.h);\n      this.svgElement.style.width = '100%';\n      this.svgElement.style.height = '100%';\n      this.svgElement.style.transform = 'translate3d(0,0,0)';\n      this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n    }\n\n    if (this.renderConfig.width) {\n      this.svgElement.setAttribute('width', this.renderConfig.width);\n    }\n\n    if (this.renderConfig.height) {\n      this.svgElement.setAttribute('height', this.renderConfig.height);\n    }\n\n    if (this.renderConfig.className) {\n      this.svgElement.setAttribute('class', this.renderConfig.className);\n    }\n\n    if (this.renderConfig.id) {\n      this.svgElement.setAttribute('id', this.renderConfig.id);\n    }\n\n    if (this.renderConfig.focusable !== undefined) {\n      this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\n    }\n\n    this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n    // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n    this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\n\n    var defs = this.globalData.defs;\n    this.setupGlobalData(animData, defs);\n    this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n    this.data = animData;\n    var maskElement = createNS('clipPath');\n    var rect = createNS('rect');\n    rect.setAttribute('width', animData.w);\n    rect.setAttribute('height', animData.h);\n    rect.setAttribute('x', 0);\n    rect.setAttribute('y', 0);\n    var maskId = createElementID();\n    maskElement.setAttribute('id', maskId);\n    maskElement.appendChild(rect);\n    this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\n    defs.appendChild(maskElement);\n    this.layers = animData.layers;\n    this.elements = createSizedArray(animData.layers.length);\n  };\n\n  SVGRendererBase.prototype.destroy = function () {\n    if (this.animationItem.wrapper) {\n      this.animationItem.wrapper.innerText = '';\n    }\n\n    this.layerElement = null;\n    this.globalData.defs = null;\n    var i;\n    var len = this.layers ? this.layers.length : 0;\n\n    for (i = 0; i < len; i += 1) {\n      if (this.elements[i]) {\n        this.elements[i].destroy();\n      }\n    }\n\n    this.elements.length = 0;\n    this.destroyed = true;\n    this.animationItem = null;\n  };\n\n  SVGRendererBase.prototype.updateContainerSize = function () {};\n\n  SVGRendererBase.prototype.buildItem = function (pos) {\n    var elements = this.elements;\n\n    if (elements[pos] || this.layers[pos].ty === 99) {\n      return;\n    }\n\n    elements[pos] = true;\n    var element = this.createItem(this.layers[pos]);\n    elements[pos] = element;\n\n    if (getExpressionsPlugin()) {\n      if (this.layers[pos].ty === 0) {\n        this.globalData.projectInterface.registerComposition(element);\n      }\n\n      element.initExpressions();\n    }\n\n    this.appendElementInPos(element, pos);\n\n    if (this.layers[pos].tt) {\n      if (!this.elements[pos - 1] || this.elements[pos - 1] === true) {\n        this.buildItem(pos - 1);\n        this.addPendingElement(element);\n      } else {\n        element.setMatte(elements[pos - 1].layerId);\n      }\n    }\n  };\n\n  SVGRendererBase.prototype.checkPendingElements = function () {\n    while (this.pendingElements.length) {\n      var element = this.pendingElements.pop();\n      element.checkParenting();\n\n      if (element.data.tt) {\n        var i = 0;\n        var len = this.elements.length;\n\n        while (i < len) {\n          if (this.elements[i] === element) {\n            element.setMatte(this.elements[i - 1].layerId);\n            break;\n          }\n\n          i += 1;\n        }\n      }\n    }\n  };\n\n  SVGRendererBase.prototype.renderFrame = function (num) {\n    if (this.renderedFrame === num || this.destroyed) {\n      return;\n    }\n\n    if (num === null) {\n      num = this.renderedFrame;\n    } else {\n      this.renderedFrame = num;\n    } // console.log('-------');\n    // console.log('FRAME ',num);\n\n\n    this.globalData.frameNum = num;\n    this.globalData.frameId += 1;\n    this.globalData.projectInterface.currentFrame = num;\n    this.globalData._mdf = false;\n    var i;\n    var len = this.layers.length;\n\n    if (!this.completeLayers) {\n      this.checkLayers(num);\n    }\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      if (this.completeLayers || this.elements[i]) {\n        this.elements[i].prepareFrame(num - this.layers[i].st);\n      }\n    }\n\n    if (this.globalData._mdf) {\n      for (i = 0; i < len; i += 1) {\n        if (this.completeLayers || this.elements[i]) {\n          this.elements[i].renderFrame();\n        }\n      }\n    }\n  };\n\n  SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n    var newElement = element.getBaseElement();\n\n    if (!newElement) {\n      return;\n    }\n\n    var i = 0;\n    var nextElement;\n\n    while (i < pos) {\n      if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n        nextElement = this.elements[i].getBaseElement();\n      }\n\n      i += 1;\n    }\n\n    if (nextElement) {\n      this.layerElement.insertBefore(newElement, nextElement);\n    } else {\n      this.layerElement.appendChild(newElement);\n    }\n  };\n\n  SVGRendererBase.prototype.hide = function () {\n    this.layerElement.style.display = 'none';\n  };\n\n  SVGRendererBase.prototype.show = function () {\n    this.layerElement.style.display = 'block';\n  };\n\n  function ICompElement() {}\n\n  extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n  ICompElement.prototype.initElement = function (data, globalData, comp) {\n    this.initFrame();\n    this.initBaseData(data, globalData, comp);\n    this.initTransform(data, globalData, comp);\n    this.initRenderable();\n    this.initHierarchy();\n    this.initRendererElement();\n    this.createContainerElements();\n    this.createRenderableComponents();\n\n    if (this.data.xt || !globalData.progressiveLoad) {\n      this.buildAllItems();\n    }\n\n    this.hide();\n  };\n  /* ICompElement.prototype.hide = function(){\r\n      if(!this.hidden){\r\n          this.hideElement();\r\n          var i,len = this.elements.length;\r\n          for( i = 0; i < len; i+=1 ){\r\n              if(this.elements[i]){\r\n                  this.elements[i].hide();\r\n              }\r\n          }\r\n      }\r\n  }; */\n\n\n  ICompElement.prototype.prepareFrame = function (num) {\n    this._mdf = false;\n    this.prepareRenderableFrame(num);\n    this.prepareProperties(num, this.isInRange);\n\n    if (!this.isInRange && !this.data.xt) {\n      return;\n    }\n\n    if (!this.tm._placeholder) {\n      var timeRemapped = this.tm.v;\n\n      if (timeRemapped === this.data.op) {\n        timeRemapped = this.data.op - 1;\n      }\n\n      this.renderedFrame = timeRemapped;\n    } else {\n      this.renderedFrame = num / this.data.sr;\n    }\n\n    var i;\n    var len = this.elements.length;\n\n    if (!this.completeLayers) {\n      this.checkLayers(this.renderedFrame);\n    } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      if (this.completeLayers || this.elements[i]) {\n        this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n\n        if (this.elements[i]._mdf) {\n          this._mdf = true;\n        }\n      }\n    }\n  };\n\n  ICompElement.prototype.renderInnerContent = function () {\n    var i;\n    var len = this.layers.length;\n\n    for (i = 0; i < len; i += 1) {\n      if (this.completeLayers || this.elements[i]) {\n        this.elements[i].renderFrame();\n      }\n    }\n  };\n\n  ICompElement.prototype.setElements = function (elems) {\n    this.elements = elems;\n  };\n\n  ICompElement.prototype.getElements = function () {\n    return this.elements;\n  };\n\n  ICompElement.prototype.destroyElements = function () {\n    var i;\n    var len = this.layers.length;\n\n    for (i = 0; i < len; i += 1) {\n      if (this.elements[i]) {\n        this.elements[i].destroy();\n      }\n    }\n  };\n\n  ICompElement.prototype.destroy = function () {\n    this.destroyElements();\n    this.destroyBaseElement();\n  };\n\n  function SVGCompElement(data, globalData, comp) {\n    this.layers = data.layers;\n    this.supports3d = true;\n    this.completeLayers = false;\n    this.pendingElements = [];\n    this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n    this.initElement(data, globalData, comp);\n    this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n      _placeholder: true\n    };\n  }\n\n  extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n\n  SVGCompElement.prototype.createComp = function (data) {\n    return new SVGCompElement(data, this.globalData, this);\n  };\n\n  function SVGRenderer(animationItem, config) {\n    this.animationItem = animationItem;\n    this.layers = null;\n    this.renderedFrame = -1;\n    this.svgElement = createNS('svg');\n    var ariaLabel = '';\n\n    if (config && config.title) {\n      var titleElement = createNS('title');\n      var titleId = createElementID();\n      titleElement.setAttribute('id', titleId);\n      titleElement.textContent = config.title;\n      this.svgElement.appendChild(titleElement);\n      ariaLabel += titleId;\n    }\n\n    if (config && config.description) {\n      var descElement = createNS('desc');\n      var descId = createElementID();\n      descElement.setAttribute('id', descId);\n      descElement.textContent = config.description;\n      this.svgElement.appendChild(descElement);\n      ariaLabel += ' ' + descId;\n    }\n\n    if (ariaLabel) {\n      this.svgElement.setAttribute('aria-labelledby', ariaLabel);\n    }\n\n    var defs = createNS('defs');\n    this.svgElement.appendChild(defs);\n    var maskElement = createNS('g');\n    this.svgElement.appendChild(maskElement);\n    this.layerElement = maskElement;\n    this.renderConfig = {\n      preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n      imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n      contentVisibility: config && config.contentVisibility || 'visible',\n      progressiveLoad: config && config.progressiveLoad || false,\n      hideOnTransparent: !(config && config.hideOnTransparent === false),\n      viewBoxOnly: config && config.viewBoxOnly || false,\n      viewBoxSize: config && config.viewBoxSize || false,\n      className: config && config.className || '',\n      id: config && config.id || '',\n      focusable: config && config.focusable,\n      filterSize: {\n        width: config && config.filterSize && config.filterSize.width || '100%',\n        height: config && config.filterSize && config.filterSize.height || '100%',\n        x: config && config.filterSize && config.filterSize.x || '0%',\n        y: config && config.filterSize && config.filterSize.y || '0%'\n      },\n      width: config && config.width,\n      height: config && config.height\n    };\n    this.globalData = {\n      _mdf: false,\n      frameNum: -1,\n      defs: defs,\n      renderConfig: this.renderConfig\n    };\n    this.elements = [];\n    this.pendingElements = [];\n    this.destroyed = false;\n    this.rendererType = 'svg';\n  }\n\n  extendPrototype([SVGRendererBase], SVGRenderer);\n\n  SVGRenderer.prototype.createComp = function (data) {\n    return new SVGCompElement(data, this.globalData, this);\n  };\n\n  function CVContextData() {\n    this.saved = [];\n    this.cArrPos = 0;\n    this.cTr = new Matrix();\n    this.cO = 1;\n    var i;\n    var len = 15;\n    this.savedOp = createTypedArray('float32', len);\n\n    for (i = 0; i < len; i += 1) {\n      this.saved[i] = createTypedArray('float32', 16);\n    }\n\n    this._length = len;\n  }\n\n  CVContextData.prototype.duplicate = function () {\n    var newLength = this._length * 2;\n    var currentSavedOp = this.savedOp;\n    this.savedOp = createTypedArray('float32', newLength);\n    this.savedOp.set(currentSavedOp);\n    var i = 0;\n\n    for (i = this._length; i < newLength; i += 1) {\n      this.saved[i] = createTypedArray('float32', 16);\n    }\n\n    this._length = newLength;\n  };\n\n  CVContextData.prototype.reset = function () {\n    this.cArrPos = 0;\n    this.cTr.reset();\n    this.cO = 1;\n  };\n\n  function ShapeTransformManager() {\n    this.sequences = {};\n    this.sequenceList = [];\n    this.transform_key_count = 0;\n  }\n\n  ShapeTransformManager.prototype = {\n    addTransformSequence: function addTransformSequence(transforms) {\n      var i;\n      var len = transforms.length;\n      var key = '_';\n\n      for (i = 0; i < len; i += 1) {\n        key += transforms[i].transform.key + '_';\n      }\n\n      var sequence = this.sequences[key];\n\n      if (!sequence) {\n        sequence = {\n          transforms: [].concat(transforms),\n          finalTransform: new Matrix(),\n          _mdf: false\n        };\n        this.sequences[key] = sequence;\n        this.sequenceList.push(sequence);\n      }\n\n      return sequence;\n    },\n    processSequence: function processSequence(sequence, isFirstFrame) {\n      var i = 0;\n      var len = sequence.transforms.length;\n      var _mdf = isFirstFrame;\n\n      while (i < len && !isFirstFrame) {\n        if (sequence.transforms[i].transform.mProps._mdf) {\n          _mdf = true;\n          break;\n        }\n\n        i += 1;\n      }\n\n      if (_mdf) {\n        var props;\n        sequence.finalTransform.reset();\n\n        for (i = len - 1; i >= 0; i -= 1) {\n          props = sequence.transforms[i].transform.mProps.v.props;\n          sequence.finalTransform.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\n        }\n      }\n\n      sequence._mdf = _mdf;\n    },\n    processSequences: function processSequences(isFirstFrame) {\n      var i;\n      var len = this.sequenceList.length;\n\n      for (i = 0; i < len; i += 1) {\n        this.processSequence(this.sequenceList[i], isFirstFrame);\n      }\n    },\n    getNewKey: function getNewKey() {\n      this.transform_key_count += 1;\n      return '_' + this.transform_key_count;\n    }\n  };\n\n  function CVEffects() {}\n\n  CVEffects.prototype.renderFrame = function () {};\n\n  function CVMaskElement(data, element) {\n    this.data = data;\n    this.element = element;\n    this.masksProperties = this.data.masksProperties || [];\n    this.viewData = createSizedArray(this.masksProperties.length);\n    var i;\n    var len = this.masksProperties.length;\n    var hasMasks = false;\n\n    for (i = 0; i < len; i += 1) {\n      if (this.masksProperties[i].mode !== 'n') {\n        hasMasks = true;\n      }\n\n      this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\n    }\n\n    this.hasMasks = hasMasks;\n\n    if (hasMasks) {\n      this.element.addRenderableComponent(this);\n    }\n  }\n\n  CVMaskElement.prototype.renderFrame = function () {\n    if (!this.hasMasks) {\n      return;\n    }\n\n    var transform = this.element.finalTransform.mat;\n    var ctx = this.element.canvasContext;\n    var i;\n    var len = this.masksProperties.length;\n    var pt;\n    var pts;\n    var data;\n    ctx.beginPath();\n\n    for (i = 0; i < len; i += 1) {\n      if (this.masksProperties[i].mode !== 'n') {\n        if (this.masksProperties[i].inv) {\n          ctx.moveTo(0, 0);\n          ctx.lineTo(this.element.globalData.compSize.w, 0);\n          ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\n          ctx.lineTo(0, this.element.globalData.compSize.h);\n          ctx.lineTo(0, 0);\n        }\n\n        data = this.viewData[i].v;\n        pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n        ctx.moveTo(pt[0], pt[1]);\n        var j;\n        var jLen = data._length;\n\n        for (j = 1; j < jLen; j += 1) {\n          pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n          ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n        }\n\n        pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n        ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n      }\n    }\n\n    this.element.globalData.renderer.save(true);\n    ctx.clip();\n  };\n\n  CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n  CVMaskElement.prototype.destroy = function () {\n    this.element = null;\n  };\n\n  function CVBaseElement() {}\n\n  CVBaseElement.prototype = {\n    createElements: function createElements() {},\n    initRendererElement: function initRendererElement() {},\n    createContainerElements: function createContainerElements() {\n      this.canvasContext = this.globalData.canvasContext;\n      this.renderableEffectsManager = new CVEffects(this);\n    },\n    createContent: function createContent() {},\n    setBlendMode: function setBlendMode() {\n      var globalData = this.globalData;\n\n      if (globalData.blendMode !== this.data.bm) {\n        globalData.blendMode = this.data.bm;\n        var blendModeValue = getBlendMode(this.data.bm);\n        globalData.canvasContext.globalCompositeOperation = blendModeValue;\n      }\n    },\n    createRenderableComponents: function createRenderableComponents() {\n      this.maskManager = new CVMaskElement(this.data, this);\n    },\n    hideElement: function hideElement() {\n      if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n        this.hidden = true;\n      }\n    },\n    showElement: function showElement() {\n      if (this.isInRange && !this.isTransparent) {\n        this.hidden = false;\n        this._isFirstFrame = true;\n        this.maskManager._isFirstFrame = true;\n      }\n    },\n    renderFrame: function renderFrame() {\n      if (this.hidden || this.data.hd) {\n        return;\n      }\n\n      this.renderTransform();\n      this.renderRenderable();\n      this.setBlendMode();\n      var forceRealStack = this.data.ty === 0;\n      this.globalData.renderer.save(forceRealStack);\n      this.globalData.renderer.ctxTransform(this.finalTransform.mat.props);\n      this.globalData.renderer.ctxOpacity(this.finalTransform.mProp.o.v);\n      this.renderInnerContent();\n      this.globalData.renderer.restore(forceRealStack);\n\n      if (this.maskManager.hasMasks) {\n        this.globalData.renderer.restore(true);\n      }\n\n      if (this._isFirstFrame) {\n        this._isFirstFrame = false;\n      }\n    },\n    destroy: function destroy() {\n      this.canvasContext = null;\n      this.data = null;\n      this.globalData = null;\n      this.maskManager.destroy();\n    },\n    mHelper: new Matrix()\n  };\n  CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n  CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n\n  function CVShapeData(element, data, styles, transformsManager) {\n    this.styledShapes = [];\n    this.tr = [0, 0, 0, 0, 0, 0];\n    var ty = 4;\n\n    if (data.ty === 'rc') {\n      ty = 5;\n    } else if (data.ty === 'el') {\n      ty = 6;\n    } else if (data.ty === 'sr') {\n      ty = 7;\n    }\n\n    this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n    var i;\n    var len = styles.length;\n    var styledShape;\n\n    for (i = 0; i < len; i += 1) {\n      if (!styles[i].closed) {\n        styledShape = {\n          transforms: transformsManager.addTransformSequence(styles[i].transforms),\n          trNodes: []\n        };\n        this.styledShapes.push(styledShape);\n        styles[i].elements.push(styledShape);\n      }\n    }\n  }\n\n  CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n\n  function CVShapeElement(data, globalData, comp) {\n    this.shapes = [];\n    this.shapesData = data.shapes;\n    this.stylesList = [];\n    this.itemsData = [];\n    this.prevViewData = [];\n    this.shapeModifiers = [];\n    this.processedElements = [];\n    this.transformsManager = new ShapeTransformManager();\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n  CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n  CVShapeElement.prototype.transformHelper = {\n    opacity: 1,\n    _opMdf: false\n  };\n  CVShapeElement.prototype.dashResetter = [];\n\n  CVShapeElement.prototype.createContent = function () {\n    this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n  };\n\n  CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n    var styleElem = {\n      data: data,\n      type: data.ty,\n      preTransforms: this.transformsManager.addTransformSequence(transforms),\n      transforms: [],\n      elements: [],\n      closed: data.hd === true\n    };\n    var elementData = {};\n\n    if (data.ty === 'fl' || data.ty === 'st') {\n      elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\n\n      if (!elementData.c.k) {\n        styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\n      }\n    } else if (data.ty === 'gf' || data.ty === 'gs') {\n      elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\n      elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\n      elementData.h = PropertyFactory.getProp(this, data.h || {\n        k: 0\n      }, 0, 0.01, this);\n      elementData.a = PropertyFactory.getProp(this, data.a || {\n        k: 0\n      }, 0, degToRads, this);\n      elementData.g = new GradientProperty(this, data.g, this);\n    }\n\n    elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\n\n    if (data.ty === 'st' || data.ty === 'gs') {\n      styleElem.lc = lineCapEnum[data.lc || 2];\n      styleElem.lj = lineJoinEnum[data.lj || 2];\n\n      if (data.lj == 1) {\n        // eslint-disable-line eqeqeq\n        styleElem.ml = data.ml;\n      }\n\n      elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\n\n      if (!elementData.w.k) {\n        styleElem.wi = elementData.w.v;\n      }\n\n      if (data.d) {\n        var d = new DashProperty(this, data.d, 'canvas', this);\n        elementData.d = d;\n\n        if (!elementData.d.k) {\n          styleElem.da = elementData.d.dashArray;\n          styleElem[\"do\"] = elementData.d.dashoffset[0];\n        }\n      }\n    } else {\n      styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\n    }\n\n    this.stylesList.push(styleElem);\n    elementData.style = styleElem;\n    return elementData;\n  };\n\n  CVShapeElement.prototype.createGroupElement = function () {\n    var elementData = {\n      it: [],\n      prevViewData: []\n    };\n    return elementData;\n  };\n\n  CVShapeElement.prototype.createTransformElement = function (data) {\n    var elementData = {\n      transform: {\n        opacity: 1,\n        _opMdf: false,\n        key: this.transformsManager.getNewKey(),\n        op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\n        mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\n      }\n    };\n    return elementData;\n  };\n\n  CVShapeElement.prototype.createShapeElement = function (data) {\n    var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\n    this.shapes.push(elementData);\n    this.addShapeToModifiers(elementData);\n    return elementData;\n  };\n\n  CVShapeElement.prototype.reloadShapes = function () {\n    this._isFirstFrame = true;\n    var i;\n    var len = this.itemsData.length;\n\n    for (i = 0; i < len; i += 1) {\n      this.prevViewData[i] = this.itemsData[i];\n    }\n\n    this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n    len = this.dynamicProperties.length;\n\n    for (i = 0; i < len; i += 1) {\n      this.dynamicProperties[i].getValue();\n    }\n\n    this.renderModifiers();\n    this.transformsManager.processSequences(this._isFirstFrame);\n  };\n\n  CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n    var i;\n    var len = this.stylesList.length;\n\n    for (i = 0; i < len; i += 1) {\n      if (!this.stylesList[i].closed) {\n        this.stylesList[i].transforms.push(transform);\n      }\n    }\n  };\n\n  CVShapeElement.prototype.removeTransformFromStyleList = function () {\n    var i;\n    var len = this.stylesList.length;\n\n    for (i = 0; i < len; i += 1) {\n      if (!this.stylesList[i].closed) {\n        this.stylesList[i].transforms.pop();\n      }\n    }\n  };\n\n  CVShapeElement.prototype.closeStyles = function (styles) {\n    var i;\n    var len = styles.length;\n\n    for (i = 0; i < len; i += 1) {\n      styles[i].closed = true;\n    }\n  };\n\n  CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n    var i;\n    var len = arr.length - 1;\n    var j;\n    var jLen;\n    var ownStyles = [];\n    var ownModifiers = [];\n    var processedPos;\n    var modifier;\n    var currentTransform;\n    var ownTransforms = [].concat(transforms);\n\n    for (i = len; i >= 0; i -= 1) {\n      processedPos = this.searchProcessedElement(arr[i]);\n\n      if (!processedPos) {\n        arr[i]._shouldRender = shouldRender;\n      } else {\n        itemsData[i] = prevViewData[processedPos - 1];\n      }\n\n      if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\n        if (!processedPos) {\n          itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n        } else {\n          itemsData[i].style.closed = false;\n        }\n\n        ownStyles.push(itemsData[i].style);\n      } else if (arr[i].ty === 'gr') {\n        if (!processedPos) {\n          itemsData[i] = this.createGroupElement(arr[i]);\n        } else {\n          jLen = itemsData[i].it.length;\n\n          for (j = 0; j < jLen; j += 1) {\n            itemsData[i].prevViewData[j] = itemsData[i].it[j];\n          }\n        }\n\n        this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n      } else if (arr[i].ty === 'tr') {\n        if (!processedPos) {\n          currentTransform = this.createTransformElement(arr[i]);\n          itemsData[i] = currentTransform;\n        }\n\n        ownTransforms.push(itemsData[i]);\n        this.addTransformToStyleList(itemsData[i]);\n      } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n        if (!processedPos) {\n          itemsData[i] = this.createShapeElement(arr[i]);\n        }\n      } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb') {\n        if (!processedPos) {\n          modifier = ShapeModifiers.getModifier(arr[i].ty);\n          modifier.init(this, arr[i]);\n          itemsData[i] = modifier;\n          this.shapeModifiers.push(modifier);\n        } else {\n          modifier = itemsData[i];\n          modifier.closed = false;\n        }\n\n        ownModifiers.push(modifier);\n      } else if (arr[i].ty === 'rp') {\n        if (!processedPos) {\n          modifier = ShapeModifiers.getModifier(arr[i].ty);\n          itemsData[i] = modifier;\n          modifier.init(this, arr, i, itemsData);\n          this.shapeModifiers.push(modifier);\n          shouldRender = false;\n        } else {\n          modifier = itemsData[i];\n          modifier.closed = true;\n        }\n\n        ownModifiers.push(modifier);\n      }\n\n      this.addProcessedElement(arr[i], i + 1);\n    }\n\n    this.removeTransformFromStyleList();\n    this.closeStyles(ownStyles);\n    len = ownModifiers.length;\n\n    for (i = 0; i < len; i += 1) {\n      ownModifiers[i].closed = true;\n    }\n  };\n\n  CVShapeElement.prototype.renderInnerContent = function () {\n    this.transformHelper.opacity = 1;\n    this.transformHelper._opMdf = false;\n    this.renderModifiers();\n    this.transformsManager.processSequences(this._isFirstFrame);\n    this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\n  };\n\n  CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n    if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\n      groupTransform.opacity = parentTransform.opacity;\n      groupTransform.opacity *= groupTransform.op.v;\n      groupTransform._opMdf = true;\n    }\n  };\n\n  CVShapeElement.prototype.drawLayer = function () {\n    var i;\n    var len = this.stylesList.length;\n    var j;\n    var jLen;\n    var k;\n    var kLen;\n    var elems;\n    var nodes;\n    var renderer = this.globalData.renderer;\n    var ctx = this.globalData.canvasContext;\n    var type;\n    var currentStyle;\n\n    for (i = 0; i < len; i += 1) {\n      currentStyle = this.stylesList[i];\n      type = currentStyle.type; // Skipping style when\n      // Stroke width equals 0\n      // style should not be rendered (extra unused repeaters)\n      // current opacity equals 0\n      // global opacity equals 0\n\n      if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\n        renderer.save();\n        elems = currentStyle.elements;\n\n        if (type === 'st' || type === 'gs') {\n          ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\n          ctx.lineWidth = currentStyle.wi;\n          ctx.lineCap = currentStyle.lc;\n          ctx.lineJoin = currentStyle.lj;\n          ctx.miterLimit = currentStyle.ml || 0;\n        } else {\n          ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\n        }\n\n        renderer.ctxOpacity(currentStyle.coOp);\n\n        if (type !== 'st' && type !== 'gs') {\n          ctx.beginPath();\n        }\n\n        renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n        jLen = elems.length;\n\n        for (j = 0; j < jLen; j += 1) {\n          if (type === 'st' || type === 'gs') {\n            ctx.beginPath();\n\n            if (currentStyle.da) {\n              ctx.setLineDash(currentStyle.da);\n              ctx.lineDashOffset = currentStyle[\"do\"];\n            }\n          }\n\n          nodes = elems[j].trNodes;\n          kLen = nodes.length;\n\n          for (k = 0; k < kLen; k += 1) {\n            if (nodes[k].t === 'm') {\n              ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n            } else if (nodes[k].t === 'c') {\n              ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\n            } else {\n              ctx.closePath();\n            }\n          }\n\n          if (type === 'st' || type === 'gs') {\n            ctx.stroke();\n\n            if (currentStyle.da) {\n              ctx.setLineDash(this.dashResetter);\n            }\n          }\n        }\n\n        if (type !== 'st' && type !== 'gs') {\n          ctx.fill(currentStyle.r);\n        }\n\n        renderer.restore();\n      }\n    }\n  };\n\n  CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n    var i;\n    var len = items.length - 1;\n    var groupTransform;\n    groupTransform = parentTransform;\n\n    for (i = len; i >= 0; i -= 1) {\n      if (items[i].ty === 'tr') {\n        groupTransform = data[i].transform;\n        this.renderShapeTransform(parentTransform, groupTransform);\n      } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\n        this.renderPath(items[i], data[i]);\n      } else if (items[i].ty === 'fl') {\n        this.renderFill(items[i], data[i], groupTransform);\n      } else if (items[i].ty === 'st') {\n        this.renderStroke(items[i], data[i], groupTransform);\n      } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\n        this.renderGradientFill(items[i], data[i], groupTransform);\n      } else if (items[i].ty === 'gr') {\n        this.renderShape(groupTransform, items[i].it, data[i].it);\n      } else if (items[i].ty === 'tm') {//\n      }\n    }\n\n    if (isMain) {\n      this.drawLayer();\n    }\n  };\n\n  CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n    if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n      var shapeNodes = styledShape.trNodes;\n      var paths = shape.paths;\n      var i;\n      var len;\n      var j;\n      var jLen = paths._length;\n      shapeNodes.length = 0;\n      var groupTransformMat = styledShape.transforms.finalTransform;\n\n      for (j = 0; j < jLen; j += 1) {\n        var pathNodes = paths.shapes[j];\n\n        if (pathNodes && pathNodes.v) {\n          len = pathNodes._length;\n\n          for (i = 1; i < len; i += 1) {\n            if (i === 1) {\n              shapeNodes.push({\n                t: 'm',\n                p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n              });\n            }\n\n            shapeNodes.push({\n              t: 'c',\n              pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n            });\n          }\n\n          if (len === 1) {\n            shapeNodes.push({\n              t: 'm',\n              p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n            });\n          }\n\n          if (pathNodes.c && len) {\n            shapeNodes.push({\n              t: 'c',\n              pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n            });\n            shapeNodes.push({\n              t: 'z'\n            });\n          }\n        }\n      }\n\n      styledShape.trNodes = shapeNodes;\n    }\n  };\n\n  CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n    if (pathData.hd !== true && pathData._shouldRender) {\n      var i;\n      var len = itemData.styledShapes.length;\n\n      for (i = 0; i < len; i += 1) {\n        this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n      }\n    }\n  };\n\n  CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n    var styleElem = itemData.style;\n\n    if (itemData.c._mdf || this._isFirstFrame) {\n      styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n    }\n\n    if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n      styleElem.coOp = itemData.o.v * groupTransform.opacity;\n    }\n  };\n\n  CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n    var styleElem = itemData.style;\n    var grd;\n\n    if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n      var ctx = this.globalData.canvasContext;\n      var pt1 = itemData.s.v;\n      var pt2 = itemData.e.v;\n\n      if (styleData.t === 1) {\n        grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n      } else {\n        var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n        var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n        var percent = itemData.h.v;\n\n        if (percent >= 1) {\n          percent = 0.99;\n        } else if (percent <= -1) {\n          percent = -0.99;\n        }\n\n        var dist = rad * percent;\n        var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n        var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n        grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n      }\n\n      var i;\n      var len = styleData.g.p;\n      var cValues = itemData.g.c;\n      var opacity = 1;\n\n      for (i = 0; i < len; i += 1) {\n        if (itemData.g._hasOpacity && itemData.g._collapsable) {\n          opacity = itemData.g.o[i * 2 + 1];\n        }\n\n        grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\n      }\n\n      styleElem.grd = grd;\n    }\n\n    styleElem.coOp = itemData.o.v * groupTransform.opacity;\n  };\n\n  CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n    var styleElem = itemData.style;\n    var d = itemData.d;\n\n    if (d && (d._mdf || this._isFirstFrame)) {\n      styleElem.da = d.dashArray;\n      styleElem[\"do\"] = d.dashoffset[0];\n    }\n\n    if (itemData.c._mdf || this._isFirstFrame) {\n      styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n    }\n\n    if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n      styleElem.coOp = itemData.o.v * groupTransform.opacity;\n    }\n\n    if (itemData.w._mdf || this._isFirstFrame) {\n      styleElem.wi = itemData.w.v;\n    }\n  };\n\n  CVShapeElement.prototype.destroy = function () {\n    this.shapesData = null;\n    this.globalData = null;\n    this.canvasContext = null;\n    this.stylesList.length = 0;\n    this.itemsData.length = 0;\n  };\n\n  function CVTextElement(data, globalData, comp) {\n    this.textSpans = [];\n    this.yOffset = 0;\n    this.fillColorAnim = false;\n    this.strokeColorAnim = false;\n    this.strokeWidthAnim = false;\n    this.stroke = false;\n    this.fill = false;\n    this.justifyOffset = 0;\n    this.currentRender = null;\n    this.renderType = 'canvas';\n    this.values = {\n      fill: 'rgba(0,0,0,0)',\n      stroke: 'rgba(0,0,0,0)',\n      sWidth: 0,\n      fValue: ''\n    };\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n  CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\n\n  CVTextElement.prototype.buildNewText = function () {\n    var documentData = this.textProperty.currentData;\n    this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n    var hasFill = false;\n\n    if (documentData.fc) {\n      hasFill = true;\n      this.values.fill = this.buildColor(documentData.fc);\n    } else {\n      this.values.fill = 'rgba(0,0,0,0)';\n    }\n\n    this.fill = hasFill;\n    var hasStroke = false;\n\n    if (documentData.sc) {\n      hasStroke = true;\n      this.values.stroke = this.buildColor(documentData.sc);\n      this.values.sWidth = documentData.sw;\n    }\n\n    var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n    var i;\n    var len;\n    var letters = documentData.l;\n    var matrixHelper = this.mHelper;\n    this.stroke = hasStroke;\n    this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\n    len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\n\n    var charData;\n    var shapeData;\n    var k;\n    var kLen;\n    var shapes;\n    var j;\n    var jLen;\n    var pathNodes;\n    var commands;\n    var pathArr;\n    var singleShape = this.data.singleShape;\n    var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n    var xPos = 0;\n    var yPos = 0;\n    var firstLine = true;\n    var cnt = 0;\n\n    for (i = 0; i < len; i += 1) {\n      charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n      shapeData = charData && charData.data || {};\n      matrixHelper.reset();\n\n      if (singleShape && letters[i].n) {\n        xPos = -trackingOffset;\n        yPos += documentData.yOffset;\n        yPos += firstLine ? 1 : 0;\n        firstLine = false;\n      }\n\n      shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n      jLen = shapes.length;\n      matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n      if (singleShape) {\n        this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n      }\n\n      commands = createSizedArray(jLen - 1);\n      var commandsCounter = 0;\n\n      for (j = 0; j < jLen; j += 1) {\n        if (shapes[j].ty === 'sh') {\n          kLen = shapes[j].ks.k.i.length;\n          pathNodes = shapes[j].ks.k;\n          pathArr = [];\n\n          for (k = 1; k < kLen; k += 1) {\n            if (k === 1) {\n              pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n            }\n\n            pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\n          }\n\n          pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n          commands[commandsCounter] = pathArr;\n          commandsCounter += 1;\n        }\n      }\n\n      if (singleShape) {\n        xPos += letters[i].l;\n        xPos += trackingOffset;\n      }\n\n      if (this.textSpans[cnt]) {\n        this.textSpans[cnt].elem = commands;\n      } else {\n        this.textSpans[cnt] = {\n          elem: commands\n        };\n      }\n\n      cnt += 1;\n    }\n  };\n\n  CVTextElement.prototype.renderInnerContent = function () {\n    var ctx = this.canvasContext;\n    ctx.font = this.values.fValue;\n    ctx.lineCap = 'butt';\n    ctx.lineJoin = 'miter';\n    ctx.miterLimit = 4;\n\n    if (!this.data.singleShape) {\n      this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n    }\n\n    var i;\n    var len;\n    var j;\n    var jLen;\n    var k;\n    var kLen;\n    var renderedLetters = this.textAnimator.renderedLetters;\n    var letters = this.textProperty.currentData.l;\n    len = letters.length;\n    var renderedLetter;\n    var lastFill = null;\n    var lastStroke = null;\n    var lastStrokeW = null;\n    var commands;\n    var pathArr;\n\n    for (i = 0; i < len; i += 1) {\n      if (!letters[i].n) {\n        renderedLetter = renderedLetters[i];\n\n        if (renderedLetter) {\n          this.globalData.renderer.save();\n          this.globalData.renderer.ctxTransform(renderedLetter.p);\n          this.globalData.renderer.ctxOpacity(renderedLetter.o);\n        }\n\n        if (this.fill) {\n          if (renderedLetter && renderedLetter.fc) {\n            if (lastFill !== renderedLetter.fc) {\n              lastFill = renderedLetter.fc;\n              ctx.fillStyle = renderedLetter.fc;\n            }\n          } else if (lastFill !== this.values.fill) {\n            lastFill = this.values.fill;\n            ctx.fillStyle = this.values.fill;\n          }\n\n          commands = this.textSpans[i].elem;\n          jLen = commands.length;\n          this.globalData.canvasContext.beginPath();\n\n          for (j = 0; j < jLen; j += 1) {\n            pathArr = commands[j];\n            kLen = pathArr.length;\n            this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n            for (k = 2; k < kLen; k += 6) {\n              this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n            }\n          }\n\n          this.globalData.canvasContext.closePath();\n          this.globalData.canvasContext.fill(); /// ctx.fillText(this.textSpans[i].val,0,0);\n        }\n\n        if (this.stroke) {\n          if (renderedLetter && renderedLetter.sw) {\n            if (lastStrokeW !== renderedLetter.sw) {\n              lastStrokeW = renderedLetter.sw;\n              ctx.lineWidth = renderedLetter.sw;\n            }\n          } else if (lastStrokeW !== this.values.sWidth) {\n            lastStrokeW = this.values.sWidth;\n            ctx.lineWidth = this.values.sWidth;\n          }\n\n          if (renderedLetter && renderedLetter.sc) {\n            if (lastStroke !== renderedLetter.sc) {\n              lastStroke = renderedLetter.sc;\n              ctx.strokeStyle = renderedLetter.sc;\n            }\n          } else if (lastStroke !== this.values.stroke) {\n            lastStroke = this.values.stroke;\n            ctx.strokeStyle = this.values.stroke;\n          }\n\n          commands = this.textSpans[i].elem;\n          jLen = commands.length;\n          this.globalData.canvasContext.beginPath();\n\n          for (j = 0; j < jLen; j += 1) {\n            pathArr = commands[j];\n            kLen = pathArr.length;\n            this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n            for (k = 2; k < kLen; k += 6) {\n              this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n            }\n          }\n\n          this.globalData.canvasContext.closePath();\n          this.globalData.canvasContext.stroke(); /// ctx.strokeText(letters[i].val,0,0);\n        }\n\n        if (renderedLetter) {\n          this.globalData.renderer.restore();\n        }\n      }\n    }\n  };\n\n  function CVImageElement(data, globalData, comp) {\n    this.assetData = globalData.getAssetData(data.refId);\n    this.img = globalData.imageLoader.getAsset(this.assetData);\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n  CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n  CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n  CVImageElement.prototype.createContent = function () {\n    if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\n      var canvas = createTag('canvas');\n      canvas.width = this.assetData.w;\n      canvas.height = this.assetData.h;\n      var ctx = canvas.getContext('2d');\n      var imgW = this.img.width;\n      var imgH = this.img.height;\n      var imgRel = imgW / imgH;\n      var canvasRel = this.assetData.w / this.assetData.h;\n      var widthCrop;\n      var heightCrop;\n      var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\n\n      if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\n        heightCrop = imgH;\n        widthCrop = heightCrop * canvasRel;\n      } else {\n        widthCrop = imgW;\n        heightCrop = widthCrop / canvasRel;\n      }\n\n      ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\n      this.img = canvas;\n    }\n  };\n\n  CVImageElement.prototype.renderInnerContent = function () {\n    this.canvasContext.drawImage(this.img, 0, 0);\n  };\n\n  CVImageElement.prototype.destroy = function () {\n    this.img = null;\n  };\n\n  function CVSolidElement(data, globalData, comp) {\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n  CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n  CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n  CVSolidElement.prototype.renderInnerContent = function () {\n    var ctx = this.canvasContext;\n    ctx.fillStyle = this.data.sc;\n    ctx.fillRect(0, 0, this.data.sw, this.data.sh); //\n  };\n\n  function CanvasRendererBase(animationItem, config) {\n    this.animationItem = animationItem;\n    this.renderConfig = {\n      clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n      context: config && config.context || null,\n      progressiveLoad: config && config.progressiveLoad || false,\n      preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n      imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n      contentVisibility: config && config.contentVisibility || 'visible',\n      className: config && config.className || '',\n      id: config && config.id || ''\n    };\n    this.renderConfig.dpr = config && config.dpr || 1;\n\n    if (this.animationItem.wrapper) {\n      this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n    }\n\n    this.renderedFrame = -1;\n    this.globalData = {\n      frameNum: -1,\n      _mdf: false,\n      renderConfig: this.renderConfig,\n      currentGlobalAlpha: -1\n    };\n    this.contextData = new CVContextData();\n    this.elements = [];\n    this.pendingElements = [];\n    this.transformMat = new Matrix();\n    this.completeLayers = false;\n    this.rendererType = 'canvas';\n  }\n\n  extendPrototype([BaseRenderer], CanvasRendererBase);\n\n  CanvasRendererBase.prototype.createShape = function (data) {\n    return new CVShapeElement(data, this.globalData, this);\n  };\n\n  CanvasRendererBase.prototype.createText = function (data) {\n    return new CVTextElement(data, this.globalData, this);\n  };\n\n  CanvasRendererBase.prototype.createImage = function (data) {\n    return new CVImageElement(data, this.globalData, this);\n  };\n\n  CanvasRendererBase.prototype.createSolid = function (data) {\n    return new CVSolidElement(data, this.globalData, this);\n  };\n\n  CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n  CanvasRendererBase.prototype.ctxTransform = function (props) {\n    if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n      return;\n    }\n\n    if (!this.renderConfig.clearCanvas) {\n      this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n      return;\n    }\n\n    this.transformMat.cloneFromProps(props);\n    var cProps = this.contextData.cTr.props;\n    this.transformMat.transform(cProps[0], cProps[1], cProps[2], cProps[3], cProps[4], cProps[5], cProps[6], cProps[7], cProps[8], cProps[9], cProps[10], cProps[11], cProps[12], cProps[13], cProps[14], cProps[15]); // this.contextData.cTr.transform(props[0],props[1],props[2],props[3],props[4],props[5],props[6],props[7],props[8],props[9],props[10],props[11],props[12],props[13],props[14],props[15]);\n\n    this.contextData.cTr.cloneFromProps(this.transformMat.props);\n    var trProps = this.contextData.cTr.props;\n    this.canvasContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n  };\n\n  CanvasRendererBase.prototype.ctxOpacity = function (op) {\n    /* if(op === 1){\r\n          return;\r\n      } */\n    if (!this.renderConfig.clearCanvas) {\n      this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n      this.globalData.currentGlobalAlpha = this.contextData.cO;\n      return;\n    }\n\n    this.contextData.cO *= op < 0 ? 0 : op;\n\n    if (this.globalData.currentGlobalAlpha !== this.contextData.cO) {\n      this.canvasContext.globalAlpha = this.contextData.cO;\n      this.globalData.currentGlobalAlpha = this.contextData.cO;\n    }\n  };\n\n  CanvasRendererBase.prototype.reset = function () {\n    if (!this.renderConfig.clearCanvas) {\n      this.canvasContext.restore();\n      return;\n    }\n\n    this.contextData.reset();\n  };\n\n  CanvasRendererBase.prototype.save = function (actionFlag) {\n    if (!this.renderConfig.clearCanvas) {\n      this.canvasContext.save();\n      return;\n    }\n\n    if (actionFlag) {\n      this.canvasContext.save();\n    }\n\n    var props = this.contextData.cTr.props;\n\n    if (this.contextData._length <= this.contextData.cArrPos) {\n      this.contextData.duplicate();\n    }\n\n    var i;\n    var arr = this.contextData.saved[this.contextData.cArrPos];\n\n    for (i = 0; i < 16; i += 1) {\n      arr[i] = props[i];\n    }\n\n    this.contextData.savedOp[this.contextData.cArrPos] = this.contextData.cO;\n    this.contextData.cArrPos += 1;\n  };\n\n  CanvasRendererBase.prototype.restore = function (actionFlag) {\n    if (!this.renderConfig.clearCanvas) {\n      this.canvasContext.restore();\n      return;\n    }\n\n    if (actionFlag) {\n      this.canvasContext.restore();\n      this.globalData.blendMode = 'source-over';\n    }\n\n    this.contextData.cArrPos -= 1;\n    var popped = this.contextData.saved[this.contextData.cArrPos];\n    var i;\n    var arr = this.contextData.cTr.props;\n\n    for (i = 0; i < 16; i += 1) {\n      arr[i] = popped[i];\n    }\n\n    this.canvasContext.setTransform(popped[0], popped[1], popped[4], popped[5], popped[12], popped[13]);\n    popped = this.contextData.savedOp[this.contextData.cArrPos];\n    this.contextData.cO = popped;\n\n    if (this.globalData.currentGlobalAlpha !== popped) {\n      this.canvasContext.globalAlpha = popped;\n      this.globalData.currentGlobalAlpha = popped;\n    }\n  };\n\n  CanvasRendererBase.prototype.configAnimation = function (animData) {\n    if (this.animationItem.wrapper) {\n      this.animationItem.container = createTag('canvas');\n      var containerStyle = this.animationItem.container.style;\n      containerStyle.width = '100%';\n      containerStyle.height = '100%';\n      var origin = '0px 0px 0px';\n      containerStyle.transformOrigin = origin;\n      containerStyle.mozTransformOrigin = origin;\n      containerStyle.webkitTransformOrigin = origin;\n      containerStyle['-webkit-transform'] = origin;\n      containerStyle.contentVisibility = this.renderConfig.contentVisibility;\n      this.animationItem.wrapper.appendChild(this.animationItem.container);\n      this.canvasContext = this.animationItem.container.getContext('2d');\n\n      if (this.renderConfig.className) {\n        this.animationItem.container.setAttribute('class', this.renderConfig.className);\n      }\n\n      if (this.renderConfig.id) {\n        this.animationItem.container.setAttribute('id', this.renderConfig.id);\n      }\n    } else {\n      this.canvasContext = this.renderConfig.context;\n    }\n\n    this.data = animData;\n    this.layers = animData.layers;\n    this.transformCanvas = {\n      w: animData.w,\n      h: animData.h,\n      sx: 0,\n      sy: 0,\n      tx: 0,\n      ty: 0\n    };\n    this.setupGlobalData(animData, document.body);\n    this.globalData.canvasContext = this.canvasContext;\n    this.globalData.renderer = this;\n    this.globalData.isDashed = false;\n    this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n    this.globalData.transformCanvas = this.transformCanvas;\n    this.elements = createSizedArray(animData.layers.length);\n    this.updateContainerSize();\n  };\n\n  CanvasRendererBase.prototype.updateContainerSize = function () {\n    this.reset();\n    var elementWidth;\n    var elementHeight;\n\n    if (this.animationItem.wrapper && this.animationItem.container) {\n      elementWidth = this.animationItem.wrapper.offsetWidth;\n      elementHeight = this.animationItem.wrapper.offsetHeight;\n      this.animationItem.container.setAttribute('width', elementWidth * this.renderConfig.dpr);\n      this.animationItem.container.setAttribute('height', elementHeight * this.renderConfig.dpr);\n    } else {\n      elementWidth = this.canvasContext.canvas.width * this.renderConfig.dpr;\n      elementHeight = this.canvasContext.canvas.height * this.renderConfig.dpr;\n    }\n\n    var elementRel;\n    var animationRel;\n\n    if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\n      var par = this.renderConfig.preserveAspectRatio.split(' ');\n      var fillType = par[1] || 'meet';\n      var pos = par[0] || 'xMidYMid';\n      var xPos = pos.substr(0, 4);\n      var yPos = pos.substr(4);\n      elementRel = elementWidth / elementHeight;\n      animationRel = this.transformCanvas.w / this.transformCanvas.h;\n\n      if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\n        this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n        this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n      } else {\n        this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n        this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n      }\n\n      if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n        this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\n      } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n        this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\n      } else {\n        this.transformCanvas.tx = 0;\n      }\n\n      if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n        this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\n      } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n        this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\n      } else {\n        this.transformCanvas.ty = 0;\n      }\n    } else if (this.renderConfig.preserveAspectRatio === 'none') {\n      this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n      this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n      this.transformCanvas.tx = 0;\n      this.transformCanvas.ty = 0;\n    } else {\n      this.transformCanvas.sx = this.renderConfig.dpr;\n      this.transformCanvas.sy = this.renderConfig.dpr;\n      this.transformCanvas.tx = 0;\n      this.transformCanvas.ty = 0;\n    }\n\n    this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\n    /* var i, len = this.elements.length;\r\n      for(i=0;i<len;i+=1){\r\n          if(this.elements[i] && this.elements[i].data.ty === 0){\r\n              this.elements[i].resize(this.globalData.transformCanvas);\r\n          }\r\n      } */\n\n    this.ctxTransform(this.transformCanvas.props);\n    this.canvasContext.beginPath();\n    this.canvasContext.rect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n    this.canvasContext.closePath();\n    this.canvasContext.clip();\n    this.renderFrame(this.renderedFrame, true);\n  };\n\n  CanvasRendererBase.prototype.destroy = function () {\n    if (this.renderConfig.clearCanvas && this.animationItem.wrapper) {\n      this.animationItem.wrapper.innerText = '';\n    }\n\n    var i;\n    var len = this.layers ? this.layers.length : 0;\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      if (this.elements[i]) {\n        this.elements[i].destroy();\n      }\n    }\n\n    this.elements.length = 0;\n    this.globalData.canvasContext = null;\n    this.animationItem.container = null;\n    this.destroyed = true;\n  };\n\n  CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\n    if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\n      return;\n    }\n\n    this.renderedFrame = num;\n    this.globalData.frameNum = num - this.animationItem._isFirstFrame;\n    this.globalData.frameId += 1;\n    this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\n    this.globalData.projectInterface.currentFrame = num; // console.log('--------');\n    // console.log('NEW: ',num);\n\n    var i;\n    var len = this.layers.length;\n\n    if (!this.completeLayers) {\n      this.checkLayers(num);\n    }\n\n    for (i = 0; i < len; i += 1) {\n      if (this.completeLayers || this.elements[i]) {\n        this.elements[i].prepareFrame(num - this.layers[i].st);\n      }\n    }\n\n    if (this.globalData._mdf) {\n      if (this.renderConfig.clearCanvas === true) {\n        this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n      } else {\n        this.save();\n      }\n\n      for (i = len - 1; i >= 0; i -= 1) {\n        if (this.completeLayers || this.elements[i]) {\n          this.elements[i].renderFrame();\n        }\n      }\n\n      if (this.renderConfig.clearCanvas !== true) {\n        this.restore();\n      }\n    }\n  };\n\n  CanvasRendererBase.prototype.buildItem = function (pos) {\n    var elements = this.elements;\n\n    if (elements[pos] || this.layers[pos].ty === 99) {\n      return;\n    }\n\n    var element = this.createItem(this.layers[pos], this, this.globalData);\n    elements[pos] = element;\n    element.initExpressions();\n    /* if(this.layers[pos].ty === 0){\r\n          element.resize(this.globalData.transformCanvas);\r\n      } */\n  };\n\n  CanvasRendererBase.prototype.checkPendingElements = function () {\n    while (this.pendingElements.length) {\n      var element = this.pendingElements.pop();\n      element.checkParenting();\n    }\n  };\n\n  CanvasRendererBase.prototype.hide = function () {\n    this.animationItem.container.style.display = 'none';\n  };\n\n  CanvasRendererBase.prototype.show = function () {\n    this.animationItem.container.style.display = 'block';\n  };\n\n  function CVCompElement(data, globalData, comp) {\n    this.completeLayers = false;\n    this.layers = data.layers;\n    this.pendingElements = [];\n    this.elements = createSizedArray(this.layers.length);\n    this.initElement(data, globalData, comp);\n    this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n      _placeholder: true\n    };\n  }\n\n  extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\n\n  CVCompElement.prototype.renderInnerContent = function () {\n    var ctx = this.canvasContext;\n    ctx.beginPath();\n    ctx.moveTo(0, 0);\n    ctx.lineTo(this.data.w, 0);\n    ctx.lineTo(this.data.w, this.data.h);\n    ctx.lineTo(0, this.data.h);\n    ctx.lineTo(0, 0);\n    ctx.clip();\n    var i;\n    var len = this.layers.length;\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      if (this.completeLayers || this.elements[i]) {\n        this.elements[i].renderFrame();\n      }\n    }\n  };\n\n  CVCompElement.prototype.destroy = function () {\n    var i;\n    var len = this.layers.length;\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      if (this.elements[i]) {\n        this.elements[i].destroy();\n      }\n    }\n\n    this.layers = null;\n    this.elements = null;\n  };\n\n  CVCompElement.prototype.createComp = function (data) {\n    return new CVCompElement(data, this.globalData, this);\n  };\n\n  function CanvasRenderer(animationItem, config) {\n    this.animationItem = animationItem;\n    this.renderConfig = {\n      clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n      context: config && config.context || null,\n      progressiveLoad: config && config.progressiveLoad || false,\n      preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n      imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n      contentVisibility: config && config.contentVisibility || 'visible',\n      className: config && config.className || '',\n      id: config && config.id || ''\n    };\n    this.renderConfig.dpr = config && config.dpr || 1;\n\n    if (this.animationItem.wrapper) {\n      this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n    }\n\n    this.renderedFrame = -1;\n    this.globalData = {\n      frameNum: -1,\n      _mdf: false,\n      renderConfig: this.renderConfig,\n      currentGlobalAlpha: -1\n    };\n    this.contextData = new CVContextData();\n    this.elements = [];\n    this.pendingElements = [];\n    this.transformMat = new Matrix();\n    this.completeLayers = false;\n    this.rendererType = 'canvas';\n  }\n\n  extendPrototype([CanvasRendererBase], CanvasRenderer);\n\n  CanvasRenderer.prototype.createComp = function (data) {\n    return new CVCompElement(data, this.globalData, this);\n  };\n\n  function HBaseElement() {}\n\n  HBaseElement.prototype = {\n    checkBlendMode: function checkBlendMode() {},\n    initRendererElement: function initRendererElement() {\n      this.baseElement = createTag(this.data.tg || 'div');\n\n      if (this.data.hasMask) {\n        this.svgElement = createNS('svg');\n        this.layerElement = createNS('g');\n        this.maskedElement = this.layerElement;\n        this.svgElement.appendChild(this.layerElement);\n        this.baseElement.appendChild(this.svgElement);\n      } else {\n        this.layerElement = this.baseElement;\n      }\n\n      styleDiv(this.baseElement);\n    },\n    createContainerElements: function createContainerElements() {\n      this.renderableEffectsManager = new CVEffects(this);\n      this.transformedElement = this.baseElement;\n      this.maskedElement = this.layerElement;\n\n      if (this.data.ln) {\n        this.layerElement.setAttribute('id', this.data.ln);\n      }\n\n      if (this.data.cl) {\n        this.layerElement.setAttribute('class', this.data.cl);\n      }\n\n      if (this.data.bm !== 0) {\n        this.setBlendMode();\n      }\n    },\n    renderElement: function renderElement() {\n      var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\n\n      if (this.finalTransform._matMdf) {\n        var matrixValue = this.finalTransform.mat.toCSS();\n        transformedElementStyle.transform = matrixValue;\n        transformedElementStyle.webkitTransform = matrixValue;\n      }\n\n      if (this.finalTransform._opMdf) {\n        transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\n      }\n    },\n    renderFrame: function renderFrame() {\n      // If it is exported as hidden (data.hd === true) no need to render\n      // If it is not visible no need to render\n      if (this.data.hd || this.hidden) {\n        return;\n      }\n\n      this.renderTransform();\n      this.renderRenderable();\n      this.renderElement();\n      this.renderInnerContent();\n\n      if (this._isFirstFrame) {\n        this._isFirstFrame = false;\n      }\n    },\n    destroy: function destroy() {\n      this.layerElement = null;\n      this.transformedElement = null;\n\n      if (this.matteElement) {\n        this.matteElement = null;\n      }\n\n      if (this.maskManager) {\n        this.maskManager.destroy();\n        this.maskManager = null;\n      }\n    },\n    createRenderableComponents: function createRenderableComponents() {\n      this.maskManager = new MaskElement(this.data, this, this.globalData);\n    },\n    addEffects: function addEffects() {},\n    setMatte: function setMatte() {}\n  };\n  HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n  HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n  HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\n\n  function HSolidElement(data, globalData, comp) {\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\n  HSolidElement.prototype.createContent = function () {\n    var rect;\n\n    if (this.data.hasMask) {\n      rect = createNS('rect');\n      rect.setAttribute('width', this.data.sw);\n      rect.setAttribute('height', this.data.sh);\n      rect.setAttribute('fill', this.data.sc);\n      this.svgElement.setAttribute('width', this.data.sw);\n      this.svgElement.setAttribute('height', this.data.sh);\n    } else {\n      rect = createTag('div');\n      rect.style.width = this.data.sw + 'px';\n      rect.style.height = this.data.sh + 'px';\n      rect.style.backgroundColor = this.data.sc;\n    }\n\n    this.layerElement.appendChild(rect);\n  };\n\n  function HShapeElement(data, globalData, comp) {\n    // List of drawable elements\n    this.shapes = []; // Full shape data\n\n    this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n    this.stylesList = []; // List of modifiers that will be applied to shapes\n\n    this.shapeModifiers = []; // List of items in shape tree\n\n    this.itemsData = []; // List of items in previous shape tree\n\n    this.processedElements = []; // List of animated components\n\n    this.animatedContents = [];\n    this.shapesContainer = createNS('g');\n    this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n    // List of elements that have been created\n\n    this.prevViewData = [];\n    this.currentBBox = {\n      x: 999999,\n      y: -999999,\n      h: 0,\n      w: 0\n    };\n  }\n\n  extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n  HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\n  HShapeElement.prototype.createContent = function () {\n    var cont;\n    this.baseElement.style.fontSize = 0;\n\n    if (this.data.hasMask) {\n      this.layerElement.appendChild(this.shapesContainer);\n      cont = this.svgElement;\n    } else {\n      cont = createNS('svg');\n      var size = this.comp.data ? this.comp.data : this.globalData.compSize;\n      cont.setAttribute('width', size.w);\n      cont.setAttribute('height', size.h);\n      cont.appendChild(this.shapesContainer);\n      this.layerElement.appendChild(cont);\n    }\n\n    this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\n    this.filterUniqueShapes();\n    this.shapeCont = cont;\n  };\n\n  HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n    var i;\n    var len = transformers.length;\n\n    for (i = 0; i < len; i += 1) {\n      point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n    }\n\n    return point;\n  };\n\n  HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n    var shape = item.sh.v;\n    var transformers = item.transformers;\n    var i;\n    var len = shape._length;\n    var vPoint;\n    var oPoint;\n    var nextIPoint;\n    var nextVPoint;\n\n    if (len <= 1) {\n      return;\n    }\n\n    for (i = 0; i < len - 1; i += 1) {\n      vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n      oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n      nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n      nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n      this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n    }\n\n    if (shape.c) {\n      vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n      oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n      nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n      nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n      this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n    }\n  };\n\n  HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n    this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n    var bounds = this.shapeBoundingBox;\n    boundingBox.x = bmMin(bounds.left, boundingBox.x);\n    boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n    boundingBox.y = bmMin(bounds.top, boundingBox.y);\n    boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n  };\n\n  HShapeElement.prototype.shapeBoundingBox = {\n    left: 0,\n    right: 0,\n    top: 0,\n    bottom: 0\n  };\n  HShapeElement.prototype.tempBoundingBox = {\n    x: 0,\n    xMax: 0,\n    y: 0,\n    yMax: 0,\n    width: 0,\n    height: 0\n  };\n\n  HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n    var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n    for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n      // eslint-disable-line no-plusplus\n      b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n      a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n      c = 3 * p1[i] - 3 * p0[i];\n      b |= 0; // eslint-disable-line no-bitwise\n\n      a |= 0; // eslint-disable-line no-bitwise\n\n      c |= 0; // eslint-disable-line no-bitwise\n\n      if (a === 0 && b === 0) {//\n      } else if (a === 0) {\n        t = -c / b;\n\n        if (t > 0 && t < 1) {\n          bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n        }\n      } else {\n        b2ac = b * b - 4 * c * a;\n\n        if (b2ac >= 0) {\n          t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n          if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n          t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n          if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n        }\n      }\n    }\n\n    this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n    this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n    this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n    this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n  };\n\n  HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n    return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\n  };\n\n  HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n    var i;\n    var len = itemsData.length;\n\n    for (i = 0; i < len; i += 1) {\n      if (itemsData[i] && itemsData[i].sh) {\n        this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n      } else if (itemsData[i] && itemsData[i].it) {\n        this.calculateBoundingBox(itemsData[i].it, boundingBox);\n      } else if (itemsData[i] && itemsData[i].style && itemsData[i].w) {\n        this.expandStrokeBoundingBox(itemsData[i].w, boundingBox);\n      }\n    }\n  };\n\n  HShapeElement.prototype.expandStrokeBoundingBox = function (widthProperty, boundingBox) {\n    var width = 0;\n\n    if (widthProperty.keyframes) {\n      for (var i = 0; i < widthProperty.keyframes.length; i += 1) {\n        var kfw = widthProperty.keyframes[i].s;\n\n        if (kfw > width) {\n          width = kfw;\n        }\n      }\n\n      width *= widthProperty.mult;\n    } else {\n      width = widthProperty.v * widthProperty.mult;\n    }\n\n    boundingBox.x -= width;\n    boundingBox.xMax += width;\n    boundingBox.y -= width;\n    boundingBox.yMax += width;\n  };\n\n  HShapeElement.prototype.currentBoxContains = function (box) {\n    return this.currentBBox.x <= box.x && this.currentBBox.y <= box.y && this.currentBBox.width + this.currentBBox.x >= box.x + box.width && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\n  };\n\n  HShapeElement.prototype.renderInnerContent = function () {\n    this._renderShapeFrame();\n\n    if (!this.hidden && (this._isFirstFrame || this._mdf)) {\n      var tempBoundingBox = this.tempBoundingBox;\n      var max = 999999;\n      tempBoundingBox.x = max;\n      tempBoundingBox.xMax = -max;\n      tempBoundingBox.y = max;\n      tempBoundingBox.yMax = -max;\n      this.calculateBoundingBox(this.itemsData, tempBoundingBox);\n      tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n      tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\n\n      if (this.currentBoxContains(tempBoundingBox)) {\n        return;\n      }\n\n      var changed = false;\n\n      if (this.currentBBox.w !== tempBoundingBox.width) {\n        this.currentBBox.w = tempBoundingBox.width;\n        this.shapeCont.setAttribute('width', tempBoundingBox.width);\n        changed = true;\n      }\n\n      if (this.currentBBox.h !== tempBoundingBox.height) {\n        this.currentBBox.h = tempBoundingBox.height;\n        this.shapeCont.setAttribute('height', tempBoundingBox.height);\n        changed = true;\n      }\n\n      if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\n        this.currentBBox.w = tempBoundingBox.width;\n        this.currentBBox.h = tempBoundingBox.height;\n        this.currentBBox.x = tempBoundingBox.x;\n        this.currentBBox.y = tempBoundingBox.y;\n        this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n        var shapeStyle = this.shapeCont.style;\n        var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n        shapeStyle.transform = shapeTransform;\n        shapeStyle.webkitTransform = shapeTransform;\n      }\n    }\n  };\n\n  function HTextElement(data, globalData, comp) {\n    this.textSpans = [];\n    this.textPaths = [];\n    this.currentBBox = {\n      x: 999999,\n      y: -999999,\n      h: 0,\n      w: 0\n    };\n    this.renderType = 'svg';\n    this.isMasked = false;\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\n  HTextElement.prototype.createContent = function () {\n    this.isMasked = this.checkMasks();\n\n    if (this.isMasked) {\n      this.renderType = 'svg';\n      this.compW = this.comp.data.w;\n      this.compH = this.comp.data.h;\n      this.svgElement.setAttribute('width', this.compW);\n      this.svgElement.setAttribute('height', this.compH);\n      var g = createNS('g');\n      this.maskedElement.appendChild(g);\n      this.innerElem = g;\n    } else {\n      this.renderType = 'html';\n      this.innerElem = this.layerElement;\n    }\n\n    this.checkParenting();\n  };\n\n  HTextElement.prototype.buildNewText = function () {\n    var documentData = this.textProperty.currentData;\n    this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n    var innerElemStyle = this.innerElem.style;\n    var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\n    innerElemStyle.fill = textColor;\n    innerElemStyle.color = textColor;\n\n    if (documentData.sc) {\n      innerElemStyle.stroke = this.buildColor(documentData.sc);\n      innerElemStyle.strokeWidth = documentData.sw + 'px';\n    }\n\n    var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n    if (!this.globalData.fontManager.chars) {\n      innerElemStyle.fontSize = documentData.finalSize + 'px';\n      innerElemStyle.lineHeight = documentData.finalSize + 'px';\n\n      if (fontData.fClass) {\n        this.innerElem.className = fontData.fClass;\n      } else {\n        innerElemStyle.fontFamily = fontData.fFamily;\n        var fWeight = documentData.fWeight;\n        var fStyle = documentData.fStyle;\n        innerElemStyle.fontStyle = fStyle;\n        innerElemStyle.fontWeight = fWeight;\n      }\n    }\n\n    var i;\n    var len;\n    var letters = documentData.l;\n    len = letters.length;\n    var tSpan;\n    var tParent;\n    var tCont;\n    var matrixHelper = this.mHelper;\n    var shapes;\n    var shapeStr = '';\n    var cnt = 0;\n\n    for (i = 0; i < len; i += 1) {\n      if (this.globalData.fontManager.chars) {\n        if (!this.textPaths[cnt]) {\n          tSpan = createNS('path');\n          tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\n          tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\n          tSpan.setAttribute('stroke-miterlimit', '4');\n        } else {\n          tSpan = this.textPaths[cnt];\n        }\n\n        if (!this.isMasked) {\n          if (this.textSpans[cnt]) {\n            tParent = this.textSpans[cnt];\n            tCont = tParent.children[0];\n          } else {\n            tParent = createTag('div');\n            tParent.style.lineHeight = 0;\n            tCont = createNS('svg');\n            tCont.appendChild(tSpan);\n            styleDiv(tParent);\n          }\n        }\n      } else if (!this.isMasked) {\n        if (this.textSpans[cnt]) {\n          tParent = this.textSpans[cnt];\n          tSpan = this.textPaths[cnt];\n        } else {\n          tParent = createTag('span');\n          styleDiv(tParent);\n          tSpan = createTag('span');\n          styleDiv(tSpan);\n          tParent.appendChild(tSpan);\n        }\n      } else {\n        tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\n      } // tSpan.setAttribute('visibility', 'hidden');\n\n\n      if (this.globalData.fontManager.chars) {\n        var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n        var shapeData;\n\n        if (charData) {\n          shapeData = charData.data;\n        } else {\n          shapeData = null;\n        }\n\n        matrixHelper.reset();\n\n        if (shapeData && shapeData.shapes && shapeData.shapes.length) {\n          shapes = shapeData.shapes[0].it;\n          matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n          shapeStr = this.createPathShape(matrixHelper, shapes);\n          tSpan.setAttribute('d', shapeStr);\n        }\n\n        if (!this.isMasked) {\n          this.innerElem.appendChild(tParent);\n\n          if (shapeData && shapeData.shapes) {\n            // document.body.appendChild is needed to get exact measure of shape\n            document.body.appendChild(tCont);\n            var boundingBox = tCont.getBBox();\n            tCont.setAttribute('width', boundingBox.width + 2);\n            tCont.setAttribute('height', boundingBox.height + 2);\n            tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\n            var tContStyle = tCont.style;\n            var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\n            tContStyle.transform = tContTranslation;\n            tContStyle.webkitTransform = tContTranslation;\n            letters[i].yOffset = boundingBox.y - 1;\n          } else {\n            tCont.setAttribute('width', 1);\n            tCont.setAttribute('height', 1);\n          }\n\n          tParent.appendChild(tCont);\n        } else {\n          this.innerElem.appendChild(tSpan);\n        }\n      } else {\n        tSpan.textContent = letters[i].val;\n        tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n\n        if (!this.isMasked) {\n          this.innerElem.appendChild(tParent); //\n\n          var tStyle = tSpan.style;\n          var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\n          tStyle.transform = tSpanTranslation;\n          tStyle.webkitTransform = tSpanTranslation;\n        } else {\n          this.innerElem.appendChild(tSpan);\n        }\n      } //\n\n\n      if (!this.isMasked) {\n        this.textSpans[cnt] = tParent;\n      } else {\n        this.textSpans[cnt] = tSpan;\n      }\n\n      this.textSpans[cnt].style.display = 'block';\n      this.textPaths[cnt] = tSpan;\n      cnt += 1;\n    }\n\n    while (cnt < this.textSpans.length) {\n      this.textSpans[cnt].style.display = 'none';\n      cnt += 1;\n    }\n  };\n\n  HTextElement.prototype.renderInnerContent = function () {\n    var svgStyle;\n\n    if (this.data.singleShape) {\n      if (!this._isFirstFrame && !this.lettersChangedFlag) {\n        return;\n      }\n\n      if (this.isMasked && this.finalTransform._matMdf) {\n        // Todo Benchmark if using this is better than getBBox\n        this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\n        svgStyle = this.svgElement.style;\n        var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\n        svgStyle.transform = translation;\n        svgStyle.webkitTransform = translation;\n      }\n    }\n\n    this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n    if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\n      return;\n    }\n\n    var i;\n    var len;\n    var count = 0;\n    var renderedLetters = this.textAnimator.renderedLetters;\n    var letters = this.textProperty.currentData.l;\n    len = letters.length;\n    var renderedLetter;\n    var textSpan;\n    var textPath;\n\n    for (i = 0; i < len; i += 1) {\n      if (letters[i].n) {\n        count += 1;\n      } else {\n        textSpan = this.textSpans[i];\n        textPath = this.textPaths[i];\n        renderedLetter = renderedLetters[count];\n        count += 1;\n\n        if (renderedLetter._mdf.m) {\n          if (!this.isMasked) {\n            textSpan.style.webkitTransform = renderedLetter.m;\n            textSpan.style.transform = renderedLetter.m;\n          } else {\n            textSpan.setAttribute('transform', renderedLetter.m);\n          }\n        } /// /textSpan.setAttribute('opacity',renderedLetter.o);\n\n\n        textSpan.style.opacity = renderedLetter.o;\n\n        if (renderedLetter.sw && renderedLetter._mdf.sw) {\n          textPath.setAttribute('stroke-width', renderedLetter.sw);\n        }\n\n        if (renderedLetter.sc && renderedLetter._mdf.sc) {\n          textPath.setAttribute('stroke', renderedLetter.sc);\n        }\n\n        if (renderedLetter.fc && renderedLetter._mdf.fc) {\n          textPath.setAttribute('fill', renderedLetter.fc);\n          textPath.style.color = renderedLetter.fc;\n        }\n      }\n    }\n\n    if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\n      var boundingBox = this.innerElem.getBBox();\n\n      if (this.currentBBox.w !== boundingBox.width) {\n        this.currentBBox.w = boundingBox.width;\n        this.svgElement.setAttribute('width', boundingBox.width);\n      }\n\n      if (this.currentBBox.h !== boundingBox.height) {\n        this.currentBBox.h = boundingBox.height;\n        this.svgElement.setAttribute('height', boundingBox.height);\n      }\n\n      var margin = 1;\n\n      if (this.currentBBox.w !== boundingBox.width + margin * 2 || this.currentBBox.h !== boundingBox.height + margin * 2 || this.currentBBox.x !== boundingBox.x - margin || this.currentBBox.y !== boundingBox.y - margin) {\n        this.currentBBox.w = boundingBox.width + margin * 2;\n        this.currentBBox.h = boundingBox.height + margin * 2;\n        this.currentBBox.x = boundingBox.x - margin;\n        this.currentBBox.y = boundingBox.y - margin;\n        this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n        svgStyle = this.svgElement.style;\n        var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n        svgStyle.transform = svgTransform;\n        svgStyle.webkitTransform = svgTransform;\n      }\n    }\n  };\n\n  function HCameraElement(data, globalData, comp) {\n    this.initFrame();\n    this.initBaseData(data, globalData, comp);\n    this.initHierarchy();\n    var getProp = PropertyFactory.getProp;\n    this.pe = getProp(this, data.pe, 0, 0, this);\n\n    if (data.ks.p.s) {\n      this.px = getProp(this, data.ks.p.x, 1, 0, this);\n      this.py = getProp(this, data.ks.p.y, 1, 0, this);\n      this.pz = getProp(this, data.ks.p.z, 1, 0, this);\n    } else {\n      this.p = getProp(this, data.ks.p, 1, 0, this);\n    }\n\n    if (data.ks.a) {\n      this.a = getProp(this, data.ks.a, 1, 0, this);\n    }\n\n    if (data.ks.or.k.length && data.ks.or.k[0].to) {\n      var i;\n      var len = data.ks.or.k.length;\n\n      for (i = 0; i < len; i += 1) {\n        data.ks.or.k[i].to = null;\n        data.ks.or.k[i].ti = null;\n      }\n    }\n\n    this.or = getProp(this, data.ks.or, 1, degToRads, this);\n    this.or.sh = true;\n    this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\n    this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\n    this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\n    this.mat = new Matrix();\n    this._prevMat = new Matrix();\n    this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n    this.finalTransform = {\n      mProp: this\n    };\n  }\n\n  extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n  HCameraElement.prototype.setup = function () {\n    var i;\n    var len = this.comp.threeDElements.length;\n    var comp;\n    var perspectiveStyle;\n    var containerStyle;\n\n    for (i = 0; i < len; i += 1) {\n      // [perspectiveElem,container]\n      comp = this.comp.threeDElements[i];\n\n      if (comp.type === '3d') {\n        perspectiveStyle = comp.perspectiveElem.style;\n        containerStyle = comp.container.style;\n        var perspective = this.pe.v + 'px';\n        var origin = '0px 0px 0px';\n        var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n        perspectiveStyle.perspective = perspective;\n        perspectiveStyle.webkitPerspective = perspective;\n        containerStyle.transformOrigin = origin;\n        containerStyle.mozTransformOrigin = origin;\n        containerStyle.webkitTransformOrigin = origin;\n        perspectiveStyle.transform = matrix;\n        perspectiveStyle.webkitTransform = matrix;\n      }\n    }\n  };\n\n  HCameraElement.prototype.createElements = function () {};\n\n  HCameraElement.prototype.hide = function () {};\n\n  HCameraElement.prototype.renderFrame = function () {\n    var _mdf = this._isFirstFrame;\n    var i;\n    var len;\n\n    if (this.hierarchy) {\n      len = this.hierarchy.length;\n\n      for (i = 0; i < len; i += 1) {\n        _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\n      }\n    }\n\n    if (_mdf || this.pe._mdf || this.p && this.p._mdf || this.px && (this.px._mdf || this.py._mdf || this.pz._mdf) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || this.a && this.a._mdf) {\n      this.mat.reset();\n\n      if (this.hierarchy) {\n        len = this.hierarchy.length - 1;\n\n        for (i = len; i >= 0; i -= 1) {\n          var mTransf = this.hierarchy[i].finalTransform.mProp;\n          this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n          this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n          this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n          this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n          this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n        }\n      }\n\n      if (this.p) {\n        this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\n      } else {\n        this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\n      }\n\n      if (this.a) {\n        var diffVector;\n\n        if (this.p) {\n          diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\n        } else {\n          diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\n        }\n\n        var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\n        var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n        var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n        var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n        var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n        this.mat.rotateY(mRotationY).rotateX(-mRotationX);\n      }\n\n      this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\n      this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\n      this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\n      this.mat.translate(0, 0, this.pe.v);\n      var hasMatrixChanged = !this._prevMat.equals(this.mat);\n\n      if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\n        len = this.comp.threeDElements.length;\n        var comp;\n        var perspectiveStyle;\n        var containerStyle;\n\n        for (i = 0; i < len; i += 1) {\n          comp = this.comp.threeDElements[i];\n\n          if (comp.type === '3d') {\n            if (hasMatrixChanged) {\n              var matValue = this.mat.toCSS();\n              containerStyle = comp.container.style;\n              containerStyle.transform = matValue;\n              containerStyle.webkitTransform = matValue;\n            }\n\n            if (this.pe._mdf) {\n              perspectiveStyle = comp.perspectiveElem.style;\n              perspectiveStyle.perspective = this.pe.v + 'px';\n              perspectiveStyle.webkitPerspective = this.pe.v + 'px';\n            }\n          }\n        }\n\n        this.mat.clone(this._prevMat);\n      }\n    }\n\n    this._isFirstFrame = false;\n  };\n\n  HCameraElement.prototype.prepareFrame = function (num) {\n    this.prepareProperties(num, true);\n  };\n\n  HCameraElement.prototype.destroy = function () {};\n\n  HCameraElement.prototype.getBaseElement = function () {\n    return null;\n  };\n\n  function HImageElement(data, globalData, comp) {\n    this.assetData = globalData.getAssetData(data.refId);\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\n  HImageElement.prototype.createContent = function () {\n    var assetPath = this.globalData.getAssetsPath(this.assetData);\n    var img = new Image();\n\n    if (this.data.hasMask) {\n      this.imageElem = createNS('image');\n      this.imageElem.setAttribute('width', this.assetData.w + 'px');\n      this.imageElem.setAttribute('height', this.assetData.h + 'px');\n      this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n      this.layerElement.appendChild(this.imageElem);\n      this.baseElement.setAttribute('width', this.assetData.w);\n      this.baseElement.setAttribute('height', this.assetData.h);\n    } else {\n      this.layerElement.appendChild(img);\n    }\n\n    img.crossOrigin = 'anonymous';\n    img.src = assetPath;\n\n    if (this.data.ln) {\n      this.baseElement.setAttribute('id', this.data.ln);\n    }\n  };\n\n  function HybridRendererBase(animationItem, config) {\n    this.animationItem = animationItem;\n    this.layers = null;\n    this.renderedFrame = -1;\n    this.renderConfig = {\n      className: config && config.className || '',\n      imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n      hideOnTransparent: !(config && config.hideOnTransparent === false),\n      filterSize: {\n        width: config && config.filterSize && config.filterSize.width || '400%',\n        height: config && config.filterSize && config.filterSize.height || '400%',\n        x: config && config.filterSize && config.filterSize.x || '-100%',\n        y: config && config.filterSize && config.filterSize.y || '-100%'\n      }\n    };\n    this.globalData = {\n      _mdf: false,\n      frameNum: -1,\n      renderConfig: this.renderConfig\n    };\n    this.pendingElements = [];\n    this.elements = [];\n    this.threeDElements = [];\n    this.destroyed = false;\n    this.camera = null;\n    this.supports3d = true;\n    this.rendererType = 'html';\n  }\n\n  extendPrototype([BaseRenderer], HybridRendererBase);\n  HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n  HybridRendererBase.prototype.checkPendingElements = function () {\n    while (this.pendingElements.length) {\n      var element = this.pendingElements.pop();\n      element.checkParenting();\n    }\n  };\n\n  HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\n    var newDOMElement = element.getBaseElement();\n\n    if (!newDOMElement) {\n      return;\n    }\n\n    var layer = this.layers[pos];\n\n    if (!layer.ddd || !this.supports3d) {\n      if (this.threeDElements) {\n        this.addTo3dContainer(newDOMElement, pos);\n      } else {\n        var i = 0;\n        var nextDOMElement;\n        var nextLayer;\n        var tmpDOMElement;\n\n        while (i < pos) {\n          if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\n            nextLayer = this.elements[i];\n            tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n            nextDOMElement = tmpDOMElement || nextDOMElement;\n          }\n\n          i += 1;\n        }\n\n        if (nextDOMElement) {\n          if (!layer.ddd || !this.supports3d) {\n            this.layerElement.insertBefore(newDOMElement, nextDOMElement);\n          }\n        } else if (!layer.ddd || !this.supports3d) {\n          this.layerElement.appendChild(newDOMElement);\n        }\n      }\n    } else {\n      this.addTo3dContainer(newDOMElement, pos);\n    }\n  };\n\n  HybridRendererBase.prototype.createShape = function (data) {\n    if (!this.supports3d) {\n      return new SVGShapeElement(data, this.globalData, this);\n    }\n\n    return new HShapeElement(data, this.globalData, this);\n  };\n\n  HybridRendererBase.prototype.createText = function (data) {\n    if (!this.supports3d) {\n      return new SVGTextLottieElement(data, this.globalData, this);\n    }\n\n    return new HTextElement(data, this.globalData, this);\n  };\n\n  HybridRendererBase.prototype.createCamera = function (data) {\n    this.camera = new HCameraElement(data, this.globalData, this);\n    return this.camera;\n  };\n\n  HybridRendererBase.prototype.createImage = function (data) {\n    if (!this.supports3d) {\n      return new IImageElement(data, this.globalData, this);\n    }\n\n    return new HImageElement(data, this.globalData, this);\n  };\n\n  HybridRendererBase.prototype.createSolid = function (data) {\n    if (!this.supports3d) {\n      return new ISolidElement(data, this.globalData, this);\n    }\n\n    return new HSolidElement(data, this.globalData, this);\n  };\n\n  HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n  HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\n    var i = 0;\n    var len = this.threeDElements.length;\n\n    while (i < len) {\n      if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\n        return this.threeDElements[i].perspectiveElem;\n      }\n\n      i += 1;\n    }\n\n    return null;\n  };\n\n  HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\n    var perspectiveElem = createTag('div');\n    var style;\n    var containerStyle;\n    styleDiv(perspectiveElem);\n    var container = createTag('div');\n    styleDiv(container);\n\n    if (type === '3d') {\n      style = perspectiveElem.style;\n      style.width = this.globalData.compSize.w + 'px';\n      style.height = this.globalData.compSize.h + 'px';\n      var center = '50% 50%';\n      style.webkitTransformOrigin = center;\n      style.mozTransformOrigin = center;\n      style.transformOrigin = center;\n      containerStyle = container.style;\n      var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n      containerStyle.transform = matrix;\n      containerStyle.webkitTransform = matrix;\n    }\n\n    perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\n\n    var threeDContainerData = {\n      container: container,\n      perspectiveElem: perspectiveElem,\n      startPos: pos,\n      endPos: pos,\n      type: type\n    };\n    this.threeDElements.push(threeDContainerData);\n    return threeDContainerData;\n  };\n\n  HybridRendererBase.prototype.build3dContainers = function () {\n    var i;\n    var len = this.layers.length;\n    var lastThreeDContainerData;\n    var currentContainer = '';\n\n    for (i = 0; i < len; i += 1) {\n      if (this.layers[i].ddd && this.layers[i].ty !== 3) {\n        if (currentContainer !== '3d') {\n          currentContainer = '3d';\n          lastThreeDContainerData = this.createThreeDContainer(i, '3d');\n        }\n\n        lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n      } else {\n        if (currentContainer !== '2d') {\n          currentContainer = '2d';\n          lastThreeDContainerData = this.createThreeDContainer(i, '2d');\n        }\n\n        lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n      }\n    }\n\n    len = this.threeDElements.length;\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\n    }\n  };\n\n  HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\n    var i = 0;\n    var len = this.threeDElements.length;\n\n    while (i < len) {\n      if (pos <= this.threeDElements[i].endPos) {\n        var j = this.threeDElements[i].startPos;\n        var nextElement;\n\n        while (j < pos) {\n          if (this.elements[j] && this.elements[j].getBaseElement) {\n            nextElement = this.elements[j].getBaseElement();\n          }\n\n          j += 1;\n        }\n\n        if (nextElement) {\n          this.threeDElements[i].container.insertBefore(elem, nextElement);\n        } else {\n          this.threeDElements[i].container.appendChild(elem);\n        }\n\n        break;\n      }\n\n      i += 1;\n    }\n  };\n\n  HybridRendererBase.prototype.configAnimation = function (animData) {\n    var resizerElem = createTag('div');\n    var wrapper = this.animationItem.wrapper;\n    var style = resizerElem.style;\n    style.width = animData.w + 'px';\n    style.height = animData.h + 'px';\n    this.resizerElem = resizerElem;\n    styleDiv(resizerElem);\n    style.transformStyle = 'flat';\n    style.mozTransformStyle = 'flat';\n    style.webkitTransformStyle = 'flat';\n\n    if (this.renderConfig.className) {\n      resizerElem.setAttribute('class', this.renderConfig.className);\n    }\n\n    wrapper.appendChild(resizerElem);\n    style.overflow = 'hidden';\n    var svg = createNS('svg');\n    svg.setAttribute('width', '1');\n    svg.setAttribute('height', '1');\n    styleDiv(svg);\n    this.resizerElem.appendChild(svg);\n    var defs = createNS('defs');\n    svg.appendChild(defs);\n    this.data = animData; // Mask animation\n\n    this.setupGlobalData(animData, svg);\n    this.globalData.defs = defs;\n    this.layers = animData.layers;\n    this.layerElement = this.resizerElem;\n    this.build3dContainers();\n    this.updateContainerSize();\n  };\n\n  HybridRendererBase.prototype.destroy = function () {\n    if (this.animationItem.wrapper) {\n      this.animationItem.wrapper.innerText = '';\n    }\n\n    this.animationItem.container = null;\n    this.globalData.defs = null;\n    var i;\n    var len = this.layers ? this.layers.length : 0;\n\n    for (i = 0; i < len; i += 1) {\n      this.elements[i].destroy();\n    }\n\n    this.elements.length = 0;\n    this.destroyed = true;\n    this.animationItem = null;\n  };\n\n  HybridRendererBase.prototype.updateContainerSize = function () {\n    var elementWidth = this.animationItem.wrapper.offsetWidth;\n    var elementHeight = this.animationItem.wrapper.offsetHeight;\n    var elementRel = elementWidth / elementHeight;\n    var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\n    var sx;\n    var sy;\n    var tx;\n    var ty;\n\n    if (animationRel > elementRel) {\n      sx = elementWidth / this.globalData.compSize.w;\n      sy = elementWidth / this.globalData.compSize.w;\n      tx = 0;\n      ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\n    } else {\n      sx = elementHeight / this.globalData.compSize.h;\n      sy = elementHeight / this.globalData.compSize.h;\n      tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\n      ty = 0;\n    }\n\n    var style = this.resizerElem.style;\n    style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\n    style.transform = style.webkitTransform;\n  };\n\n  HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n  HybridRendererBase.prototype.hide = function () {\n    this.resizerElem.style.display = 'none';\n  };\n\n  HybridRendererBase.prototype.show = function () {\n    this.resizerElem.style.display = 'block';\n  };\n\n  HybridRendererBase.prototype.initItems = function () {\n    this.buildAllItems();\n\n    if (this.camera) {\n      this.camera.setup();\n    } else {\n      var cWidth = this.globalData.compSize.w;\n      var cHeight = this.globalData.compSize.h;\n      var i;\n      var len = this.threeDElements.length;\n\n      for (i = 0; i < len; i += 1) {\n        var style = this.threeDElements[i].perspectiveElem.style;\n        style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\n        style.perspective = style.webkitPerspective;\n      }\n    }\n  };\n\n  HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\n    var i;\n    var len = assets.length;\n    var floatingContainer = createTag('div');\n\n    for (i = 0; i < len; i += 1) {\n      if (assets[i].xt) {\n        var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\n        comp.initExpressions();\n        this.globalData.projectInterface.registerComposition(comp);\n      }\n    }\n  };\n\n  function HCompElement(data, globalData, comp) {\n    this.layers = data.layers;\n    this.supports3d = !data.hasMask;\n    this.completeLayers = false;\n    this.pendingElements = [];\n    this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n    this.initElement(data, globalData, comp);\n    this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n      _placeholder: true\n    };\n  }\n\n  extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\n  HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\n  HCompElement.prototype.createContainerElements = function () {\n    this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\n\n    if (this.data.hasMask) {\n      this.svgElement.setAttribute('width', this.data.w);\n      this.svgElement.setAttribute('height', this.data.h);\n      this.transformedElement = this.baseElement;\n    } else {\n      this.transformedElement = this.layerElement;\n    }\n  };\n\n  HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n    var j = 0;\n    var nextElement;\n\n    while (j < pos) {\n      if (this.elements[j] && this.elements[j].getBaseElement) {\n        nextElement = this.elements[j].getBaseElement();\n      }\n\n      j += 1;\n    }\n\n    if (nextElement) {\n      this.layerElement.insertBefore(elem, nextElement);\n    } else {\n      this.layerElement.appendChild(elem);\n    }\n  };\n\n  HCompElement.prototype.createComp = function (data) {\n    if (!this.supports3d) {\n      return new SVGCompElement(data, this.globalData, this);\n    }\n\n    return new HCompElement(data, this.globalData, this);\n  };\n\n  function HybridRenderer(animationItem, config) {\n    this.animationItem = animationItem;\n    this.layers = null;\n    this.renderedFrame = -1;\n    this.renderConfig = {\n      className: config && config.className || '',\n      imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n      hideOnTransparent: !(config && config.hideOnTransparent === false),\n      filterSize: {\n        width: config && config.filterSize && config.filterSize.width || '400%',\n        height: config && config.filterSize && config.filterSize.height || '400%',\n        x: config && config.filterSize && config.filterSize.x || '-100%',\n        y: config && config.filterSize && config.filterSize.y || '-100%'\n      }\n    };\n    this.globalData = {\n      _mdf: false,\n      frameNum: -1,\n      renderConfig: this.renderConfig\n    };\n    this.pendingElements = [];\n    this.elements = [];\n    this.threeDElements = [];\n    this.destroyed = false;\n    this.camera = null;\n    this.supports3d = true;\n    this.rendererType = 'html';\n  }\n\n  extendPrototype([HybridRendererBase], HybridRenderer);\n\n  HybridRenderer.prototype.createComp = function (data) {\n    if (!this.supports3d) {\n      return new SVGCompElement(data, this.globalData, this);\n    }\n\n    return new HCompElement(data, this.globalData, this);\n  };\n\n  var Expressions = function () {\n    var ob = {};\n    ob.initExpressions = initExpressions;\n\n    function initExpressions(animation) {\n      var stackCount = 0;\n      var registers = [];\n\n      function pushExpression() {\n        stackCount += 1;\n      }\n\n      function popExpression() {\n        stackCount -= 1;\n\n        if (stackCount === 0) {\n          releaseInstances();\n        }\n      }\n\n      function registerExpressionProperty(expression) {\n        if (registers.indexOf(expression) === -1) {\n          registers.push(expression);\n        }\n      }\n\n      function releaseInstances() {\n        var i;\n        var len = registers.length;\n\n        for (i = 0; i < len; i += 1) {\n          registers[i].release();\n        }\n\n        registers.length = 0;\n      }\n\n      animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n      animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n      animation.renderer.globalData.pushExpression = pushExpression;\n      animation.renderer.globalData.popExpression = popExpression;\n      animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n    }\n\n    return ob;\n  }();\n\n  function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\n\n  /* eslint-disable */\n\n  /*\r\n   Copyright 2014 David Bau.\r\n\r\n   Permission is hereby granted, free of charge, to any person obtaining\r\n   a copy of this software and associated documentation files (the\r\n   \"Software\"), to deal in the Software without restriction, including\r\n   without limitation the rights to use, copy, modify, merge, publish,\r\n   distribute, sublicense, and/or sell copies of the Software, and to\r\n   permit persons to whom the Software is furnished to do so, subject to\r\n   the following conditions:\r\n\r\n   The above copyright notice and this permission notice shall be\r\n   included in all copies or substantial portions of the Software.\r\n\r\n   THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n   IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n   CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n   TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n   SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n   */\n  function seedRandom(pool, math) {\n    //\n    // The following constants are related to IEEE 754 limits.\n    //\n    var global = this,\n        width = 256,\n        // each RC4 output is 0 <= x < 256\n    chunks = 6,\n        // at least six RC4 outputs for each double\n    digits = 52,\n        // there are 52 significant digits in a double\n    rngname = 'random',\n        // rngname: name for Math.random and Math.seedrandom\n    startdenom = math.pow(width, chunks),\n        significance = math.pow(2, digits),\n        overflow = significance * 2,\n        mask = width - 1,\n        nodecrypto; // node.js crypto module, initialized at the bottom.\n    //\n    // seedrandom()\n    // This is the seedrandom function described above.\n    //\n\n    function seedrandom(seed, options, callback) {\n      var key = [];\n      options = options === true ? {\n        entropy: true\n      } : options || {}; // Flatten the seed string or build one from local entropy if needed.\n\n      var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\n\n      var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\n      // randomness in every bit of the mantissa of the IEEE 754 value.\n\n      var prng = function prng() {\n        var n = arc4.g(chunks),\n            // Start with a numerator n < 2 ^ 48\n        d = startdenom,\n            //   and denominator d = 2 ^ 48.\n        x = 0; //   and no 'extra last byte'.\n\n        while (n < significance) {\n          // Fill up all significant digits by\n          n = (n + x) * width; //   shifting numerator and\n\n          d *= width; //   denominator and generating a\n\n          x = arc4.g(1); //   new least-significant-byte.\n        }\n\n        while (n >= overflow) {\n          // To avoid rounding up, before adding\n          n /= 2; //   last byte, shift everything\n\n          d /= 2; //   right using integer math until\n\n          x >>>= 1; //   we have exactly the desired bits.\n        }\n\n        return (n + x) / d; // Form the number within [0, 1).\n      };\n\n      prng.int32 = function () {\n        return arc4.g(4) | 0;\n      };\n\n      prng.quick = function () {\n        return arc4.g(4) / 0x100000000;\n      };\n\n      prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\n\n      mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\n\n      return (options.pass || callback || function (prng, seed, is_math_call, state) {\n        if (state) {\n          // Load the arc4 state from the given state if it has an S array.\n          if (state.S) {\n            copy(state, arc4);\n          } // Only provide the .state method if requested via options.state.\n\n\n          prng.state = function () {\n            return copy(arc4, {});\n          };\n        } // If called as a method of Math (Math.seedrandom()), mutate\n        // Math.random because that is how seedrandom.js has worked since v1.0.\n\n\n        if (is_math_call) {\n          math[rngname] = prng;\n          return seed;\n        } // Otherwise, it is a newer calling convention, so return the\n        // prng directly.\n        else return prng;\n      })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\n    }\n\n    math['seed' + rngname] = seedrandom; //\n    // ARC4\n    //\n    // An ARC4 implementation.  The constructor takes a key in the form of\n    // an array of at most (width) integers that should be 0 <= x < (width).\n    //\n    // The g(count) method returns a pseudorandom integer that concatenates\n    // the next (count) outputs from ARC4.  Its return value is a number x\n    // that is in the range 0 <= x < (width ^ count).\n    //\n\n    function ARC4(key) {\n      var t,\n          keylen = key.length,\n          me = this,\n          i = 0,\n          j = me.i = me.j = 0,\n          s = me.S = []; // The empty key [] is treated as [0].\n\n      if (!keylen) {\n        key = [keylen++];\n      } // Set up S using the standard key scheduling algorithm.\n\n\n      while (i < width) {\n        s[i] = i++;\n      }\n\n      for (i = 0; i < width; i++) {\n        s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n        s[j] = t;\n      } // The \"g\" method returns the next (count) outputs as one number.\n\n\n      me.g = function (count) {\n        // Using instance members instead of closure state nearly doubles speed.\n        var t,\n            r = 0,\n            i = me.i,\n            j = me.j,\n            s = me.S;\n\n        while (count--) {\n          t = s[i = mask & i + 1];\n          r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n        }\n\n        me.i = i;\n        me.j = j;\n        return r; // For robust unpredictability, the function call below automatically\n        // discards an initial batch of values.  This is called RC4-drop[256].\n        // See http://google.com/search?q=rsa+fluhrer+response&btnI\n      };\n    } //\n    // copy()\n    // Copies internal state of ARC4 to or from a plain object.\n    //\n\n\n    function copy(f, t) {\n      t.i = f.i;\n      t.j = f.j;\n      t.S = f.S.slice();\n      return t;\n    } //\n    // flatten()\n    // Converts an object tree to nested arrays of strings.\n    //\n\n\n    function flatten(obj, depth) {\n      var result = [],\n          typ = _typeof$1(obj),\n          prop;\n\n      if (depth && typ == 'object') {\n        for (prop in obj) {\n          try {\n            result.push(flatten(obj[prop], depth - 1));\n          } catch (e) {}\n        }\n      }\n\n      return result.length ? result : typ == 'string' ? obj : obj + '\\0';\n    } //\n    // mixkey()\n    // Mixes a string seed into a key that is an array of integers, and\n    // returns a shortened string seed that is equivalent to the result key.\n    //\n\n\n    function mixkey(seed, key) {\n      var stringseed = seed + '',\n          smear,\n          j = 0;\n\n      while (j < stringseed.length) {\n        key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n      }\n\n      return tostring(key);\n    } //\n    // autoseed()\n    // Returns an object for autoseeding, using window.crypto and Node crypto\n    // module if available.\n    //\n\n\n    function autoseed() {\n      try {\n        if (nodecrypto) {\n          return tostring(nodecrypto.randomBytes(width));\n        }\n\n        var out = new Uint8Array(width);\n        (global.crypto || global.msCrypto).getRandomValues(out);\n        return tostring(out);\n      } catch (e) {\n        var browser = global.navigator,\n            plugins = browser && browser.plugins;\n        return [+new Date(), global, plugins, global.screen, tostring(pool)];\n      }\n    } //\n    // tostring()\n    // Converts an array of charcodes to a string\n    //\n\n\n    function tostring(a) {\n      return String.fromCharCode.apply(0, a);\n    } //\n    // When seedrandom.js is loaded, we immediately mix a few bits\n    // from the built-in RNG into the entropy pool.  Because we do\n    // not want to interfere with deterministic PRNG state later,\n    // seedrandom will not call math.random on its own again after\n    // initialization.\n    //\n\n\n    mixkey(math.random(), pool); //\n    // Nodejs and AMD support: export the implementation as a module using\n    // either convention.\n    //\n    // End anonymous scope, and pass initial values.\n  }\n\n  ;\n\n  function initialize$2(BMMath) {\n    seedRandom([], BMMath);\n  }\n\n  var propTypes = {\n    SHAPE: 'shape'\n  };\n\n  function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n  var ExpressionManager = function () {\n    'use strict';\n\n    var ob = {};\n    var Math = BMMath;\n    var window = null;\n    var document = null;\n    var XMLHttpRequest = null;\n    var fetch = null;\n    var frames = null;\n    initialize$2(BMMath);\n\n    function $bm_isInstanceOfArray(arr) {\n      return arr.constructor === Array || arr.constructor === Float32Array;\n    }\n\n    function isNumerable(tOfV, v) {\n      return tOfV === 'number' || tOfV === 'boolean' || tOfV === 'string' || v instanceof Number;\n    }\n\n    function $bm_neg(a) {\n      var tOfA = _typeof(a);\n\n      if (tOfA === 'number' || tOfA === 'boolean' || a instanceof Number) {\n        return -a;\n      }\n\n      if ($bm_isInstanceOfArray(a)) {\n        var i;\n        var lenA = a.length;\n        var retArr = [];\n\n        for (i = 0; i < lenA; i += 1) {\n          retArr[i] = -a[i];\n        }\n\n        return retArr;\n      }\n\n      if (a.propType) {\n        return a.v;\n      }\n\n      return -a;\n    }\n\n    var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\n    var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\n    var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\n\n    function sum(a, b) {\n      var tOfA = _typeof(a);\n\n      var tOfB = _typeof(b);\n\n      if (tOfA === 'string' || tOfB === 'string') {\n        return a + b;\n      }\n\n      if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n        return a + b;\n      }\n\n      if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n        a = a.slice(0);\n        a[0] += b;\n        return a;\n      }\n\n      if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n        b = b.slice(0);\n        b[0] = a + b[0];\n        return b;\n      }\n\n      if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n        var i = 0;\n        var lenA = a.length;\n        var lenB = b.length;\n        var retArr = [];\n\n        while (i < lenA || i < lenB) {\n          if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n            retArr[i] = a[i] + b[i];\n          } else {\n            retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n          }\n\n          i += 1;\n        }\n\n        return retArr;\n      }\n\n      return 0;\n    }\n\n    var add = sum;\n\n    function sub(a, b) {\n      var tOfA = _typeof(a);\n\n      var tOfB = _typeof(b);\n\n      if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n        if (tOfA === 'string') {\n          a = parseInt(a, 10);\n        }\n\n        if (tOfB === 'string') {\n          b = parseInt(b, 10);\n        }\n\n        return a - b;\n      }\n\n      if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n        a = a.slice(0);\n        a[0] -= b;\n        return a;\n      }\n\n      if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n        b = b.slice(0);\n        b[0] = a - b[0];\n        return b;\n      }\n\n      if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n        var i = 0;\n        var lenA = a.length;\n        var lenB = b.length;\n        var retArr = [];\n\n        while (i < lenA || i < lenB) {\n          if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n            retArr[i] = a[i] - b[i];\n          } else {\n            retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n          }\n\n          i += 1;\n        }\n\n        return retArr;\n      }\n\n      return 0;\n    }\n\n    function mul(a, b) {\n      var tOfA = _typeof(a);\n\n      var tOfB = _typeof(b);\n\n      var arr;\n\n      if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n        return a * b;\n      }\n\n      var i;\n      var len;\n\n      if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n        len = a.length;\n        arr = createTypedArray('float32', len);\n\n        for (i = 0; i < len; i += 1) {\n          arr[i] = a[i] * b;\n        }\n\n        return arr;\n      }\n\n      if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n        len = b.length;\n        arr = createTypedArray('float32', len);\n\n        for (i = 0; i < len; i += 1) {\n          arr[i] = a * b[i];\n        }\n\n        return arr;\n      }\n\n      return 0;\n    }\n\n    function div(a, b) {\n      var tOfA = _typeof(a);\n\n      var tOfB = _typeof(b);\n\n      var arr;\n\n      if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n        return a / b;\n      }\n\n      var i;\n      var len;\n\n      if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n        len = a.length;\n        arr = createTypedArray('float32', len);\n\n        for (i = 0; i < len; i += 1) {\n          arr[i] = a[i] / b;\n        }\n\n        return arr;\n      }\n\n      if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n        len = b.length;\n        arr = createTypedArray('float32', len);\n\n        for (i = 0; i < len; i += 1) {\n          arr[i] = a / b[i];\n        }\n\n        return arr;\n      }\n\n      return 0;\n    }\n\n    function mod(a, b) {\n      if (typeof a === 'string') {\n        a = parseInt(a, 10);\n      }\n\n      if (typeof b === 'string') {\n        b = parseInt(b, 10);\n      }\n\n      return a % b;\n    }\n\n    var $bm_sum = sum;\n    var $bm_sub = sub;\n    var $bm_mul = mul;\n    var $bm_div = div;\n    var $bm_mod = mod;\n\n    function clamp(num, min, max) {\n      if (min > max) {\n        var mm = max;\n        max = min;\n        min = mm;\n      }\n\n      return Math.min(Math.max(num, min), max);\n    }\n\n    function radiansToDegrees(val) {\n      return val / degToRads;\n    }\n\n    var radians_to_degrees = radiansToDegrees;\n\n    function degreesToRadians(val) {\n      return val * degToRads;\n    }\n\n    var degrees_to_radians = radiansToDegrees;\n    var helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n    function length(arr1, arr2) {\n      if (typeof arr1 === 'number' || arr1 instanceof Number) {\n        arr2 = arr2 || 0;\n        return Math.abs(arr1 - arr2);\n      }\n\n      if (!arr2) {\n        arr2 = helperLengthArray;\n      }\n\n      var i;\n      var len = Math.min(arr1.length, arr2.length);\n      var addedLength = 0;\n\n      for (i = 0; i < len; i += 1) {\n        addedLength += Math.pow(arr2[i] - arr1[i], 2);\n      }\n\n      return Math.sqrt(addedLength);\n    }\n\n    function normalize(vec) {\n      return div(vec, length(vec));\n    }\n\n    function rgbToHsl(val) {\n      var r = val[0];\n      var g = val[1];\n      var b = val[2];\n      var max = Math.max(r, g, b);\n      var min = Math.min(r, g, b);\n      var h;\n      var s;\n      var l = (max + min) / 2;\n\n      if (max === min) {\n        h = 0; // achromatic\n\n        s = 0; // achromatic\n      } else {\n        var d = max - min;\n        s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n        switch (max) {\n          case r:\n            h = (g - b) / d + (g < b ? 6 : 0);\n            break;\n\n          case g:\n            h = (b - r) / d + 2;\n            break;\n\n          case b:\n            h = (r - g) / d + 4;\n            break;\n\n          default:\n            break;\n        }\n\n        h /= 6;\n      }\n\n      return [h, s, l, val[3]];\n    }\n\n    function hue2rgb(p, q, t) {\n      if (t < 0) t += 1;\n      if (t > 1) t -= 1;\n      if (t < 1 / 6) return p + (q - p) * 6 * t;\n      if (t < 1 / 2) return q;\n      if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n      return p;\n    }\n\n    function hslToRgb(val) {\n      var h = val[0];\n      var s = val[1];\n      var l = val[2];\n      var r;\n      var g;\n      var b;\n\n      if (s === 0) {\n        r = l; // achromatic\n\n        b = l; // achromatic\n\n        g = l; // achromatic\n      } else {\n        var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n        var p = 2 * l - q;\n        r = hue2rgb(p, q, h + 1 / 3);\n        g = hue2rgb(p, q, h);\n        b = hue2rgb(p, q, h - 1 / 3);\n      }\n\n      return [r, g, b, val[3]];\n    }\n\n    function linear(t, tMin, tMax, value1, value2) {\n      if (value1 === undefined || value2 === undefined) {\n        value1 = tMin;\n        value2 = tMax;\n        tMin = 0;\n        tMax = 1;\n      }\n\n      if (tMax < tMin) {\n        var _tMin = tMax;\n        tMax = tMin;\n        tMin = _tMin;\n      }\n\n      if (t <= tMin) {\n        return value1;\n      }\n\n      if (t >= tMax) {\n        return value2;\n      }\n\n      var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\n      if (!value1.length) {\n        return value1 + (value2 - value1) * perc;\n      }\n\n      var i;\n      var len = value1.length;\n      var arr = createTypedArray('float32', len);\n\n      for (i = 0; i < len; i += 1) {\n        arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n      }\n\n      return arr;\n    }\n\n    function random(min, max) {\n      if (max === undefined) {\n        if (min === undefined) {\n          min = 0;\n          max = 1;\n        } else {\n          max = min;\n          min = undefined;\n        }\n      }\n\n      if (max.length) {\n        var i;\n        var len = max.length;\n\n        if (!min) {\n          min = createTypedArray('float32', len);\n        }\n\n        var arr = createTypedArray('float32', len);\n        var rnd = BMMath.random();\n\n        for (i = 0; i < len; i += 1) {\n          arr[i] = min[i] + rnd * (max[i] - min[i]);\n        }\n\n        return arr;\n      }\n\n      if (min === undefined) {\n        min = 0;\n      }\n\n      var rndm = BMMath.random();\n      return min + rndm * (max - min);\n    }\n\n    function createPath(points, inTangents, outTangents, closed) {\n      var i;\n      var len = points.length;\n      var path = shapePool.newElement();\n      path.setPathData(!!closed, len);\n      var arrPlaceholder = [0, 0];\n      var inVertexPoint;\n      var outVertexPoint;\n\n      for (i = 0; i < len; i += 1) {\n        inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n        outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\n        path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\n      }\n\n      return path;\n    }\n\n    function initiateExpression(elem, data, property) {\n      var val = data.x;\n      var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\n      var _needsRandom = val.indexOf('random') !== -1;\n\n      var elemType = elem.data.ty;\n      var transform;\n      var $bm_transform;\n      var content;\n      var effect;\n      var thisProperty = property;\n      thisProperty.valueAtTime = thisProperty.getValueAtTime;\n      Object.defineProperty(thisProperty, 'value', {\n        get: function get() {\n          return thisProperty.v;\n        }\n      });\n      elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n      elem.comp.displayStartTime = 0;\n      var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n      var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n      var width = elem.data.sw ? elem.data.sw : 0;\n      var height = elem.data.sh ? elem.data.sh : 0;\n      var name = elem.data.nm;\n      var loopIn;\n      var loop_in;\n      var loopOut;\n      var loop_out;\n      var smooth;\n      var toWorld;\n      var fromWorld;\n      var fromComp;\n      var toComp;\n      var fromCompToSurface;\n      var position;\n      var rotation;\n      var anchorPoint;\n      var scale;\n      var thisLayer;\n      var thisComp;\n      var mask;\n      var valueAtTime;\n      var velocityAtTime;\n      var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\n\n      var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\n\n      var numKeys = property.kf ? data.k.length : 0;\n      var active = !this.data || this.data.hd !== true;\n\n      var wiggle = function wiggle(freq, amp) {\n        var iWiggle;\n        var j;\n        var lenWiggle = this.pv.length ? this.pv.length : 1;\n        var addedAmps = createTypedArray('float32', lenWiggle);\n        freq = 5;\n        var iterations = Math.floor(time * freq);\n        iWiggle = 0;\n        j = 0;\n\n        while (iWiggle < iterations) {\n          // var rnd = BMMath.random();\n          for (j = 0; j < lenWiggle; j += 1) {\n            addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\n          }\n\n          iWiggle += 1;\n        } // var rnd2 = BMMath.random();\n\n\n        var periods = time * freq;\n        var perc = periods - Math.floor(periods);\n        var arr = createTypedArray('float32', lenWiggle);\n\n        if (lenWiggle > 1) {\n          for (j = 0; j < lenWiggle; j += 1) {\n            arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n            // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n          }\n\n          return arr;\n        }\n\n        return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n      }.bind(this);\n\n      if (thisProperty.loopIn) {\n        loopIn = thisProperty.loopIn.bind(thisProperty);\n        loop_in = loopIn;\n      }\n\n      if (thisProperty.loopOut) {\n        loopOut = thisProperty.loopOut.bind(thisProperty);\n        loop_out = loopOut;\n      }\n\n      if (thisProperty.smooth) {\n        smooth = thisProperty.smooth.bind(thisProperty);\n      }\n\n      function loopInDuration(type, duration) {\n        return loopIn(type, duration, true);\n      }\n\n      function loopOutDuration(type, duration) {\n        return loopOut(type, duration, true);\n      }\n\n      if (this.getValueAtTime) {\n        valueAtTime = this.getValueAtTime.bind(this);\n      }\n\n      if (this.getVelocityAtTime) {\n        velocityAtTime = this.getVelocityAtTime.bind(this);\n      }\n\n      var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n      function lookAt(elem1, elem2) {\n        var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n        var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n        var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n        return [yaw, pitch, 0];\n      }\n\n      function easeOut(t, tMin, tMax, val1, val2) {\n        return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n      }\n\n      function easeIn(t, tMin, tMax, val1, val2) {\n        return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n      }\n\n      function ease(t, tMin, tMax, val1, val2) {\n        return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n      }\n\n      function applyEase(fn, t, tMin, tMax, val1, val2) {\n        if (val1 === undefined) {\n          val1 = tMin;\n          val2 = tMax;\n        } else {\n          t = (t - tMin) / (tMax - tMin);\n        }\n\n        if (t > 1) {\n          t = 1;\n        } else if (t < 0) {\n          t = 0;\n        }\n\n        var mult = fn(t);\n\n        if ($bm_isInstanceOfArray(val1)) {\n          var iKey;\n          var lenKey = val1.length;\n          var arr = createTypedArray('float32', lenKey);\n\n          for (iKey = 0; iKey < lenKey; iKey += 1) {\n            arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n          }\n\n          return arr;\n        }\n\n        return (val2 - val1) * mult + val1;\n      }\n\n      function nearestKey(time) {\n        var iKey;\n        var lenKey = data.k.length;\n        var index;\n        var keyTime;\n\n        if (!data.k.length || typeof data.k[0] === 'number') {\n          index = 0;\n          keyTime = 0;\n        } else {\n          index = -1;\n          time *= elem.comp.globalData.frameRate;\n\n          if (time < data.k[0].t) {\n            index = 1;\n            keyTime = data.k[0].t;\n          } else {\n            for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n              if (time === data.k[iKey].t) {\n                index = iKey + 1;\n                keyTime = data.k[iKey].t;\n                break;\n              } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n                if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n                  index = iKey + 2;\n                  keyTime = data.k[iKey + 1].t;\n                } else {\n                  index = iKey + 1;\n                  keyTime = data.k[iKey].t;\n                }\n\n                break;\n              }\n            }\n\n            if (index === -1) {\n              index = iKey + 1;\n              keyTime = data.k[iKey].t;\n            }\n          }\n        }\n\n        var obKey = {};\n        obKey.index = index;\n        obKey.time = keyTime / elem.comp.globalData.frameRate;\n        return obKey;\n      }\n\n      function key(ind) {\n        var obKey;\n        var iKey;\n        var lenKey;\n\n        if (!data.k.length || typeof data.k[0] === 'number') {\n          throw new Error('The property has no keyframe at index ' + ind);\n        }\n\n        ind -= 1;\n        obKey = {\n          time: data.k[ind].t / elem.comp.globalData.frameRate,\n          value: []\n        };\n        var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\n        lenKey = arr.length;\n\n        for (iKey = 0; iKey < lenKey; iKey += 1) {\n          obKey[iKey] = arr[iKey];\n          obKey.value[iKey] = arr[iKey];\n        }\n\n        return obKey;\n      }\n\n      function framesToTime(fr, fps) {\n        if (!fps) {\n          fps = elem.comp.globalData.frameRate;\n        }\n\n        return fr / fps;\n      }\n\n      function timeToFrames(t, fps) {\n        if (!t && t !== 0) {\n          t = time;\n        }\n\n        if (!fps) {\n          fps = elem.comp.globalData.frameRate;\n        }\n\n        return t * fps;\n      }\n\n      function seedRandom(seed) {\n        BMMath.seedrandom(randSeed + seed);\n      }\n\n      function sourceRectAtTime() {\n        return elem.sourceRectAtTime();\n      }\n\n      function substring(init, end) {\n        if (typeof value === 'string') {\n          if (end === undefined) {\n            return value.substring(init);\n          }\n\n          return value.substring(init, end);\n        }\n\n        return '';\n      }\n\n      function substr(init, end) {\n        if (typeof value === 'string') {\n          if (end === undefined) {\n            return value.substr(init);\n          }\n\n          return value.substr(init, end);\n        }\n\n        return '';\n      }\n\n      function posterizeTime(framesPerSecond) {\n        time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n        value = valueAtTime(time);\n      }\n\n      var time;\n      var velocity;\n      var value;\n      var text;\n      var textIndex;\n      var textTotal;\n      var selectorValue;\n      var index = elem.data.ind;\n      var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n      var parent;\n      var randSeed = Math.floor(Math.random() * 1000000);\n      var globalData = elem.globalData;\n\n      function executeExpression(_value) {\n        // globalData.pushExpression();\n        value = _value;\n\n        if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\n          return value;\n        }\n\n        if (this.propType === 'textSelector') {\n          textIndex = this.textIndex;\n          textTotal = this.textTotal;\n          selectorValue = this.selectorValue;\n        }\n\n        if (!thisLayer) {\n          text = elem.layerInterface.text;\n          thisLayer = elem.layerInterface;\n          thisComp = elem.comp.compInterface;\n          toWorld = thisLayer.toWorld.bind(thisLayer);\n          fromWorld = thisLayer.fromWorld.bind(thisLayer);\n          fromComp = thisLayer.fromComp.bind(thisLayer);\n          toComp = thisLayer.toComp.bind(thisLayer);\n          mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n          fromCompToSurface = fromComp;\n        }\n\n        if (!transform) {\n          transform = elem.layerInterface('ADBE Transform Group');\n          $bm_transform = transform;\n\n          if (transform) {\n            anchorPoint = transform.anchorPoint;\n            /* position = transform.position;\r\n                      rotation = transform.rotation;\r\n                      scale = transform.scale; */\n          }\n        }\n\n        if (elemType === 4 && !content) {\n          content = thisLayer('ADBE Root Vectors Group');\n        }\n\n        if (!effect) {\n          effect = thisLayer(4);\n        }\n\n        hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\n        if (hasParent && !parent) {\n          parent = elem.hierarchy[0].layerInterface;\n        }\n\n        time = this.comp.renderedFrame / this.comp.globalData.frameRate;\n\n        if (_needsRandom) {\n          seedRandom(randSeed + time);\n        }\n\n        if (needsVelocity) {\n          velocity = velocityAtTime(time);\n        }\n\n        expression_function();\n        this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n        // Changed this to a ternary operation because Rollup failed compiling it correctly\n\n        scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\n        return scoped_bm_rt;\n      } // Bundlers will see these as dead code and unless we reference them\n\n\n      executeExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, time, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData];\n      return executeExpression;\n    }\n\n    ob.initiateExpression = initiateExpression;\n    ob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath];\n    return ob;\n  }();\n\n  var expressionHelpers = function () {\n    function searchExpressions(elem, data, prop) {\n      if (data.x) {\n        prop.k = true;\n        prop.x = true;\n        prop.initiateExpression = ExpressionManager.initiateExpression;\n        prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n      }\n    }\n\n    function getValueAtTime(frameNum) {\n      frameNum *= this.elem.globalData.frameRate;\n      frameNum -= this.offsetTime;\n\n      if (frameNum !== this._cachingAtTime.lastFrame) {\n        this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\n        this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\n        this._cachingAtTime.lastFrame = frameNum;\n      }\n\n      return this._cachingAtTime.value;\n    }\n\n    function getSpeedAtTime(frameNum) {\n      var delta = -0.01;\n      var v1 = this.getValueAtTime(frameNum);\n      var v2 = this.getValueAtTime(frameNum + delta);\n      var speed = 0;\n\n      if (v1.length) {\n        var i;\n\n        for (i = 0; i < v1.length; i += 1) {\n          speed += Math.pow(v2[i] - v1[i], 2);\n        }\n\n        speed = Math.sqrt(speed) * 100;\n      } else {\n        speed = 0;\n      }\n\n      return speed;\n    }\n\n    function getVelocityAtTime(frameNum) {\n      if (this.vel !== undefined) {\n        return this.vel;\n      }\n\n      var delta = -0.001; // frameNum += this.elem.data.st;\n\n      var v1 = this.getValueAtTime(frameNum);\n      var v2 = this.getValueAtTime(frameNum + delta);\n      var velocity;\n\n      if (v1.length) {\n        velocity = createTypedArray('float32', v1.length);\n        var i;\n\n        for (i = 0; i < v1.length; i += 1) {\n          // removing frameRate\n          // if needed, don't add it here\n          // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n          velocity[i] = (v2[i] - v1[i]) / delta;\n        }\n      } else {\n        velocity = (v2 - v1) / delta;\n      }\n\n      return velocity;\n    }\n\n    function getStaticValueAtTime() {\n      return this.pv;\n    }\n\n    function setGroupProperty(propertyGroup) {\n      this.propertyGroup = propertyGroup;\n    }\n\n    return {\n      searchExpressions: searchExpressions,\n      getSpeedAtTime: getSpeedAtTime,\n      getVelocityAtTime: getVelocityAtTime,\n      getValueAtTime: getValueAtTime,\n      getStaticValueAtTime: getStaticValueAtTime,\n      setGroupProperty: setGroupProperty\n    };\n  }();\n\n  function addPropertyDecorator() {\n    function loopOut(type, duration, durationFlag) {\n      if (!this.k || !this.keyframes) {\n        return this.pv;\n      }\n\n      type = type ? type.toLowerCase() : '';\n      var currentFrame = this.comp.renderedFrame;\n      var keyframes = this.keyframes;\n      var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n      if (currentFrame <= lastKeyFrame) {\n        return this.pv;\n      }\n\n      var cycleDuration;\n      var firstKeyFrame;\n\n      if (!durationFlag) {\n        if (!duration || duration > keyframes.length - 1) {\n          duration = keyframes.length - 1;\n        }\n\n        firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n        cycleDuration = lastKeyFrame - firstKeyFrame;\n      } else {\n        if (!duration) {\n          cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\n        } else {\n          cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\n        }\n\n        firstKeyFrame = lastKeyFrame - cycleDuration;\n      }\n\n      var i;\n      var len;\n      var ret;\n\n      if (type === 'pingpong') {\n        var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n        if (iterations % 2 !== 0) {\n          return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n        }\n      } else if (type === 'offset') {\n        var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n        var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n        var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\n        var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n        if (this.pv.length) {\n          ret = new Array(initV.length);\n          len = ret.length;\n\n          for (i = 0; i < len; i += 1) {\n            ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n          }\n\n          return ret;\n        }\n\n        return (endV - initV) * repeats + current;\n      } else if (type === 'continue') {\n        var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n        var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\n\n        if (this.pv.length) {\n          ret = new Array(lastValue.length);\n          len = ret.length;\n\n          for (i = 0; i < len; i += 1) {\n            ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n          }\n\n          return ret;\n        }\n\n        return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n      }\n\n      return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n    }\n\n    function loopIn(type, duration, durationFlag) {\n      if (!this.k) {\n        return this.pv;\n      }\n\n      type = type ? type.toLowerCase() : '';\n      var currentFrame = this.comp.renderedFrame;\n      var keyframes = this.keyframes;\n      var firstKeyFrame = keyframes[0].t;\n\n      if (currentFrame >= firstKeyFrame) {\n        return this.pv;\n      }\n\n      var cycleDuration;\n      var lastKeyFrame;\n\n      if (!durationFlag) {\n        if (!duration || duration > keyframes.length - 1) {\n          duration = keyframes.length - 1;\n        }\n\n        lastKeyFrame = keyframes[duration].t;\n        cycleDuration = lastKeyFrame - firstKeyFrame;\n      } else {\n        if (!duration) {\n          cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\n        } else {\n          cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\n        }\n\n        lastKeyFrame = firstKeyFrame + cycleDuration;\n      }\n\n      var i;\n      var len;\n      var ret;\n\n      if (type === 'pingpong') {\n        var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\n        if (iterations % 2 === 0) {\n          return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n        }\n      } else if (type === 'offset') {\n        var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n        var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n        var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\n        var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n        if (this.pv.length) {\n          ret = new Array(initV.length);\n          len = ret.length;\n\n          for (i = 0; i < len; i += 1) {\n            ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n          }\n\n          return ret;\n        }\n\n        return current - (endV - initV) * repeats;\n      } else if (type === 'continue') {\n        var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n        var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\n\n        if (this.pv.length) {\n          ret = new Array(firstValue.length);\n          len = ret.length;\n\n          for (i = 0; i < len; i += 1) {\n            ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n          }\n\n          return ret;\n        }\n\n        return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n      }\n\n      return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n    }\n\n    function smooth(width, samples) {\n      if (!this.k) {\n        return this.pv;\n      }\n\n      width = (width || 0.4) * 0.5;\n      samples = Math.floor(samples || 5);\n\n      if (samples <= 1) {\n        return this.pv;\n      }\n\n      var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n      var initFrame = currentTime - width;\n      var endFrame = currentTime + width;\n      var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n      var i = 0;\n      var j = 0;\n      var value;\n\n      if (this.pv.length) {\n        value = createTypedArray('float32', this.pv.length);\n      } else {\n        value = 0;\n      }\n\n      var sampleValue;\n\n      while (i < samples) {\n        sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\n        if (this.pv.length) {\n          for (j = 0; j < this.pv.length; j += 1) {\n            value[j] += sampleValue[j];\n          }\n        } else {\n          value += sampleValue;\n        }\n\n        i += 1;\n      }\n\n      if (this.pv.length) {\n        for (j = 0; j < this.pv.length; j += 1) {\n          value[j] /= samples;\n        }\n      } else {\n        value /= samples;\n      }\n\n      return value;\n    }\n\n    function getTransformValueAtTime(time) {\n      if (!this._transformCachingAtTime) {\n        this._transformCachingAtTime = {\n          v: new Matrix()\n        };\n      } /// /\n\n\n      var matrix = this._transformCachingAtTime.v;\n      matrix.cloneFromProps(this.pre.props);\n\n      if (this.appliedTransformations < 1) {\n        var anchor = this.a.getValueAtTime(time);\n        matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\n      }\n\n      if (this.appliedTransformations < 2) {\n        var scale = this.s.getValueAtTime(time);\n        matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\n      }\n\n      if (this.sk && this.appliedTransformations < 3) {\n        var skew = this.sk.getValueAtTime(time);\n        var skewAxis = this.sa.getValueAtTime(time);\n        matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\n      }\n\n      if (this.r && this.appliedTransformations < 4) {\n        var rotation = this.r.getValueAtTime(time);\n        matrix.rotate(-rotation * this.r.mult);\n      } else if (!this.r && this.appliedTransformations < 4) {\n        var rotationZ = this.rz.getValueAtTime(time);\n        var rotationY = this.ry.getValueAtTime(time);\n        var rotationX = this.rx.getValueAtTime(time);\n        var orientation = this.or.getValueAtTime(time);\n        matrix.rotateZ(-rotationZ * this.rz.mult).rotateY(rotationY * this.ry.mult).rotateX(rotationX * this.rx.mult).rotateZ(-orientation[2] * this.or.mult).rotateY(orientation[1] * this.or.mult).rotateX(orientation[0] * this.or.mult);\n      }\n\n      if (this.data.p && this.data.p.s) {\n        var positionX = this.px.getValueAtTime(time);\n        var positionY = this.py.getValueAtTime(time);\n\n        if (this.data.p.z) {\n          var positionZ = this.pz.getValueAtTime(time);\n          matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\n        } else {\n          matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\n        }\n      } else {\n        var position = this.p.getValueAtTime(time);\n        matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\n      }\n\n      return matrix; /// /\n    }\n\n    function getTransformStaticValueAtTime() {\n      return this.v.clone(new Matrix());\n    }\n\n    var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\n    TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n      var prop = getTransformProperty(elem, data, container);\n\n      if (prop.dynamicProperties.length) {\n        prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n      } else {\n        prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n      }\n\n      prop.setGroupProperty = expressionHelpers.setGroupProperty;\n      return prop;\n    };\n\n    var propertyGetProp = PropertyFactory.getProp;\n\n    PropertyFactory.getProp = function (elem, data, type, mult, container) {\n      var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\n      // prop.loopOut = loopOut;\n      // prop.loopIn = loopIn;\n\n      if (prop.kf) {\n        prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n      } else {\n        prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n      }\n\n      prop.setGroupProperty = expressionHelpers.setGroupProperty;\n      prop.loopOut = loopOut;\n      prop.loopIn = loopIn;\n      prop.smooth = smooth;\n      prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n      prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n      prop.numKeys = data.a === 1 ? data.k.length : 0;\n      prop.propertyIndex = data.ix;\n      var value = 0;\n\n      if (type !== 0) {\n        value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\n      }\n\n      prop._cachingAtTime = {\n        lastFrame: initialDefaultFrame,\n        lastIndex: 0,\n        value: value\n      };\n      expressionHelpers.searchExpressions(elem, data, prop);\n\n      if (prop.k) {\n        container.addDynamicProperty(prop);\n      }\n\n      return prop;\n    };\n\n    function getShapeValueAtTime(frameNum) {\n      // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n      if (!this._cachingAtTime) {\n        this._cachingAtTime = {\n          shapeValue: shapePool.clone(this.pv),\n          lastIndex: 0,\n          lastTime: initialDefaultFrame\n        };\n      }\n\n      frameNum *= this.elem.globalData.frameRate;\n      frameNum -= this.offsetTime;\n\n      if (frameNum !== this._cachingAtTime.lastTime) {\n        this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\n        this._cachingAtTime.lastTime = frameNum;\n        this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\n      }\n\n      return this._cachingAtTime.shapeValue;\n    }\n\n    var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n    var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n    function ShapeExpressions() {}\n\n    ShapeExpressions.prototype = {\n      vertices: function vertices(prop, time) {\n        if (this.k) {\n          this.getValue();\n        }\n\n        var shapePath = this.v;\n\n        if (time !== undefined) {\n          shapePath = this.getValueAtTime(time, 0);\n        }\n\n        var i;\n        var len = shapePath._length;\n        var vertices = shapePath[prop];\n        var points = shapePath.v;\n        var arr = createSizedArray(len);\n\n        for (i = 0; i < len; i += 1) {\n          if (prop === 'i' || prop === 'o') {\n            arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n          } else {\n            arr[i] = [vertices[i][0], vertices[i][1]];\n          }\n        }\n\n        return arr;\n      },\n      points: function points(time) {\n        return this.vertices('v', time);\n      },\n      inTangents: function inTangents(time) {\n        return this.vertices('i', time);\n      },\n      outTangents: function outTangents(time) {\n        return this.vertices('o', time);\n      },\n      isClosed: function isClosed() {\n        return this.v.c;\n      },\n      pointOnPath: function pointOnPath(perc, time) {\n        var shapePath = this.v;\n\n        if (time !== undefined) {\n          shapePath = this.getValueAtTime(time, 0);\n        }\n\n        if (!this._segmentsLength) {\n          this._segmentsLength = bez.getSegmentsLength(shapePath);\n        }\n\n        var segmentsLength = this._segmentsLength;\n        var lengths = segmentsLength.lengths;\n        var lengthPos = segmentsLength.totalLength * perc;\n        var i = 0;\n        var len = lengths.length;\n        var accumulatedLength = 0;\n        var pt;\n\n        while (i < len) {\n          if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n            var initIndex = i;\n            var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n            var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n            pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n            break;\n          } else {\n            accumulatedLength += lengths[i].addedLength;\n          }\n\n          i += 1;\n        }\n\n        if (!pt) {\n          pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n        }\n\n        return pt;\n      },\n      vectorOnPath: function vectorOnPath(perc, time, vectorType) {\n        // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n        if (perc == 1) {\n          // eslint-disable-line eqeqeq\n          perc = this.v.c;\n        } else if (perc == 0) {\n          // eslint-disable-line eqeqeq\n          perc = 0.999;\n        }\n\n        var pt1 = this.pointOnPath(perc, time);\n        var pt2 = this.pointOnPath(perc + 0.001, time);\n        var xLength = pt2[0] - pt1[0];\n        var yLength = pt2[1] - pt1[1];\n        var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\n        if (magnitude === 0) {\n          return [0, 0];\n        }\n\n        var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n        return unitVector;\n      },\n      tangentOnPath: function tangentOnPath(perc, time) {\n        return this.vectorOnPath(perc, time, 'tangent');\n      },\n      normalOnPath: function normalOnPath(perc, time) {\n        return this.vectorOnPath(perc, time, 'normal');\n      },\n      setGroupProperty: expressionHelpers.setGroupProperty,\n      getValueAtTime: expressionHelpers.getStaticValueAtTime\n    };\n    extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n    extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n    KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n    KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n    var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\n    ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n      var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n      prop.propertyIndex = data.ix;\n      prop.lock = false;\n\n      if (type === 3) {\n        expressionHelpers.searchExpressions(elem, data.pt, prop);\n      } else if (type === 4) {\n        expressionHelpers.searchExpressions(elem, data.ks, prop);\n      }\n\n      if (prop.k) {\n        elem.addDynamicProperty(prop);\n      }\n\n      return prop;\n    };\n  }\n\n  function initialize$1() {\n    addPropertyDecorator();\n  }\n\n  function addDecorator() {\n    function searchExpressions() {\n      if (this.data.d.x) {\n        this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\n        this.addEffect(this.getExpressionValue.bind(this));\n        return true;\n      }\n\n      return null;\n    }\n\n    TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n      var newValue = this.calculateExpression(text);\n\n      if (currentValue.t !== newValue) {\n        var newData = {};\n        this.copyData(newData, currentValue);\n        newData.t = newValue.toString();\n        newData.__complete = false;\n        return newData;\n      }\n\n      return currentValue;\n    };\n\n    TextProperty.prototype.searchProperty = function () {\n      var isKeyframed = this.searchKeyframes();\n      var hasExpressions = this.searchExpressions();\n      this.kf = isKeyframed || hasExpressions;\n      return this.kf;\n    };\n\n    TextProperty.prototype.searchExpressions = searchExpressions;\n  }\n\n  function initialize() {\n    addDecorator();\n  }\n\n  function SVGComposableEffect() {}\n\n  SVGComposableEffect.prototype = {\n    createMergeNode: function createMergeNode(resultId, ins) {\n      var feMerge = createNS('feMerge');\n      feMerge.setAttribute('result', resultId);\n      var feMergeNode;\n      var i;\n\n      for (i = 0; i < ins.length; i += 1) {\n        feMergeNode = createNS('feMergeNode');\n        feMergeNode.setAttribute('in', ins[i]);\n        feMerge.appendChild(feMergeNode);\n        feMerge.appendChild(feMergeNode);\n      }\n\n      return feMerge;\n    }\n  };\n\n  function SVGTintFilter(filter, filterManager, elem, id, source) {\n    this.filterManager = filterManager;\n    var feColorMatrix = createNS('feColorMatrix');\n    feColorMatrix.setAttribute('type', 'matrix');\n    feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n    feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n    feColorMatrix.setAttribute('result', id + '_tint_1');\n    filter.appendChild(feColorMatrix);\n    feColorMatrix = createNS('feColorMatrix');\n    feColorMatrix.setAttribute('type', 'matrix');\n    feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n    feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n    feColorMatrix.setAttribute('result', id + '_tint_2');\n    filter.appendChild(feColorMatrix);\n    this.matrixFilter = feColorMatrix;\n    var feMerge = this.createMergeNode(id, [source, id + '_tint_1', id + '_tint_2']);\n    filter.appendChild(feMerge);\n  }\n\n  extendPrototype([SVGComposableEffect], SVGTintFilter);\n\n  SVGTintFilter.prototype.renderFrame = function (forceRender) {\n    if (forceRender || this.filterManager._mdf) {\n      var colorBlack = this.filterManager.effectElements[0].p.v;\n      var colorWhite = this.filterManager.effectElements[1].p.v;\n      var opacity = this.filterManager.effectElements[2].p.v / 100;\n      this.matrixFilter.setAttribute('values', colorWhite[0] - colorBlack[0] + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 ' + opacity + ' 0');\n    }\n  };\n\n  function SVGFillFilter(filter, filterManager, elem, id) {\n    this.filterManager = filterManager;\n    var feColorMatrix = createNS('feColorMatrix');\n    feColorMatrix.setAttribute('type', 'matrix');\n    feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n    feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n    feColorMatrix.setAttribute('result', id);\n    filter.appendChild(feColorMatrix);\n    this.matrixFilter = feColorMatrix;\n  }\n\n  SVGFillFilter.prototype.renderFrame = function (forceRender) {\n    if (forceRender || this.filterManager._mdf) {\n      var color = this.filterManager.effectElements[2].p.v;\n      var opacity = this.filterManager.effectElements[6].p.v;\n      this.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\n    }\n  };\n\n  function SVGStrokeEffect(fil, filterManager, elem) {\n    this.initialized = false;\n    this.filterManager = filterManager;\n    this.elem = elem;\n    this.paths = [];\n  }\n\n  SVGStrokeEffect.prototype.initialize = function () {\n    var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n    var path;\n    var groupPath;\n    var i;\n    var len;\n\n    if (this.filterManager.effectElements[1].p.v === 1) {\n      len = this.elem.maskManager.masksProperties.length;\n      i = 0;\n    } else {\n      i = this.filterManager.effectElements[0].p.v - 1;\n      len = i + 1;\n    }\n\n    groupPath = createNS('g');\n    groupPath.setAttribute('fill', 'none');\n    groupPath.setAttribute('stroke-linecap', 'round');\n    groupPath.setAttribute('stroke-dashoffset', 1);\n\n    for (i; i < len; i += 1) {\n      path = createNS('path');\n      groupPath.appendChild(path);\n      this.paths.push({\n        p: path,\n        m: i\n      });\n    }\n\n    if (this.filterManager.effectElements[10].p.v === 3) {\n      var mask = createNS('mask');\n      var id = createElementID();\n      mask.setAttribute('id', id);\n      mask.setAttribute('mask-type', 'alpha');\n      mask.appendChild(groupPath);\n      this.elem.globalData.defs.appendChild(mask);\n      var g = createNS('g');\n      g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n\n      while (elemChildren[0]) {\n        g.appendChild(elemChildren[0]);\n      }\n\n      this.elem.layerElement.appendChild(g);\n      this.masker = mask;\n      groupPath.setAttribute('stroke', '#fff');\n    } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n      if (this.filterManager.effectElements[10].p.v === 2) {\n        elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n\n        while (elemChildren.length) {\n          this.elem.layerElement.removeChild(elemChildren[0]);\n        }\n      }\n\n      this.elem.layerElement.appendChild(groupPath);\n      this.elem.layerElement.removeAttribute('mask');\n      groupPath.setAttribute('stroke', '#fff');\n    }\n\n    this.initialized = true;\n    this.pathMasker = groupPath;\n  };\n\n  SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n    if (!this.initialized) {\n      this.initialize();\n    }\n\n    var i;\n    var len = this.paths.length;\n    var mask;\n    var path;\n\n    for (i = 0; i < len; i += 1) {\n      if (this.paths[i].m !== -1) {\n        mask = this.elem.maskManager.viewData[this.paths[i].m];\n        path = this.paths[i].p;\n\n        if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\n          path.setAttribute('d', mask.lastPath);\n        }\n\n        if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\n          var dasharrayValue;\n\n          if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\n            var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n            var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n            var l = path.getTotalLength();\n            dasharrayValue = '0 0 0 ' + l * s + ' ';\n            var lineLength = l * (e - s);\n            var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n            var units = Math.floor(lineLength / segment);\n            var j;\n\n            for (j = 0; j < units; j += 1) {\n              dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\n            }\n\n            dasharrayValue += '0 ' + l * 10 + ' 0 0';\n          } else {\n            dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n          }\n\n          path.setAttribute('stroke-dasharray', dasharrayValue);\n        }\n      }\n    }\n\n    if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n      this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\n    }\n\n    if (forceRender || this.filterManager.effectElements[6].p._mdf) {\n      this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\n    }\n\n    if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n      if (forceRender || this.filterManager.effectElements[3].p._mdf) {\n        var color = this.filterManager.effectElements[3].p.v;\n        this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\n      }\n    }\n  };\n\n  function SVGTritoneFilter(filter, filterManager, elem, id) {\n    this.filterManager = filterManager;\n    var feColorMatrix = createNS('feColorMatrix');\n    feColorMatrix.setAttribute('type', 'matrix');\n    feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n    feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n    filter.appendChild(feColorMatrix);\n    var feComponentTransfer = createNS('feComponentTransfer');\n    feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n    feComponentTransfer.setAttribute('result', id);\n    this.matrixFilter = feComponentTransfer;\n    var feFuncR = createNS('feFuncR');\n    feFuncR.setAttribute('type', 'table');\n    feComponentTransfer.appendChild(feFuncR);\n    this.feFuncR = feFuncR;\n    var feFuncG = createNS('feFuncG');\n    feFuncG.setAttribute('type', 'table');\n    feComponentTransfer.appendChild(feFuncG);\n    this.feFuncG = feFuncG;\n    var feFuncB = createNS('feFuncB');\n    feFuncB.setAttribute('type', 'table');\n    feComponentTransfer.appendChild(feFuncB);\n    this.feFuncB = feFuncB;\n    filter.appendChild(feComponentTransfer);\n  }\n\n  SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n    if (forceRender || this.filterManager._mdf) {\n      var color1 = this.filterManager.effectElements[0].p.v;\n      var color2 = this.filterManager.effectElements[1].p.v;\n      var color3 = this.filterManager.effectElements[2].p.v;\n      var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\n      var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\n      var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\n      this.feFuncR.setAttribute('tableValues', tableR);\n      this.feFuncG.setAttribute('tableValues', tableG);\n      this.feFuncB.setAttribute('tableValues', tableB);\n    }\n  };\n\n  function SVGProLevelsFilter(filter, filterManager, elem, id) {\n    this.filterManager = filterManager;\n    var effectElements = this.filterManager.effectElements;\n    var feComponentTransfer = createNS('feComponentTransfer'); // Red\n\n    if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\n      this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\n    } // Green\n\n\n    if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\n      this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\n    } // Blue\n\n\n    if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\n      this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\n    } // Alpha\n\n\n    if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\n      this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\n    } // RGB\n\n\n    if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\n      feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n      filter.appendChild(feComponentTransfer);\n    }\n\n    if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\n      feComponentTransfer = createNS('feComponentTransfer');\n      feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n      feComponentTransfer.setAttribute('result', id);\n      filter.appendChild(feComponentTransfer);\n      this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\n      this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\n      this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\n    }\n  }\n\n  SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n    var feFunc = createNS(type);\n    feFunc.setAttribute('type', 'table');\n    feComponentTransfer.appendChild(feFunc);\n    return feFunc;\n  };\n\n  SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n    var cnt = 0;\n    var segments = 256;\n    var perc;\n    var min = Math.min(inputBlack, inputWhite);\n    var max = Math.max(inputBlack, inputWhite);\n    var table = Array.call(null, {\n      length: segments\n    });\n    var colorValue;\n    var pos = 0;\n    var outputDelta = outputWhite - outputBlack;\n    var inputDelta = inputWhite - inputBlack;\n\n    while (cnt <= 256) {\n      perc = cnt / 256;\n\n      if (perc <= min) {\n        colorValue = inputDelta < 0 ? outputWhite : outputBlack;\n      } else if (perc >= max) {\n        colorValue = inputDelta < 0 ? outputBlack : outputWhite;\n      } else {\n        colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\n      }\n\n      table[pos] = colorValue;\n      pos += 1;\n      cnt += 256 / (segments - 1);\n    }\n\n    return table.join(' ');\n  };\n\n  SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n    if (forceRender || this.filterManager._mdf) {\n      var val;\n      var effectElements = this.filterManager.effectElements;\n\n      if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\n        val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n        this.feFuncRComposed.setAttribute('tableValues', val);\n        this.feFuncGComposed.setAttribute('tableValues', val);\n        this.feFuncBComposed.setAttribute('tableValues', val);\n      }\n\n      if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\n        val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n        this.feFuncR.setAttribute('tableValues', val);\n      }\n\n      if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\n        val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n        this.feFuncG.setAttribute('tableValues', val);\n      }\n\n      if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\n        val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n        this.feFuncB.setAttribute('tableValues', val);\n      }\n\n      if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\n        val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n        this.feFuncA.setAttribute('tableValues', val);\n      }\n    }\n  };\n\n  function SVGDropShadowEffect(filter, filterManager, elem, id, source) {\n    var globalFilterSize = filterManager.container.globalData.renderConfig.filterSize;\n    var filterSize = filterManager.data.fs || globalFilterSize;\n    filter.setAttribute('x', filterSize.x || globalFilterSize.x);\n    filter.setAttribute('y', filterSize.y || globalFilterSize.y);\n    filter.setAttribute('width', filterSize.width || globalFilterSize.width);\n    filter.setAttribute('height', filterSize.height || globalFilterSize.height);\n    this.filterManager = filterManager;\n    var feGaussianBlur = createNS('feGaussianBlur');\n    feGaussianBlur.setAttribute('in', 'SourceAlpha');\n    feGaussianBlur.setAttribute('result', id + '_drop_shadow_1');\n    feGaussianBlur.setAttribute('stdDeviation', '0');\n    this.feGaussianBlur = feGaussianBlur;\n    filter.appendChild(feGaussianBlur);\n    var feOffset = createNS('feOffset');\n    feOffset.setAttribute('dx', '25');\n    feOffset.setAttribute('dy', '0');\n    feOffset.setAttribute('in', id + '_drop_shadow_1');\n    feOffset.setAttribute('result', id + '_drop_shadow_2');\n    this.feOffset = feOffset;\n    filter.appendChild(feOffset);\n    var feFlood = createNS('feFlood');\n    feFlood.setAttribute('flood-color', '#00ff00');\n    feFlood.setAttribute('flood-opacity', '1');\n    feFlood.setAttribute('result', id + '_drop_shadow_3');\n    this.feFlood = feFlood;\n    filter.appendChild(feFlood);\n    var feComposite = createNS('feComposite');\n    feComposite.setAttribute('in', id + '_drop_shadow_3');\n    feComposite.setAttribute('in2', id + '_drop_shadow_2');\n    feComposite.setAttribute('operator', 'in');\n    feComposite.setAttribute('result', id + '_drop_shadow_4');\n    filter.appendChild(feComposite);\n    var feMerge = this.createMergeNode(id, [id + '_drop_shadow_4', source]);\n    filter.appendChild(feMerge); //\n  }\n\n  extendPrototype([SVGComposableEffect], SVGDropShadowEffect);\n\n  SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n    if (forceRender || this.filterManager._mdf) {\n      if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n        this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\n      }\n\n      if (forceRender || this.filterManager.effectElements[0].p._mdf) {\n        var col = this.filterManager.effectElements[0].p.v;\n        this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n      }\n\n      if (forceRender || this.filterManager.effectElements[1].p._mdf) {\n        this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\n      }\n\n      if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\n        var distance = this.filterManager.effectElements[3].p.v;\n        var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\n        var x = distance * Math.cos(angle);\n        var y = distance * Math.sin(angle);\n        this.feOffset.setAttribute('dx', x);\n        this.feOffset.setAttribute('dy', y);\n      }\n    }\n  };\n\n  var _svgMatteSymbols = [];\n\n  function SVGMatte3Effect(filterElem, filterManager, elem) {\n    this.initialized = false;\n    this.filterManager = filterManager;\n    this.filterElem = filterElem;\n    this.elem = elem;\n    elem.matteElement = createNS('g');\n    elem.matteElement.appendChild(elem.layerElement);\n    elem.matteElement.appendChild(elem.transformedElement);\n    elem.baseElement = elem.matteElement;\n  }\n\n  SVGMatte3Effect.prototype.findSymbol = function (mask) {\n    var i = 0;\n    var len = _svgMatteSymbols.length;\n\n    while (i < len) {\n      if (_svgMatteSymbols[i] === mask) {\n        return _svgMatteSymbols[i];\n      }\n\n      i += 1;\n    }\n\n    return null;\n  };\n\n  SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n    var parentNode = mask.layerElement.parentNode;\n\n    if (!parentNode) {\n      return;\n    }\n\n    var children = parentNode.children;\n    var i = 0;\n    var len = children.length;\n\n    while (i < len) {\n      if (children[i] === mask.layerElement) {\n        break;\n      }\n\n      i += 1;\n    }\n\n    var nextChild;\n\n    if (i <= len - 2) {\n      nextChild = children[i + 1];\n    }\n\n    var useElem = createNS('use');\n    useElem.setAttribute('href', '#' + symbolId);\n\n    if (nextChild) {\n      parentNode.insertBefore(useElem, nextChild);\n    } else {\n      parentNode.appendChild(useElem);\n    }\n  };\n\n  SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n    if (!this.findSymbol(mask)) {\n      var symbolId = createElementID();\n      var masker = createNS('mask');\n      masker.setAttribute('id', mask.layerId);\n      masker.setAttribute('mask-type', 'alpha');\n\n      _svgMatteSymbols.push(mask);\n\n      var defs = elem.globalData.defs;\n      defs.appendChild(masker);\n      var symbol = createNS('symbol');\n      symbol.setAttribute('id', symbolId);\n      this.replaceInParent(mask, symbolId);\n      symbol.appendChild(mask.layerElement);\n      defs.appendChild(symbol);\n      var useElem = createNS('use');\n      useElem.setAttribute('href', '#' + symbolId);\n      masker.appendChild(useElem);\n      mask.data.hd = false;\n      mask.show();\n    }\n\n    elem.setMatte(mask.layerId);\n  };\n\n  SVGMatte3Effect.prototype.initialize = function () {\n    var ind = this.filterManager.effectElements[0].p.v;\n    var elements = this.elem.comp.elements;\n    var i = 0;\n    var len = elements.length;\n\n    while (i < len) {\n      if (elements[i] && elements[i].data.ind === ind) {\n        this.setElementAsMask(this.elem, elements[i]);\n      }\n\n      i += 1;\n    }\n\n    this.initialized = true;\n  };\n\n  SVGMatte3Effect.prototype.renderFrame = function () {\n    if (!this.initialized) {\n      this.initialize();\n    }\n  };\n\n  function SVGGaussianBlurEffect(filter, filterManager, elem, id) {\n    // Outset the filter region by 100% on all sides to accommodate blur expansion.\n    filter.setAttribute('x', '-100%');\n    filter.setAttribute('y', '-100%');\n    filter.setAttribute('width', '300%');\n    filter.setAttribute('height', '300%');\n    this.filterManager = filterManager;\n    var feGaussianBlur = createNS('feGaussianBlur');\n    feGaussianBlur.setAttribute('result', id);\n    filter.appendChild(feGaussianBlur);\n    this.feGaussianBlur = feGaussianBlur;\n  }\n\n  SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n    if (forceRender || this.filterManager._mdf) {\n      // Empirical value, matching AE's blur appearance.\n      var kBlurrinessToSigma = 0.3;\n      var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\n      //\n      //   1 -> horizontal & vertical\n      //   2 -> horizontal only\n      //   3 -> vertical only\n      //\n\n      var dimensions = this.filterManager.effectElements[1].p.v;\n      var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n      var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n      this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\n      //\n      //   0 -> off -> duplicate\n      //   1 -> on  -> wrap\n\n      var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\n\n      this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\n    }\n  };\n\n  registerRenderer('canvas', CanvasRenderer);\n  registerRenderer('html', HybridRenderer);\n  registerRenderer('svg', SVGRenderer); // Registering shape modifiers\n\n  ShapeModifiers.registerModifier('tm', TrimModifier);\n  ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\n  ShapeModifiers.registerModifier('rp', RepeaterModifier);\n  ShapeModifiers.registerModifier('rd', RoundCornersModifier); // Registering expression plugin\n\n  setExpressionsPlugin(Expressions);\n  initialize$1();\n  initialize(); // Registering svg effects\n\n  registerEffect(20, SVGTintFilter, true);\n  registerEffect(21, SVGFillFilter, true);\n  registerEffect(22, SVGStrokeEffect, false);\n  registerEffect(23, SVGTritoneFilter, true);\n  registerEffect(24, SVGProLevelsFilter, true);\n  registerEffect(25, SVGDropShadowEffect, true);\n  registerEffect(28, SVGMatte3Effect, false);\n  registerEffect(29, SVGGaussianBlurEffect, true);\n\n  return lottie;\n\n}));\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n  function shim(props, propName, componentName, location, propFullName, secret) {\n    if (secret === ReactPropTypesSecret) {\n      // It is still safe when called from React.\n      return;\n    }\n    var err = new Error(\n      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n      'Use PropTypes.checkPropTypes() to call them. ' +\n      'Read more at http://fb.me/use-check-prop-types'\n    );\n    err.name = 'Invariant Violation';\n    throw err;\n  };\n  shim.isRequired = shim;\n  function getShim() {\n    return shim;\n  };\n  // Important!\n  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n  var ReactPropTypes = {\n    array: shim,\n    bigint: shim,\n    bool: shim,\n    func: shim,\n    number: shim,\n    object: shim,\n    string: shim,\n    symbol: shim,\n\n    any: shim,\n    arrayOf: getShim,\n    element: shim,\n    elementType: shim,\n    instanceOf: getShim,\n    node: shim,\n    objectOf: getShim,\n    oneOf: getShim,\n    oneOfType: getShim,\n    shape: getShim,\n    exact: getShim,\n\n    checkPropTypes: emptyFunctionWithReset,\n    resetWarningCache: emptyFunction\n  };\n\n  ReactPropTypes.PropTypes = ReactPropTypes;\n\n  return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n  var ReactIs = require('react-is');\n\n  // By explicitly using `prop-types` you are opting into new development behavior.\n  // http://fb.me/prop-types-in-prod\n  var throwOnDirectAccess = true;\n  module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n  // By explicitly using `prop-types` you are opting into new production behavior.\n  // http://fb.me/prop-types-in-prod\n  module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","\nconst canPromise = require('./can-promise')\n\nconst QRCode = require('./core/qrcode')\nconst CanvasRenderer = require('./renderer/canvas')\nconst SvgRenderer = require('./renderer/svg-tag.js')\n\nfunction renderCanvas (renderFunc, canvas, text, opts, cb) {\n  const args = [].slice.call(arguments, 1)\n  const argsNum = args.length\n  const isLastArgCb = typeof args[argsNum - 1] === 'function'\n\n  if (!isLastArgCb && !canPromise()) {\n    throw new Error('Callback required as last argument')\n  }\n\n  if (isLastArgCb) {\n    if (argsNum < 2) {\n      throw new Error('Too few arguments provided')\n    }\n\n    if (argsNum === 2) {\n      cb = text\n      text = canvas\n      canvas = opts = undefined\n    } else if (argsNum === 3) {\n      if (canvas.getContext && typeof cb === 'undefined') {\n        cb = opts\n        opts = undefined\n      } else {\n        cb = opts\n        opts = text\n        text = canvas\n        canvas = undefined\n      }\n    }\n  } else {\n    if (argsNum < 1) {\n      throw new Error('Too few arguments provided')\n    }\n\n    if (argsNum === 1) {\n      text = canvas\n      canvas = opts = undefined\n    } else if (argsNum === 2 && !canvas.getContext) {\n      opts = text\n      text = canvas\n      canvas = undefined\n    }\n\n    return new Promise(function (resolve, reject) {\n      try {\n        const data = QRCode.create(text, opts)\n        resolve(renderFunc(data, canvas, opts))\n      } catch (e) {\n        reject(e)\n      }\n    })\n  }\n\n  try {\n    const data = QRCode.create(text, opts)\n    cb(null, renderFunc(data, canvas, opts))\n  } catch (e) {\n    cb(e)\n  }\n}\n\nexports.create = QRCode.create\nexports.toCanvas = renderCanvas.bind(null, CanvasRenderer.render)\nexports.toDataURL = renderCanvas.bind(null, CanvasRenderer.renderToDataURL)\n\n// only svg for now.\nexports.toString = renderCanvas.bind(null, function (data, _, opts) {\n  return SvgRenderer.render(data, opts)\n})\n","// can-promise has a crash in some versions of react native that dont have\n// standard global objects\n// https://github.com/soldair/node-qrcode/issues/157\n\nmodule.exports = function () {\n  return typeof Promise === 'function' && Promise.prototype && Promise.prototype.then\n}\n","/**\n * Alignment pattern are fixed reference pattern in defined positions\n * in a matrix symbology, which enables the decode software to re-synchronise\n * the coordinate mapping of the image modules in the event of moderate amounts\n * of distortion of the image.\n *\n * Alignment patterns are present only in QR Code symbols of version 2 or larger\n * and their number depends on the symbol version.\n */\n\nconst getSymbolSize = require('./utils').getSymbolSize\n\n/**\n * Calculate the row/column coordinates of the center module of each alignment pattern\n * for the specified QR Code version.\n *\n * The alignment patterns are positioned symmetrically on either side of the diagonal\n * running from the top left corner of the symbol to the bottom right corner.\n *\n * Since positions are simmetrical only half of the coordinates are returned.\n * Each item of the array will represent in turn the x and y coordinate.\n * @see {@link getPositions}\n *\n * @param  {Number} version QR Code version\n * @return {Array}          Array of coordinate\n */\nexports.getRowColCoords = function getRowColCoords (version) {\n  if (version === 1) return []\n\n  const posCount = Math.floor(version / 7) + 2\n  const size = getSymbolSize(version)\n  const intervals = size === 145 ? 26 : Math.ceil((size - 13) / (2 * posCount - 2)) * 2\n  const positions = [size - 7] // Last coord is always (size - 7)\n\n  for (let i = 1; i < posCount - 1; i++) {\n    positions[i] = positions[i - 1] - intervals\n  }\n\n  positions.push(6) // First coord is always 6\n\n  return positions.reverse()\n}\n\n/**\n * Returns an array containing the positions of each alignment pattern.\n * Each array's element represent the center point of the pattern as (x, y) coordinates\n *\n * Coordinates are calculated expanding the row/column coordinates returned by {@link getRowColCoords}\n * and filtering out the items that overlaps with finder pattern\n *\n * @example\n * For a Version 7 symbol {@link getRowColCoords} returns values 6, 22 and 38.\n * The alignment patterns, therefore, are to be centered on (row, column)\n * positions (6,22), (22,6), (22,22), (22,38), (38,22), (38,38).\n * Note that the coordinates (6,6), (6,38), (38,6) are occupied by finder patterns\n * and are not therefore used for alignment patterns.\n *\n * let pos = getPositions(7)\n * // [[6,22], [22,6], [22,22], [22,38], [38,22], [38,38]]\n *\n * @param  {Number} version QR Code version\n * @return {Array}          Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n  const coords = []\n  const pos = exports.getRowColCoords(version)\n  const posLength = pos.length\n\n  for (let i = 0; i < posLength; i++) {\n    for (let j = 0; j < posLength; j++) {\n      // Skip if position is occupied by finder patterns\n      if ((i === 0 && j === 0) || // top-left\n          (i === 0 && j === posLength - 1) || // bottom-left\n          (i === posLength - 1 && j === 0)) { // top-right\n        continue\n      }\n\n      coords.push([pos[i], pos[j]])\n    }\n  }\n\n  return coords\n}\n","const Mode = require('./mode')\n\n/**\n * Array of characters available in alphanumeric mode\n *\n * As per QR Code specification, to each character\n * is assigned a value from 0 to 44 which in this case coincides\n * with the array index\n *\n * @type {Array}\n */\nconst ALPHA_NUM_CHARS = [\n  '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n  'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n  'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',\n  ' ', '$', '%', '*', '+', '-', '.', '/', ':'\n]\n\nfunction AlphanumericData (data) {\n  this.mode = Mode.ALPHANUMERIC\n  this.data = data\n}\n\nAlphanumericData.getBitsLength = function getBitsLength (length) {\n  return 11 * Math.floor(length / 2) + 6 * (length % 2)\n}\n\nAlphanumericData.prototype.getLength = function getLength () {\n  return this.data.length\n}\n\nAlphanumericData.prototype.getBitsLength = function getBitsLength () {\n  return AlphanumericData.getBitsLength(this.data.length)\n}\n\nAlphanumericData.prototype.write = function write (bitBuffer) {\n  let i\n\n  // Input data characters are divided into groups of two characters\n  // and encoded as 11-bit binary codes.\n  for (i = 0; i + 2 <= this.data.length; i += 2) {\n    // The character value of the first character is multiplied by 45\n    let value = ALPHA_NUM_CHARS.indexOf(this.data[i]) * 45\n\n    // The character value of the second digit is added to the product\n    value += ALPHA_NUM_CHARS.indexOf(this.data[i + 1])\n\n    // The sum is then stored as 11-bit binary number\n    bitBuffer.put(value, 11)\n  }\n\n  // If the number of input data characters is not a multiple of two,\n  // the character value of the final character is encoded as a 6-bit binary number.\n  if (this.data.length % 2) {\n    bitBuffer.put(ALPHA_NUM_CHARS.indexOf(this.data[i]), 6)\n  }\n}\n\nmodule.exports = AlphanumericData\n","function BitBuffer () {\n  this.buffer = []\n  this.length = 0\n}\n\nBitBuffer.prototype = {\n\n  get: function (index) {\n    const bufIndex = Math.floor(index / 8)\n    return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1) === 1\n  },\n\n  put: function (num, length) {\n    for (let i = 0; i < length; i++) {\n      this.putBit(((num >>> (length - i - 1)) & 1) === 1)\n    }\n  },\n\n  getLengthInBits: function () {\n    return this.length\n  },\n\n  putBit: function (bit) {\n    const bufIndex = Math.floor(this.length / 8)\n    if (this.buffer.length <= bufIndex) {\n      this.buffer.push(0)\n    }\n\n    if (bit) {\n      this.buffer[bufIndex] |= (0x80 >>> (this.length % 8))\n    }\n\n    this.length++\n  }\n}\n\nmodule.exports = BitBuffer\n","/**\n * Helper class to handle QR Code symbol modules\n *\n * @param {Number} size Symbol size\n */\nfunction BitMatrix (size) {\n  if (!size || size < 1) {\n    throw new Error('BitMatrix size must be defined and greater than 0')\n  }\n\n  this.size = size\n  this.data = new Uint8Array(size * size)\n  this.reservedBit = new Uint8Array(size * size)\n}\n\n/**\n * Set bit value at specified location\n * If reserved flag is set, this bit will be ignored during masking process\n *\n * @param {Number}  row\n * @param {Number}  col\n * @param {Boolean} value\n * @param {Boolean} reserved\n */\nBitMatrix.prototype.set = function (row, col, value, reserved) {\n  const index = row * this.size + col\n  this.data[index] = value\n  if (reserved) this.reservedBit[index] = true\n}\n\n/**\n * Returns bit value at specified location\n *\n * @param  {Number}  row\n * @param  {Number}  col\n * @return {Boolean}\n */\nBitMatrix.prototype.get = function (row, col) {\n  return this.data[row * this.size + col]\n}\n\n/**\n * Applies xor operator at specified location\n * (used during masking process)\n *\n * @param {Number}  row\n * @param {Number}  col\n * @param {Boolean} value\n */\nBitMatrix.prototype.xor = function (row, col, value) {\n  this.data[row * this.size + col] ^= value\n}\n\n/**\n * Check if bit at specified location is reserved\n *\n * @param {Number}   row\n * @param {Number}   col\n * @return {Boolean}\n */\nBitMatrix.prototype.isReserved = function (row, col) {\n  return this.reservedBit[row * this.size + col]\n}\n\nmodule.exports = BitMatrix\n","const encodeUtf8 = require('encode-utf8')\nconst Mode = require('./mode')\n\nfunction ByteData (data) {\n  this.mode = Mode.BYTE\n  if (typeof (data) === 'string') {\n    data = encodeUtf8(data)\n  }\n  this.data = new Uint8Array(data)\n}\n\nByteData.getBitsLength = function getBitsLength (length) {\n  return length * 8\n}\n\nByteData.prototype.getLength = function getLength () {\n  return this.data.length\n}\n\nByteData.prototype.getBitsLength = function getBitsLength () {\n  return ByteData.getBitsLength(this.data.length)\n}\n\nByteData.prototype.write = function (bitBuffer) {\n  for (let i = 0, l = this.data.length; i < l; i++) {\n    bitBuffer.put(this.data[i], 8)\n  }\n}\n\nmodule.exports = ByteData\n","const ECLevel = require('./error-correction-level')\r\n\r\nconst EC_BLOCKS_TABLE = [\r\n// L  M  Q  H\r\n  1, 1, 1, 1,\r\n  1, 1, 1, 1,\r\n  1, 1, 2, 2,\r\n  1, 2, 2, 4,\r\n  1, 2, 4, 4,\r\n  2, 4, 4, 4,\r\n  2, 4, 6, 5,\r\n  2, 4, 6, 6,\r\n  2, 5, 8, 8,\r\n  4, 5, 8, 8,\r\n  4, 5, 8, 11,\r\n  4, 8, 10, 11,\r\n  4, 9, 12, 16,\r\n  4, 9, 16, 16,\r\n  6, 10, 12, 18,\r\n  6, 10, 17, 16,\r\n  6, 11, 16, 19,\r\n  6, 13, 18, 21,\r\n  7, 14, 21, 25,\r\n  8, 16, 20, 25,\r\n  8, 17, 23, 25,\r\n  9, 17, 23, 34,\r\n  9, 18, 25, 30,\r\n  10, 20, 27, 32,\r\n  12, 21, 29, 35,\r\n  12, 23, 34, 37,\r\n  12, 25, 34, 40,\r\n  13, 26, 35, 42,\r\n  14, 28, 38, 45,\r\n  15, 29, 40, 48,\r\n  16, 31, 43, 51,\r\n  17, 33, 45, 54,\r\n  18, 35, 48, 57,\r\n  19, 37, 51, 60,\r\n  19, 38, 53, 63,\r\n  20, 40, 56, 66,\r\n  21, 43, 59, 70,\r\n  22, 45, 62, 74,\r\n  24, 47, 65, 77,\r\n  25, 49, 68, 81\r\n]\r\n\r\nconst EC_CODEWORDS_TABLE = [\r\n// L  M  Q  H\r\n  7, 10, 13, 17,\r\n  10, 16, 22, 28,\r\n  15, 26, 36, 44,\r\n  20, 36, 52, 64,\r\n  26, 48, 72, 88,\r\n  36, 64, 96, 112,\r\n  40, 72, 108, 130,\r\n  48, 88, 132, 156,\r\n  60, 110, 160, 192,\r\n  72, 130, 192, 224,\r\n  80, 150, 224, 264,\r\n  96, 176, 260, 308,\r\n  104, 198, 288, 352,\r\n  120, 216, 320, 384,\r\n  132, 240, 360, 432,\r\n  144, 280, 408, 480,\r\n  168, 308, 448, 532,\r\n  180, 338, 504, 588,\r\n  196, 364, 546, 650,\r\n  224, 416, 600, 700,\r\n  224, 442, 644, 750,\r\n  252, 476, 690, 816,\r\n  270, 504, 750, 900,\r\n  300, 560, 810, 960,\r\n  312, 588, 870, 1050,\r\n  336, 644, 952, 1110,\r\n  360, 700, 1020, 1200,\r\n  390, 728, 1050, 1260,\r\n  420, 784, 1140, 1350,\r\n  450, 812, 1200, 1440,\r\n  480, 868, 1290, 1530,\r\n  510, 924, 1350, 1620,\r\n  540, 980, 1440, 1710,\r\n  570, 1036, 1530, 1800,\r\n  570, 1064, 1590, 1890,\r\n  600, 1120, 1680, 1980,\r\n  630, 1204, 1770, 2100,\r\n  660, 1260, 1860, 2220,\r\n  720, 1316, 1950, 2310,\r\n  750, 1372, 2040, 2430\r\n]\r\n\r\n/**\r\n * Returns the number of error correction block that the QR Code should contain\r\n * for the specified version and error correction level.\r\n *\r\n * @param  {Number} version              QR Code version\r\n * @param  {Number} errorCorrectionLevel Error correction level\r\n * @return {Number}                      Number of error correction blocks\r\n */\r\nexports.getBlocksCount = function getBlocksCount (version, errorCorrectionLevel) {\r\n  switch (errorCorrectionLevel) {\r\n    case ECLevel.L:\r\n      return EC_BLOCKS_TABLE[(version - 1) * 4 + 0]\r\n    case ECLevel.M:\r\n      return EC_BLOCKS_TABLE[(version - 1) * 4 + 1]\r\n    case ECLevel.Q:\r\n      return EC_BLOCKS_TABLE[(version - 1) * 4 + 2]\r\n    case ECLevel.H:\r\n      return EC_BLOCKS_TABLE[(version - 1) * 4 + 3]\r\n    default:\r\n      return undefined\r\n  }\r\n}\r\n\r\n/**\r\n * Returns the number of error correction codewords to use for the specified\r\n * version and error correction level.\r\n *\r\n * @param  {Number} version              QR Code version\r\n * @param  {Number} errorCorrectionLevel Error correction level\r\n * @return {Number}                      Number of error correction codewords\r\n */\r\nexports.getTotalCodewordsCount = function getTotalCodewordsCount (version, errorCorrectionLevel) {\r\n  switch (errorCorrectionLevel) {\r\n    case ECLevel.L:\r\n      return EC_CODEWORDS_TABLE[(version - 1) * 4 + 0]\r\n    case ECLevel.M:\r\n      return EC_CODEWORDS_TABLE[(version - 1) * 4 + 1]\r\n    case ECLevel.Q:\r\n      return EC_CODEWORDS_TABLE[(version - 1) * 4 + 2]\r\n    case ECLevel.H:\r\n      return EC_CODEWORDS_TABLE[(version - 1) * 4 + 3]\r\n    default:\r\n      return undefined\r\n  }\r\n}\r\n","exports.L = { bit: 1 }\nexports.M = { bit: 0 }\nexports.Q = { bit: 3 }\nexports.H = { bit: 2 }\n\nfunction fromString (string) {\n  if (typeof string !== 'string') {\n    throw new Error('Param is not a string')\n  }\n\n  const lcStr = string.toLowerCase()\n\n  switch (lcStr) {\n    case 'l':\n    case 'low':\n      return exports.L\n\n    case 'm':\n    case 'medium':\n      return exports.M\n\n    case 'q':\n    case 'quartile':\n      return exports.Q\n\n    case 'h':\n    case 'high':\n      return exports.H\n\n    default:\n      throw new Error('Unknown EC Level: ' + string)\n  }\n}\n\nexports.isValid = function isValid (level) {\n  return level && typeof level.bit !== 'undefined' &&\n    level.bit >= 0 && level.bit < 4\n}\n\nexports.from = function from (value, defaultValue) {\n  if (exports.isValid(value)) {\n    return value\n  }\n\n  try {\n    return fromString(value)\n  } catch (e) {\n    return defaultValue\n  }\n}\n","const getSymbolSize = require('./utils').getSymbolSize\nconst FINDER_PATTERN_SIZE = 7\n\n/**\n * Returns an array containing the positions of each finder pattern.\n * Each array's element represent the top-left point of the pattern as (x, y) coordinates\n *\n * @param  {Number} version QR Code version\n * @return {Array}          Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n  const size = getSymbolSize(version)\n\n  return [\n    // top-left\n    [0, 0],\n    // top-right\n    [size - FINDER_PATTERN_SIZE, 0],\n    // bottom-left\n    [0, size - FINDER_PATTERN_SIZE]\n  ]\n}\n","const Utils = require('./utils')\n\nconst G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0)\nconst G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1)\nconst G15_BCH = Utils.getBCHDigit(G15)\n\n/**\n * Returns format information with relative error correction bits\n *\n * The format information is a 15-bit sequence containing 5 data bits,\n * with 10 error correction bits calculated using the (15, 5) BCH code.\n *\n * @param  {Number} errorCorrectionLevel Error correction level\n * @param  {Number} mask                 Mask pattern\n * @return {Number}                      Encoded format information bits\n */\nexports.getEncodedBits = function getEncodedBits (errorCorrectionLevel, mask) {\n  const data = ((errorCorrectionLevel.bit << 3) | mask)\n  let d = data << 10\n\n  while (Utils.getBCHDigit(d) - G15_BCH >= 0) {\n    d ^= (G15 << (Utils.getBCHDigit(d) - G15_BCH))\n  }\n\n  // xor final data with mask pattern in order to ensure that\n  // no combination of Error Correction Level and data mask pattern\n  // will result in an all-zero data string\n  return ((data << 10) | d) ^ G15_MASK\n}\n","const EXP_TABLE = new Uint8Array(512)\nconst LOG_TABLE = new Uint8Array(256)\n/**\n * Precompute the log and anti-log tables for faster computation later\n *\n * For each possible value in the galois field 2^8, we will pre-compute\n * the logarithm and anti-logarithm (exponential) of this value\n *\n * ref {@link https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders#Introduction_to_mathematical_fields}\n */\n;(function initTables () {\n  let x = 1\n  for (let i = 0; i < 255; i++) {\n    EXP_TABLE[i] = x\n    LOG_TABLE[x] = i\n\n    x <<= 1 // multiply by 2\n\n    // The QR code specification says to use byte-wise modulo 100011101 arithmetic.\n    // This means that when a number is 256 or larger, it should be XORed with 0x11D.\n    if (x & 0x100) { // similar to x >= 256, but a lot faster (because 0x100 == 256)\n      x ^= 0x11D\n    }\n  }\n\n  // Optimization: double the size of the anti-log table so that we don't need to mod 255 to\n  // stay inside the bounds (because we will mainly use this table for the multiplication of\n  // two GF numbers, no more).\n  // @see {@link mul}\n  for (let i = 255; i < 512; i++) {\n    EXP_TABLE[i] = EXP_TABLE[i - 255]\n  }\n}())\n\n/**\n * Returns log value of n inside Galois Field\n *\n * @param  {Number} n\n * @return {Number}\n */\nexports.log = function log (n) {\n  if (n < 1) throw new Error('log(' + n + ')')\n  return LOG_TABLE[n]\n}\n\n/**\n * Returns anti-log value of n inside Galois Field\n *\n * @param  {Number} n\n * @return {Number}\n */\nexports.exp = function exp (n) {\n  return EXP_TABLE[n]\n}\n\n/**\n * Multiplies two number inside Galois Field\n *\n * @param  {Number} x\n * @param  {Number} y\n * @return {Number}\n */\nexports.mul = function mul (x, y) {\n  if (x === 0 || y === 0) return 0\n\n  // should be EXP_TABLE[(LOG_TABLE[x] + LOG_TABLE[y]) % 255] if EXP_TABLE wasn't oversized\n  // @see {@link initTables}\n  return EXP_TABLE[LOG_TABLE[x] + LOG_TABLE[y]]\n}\n","const Mode = require('./mode')\nconst Utils = require('./utils')\n\nfunction KanjiData (data) {\n  this.mode = Mode.KANJI\n  this.data = data\n}\n\nKanjiData.getBitsLength = function getBitsLength (length) {\n  return length * 13\n}\n\nKanjiData.prototype.getLength = function getLength () {\n  return this.data.length\n}\n\nKanjiData.prototype.getBitsLength = function getBitsLength () {\n  return KanjiData.getBitsLength(this.data.length)\n}\n\nKanjiData.prototype.write = function (bitBuffer) {\n  let i\n\n  // In the Shift JIS system, Kanji characters are represented by a two byte combination.\n  // These byte values are shifted from the JIS X 0208 values.\n  // JIS X 0208 gives details of the shift coded representation.\n  for (i = 0; i < this.data.length; i++) {\n    let value = Utils.toSJIS(this.data[i])\n\n    // For characters with Shift JIS values from 0x8140 to 0x9FFC:\n    if (value >= 0x8140 && value <= 0x9FFC) {\n      // Subtract 0x8140 from Shift JIS value\n      value -= 0x8140\n\n    // For characters with Shift JIS values from 0xE040 to 0xEBBF\n    } else if (value >= 0xE040 && value <= 0xEBBF) {\n      // Subtract 0xC140 from Shift JIS value\n      value -= 0xC140\n    } else {\n      throw new Error(\n        'Invalid SJIS character: ' + this.data[i] + '\\n' +\n        'Make sure your charset is UTF-8')\n    }\n\n    // Multiply most significant byte of result by 0xC0\n    // and add least significant byte to product\n    value = (((value >>> 8) & 0xff) * 0xC0) + (value & 0xff)\n\n    // Convert result to a 13-bit binary string\n    bitBuffer.put(value, 13)\n  }\n}\n\nmodule.exports = KanjiData\n","/**\n * Data mask pattern reference\n * @type {Object}\n */\nexports.Patterns = {\n  PATTERN000: 0,\n  PATTERN001: 1,\n  PATTERN010: 2,\n  PATTERN011: 3,\n  PATTERN100: 4,\n  PATTERN101: 5,\n  PATTERN110: 6,\n  PATTERN111: 7\n}\n\n/**\n * Weighted penalty scores for the undesirable features\n * @type {Object}\n */\nconst PenaltyScores = {\n  N1: 3,\n  N2: 3,\n  N3: 40,\n  N4: 10\n}\n\n/**\n * Check if mask pattern value is valid\n *\n * @param  {Number}  mask    Mask pattern\n * @return {Boolean}         true if valid, false otherwise\n */\nexports.isValid = function isValid (mask) {\n  return mask != null && mask !== '' && !isNaN(mask) && mask >= 0 && mask <= 7\n}\n\n/**\n * Returns mask pattern from a value.\n * If value is not valid, returns undefined\n *\n * @param  {Number|String} value        Mask pattern value\n * @return {Number}                     Valid mask pattern or undefined\n */\nexports.from = function from (value) {\n  return exports.isValid(value) ? parseInt(value, 10) : undefined\n}\n\n/**\n* Find adjacent modules in row/column with the same color\n* and assign a penalty value.\n*\n* Points: N1 + i\n* i is the amount by which the number of adjacent modules of the same color exceeds 5\n*/\nexports.getPenaltyN1 = function getPenaltyN1 (data) {\n  const size = data.size\n  let points = 0\n  let sameCountCol = 0\n  let sameCountRow = 0\n  let lastCol = null\n  let lastRow = null\n\n  for (let row = 0; row < size; row++) {\n    sameCountCol = sameCountRow = 0\n    lastCol = lastRow = null\n\n    for (let col = 0; col < size; col++) {\n      let module = data.get(row, col)\n      if (module === lastCol) {\n        sameCountCol++\n      } else {\n        if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n        lastCol = module\n        sameCountCol = 1\n      }\n\n      module = data.get(col, row)\n      if (module === lastRow) {\n        sameCountRow++\n      } else {\n        if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n        lastRow = module\n        sameCountRow = 1\n      }\n    }\n\n    if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n    if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n  }\n\n  return points\n}\n\n/**\n * Find 2x2 blocks with the same color and assign a penalty value\n *\n * Points: N2 * (m - 1) * (n - 1)\n */\nexports.getPenaltyN2 = function getPenaltyN2 (data) {\n  const size = data.size\n  let points = 0\n\n  for (let row = 0; row < size - 1; row++) {\n    for (let col = 0; col < size - 1; col++) {\n      const last = data.get(row, col) +\n        data.get(row, col + 1) +\n        data.get(row + 1, col) +\n        data.get(row + 1, col + 1)\n\n      if (last === 4 || last === 0) points++\n    }\n  }\n\n  return points * PenaltyScores.N2\n}\n\n/**\n * Find 1:1:3:1:1 ratio (dark:light:dark:light:dark) pattern in row/column,\n * preceded or followed by light area 4 modules wide\n *\n * Points: N3 * number of pattern found\n */\nexports.getPenaltyN3 = function getPenaltyN3 (data) {\n  const size = data.size\n  let points = 0\n  let bitsCol = 0\n  let bitsRow = 0\n\n  for (let row = 0; row < size; row++) {\n    bitsCol = bitsRow = 0\n    for (let col = 0; col < size; col++) {\n      bitsCol = ((bitsCol << 1) & 0x7FF) | data.get(row, col)\n      if (col >= 10 && (bitsCol === 0x5D0 || bitsCol === 0x05D)) points++\n\n      bitsRow = ((bitsRow << 1) & 0x7FF) | data.get(col, row)\n      if (col >= 10 && (bitsRow === 0x5D0 || bitsRow === 0x05D)) points++\n    }\n  }\n\n  return points * PenaltyScores.N3\n}\n\n/**\n * Calculate proportion of dark modules in entire symbol\n *\n * Points: N4 * k\n *\n * k is the rating of the deviation of the proportion of dark modules\n * in the symbol from 50% in steps of 5%\n */\nexports.getPenaltyN4 = function getPenaltyN4 (data) {\n  let darkCount = 0\n  const modulesCount = data.data.length\n\n  for (let i = 0; i < modulesCount; i++) darkCount += data.data[i]\n\n  const k = Math.abs(Math.ceil((darkCount * 100 / modulesCount) / 5) - 10)\n\n  return k * PenaltyScores.N4\n}\n\n/**\n * Return mask value at given position\n *\n * @param  {Number} maskPattern Pattern reference value\n * @param  {Number} i           Row\n * @param  {Number} j           Column\n * @return {Boolean}            Mask value\n */\nfunction getMaskAt (maskPattern, i, j) {\n  switch (maskPattern) {\n    case exports.Patterns.PATTERN000: return (i + j) % 2 === 0\n    case exports.Patterns.PATTERN001: return i % 2 === 0\n    case exports.Patterns.PATTERN010: return j % 3 === 0\n    case exports.Patterns.PATTERN011: return (i + j) % 3 === 0\n    case exports.Patterns.PATTERN100: return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0\n    case exports.Patterns.PATTERN101: return (i * j) % 2 + (i * j) % 3 === 0\n    case exports.Patterns.PATTERN110: return ((i * j) % 2 + (i * j) % 3) % 2 === 0\n    case exports.Patterns.PATTERN111: return ((i * j) % 3 + (i + j) % 2) % 2 === 0\n\n    default: throw new Error('bad maskPattern:' + maskPattern)\n  }\n}\n\n/**\n * Apply a mask pattern to a BitMatrix\n *\n * @param  {Number}    pattern Pattern reference number\n * @param  {BitMatrix} data    BitMatrix data\n */\nexports.applyMask = function applyMask (pattern, data) {\n  const size = data.size\n\n  for (let col = 0; col < size; col++) {\n    for (let row = 0; row < size; row++) {\n      if (data.isReserved(row, col)) continue\n      data.xor(row, col, getMaskAt(pattern, row, col))\n    }\n  }\n}\n\n/**\n * Returns the best mask pattern for data\n *\n * @param  {BitMatrix} data\n * @return {Number} Mask pattern reference number\n */\nexports.getBestMask = function getBestMask (data, setupFormatFunc) {\n  const numPatterns = Object.keys(exports.Patterns).length\n  let bestPattern = 0\n  let lowerPenalty = Infinity\n\n  for (let p = 0; p < numPatterns; p++) {\n    setupFormatFunc(p)\n    exports.applyMask(p, data)\n\n    // Calculate penalty\n    const penalty =\n      exports.getPenaltyN1(data) +\n      exports.getPenaltyN2(data) +\n      exports.getPenaltyN3(data) +\n      exports.getPenaltyN4(data)\n\n    // Undo previously applied mask\n    exports.applyMask(p, data)\n\n    if (penalty < lowerPenalty) {\n      lowerPenalty = penalty\n      bestPattern = p\n    }\n  }\n\n  return bestPattern\n}\n","const VersionCheck = require('./version-check')\nconst Regex = require('./regex')\n\n/**\n * Numeric mode encodes data from the decimal digit set (0 - 9)\n * (byte values 30HEX to 39HEX).\n * Normally, 3 data characters are represented by 10 bits.\n *\n * @type {Object}\n */\nexports.NUMERIC = {\n  id: 'Numeric',\n  bit: 1 << 0,\n  ccBits: [10, 12, 14]\n}\n\n/**\n * Alphanumeric mode encodes data from a set of 45 characters,\n * i.e. 10 numeric digits (0 - 9),\n *      26 alphabetic characters (A - Z),\n *   and 9 symbols (SP, $, %, *, +, -, ., /, :).\n * Normally, two input characters are represented by 11 bits.\n *\n * @type {Object}\n */\nexports.ALPHANUMERIC = {\n  id: 'Alphanumeric',\n  bit: 1 << 1,\n  ccBits: [9, 11, 13]\n}\n\n/**\n * In byte mode, data is encoded at 8 bits per character.\n *\n * @type {Object}\n */\nexports.BYTE = {\n  id: 'Byte',\n  bit: 1 << 2,\n  ccBits: [8, 16, 16]\n}\n\n/**\n * The Kanji mode efficiently encodes Kanji characters in accordance with\n * the Shift JIS system based on JIS X 0208.\n * The Shift JIS values are shifted from the JIS X 0208 values.\n * JIS X 0208 gives details of the shift coded representation.\n * Each two-byte character value is compacted to a 13-bit binary codeword.\n *\n * @type {Object}\n */\nexports.KANJI = {\n  id: 'Kanji',\n  bit: 1 << 3,\n  ccBits: [8, 10, 12]\n}\n\n/**\n * Mixed mode will contain a sequences of data in a combination of any of\n * the modes described above\n *\n * @type {Object}\n */\nexports.MIXED = {\n  bit: -1\n}\n\n/**\n * Returns the number of bits needed to store the data length\n * according to QR Code specifications.\n *\n * @param  {Mode}   mode    Data mode\n * @param  {Number} version QR Code version\n * @return {Number}         Number of bits\n */\nexports.getCharCountIndicator = function getCharCountIndicator (mode, version) {\n  if (!mode.ccBits) throw new Error('Invalid mode: ' + mode)\n\n  if (!VersionCheck.isValid(version)) {\n    throw new Error('Invalid version: ' + version)\n  }\n\n  if (version >= 1 && version < 10) return mode.ccBits[0]\n  else if (version < 27) return mode.ccBits[1]\n  return mode.ccBits[2]\n}\n\n/**\n * Returns the most efficient mode to store the specified data\n *\n * @param  {String} dataStr Input data string\n * @return {Mode}           Best mode\n */\nexports.getBestModeForData = function getBestModeForData (dataStr) {\n  if (Regex.testNumeric(dataStr)) return exports.NUMERIC\n  else if (Regex.testAlphanumeric(dataStr)) return exports.ALPHANUMERIC\n  else if (Regex.testKanji(dataStr)) return exports.KANJI\n  else return exports.BYTE\n}\n\n/**\n * Return mode name as string\n *\n * @param {Mode} mode Mode object\n * @returns {String}  Mode name\n */\nexports.toString = function toString (mode) {\n  if (mode && mode.id) return mode.id\n  throw new Error('Invalid mode')\n}\n\n/**\n * Check if input param is a valid mode object\n *\n * @param   {Mode}    mode Mode object\n * @returns {Boolean} True if valid mode, false otherwise\n */\nexports.isValid = function isValid (mode) {\n  return mode && mode.bit && mode.ccBits\n}\n\n/**\n * Get mode object from its name\n *\n * @param   {String} string Mode name\n * @returns {Mode}          Mode object\n */\nfunction fromString (string) {\n  if (typeof string !== 'string') {\n    throw new Error('Param is not a string')\n  }\n\n  const lcStr = string.toLowerCase()\n\n  switch (lcStr) {\n    case 'numeric':\n      return exports.NUMERIC\n    case 'alphanumeric':\n      return exports.ALPHANUMERIC\n    case 'kanji':\n      return exports.KANJI\n    case 'byte':\n      return exports.BYTE\n    default:\n      throw new Error('Unknown mode: ' + string)\n  }\n}\n\n/**\n * Returns mode from a value.\n * If value is not a valid mode, returns defaultValue\n *\n * @param  {Mode|String} value        Encoding mode\n * @param  {Mode}        defaultValue Fallback value\n * @return {Mode}                     Encoding mode\n */\nexports.from = function from (value, defaultValue) {\n  if (exports.isValid(value)) {\n    return value\n  }\n\n  try {\n    return fromString(value)\n  } catch (e) {\n    return defaultValue\n  }\n}\n","const Mode = require('./mode')\n\nfunction NumericData (data) {\n  this.mode = Mode.NUMERIC\n  this.data = data.toString()\n}\n\nNumericData.getBitsLength = function getBitsLength (length) {\n  return 10 * Math.floor(length / 3) + ((length % 3) ? ((length % 3) * 3 + 1) : 0)\n}\n\nNumericData.prototype.getLength = function getLength () {\n  return this.data.length\n}\n\nNumericData.prototype.getBitsLength = function getBitsLength () {\n  return NumericData.getBitsLength(this.data.length)\n}\n\nNumericData.prototype.write = function write (bitBuffer) {\n  let i, group, value\n\n  // The input data string is divided into groups of three digits,\n  // and each group is converted to its 10-bit binary equivalent.\n  for (i = 0; i + 3 <= this.data.length; i += 3) {\n    group = this.data.substr(i, 3)\n    value = parseInt(group, 10)\n\n    bitBuffer.put(value, 10)\n  }\n\n  // If the number of input digits is not an exact multiple of three,\n  // the final one or two digits are converted to 4 or 7 bits respectively.\n  const remainingNum = this.data.length - i\n  if (remainingNum > 0) {\n    group = this.data.substr(i)\n    value = parseInt(group, 10)\n\n    bitBuffer.put(value, remainingNum * 3 + 1)\n  }\n}\n\nmodule.exports = NumericData\n","const GF = require('./galois-field')\n\n/**\n * Multiplies two polynomials inside Galois Field\n *\n * @param  {Uint8Array} p1 Polynomial\n * @param  {Uint8Array} p2 Polynomial\n * @return {Uint8Array}    Product of p1 and p2\n */\nexports.mul = function mul (p1, p2) {\n  const coeff = new Uint8Array(p1.length + p2.length - 1)\n\n  for (let i = 0; i < p1.length; i++) {\n    for (let j = 0; j < p2.length; j++) {\n      coeff[i + j] ^= GF.mul(p1[i], p2[j])\n    }\n  }\n\n  return coeff\n}\n\n/**\n * Calculate the remainder of polynomials division\n *\n * @param  {Uint8Array} divident Polynomial\n * @param  {Uint8Array} divisor  Polynomial\n * @return {Uint8Array}          Remainder\n */\nexports.mod = function mod (divident, divisor) {\n  let result = new Uint8Array(divident)\n\n  while ((result.length - divisor.length) >= 0) {\n    const coeff = result[0]\n\n    for (let i = 0; i < divisor.length; i++) {\n      result[i] ^= GF.mul(divisor[i], coeff)\n    }\n\n    // remove all zeros from buffer head\n    let offset = 0\n    while (offset < result.length && result[offset] === 0) offset++\n    result = result.slice(offset)\n  }\n\n  return result\n}\n\n/**\n * Generate an irreducible generator polynomial of specified degree\n * (used by Reed-Solomon encoder)\n *\n * @param  {Number} degree Degree of the generator polynomial\n * @return {Uint8Array}    Buffer containing polynomial coefficients\n */\nexports.generateECPolynomial = function generateECPolynomial (degree) {\n  let poly = new Uint8Array([1])\n  for (let i = 0; i < degree; i++) {\n    poly = exports.mul(poly, new Uint8Array([1, GF.exp(i)]))\n  }\n\n  return poly\n}\n","const Utils = require('./utils')\nconst ECLevel = require('./error-correction-level')\nconst BitBuffer = require('./bit-buffer')\nconst BitMatrix = require('./bit-matrix')\nconst AlignmentPattern = require('./alignment-pattern')\nconst FinderPattern = require('./finder-pattern')\nconst MaskPattern = require('./mask-pattern')\nconst ECCode = require('./error-correction-code')\nconst ReedSolomonEncoder = require('./reed-solomon-encoder')\nconst Version = require('./version')\nconst FormatInfo = require('./format-info')\nconst Mode = require('./mode')\nconst Segments = require('./segments')\n\n/**\n * QRCode for JavaScript\n *\n * modified by Ryan Day for nodejs support\n * Copyright (c) 2011 Ryan Day\n *\n * Licensed under the MIT license:\n *   http://www.opensource.org/licenses/mit-license.php\n *\n//---------------------------------------------------------------------\n// QRCode for JavaScript\n//\n// Copyright (c) 2009 Kazuhiko Arase\n//\n// URL: http://www.d-project.com/\n//\n// Licensed under the MIT license:\n//   http://www.opensource.org/licenses/mit-license.php\n//\n// The word \"QR Code\" is registered trademark of\n// DENSO WAVE INCORPORATED\n//   http://www.denso-wave.com/qrcode/faqpatent-e.html\n//\n//---------------------------------------------------------------------\n*/\n\n/**\n * Add finder patterns bits to matrix\n *\n * @param  {BitMatrix} matrix  Modules matrix\n * @param  {Number}    version QR Code version\n */\nfunction setupFinderPattern (matrix, version) {\n  const size = matrix.size\n  const pos = FinderPattern.getPositions(version)\n\n  for (let i = 0; i < pos.length; i++) {\n    const row = pos[i][0]\n    const col = pos[i][1]\n\n    for (let r = -1; r <= 7; r++) {\n      if (row + r <= -1 || size <= row + r) continue\n\n      for (let c = -1; c <= 7; c++) {\n        if (col + c <= -1 || size <= col + c) continue\n\n        if ((r >= 0 && r <= 6 && (c === 0 || c === 6)) ||\n          (c >= 0 && c <= 6 && (r === 0 || r === 6)) ||\n          (r >= 2 && r <= 4 && c >= 2 && c <= 4)) {\n          matrix.set(row + r, col + c, true, true)\n        } else {\n          matrix.set(row + r, col + c, false, true)\n        }\n      }\n    }\n  }\n}\n\n/**\n * Add timing pattern bits to matrix\n *\n * Note: this function must be called before {@link setupAlignmentPattern}\n *\n * @param  {BitMatrix} matrix Modules matrix\n */\nfunction setupTimingPattern (matrix) {\n  const size = matrix.size\n\n  for (let r = 8; r < size - 8; r++) {\n    const value = r % 2 === 0\n    matrix.set(r, 6, value, true)\n    matrix.set(6, r, value, true)\n  }\n}\n\n/**\n * Add alignment patterns bits to matrix\n *\n * Note: this function must be called after {@link setupTimingPattern}\n *\n * @param  {BitMatrix} matrix  Modules matrix\n * @param  {Number}    version QR Code version\n */\nfunction setupAlignmentPattern (matrix, version) {\n  const pos = AlignmentPattern.getPositions(version)\n\n  for (let i = 0; i < pos.length; i++) {\n    const row = pos[i][0]\n    const col = pos[i][1]\n\n    for (let r = -2; r <= 2; r++) {\n      for (let c = -2; c <= 2; c++) {\n        if (r === -2 || r === 2 || c === -2 || c === 2 ||\n          (r === 0 && c === 0)) {\n          matrix.set(row + r, col + c, true, true)\n        } else {\n          matrix.set(row + r, col + c, false, true)\n        }\n      }\n    }\n  }\n}\n\n/**\n * Add version info bits to matrix\n *\n * @param  {BitMatrix} matrix  Modules matrix\n * @param  {Number}    version QR Code version\n */\nfunction setupVersionInfo (matrix, version) {\n  const size = matrix.size\n  const bits = Version.getEncodedBits(version)\n  let row, col, mod\n\n  for (let i = 0; i < 18; i++) {\n    row = Math.floor(i / 3)\n    col = i % 3 + size - 8 - 3\n    mod = ((bits >> i) & 1) === 1\n\n    matrix.set(row, col, mod, true)\n    matrix.set(col, row, mod, true)\n  }\n}\n\n/**\n * Add format info bits to matrix\n *\n * @param  {BitMatrix} matrix               Modules matrix\n * @param  {ErrorCorrectionLevel}    errorCorrectionLevel Error correction level\n * @param  {Number}    maskPattern          Mask pattern reference value\n */\nfunction setupFormatInfo (matrix, errorCorrectionLevel, maskPattern) {\n  const size = matrix.size\n  const bits = FormatInfo.getEncodedBits(errorCorrectionLevel, maskPattern)\n  let i, mod\n\n  for (i = 0; i < 15; i++) {\n    mod = ((bits >> i) & 1) === 1\n\n    // vertical\n    if (i < 6) {\n      matrix.set(i, 8, mod, true)\n    } else if (i < 8) {\n      matrix.set(i + 1, 8, mod, true)\n    } else {\n      matrix.set(size - 15 + i, 8, mod, true)\n    }\n\n    // horizontal\n    if (i < 8) {\n      matrix.set(8, size - i - 1, mod, true)\n    } else if (i < 9) {\n      matrix.set(8, 15 - i - 1 + 1, mod, true)\n    } else {\n      matrix.set(8, 15 - i - 1, mod, true)\n    }\n  }\n\n  // fixed module\n  matrix.set(size - 8, 8, 1, true)\n}\n\n/**\n * Add encoded data bits to matrix\n *\n * @param  {BitMatrix}  matrix Modules matrix\n * @param  {Uint8Array} data   Data codewords\n */\nfunction setupData (matrix, data) {\n  const size = matrix.size\n  let inc = -1\n  let row = size - 1\n  let bitIndex = 7\n  let byteIndex = 0\n\n  for (let col = size - 1; col > 0; col -= 2) {\n    if (col === 6) col--\n\n    while (true) {\n      for (let c = 0; c < 2; c++) {\n        if (!matrix.isReserved(row, col - c)) {\n          let dark = false\n\n          if (byteIndex < data.length) {\n            dark = (((data[byteIndex] >>> bitIndex) & 1) === 1)\n          }\n\n          matrix.set(row, col - c, dark)\n          bitIndex--\n\n          if (bitIndex === -1) {\n            byteIndex++\n            bitIndex = 7\n          }\n        }\n      }\n\n      row += inc\n\n      if (row < 0 || size <= row) {\n        row -= inc\n        inc = -inc\n        break\n      }\n    }\n  }\n}\n\n/**\n * Create encoded codewords from data input\n *\n * @param  {Number}   version              QR Code version\n * @param  {ErrorCorrectionLevel}   errorCorrectionLevel Error correction level\n * @param  {ByteData} data                 Data input\n * @return {Uint8Array}                    Buffer containing encoded codewords\n */\nfunction createData (version, errorCorrectionLevel, segments) {\n  // Prepare data buffer\n  const buffer = new BitBuffer()\n\n  segments.forEach(function (data) {\n    // prefix data with mode indicator (4 bits)\n    buffer.put(data.mode.bit, 4)\n\n    // Prefix data with character count indicator.\n    // The character count indicator is a string of bits that represents the\n    // number of characters that are being encoded.\n    // The character count indicator must be placed after the mode indicator\n    // and must be a certain number of bits long, depending on the QR version\n    // and data mode\n    // @see {@link Mode.getCharCountIndicator}.\n    buffer.put(data.getLength(), Mode.getCharCountIndicator(data.mode, version))\n\n    // add binary data sequence to buffer\n    data.write(buffer)\n  })\n\n  // Calculate required number of bits\n  const totalCodewords = Utils.getSymbolTotalCodewords(version)\n  const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n  const dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n  // Add a terminator.\n  // If the bit string is shorter than the total number of required bits,\n  // a terminator of up to four 0s must be added to the right side of the string.\n  // If the bit string is more than four bits shorter than the required number of bits,\n  // add four 0s to the end.\n  if (buffer.getLengthInBits() + 4 <= dataTotalCodewordsBits) {\n    buffer.put(0, 4)\n  }\n\n  // If the bit string is fewer than four bits shorter, add only the number of 0s that\n  // are needed to reach the required number of bits.\n\n  // After adding the terminator, if the number of bits in the string is not a multiple of 8,\n  // pad the string on the right with 0s to make the string's length a multiple of 8.\n  while (buffer.getLengthInBits() % 8 !== 0) {\n    buffer.putBit(0)\n  }\n\n  // Add pad bytes if the string is still shorter than the total number of required bits.\n  // Extend the buffer to fill the data capacity of the symbol corresponding to\n  // the Version and Error Correction Level by adding the Pad Codewords 11101100 (0xEC)\n  // and 00010001 (0x11) alternately.\n  const remainingByte = (dataTotalCodewordsBits - buffer.getLengthInBits()) / 8\n  for (let i = 0; i < remainingByte; i++) {\n    buffer.put(i % 2 ? 0x11 : 0xEC, 8)\n  }\n\n  return createCodewords(buffer, version, errorCorrectionLevel)\n}\n\n/**\n * Encode input data with Reed-Solomon and return codewords with\n * relative error correction bits\n *\n * @param  {BitBuffer} bitBuffer            Data to encode\n * @param  {Number}    version              QR Code version\n * @param  {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @return {Uint8Array}                     Buffer containing encoded codewords\n */\nfunction createCodewords (bitBuffer, version, errorCorrectionLevel) {\n  // Total codewords for this QR code version (Data + Error correction)\n  const totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n  // Total number of error correction codewords\n  const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n  // Total number of data codewords\n  const dataTotalCodewords = totalCodewords - ecTotalCodewords\n\n  // Total number of blocks\n  const ecTotalBlocks = ECCode.getBlocksCount(version, errorCorrectionLevel)\n\n  // Calculate how many blocks each group should contain\n  const blocksInGroup2 = totalCodewords % ecTotalBlocks\n  const blocksInGroup1 = ecTotalBlocks - blocksInGroup2\n\n  const totalCodewordsInGroup1 = Math.floor(totalCodewords / ecTotalBlocks)\n\n  const dataCodewordsInGroup1 = Math.floor(dataTotalCodewords / ecTotalBlocks)\n  const dataCodewordsInGroup2 = dataCodewordsInGroup1 + 1\n\n  // Number of EC codewords is the same for both groups\n  const ecCount = totalCodewordsInGroup1 - dataCodewordsInGroup1\n\n  // Initialize a Reed-Solomon encoder with a generator polynomial of degree ecCount\n  const rs = new ReedSolomonEncoder(ecCount)\n\n  let offset = 0\n  const dcData = new Array(ecTotalBlocks)\n  const ecData = new Array(ecTotalBlocks)\n  let maxDataSize = 0\n  const buffer = new Uint8Array(bitBuffer.buffer)\n\n  // Divide the buffer into the required number of blocks\n  for (let b = 0; b < ecTotalBlocks; b++) {\n    const dataSize = b < blocksInGroup1 ? dataCodewordsInGroup1 : dataCodewordsInGroup2\n\n    // extract a block of data from buffer\n    dcData[b] = buffer.slice(offset, offset + dataSize)\n\n    // Calculate EC codewords for this data block\n    ecData[b] = rs.encode(dcData[b])\n\n    offset += dataSize\n    maxDataSize = Math.max(maxDataSize, dataSize)\n  }\n\n  // Create final data\n  // Interleave the data and error correction codewords from each block\n  const data = new Uint8Array(totalCodewords)\n  let index = 0\n  let i, r\n\n  // Add data codewords\n  for (i = 0; i < maxDataSize; i++) {\n    for (r = 0; r < ecTotalBlocks; r++) {\n      if (i < dcData[r].length) {\n        data[index++] = dcData[r][i]\n      }\n    }\n  }\n\n  // Apped EC codewords\n  for (i = 0; i < ecCount; i++) {\n    for (r = 0; r < ecTotalBlocks; r++) {\n      data[index++] = ecData[r][i]\n    }\n  }\n\n  return data\n}\n\n/**\n * Build QR Code symbol\n *\n * @param  {String} data                 Input string\n * @param  {Number} version              QR Code version\n * @param  {ErrorCorretionLevel} errorCorrectionLevel Error level\n * @param  {MaskPattern} maskPattern     Mask pattern\n * @return {Object}                      Object containing symbol data\n */\nfunction createSymbol (data, version, errorCorrectionLevel, maskPattern) {\n  let segments\n\n  if (Array.isArray(data)) {\n    segments = Segments.fromArray(data)\n  } else if (typeof data === 'string') {\n    let estimatedVersion = version\n\n    if (!estimatedVersion) {\n      const rawSegments = Segments.rawSplit(data)\n\n      // Estimate best version that can contain raw splitted segments\n      estimatedVersion = Version.getBestVersionForData(rawSegments, errorCorrectionLevel)\n    }\n\n    // Build optimized segments\n    // If estimated version is undefined, try with the highest version\n    segments = Segments.fromString(data, estimatedVersion || 40)\n  } else {\n    throw new Error('Invalid data')\n  }\n\n  // Get the min version that can contain data\n  const bestVersion = Version.getBestVersionForData(segments, errorCorrectionLevel)\n\n  // If no version is found, data cannot be stored\n  if (!bestVersion) {\n    throw new Error('The amount of data is too big to be stored in a QR Code')\n  }\n\n  // If not specified, use min version as default\n  if (!version) {\n    version = bestVersion\n\n  // Check if the specified version can contain the data\n  } else if (version < bestVersion) {\n    throw new Error('\\n' +\n      'The chosen QR Code version cannot contain this amount of data.\\n' +\n      'Minimum version required to store current data is: ' + bestVersion + '.\\n'\n    )\n  }\n\n  const dataBits = createData(version, errorCorrectionLevel, segments)\n\n  // Allocate matrix buffer\n  const moduleCount = Utils.getSymbolSize(version)\n  const modules = new BitMatrix(moduleCount)\n\n  // Add function modules\n  setupFinderPattern(modules, version)\n  setupTimingPattern(modules)\n  setupAlignmentPattern(modules, version)\n\n  // Add temporary dummy bits for format info just to set them as reserved.\n  // This is needed to prevent these bits from being masked by {@link MaskPattern.applyMask}\n  // since the masking operation must be performed only on the encoding region.\n  // These blocks will be replaced with correct values later in code.\n  setupFormatInfo(modules, errorCorrectionLevel, 0)\n\n  if (version >= 7) {\n    setupVersionInfo(modules, version)\n  }\n\n  // Add data codewords\n  setupData(modules, dataBits)\n\n  if (isNaN(maskPattern)) {\n    // Find best mask pattern\n    maskPattern = MaskPattern.getBestMask(modules,\n      setupFormatInfo.bind(null, modules, errorCorrectionLevel))\n  }\n\n  // Apply mask pattern\n  MaskPattern.applyMask(maskPattern, modules)\n\n  // Replace format info bits with correct values\n  setupFormatInfo(modules, errorCorrectionLevel, maskPattern)\n\n  return {\n    modules: modules,\n    version: version,\n    errorCorrectionLevel: errorCorrectionLevel,\n    maskPattern: maskPattern,\n    segments: segments\n  }\n}\n\n/**\n * QR Code\n *\n * @param {String | Array} data                 Input data\n * @param {Object} options                      Optional configurations\n * @param {Number} options.version              QR Code version\n * @param {String} options.errorCorrectionLevel Error correction level\n * @param {Function} options.toSJISFunc         Helper func to convert utf8 to sjis\n */\nexports.create = function create (data, options) {\n  if (typeof data === 'undefined' || data === '') {\n    throw new Error('No input text')\n  }\n\n  let errorCorrectionLevel = ECLevel.M\n  let version\n  let mask\n\n  if (typeof options !== 'undefined') {\n    // Use higher error correction level as default\n    errorCorrectionLevel = ECLevel.from(options.errorCorrectionLevel, ECLevel.M)\n    version = Version.from(options.version)\n    mask = MaskPattern.from(options.maskPattern)\n\n    if (options.toSJISFunc) {\n      Utils.setToSJISFunction(options.toSJISFunc)\n    }\n  }\n\n  return createSymbol(data, version, errorCorrectionLevel, mask)\n}\n","const Polynomial = require('./polynomial')\n\nfunction ReedSolomonEncoder (degree) {\n  this.genPoly = undefined\n  this.degree = degree\n\n  if (this.degree) this.initialize(this.degree)\n}\n\n/**\n * Initialize the encoder.\n * The input param should correspond to the number of error correction codewords.\n *\n * @param  {Number} degree\n */\nReedSolomonEncoder.prototype.initialize = function initialize (degree) {\n  // create an irreducible generator polynomial\n  this.degree = degree\n  this.genPoly = Polynomial.generateECPolynomial(this.degree)\n}\n\n/**\n * Encodes a chunk of data\n *\n * @param  {Uint8Array} data Buffer containing input data\n * @return {Uint8Array}      Buffer containing encoded data\n */\nReedSolomonEncoder.prototype.encode = function encode (data) {\n  if (!this.genPoly) {\n    throw new Error('Encoder not initialized')\n  }\n\n  // Calculate EC for this data block\n  // extends data size to data+genPoly size\n  const paddedData = new Uint8Array(data.length + this.degree)\n  paddedData.set(data)\n\n  // The error correction codewords are the remainder after dividing the data codewords\n  // by a generator polynomial\n  const remainder = Polynomial.mod(paddedData, this.genPoly)\n\n  // return EC data blocks (last n byte, where n is the degree of genPoly)\n  // If coefficients number in remainder are less than genPoly degree,\n  // pad with 0s to the left to reach the needed number of coefficients\n  const start = this.degree - remainder.length\n  if (start > 0) {\n    const buff = new Uint8Array(this.degree)\n    buff.set(remainder, start)\n\n    return buff\n  }\n\n  return remainder\n}\n\nmodule.exports = ReedSolomonEncoder\n","const numeric = '[0-9]+'\nconst alphanumeric = '[A-Z $%*+\\\\-./:]+'\nlet kanji = '(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|' +\n  '[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|' +\n  '[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|' +\n  '[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+'\nkanji = kanji.replace(/u/g, '\\\\u')\n\nconst byte = '(?:(?![A-Z0-9 $%*+\\\\-./:]|' + kanji + ')(?:.|[\\r\\n]))+'\n\nexports.KANJI = new RegExp(kanji, 'g')\nexports.BYTE_KANJI = new RegExp('[^A-Z0-9 $%*+\\\\-./:]+', 'g')\nexports.BYTE = new RegExp(byte, 'g')\nexports.NUMERIC = new RegExp(numeric, 'g')\nexports.ALPHANUMERIC = new RegExp(alphanumeric, 'g')\n\nconst TEST_KANJI = new RegExp('^' + kanji + '$')\nconst TEST_NUMERIC = new RegExp('^' + numeric + '$')\nconst TEST_ALPHANUMERIC = new RegExp('^[A-Z0-9 $%*+\\\\-./:]+$')\n\nexports.testKanji = function testKanji (str) {\n  return TEST_KANJI.test(str)\n}\n\nexports.testNumeric = function testNumeric (str) {\n  return TEST_NUMERIC.test(str)\n}\n\nexports.testAlphanumeric = function testAlphanumeric (str) {\n  return TEST_ALPHANUMERIC.test(str)\n}\n","const Mode = require('./mode')\nconst NumericData = require('./numeric-data')\nconst AlphanumericData = require('./alphanumeric-data')\nconst ByteData = require('./byte-data')\nconst KanjiData = require('./kanji-data')\nconst Regex = require('./regex')\nconst Utils = require('./utils')\nconst dijkstra = require('dijkstrajs')\n\n/**\n * Returns UTF8 byte length\n *\n * @param  {String} str Input string\n * @return {Number}     Number of byte\n */\nfunction getStringByteLength (str) {\n  return unescape(encodeURIComponent(str)).length\n}\n\n/**\n * Get a list of segments of the specified mode\n * from a string\n *\n * @param  {Mode}   mode Segment mode\n * @param  {String} str  String to process\n * @return {Array}       Array of object with segments data\n */\nfunction getSegments (regex, mode, str) {\n  const segments = []\n  let result\n\n  while ((result = regex.exec(str)) !== null) {\n    segments.push({\n      data: result[0],\n      index: result.index,\n      mode: mode,\n      length: result[0].length\n    })\n  }\n\n  return segments\n}\n\n/**\n * Extracts a series of segments with the appropriate\n * modes from a string\n *\n * @param  {String} dataStr Input string\n * @return {Array}          Array of object with segments data\n */\nfunction getSegmentsFromString (dataStr) {\n  const numSegs = getSegments(Regex.NUMERIC, Mode.NUMERIC, dataStr)\n  const alphaNumSegs = getSegments(Regex.ALPHANUMERIC, Mode.ALPHANUMERIC, dataStr)\n  let byteSegs\n  let kanjiSegs\n\n  if (Utils.isKanjiModeEnabled()) {\n    byteSegs = getSegments(Regex.BYTE, Mode.BYTE, dataStr)\n    kanjiSegs = getSegments(Regex.KANJI, Mode.KANJI, dataStr)\n  } else {\n    byteSegs = getSegments(Regex.BYTE_KANJI, Mode.BYTE, dataStr)\n    kanjiSegs = []\n  }\n\n  const segs = numSegs.concat(alphaNumSegs, byteSegs, kanjiSegs)\n\n  return segs\n    .sort(function (s1, s2) {\n      return s1.index - s2.index\n    })\n    .map(function (obj) {\n      return {\n        data: obj.data,\n        mode: obj.mode,\n        length: obj.length\n      }\n    })\n}\n\n/**\n * Returns how many bits are needed to encode a string of\n * specified length with the specified mode\n *\n * @param  {Number} length String length\n * @param  {Mode} mode     Segment mode\n * @return {Number}        Bit length\n */\nfunction getSegmentBitsLength (length, mode) {\n  switch (mode) {\n    case Mode.NUMERIC:\n      return NumericData.getBitsLength(length)\n    case Mode.ALPHANUMERIC:\n      return AlphanumericData.getBitsLength(length)\n    case Mode.KANJI:\n      return KanjiData.getBitsLength(length)\n    case Mode.BYTE:\n      return ByteData.getBitsLength(length)\n  }\n}\n\n/**\n * Merges adjacent segments which have the same mode\n *\n * @param  {Array} segs Array of object with segments data\n * @return {Array}      Array of object with segments data\n */\nfunction mergeSegments (segs) {\n  return segs.reduce(function (acc, curr) {\n    const prevSeg = acc.length - 1 >= 0 ? acc[acc.length - 1] : null\n    if (prevSeg && prevSeg.mode === curr.mode) {\n      acc[acc.length - 1].data += curr.data\n      return acc\n    }\n\n    acc.push(curr)\n    return acc\n  }, [])\n}\n\n/**\n * Generates a list of all possible nodes combination which\n * will be used to build a segments graph.\n *\n * Nodes are divided by groups. Each group will contain a list of all the modes\n * in which is possible to encode the given text.\n *\n * For example the text '12345' can be encoded as Numeric, Alphanumeric or Byte.\n * The group for '12345' will contain then 3 objects, one for each\n * possible encoding mode.\n *\n * Each node represents a possible segment.\n *\n * @param  {Array} segs Array of object with segments data\n * @return {Array}      Array of object with segments data\n */\nfunction buildNodes (segs) {\n  const nodes = []\n  for (let i = 0; i < segs.length; i++) {\n    const seg = segs[i]\n\n    switch (seg.mode) {\n      case Mode.NUMERIC:\n        nodes.push([seg,\n          { data: seg.data, mode: Mode.ALPHANUMERIC, length: seg.length },\n          { data: seg.data, mode: Mode.BYTE, length: seg.length }\n        ])\n        break\n      case Mode.ALPHANUMERIC:\n        nodes.push([seg,\n          { data: seg.data, mode: Mode.BYTE, length: seg.length }\n        ])\n        break\n      case Mode.KANJI:\n        nodes.push([seg,\n          { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n        ])\n        break\n      case Mode.BYTE:\n        nodes.push([\n          { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n        ])\n    }\n  }\n\n  return nodes\n}\n\n/**\n * Builds a graph from a list of nodes.\n * All segments in each node group will be connected with all the segments of\n * the next group and so on.\n *\n * At each connection will be assigned a weight depending on the\n * segment's byte length.\n *\n * @param  {Array} nodes    Array of object with segments data\n * @param  {Number} version QR Code version\n * @return {Object}         Graph of all possible segments\n */\nfunction buildGraph (nodes, version) {\n  const table = {}\n  const graph = { start: {} }\n  let prevNodeIds = ['start']\n\n  for (let i = 0; i < nodes.length; i++) {\n    const nodeGroup = nodes[i]\n    const currentNodeIds = []\n\n    for (let j = 0; j < nodeGroup.length; j++) {\n      const node = nodeGroup[j]\n      const key = '' + i + j\n\n      currentNodeIds.push(key)\n      table[key] = { node: node, lastCount: 0 }\n      graph[key] = {}\n\n      for (let n = 0; n < prevNodeIds.length; n++) {\n        const prevNodeId = prevNodeIds[n]\n\n        if (table[prevNodeId] && table[prevNodeId].node.mode === node.mode) {\n          graph[prevNodeId][key] =\n            getSegmentBitsLength(table[prevNodeId].lastCount + node.length, node.mode) -\n            getSegmentBitsLength(table[prevNodeId].lastCount, node.mode)\n\n          table[prevNodeId].lastCount += node.length\n        } else {\n          if (table[prevNodeId]) table[prevNodeId].lastCount = node.length\n\n          graph[prevNodeId][key] = getSegmentBitsLength(node.length, node.mode) +\n            4 + Mode.getCharCountIndicator(node.mode, version) // switch cost\n        }\n      }\n    }\n\n    prevNodeIds = currentNodeIds\n  }\n\n  for (let n = 0; n < prevNodeIds.length; n++) {\n    graph[prevNodeIds[n]].end = 0\n  }\n\n  return { map: graph, table: table }\n}\n\n/**\n * Builds a segment from a specified data and mode.\n * If a mode is not specified, the more suitable will be used.\n *\n * @param  {String} data             Input data\n * @param  {Mode | String} modesHint Data mode\n * @return {Segment}                 Segment\n */\nfunction buildSingleSegment (data, modesHint) {\n  let mode\n  const bestMode = Mode.getBestModeForData(data)\n\n  mode = Mode.from(modesHint, bestMode)\n\n  // Make sure data can be encoded\n  if (mode !== Mode.BYTE && mode.bit < bestMode.bit) {\n    throw new Error('\"' + data + '\"' +\n      ' cannot be encoded with mode ' + Mode.toString(mode) +\n      '.\\n Suggested mode is: ' + Mode.toString(bestMode))\n  }\n\n  // Use Mode.BYTE if Kanji support is disabled\n  if (mode === Mode.KANJI && !Utils.isKanjiModeEnabled()) {\n    mode = Mode.BYTE\n  }\n\n  switch (mode) {\n    case Mode.NUMERIC:\n      return new NumericData(data)\n\n    case Mode.ALPHANUMERIC:\n      return new AlphanumericData(data)\n\n    case Mode.KANJI:\n      return new KanjiData(data)\n\n    case Mode.BYTE:\n      return new ByteData(data)\n  }\n}\n\n/**\n * Builds a list of segments from an array.\n * Array can contain Strings or Objects with segment's info.\n *\n * For each item which is a string, will be generated a segment with the given\n * string and the more appropriate encoding mode.\n *\n * For each item which is an object, will be generated a segment with the given\n * data and mode.\n * Objects must contain at least the property \"data\".\n * If property \"mode\" is not present, the more suitable mode will be used.\n *\n * @param  {Array} array Array of objects with segments data\n * @return {Array}       Array of Segments\n */\nexports.fromArray = function fromArray (array) {\n  return array.reduce(function (acc, seg) {\n    if (typeof seg === 'string') {\n      acc.push(buildSingleSegment(seg, null))\n    } else if (seg.data) {\n      acc.push(buildSingleSegment(seg.data, seg.mode))\n    }\n\n    return acc\n  }, [])\n}\n\n/**\n * Builds an optimized sequence of segments from a string,\n * which will produce the shortest possible bitstream.\n *\n * @param  {String} data    Input string\n * @param  {Number} version QR Code version\n * @return {Array}          Array of segments\n */\nexports.fromString = function fromString (data, version) {\n  const segs = getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n\n  const nodes = buildNodes(segs)\n  const graph = buildGraph(nodes, version)\n  const path = dijkstra.find_path(graph.map, 'start', 'end')\n\n  const optimizedSegs = []\n  for (let i = 1; i < path.length - 1; i++) {\n    optimizedSegs.push(graph.table[path[i]].node)\n  }\n\n  return exports.fromArray(mergeSegments(optimizedSegs))\n}\n\n/**\n * Splits a string in various segments with the modes which\n * best represent their content.\n * The produced segments are far from being optimized.\n * The output of this function is only used to estimate a QR Code version\n * which may contain the data.\n *\n * @param  {string} data Input string\n * @return {Array}       Array of segments\n */\nexports.rawSplit = function rawSplit (data) {\n  return exports.fromArray(\n    getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n  )\n}\n","let toSJISFunction\nconst CODEWORDS_COUNT = [\n  0, // Not used\n  26, 44, 70, 100, 134, 172, 196, 242, 292, 346,\n  404, 466, 532, 581, 655, 733, 815, 901, 991, 1085,\n  1156, 1258, 1364, 1474, 1588, 1706, 1828, 1921, 2051, 2185,\n  2323, 2465, 2611, 2761, 2876, 3034, 3196, 3362, 3532, 3706\n]\n\n/**\n * Returns the QR Code size for the specified version\n *\n * @param  {Number} version QR Code version\n * @return {Number}         size of QR code\n */\nexports.getSymbolSize = function getSymbolSize (version) {\n  if (!version) throw new Error('\"version\" cannot be null or undefined')\n  if (version < 1 || version > 40) throw new Error('\"version\" should be in range from 1 to 40')\n  return version * 4 + 17\n}\n\n/**\n * Returns the total number of codewords used to store data and EC information.\n *\n * @param  {Number} version QR Code version\n * @return {Number}         Data length in bits\n */\nexports.getSymbolTotalCodewords = function getSymbolTotalCodewords (version) {\n  return CODEWORDS_COUNT[version]\n}\n\n/**\n * Encode data with Bose-Chaudhuri-Hocquenghem\n *\n * @param  {Number} data Value to encode\n * @return {Number}      Encoded value\n */\nexports.getBCHDigit = function (data) {\n  let digit = 0\n\n  while (data !== 0) {\n    digit++\n    data >>>= 1\n  }\n\n  return digit\n}\n\nexports.setToSJISFunction = function setToSJISFunction (f) {\n  if (typeof f !== 'function') {\n    throw new Error('\"toSJISFunc\" is not a valid function.')\n  }\n\n  toSJISFunction = f\n}\n\nexports.isKanjiModeEnabled = function () {\n  return typeof toSJISFunction !== 'undefined'\n}\n\nexports.toSJIS = function toSJIS (kanji) {\n  return toSJISFunction(kanji)\n}\n","/**\n * Check if QR Code version is valid\n *\n * @param  {Number}  version QR Code version\n * @return {Boolean}         true if valid version, false otherwise\n */\nexports.isValid = function isValid (version) {\n  return !isNaN(version) && version >= 1 && version <= 40\n}\n","const Utils = require('./utils')\nconst ECCode = require('./error-correction-code')\nconst ECLevel = require('./error-correction-level')\nconst Mode = require('./mode')\nconst VersionCheck = require('./version-check')\n\n// Generator polynomial used to encode version information\nconst G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0)\nconst G18_BCH = Utils.getBCHDigit(G18)\n\nfunction getBestVersionForDataLength (mode, length, errorCorrectionLevel) {\n  for (let currentVersion = 1; currentVersion <= 40; currentVersion++) {\n    if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, mode)) {\n      return currentVersion\n    }\n  }\n\n  return undefined\n}\n\nfunction getReservedBitsCount (mode, version) {\n  // Character count indicator + mode indicator bits\n  return Mode.getCharCountIndicator(mode, version) + 4\n}\n\nfunction getTotalBitsFromDataArray (segments, version) {\n  let totalBits = 0\n\n  segments.forEach(function (data) {\n    const reservedBits = getReservedBitsCount(data.mode, version)\n    totalBits += reservedBits + data.getBitsLength()\n  })\n\n  return totalBits\n}\n\nfunction getBestVersionForMixedData (segments, errorCorrectionLevel) {\n  for (let currentVersion = 1; currentVersion <= 40; currentVersion++) {\n    const length = getTotalBitsFromDataArray(segments, currentVersion)\n    if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, Mode.MIXED)) {\n      return currentVersion\n    }\n  }\n\n  return undefined\n}\n\n/**\n * Returns version number from a value.\n * If value is not a valid version, returns defaultValue\n *\n * @param  {Number|String} value        QR Code version\n * @param  {Number}        defaultValue Fallback value\n * @return {Number}                     QR Code version number\n */\nexports.from = function from (value, defaultValue) {\n  if (VersionCheck.isValid(value)) {\n    return parseInt(value, 10)\n  }\n\n  return defaultValue\n}\n\n/**\n * Returns how much data can be stored with the specified QR code version\n * and error correction level\n *\n * @param  {Number} version              QR Code version (1-40)\n * @param  {Number} errorCorrectionLevel Error correction level\n * @param  {Mode}   mode                 Data mode\n * @return {Number}                      Quantity of storable data\n */\nexports.getCapacity = function getCapacity (version, errorCorrectionLevel, mode) {\n  if (!VersionCheck.isValid(version)) {\n    throw new Error('Invalid QR Code version')\n  }\n\n  // Use Byte mode as default\n  if (typeof mode === 'undefined') mode = Mode.BYTE\n\n  // Total codewords for this QR code version (Data + Error correction)\n  const totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n  // Total number of error correction codewords\n  const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n  // Total number of data codewords\n  const dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n  if (mode === Mode.MIXED) return dataTotalCodewordsBits\n\n  const usableBits = dataTotalCodewordsBits - getReservedBitsCount(mode, version)\n\n  // Return max number of storable codewords\n  switch (mode) {\n    case Mode.NUMERIC:\n      return Math.floor((usableBits / 10) * 3)\n\n    case Mode.ALPHANUMERIC:\n      return Math.floor((usableBits / 11) * 2)\n\n    case Mode.KANJI:\n      return Math.floor(usableBits / 13)\n\n    case Mode.BYTE:\n    default:\n      return Math.floor(usableBits / 8)\n  }\n}\n\n/**\n * Returns the minimum version needed to contain the amount of data\n *\n * @param  {Segment} data                    Segment of data\n * @param  {Number} [errorCorrectionLevel=H] Error correction level\n * @param  {Mode} mode                       Data mode\n * @return {Number}                          QR Code version\n */\nexports.getBestVersionForData = function getBestVersionForData (data, errorCorrectionLevel) {\n  let seg\n\n  const ecl = ECLevel.from(errorCorrectionLevel, ECLevel.M)\n\n  if (Array.isArray(data)) {\n    if (data.length > 1) {\n      return getBestVersionForMixedData(data, ecl)\n    }\n\n    if (data.length === 0) {\n      return 1\n    }\n\n    seg = data[0]\n  } else {\n    seg = data\n  }\n\n  return getBestVersionForDataLength(seg.mode, seg.getLength(), ecl)\n}\n\n/**\n * Returns version information with relative error correction bits\n *\n * The version information is included in QR Code symbols of version 7 or larger.\n * It consists of an 18-bit sequence containing 6 data bits,\n * with 12 error correction bits calculated using the (18, 6) Golay code.\n *\n * @param  {Number} version QR Code version\n * @return {Number}         Encoded version info bits\n */\nexports.getEncodedBits = function getEncodedBits (version) {\n  if (!VersionCheck.isValid(version) || version < 7) {\n    throw new Error('Invalid QR Code version')\n  }\n\n  let d = version << 12\n\n  while (Utils.getBCHDigit(d) - G18_BCH >= 0) {\n    d ^= (G18 << (Utils.getBCHDigit(d) - G18_BCH))\n  }\n\n  return (version << 12) | d\n}\n","const Utils = require('./utils')\n\nfunction clearCanvas (ctx, canvas, size) {\n  ctx.clearRect(0, 0, canvas.width, canvas.height)\n\n  if (!canvas.style) canvas.style = {}\n  canvas.height = size\n  canvas.width = size\n  canvas.style.height = size + 'px'\n  canvas.style.width = size + 'px'\n}\n\nfunction getCanvasElement () {\n  try {\n    return document.createElement('canvas')\n  } catch (e) {\n    throw new Error('You need to specify a canvas element')\n  }\n}\n\nexports.render = function render (qrData, canvas, options) {\n  let opts = options\n  let canvasEl = canvas\n\n  if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n    opts = canvas\n    canvas = undefined\n  }\n\n  if (!canvas) {\n    canvasEl = getCanvasElement()\n  }\n\n  opts = Utils.getOptions(opts)\n  const size = Utils.getImageWidth(qrData.modules.size, opts)\n\n  const ctx = canvasEl.getContext('2d')\n  const image = ctx.createImageData(size, size)\n  Utils.qrToImageData(image.data, qrData, opts)\n\n  clearCanvas(ctx, canvasEl, size)\n  ctx.putImageData(image, 0, 0)\n\n  return canvasEl\n}\n\nexports.renderToDataURL = function renderToDataURL (qrData, canvas, options) {\n  let opts = options\n\n  if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n    opts = canvas\n    canvas = undefined\n  }\n\n  if (!opts) opts = {}\n\n  const canvasEl = exports.render(qrData, canvas, opts)\n\n  const type = opts.type || 'image/png'\n  const rendererOpts = opts.rendererOpts || {}\n\n  return canvasEl.toDataURL(type, rendererOpts.quality)\n}\n","const Utils = require('./utils')\n\nfunction getColorAttrib (color, attrib) {\n  const alpha = color.a / 255\n  const str = attrib + '=\"' + color.hex + '\"'\n\n  return alpha < 1\n    ? str + ' ' + attrib + '-opacity=\"' + alpha.toFixed(2).slice(1) + '\"'\n    : str\n}\n\nfunction svgCmd (cmd, x, y) {\n  let str = cmd + x\n  if (typeof y !== 'undefined') str += ' ' + y\n\n  return str\n}\n\nfunction qrToPath (data, size, margin) {\n  let path = ''\n  let moveBy = 0\n  let newRow = false\n  let lineLength = 0\n\n  for (let i = 0; i < data.length; i++) {\n    const col = Math.floor(i % size)\n    const row = Math.floor(i / size)\n\n    if (!col && !newRow) newRow = true\n\n    if (data[i]) {\n      lineLength++\n\n      if (!(i > 0 && col > 0 && data[i - 1])) {\n        path += newRow\n          ? svgCmd('M', col + margin, 0.5 + row + margin)\n          : svgCmd('m', moveBy, 0)\n\n        moveBy = 0\n        newRow = false\n      }\n\n      if (!(col + 1 < size && data[i + 1])) {\n        path += svgCmd('h', lineLength)\n        lineLength = 0\n      }\n    } else {\n      moveBy++\n    }\n  }\n\n  return path\n}\n\nexports.render = function render (qrData, options, cb) {\n  const opts = Utils.getOptions(options)\n  const size = qrData.modules.size\n  const data = qrData.modules.data\n  const qrcodesize = size + opts.margin * 2\n\n  const bg = !opts.color.light.a\n    ? ''\n    : '<path ' + getColorAttrib(opts.color.light, 'fill') +\n      ' d=\"M0 0h' + qrcodesize + 'v' + qrcodesize + 'H0z\"/>'\n\n  const path =\n    '<path ' + getColorAttrib(opts.color.dark, 'stroke') +\n    ' d=\"' + qrToPath(data, size, opts.margin) + '\"/>'\n\n  const viewBox = 'viewBox=\"' + '0 0 ' + qrcodesize + ' ' + qrcodesize + '\"'\n\n  const width = !opts.width ? '' : 'width=\"' + opts.width + '\" height=\"' + opts.width + '\" '\n\n  const svgTag = '<svg xmlns=\"http://www.w3.org/2000/svg\" ' + width + viewBox + ' shape-rendering=\"crispEdges\">' + bg + path + '</svg>\\n'\n\n  if (typeof cb === 'function') {\n    cb(null, svgTag)\n  }\n\n  return svgTag\n}\n","function hex2rgba (hex) {\n  if (typeof hex === 'number') {\n    hex = hex.toString()\n  }\n\n  if (typeof hex !== 'string') {\n    throw new Error('Color should be defined as hex string')\n  }\n\n  let hexCode = hex.slice().replace('#', '').split('')\n  if (hexCode.length < 3 || hexCode.length === 5 || hexCode.length > 8) {\n    throw new Error('Invalid hex color: ' + hex)\n  }\n\n  // Convert from short to long form (fff -> ffffff)\n  if (hexCode.length === 3 || hexCode.length === 4) {\n    hexCode = Array.prototype.concat.apply([], hexCode.map(function (c) {\n      return [c, c]\n    }))\n  }\n\n  // Add default alpha value\n  if (hexCode.length === 6) hexCode.push('F', 'F')\n\n  const hexValue = parseInt(hexCode.join(''), 16)\n\n  return {\n    r: (hexValue >> 24) & 255,\n    g: (hexValue >> 16) & 255,\n    b: (hexValue >> 8) & 255,\n    a: hexValue & 255,\n    hex: '#' + hexCode.slice(0, 6).join('')\n  }\n}\n\nexports.getOptions = function getOptions (options) {\n  if (!options) options = {}\n  if (!options.color) options.color = {}\n\n  const margin = typeof options.margin === 'undefined' ||\n    options.margin === null ||\n    options.margin < 0\n    ? 4\n    : options.margin\n\n  const width = options.width && options.width >= 21 ? options.width : undefined\n  const scale = options.scale || 4\n\n  return {\n    width: width,\n    scale: width ? 4 : scale,\n    margin: margin,\n    color: {\n      dark: hex2rgba(options.color.dark || '#000000ff'),\n      light: hex2rgba(options.color.light || '#ffffffff')\n    },\n    type: options.type,\n    rendererOpts: options.rendererOpts || {}\n  }\n}\n\nexports.getScale = function getScale (qrSize, opts) {\n  return opts.width && opts.width >= qrSize + opts.margin * 2\n    ? opts.width / (qrSize + opts.margin * 2)\n    : opts.scale\n}\n\nexports.getImageWidth = function getImageWidth (qrSize, opts) {\n  const scale = exports.getScale(qrSize, opts)\n  return Math.floor((qrSize + opts.margin * 2) * scale)\n}\n\nexports.qrToImageData = function qrToImageData (imgData, qr, opts) {\n  const size = qr.modules.size\n  const data = qr.modules.data\n  const scale = exports.getScale(size, opts)\n  const symbolSize = Math.floor((size + opts.margin * 2) * scale)\n  const scaledMargin = opts.margin * scale\n  const palette = [opts.color.light, opts.color.dark]\n\n  for (let i = 0; i < symbolSize; i++) {\n    for (let j = 0; j < symbolSize; j++) {\n      let posDst = (i * symbolSize + j) * 4\n      let pxColor = opts.color.light\n\n      if (i >= scaledMargin && j >= scaledMargin &&\n        i < symbolSize - scaledMargin && j < symbolSize - scaledMargin) {\n        const iSrc = Math.floor((i - scaledMargin) / scale)\n        const jSrc = Math.floor((j - scaledMargin) / scale)\n        pxColor = palette[data[iSrc * size + jSrc] ? 1 : 0]\n      }\n\n      imgData[posDst++] = pxColor.r\n      imgData[posDst++] = pxColor.g\n      imgData[posDst++] = pxColor.b\n      imgData[posDst] = pxColor.a\n    }\n  }\n}\n","import warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nexport var HOOK_MARK = 'RC_FORM_INTERNAL_HOOKS';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nvar warningFunc = function warningFunc() {\n  warning(false, 'Can not find FormContext. Please make sure you wrap Field under Form.');\n};\nvar Context = /*#__PURE__*/React.createContext({\n  getFieldValue: warningFunc,\n  getFieldsValue: warningFunc,\n  getFieldError: warningFunc,\n  getFieldWarning: warningFunc,\n  getFieldsError: warningFunc,\n  isFieldsTouched: warningFunc,\n  isFieldTouched: warningFunc,\n  isFieldValidating: warningFunc,\n  isFieldsValidating: warningFunc,\n  resetFields: warningFunc,\n  setFields: warningFunc,\n  setFieldValue: warningFunc,\n  setFieldsValue: warningFunc,\n  validateFields: warningFunc,\n  submit: warningFunc,\n  getInternalHooks: function getInternalHooks() {\n    warningFunc();\n    return {\n      dispatch: warningFunc,\n      initEntityValue: warningFunc,\n      registerField: warningFunc,\n      useSubscribe: warningFunc,\n      setInitialValues: warningFunc,\n      destroyForm: warningFunc,\n      setCallbacks: warningFunc,\n      registerWatch: warningFunc,\n      getFields: warningFunc,\n      setValidateMessages: warningFunc,\n      setPreserve: warningFunc,\n      getInitialValue: warningFunc\n    };\n  }\n});\nexport default Context;","export function toArray(value) {\n  if (value === undefined || value === null) {\n    return [];\n  }\n  return Array.isArray(value) ? value : [value];\n}","/* eslint no-console:0 */\n\nimport {\n  ValidateError,\n  ValidateOption,\n  RuleValuePackage,\n  InternalRuleItem,\n  SyncErrorType,\n  RuleType,\n  Value,\n  Values,\n} from './interface';\n\nconst formatRegExp = /%[sdj%]/g;\n\ndeclare var ASYNC_VALIDATOR_NO_WARNING;\n\nexport let warning: (type: string, errors: SyncErrorType[]) => void = () => {};\n\n// don't print warning message when in production env or node runtime\nif (\n  typeof process !== 'undefined' &&\n  process.env &&\n  process.env.NODE_ENV !== 'production' &&\n  typeof window !== 'undefined' &&\n  typeof document !== 'undefined'\n) {\n  warning = (type, errors) => {\n    if (\n      typeof console !== 'undefined' &&\n      console.warn &&\n      typeof ASYNC_VALIDATOR_NO_WARNING === 'undefined'\n    ) {\n      if (errors.every(e => typeof e === 'string')) {\n        console.warn(type, errors);\n      }\n    }\n  };\n}\n\nexport function convertFieldsError(\n  errors: ValidateError[],\n): Record<string, ValidateError[]> {\n  if (!errors || !errors.length) return null;\n  const fields = {};\n  errors.forEach(error => {\n    const field = error.field;\n    fields[field] = fields[field] || [];\n    fields[field].push(error);\n  });\n  return fields;\n}\n\nexport function format(\n  template: ((...args: any[]) => string) | string,\n  ...args: any[]\n): string {\n  let i = 0;\n  const len = args.length;\n  if (typeof template === 'function') {\n    return template.apply(null, args);\n  }\n  if (typeof template === 'string') {\n    let str = template.replace(formatRegExp, x => {\n      if (x === '%%') {\n        return '%';\n      }\n      if (i >= len) {\n        return x;\n      }\n      switch (x) {\n        case '%s':\n          return String(args[i++]);\n        case '%d':\n          return (Number(args[i++]) as unknown) as string;\n        case '%j':\n          try {\n            return JSON.stringify(args[i++]);\n          } catch (_) {\n            return '[Circular]';\n          }\n          break;\n        default:\n          return x;\n      }\n    });\n    return str;\n  }\n  return template;\n}\n\nfunction isNativeStringType(type: string) {\n  return (\n    type === 'string' ||\n    type === 'url' ||\n    type === 'hex' ||\n    type === 'email' ||\n    type === 'date' ||\n    type === 'pattern'\n  );\n}\n\nexport function isEmptyValue(value: Value, type?: string) {\n  if (value === undefined || value === null) {\n    return true;\n  }\n  if (type === 'array' && Array.isArray(value) && !value.length) {\n    return true;\n  }\n  if (isNativeStringType(type) && typeof value === 'string' && !value) {\n    return true;\n  }\n  return false;\n}\n\nexport function isEmptyObject(obj: object) {\n  return Object.keys(obj).length === 0;\n}\n\nfunction asyncParallelArray(\n  arr: RuleValuePackage[],\n  func: ValidateFunc,\n  callback: (errors: ValidateError[]) => void,\n) {\n  const results: ValidateError[] = [];\n  let total = 0;\n  const arrLength = arr.length;\n\n  function count(errors: ValidateError[]) {\n    results.push(...(errors || []));\n    total++;\n    if (total === arrLength) {\n      callback(results);\n    }\n  }\n\n  arr.forEach(a => {\n    func(a, count);\n  });\n}\n\nfunction asyncSerialArray(\n  arr: RuleValuePackage[],\n  func: ValidateFunc,\n  callback: (errors: ValidateError[]) => void,\n) {\n  let index = 0;\n  const arrLength = arr.length;\n\n  function next(errors: ValidateError[]) {\n    if (errors && errors.length) {\n      callback(errors);\n      return;\n    }\n    const original = index;\n    index = index + 1;\n    if (original < arrLength) {\n      func(arr[original], next);\n    } else {\n      callback([]);\n    }\n  }\n\n  next([]);\n}\n\nfunction flattenObjArr(objArr: Record<string, RuleValuePackage[]>) {\n  const ret: RuleValuePackage[] = [];\n  Object.keys(objArr).forEach(k => {\n    ret.push(...(objArr[k] || []));\n  });\n  return ret;\n}\n\nexport class AsyncValidationError extends Error {\n  errors: ValidateError[];\n  fields: Record<string, ValidateError[]>;\n\n  constructor(\n    errors: ValidateError[],\n    fields: Record<string, ValidateError[]>,\n  ) {\n    super('Async Validation Error');\n    this.errors = errors;\n    this.fields = fields;\n  }\n}\n\ntype ValidateFunc = (\n  data: RuleValuePackage,\n  doIt: (errors: ValidateError[]) => void,\n) => void;\n\nexport function asyncMap(\n  objArr: Record<string, RuleValuePackage[]>,\n  option: ValidateOption,\n  func: ValidateFunc,\n  callback: (errors: ValidateError[]) => void,\n  source: Values,\n): Promise<Values> {\n  if (option.first) {\n    const pending = new Promise<Values>((resolve, reject) => {\n      const next = (errors: ValidateError[]) => {\n        callback(errors);\n        return errors.length\n          ? reject(new AsyncValidationError(errors, convertFieldsError(errors)))\n          : resolve(source);\n      };\n      const flattenArr = flattenObjArr(objArr);\n      asyncSerialArray(flattenArr, func, next);\n    });\n    pending.catch(e => e);\n    return pending;\n  }\n  const firstFields =\n    option.firstFields === true\n      ? Object.keys(objArr)\n      : option.firstFields || [];\n\n  const objArrKeys = Object.keys(objArr);\n  const objArrLength = objArrKeys.length;\n  let total = 0;\n  const results: ValidateError[] = [];\n  const pending = new Promise<Values>((resolve, reject) => {\n    const next = (errors: ValidateError[]) => {\n      results.push.apply(results, errors);\n      total++;\n      if (total === objArrLength) {\n        callback(results);\n        return results.length\n          ? reject(\n              new AsyncValidationError(results, convertFieldsError(results)),\n            )\n          : resolve(source);\n      }\n    };\n    if (!objArrKeys.length) {\n      callback(results);\n      resolve(source);\n    }\n    objArrKeys.forEach(key => {\n      const arr = objArr[key];\n      if (firstFields.indexOf(key) !== -1) {\n        asyncSerialArray(arr, func, next);\n      } else {\n        asyncParallelArray(arr, func, next);\n      }\n    });\n  });\n  pending.catch(e => e);\n  return pending;\n}\n\nfunction isErrorObj(\n  obj: ValidateError | string | (() => string),\n): obj is ValidateError {\n  return !!(obj && (obj as ValidateError).message !== undefined);\n}\n\nfunction getValue(value: Values, path: string[]) {\n  let v = value;\n  for (let i = 0; i < path.length; i++) {\n    if (v == undefined) {\n      return v;\n    }\n    v = v[path[i]];\n  }\n  return v;\n}\n\nexport function complementError(rule: InternalRuleItem, source: Values) {\n  return (oe: ValidateError | (() => string) | string): ValidateError => {\n    let fieldValue;\n    if (rule.fullFields) {\n      fieldValue = getValue(source, rule.fullFields);\n    } else {\n      fieldValue = source[(oe as any).field || rule.fullField];\n    }\n    if (isErrorObj(oe)) {\n      oe.field = oe.field || rule.fullField;\n      oe.fieldValue = fieldValue;\n      return oe;\n    }\n    return {\n      message: typeof oe === 'function' ? oe() : oe,\n      fieldValue,\n      field: ((oe as unknown) as ValidateError).field || rule.fullField,\n    };\n  };\n}\n\nexport function deepMerge<T extends object>(target: T, source: Partial<T>): T {\n  if (source) {\n    for (const s in source) {\n      if (source.hasOwnProperty(s)) {\n        const value = source[s];\n        if (typeof value === 'object' && typeof target[s] === 'object') {\n          target[s] = {\n            ...target[s],\n            ...value,\n          };\n        } else {\n          target[s] = value;\n        }\n      }\n    }\n  }\n  return target;\n}\n","import { ExecuteRule } from '../interface';\nimport { format, isEmptyValue } from '../util';\n\nconst required: ExecuteRule = (rule, value, source, errors, options, type) => {\n  if (\n    rule.required &&\n    (!source.hasOwnProperty(rule.field) ||\n      isEmptyValue(value, type || rule.type))\n  ) {\n    errors.push(format(options.messages.required, rule.fullField));\n  }\n};\n\nexport default required;\n","// https://github.com/kevva/url-regex/blob/master/index.js\nlet urlReg: RegExp;\n\nexport default () => {\n  if (urlReg) {\n    return urlReg;\n  }\n\n  const word = '[a-fA-F\\\\d:]';\n  const b = options =>\n    options && options.includeBoundaries\n      ? `(?:(?<=\\\\s|^)(?=${word})|(?<=${word})(?=\\\\s|$))`\n      : '';\n\n  const v4 =\n    '(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}';\n\n  const v6seg = '[a-fA-F\\\\d]{1,4}';\n  const v6 = `\n(?:\n(?:${v6seg}:){7}(?:${v6seg}|:)|                                    // 1:2:3:4:5:6:7::  1:2:3:4:5:6:7:8\n(?:${v6seg}:){6}(?:${v4}|:${v6seg}|:)|                             // 1:2:3:4:5:6::    1:2:3:4:5:6::8   1:2:3:4:5:6::8  1:2:3:4:5:6::1.2.3.4\n(?:${v6seg}:){5}(?::${v4}|(?::${v6seg}){1,2}|:)|                   // 1:2:3:4:5::      1:2:3:4:5::7:8   1:2:3:4:5::8    1:2:3:4:5::7:1.2.3.4\n(?:${v6seg}:){4}(?:(?::${v6seg}){0,1}:${v4}|(?::${v6seg}){1,3}|:)| // 1:2:3:4::        1:2:3:4::6:7:8   1:2:3:4::8      1:2:3:4::6:7:1.2.3.4\n(?:${v6seg}:){3}(?:(?::${v6seg}){0,2}:${v4}|(?::${v6seg}){1,4}|:)| // 1:2:3::          1:2:3::5:6:7:8   1:2:3::8        1:2:3::5:6:7:1.2.3.4\n(?:${v6seg}:){2}(?:(?::${v6seg}){0,3}:${v4}|(?::${v6seg}){1,5}|:)| // 1:2::            1:2::4:5:6:7:8   1:2::8          1:2::4:5:6:7:1.2.3.4\n(?:${v6seg}:){1}(?:(?::${v6seg}){0,4}:${v4}|(?::${v6seg}){1,6}|:)| // 1::              1::3:4:5:6:7:8   1::8            1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::${v6seg}){0,5}:${v4}|(?::${v6seg}){1,7}|:))             // ::2:3:4:5:6:7:8  ::2:3:4:5:6:7:8  ::8             ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})?                                             // %eth0            %1\n`\n    .replace(/\\s*\\/\\/.*$/gm, '')\n    .replace(/\\n/g, '')\n    .trim();\n\n  // Pre-compile only the exact regexes because adding a global flag make regexes stateful\n  const v46Exact = new RegExp(`(?:^${v4}$)|(?:^${v6}$)`);\n  const v4exact = new RegExp(`^${v4}$`);\n  const v6exact = new RegExp(`^${v6}$`);\n\n  const ip = options =>\n    options && options.exact\n      ? v46Exact\n      : new RegExp(\n          `(?:${b(options)}${v4}${b(options)})|(?:${b(options)}${v6}${b(\n            options,\n          )})`,\n          'g',\n        );\n\n  ip.v4 = (options?) =>\n    options && options.exact\n      ? v4exact\n      : new RegExp(`${b(options)}${v4}${b(options)}`, 'g');\n  ip.v6 = (options?) =>\n    options && options.exact\n      ? v6exact\n      : new RegExp(`${b(options)}${v6}${b(options)}`, 'g');\n\n  const protocol = `(?:(?:[a-z]+:)?//)`;\n  const auth = '(?:\\\\S+(?::\\\\S*)?@)?';\n  const ipv4 = ip.v4().source;\n  const ipv6 = ip.v6().source;\n  const host = '(?:(?:[a-z\\\\u00a1-\\\\uffff0-9][-_]*)*[a-z\\\\u00a1-\\\\uffff0-9]+)';\n  const domain =\n    '(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*';\n  const tld = `(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,}))`;\n  const port = '(?::\\\\d{2,5})?';\n  const path = '(?:[/?#][^\\\\s\"]*)?';\n  const regex = `(?:${protocol}|www\\\\.)${auth}(?:localhost|${ipv4}|${ipv6}|${host}${domain}${tld})${port}${path}`;\n  urlReg = new RegExp(`(?:^${regex}$)`, 'i');\n  return urlReg;\n};\n","import { ExecuteRule, Value } from '../interface';\nimport { format } from '../util';\nimport required from './required';\nimport getUrlRegex from './url';\n/* eslint max-len:0 */\n\nconst pattern = {\n  // http://emailregex.com/\n  email: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+\\.)+[a-zA-Z\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}))$/,\n  // url: new RegExp(\n  //   '^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\\\S+(?::\\\\S*)?@)?(?:(?:(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}(?:\\\\.(?:[0-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))|(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,})))|localhost)(?::\\\\d{2,5})?(?:(/|\\\\?|#)[^\\\\s]*)?$',\n  //   'i',\n  // ),\n  hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,\n};\n\nconst types = {\n  integer(value: Value) {\n    return types.number(value) && parseInt(value, 10) === value;\n  },\n  float(value: Value) {\n    return types.number(value) && !types.integer(value);\n  },\n  array(value: Value) {\n    return Array.isArray(value);\n  },\n  regexp(value: Value) {\n    if (value instanceof RegExp) {\n      return true;\n    }\n    try {\n      return !!new RegExp(value);\n    } catch (e) {\n      return false;\n    }\n  },\n  date(value: Value) {\n    return (\n      typeof value.getTime === 'function' &&\n      typeof value.getMonth === 'function' &&\n      typeof value.getYear === 'function' &&\n      !isNaN(value.getTime())\n    );\n  },\n  number(value: Value) {\n    if (isNaN(value)) {\n      return false;\n    }\n    return typeof value === 'number';\n  },\n  object(value: Value) {\n    return typeof value === 'object' && !types.array(value);\n  },\n  method(value: Value) {\n    return typeof value === 'function';\n  },\n  email(value: Value) {\n    return (\n      typeof value === 'string' &&\n      value.length <= 320 &&\n      !!value.match(pattern.email)\n    );\n  },\n  url(value: Value) {\n    return (\n      typeof value === 'string' &&\n      value.length <= 2048 &&\n      !!value.match(getUrlRegex())\n    );\n  },\n  hex(value: Value) {\n    return typeof value === 'string' && !!value.match(pattern.hex);\n  },\n};\n\nconst type: ExecuteRule = (rule, value, source, errors, options) => {\n  if (rule.required && value === undefined) {\n    required(rule, value, source, errors, options);\n    return;\n  }\n  const custom = [\n    'integer',\n    'float',\n    'array',\n    'regexp',\n    'object',\n    'method',\n    'email',\n    'number',\n    'date',\n    'url',\n    'hex',\n  ];\n  const ruleType = rule.type;\n  if (custom.indexOf(ruleType) > -1) {\n    if (!types[ruleType](value)) {\n      errors.push(\n        format(options.messages.types[ruleType], rule.fullField, rule.type),\n      );\n    }\n    // straight typeof check\n  } else if (ruleType && typeof value !== rule.type) {\n    errors.push(\n      format(options.messages.types[ruleType], rule.fullField, rule.type),\n    );\n  }\n};\n\nexport default type;\n","import required from './required';\nimport whitespace from './whitespace';\nimport type from './type';\nimport range from './range';\nimport enumRule from './enum';\nimport pattern from './pattern';\n\nexport default {\n  required,\n  whitespace,\n  type,\n  range,\n  enum: enumRule,\n  pattern,\n};\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\n/**\n *  Rule for validating whitespace.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param source The source object being validated.\n *  @param errors An array of errors that this rule may add\n *  validation errors to.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nconst whitespace: ExecuteRule = (rule, value, source, errors, options) => {\n  if (/^\\s+$/.test(value) || value === '') {\n    errors.push(format(options.messages.whitespace, rule.fullField));\n  }\n};\n\nexport default whitespace;\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\nconst range: ExecuteRule = (rule, value, source, errors, options) => {\n  const len = typeof rule.len === 'number';\n  const min = typeof rule.min === 'number';\n  const max = typeof rule.max === 'number';\n  // 正则匹配码点范围从U+010000一直到U+10FFFF的文字(补充平面Supplementary Plane)\n  const spRegexp = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n  let val = value;\n  let key = null;\n  const num = typeof value === 'number';\n  const str = typeof value === 'string';\n  const arr = Array.isArray(value);\n  if (num) {\n    key = 'number';\n  } else if (str) {\n    key = 'string';\n  } else if (arr) {\n    key = 'array';\n  }\n  // if the value is not of a supported type for range validation\n  // the validation rule rule should use the\n  // type property to also test for a particular type\n  if (!key) {\n    return false;\n  }\n  if (arr) {\n    val = value.length;\n  }\n  if (str) {\n    // 处理码点大于U+010000的文字length属性不准确的bug,如\"𠮷𠮷𠮷\".lenght !== 3\n    val = value.replace(spRegexp, '_').length;\n  }\n  if (len) {\n    if (val !== rule.len) {\n      errors.push(format(options.messages[key].len, rule.fullField, rule.len));\n    }\n  } else if (min && !max && val < rule.min) {\n    errors.push(format(options.messages[key].min, rule.fullField, rule.min));\n  } else if (max && !min && val > rule.max) {\n    errors.push(format(options.messages[key].max, rule.fullField, rule.max));\n  } else if (min && max && (val < rule.min || val > rule.max)) {\n    errors.push(\n      format(options.messages[key].range, rule.fullField, rule.min, rule.max),\n    );\n  }\n};\n\nexport default range;\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\nconst ENUM = 'enum' as const;\n\nconst enumerable: ExecuteRule = (rule, value, source, errors, options) => {\n  rule[ENUM] = Array.isArray(rule[ENUM]) ? rule[ENUM] : [];\n  if (rule[ENUM].indexOf(value) === -1) {\n    errors.push(\n      format(options.messages[ENUM], rule.fullField, rule[ENUM].join(', ')),\n    );\n  }\n};\n\nexport default enumerable;\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\nconst pattern: ExecuteRule = (rule, value, source, errors, options) => {\n  if (rule.pattern) {\n    if (rule.pattern instanceof RegExp) {\n      // if a RegExp instance is passed, reset `lastIndex` in case its `global`\n      // flag is accidentally set to `true`, which in a validation scenario\n      // is not necessary and the result might be misleading\n      rule.pattern.lastIndex = 0;\n      if (!rule.pattern.test(value)) {\n        errors.push(\n          format(\n            options.messages.pattern.mismatch,\n            rule.fullField,\n            value,\n            rule.pattern,\n          ),\n        );\n      }\n    } else if (typeof rule.pattern === 'string') {\n      const _pattern = new RegExp(rule.pattern);\n      if (!_pattern.test(value)) {\n        errors.push(\n          format(\n            options.messages.pattern.mismatch,\n            rule.fullField,\n            value,\n            rule.pattern,\n          ),\n        );\n      }\n    }\n  }\n};\n\nexport default pattern;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst type: ExecuteValidator = (rule, value, callback, source, options) => {\n  const ruleType = rule.type;\n  const errors: string[] = [];\n  const validate =\n    rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n  if (validate) {\n    if (isEmptyValue(value, ruleType) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options, ruleType);\n    if (!isEmptyValue(value, ruleType)) {\n      rules.type(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\n\nexport default type;\n","import string from './string';\nimport method from './method';\nimport number from './number';\nimport boolean from './boolean';\nimport regexp from './regexp';\nimport integer from './integer';\nimport float from './float';\nimport array from './array';\nimport object from './object';\nimport enumValidator from './enum';\nimport pattern from './pattern';\nimport date from './date';\nimport required from './required';\nimport type from './type';\nimport any from './any';\n\nexport default {\n  string,\n  method,\n  number,\n  boolean,\n  regexp,\n  integer,\n  float,\n  array,\n  object,\n  enum: enumValidator,\n  pattern,\n  date,\n  url: type,\n  hex: type,\n  email: type,\n  required,\n  any,\n};\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst string: ExecuteValidator = (rule, value, callback, source, options) => {\n  const errors: string[] = [];\n  const validate =\n    rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n  if (validate) {\n    if (isEmptyValue(value, 'string') && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options, 'string');\n    if (!isEmptyValue(value, 'string')) {\n      rules.type(rule, value, source, errors, options);\n      rules.range(rule, value, source, errors, options);\n      rules.pattern(rule, value, source, errors, options);\n      if (rule.whitespace === true) {\n        rules.whitespace(rule, value, source, errors, options);\n      }\n    }\n  }\n  callback(errors);\n};\n\nexport default string;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst method: ExecuteValidator = (rule, value, callback, source, options) => {\n  const errors: string[] = [];\n  const validate =\n    rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      rules.type(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\n\nexport default method;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst number: ExecuteValidator = (rule, value, callback, source, options) => {\n  const errors: string[] = [];\n  const validate =\n    rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n  if (validate) {\n    if (value === '') {\n      value = undefined;\n    }\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      rules.type(rule, value, source, errors, options);\n      rules.range(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\n\nexport default number;\n","import { isEmptyValue } from '../util';\nimport rules from '../rule';\nimport { ExecuteValidator } from '../interface';\n\nconst boolean: ExecuteValidator = (rule, value, callback, source, options) => {\n  const errors: string[] = [];\n  const validate =\n    rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      rules.type(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\n\nexport default boolean;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst regexp: ExecuteValidator = (rule, value, callback, source, options) => {\n  const errors: string[] = [];\n  const validate =\n    rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (!isEmptyValue(value)) {\n      rules.type(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\n\nexport default regexp;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst integer: ExecuteValidator = (rule, value, callback, source, options) => {\n  const errors: string[] = [];\n  const validate =\n    rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      rules.type(rule, value, source, errors, options);\n      rules.range(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\n\nexport default integer;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst floatFn: ExecuteValidator = (rule, value, callback, source, options) => {\n  const errors: string[] = [];\n  const validate =\n    rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      rules.type(rule, value, source, errors, options);\n      rules.range(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\n\nexport default floatFn;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule/index';\n\nconst array: ExecuteValidator = (rule, value, callback, source, options) => {\n  const errors: string[] = [];\n  const validate =\n    rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n  if (validate) {\n    if ((value === undefined || value === null) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options, 'array');\n    if (value !== undefined && value !== null) {\n      rules.type(rule, value, source, errors, options);\n      rules.range(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\n\nexport default array;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst object: ExecuteValidator = (rule, value, callback, source, options) => {\n  const errors: string[] = [];\n  const validate =\n    rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      rules.type(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\n\nexport default object;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst ENUM = 'enum' as const;\n\nconst enumerable: ExecuteValidator = (\n  rule,\n  value,\n  callback,\n  source,\n  options,\n) => {\n  const errors: string[] = [];\n  const validate =\n    rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      rules[ENUM](rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\n\nexport default enumerable;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst pattern: ExecuteValidator = (rule, value, callback, source, options) => {\n  const errors: string[] = [];\n  const validate =\n    rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n  if (validate) {\n    if (isEmptyValue(value, 'string') && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (!isEmptyValue(value, 'string')) {\n      rules.pattern(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\n\nexport default pattern;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst date: ExecuteValidator = (rule, value, callback, source, options) => {\n  // console.log('integer rule called %j', rule);\n  const errors: string[] = [];\n  const validate =\n    rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n  // console.log('validate on %s value', value);\n  if (validate) {\n    if (isEmptyValue(value, 'date') && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (!isEmptyValue(value, 'date')) {\n      let dateObject;\n\n      if (value instanceof Date) {\n        dateObject = value;\n      } else {\n        dateObject = new Date(value);\n      }\n\n      rules.type(rule, dateObject, source, errors, options);\n      if (dateObject) {\n        rules.range(rule, dateObject.getTime(), source, errors, options);\n      }\n    }\n  }\n  callback(errors);\n};\n\nexport default date;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\n\nconst required: ExecuteValidator = (rule, value, callback, source, options) => {\n  const errors: string[] = [];\n  const type = Array.isArray(value) ? 'array' : typeof value;\n  rules.required(rule, value, source, errors, options, type);\n  callback(errors);\n};\n\nexport default required;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst any: ExecuteValidator = (rule, value, callback, source, options) => {\n  const errors: string[] = [];\n  const validate =\n    rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n  }\n  callback(errors);\n};\n\nexport default any;\n","import { InternalValidateMessages } from './interface';\n\nexport function newMessages(): InternalValidateMessages {\n  return {\n    default: 'Validation error on field %s',\n    required: '%s is required',\n    enum: '%s must be one of %s',\n    whitespace: '%s cannot be empty',\n    date: {\n      format: '%s date %s is invalid for format %s',\n      parse: '%s date could not be parsed, %s is invalid ',\n      invalid: '%s date %s is invalid',\n    },\n    types: {\n      string: '%s is not a %s',\n      method: '%s is not a %s (function)',\n      array: '%s is not an %s',\n      object: '%s is not an %s',\n      number: '%s is not a %s',\n      date: '%s is not a %s',\n      boolean: '%s is not a %s',\n      integer: '%s is not an %s',\n      float: '%s is not a %s',\n      regexp: '%s is not a valid %s',\n      email: '%s is not a valid %s',\n      url: '%s is not a valid %s',\n      hex: '%s is not a valid %s',\n    },\n    string: {\n      len: '%s must be exactly %s characters',\n      min: '%s must be at least %s characters',\n      max: '%s cannot be longer than %s characters',\n      range: '%s must be between %s and %s characters',\n    },\n    number: {\n      len: '%s must equal %s',\n      min: '%s cannot be less than %s',\n      max: '%s cannot be greater than %s',\n      range: '%s must be between %s and %s',\n    },\n    array: {\n      len: '%s must be exactly %s in length',\n      min: '%s cannot be less than %s in length',\n      max: '%s cannot be greater than %s in length',\n      range: '%s must be between %s and %s in length',\n    },\n    pattern: {\n      mismatch: '%s value %s does not match pattern %s',\n    },\n    clone() {\n      const cloned = JSON.parse(JSON.stringify(this));\n      cloned.clone = this.clone;\n      return cloned;\n    },\n  };\n}\n\nexport const messages = newMessages();\n","import {\n  format,\n  complementError,\n  asyncMap,\n  warning,\n  deepMerge,\n  convertFieldsError,\n} from './util';\nimport validators from './validator/index';\nimport { messages as defaultMessages, newMessages } from './messages';\nimport {\n  InternalRuleItem,\n  InternalValidateMessages,\n  Rule,\n  RuleItem,\n  Rules,\n  ValidateCallback,\n  ValidateMessages,\n  ValidateOption,\n  Values,\n  RuleValuePackage,\n  ValidateError,\n  ValidateFieldsError,\n  SyncErrorType,\n  ValidateResult,\n} from './interface';\n\nexport * from './interface';\n\n/**\n *  Encapsulates a validation schema.\n *\n *  @param descriptor An object declaring validation rules\n *  for this schema.\n */\nclass Schema {\n  // ========================= Static =========================\n  static register = function register(type: string, validator) {\n    if (typeof validator !== 'function') {\n      throw new Error(\n        'Cannot register a validator by type, validator is not a function',\n      );\n    }\n    validators[type] = validator;\n  };\n\n  static warning = warning;\n\n  static messages = defaultMessages;\n\n  static validators = validators;\n\n  // ======================== Instance ========================\n  rules: Record<string, RuleItem[]> = null;\n  _messages: InternalValidateMessages = defaultMessages;\n\n  constructor(descriptor: Rules) {\n    this.define(descriptor);\n  }\n\n  define(rules: Rules) {\n    if (!rules) {\n      throw new Error('Cannot configure a schema with no rules');\n    }\n    if (typeof rules !== 'object' || Array.isArray(rules)) {\n      throw new Error('Rules must be an object');\n    }\n    this.rules = {};\n\n    Object.keys(rules).forEach(name => {\n      const item: Rule = rules[name];\n      this.rules[name] = Array.isArray(item) ? item : [item];\n    });\n  }\n\n  messages(messages?: ValidateMessages) {\n    if (messages) {\n      this._messages = deepMerge(newMessages(), messages);\n    }\n    return this._messages;\n  }\n\n  validate(\n    source: Values,\n    option?: ValidateOption,\n    callback?: ValidateCallback,\n  ): Promise<Values>;\n  validate(source: Values, callback: ValidateCallback): Promise<Values>;\n  validate(source: Values): Promise<Values>;\n\n  validate(source_: Values, o: any = {}, oc: any = () => {}): Promise<Values> {\n    let source: Values = source_;\n    let options: ValidateOption = o;\n    let callback: ValidateCallback = oc;\n    if (typeof options === 'function') {\n      callback = options;\n      options = {};\n    }\n    if (!this.rules || Object.keys(this.rules).length === 0) {\n      if (callback) {\n        callback(null, source);\n      }\n      return Promise.resolve(source);\n    }\n\n    function complete(results: (ValidateError | ValidateError[])[]) {\n      let errors: ValidateError[] = [];\n      let fields: ValidateFieldsError = {};\n\n      function add(e: ValidateError | ValidateError[]) {\n        if (Array.isArray(e)) {\n          errors = errors.concat(...e);\n        } else {\n          errors.push(e);\n        }\n      }\n\n      for (let i = 0; i < results.length; i++) {\n        add(results[i]);\n      }\n      if (!errors.length) {\n        callback(null, source);\n      } else {\n        fields = convertFieldsError(errors);\n        (callback as (\n          errors: ValidateError[],\n          fields: ValidateFieldsError,\n        ) => void)(errors, fields);\n      }\n    }\n\n    if (options.messages) {\n      let messages = this.messages();\n      if (messages === defaultMessages) {\n        messages = newMessages();\n      }\n      deepMerge(messages, options.messages);\n      options.messages = messages;\n    } else {\n      options.messages = this.messages();\n    }\n\n    const series: Record<string, RuleValuePackage[]> = {};\n    const keys = options.keys || Object.keys(this.rules);\n    keys.forEach(z => {\n      const arr = this.rules[z];\n      let value = source[z];\n      arr.forEach(r => {\n        let rule: InternalRuleItem = r;\n        if (typeof rule.transform === 'function') {\n          if (source === source_) {\n            source = { ...source };\n          }\n          value = source[z] = rule.transform(value);\n        }\n        if (typeof rule === 'function') {\n          rule = {\n            validator: rule,\n          };\n        } else {\n          rule = { ...rule };\n        }\n\n        // Fill validator. Skip if nothing need to validate\n        rule.validator = this.getValidationMethod(rule);\n        if (!rule.validator) {\n          return;\n        }\n\n        rule.field = z;\n        rule.fullField = rule.fullField || z;\n        rule.type = this.getType(rule);\n        series[z] = series[z] || [];\n        series[z].push({\n          rule,\n          value,\n          source,\n          field: z,\n        });\n      });\n    });\n    const errorFields = {};\n    return asyncMap(\n      series,\n      options,\n      (data, doIt) => {\n        const rule = data.rule;\n        let deep =\n          (rule.type === 'object' || rule.type === 'array') &&\n          (typeof rule.fields === 'object' ||\n            typeof rule.defaultField === 'object');\n        deep = deep && (rule.required || (!rule.required && data.value));\n        rule.field = data.field;\n\n        function addFullField(key: string, schema: RuleItem) {\n          return {\n            ...schema,\n            fullField: `${rule.fullField}.${key}`,\n            fullFields: rule.fullFields ? [...rule.fullFields, key] : [key],\n          };\n        }\n\n        function cb(e: SyncErrorType | SyncErrorType[] = []) {\n          let errorList = Array.isArray(e) ? e : [e];\n          if (!options.suppressWarning && errorList.length) {\n            Schema.warning('async-validator:', errorList);\n          }\n          if (errorList.length && rule.message !== undefined) {\n            errorList = [].concat(rule.message);\n          }\n\n          // Fill error info\n          let filledErrors = errorList.map(complementError(rule, source));\n\n          if (options.first && filledErrors.length) {\n            errorFields[rule.field] = 1;\n            return doIt(filledErrors);\n          }\n          if (!deep) {\n            doIt(filledErrors);\n          } else {\n            // if rule is required but the target object\n            // does not exist fail at the rule level and don't\n            // go deeper\n            if (rule.required && !data.value) {\n              if (rule.message !== undefined) {\n                filledErrors = []\n                  .concat(rule.message)\n                  .map(complementError(rule, source));\n              } else if (options.error) {\n                filledErrors = [\n                  options.error(\n                    rule,\n                    format(options.messages.required, rule.field),\n                  ),\n                ];\n              }\n              return doIt(filledErrors);\n            }\n\n            let fieldsSchema: Record<string, Rule> = {};\n            if (rule.defaultField) {\n              Object.keys(data.value).map(key => {\n                fieldsSchema[key] = rule.defaultField;\n              });\n            }\n            fieldsSchema = {\n              ...fieldsSchema,\n              ...data.rule.fields,\n            };\n\n            const paredFieldsSchema: Record<string, RuleItem[]> = {};\n\n            Object.keys(fieldsSchema).forEach(field => {\n              const fieldSchema = fieldsSchema[field];\n              const fieldSchemaList = Array.isArray(fieldSchema)\n                ? fieldSchema\n                : [fieldSchema];\n              paredFieldsSchema[field] = fieldSchemaList.map(\n                addFullField.bind(null, field),\n              );\n            });\n            const schema = new Schema(paredFieldsSchema);\n            schema.messages(options.messages);\n            if (data.rule.options) {\n              data.rule.options.messages = options.messages;\n              data.rule.options.error = options.error;\n            }\n            schema.validate(data.value, data.rule.options || options, errs => {\n              const finalErrors = [];\n              if (filledErrors && filledErrors.length) {\n                finalErrors.push(...filledErrors);\n              }\n              if (errs && errs.length) {\n                finalErrors.push(...errs);\n              }\n              doIt(finalErrors.length ? finalErrors : null);\n            });\n          }\n        }\n\n        let res: ValidateResult;\n        if (rule.asyncValidator) {\n          res = rule.asyncValidator(rule, data.value, cb, data.source, options);\n        } else if (rule.validator) {\n          try {\n            res = rule.validator(rule, data.value, cb, data.source, options);\n          } catch (error) {\n            console.error?.(error);\n            // rethrow to report error\n            if (!options.suppressValidatorError) {\n              setTimeout(() => {\n                throw error;\n              }, 0);\n            }\n            cb(error.message);\n          }\n          if (res === true) {\n            cb();\n          } else if (res === false) {\n            cb(\n              typeof rule.message === 'function'\n                ? rule.message(rule.fullField || rule.field)\n                : rule.message || `${rule.fullField || rule.field} fails`,\n            );\n          } else if (res instanceof Array) {\n            cb(res);\n          } else if (res instanceof Error) {\n            cb(res.message);\n          }\n        }\n        if (res && (res as Promise<void>).then) {\n          (res as Promise<void>).then(\n            () => cb(),\n            e => cb(e),\n          );\n        }\n      },\n      results => {\n        complete(results);\n      },\n      source,\n    );\n  }\n\n  getType(rule: InternalRuleItem) {\n    if (rule.type === undefined && rule.pattern instanceof RegExp) {\n      rule.type = 'pattern';\n    }\n    if (\n      typeof rule.validator !== 'function' &&\n      rule.type &&\n      !validators.hasOwnProperty(rule.type)\n    ) {\n      throw new Error(format('Unknown rule type %s', rule.type));\n    }\n    return rule.type || 'string';\n  }\n\n  getValidationMethod(rule: InternalRuleItem) {\n    if (typeof rule.validator === 'function') {\n      return rule.validator;\n    }\n    const keys = Object.keys(rule);\n    const messageIndex = keys.indexOf('message');\n    if (messageIndex !== -1) {\n      keys.splice(messageIndex, 1);\n    }\n    if (keys.length === 1 && keys[0] === 'required') {\n      return validators.required;\n    }\n    return validators[this.getType(rule)] || undefined;\n  }\n}\n\nexport default Schema;\n","var typeTemplate = \"'${name}' is not a valid ${type}\";\nexport var defaultValidateMessages = {\n  default: \"Validation error on field '${name}'\",\n  required: \"'${name}' is required\",\n  enum: \"'${name}' must be one of [${enum}]\",\n  whitespace: \"'${name}' cannot be empty\",\n  date: {\n    format: \"'${name}' is invalid for format date\",\n    parse: \"'${name}' could not be parsed as date\",\n    invalid: \"'${name}' is invalid date\"\n  },\n  types: {\n    string: typeTemplate,\n    method: typeTemplate,\n    array: typeTemplate,\n    object: typeTemplate,\n    number: typeTemplate,\n    date: typeTemplate,\n    boolean: typeTemplate,\n    integer: typeTemplate,\n    float: typeTemplate,\n    regexp: typeTemplate,\n    email: typeTemplate,\n    url: typeTemplate,\n    hex: typeTemplate\n  },\n  string: {\n    len: \"'${name}' must be exactly ${len} characters\",\n    min: \"'${name}' must be at least ${min} characters\",\n    max: \"'${name}' cannot be longer than ${max} characters\",\n    range: \"'${name}' must be between ${min} and ${max} characters\"\n  },\n  number: {\n    len: \"'${name}' must equal ${len}\",\n    min: \"'${name}' cannot be less than ${min}\",\n    max: \"'${name}' cannot be greater than ${max}\",\n    range: \"'${name}' must be between ${min} and ${max}\"\n  },\n  array: {\n    len: \"'${name}' must be exactly ${len} in length\",\n    min: \"'${name}' cannot be less than ${min} in length\",\n    max: \"'${name}' cannot be greater than ${max} in length\",\n    range: \"'${name}' must be between ${min} and ${max} in length\"\n  },\n  pattern: {\n    mismatch: \"'${name}' does not match pattern ${pattern}\"\n  }\n};","export default function get(entity, path) {\n  var current = entity;\n\n  for (var i = 0; i < path.length; i += 1) {\n    if (current === null || current === undefined) {\n      return undefined;\n    }\n\n    current = current[path[i]];\n  }\n\n  return current;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport get from './get';\n\nfunction internalSet(entity, paths, value, removeIfUndefined) {\n  if (!paths.length) {\n    return value;\n  }\n\n  var _paths = _toArray(paths),\n      path = _paths[0],\n      restPath = _paths.slice(1);\n\n  var clone;\n\n  if (!entity && typeof path === 'number') {\n    clone = [];\n  } else if (Array.isArray(entity)) {\n    clone = _toConsumableArray(entity);\n  } else {\n    clone = _objectSpread({}, entity);\n  } // Delete prop if `removeIfUndefined` and value is undefined\n\n\n  if (removeIfUndefined && value === undefined && restPath.length === 1) {\n    delete clone[path][restPath[0]];\n  } else {\n    clone[path] = internalSet(clone[path], restPath, value, removeIfUndefined);\n  }\n\n  return clone;\n}\n\nexport default function set(entity, paths, value) {\n  var removeIfUndefined = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n  // Do nothing if `removeIfUndefined` and parent object not exist\n  if (paths.length && removeIfUndefined && value === undefined && !get(entity, paths.slice(0, -1))) {\n    return entity;\n  }\n\n  return internalSet(entity, paths, value, removeIfUndefined);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nfunction cloneDeep(val) {\n  if (Array.isArray(val)) {\n    return cloneArrayDeep(val);\n  } else if (_typeof(val) === 'object' && val !== null) {\n    return cloneObjectDeep(val);\n  }\n  return val;\n}\nfunction cloneObjectDeep(val) {\n  if (Object.getPrototypeOf(val) === Object.prototype) {\n    var res = {};\n    for (var key in val) {\n      res[key] = cloneDeep(val[key]);\n    }\n    return res;\n  }\n  return val;\n}\nfunction cloneArrayDeep(val) {\n  return val.map(function (item) {\n    return cloneDeep(item);\n  });\n}\nexport default cloneDeep;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport get from \"rc-util/es/utils/get\";\nimport set from \"rc-util/es/utils/set\";\nimport { toArray } from './typeUtil';\nimport cloneDeep from '../utils/cloneDeep';\n/**\n * Convert name to internal supported format.\n * This function should keep since we still thinking if need support like `a.b.c` format.\n * 'a' => ['a']\n * 123 => [123]\n * ['a', 123] => ['a', 123]\n */\nexport function getNamePath(path) {\n  return toArray(path);\n}\nexport function getValue(store, namePath) {\n  var value = get(store, namePath);\n  return value;\n}\nexport function setValue(store, namePath, value) {\n  var removeIfUndefined = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n  var newStore = set(store, namePath, value, removeIfUndefined);\n  return newStore;\n}\nexport function cloneByNamePathList(store, namePathList) {\n  var newStore = {};\n  namePathList.forEach(function (namePath) {\n    var value = getValue(store, namePath);\n    newStore = setValue(newStore, namePath, value);\n  });\n  return newStore;\n}\nexport function containsNamePath(namePathList, namePath) {\n  return namePathList && namePathList.some(function (path) {\n    return matchNamePath(path, namePath);\n  });\n}\nfunction isObject(obj) {\n  return _typeof(obj) === 'object' && obj !== null && Object.getPrototypeOf(obj) === Object.prototype;\n}\n/**\n * Copy values into store and return a new values object\n * ({ a: 1, b: { c: 2 } }, { a: 4, b: { d: 5 } }) => { a: 4, b: { c: 2, d: 5 } }\n */\nfunction internalSetValues(store, values) {\n  var newStore = Array.isArray(store) ? _toConsumableArray(store) : _objectSpread({}, store);\n  if (!values) {\n    return newStore;\n  }\n  Object.keys(values).forEach(function (key) {\n    var prevValue = newStore[key];\n    var value = values[key];\n    // If both are object (but target is not array), we use recursion to set deep value\n    var recursive = isObject(prevValue) && isObject(value);\n    newStore[key] = recursive ? internalSetValues(prevValue, value || {}) : cloneDeep(value); // Clone deep for arrays\n  });\n\n  return newStore;\n}\nexport function setValues(store) {\n  for (var _len = arguments.length, restValues = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n    restValues[_key - 1] = arguments[_key];\n  }\n  return restValues.reduce(function (current, newStore) {\n    return internalSetValues(current, newStore);\n  }, store);\n}\nexport function matchNamePath(namePath, changedNamePath) {\n  if (!namePath || !changedNamePath || namePath.length !== changedNamePath.length) {\n    return false;\n  }\n  return namePath.every(function (nameUnit, i) {\n    return changedNamePath[i] === nameUnit;\n  });\n}\nexport function isSimilar(source, target) {\n  if (source === target) {\n    return true;\n  }\n  if (!source && target || source && !target) {\n    return false;\n  }\n  if (!source || !target || _typeof(source) !== 'object' || _typeof(target) !== 'object') {\n    return false;\n  }\n  var sourceKeys = Object.keys(source);\n  var targetKeys = Object.keys(target);\n  var keys = new Set([].concat(sourceKeys, targetKeys));\n  return _toConsumableArray(keys).every(function (key) {\n    var sourceValue = source[key];\n    var targetValue = target[key];\n    if (typeof sourceValue === 'function' && typeof targetValue === 'function') {\n      return true;\n    }\n    return sourceValue === targetValue;\n  });\n}\nexport function defaultGetValueFromEvent(valuePropName) {\n  var event = arguments.length <= 1 ? undefined : arguments[1];\n  if (event && event.target && _typeof(event.target) === 'object' && valuePropName in event.target) {\n    return event.target[valuePropName];\n  }\n  return event;\n}\n/**\n * Moves an array item from one position in an array to another.\n *\n * Note: This is a pure function so a new array will be returned, instead\n * of altering the array argument.\n *\n * @param array         Array in which to move an item.         (required)\n * @param moveIndex     The index of the item to move.          (required)\n * @param toIndex       The index to move item at moveIndex to. (required)\n */\nexport function move(array, moveIndex, toIndex) {\n  var length = array.length;\n  if (moveIndex < 0 || moveIndex >= length || toIndex < 0 || toIndex >= length) {\n    return array;\n  }\n  var item = array[moveIndex];\n  var diff = moveIndex - toIndex;\n  if (diff > 0) {\n    // move left\n    return [].concat(_toConsumableArray(array.slice(0, toIndex)), [item], _toConsumableArray(array.slice(toIndex, moveIndex)), _toConsumableArray(array.slice(moveIndex + 1, length)));\n  }\n  if (diff < 0) {\n    // move right\n    return [].concat(_toConsumableArray(array.slice(0, moveIndex)), _toConsumableArray(array.slice(moveIndex + 1, toIndex + 1)), [item], _toConsumableArray(array.slice(toIndex + 1, length)));\n  }\n  return array;\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport RawAsyncValidator from 'async-validator';\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport { defaultValidateMessages } from './messages';\nimport { setValues } from './valueUtil';\n// Remove incorrect original ts define\nvar AsyncValidator = RawAsyncValidator;\n/**\n * Replace with template.\n *   `I'm ${name}` + { name: 'bamboo' } = I'm bamboo\n */\nfunction replaceMessage(template, kv) {\n  return template.replace(/\\$\\{\\w+\\}/g, function (str) {\n    var key = str.slice(2, -1);\n    return kv[key];\n  });\n}\nvar CODE_LOGIC_ERROR = 'CODE_LOGIC_ERROR';\nfunction validateRule(_x, _x2, _x3, _x4, _x5) {\n  return _validateRule.apply(this, arguments);\n}\n/**\n * We use `async-validator` to validate the value.\n * But only check one value in a time to avoid namePath validate issue.\n */\nfunction _validateRule() {\n  _validateRule = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(name, value, rule, options, messageVariables) {\n    var cloneRule, originValidator, subRuleField, validator, messages, result, subResults, kv, fillVariableResult;\n    return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n      while (1) {\n        switch (_context2.prev = _context2.next) {\n          case 0:\n            cloneRule = _objectSpread({}, rule); // Bug of `async-validator`\n            // https://github.com/react-component/field-form/issues/316\n            // https://github.com/react-component/field-form/issues/313\n            delete cloneRule.ruleIndex;\n            if (cloneRule.validator) {\n              originValidator = cloneRule.validator;\n              cloneRule.validator = function () {\n                try {\n                  return originValidator.apply(void 0, arguments);\n                } catch (error) {\n                  console.error(error);\n                  return Promise.reject(CODE_LOGIC_ERROR);\n                }\n              };\n            }\n            // We should special handle array validate\n            subRuleField = null;\n            if (cloneRule && cloneRule.type === 'array' && cloneRule.defaultField) {\n              subRuleField = cloneRule.defaultField;\n              delete cloneRule.defaultField;\n            }\n            validator = new AsyncValidator(_defineProperty({}, name, [cloneRule]));\n            messages = setValues({}, defaultValidateMessages, options.validateMessages);\n            validator.messages(messages);\n            result = [];\n            _context2.prev = 9;\n            _context2.next = 12;\n            return Promise.resolve(validator.validate(_defineProperty({}, name, value), _objectSpread({}, options)));\n          case 12:\n            _context2.next = 17;\n            break;\n          case 14:\n            _context2.prev = 14;\n            _context2.t0 = _context2[\"catch\"](9);\n            if (_context2.t0.errors) {\n              result = _context2.t0.errors.map(function (_ref4, index) {\n                var message = _ref4.message;\n                var mergedMessage = message === CODE_LOGIC_ERROR ? messages.default : message;\n                return /*#__PURE__*/React.isValidElement(mergedMessage) ?\n                /*#__PURE__*/\n                // Wrap ReactNode with `key`\n                React.cloneElement(mergedMessage, {\n                  key: \"error_\".concat(index)\n                }) : mergedMessage;\n              });\n            }\n          case 17:\n            if (!(!result.length && subRuleField)) {\n              _context2.next = 22;\n              break;\n            }\n            _context2.next = 20;\n            return Promise.all(value.map(function (subValue, i) {\n              return validateRule(\"\".concat(name, \".\").concat(i), subValue, subRuleField, options, messageVariables);\n            }));\n          case 20:\n            subResults = _context2.sent;\n            return _context2.abrupt(\"return\", subResults.reduce(function (prev, errors) {\n              return [].concat(_toConsumableArray(prev), _toConsumableArray(errors));\n            }, []));\n          case 22:\n            // Replace message with variables\n            kv = _objectSpread(_objectSpread({}, rule), {}, {\n              name: name,\n              enum: (rule.enum || []).join(', ')\n            }, messageVariables);\n            fillVariableResult = result.map(function (error) {\n              if (typeof error === 'string') {\n                return replaceMessage(error, kv);\n              }\n              return error;\n            });\n            return _context2.abrupt(\"return\", fillVariableResult);\n          case 25:\n          case \"end\":\n            return _context2.stop();\n        }\n      }\n    }, _callee2, null, [[9, 14]]);\n  }));\n  return _validateRule.apply(this, arguments);\n}\nexport function validateRules(namePath, value, rules, options, validateFirst, messageVariables) {\n  var name = namePath.join('.');\n  // Fill rule with context\n  var filledRules = rules.map(function (currentRule, ruleIndex) {\n    var originValidatorFunc = currentRule.validator;\n    var cloneRule = _objectSpread(_objectSpread({}, currentRule), {}, {\n      ruleIndex: ruleIndex\n    });\n    // Replace validator if needed\n    if (originValidatorFunc) {\n      cloneRule.validator = function (rule, val, callback) {\n        var hasPromise = false;\n        // Wrap callback only accept when promise not provided\n        var wrappedCallback = function wrappedCallback() {\n          for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n            args[_key] = arguments[_key];\n          }\n          // Wait a tick to make sure return type is a promise\n          Promise.resolve().then(function () {\n            warning(!hasPromise, 'Your validator function has already return a promise. `callback` will be ignored.');\n            if (!hasPromise) {\n              callback.apply(void 0, args);\n            }\n          });\n        };\n        // Get promise\n        var promise = originValidatorFunc(rule, val, wrappedCallback);\n        hasPromise = promise && typeof promise.then === 'function' && typeof promise.catch === 'function';\n        /**\n         * 1. Use promise as the first priority.\n         * 2. If promise not exist, use callback with warning instead\n         */\n        warning(hasPromise, '`callback` is deprecated. Please return a promise instead.');\n        if (hasPromise) {\n          promise.then(function () {\n            callback();\n          }).catch(function (err) {\n            callback(err || ' ');\n          });\n        }\n      };\n    }\n    return cloneRule;\n  }).sort(function (_ref, _ref2) {\n    var w1 = _ref.warningOnly,\n      i1 = _ref.ruleIndex;\n    var w2 = _ref2.warningOnly,\n      i2 = _ref2.ruleIndex;\n    if (!!w1 === !!w2) {\n      // Let keep origin order\n      return i1 - i2;\n    }\n    if (w1) {\n      return 1;\n    }\n    return -1;\n  });\n  // Do validate rules\n  var summaryPromise;\n  if (validateFirst === true) {\n    // >>>>> Validate by serialization\n    summaryPromise = new Promise( /*#__PURE__*/function () {\n      var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(resolve, reject) {\n        var i, rule, errors;\n        return _regeneratorRuntime().wrap(function _callee$(_context) {\n          while (1) {\n            switch (_context.prev = _context.next) {\n              case 0:\n                i = 0;\n              case 1:\n                if (!(i < filledRules.length)) {\n                  _context.next = 12;\n                  break;\n                }\n                rule = filledRules[i];\n                _context.next = 5;\n                return validateRule(name, value, rule, options, messageVariables);\n              case 5:\n                errors = _context.sent;\n                if (!errors.length) {\n                  _context.next = 9;\n                  break;\n                }\n                reject([{\n                  errors: errors,\n                  rule: rule\n                }]);\n                return _context.abrupt(\"return\");\n              case 9:\n                i += 1;\n                _context.next = 1;\n                break;\n              case 12:\n                /* eslint-enable */\n                resolve([]);\n              case 13:\n              case \"end\":\n                return _context.stop();\n            }\n          }\n        }, _callee);\n      }));\n      return function (_x6, _x7) {\n        return _ref3.apply(this, arguments);\n      };\n    }());\n  } else {\n    // >>>>> Validate by parallel\n    var rulePromises = filledRules.map(function (rule) {\n      return validateRule(name, value, rule, options, messageVariables).then(function (errors) {\n        return {\n          errors: errors,\n          rule: rule\n        };\n      });\n    });\n    summaryPromise = (validateFirst ? finishOnFirstFailed(rulePromises) : finishOnAllFailed(rulePromises)).then(function (errors) {\n      // Always change to rejection for Field to catch\n      return Promise.reject(errors);\n    });\n  }\n  // Internal catch error to avoid console error log.\n  summaryPromise.catch(function (e) {\n    return e;\n  });\n  return summaryPromise;\n}\nfunction finishOnAllFailed(_x8) {\n  return _finishOnAllFailed.apply(this, arguments);\n}\nfunction _finishOnAllFailed() {\n  _finishOnAllFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(rulePromises) {\n    return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n      while (1) {\n        switch (_context3.prev = _context3.next) {\n          case 0:\n            return _context3.abrupt(\"return\", Promise.all(rulePromises).then(function (errorsList) {\n              var _ref5;\n              var errors = (_ref5 = []).concat.apply(_ref5, _toConsumableArray(errorsList));\n              return errors;\n            }));\n          case 1:\n          case \"end\":\n            return _context3.stop();\n        }\n      }\n    }, _callee3);\n  }));\n  return _finishOnAllFailed.apply(this, arguments);\n}\nfunction finishOnFirstFailed(_x9) {\n  return _finishOnFirstFailed.apply(this, arguments);\n}\nfunction _finishOnFirstFailed() {\n  _finishOnFirstFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(rulePromises) {\n    var count;\n    return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n      while (1) {\n        switch (_context4.prev = _context4.next) {\n          case 0:\n            count = 0;\n            return _context4.abrupt(\"return\", new Promise(function (resolve) {\n              rulePromises.forEach(function (promise) {\n                promise.then(function (ruleError) {\n                  if (ruleError.errors.length) {\n                    resolve([ruleError]);\n                  }\n                  count += 1;\n                  if (count === rulePromises.length) {\n                    resolve([]);\n                  }\n                });\n              });\n            }));\n          case 2:\n          case \"end\":\n            return _context4.stop();\n        }\n      }\n    }, _callee4);\n  }));\n  return _finishOnFirstFailed.apply(this, arguments);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"name\"];\nimport toChildrenArray from \"rc-util/es/Children/toArray\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport FieldContext, { HOOK_MARK } from './FieldContext';\nimport { toArray } from './utils/typeUtil';\nimport { validateRules } from './utils/validateUtil';\nimport { containsNamePath, defaultGetValueFromEvent, getNamePath, getValue } from './utils/valueUtil';\nvar EMPTY_ERRORS = [];\nfunction requireUpdate(shouldUpdate, prev, next, prevValue, nextValue, info) {\n  if (typeof shouldUpdate === 'function') {\n    return shouldUpdate(prev, next, 'source' in info ? {\n      source: info.source\n    } : {});\n  }\n  return prevValue !== nextValue;\n}\n// We use Class instead of Hooks here since it will cost much code by using Hooks.\nvar Field = /*#__PURE__*/function (_React$Component) {\n  _inherits(Field, _React$Component);\n  var _super = _createSuper(Field);\n  /**\n   * Follow state should not management in State since it will async update by React.\n   * This makes first render of form can not get correct state value.\n   */\n\n  /**\n   * Mark when touched & validated. Currently only used for `dependencies`.\n   * Note that we do not think field with `initialValue` is dirty\n   * but this will be by `isFieldDirty` func.\n   */\n\n  // ============================== Subscriptions ==============================\n  function Field(props) {\n    var _this;\n    _classCallCheck(this, Field);\n    _this = _super.call(this, props);\n    // Register on init\n    _this.state = {\n      resetCount: 0\n    };\n    _this.cancelRegisterFunc = null;\n    _this.mounted = false;\n    _this.touched = false;\n    _this.dirty = false;\n    _this.validatePromise = null;\n    _this.prevValidating = void 0;\n    _this.errors = EMPTY_ERRORS;\n    _this.warnings = EMPTY_ERRORS;\n    _this.cancelRegister = function () {\n      var _this$props = _this.props,\n        preserve = _this$props.preserve,\n        isListField = _this$props.isListField,\n        name = _this$props.name;\n      if (_this.cancelRegisterFunc) {\n        _this.cancelRegisterFunc(isListField, preserve, getNamePath(name));\n      }\n      _this.cancelRegisterFunc = null;\n    };\n    _this.getNamePath = function () {\n      var _this$props2 = _this.props,\n        name = _this$props2.name,\n        fieldContext = _this$props2.fieldContext;\n      var _fieldContext$prefixN = fieldContext.prefixName,\n        prefixName = _fieldContext$prefixN === void 0 ? [] : _fieldContext$prefixN;\n      return name !== undefined ? [].concat(_toConsumableArray(prefixName), _toConsumableArray(name)) : [];\n    };\n    _this.getRules = function () {\n      var _this$props3 = _this.props,\n        _this$props3$rules = _this$props3.rules,\n        rules = _this$props3$rules === void 0 ? [] : _this$props3$rules,\n        fieldContext = _this$props3.fieldContext;\n      return rules.map(function (rule) {\n        if (typeof rule === 'function') {\n          return rule(fieldContext);\n        }\n        return rule;\n      });\n    };\n    _this.refresh = function () {\n      if (!_this.mounted) return;\n      /**\n       * Clean up current node.\n       */\n      _this.setState(function (_ref) {\n        var resetCount = _ref.resetCount;\n        return {\n          resetCount: resetCount + 1\n        };\n      });\n    };\n    _this.triggerMetaEvent = function (destroy) {\n      var onMetaChange = _this.props.onMetaChange;\n      onMetaChange === null || onMetaChange === void 0 ? void 0 : onMetaChange(_objectSpread(_objectSpread({}, _this.getMeta()), {}, {\n        destroy: destroy\n      }));\n    };\n    _this.onStoreChange = function (prevStore, namePathList, info) {\n      var _this$props4 = _this.props,\n        shouldUpdate = _this$props4.shouldUpdate,\n        _this$props4$dependen = _this$props4.dependencies,\n        dependencies = _this$props4$dependen === void 0 ? [] : _this$props4$dependen,\n        onReset = _this$props4.onReset;\n      var store = info.store;\n      var namePath = _this.getNamePath();\n      var prevValue = _this.getValue(prevStore);\n      var curValue = _this.getValue(store);\n      var namePathMatch = namePathList && containsNamePath(namePathList, namePath);\n      // `setFieldsValue` is a quick access to update related status\n      if (info.type === 'valueUpdate' && info.source === 'external' && prevValue !== curValue) {\n        _this.touched = true;\n        _this.dirty = true;\n        _this.validatePromise = null;\n        _this.errors = EMPTY_ERRORS;\n        _this.warnings = EMPTY_ERRORS;\n        _this.triggerMetaEvent();\n      }\n      switch (info.type) {\n        case 'reset':\n          if (!namePathList || namePathMatch) {\n            // Clean up state\n            _this.touched = false;\n            _this.dirty = false;\n            _this.validatePromise = null;\n            _this.errors = EMPTY_ERRORS;\n            _this.warnings = EMPTY_ERRORS;\n            _this.triggerMetaEvent();\n            onReset === null || onReset === void 0 ? void 0 : onReset();\n            _this.refresh();\n            return;\n          }\n          break;\n        /**\n         * In case field with `preserve = false` nest deps like:\n         * - A = 1 => show B\n         * - B = 1 => show C\n         * - Reset A, need clean B, C\n         */\n        case 'remove':\n          {\n            if (shouldUpdate) {\n              _this.reRender();\n              return;\n            }\n            break;\n          }\n        case 'setField':\n          {\n            if (namePathMatch) {\n              var data = info.data;\n              if ('touched' in data) {\n                _this.touched = data.touched;\n              }\n              if ('validating' in data && !('originRCField' in data)) {\n                _this.validatePromise = data.validating ? Promise.resolve([]) : null;\n              }\n              if ('errors' in data) {\n                _this.errors = data.errors || EMPTY_ERRORS;\n              }\n              if ('warnings' in data) {\n                _this.warnings = data.warnings || EMPTY_ERRORS;\n              }\n              _this.dirty = true;\n              _this.triggerMetaEvent();\n              _this.reRender();\n              return;\n            }\n            // Handle update by `setField` with `shouldUpdate`\n            if (shouldUpdate && !namePath.length && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n              _this.reRender();\n              return;\n            }\n            break;\n          }\n        case 'dependenciesUpdate':\n          {\n            /**\n             * Trigger when marked `dependencies` updated. Related fields will all update\n             */\n            var dependencyList = dependencies.map(getNamePath);\n            // No need for `namePathMath` check and `shouldUpdate` check, since `valueUpdate` will be\n            // emitted earlier and they will work there\n            // If set it may cause unnecessary twice rerendering\n            if (dependencyList.some(function (dependency) {\n              return containsNamePath(info.relatedFields, dependency);\n            })) {\n              _this.reRender();\n              return;\n            }\n            break;\n          }\n        default:\n          // 1. If `namePath` exists in `namePathList`, means it's related value and should update\n          //      For example <List name=\"list\"><Field name={['list', 0]}></List>\n          //      If `namePathList` is [['list']] (List value update), Field should be updated\n          //      If `namePathList` is [['list', 0]] (Field value update), List shouldn't be updated\n          // 2.\n          //   2.1 If `dependencies` is set, `name` is not set and `shouldUpdate` is not set,\n          //       don't use `shouldUpdate`. `dependencies` is view as a shortcut if `shouldUpdate`\n          //       is not provided\n          //   2.2 If `shouldUpdate` provided, use customize logic to update the field\n          //       else to check if value changed\n          if (namePathMatch || (!dependencies.length || namePath.length || shouldUpdate) && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n            _this.reRender();\n            return;\n          }\n          break;\n      }\n      if (shouldUpdate === true) {\n        _this.reRender();\n      }\n    };\n    _this.validateRules = function (options) {\n      // We should fixed namePath & value to avoid developer change then by form function\n      var namePath = _this.getNamePath();\n      var currentValue = _this.getValue();\n      // Force change to async to avoid rule OOD under renderProps field\n      var rootPromise = Promise.resolve().then(function () {\n        if (!_this.mounted) {\n          return [];\n        }\n        var _this$props5 = _this.props,\n          _this$props5$validate = _this$props5.validateFirst,\n          validateFirst = _this$props5$validate === void 0 ? false : _this$props5$validate,\n          messageVariables = _this$props5.messageVariables;\n        var _ref2 = options || {},\n          triggerName = _ref2.triggerName;\n        var filteredRules = _this.getRules();\n        if (triggerName) {\n          filteredRules = filteredRules.filter(function (rule) {\n            return rule;\n          }).filter(function (rule) {\n            var validateTrigger = rule.validateTrigger;\n            if (!validateTrigger) {\n              return true;\n            }\n            var triggerList = toArray(validateTrigger);\n            return triggerList.includes(triggerName);\n          });\n        }\n        var promise = validateRules(namePath, currentValue, filteredRules, options, validateFirst, messageVariables);\n        promise.catch(function (e) {\n          return e;\n        }).then(function () {\n          var ruleErrors = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : EMPTY_ERRORS;\n          if (_this.validatePromise === rootPromise) {\n            var _ruleErrors$forEach;\n            _this.validatePromise = null;\n            // Get errors & warnings\n            var nextErrors = [];\n            var nextWarnings = [];\n            (_ruleErrors$forEach = ruleErrors.forEach) === null || _ruleErrors$forEach === void 0 ? void 0 : _ruleErrors$forEach.call(ruleErrors, function (_ref3) {\n              var warningOnly = _ref3.rule.warningOnly,\n                _ref3$errors = _ref3.errors,\n                errors = _ref3$errors === void 0 ? EMPTY_ERRORS : _ref3$errors;\n              if (warningOnly) {\n                nextWarnings.push.apply(nextWarnings, _toConsumableArray(errors));\n              } else {\n                nextErrors.push.apply(nextErrors, _toConsumableArray(errors));\n              }\n            });\n            _this.errors = nextErrors;\n            _this.warnings = nextWarnings;\n            _this.triggerMetaEvent();\n            _this.reRender();\n          }\n        });\n        return promise;\n      });\n      _this.validatePromise = rootPromise;\n      _this.dirty = true;\n      _this.errors = EMPTY_ERRORS;\n      _this.warnings = EMPTY_ERRORS;\n      _this.triggerMetaEvent();\n      // Force trigger re-render since we need sync renderProps with new meta\n      _this.reRender();\n      return rootPromise;\n    };\n    _this.isFieldValidating = function () {\n      return !!_this.validatePromise;\n    };\n    _this.isFieldTouched = function () {\n      return _this.touched;\n    };\n    _this.isFieldDirty = function () {\n      // Touched or validate or has initialValue\n      if (_this.dirty || _this.props.initialValue !== undefined) {\n        return true;\n      }\n      // Form set initialValue\n      var fieldContext = _this.props.fieldContext;\n      var _fieldContext$getInte = fieldContext.getInternalHooks(HOOK_MARK),\n        getInitialValue = _fieldContext$getInte.getInitialValue;\n      if (getInitialValue(_this.getNamePath()) !== undefined) {\n        return true;\n      }\n      return false;\n    };\n    _this.getErrors = function () {\n      return _this.errors;\n    };\n    _this.getWarnings = function () {\n      return _this.warnings;\n    };\n    _this.isListField = function () {\n      return _this.props.isListField;\n    };\n    _this.isList = function () {\n      return _this.props.isList;\n    };\n    _this.isPreserve = function () {\n      return _this.props.preserve;\n    };\n    _this.getMeta = function () {\n      // Make error & validating in cache to save perf\n      _this.prevValidating = _this.isFieldValidating();\n      var meta = {\n        touched: _this.isFieldTouched(),\n        validating: _this.prevValidating,\n        errors: _this.errors,\n        warnings: _this.warnings,\n        name: _this.getNamePath()\n      };\n      return meta;\n    };\n    _this.getOnlyChild = function (children) {\n      // Support render props\n      if (typeof children === 'function') {\n        var meta = _this.getMeta();\n        return _objectSpread(_objectSpread({}, _this.getOnlyChild(children(_this.getControlled(), meta, _this.props.fieldContext))), {}, {\n          isFunction: true\n        });\n      }\n      // Filed element only\n      var childList = toChildrenArray(children);\n      if (childList.length !== 1 || ! /*#__PURE__*/React.isValidElement(childList[0])) {\n        return {\n          child: childList,\n          isFunction: false\n        };\n      }\n      return {\n        child: childList[0],\n        isFunction: false\n      };\n    };\n    _this.getValue = function (store) {\n      var getFieldsValue = _this.props.fieldContext.getFieldsValue;\n      var namePath = _this.getNamePath();\n      return getValue(store || getFieldsValue(true), namePath);\n    };\n    _this.getControlled = function () {\n      var childProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var _this$props6 = _this.props,\n        trigger = _this$props6.trigger,\n        validateTrigger = _this$props6.validateTrigger,\n        getValueFromEvent = _this$props6.getValueFromEvent,\n        normalize = _this$props6.normalize,\n        valuePropName = _this$props6.valuePropName,\n        getValueProps = _this$props6.getValueProps,\n        fieldContext = _this$props6.fieldContext;\n      var mergedValidateTrigger = validateTrigger !== undefined ? validateTrigger : fieldContext.validateTrigger;\n      var namePath = _this.getNamePath();\n      var getInternalHooks = fieldContext.getInternalHooks,\n        getFieldsValue = fieldContext.getFieldsValue;\n      var _getInternalHooks = getInternalHooks(HOOK_MARK),\n        dispatch = _getInternalHooks.dispatch;\n      var value = _this.getValue();\n      var mergedGetValueProps = getValueProps || function (val) {\n        return _defineProperty({}, valuePropName, val);\n      };\n      // eslint-disable-next-line @typescript-eslint/no-explicit-any\n      var originTriggerFunc = childProps[trigger];\n      var control = _objectSpread(_objectSpread({}, childProps), mergedGetValueProps(value));\n      // Add trigger\n      control[trigger] = function () {\n        // Mark as touched\n        _this.touched = true;\n        _this.dirty = true;\n        _this.triggerMetaEvent();\n        var newValue;\n        for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n          args[_key] = arguments[_key];\n        }\n        if (getValueFromEvent) {\n          newValue = getValueFromEvent.apply(void 0, args);\n        } else {\n          newValue = defaultGetValueFromEvent.apply(void 0, [valuePropName].concat(args));\n        }\n        if (normalize) {\n          newValue = normalize(newValue, value, getFieldsValue(true));\n        }\n        dispatch({\n          type: 'updateValue',\n          namePath: namePath,\n          value: newValue\n        });\n        if (originTriggerFunc) {\n          originTriggerFunc.apply(void 0, args);\n        }\n      };\n      // Add validateTrigger\n      var validateTriggerList = toArray(mergedValidateTrigger || []);\n      validateTriggerList.forEach(function (triggerName) {\n        // Wrap additional function of component, so that we can get latest value from store\n        var originTrigger = control[triggerName];\n        control[triggerName] = function () {\n          if (originTrigger) {\n            originTrigger.apply(void 0, arguments);\n          }\n          // Always use latest rules\n          var rules = _this.props.rules;\n          if (rules && rules.length) {\n            // We dispatch validate to root,\n            // since it will update related data with other field with same name\n            dispatch({\n              type: 'validateField',\n              namePath: namePath,\n              triggerName: triggerName\n            });\n          }\n        };\n      });\n      return control;\n    };\n    if (props.fieldContext) {\n      var getInternalHooks = props.fieldContext.getInternalHooks;\n      var _getInternalHooks2 = getInternalHooks(HOOK_MARK),\n        initEntityValue = _getInternalHooks2.initEntityValue;\n      initEntityValue(_assertThisInitialized(_this));\n    }\n    return _this;\n  }\n  _createClass(Field, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      var _this$props7 = this.props,\n        shouldUpdate = _this$props7.shouldUpdate,\n        fieldContext = _this$props7.fieldContext;\n      this.mounted = true;\n      // Register on init\n      if (fieldContext) {\n        var getInternalHooks = fieldContext.getInternalHooks;\n        var _getInternalHooks3 = getInternalHooks(HOOK_MARK),\n          registerField = _getInternalHooks3.registerField;\n        this.cancelRegisterFunc = registerField(this);\n      }\n      // One more render for component in case fields not ready\n      if (shouldUpdate === true) {\n        this.reRender();\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.cancelRegister();\n      this.triggerMetaEvent(true);\n      this.mounted = false;\n    }\n  }, {\n    key: \"reRender\",\n    value: function reRender() {\n      if (!this.mounted) return;\n      this.forceUpdate();\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var resetCount = this.state.resetCount;\n      var children = this.props.children;\n      var _this$getOnlyChild = this.getOnlyChild(children),\n        child = _this$getOnlyChild.child,\n        isFunction = _this$getOnlyChild.isFunction;\n      // Not need to `cloneElement` since user can handle this in render function self\n      var returnChildNode;\n      if (isFunction) {\n        returnChildNode = child;\n      } else if ( /*#__PURE__*/React.isValidElement(child)) {\n        returnChildNode = /*#__PURE__*/React.cloneElement(child, this.getControlled(child.props));\n      } else {\n        warning(!child, '`children` of Field is not validate ReactElement.');\n        returnChildNode = child;\n      }\n      return /*#__PURE__*/React.createElement(React.Fragment, {\n        key: resetCount\n      }, returnChildNode);\n    }\n  }]);\n  return Field;\n}(React.Component);\nField.contextType = FieldContext;\nField.defaultProps = {\n  trigger: 'onChange',\n  valuePropName: 'value'\n};\nfunction WrapperField(_ref5) {\n  var name = _ref5.name,\n    restProps = _objectWithoutProperties(_ref5, _excluded);\n  var fieldContext = React.useContext(FieldContext);\n  var namePath = name !== undefined ? getNamePath(name) : undefined;\n  var key = 'keep';\n  if (!restProps.isListField) {\n    key = \"_\".concat((namePath || []).join('_'));\n  }\n  // Warning if it's a directly list field.\n  // We can still support multiple level field preserve.\n  if (process.env.NODE_ENV !== 'production' && restProps.preserve === false && restProps.isListField && namePath.length <= 1) {\n    warning(false, '`preserve` should not apply on Form.List fields.');\n  }\n  return /*#__PURE__*/React.createElement(Field, _extends({\n    key: key,\n    name: namePath\n  }, restProps, {\n    fieldContext: fieldContext\n  }));\n}\nexport default WrapperField;","import * as React from 'react';\nvar ListContext = /*#__PURE__*/React.createContext(null);\nexport default ListContext;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport FieldContext from './FieldContext';\nimport Field from './Field';\nimport { move as _move, getNamePath } from './utils/valueUtil';\nimport ListContext from './ListContext';\nvar List = function List(_ref) {\n  var name = _ref.name,\n    initialValue = _ref.initialValue,\n    children = _ref.children,\n    rules = _ref.rules,\n    validateTrigger = _ref.validateTrigger;\n  var context = React.useContext(FieldContext);\n  var keyRef = React.useRef({\n    keys: [],\n    id: 0\n  });\n  var keyManager = keyRef.current;\n  var prefixName = React.useMemo(function () {\n    var parentPrefixName = getNamePath(context.prefixName) || [];\n    return [].concat(_toConsumableArray(parentPrefixName), _toConsumableArray(getNamePath(name)));\n  }, [context.prefixName, name]);\n  var fieldContext = React.useMemo(function () {\n    return _objectSpread(_objectSpread({}, context), {}, {\n      prefixName: prefixName\n    });\n  }, [context, prefixName]);\n  // List context\n  var listContext = React.useMemo(function () {\n    return {\n      getKey: function getKey(namePath) {\n        var len = prefixName.length;\n        var pathName = namePath[len];\n        return [keyManager.keys[pathName], namePath.slice(len + 1)];\n      }\n    };\n  }, [prefixName]);\n  // User should not pass `children` as other type.\n  if (typeof children !== 'function') {\n    warning(false, 'Form.List only accepts function as children.');\n    return null;\n  }\n  var shouldUpdate = function shouldUpdate(prevValue, nextValue, _ref2) {\n    var source = _ref2.source;\n    if (source === 'internal') {\n      return false;\n    }\n    return prevValue !== nextValue;\n  };\n  return /*#__PURE__*/React.createElement(ListContext.Provider, {\n    value: listContext\n  }, /*#__PURE__*/React.createElement(FieldContext.Provider, {\n    value: fieldContext\n  }, /*#__PURE__*/React.createElement(Field, {\n    name: [],\n    shouldUpdate: shouldUpdate,\n    rules: rules,\n    validateTrigger: validateTrigger,\n    initialValue: initialValue,\n    isList: true\n  }, function (_ref3, meta) {\n    var _ref3$value = _ref3.value,\n      value = _ref3$value === void 0 ? [] : _ref3$value,\n      onChange = _ref3.onChange;\n    var getFieldValue = context.getFieldValue;\n    var getNewValue = function getNewValue() {\n      var values = getFieldValue(prefixName || []);\n      return values || [];\n    };\n    /**\n     * Always get latest value in case user update fields by `form` api.\n     */\n    var operations = {\n      add: function add(defaultValue, index) {\n        // Mapping keys\n        var newValue = getNewValue();\n        if (index >= 0 && index <= newValue.length) {\n          keyManager.keys = [].concat(_toConsumableArray(keyManager.keys.slice(0, index)), [keyManager.id], _toConsumableArray(keyManager.keys.slice(index)));\n          onChange([].concat(_toConsumableArray(newValue.slice(0, index)), [defaultValue], _toConsumableArray(newValue.slice(index))));\n        } else {\n          if (process.env.NODE_ENV !== 'production' && (index < 0 || index > newValue.length)) {\n            warning(false, 'The second parameter of the add function should be a valid positive number.');\n          }\n          keyManager.keys = [].concat(_toConsumableArray(keyManager.keys), [keyManager.id]);\n          onChange([].concat(_toConsumableArray(newValue), [defaultValue]));\n        }\n        keyManager.id += 1;\n      },\n      remove: function remove(index) {\n        var newValue = getNewValue();\n        var indexSet = new Set(Array.isArray(index) ? index : [index]);\n        if (indexSet.size <= 0) {\n          return;\n        }\n        keyManager.keys = keyManager.keys.filter(function (_, keysIndex) {\n          return !indexSet.has(keysIndex);\n        });\n        // Trigger store change\n        onChange(newValue.filter(function (_, valueIndex) {\n          return !indexSet.has(valueIndex);\n        }));\n      },\n      move: function move(from, to) {\n        if (from === to) {\n          return;\n        }\n        var newValue = getNewValue();\n        // Do not handle out of range\n        if (from < 0 || from >= newValue.length || to < 0 || to >= newValue.length) {\n          return;\n        }\n        keyManager.keys = _move(keyManager.keys, from, to);\n        // Trigger store change\n        onChange(_move(newValue, from, to));\n      }\n    };\n    var listValue = value || [];\n    if (!Array.isArray(listValue)) {\n      listValue = [];\n      if (process.env.NODE_ENV !== 'production') {\n        warning(false, \"Current value of '\".concat(prefixName.join(' > '), \"' is not an array type.\"));\n      }\n    }\n    return children(listValue.map(function (__, index) {\n      var key = keyManager.keys[index];\n      if (key === undefined) {\n        keyManager.keys[index] = keyManager.id;\n        key = keyManager.keys[index];\n        keyManager.id += 1;\n      }\n      return {\n        name: index,\n        key: key,\n        isListField: true\n      };\n    }), operations, meta);\n  })));\n};\nexport default List;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar SPLIT = '__@field_split__';\n/**\n * Convert name path into string to fast the fetch speed of Map.\n */\nfunction normalize(namePath) {\n  return namePath.map(function (cell) {\n    return \"\".concat(_typeof(cell), \":\").concat(cell);\n  })\n  // Magic split\n  .join(SPLIT);\n}\n/**\n * NameMap like a `Map` but accepts `string[]` as key.\n */\nvar NameMap = /*#__PURE__*/function () {\n  function NameMap() {\n    _classCallCheck(this, NameMap);\n    this.kvs = new Map();\n  }\n  _createClass(NameMap, [{\n    key: \"set\",\n    value: function set(key, value) {\n      this.kvs.set(normalize(key), value);\n    }\n  }, {\n    key: \"get\",\n    value: function get(key) {\n      return this.kvs.get(normalize(key));\n    }\n  }, {\n    key: \"update\",\n    value: function update(key, updater) {\n      var origin = this.get(key);\n      var next = updater(origin);\n      if (!next) {\n        this.delete(key);\n      } else {\n        this.set(key, next);\n      }\n    }\n  }, {\n    key: \"delete\",\n    value: function _delete(key) {\n      this.kvs.delete(normalize(key));\n    }\n    // Since we only use this in test, let simply realize this\n  }, {\n    key: \"map\",\n    value: function map(callback) {\n      return _toConsumableArray(this.kvs.entries()).map(function (_ref) {\n        var _ref2 = _slicedToArray(_ref, 2),\n          key = _ref2[0],\n          value = _ref2[1];\n        var cells = key.split(SPLIT);\n        return callback({\n          key: cells.map(function (cell) {\n            var _cell$match = cell.match(/^([^:]*):(.*)$/),\n              _cell$match2 = _slicedToArray(_cell$match, 3),\n              type = _cell$match2[1],\n              unit = _cell$match2[2];\n            return type === 'number' ? Number(unit) : unit;\n          }),\n          value: value\n        });\n      });\n    }\n  }, {\n    key: \"toJSON\",\n    value: function toJSON() {\n      var json = {};\n      this.map(function (_ref3) {\n        var key = _ref3.key,\n          value = _ref3.value;\n        json[key.join('.')] = value;\n        return null;\n      });\n      return json;\n    }\n  }]);\n  return NameMap;\n}();\nexport default NameMap;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nvar _excluded = [\"name\", \"errors\"];\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { HOOK_MARK } from './FieldContext';\nimport { allPromiseFinish } from './utils/asyncUtil';\nimport cloneDeep from './utils/cloneDeep';\nimport { defaultValidateMessages } from './utils/messages';\nimport NameMap from './utils/NameMap';\nimport { cloneByNamePathList, containsNamePath, getNamePath, getValue, matchNamePath, setValue, setValues } from './utils/valueUtil';\nexport var FormStore = /*#__PURE__*/_createClass(function FormStore(forceRootUpdate) {\n  var _this = this;\n  _classCallCheck(this, FormStore);\n  this.formHooked = false;\n  this.forceRootUpdate = void 0;\n  this.subscribable = true;\n  this.store = {};\n  this.fieldEntities = [];\n  this.initialValues = {};\n  this.callbacks = {};\n  this.validateMessages = null;\n  this.preserve = null;\n  this.lastValidatePromise = null;\n  this.getForm = function () {\n    return {\n      getFieldValue: _this.getFieldValue,\n      getFieldsValue: _this.getFieldsValue,\n      getFieldError: _this.getFieldError,\n      getFieldWarning: _this.getFieldWarning,\n      getFieldsError: _this.getFieldsError,\n      isFieldsTouched: _this.isFieldsTouched,\n      isFieldTouched: _this.isFieldTouched,\n      isFieldValidating: _this.isFieldValidating,\n      isFieldsValidating: _this.isFieldsValidating,\n      resetFields: _this.resetFields,\n      setFields: _this.setFields,\n      setFieldValue: _this.setFieldValue,\n      setFieldsValue: _this.setFieldsValue,\n      validateFields: _this.validateFields,\n      submit: _this.submit,\n      _init: true,\n      getInternalHooks: _this.getInternalHooks\n    };\n  };\n  this.getInternalHooks = function (key) {\n    if (key === HOOK_MARK) {\n      _this.formHooked = true;\n      return {\n        dispatch: _this.dispatch,\n        initEntityValue: _this.initEntityValue,\n        registerField: _this.registerField,\n        useSubscribe: _this.useSubscribe,\n        setInitialValues: _this.setInitialValues,\n        destroyForm: _this.destroyForm,\n        setCallbacks: _this.setCallbacks,\n        setValidateMessages: _this.setValidateMessages,\n        getFields: _this.getFields,\n        setPreserve: _this.setPreserve,\n        getInitialValue: _this.getInitialValue,\n        registerWatch: _this.registerWatch\n      };\n    }\n    warning(false, '`getInternalHooks` is internal usage. Should not call directly.');\n    return null;\n  };\n  this.useSubscribe = function (subscribable) {\n    _this.subscribable = subscribable;\n  };\n  this.prevWithoutPreserves = null;\n  this.setInitialValues = function (initialValues, init) {\n    _this.initialValues = initialValues || {};\n    if (init) {\n      var _this$prevWithoutPres;\n      var nextStore = setValues({}, initialValues, _this.store);\n      // We will take consider prev form unmount fields.\n      // When the field is not `preserve`, we need fill this with initialValues instead of store.\n      // eslint-disable-next-line array-callback-return\n      (_this$prevWithoutPres = _this.prevWithoutPreserves) === null || _this$prevWithoutPres === void 0 ? void 0 : _this$prevWithoutPres.map(function (_ref) {\n        var namePath = _ref.key;\n        nextStore = setValue(nextStore, namePath, getValue(initialValues, namePath));\n      });\n      _this.prevWithoutPreserves = null;\n      _this.updateStore(nextStore);\n    }\n  };\n  this.destroyForm = function () {\n    var prevWithoutPreserves = new NameMap();\n    _this.getFieldEntities(true).forEach(function (entity) {\n      if (!_this.isMergedPreserve(entity.isPreserve())) {\n        prevWithoutPreserves.set(entity.getNamePath(), true);\n      }\n    });\n    _this.prevWithoutPreserves = prevWithoutPreserves;\n  };\n  this.getInitialValue = function (namePath) {\n    var initValue = getValue(_this.initialValues, namePath);\n    // Not cloneDeep when without `namePath`\n    return namePath.length ? cloneDeep(initValue) : initValue;\n  };\n  this.setCallbacks = function (callbacks) {\n    _this.callbacks = callbacks;\n  };\n  this.setValidateMessages = function (validateMessages) {\n    _this.validateMessages = validateMessages;\n  };\n  this.setPreserve = function (preserve) {\n    _this.preserve = preserve;\n  };\n  this.watchList = [];\n  this.registerWatch = function (callback) {\n    _this.watchList.push(callback);\n    return function () {\n      _this.watchList = _this.watchList.filter(function (fn) {\n        return fn !== callback;\n      });\n    };\n  };\n  this.notifyWatch = function () {\n    var namePath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n    // No need to cost perf when nothing need to watch\n    if (_this.watchList.length) {\n      var values = _this.getFieldsValue();\n      _this.watchList.forEach(function (callback) {\n        callback(values, namePath);\n      });\n    }\n  };\n  this.timeoutId = null;\n  this.warningUnhooked = function () {\n    if (process.env.NODE_ENV !== 'production' && !_this.timeoutId && typeof window !== 'undefined') {\n      _this.timeoutId = setTimeout(function () {\n        _this.timeoutId = null;\n        if (!_this.formHooked) {\n          warning(false, 'Instance created by `useForm` is not connected to any Form element. Forget to pass `form` prop?');\n        }\n      });\n    }\n  };\n  this.updateStore = function (nextStore) {\n    _this.store = nextStore;\n  };\n  this.getFieldEntities = function () {\n    var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    if (!pure) {\n      return _this.fieldEntities;\n    }\n    return _this.fieldEntities.filter(function (field) {\n      return field.getNamePath().length;\n    });\n  };\n  this.getFieldsMap = function () {\n    var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    var cache = new NameMap();\n    _this.getFieldEntities(pure).forEach(function (field) {\n      var namePath = field.getNamePath();\n      cache.set(namePath, field);\n    });\n    return cache;\n  };\n  this.getFieldEntitiesForNamePathList = function (nameList) {\n    if (!nameList) {\n      return _this.getFieldEntities(true);\n    }\n    var cache = _this.getFieldsMap(true);\n    return nameList.map(function (name) {\n      var namePath = getNamePath(name);\n      return cache.get(namePath) || {\n        INVALIDATE_NAME_PATH: getNamePath(name)\n      };\n    });\n  };\n  this.getFieldsValue = function (nameList, filterFunc) {\n    _this.warningUnhooked();\n    if (nameList === true && !filterFunc) {\n      return _this.store;\n    }\n    var fieldEntities = _this.getFieldEntitiesForNamePathList(Array.isArray(nameList) ? nameList : null);\n    var filteredNameList = [];\n    fieldEntities.forEach(function (entity) {\n      var _entity$isListField;\n      var namePath = 'INVALIDATE_NAME_PATH' in entity ? entity.INVALIDATE_NAME_PATH : entity.getNamePath();\n      // Ignore when it's a list item and not specific the namePath,\n      // since parent field is already take in count\n      if (!nameList && ((_entity$isListField = entity.isListField) === null || _entity$isListField === void 0 ? void 0 : _entity$isListField.call(entity))) {\n        return;\n      }\n      if (!filterFunc) {\n        filteredNameList.push(namePath);\n      } else {\n        var meta = 'getMeta' in entity ? entity.getMeta() : null;\n        if (filterFunc(meta)) {\n          filteredNameList.push(namePath);\n        }\n      }\n    });\n    return cloneByNamePathList(_this.store, filteredNameList.map(getNamePath));\n  };\n  this.getFieldValue = function (name) {\n    _this.warningUnhooked();\n    var namePath = getNamePath(name);\n    return getValue(_this.store, namePath);\n  };\n  this.getFieldsError = function (nameList) {\n    _this.warningUnhooked();\n    var fieldEntities = _this.getFieldEntitiesForNamePathList(nameList);\n    return fieldEntities.map(function (entity, index) {\n      if (entity && !('INVALIDATE_NAME_PATH' in entity)) {\n        return {\n          name: entity.getNamePath(),\n          errors: entity.getErrors(),\n          warnings: entity.getWarnings()\n        };\n      }\n      return {\n        name: getNamePath(nameList[index]),\n        errors: [],\n        warnings: []\n      };\n    });\n  };\n  this.getFieldError = function (name) {\n    _this.warningUnhooked();\n    var namePath = getNamePath(name);\n    var fieldError = _this.getFieldsError([namePath])[0];\n    return fieldError.errors;\n  };\n  this.getFieldWarning = function (name) {\n    _this.warningUnhooked();\n    var namePath = getNamePath(name);\n    var fieldError = _this.getFieldsError([namePath])[0];\n    return fieldError.warnings;\n  };\n  this.isFieldsTouched = function () {\n    _this.warningUnhooked();\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    var arg0 = args[0],\n      arg1 = args[1];\n    var namePathList;\n    var isAllFieldsTouched = false;\n    if (args.length === 0) {\n      namePathList = null;\n    } else if (args.length === 1) {\n      if (Array.isArray(arg0)) {\n        namePathList = arg0.map(getNamePath);\n        isAllFieldsTouched = false;\n      } else {\n        namePathList = null;\n        isAllFieldsTouched = arg0;\n      }\n    } else {\n      namePathList = arg0.map(getNamePath);\n      isAllFieldsTouched = arg1;\n    }\n    var fieldEntities = _this.getFieldEntities(true);\n    var isFieldTouched = function isFieldTouched(field) {\n      return field.isFieldTouched();\n    };\n    // ===== Will get fully compare when not config namePathList =====\n    if (!namePathList) {\n      return isAllFieldsTouched ? fieldEntities.every(isFieldTouched) : fieldEntities.some(isFieldTouched);\n    }\n    // Generate a nest tree for validate\n    var map = new NameMap();\n    namePathList.forEach(function (shortNamePath) {\n      map.set(shortNamePath, []);\n    });\n    fieldEntities.forEach(function (field) {\n      var fieldNamePath = field.getNamePath();\n      // Find matched entity and put into list\n      namePathList.forEach(function (shortNamePath) {\n        if (shortNamePath.every(function (nameUnit, i) {\n          return fieldNamePath[i] === nameUnit;\n        })) {\n          map.update(shortNamePath, function (list) {\n            return [].concat(_toConsumableArray(list), [field]);\n          });\n        }\n      });\n    });\n    // Check if NameMap value is touched\n    var isNamePathListTouched = function isNamePathListTouched(entities) {\n      return entities.some(isFieldTouched);\n    };\n    var namePathListEntities = map.map(function (_ref2) {\n      var value = _ref2.value;\n      return value;\n    });\n    return isAllFieldsTouched ? namePathListEntities.every(isNamePathListTouched) : namePathListEntities.some(isNamePathListTouched);\n  };\n  this.isFieldTouched = function (name) {\n    _this.warningUnhooked();\n    return _this.isFieldsTouched([name]);\n  };\n  this.isFieldsValidating = function (nameList) {\n    _this.warningUnhooked();\n    var fieldEntities = _this.getFieldEntities();\n    if (!nameList) {\n      return fieldEntities.some(function (testField) {\n        return testField.isFieldValidating();\n      });\n    }\n    var namePathList = nameList.map(getNamePath);\n    return fieldEntities.some(function (testField) {\n      var fieldNamePath = testField.getNamePath();\n      return containsNamePath(namePathList, fieldNamePath) && testField.isFieldValidating();\n    });\n  };\n  this.isFieldValidating = function (name) {\n    _this.warningUnhooked();\n    return _this.isFieldsValidating([name]);\n  };\n  this.resetWithFieldInitialValue = function () {\n    var info = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    // Create cache\n    var cache = new NameMap();\n    var fieldEntities = _this.getFieldEntities(true);\n    fieldEntities.forEach(function (field) {\n      var initialValue = field.props.initialValue;\n      var namePath = field.getNamePath();\n      // Record only if has `initialValue`\n      if (initialValue !== undefined) {\n        var records = cache.get(namePath) || new Set();\n        records.add({\n          entity: field,\n          value: initialValue\n        });\n        cache.set(namePath, records);\n      }\n    });\n    // Reset\n    var resetWithFields = function resetWithFields(entities) {\n      entities.forEach(function (field) {\n        var initialValue = field.props.initialValue;\n        if (initialValue !== undefined) {\n          var namePath = field.getNamePath();\n          var formInitialValue = _this.getInitialValue(namePath);\n          if (formInitialValue !== undefined) {\n            // Warning if conflict with form initialValues and do not modify value\n            warning(false, \"Form already set 'initialValues' with path '\".concat(namePath.join('.'), \"'. Field can not overwrite it.\"));\n          } else {\n            var records = cache.get(namePath);\n            if (records && records.size > 1) {\n              // Warning if multiple field set `initialValue`and do not modify value\n              warning(false, \"Multiple Field with path '\".concat(namePath.join('.'), \"' set 'initialValue'. Can not decide which one to pick.\"));\n            } else if (records) {\n              var originValue = _this.getFieldValue(namePath);\n              // Set `initialValue`\n              if (!info.skipExist || originValue === undefined) {\n                _this.updateStore(setValue(_this.store, namePath, _toConsumableArray(records)[0].value));\n              }\n            }\n          }\n        }\n      });\n    };\n    var requiredFieldEntities;\n    if (info.entities) {\n      requiredFieldEntities = info.entities;\n    } else if (info.namePathList) {\n      requiredFieldEntities = [];\n      info.namePathList.forEach(function (namePath) {\n        var records = cache.get(namePath);\n        if (records) {\n          var _requiredFieldEntitie;\n          (_requiredFieldEntitie = requiredFieldEntities).push.apply(_requiredFieldEntitie, _toConsumableArray(_toConsumableArray(records).map(function (r) {\n            return r.entity;\n          })));\n        }\n      });\n    } else {\n      requiredFieldEntities = fieldEntities;\n    }\n    resetWithFields(requiredFieldEntities);\n  };\n  this.resetFields = function (nameList) {\n    _this.warningUnhooked();\n    var prevStore = _this.store;\n    if (!nameList) {\n      _this.updateStore(setValues({}, _this.initialValues));\n      _this.resetWithFieldInitialValue();\n      _this.notifyObservers(prevStore, null, {\n        type: 'reset'\n      });\n      _this.notifyWatch();\n      return;\n    }\n    // Reset by `nameList`\n    var namePathList = nameList.map(getNamePath);\n    namePathList.forEach(function (namePath) {\n      var initialValue = _this.getInitialValue(namePath);\n      _this.updateStore(setValue(_this.store, namePath, initialValue));\n    });\n    _this.resetWithFieldInitialValue({\n      namePathList: namePathList\n    });\n    _this.notifyObservers(prevStore, namePathList, {\n      type: 'reset'\n    });\n    _this.notifyWatch(namePathList);\n  };\n  this.setFields = function (fields) {\n    _this.warningUnhooked();\n    var prevStore = _this.store;\n    var namePathList = [];\n    fields.forEach(function (fieldData) {\n      var name = fieldData.name,\n        errors = fieldData.errors,\n        data = _objectWithoutProperties(fieldData, _excluded);\n      var namePath = getNamePath(name);\n      namePathList.push(namePath);\n      // Value\n      if ('value' in data) {\n        _this.updateStore(setValue(_this.store, namePath, data.value));\n      }\n      _this.notifyObservers(prevStore, [namePath], {\n        type: 'setField',\n        data: fieldData\n      });\n    });\n    _this.notifyWatch(namePathList);\n  };\n  this.getFields = function () {\n    var entities = _this.getFieldEntities(true);\n    var fields = entities.map(function (field) {\n      var namePath = field.getNamePath();\n      var meta = field.getMeta();\n      var fieldData = _objectSpread(_objectSpread({}, meta), {}, {\n        name: namePath,\n        value: _this.getFieldValue(namePath)\n      });\n      Object.defineProperty(fieldData, 'originRCField', {\n        value: true\n      });\n      return fieldData;\n    });\n    return fields;\n  };\n  this.initEntityValue = function (entity) {\n    var initialValue = entity.props.initialValue;\n    if (initialValue !== undefined) {\n      var namePath = entity.getNamePath();\n      var prevValue = getValue(_this.store, namePath);\n      if (prevValue === undefined) {\n        _this.updateStore(setValue(_this.store, namePath, initialValue));\n      }\n    }\n  };\n  this.isMergedPreserve = function (fieldPreserve) {\n    var mergedPreserve = fieldPreserve !== undefined ? fieldPreserve : _this.preserve;\n    return mergedPreserve !== null && mergedPreserve !== void 0 ? mergedPreserve : true;\n  };\n  this.registerField = function (entity) {\n    _this.fieldEntities.push(entity);\n    var namePath = entity.getNamePath();\n    _this.notifyWatch([namePath]);\n    // Set initial values\n    if (entity.props.initialValue !== undefined) {\n      var prevStore = _this.store;\n      _this.resetWithFieldInitialValue({\n        entities: [entity],\n        skipExist: true\n      });\n      _this.notifyObservers(prevStore, [entity.getNamePath()], {\n        type: 'valueUpdate',\n        source: 'internal'\n      });\n    }\n    // un-register field callback\n    return function (isListField, preserve) {\n      var subNamePath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n      _this.fieldEntities = _this.fieldEntities.filter(function (item) {\n        return item !== entity;\n      });\n      // Clean up store value if not preserve\n      if (!_this.isMergedPreserve(preserve) && (!isListField || subNamePath.length > 1)) {\n        var defaultValue = isListField ? undefined : _this.getInitialValue(namePath);\n        if (namePath.length && _this.getFieldValue(namePath) !== defaultValue && _this.fieldEntities.every(function (field) {\n          return (\n            // Only reset when no namePath exist\n            !matchNamePath(field.getNamePath(), namePath)\n          );\n        })) {\n          var _prevStore = _this.store;\n          _this.updateStore(setValue(_prevStore, namePath, defaultValue, true));\n          // Notify that field is unmount\n          _this.notifyObservers(_prevStore, [namePath], {\n            type: 'remove'\n          });\n          // Dependencies update\n          _this.triggerDependenciesUpdate(_prevStore, namePath);\n        }\n      }\n      _this.notifyWatch([namePath]);\n    };\n  };\n  this.dispatch = function (action) {\n    switch (action.type) {\n      case 'updateValue':\n        {\n          var namePath = action.namePath,\n            value = action.value;\n          _this.updateValue(namePath, value);\n          break;\n        }\n      case 'validateField':\n        {\n          var _namePath = action.namePath,\n            triggerName = action.triggerName;\n          _this.validateFields([_namePath], {\n            triggerName: triggerName\n          });\n          break;\n        }\n      default:\n      // Currently we don't have other action. Do nothing.\n    }\n  };\n  this.notifyObservers = function (prevStore, namePathList, info) {\n    if (_this.subscribable) {\n      var mergedInfo = _objectSpread(_objectSpread({}, info), {}, {\n        store: _this.getFieldsValue(true)\n      });\n      _this.getFieldEntities().forEach(function (_ref3) {\n        var onStoreChange = _ref3.onStoreChange;\n        onStoreChange(prevStore, namePathList, mergedInfo);\n      });\n    } else {\n      _this.forceRootUpdate();\n    }\n  };\n  this.triggerDependenciesUpdate = function (prevStore, namePath) {\n    var childrenFields = _this.getDependencyChildrenFields(namePath);\n    if (childrenFields.length) {\n      _this.validateFields(childrenFields);\n    }\n    _this.notifyObservers(prevStore, childrenFields, {\n      type: 'dependenciesUpdate',\n      relatedFields: [namePath].concat(_toConsumableArray(childrenFields))\n    });\n    return childrenFields;\n  };\n  this.updateValue = function (name, value) {\n    var namePath = getNamePath(name);\n    var prevStore = _this.store;\n    _this.updateStore(setValue(_this.store, namePath, value));\n    _this.notifyObservers(prevStore, [namePath], {\n      type: 'valueUpdate',\n      source: 'internal'\n    });\n    _this.notifyWatch([namePath]);\n    // Dependencies update\n    var childrenFields = _this.triggerDependenciesUpdate(prevStore, namePath);\n    // trigger callback function\n    var onValuesChange = _this.callbacks.onValuesChange;\n    if (onValuesChange) {\n      var changedValues = cloneByNamePathList(_this.store, [namePath]);\n      onValuesChange(changedValues, _this.getFieldsValue());\n    }\n    _this.triggerOnFieldsChange([namePath].concat(_toConsumableArray(childrenFields)));\n  };\n  this.setFieldsValue = function (store) {\n    _this.warningUnhooked();\n    var prevStore = _this.store;\n    if (store) {\n      var nextStore = setValues(_this.store, store);\n      _this.updateStore(nextStore);\n    }\n    _this.notifyObservers(prevStore, null, {\n      type: 'valueUpdate',\n      source: 'external'\n    });\n    _this.notifyWatch();\n  };\n  this.setFieldValue = function (name, value) {\n    _this.setFields([{\n      name: name,\n      value: value\n    }]);\n  };\n  this.getDependencyChildrenFields = function (rootNamePath) {\n    var children = new Set();\n    var childrenFields = [];\n    var dependencies2fields = new NameMap();\n    /**\n     * Generate maps\n     * Can use cache to save perf if user report performance issue with this\n     */\n    _this.getFieldEntities().forEach(function (field) {\n      var dependencies = field.props.dependencies;\n      (dependencies || []).forEach(function (dependency) {\n        var dependencyNamePath = getNamePath(dependency);\n        dependencies2fields.update(dependencyNamePath, function () {\n          var fields = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Set();\n          fields.add(field);\n          return fields;\n        });\n      });\n    });\n    var fillChildren = function fillChildren(namePath) {\n      var fields = dependencies2fields.get(namePath) || new Set();\n      fields.forEach(function (field) {\n        if (!children.has(field)) {\n          children.add(field);\n          var fieldNamePath = field.getNamePath();\n          if (field.isFieldDirty() && fieldNamePath.length) {\n            childrenFields.push(fieldNamePath);\n            fillChildren(fieldNamePath);\n          }\n        }\n      });\n    };\n    fillChildren(rootNamePath);\n    return childrenFields;\n  };\n  this.triggerOnFieldsChange = function (namePathList, filedErrors) {\n    var onFieldsChange = _this.callbacks.onFieldsChange;\n    if (onFieldsChange) {\n      var fields = _this.getFields();\n      /**\n       * Fill errors since `fields` may be replaced by controlled fields\n       */\n      if (filedErrors) {\n        var cache = new NameMap();\n        filedErrors.forEach(function (_ref4) {\n          var name = _ref4.name,\n            errors = _ref4.errors;\n          cache.set(name, errors);\n        });\n        fields.forEach(function (field) {\n          // eslint-disable-next-line no-param-reassign\n          field.errors = cache.get(field.name) || field.errors;\n        });\n      }\n      var changedFields = fields.filter(function (_ref5) {\n        var fieldName = _ref5.name;\n        return containsNamePath(namePathList, fieldName);\n      });\n      onFieldsChange(changedFields, fields);\n    }\n  };\n  this.validateFields = function (nameList, options) {\n    _this.warningUnhooked();\n    var provideNameList = !!nameList;\n    var namePathList = provideNameList ? nameList.map(getNamePath) : [];\n    // Collect result in promise list\n    var promiseList = [];\n    _this.getFieldEntities(true).forEach(function (field) {\n      // Add field if not provide `nameList`\n      if (!provideNameList) {\n        namePathList.push(field.getNamePath());\n      }\n      /**\n       * Recursive validate if configured.\n       * TODO: perf improvement @zombieJ\n       */\n      if ((options === null || options === void 0 ? void 0 : options.recursive) && provideNameList) {\n        var namePath = field.getNamePath();\n        if (\n        // nameList[i] === undefined 说明是以 nameList 开头的\n        // ['name'] -> ['name','list']\n        namePath.every(function (nameUnit, i) {\n          return nameList[i] === nameUnit || nameList[i] === undefined;\n        })) {\n          namePathList.push(namePath);\n        }\n      }\n      // Skip if without rule\n      if (!field.props.rules || !field.props.rules.length) {\n        return;\n      }\n      var fieldNamePath = field.getNamePath();\n      // Add field validate rule in to promise list\n      if (!provideNameList || containsNamePath(namePathList, fieldNamePath)) {\n        var promise = field.validateRules(_objectSpread({\n          validateMessages: _objectSpread(_objectSpread({}, defaultValidateMessages), _this.validateMessages)\n        }, options));\n        // Wrap promise with field\n        promiseList.push(promise.then(function () {\n          return {\n            name: fieldNamePath,\n            errors: [],\n            warnings: []\n          };\n        }).catch(function (ruleErrors) {\n          var _ruleErrors$forEach;\n          var mergedErrors = [];\n          var mergedWarnings = [];\n          (_ruleErrors$forEach = ruleErrors.forEach) === null || _ruleErrors$forEach === void 0 ? void 0 : _ruleErrors$forEach.call(ruleErrors, function (_ref6) {\n            var warningOnly = _ref6.rule.warningOnly,\n              errors = _ref6.errors;\n            if (warningOnly) {\n              mergedWarnings.push.apply(mergedWarnings, _toConsumableArray(errors));\n            } else {\n              mergedErrors.push.apply(mergedErrors, _toConsumableArray(errors));\n            }\n          });\n          if (mergedErrors.length) {\n            return Promise.reject({\n              name: fieldNamePath,\n              errors: mergedErrors,\n              warnings: mergedWarnings\n            });\n          }\n          return {\n            name: fieldNamePath,\n            errors: mergedErrors,\n            warnings: mergedWarnings\n          };\n        }));\n      }\n    });\n    var summaryPromise = allPromiseFinish(promiseList);\n    _this.lastValidatePromise = summaryPromise;\n    // Notify fields with rule that validate has finished and need update\n    summaryPromise.catch(function (results) {\n      return results;\n    }).then(function (results) {\n      var resultNamePathList = results.map(function (_ref7) {\n        var name = _ref7.name;\n        return name;\n      });\n      _this.notifyObservers(_this.store, resultNamePathList, {\n        type: 'validateFinish'\n      });\n      _this.triggerOnFieldsChange(resultNamePathList, results);\n    });\n    var returnPromise = summaryPromise.then(function () {\n      if (_this.lastValidatePromise === summaryPromise) {\n        return Promise.resolve(_this.getFieldsValue(namePathList));\n      }\n      return Promise.reject([]);\n    }).catch(function (results) {\n      var errorList = results.filter(function (result) {\n        return result && result.errors.length;\n      });\n      return Promise.reject({\n        values: _this.getFieldsValue(namePathList),\n        errorFields: errorList,\n        outOfDate: _this.lastValidatePromise !== summaryPromise\n      });\n    });\n    // Do not throw in console\n    returnPromise.catch(function (e) {\n      return e;\n    });\n    return returnPromise;\n  };\n  this.submit = function () {\n    _this.warningUnhooked();\n    _this.validateFields().then(function (values) {\n      var onFinish = _this.callbacks.onFinish;\n      if (onFinish) {\n        try {\n          onFinish(values);\n        } catch (err) {\n          // Should print error if user `onFinish` callback failed\n          console.error(err);\n        }\n      }\n    }).catch(function (e) {\n      var onFinishFailed = _this.callbacks.onFinishFailed;\n      if (onFinishFailed) {\n        onFinishFailed(e);\n      }\n    });\n  };\n  this.forceRootUpdate = forceRootUpdate;\n});\nfunction useForm(form) {\n  var formRef = React.useRef();\n  var _React$useState = React.useState({}),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    forceUpdate = _React$useState2[1];\n  if (!formRef.current) {\n    if (form) {\n      formRef.current = form;\n    } else {\n      // Create a new FormStore if not provided\n      var forceReRender = function forceReRender() {\n        forceUpdate({});\n      };\n      var formStore = new FormStore(forceReRender);\n      formRef.current = formStore.getForm();\n    }\n  }\n  return [formRef.current];\n}\nexport default useForm;","export function allPromiseFinish(promiseList) {\n  var hasError = false;\n  var count = promiseList.length;\n  var results = [];\n  if (!promiseList.length) {\n    return Promise.resolve([]);\n  }\n  return new Promise(function (resolve, reject) {\n    promiseList.forEach(function (promise, index) {\n      promise.catch(function (e) {\n        hasError = true;\n        return e;\n      }).then(function (result) {\n        count -= 1;\n        results[index] = result;\n        if (count > 0) {\n          return;\n        }\n        if (hasError) {\n          reject(results);\n        }\n        resolve(results);\n      });\n    });\n  });\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nvar FormContext = /*#__PURE__*/React.createContext({\n  triggerFormChange: function triggerFormChange() {},\n  triggerFormFinish: function triggerFormFinish() {},\n  registerForm: function registerForm() {},\n  unregisterForm: function unregisterForm() {}\n});\nvar FormProvider = function FormProvider(_ref) {\n  var validateMessages = _ref.validateMessages,\n    onFormChange = _ref.onFormChange,\n    onFormFinish = _ref.onFormFinish,\n    children = _ref.children;\n  var formContext = React.useContext(FormContext);\n  var formsRef = React.useRef({});\n  return /*#__PURE__*/React.createElement(FormContext.Provider, {\n    value: _objectSpread(_objectSpread({}, formContext), {}, {\n      validateMessages: _objectSpread(_objectSpread({}, formContext.validateMessages), validateMessages),\n      // =========================================================\n      // =                  Global Form Control                  =\n      // =========================================================\n      triggerFormChange: function triggerFormChange(name, changedFields) {\n        if (onFormChange) {\n          onFormChange(name, {\n            changedFields: changedFields,\n            forms: formsRef.current\n          });\n        }\n        formContext.triggerFormChange(name, changedFields);\n      },\n      triggerFormFinish: function triggerFormFinish(name, values) {\n        if (onFormFinish) {\n          onFormFinish(name, {\n            values: values,\n            forms: formsRef.current\n          });\n        }\n        formContext.triggerFormFinish(name, values);\n      },\n      registerForm: function registerForm(name, form) {\n        if (name) {\n          formsRef.current = _objectSpread(_objectSpread({}, formsRef.current), {}, _defineProperty({}, name, form));\n        }\n        formContext.registerForm(name, form);\n      },\n      unregisterForm: function unregisterForm(name) {\n        var newForms = _objectSpread({}, formsRef.current);\n        delete newForms[name];\n        formsRef.current = newForms;\n        formContext.unregisterForm(name);\n      }\n    })\n  }, children);\n};\nexport { FormProvider };\nexport default FormContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"name\", \"initialValues\", \"fields\", \"form\", \"preserve\", \"children\", \"component\", \"validateMessages\", \"validateTrigger\", \"onValuesChange\", \"onFieldsChange\", \"onFinish\", \"onFinishFailed\"];\nimport * as React from 'react';\nimport useForm from './useForm';\nimport FieldContext, { HOOK_MARK } from './FieldContext';\nimport FormContext from './FormContext';\nimport { isSimilar } from './utils/valueUtil';\nvar Form = function Form(_ref, ref) {\n  var name = _ref.name,\n    initialValues = _ref.initialValues,\n    fields = _ref.fields,\n    form = _ref.form,\n    preserve = _ref.preserve,\n    children = _ref.children,\n    _ref$component = _ref.component,\n    Component = _ref$component === void 0 ? 'form' : _ref$component,\n    validateMessages = _ref.validateMessages,\n    _ref$validateTrigger = _ref.validateTrigger,\n    validateTrigger = _ref$validateTrigger === void 0 ? 'onChange' : _ref$validateTrigger,\n    onValuesChange = _ref.onValuesChange,\n    _onFieldsChange = _ref.onFieldsChange,\n    _onFinish = _ref.onFinish,\n    onFinishFailed = _ref.onFinishFailed,\n    restProps = _objectWithoutProperties(_ref, _excluded);\n  var formContext = React.useContext(FormContext);\n  // We customize handle event since Context will makes all the consumer re-render:\n  // https://reactjs.org/docs/context.html#contextprovider\n  var _useForm = useForm(form),\n    _useForm2 = _slicedToArray(_useForm, 1),\n    formInstance = _useForm2[0];\n  var _formInstance$getInte = formInstance.getInternalHooks(HOOK_MARK),\n    useSubscribe = _formInstance$getInte.useSubscribe,\n    setInitialValues = _formInstance$getInte.setInitialValues,\n    setCallbacks = _formInstance$getInte.setCallbacks,\n    setValidateMessages = _formInstance$getInte.setValidateMessages,\n    setPreserve = _formInstance$getInte.setPreserve,\n    destroyForm = _formInstance$getInte.destroyForm;\n  // Pass ref with form instance\n  React.useImperativeHandle(ref, function () {\n    return formInstance;\n  });\n  // Register form into Context\n  React.useEffect(function () {\n    formContext.registerForm(name, formInstance);\n    return function () {\n      formContext.unregisterForm(name);\n    };\n  }, [formContext, formInstance, name]);\n  // Pass props to store\n  setValidateMessages(_objectSpread(_objectSpread({}, formContext.validateMessages), validateMessages));\n  setCallbacks({\n    onValuesChange: onValuesChange,\n    onFieldsChange: function onFieldsChange(changedFields) {\n      formContext.triggerFormChange(name, changedFields);\n      if (_onFieldsChange) {\n        for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n          rest[_key - 1] = arguments[_key];\n        }\n        _onFieldsChange.apply(void 0, [changedFields].concat(rest));\n      }\n    },\n    onFinish: function onFinish(values) {\n      formContext.triggerFormFinish(name, values);\n      if (_onFinish) {\n        _onFinish(values);\n      }\n    },\n    onFinishFailed: onFinishFailed\n  });\n  setPreserve(preserve);\n  // Set initial value, init store value when first mount\n  var mountRef = React.useRef(null);\n  setInitialValues(initialValues, !mountRef.current);\n  if (!mountRef.current) {\n    mountRef.current = true;\n  }\n  React.useEffect(function () {\n    return destroyForm;\n  },\n  // eslint-disable-next-line react-hooks/exhaustive-deps\n  []);\n  // Prepare children by `children` type\n  var childrenNode;\n  var childrenRenderProps = typeof children === 'function';\n  if (childrenRenderProps) {\n    var values = formInstance.getFieldsValue(true);\n    childrenNode = children(values, formInstance);\n  } else {\n    childrenNode = children;\n  }\n  // Not use subscribe when using render props\n  useSubscribe(!childrenRenderProps);\n  // Listen if fields provided. We use ref to save prev data here to avoid additional render\n  var prevFieldsRef = React.useRef();\n  React.useEffect(function () {\n    if (!isSimilar(prevFieldsRef.current || [], fields || [])) {\n      formInstance.setFields(fields || []);\n    }\n    prevFieldsRef.current = fields;\n  }, [fields, formInstance]);\n  var formContextValue = React.useMemo(function () {\n    return _objectSpread(_objectSpread({}, formInstance), {}, {\n      validateTrigger: validateTrigger\n    });\n  }, [formInstance, validateTrigger]);\n  var wrapperNode = /*#__PURE__*/React.createElement(FieldContext.Provider, {\n    value: formContextValue\n  }, childrenNode);\n  if (Component === false) {\n    return wrapperNode;\n  }\n  return /*#__PURE__*/React.createElement(Component, _extends({}, restProps, {\n    onSubmit: function onSubmit(event) {\n      event.preventDefault();\n      event.stopPropagation();\n      formInstance.submit();\n    },\n    onReset: function onReset(event) {\n      var _restProps$onReset;\n      event.preventDefault();\n      formInstance.resetFields();\n      (_restProps$onReset = restProps.onReset) === null || _restProps$onReset === void 0 ? void 0 : _restProps$onReset.call(restProps, event);\n    }\n  }), wrapperNode);\n};\nexport default Form;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { FieldContext } from '.';\nimport warning from \"rc-util/es/warning\";\nimport { HOOK_MARK } from './FieldContext';\nimport { useState, useContext, useEffect, useRef, useMemo } from 'react';\nimport { getNamePath, getValue } from './utils/valueUtil';\nexport function stringify(value) {\n  try {\n    return JSON.stringify(value);\n  } catch (err) {\n    return Math.random();\n  }\n}\nfunction useWatch() {\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n  var _args$ = args[0],\n    dependencies = _args$ === void 0 ? [] : _args$,\n    form = args[1];\n  var _useState = useState(),\n    _useState2 = _slicedToArray(_useState, 2),\n    value = _useState2[0],\n    setValue = _useState2[1];\n  var valueStr = useMemo(function () {\n    return stringify(value);\n  }, [value]);\n  var valueStrRef = useRef(valueStr);\n  valueStrRef.current = valueStr;\n  var fieldContext = useContext(FieldContext);\n  var formInstance = form || fieldContext;\n  var isValidForm = formInstance && formInstance._init;\n  // Warning if not exist form instance\n  if (process.env.NODE_ENV !== 'production') {\n    warning(args.length === 2 ? form ? isValidForm : true : isValidForm, 'useWatch requires a form instance since it can not auto detect from context.');\n  }\n  var namePath = getNamePath(dependencies);\n  var namePathRef = useRef(namePath);\n  namePathRef.current = namePath;\n  useEffect(function () {\n    // Skip if not exist form instance\n    if (!isValidForm) {\n      return;\n    }\n    var getFieldsValue = formInstance.getFieldsValue,\n      getInternalHooks = formInstance.getInternalHooks;\n    var _getInternalHooks = getInternalHooks(HOOK_MARK),\n      registerWatch = _getInternalHooks.registerWatch;\n    var cancelRegister = registerWatch(function (store) {\n      var newValue = getValue(store, namePathRef.current);\n      var nextValueStr = stringify(newValue);\n      // Compare stringify in case it's nest object\n      if (valueStrRef.current !== nextValueStr) {\n        valueStrRef.current = nextValueStr;\n        setValue(newValue);\n      }\n    });\n    // TODO: We can improve this perf in future\n    var initialValue = getValue(getFieldsValue(), namePathRef.current);\n    setValue(initialValue);\n    return cancelRegister;\n  },\n  // We do not need re-register since namePath content is the same\n  // eslint-disable-next-line react-hooks/exhaustive-deps\n  [isValidForm]);\n  return value;\n}\nexport default useWatch;","import * as React from 'react';\nimport Field from './Field';\nimport List from './List';\nimport useForm from './useForm';\nimport FieldForm from './Form';\nimport { FormProvider } from './FormContext';\nimport FieldContext from './FieldContext';\nimport ListContext from './ListContext';\nimport useWatch from './useWatch';\nvar InternalForm = /*#__PURE__*/React.forwardRef(FieldForm);\nvar RefForm = InternalForm;\nRefForm.FormProvider = FormProvider;\nRefForm.Field = Field;\nRefForm.List = List;\nRefForm.useForm = useForm;\nRefForm.useWatch = useWatch;\nexport { Field, List, useForm, FormProvider, FieldContext, ListContext, useWatch };\nexport default RefForm;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport canUseDOM from \"rc-util/es/Dom/canUseDom\"; // ================= Transition =================\n// Event wrapper. Copy from react source code\n\nfunction makePrefixMap(styleProp, eventName) {\n  var prefixes = {};\n  prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n  prefixes[\"Webkit\".concat(styleProp)] = \"webkit\".concat(eventName);\n  prefixes[\"Moz\".concat(styleProp)] = \"moz\".concat(eventName);\n  prefixes[\"ms\".concat(styleProp)] = \"MS\".concat(eventName);\n  prefixes[\"O\".concat(styleProp)] = \"o\".concat(eventName.toLowerCase());\n  return prefixes;\n}\n\nexport function getVendorPrefixes(domSupport, win) {\n  var prefixes = {\n    animationend: makePrefixMap('Animation', 'AnimationEnd'),\n    transitionend: makePrefixMap('Transition', 'TransitionEnd')\n  };\n\n  if (domSupport) {\n    if (!('AnimationEvent' in win)) {\n      delete prefixes.animationend.animation;\n    }\n\n    if (!('TransitionEvent' in win)) {\n      delete prefixes.transitionend.transition;\n    }\n  }\n\n  return prefixes;\n}\nvar vendorPrefixes = getVendorPrefixes(canUseDOM(), typeof window !== 'undefined' ? window : {});\nvar style = {};\n\nif (canUseDOM()) {\n  var _document$createEleme = document.createElement('div');\n\n  style = _document$createEleme.style;\n}\n\nvar prefixedEventNames = {};\nexport function getVendorPrefixedEventName(eventName) {\n  if (prefixedEventNames[eventName]) {\n    return prefixedEventNames[eventName];\n  }\n\n  var prefixMap = vendorPrefixes[eventName];\n\n  if (prefixMap) {\n    var stylePropList = Object.keys(prefixMap);\n    var len = stylePropList.length;\n\n    for (var i = 0; i < len; i += 1) {\n      var styleProp = stylePropList[i];\n\n      if (Object.prototype.hasOwnProperty.call(prefixMap, styleProp) && styleProp in style) {\n        prefixedEventNames[eventName] = prefixMap[styleProp];\n        return prefixedEventNames[eventName];\n      }\n    }\n  }\n\n  return '';\n}\nvar internalAnimationEndName = getVendorPrefixedEventName('animationend');\nvar internalTransitionEndName = getVendorPrefixedEventName('transitionend');\nexport var supportTransition = !!(internalAnimationEndName && internalTransitionEndName);\nexport var animationEndName = internalAnimationEndName || 'animationend';\nexport var transitionEndName = internalTransitionEndName || 'transitionend';\nexport function getTransitionName(transitionName, transitionType) {\n  if (!transitionName) return null;\n\n  if (_typeof(transitionName) === 'object') {\n    var type = transitionType.replace(/-\\w/g, function (match) {\n      return match[1].toUpperCase();\n    });\n    return transitionName[type];\n  }\n\n  return \"\".concat(transitionName, \"-\").concat(transitionType);\n}","export var STATUS_NONE = 'none';\nexport var STATUS_APPEAR = 'appear';\nexport var STATUS_ENTER = 'enter';\nexport var STATUS_LEAVE = 'leave';\nexport var STEP_NONE = 'none';\nexport var STEP_PREPARE = 'prepare';\nexport var STEP_START = 'start';\nexport var STEP_ACTIVE = 'active';\nexport var STEP_ACTIVATED = 'end';","import { useEffect, useLayoutEffect } from 'react';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\"; // It's safe to use `useLayoutEffect` but the warning is annoying\n\nvar useIsomorphicLayoutEffect = canUseDom() ? useLayoutEffect : useEffect;\nexport default useIsomorphicLayoutEffect;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useState from \"rc-util/es/hooks/useState\";\nimport { STEP_PREPARE, STEP_ACTIVE, STEP_START, STEP_ACTIVATED, STEP_NONE } from '../interface';\nimport useNextFrame from './useNextFrame';\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect';\nvar STEP_QUEUE = [STEP_PREPARE, STEP_START, STEP_ACTIVE, STEP_ACTIVATED];\n/** Skip current step */\n\nexport var SkipStep = false;\n/** Current step should be update in */\n\nexport var DoStep = true;\nexport function isActive(step) {\n  return step === STEP_ACTIVE || step === STEP_ACTIVATED;\n}\nexport default (function (status, callback) {\n  var _useState = useState(STEP_NONE),\n      _useState2 = _slicedToArray(_useState, 2),\n      step = _useState2[0],\n      setStep = _useState2[1];\n\n  var _useNextFrame = useNextFrame(),\n      _useNextFrame2 = _slicedToArray(_useNextFrame, 2),\n      nextFrame = _useNextFrame2[0],\n      cancelNextFrame = _useNextFrame2[1];\n\n  function startQueue() {\n    setStep(STEP_PREPARE, true);\n  }\n\n  useIsomorphicLayoutEffect(function () {\n    if (step !== STEP_NONE && step !== STEP_ACTIVATED) {\n      var index = STEP_QUEUE.indexOf(step);\n      var nextStep = STEP_QUEUE[index + 1];\n      var result = callback(step);\n\n      if (result === SkipStep) {\n        // Skip when no needed\n        setStep(nextStep, true);\n      } else {\n        // Do as frame for step update\n        nextFrame(function (info) {\n          function doNext() {\n            // Skip since current queue is ood\n            if (info.isCanceled()) return;\n            setStep(nextStep, true);\n          }\n\n          if (result === true) {\n            doNext();\n          } else {\n            // Only promise should be async\n            Promise.resolve(result).then(doNext);\n          }\n        });\n      }\n    }\n  }, [status, step]);\n  React.useEffect(function () {\n    return function () {\n      cancelNextFrame();\n    };\n  }, []);\n  return [startQueue, step];\n});","import * as React from 'react';\nimport raf from \"rc-util/es/raf\";\nexport default (function () {\n  var nextFrameRef = React.useRef(null);\n\n  function cancelNextFrame() {\n    raf.cancel(nextFrameRef.current);\n  }\n\n  function nextFrame(callback) {\n    var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n    cancelNextFrame();\n    var nextFrameId = raf(function () {\n      if (delay <= 1) {\n        callback({\n          isCanceled: function isCanceled() {\n            return nextFrameId !== nextFrameRef.current;\n          }\n        });\n      } else {\n        nextFrame(callback, delay - 1);\n      }\n    });\n    nextFrameRef.current = nextFrameId;\n  }\n\n  React.useEffect(function () {\n    return function () {\n      cancelNextFrame();\n    };\n  }, []);\n  return [nextFrame, cancelNextFrame];\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useEffect } from 'react';\nimport useState from \"rc-util/es/hooks/useState\";\nimport { STATUS_APPEAR, STATUS_NONE, STATUS_LEAVE, STATUS_ENTER, STEP_PREPARE, STEP_START, STEP_ACTIVE } from '../interface';\nimport useStepQueue, { DoStep, SkipStep, isActive } from './useStepQueue';\nimport useDomMotionEvents from './useDomMotionEvents';\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect';\nexport default function useStatus(supportMotion, visible, getElement, _ref) {\n  var _ref$motionEnter = _ref.motionEnter,\n      motionEnter = _ref$motionEnter === void 0 ? true : _ref$motionEnter,\n      _ref$motionAppear = _ref.motionAppear,\n      motionAppear = _ref$motionAppear === void 0 ? true : _ref$motionAppear,\n      _ref$motionLeave = _ref.motionLeave,\n      motionLeave = _ref$motionLeave === void 0 ? true : _ref$motionLeave,\n      motionDeadline = _ref.motionDeadline,\n      motionLeaveImmediately = _ref.motionLeaveImmediately,\n      onAppearPrepare = _ref.onAppearPrepare,\n      onEnterPrepare = _ref.onEnterPrepare,\n      onLeavePrepare = _ref.onLeavePrepare,\n      onAppearStart = _ref.onAppearStart,\n      onEnterStart = _ref.onEnterStart,\n      onLeaveStart = _ref.onLeaveStart,\n      onAppearActive = _ref.onAppearActive,\n      onEnterActive = _ref.onEnterActive,\n      onLeaveActive = _ref.onLeaveActive,\n      onAppearEnd = _ref.onAppearEnd,\n      onEnterEnd = _ref.onEnterEnd,\n      onLeaveEnd = _ref.onLeaveEnd,\n      onVisibleChanged = _ref.onVisibleChanged;\n\n  // Used for outer render usage to avoid `visible: false & status: none` to render nothing\n  var _useState = useState(),\n      _useState2 = _slicedToArray(_useState, 2),\n      asyncVisible = _useState2[0],\n      setAsyncVisible = _useState2[1];\n\n  var _useState3 = useState(STATUS_NONE),\n      _useState4 = _slicedToArray(_useState3, 2),\n      status = _useState4[0],\n      setStatus = _useState4[1];\n\n  var _useState5 = useState(null),\n      _useState6 = _slicedToArray(_useState5, 2),\n      style = _useState6[0],\n      setStyle = _useState6[1];\n\n  var mountedRef = useRef(false);\n  var deadlineRef = useRef(null); // =========================== Dom Node ===========================\n\n  function getDomElement() {\n    return getElement();\n  } // ========================== Motion End ==========================\n\n\n  var activeRef = useRef(false);\n\n  function onInternalMotionEnd(event) {\n    var element = getDomElement();\n\n    if (event && !event.deadline && event.target !== element) {\n      // event exists\n      // not initiated by deadline\n      // transitionEnd not fired by inner elements\n      return;\n    }\n\n    var currentActive = activeRef.current;\n    var canEnd;\n\n    if (status === STATUS_APPEAR && currentActive) {\n      canEnd = onAppearEnd === null || onAppearEnd === void 0 ? void 0 : onAppearEnd(element, event);\n    } else if (status === STATUS_ENTER && currentActive) {\n      canEnd = onEnterEnd === null || onEnterEnd === void 0 ? void 0 : onEnterEnd(element, event);\n    } else if (status === STATUS_LEAVE && currentActive) {\n      canEnd = onLeaveEnd === null || onLeaveEnd === void 0 ? void 0 : onLeaveEnd(element, event);\n    } // Only update status when `canEnd` and not destroyed\n\n\n    if (status !== STATUS_NONE && currentActive && canEnd !== false) {\n      setStatus(STATUS_NONE, true);\n      setStyle(null, true);\n    }\n  }\n\n  var _useDomMotionEvents = useDomMotionEvents(onInternalMotionEnd),\n      _useDomMotionEvents2 = _slicedToArray(_useDomMotionEvents, 1),\n      patchMotionEvents = _useDomMotionEvents2[0]; // ============================= Step =============================\n\n\n  var eventHandlers = React.useMemo(function () {\n    var _ref2, _ref3, _ref4;\n\n    switch (status) {\n      case STATUS_APPEAR:\n        return _ref2 = {}, _defineProperty(_ref2, STEP_PREPARE, onAppearPrepare), _defineProperty(_ref2, STEP_START, onAppearStart), _defineProperty(_ref2, STEP_ACTIVE, onAppearActive), _ref2;\n\n      case STATUS_ENTER:\n        return _ref3 = {}, _defineProperty(_ref3, STEP_PREPARE, onEnterPrepare), _defineProperty(_ref3, STEP_START, onEnterStart), _defineProperty(_ref3, STEP_ACTIVE, onEnterActive), _ref3;\n\n      case STATUS_LEAVE:\n        return _ref4 = {}, _defineProperty(_ref4, STEP_PREPARE, onLeavePrepare), _defineProperty(_ref4, STEP_START, onLeaveStart), _defineProperty(_ref4, STEP_ACTIVE, onLeaveActive), _ref4;\n\n      default:\n        return {};\n    }\n  }, [status]);\n\n  var _useStepQueue = useStepQueue(status, function (newStep) {\n    // Only prepare step can be skip\n    if (newStep === STEP_PREPARE) {\n      var onPrepare = eventHandlers[STEP_PREPARE];\n\n      if (!onPrepare) {\n        return SkipStep;\n      }\n\n      return onPrepare(getDomElement());\n    } // Rest step is sync update\n\n\n    // Rest step is sync update\n    if (step in eventHandlers) {\n      var _eventHandlers$step;\n\n      setStyle(((_eventHandlers$step = eventHandlers[step]) === null || _eventHandlers$step === void 0 ? void 0 : _eventHandlers$step.call(eventHandlers, getDomElement(), null)) || null);\n    }\n\n    if (step === STEP_ACTIVE) {\n      // Patch events when motion needed\n      patchMotionEvents(getDomElement());\n\n      if (motionDeadline > 0) {\n        clearTimeout(deadlineRef.current);\n        deadlineRef.current = setTimeout(function () {\n          onInternalMotionEnd({\n            deadline: true\n          });\n        }, motionDeadline);\n      }\n    }\n\n    return DoStep;\n  }),\n      _useStepQueue2 = _slicedToArray(_useStepQueue, 2),\n      startStep = _useStepQueue2[0],\n      step = _useStepQueue2[1];\n\n  var active = isActive(step);\n  activeRef.current = active; // ============================ Status ============================\n  // Update with new status\n\n  useIsomorphicLayoutEffect(function () {\n    setAsyncVisible(visible);\n    var isMounted = mountedRef.current;\n    mountedRef.current = true;\n\n    if (!supportMotion) {\n      return;\n    }\n\n    var nextStatus; // Appear\n\n    if (!isMounted && visible && motionAppear) {\n      nextStatus = STATUS_APPEAR;\n    } // Enter\n\n\n    if (isMounted && visible && motionEnter) {\n      nextStatus = STATUS_ENTER;\n    } // Leave\n\n\n    if (isMounted && !visible && motionLeave || !isMounted && motionLeaveImmediately && !visible && motionLeave) {\n      nextStatus = STATUS_LEAVE;\n    } // Update to next status\n\n\n    if (nextStatus) {\n      setStatus(nextStatus);\n      startStep();\n    }\n  }, [visible]); // ============================ Effect ============================\n  // Reset when motion changed\n\n  useEffect(function () {\n    if ( // Cancel appear\n    status === STATUS_APPEAR && !motionAppear || // Cancel enter\n    status === STATUS_ENTER && !motionEnter || // Cancel leave\n    status === STATUS_LEAVE && !motionLeave) {\n      setStatus(STATUS_NONE);\n    }\n  }, [motionAppear, motionEnter, motionLeave]);\n  useEffect(function () {\n    return function () {\n      mountedRef.current = false;\n      clearTimeout(deadlineRef.current);\n    };\n  }, []); // Trigger `onVisibleChanged`\n\n  var firstMountChangeRef = React.useRef(false);\n  useEffect(function () {\n    // [visible & motion not end] => [!visible & motion end] still need trigger onVisibleChanged\n    if (asyncVisible) {\n      firstMountChangeRef.current = true;\n    }\n\n    if (asyncVisible !== undefined && status === STATUS_NONE) {\n      // Skip first render is invisible since it's nothing changed\n      if (firstMountChangeRef.current || asyncVisible) {\n        onVisibleChanged === null || onVisibleChanged === void 0 ? void 0 : onVisibleChanged(asyncVisible);\n      }\n\n      firstMountChangeRef.current = true;\n    }\n  }, [asyncVisible, status]); // ============================ Styles ============================\n\n  var mergedStyle = style;\n\n  if (eventHandlers[STEP_PREPARE] && step === STEP_START) {\n    mergedStyle = _objectSpread({\n      transition: 'none'\n    }, mergedStyle);\n  }\n\n  return [status, step, mergedStyle, asyncVisible !== null && asyncVisible !== void 0 ? asyncVisible : visible];\n}","import * as React from 'react';\nimport { useRef } from 'react';\nimport { animationEndName, transitionEndName } from '../util/motion';\nexport default (function (callback) {\n  var cacheElementRef = useRef(); // Cache callback\n\n  var callbackRef = useRef(callback);\n  callbackRef.current = callback; // Internal motion event handler\n\n  var onInternalMotionEnd = React.useCallback(function (event) {\n    callbackRef.current(event);\n  }, []); // Remove events\n\n  function removeMotionEvents(element) {\n    if (element) {\n      element.removeEventListener(transitionEndName, onInternalMotionEnd);\n      element.removeEventListener(animationEndName, onInternalMotionEnd);\n    }\n  } // Patch events\n\n\n  function patchMotionEvents(element) {\n    if (cacheElementRef.current && cacheElementRef.current !== element) {\n      removeMotionEvents(cacheElementRef.current);\n    }\n\n    if (element && element !== cacheElementRef.current) {\n      element.addEventListener(transitionEndName, onInternalMotionEnd);\n      element.addEventListener(animationEndName, onInternalMotionEnd); // Save as cache in case dom removed trigger by `motionDeadline`\n\n      cacheElementRef.current = element;\n    }\n  } // Clean up when removed\n\n\n  React.useEffect(function () {\n    return function () {\n      removeMotionEvents(cacheElementRef.current);\n    };\n  }, []);\n  return [patchMotionEvents, removeMotionEvents];\n});","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\n\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n  _inherits(DomWrapper, _React$Component);\n\n  var _super = _createSuper(DomWrapper);\n\n  function DomWrapper() {\n    _classCallCheck(this, DomWrapper);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(DomWrapper, [{\n    key: \"render\",\n    value: function render() {\n      return this.props.children;\n    }\n  }]);\n\n  return DomWrapper;\n}(React.Component);\n\nexport default DomWrapper;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\n/* eslint-disable react/default-props-match-prop-types, react/no-multi-comp, react/prop-types */\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { fillRef, supportRef } from \"rc-util/es/ref\";\nimport classNames from 'classnames';\nimport { getTransitionName, supportTransition } from './util/motion';\nimport { STATUS_NONE, STEP_PREPARE, STEP_START } from './interface';\nimport useStatus from './hooks/useStatus';\nimport DomWrapper from './DomWrapper';\nimport { isActive } from './hooks/useStepQueue';\n/**\n * `transitionSupport` is used for none transition test case.\n * Default we use browser transition event support check.\n */\n\nexport function genCSSMotion(config) {\n  var transitionSupport = config;\n\n  if (_typeof(config) === 'object') {\n    transitionSupport = config.transitionSupport;\n  }\n\n  function isSupportTransition(props) {\n    return !!(props.motionName && transitionSupport);\n  }\n\n  var CSSMotion = /*#__PURE__*/React.forwardRef(function (props, ref) {\n    var _props$visible = props.visible,\n        visible = _props$visible === void 0 ? true : _props$visible,\n        _props$removeOnLeave = props.removeOnLeave,\n        removeOnLeave = _props$removeOnLeave === void 0 ? true : _props$removeOnLeave,\n        forceRender = props.forceRender,\n        children = props.children,\n        motionName = props.motionName,\n        leavedClassName = props.leavedClassName,\n        eventProps = props.eventProps;\n    var supportMotion = isSupportTransition(props); // Ref to the react node, it may be a HTMLElement\n\n    var nodeRef = useRef(); // Ref to the dom wrapper in case ref can not pass to HTMLElement\n\n    var wrapperNodeRef = useRef();\n\n    function getDomElement() {\n      try {\n        // Here we're avoiding call for findDOMNode since it's deprecated\n        // in strict mode. We're calling it only when node ref is not\n        // an instance of DOM HTMLElement. Otherwise use\n        // findDOMNode as a final resort\n        return nodeRef.current instanceof HTMLElement ? nodeRef.current : findDOMNode(wrapperNodeRef.current);\n      } catch (e) {\n        // Only happen when `motionDeadline` trigger but element removed.\n        return null;\n      }\n    }\n\n    var _useStatus = useStatus(supportMotion, visible, getDomElement, props),\n        _useStatus2 = _slicedToArray(_useStatus, 4),\n        status = _useStatus2[0],\n        statusStep = _useStatus2[1],\n        statusStyle = _useStatus2[2],\n        mergedVisible = _useStatus2[3]; // Record whether content has rendered\n    // Will return null for un-rendered even when `removeOnLeave={false}`\n\n\n    var renderedRef = React.useRef(mergedVisible);\n\n    if (mergedVisible) {\n      renderedRef.current = true;\n    } // ====================== Refs ======================\n\n\n    var setNodeRef = React.useCallback(function (node) {\n      nodeRef.current = node;\n      fillRef(ref, node);\n    }, [ref]); // ===================== Render =====================\n\n    var motionChildren;\n\n    var mergedProps = _objectSpread(_objectSpread({}, eventProps), {}, {\n      visible: visible\n    });\n\n    if (!children) {\n      // No children\n      motionChildren = null;\n    } else if (status === STATUS_NONE || !isSupportTransition(props)) {\n      // Stable children\n      if (mergedVisible) {\n        motionChildren = children(_objectSpread({}, mergedProps), setNodeRef);\n      } else if (!removeOnLeave && renderedRef.current) {\n        motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n          className: leavedClassName\n        }), setNodeRef);\n      } else if (forceRender) {\n        motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n          style: {\n            display: 'none'\n          }\n        }), setNodeRef);\n      } else {\n        motionChildren = null;\n      }\n    } else {\n      var _classNames;\n\n      // In motion\n      var statusSuffix;\n\n      if (statusStep === STEP_PREPARE) {\n        statusSuffix = 'prepare';\n      } else if (isActive(statusStep)) {\n        statusSuffix = 'active';\n      } else if (statusStep === STEP_START) {\n        statusSuffix = 'start';\n      }\n\n      motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n        className: classNames(getTransitionName(motionName, status), (_classNames = {}, _defineProperty(_classNames, getTransitionName(motionName, \"\".concat(status, \"-\").concat(statusSuffix)), statusSuffix), _defineProperty(_classNames, motionName, typeof motionName === 'string'), _classNames)),\n        style: statusStyle\n      }), setNodeRef);\n    } // Auto inject ref if child node not have `ref` props\n\n\n    if ( /*#__PURE__*/React.isValidElement(motionChildren) && supportRef(motionChildren)) {\n      var _motionChildren = motionChildren,\n          originNodeRef = _motionChildren.ref;\n\n      if (!originNodeRef) {\n        motionChildren = /*#__PURE__*/React.cloneElement(motionChildren, {\n          ref: setNodeRef\n        });\n      }\n    }\n\n    return /*#__PURE__*/React.createElement(DomWrapper, {\n      ref: wrapperNodeRef\n    }, motionChildren);\n  });\n  CSSMotion.displayName = 'CSSMotion';\n  return CSSMotion;\n}\nexport default genCSSMotion(supportTransition);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport var STATUS_ADD = 'add';\nexport var STATUS_KEEP = 'keep';\nexport var STATUS_REMOVE = 'remove';\nexport var STATUS_REMOVED = 'removed';\nexport function wrapKeyToObject(key) {\n  var keyObj;\n\n  if (key && _typeof(key) === 'object' && 'key' in key) {\n    keyObj = key;\n  } else {\n    keyObj = {\n      key: key\n    };\n  }\n\n  return _objectSpread(_objectSpread({}, keyObj), {}, {\n    key: String(keyObj.key)\n  });\n}\nexport function parseKeys() {\n  var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n  return keys.map(wrapKeyToObject);\n}\nexport function diffKeys() {\n  var prevKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n  var currentKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n  var list = [];\n  var currentIndex = 0;\n  var currentLen = currentKeys.length;\n  var prevKeyObjects = parseKeys(prevKeys);\n  var currentKeyObjects = parseKeys(currentKeys); // Check prev keys to insert or keep\n\n  prevKeyObjects.forEach(function (keyObj) {\n    var hit = false;\n\n    for (var i = currentIndex; i < currentLen; i += 1) {\n      var currentKeyObj = currentKeyObjects[i];\n\n      if (currentKeyObj.key === keyObj.key) {\n        // New added keys should add before current key\n        if (currentIndex < i) {\n          list = list.concat(currentKeyObjects.slice(currentIndex, i).map(function (obj) {\n            return _objectSpread(_objectSpread({}, obj), {}, {\n              status: STATUS_ADD\n            });\n          }));\n          currentIndex = i;\n        }\n\n        list.push(_objectSpread(_objectSpread({}, currentKeyObj), {}, {\n          status: STATUS_KEEP\n        }));\n        currentIndex += 1;\n        hit = true;\n        break;\n      }\n    } // If not hit, it means key is removed\n\n\n    if (!hit) {\n      list.push(_objectSpread(_objectSpread({}, keyObj), {}, {\n        status: STATUS_REMOVE\n      }));\n    }\n  }); // Add rest to the list\n\n  if (currentIndex < currentLen) {\n    list = list.concat(currentKeyObjects.slice(currentIndex).map(function (obj) {\n      return _objectSpread(_objectSpread({}, obj), {}, {\n        status: STATUS_ADD\n      });\n    }));\n  }\n  /**\n   * Merge same key when it remove and add again:\n   *    [1 - add, 2 - keep, 1 - remove] -> [1 - keep, 2 - keep]\n   */\n\n\n  var keys = {};\n  list.forEach(function (_ref) {\n    var key = _ref.key;\n    keys[key] = (keys[key] || 0) + 1;\n  });\n  var duplicatedKeys = Object.keys(keys).filter(function (key) {\n    return keys[key] > 1;\n  });\n  duplicatedKeys.forEach(function (matchKey) {\n    // Remove `STATUS_REMOVE` node.\n    list = list.filter(function (_ref2) {\n      var key = _ref2.key,\n          status = _ref2.status;\n      return key !== matchKey || status !== STATUS_REMOVE;\n    }); // Update `STATUS_ADD` to `STATUS_KEEP`\n\n    list.forEach(function (node) {\n      if (node.key === matchKey) {\n        // eslint-disable-next-line no-param-reassign\n        node.status = STATUS_KEEP;\n      }\n    });\n  });\n  return list;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"component\", \"children\", \"onVisibleChanged\", \"onAllRemoved\"],\n    _excluded2 = [\"status\"];\n\n/* eslint react/prop-types: 0 */\nimport * as React from 'react';\nimport OriginCSSMotion from './CSSMotion';\nimport { supportTransition } from './util/motion';\nimport { STATUS_ADD, STATUS_KEEP, STATUS_REMOVE, STATUS_REMOVED, diffKeys, parseKeys } from './util/diff';\nvar MOTION_PROP_NAMES = ['eventProps', 'visible', 'children', 'motionName', 'motionAppear', 'motionEnter', 'motionLeave', 'motionLeaveImmediately', 'motionDeadline', 'removeOnLeave', 'leavedClassName', 'onAppearStart', 'onAppearActive', 'onAppearEnd', 'onEnterStart', 'onEnterActive', 'onEnterEnd', 'onLeaveStart', 'onLeaveActive', 'onLeaveEnd'];\n/**\n * Generate a CSSMotionList component with config\n * @param transitionSupport No need since CSSMotionList no longer depends on transition support\n * @param CSSMotion CSSMotion component\n */\n\nexport function genCSSMotionList(transitionSupport) {\n  var CSSMotion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : OriginCSSMotion;\n\n  var CSSMotionList = /*#__PURE__*/function (_React$Component) {\n    _inherits(CSSMotionList, _React$Component);\n\n    var _super = _createSuper(CSSMotionList);\n\n    function CSSMotionList() {\n      var _this;\n\n      _classCallCheck(this, CSSMotionList);\n\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n\n      _this = _super.call.apply(_super, [this].concat(args));\n      _this.state = {\n        keyEntities: []\n      };\n\n      _this.removeKey = function (removeKey) {\n        var keyEntities = _this.state.keyEntities;\n        var nextKeyEntities = keyEntities.map(function (entity) {\n          if (entity.key !== removeKey) return entity;\n          return _objectSpread(_objectSpread({}, entity), {}, {\n            status: STATUS_REMOVED\n          });\n        });\n\n        _this.setState({\n          keyEntities: nextKeyEntities\n        });\n\n        return nextKeyEntities.filter(function (_ref) {\n          var status = _ref.status;\n          return status !== STATUS_REMOVED;\n        }).length;\n      };\n\n      return _this;\n    }\n\n    _createClass(CSSMotionList, [{\n      key: \"render\",\n      value: function render() {\n        var _this2 = this;\n\n        var keyEntities = this.state.keyEntities;\n\n        var _this$props = this.props,\n            component = _this$props.component,\n            children = _this$props.children,\n            _onVisibleChanged = _this$props.onVisibleChanged,\n            onAllRemoved = _this$props.onAllRemoved,\n            restProps = _objectWithoutProperties(_this$props, _excluded);\n\n        var Component = component || React.Fragment;\n        var motionProps = {};\n        MOTION_PROP_NAMES.forEach(function (prop) {\n          motionProps[prop] = restProps[prop];\n          delete restProps[prop];\n        });\n        delete restProps.keys;\n        return /*#__PURE__*/React.createElement(Component, restProps, keyEntities.map(function (_ref2) {\n          var status = _ref2.status,\n              eventProps = _objectWithoutProperties(_ref2, _excluded2);\n\n          var visible = status === STATUS_ADD || status === STATUS_KEEP;\n          return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motionProps, {\n            key: eventProps.key,\n            visible: visible,\n            eventProps: eventProps,\n            onVisibleChanged: function onVisibleChanged(changedVisible) {\n              _onVisibleChanged === null || _onVisibleChanged === void 0 ? void 0 : _onVisibleChanged(changedVisible, {\n                key: eventProps.key\n              });\n\n              if (!changedVisible) {\n                var restKeysCount = _this2.removeKey(eventProps.key);\n\n                if (restKeysCount === 0 && onAllRemoved) {\n                  onAllRemoved();\n                }\n              }\n            }\n          }), children);\n        }));\n      }\n    }], [{\n      key: \"getDerivedStateFromProps\",\n      value: function getDerivedStateFromProps(_ref3, _ref4) {\n        var keys = _ref3.keys;\n        var keyEntities = _ref4.keyEntities;\n        var parsedKeyObjects = parseKeys(keys);\n        var mixedKeyEntities = diffKeys(keyEntities, parsedKeyObjects);\n        return {\n          keyEntities: mixedKeyEntities.filter(function (entity) {\n            var prevEntity = keyEntities.find(function (_ref5) {\n              var key = _ref5.key;\n              return entity.key === key;\n            }); // Remove if already mark as removed\n\n            if (prevEntity && prevEntity.status === STATUS_REMOVED && entity.status === STATUS_REMOVE) {\n              return false;\n            }\n\n            return true;\n          })\n        };\n      } // ZombieJ: Return the count of rest keys. It's safe to refactor if need more info.\n\n    }]);\n\n    return CSSMotionList;\n  }(React.Component);\n\n  CSSMotionList.defaultProps = {\n    component: 'div'\n  };\n  return CSSMotionList;\n}\nexport default genCSSMotionList(supportTransition);","import CSSMotion from './CSSMotion';\nimport CSSMotionList from './CSSMotionList';\nexport { CSSMotionList };\nexport default CSSMotion;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nvar Notice = /*#__PURE__*/function (_Component) {\n  _inherits(Notice, _Component);\n  var _super = _createSuper(Notice);\n  function Notice() {\n    var _this;\n    _classCallCheck(this, Notice);\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    _this = _super.call.apply(_super, [this].concat(args));\n    _this.closeTimer = null;\n    _this.close = function (e) {\n      if (e) {\n        e.stopPropagation();\n      }\n      _this.clearCloseTimer();\n      var _this$props = _this.props,\n        onClose = _this$props.onClose,\n        noticeKey = _this$props.noticeKey;\n      if (onClose) {\n        onClose(noticeKey);\n      }\n    };\n    _this.startCloseTimer = function () {\n      if (_this.props.duration) {\n        _this.closeTimer = window.setTimeout(function () {\n          _this.close();\n        }, _this.props.duration * 1000);\n      }\n    };\n    _this.clearCloseTimer = function () {\n      if (_this.closeTimer) {\n        clearTimeout(_this.closeTimer);\n        _this.closeTimer = null;\n      }\n    };\n    return _this;\n  }\n  _createClass(Notice, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.startCloseTimer();\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      if (this.props.duration !== prevProps.duration || this.props.updateMark !== prevProps.updateMark ||\n      // Visible again need reset timer\n      this.props.visible !== prevProps.visible && this.props.visible) {\n        this.restartCloseTimer();\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.clearCloseTimer();\n    }\n  }, {\n    key: \"restartCloseTimer\",\n    value: function restartCloseTimer() {\n      this.clearCloseTimer();\n      this.startCloseTimer();\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n      var _this$props2 = this.props,\n        prefixCls = _this$props2.prefixCls,\n        className = _this$props2.className,\n        closable = _this$props2.closable,\n        closeIcon = _this$props2.closeIcon,\n        style = _this$props2.style,\n        onClick = _this$props2.onClick,\n        children = _this$props2.children,\n        holder = _this$props2.holder;\n      var componentClass = \"\".concat(prefixCls, \"-notice\");\n      var dataOrAriaAttributeProps = Object.keys(this.props).reduce(function (acc, key) {\n        if (key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-' || key === 'role') {\n          acc[key] = _this2.props[key];\n        }\n        return acc;\n      }, {});\n      var node = /*#__PURE__*/React.createElement(\"div\", _extends({\n        className: classNames(componentClass, className, _defineProperty({}, \"\".concat(componentClass, \"-closable\"), closable)),\n        style: style,\n        onMouseEnter: this.clearCloseTimer,\n        onMouseLeave: this.startCloseTimer,\n        onClick: onClick\n      }, dataOrAriaAttributeProps), /*#__PURE__*/React.createElement(\"div\", {\n        className: \"\".concat(componentClass, \"-content\")\n      }, children), closable ? /*#__PURE__*/React.createElement(\"a\", {\n        tabIndex: 0,\n        onClick: this.close,\n        className: \"\".concat(componentClass, \"-close\")\n      }, closeIcon || /*#__PURE__*/React.createElement(\"span\", {\n        className: \"\".concat(componentClass, \"-close-x\")\n      })) : null);\n      if (holder) {\n        return /*#__PURE__*/ReactDOM.createPortal(node, holder);\n      }\n      return node;\n    }\n  }]);\n  return Notice;\n}(Component);\nNotice.defaultProps = {\n  onClose: function onClose() {},\n  duration: 1.5\n};\nexport { Notice as default };","import _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as ReactDOM from 'react-dom'; // Let compiler not to search module usage\n\nvar fullClone = _objectSpread({}, ReactDOM);\n\nvar version = fullClone.version,\n    reactRender = fullClone.render,\n    unmountComponentAtNode = fullClone.unmountComponentAtNode;\nvar createRoot;\n\ntry {\n  var mainVersion = Number((version || '').split('.')[0]);\n\n  if (mainVersion >= 18) {\n    createRoot = fullClone.createRoot;\n  }\n} catch (e) {// Do nothing;\n}\n\nfunction toggleWarning(skip) {\n  var __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = fullClone.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\n  if (__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED && _typeof(__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED) === 'object') {\n    __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.usingClientEntryPoint = skip;\n  }\n}\n\nvar MARK = '__rc_react_root__';\n\nfunction modernRender(node, container) {\n  toggleWarning(true);\n  var root = container[MARK] || createRoot(container);\n  toggleWarning(false);\n  root.render(node);\n  container[MARK] = root;\n}\n\nfunction legacyRender(node, container) {\n  reactRender(node, container);\n}\n/** @private Test usage. Not work in prod */\n\n\nexport function _r(node, container) {\n  if (process.env.NODE_ENV !== 'production') {\n    return legacyRender(node, container);\n  }\n}\nexport function render(node, container) {\n  if (createRoot) {\n    modernRender(node, container);\n    return;\n  }\n\n  legacyRender(node, container);\n} // ========================= Unmount ==========================\n\nfunction modernUnmount(_x) {\n  return _modernUnmount.apply(this, arguments);\n}\n\nfunction _modernUnmount() {\n  _modernUnmount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(container) {\n    return _regeneratorRuntime().wrap(function _callee$(_context) {\n      while (1) {\n        switch (_context.prev = _context.next) {\n          case 0:\n            return _context.abrupt(\"return\", Promise.resolve().then(function () {\n              var _container$MARK;\n\n              (_container$MARK = container[MARK]) === null || _container$MARK === void 0 ? void 0 : _container$MARK.unmount();\n              delete container[MARK];\n            }));\n\n          case 1:\n          case \"end\":\n            return _context.stop();\n        }\n      }\n    }, _callee);\n  }));\n  return _modernUnmount.apply(this, arguments);\n}\n\nfunction legacyUnmount(container) {\n  unmountComponentAtNode(container);\n}\n/** @private Test usage. Not work in prod */\n\n\nexport function _u(container) {\n  if (process.env.NODE_ENV !== 'production') {\n    return legacyUnmount(container);\n  }\n}\nexport function unmount(_x2) {\n  return _unmount.apply(this, arguments);\n}\n\nfunction _unmount() {\n  _unmount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(container) {\n    return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n      while (1) {\n        switch (_context2.prev = _context2.next) {\n          case 0:\n            if (!(createRoot !== undefined)) {\n              _context2.next = 2;\n              break;\n            }\n\n            return _context2.abrupt(\"return\", modernUnmount(container));\n\n          case 2:\n            legacyUnmount(container);\n\n          case 3:\n          case \"end\":\n            return _context2.stop();\n        }\n      }\n    }, _callee2);\n  }));\n  return _unmount.apply(this, arguments);\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"getContainer\"];\nimport * as React from 'react';\nimport { Component } from 'react';\nimport { render, unmount } from \"rc-util/es/React/render\";\nimport classNames from 'classnames';\nimport { CSSMotionList } from 'rc-motion';\nimport Notice from './Notice';\nimport _useNotification from './useNotification';\nvar seed = 0;\nvar now = Date.now();\nfunction getUuid() {\n  var id = seed;\n  seed += 1;\n  return \"rcNotification_\".concat(now, \"_\").concat(id);\n}\nvar Notification = /*#__PURE__*/function (_Component) {\n  _inherits(Notification, _Component);\n  var _super = _createSuper(Notification);\n  function Notification() {\n    var _this;\n    _classCallCheck(this, Notification);\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    _this = _super.call.apply(_super, [this].concat(args));\n    _this.state = {\n      notices: []\n    };\n    _this.hookRefs = new Map();\n    _this.add = function (originNotice, holderCallback) {\n      var _originNotice$key;\n      var key = (_originNotice$key = originNotice.key) !== null && _originNotice$key !== void 0 ? _originNotice$key : getUuid();\n      var notice = _objectSpread(_objectSpread({}, originNotice), {}, {\n        key: key\n      });\n      var maxCount = _this.props.maxCount;\n      _this.setState(function (previousState) {\n        var notices = previousState.notices;\n        var noticeIndex = notices.map(function (v) {\n          return v.notice.key;\n        }).indexOf(key);\n        var updatedNotices = notices.concat();\n        if (noticeIndex !== -1) {\n          updatedNotices.splice(noticeIndex, 1, {\n            notice: notice,\n            holderCallback: holderCallback\n          });\n        } else {\n          if (maxCount && notices.length >= maxCount) {\n            // XXX, use key of first item to update new added (let React to move exsiting\n            // instead of remove and mount). Same key was used before for both a) external\n            // manual control and b) internal react 'key' prop , which is not that good.\n            // eslint-disable-next-line no-param-reassign\n            // zombieJ: Not know why use `updateKey`. This makes Notice infinite loop in jest.\n            // Change to `updateMark` for compare instead.\n            // https://github.com/react-component/notification/commit/32299e6be396f94040bfa82517eea940db947ece\n            notice.key = updatedNotices[0].notice.key;\n            notice.updateMark = getUuid();\n            // zombieJ: That's why. User may close by key directly.\n            // We need record this but not re-render to avoid upper issue\n            // https://github.com/react-component/notification/issues/129\n            notice.userPassKey = key;\n            updatedNotices.shift();\n          }\n          updatedNotices.push({\n            notice: notice,\n            holderCallback: holderCallback\n          });\n        }\n        return {\n          notices: updatedNotices\n        };\n      });\n    };\n    _this.remove = function (removeKey) {\n      _this.setState(function (_ref) {\n        var notices = _ref.notices;\n        return {\n          notices: notices.filter(function (_ref2) {\n            var _ref2$notice = _ref2.notice,\n              key = _ref2$notice.key,\n              userPassKey = _ref2$notice.userPassKey;\n            var mergedKey = userPassKey !== null && userPassKey !== void 0 ? userPassKey : key;\n            return mergedKey !== removeKey;\n          })\n        };\n      });\n    };\n    _this.noticePropsMap = {};\n    return _this;\n  }\n  _createClass(Notification, [{\n    key: \"getTransitionName\",\n    value: function getTransitionName() {\n      var _this$props = this.props,\n        prefixCls = _this$props.prefixCls,\n        animation = _this$props.animation;\n      var transitionName = this.props.transitionName;\n      if (!transitionName && animation) {\n        transitionName = \"\".concat(prefixCls, \"-\").concat(animation);\n      }\n      return transitionName;\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n      var notices = this.state.notices;\n      var _this$props2 = this.props,\n        prefixCls = _this$props2.prefixCls,\n        className = _this$props2.className,\n        closeIcon = _this$props2.closeIcon,\n        style = _this$props2.style;\n      var noticeKeys = [];\n      notices.forEach(function (_ref3, index) {\n        var notice = _ref3.notice,\n          holderCallback = _ref3.holderCallback;\n        var updateMark = index === notices.length - 1 ? notice.updateMark : undefined;\n        var key = notice.key,\n          userPassKey = notice.userPassKey;\n        var noticeProps = _objectSpread(_objectSpread(_objectSpread({\n          prefixCls: prefixCls,\n          closeIcon: closeIcon\n        }, notice), notice.props), {}, {\n          key: key,\n          noticeKey: userPassKey || key,\n          updateMark: updateMark,\n          onClose: function onClose(noticeKey) {\n            var _notice$onClose;\n            _this2.remove(noticeKey);\n            (_notice$onClose = notice.onClose) === null || _notice$onClose === void 0 ? void 0 : _notice$onClose.call(notice);\n          },\n          onClick: notice.onClick,\n          children: notice.content\n        });\n        // Give to motion\n        noticeKeys.push(key);\n        _this2.noticePropsMap[key] = {\n          props: noticeProps,\n          holderCallback: holderCallback\n        };\n      });\n      return /*#__PURE__*/React.createElement(\"div\", {\n        className: classNames(prefixCls, className),\n        style: style\n      }, /*#__PURE__*/React.createElement(CSSMotionList, {\n        keys: noticeKeys,\n        motionName: this.getTransitionName(),\n        onVisibleChanged: function onVisibleChanged(changedVisible, _ref4) {\n          var key = _ref4.key;\n          if (!changedVisible) {\n            delete _this2.noticePropsMap[key];\n          }\n        }\n      }, function (_ref5) {\n        var key = _ref5.key,\n          motionClassName = _ref5.className,\n          motionStyle = _ref5.style,\n          visible = _ref5.visible;\n        var _this2$noticePropsMap = _this2.noticePropsMap[key],\n          noticeProps = _this2$noticePropsMap.props,\n          holderCallback = _this2$noticePropsMap.holderCallback;\n        if (holderCallback) {\n          return /*#__PURE__*/React.createElement(\"div\", {\n            key: key,\n            className: classNames(motionClassName, \"\".concat(prefixCls, \"-hook-holder\")),\n            style: _objectSpread({}, motionStyle),\n            ref: function ref(div) {\n              if (typeof key === 'undefined') {\n                return;\n              }\n              if (div) {\n                _this2.hookRefs.set(key, div);\n                holderCallback(div, noticeProps);\n              } else {\n                _this2.hookRefs.delete(key);\n              }\n            }\n          });\n        }\n        return /*#__PURE__*/React.createElement(Notice, _extends({}, noticeProps, {\n          className: classNames(motionClassName, noticeProps === null || noticeProps === void 0 ? void 0 : noticeProps.className),\n          style: _objectSpread(_objectSpread({}, motionStyle), noticeProps === null || noticeProps === void 0 ? void 0 : noticeProps.style),\n          visible: visible\n        }));\n      }));\n    }\n  }]);\n  return Notification;\n}(Component);\nNotification.newInstance = void 0;\nNotification.defaultProps = {\n  prefixCls: 'rc-notification',\n  animation: 'fade',\n  style: {\n    top: 65,\n    left: '50%'\n  }\n};\nNotification.newInstance = function newNotificationInstance(properties, callback) {\n  var _ref6 = properties || {},\n    getContainer = _ref6.getContainer,\n    props = _objectWithoutProperties(_ref6, _excluded);\n  var div = document.createElement('div');\n  if (getContainer) {\n    var root = getContainer();\n    root.appendChild(div);\n  } else {\n    document.body.appendChild(div);\n  }\n  var called = false;\n  function ref(notification) {\n    if (called) {\n      return;\n    }\n    called = true;\n    callback({\n      notice: function notice(noticeProps) {\n        notification.add(noticeProps);\n      },\n      removeNotice: function removeNotice(key) {\n        notification.remove(key);\n      },\n      component: notification,\n      destroy: function destroy() {\n        unmount(div);\n        if (div.parentNode) {\n          div.parentNode.removeChild(div);\n        }\n      },\n      // Hooks\n      useNotification: function useNotification() {\n        return _useNotification(notification);\n      }\n    });\n  }\n  // Only used for test case usage\n  if (process.env.NODE_ENV === 'test' && properties.TEST_RENDER) {\n    properties.TEST_RENDER( /*#__PURE__*/React.createElement(Notification, _extends({}, props, {\n      ref: ref\n    })));\n    return;\n  }\n  render( /*#__PURE__*/React.createElement(Notification, _extends({}, props, {\n    ref: ref\n  })), div);\n};\nexport default Notification;","import Notification from './Notification';\nexport default Notification;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport Notice from './Notice';\nexport default function useNotification(notificationInstance) {\n  var createdRef = React.useRef({});\n  var _React$useState = React.useState([]),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    elements = _React$useState2[0],\n    setElements = _React$useState2[1];\n  function notify(noticeProps) {\n    var firstMount = true;\n    notificationInstance.add(noticeProps, function (div, props) {\n      var key = props.key;\n      if (div && (!createdRef.current[key] || firstMount)) {\n        var noticeEle = /*#__PURE__*/React.createElement(Notice, _extends({}, props, {\n          holder: div\n        }));\n        createdRef.current[key] = noticeEle;\n        setElements(function (originElements) {\n          var index = originElements.findIndex(function (ele) {\n            return ele.key === props.key;\n          });\n          if (index === -1) {\n            return [].concat(_toConsumableArray(originElements), [noticeEle]);\n          }\n          var cloneList = _toConsumableArray(originElements);\n          cloneList[index] = noticeEle;\n          return cloneList;\n        });\n      }\n      firstMount = false;\n    });\n  }\n  return [notify, /*#__PURE__*/React.createElement(React.Fragment, null, elements)];\n}","export default {\n  // Options.jsx\n  items_per_page: '/ page',\n  jump_to: 'Go to',\n  jump_to_confirm: 'confirm',\n  page: 'Page',\n  // Pagination.jsx\n  prev_page: 'Previous Page',\n  next_page: 'Next Page',\n  prev_5: 'Previous 5 Pages',\n  next_5: 'Next 5 Pages',\n  prev_3: 'Previous 3 Pages',\n  next_3: 'Next 3 Pages',\n  page_size: 'Page Size'\n};","import React from 'react';\nimport { isFragment } from 'react-is';\nexport default function toArray(children) {\n  var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var ret = [];\n  React.Children.forEach(children, function (child) {\n    if ((child === undefined || child === null) && !option.keepEmpty) {\n      return;\n    }\n\n    if (Array.isArray(child)) {\n      ret = ret.concat(toArray(child));\n    } else if (isFragment(child) && child.props) {\n      ret = ret.concat(toArray(child.props.children, option));\n    } else {\n      ret.push(child);\n    }\n  });\n  return ret;\n}","export default function canUseDom() {\n  return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","export default function contains(root, n) {\n  if (!root) {\n    return false;\n  } // Use native if support\n\n\n  if (root.contains) {\n    return root.contains(n);\n  } // `document.contains` not support with IE11\n\n\n  var node = n;\n\n  while (node) {\n    if (node === root) {\n      return true;\n    }\n\n    node = node.parentNode;\n  }\n\n  return false;\n}","import canUseDom from './canUseDom';\nimport contains from './contains';\nvar APPEND_ORDER = 'data-rc-order';\nvar MARK_KEY = \"rc-util-key\";\nvar containerCache = new Map();\n\nfunction getMark() {\n  var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n      mark = _ref.mark;\n\n  if (mark) {\n    return mark.startsWith('data-') ? mark : \"data-\".concat(mark);\n  }\n\n  return MARK_KEY;\n}\n\nfunction getContainer(option) {\n  if (option.attachTo) {\n    return option.attachTo;\n  }\n\n  var head = document.querySelector('head');\n  return head || document.body;\n}\n\nfunction getOrder(prepend) {\n  if (prepend === 'queue') {\n    return 'prependQueue';\n  }\n\n  return prepend ? 'prepend' : 'append';\n}\n/**\n * Find style which inject by rc-util\n */\n\n\nfunction findStyles(container) {\n  return Array.from((containerCache.get(container) || container).children).filter(function (node) {\n    return node.tagName === 'STYLE';\n  });\n}\n\nexport function injectCSS(css) {\n  var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n  if (!canUseDom()) {\n    return null;\n  }\n\n  var csp = option.csp,\n      prepend = option.prepend;\n  var styleNode = document.createElement('style');\n  styleNode.setAttribute(APPEND_ORDER, getOrder(prepend));\n\n  if (csp === null || csp === void 0 ? void 0 : csp.nonce) {\n    styleNode.nonce = csp === null || csp === void 0 ? void 0 : csp.nonce;\n  }\n\n  styleNode.innerHTML = css;\n  var container = getContainer(option);\n  var firstChild = container.firstChild;\n\n  if (prepend) {\n    // If is queue `prepend`, it will prepend first style and then append rest style\n    if (prepend === 'queue') {\n      var existStyle = findStyles(container).filter(function (node) {\n        return ['prepend', 'prependQueue'].includes(node.getAttribute(APPEND_ORDER));\n      });\n\n      if (existStyle.length) {\n        container.insertBefore(styleNode, existStyle[existStyle.length - 1].nextSibling);\n        return styleNode;\n      }\n    } // Use `insertBefore` as `prepend`\n\n\n    container.insertBefore(styleNode, firstChild);\n  } else {\n    container.appendChild(styleNode);\n  }\n\n  return styleNode;\n}\n\nfunction findExistNode(key) {\n  var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var container = getContainer(option);\n  return findStyles(container).find(function (node) {\n    return node.getAttribute(getMark(option)) === key;\n  });\n}\n\nexport function removeCSS(key) {\n  var _existNode$parentNode;\n\n  var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var existNode = findExistNode(key, option);\n  existNode === null || existNode === void 0 ? void 0 : (_existNode$parentNode = existNode.parentNode) === null || _existNode$parentNode === void 0 ? void 0 : _existNode$parentNode.removeChild(existNode);\n}\n/**\n * qiankun will inject `appendChild` to insert into other\n */\n\nfunction syncRealContainer(container, option) {\n  var cachedRealContainer = containerCache.get(container); // Find real container when not cached or cached container removed\n\n  if (!cachedRealContainer || !contains(document, cachedRealContainer)) {\n    var placeholderStyle = injectCSS('', option);\n    var parentNode = placeholderStyle.parentNode;\n    containerCache.set(container, parentNode);\n    parentNode.removeChild(placeholderStyle);\n  }\n}\n\nexport function updateCSS(css, key) {\n  var option = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  var container = getContainer(option); // Sync real parent\n\n  syncRealContainer(container, option);\n  var existNode = findExistNode(key, option);\n\n  if (existNode) {\n    var _option$csp, _option$csp2;\n\n    if (((_option$csp = option.csp) === null || _option$csp === void 0 ? void 0 : _option$csp.nonce) && existNode.nonce !== ((_option$csp2 = option.csp) === null || _option$csp2 === void 0 ? void 0 : _option$csp2.nonce)) {\n      var _option$csp3;\n\n      existNode.nonce = (_option$csp3 = option.csp) === null || _option$csp3 === void 0 ? void 0 : _option$csp3.nonce;\n    }\n\n    if (existNode.innerHTML !== css) {\n      existNode.innerHTML = css;\n    }\n\n    return existNode;\n  }\n\n  var newNode = injectCSS(css, option);\n  newNode.setAttribute(getMark(option), key);\n  return newNode;\n}","import ReactDOM from 'react-dom';\n/**\n * Return if a node is a DOM node. Else will return by `findDOMNode`\n */\n\nexport default function findDOMNode(node) {\n  if (node instanceof HTMLElement) {\n    return node;\n  }\n\n  return ReactDOM.findDOMNode(node);\n}","import * as React from 'react';\nexport default function useMemo(getValue, condition, shouldUpdate) {\n  var cacheRef = React.useRef({});\n\n  if (!('value' in cacheRef.current) || shouldUpdate(cacheRef.current.condition, condition)) {\n    cacheRef.current.value = getValue();\n    cacheRef.current.condition = condition;\n  }\n\n  return cacheRef.current.value;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n/**\n * Same as React.useState but `setState` accept `ignoreDestroy` param to not to setState after destroyed.\n * We do not make this auto is to avoid real memory leak.\n * Developer should confirm it's safe to ignore themselves.\n */\n\nexport default function useSafeState(defaultValue) {\n  var destroyRef = React.useRef(false);\n\n  var _React$useState = React.useState(defaultValue),\n      _React$useState2 = _slicedToArray(_React$useState, 2),\n      value = _React$useState2[0],\n      setValue = _React$useState2[1];\n\n  React.useEffect(function () {\n    destroyRef.current = false;\n    return function () {\n      destroyRef.current = true;\n    };\n  }, []);\n\n  function safeSetState(updater, ignoreDestroy) {\n    if (ignoreDestroy && destroyRef.current) {\n      return;\n    }\n\n    setValue(updater);\n  }\n\n  return [value, safeSetState];\n}","var raf = function raf(callback) {\n  return +setTimeout(callback, 16);\n};\n\nvar caf = function caf(num) {\n  return clearTimeout(num);\n};\n\nif (typeof window !== 'undefined' && 'requestAnimationFrame' in window) {\n  raf = function raf(callback) {\n    return window.requestAnimationFrame(callback);\n  };\n\n  caf = function caf(handle) {\n    return window.cancelAnimationFrame(handle);\n  };\n}\n\nvar rafUUID = 0;\nvar rafIds = new Map();\n\nfunction cleanup(id) {\n  rafIds.delete(id);\n}\n\nexport default function wrapperRaf(callback) {\n  var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n  rafUUID += 1;\n  var id = rafUUID;\n\n  function callRef(leftTimes) {\n    if (leftTimes === 0) {\n      // Clean up\n      cleanup(id); // Trigger\n\n      callback();\n    } else {\n      // Next raf\n      var realId = raf(function () {\n        callRef(leftTimes - 1);\n      }); // Bind real raf id\n\n      rafIds.set(id, realId);\n    }\n  }\n\n  callRef(times);\n  return id;\n}\n\nwrapperRaf.cancel = function (id) {\n  var realId = rafIds.get(id);\n  cleanup(realId);\n  return caf(realId);\n};","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { isMemo } from 'react-is';\nimport useMemo from './hooks/useMemo';\nexport function fillRef(ref, node) {\n  if (typeof ref === 'function') {\n    ref(node);\n  } else if (_typeof(ref) === 'object' && ref && 'current' in ref) {\n    ref.current = node;\n  }\n}\n/**\n * Merge refs into one ref function to support ref passing.\n */\n\nexport function composeRef() {\n  for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n    refs[_key] = arguments[_key];\n  }\n\n  var refList = refs.filter(function (ref) {\n    return ref;\n  });\n\n  if (refList.length <= 1) {\n    return refList[0];\n  }\n\n  return function (node) {\n    refs.forEach(function (ref) {\n      fillRef(ref, node);\n    });\n  };\n}\nexport function useComposeRef() {\n  for (var _len2 = arguments.length, refs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n    refs[_key2] = arguments[_key2];\n  }\n\n  return useMemo(function () {\n    return composeRef.apply(void 0, refs);\n  }, refs, function (prev, next) {\n    return prev.length === next.length && prev.every(function (ref, i) {\n      return ref === next[i];\n    });\n  });\n}\nexport function supportRef(nodeOrComponent) {\n  var _type$prototype, _nodeOrComponent$prot;\n\n  var type = isMemo(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type; // Function component node\n\n  if (typeof type === 'function' && !((_type$prototype = type.prototype) === null || _type$prototype === void 0 ? void 0 : _type$prototype.render)) {\n    return false;\n  } // Class component\n\n\n  if (typeof nodeOrComponent === 'function' && !((_nodeOrComponent$prot = nodeOrComponent.prototype) === null || _nodeOrComponent$prot === void 0 ? void 0 : _nodeOrComponent$prot.render)) {\n    return false;\n  }\n\n  return true;\n}\n/* eslint-enable */","/* eslint-disable no-console */\nvar warned = {};\nexport function warning(valid, message) {\n  // Support uglify\n  if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n    console.error(\"Warning: \".concat(message));\n  }\n}\nexport function note(valid, message) {\n  // Support uglify\n  if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n    console.warn(\"Note: \".concat(message));\n  }\n}\nexport function resetWarned() {\n  warned = {};\n}\nexport function call(method, valid, message) {\n  if (!valid && !warned[message]) {\n    method(false, message);\n    warned[message] = true;\n  }\n}\nexport function warningOnce(valid, message) {\n  call(warning, valid, message);\n}\nexport function noteOnce(valid, message) {\n  call(note, valid, message);\n}\nexport default warningOnce;\n/* eslint-enable */","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var da=new Set,ea={};function fa(a,b){ha(a,b);ha(a+\"Capture\",b)}\nfunction ha(a,b){ea[a]=b;for(a=0;a<b.length;a++)da.add(b[a])}\nvar ia=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ja=Object.prototype.hasOwnProperty,ka=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,la=\n{},ma={};function oa(a){if(ja.call(ma,a))return!0;if(ja.call(la,a))return!1;if(ka.test(a))return ma[a]=!0;la[a]=!0;return!1}function pa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction qa(a,b,c,d){if(null===b||\"undefined\"===typeof b||pa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1])qa(b,c,e,d)&&(c=null),d||null===e?oa(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c)))}\nvar ua=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,va=Symbol.for(\"react.element\"),wa=Symbol.for(\"react.portal\"),ya=Symbol.for(\"react.fragment\"),za=Symbol.for(\"react.strict_mode\"),Aa=Symbol.for(\"react.profiler\"),Ba=Symbol.for(\"react.provider\"),Ca=Symbol.for(\"react.context\"),Da=Symbol.for(\"react.forward_ref\"),Ea=Symbol.for(\"react.suspense\"),Fa=Symbol.for(\"react.suspense_list\"),Ga=Symbol.for(\"react.memo\"),Ha=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");Symbol.for(\"react.debug_trace_mode\");\nvar Ia=Symbol.for(\"react.offscreen\");Symbol.for(\"react.legacy_hidden\");Symbol.for(\"react.cache\");Symbol.for(\"react.tracing_marker\");var Ja=Symbol.iterator;function Ka(a){if(null===a||\"object\"!==typeof a)return null;a=Ja&&a[Ja]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var A=Object.assign,La;function Ma(a){if(void 0===La)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);La=b&&b[1]||\"\"}return\"\\n\"+La+a}var Na=!1;\nfunction Oa(a,b){if(!a||Na)return\"\";Na=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(l){var d=l}Reflect.construct(a,[],b)}else{try{b.call()}catch(l){d=l}a.call(b.prototype)}else{try{throw Error();}catch(l){d=l}a()}}catch(l){if(l&&d&&\"string\"===typeof l.stack){for(var e=l.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"<anonymous>\")&&(k=k.replace(\"<anonymous>\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(p(91));return A({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(p(92));if(eb(c)){if(1<c.length)throw Error(p(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}function kb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}\nfunction lb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?kb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar mb,nb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(\"http://www.w3.org/2000/svg\"!==a.namespaceURI||\"innerHTML\"in a)a.innerHTML=b;else{mb=mb||document.createElement(\"div\");mb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(){}var Ib=!1;function Jb(a,b,c){if(Ib)return a(b,c);Ib=!0;try{return Gb(a,b,c)}finally{if(Ib=!1,null!==zb||null!==Ab)Hb(),Fb()}}\nfunction Kb(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(p(231,b,typeof c));return c}var Lb=!1;if(ia)try{var Mb={};Object.defineProperty(Mb,\"passive\",{get:function(){Lb=!0}});window.addEventListener(\"test\",Mb,Mb);window.removeEventListener(\"test\",Mb,Mb)}catch(a){Lb=!1}function Nb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var Ob=!1,Pb=null,Qb=!1,Rb=null,Sb={onError:function(a){Ob=!0;Pb=a}};function Tb(a,b,c,d,e,f,g,h,k){Ob=!1;Pb=null;Nb.apply(Sb,arguments)}\nfunction Ub(a,b,c,d,e,f,g,h,k){Tb.apply(this,arguments);if(Ob){if(Ob){var l=Pb;Ob=!1;Pb=null}else throw Error(p(198));Qb||(Qb=!0,Rb=l)}}function Vb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&4098)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function Wb(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function Xb(a){if(Vb(a)!==a)throw Error(p(188));}\nfunction Yb(a){var b=a.alternate;if(!b){b=Vb(a);if(null===b)throw Error(p(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return Xb(e),a;if(f===d)return Xb(e),b;f=f.sibling}throw Error(p(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(p(189));}}if(c.alternate!==d)throw Error(p(190));}if(3!==c.tag)throw Error(p(188));return c.stateNode.current===c?a:b}function Zb(a){a=Yb(a);return null!==a?$b(a):null}function $b(a){if(5===a.tag||6===a.tag)return a;for(a=a.child;null!==a;){var b=$b(a);if(null!==b)return b;a=a.sibling}return null}\nvar ac=ca.unstable_scheduleCallback,bc=ca.unstable_cancelCallback,cc=ca.unstable_shouldYield,dc=ca.unstable_requestPaint,B=ca.unstable_now,ec=ca.unstable_getCurrentPriorityLevel,fc=ca.unstable_ImmediatePriority,gc=ca.unstable_UserBlockingPriority,hc=ca.unstable_NormalPriority,ic=ca.unstable_LowPriority,jc=ca.unstable_IdlePriority,kc=null,lc=null;function mc(a){if(lc&&\"function\"===typeof lc.onCommitFiberRoot)try{lc.onCommitFiberRoot(kc,a,void 0,128===(a.current.flags&128))}catch(b){}}\nvar oc=Math.clz32?Math.clz32:nc,pc=Math.log,qc=Math.LN2;function nc(a){a>>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-oc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction vc(a,b){switch(a){case 1:case 2:case 4:return b+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return b+5E3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}\nfunction wc(a,b){for(var c=a.suspendedLanes,d=a.pingedLanes,e=a.expirationTimes,f=a.pendingLanes;0<f;){var g=31-oc(f),h=1<<g,k=e[g];if(-1===k){if(0===(h&c)||0!==(h&d))e[g]=vc(h,b)}else k<=b&&(a.expiredLanes|=h);f&=~h}}function xc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function yc(){var a=rc;rc<<=1;0===(rc&4194240)&&(rc=64);return a}function zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0<c;){var e=31-oc(c),f=1<<e;b[e]=0;d[e]=-1;a[e]=-1;c&=~f}}\nfunction Cc(a,b){var c=a.entangledLanes|=b;for(a=a.entanglements;c;){var d=31-oc(c),e=1<<d;e&b|a[d]&b&&(a[d]|=b);c&=~e}}var C=0;function Dc(a){a&=-a;return 1<a?4<a?0!==(a&268435455)?16:536870912:4:1}var Ec,Fc,Gc,Hc,Ic,Jc=!1,Kc=[],Lc=null,Mc=null,Nc=null,Oc=new Map,Pc=new Map,Qc=[],Rc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction Sc(a,b){switch(a){case \"focusin\":case \"focusout\":Lc=null;break;case \"dragenter\":case \"dragleave\":Mc=null;break;case \"mouseover\":case \"mouseout\":Nc=null;break;case \"pointerover\":case \"pointerout\":Oc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Pc.delete(b.pointerId)}}\nfunction Tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a={blockedOn:b,domEventName:c,eventSystemFlags:d,nativeEvent:f,targetContainers:[e]},null!==b&&(b=Cb(b),null!==b&&Fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction Uc(a,b,c,d,e){switch(b){case \"focusin\":return Lc=Tc(Lc,a,b,c,d,e),!0;case \"dragenter\":return Mc=Tc(Mc,a,b,c,d,e),!0;case \"mouseover\":return Nc=Tc(Nc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Oc.set(f,Tc(Oc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Pc.set(f,Tc(Pc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Vc(a){var b=Wc(a.target);if(null!==b){var c=Vb(b);if(null!==c)if(b=c.tag,13===b){if(b=Wb(c),null!==b){a.blockedOn=b;Ic(a.priority,function(){Gc(c)});return}}else if(3===b&&c.stateNode.current.memoizedState.isDehydrated){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction Xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=Yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null===c){c=a.nativeEvent;var d=new c.constructor(c.type,c);wb=d;c.target.dispatchEvent(d);wb=null}else return b=Cb(c),null!==b&&Fc(b),a.blockedOn=c,!1;b.shift()}return!0}function Zc(a,b,c){Xc(a)&&c.delete(b)}function $c(){Jc=!1;null!==Lc&&Xc(Lc)&&(Lc=null);null!==Mc&&Xc(Mc)&&(Mc=null);null!==Nc&&Xc(Nc)&&(Nc=null);Oc.forEach(Zc);Pc.forEach(Zc)}\nfunction ad(a,b){a.blockedOn===b&&(a.blockedOn=null,Jc||(Jc=!0,ca.unstable_scheduleCallback(ca.unstable_NormalPriority,$c)))}\nfunction bd(a){function b(b){return ad(b,a)}if(0<Kc.length){ad(Kc[0],a);for(var c=1;c<Kc.length;c++){var d=Kc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Lc&&ad(Lc,a);null!==Mc&&ad(Mc,a);null!==Nc&&ad(Nc,a);Oc.forEach(b);Pc.forEach(b);for(c=0;c<Qc.length;c++)d=Qc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Qc.length&&(c=Qc[0],null===c.blockedOn);)Vc(c),null===c.blockedOn&&Qc.shift()}var cd=ua.ReactCurrentBatchConfig,dd=!0;\nfunction ed(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=1,fd(a,b,c,d)}finally{C=e,cd.transition=f}}function gd(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=4,fd(a,b,c,d)}finally{C=e,cd.transition=f}}\nfunction fd(a,b,c,d){if(dd){var e=Yc(a,b,c,d);if(null===e)hd(a,b,d,id,c),Sc(a,d);else if(Uc(e,a,b,c,d))d.stopPropagation();else if(Sc(a,d),b&4&&-1<Rc.indexOf(a)){for(;null!==e;){var f=Cb(e);null!==f&&Ec(f);f=Yc(a,b,c,d);null===f&&hd(a,b,d,id,c);if(f===e)break;e=f}null!==e&&d.stopPropagation()}else hd(a,b,d,null,c)}}var id=null;\nfunction Yc(a,b,c,d){id=null;a=xb(d);a=Wc(a);if(null!==a)if(b=Vb(a),null===b)a=null;else if(c=b.tag,13===c){a=Wb(b);if(null!==a)return a;a=null}else if(3===c){if(b.stateNode.current.memoizedState.isDehydrated)return 3===b.tag?b.stateNode.containerInfo:null;a=null}else b!==a&&(a=null);id=a;return null}\nfunction jd(a){switch(a){case \"cancel\":case \"click\":case \"close\":case \"contextmenu\":case \"copy\":case \"cut\":case \"auxclick\":case \"dblclick\":case \"dragend\":case \"dragstart\":case \"drop\":case \"focusin\":case \"focusout\":case \"input\":case \"invalid\":case \"keydown\":case \"keypress\":case \"keyup\":case \"mousedown\":case \"mouseup\":case \"paste\":case \"pause\":case \"play\":case \"pointercancel\":case \"pointerdown\":case \"pointerup\":case \"ratechange\":case \"reset\":case \"resize\":case \"seeked\":case \"submit\":case \"touchcancel\":case \"touchend\":case \"touchstart\":case \"volumechange\":case \"change\":case \"selectionchange\":case \"textInput\":case \"compositionstart\":case \"compositionend\":case \"compositionupdate\":case \"beforeblur\":case \"afterblur\":case \"beforeinput\":case \"blur\":case \"fullscreenchange\":case \"focus\":case \"hashchange\":case \"popstate\":case \"select\":case \"selectstart\":return 1;case \"drag\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"mousemove\":case \"mouseout\":case \"mouseover\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"scroll\":case \"toggle\":case \"touchmove\":case \"wheel\":case \"mouseenter\":case \"mouseleave\":case \"pointerenter\":case \"pointerleave\":return 4;\ncase \"message\":switch(ec()){case fc:return 1;case gc:return 4;case hc:case ic:return 16;case jc:return 536870912;default:return 16}default:return 16}}var kd=null,ld=null,md=null;function nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}\nfunction od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}A(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=A({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=A({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=A({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=A({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=A({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=A({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=A({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=A({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=A({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=A({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=A({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=A({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=ia&&\"CompositionEvent\"in window,be=null;ia&&\"documentMode\"in document&&(be=document.documentMode);var ce=ia&&\"TextEvent\"in window&&!be,de=ia&&(!ae||be&&8<be&&11>=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(ia){var xe;if(ia){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));Jb(re,b)}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge;\nfunction Ie(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++){var e=c[d];if(!ja.call(b,e)||!He(a[e],b[e]))return!1}return!0}function Je(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Ke(a,b){var c=Je(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}}\nvar Pe=ia&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nfunction Ve(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var We={animationend:Ve(\"Animation\",\"AnimationEnd\"),animationiteration:Ve(\"Animation\",\"AnimationIteration\"),animationstart:Ve(\"Animation\",\"AnimationStart\"),transitionend:Ve(\"Transition\",\"TransitionEnd\")},Xe={},Ye={};\nia&&(Ye=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete We.animationend.animation,delete We.animationiteration.animation,delete We.animationstart.animation),\"TransitionEvent\"in window||delete We.transitionend.transition);function Ze(a){if(Xe[a])return Xe[a];if(!We[a])return a;var b=We[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Ye)return Xe[a]=b[c];return a}var $e=Ze(\"animationend\"),af=Ze(\"animationiteration\"),bf=Ze(\"animationstart\"),cf=Ze(\"transitionend\"),df=new Map,ef=\"abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");\nfunction ff(a,b){df.set(a,b);fa(b,[a])}for(var gf=0;gf<ef.length;gf++){var hf=ef[gf],jf=hf.toLowerCase(),kf=hf[0].toUpperCase()+hf.slice(1);ff(jf,\"on\"+kf)}ff($e,\"onAnimationEnd\");ff(af,\"onAnimationIteration\");ff(bf,\"onAnimationStart\");ff(\"dblclick\",\"onDoubleClick\");ff(\"focusin\",\"onFocus\");ff(\"focusout\",\"onBlur\");ff(cf,\"onTransitionEnd\");ha(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);ha(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ha(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);\nha(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);fa(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));fa(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));fa(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);fa(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));fa(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));\nfa(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var lf=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),mf=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(lf));\nfunction nf(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Ub(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}}}if(Qb)throw a=Rb,Qb=!1,Rb=null,a;}\nfunction D(a,b){var c=b[of];void 0===c&&(c=b[of]=new Set);var d=a+\"__bubble\";c.has(d)||(pf(b,a,2,!1),c.add(d))}function qf(a,b,c){var d=0;b&&(d|=4);pf(c,a,d,b)}var rf=\"_reactListening\"+Math.random().toString(36).slice(2);function sf(a){if(!a[rf]){a[rf]=!0;da.forEach(function(b){\"selectionchange\"!==b&&(mf.has(b)||qf(b,!1,a),qf(b,!0,a))});var b=9===a.nodeType?a:a.ownerDocument;null===b||b[rf]||(b[rf]=!0,qf(\"selectionchange\",!1,b))}}\nfunction pf(a,b,c,d){switch(jd(b)){case 1:var e=ed;break;case 4:e=gd;break;default:e=fd}c=e.bind(null,b,c,a);e=void 0;!Lb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction hd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=Wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Jb(function(){var d=f,e=xb(c),g=[];\na:{var h=df.get(a);if(void 0!==h){var k=td,n=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":n=\"focus\";k=Fd;break;case \"focusout\":n=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case $e:case af:case bf:k=Hd;break;case cf:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var t=0!==(b&4),J=!t&&\"scroll\"===a,x=t?null!==h?h+\"Capture\":null:h;t=[];for(var w=d,u;null!==\nw;){u=w;var F=u.stateNode;5===u.tag&&null!==F&&(u=F,null!==x&&(F=Kb(w,x),null!=F&&t.push(tf(w,F,u))));if(J)break;w=w.return}0<t.length&&(h=new k(h,n,null,c,e),g.push({event:h,listeners:t}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&c!==wb&&(n=c.relatedTarget||c.fromElement)&&(Wc(n)||n[uf]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(n=c.relatedTarget||c.toElement,k=d,n=n?Wc(n):null,null!==\nn&&(J=Vb(n),n!==J||5!==n.tag&&6!==n.tag))n=null}else k=null,n=d;if(k!==n){t=Bd;F=\"onMouseLeave\";x=\"onMouseEnter\";w=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)t=Td,F=\"onPointerLeave\",x=\"onPointerEnter\",w=\"pointer\";J=null==k?h:ue(k);u=null==n?h:ue(n);h=new t(F,w+\"leave\",k,c,e);h.target=J;h.relatedTarget=u;F=null;Wc(e)===d&&(t=new t(x,w+\"enter\",n,c,e),t.target=u,t.relatedTarget=J,F=t);J=F;if(k&&n)b:{t=k;x=n;w=0;for(u=t;u;u=vf(u))w++;u=0;for(F=x;F;F=vf(F))u++;for(;0<w-u;)t=vf(t),w--;for(;0<u-w;)x=\nvf(x),u--;for(;w--;){if(t===x||null!==x&&t===x.alternate)break b;t=vf(t);x=vf(x)}t=null}else t=null;null!==k&&wf(g,h,k,t,!1);null!==n&&null!==J&&wf(g,J,n,t,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var na=ve;else if(me(h))if(we)na=Fe;else{na=De;var xa=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(na=Ee);if(na&&(na=na(a,d))){ne(g,na,c,e);break a}xa&&xa(a,h,d);\"focusout\"===a&&(xa=h._wrapperState)&&\nxa.controlled&&\"number\"===h.type&&cb(h,\"number\",h.value)}xa=d?ue(d):window;switch(a){case \"focusin\":if(me(xa)||\"true\"===xa.contentEditable)Qe=xa,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var $a;if(ae)b:{switch(a){case \"compositionstart\":var ba=\"onCompositionStart\";break b;case \"compositionend\":ba=\"onCompositionEnd\";\nbreak b;case \"compositionupdate\":ba=\"onCompositionUpdate\";break b}ba=void 0}else ie?ge(a,c)&&(ba=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(ba=\"onCompositionStart\");ba&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==ba?\"onCompositionEnd\"===ba&&ie&&($a=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),xa=oe(d,ba),0<xa.length&&(ba=new Ld(ba,a,null,c,e),g.push({event:ba,listeners:xa}),$a?ba.data=$a:($a=he(c),null!==$a&&(ba.data=$a))));if($a=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),\n0<d.length&&(e=new Ld(\"onBeforeInput\",\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=$a)}se(g,b)})}function tf(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Kb(a,c),null!=f&&d.unshift(tf(a,f,e)),f=Kb(a,b),null!=f&&d.push(tf(a,f,e)));a=a.return}return d}function vf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction wf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Kb(c,f),null!=k&&g.unshift(tf(c,k,h))):e||(k=Kb(c,f),null!=k&&g.push(tf(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}var xf=/\\r\\n?/g,yf=/\\u0000|\\uFFFD/g;function zf(a){return(\"string\"===typeof a?a:\"\"+a).replace(xf,\"\\n\").replace(yf,\"\")}function Af(a,b,c){b=zf(b);if(zf(a)!==b&&c)throw Error(p(425));}function Bf(){}\nvar Cf=null,Df=null;function Ef(a,b){return\"textarea\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}\nvar Ff=\"function\"===typeof setTimeout?setTimeout:void 0,Gf=\"function\"===typeof clearTimeout?clearTimeout:void 0,Hf=\"function\"===typeof Promise?Promise:void 0,Jf=\"function\"===typeof queueMicrotask?queueMicrotask:\"undefined\"!==typeof Hf?function(a){return Hf.resolve(null).then(a).catch(If)}:Ff;function If(a){setTimeout(function(){throw a;})}\nfunction Kf(a,b){var c=b,d=0;do{var e=c.nextSibling;a.removeChild(c);if(e&&8===e.nodeType)if(c=e.data,\"/$\"===c){if(0===d){a.removeChild(e);bd(b);return}d--}else\"$\"!==c&&\"$?\"!==c&&\"$!\"!==c||d++;c=e}while(c);bd(b)}function Lf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break;if(8===b){b=a.data;if(\"$\"===b||\"$!\"===b||\"$?\"===b)break;if(\"/$\"===b)return null}}return a}\nfunction Mf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var Nf=Math.random().toString(36).slice(2),Of=\"__reactFiber$\"+Nf,Pf=\"__reactProps$\"+Nf,uf=\"__reactContainer$\"+Nf,of=\"__reactEvents$\"+Nf,Qf=\"__reactListeners$\"+Nf,Rf=\"__reactHandles$\"+Nf;\nfunction Wc(a){var b=a[Of];if(b)return b;for(var c=a.parentNode;c;){if(b=c[uf]||c[Of]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Mf(a);null!==a;){if(c=a[Of])return c;a=Mf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[Of]||a[uf];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(p(33));}function Db(a){return a[Pf]||null}var Sf=[],Tf=-1;function Uf(a){return{current:a}}\nfunction E(a){0>Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a<c.length;a++){var d=c[a];do d=d(!0);while(null!==d)}eg=null;fg=!1}catch(e){throw null!==eg&&(eg=eg.slice(a+1)),ac(fc,jg),e;}finally{C=b,gg=!1}}return null}var kg=[],lg=0,mg=null,ng=0,og=[],pg=0,qg=null,rg=1,sg=\"\";function tg(a,b){kg[lg++]=ng;kg[lg++]=mg;mg=a;ng=b}\nfunction ug(a,b,c){og[pg++]=rg;og[pg++]=sg;og[pg++]=qg;qg=a;var d=rg;a=sg;var e=32-oc(d)-1;d&=~(1<<e);c+=1;var f=32-oc(b)+e;if(30<f){var g=e-e%5;f=(d&(1<<g)-1).toString(32);d>>=g;e-=g;rg=1<<32-oc(b)+e|c<<e|d;sg=f+a}else rg=1<<f|c<<e|d,sg=a}function vg(a){null!==a.return&&(tg(a,1),ug(a,1,0))}function wg(a){for(;a===mg;)mg=kg[--lg],kg[lg]=null,ng=kg[--lg],kg[lg]=null;for(;a===qg;)qg=og[--pg],og[pg]=null,sg=og[--pg],og[pg]=null,rg=og[--pg],og[pg]=null}var xg=null,yg=null,I=!1,zg=null;\nfunction Ag(a,b){var c=Bg(5,null,null,0);c.elementType=\"DELETED\";c.stateNode=b;c.return=a;b=a.deletions;null===b?(a.deletions=[c],a.flags|=16):b.push(c)}\nfunction Cg(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,xg=a,yg=Lf(b.firstChild),!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,xg=a,yg=null,!0):!1;case 13:return b=8!==b.nodeType?null:b,null!==b?(c=null!==qg?{id:rg,overflow:sg}:null,a.memoizedState={dehydrated:b,treeContext:c,retryLane:1073741824},c=Bg(18,null,null,0),c.stateNode=b,c.return=a,a.child=c,xg=a,yg=\nnull,!0):!1;default:return!1}}function Dg(a){return 0!==(a.mode&1)&&0===(a.flags&128)}function Eg(a){if(I){var b=yg;if(b){var c=b;if(!Cg(a,b)){if(Dg(a))throw Error(p(418));b=Lf(c.nextSibling);var d=xg;b&&Cg(a,b)?Ag(d,c):(a.flags=a.flags&-4097|2,I=!1,xg=a)}}else{if(Dg(a))throw Error(p(418));a.flags=a.flags&-4097|2;I=!1;xg=a}}}function Fg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;xg=a}\nfunction Gg(a){if(a!==xg)return!1;if(!I)return Fg(a),I=!0,!1;var b;(b=3!==a.tag)&&!(b=5!==a.tag)&&(b=a.type,b=\"head\"!==b&&\"body\"!==b&&!Ef(a.type,a.memoizedProps));if(b&&(b=yg)){if(Dg(a))throw Hg(),Error(p(418));for(;b;)Ag(a,b),b=Lf(b.nextSibling)}Fg(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(p(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){yg=Lf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}yg=\nnull}}else yg=xg?Lf(a.stateNode.nextSibling):null;return!0}function Hg(){for(var a=yg;a;)a=Lf(a.nextSibling)}function Ig(){yg=xg=null;I=!1}function Jg(a){null===zg?zg=[a]:zg.push(a)}var Kg=ua.ReactCurrentBatchConfig;function Lg(a,b){if(a&&a.defaultProps){b=A({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}var Mg=Uf(null),Ng=null,Og=null,Pg=null;function Qg(){Pg=Og=Ng=null}function Rg(a){var b=Mg.current;E(Mg);a._currentValue=b}\nfunction Sg(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}function Tg(a,b){Ng=a;Pg=Og=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(Ug=!0),a.firstContext=null)}\nfunction Vg(a){var b=a._currentValue;if(Pg!==a)if(a={context:a,memoizedValue:b,next:null},null===Og){if(null===Ng)throw Error(p(308));Og=a;Ng.dependencies={lanes:0,firstContext:a}}else Og=Og.next=a;return b}var Wg=null;function Xg(a){null===Wg?Wg=[a]:Wg.push(a)}function Yg(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,Xg(b)):(c.next=e.next,e.next=c);b.interleaved=c;return Zg(a,d)}\nfunction Zg(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var $g=!1;function ah(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction bh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function ch(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction dh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return Zg(a,c)}e=d.interleaved;null===e?(b.next=b,Xg(d)):(b.next=e.next,e.next=b);d.interleaved=b;return Zg(a,c)}function eh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction fh(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction gh(a,b,c,d){var e=a.updateQueue;$g=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:$g=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);hh|=g;a.lanes=g;a.memoizedState=q}}\nfunction ih(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(p(191,e));e.call(d)}}}var jh=(new aa.Component).refs;function kh(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:A({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar nh={isMounted:function(a){return(a=a._reactInternals)?Vb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=L(),e=lh(a),f=ch(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=dh(a,f,e);null!==b&&(mh(b,a,e,d),eh(b,a,e))},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=L(),e=lh(a),f=ch(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=dh(a,f,e);null!==b&&(mh(b,a,e,d),eh(b,a,e))},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=L(),d=\nlh(a),e=ch(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=b);b=dh(a,e,d);null!==b&&(mh(b,a,d,c),eh(b,a,d))}};function oh(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Ie(c,d)||!Ie(e,f):!0}\nfunction ph(a,b,c){var d=!1,e=Vf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=Vg(f):(e=Zf(b)?Xf:H.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Yf(a,e):Vf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=nh;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction qh(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&nh.enqueueReplaceState(b,b.state,null)}\nfunction rh(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=jh;ah(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=Vg(f):(f=Zf(b)?Xf:H.current,e.context=Yf(a,f));e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(kh(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||(b=e.state,\n\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&nh.enqueueReplaceState(e,e.state,null),gh(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4194308)}\nfunction sh(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(p(309));var d=c.stateNode}if(!d)throw Error(p(147,a));var e=d,f=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===f)return b.ref;b=function(a){var b=e.refs;b===jh&&(b=e.refs={});null===a?delete b[f]:b[f]=a};b._stringRef=f;return b}if(\"string\"!==typeof a)throw Error(p(284));if(!c._owner)throw Error(p(290,a));}return a}\nfunction th(a,b){a=Object.prototype.toString.call(b);throw Error(p(31,\"[object Object]\"===a?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":a));}function uh(a){var b=a._init;return b(a._payload)}\nfunction vh(a){function b(b,c){if(a){var d=b.deletions;null===d?(b.deletions=[c],b.flags|=16):d.push(c)}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=wh(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return b.flags|=1048576,c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags|=2,c):d;b.flags|=2;return c}function g(b){a&&\nnull===b.alternate&&(b.flags|=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=xh(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){var f=c.type;if(f===ya)return m(a,b,c.props.children,d,c.key);if(null!==b&&(b.elementType===f||\"object\"===typeof f&&null!==f&&f.$$typeof===Ha&&uh(f)===b.type))return d=e(b,c.props),d.ref=sh(a,b,c),d.return=a,d;d=yh(c.type,c.key,c.props,null,a.mode,d);d.ref=sh(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||\nb.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=zh(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Ah(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function q(a,b,c){if(\"string\"===typeof b&&\"\"!==b||\"number\"===typeof b)return b=xh(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case va:return c=yh(b.type,b.key,b.props,null,a.mode,c),\nc.ref=sh(a,null,b),c.return=a,c;case wa:return b=zh(b,a.mode,c),b.return=a,b;case Ha:var d=b._init;return q(a,d(b._payload),c)}if(eb(b)||Ka(b))return b=Ah(b,a.mode,c,null),b.return=a,b;th(a,b)}return null}function r(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c&&\"\"!==c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case va:return c.key===e?k(a,b,c,d):null;case wa:return c.key===e?l(a,b,c,d):null;case Ha:return e=c._init,r(a,\nb,e(c._payload),d)}if(eb(c)||Ka(c))return null!==e?null:m(a,b,c,d,null);th(a,c)}return null}function y(a,b,c,d,e){if(\"string\"===typeof d&&\"\"!==d||\"number\"===typeof d)return a=a.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case va:return a=a.get(null===d.key?c:d.key)||null,k(b,a,d,e);case wa:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e);case Ha:var f=d._init;return y(a,b,c,f(d._payload),e)}if(eb(d)||Ka(d))return a=a.get(c)||null,m(b,a,d,e,null);th(b,d)}return null}\nfunction n(e,g,h,k){for(var l=null,m=null,u=g,w=g=0,x=null;null!==u&&w<h.length;w++){u.index>w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;w<h.length;w++)u=q(e,h[w],k),null!==u&&(g=f(u,g,w),null===m?l=u:m.sibling=u,m=u);I&&tg(e,w);return l}for(u=d(e,u);w<h.length;w++)x=y(u,e,w,h[w],k),null!==x&&(a&&null!==x.alternate&&u.delete(null===\nx.key?w:x.key),g=f(x,g,w),null===m?l=x:m.sibling=x,m=x);a&&u.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function t(e,g,h,k){var l=Ka(h);if(\"function\"!==typeof l)throw Error(p(150));h=l.call(h);if(null==h)throw Error(p(151));for(var u=l=null,m=g,w=g=0,x=null,n=h.next();null!==m&&!n.done;w++,n=h.next()){m.index>w?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;a<Nh.length;a++)Nh[a]._workInProgressVersionPrimary=null;Nh.length=0}var Ph=ua.ReactCurrentDispatcher,Qh=ua.ReactCurrentBatchConfig,Rh=0,N=null,O=null,P=null,Sh=!1,Th=!1,Uh=0,Vh=0;function Q(){throw Error(p(321));}function Wh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Xh(a,b,c,d,e,f){Rh=f;N=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;Ph.current=null===a||null===a.memoizedState?Yh:Zh;a=c(d,e);if(Th){f=0;do{Th=!1;Uh=0;if(25<=f)throw Error(p(301));f+=1;P=O=null;b.updateQueue=null;Ph.current=$h;a=c(d,e)}while(Th)}Ph.current=ai;b=null!==O&&null!==O.next;Rh=0;P=O=N=null;Sh=!1;if(b)throw Error(p(300));return a}function bi(){var a=0!==Uh;Uh=0;return a}\nfunction ci(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function di(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(p(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction ei(a,b){return\"function\"===typeof b?b(a):b}\nfunction fi(a){var b=di(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){f=e.next;d=d.baseState;var h=g=null,k=null,l=f;do{var m=l.lane;if((Rh&m)===m)null!==k&&(k=k.next={lane:0,action:l.action,hasEagerState:l.hasEagerState,eagerState:l.eagerState,next:null}),d=l.hasEagerState?l.eagerState:a(d,l.action);else{var q={lane:m,action:l.action,hasEagerState:l.hasEagerState,\neagerState:l.eagerState,next:null};null===k?(h=k=q,g=d):k=k.next=q;N.lanes|=m;hh|=m}l=l.next}while(null!==l&&l!==f);null===k?g=d:k.next=h;He(d,b.memoizedState)||(Ug=!0);b.memoizedState=d;b.baseState=g;b.baseQueue=k;c.lastRenderedState=d}a=c.interleaved;if(null!==a){e=a;do f=e.lane,N.lanes|=f,hh|=f,e=e.next;while(e!==a)}else null===e&&(c.lanes=0);return[b.memoizedState,c.dispatch]}\nfunction gi(a){var b=di(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(Ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}function hi(){}\nfunction ii(a,b){var c=N,d=di(),e=b(),f=!He(d.memoizedState,e);f&&(d.memoizedState=e,Ug=!0);d=d.queue;ji(ki.bind(null,c,d,a),[a]);if(d.getSnapshot!==b||f||null!==P&&P.memoizedState.tag&1){c.flags|=2048;li(9,mi.bind(null,c,d,e,b),void 0,null);if(null===R)throw Error(p(349));0!==(Rh&30)||ni(c,b,e)}return e}function ni(a,b,c){a.flags|=16384;a={getSnapshot:b,value:c};b=N.updateQueue;null===b?(b={lastEffect:null,stores:null},N.updateQueue=b,b.stores=[a]):(c=b.stores,null===c?b.stores=[a]:c.push(a))}\nfunction mi(a,b,c,d){b.value=c;b.getSnapshot=d;oi(b)&&pi(a)}function ki(a,b,c){return c(function(){oi(b)&&pi(a)})}function oi(a){var b=a.getSnapshot;a=a.value;try{var c=b();return!He(a,c)}catch(d){return!0}}function pi(a){var b=Zg(a,1);null!==b&&mh(b,a,1,-1)}\nfunction qi(a){var b=ci();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:ei,lastRenderedState:a};b.queue=a;a=a.dispatch=ri.bind(null,N,a);return[b.memoizedState,a]}\nfunction li(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null,stores:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function si(){return di().memoizedState}function ti(a,b,c,d){var e=ci();N.flags|=a;e.memoizedState=li(1|b,c,void 0,void 0===d?null:d)}\nfunction ui(a,b,c,d){var e=di();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&Wh(d,g.deps)){e.memoizedState=li(b,c,f,d);return}}N.flags|=a;e.memoizedState=li(1|b,c,f,d)}function vi(a,b){return ti(8390656,8,a,b)}function ji(a,b){return ui(2048,8,a,b)}function wi(a,b){return ui(4,2,a,b)}function xi(a,b){return ui(4,4,a,b)}\nfunction yi(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function zi(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ui(4,4,yi.bind(null,b,a),c)}function Ai(){}function Bi(a,b){var c=di();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Wh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Ci(a,b){var c=di();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Wh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Di(a,b,c){if(0===(Rh&21))return a.baseState&&(a.baseState=!1,Ug=!0),a.memoizedState=c;He(c,b)||(c=yc(),N.lanes|=c,hh|=c,a.baseState=!0);return b}function Ei(a,b){var c=C;C=0!==c&&4>c?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0<c&&(b+=\"H\"+c.toString(32));b+=\":\"}else c=Vh++,b=\":\"+b+\"r\"+c.toString(32)+\":\";return a.memoizedState=b},unstable_isNewReconciler:!1},Zh={readContext:Vg,useCallback:Bi,useContext:Vg,useEffect:ji,useImperativeHandle:zi,useInsertionEffect:wi,useLayoutEffect:xi,useMemo:Ci,useReducer:fi,useRef:si,useState:function(){return fi(ei)},\nuseDebugValue:Ai,useDeferredValue:function(a){var b=di();return Di(b,O.memoizedState,a)},useTransition:function(){var a=fi(ei)[0],b=di().memoizedState;return[a,b]},useMutableSource:hi,useSyncExternalStore:ii,useId:Fi,unstable_isNewReconciler:!1},$h={readContext:Vg,useCallback:Bi,useContext:Vg,useEffect:ji,useImperativeHandle:zi,useInsertionEffect:wi,useLayoutEffect:xi,useMemo:Ci,useReducer:gi,useRef:si,useState:function(){return gi(ei)},useDebugValue:Ai,useDeferredValue:function(a){var b=di();return null===\nO?b.memoizedState=a:Di(b,O.memoizedState,a)},useTransition:function(){var a=gi(ei)[0],b=di().memoizedState;return[a,b]},useMutableSource:hi,useSyncExternalStore:ii,useId:Fi,unstable_isNewReconciler:!1};function Ki(a,b){try{var c=\"\",d=b;do c+=Pa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e,digest:null}}function Li(a,b,c){return{value:a,source:null,stack:null!=c?c:null,digest:null!=b?b:null}}\nfunction Mi(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Ni=\"function\"===typeof WeakMap?WeakMap:Map;function Oi(a,b,c){c=ch(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Pi||(Pi=!0,Qi=d);Mi(a,b)};return c}\nfunction Ri(a,b,c){c=ch(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){return d(e)};c.callback=function(){Mi(a,b)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){Mi(a,b);\"function\"!==typeof d&&(null===Si?Si=new Set([this]):Si.add(this));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nfunction Ti(a,b,c){var d=a.pingCache;if(null===d){d=a.pingCache=new Ni;var e=new Set;d.set(b,e)}else e=d.get(b),void 0===e&&(e=new Set,d.set(b,e));e.has(c)||(e.add(c),a=Ui.bind(null,a,b,c),b.then(a,a))}function Vi(a){do{var b;if(b=13===a.tag)b=a.memoizedState,b=null!==b?null!==b.dehydrated?!0:!1:!0;if(b)return a;a=a.return}while(null!==a);return null}\nfunction Wi(a,b,c,d,e){if(0===(a.mode&1))return a===b?a.flags|=65536:(a.flags|=128,c.flags|=131072,c.flags&=-52805,1===c.tag&&(null===c.alternate?c.tag=17:(b=ch(-1,1),b.tag=2,dh(c,b,1))),c.lanes|=1),a;a.flags|=65536;a.lanes=e;return a}var Xi=ua.ReactCurrentOwner,Ug=!1;function Yi(a,b,c,d){b.child=null===a?Ch(b,null,c,d):Bh(b,a.child,c,d)}\nfunction Zi(a,b,c,d,e){c=c.render;var f=b.ref;Tg(b,e);d=Xh(a,b,c,d,f,e);c=bi();if(null!==a&&!Ug)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,$i(a,b,e);I&&c&&vg(b);b.flags|=1;Yi(a,b,d,e);return b.child}\nfunction aj(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!bj(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,cj(a,b,f,d,e);a=yh(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:Ie;if(c(g,d)&&a.ref===b.ref)return $i(a,b,e)}b.flags|=1;a=wh(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction cj(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(Ie(f,d)&&a.ref===b.ref)if(Ug=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(Ug=!0);else return b.lanes=a.lanes,$i(a,b,e)}return dj(a,b,c,d,e)}\nfunction ej(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(fj,gj),gj|=c;else{if(0===(c&1073741824))return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,G(fj,gj),gj|=a,null;b.memoizedState={baseLanes:0,cachePool:null,transitions:null};d=null!==f?f.baseLanes:c;G(fj,gj);gj|=d}else null!==\nf?(d=f.baseLanes|c,b.memoizedState=null):d=c,G(fj,gj),gj|=d;Yi(a,b,e,c);return b.child}function hj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function dj(a,b,c,d,e){var f=Zf(c)?Xf:H.current;f=Yf(b,f);Tg(b,e);c=Xh(a,b,c,d,f,e);d=bi();if(null!==a&&!Ug)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,$i(a,b,e);I&&d&&vg(b);b.flags|=1;Yi(a,b,c,e);return b.child}\nfunction ij(a,b,c,d,e){if(Zf(c)){var f=!0;cg(b)}else f=!1;Tg(b,e);if(null===b.stateNode)jj(a,b),ph(b,c,d),rh(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=Vg(l):(l=Zf(c)?Xf:H.current,l=Yf(b,l));var m=c.getDerivedStateFromProps,q=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;q||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||\n(h!==d||k!==l)&&qh(b,g,d,l);$g=!1;var r=b.memoizedState;g.state=r;gh(b,d,g,e);k=b.memoizedState;h!==d||r!==k||Wf.current||$g?(\"function\"===typeof m&&(kh(b,c,m,d),k=b.memoizedState),(h=$g||oh(b,c,h,d,r,k,l))?(q||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===typeof g.componentDidMount&&(b.flags|=4194308)):\n(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;bh(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:Lg(b.type,h);g.props=l;q=b.pendingProps;r=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=Vg(k):(k=Zf(c)?Xf:H.current,k=Yf(b,k));var y=c.getDerivedStateFromProps;(m=\"function\"===typeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\n\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==q||r!==k)&&qh(b,g,d,k);$g=!1;r=b.memoizedState;g.state=r;gh(b,d,g,e);var n=b.memoizedState;h!==q||r!==n||Wf.current||$g?(\"function\"===typeof y&&(kh(b,c,y,d),n=b.memoizedState),(l=$g||oh(b,c,l,d,r,n,k)||!1)?(m||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,n,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&\ng.UNSAFE_componentWillUpdate(d,n,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=n),g.props=d,g.state=n,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===\na.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),d=!1)}return kj(a,b,c,d,f,e)}\nfunction kj(a,b,c,d,e,f){hj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&dg(b,c,!1),$i(a,b,f);d=b.stateNode;Xi.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Bh(b,a.child,null,f),b.child=Bh(b,null,h,f)):Yi(a,b,h,f);b.memoizedState=d.state;e&&dg(b,c,!0);return b.child}function lj(a){var b=a.stateNode;b.pendingContext?ag(a,b.pendingContext,b.pendingContext!==b.context):b.context&&ag(a,b.context,!1);Ih(a,b.containerInfo)}\nfunction mj(a,b,c,d,e){Ig();Jg(e);b.flags|=256;Yi(a,b,c,d);return b.child}var nj={dehydrated:null,treeContext:null,retryLane:0};function oj(a){return{baseLanes:a,cachePool:null,transitions:null}}\nfunction pj(a,b,c){var d=b.pendingProps,e=M.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;G(M,e&1);if(null===a){Eg(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;g=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,g={mode:\"hidden\",children:g},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ng):f=qj(g,d,0,null),a=Ah(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=oj(c),b.memoizedState=nj,a):rj(b,g)}e=a.memoizedState;if(null!==e&&(h=e.dehydrated,null!==h))return sj(a,b,g,d,h,e,c);if(f){f=d.fallback;g=b.mode;e=a.child;h=e.sibling;var k={mode:\"hidden\",children:d.children};0===(g&1)&&b.child!==e?(d=b.child,d.childLanes=0,d.pendingProps=k,b.deletions=null):(d=wh(e,k),d.subtreeFlags=e.subtreeFlags&14680064);null!==h?f=wh(h,f):(f=Ah(f,g,c,null),f.flags|=2);f.return=\nb;d.return=b;d.sibling=f;b.child=d;d=f;f=b.child;g=a.child.memoizedState;g=null===g?oj(c):{baseLanes:g.baseLanes|c,cachePool:null,transitions:g.transitions};f.memoizedState=g;f.childLanes=a.childLanes&~c;b.memoizedState=nj;return d}f=a.child;a=f.sibling;d=wh(f,{mode:\"visible\",children:d.children});0===(b.mode&1)&&(d.lanes=c);d.return=b;d.sibling=null;null!==a&&(c=b.deletions,null===c?(b.deletions=[a],b.flags|=16):c.push(a));b.child=d;b.memoizedState=null;return d}\nfunction rj(a,b){b=qj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}function tj(a,b,c,d){null!==d&&Jg(d);Bh(b,a.child,null,c);a=rj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction sj(a,b,c,d,e,f,g){if(c){if(b.flags&256)return b.flags&=-257,d=Li(Error(p(422))),tj(a,b,g,d);if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=qj({mode:\"visible\",children:d.children},e,0,null);f=Ah(f,e,g,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&Bh(b,a.child,null,g);b.child.memoizedState=oj(g);b.memoizedState=nj;return f}if(0===(b.mode&1))return tj(a,b,g,null);if(\"$!\"===e.data){d=e.nextSibling&&e.nextSibling.dataset;\nif(d)var h=d.dgst;d=h;f=Error(p(419));d=Li(f,d,void 0);return tj(a,b,g,d)}h=0!==(g&a.childLanes);if(Ug||h){d=R;if(null!==d){switch(g&-g){case 4:e=2;break;case 16:e=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:e=32;break;case 536870912:e=268435456;break;default:e=0}e=0!==(e&(d.suspendedLanes|g))?0:e;\n0!==e&&e!==f.retryLane&&(f.retryLane=e,Zg(a,e),mh(d,a,e,-1))}uj();d=Li(Error(p(421)));return tj(a,b,g,d)}if(\"$?\"===e.data)return b.flags|=128,b.child=a.child,b=vj.bind(null,a),e._reactRetry=b,null;a=f.treeContext;yg=Lf(e.nextSibling);xg=b;I=!0;zg=null;null!==a&&(og[pg++]=rg,og[pg++]=sg,og[pg++]=qg,rg=a.id,sg=a.overflow,qg=b);b=rj(b,d.children);b.flags|=4096;return b}function wj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);Sg(a.return,b,c)}\nfunction xj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction yj(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;Yi(a,b,d.children,c);d=M.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&wj(a,c,b);else if(19===a.tag)wj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}G(M,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Mh(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);xj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Mh(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}xj(b,!0,c,null,f);break;case \"together\":xj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction jj(a,b){0===(b.mode&1)&&null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2)}function $i(a,b,c){null!==a&&(b.dependencies=a.dependencies);hh|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=wh(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=wh(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction zj(a,b,c){switch(b.tag){case 3:lj(b);Ig();break;case 5:Kh(b);break;case 1:Zf(b.type)&&cg(b);break;case 4:Ih(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;G(Mg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return G(M,M.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return pj(a,b,c);G(M,M.current&1);a=$i(a,b,c);return null!==a?a.sibling:null}G(M,M.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return yj(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);G(M,M.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,ej(a,b,c)}return $i(a,b,c)}var Aj,Bj,Cj,Dj;\nAj=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Bj=function(){};\nCj=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;Hh(Eh.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"select\":e=A({},e,{value:void 0});d=A({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=Bf)}ub(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===l){var h=e[l];for(g in h)h.hasOwnProperty(g)&&\n(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ea.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,\nc)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ea.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&D(\"scroll\",a),f||h===k||(f=[])):(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",c);var l=f;if(b.updateQueue=l)b.flags|=4}};Dj=function(a,b,c,d){c!==d&&(b.flags|=4)};\nfunction Ej(a,b){if(!I)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction S(a){var b=null!==a.alternate&&a.alternate.child===a.child,c=0,d=0;if(b)for(var e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags&14680064,d|=e.flags&14680064,e.return=a,e=e.sibling;else for(e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags,d|=e.flags,e.return=a,e=e.sibling;a.subtreeFlags|=d;a.childLanes=c;return b}\nfunction Fj(a,b,c){var d=b.pendingProps;wg(b);switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return S(b),null;case 1:return Zf(b.type)&&$f(),S(b),null;case 3:d=b.stateNode;Jh();E(Wf);E(H);Oh();d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)Gg(b)?b.flags|=4:null===a||a.memoizedState.isDehydrated&&0===(b.flags&256)||(b.flags|=1024,null!==zg&&(Gj(zg),zg=null));Bj(a,b);S(b);return null;case 5:Lh(b);var e=Hh(Gh.current);\nc=b.type;if(null!==a&&null!=b.stateNode)Cj(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=512,b.flags|=2097152);else{if(!d){if(null===b.stateNode)throw Error(p(166));S(b);return null}a=Hh(Eh.current);if(Gg(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[Of]=b;d[Pf]=f;a=0!==(b.mode&1);switch(c){case \"dialog\":D(\"cancel\",d);D(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",d);break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],d);break;case \"source\":D(\"error\",d);break;case \"img\":case \"image\":case \"link\":D(\"error\",\nd);D(\"load\",d);break;case \"details\":D(\"toggle\",d);break;case \"input\":Za(d,f);D(\"invalid\",d);break;case \"select\":d._wrapperState={wasMultiple:!!f.multiple};D(\"invalid\",d);break;case \"textarea\":hb(d,f),D(\"invalid\",d)}ub(c,f);e=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,h,a),e=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,\nh,a),e=[\"children\",\"\"+h]):ea.hasOwnProperty(g)&&null!=h&&\"onScroll\"===g&&D(\"scroll\",d)}switch(c){case \"input\":Va(d);db(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=Bf)}d=e;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;\"http://www.w3.org/1999/xhtml\"===a&&(a=kb(c));\"http://www.w3.org/1999/xhtml\"===a?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],a);e=d;break;case \"source\":D(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":D(\"error\",\na);D(\"load\",a);e=d;break;case \"details\":D(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);D(\"invalid\",a);break;case \"option\":e=d;break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=A({},d,{value:void 0});D(\"invalid\",a);break;case \"textarea\":hb(a,d);e=gb(a,d);D(\"invalid\",a);break;default:e=d}ub(c,e);h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?sb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&nb(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==\nc||\"\"!==k)&&ob(a,k):\"number\"===typeof k&&ob(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ea.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&D(\"scroll\",a):null!=k&&ta(a,f,k,g))}switch(c){case \"input\":Va(a);db(a,d,!1);break;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,\n!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=Bf)}switch(c){case \"button\":case \"input\":case \"select\":case \"textarea\":d=!!d.autoFocus;break a;case \"img\":d=!0;break a;default:d=!1}}d&&(b.flags|=4)}null!==b.ref&&(b.flags|=512,b.flags|=2097152)}S(b);return null;case 6:if(a&&null!=b.stateNode)Dj(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(p(166));c=Hh(Gh.current);Hh(Eh.current);if(Gg(b)){d=b.stateNode;c=b.memoizedProps;d[Of]=b;if(f=d.nodeValue!==c)if(a=\nxg,null!==a)switch(a.tag){case 3:Af(d.nodeValue,c,0!==(a.mode&1));break;case 5:!0!==a.memoizedProps.suppressHydrationWarning&&Af(d.nodeValue,c,0!==(a.mode&1))}f&&(b.flags|=4)}else d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[Of]=b,b.stateNode=d}S(b);return null;case 13:E(M);d=b.memoizedState;if(null===a||null!==a.memoizedState&&null!==a.memoizedState.dehydrated){if(I&&null!==yg&&0!==(b.mode&1)&&0===(b.flags&128))Hg(),Ig(),b.flags|=98560,f=!1;else if(f=Gg(b),null!==d&&null!==d.dehydrated){if(null===\na){if(!f)throw Error(p(318));f=b.memoizedState;f=null!==f?f.dehydrated:null;if(!f)throw Error(p(317));f[Of]=b}else Ig(),0===(b.flags&128)&&(b.memoizedState=null),b.flags|=4;S(b);f=!1}else null!==zg&&(Gj(zg),zg=null),f=!0;if(!f)return b.flags&65536?b:null}if(0!==(b.flags&128))return b.lanes=c,b;d=null!==d;d!==(null!==a&&null!==a.memoizedState)&&d&&(b.child.flags|=8192,0!==(b.mode&1)&&(null===a||0!==(M.current&1)?0===T&&(T=3):uj()));null!==b.updateQueue&&(b.flags|=4);S(b);return null;case 4:return Jh(),\nBj(a,b),null===a&&sf(b.stateNode.containerInfo),S(b),null;case 10:return Rg(b.type._context),S(b),null;case 17:return Zf(b.type)&&$f(),S(b),null;case 19:E(M);f=b.memoizedState;if(null===f)return S(b),null;d=0!==(b.flags&128);g=f.rendering;if(null===g)if(d)Ej(f,!1);else{if(0!==T||null!==a&&0!==(a.flags&128))for(a=b.child;null!==a;){g=Mh(a);if(null!==g){b.flags|=128;Ej(f,!1);d=g.updateQueue;null!==d&&(b.updateQueue=d,b.flags|=4);b.subtreeFlags=0;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=14680066,\ng=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.subtreeFlags=0,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.subtreeFlags=0,f.deletions=null,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,f.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;G(M,M.current&1|2);return b.child}a=\na.sibling}null!==f.tail&&B()>Hj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;d<c.length;d++){var e=c[d];try{var f=a,g=b,h=g;a:for(;null!==h;){switch(h.tag){case 5:X=h.stateNode;Yj=!1;break a;case 3:X=h.stateNode.containerInfo;Yj=!0;break a;case 4:X=h.stateNode.containerInfo;Yj=!0;break a}h=h.return}if(null===X)throw Error(p(160));ak(f,g,e);X=null;Yj=!1;var k=e.alternate;null!==k&&(k.return=null);e.return=null}catch(l){W(e,b,l)}}if(b.subtreeFlags&12854)for(b=b.child;null!==b;)ek(b,a),b=b.sibling}\nfunction ek(a,b){var c=a.alternate,d=a.flags;switch(a.tag){case 0:case 11:case 14:case 15:dk(b,a);fk(a);if(d&4){try{Qj(3,a,a.return),Rj(3,a)}catch(t){W(a,a.return,t)}try{Qj(5,a,a.return)}catch(t){W(a,a.return,t)}}break;case 1:dk(b,a);fk(a);d&512&&null!==c&&Mj(c,c.return);break;case 5:dk(b,a);fk(a);d&512&&null!==c&&Mj(c,c.return);if(a.flags&32){var e=a.stateNode;try{ob(e,\"\")}catch(t){W(a,a.return,t)}}if(d&4&&(e=a.stateNode,null!=e)){var f=a.memoizedProps,g=null!==c?c.memoizedProps:f,h=a.type,k=a.updateQueue;\na.updateQueue=null;if(null!==k)try{\"input\"===h&&\"radio\"===f.type&&null!=f.name&&ab(e,f);vb(h,g);var l=vb(h,f);for(g=0;g<k.length;g+=2){var m=k[g],q=k[g+1];\"style\"===m?sb(e,q):\"dangerouslySetInnerHTML\"===m?nb(e,q):\"children\"===m?ob(e,q):ta(e,m,q,l)}switch(h){case \"input\":bb(e,f);break;case \"textarea\":ib(e,f);break;case \"select\":var r=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=!!f.multiple;var y=f.value;null!=y?fb(e,!!f.multiple,y,!1):r!==!!f.multiple&&(null!=f.defaultValue?fb(e,!!f.multiple,\nf.defaultValue,!0):fb(e,!!f.multiple,f.multiple?[]:\"\",!1))}e[Pf]=f}catch(t){W(a,a.return,t)}}break;case 6:dk(b,a);fk(a);if(d&4){if(null===a.stateNode)throw Error(p(162));e=a.stateNode;f=a.memoizedProps;try{e.nodeValue=f}catch(t){W(a,a.return,t)}}break;case 3:dk(b,a);fk(a);if(d&4&&null!==c&&c.memoizedState.isDehydrated)try{bd(b.containerInfo)}catch(t){W(a,a.return,t)}break;case 4:dk(b,a);fk(a);break;case 13:dk(b,a);fk(a);e=a.child;e.flags&8192&&(f=null!==e.memoizedState,e.stateNode.isHidden=f,!f||\nnull!==e.alternate&&null!==e.alternate.memoizedState||(gk=B()));d&4&&bk(a);break;case 22:m=null!==c&&null!==c.memoizedState;a.mode&1?(U=(l=U)||m,dk(b,a),U=l):dk(b,a);fk(a);if(d&8192){l=null!==a.memoizedState;if((a.stateNode.isHidden=l)&&!m&&0!==(a.mode&1))for(V=a,m=a.child;null!==m;){for(q=V=m;null!==V;){r=V;y=r.child;switch(r.tag){case 0:case 11:case 14:case 15:Qj(4,r,r.return);break;case 1:Mj(r,r.return);var n=r.stateNode;if(\"function\"===typeof n.componentWillUnmount){d=r;c=r.return;try{b=d,n.props=\nb.memoizedProps,n.state=b.memoizedState,n.componentWillUnmount()}catch(t){W(d,c,t)}}break;case 5:Mj(r,r.return);break;case 22:if(null!==r.memoizedState){hk(q);continue}}null!==y?(y.return=r,V=y):hk(q)}m=m.sibling}a:for(m=null,q=a;;){if(5===q.tag){if(null===m){m=q;try{e=q.stateNode,l?(f=e.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(h=q.stateNode,k=q.memoizedProps.style,g=void 0!==k&&null!==k&&k.hasOwnProperty(\"display\")?k.display:null,h.style.display=\nrb(\"display\",g))}catch(t){W(a,a.return,t)}}}else if(6===q.tag){if(null===m)try{q.stateNode.nodeValue=l?\"\":q.memoizedProps}catch(t){W(a,a.return,t)}}else if((22!==q.tag&&23!==q.tag||null===q.memoizedState||q===a)&&null!==q.child){q.child.return=q;q=q.child;continue}if(q===a)break a;for(;null===q.sibling;){if(null===q.return||q.return===a)break a;m===q&&(m=null);q=q.return}m===q&&(m=null);q.sibling.return=q.return;q=q.sibling}}break;case 19:dk(b,a);fk(a);d&4&&bk(a);break;case 21:break;default:dk(b,\na),fk(a)}}function fk(a){var b=a.flags;if(b&2){try{a:{for(var c=a.return;null!==c;){if(Uj(c)){var d=c;break a}c=c.return}throw Error(p(160));}switch(d.tag){case 5:var e=d.stateNode;d.flags&32&&(ob(e,\"\"),d.flags&=-33);var f=Vj(a);Xj(a,f,e);break;case 3:case 4:var g=d.stateNode.containerInfo,h=Vj(a);Wj(a,h,g);break;default:throw Error(p(161));}}catch(k){W(a,a.return,k)}a.flags&=-3}b&4096&&(a.flags&=-4097)}function ik(a,b,c){V=a;jk(a,b,c)}\nfunction jk(a,b,c){for(var d=0!==(a.mode&1);null!==V;){var e=V,f=e.child;if(22===e.tag&&d){var g=null!==e.memoizedState||Kj;if(!g){var h=e.alternate,k=null!==h&&null!==h.memoizedState||U;h=Kj;var l=U;Kj=g;if((U=k)&&!l)for(V=e;null!==V;)g=V,k=g.child,22===g.tag&&null!==g.memoizedState?kk(e):null!==k?(k.return=g,V=k):kk(e);for(;null!==f;)V=f,jk(f,b,c),f=f.sibling;V=e;Kj=h;U=l}lk(a,b,c)}else 0!==(e.subtreeFlags&8772)&&null!==f?(f.return=e,V=f):lk(a,b,c)}}\nfunction lk(a){for(;null!==V;){var b=V;if(0!==(b.flags&8772)){var c=b.alternate;try{if(0!==(b.flags&8772))switch(b.tag){case 0:case 11:case 15:U||Rj(5,b);break;case 1:var d=b.stateNode;if(b.flags&4&&!U)if(null===c)d.componentDidMount();else{var e=b.elementType===b.type?c.memoizedProps:Lg(b.type,c.memoizedProps);d.componentDidUpdate(e,c.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}var f=b.updateQueue;null!==f&&ih(b,f,d);break;case 3:var g=b.updateQueue;if(null!==g){c=null;if(null!==b.child)switch(b.child.tag){case 5:c=\nb.child.stateNode;break;case 1:c=b.child.stateNode}ih(b,g,c)}break;case 5:var h=b.stateNode;if(null===c&&b.flags&4){c=h;var k=b.memoizedProps;switch(b.type){case \"button\":case \"input\":case \"select\":case \"textarea\":k.autoFocus&&c.focus();break;case \"img\":k.src&&(c.src=k.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(null===b.memoizedState){var l=b.alternate;if(null!==l){var m=l.memoizedState;if(null!==m){var q=m.dehydrated;null!==q&&bd(q)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;\ndefault:throw Error(p(163));}U||b.flags&512&&Sj(b)}catch(r){W(b,b.return,r)}}if(b===a){V=null;break}c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}function hk(a){for(;null!==V;){var b=V;if(b===a){V=null;break}var c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}\nfunction kk(a){for(;null!==V;){var b=V;try{switch(b.tag){case 0:case 11:case 15:var c=b.return;try{Rj(4,b)}catch(k){W(b,c,k)}break;case 1:var d=b.stateNode;if(\"function\"===typeof d.componentDidMount){var e=b.return;try{d.componentDidMount()}catch(k){W(b,e,k)}}var f=b.return;try{Sj(b)}catch(k){W(b,f,k)}break;case 5:var g=b.return;try{Sj(b)}catch(k){W(b,g,k)}}}catch(k){W(b,b.return,k)}if(b===a){V=null;break}var h=b.sibling;if(null!==h){h.return=b.return;V=h;break}V=b.return}}\nvar mk=Math.ceil,nk=ua.ReactCurrentDispatcher,ok=ua.ReactCurrentOwner,pk=ua.ReactCurrentBatchConfig,K=0,R=null,Y=null,Z=0,gj=0,fj=Uf(0),T=0,qk=null,hh=0,rk=0,sk=0,tk=null,uk=null,gk=0,Hj=Infinity,vk=null,Pi=!1,Qi=null,Si=null,wk=!1,xk=null,yk=0,zk=0,Ak=null,Bk=-1,Ck=0;function L(){return 0!==(K&6)?B():-1!==Bk?Bk:Bk=B()}\nfunction lh(a){if(0===(a.mode&1))return 1;if(0!==(K&2)&&0!==Z)return Z&-Z;if(null!==Kg.transition)return 0===Ck&&(Ck=yc()),Ck;a=C;if(0!==a)return a;a=window.event;a=void 0===a?16:jd(a.type);return a}function mh(a,b,c,d){if(50<zk)throw zk=0,Ak=null,Error(p(185));Ac(a,c,d);if(0===(K&2)||a!==R)a===R&&(0===(K&2)&&(rk|=c),4===T&&Dk(a,Z)),Ek(a,d),1===c&&0===K&&0===(b.mode&1)&&(Hj=B()+500,fg&&jg())}\nfunction Ek(a,b){var c=a.callbackNode;wc(a,b);var d=uc(a,a===R?Z:0);if(0===d)null!==c&&bc(c),a.callbackNode=null,a.callbackPriority=0;else if(b=d&-d,a.callbackPriority!==b){null!=c&&bc(c);if(1===b)0===a.tag?ig(Fk.bind(null,a)):hg(Fk.bind(null,a)),Jf(function(){0===(K&6)&&jg()}),c=null;else{switch(Dc(d)){case 1:c=fc;break;case 4:c=gc;break;case 16:c=hc;break;case 536870912:c=jc;break;default:c=hc}c=Gk(c,Hk.bind(null,a))}a.callbackPriority=b;a.callbackNode=c}}\nfunction Hk(a,b){Bk=-1;Ck=0;if(0!==(K&6))throw Error(p(327));var c=a.callbackNode;if(Ik()&&a.callbackNode!==c)return null;var d=uc(a,a===R?Z:0);if(0===d)return null;if(0!==(d&30)||0!==(d&a.expiredLanes)||b)b=Jk(a,d);else{b=d;var e=K;K|=2;var f=Kk();if(R!==a||Z!==b)vk=null,Hj=B()+500,Lk(a,b);do try{Mk();break}catch(h){Nk(a,h)}while(1);Qg();nk.current=f;K=e;null!==Y?b=0:(R=null,Z=0,b=T)}if(0!==b){2===b&&(e=xc(a),0!==e&&(d=e,b=Ok(a,e)));if(1===b)throw c=qk,Lk(a,0),Dk(a,d),Ek(a,B()),c;if(6===b)Dk(a,d);\nelse{e=a.current.alternate;if(0===(d&30)&&!Pk(e)&&(b=Jk(a,d),2===b&&(f=xc(a),0!==f&&(d=f,b=Ok(a,f))),1===b))throw c=qk,Lk(a,0),Dk(a,d),Ek(a,B()),c;a.finishedWork=e;a.finishedLanes=d;switch(b){case 0:case 1:throw Error(p(345));case 2:Qk(a,uk,vk);break;case 3:Dk(a,d);if((d&130023424)===d&&(b=gk+500-B(),10<b)){if(0!==uc(a,0))break;e=a.suspendedLanes;if((e&d)!==d){L();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=Ff(Qk.bind(null,a,uk,vk),b);break}Qk(a,uk,vk);break;case 4:Dk(a,d);if((d&4194240)===\nd)break;b=a.eventTimes;for(e=-1;0<d;){var g=31-oc(d);f=1<<g;g=b[g];g>e&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10<d){a.timeoutHandle=Ff(Qk.bind(null,a,uk,vk),d);break}Qk(a,uk,vk);break;case 5:Qk(a,uk,vk);break;default:throw Error(p(329));}}}Ek(a,B());return a.callbackNode===c?Hk.bind(null,a):null}\nfunction Ok(a,b){var c=tk;a.current.memoizedState.isDehydrated&&(Lk(a,b).flags|=256);a=Jk(a,b);2!==a&&(b=uk,uk=c,null!==b&&Gj(b));return a}function Gj(a){null===uk?uk=a:uk.push.apply(uk,a)}\nfunction Pk(a){for(var b=a;;){if(b.flags&16384){var c=b.updateQueue;if(null!==c&&(c=c.stores,null!==c))for(var d=0;d<c.length;d++){var e=c[d],f=e.getSnapshot;e=e.value;try{if(!He(f(),e))return!1}catch(g){return!1}}}c=b.child;if(b.subtreeFlags&16384&&null!==c)c.return=b,b=c;else{if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return!0;b=b.return}b.sibling.return=b.return;b=b.sibling}}return!0}\nfunction Dk(a,b){b&=~sk;b&=~rk;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-oc(b),d=1<<c;a[c]=-1;b&=~d}}function Fk(a){if(0!==(K&6))throw Error(p(327));Ik();var b=uc(a,0);if(0===(b&1))return Ek(a,B()),null;var c=Jk(a,b);if(0!==a.tag&&2===c){var d=xc(a);0!==d&&(b=d,c=Ok(a,d))}if(1===c)throw c=qk,Lk(a,0),Dk(a,b),Ek(a,B()),c;if(6===c)throw Error(p(345));a.finishedWork=a.current.alternate;a.finishedLanes=b;Qk(a,uk,vk);Ek(a,B());return null}\nfunction Rk(a,b){var c=K;K|=1;try{return a(b)}finally{K=c,0===K&&(Hj=B()+500,fg&&jg())}}function Sk(a){null!==xk&&0===xk.tag&&0===(K&6)&&Ik();var b=K;K|=1;var c=pk.transition,d=C;try{if(pk.transition=null,C=1,a)return a()}finally{C=d,pk.transition=c,K=b,0===(K&6)&&jg()}}function Ij(){gj=fj.current;E(fj)}\nfunction Lk(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Gf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;wg(d);switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&$f();break;case 3:Jh();E(Wf);E(H);Oh();break;case 5:Lh(d);break;case 4:Jh();break;case 13:E(M);break;case 19:E(M);break;case 10:Rg(d.type._context);break;case 22:case 23:Ij()}c=c.return}R=a;Y=a=wh(a.current,null);Z=gj=b;T=0;qk=null;sk=rk=hh=0;uk=tk=null;if(null!==Wg){for(b=\n0;b<Wg.length;b++)if(c=Wg[b],d=c.interleaved,null!==d){c.interleaved=null;var e=d.next,f=c.pending;if(null!==f){var g=f.next;f.next=e;d.next=g}c.pending=d}Wg=null}return a}\nfunction Nk(a,b){do{var c=Y;try{Qg();Ph.current=ai;if(Sh){for(var d=N.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}Sh=!1}Rh=0;P=O=N=null;Th=!1;Uh=0;ok.current=null;if(null===c||null===c.return){T=1;qk=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=Z;h.flags|=32768;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k,m=h,q=m.tag;if(0===(m.mode&1)&&(0===q||11===q||15===q)){var r=m.alternate;r?(m.updateQueue=r.updateQueue,m.memoizedState=r.memoizedState,\nm.lanes=r.lanes):(m.updateQueue=null,m.memoizedState=null)}var y=Vi(g);if(null!==y){y.flags&=-257;Wi(y,g,h,f,b);y.mode&1&&Ti(f,l,b);b=y;k=l;var n=b.updateQueue;if(null===n){var t=new Set;t.add(k);b.updateQueue=t}else n.add(k);break a}else{if(0===(b&1)){Ti(f,l,b);uj();break a}k=Error(p(426))}}else if(I&&h.mode&1){var J=Vi(g);if(null!==J){0===(J.flags&65536)&&(J.flags|=256);Wi(J,g,h,f,b);Jg(Ki(k,h));break a}}f=k=Ki(k,h);4!==T&&(T=2);null===tk?tk=[f]:tk.push(f);f=g;do{switch(f.tag){case 3:f.flags|=65536;\nb&=-b;f.lanes|=b;var x=Oi(f,k,b);fh(f,x);break a;case 1:h=k;var w=f.type,u=f.stateNode;if(0===(f.flags&128)&&(\"function\"===typeof w.getDerivedStateFromError||null!==u&&\"function\"===typeof u.componentDidCatch&&(null===Si||!Si.has(u)))){f.flags|=65536;b&=-b;f.lanes|=b;var F=Ri(f,h,b);fh(f,F);break a}}f=f.return}while(null!==f)}Tk(c)}catch(na){b=na;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}function Kk(){var a=nk.current;nk.current=ai;return null===a?ai:a}\nfunction uj(){if(0===T||3===T||2===T)T=4;null===R||0===(hh&268435455)&&0===(rk&268435455)||Dk(R,Z)}function Jk(a,b){var c=K;K|=2;var d=Kk();if(R!==a||Z!==b)vk=null,Lk(a,b);do try{Uk();break}catch(e){Nk(a,e)}while(1);Qg();K=c;nk.current=d;if(null!==Y)throw Error(p(261));R=null;Z=0;return T}function Uk(){for(;null!==Y;)Vk(Y)}function Mk(){for(;null!==Y&&!cc();)Vk(Y)}function Vk(a){var b=Wk(a.alternate,a,gj);a.memoizedProps=a.pendingProps;null===b?Tk(a):Y=b;ok.current=null}\nfunction Tk(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&32768)){if(c=Fj(c,b,gj),null!==c){Y=c;return}}else{c=Jj(c,b);if(null!==c){c.flags&=32767;Y=c;return}if(null!==a)a.flags|=32768,a.subtreeFlags=0,a.deletions=null;else{T=6;Y=null;return}}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===T&&(T=5)}function Qk(a,b,c){var d=C,e=pk.transition;try{pk.transition=null,C=1,Xk(a,b,c,d)}finally{pk.transition=e,C=d}return null}\nfunction Xk(a,b,c,d){do Ik();while(null!==xk);if(0!==(K&6))throw Error(p(327));c=a.finishedWork;var e=a.finishedLanes;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(p(177));a.callbackNode=null;a.callbackPriority=0;var f=c.lanes|c.childLanes;Bc(a,f);a===R&&(Y=R=null,Z=0);0===(c.subtreeFlags&2064)&&0===(c.flags&2064)||wk||(wk=!0,Gk(hc,function(){Ik();return null}));f=0!==(c.flags&15990);if(0!==(c.subtreeFlags&15990)||f){f=pk.transition;pk.transition=null;\nvar g=C;C=1;var h=K;K|=4;ok.current=null;Pj(a,c);ek(c,a);Oe(Df);dd=!!Cf;Df=Cf=null;a.current=c;ik(c,a,e);dc();K=h;C=g;pk.transition=f}else a.current=c;wk&&(wk=!1,xk=a,yk=e);f=a.pendingLanes;0===f&&(Si=null);mc(c.stateNode,d);Ek(a,B());if(null!==b)for(d=a.onRecoverableError,c=0;c<b.length;c++)e=b[c],d(e.value,{componentStack:e.stack,digest:e.digest});if(Pi)throw Pi=!1,a=Qi,Qi=null,a;0!==(yk&1)&&0!==a.tag&&Ik();f=a.pendingLanes;0!==(f&1)?a===Ak?zk++:(zk=0,Ak=a):zk=0;jg();return null}\nfunction Ik(){if(null!==xk){var a=Dc(yk),b=pk.transition,c=C;try{pk.transition=null;C=16>a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;k<h.length;k++){var l=h[k];for(V=l;null!==V;){var m=V;switch(m.tag){case 0:case 11:case 15:Qj(8,m,f)}var q=m.child;if(null!==q)q.return=m,V=q;else for(;null!==V;){m=V;var r=m.sibling,y=m.return;Tj(m);if(m===\nl){V=null;break}if(null!==r){r.return=y;V=r;break}V=y}}}var n=f.alternate;if(null!==n){var t=n.child;if(null!==t){n.child=null;do{var J=t.sibling;t.sibling=null;t=J}while(null!==t)}}V=f}}if(0!==(f.subtreeFlags&2064)&&null!==g)g.return=f,V=g;else b:for(;null!==V;){f=V;if(0!==(f.flags&2048))switch(f.tag){case 0:case 11:case 15:Qj(9,f,f.return)}var x=f.sibling;if(null!==x){x.return=f.return;V=x;break b}V=f.return}}var w=a.current;for(V=w;null!==V;){g=V;var u=g.child;if(0!==(g.subtreeFlags&2064)&&null!==\nu)u.return=g,V=u;else b:for(g=w;null!==V;){h=V;if(0!==(h.flags&2048))try{switch(h.tag){case 0:case 11:case 15:Rj(9,h)}}catch(na){W(h,h.return,na)}if(h===g){V=null;break b}var F=h.sibling;if(null!==F){F.return=h.return;V=F;break b}V=h.return}}K=e;jg();if(lc&&\"function\"===typeof lc.onPostCommitFiberRoot)try{lc.onPostCommitFiberRoot(kc,a)}catch(na){}d=!0}return d}finally{C=c,pk.transition=b}}return!1}function Yk(a,b,c){b=Ki(c,b);b=Oi(a,b,1);a=dh(a,b,1);b=L();null!==a&&(Ac(a,1,b),Ek(a,b))}\nfunction W(a,b,c){if(3===a.tag)Yk(a,a,c);else for(;null!==b;){if(3===b.tag){Yk(b,a,c);break}else if(1===b.tag){var d=b.stateNode;if(\"function\"===typeof b.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Si||!Si.has(d))){a=Ki(c,a);a=Ri(b,a,1);b=dh(b,a,1);a=L();null!==b&&(Ac(b,1,a),Ek(b,a));break}}b=b.return}}\nfunction Ui(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=L();a.pingedLanes|=a.suspendedLanes&c;R===a&&(Z&c)===c&&(4===T||3===T&&(Z&130023424)===Z&&500>B()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:wa,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction el(a){if(!a)return Vf;a=a._reactInternals;a:{if(Vb(a)!==a||1!==a.tag)throw Error(p(170));var b=a;do{switch(b.tag){case 3:b=b.stateNode.context;break a;case 1:if(Zf(b.type)){b=b.stateNode.__reactInternalMemoizedMergedChildContext;break a}}b=b.return}while(null!==b);throw Error(p(171));}if(1===a.tag){var c=a.type;if(Zf(c))return bg(a,c,b)}return b}\nfunction fl(a,b,c,d,e,f,g,h,k){a=cl(c,d,!0,a,e,f,g,h,k);a.context=el(null);c=a.current;d=L();e=lh(c);f=ch(d,e);f.callback=void 0!==b&&null!==b?b:null;dh(c,f,e);a.current.lanes=e;Ac(a,e,d);Ek(a,d);return a}function gl(a,b,c,d){var e=b.current,f=L(),g=lh(e);c=el(c);null===b.context?b.context=c:b.pendingContext=c;b=ch(f,g);b.payload={element:a};d=void 0===d?null:d;null!==d&&(b.callback=d);a=dh(e,b,g);null!==a&&(mh(a,e,g,f),eh(a,e,g));return g}\nfunction hl(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function il(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function jl(a,b){il(a,b);(a=a.alternate)&&il(a,b)}function kl(){return null}var ll=\"function\"===typeof reportError?reportError:function(a){console.error(a)};function ml(a){this._internalRoot=a}\nnl.prototype.render=ml.prototype.render=function(a){var b=this._internalRoot;if(null===b)throw Error(p(409));gl(a,b,null,null)};nl.prototype.unmount=ml.prototype.unmount=function(){var a=this._internalRoot;if(null!==a){this._internalRoot=null;var b=a.containerInfo;Sk(function(){gl(null,a,null,null)});b[uf]=null}};function nl(a){this._internalRoot=a}\nnl.prototype.unstable_scheduleHydration=function(a){if(a){var b=Hc();a={blockedOn:null,target:a,priority:b};for(var c=0;c<Qc.length&&0!==b&&b<Qc[c].priority;c++);Qc.splice(c,0,a);0===c&&Vc(a)}};function ol(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType)}function pl(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function ql(){}\nfunction rl(a,b,c,d,e){if(e){if(\"function\"===typeof d){var f=d;d=function(){var a=hl(g);f.call(a)}}var g=fl(b,d,a,0,null,!1,!1,\"\",ql);a._reactRootContainer=g;a[uf]=g.current;sf(8===a.nodeType?a.parentNode:a);Sk();return g}for(;e=a.lastChild;)a.removeChild(e);if(\"function\"===typeof d){var h=d;d=function(){var a=hl(k);h.call(a)}}var k=cl(a,0,!1,null,null,!1,!1,\"\",ql);a._reactRootContainer=k;a[uf]=k.current;sf(8===a.nodeType?a.parentNode:a);Sk(function(){gl(b,k,c,d)});return k}\nfunction sl(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f;if(\"function\"===typeof e){var h=e;e=function(){var a=hl(g);h.call(a)}}gl(b,g,a,e)}else g=rl(c,b,a,e,d);return hl(g)}Ec=function(a){switch(a.tag){case 3:var b=a.stateNode;if(b.current.memoizedState.isDehydrated){var c=tc(b.pendingLanes);0!==c&&(Cc(b,c|1),Ek(b,B()),0===(K&6)&&(Hj=B()+500,jg()))}break;case 13:Sk(function(){var b=Zg(a,1);if(null!==b){var c=L();mh(b,a,1,c)}}),jl(a,1)}};\nFc=function(a){if(13===a.tag){var b=Zg(a,134217728);if(null!==b){var c=L();mh(b,a,134217728,c)}jl(a,134217728)}};Gc=function(a){if(13===a.tag){var b=lh(a),c=Zg(a,b);if(null!==c){var d=L();mh(c,a,b,d)}jl(a,b)}};Hc=function(){return C};Ic=function(a,b){var c=C;try{return C=a,b()}finally{C=c}};\nyb=function(a,b,c){switch(b){case \"input\":bb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(p(90));Wa(d);bb(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Rk;Hb=Sk;\nvar tl={usingClientEntryPoint:!1,Events:[Cb,ue,Db,Eb,Fb,Rk]},ul={findFiberByHostInstance:Wc,bundleType:0,version:\"18.2.0\",rendererPackageName:\"react-dom\"};\nvar vl={bundleType:ul.bundleType,version:ul.version,rendererPackageName:ul.rendererPackageName,rendererConfig:ul.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ua.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=Zb(a);return null===a?null:a.stateNode},findFiberByHostInstance:ul.findFiberByHostInstance||\nkl,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:\"18.2.0-next-9e3b772b8-20220608\"};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var wl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!wl.isDisabled&&wl.supportsFiber)try{kc=wl.inject(vl),lc=wl}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=tl;\nexports.createPortal=function(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!ol(b))throw Error(p(200));return dl(a,b,null,c)};exports.createRoot=function(a,b){if(!ol(a))throw Error(p(299));var c=!1,d=\"\",e=ll;null!==b&&void 0!==b&&(!0===b.unstable_strictMode&&(c=!0),void 0!==b.identifierPrefix&&(d=b.identifierPrefix),void 0!==b.onRecoverableError&&(e=b.onRecoverableError));b=cl(a,1,!1,null,null,c,!1,d,e);a[uf]=b.current;sf(8===a.nodeType?a.parentNode:a);return new ml(b)};\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(p(188));a=Object.keys(a).join(\",\");throw Error(p(268,a));}a=Zb(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a){return Sk(a)};exports.hydrate=function(a,b,c){if(!pl(b))throw Error(p(200));return sl(null,a,b,!0,c)};\nexports.hydrateRoot=function(a,b,c){if(!ol(a))throw Error(p(405));var d=null!=c&&c.hydratedSources||null,e=!1,f=\"\",g=ll;null!==c&&void 0!==c&&(!0===c.unstable_strictMode&&(e=!0),void 0!==c.identifierPrefix&&(f=c.identifierPrefix),void 0!==c.onRecoverableError&&(g=c.onRecoverableError));b=fl(b,null,a,1,null!=c?c:null,e,!1,f,g);a[uf]=b.current;sf(a);if(d)for(a=0;a<d.length;a++)c=d[a],e=c._getVersion,e=e(c._source),null==b.mutableSourceEagerHydrationData?b.mutableSourceEagerHydrationData=[c,e]:b.mutableSourceEagerHydrationData.push(c,\ne);return new nl(b)};exports.render=function(a,b,c){if(!pl(b))throw Error(p(200));return sl(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!pl(a))throw Error(p(40));return a._reactRootContainer?(Sk(function(){sl(null,null,a,!1,function(){a._reactRootContainer=null;a[uf]=null})}),!0):!1};exports.unstable_batchedUpdates=Rk;\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!pl(c))throw Error(p(200));if(null==a||void 0===a._reactInternals)throw Error(p(38));return sl(a,b,c,!1,d)};exports.version=\"18.2.0-next-9e3b772b8-20220608\";\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n  exports.createRoot = m.createRoot;\n  exports.hydrateRoot = m.hydrateRoot;\n} else {\n  var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n  exports.createRoot = function(c, o) {\n    i.usingClientEntryPoint = true;\n    try {\n      return m.createRoot(c, o);\n    } finally {\n      i.usingClientEntryPoint = false;\n    }\n  };\n  exports.hydrateRoot = function(c, h, o) {\n    i.usingClientEntryPoint = true;\n    try {\n      return m.hydrateRoot(c, h, o);\n    } finally {\n      i.usingClientEntryPoint = false;\n    }\n  };\n}\n","'use strict';\n\nfunction checkDCE() {\n  /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n  if (\n    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n  ) {\n    return;\n  }\n  if (process.env.NODE_ENV !== 'production') {\n    // This branch is unreachable because this function is only called\n    // in production, but the condition is true only in development.\n    // Therefore if the branch is still here, dead code elimination wasn't\n    // properly applied.\n    // Don't change the message. React DevTools relies on it. Also make sure\n    // this message doesn't occur elsewhere in this function, or it will cause\n    // a false positive.\n    throw new Error('^_^');\n  }\n  try {\n    // Verify that the code above has been dead code eliminated (DCE'd).\n    __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n  } catch (err) {\n    // DevTools shouldn't crash React, no matter what.\n    // We should still report in case we break this code.\n    console.error(err);\n  }\n}\n\nif (process.env.NODE_ENV === 'production') {\n  // DCE check should happen before ReactDOM bundle executes so that\n  // DevTools can report bad minification during injection.\n  checkDCE();\n  module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n  module.exports = require('./cjs/react-dom.development.js');\n}\n","var matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g;\nvar htmlEntities = {\n  '&amp;': '&',\n  '&#38;': '&',\n  '&lt;': '<',\n  '&#60;': '<',\n  '&gt;': '>',\n  '&#62;': '>',\n  '&apos;': \"'\",\n  '&#39;': \"'\",\n  '&quot;': '\"',\n  '&#34;': '\"',\n  '&nbsp;': ' ',\n  '&#160;': ' ',\n  '&copy;': '©',\n  '&#169;': '©',\n  '&reg;': '®',\n  '&#174;': '®',\n  '&hellip;': '…',\n  '&#8230;': '…',\n  '&#x2F;': '/',\n  '&#47;': '/'\n};\n\nvar unescapeHtmlEntity = function unescapeHtmlEntity(m) {\n  return htmlEntities[m];\n};\n\nexport var unescape = function unescape(text) {\n  return text.replace(matchHtmlEntity, unescapeHtmlEntity);\n};","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { createContext } from 'react';\nimport { unescape } from './unescape';\nvar defaultOptions = {\n  bindI18n: 'languageChanged',\n  bindI18nStore: '',\n  transEmptyNodeValue: '',\n  transSupportBasicHtmlNodes: true,\n  transWrapTextNodes: '',\n  transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n  useSuspense: true,\n  unescape: unescape\n};\nvar i18nInstance;\nexport var I18nContext = createContext();\nexport function setDefaults() {\n  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  defaultOptions = _objectSpread(_objectSpread({}, defaultOptions), options);\n}\nexport function getDefaults() {\n  return defaultOptions;\n}\nexport var ReportNamespaces = function () {\n  function ReportNamespaces() {\n    _classCallCheck(this, ReportNamespaces);\n\n    this.usedNamespaces = {};\n  }\n\n  _createClass(ReportNamespaces, [{\n    key: \"addUsedNamespaces\",\n    value: function addUsedNamespaces(namespaces) {\n      var _this = this;\n\n      namespaces.forEach(function (ns) {\n        if (!_this.usedNamespaces[ns]) _this.usedNamespaces[ns] = true;\n      });\n    }\n  }, {\n    key: \"getUsedNamespaces\",\n    value: function getUsedNamespaces() {\n      return Object.keys(this.usedNamespaces);\n    }\n  }]);\n\n  return ReportNamespaces;\n}();\nexport function setI18n(instance) {\n  i18nInstance = instance;\n}\nexport function getI18n() {\n  return i18nInstance;\n}\nexport var initReactI18next = {\n  type: '3rdParty',\n  init: function init(instance) {\n    setDefaults(instance.options.react);\n    setI18n(instance);\n  }\n};\nexport function composeInitialProps(ForComponent) {\n  return function (ctx) {\n    return new Promise(function (resolve) {\n      var i18nInitialProps = getInitialProps();\n\n      if (ForComponent.getInitialProps) {\n        ForComponent.getInitialProps(ctx).then(function (componentsInitialProps) {\n          resolve(_objectSpread(_objectSpread({}, componentsInitialProps), i18nInitialProps));\n        });\n      } else {\n        resolve(i18nInitialProps);\n      }\n    });\n  };\n}\nexport function getInitialProps() {\n  var i18n = getI18n();\n  var namespaces = i18n.reportNamespaces ? i18n.reportNamespaces.getUsedNamespaces() : [];\n  var ret = {};\n  var initialI18nStore = {};\n  i18n.languages.forEach(function (l) {\n    initialI18nStore[l] = {};\n    namespaces.forEach(function (ns) {\n      initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};\n    });\n  });\n  ret.initialI18nStore = initialI18nStore;\n  ret.initialLanguage = i18n.language;\n  return ret;\n}","export function warn() {\n  if (console && console.warn) {\n    var _console;\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    if (typeof args[0] === 'string') args[0] = \"react-i18next:: \".concat(args[0]);\n\n    (_console = console).warn.apply(_console, args);\n  }\n}\nvar alreadyWarned = {};\nexport function warnOnce() {\n  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n    args[_key2] = arguments[_key2];\n  }\n\n  if (typeof args[0] === 'string' && alreadyWarned[args[0]]) return;\n  if (typeof args[0] === 'string') alreadyWarned[args[0]] = new Date();\n  warn.apply(void 0, args);\n}\nexport function loadNamespaces(i18n, ns, cb) {\n  i18n.loadNamespaces(ns, function () {\n    if (i18n.isInitialized) {\n      cb();\n    } else {\n      var initialized = function initialized() {\n        setTimeout(function () {\n          i18n.off('initialized', initialized);\n        }, 0);\n        cb();\n      };\n\n      i18n.on('initialized', initialized);\n    }\n  });\n}\n\nfunction oldI18nextHasLoadedNamespace(ns, i18n) {\n  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  var lng = i18n.languages[0];\n  var fallbackLng = i18n.options ? i18n.options.fallbackLng : false;\n  var lastLng = i18n.languages[i18n.languages.length - 1];\n  if (lng.toLowerCase() === 'cimode') return true;\n\n  var loadNotPending = function loadNotPending(l, n) {\n    var loadState = i18n.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n    return loadState === -1 || loadState === 2;\n  };\n\n  if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18n.services.backendConnector.backend && i18n.isLanguageChangingTo && !loadNotPending(i18n.isLanguageChangingTo, ns)) return false;\n  if (i18n.hasResourceBundle(lng, ns)) return true;\n  if (!i18n.services.backendConnector.backend || i18n.options.resources && !i18n.options.partialBundledLanguages) return true;\n  if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n  return false;\n}\n\nexport function hasLoadedNamespace(ns, i18n) {\n  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n  if (!i18n.languages || !i18n.languages.length) {\n    warnOnce('i18n.languages were undefined or empty', i18n.languages);\n    return true;\n  }\n\n  var isNewerI18next = i18n.options.ignoreJSONStructure !== undefined;\n\n  if (!isNewerI18next) {\n    return oldI18nextHasLoadedNamespace(ns, i18n, options);\n  }\n\n  return i18n.hasLoadedNamespace(ns, {\n    precheck: function precheck(i18nInstance, loadNotPending) {\n      if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18nInstance.services.backendConnector.backend && i18nInstance.isLanguageChangingTo && !loadNotPending(i18nInstance.isLanguageChangingTo, ns)) return false;\n    }\n  });\n}\nexport function getDisplayName(Component) {\n  return Component.displayName || Component.name || (typeof Component === 'string' && Component.length > 0 ? Component : 'Unknown');\n}","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { useState, useEffect, useContext, useRef } from 'react';\nimport { getI18n, getDefaults, ReportNamespaces, I18nContext } from './context';\nimport { warnOnce, loadNamespaces, hasLoadedNamespace } from './utils';\n\nvar usePrevious = function usePrevious(value, ignore) {\n  var ref = useRef();\n  useEffect(function () {\n    ref.current = ignore ? ref.current : value;\n  }, [value, ignore]);\n  return ref.current;\n};\n\nexport function useTranslation(ns) {\n  var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var i18nFromProps = props.i18n;\n\n  var _ref = useContext(I18nContext) || {},\n      i18nFromContext = _ref.i18n,\n      defaultNSFromContext = _ref.defaultNS;\n\n  var i18n = i18nFromProps || i18nFromContext || getI18n();\n  if (i18n && !i18n.reportNamespaces) i18n.reportNamespaces = new ReportNamespaces();\n\n  if (!i18n) {\n    warnOnce('You will need to pass in an i18next instance by using initReactI18next');\n\n    var notReadyT = function notReadyT(k) {\n      return Array.isArray(k) ? k[k.length - 1] : k;\n    };\n\n    var retNotReady = [notReadyT, {}, false];\n    retNotReady.t = notReadyT;\n    retNotReady.i18n = {};\n    retNotReady.ready = false;\n    return retNotReady;\n  }\n\n  if (i18n.options.react && i18n.options.react.wait !== undefined) warnOnce('It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.');\n\n  var i18nOptions = _objectSpread(_objectSpread(_objectSpread({}, getDefaults()), i18n.options.react), props);\n\n  var useSuspense = i18nOptions.useSuspense,\n      keyPrefix = i18nOptions.keyPrefix;\n  var namespaces = ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;\n  namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];\n  if (i18n.reportNamespaces.addUsedNamespaces) i18n.reportNamespaces.addUsedNamespaces(namespaces);\n  var ready = (i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every(function (n) {\n    return hasLoadedNamespace(n, i18n, i18nOptions);\n  });\n\n  function getT() {\n    return i18n.getFixedT(null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n  }\n\n  var _useState = useState(getT),\n      _useState2 = _slicedToArray(_useState, 2),\n      t = _useState2[0],\n      setT = _useState2[1];\n\n  var joinedNS = namespaces.join();\n  var previousJoinedNS = usePrevious(joinedNS);\n  var isMounted = useRef(true);\n  useEffect(function () {\n    var bindI18n = i18nOptions.bindI18n,\n        bindI18nStore = i18nOptions.bindI18nStore;\n    isMounted.current = true;\n\n    if (!ready && !useSuspense) {\n      loadNamespaces(i18n, namespaces, function () {\n        if (isMounted.current) setT(getT);\n      });\n    }\n\n    if (ready && previousJoinedNS && previousJoinedNS !== joinedNS && isMounted.current) {\n      setT(getT);\n    }\n\n    function boundReset() {\n      if (isMounted.current) setT(getT);\n    }\n\n    if (bindI18n && i18n) i18n.on(bindI18n, boundReset);\n    if (bindI18nStore && i18n) i18n.store.on(bindI18nStore, boundReset);\n    return function () {\n      isMounted.current = false;\n      if (bindI18n && i18n) bindI18n.split(' ').forEach(function (e) {\n        return i18n.off(e, boundReset);\n      });\n      if (bindI18nStore && i18n) bindI18nStore.split(' ').forEach(function (e) {\n        return i18n.store.off(e, boundReset);\n      });\n    };\n  }, [i18n, joinedNS]);\n  var isInitial = useRef(true);\n  useEffect(function () {\n    if (isMounted.current && !isInitial.current) {\n      setT(getT);\n    }\n\n    isInitial.current = false;\n  }, [i18n, keyPrefix]);\n  var ret = [t, i18n, ready];\n  ret.t = t;\n  ret.i18n = i18n;\n  ret.ready = ready;\n  if (ready) return ret;\n  if (!ready && !useSuspense) return ret;\n  throw new Promise(function (resolve) {\n    loadNamespaces(i18n, namespaces, function () {\n      resolve();\n    });\n  });\n}","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react-is.production.min.js');\n} else {\n  module.exports = require('./cjs/react-is.development.js');\n}\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a <Router> that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n  history = createHistory(this.props);\n\n  render() {\n    return <Router history={this.history} children={this.props.children} />;\n  }\n}\n\nif (__DEV__) {\n  BrowserRouter.propTypes = {\n    basename: PropTypes.string,\n    children: PropTypes.node,\n    forceRefresh: PropTypes.bool,\n    getUserConfirmation: PropTypes.func,\n    keyLength: PropTypes.number\n  };\n\n  BrowserRouter.prototype.componentDidMount = function() {\n    warning(\n      !this.props.history,\n      \"<BrowserRouter> ignores the history prop. To use a custom history, \" +\n        \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n    );\n  };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a <Router> that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n  history = createHistory(this.props);\n\n  render() {\n    return <Router history={this.history} children={this.props.children} />;\n  }\n}\n\nif (__DEV__) {\n  HashRouter.propTypes = {\n    basename: PropTypes.string,\n    children: PropTypes.node,\n    getUserConfirmation: PropTypes.func,\n    hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n  };\n\n  HashRouter.prototype.componentDidMount = function() {\n    warning(\n      !this.props.history,\n      \"<HashRouter> ignores the history prop. To use a custom history, \" +\n        \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n    );\n  };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n  typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n  return typeof to === \"string\"\n    ? createLocation(to, null, null, currentLocation)\n    : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport { createPath } from 'history';\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n  resolveToLocation,\n  normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n  forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n  return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n  (\n    {\n      innerRef, // TODO: deprecate\n      navigate,\n      onClick,\n      ...rest\n    },\n    forwardedRef\n  ) => {\n    const { target } = rest;\n\n    let props = {\n      ...rest,\n      onClick: event => {\n        try {\n          if (onClick) onClick(event);\n        } catch (ex) {\n          event.preventDefault();\n          throw ex;\n        }\n\n        if (\n          !event.defaultPrevented && // onClick prevented default\n          event.button === 0 && // ignore everything but left clicks\n          (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n          !isModifiedEvent(event) // ignore clicks with modifier keys\n        ) {\n          event.preventDefault();\n          navigate();\n        }\n      }\n    };\n\n    // React 15 compat\n    if (forwardRefShim !== forwardRef) {\n      props.ref = forwardedRef || innerRef;\n    } else {\n      props.ref = innerRef;\n    }\n\n    /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n    return <a {...props} />;\n  }\n);\n\nif (__DEV__) {\n  LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware <a>.\n */\nconst Link = forwardRef(\n  (\n    {\n      component = LinkAnchor,\n      replace,\n      to,\n      innerRef, // TODO: deprecate\n      ...rest\n    },\n    forwardedRef\n  ) => {\n    return (\n      <RouterContext.Consumer>\n        {context => {\n          invariant(context, \"You should not use <Link> outside a <Router>\");\n\n          const { history } = context;\n\n          const location = normalizeToLocation(\n            resolveToLocation(to, context.location),\n            context.location\n          );\n\n          const href = location ? history.createHref(location) : \"\";\n          const props = {\n            ...rest,\n            href,\n            navigate() {\n              const location = resolveToLocation(to, context.location);\n              const isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n              const method = (replace || isDuplicateNavigation) ? history.replace : history.push;\n\n              method(location);\n            }\n          };\n\n          // React 15 compat\n          if (forwardRefShim !== forwardRef) {\n            props.ref = forwardedRef || innerRef;\n          } else {\n            props.innerRef = innerRef;\n          }\n\n          return React.createElement(component, props);\n        }}\n      </RouterContext.Consumer>\n    );\n  }\n);\n\nif (__DEV__) {\n  const toType = PropTypes.oneOfType([\n    PropTypes.string,\n    PropTypes.object,\n    PropTypes.func\n  ]);\n  const refType = PropTypes.oneOfType([\n    PropTypes.string,\n    PropTypes.func,\n    PropTypes.shape({ current: PropTypes.any })\n  ]);\n\n  Link.displayName = \"Link\";\n\n  Link.propTypes = {\n    innerRef: refType,\n    onClick: PropTypes.func,\n    replace: PropTypes.bool,\n    target: PropTypes.string,\n    to: toType.isRequired\n  };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n  resolveToLocation,\n  normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n  forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n  return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A <Link> wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n  (\n    {\n      \"aria-current\": ariaCurrent = \"page\",\n      activeClassName = \"active\", // TODO: deprecate\n      activeStyle, // TODO: deprecate\n      className: classNameProp,\n      exact,\n      isActive: isActiveProp,\n      location: locationProp,\n      sensitive,\n      strict,\n      style: styleProp,\n      to,\n      innerRef, // TODO: deprecate\n      ...rest\n    },\n    forwardedRef\n  ) => {\n    return (\n      <RouterContext.Consumer>\n        {context => {\n          invariant(context, \"You should not use <NavLink> outside a <Router>\");\n\n          const currentLocation = locationProp || context.location;\n          const toLocation = normalizeToLocation(\n            resolveToLocation(to, currentLocation),\n            currentLocation\n          );\n          const { pathname: path } = toLocation;\n          // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n          const escapedPath =\n            path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n          const match = escapedPath\n            ? matchPath(currentLocation.pathname, {\n                path: escapedPath,\n                exact,\n                sensitive,\n                strict\n              })\n            : null;\n          const isActive = !!(isActiveProp\n            ? isActiveProp(match, currentLocation)\n            : match);\n\n          let className =\n            typeof classNameProp === \"function\"\n              ? classNameProp(isActive)\n              : classNameProp;\n\n          let style =\n            typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n          if (isActive) {\n            className = joinClassnames(className, activeClassName);\n            style = { ...style, ...activeStyle };\n          }\n\n          const props = {\n            \"aria-current\": (isActive && ariaCurrent) || null,\n            className,\n            style,\n            to: toLocation,\n            ...rest\n          };\n\n          // React 15 compat\n          if (forwardRefShim !== forwardRef) {\n            props.ref = forwardedRef || innerRef;\n          } else {\n            props.innerRef = innerRef;\n          }\n\n          return <Link {...props} />;\n        }}\n      </RouterContext.Consumer>\n    );\n  }\n);\n\nif (__DEV__) {\n  NavLink.displayName = \"NavLink\";\n\n  const ariaCurrentType = PropTypes.oneOf([\n    \"page\",\n    \"step\",\n    \"location\",\n    \"date\",\n    \"time\",\n    \"true\",\n    \"false\"\n  ]);\n\n  NavLink.propTypes = {\n    ...Link.propTypes,\n    \"aria-current\": ariaCurrentType,\n    activeClassName: PropTypes.string,\n    activeStyle: PropTypes.object,\n    className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n    exact: PropTypes.bool,\n    isActive: PropTypes.func,\n    location: PropTypes.object,\n    sensitive: PropTypes.bool,\n    strict: PropTypes.bool,\n    style: PropTypes.oneOfType([PropTypes.object, PropTypes.func])\n  };\n}\n\nexport default NavLink;\n","// MIT License\n// Copyright (c) 2019-present StringEpsilon <StringEpsilon@gmail.com>\n// Copyright (c) 2017-2019 James Kyle <me@thejameskyle.com>\n// https://github.com/StringEpsilon/mini-create-react-context\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nconst MAX_SIGNED_31_BIT_INT = 1073741823;\n\nconst commonjsGlobal =\n  typeof globalThis !== \"undefined\" // 'global proper'\n    ? // eslint-disable-next-line no-undef\n      globalThis\n    : typeof window !== \"undefined\"\n    ? window // Browser\n    : typeof global !== \"undefined\"\n    ? global // node.js\n    : {};\n\nfunction getUniqueId() {\n  let key = \"__global_unique_id__\";\n  return (commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1);\n}\n\n// Inlined Object.is polyfill.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction objectIs(x, y) {\n  if (x === y) {\n    return x !== 0 || 1 / x === 1 / y;\n  } else {\n    // eslint-disable-next-line no-self-compare\n    return x !== x && y !== y;\n  }\n}\n\nfunction createEventEmitter(value) {\n  let handlers = [];\n  return {\n    on(handler) {\n      handlers.push(handler);\n    },\n\n    off(handler) {\n      handlers = handlers.filter(h => h !== handler);\n    },\n\n    get() {\n      return value;\n    },\n\n    set(newValue, changedBits) {\n      value = newValue;\n      handlers.forEach(handler => handler(value, changedBits));\n    }\n  };\n}\n\nfunction onlyChild(children) {\n  return Array.isArray(children) ? children[0] : children;\n}\n\nexport default function createReactContext(defaultValue, calculateChangedBits) {\n  const contextProp = \"__create-react-context-\" + getUniqueId() + \"__\";\n\n  class Provider extends React.Component {\n    emitter = createEventEmitter(this.props.value);\n\n    static childContextTypes = {\n      [contextProp]: PropTypes.object.isRequired\n    };\n\n    getChildContext() {\n      return {\n        [contextProp]: this.emitter\n      };\n    }\n\n    componentWillReceiveProps(nextProps) {\n      if (this.props.value !== nextProps.value) {\n        let oldValue = this.props.value;\n        let newValue = nextProps.value;\n        let changedBits;\n\n        if (objectIs(oldValue, newValue)) {\n          changedBits = 0; // No change\n        } else {\n          changedBits =\n            typeof calculateChangedBits === \"function\"\n              ? calculateChangedBits(oldValue, newValue)\n              : MAX_SIGNED_31_BIT_INT;\n          if (process.env.NODE_ENV !== \"production\") {\n            warning(\n              (changedBits & MAX_SIGNED_31_BIT_INT) === changedBits,\n              \"calculateChangedBits: Expected the return value to be a \" +\n                \"31-bit integer. Instead received: \" +\n                changedBits\n            );\n          }\n\n          changedBits |= 0;\n\n          if (changedBits !== 0) {\n            this.emitter.set(nextProps.value, changedBits);\n          }\n        }\n      }\n    }\n\n    render() {\n      return this.props.children;\n    }\n  }\n\n  class Consumer extends React.Component {\n    static contextTypes = {\n      [contextProp]: PropTypes.object\n    };\n\n    observedBits;\n\n    state = {\n      value: this.getValue()\n    };\n\n    componentWillReceiveProps(nextProps) {\n      let { observedBits } = nextProps;\n      this.observedBits =\n        observedBits === undefined || observedBits === null\n          ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n          : observedBits;\n    }\n\n    componentDidMount() {\n      if (this.context[contextProp]) {\n        this.context[contextProp].on(this.onUpdate);\n      }\n      let { observedBits } = this.props;\n      this.observedBits =\n        observedBits === undefined || observedBits === null\n          ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n          : observedBits;\n    }\n\n    componentWillUnmount() {\n      if (this.context[contextProp]) {\n        this.context[contextProp].off(this.onUpdate);\n      }\n    }\n\n    getValue() {\n      if (this.context[contextProp]) {\n        return this.context[contextProp].get();\n      } else {\n        return defaultValue;\n      }\n    }\n\n    onUpdate = (newValue, changedBits) => {\n      const observedBits = this.observedBits | 0;\n      if ((observedBits & changedBits) !== 0) {\n        this.setState({ value: this.getValue() });\n      }\n    };\n\n    render() {\n      return onlyChild(this.props.children)(this.state.value);\n    }\n  }\n\n  return {\n    Provider,\n    Consumer\n  };\n}\n","// MIT License\n// Copyright (c) 2019-present StringEpsilon <StringEpsilon@gmail.com>\n// Copyright (c) 2017-2019 James Kyle <me@thejameskyle.com>\n// https://github.com/StringEpsilon/mini-create-react-context\nimport React from \"react\";\nimport createReactContext from \"./miniCreateReactContext\";\n\nexport default React.createContext || createReactContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"./createContext\";\n\nconst createNamedContext = name => {\n  const context = createContext();\n  context.displayName = name;\n\n  return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNamedContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","import createNamedContext from \"./createNamedContext\";\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n  static computeRootMatch(pathname) {\n    return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n  }\n\n  constructor(props) {\n    super(props);\n\n    this.state = {\n      location: props.history.location\n    };\n\n    // This is a bit of a hack. We have to start listening for location\n    // changes here in the constructor in case there are any <Redirect>s\n    // on the initial render. If there are, they will replace/push when\n    // they mount and since cDM fires in children before parents, we may\n    // get a new location before the <Router> is mounted.\n    this._isMounted = false;\n    this._pendingLocation = null;\n\n    if (!props.staticContext) {\n      this.unlisten = props.history.listen(location => {\n        this._pendingLocation = location;\n      });\n    }\n  }\n\n  componentDidMount() {\n    this._isMounted = true;\n\n    if (this.unlisten) {\n      // Any pre-mount location changes have been captured at\n      // this point, so unregister the listener.\n      this.unlisten();\n    }\n    if (!this.props.staticContext) {\n      this.unlisten = this.props.history.listen(location => {\n        if (this._isMounted) {\n          this.setState({ location });\n        }\n      });\n    }\n    if (this._pendingLocation) {\n      this.setState({ location: this._pendingLocation });\n    }\n  }\n\n  componentWillUnmount() {\n    if (this.unlisten) {\n      this.unlisten();\n      this._isMounted = false;\n      this._pendingLocation = null;\n    }\n  }\n\n  render() {\n    return (\n      <RouterContext.Provider\n        value={{\n          history: this.props.history,\n          location: this.state.location,\n          match: Router.computeRootMatch(this.state.location.pathname),\n          staticContext: this.props.staticContext\n        }}\n      >\n        <HistoryContext.Provider\n          children={this.props.children || null}\n          value={this.props.history}\n        />\n      </RouterContext.Provider>\n    );\n  }\n}\n\nif (__DEV__) {\n  Router.propTypes = {\n    children: PropTypes.node,\n    history: PropTypes.object.isRequired,\n    staticContext: PropTypes.object\n  };\n\n  Router.prototype.componentDidUpdate = function(prevProps) {\n    warning(\n      prevProps.history === this.props.history,\n      \"You cannot change <Router history>\"\n    );\n  };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a <Router> that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n  history = createHistory(this.props);\n\n  render() {\n    return <Router history={this.history} children={this.props.children} />;\n  }\n}\n\nif (__DEV__) {\n  MemoryRouter.propTypes = {\n    initialEntries: PropTypes.array,\n    initialIndex: PropTypes.number,\n    getUserConfirmation: PropTypes.func,\n    keyLength: PropTypes.number,\n    children: PropTypes.node\n  };\n\n  MemoryRouter.prototype.componentDidMount = function() {\n    warning(\n      !this.props.history,\n      \"<MemoryRouter> ignores the history prop. To use a custom history, \" +\n        \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n    );\n  };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n  componentDidMount() {\n    if (this.props.onMount) this.props.onMount.call(this, this);\n  }\n\n  componentDidUpdate(prevProps) {\n    if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n  }\n\n  componentWillUnmount() {\n    if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n  }\n\n  render() {\n    return null;\n  }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n  const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n  const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n  if (pathCache[path]) return pathCache[path];\n\n  const keys = [];\n  const regexp = pathToRegexp(path, keys, options);\n  const result = { regexp, keys };\n\n  if (cacheCount < cacheLimit) {\n    pathCache[path] = result;\n    cacheCount++;\n  }\n\n  return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n  if (typeof options === \"string\" || Array.isArray(options)) {\n    options = { path: options };\n  }\n\n  const { path, exact = false, strict = false, sensitive = false } = options;\n\n  const paths = [].concat(path);\n\n  return paths.reduce((matched, path) => {\n    if (!path && path !== \"\") return null;\n    if (matched) return matched;\n\n    const { regexp, keys } = compilePath(path, {\n      end: exact,\n      strict,\n      sensitive\n    });\n    const match = regexp.exec(pathname);\n\n    if (!match) return null;\n\n    const [url, ...values] = match;\n    const isExact = pathname === url;\n\n    if (exact && !isExact) return null;\n\n    return {\n      path, // the path used to match\n      url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n      isExact, // whether or not we matched exactly\n      params: keys.reduce((memo, key, index) => {\n        memo[key.name] = values[index];\n        return memo;\n      }, {})\n    };\n  }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n  return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n  const value = children(props);\n\n  warning(\n    value !== undefined,\n    \"You returned `undefined` from the `children` function of \" +\n      `<Route${path ? ` path=\"${path}\"` : \"\"}>, but you ` +\n      \"should have returned a React element or `null`\"\n  );\n\n  return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n  render() {\n    return (\n      <RouterContext.Consumer>\n        {context => {\n          invariant(context, \"You should not use <Route> outside a <Router>\");\n\n          const location = this.props.location || context.location;\n          const match = this.props.computedMatch\n            ? this.props.computedMatch // <Switch> already computed the match for us\n            : this.props.path\n            ? matchPath(location.pathname, this.props)\n            : context.match;\n\n          const props = { ...context, location, match };\n\n          let { children, component, render } = this.props;\n\n          // Preact uses an empty array as children by\n          // default, so use null if that's the case.\n          if (Array.isArray(children) && isEmptyChildren(children)) {\n            children = null;\n          }\n\n          return (\n            <RouterContext.Provider value={props}>\n              {props.match\n                ? children\n                  ? typeof children === \"function\"\n                    ? __DEV__\n                      ? evalChildrenDev(children, props, this.props.path)\n                      : children(props)\n                    : children\n                  : component\n                  ? React.createElement(component, props)\n                  : render\n                  ? render(props)\n                  : null\n                : typeof children === \"function\"\n                ? __DEV__\n                  ? evalChildrenDev(children, props, this.props.path)\n                  : children(props)\n                : null}\n            </RouterContext.Provider>\n          );\n        }}\n      </RouterContext.Consumer>\n    );\n  }\n}\n\nif (__DEV__) {\n  Route.propTypes = {\n    children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n    component: (props, propName) => {\n      if (props[propName] && !isValidElementType(props[propName])) {\n        return new Error(\n          `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n        );\n      }\n    },\n    exact: PropTypes.bool,\n    location: PropTypes.object,\n    path: PropTypes.oneOfType([\n      PropTypes.string,\n      PropTypes.arrayOf(PropTypes.string)\n    ]),\n    render: PropTypes.func,\n    sensitive: PropTypes.bool,\n    strict: PropTypes.bool\n  };\n\n  Route.prototype.componentDidMount = function() {\n    warning(\n      !(\n        this.props.children &&\n        !isEmptyChildren(this.props.children) &&\n        this.props.component\n      ),\n      \"You should not use <Route component> and <Route children> in the same route; <Route component> will be ignored\"\n    );\n\n    warning(\n      !(\n        this.props.children &&\n        !isEmptyChildren(this.props.children) &&\n        this.props.render\n      ),\n      \"You should not use <Route render> and <Route children> in the same route; <Route render> will be ignored\"\n    );\n\n    warning(\n      !(this.props.component && this.props.render),\n      \"You should not use <Route component> and <Route render> in the same route; <Route render> will be ignored\"\n    );\n  };\n\n  Route.prototype.componentDidUpdate = function(prevProps) {\n    warning(\n      !(this.props.location && !prevProps.location),\n      '<Route> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n    );\n\n    warning(\n      !(!this.props.location && prevProps.location),\n      '<Route> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n    );\n  };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n  return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n  if (!basename) return location;\n\n  return {\n    ...location,\n    pathname: addLeadingSlash(basename) + location.pathname\n  };\n}\n\nfunction stripBasename(basename, location) {\n  if (!basename) return location;\n\n  const base = addLeadingSlash(basename);\n\n  if (location.pathname.indexOf(base) !== 0) return location;\n\n  return {\n    ...location,\n    pathname: location.pathname.substr(base.length)\n  };\n}\n\nfunction createURL(location) {\n  return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n  return () => {\n    invariant(false, \"You cannot %s with <StaticRouter>\", methodName);\n  };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" <Router>, so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n  navigateTo(location, action) {\n    const { basename = \"\", context = {} } = this.props;\n    context.action = action;\n    context.location = addBasename(basename, createLocation(location));\n    context.url = createURL(context.location);\n  }\n\n  handlePush = location => this.navigateTo(location, \"PUSH\");\n  handleReplace = location => this.navigateTo(location, \"REPLACE\");\n  handleListen = () => noop;\n  handleBlock = () => noop;\n\n  render() {\n    const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n    const history = {\n      createHref: path => addLeadingSlash(basename + createURL(path)),\n      action: \"POP\",\n      location: stripBasename(basename, createLocation(location)),\n      push: this.handlePush,\n      replace: this.handleReplace,\n      go: staticHandler(\"go\"),\n      goBack: staticHandler(\"goBack\"),\n      goForward: staticHandler(\"goForward\"),\n      listen: this.handleListen,\n      block: this.handleBlock\n    };\n\n    return <Router {...rest} history={history} staticContext={context} />;\n  }\n}\n\nif (__DEV__) {\n  StaticRouter.propTypes = {\n    basename: PropTypes.string,\n    context: PropTypes.object,\n    location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n  };\n\n  StaticRouter.prototype.componentDidMount = function() {\n    warning(\n      !this.props.history,\n      \"<StaticRouter> ignores the history prop. To use a custom history, \" +\n        \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n    );\n  };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first <Route> that matches.\n */\nclass Switch extends React.Component {\n  render() {\n    return (\n      <RouterContext.Consumer>\n        {context => {\n          invariant(context, \"You should not use <Switch> outside a <Router>\");\n\n          const location = this.props.location || context.location;\n\n          let element, match;\n\n          // We use React.Children.forEach instead of React.Children.toArray().find()\n          // here because toArray adds keys to all child elements and we do not want\n          // to trigger an unmount/remount for two <Route>s that render the same\n          // component at different URLs.\n          React.Children.forEach(this.props.children, child => {\n            if (match == null && React.isValidElement(child)) {\n              element = child;\n\n              const path = child.props.path || child.props.from;\n\n              match = path\n                ? matchPath(location.pathname, { ...child.props, path })\n                : context.match;\n            }\n          });\n\n          return match\n            ? React.cloneElement(element, { location, computedMatch: match })\n            : null;\n        }}\n      </RouterContext.Consumer>\n    );\n  }\n}\n\nif (__DEV__) {\n  Switch.propTypes = {\n    children: PropTypes.node,\n    location: PropTypes.object\n  };\n\n  Switch.prototype.componentDidUpdate = function(prevProps) {\n    warning(\n      !(this.props.location && !prevProps.location),\n      '<Switch> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n    );\n\n    warning(\n      !(!this.props.location && prevProps.location),\n      '<Switch> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n    );\n  };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n  if (__DEV__) {\n    invariant(\n      typeof useContext === \"function\",\n      \"You must use React >= 16.8 in order to use useHistory()\"\n    );\n  }\n\n  return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n  if (__DEV__) {\n    invariant(\n      typeof useContext === \"function\",\n      \"You must use React >= 16.8 in order to use useLocation()\"\n    );\n  }\n\n  return useContext(RouterContext).location;\n}\n\nexport function useParams() {\n  if (__DEV__) {\n    invariant(\n      typeof useContext === \"function\",\n      \"You must use React >= 16.8 in order to use useParams()\"\n    );\n  }\n\n  const match = useContext(RouterContext).match;\n  return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n  if (__DEV__) {\n    invariant(\n      typeof useContext === \"function\",\n      \"You must use React >= 16.8 in order to use useRouteMatch()\"\n    );\n  }\n\n  const location = useLocation();\n  const match = useContext(RouterContext).match;\n  return path ? matchPath(location.pathname, path) : match;\n}\n","module.exports = Array.isArray || function (arr) {\n  return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n  // Match escaped characters that would otherwise appear in future matches.\n  // This allows the user to escape special characters that won't transform.\n  '(\\\\\\\\.)',\n  // Match Express-style parameters and un-named parameters with a prefix\n  // and optional suffixes. Matches appear as:\n  //\n  // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n  // \"/route(\\\\d+)\"  => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n  // \"/*\"            => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n  '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param  {string}  str\n * @param  {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n  var tokens = []\n  var key = 0\n  var index = 0\n  var path = ''\n  var defaultDelimiter = options && options.delimiter || '/'\n  var res\n\n  while ((res = PATH_REGEXP.exec(str)) != null) {\n    var m = res[0]\n    var escaped = res[1]\n    var offset = res.index\n    path += str.slice(index, offset)\n    index = offset + m.length\n\n    // Ignore already escaped sequences.\n    if (escaped) {\n      path += escaped[1]\n      continue\n    }\n\n    var next = str[index]\n    var prefix = res[2]\n    var name = res[3]\n    var capture = res[4]\n    var group = res[5]\n    var modifier = res[6]\n    var asterisk = res[7]\n\n    // Push the current path onto the tokens.\n    if (path) {\n      tokens.push(path)\n      path = ''\n    }\n\n    var partial = prefix != null && next != null && next !== prefix\n    var repeat = modifier === '+' || modifier === '*'\n    var optional = modifier === '?' || modifier === '*'\n    var delimiter = res[2] || defaultDelimiter\n    var pattern = capture || group\n\n    tokens.push({\n      name: name || key++,\n      prefix: prefix || '',\n      delimiter: delimiter,\n      optional: optional,\n      repeat: repeat,\n      partial: partial,\n      asterisk: !!asterisk,\n      pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n    })\n  }\n\n  // Match any characters still remaining.\n  if (index < str.length) {\n    path += str.substr(index)\n  }\n\n  // If the path exists, push it onto the end.\n  if (path) {\n    tokens.push(path)\n  }\n\n  return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param  {string}             str\n * @param  {Object=}            options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n  return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param  {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n  return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n    return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n  })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param  {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n  return encodeURI(str).replace(/[?#]/g, function (c) {\n    return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n  })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n  // Compile all the tokens into regexps.\n  var matches = new Array(tokens.length)\n\n  // Compile all the patterns before compilation.\n  for (var i = 0; i < tokens.length; i++) {\n    if (typeof tokens[i] === 'object') {\n      matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n    }\n  }\n\n  return function (obj, opts) {\n    var path = ''\n    var data = obj || {}\n    var options = opts || {}\n    var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n    for (var i = 0; i < tokens.length; i++) {\n      var token = tokens[i]\n\n      if (typeof token === 'string') {\n        path += token\n\n        continue\n      }\n\n      var value = data[token.name]\n      var segment\n\n      if (value == null) {\n        if (token.optional) {\n          // Prepend partial segment prefixes.\n          if (token.partial) {\n            path += token.prefix\n          }\n\n          continue\n        } else {\n          throw new TypeError('Expected \"' + token.name + '\" to be defined')\n        }\n      }\n\n      if (isarray(value)) {\n        if (!token.repeat) {\n          throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n        }\n\n        if (value.length === 0) {\n          if (token.optional) {\n            continue\n          } else {\n            throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n          }\n        }\n\n        for (var j = 0; j < value.length; j++) {\n          segment = encode(value[j])\n\n          if (!matches[i].test(segment)) {\n            throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n          }\n\n          path += (j === 0 ? token.prefix : token.delimiter) + segment\n        }\n\n        continue\n      }\n\n      segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n      if (!matches[i].test(segment)) {\n        throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n      }\n\n      path += token.prefix + segment\n    }\n\n    return path\n  }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param  {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n  return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param  {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n  return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param  {!RegExp} re\n * @param  {Array}   keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n  re.keys = keys\n  return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param  {Object} options\n * @return {string}\n */\nfunction flags (options) {\n  return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param  {!RegExp} path\n * @param  {!Array}  keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n  // Use a negative lookahead to match only capturing groups.\n  var groups = path.source.match(/\\((?!\\?)/g)\n\n  if (groups) {\n    for (var i = 0; i < groups.length; i++) {\n      keys.push({\n        name: i,\n        prefix: null,\n        delimiter: null,\n        optional: false,\n        repeat: false,\n        partial: false,\n        asterisk: false,\n        pattern: null\n      })\n    }\n  }\n\n  return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param  {!Array}  path\n * @param  {Array}   keys\n * @param  {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n  var parts = []\n\n  for (var i = 0; i < path.length; i++) {\n    parts.push(pathToRegexp(path[i], keys, options).source)\n  }\n\n  var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n  return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param  {string}  path\n * @param  {!Array}  keys\n * @param  {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n  return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param  {!Array}          tokens\n * @param  {(Array|Object)=} keys\n * @param  {Object=}         options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n  if (!isarray(keys)) {\n    options = /** @type {!Object} */ (keys || options)\n    keys = []\n  }\n\n  options = options || {}\n\n  var strict = options.strict\n  var end = options.end !== false\n  var route = ''\n\n  // Iterate over the tokens and create our regexp string.\n  for (var i = 0; i < tokens.length; i++) {\n    var token = tokens[i]\n\n    if (typeof token === 'string') {\n      route += escapeString(token)\n    } else {\n      var prefix = escapeString(token.prefix)\n      var capture = '(?:' + token.pattern + ')'\n\n      keys.push(token)\n\n      if (token.repeat) {\n        capture += '(?:' + prefix + capture + ')*'\n      }\n\n      if (token.optional) {\n        if (!token.partial) {\n          capture = '(?:' + prefix + '(' + capture + '))?'\n        } else {\n          capture = prefix + '(' + capture + ')?'\n        }\n      } else {\n        capture = prefix + '(' + capture + ')'\n      }\n\n      route += capture\n    }\n  }\n\n  var delimiter = escapeString(options.delimiter || '/')\n  var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n  // In non-strict mode we allow a slash at the end of match. If the path to\n  // match already ends with a slash, we remove it for consistency. The slash\n  // is valid at the end of a path match, not in the middle. This is important\n  // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n  if (!strict) {\n    route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n  }\n\n  if (end) {\n    route += '$'\n  } else {\n    // In non-ending mode, we need the capturing groups to match as much as\n    // possible by using a positive lookahead to the end or next path segment.\n    route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n  }\n\n  return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param  {(string|RegExp|Array)} path\n * @param  {(Array|Object)=}       keys\n * @param  {Object=}               options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n  if (!isarray(keys)) {\n    options = /** @type {!Object} */ (keys || options)\n    keys = []\n  }\n\n  options = options || {}\n\n  if (path instanceof RegExp) {\n    return regexpToRegexp(path, /** @type {!Array} */ (keys))\n  }\n\n  if (isarray(path)) {\n    return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n  }\n\n  return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};exports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;\nexports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=function(){throw Error(\"act(...) is not supported in production builds of React.\");};\nexports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};exports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};\nexports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};exports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};\nexports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.2.0\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react.production.min.js');\n} else {\n  module.exports = require('./cjs/react.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n  module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0<c;){var d=c-1>>>1,e=a[d];if(0<g(e,b))a[d]=b,a[c]=e,c=d;else break a}}function h(a){return 0===a.length?null:a[0]}function k(a){if(0===a.length)return null;var b=a[0],c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length,w=e>>>1;d<w;){var m=2*(d+1)-1,C=a[m],n=m+1,x=a[n];if(0>g(C,c))n<e&&0>g(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(n<e&&0>g(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Q<P?!1:!0}function R(){if(null!==O){var a=exports.unstable_now();Q=a;var b=!0;try{b=O(!0,a)}finally{b?S():(N=!1,O=null)}}else N=!1}var S;if(\"function\"===typeof F)S=function(){F(R)};else if(\"undefined\"!==typeof MessageChannel){var T=new MessageChannel,U=T.port2;T.port1.onmessage=R;S=function(){U.postMessage(null)}}else S=function(){D(R,0)};function I(a){O=a;N||(N=!0,S())}function K(a,b){L=D(function(){a(exports.unstable_now())},b)}\nexports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){A||z||(A=!0,I(J))};\nexports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):P=0<a?Math.floor(1E3/a):5};exports.unstable_getCurrentPriorityLevel=function(){return y};exports.unstable_getFirstCallbackNode=function(){return h(r)};exports.unstable_next=function(a){switch(y){case 1:case 2:case 3:var b=3;break;default:b=y}var c=y;y=b;try{return a()}finally{y=c}};exports.unstable_pauseExecution=function(){};\nexports.unstable_requestPaint=function(){};exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=y;y=a;try{return b()}finally{y=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:u++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n  module.exports = require('./cjs/scheduler.development.js');\n}\n","export default function _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n  return arr2;\n}","export default function _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}","export default function _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n  return self;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n  try {\n    var info = gen[key](arg);\n    var value = info.value;\n  } catch (error) {\n    reject(error);\n    return;\n  }\n  if (info.done) {\n    resolve(value);\n  } else {\n    Promise.resolve(value).then(_next, _throw);\n  }\n}\nexport default function _asyncToGenerator(fn) {\n  return function () {\n    var self = this,\n      args = arguments;\n    return new Promise(function (resolve, reject) {\n      var gen = fn.apply(self, args);\n      function _next(value) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n      }\n      function _throw(err) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n      }\n      _next(undefined);\n    });\n  };\n}","export default function _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}","function _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  Object.defineProperty(Constructor, \"prototype\", {\n    writable: false\n  });\n  return Constructor;\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n  var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n  if (!it) {\n    if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n      if (it) o = it;\n      var i = 0;\n      var F = function F() {};\n      return {\n        s: F,\n        n: function n() {\n          if (i >= o.length) return {\n            done: true\n          };\n          return {\n            done: false,\n            value: o[i++]\n          };\n        },\n        e: function e(_e) {\n          throw _e;\n        },\n        f: F\n      };\n    }\n    throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n  }\n  var normalCompletion = true,\n    didErr = false,\n    err;\n  return {\n    s: function s() {\n      it = it.call(o);\n    },\n    n: function n() {\n      var step = it.next();\n      normalCompletion = step.done;\n      return step;\n    },\n    e: function e(_e2) {\n      didErr = true;\n      err = _e2;\n    },\n    f: function f() {\n      try {\n        if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n      } finally {\n        if (didErr) throw err;\n      }\n    }\n  };\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n  var hasNativeReflectConstruct = isNativeReflectConstruct();\n  return function _createSuperInternal() {\n    var Super = getPrototypeOf(Derived),\n      result;\n    if (hasNativeReflectConstruct) {\n      var NewTarget = getPrototypeOf(this).constructor;\n      result = Reflect.construct(Super, arguments, NewTarget);\n    } else {\n      result = Super.apply(this, arguments);\n    }\n    return possibleConstructorReturn(this, result);\n  };\n}","export default function _isNativeReflectConstruct() {\n  if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n  if (Reflect.construct.sham) return false;\n  if (typeof Proxy === \"function\") return true;\n  try {\n    Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n    return true;\n  } catch (e) {\n    return false;\n  }\n}","export default 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  return obj;\n}","export default function _extends() {\n  _extends = Object.assign ? Object.assign.bind() : function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n    return target;\n  };\n  return _extends.apply(this, arguments);\n}","export default function _getPrototypeOf(o) {\n  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function\");\n  }\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  Object.defineProperty(subClass, \"prototype\", {\n    writable: false\n  });\n  if (superClass) setPrototypeOf(subClass, superClass);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n  subClass.prototype = Object.create(superClass.prototype);\n  subClass.prototype.constructor = subClass;\n  setPrototypeOf(subClass, superClass);\n}","export default function _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(object, enumerableOnly) {\n  var keys = Object.keys(object);\n  if (Object.getOwnPropertySymbols) {\n    var symbols = Object.getOwnPropertySymbols(object);\n    enumerableOnly && (symbols = symbols.filter(function (sym) {\n      return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n    })), keys.push.apply(keys, symbols);\n  }\n  return keys;\n}\nexport default function _objectSpread2(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = null != arguments[i] ? arguments[i] : {};\n    i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n      defineProperty(target, key, source[key]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n      Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n    });\n  }\n  return target;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n  var target = objectWithoutPropertiesLoose(source, excluded);\n  var key, i;\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n  return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\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  return target;\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n  if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n    return call;\n  } else if (call !== void 0) {\n    throw new TypeError(\"Derived constructors may only return object or undefined\");\n  }\n  return assertThisInitialized(self);\n}","import _typeof from \"./typeof.js\";\nexport default function _regeneratorRuntime() {\n  \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n  _regeneratorRuntime = function _regeneratorRuntime() {\n    return exports;\n  };\n  var exports = {},\n    Op = Object.prototype,\n    hasOwn = Op.hasOwnProperty,\n    defineProperty = Object.defineProperty || function (obj, key, desc) {\n      obj[key] = desc.value;\n    },\n    $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n    iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n    asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n    toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n  function define(obj, key, value) {\n    return Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: !0,\n      configurable: !0,\n      writable: !0\n    }), obj[key];\n  }\n  try {\n    define({}, \"\");\n  } catch (err) {\n    define = function define(obj, key, value) {\n      return obj[key] = value;\n    };\n  }\n  function wrap(innerFn, outerFn, self, tryLocsList) {\n    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n      generator = Object.create(protoGenerator.prototype),\n      context = new Context(tryLocsList || []);\n    return defineProperty(generator, \"_invoke\", {\n      value: makeInvokeMethod(innerFn, self, context)\n    }), generator;\n  }\n  function tryCatch(fn, obj, arg) {\n    try {\n      return {\n        type: \"normal\",\n        arg: fn.call(obj, arg)\n      };\n    } catch (err) {\n      return {\n        type: \"throw\",\n        arg: err\n      };\n    }\n  }\n  exports.wrap = wrap;\n  var ContinueSentinel = {};\n  function Generator() {}\n  function GeneratorFunction() {}\n  function GeneratorFunctionPrototype() {}\n  var IteratorPrototype = {};\n  define(IteratorPrototype, iteratorSymbol, function () {\n    return this;\n  });\n  var getProto = Object.getPrototypeOf,\n    NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n  NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n  var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n  function defineIteratorMethods(prototype) {\n    [\"next\", \"throw\", \"return\"].forEach(function (method) {\n      define(prototype, method, function (arg) {\n        return this._invoke(method, arg);\n      });\n    });\n  }\n  function AsyncIterator(generator, PromiseImpl) {\n    function invoke(method, arg, resolve, reject) {\n      var record = tryCatch(generator[method], generator, arg);\n      if (\"throw\" !== record.type) {\n        var result = record.arg,\n          value = result.value;\n        return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n          invoke(\"next\", value, resolve, reject);\n        }, function (err) {\n          invoke(\"throw\", err, resolve, reject);\n        }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n          result.value = unwrapped, resolve(result);\n        }, function (error) {\n          return invoke(\"throw\", error, resolve, reject);\n        });\n      }\n      reject(record.arg);\n    }\n    var previousPromise;\n    defineProperty(this, \"_invoke\", {\n      value: function value(method, arg) {\n        function callInvokeWithMethodAndArg() {\n          return new PromiseImpl(function (resolve, reject) {\n            invoke(method, arg, resolve, reject);\n          });\n        }\n        return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n      }\n    });\n  }\n  function makeInvokeMethod(innerFn, self, context) {\n    var state = \"suspendedStart\";\n    return function (method, arg) {\n      if (\"executing\" === state) throw new Error(\"Generator is already running\");\n      if (\"completed\" === state) {\n        if (\"throw\" === method) throw arg;\n        return doneResult();\n      }\n      for (context.method = method, context.arg = arg;;) {\n        var delegate = context.delegate;\n        if (delegate) {\n          var delegateResult = maybeInvokeDelegate(delegate, context);\n          if (delegateResult) {\n            if (delegateResult === ContinueSentinel) continue;\n            return delegateResult;\n          }\n        }\n        if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n          if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n          context.dispatchException(context.arg);\n        } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n        state = \"executing\";\n        var record = tryCatch(innerFn, self, context);\n        if (\"normal\" === record.type) {\n          if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n          return {\n            value: record.arg,\n            done: context.done\n          };\n        }\n        \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n      }\n    };\n  }\n  function maybeInvokeDelegate(delegate, context) {\n    var method = delegate.iterator[context.method];\n    if (undefined === method) {\n      if (context.delegate = null, \"throw\" === context.method) {\n        if (delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method)) return ContinueSentinel;\n        context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n      }\n      return ContinueSentinel;\n    }\n    var record = tryCatch(method, delegate.iterator, context.arg);\n    if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n    var info = record.arg;\n    return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n  }\n  function pushTryEntry(locs) {\n    var entry = {\n      tryLoc: locs[0]\n    };\n    1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n  }\n  function resetTryEntry(entry) {\n    var record = entry.completion || {};\n    record.type = \"normal\", delete record.arg, entry.completion = record;\n  }\n  function Context(tryLocsList) {\n    this.tryEntries = [{\n      tryLoc: \"root\"\n    }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n  }\n  function values(iterable) {\n    if (iterable) {\n      var iteratorMethod = iterable[iteratorSymbol];\n      if (iteratorMethod) return iteratorMethod.call(iterable);\n      if (\"function\" == typeof iterable.next) return iterable;\n      if (!isNaN(iterable.length)) {\n        var i = -1,\n          next = function next() {\n            for (; ++i < iterable.length;) {\n              if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n            }\n            return next.value = undefined, next.done = !0, next;\n          };\n        return next.next = next;\n      }\n    }\n    return {\n      next: doneResult\n    };\n  }\n  function doneResult() {\n    return {\n      value: undefined,\n      done: !0\n    };\n  }\n  return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n    value: GeneratorFunctionPrototype,\n    configurable: !0\n  }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n    value: GeneratorFunction,\n    configurable: !0\n  }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n    var ctor = \"function\" == typeof genFun && genFun.constructor;\n    return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n  }, exports.mark = function (genFun) {\n    return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n  }, exports.awrap = function (arg) {\n    return {\n      __await: arg\n    };\n  }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n    return this;\n  }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n    void 0 === PromiseImpl && (PromiseImpl = Promise);\n    var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n    return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n      return result.done ? result.value : iter.next();\n    });\n  }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n    return this;\n  }), define(Gp, \"toString\", function () {\n    return \"[object Generator]\";\n  }), exports.keys = function (val) {\n    var object = Object(val),\n      keys = [];\n    for (var key in object) {\n      keys.push(key);\n    }\n    return keys.reverse(), function next() {\n      for (; keys.length;) {\n        var key = keys.pop();\n        if (key in object) return next.value = key, next.done = !1, next;\n      }\n      return next.done = !0, next;\n    };\n  }, exports.values = values, Context.prototype = {\n    constructor: Context,\n    reset: function reset(skipTempReset) {\n      if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {\n        \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n      }\n    },\n    stop: function stop() {\n      this.done = !0;\n      var rootRecord = this.tryEntries[0].completion;\n      if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n      return this.rval;\n    },\n    dispatchException: function dispatchException(exception) {\n      if (this.done) throw exception;\n      var context = this;\n      function handle(loc, caught) {\n        return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n      }\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i],\n          record = entry.completion;\n        if (\"root\" === entry.tryLoc) return handle(\"end\");\n        if (entry.tryLoc <= this.prev) {\n          var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n            hasFinally = hasOwn.call(entry, \"finallyLoc\");\n          if (hasCatch && hasFinally) {\n            if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n            if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n          } else if (hasCatch) {\n            if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n          } else {\n            if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n            if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n          }\n        }\n      }\n    },\n    abrupt: function abrupt(type, arg) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n          var finallyEntry = entry;\n          break;\n        }\n      }\n      finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n      var record = finallyEntry ? finallyEntry.completion : {};\n      return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n    },\n    complete: function complete(record, afterLoc) {\n      if (\"throw\" === record.type) throw record.arg;\n      return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n    },\n    finish: function finish(finallyLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n      }\n    },\n    \"catch\": function _catch(tryLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc === tryLoc) {\n          var record = entry.completion;\n          if (\"throw\" === record.type) {\n            var thrown = record.arg;\n            resetTryEntry(entry);\n          }\n          return thrown;\n        }\n      }\n      throw new Error(\"illegal catch attempt\");\n    },\n    delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n      return this.delegate = {\n        iterator: values(iterable),\n        resultName: resultName,\n        nextLoc: nextLoc\n      }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n    }\n  }, exports;\n}","export default function _setPrototypeOf(o, p) {\n  _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n  return _setPrototypeOf(o, p);\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n  return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n  var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n  if (_i == null) return;\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n  var _s, _e;\n  try {\n    for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n  return _arr;\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n  return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n  return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n    return typeof obj;\n  } : function (obj) {\n    return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n  }, _typeof(obj);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n    if (condition) {\n        return;\n    }\n    if (isProduction) {\n        throw new Error(prefix);\n    }\n    var provided = typeof message === 'function' ? message() : message;\n    var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n    throw new Error(value);\n}\n\nexport { invariant as default };\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + {\"10\":\"444e5798\",\"69\":\"2681b122\",\"79\":\"1b41b3a9\",\"104\":\"4ce8502c\",\"202\":\"dcdf0b0e\",\"214\":\"a5111833\",\"236\":\"65e9edf0\",\"278\":\"35d43166\",\"293\":\"e88fcc66\",\"353\":\"6cf5e368\",\"402\":\"a3a5ced6\",\"501\":\"fb248928\",\"515\":\"b7f0a74c\",\"517\":\"de49db26\",\"575\":\"70ef1b15\",\"658\":\"3fdaec19\",\"726\":\"e2e7830f\",\"777\":\"aedb90dd\",\"789\":\"abdef8a3\",\"861\":\"6d7f1304\",\"872\":\"a1ed1346\",\"878\":\"5cef0d69\",\"908\":\"cef3af0c\",\"942\":\"bc838ced\",\"966\":\"9ecba8f0\"}[chunkId] + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/css/\" + chunkId + \".\" + {\"10\":\"c3f23f5c\",\"69\":\"434b3e99\",\"79\":\"0f7befde\",\"104\":\"1fcd6f76\",\"202\":\"1c99d40d\",\"214\":\"5227c161\",\"236\":\"baedeba3\",\"293\":\"ed945c9a\",\"353\":\"665f8a03\",\"402\":\"2e4e42d0\",\"501\":\"506f0e05\",\"515\":\"fcefac6e\",\"575\":\"f4c21278\",\"777\":\"5c84f0a2\",\"789\":\"fcefac6e\",\"861\":\"7fb2a035\",\"872\":\"16eaccb0\",\"878\":\"d1751754\",\"908\":\"11e67146\",\"942\":\"29ed0f86\",\"966\":\"51b8b827\"}[chunkId] + \".chunk.css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"home-page-ts:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t};\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","var createStylesheet = function(chunkId, fullhref, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tdocument.head.appendChild(linkTag);\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"10\":1,\"69\":1,\"79\":1,\"104\":1,\"202\":1,\"214\":1,\"236\":1,\"293\":1,\"353\":1,\"402\":1,\"501\":1,\"515\":1,\"575\":1,\"777\":1,\"789\":1,\"861\":1,\"872\":1,\"878\":1,\"908\":1,\"942\":1,\"966\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkhome_page_ts\"] = self[\"webpackChunkhome_page_ts\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","import _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _toArray from '@babel/runtime/helpers/esm/toArray';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar consoleLogger = {\n  type: 'logger',\n  log: function log(args) {\n    this.output('log', args);\n  },\n  warn: function warn(args) {\n    this.output('warn', args);\n  },\n  error: function error(args) {\n    this.output('error', args);\n  },\n  output: function output(type, args) {\n    if (console && console[type]) console[type].apply(console, args);\n  }\n};\n\nvar Logger = function () {\n  function Logger(concreteLogger) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    _classCallCheck(this, Logger);\n\n    this.init(concreteLogger, options);\n  }\n\n  _createClass(Logger, [{\n    key: \"init\",\n    value: function init(concreteLogger) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      this.prefix = options.prefix || 'i18next:';\n      this.logger = concreteLogger || consoleLogger;\n      this.options = options;\n      this.debug = options.debug;\n    }\n  }, {\n    key: \"setDebug\",\n    value: function setDebug(bool) {\n      this.debug = bool;\n    }\n  }, {\n    key: \"log\",\n    value: function log() {\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n\n      return this.forward(args, 'log', '', true);\n    }\n  }, {\n    key: \"warn\",\n    value: function warn() {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n\n      return this.forward(args, 'warn', '', true);\n    }\n  }, {\n    key: \"error\",\n    value: function error() {\n      for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n        args[_key3] = arguments[_key3];\n      }\n\n      return this.forward(args, 'error', '');\n    }\n  }, {\n    key: \"deprecate\",\n    value: function deprecate() {\n      for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n        args[_key4] = arguments[_key4];\n      }\n\n      return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n    }\n  }, {\n    key: \"forward\",\n    value: function forward(args, lvl, prefix, debugOnly) {\n      if (debugOnly && !this.debug) return null;\n      if (typeof args[0] === 'string') args[0] = \"\".concat(prefix).concat(this.prefix, \" \").concat(args[0]);\n      return this.logger[lvl](args);\n    }\n  }, {\n    key: \"create\",\n    value: function create(moduleName) {\n      return new Logger(this.logger, _objectSpread(_objectSpread({}, {\n        prefix: \"\".concat(this.prefix, \":\").concat(moduleName, \":\")\n      }), this.options));\n    }\n  }, {\n    key: \"clone\",\n    value: function clone(options) {\n      options = options || this.options;\n      options.prefix = options.prefix || this.prefix;\n      return new Logger(this.logger, options);\n    }\n  }]);\n\n  return Logger;\n}();\n\nvar baseLogger = new Logger();\n\nvar EventEmitter = function () {\n  function EventEmitter() {\n    _classCallCheck(this, EventEmitter);\n\n    this.observers = {};\n  }\n\n  _createClass(EventEmitter, [{\n    key: \"on\",\n    value: function on(events, listener) {\n      var _this = this;\n\n      events.split(' ').forEach(function (event) {\n        _this.observers[event] = _this.observers[event] || [];\n\n        _this.observers[event].push(listener);\n      });\n      return this;\n    }\n  }, {\n    key: \"off\",\n    value: function off(event, listener) {\n      if (!this.observers[event]) return;\n\n      if (!listener) {\n        delete this.observers[event];\n        return;\n      }\n\n      this.observers[event] = this.observers[event].filter(function (l) {\n        return l !== listener;\n      });\n    }\n  }, {\n    key: \"emit\",\n    value: function emit(event) {\n      for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n\n      if (this.observers[event]) {\n        var cloned = [].concat(this.observers[event]);\n        cloned.forEach(function (observer) {\n          observer.apply(void 0, args);\n        });\n      }\n\n      if (this.observers['*']) {\n        var _cloned = [].concat(this.observers['*']);\n\n        _cloned.forEach(function (observer) {\n          observer.apply(observer, [event].concat(args));\n        });\n      }\n    }\n  }]);\n\n  return EventEmitter;\n}();\n\nfunction defer() {\n  var res;\n  var rej;\n  var promise = new Promise(function (resolve, reject) {\n    res = resolve;\n    rej = reject;\n  });\n  promise.resolve = res;\n  promise.reject = rej;\n  return promise;\n}\nfunction makeString(object) {\n  if (object == null) return '';\n  return '' + object;\n}\nfunction copy(a, s, t) {\n  a.forEach(function (m) {\n    if (s[m]) t[m] = s[m];\n  });\n}\n\nfunction getLastOfPath(object, path, Empty) {\n  function cleanKey(key) {\n    return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n  }\n\n  function canNotTraverseDeeper() {\n    return !object || typeof object === 'string';\n  }\n\n  var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n\n  while (stack.length > 1) {\n    if (canNotTraverseDeeper()) return {};\n    var key = cleanKey(stack.shift());\n    if (!object[key] && Empty) object[key] = new Empty();\n\n    if (Object.prototype.hasOwnProperty.call(object, key)) {\n      object = object[key];\n    } else {\n      object = {};\n    }\n  }\n\n  if (canNotTraverseDeeper()) return {};\n  return {\n    obj: object,\n    k: cleanKey(stack.shift())\n  };\n}\n\nfunction setPath(object, path, newValue) {\n  var _getLastOfPath = getLastOfPath(object, path, Object),\n      obj = _getLastOfPath.obj,\n      k = _getLastOfPath.k;\n\n  obj[k] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n  var _getLastOfPath2 = getLastOfPath(object, path, Object),\n      obj = _getLastOfPath2.obj,\n      k = _getLastOfPath2.k;\n\n  obj[k] = obj[k] || [];\n  if (concat) obj[k] = obj[k].concat(newValue);\n  if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n  var _getLastOfPath3 = getLastOfPath(object, path),\n      obj = _getLastOfPath3.obj,\n      k = _getLastOfPath3.k;\n\n  if (!obj) return undefined;\n  return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n  var value = getPath(data, key);\n\n  if (value !== undefined) {\n    return value;\n  }\n\n  return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n  for (var prop in source) {\n    if (prop !== '__proto__' && prop !== 'constructor') {\n      if (prop in target) {\n        if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n          if (overwrite) target[prop] = source[prop];\n        } else {\n          deepExtend(target[prop], source[prop], overwrite);\n        }\n      } else {\n        target[prop] = source[prop];\n      }\n    }\n  }\n\n  return target;\n}\nfunction regexEscape(str) {\n  return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n  '&': '&amp;',\n  '<': '&lt;',\n  '>': '&gt;',\n  '\"': '&quot;',\n  \"'\": '&#39;',\n  '/': '&#x2F;'\n};\nfunction escape(data) {\n  if (typeof data === 'string') {\n    return data.replace(/[&<>\"'\\/]/g, function (s) {\n      return _entityMap[s];\n    });\n  }\n\n  return data;\n}\nvar isIE10 = typeof window !== 'undefined' && window.navigator && typeof window.navigator.userAgentData === 'undefined' && window.navigator.userAgent && window.navigator.userAgent.indexOf('MSIE') > -1;\nvar chars = [' ', ',', '?', '!', ';'];\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n  nsSeparator = nsSeparator || '';\n  keySeparator = keySeparator || '';\n  var possibleChars = chars.filter(function (c) {\n    return nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0;\n  });\n  if (possibleChars.length === 0) return true;\n  var r = new RegExp(\"(\".concat(possibleChars.map(function (c) {\n    return c === '?' ? '\\\\?' : c;\n  }).join('|'), \")\"));\n  var matched = !r.test(key);\n\n  if (!matched) {\n    var ki = key.indexOf(keySeparator);\n\n    if (ki > 0 && !r.test(key.substring(0, ki))) {\n      matched = true;\n    }\n  }\n\n  return matched;\n}\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction deepFind(obj, path) {\n  var keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n  if (!obj) return undefined;\n  if (obj[path]) return obj[path];\n  var paths = path.split(keySeparator);\n  var current = obj;\n\n  for (var i = 0; i < paths.length; ++i) {\n    if (!current) return undefined;\n\n    if (typeof current[paths[i]] === 'string' && i + 1 < paths.length) {\n      return undefined;\n    }\n\n    if (current[paths[i]] === undefined) {\n      var j = 2;\n      var p = paths.slice(i, i + j).join(keySeparator);\n      var mix = current[p];\n\n      while (mix === undefined && paths.length > i + j) {\n        j++;\n        p = paths.slice(i, i + j).join(keySeparator);\n        mix = current[p];\n      }\n\n      if (mix === undefined) return undefined;\n      if (mix === null) return null;\n\n      if (path.endsWith(p)) {\n        if (typeof mix === 'string') return mix;\n        if (p && typeof mix[p] === 'string') return mix[p];\n      }\n\n      var joinedPath = paths.slice(i + j).join(keySeparator);\n      if (joinedPath) return deepFind(mix, joinedPath, keySeparator);\n      return undefined;\n    }\n\n    current = current[paths[i]];\n  }\n\n  return current;\n}\n\nvar ResourceStore = function (_EventEmitter) {\n  _inherits(ResourceStore, _EventEmitter);\n\n  var _super = _createSuper(ResourceStore);\n\n  function ResourceStore(data) {\n    var _this;\n\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n      ns: ['translation'],\n      defaultNS: 'translation'\n    };\n\n    _classCallCheck(this, ResourceStore);\n\n    _this = _super.call(this);\n\n    if (isIE10) {\n      EventEmitter.call(_assertThisInitialized(_this));\n    }\n\n    _this.data = data || {};\n    _this.options = options;\n\n    if (_this.options.keySeparator === undefined) {\n      _this.options.keySeparator = '.';\n    }\n\n    if (_this.options.ignoreJSONStructure === undefined) {\n      _this.options.ignoreJSONStructure = true;\n    }\n\n    return _this;\n  }\n\n  _createClass(ResourceStore, [{\n    key: \"addNamespaces\",\n    value: function addNamespaces(ns) {\n      if (this.options.ns.indexOf(ns) < 0) {\n        this.options.ns.push(ns);\n      }\n    }\n  }, {\n    key: \"removeNamespaces\",\n    value: function removeNamespaces(ns) {\n      var index = this.options.ns.indexOf(ns);\n\n      if (index > -1) {\n        this.options.ns.splice(index, 1);\n      }\n    }\n  }, {\n    key: \"getResource\",\n    value: function getResource(lng, ns, key) {\n      var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n      var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n      var ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n      var path = [lng, ns];\n      if (key && typeof key !== 'string') path = path.concat(key);\n      if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n      if (lng.indexOf('.') > -1) {\n        path = lng.split('.');\n      }\n\n      var result = getPath(this.data, path);\n      if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n      return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n    }\n  }, {\n    key: \"addResource\",\n    value: function addResource(lng, ns, key, value) {\n      var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n        silent: false\n      };\n      var keySeparator = this.options.keySeparator;\n      if (keySeparator === undefined) keySeparator = '.';\n      var path = [lng, ns];\n      if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n      if (lng.indexOf('.') > -1) {\n        path = lng.split('.');\n        value = ns;\n        ns = path[1];\n      }\n\n      this.addNamespaces(ns);\n      setPath(this.data, path, value);\n      if (!options.silent) this.emit('added', lng, ns, key, value);\n    }\n  }, {\n    key: \"addResources\",\n    value: function addResources(lng, ns, resources) {\n      var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n        silent: false\n      };\n\n      for (var m in resources) {\n        if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n          silent: true\n        });\n      }\n\n      if (!options.silent) this.emit('added', lng, ns, resources);\n    }\n  }, {\n    key: \"addResourceBundle\",\n    value: function addResourceBundle(lng, ns, resources, deep, overwrite) {\n      var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n        silent: false\n      };\n      var path = [lng, ns];\n\n      if (lng.indexOf('.') > -1) {\n        path = lng.split('.');\n        deep = resources;\n        resources = ns;\n        ns = path[1];\n      }\n\n      this.addNamespaces(ns);\n      var pack = getPath(this.data, path) || {};\n\n      if (deep) {\n        deepExtend(pack, resources, overwrite);\n      } else {\n        pack = _objectSpread$1(_objectSpread$1({}, pack), resources);\n      }\n\n      setPath(this.data, path, pack);\n      if (!options.silent) this.emit('added', lng, ns, resources);\n    }\n  }, {\n    key: \"removeResourceBundle\",\n    value: function removeResourceBundle(lng, ns) {\n      if (this.hasResourceBundle(lng, ns)) {\n        delete this.data[lng][ns];\n      }\n\n      this.removeNamespaces(ns);\n      this.emit('removed', lng, ns);\n    }\n  }, {\n    key: \"hasResourceBundle\",\n    value: function hasResourceBundle(lng, ns) {\n      return this.getResource(lng, ns) !== undefined;\n    }\n  }, {\n    key: \"getResourceBundle\",\n    value: function getResourceBundle(lng, ns) {\n      if (!ns) ns = this.options.defaultNS;\n      if (this.options.compatibilityAPI === 'v1') return _objectSpread$1(_objectSpread$1({}, {}), this.getResource(lng, ns));\n      return this.getResource(lng, ns);\n    }\n  }, {\n    key: \"getDataByLanguage\",\n    value: function getDataByLanguage(lng) {\n      return this.data[lng];\n    }\n  }, {\n    key: \"hasLanguageSomeTranslations\",\n    value: function hasLanguageSomeTranslations(lng) {\n      var data = this.getDataByLanguage(lng);\n      var n = data && Object.keys(data) || [];\n      return !!n.find(function (v) {\n        return data[v] && Object.keys(data[v]).length > 0;\n      });\n    }\n  }, {\n    key: \"toJSON\",\n    value: function toJSON() {\n      return this.data;\n    }\n  }]);\n\n  return ResourceStore;\n}(EventEmitter);\n\nvar postProcessor = {\n  processors: {},\n  addPostProcessor: function addPostProcessor(module) {\n    this.processors[module.name] = module;\n  },\n  handle: function handle(processors, value, key, options, translator) {\n    var _this = this;\n\n    processors.forEach(function (processor) {\n      if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);\n    });\n    return value;\n  }\n};\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar checkedLoadedFor = {};\n\nvar Translator = function (_EventEmitter) {\n  _inherits(Translator, _EventEmitter);\n\n  var _super = _createSuper$1(Translator);\n\n  function Translator(services) {\n    var _this;\n\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    _classCallCheck(this, Translator);\n\n    _this = _super.call(this);\n\n    if (isIE10) {\n      EventEmitter.call(_assertThisInitialized(_this));\n    }\n\n    copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized(_this));\n    _this.options = options;\n\n    if (_this.options.keySeparator === undefined) {\n      _this.options.keySeparator = '.';\n    }\n\n    _this.logger = baseLogger.create('translator');\n    return _this;\n  }\n\n  _createClass(Translator, [{\n    key: \"changeLanguage\",\n    value: function changeLanguage(lng) {\n      if (lng) this.language = lng;\n    }\n  }, {\n    key: \"exists\",\n    value: function exists(key) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n        interpolation: {}\n      };\n\n      if (key === undefined || key === null) {\n        return false;\n      }\n\n      var resolved = this.resolve(key, options);\n      return resolved && resolved.res !== undefined;\n    }\n  }, {\n    key: \"extractFromKey\",\n    value: function extractFromKey(key, options) {\n      var nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n      if (nsSeparator === undefined) nsSeparator = ':';\n      var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n      var namespaces = options.ns || this.options.defaultNS || [];\n      var wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n      var seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n\n      if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n        var m = key.match(this.interpolator.nestingRegexp);\n\n        if (m && m.length > 0) {\n          return {\n            key: key,\n            namespaces: namespaces\n          };\n        }\n\n        var parts = key.split(nsSeparator);\n        if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n        key = parts.join(keySeparator);\n      }\n\n      if (typeof namespaces === 'string') namespaces = [namespaces];\n      return {\n        key: key,\n        namespaces: namespaces\n      };\n    }\n  }, {\n    key: \"translate\",\n    value: function translate(keys, options, lastKey) {\n      var _this2 = this;\n\n      if (_typeof(options) !== 'object' && this.options.overloadTranslationOptionHandler) {\n        options = this.options.overloadTranslationOptionHandler(arguments);\n      }\n\n      if (!options) options = {};\n      if (keys === undefined || keys === null) return '';\n      if (!Array.isArray(keys)) keys = [String(keys)];\n      var returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n      var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n\n      var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),\n          key = _this$extractFromKey.key,\n          namespaces = _this$extractFromKey.namespaces;\n\n      var namespace = namespaces[namespaces.length - 1];\n      var lng = options.lng || this.language;\n      var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n\n      if (lng && lng.toLowerCase() === 'cimode') {\n        if (appendNamespaceToCIMode) {\n          var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n\n          if (returnDetails) {\n            resolved.res = \"\".concat(namespace).concat(nsSeparator).concat(key);\n            return resolved;\n          }\n\n          return \"\".concat(namespace).concat(nsSeparator).concat(key);\n        }\n\n        if (returnDetails) {\n          resolved.res = key;\n          return resolved;\n        }\n\n        return key;\n      }\n\n      var resolved = this.resolve(keys, options);\n      var res = resolved && resolved.res;\n      var resUsedKey = resolved && resolved.usedKey || key;\n      var resExactUsedKey = resolved && resolved.exactUsedKey || key;\n      var resType = Object.prototype.toString.apply(res);\n      var noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n      var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n      var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n      var handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n\n      if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n        if (!options.returnObjects && !this.options.returnObjects) {\n          if (!this.options.returnedObjectHandler) {\n            this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n          }\n\n          var r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, _objectSpread$2(_objectSpread$2({}, options), {}, {\n            ns: namespaces\n          })) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n\n          if (returnDetails) {\n            resolved.res = r;\n            return resolved;\n          }\n\n          return r;\n        }\n\n        if (keySeparator) {\n          var resTypeIsArray = resType === '[object Array]';\n          var copy = resTypeIsArray ? [] : {};\n          var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n\n          for (var m in res) {\n            if (Object.prototype.hasOwnProperty.call(res, m)) {\n              var deepKey = \"\".concat(newKeyToUse).concat(keySeparator).concat(m);\n              copy[m] = this.translate(deepKey, _objectSpread$2(_objectSpread$2({}, options), {\n                joinArrays: false,\n                ns: namespaces\n              }));\n              if (copy[m] === deepKey) copy[m] = res[m];\n            }\n          }\n\n          res = copy;\n        }\n      } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n        res = res.join(joinArrays);\n        if (res) res = this.extendTranslation(res, keys, options, lastKey);\n      } else {\n        var usedDefault = false;\n        var usedKey = false;\n        var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n        var hasDefaultValue = Translator.hasDefaultValue(options);\n        var defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n        var defaultValue = options[\"defaultValue\".concat(defaultValueSuffix)] || options.defaultValue;\n\n        if (!this.isValidLookup(res) && hasDefaultValue) {\n          usedDefault = true;\n          res = defaultValue;\n        }\n\n        if (!this.isValidLookup(res)) {\n          usedKey = true;\n          res = key;\n        }\n\n        var missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n        var resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n        var updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n\n        if (usedKey || usedDefault || updateMissing) {\n          this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n\n          if (keySeparator) {\n            var fk = this.resolve(key, _objectSpread$2(_objectSpread$2({}, options), {}, {\n              keySeparator: false\n            }));\n            if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n          }\n\n          var lngs = [];\n          var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n\n          if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n            for (var i = 0; i < fallbackLngs.length; i++) {\n              lngs.push(fallbackLngs[i]);\n            }\n          } else if (this.options.saveMissingTo === 'all') {\n            lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n          } else {\n            lngs.push(options.lng || this.language);\n          }\n\n          var send = function send(l, k, specificDefaultValue) {\n            var defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n\n            if (_this2.options.missingKeyHandler) {\n              _this2.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n            } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n              _this2.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n            }\n\n            _this2.emit('missingKey', l, namespace, k, res);\n          };\n\n          if (this.options.saveMissing) {\n            if (this.options.saveMissingPlurals && needsPluralHandling) {\n              lngs.forEach(function (language) {\n                _this2.pluralResolver.getSuffixes(language, options).forEach(function (suffix) {\n                  send([language], key + suffix, options[\"defaultValue\".concat(suffix)] || defaultValue);\n                });\n              });\n            } else {\n              send(lngs, key, defaultValue);\n            }\n          }\n        }\n\n        res = this.extendTranslation(res, keys, options, resolved, lastKey);\n        if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = \"\".concat(namespace, \":\").concat(key);\n\n        if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n          if (this.options.compatibilityAPI !== 'v1') {\n            res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? \"\".concat(namespace, \":\").concat(key) : key, usedDefault ? res : undefined);\n          } else {\n            res = this.options.parseMissingKeyHandler(res);\n          }\n        }\n      }\n\n      if (returnDetails) {\n        resolved.res = res;\n        return resolved;\n      }\n\n      return res;\n    }\n  }, {\n    key: \"extendTranslation\",\n    value: function extendTranslation(res, key, options, resolved, lastKey) {\n      var _this3 = this;\n\n      if (this.i18nFormat && this.i18nFormat.parse) {\n        res = this.i18nFormat.parse(res, _objectSpread$2(_objectSpread$2({}, this.options.interpolation.defaultVariables), options), resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n          resolved: resolved\n        });\n      } else if (!options.skipInterpolation) {\n        if (options.interpolation) this.interpolator.init(_objectSpread$2(_objectSpread$2({}, options), {\n          interpolation: _objectSpread$2(_objectSpread$2({}, this.options.interpolation), options.interpolation)\n        }));\n        var skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n        var nestBef;\n\n        if (skipOnVariables) {\n          var nb = res.match(this.interpolator.nestingRegexp);\n          nestBef = nb && nb.length;\n        }\n\n        var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n        if (this.options.interpolation.defaultVariables) data = _objectSpread$2(_objectSpread$2({}, this.options.interpolation.defaultVariables), data);\n        res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n\n        if (skipOnVariables) {\n          var na = res.match(this.interpolator.nestingRegexp);\n          var nestAft = na && na.length;\n          if (nestBef < nestAft) options.nest = false;\n        }\n\n        if (options.nest !== false) res = this.interpolator.nest(res, function () {\n          for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n            args[_key] = arguments[_key];\n          }\n\n          if (lastKey && lastKey[0] === args[0] && !options.context) {\n            _this3.logger.warn(\"It seems you are nesting recursively key: \".concat(args[0], \" in key: \").concat(key[0]));\n\n            return null;\n          }\n\n          return _this3.translate.apply(_this3, args.concat([key]));\n        }, options);\n        if (options.interpolation) this.interpolator.reset();\n      }\n\n      var postProcess = options.postProcess || this.options.postProcess;\n      var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n\n      if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n        res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? _objectSpread$2({\n          i18nResolved: resolved\n        }, options) : options, this);\n      }\n\n      return res;\n    }\n  }, {\n    key: \"resolve\",\n    value: function resolve(keys) {\n      var _this4 = this;\n\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var found;\n      var usedKey;\n      var exactUsedKey;\n      var usedLng;\n      var usedNS;\n      if (typeof keys === 'string') keys = [keys];\n      keys.forEach(function (k) {\n        if (_this4.isValidLookup(found)) return;\n\n        var extracted = _this4.extractFromKey(k, options);\n\n        var key = extracted.key;\n        usedKey = key;\n        var namespaces = extracted.namespaces;\n        if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);\n        var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n\n        var needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && _this4.pluralResolver.shouldUseIntlApi();\n\n        var needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n        var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);\n        namespaces.forEach(function (ns) {\n          if (_this4.isValidLookup(found)) return;\n          usedNS = ns;\n\n          if (!checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] && _this4.utils && _this4.utils.hasLoadedNamespace && !_this4.utils.hasLoadedNamespace(usedNS)) {\n            checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] = true;\n\n            _this4.logger.warn(\"key \\\"\".concat(usedKey, \"\\\" for languages \\\"\").concat(codes.join(', '), \"\\\" won't get resolved as namespace \\\"\").concat(usedNS, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n          }\n\n          codes.forEach(function (code) {\n            if (_this4.isValidLookup(found)) return;\n            usedLng = code;\n            var finalKeys = [key];\n\n            if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {\n              _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n            } else {\n              var pluralSuffix;\n              if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count, options);\n              var zeroSuffix = \"\".concat(_this4.options.pluralSeparator, \"zero\");\n\n              if (needsPluralHandling) {\n                finalKeys.push(key + pluralSuffix);\n\n                if (needsZeroSuffixLookup) {\n                  finalKeys.push(key + zeroSuffix);\n                }\n              }\n\n              if (needsContextHandling) {\n                var contextKey = \"\".concat(key).concat(_this4.options.contextSeparator).concat(options.context);\n                finalKeys.push(contextKey);\n\n                if (needsPluralHandling) {\n                  finalKeys.push(contextKey + pluralSuffix);\n\n                  if (needsZeroSuffixLookup) {\n                    finalKeys.push(contextKey + zeroSuffix);\n                  }\n                }\n              }\n            }\n\n            var possibleKey;\n\n            while (possibleKey = finalKeys.pop()) {\n              if (!_this4.isValidLookup(found)) {\n                exactUsedKey = possibleKey;\n                found = _this4.getResource(code, ns, possibleKey, options);\n              }\n            }\n          });\n        });\n      });\n      return {\n        res: found,\n        usedKey: usedKey,\n        exactUsedKey: exactUsedKey,\n        usedLng: usedLng,\n        usedNS: usedNS\n      };\n    }\n  }, {\n    key: \"isValidLookup\",\n    value: function isValidLookup(res) {\n      return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n    }\n  }, {\n    key: \"getResource\",\n    value: function getResource(code, ns, key) {\n      var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n      if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n      return this.resourceStore.getResource(code, ns, key, options);\n    }\n  }], [{\n    key: \"hasDefaultValue\",\n    value: function hasDefaultValue(options) {\n      var prefix = 'defaultValue';\n\n      for (var option in options) {\n        if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n          return true;\n        }\n      }\n\n      return false;\n    }\n  }]);\n\n  return Translator;\n}(EventEmitter);\n\nfunction capitalize(string) {\n  return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar LanguageUtil = function () {\n  function LanguageUtil(options) {\n    _classCallCheck(this, LanguageUtil);\n\n    this.options = options;\n    this.supportedLngs = this.options.supportedLngs || false;\n    this.logger = baseLogger.create('languageUtils');\n  }\n\n  _createClass(LanguageUtil, [{\n    key: \"getScriptPartFromCode\",\n    value: function getScriptPartFromCode(code) {\n      if (!code || code.indexOf('-') < 0) return null;\n      var p = code.split('-');\n      if (p.length === 2) return null;\n      p.pop();\n      if (p[p.length - 1].toLowerCase() === 'x') return null;\n      return this.formatLanguageCode(p.join('-'));\n    }\n  }, {\n    key: \"getLanguagePartFromCode\",\n    value: function getLanguagePartFromCode(code) {\n      if (!code || code.indexOf('-') < 0) return code;\n      var p = code.split('-');\n      return this.formatLanguageCode(p[0]);\n    }\n  }, {\n    key: \"formatLanguageCode\",\n    value: function formatLanguageCode(code) {\n      if (typeof code === 'string' && code.indexOf('-') > -1) {\n        var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n        var p = code.split('-');\n\n        if (this.options.lowerCaseLng) {\n          p = p.map(function (part) {\n            return part.toLowerCase();\n          });\n        } else if (p.length === 2) {\n          p[0] = p[0].toLowerCase();\n          p[1] = p[1].toUpperCase();\n          if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n        } else if (p.length === 3) {\n          p[0] = p[0].toLowerCase();\n          if (p[1].length === 2) p[1] = p[1].toUpperCase();\n          if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n          if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n          if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n        }\n\n        return p.join('-');\n      }\n\n      return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n    }\n  }, {\n    key: \"isSupportedCode\",\n    value: function isSupportedCode(code) {\n      if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n        code = this.getLanguagePartFromCode(code);\n      }\n\n      return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n    }\n  }, {\n    key: \"getBestMatchFromCodes\",\n    value: function getBestMatchFromCodes(codes) {\n      var _this = this;\n\n      if (!codes) return null;\n      var found;\n      codes.forEach(function (code) {\n        if (found) return;\n\n        var cleanedLng = _this.formatLanguageCode(code);\n\n        if (!_this.options.supportedLngs || _this.isSupportedCode(cleanedLng)) found = cleanedLng;\n      });\n\n      if (!found && this.options.supportedLngs) {\n        codes.forEach(function (code) {\n          if (found) return;\n\n          var lngOnly = _this.getLanguagePartFromCode(code);\n\n          if (_this.isSupportedCode(lngOnly)) return found = lngOnly;\n          found = _this.options.supportedLngs.find(function (supportedLng) {\n            if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n          });\n        });\n      }\n\n      if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n      return found;\n    }\n  }, {\n    key: \"getFallbackCodes\",\n    value: function getFallbackCodes(fallbacks, code) {\n      if (!fallbacks) return [];\n      if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n      if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n      if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n      if (!code) return fallbacks[\"default\"] || [];\n      var found = fallbacks[code];\n      if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n      if (!found) found = fallbacks[this.formatLanguageCode(code)];\n      if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n      if (!found) found = fallbacks[\"default\"];\n      return found || [];\n    }\n  }, {\n    key: \"toResolveHierarchy\",\n    value: function toResolveHierarchy(code, fallbackCode) {\n      var _this2 = this;\n\n      var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n      var codes = [];\n\n      var addCode = function addCode(c) {\n        if (!c) return;\n\n        if (_this2.isSupportedCode(c)) {\n          codes.push(c);\n        } else {\n          _this2.logger.warn(\"rejecting language code not found in supportedLngs: \".concat(c));\n        }\n      };\n\n      if (typeof code === 'string' && code.indexOf('-') > -1) {\n        if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n        if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n        if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n      } else if (typeof code === 'string') {\n        addCode(this.formatLanguageCode(code));\n      }\n\n      fallbackCodes.forEach(function (fc) {\n        if (codes.indexOf(fc) < 0) addCode(_this2.formatLanguageCode(fc));\n      });\n      return codes;\n    }\n  }]);\n\n  return LanguageUtil;\n}();\n\nvar sets = [{\n  lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n  nr: [1, 2],\n  fc: 1\n}, {\n  lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n  nr: [1, 2],\n  fc: 2\n}, {\n  lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n  nr: [1],\n  fc: 3\n}, {\n  lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n  nr: [1, 2, 5],\n  fc: 4\n}, {\n  lngs: ['ar'],\n  nr: [0, 1, 2, 3, 11, 100],\n  fc: 5\n}, {\n  lngs: ['cs', 'sk'],\n  nr: [1, 2, 5],\n  fc: 6\n}, {\n  lngs: ['csb', 'pl'],\n  nr: [1, 2, 5],\n  fc: 7\n}, {\n  lngs: ['cy'],\n  nr: [1, 2, 3, 8],\n  fc: 8\n}, {\n  lngs: ['fr'],\n  nr: [1, 2],\n  fc: 9\n}, {\n  lngs: ['ga'],\n  nr: [1, 2, 3, 7, 11],\n  fc: 10\n}, {\n  lngs: ['gd'],\n  nr: [1, 2, 3, 20],\n  fc: 11\n}, {\n  lngs: ['is'],\n  nr: [1, 2],\n  fc: 12\n}, {\n  lngs: ['jv'],\n  nr: [0, 1],\n  fc: 13\n}, {\n  lngs: ['kw'],\n  nr: [1, 2, 3, 4],\n  fc: 14\n}, {\n  lngs: ['lt'],\n  nr: [1, 2, 10],\n  fc: 15\n}, {\n  lngs: ['lv'],\n  nr: [1, 2, 0],\n  fc: 16\n}, {\n  lngs: ['mk'],\n  nr: [1, 2],\n  fc: 17\n}, {\n  lngs: ['mnk'],\n  nr: [0, 1, 2],\n  fc: 18\n}, {\n  lngs: ['mt'],\n  nr: [1, 2, 11, 20],\n  fc: 19\n}, {\n  lngs: ['or'],\n  nr: [2, 1],\n  fc: 2\n}, {\n  lngs: ['ro'],\n  nr: [1, 2, 20],\n  fc: 20\n}, {\n  lngs: ['sl'],\n  nr: [5, 1, 2, 3],\n  fc: 21\n}, {\n  lngs: ['he', 'iw'],\n  nr: [1, 2, 20, 21],\n  fc: 22\n}];\nvar _rulesPluralsTypes = {\n  1: function _(n) {\n    return Number(n > 1);\n  },\n  2: function _(n) {\n    return Number(n != 1);\n  },\n  3: function _(n) {\n    return 0;\n  },\n  4: function _(n) {\n    return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n  },\n  5: function _(n) {\n    return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n  },\n  6: function _(n) {\n    return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n  },\n  7: function _(n) {\n    return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n  },\n  8: function _(n) {\n    return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n  },\n  9: function _(n) {\n    return Number(n >= 2);\n  },\n  10: function _(n) {\n    return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n  },\n  11: function _(n) {\n    return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n  },\n  12: function _(n) {\n    return Number(n % 10 != 1 || n % 100 == 11);\n  },\n  13: function _(n) {\n    return Number(n !== 0);\n  },\n  14: function _(n) {\n    return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n  },\n  15: function _(n) {\n    return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n  },\n  16: function _(n) {\n    return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n  },\n  17: function _(n) {\n    return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n  },\n  18: function _(n) {\n    return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n  },\n  19: function _(n) {\n    return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n  },\n  20: function _(n) {\n    return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n  },\n  21: function _(n) {\n    return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n  },\n  22: function _(n) {\n    return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n  }\n};\nvar deprecatedJsonVersions = ['v1', 'v2', 'v3'];\nvar suffixesOrder = {\n  zero: 0,\n  one: 1,\n  two: 2,\n  few: 3,\n  many: 4,\n  other: 5\n};\n\nfunction createRules() {\n  var rules = {};\n  sets.forEach(function (set) {\n    set.lngs.forEach(function (l) {\n      rules[l] = {\n        numbers: set.nr,\n        plurals: _rulesPluralsTypes[set.fc]\n      };\n    });\n  });\n  return rules;\n}\n\nvar PluralResolver = function () {\n  function PluralResolver(languageUtils) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    _classCallCheck(this, PluralResolver);\n\n    this.languageUtils = languageUtils;\n    this.options = options;\n    this.logger = baseLogger.create('pluralResolver');\n\n    if ((!this.options.compatibilityJSON || this.options.compatibilityJSON === 'v4') && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n      this.options.compatibilityJSON = 'v3';\n      this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n    }\n\n    this.rules = createRules();\n  }\n\n  _createClass(PluralResolver, [{\n    key: \"addRule\",\n    value: function addRule(lng, obj) {\n      this.rules[lng] = obj;\n    }\n  }, {\n    key: \"getRule\",\n    value: function getRule(code) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n      if (this.shouldUseIntlApi()) {\n        try {\n          return new Intl.PluralRules(code, {\n            type: options.ordinal ? 'ordinal' : 'cardinal'\n          });\n        } catch (_unused) {\n          return;\n        }\n      }\n\n      return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n    }\n  }, {\n    key: \"needsPlural\",\n    value: function needsPlural(code) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var rule = this.getRule(code, options);\n\n      if (this.shouldUseIntlApi()) {\n        return rule && rule.resolvedOptions().pluralCategories.length > 1;\n      }\n\n      return rule && rule.numbers.length > 1;\n    }\n  }, {\n    key: \"getPluralFormsOfKey\",\n    value: function getPluralFormsOfKey(code, key) {\n      var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n      return this.getSuffixes(code, options).map(function (suffix) {\n        return \"\".concat(key).concat(suffix);\n      });\n    }\n  }, {\n    key: \"getSuffixes\",\n    value: function getSuffixes(code) {\n      var _this = this;\n\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var rule = this.getRule(code, options);\n\n      if (!rule) {\n        return [];\n      }\n\n      if (this.shouldUseIntlApi()) {\n        return rule.resolvedOptions().pluralCategories.sort(function (pluralCategory1, pluralCategory2) {\n          return suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2];\n        }).map(function (pluralCategory) {\n          return \"\".concat(_this.options.prepend).concat(pluralCategory);\n        });\n      }\n\n      return rule.numbers.map(function (number) {\n        return _this.getSuffix(code, number, options);\n      });\n    }\n  }, {\n    key: \"getSuffix\",\n    value: function getSuffix(code, count) {\n      var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n      var rule = this.getRule(code, options);\n\n      if (rule) {\n        if (this.shouldUseIntlApi()) {\n          return \"\".concat(this.options.prepend).concat(rule.select(count));\n        }\n\n        return this.getSuffixRetroCompatible(rule, count);\n      }\n\n      this.logger.warn(\"no plural rule found for: \".concat(code));\n      return '';\n    }\n  }, {\n    key: \"getSuffixRetroCompatible\",\n    value: function getSuffixRetroCompatible(rule, count) {\n      var _this2 = this;\n\n      var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n      var suffix = rule.numbers[idx];\n\n      if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n        if (suffix === 2) {\n          suffix = 'plural';\n        } else if (suffix === 1) {\n          suffix = '';\n        }\n      }\n\n      var returnSuffix = function returnSuffix() {\n        return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();\n      };\n\n      if (this.options.compatibilityJSON === 'v1') {\n        if (suffix === 1) return '';\n        if (typeof suffix === 'number') return \"_plural_\".concat(suffix.toString());\n        return returnSuffix();\n      } else if (this.options.compatibilityJSON === 'v2') {\n        return returnSuffix();\n      } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n        return returnSuffix();\n      }\n\n      return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n    }\n  }, {\n    key: \"shouldUseIntlApi\",\n    value: function shouldUseIntlApi() {\n      return !deprecatedJsonVersions.includes(this.options.compatibilityJSON);\n    }\n  }]);\n\n  return PluralResolver;\n}();\n\nfunction ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$3(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar Interpolator = function () {\n  function Interpolator() {\n    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n    _classCallCheck(this, Interpolator);\n\n    this.logger = baseLogger.create('interpolator');\n    this.options = options;\n\n    this.format = options.interpolation && options.interpolation.format || function (value) {\n      return value;\n    };\n\n    this.init(options);\n  }\n\n  _createClass(Interpolator, [{\n    key: \"init\",\n    value: function init() {\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      if (!options.interpolation) options.interpolation = {\n        escapeValue: true\n      };\n      var iOpts = options.interpolation;\n      this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n      this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n      this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n      this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n      this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n      this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n      this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n      this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n      this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n      this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n      this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n      this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n      this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n      this.resetRegExp();\n    }\n  }, {\n    key: \"reset\",\n    value: function reset() {\n      if (this.options) this.init(this.options);\n    }\n  }, {\n    key: \"resetRegExp\",\n    value: function resetRegExp() {\n      var regexpStr = \"\".concat(this.prefix, \"(.+?)\").concat(this.suffix);\n      this.regexp = new RegExp(regexpStr, 'g');\n      var regexpUnescapeStr = \"\".concat(this.prefix).concat(this.unescapePrefix, \"(.+?)\").concat(this.unescapeSuffix).concat(this.suffix);\n      this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n      var nestingRegexpStr = \"\".concat(this.nestingPrefix, \"(.+?)\").concat(this.nestingSuffix);\n      this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n    }\n  }, {\n    key: \"interpolate\",\n    value: function interpolate(str, data, lng, options) {\n      var _this = this;\n\n      var match;\n      var value;\n      var replaces;\n      var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n\n      function regexSafe(val) {\n        return val.replace(/\\$/g, '$$$$');\n      }\n\n      var handleFormat = function handleFormat(key) {\n        if (key.indexOf(_this.formatSeparator) < 0) {\n          var path = getPathWithDefaults(data, defaultData, key);\n          return _this.alwaysFormat ? _this.format(path, undefined, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n            interpolationkey: key\n          })) : path;\n        }\n\n        var p = key.split(_this.formatSeparator);\n        var k = p.shift().trim();\n        var f = p.join(_this.formatSeparator).trim();\n        return _this.format(getPathWithDefaults(data, defaultData, k), f, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n          interpolationkey: k\n        }));\n      };\n\n      this.resetRegExp();\n      var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n      var skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n      var todos = [{\n        regex: this.regexpUnescape,\n        safeValue: function safeValue(val) {\n          return regexSafe(val);\n        }\n      }, {\n        regex: this.regexp,\n        safeValue: function safeValue(val) {\n          return _this.escapeValue ? regexSafe(_this.escape(val)) : regexSafe(val);\n        }\n      }];\n      todos.forEach(function (todo) {\n        replaces = 0;\n\n        while (match = todo.regex.exec(str)) {\n          var matchedVar = match[1].trim();\n          value = handleFormat(matchedVar);\n\n          if (value === undefined) {\n            if (typeof missingInterpolationHandler === 'function') {\n              var temp = missingInterpolationHandler(str, match, options);\n              value = typeof temp === 'string' ? temp : '';\n            } else if (options && options.hasOwnProperty(matchedVar)) {\n              value = '';\n            } else if (skipOnVariables) {\n              value = match[0];\n              continue;\n            } else {\n              _this.logger.warn(\"missed to pass in variable \".concat(matchedVar, \" for interpolating \").concat(str));\n\n              value = '';\n            }\n          } else if (typeof value !== 'string' && !_this.useRawValueToEscape) {\n            value = makeString(value);\n          }\n\n          var safeValue = todo.safeValue(value);\n          str = str.replace(match[0], safeValue);\n\n          if (skipOnVariables) {\n            todo.regex.lastIndex += value.length;\n            todo.regex.lastIndex -= match[0].length;\n          } else {\n            todo.regex.lastIndex = 0;\n          }\n\n          replaces++;\n\n          if (replaces >= _this.maxReplaces) {\n            break;\n          }\n        }\n      });\n      return str;\n    }\n  }, {\n    key: \"nest\",\n    value: function nest(str, fc) {\n      var _this2 = this;\n\n      var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n      var match;\n      var value;\n\n      var clonedOptions = _objectSpread$3({}, options);\n\n      clonedOptions.applyPostProcessor = false;\n      delete clonedOptions.defaultValue;\n\n      function handleHasOptions(key, inheritedOptions) {\n        var sep = this.nestingOptionsSeparator;\n        if (key.indexOf(sep) < 0) return key;\n        var c = key.split(new RegExp(\"\".concat(sep, \"[ ]*{\")));\n        var optionsString = \"{\".concat(c[1]);\n        key = c[0];\n        optionsString = this.interpolate(optionsString, clonedOptions);\n        var matchedSingleQuotes = optionsString.match(/'/g);\n        var matchedDoubleQuotes = optionsString.match(/\"/g);\n\n        if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n          optionsString = optionsString.replace(/'/g, '\"');\n        }\n\n        try {\n          clonedOptions = JSON.parse(optionsString);\n          if (inheritedOptions) clonedOptions = _objectSpread$3(_objectSpread$3({}, inheritedOptions), clonedOptions);\n        } catch (e) {\n          this.logger.warn(\"failed parsing options string in nesting for key \".concat(key), e);\n          return \"\".concat(key).concat(sep).concat(optionsString);\n        }\n\n        delete clonedOptions.defaultValue;\n        return key;\n      }\n\n      while (match = this.nestingRegexp.exec(str)) {\n        var formatters = [];\n        var doReduce = false;\n\n        if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n          var r = match[1].split(this.formatSeparator).map(function (elem) {\n            return elem.trim();\n          });\n          match[1] = r.shift();\n          formatters = r;\n          doReduce = true;\n        }\n\n        value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n        if (value && match[0] === str && typeof value !== 'string') return value;\n        if (typeof value !== 'string') value = makeString(value);\n\n        if (!value) {\n          this.logger.warn(\"missed to resolve \".concat(match[1], \" for nesting \").concat(str));\n          value = '';\n        }\n\n        if (doReduce) {\n          value = formatters.reduce(function (v, f) {\n            return _this2.format(v, f, options.lng, _objectSpread$3(_objectSpread$3({}, options), {}, {\n              interpolationkey: match[1].trim()\n            }));\n          }, value.trim());\n        }\n\n        str = str.replace(match[0], value);\n        this.regexp.lastIndex = 0;\n      }\n\n      return str;\n    }\n  }]);\n\n  return Interpolator;\n}();\n\nfunction ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$4(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction parseFormatStr(formatStr) {\n  var formatName = formatStr.toLowerCase().trim();\n  var formatOptions = {};\n\n  if (formatStr.indexOf('(') > -1) {\n    var p = formatStr.split('(');\n    formatName = p[0].toLowerCase().trim();\n    var optStr = p[1].substring(0, p[1].length - 1);\n\n    if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n      if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n    } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n      if (!formatOptions.range) formatOptions.range = optStr.trim();\n    } else {\n      var opts = optStr.split(';');\n      opts.forEach(function (opt) {\n        if (!opt) return;\n\n        var _opt$split = opt.split(':'),\n            _opt$split2 = _toArray(_opt$split),\n            key = _opt$split2[0],\n            rest = _opt$split2.slice(1);\n\n        var val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n        if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val;\n        if (val === 'false') formatOptions[key.trim()] = false;\n        if (val === 'true') formatOptions[key.trim()] = true;\n        if (!isNaN(val)) formatOptions[key.trim()] = parseInt(val, 10);\n      });\n    }\n  }\n\n  return {\n    formatName: formatName,\n    formatOptions: formatOptions\n  };\n}\n\nfunction createCachedFormatter(fn) {\n  var cache = {};\n  return function invokeFormatter(val, lng, options) {\n    var key = lng + JSON.stringify(options);\n    var formatter = cache[key];\n\n    if (!formatter) {\n      formatter = fn(lng, options);\n      cache[key] = formatter;\n    }\n\n    return formatter(val);\n  };\n}\n\nvar Formatter = function () {\n  function Formatter() {\n    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n    _classCallCheck(this, Formatter);\n\n    this.logger = baseLogger.create('formatter');\n    this.options = options;\n    this.formats = {\n      number: createCachedFormatter(function (lng, options) {\n        var formatter = new Intl.NumberFormat(lng, options);\n        return function (val) {\n          return formatter.format(val);\n        };\n      }),\n      currency: createCachedFormatter(function (lng, options) {\n        var formatter = new Intl.NumberFormat(lng, _objectSpread$4(_objectSpread$4({}, options), {}, {\n          style: 'currency'\n        }));\n        return function (val) {\n          return formatter.format(val);\n        };\n      }),\n      datetime: createCachedFormatter(function (lng, options) {\n        var formatter = new Intl.DateTimeFormat(lng, _objectSpread$4({}, options));\n        return function (val) {\n          return formatter.format(val);\n        };\n      }),\n      relativetime: createCachedFormatter(function (lng, options) {\n        var formatter = new Intl.RelativeTimeFormat(lng, _objectSpread$4({}, options));\n        return function (val) {\n          return formatter.format(val, options.range || 'day');\n        };\n      }),\n      list: createCachedFormatter(function (lng, options) {\n        var formatter = new Intl.ListFormat(lng, _objectSpread$4({}, options));\n        return function (val) {\n          return formatter.format(val);\n        };\n      })\n    };\n    this.init(options);\n  }\n\n  _createClass(Formatter, [{\n    key: \"init\",\n    value: function init(services) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n        interpolation: {}\n      };\n      var iOpts = options.interpolation;\n      this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n    }\n  }, {\n    key: \"add\",\n    value: function add(name, fc) {\n      this.formats[name.toLowerCase().trim()] = fc;\n    }\n  }, {\n    key: \"addCached\",\n    value: function addCached(name, fc) {\n      this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n    }\n  }, {\n    key: \"format\",\n    value: function format(value, _format, lng, options) {\n      var _this = this;\n\n      var formats = _format.split(this.formatSeparator);\n\n      var result = formats.reduce(function (mem, f) {\n        var _parseFormatStr = parseFormatStr(f),\n            formatName = _parseFormatStr.formatName,\n            formatOptions = _parseFormatStr.formatOptions;\n\n        if (_this.formats[formatName]) {\n          var formatted = mem;\n\n          try {\n            var valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n            var l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n            formatted = _this.formats[formatName](mem, l, _objectSpread$4(_objectSpread$4(_objectSpread$4({}, formatOptions), options), valOptions));\n          } catch (error) {\n            _this.logger.warn(error);\n          }\n\n          return formatted;\n        } else {\n          _this.logger.warn(\"there was no format function for \".concat(formatName));\n        }\n\n        return mem;\n      }, value);\n      return result;\n    }\n  }]);\n\n  return Formatter;\n}();\n\nfunction ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$5(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$2() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction removePending(q, name) {\n  if (q.pending[name] !== undefined) {\n    delete q.pending[name];\n    q.pendingCount--;\n  }\n}\n\nvar Connector = function (_EventEmitter) {\n  _inherits(Connector, _EventEmitter);\n\n  var _super = _createSuper$2(Connector);\n\n  function Connector(backend, store, services) {\n    var _this;\n\n    var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n    _classCallCheck(this, Connector);\n\n    _this = _super.call(this);\n\n    if (isIE10) {\n      EventEmitter.call(_assertThisInitialized(_this));\n    }\n\n    _this.backend = backend;\n    _this.store = store;\n    _this.services = services;\n    _this.languageUtils = services.languageUtils;\n    _this.options = options;\n    _this.logger = baseLogger.create('backendConnector');\n    _this.waitingReads = [];\n    _this.maxParallelReads = options.maxParallelReads || 10;\n    _this.readingCalls = 0;\n    _this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n    _this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n    _this.state = {};\n    _this.queue = [];\n\n    if (_this.backend && _this.backend.init) {\n      _this.backend.init(services, options.backend, options);\n    }\n\n    return _this;\n  }\n\n  _createClass(Connector, [{\n    key: \"queueLoad\",\n    value: function queueLoad(languages, namespaces, options, callback) {\n      var _this2 = this;\n\n      var toLoad = {};\n      var pending = {};\n      var toLoadLanguages = {};\n      var toLoadNamespaces = {};\n      languages.forEach(function (lng) {\n        var hasAllNamespaces = true;\n        namespaces.forEach(function (ns) {\n          var name = \"\".concat(lng, \"|\").concat(ns);\n\n          if (!options.reload && _this2.store.hasResourceBundle(lng, ns)) {\n            _this2.state[name] = 2;\n          } else if (_this2.state[name] < 0) ; else if (_this2.state[name] === 1) {\n            if (pending[name] === undefined) pending[name] = true;\n          } else {\n            _this2.state[name] = 1;\n            hasAllNamespaces = false;\n            if (pending[name] === undefined) pending[name] = true;\n            if (toLoad[name] === undefined) toLoad[name] = true;\n            if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n          }\n        });\n        if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n      });\n\n      if (Object.keys(toLoad).length || Object.keys(pending).length) {\n        this.queue.push({\n          pending: pending,\n          pendingCount: Object.keys(pending).length,\n          loaded: {},\n          errors: [],\n          callback: callback\n        });\n      }\n\n      return {\n        toLoad: Object.keys(toLoad),\n        pending: Object.keys(pending),\n        toLoadLanguages: Object.keys(toLoadLanguages),\n        toLoadNamespaces: Object.keys(toLoadNamespaces)\n      };\n    }\n  }, {\n    key: \"loaded\",\n    value: function loaded(name, err, data) {\n      var s = name.split('|');\n      var lng = s[0];\n      var ns = s[1];\n      if (err) this.emit('failedLoading', lng, ns, err);\n\n      if (data) {\n        this.store.addResourceBundle(lng, ns, data);\n      }\n\n      this.state[name] = err ? -1 : 2;\n      var loaded = {};\n      this.queue.forEach(function (q) {\n        pushPath(q.loaded, [lng], ns);\n        removePending(q, name);\n        if (err) q.errors.push(err);\n\n        if (q.pendingCount === 0 && !q.done) {\n          Object.keys(q.loaded).forEach(function (l) {\n            if (!loaded[l]) loaded[l] = {};\n            var loadedKeys = q.loaded[l];\n\n            if (loadedKeys.length) {\n              loadedKeys.forEach(function (ns) {\n                if (loaded[l][ns] === undefined) loaded[l][ns] = true;\n              });\n            }\n          });\n          q.done = true;\n\n          if (q.errors.length) {\n            q.callback(q.errors);\n          } else {\n            q.callback();\n          }\n        }\n      });\n      this.emit('loaded', loaded);\n      this.queue = this.queue.filter(function (q) {\n        return !q.done;\n      });\n    }\n  }, {\n    key: \"read\",\n    value: function read(lng, ns, fcName) {\n      var _this3 = this;\n\n      var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n      var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n      var callback = arguments.length > 5 ? arguments[5] : undefined;\n      if (!lng.length) return callback(null, {});\n\n      if (this.readingCalls >= this.maxParallelReads) {\n        this.waitingReads.push({\n          lng: lng,\n          ns: ns,\n          fcName: fcName,\n          tried: tried,\n          wait: wait,\n          callback: callback\n        });\n        return;\n      }\n\n      this.readingCalls++;\n      return this.backend[fcName](lng, ns, function (err, data) {\n        _this3.readingCalls--;\n\n        if (_this3.waitingReads.length > 0) {\n          var next = _this3.waitingReads.shift();\n\n          _this3.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n        }\n\n        if (err && data && tried < _this3.maxRetries) {\n          setTimeout(function () {\n            _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);\n          }, wait);\n          return;\n        }\n\n        callback(err, data);\n      });\n    }\n  }, {\n    key: \"prepareLoading\",\n    value: function prepareLoading(languages, namespaces) {\n      var _this4 = this;\n\n      var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n      var callback = arguments.length > 3 ? arguments[3] : undefined;\n\n      if (!this.backend) {\n        this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n        return callback && callback();\n      }\n\n      if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n      if (typeof namespaces === 'string') namespaces = [namespaces];\n      var toLoad = this.queueLoad(languages, namespaces, options, callback);\n\n      if (!toLoad.toLoad.length) {\n        if (!toLoad.pending.length) callback();\n        return null;\n      }\n\n      toLoad.toLoad.forEach(function (name) {\n        _this4.loadOne(name);\n      });\n    }\n  }, {\n    key: \"load\",\n    value: function load(languages, namespaces, callback) {\n      this.prepareLoading(languages, namespaces, {}, callback);\n    }\n  }, {\n    key: \"reload\",\n    value: function reload(languages, namespaces, callback) {\n      this.prepareLoading(languages, namespaces, {\n        reload: true\n      }, callback);\n    }\n  }, {\n    key: \"loadOne\",\n    value: function loadOne(name) {\n      var _this5 = this;\n\n      var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n      var s = name.split('|');\n      var lng = s[0];\n      var ns = s[1];\n      this.read(lng, ns, 'read', undefined, undefined, function (err, data) {\n        if (err) _this5.logger.warn(\"\".concat(prefix, \"loading namespace \").concat(ns, \" for language \").concat(lng, \" failed\"), err);\n        if (!err && data) _this5.logger.log(\"\".concat(prefix, \"loaded namespace \").concat(ns, \" for language \").concat(lng), data);\n\n        _this5.loaded(name, err, data);\n      });\n    }\n  }, {\n    key: \"saveMissing\",\n    value: function saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n      var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n\n      if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n        this.logger.warn(\"did not save key \\\"\".concat(key, \"\\\" as the namespace \\\"\").concat(namespace, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n        return;\n      }\n\n      if (key === undefined || key === null || key === '') return;\n\n      if (this.backend && this.backend.create) {\n        this.backend.create(languages, namespace, key, fallbackValue, null, _objectSpread$5(_objectSpread$5({}, options), {}, {\n          isUpdate: isUpdate\n        }));\n      }\n\n      if (!languages || !languages[0]) return;\n      this.store.addResource(languages[0], namespace, key, fallbackValue);\n    }\n  }]);\n\n  return Connector;\n}(EventEmitter);\n\nfunction get() {\n  return {\n    debug: false,\n    initImmediate: true,\n    ns: ['translation'],\n    defaultNS: ['translation'],\n    fallbackLng: ['dev'],\n    fallbackNS: false,\n    supportedLngs: false,\n    nonExplicitSupportedLngs: false,\n    load: 'all',\n    preload: false,\n    simplifyPluralSuffix: true,\n    keySeparator: '.',\n    nsSeparator: ':',\n    pluralSeparator: '_',\n    contextSeparator: '_',\n    partialBundledLanguages: false,\n    saveMissing: false,\n    updateMissing: false,\n    saveMissingTo: 'fallback',\n    saveMissingPlurals: true,\n    missingKeyHandler: false,\n    missingInterpolationHandler: false,\n    postProcess: false,\n    postProcessPassResolved: false,\n    returnNull: true,\n    returnEmptyString: true,\n    returnObjects: false,\n    joinArrays: false,\n    returnedObjectHandler: false,\n    parseMissingKeyHandler: false,\n    appendNamespaceToMissingKey: false,\n    appendNamespaceToCIMode: false,\n    overloadTranslationOptionHandler: function handle(args) {\n      var ret = {};\n      if (_typeof(args[1]) === 'object') ret = args[1];\n      if (typeof args[1] === 'string') ret.defaultValue = args[1];\n      if (typeof args[2] === 'string') ret.tDescription = args[2];\n\n      if (_typeof(args[2]) === 'object' || _typeof(args[3]) === 'object') {\n        var options = args[3] || args[2];\n        Object.keys(options).forEach(function (key) {\n          ret[key] = options[key];\n        });\n      }\n\n      return ret;\n    },\n    interpolation: {\n      escapeValue: true,\n      format: function format(value, _format, lng, options) {\n        return value;\n      },\n      prefix: '{{',\n      suffix: '}}',\n      formatSeparator: ',',\n      unescapePrefix: '-',\n      nestingPrefix: '$t(',\n      nestingSuffix: ')',\n      nestingOptionsSeparator: ',',\n      maxReplaces: 1000,\n      skipOnVariables: true\n    }\n  };\n}\nfunction transformOptions(options) {\n  if (typeof options.ns === 'string') options.ns = [options.ns];\n  if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n  if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n\n  if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n    options.supportedLngs = options.supportedLngs.concat(['cimode']);\n  }\n\n  return options;\n}\n\nfunction ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$6(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$3(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$3(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$3() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction noop() {}\n\nfunction bindMemberFunctions(inst) {\n  var mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n  mems.forEach(function (mem) {\n    if (typeof inst[mem] === 'function') {\n      inst[mem] = inst[mem].bind(inst);\n    }\n  });\n}\n\nvar I18n = function (_EventEmitter) {\n  _inherits(I18n, _EventEmitter);\n\n  var _super = _createSuper$3(I18n);\n\n  function I18n() {\n    var _this;\n\n    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n    _classCallCheck(this, I18n);\n\n    _this = _super.call(this);\n\n    if (isIE10) {\n      EventEmitter.call(_assertThisInitialized(_this));\n    }\n\n    _this.options = transformOptions(options);\n    _this.services = {};\n    _this.logger = baseLogger;\n    _this.modules = {\n      external: []\n    };\n    bindMemberFunctions(_assertThisInitialized(_this));\n\n    if (callback && !_this.isInitialized && !options.isClone) {\n      if (!_this.options.initImmediate) {\n        _this.init(options, callback);\n\n        return _possibleConstructorReturn(_this, _assertThisInitialized(_this));\n      }\n\n      setTimeout(function () {\n        _this.init(options, callback);\n      }, 0);\n    }\n\n    return _this;\n  }\n\n  _createClass(I18n, [{\n    key: \"init\",\n    value: function init() {\n      var _this2 = this;\n\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n      if (typeof options === 'function') {\n        callback = options;\n        options = {};\n      }\n\n      if (!options.defaultNS && options.defaultNS !== false && options.ns) {\n        if (typeof options.ns === 'string') {\n          options.defaultNS = options.ns;\n        } else if (options.ns.indexOf('translation') < 0) {\n          options.defaultNS = options.ns[0];\n        }\n      }\n\n      var defOpts = get();\n      this.options = _objectSpread$6(_objectSpread$6(_objectSpread$6({}, defOpts), this.options), transformOptions(options));\n\n      if (this.options.compatibilityAPI !== 'v1') {\n        this.options.interpolation = _objectSpread$6(_objectSpread$6({}, defOpts.interpolation), this.options.interpolation);\n      }\n\n      if (options.keySeparator !== undefined) {\n        this.options.userDefinedKeySeparator = options.keySeparator;\n      }\n\n      if (options.nsSeparator !== undefined) {\n        this.options.userDefinedNsSeparator = options.nsSeparator;\n      }\n\n      function createClassOnDemand(ClassOrObject) {\n        if (!ClassOrObject) return null;\n        if (typeof ClassOrObject === 'function') return new ClassOrObject();\n        return ClassOrObject;\n      }\n\n      if (!this.options.isClone) {\n        if (this.modules.logger) {\n          baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n        } else {\n          baseLogger.init(null, this.options);\n        }\n\n        var formatter;\n\n        if (this.modules.formatter) {\n          formatter = this.modules.formatter;\n        } else if (typeof Intl !== 'undefined') {\n          formatter = Formatter;\n        }\n\n        var lu = new LanguageUtil(this.options);\n        this.store = new ResourceStore(this.options.resources, this.options);\n        var s = this.services;\n        s.logger = baseLogger;\n        s.resourceStore = this.store;\n        s.languageUtils = lu;\n        s.pluralResolver = new PluralResolver(lu, {\n          prepend: this.options.pluralSeparator,\n          compatibilityJSON: this.options.compatibilityJSON,\n          simplifyPluralSuffix: this.options.simplifyPluralSuffix\n        });\n\n        if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n          s.formatter = createClassOnDemand(formatter);\n          s.formatter.init(s, this.options);\n          this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n        }\n\n        s.interpolator = new Interpolator(this.options);\n        s.utils = {\n          hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n        };\n        s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n        s.backendConnector.on('*', function (event) {\n          for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n            args[_key - 1] = arguments[_key];\n          }\n\n          _this2.emit.apply(_this2, [event].concat(args));\n        });\n\n        if (this.modules.languageDetector) {\n          s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n          s.languageDetector.init(s, this.options.detection, this.options);\n        }\n\n        if (this.modules.i18nFormat) {\n          s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n          if (s.i18nFormat.init) s.i18nFormat.init(this);\n        }\n\n        this.translator = new Translator(this.services, this.options);\n        this.translator.on('*', function (event) {\n          for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n            args[_key2 - 1] = arguments[_key2];\n          }\n\n          _this2.emit.apply(_this2, [event].concat(args));\n        });\n        this.modules.external.forEach(function (m) {\n          if (m.init) m.init(_this2);\n        });\n      }\n\n      this.format = this.options.interpolation.format;\n      if (!callback) callback = noop;\n\n      if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n        var codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n        if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n      }\n\n      if (!this.services.languageDetector && !this.options.lng) {\n        this.logger.warn('init: no languageDetector is used and no lng is defined');\n      }\n\n      var storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n      storeApi.forEach(function (fcName) {\n        _this2[fcName] = function () {\n          var _this2$store;\n\n          return (_this2$store = _this2.store)[fcName].apply(_this2$store, arguments);\n        };\n      });\n      var storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n      storeApiChained.forEach(function (fcName) {\n        _this2[fcName] = function () {\n          var _this2$store2;\n\n          (_this2$store2 = _this2.store)[fcName].apply(_this2$store2, arguments);\n\n          return _this2;\n        };\n      });\n      var deferred = defer();\n\n      var load = function load() {\n        var finish = function finish(err, t) {\n          if (_this2.isInitialized && !_this2.initializedStoreOnce) _this2.logger.warn('init: i18next is already initialized. You should call init just once!');\n          _this2.isInitialized = true;\n          if (!_this2.options.isClone) _this2.logger.log('initialized', _this2.options);\n\n          _this2.emit('initialized', _this2.options);\n\n          deferred.resolve(t);\n          callback(err, t);\n        };\n\n        if (_this2.languages && _this2.options.compatibilityAPI !== 'v1' && !_this2.isInitialized) return finish(null, _this2.t.bind(_this2));\n\n        _this2.changeLanguage(_this2.options.lng, finish);\n      };\n\n      if (this.options.resources || !this.options.initImmediate) {\n        load();\n      } else {\n        setTimeout(load, 0);\n      }\n\n      return deferred;\n    }\n  }, {\n    key: \"loadResources\",\n    value: function loadResources(language) {\n      var _this3 = this;\n\n      var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n      var usedCallback = callback;\n      var usedLng = typeof language === 'string' ? language : this.language;\n      if (typeof language === 'function') usedCallback = language;\n\n      if (!this.options.resources || this.options.partialBundledLanguages) {\n        if (usedLng && usedLng.toLowerCase() === 'cimode') return usedCallback();\n        var toLoad = [];\n\n        var append = function append(lng) {\n          if (!lng) return;\n\n          var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);\n\n          lngs.forEach(function (l) {\n            if (toLoad.indexOf(l) < 0) toLoad.push(l);\n          });\n        };\n\n        if (!usedLng) {\n          var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n          fallbacks.forEach(function (l) {\n            return append(l);\n          });\n        } else {\n          append(usedLng);\n        }\n\n        if (this.options.preload) {\n          this.options.preload.forEach(function (l) {\n            return append(l);\n          });\n        }\n\n        this.services.backendConnector.load(toLoad, this.options.ns, function (e) {\n          if (!e && !_this3.resolvedLanguage && _this3.language) _this3.setResolvedLanguage(_this3.language);\n          usedCallback(e);\n        });\n      } else {\n        usedCallback(null);\n      }\n    }\n  }, {\n    key: \"reloadResources\",\n    value: function reloadResources(lngs, ns, callback) {\n      var deferred = defer();\n      if (!lngs) lngs = this.languages;\n      if (!ns) ns = this.options.ns;\n      if (!callback) callback = noop;\n      this.services.backendConnector.reload(lngs, ns, function (err) {\n        deferred.resolve();\n        callback(err);\n      });\n      return deferred;\n    }\n  }, {\n    key: \"use\",\n    value: function use(module) {\n      if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n      if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n\n      if (module.type === 'backend') {\n        this.modules.backend = module;\n      }\n\n      if (module.type === 'logger' || module.log && module.warn && module.error) {\n        this.modules.logger = module;\n      }\n\n      if (module.type === 'languageDetector') {\n        this.modules.languageDetector = module;\n      }\n\n      if (module.type === 'i18nFormat') {\n        this.modules.i18nFormat = module;\n      }\n\n      if (module.type === 'postProcessor') {\n        postProcessor.addPostProcessor(module);\n      }\n\n      if (module.type === 'formatter') {\n        this.modules.formatter = module;\n      }\n\n      if (module.type === '3rdParty') {\n        this.modules.external.push(module);\n      }\n\n      return this;\n    }\n  }, {\n    key: \"setResolvedLanguage\",\n    value: function setResolvedLanguage(l) {\n      if (!l || !this.languages) return;\n      if (['cimode', 'dev'].indexOf(l) > -1) return;\n\n      for (var li = 0; li < this.languages.length; li++) {\n        var lngInLngs = this.languages[li];\n        if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n\n        if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n          this.resolvedLanguage = lngInLngs;\n          break;\n        }\n      }\n    }\n  }, {\n    key: \"changeLanguage\",\n    value: function changeLanguage(lng, callback) {\n      var _this4 = this;\n\n      this.isLanguageChangingTo = lng;\n      var deferred = defer();\n      this.emit('languageChanging', lng);\n\n      var setLngProps = function setLngProps(l) {\n        _this4.language = l;\n        _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n        _this4.resolvedLanguage = undefined;\n\n        _this4.setResolvedLanguage(l);\n      };\n\n      var done = function done(err, l) {\n        if (l) {\n          setLngProps(l);\n\n          _this4.translator.changeLanguage(l);\n\n          _this4.isLanguageChangingTo = undefined;\n\n          _this4.emit('languageChanged', l);\n\n          _this4.logger.log('languageChanged', l);\n        } else {\n          _this4.isLanguageChangingTo = undefined;\n        }\n\n        deferred.resolve(function () {\n          return _this4.t.apply(_this4, arguments);\n        });\n        if (callback) callback(err, function () {\n          return _this4.t.apply(_this4, arguments);\n        });\n      };\n\n      var setLng = function setLng(lngs) {\n        if (!lng && !lngs && _this4.services.languageDetector) lngs = [];\n        var l = typeof lngs === 'string' ? lngs : _this4.services.languageUtils.getBestMatchFromCodes(lngs);\n\n        if (l) {\n          if (!_this4.language) {\n            setLngProps(l);\n          }\n\n          if (!_this4.translator.language) _this4.translator.changeLanguage(l);\n          if (_this4.services.languageDetector) _this4.services.languageDetector.cacheUserLanguage(l);\n        }\n\n        _this4.loadResources(l, function (err) {\n          done(err, l);\n        });\n      };\n\n      if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n        setLng(this.services.languageDetector.detect());\n      } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n        this.services.languageDetector.detect(setLng);\n      } else {\n        setLng(lng);\n      }\n\n      return deferred;\n    }\n  }, {\n    key: \"getFixedT\",\n    value: function getFixedT(lng, ns, keyPrefix) {\n      var _this5 = this;\n\n      var fixedT = function fixedT(key, opts) {\n        var options;\n\n        if (_typeof(opts) !== 'object') {\n          for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n            rest[_key3 - 2] = arguments[_key3];\n          }\n\n          options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n        } else {\n          options = _objectSpread$6({}, opts);\n        }\n\n        options.lng = options.lng || fixedT.lng;\n        options.lngs = options.lngs || fixedT.lngs;\n        options.ns = options.ns || fixedT.ns;\n        options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n        var keySeparator = _this5.options.keySeparator || '.';\n        var resultKey = options.keyPrefix ? \"\".concat(options.keyPrefix).concat(keySeparator).concat(key) : key;\n        return _this5.t(resultKey, options);\n      };\n\n      if (typeof lng === 'string') {\n        fixedT.lng = lng;\n      } else {\n        fixedT.lngs = lng;\n      }\n\n      fixedT.ns = ns;\n      fixedT.keyPrefix = keyPrefix;\n      return fixedT;\n    }\n  }, {\n    key: \"t\",\n    value: function t() {\n      var _this$translator;\n\n      return this.translator && (_this$translator = this.translator).translate.apply(_this$translator, arguments);\n    }\n  }, {\n    key: \"exists\",\n    value: function exists() {\n      var _this$translator2;\n\n      return this.translator && (_this$translator2 = this.translator).exists.apply(_this$translator2, arguments);\n    }\n  }, {\n    key: \"setDefaultNamespace\",\n    value: function setDefaultNamespace(ns) {\n      this.options.defaultNS = ns;\n    }\n  }, {\n    key: \"hasLoadedNamespace\",\n    value: function hasLoadedNamespace(ns) {\n      var _this6 = this;\n\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n      if (!this.isInitialized) {\n        this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n        return false;\n      }\n\n      if (!this.languages || !this.languages.length) {\n        this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n        return false;\n      }\n\n      var lng = this.resolvedLanguage || this.languages[0];\n      var fallbackLng = this.options ? this.options.fallbackLng : false;\n      var lastLng = this.languages[this.languages.length - 1];\n      if (lng.toLowerCase() === 'cimode') return true;\n\n      var loadNotPending = function loadNotPending(l, n) {\n        var loadState = _this6.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n\n        return loadState === -1 || loadState === 2;\n      };\n\n      if (options.precheck) {\n        var preResult = options.precheck(this, loadNotPending);\n        if (preResult !== undefined) return preResult;\n      }\n\n      if (this.hasResourceBundle(lng, ns)) return true;\n      if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n      if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n      return false;\n    }\n  }, {\n    key: \"loadNamespaces\",\n    value: function loadNamespaces(ns, callback) {\n      var _this7 = this;\n\n      var deferred = defer();\n\n      if (!this.options.ns) {\n        callback && callback();\n        return Promise.resolve();\n      }\n\n      if (typeof ns === 'string') ns = [ns];\n      ns.forEach(function (n) {\n        if (_this7.options.ns.indexOf(n) < 0) _this7.options.ns.push(n);\n      });\n      this.loadResources(function (err) {\n        deferred.resolve();\n        if (callback) callback(err);\n      });\n      return deferred;\n    }\n  }, {\n    key: \"loadLanguages\",\n    value: function loadLanguages(lngs, callback) {\n      var deferred = defer();\n      if (typeof lngs === 'string') lngs = [lngs];\n      var preloaded = this.options.preload || [];\n      var newLngs = lngs.filter(function (lng) {\n        return preloaded.indexOf(lng) < 0;\n      });\n\n      if (!newLngs.length) {\n        if (callback) callback();\n        return Promise.resolve();\n      }\n\n      this.options.preload = preloaded.concat(newLngs);\n      this.loadResources(function (err) {\n        deferred.resolve();\n        if (callback) callback(err);\n      });\n      return deferred;\n    }\n  }, {\n    key: \"dir\",\n    value: function dir(lng) {\n      if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n      if (!lng) return 'rtl';\n      var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n      return rtlLngs.indexOf(this.services.languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n    }\n  }, {\n    key: \"cloneInstance\",\n    value: function cloneInstance() {\n      var _this8 = this;\n\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n\n      var mergedOptions = _objectSpread$6(_objectSpread$6(_objectSpread$6({}, this.options), options), {\n        isClone: true\n      });\n\n      var clone = new I18n(mergedOptions);\n\n      if (options.debug !== undefined || options.prefix !== undefined) {\n        clone.logger = clone.logger.clone(options);\n      }\n\n      var membersToCopy = ['store', 'services', 'language'];\n      membersToCopy.forEach(function (m) {\n        clone[m] = _this8[m];\n      });\n      clone.services = _objectSpread$6({}, this.services);\n      clone.services.utils = {\n        hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n      };\n      clone.translator = new Translator(clone.services, clone.options);\n      clone.translator.on('*', function (event) {\n        for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n          args[_key4 - 1] = arguments[_key4];\n        }\n\n        clone.emit.apply(clone, [event].concat(args));\n      });\n      clone.init(mergedOptions, callback);\n      clone.translator.options = clone.options;\n      clone.translator.backendConnector.services.utils = {\n        hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n      };\n      return clone;\n    }\n  }, {\n    key: \"toJSON\",\n    value: function toJSON() {\n      return {\n        options: this.options,\n        store: this.store,\n        language: this.language,\n        languages: this.languages,\n        resolvedLanguage: this.resolvedLanguage\n      };\n    }\n  }]);\n\n  return I18n;\n}(EventEmitter);\n\n_defineProperty(I18n, \"createInstance\", function () {\n  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var callback = arguments.length > 1 ? arguments[1] : undefined;\n  return new I18n(options, callback);\n});\n\nvar instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nvar createInstance = instance.createInstance;\nvar init = instance.init;\nvar loadResources = instance.loadResources;\nvar reloadResources = instance.reloadResources;\nvar use = instance.use;\nvar changeLanguage = instance.changeLanguage;\nvar getFixedT = instance.getFixedT;\nvar t = instance.t;\nvar exists = instance.exists;\nvar setDefaultNamespace = instance.setDefaultNamespace;\nvar hasLoadedNamespace = instance.hasLoadedNamespace;\nvar loadNamespaces = instance.loadNamespaces;\nvar loadLanguages = instance.loadLanguages;\n\nexport default instance;\nexport { changeLanguage, createInstance, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","import en from \"./en.json\";\nimport zh from \"./zh.json\";\nimport my from \"./my.json\";\nimport th from \"./th.json\";\nimport id from \"./id.json\";\n\nconst resources = {\n    en: {\n        translation: en\n    },\n    zh: {\n        translation: zh\n    },\n    my: {\n        translation: my\n    },\n    th: {\n        translation: th\n    },\n    id: {\n        translation: id\n    }\n};\n\nexport default resources;\n","import i18n from \"i18next\";\nimport {initReactI18next} from \"react-i18next\";\nimport resources from \"./locales/resources\";\n\nconst lan = window.localStorage.getItem(\"lan\");\n\ni18n\n    .use(initReactI18next)\n    .init({\n        resources,\n        lng: lan || \"en\",\n        interpolation: {\n            escapeValue: false\n        }\n    });\n\nexport default i18n;\n","// extracted by mini-css-extract-plugin\nexport default {\"home\":\"home_home__6yVBW\",\"start\":\"home_start__wRcij\",\"top\":\"home_top__Uvcgk\",\"big_omi\":\"home_big_omi__sEIk2\",\"button_wrapper\":\"home_button_wrapper__K-ofe\",\"button_loading\":\"home_button_loading__JQ+mI\",\"loading_img\":\"home_loading_img__bPHFi\",\"rotation\":\"home_rotation__z7beU\",\"button_inner\":\"home_button_inner__CSbX2\",\"save1\":\"home_save1__zAF8G\",\"button_one\":\"home_button_one__-O+QC\",\"button_title\":\"home_button_title__kR9Kd\",\"pay_card_wrapper\":\"home_pay_card_wrapper__M+49V\",\"pay_card\":\"home_pay_card__CDebH\",\"center\":\"home_center__X6lxG\",\"content\":\"home_content__LRS2Q\",\"text_wrapper\":\"home_text_wrapper__3pjkt\",\"process_wrapper\":\"home_process_wrapper__ne9J3\",\"cover_div\":\"home_cover_div__jYk2X\",\"modal\":\"home_modal__xWYiq\",\"text1\":\"home_text1__-ix50\",\"text2\":\"home_text2__SSTDK\",\"modal_img\":\"home_modal_img__HMher\",\"text3\":\"home_text3__KLDSZ\",\"text4\":\"home_text4__PpmW2\",\"modal_close\":\"home_modal_close__X9b2k\"};","import React, { FC, useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport styleObj from './home.module.less';\nimport Layout, { LayoutRef } from '../../../components/Layout/Layout';\nimport Footer from '../../../components/Footer/Footer';\nimport Download from '../../../components/Download/Download';\nimport { useChangeOsLanguage } from '../../../hooks';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport { getApi, getSearchParams, postWithoutAuth, sendPoint } from '../../../util/tool';\nimport Img from '../../../components/Img';\nimport { PAY_CARD } from '../../../const';\nimport { useAuth } from '../../../stores/AuthContext';\n\nconst imgArr: Array<string> = [\n  'https://auto.omicdn.com/v1/images/eyJpZCI6IkhXRkJRQkdDQ1pBVjNQTUxBUFk0NkpPRUlMU1BBMiIsInciOjI4ODAsImgiOjE1ODAsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjoxMTg2NTUyNjkwOTg1NTcwODMwMSwiYWIiOjB9?format=originalOFGHLERTH',\n  'https://auto.omicdn.com/v1/images/eyJpZCI6Ik9USUE0V0pRR1E2MzdMQ1JQT05FTjVZN1ZDUVgyWSIsInciOjY1MCwiaCI6MjM0LCJkIjowLCJtdCI6ImltYWdlL2pwZWciLCJkaCI6NDk5MTM5NzE1OTAzNjU4NDI2MSwiYWIiOjB9?format=originalOFGHLERTH',\n  'https://auto.omicdn.com/v1/images/eyJpZCI6IjNSTUNDRVU1Q01INFJGSFBERUpBWlVSNU1PTEJFNyIsInciOjY1MCwiaCI6NTMzLCJkIjowLCJtdCI6ImltYWdlL2pwZWciLCJkaCI6NDk3MjMzMTYyNzQxMDk0ODU0OCwiYWIiOjB9?format=originalOFGHLERTH',\n];\n\nconst vipObj: any = {\n  vip: 0,\n  seeWhoLikedMe: 1,\n  supreme: 2,\n};\n\nconst Home: FC = () => {\n  /* 进入官网首页的时候,将系统语言同步到选择的语言 */\n  const { t, i18n: { changeLanguage } } = useTranslation();\n  const [oSLanguage] = useChangeOsLanguage();\n  useEffect(() => {\n    changeLanguage(oSLanguage).then();\n    window.localStorage.setItem('lan', oSLanguage);\n  }, [oSLanguage]);\n\n  const history = useHistory();\n  const { logged, logout, login } = useAuth();\n\n  const location = useLocation();\n  const { hash } = location;\n  const { location: { search } } = useHistory();\n  const [showModal, setShowModal] = useState(false); // 展示接受礼品的弹窗\n  const [from, setFrom] = useState(''); // 跳转来源(暂时用不到)\n  const [currencyCode, setCurrencyCode] = useState(''); // 货币符号\n  const [loading, setLoading] = useState(false); // 登录加载中\n  const [vipType, setVipType] = useState<Array<number>>([]); // 会员种类 0 1 2\n  const layoutRef = useRef<LayoutRef>(null);\n  const centerDiv = useRef<HTMLDivElement | null>(null);\n  const homeDiv = useRef<HTMLDivElement | null>(null);\n  const processArr = [\n    useRef<HTMLSpanElement | null>(null),\n    useRef<HTMLSpanElement | null>(null),\n    useRef<HTMLSpanElement | null>(null),\n  ];\n  const processUnderArr = [\n    useRef<HTMLSpanElement | null>(null),\n    useRef<HTMLSpanElement | null>(null),\n    useRef<HTMLSpanElement | null>(null),\n  ];\n  const processWrapper = useRef<HTMLDivElement | null>(null);\n  const contentArr = [\n    useRef<HTMLDivElement | null>(null),\n    useRef<HTMLDivElement | null>(null),\n    useRef<HTMLDivElement | null>(null),\n  ];\n  const [showIndex, setShowIndex] = useState<number>(-1);\n  const [start, setStart] = useState<boolean>(false);\n  const [backgroundColor, setBackgroundColor] = useState<string>('');\n  const cardData = [\n    {\n      cardContent: t('home.cardContent1'),\n      cardUser: t('home.cardUser1'),\n    },\n    {\n      cardContent: t('home.cardContent2'),\n      cardUser: t('home.cardUser2'),\n    },\n    {\n      cardContent: t('home.cardContent3'),\n      cardUser: t('home.cardUser3'),\n    },\n  ];\n\n  const initData = async () => {\n    const searchParams = getSearchParams(search);\n    const { token: authToken = '', currencyCode = '', from, canRedeemed, s } = searchParams;\n    if (from === 'iosbanner' && canRedeemed === 'true') {\n      setFrom('iosBanner');\n      setShowModal(true);\n      setTimeout(() => {\n        const params = { event_name: 'omi_phone_website_free_crush_popup.pageview' };\n        if (s === 1) {\n          params.show_from = 'message';\n        }\n        sendPoint(params);\n      }, 10000);\n    }\n    // 如果有URL带来的currencyCode(货币代码),则存入本地\n    if (currencyCode) {\n      localStorage.setItem('currencyCode', currencyCode);\n      setCurrencyCode(currencyCode);\n    }\n    // 如果有URL带来的authToken,则用其换取accessToken\n    if (authToken) { // 如果从App跳转过来\n      try {\n        const res1 = await postWithoutAuth('/web-api/web-jwt-token', { authToken });\n        if (res1?.data?.token) {\n          localStorage.setItem('accessToken', res1.data.token); // 存到本地\n          history.push('/'); // url上的token,用掉后立即干掉\n        }\n      } catch (e) {\n        console.log(e);\n      }\n    } else { // 直接进入官网或干掉token后进入官网,以 localStorage 中的 accessToken 为主\n      await init();\n    }\n  };\n\n  const init = async () => {\n    try {\n      // const res2 = await getApi('/web/membership/privileges');\n      const res2 = await getApi('/web-api/membership/users/me/simple-privileges');\n      if (res2.meta.code === 401000) { // 未登录\n        logout();\n        setLoading(false);\n      } else { // 登录了\n        /* 设置登录状态 */\n        login();\n        setLoading(false);\n        /* 设置会员信息 */\n        if (res2?.data?.simplePrivileges && Array.isArray(res2?.data?.simplePrivileges)) {\n          const resVipType = res2.data.simplePrivileges.map((item: string) => vipObj[item]);\n          setVipType(resVipType);\n        } else {\n          setVipType([]);\n        }\n        /* 获取到会员信息后打点 */\n        sendPoint({\n          event_name: 'omi_phone_website_home_page.pageview',\n          status: 'logged_in',\n        });\n      }\n    } catch (e) {\n      setVipType([]);\n      logout();\n    }\n  };\n\n  useEffect(() => {\n    if (hash) { // 短信链接跳进来的\n      history.push({\n        pathname: '/vip',\n        state: {\n          authToken: hash.substring(1),\n        },\n      });\n    } else {\n      initData();\n    }\n  }, [hash, search]);\n\n  const initDataAnimation = async () => {\n    const searchParams = getSearchParams(search);\n    const { s } = searchParams;\n    const params = {\n      event_name: 'omi_phone_website_home_page.pageview',\n      status: 'un_logged_in',\n    };\n    if (s === '1') {\n      params.show_from = 'message';\n    }\n    sendPoint(params);\n    await startAnimation();\n  };\n\n  useEffect(() => {\n    imgArr.forEach((src) => {\n      const img = new Image();\n      img.src = src;\n    });\n    initDataAnimation();\n  }, []);\n\n  useEffect(() => {\n    const homeDom = homeDiv.current; // 用于绑定滚动事件\n    const logoDom = layoutRef?.current?.logoDom!; // logo(PC、移动)\n    const languageMobileDom = layoutRef?.current?.languageMobileDom!; // 多语下拉框(移动端)\n    const menuLogoDom = layoutRef?.current?.menuLogoDom!; // 导航图标(移动端)\n\n    const handler = () => {\n      const centerDom = centerDiv.current!;\n      if (centerDom) {\n        const { top, bottom } = centerDom.getBoundingClientRect();\n        // 控制渐进反色\n        if (top < 20) {\n          logoDom && (logoDom.style.height = '0'); // logo\n          languageMobileDom && (languageMobileDom.style.height = '0'); // 多语下拉框(移动端)\n          menuLogoDom && (menuLogoDom.style.height = '0'); // 导航图标(移动端)\n        } else if (top > 42) {\n          logoDom && (logoDom.style.height = `${22}px`);\n          languageMobileDom && (languageMobileDom.style.height = `${28}px`);\n          menuLogoDom && (menuLogoDom.style.height = `${20}px`);\n        } else {\n          logoDom && (logoDom.style.height = `${top - 20}px`);\n          languageMobileDom && (languageMobileDom.style.height = `${top - 20}px`);\n          menuLogoDom && (menuLogoDom.style.height = `${top - 20}px`);\n        }\n\n        // 控制头部背景色渐变\n        if (top >= 0 && top <= 56) {\n          setBackgroundColor(`rgba(255,255,255,${(56 - top) / 56})`);\n        } else if (top < 0) {\n          setBackgroundColor('rgb(255,255,255)');\n        } else {\n          setBackgroundColor('');\n        }\n\n        // 控制动画开始\n        if (bottom < 1.4 * window.innerHeight) {\n          setStart(true);\n        }\n      }\n    };\n\n    homeDom && homeDom.addEventListener('scroll', handler); // 绑定滚屏事件\n    let timeout1: any; let\n      timeout2: any;\n    if (showIndex !== -1) {\n      showCenterContent(showIndex);\n      if (showIndex >= 2) {\n        timeout1 = setTimeout(() => {\n          setShowIndex(0);\n        }, 4000);\n      } else {\n        timeout2 = setTimeout(() => {\n          setShowIndex((val) => val + 1);\n        }, 4000);\n      }\n    }\n\n    return () => {\n      homeDom && homeDom.removeEventListener('scroll', handler);\n      clearTimeout(timeout1);\n      clearTimeout(timeout2);\n    };\n  }, [showIndex]);\n\n  useEffect(() => {\n    if (start) {\n            processWrapper.current!.style.display = 'flex';\n            processWrapper.current!.classList.add('animate__fadeInUpBig');\n            setTimeout(() => {\n              setShowIndex(0);\n            }, 1000);\n    }\n  }, [start]);\n\n  const showCenterContent = (targetIndex: number) => {\n    contentArr.forEach((content, index) => {\n      if (index === targetIndex) {\n                content.current!.style.opacity = '1';\n      } else {\n                content.current!.style.opacity = '0';\n      }\n    });\n    processArr.forEach((process, index) => {\n      if (index === targetIndex) {\n                processUnderArr[index].current!.style.backgroundColor = '#212121';\n                process.current!.style.transition = '0s width';\n                process.current!.style.width = '0';\n                setTimeout(() => {\n                    process.current!.style.transition = '3900ms width linear';\n                    process.current!.style.width = '100%';\n                }, 100);\n      } else if (index > targetIndex) {\n                processUnderArr[index].current!.style.backgroundColor = '#212121';\n                process.current!.style.transition = '0s width';\n                process.current!.style.width = '0';\n      } else {\n                process.current!.style.transition = '0s width';\n                process.current!.style.width = '100%';\n                processUnderArr[index].current!.style.backgroundColor = '#16ec9b';\n      }\n    });\n  };\n\n  const setAnimation = (dom: HTMLElement, className: string, delay: number = 0): void => {\n    setTimeout(() => {\n      dom.style.visibility = 'visible';\n      dom.classList.add(className);\n    }, delay);\n  };\n\n  const startAnimation = (): Promise<void> => {\n    return new Promise<void>((resolve) => {\n      setAnimation(layoutRef.current!.headerDiv!, 'animate__fadeInDown');\n      setTimeout(() => {\n        resolve();\n      }, 1100);\n    });\n  };\n\n  const handleAccept = () => {\n    try {\n      postWithoutAuth('/web-api/core/users/me/web-welfare', { id: '4', status: 'accepted' });\n    } catch (e) {\n      console.log(e);\n    }\n    sendPoint({ event_name: 'omi_phone_website_free_crush_popup.click' });\n    linkToVip({ getPrize: true });\n  };\n\n  const linkToVip = (state: object = {}) => {\n    if (vipType.includes(1) || vipType.includes(2)) {\n      history.push({ pathname: '/vip', state: { linkCurrentVip: 2, ...state } });\n    } else {\n      history.push({ pathname: '/vip', state: { linkCurrentVip: 1, ...state } });\n    }\n  };\n\n  const renderButton = () => {\n    if (!logged) { // 如果未登录,展示的是登录按钮\n      return (\n        <div\n          onClick={\n                        () => {\n                          setLoading(true);\n                          window.location.href = 'omi://payauth';\n                          setTimeout(() => {\n                            setLoading(false);\n                          }, 1500);\n                        }\n                    }\n        >\n          <div className={styleObj.button_inner}>\n            {t('h5.OMI_PHONE_WEBSITE_HOME_PAGE_LOGIN')}\n            <div className={styleObj.save1}>\n              {t('h5.OMI_WEBSITE_HOME_PAGE_LOWEST_PRICE')}\n            </div>\n          </div>\n        </div>\n      );\n    } else {\n      return (\n        <div\n          className={styleObj.button_one}\n          onClick={() => linkToVip()}\n        >\n          {t('h5.OMI_PHONE_WEBSITE_HOME_PAGE_CONTINUE')}\n          <div className={styleObj.save1}>\n            {t('h5.OMI_WEBSITE_HOME_PAGE_LOWEST_PRICE')}\n          </div>\n        </div>\n      );\n    }\n  };\n\n  return (\n    <Layout\n      ref={layoutRef}\n      headerStyle={{ backgroundColor, visibility: 'hidden' }}\n      isHome\n    >\n      <div\n        ref={homeDiv}\n        className={styleObj.home}\n        style={{ height: window.innerHeight }}\n      >\n        {/* 第一屏 */}\n        <div className={styleObj.top}>\n          <Img\n            className={styleObj.big_omi}\n            src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IkpBUDRMQVBKWlVLMlVPM0dCUDdLTFVGUjVRSUdaRiIsInciOjI1NCwiaCI6MTEyLCJkIjowLCJtdCI6ImltYWdlL2pwZWciLCJkaCI6MTUzMDA3OTIwNDQ5MDQzMzM3ODYsImFiIjowfQ\"\n          />\n\n          <div className={styleObj.button_wrapper}>\n            {\n                            loading ?\n                              <div className={styleObj.button_loading}>\n                                <img\n                                  className={styleObj.loading_img}\n                                  src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IkVYNVhKWEM2WDY1WU5NRkU1NE9BRE1BWTZMSE5RQSIsInciOjUyLCJoIjo1MiwiZCI6MCwibXQiOiJpbWFnZS9qcGVnIiwiZGgiOjUxODE5NzQ0NTY2Mjg4ODUwNywiYWIiOjB9?format=originalOFGHLERTH\"\n                                  alt=\"\"\n                                />\n                                {t('h5.OMI_PHONE_WEBSITE_HOME_PAGE_LOGINING')}\n                              </div>\n                              :\n                              <div onClick={\n                                    () => {\n                                      sendPoint({\n                                        event_name: 'omi_phone_website_home_page_button.click',\n                                        status: logged ? 'logged_in' : 'un_logged_in',\n                                      });\n                                    }\n                                }\n                              >\n                                {renderButton()}\n                              </div>\n                        }\n            <div className={styleObj.button_title}>\n              {t('home.OMI_PHONE_WEBSITE_HOME_PAGE_PURCHASE_MORE_METHOD')}\n            </div>\n            <div className={styleObj.pay_card_wrapper}>\n              {\n                                logged && Array.isArray(PAY_CARD[(currencyCode || localStorage.getItem('currencyCode')!)]) &&\n                                PAY_CARD[(currencyCode || localStorage.getItem('currencyCode')!)].map((src: any) => (<Img\n                                  className={styleObj.pay_card}\n                                  src={src}\n                                />))\n                            }\n            </div>\n          </div>\n        </div>\n\n        {/* 第二屏 */}\n        <div\n          className={styleObj.center}\n          ref={centerDiv}\n        >\n          <div className={styleObj.content}>\n            <div className={styleObj.text_wrapper}>\n              {\n                                cardData.map(({ cardContent, cardUser }, index) => (\n                                  <div key={index} ref={contentArr[index]}>\n                                    <div>\n                                      <img\n                                        src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IkJYWUtRVzNVSzZNNUlQSjNIVllMNlhONVNYSFRKUCIsInciOjEyOCwiaCI6MTM2LCJkIjowLCJtdCI6ImltYWdlL2pwZWciLCJkaCI6MTM4NDg1NjAyNjU0NjE3NjAsImFiIjowfQ?format=originalOFGHLERTH\"\n                                        alt=\"\"\n                                      />\n                                    </div>\n                                    <div>{cardContent}</div>\n                                    <div>{cardUser}</div>\n                                  </div>\n                                ))\n                            }\n            </div>\n            <div\n              ref={processWrapper}\n              className={`${styleObj.process_wrapper} animate__animated`}\n            >\n              {\n                                Array.from({ length: 3 }).map((_, index) => (\n                                  <div\n                                    key={index}\n                                    onClick={() => setShowIndex(index)}\n                                  >\n                                    <span ref={processUnderArr[index]} />\n                                    <span ref={processArr[index]} />\n                                  </div>\n                                ))\n                            }\n            </div>\n          </div>\n        </div>\n\n        {/* 第三屏 */}\n        <Download />\n        <Footer />\n\n        {/* 弹窗 */}\n        {\n                    showModal &&\n                    <div className={styleObj.cover_div}>\n                      <div className={styleObj.modal}>\n                        <div className={styleObj.text1}>{t('home.OMI_PHONE_WEBSITE_FREE_CRUSH_TITLE')}</div>\n                        <div className={styleObj.text2}>{t('home.OMI_PHONE_WEBSITE_FREE_CRUSH_SUBTITLE')}</div>\n                        <Img\n                          className={styleObj.modal_img}\n                          src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IkZBSE5QNjU3V1FVM0lYN1kyR1JUSFpRSEtCVkY3RCIsInciOjQyNiwiaCI6MzIyLCJkIjowLCJtdCI6ImltYWdlL2pwZWciLCJkaCI6MzA0ODE3NTc1MTM1MTg5OTQyNSwiYWIiOjB9\"\n                        />\n                        <div className={styleObj.text3}>Crush X 3</div>\n                        <div className={styleObj.text4} onClick={handleAccept}>\n                          {t('home.OMI_PHONE_WEBSITE_FREE_CRUSH_BUTTON')}\n                        </div>\n                        <Img\n                          onClick={() => setShowModal(false)}\n                          className={styleObj.modal_close}\n                          src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IlNMRlhLVk40RjJQTldMVExHWjNLUFM1VjNZQ1FRNyIsInciOjQ4LCJoIjo0OCwiZCI6MCwibXQiOiJpbWFnZS9qcGVnIiwiZGgiOjE0NTEwNjAyMjY4MDE0NzYzNzIsImFiIjowfQ\"\n                        />\n                      </div>\n                    </div>\n                }\n      </div>\n    </Layout>\n  );\n};\n\nexport default Home;\n","// extracted by mini-css-extract-plugin\nexport default {\"home\":\"home_home__3mn4H\",\"start\":\"home_start__rZ5Kt\",\"top\":\"home_top__0jRR4\",\"img\":\"home_img__Y6sk5\",\"title_area\":\"home_title_area__I3ygN\",\"button_wrapper\":\"home_button_wrapper__RS1tS\",\"button\":\"home_button__wx0WL\",\"save1\":\"home_save1__B-H7l\",\"save1_text1\":\"home_save1_text1__SYUxT\",\"save1_text2\":\"home_save1_text2__1psvT\",\"button_one\":\"home_button_one__vDX1r\",\"button_title\":\"home_button_title__8dct2\",\"pay_card_wrapper\":\"home_pay_card_wrapper__3dd1q\",\"pay_card\":\"home_pay_card__2532B\",\"center\":\"home_center__Z1TUI\",\"content\":\"home_content__kSfTK\",\"text_wrapper\":\"home_text_wrapper__Byjhf\",\"process_wrapper\":\"home_process_wrapper__yUe2t\",\"modal\":\"home_modal__G-cvd\",\"two_code_wrapper\":\"home_two_code_wrapper__kuAR5\",\"code_img\":\"home_code_img__YggRW\",\"code_title\":\"home_code_title__OQcxn\",\"code_content\":\"home_code_content__gWBC7\",\"close_button\":\"home_close_button__P3xRP\",\"rotation\":\"home_rotation__8rhrE\"};","import React, { FC, useEffect, useRef, useState } from 'react';\nimport QRCode from 'qrcode';\nimport { useTranslation } from 'react-i18next';\nimport styleObj from './home.module.less';\nimport Layout, { LayoutRef } from '../../../components/Layout/Layout';\nimport Footer from '../../../components/Footer/Footer';\nimport Download from '../../../components/Download/Download';\nimport { useChangeOsLanguage } from '../../../hooks';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport { getApi, postWithoutAuth, sendPoint, getSearchParams } from '../../../util/tool';\nimport Img from '../../../components/Img';\nimport { PAY_CARD } from '../../../const';\nimport { useLottie } from 'lottie-react';\nimport startData from './assets/start.json';\nimport { useAuth } from '../../../stores/AuthContext';\n\nconst imgArr: Array<string> = [\n  'https://auto.omicdn.com/v1/images/eyJpZCI6IkhXRkJRQkdDQ1pBVjNQTUxBUFk0NkpPRUlMU1BBMiIsInciOjI4ODAsImgiOjE1ODAsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjoxMTg2NTUyNjkwOTg1NTcwODMwMSwiYWIiOjB9?format=originalOFGHLERTH',\n  'https://auto.omicdn.com/v1/images/eyJpZCI6Ik4yMkJCSFFERkdDRFgyQVhTS1g2WllKT0NWRDVWRSIsInciOjI4ODAsImgiOjE1ODAsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjo2MzE1MzY4MjA2NDQwMzU1MTQ1LCJhYiI6MH0?format=originalOFGHLERTH',\n  'https://auto.omicdn.com/v1/images/eyJpZCI6IlJWQU9PUDNMU0tYQUtTQUxYSlFZVUFWNlhGRFJQVSIsInciOjI4ODAsImgiOjE1ODAsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjoxNTY1Mjk0MTgxNDM0MTk0Njc4NywiYWIiOjB9?format=originalOFGHLERTH',\n  'https://auto.omicdn.com/v1/images/eyJpZCI6IlFOUEkyNkJPNkJUN1JCN0hZUzQ1WUhEQVZQNzZDSSIsInciOjI4ODAsImgiOjE1ODAsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjo1NDIzOTI3ODgwNjQ2NDcwNTQxLCJhYiI6MH0?format=originalOFGHLERTH',\n  'https://auto.omicdn.com/v1/images/eyJpZCI6IkZaNlBHWFlJR0ZWWTNYV0hXR1VVT0I0TU8yM1dNSSIsInciOjI4ODAsImgiOjE1ODAsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjoxMDc2OTY0Mjk1MDczMTA2MjczMywiYWIiOjB9?format=originalOFGHLERTH',\n  'https://auto.omicdn.com/v1/images/eyJpZCI6IlU1VlFNTTJDWDM3VDdIVk5CUVBOTzNKSkRSN01TMiIsInciOjI4ODAsImgiOjE1ODAsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjo4NDE1MzIyMzcwNTM1NzMxMTg3LCJhYiI6MH0?format=originalOFGHLERTH',\n  'https://auto.omicdn.com/v1/images/eyJpZCI6Ik9USUE0V0pRR1E2MzdMQ1JQT05FTjVZN1ZDUVgyWSIsInciOjY1MCwiaCI6MjM0LCJkIjowLCJtdCI6ImltYWdlL2pwZWciLCJkaCI6NDk5MTM5NzE1OTAzNjU4NDI2MSwiYWIiOjB9?format=originalOFGHLERTH',\n  'https://auto.omicdn.com/v1/images/eyJpZCI6IjNSTUNDRVU1Q01INFJGSFBERUpBWlVSNU1PTEJFNyIsInciOjY1MCwiaCI6NTMzLCJkIjowLCJtdCI6ImltYWdlL2pwZWciLCJkaCI6NDk3MjMzMTYyNzQxMDk0ODU0OCwiYWIiOjB9?format=originalOFGHLERTH',\n];\n\nconst vipObj: any = {\n  vip: 0,\n  seeWhoLikedMe: 1,\n  supreme: 2,\n};\n\nconst Home: FC = () => {\n  /* 进入官网首页的时候,将系统语言同步到选择的语言 */\n  const { t, i18n: { changeLanguage } } = useTranslation();\n  const [oSLanguage] = useChangeOsLanguage();\n  useEffect(() => {\n    changeLanguage(oSLanguage).then();\n    window.localStorage.setItem('lan', oSLanguage);\n  }, [oSLanguage]);\n\n  const history = useHistory();\n  const location = useLocation();\n  const { hash } = location;\n  const { location: { search } } = useHistory();\n  const [showTwoCode, setShowTwoCode] = useState(false); // 二维码登录弹窗\n  const [codeImg, setCodeImg] = useState('');\n  const [count, setCount] = useState<number>(3); // 倒计时\n  const [gotAccessToken, setGotAccessToken] = useState(false);\n  const [vipType, setVipType] = useState<Array<number>>([]); // 会员种类 0 1 2\n  const [isChangingImg, setIsChangingImg] = useState<boolean>(false);\n  const { logged, logout, login } = useAuth();\n\n  const layoutRef = useRef<LayoutRef>(null);\n  const centerDiv = useRef<HTMLDivElement | null>(null);\n  const homeDiv = useRef<HTMLDivElement | null>(null);\n  const startDiv = useRef<HTMLDivElement | null>(null);\n  const imgArrRef = [\n    useRef<HTMLImageElement | null>(null),\n    useRef<HTMLImageElement | null>(null),\n    useRef<HTMLImageElement | null>(null),\n    useRef<HTMLImageElement | null>(null),\n    useRef<HTMLImageElement | null>(null),\n    useRef<HTMLImageElement | null>(null),\n  ];\n  const button = useRef<HTMLDivElement | null>(null);\n  const title = useRef<HTMLDivElement | null>(null);\n  const processArr = [\n    useRef<HTMLSpanElement | null>(null),\n    useRef<HTMLSpanElement | null>(null),\n    useRef<HTMLSpanElement | null>(null),\n  ];\n  const processUnderArr = [\n    useRef<HTMLSpanElement | null>(null),\n    useRef<HTMLSpanElement | null>(null),\n    useRef<HTMLSpanElement | null>(null),\n  ];\n  const processWrapper = useRef<HTMLDivElement | null>(null);\n  const contentArr = [\n    useRef<HTMLDivElement | null>(null),\n    useRef<HTMLDivElement | null>(null),\n    useRef<HTMLDivElement | null>(null),\n  ];\n  const [showIndex, setShowIndex] = useState<number>(-1);\n  const [start, setStart] = useState<boolean>(false);\n  const [backgroundColor, setBackgroundColor] = useState<string>('');\n  const cardData = [\n    {\n      cardContent: t('home.cardContent1'),\n      cardUser: t('home.cardUser1'),\n    },\n    {\n      cardContent: t('home.cardContent2'),\n      cardUser: t('home.cardUser2'),\n    },\n    {\n      cardContent: t('home.cardContent3'),\n      cardUser: t('home.cardUser3'),\n    },\n  ];\n\n  const init = async () => {\n    try {\n      const res2 = await getApi('/web-api/privileges');\n      if (res2.meta.code === 401000) { // 未登录\n        logout();\n      } else { // 登录了\n        /* 设置登录状态 */\n        login();\n        /* 设置会员信息 */\n        if (res2?.data?.simplePrivileges && Array.isArray(res2?.data?.simplePrivileges)) {\n          const resVipType = res2.data.simplePrivileges.map((item: string) => vipObj[item]);\n          setVipType(resVipType);\n        } else {\n          setVipType([]);\n        }\n        /* 获取到会员信息后打点 */\n        sendPoint({\n          event_name: 'omi_web_website_home_page.pageview',\n          status: 'logged_in',\n        });\n      }\n    } catch (e) {\n      setVipType([]);\n      logout();\n    }\n  };\n\n  const webLogin = async (authToken: any) => {\n    try {\n      // 扫描二维码后,就可以通过 authToken 换取 accessToken 和 currencyCode 了\n      const res = await postWithoutAuth('/web-api/web-jwt-token', { authToken });\n      if (res?.data?.token) {\n        localStorage.setItem('accessToken', res.data.token); // 存到本地\n        localStorage.setItem('currencyCode', res.data.extra?.currencyCode);\n        await init();\n        setShowTwoCode(false); // 隐藏二维码\n        setCodeImg('');\n        setGotAccessToken(true); // 换取accessToken后的3s后会自动跳转\n        setTimeout(() => {\n          setGotAccessToken(false);\n        }, 6000);\n      } else if (res.code === 401000) {\n        setTimeout(async () => {\n          if (showTwoCodeRef.current) { // 如果二维码没被关闭,则继续调用接口\n            await webLogin(authToken);\n          }\n        }, 2000);\n      } else if (res.code === 40045) {\n        // 放弃等待登录结果\n      }\n    } catch (error) {\n      console.error(error);\n    }\n  };\n\n  useEffect(() => {\n    let interval: any;\n    let curIndex = 0;\n\n    if (isChangingImg) {\n      imgArrRef.forEach((item, index) => {\n        const img = item.current!;\n        if (index === curIndex) {\n          img.style.opacity = '1';\n          img.style.zIndex = '-5';\n        } else {\n          img.style.opacity = '0';\n          img.style.zIndex = '-50';\n        }\n      });\n      interval = setInterval(() => {\n        if (curIndex > 4) {\n          curIndex = 0;\n        } else {\n          curIndex++;\n        }\n        imgArrRef.forEach((item, index) => {\n          if (index === curIndex) {\n                        item.current!.style.opacity = '1';\n          } else {\n                        item.current!.style.opacity = '0';\n          }\n        });\n      }, 3000);\n    }\n    return () => clearInterval(interval);\n  }, [isChangingImg]);\n\n  useEffect(() => {\n    if (hash) { // 短信链接跳进来的\n      history.push({\n        pathname: '/vip',\n        state: {\n          authToken: hash.substring(1),\n        },\n      });\n    }\n  }, [hash, search]);\n\n  const initDataAnimation = async () => {\n    const searchParams = getSearchParams(search);\n    const { s } = searchParams;\n    const params = {\n      event_name: 'omi_web_website_home_page.pageview',\n      status: 'un_logged_in',\n    };\n    if (s === '1') {\n      params.show_from = 'message';\n    }\n    sendPoint(params);\n  };\n\n  useEffect(() => {\n    imgArr.forEach((src) => {\n      const img = new Image();\n      img.src = src;\n    });\n    initDataAnimation();\n  }, []);\n\n  useEffect(() => {\n    let timer: NodeJS.Timer;\n    if (logged && gotAccessToken) {\n      timer = setTimeout(() => {\n        if (count <= 0) {\n          // 自动跳转也需要打点\n          sendPoint({\n            event_name: 'omi_web_website_home_page_button.click',\n            status: 'logged_in',\n          });\n          if (vipType.includes(1) || vipType.includes(2)) {\n            history.push({ pathname: '/vip', state: { linkCurrentVip: 2 } });\n            console.log('自动跳转');\n          } else {\n            history.push({ pathname: '/vip', state: { linkCurrentVip: 1 } });\n            console.log('自动跳转');\n          }\n          clearTimeout(timer);\n        } else {\n          setCount((count) => count - 1);\n        }\n      }, 1000);\n    }\n    return () => {\n      if (timer) {\n        clearTimeout(timer);\n      }\n    };\n  }, [logged, count]);\n\n  useEffect(() => {\n    const homeDom = homeDiv.current; // 用于绑定滚动事件\n    const menuDom = layoutRef?.current?.menuDom!; // 导航文字(PC)\n    const languageDom = layoutRef?.current?.languageDom!; // 小地球(PC)\n\n    const handler = () => {\n      const centerDom = centerDiv.current!;\n      if (centerDom) {\n        const { top, bottom } = centerDom.getBoundingClientRect();\n        // 控制渐进反色\n        if (top < 27) {\n          menuDom && (menuDom.style.height = '0'); // 导航文字\n          languageDom && (languageDom.style.height = '0'); // 小地球\n        } else if (top > 59) {\n          menuDom && (menuDom.style.height = `${25}px`);\n          languageDom && (languageDom.style.height = `${19}px`);\n        } else {\n          menuDom && (menuDom.style.height = `${top - 34}px`);\n          languageDom && (languageDom.style.height = `${top - 39}px`);\n        }\n\n        // 控制头部背景色渐变\n        if (top >= 0 && top <= 71) {\n          setBackgroundColor(`rgba(255,255,255,${(71 - top) / 71})`);\n        } else if (top < 0) {\n          setBackgroundColor('rgb(255,255,255)');\n        } else {\n          setBackgroundColor('');\n        }\n\n        // 控制动画开始\n        if (bottom < 1.4 * window.innerHeight) {\n          setStart(true);\n        }\n      }\n    };\n\n    homeDom && homeDom.addEventListener('scroll', handler); // 绑定滚屏事件\n    let timeout1: any; let\n      timeout2: any;\n    if (showIndex !== -1) {\n      showCenterContent(showIndex);\n      if (showIndex >= 2) {\n        timeout1 = setTimeout(() => {\n          setShowIndex(0);\n        }, 4000);\n      } else {\n        timeout2 = setTimeout(() => {\n          setShowIndex((val) => val + 1);\n        }, 4000);\n      }\n    }\n\n    return () => {\n      homeDom && homeDom.removeEventListener('scroll', handler);\n      clearTimeout(timeout1);\n      clearTimeout(timeout2);\n    };\n  }, [showIndex]);\n\n  useEffect(() => {\n    if (start) {\n            processWrapper.current!.style.display = 'flex';\n            processWrapper.current!.classList.add('animate__fadeInUpBig');\n            setTimeout(() => {\n              setShowIndex(0);\n            }, 1000);\n    }\n  }, [start]);\n\n  const showCenterContent = (targetIndex: number) => {\n    contentArr.forEach((content, index) => {\n      if (index === targetIndex) {\n                content.current!.style.opacity = '1';\n      } else {\n                content.current!.style.opacity = '0';\n      }\n    });\n    processArr.forEach((process, index) => {\n      if (index === targetIndex) {\n                processUnderArr[index].current!.style.backgroundColor = '#212121';\n                process.current!.style.transition = '0s width';\n                process.current!.style.width = '0';\n                setTimeout(() => {\n                    process.current!.style.transition = '3900ms width linear';\n                    process.current!.style.width = '100%';\n                }, 100);\n      } else if (index > targetIndex) {\n                processUnderArr[index].current!.style.backgroundColor = '#212121';\n                process.current!.style.transition = '0s width';\n                process.current!.style.width = '0';\n      } else {\n                process.current!.style.transition = '0s width';\n                process.current!.style.width = '100%';\n                processUnderArr[index].current!.style.backgroundColor = '#16ec9b';\n      }\n    });\n  };\n\n  const setAnimation = (dom: HTMLElement, className: string, delay: number = 0): void => {\n    setTimeout(() => {\n      dom.style.visibility = 'visible';\n      dom.classList.add(className);\n    }, delay);\n  };\n\n  const startAnimation = (): Promise<void> => {\n    return new Promise<void>((resolve) => {\n      setAnimation(title.current!, 'animate__fadeInRight');\n      setAnimation(button.current!, 'animate__fadeInUp');\n      setAnimation(layoutRef.current!.headerDiv!, 'animate__fadeInDown');\n      setTimeout(() => {\n        resolve();\n      }, 1100);\n    });\n  };\n\n  const showTwoCodeRef = useRef(showTwoCode);\n  useEffect(() => {\n    showTwoCodeRef.current = showTwoCode;\n  }, [showTwoCode]);\n\n  const renderButton = () => {\n    if (!logged) { // 如果未登录,展示的是登录按钮\n      return (\n        <div\n          className={styleObj.button}\n          onClick={\n                        // PC端的登录 → 展示二维码\n                        async () => {\n                          const { authToken } = await postWithoutAuth('/web-api/web-auth-token', { authType: 'qrCode' });\n                          const imgStr = await QRCode.toDataURL(authToken, { width: 400, height: 400 });\n                          setCodeImg(imgStr);\n                          setShowTwoCode(true);\n                          webLogin(authToken);\n                        }\n                    }\n        >\n          {t('h5.OMI_PHONE_WEBSITE_HOME_PAGE_LOGIN')}\n          <div className={styleObj.save1}>\n            <div className={styleObj.save1_text1}>{t('h5.OMI_PHONE_WEBSITE_HOME_PAGE_SAVE')}</div>\n            <div className={styleObj.save1_text2}>50<span>%</span></div>\n          </div>\n        </div>\n      );\n    } else {\n      return (\n        <div\n          className={styleObj.button_one}\n          onClick={\n                        () => {\n                          if (vipType.includes(1) || vipType.includes(2)) {\n                            history.push({ pathname: '/vip', state: { linkCurrentVip: 2 } });\n                          } else {\n                            history.push({ pathname: '/vip', state: { linkCurrentVip: 1 } });\n                          }\n                        }\n                    }\n        >\n          {\n                        gotAccessToken ?\n                          `${t('h5.OMI_PHONE_WEBSITE_HOME_PAGE_CONTINUE')} (${count})`\n                          :\n                          `${t('h5.OMI_PHONE_WEBSITE_HOME_PAGE_CONTINUE')}`\n                    }\n          <div className={styleObj.save1}>\n            <div className={styleObj.save1_text1}>{t('h5.OMI_PHONE_WEBSITE_HOME_PAGE_SAVE')}</div>\n            <div className={styleObj.save1_text2}>50<span>%</span></div>\n          </div>\n        </div>\n      );\n    }\n  };\n\n  const startStep = (): Promise<void> => {\n    let start = 0;\n    let previousTimeStamp = 0;\n    return new Promise<void>((resolve) => {\n      const step = (timestamp: number): void => {\n        if (start === 0) start = timestamp;\n        const elapsed = timestamp - start;\n        if (previousTimeStamp !== timestamp) {\n          const count = Math.min(0.1 * elapsed, 100);\n          startDiv.current && (startDiv.current.style.height = `${100 - count}vh`);\n        }\n        if (elapsed < 1000) {\n          previousTimeStamp = timestamp;\n          window.requestAnimationFrame(step);\n        } else { // 结束了\n          resolve();\n        }\n      };\n      window.requestAnimationFrame(step);\n    });\n  };\n\n  const { View } = useLottie({\n    style: { width: '10vw' },\n    animationData: startData,\n    loop: false,\n    onComplete: async () => {\n            imgArrRef[0].current!.style.transform = 'scale(1)';\n            await startStep();\n            await startAnimation();\n            setIsChangingImg(true);\n    },\n  });\n\n  return (\n    <Layout\n      ref={layoutRef}\n      headerStyle={{ backgroundColor, visibility: 'hidden' }}\n      isHome\n    >\n      <div\n        ref={homeDiv}\n        className={styleObj.home}\n        style={{ height: window.innerHeight }}\n      >\n\n        {/* 开场幕布 */}\n        {\n          <div\n            className={styleObj.start}\n            ref={startDiv}\n          >\n            {View}\n          </div>}\n\n        {/* 第一屏 */}\n        <div className={styleObj.top}>\n          {\n                        imgArr.map((src, index) => (\n                          <img\n                            key={index}\n                            src={src}\n                            ref={imgArrRef[index]}\n                            className={styleObj.img}\n                          />\n                        ))\n                    }\n          <div className={styleObj.title_area}>\n            <div\n              ref={title}\n              className=\"animate__animated\"\n              dangerouslySetInnerHTML={{ __html: t('home.title') }}\n            />\n          </div>\n          <div\n            ref={button}\n            className={`${styleObj.button_wrapper} animate__animated`}\n          >\n            <div onClick={\n                            () => {\n                              sendPoint({\n                                event_name: 'omi_web_website_home_page_button.click',\n                                status: logged ? 'logged_in' : 'un_logged_in',\n                              });\n                            }\n                        }\n            >\n              {renderButton()}\n            </div>\n            <div className={styleObj.button_title}>\n              {t('home.OMI_PHONE_WEBSITE_HOME_PAGE_PURCHASE_MORE_METHOD')}\n            </div>\n            <div className={styleObj.pay_card_wrapper}>\n              {\n                                logged &&\n                                Array.isArray(PAY_CARD[(localStorage.getItem('currencyCode')!)]) &&\n                                PAY_CARD[(localStorage.getItem('currencyCode')!)].map((src: any) => (<Img\n                                  className={styleObj.pay_card}\n                                  src={src}\n                                />))\n                            }\n            </div>\n          </div>\n        </div>\n\n        {/* 第二屏 */}\n        <div\n          className={styleObj.center}\n          ref={centerDiv}\n        >\n          <div className={styleObj.content}>\n            <div className={styleObj.text_wrapper}>\n              {\n                                cardData.map(({ cardContent, cardUser }, index) => (\n                                  <div key={index} ref={contentArr[index]}>\n                                    <div>\n                                      <img\n                                        src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IkJYWUtRVzNVSzZNNUlQSjNIVllMNlhONVNYSFRKUCIsInciOjEyOCwiaCI6MTM2LCJkIjowLCJtdCI6ImltYWdlL2pwZWciLCJkaCI6MTM4NDg1NjAyNjU0NjE3NjAsImFiIjowfQ?format=originalOFGHLERTH\"\n                                        alt=\"\"\n                                      />\n                                    </div>\n                                    <div>{cardContent}</div>\n                                    <div>{cardUser}</div>\n                                  </div>\n                                ))\n                            }\n            </div>\n            <div\n              ref={processWrapper}\n              className={`${styleObj.process_wrapper} animate__animated`}\n            >\n              {\n                                Array.from({ length: 3 }).map((_, index) => (\n                                  <div\n                                    key={index}\n                                    onClick={() => setShowIndex(index)}\n                                  >\n                                    <span ref={processUnderArr[index]} />\n                                    <span ref={processArr[index]} />\n                                  </div>\n                                ))\n                            }\n            </div>\n          </div>\n        </div>\n\n        {/* 第三屏 */}\n        <Download />\n        <Footer />\n\n        {/* 二维码弹窗 */}\n        <div className={styleObj.modal} style={{ display: showTwoCode ? 'block' : 'none' }}>\n          <div className={styleObj.two_code_wrapper}>\n            <img className={styleObj.code_img} src={codeImg} alt=\"\" />\n            <div className={styleObj.code_title}>{t('home.OMI_WEB_WEBSITE_QR_CODE_POPUP_TITLE')}</div>\n            <div className={styleObj.code_content}>{t('home.OMI_WEB_WEBSITE_QR_CODE_POPUP_SUBTITLE')}</div>\n            <div\n              className={styleObj.close_button}\n              onClick={\n                                () => {\n                                  setShowTwoCode(false);\n                                  setCodeImg('');\n                                }\n                            }\n            />\n          </div>\n        </div>\n      </div>\n    </Layout>\n  );\n};\n\nexport default Home;\n","import React from \"react\";\nimport {useSmallWindow} from \"../../hooks\";\nimport Home1 from './mobile/Home'\nimport Home2 from './pc/Home'\n\nexport default () => {\n    const [isMobile] = useSmallWindow();  //用于判断屏幕宽度\n    if (isMobile) {\n        return <Home1/>\n    } else {\n        return <Home2/>\n    }\n}","import React, { FC, lazy, Suspense, useEffect, useState } from 'react';\nimport { BrowserRouter, Route, Switch } from 'react-router-dom';\nimport Home from './pages/Home/Home';\nimport { ToastProvider  } from './stores/ToastContext';\nimport { AuthProvider  } from './stores/AuthContext';\n\n\nconst Features = lazy(() => import('./pages/Features/Features'));\nconst Toolkit = lazy(() => import('./pages/Toolkit/Toolkit'));\nconst Subscription = lazy(() => import('./pages/Subscription/Subscription'));\nconst WhyOmi = lazy(() => import('./pages/WhyOmi/WhyOmi'));\nconst Press = lazy(() => import('./pages/Press/Press'));\nconst Article = lazy(() => import('./pages/Article/Article'));\nconst Support = lazy(() => import('./pages/Support/Support'));\nconst Apply = lazy(() => import('./pages/Apply/Apply'));\nconst Company = lazy(() => import('./pages/Company/Company'));\nconst Guideline = lazy(() => import('./pages/TextPages/Guideline'));\nconst Help = lazy(() => import('./pages/TextPages/Help'));\nconst Terms = lazy(() => import('./pages/TextPages/Terms'));\nconst Service = lazy(() => import('./pages/TextPages/Service'));\nconst Privacy = lazy(() => import('./pages/TextPages/Privacy'));\nconst SafetyTips = lazy(() => import('./pages/TextPages/SafetyTips'));\nconst Share = lazy(() => import('./pages/Share/Share'));\nconst AntiFraud = lazy(() => import('./pages/AntiFraud/AntiFraud'));\nconst Vip = lazy(() => import('./pages/Vip'));\n// const Test = lazy(() => import('./pages/Test/Test'));\nconst PaySuccess = lazy(() => import('./pages/PaySuccess/PaySuccess'));\nconst PayError = lazy(() => import('./pages/PayError/PayError'));\nconst PayPending = lazy(() => import('./pages/PayPending/PayPending'));\n\nconst App: FC = () => {\n  const [normal, setNormal] = useState(true);\n\n  useEffect(() => {\n    const fn = () => {\n      if (window.orientation == 90 || window.orientation == -90) {\n        // 横屏\n        setTimeout(() => {\n          if (window.innerWidth > 1.6 * window.innerHeight && window.innerHeight < 500 && window.innerWidth < 900) {\n            setNormal(false);\n          }\n        }, 100);\n      } else {\n        setNormal(true);\n      }\n    };\n    window.addEventListener('orientationchange', fn);\n    if (window.innerWidth > 1.6 * window.innerHeight && window.innerHeight < 500 && window.innerWidth < 900) {\n      setNormal(false);\n    }\n    return () => {\n      window.removeEventListener('orientationchange', fn);\n    };\n  }, []);\n\n  if (normal) {\n    return (\n      <ToastProvider>\n        <AuthProvider>\n        <BrowserRouter>\n          <Switch>\n            <Route path=\"/\" component={Home} exact />\n            <Route\n              path=\"/features\"\n              exact\n              render={() => <Suspense><Features /></Suspense>}\n            />\n            <Route\n              path=\"/features/toolkit\"\n              exact\n              render={() => <Suspense><Toolkit /></Suspense>}\n            />\n            <Route\n              path=\"/features/subscription\"\n              exact\n              render={() => <Suspense><Subscription /></Suspense>}\n            />\n            <Route\n              path=\"/why\"\n              exact\n              render={() => <Suspense><WhyOmi /></Suspense>}\n            />\n            <Route\n              path=\"/press\"\n              exact\n              render={() => <Suspense><Press /></Suspense>}\n            />\n            <Route\n              path=\"/press/:id\"\n              exact\n              render={() => <Suspense><Article /></Suspense>}\n            />\n            <Route\n              path=\"/support\"\n              exact\n              render={() => <Suspense><Support /></Suspense>}\n            />\n            <Route\n              path=\"/apply/:job?/:country?\"\n              exact\n              render={() => <Suspense><Apply /></Suspense>}\n            />\n            <Route\n              path=\"/company/:position?\"\n              exact\n              render={() => <Suspense><Company /></Suspense>}\n            />\n            <Route\n              path=\"/norms/:language?\"\n              render={() => <Suspense><Guideline /></Suspense>}\n            />\n            <Route\n              path=\"/help\"\n              exact\n              render={() => <Suspense><Help /></Suspense>}\n            />\n            <Route\n              path=\"/terms/:language?\"\n              exact\n              render={() => <Suspense><Terms /></Suspense>}\n            />\n            <Route\n              path=\"/privacy/:language?\"\n              exact\n              render={() => <Suspense><Privacy /></Suspense>}\n            />\n            <Route\n              path=\"/safety_tips\"\n              exact\n              render={() => <Suspense><SafetyTips /></Suspense>}\n            />\n            {/* 分享页 */}\n            <Route\n              path=\"/share\"\n              exact\n              render={() => <Suspense><Share /></Suspense>}\n            />\n            {/* 反诈页 */}\n            <Route\n              path=\"/anti_fraud\"\n              exact\n              render={() => <Suspense><AntiFraud /></Suspense>}\n            />\n            {/* 会员购买页 */}\n            <Route\n              path=\"/vip\"\n              exact\n              render={() => <Suspense><Vip /></Suspense>}\n            />\n            {/* 支付结果页:成功 */}\n            <Route\n              path=\"/pay_success\"\n              exact\n              render={() => <Suspense><PaySuccess /></Suspense>}\n            />\n            {/* 支付结果页:失败 */}\n            <Route\n              path=\"/pay_error\"\n              exact\n              render={() => <Suspense><PayError /></Suspense>}\n            />\n            {/* 支付结果页:等待 */}\n            <Route\n              path=\"/pay_pending\"\n              exact\n              render={() => <Suspense><PayPending /></Suspense>}\n            />\n            {/* 服务者协议 */}\n            <Route\n              path=\"/service\"\n              exact\n              render={() => <Suspense><Service /></Suspense>}\n            />\n          </Switch>\n        </BrowserRouter>\n        </AuthProvider>\n      </ToastProvider>\n\n    );\n  } else {\n    return (\n      <div style={{\n        flexDirection: 'column',\n        height: '100%',\n        width: '100%',\n        display: 'flex',\n        justifyContent: 'center',\n        alignItems: 'center',\n      }}\n      >\n        <div style={{ fontSize: 60, lineHeight: 1.3 }}>🙃</div>\n        <h3 style={{ fontWeight: 600, fontSize: 24, marginBottom: 5 }}>Catch Us On The Flip Side</h3>\n        <div style={{ color: '#505965', fontSize: 14 }}>Enjoy matching up from a portrait view.</div>\n      </div>\n    );\n  }\n};\nexport default App;\n","import React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport 'antd/dist/antd.variable.min.css';\nimport 'animate.css';\nimport './index.less';\nimport './i18n'\nimport App from './App';\nimport { ConfigProvider } from 'antd';\n\nConfigProvider.config({\n    theme: {\n        primaryColor: '#25b864',\n    },\n});\n\nconst root = ReactDOM.createRoot(\n  document.getElementById('root') as HTMLElement\n);\nroot.render(<App/>);\n"],"names":["isSimple","useTranslation","t","language","i18n","useSmallWindow","isMobile","useAndroid","isAndroid","className","styleObj","to","src","alt","style","height","href","target","rel","props","imgProps","React","ref","timeout","headerStyle","changeLanguage","logoDom","useRef","menuDom","languageDom","languageBoxDom","languageMobileDom","menuLogoDom","menuBoxDom","menuBoxLanguageDom","languageDropdownLogoDom","menuBoxLanguageDropdownLogoDom","useState","showLanguage","setShowLanguage","showLanguageMobile","setShowLanguageMobile","showMenu","setShowMenu","showMenuBoxLanguageBoxDom","setShowMenuBoxLanguageBoxDom","showFeaturesChild","setShowFeaturesChild","showFeaturesChildMobile","setShowFeaturesChildMobile","languageBoxLeft","setLanguageBoxLeft","featureChildLeft","setFeatureChildLeft","useImperativeHandle","current","useEffect","document","addEventListener","e","includes","value","targetLeft","getBoundingClientRect","left","setTimeout","onclick","handleOverFeatures","width","clearTimeout","handleOutFeatures","exact","activeClassName","onMouseOver","onMouseOut","display","onClick","window","localStorage","setItem","val","transform","useMobile","showPay","headerDiv","useAuth","logged","logout","children","isHome","headerRef","PERMISSION_PRY_TYPE","ESPECIAL_PAY_TYPE","PAY_CARD","TWD","IDR","MYR","THB","useWhite","layoutRef","useSystem","isWindows","setIsWindows","agent","navigator","userAgent","toLowerCase","isMac","test","indexOf","useMemo","innerWidth","setIsAndroid","match","useLanguage","setLanguage","useChangeOsLanguage","setMobile","matchMedia","matches","useCountDown","endTime","onEnd","end","setEnd","calculateTimeLeft","difference","Math","max","Date","valueOf","hour","floor","minute","second","timeLeft","setTimeLeft","timer","setInterval","clearInterval","AuthContext","createContext","undefined","AuthProvider","setLogged","Provider","login","removeItem","context","useContext","Error","ToastContext","a","b","useToast","ToastProvider","message","duration","toast","setToast","showToast","useCallback","time","s","getSearchParams","search","length","obj","paramArr","substring","split","forEach","item","itemArr","vipObj","vip","seeWhoLikedMe","supreme","diamond","filterPrice","data","tags","promotion","filterKey","Object","keys","filterArr","filter","category","reduceArr","reduce","did","cur","stockKeepUnit","promotionStockKeepUnits","defaultStockKeepUnits","prices","tagPrice","price","default","Array","isArray","tag","currencySymbol","currencyCode","inAppPrice","month","quantity","price1","id","ceil","toFixed","vipType","push","getApi","url","headers","accessToken","getItem","fetch","method","Authorization","then","res","json","postApi","body","JSON","stringify","sendPoint","params","defineProperty","getMobileOperatingSystem","writable","configurable","enumerable","entries","init","slice","addLink","text","text1","text2","replace","dangerouslySetInnerHTML","__html","thousandsSeparator","n","strSplit","toString","integer","decimal","postWithoutAuth","darkColorMap","index","opacity","toHsv","_ref","r","g","hsv","rgbToHsv","h","v","toHex","_ref2","concat","rgbToHex","mix","rgb1","rgb2","amount","p","getHue","i","light","hue","round","getSaturation","saturation","Number","getValue","generate","color","opts","arguments","patterns","pColor","inputToRGB","colorString","_i","_hsv","_colorString","theme","map","_ref3","backgroundColor","presetPrimaryColors","red","volcano","orange","gold","yellow","lime","green","cyan","blue","geekblue","purple","magenta","grey","presetPalettes","presetDarkPalettes","key","primary","isIconDefinition","_typeof","name","icon","normalizeAttrs","attrs","acc","class","node","rootProps","_objectSpread","child","getSecondaryColor","primaryColor","generateColor","normalizeTwoToneColors","twoToneColor","iconStyles","_excluded","twoToneColorPalette","secondaryColor","calculated","IconBase","valid","restProps","_objectWithoutProperties","colors","styleStr","csp","IconContext","updateCSS","prepend","useInsertStyles","warn","fill","displayName","getTwoToneColors","setTwoToneColors","setTwoToneColor","_normalizeTwoToneColo","_normalizeTwoToneColo2","_slicedToArray","ReactIcon","Icon","_classNames","spin","rotate","tabIndex","_React$useContext$pre","Context","prefixCls","classString","classNames","_defineProperty","iconTabIndex","svgStyle","msTransform","role","getTwoToneColor","CheckCircleFilled","AntdIcon","CheckCircleFilledSvg","CloseCircleFilled","CloseCircleFilledSvg","CloseOutlined","CloseOutlinedSvg","ExclamationCircleFilled","ExclamationCircleFilledSvg","LoadingOutlined","LoadingOutlinedSvg","rgbToRgb","bound01","rgbToHsl","min","l","d","hue2rgb","q","hslToRgb","hsvToRgb","f","mod","allow3Char","hex","pad2","startsWith","charAt","join","rgbaToHex","allow4Char","convertDecimalToHex","parseFloat","convertHexToDecimal","parseIntFromHex","parseInt","numberInputToObject","names","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","goldenrod","gray","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavenderblush","lavender","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","limegreen","linen","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellowgreen","rgb","ok","format","trim","named","matchers","exec","rgba","hsl","hsla","hsva","hex8","hex6","hex4","hex3","stringInputToObject","isValidCSSUnit","String","substr","convertToPercentage","prototype","hasOwnProperty","call","boundAlpha","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","RegExp","Boolean","isOnePointZero","isPercent","isPercentage","abs","clamp01","isNaN","c","DisabledContext","DisabledContextProvider","disabled","originDisabled","SizeContext","SizeContextProvider","size","Consumer","originSize","ConfigContext","getPrefixCls","suffixCls","customizePrefixCls","ConfigConsumer","runtimeLocale","_extends","defaultLocale","changeConfirmLocale","newLocale","_props$locale","locale","_ANT_MARK__","Modal","getMemoizedContextValue","exist","LocaleContext","CheckCircleOutlined","CheckCircleOutlinedSvg","CloseCircleOutlined","CloseCircleOutlinedSvg","ExclamationCircleOutlined","ExclamationCircleOutlinedSvg","InfoCircleOutlined","InfoCircleOutlinedSvg","defaultGetContainer","defaultCloseIcon","maxCount","notificationInstance","defaultDuration","defaultTop","defaultBottom","defaultPrefixCls","defaultPlacement","rtl","getPlacementStyle","placement","top","bottom","right","getNotificationInstance","args","callback","_args$placement","_args$getContainer","getContainer","_globalConfig","globalConfig","getIconPrefixCls","iconPrefixCls","cacheKey","cacheInstance","Promise","resolve","instance","notificationClass","Notification","notification","typeToIcon","success","info","error","warning","getRCNoticeProps","durationArg","type","description","btn","onClose","_args$closeIcon","closeIcon","iconNode","closeIconToRender","autoMarginTag","content","ConfigProvider","closable","api","open","notice","close","removeNotice","config","options","destroy","useNotification","innerInstance","proxy","add","noticeProps","holderCallback","component","_useRCNotification","useRCNotification","_useRCNotification2","hookNotify","holder","hookApiRef","mergedPrefixCls","createUseNotification","TinyColor","_a","this","originalInput","roundA","gradientType","isValid","isDark","getBrightness","isLight","toRgb","getLuminance","RsRGB","GsRGB","BsRGB","pow","getAlpha","setAlpha","alpha","toHsvString","toHsl","toHslString","toHexString","toHex8","toHex8String","toRgbString","toPercentageRgb","fmt","x","toPercentageRgbString","rnd","toName","_b","formatSet","formattedString","hasAlpha","toNumber","clone","lighten","brighten","darken","tint","shade","desaturate","saturate","greyscale","analogous","results","slices","part","ret","complement","monochromatic","modification","splitcomplement","onBackground","background","fg","bg","triad","polyad","tetrad","result","increment","equals","dynamicStyleMark","now","random","registerTheme","globalPrefixCls","variables","formatColor","updater","fillColor","colorVal","baseColor","colorPalettes","primaryColors","primaryActiveColor","successColor","warningColor","errorColor","infoColor","cssList","getStyle","canUseDom","globalIconPrefixCls","PASSED_PROPS","getGlobalPrefixCls","getGlobalIconPrefixCls","getRootPrefixCls","rootPrefixCls","ProviderChildren","autoInsertSpaceInButton","form","componentSize","direction","space","virtual","dropdownMatchSelectWidth","legacyLocale","parentContext","componentDisabled","propName","propValue","memoedConfig","prevConfig","currentConfig","prevKeys","currentKeys","some","memoIconContextValue","childNode","validateMessages","Form","defaultValidateMessages","RcFormProvider","LocaleProvider","LocaleReceiver","_","__","_props$componentName","componentName","antLocale","defaultLocaleData","localeFromContext","Function","localeCode","useLocaleReceiver","today","backToToday","clear","year","timeSelect","dateSelect","weekSelect","monthSelect","yearSelect","decadeSelect","yearFormat","dateFormat","dayFormat","dateTimeFormat","monthBeforeYear","previousMonth","nextMonth","previousYear","nextYear","previousDecade","nextDecade","previousCentury","nextCentury","placeholder","rangePlaceholder","lang","yearPlaceholder","quarterPlaceholder","monthPlaceholder","weekPlaceholder","rangeYearPlaceholder","rangeQuarterPlaceholder","rangeMonthPlaceholder","rangeWeekPlaceholder","CalendarLocale","timePickerLocale","TimePickerLocale","typeTemplate","Pagination","DatePicker","TimePicker","Calendar","global","Table","filterTitle","filterConfirm","filterReset","filterEmptyText","filterCheckall","filterSearchPlaceholder","emptyText","selectAll","selectInvert","selectNone","selectionAll","sortTitle","expand","collapse","triggerDesc","triggerAsc","cancelSort","okText","cancelText","justOkText","Popconfirm","Transfer","titles","searchPlaceholder","itemUnit","itemsUnit","remove","selectCurrent","removeCurrent","removeAll","Upload","uploading","removeFile","uploadError","previewFile","downloadFile","Empty","Text","edit","copy","copied","PageHeader","back","optional","required","whitespace","date","parse","invalid","types","string","array","object","number","regexp","email","len","range","pattern","mismatch","Image","preview","InfoCircleFilled","InfoCircleFilledSvg","messageInstance","localPrefixCls","transitionName","hasTransitionName","getKeyThenIncreaseKey","getRCNotificationInstance","getContextPopupContainer","getPopupContainer","instanceConfig","RCNotification","loading","typeList","IconComponent","messageClass","closePromise","filled","rejected","promise","messageKey","attachTypeApi","originalApi","isArgsProps","useMessage","getRcNotificationInstance","createUseMessage","hasOwn","classes","arg","argType","inner","apply","module","exports","dijkstra","single_source_shortest_paths","graph","predecessors","costs","closest","u","cost_of_s_to_u","adjacent_nodes","cost_of_s_to_u_plus_cost_of_e","cost_of_s_to_v","PriorityQueue","make","empty","pop","cost","msg","extract_shortest_path_from_predecessor_list","nodes","reverse","find_path","T","queue","sorter","default_sorter","sort","shift","input","point","charCodeAt","Uint8Array","buffer","isAbsolute","pathname","spliceOne","list","k","from","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","last","up","unshift","addLeadingSlash","path","stripLeadingSlash","stripBasename","prefix","hasBasename","stripTrailingSlash","createPath","location","hash","createLocation","state","currentLocation","hashIndex","searchIndex","parsePath","decodeURI","URIError","resolvePathname","createTransitionManager","prompt","listeners","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","appendListener","fn","isActive","listener","notifyListeners","_len","_key","canUseDOM","createElement","getConfirmation","confirm","PopStateEvent","HashChangeEvent","getHistoryState","history","createBrowserHistory","invariant","globalHistory","canUseHistory","ua","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","basename","getDOMLocation","historyState","_window$location","createKey","transitionManager","setState","nextState","handlePopState","event","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","fromLocation","toLocation","toIndex","allKeys","fromIndex","delta","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","removeEventListener","isBlocked","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","block","unblock","listen","unlisten","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","lastIndexOf","baseTag","querySelector","getAttribute","pushHashPath","nextPaths","clamp","lowerBound","upperBound","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","entry","nextIndex","nextEntries","splice","canGo","reactIs","require","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","isMemo","ForwardRef","render","Memo","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","descriptor","useLottie","animationData","loop","autoplay","initialSegment","onComplete","onLoopComplete","onEnterFrame","onSegmentStart","onConfigReady","onDataReady","onDataFailed","onLoadedImages","onDOMLoaded","onDestroy","lottieRef","renderer","assetsPath","rendererSettings","rest","_useState2","animationLoaded","setAnimationLoaded","animationInstanceRef","animationContainer","play","stop","pause","setSpeed","speed","goToAndPlay","isFrame","goToAndStop","setDirection","playSegments","segments","forceFlag","setSubframe","useSubFrames","getDuration","inFrames","loadAnimation","forcedConfigs","container","lottie","onUnmount","currentRawFrame","setSegment","resetSegments","handler","deregisterList","deregister","View","animationContainerRef","animationItem","getContainerVisibility","innerHeight","getContainerCursorPosition","cursorX","cursorY","y","useInitInteractivity","wrapperRef","mode","actions","wrapper","scrollModeHandler","assignedSegment","scrollHandler","currentPercent","find","visibility","frames","frameToGo","firstFrame","isPaused","cursorModeHandler","handleCursor","_x","_y","pos","position","xPercent","yPercent","mouseMoveHandler","ev","clientX","clientY","mouseOutHandler","useLottieInteractivity","lottieObj","Lottie","_c","interactivity","lottieProps","factory","svgNS","locationHref","_useWebWorker","initialDefaultFrame","setWebWorker","flag","getWebWorker","setLocationHref","getLocationHref","createTag","extendPrototype","sources","destination","sourcePrototype","attr","getDescriptor","prop","createProxyFunction","ProxyFunction","audioControllerFactory","AudioController","audioFactory","audios","_volume","_isMuted","addAudio","audio","resume","setRate","rateValue","createAudio","assetPath","Howl","isPlaying","seek","playing","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","volume","createTypedArray","createRegularArray","arr","Uint8ClampedArray","Float32Array","Int16Array","createSizedArray","_typeof$6","Symbol","iterator","constructor","subframeEnabled","expressionsPlugin","idPrefix$1","isSafari","_shouldRoundValues","bmPow","bmSqrt","sqrt","bmFloor","bmMax","bmMin","BMMath","ProjectInterface$1","propertyNames","absArr","defaultCurveSegments","degToRads","PI","roundCorner","roundValues","bmRnd","styleDiv","element","transformOrigin","webkitTransformOrigin","backfaceVisibility","webkitBackfaceVisibility","transformStyle","webkitTransformStyle","mozTransformStyle","BMEnterFrameEvent","currentTime","totalTime","frameMultiplier","BMCompleteEvent","BMCompleteLoopEvent","totalLoops","currentLoop","BMSegmentStartEvent","totalFrames","BMDestroyEvent","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","BMAnimationConfigErrorEvent","createElementID","_count","HSVtoRGB","RGBtoHSV","addSaturationToRGB","offset","addBrightnessToRGB","addHueToRGB","colorMap","setSubframeEnabled","getSubframeEnabled","setExpressionsPlugin","getExpressionsPlugin","setDefaultCurveSegments","getDefaultCurveSegments","setIdPrefix","getIdPrefix","createNS","createElementNS","_typeof$5","dataManager","workerFn","workerInstance","_counterId","processes","workerProxy","onmessage","postMessage","_workerSelf","setupWorker","Worker","Blob","blob","URL","createObjectURL","createWorker","completeLayers","layers","comps","layerData","j","jLen","kLen","completed","tt","td","hasMask","maskProps","masksProperties","pt","convertPathsToAbsoluteValues","ty","findCompLayers","refId","completeShapes","shapes","completeText","comp","findComp","__used","ks","it","o","checkVersion","minimum","animVersionString","animVersion","checkText","minimumVersion","updateTextLayer","textLayer","documentData","iterateLayers","assets","checkChars","chars","charData","ip","op","st","sr","sk","sa","checkPathProperties","pathData","checkColors","iterateShapes","checkShapes","completeClosingShapes","closed","cl","moduleOb","__complete","completeChars","dataFunctionManager","assetLoader","formatResponse","xhr","contentTypeHeader","getResponseHeader","responseType","response","responseText","load","fullPath","errorCallback","XMLHttpRequest","err","onreadystatechange","readyState","status","send","completeData","payload","animation","process","onError","createProcess","processId","origin","loadData","completeAnimation","anim","ImagePreloader","proxyImage","canvas","ctx","getContext","fillStyle","fillRect","imageLoaded","loadedAssets","totalImages","loadedFootagesCount","totalFootages","imagesLoadedCb","footageLoaded","getAssetsPath","assetData","originalPath","imagePath","testImageLoaded","img","intervalId","getBBox","_imageLoaded","bind","createFootageData","ob","footageData","_footageLoaded","ImagePreloaderFactory","images","loadAssets","cb","_createImageData","setAssetsPath","setPath","loadedImages","loadedFootages","getAsset","createImgData","crossOrigin","createImageData","setAttributeNS","_elementHelper","append","appendChild","setCacheType","elementHelper","BaseEvent","triggerEvent","eventName","_cbs","callbacks","markerParser","parsePayloadLines","line","lines","keysCount","_markers","markers","_marker","markerData","tm","dr","cm","ProjectInterface","registerComposition","compositions","_thisProjectFunction","nm","prepareFrame","xt","currentFrame","compInterface","renderers","registerRenderer","getRenderer","_typeof$4","AnimationItem","isLoaded","frameRate","frameMult","playSpeed","playDirection","playCount","animationID","timeCompleted","segmentPos","isSubframeEnabled","_idle","_completedLoop","projectInterface","imagePreloader","audioController","configAnimation","onSetupError","onSegmentComplete","drawnFrameEvent","setParams","animType","RendererClass","globalData","defs","setProjectInterface","autoloadSegments","setupAnimation","fileName","trigger","setData","wrapperAttributes","attributes","getNamedItem","prerender","includeLayers","newLayers","fonts","fontManager","addChars","addFonts","initExpressions","loadNextSegment","segment","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","animData","fr","searchExtraCompositions","updaFrameModifier","waitForFontsLoaded","triggerConfigError","rendererType","initItems","gotoFrame","resize","updateContainerSize","renderFrame","triggerRenderFrameError","togglePause","setCurrentRawFrameValue","getMarkerData","markerName","marker","numValue","frameModifier","advanceTime","nextValue","_isComplete","checkSegments","adjustSegment","pendingFrame","getPath","getAssetData","hide","show","updateDocumentData","getElementByPath","animationManager","registeredAnimations","initTime","playingAnimationsNum","_stopped","_isFrozen","removeElement","animItem","subtractPlayingCount","registerAnimation","elem","addPlayingCount","activate","nowTime","elapsedTime","requestAnimationFrame","first","searchAnimations","standalone","animElements","getElementsByClassName","lenAnims","setAttribute","getElementsByTagName","innerText","div","freeze","unfreeze","getRegisteredAnimations","animations","BezierFactory","str","beziers","bezEasing","BezierEasing","kSampleStepSize","float32ArraySupported","A","aA1","aA2","B","C","calcBezier","aT","getSlope","points","_p","_mSampleValues","_precomputed","get","mX1","mY1","mX2","mY2","_precompute","_getTForX","_calcSampleValues","aX","mSampleValues","intervalStart","currentSample","kSplineTableSize","guessForT","initialSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","binarySubdivide","pooling","poolFactory","initialLength","_create","_release","_length","_maxLength","pool","newElement","release","bezierLengthPool","addedLength","percents","lengths","segmentsLengthPool","totalLength","bezFunction","math","pointOnLine2D","x1","y1","x2","y2","x3","y3","det1","getBezierLength","pt1","pt2","pt3","pt4","ptCoord","perc","ptDistance","curveSegments","lastPoint","lengthData","BezierData","segmentLength","PointData","partial","partialLength","buildBezierData","storedData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","dir","bezierSegmentPoints","getSegmentsLength","shapeData","segmentsLength","pathV","pathO","pathI","getNewSegment","startPerc","endPerc","t0","t1","u0","u1","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","getPointInSegment","percent","pointOnLine3D","z1","z2","z3","diffDist","dist1","dist2","dist3","bez","PropertyFactory","initFrame","mathAbs","interpolateValue","frameNum","caching","newValue","offsetTime","propType","pv","keyData","nextKeyData","keyframeMetadata","fnc","iterationIndex","lastIndex","keyframes","keyframesMetadata","endValue","nextKeyTime","keyTime","ti","ind","__fnct","getBezierEasing","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","sh","out","quat","qx","qy","qz","qw","heading","atan2","attitude","asin","bank","quaternionToEuler","omega","cosom","sinom","scale0","scale1","ax","ay","az","aw","bx","by","bz","bw","acos","sin","slerp","createQuaternion","values","c1","cos","c2","c3","s1","s2","s3","getValueAtCurrentTime","renderedFrame","_caching","renderResult","setVValue","multipliedValue","mult","_mdf","processEffectsSequence","frameId","effectsSequence","lock","_isFirstFrame","finalValue","kf","addEffect","effectFunction","addDynamicProperty","ValueProperty","vel","MultiDimensionalProperty","KeyframedValueProperty","KeyframedMultidimensionalProperty","arrLen","getProp","DynamicPropertyContainer","dynamicProperties","_isAnimated","iterateDynamicProperties","initDynamicPropertyContainer","pointPool","ShapePath","setPathData","setLength","doubleArrayLength","setXYAt","setTripleAt","vX","vY","oX","oY","iX","iY","newPath","vertices","outPoints","inPoints","cnt","shapePool","shapePath","shape","cloned","ShapeCollection","addShape","releaseShapes","shapeCollectionPool","newShapeCollection","shapeCollection","ShapePropertyFactory","interpolateShape","previousValue","keyPropS","keyPropE","isHold","vertexValue","interpolateShapeCurrentTime","resetShape","paths","localShapeCollection","shape1","shape2","shapesEqual","ShapeProperty","reset","KeyframedShapeProperty","EllShapeProperty","cPoint","EllShapePropertyFactory","convertEllToPath","p0","p1","s0","_cw","_v","StarShapeProperty","StarShapePropertyFactory","sy","ir","is","convertToPath","convertStarToPath","convertPolygonToPath","or","os","rad","roundness","perimSegment","numPts","angle","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","currentAng","ox","oy","RectShapeProperty","RectShapePropertyFactory","convertRectToPath","v0","v1","Matrix","_cos","_sin","_tan","_rnd","mCos","mSin","_t","rotateX","rotateY","rotateZ","shear","sx","skew","skewFromAxis","scale","sz","setTransform","m","translate","tx","tz","a2","b2","d2","e2","f2","g2","h2","i2","j2","k2","l2","m2","n2","o2","p2","_identityCalculated","a1","b1","d1","e1","f1","g1","h1","i1","j1","k1","l1","m1","n1","o1","isIdentity","_identity","matr","cloneFromProps","applyToPoint","z","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","applyToPointArray","inversePoints","pts","retPts","applyToTriplePoints","p4","p5","p12","p13","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","_typeof$3","setLocation","setSubframeRendering","setPrefix","setQuality","inBrowser","installPlugin","plugin","getFactory","checkReady","readyStateCheckInterval","getQueryVariable","variable","vars","queryString","pair","decodeURIComponent","useWebWorker","setIDPrefix","__getFactory","version","scripts","myScript","define","ShapeModifiers","modifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","PuckerAndBloatModifier","initModifierProperties","addShapeToModifier","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segmentOb","shapeSegments","shapeS","shapeE","releasePathsData","processShapes","shapePaths","_s","totalShapeLength","edges","newShapesData","addShapes","lastShape","addPaths","newPaths","addSegment","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","processPath","centerPoint","pathLength","clonedPath","TransformPropertyFactory","defaultVector","TransformProperty","pre","appliedTransformations","px","py","pz","rx","ry","rz","_isDirty","applyToMatrix","mat","forceRender","precalculateMatrix","autoOriented","v2","getValueAtTime","autoOrient","_addDynamicProperty","getTransformProperty","RepeaterModifier","RoundCornersModifier","getFontProperties","fontData","styles","fStyle","fWeight","weight","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","matrix","applyTransforms","inv","scaleX","scaleY","elemsData","_currentCopies","_elements","_groups","resetElements","elements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","_render","items","itemsTransform","cont","hasReloaded","copies","group","ix","reloadShapes","elems","transformData","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","rd","currentV","currentI","currentO","closerV","distance","newPosPerc","FontManager","emptyChar","w","combinedCharacters","surrogateModifiers","zeroWidthJoiner","setUpNode","font","family","parentNode","fontFamily","fontSize","fontVariant","fontStyle","fontWeight","letterSpacing","offsetWidth","familyArray","enabledFamilies","trimFontOptions","parent","createHelper","def","helper","engine","fontProps","tHelper","fFamily","textContent","fClass","tCanvasHelper","OffscreenCanvas","measureText","getComputedTextLength","Font","typekitLoaded","_warned","setIsLoadedBinded","setIsLoaded","checkLoadedFontsBinded","checkLoadedFonts","isModifier","firstCharCode","secondCharCode","sum","isZeroWidthJoiner","isCombinedCharacter","_char3","fontPrototype","found","ch","cache","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","loaded","monoCase","sansCase","fPath","fOrigin","querySelectorAll","sc","getCharData","_char","console","getFontByName","fName","_char2","fontName","doubleSize","singleSize","loadedCount","removeChild","RenderableElement","initRenderable","isInRange","hidden","isTransparent","renderableComponents","addRenderableComponent","removeRenderableComponent","prepareRenderableFrame","num","checkLayerLimits","checkTransparency","finalTransform","mProp","renderConfig","hideOnTransparent","renderRenderable","sourceRectAtTime","getLayerSize","textData","MaskManagerInterface","MaskInterface","mask","_mask","_data","maskManager","_masksInterfaces","viewData","ExpressionPropertyInterface","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","property","getVelocityAtTime","numKeys","valueProp","assign","valueAtTime","speedAtTime","getSpeedAtTime","velocityAtTime","propertyGroup","defaultGetter","UnidimensionalPropertyInterface","arrValue","MultidimensionalPropertyInterface","TransformExpressionInterface","_thisFunction","rotation","xRotation","yRotation","xPosition","yPosition","zPosition","anchorPoint","_px","_py","_pz","_transformFactory","LayerExpressionInterface","getMatrix","toWorldMat","_elem","toWorldVec","applyPoint","toWorld","fromWorldVec","invertPoint","fromWorld","hierarchy","fromComp","sampleImage","transformInterface","_thisLayerFunction","shapeInterface","effect","textInterface","toComp","anchorPointDescriptor","defineProperties","hasParent","layerInterface","anchor_point","active","startTime","source","inPoint","outPoint","_name","registerMaskInterface","registerEffectsInterface","effects","propertyGroupFactory","interfaceFunction","parentPropertyGroup","PropertyInterface","propertyName","EffectsExpressionInterface","createGroupInterface","groupInterface","ef","mn","effectElements","_propertyGroup","createValueInterface","numProperties","np","enabled","en","expressionProperty","setGroupProperty","createEffectsInterface","effectsManager","effectsData","CompExpressionInterface","layer","pixelAspect","compSize","frameDuration","displayStartTime","numLayers","ShapePathInterface","view","propertyIndex","ShapeExpressionInterface","iterateElements","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","gradientFillInterfaceFactory","interfaces","transformInterfaceFactory","cix","contentsInterfaceFactory","startPoint","endPoint","_dashPropertyGroup","dashOb","addPropertyToDashOb","dataProps","strokeWidth","dash","start","skewAxis","outerRadius","outerRoundness","innerRoundness","innerRadius","radius","_interfaceFunction","TextExpressionInterface","_prevValue","_sourceText","sourceText","textProperty","stringValue","currentData","getBlendMode","blendModeEnums","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","EffectsManager","effectItem","GroupEffect","BaseElement","FrameElement","_typeof$2","eff","checkMasks","effectsInterface","shapesData","itemsData","setBlendMode","blendModeValue","bm","baseElement","layerElement","initBaseData","layerId","getType","prepareProperties","isVisible","_isParent","FootageInterface","dataInterfaceFactory","outlineInterface","currentPropertyName","currentProperty","getFootageData","searchProperty","propertyNameIndex","outlineInterfaceFactory","dataInterface","FootageElement","imageLoader","AudioElement","_isPlaying","_canPlay","_currentTime","_volumeMultiplier","_previousVolume","_placeholder","lv","au","BaseRenderer","TransformElement","MaskElement","maskElement","solidPath","rect","expansor","feMorph","properties","count","currentMasks","maskType","maskRef","getShapeProp","lastPath","filterID","expan","lastOperator","filterId","lastRadius","createLayerSolidPath","invRect","drawPath","maskedElement","getBaseElement","timeRemapped","totalVolume","volumeValue","checkLayers","buildItem","checkPendingElements","createItem","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","createFootage","buildAllItems","pInterface","progressiveLoad","buildElementParenting","parentName","setAsParent","setHierarchy","addPendingElement","pendingElements","pathValue","setupGlobalData","fontsContainer","initTransform","_matMdf","_opMdf","ao","renderTransform","finalMat","globalToLocal","transforms","ptNew","mHelper","getMaskProperty","isFirstFrame","getMaskelement","pathNodes","pathString","pathShapeValue","filtersFactory","filId","skipCoordinates","fil","feColorMatrix","featureSupport","registeredEffects","idPrefix","SVGEffects","filterManager","createFilter","filters","Effect","countsAsEffect","registerEffect","SVGBaseElement","HierarchyElement","RenderableDOMElement","IImageElement","initElement","sourceRect","ProcessedElement","IShapeElement","initRendererElement","createContainerElements","matteElement","transformedElement","_sizeChanged","gg","layerElementParent","masker","createAlphaToLuminanceFilter","maskGroup","maskGrouper","feCTr","feFunc","alphaRect","ln","hd","cp","clipId","cpGroup","renderElement","destroyBaseElement","createRenderableComponents","renderableEffectsManager","setMatte","initHierarchy","checkParenting","createContent","renderInnerContent","innerElem","pr","imagePreserveAspectRatio","addShapeToModifiers","shapeModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","searchProcessedElement","processedElements","addProcessedElement","lineCapEnum","lineJoinEnum","SVGShapeData","transformers","level","caches","lStr","lvl","SVGStyleData","pElem","msElem","DashProperty","dashStr","dashArray","dashoffset","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGNoStyleData","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","ShapeGroupData","prevViewData","gr","SVGTransformData","comparePoints","stops","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","gf","cst","opacityId","maskId","opFill","lc","lj","ml","of","ms","ost","buildShapeString","_o","shapeString","SVGElementsRenderer","_identityMatrix","_matrixHelper","renderContentTransform","styleData","itemData","renderNoop","renderPath","pathStringTransformed","redraw","iterations","lLen","renderFill","styleElem","renderGradientStroke","renderGradient","renderStroke","hasOpacity","attr1","attr2","cValues","oValues","ang","dist","createRenderFunction","SVGShapeElement","stylesList","animatedContents","LetterProps","sw","fc","TextProperty","_frameId","keysIndex","canResize","minimumFontSize","ascent","boxWidth","defaultBoxWidth","justifyOffset","lh","lineWidths","ls","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","completeTextData","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","createStyleElement","elementData","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","setElementStyles","currentTransform","modifier","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","update","updated","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentValue","currentIndex","textKeys","buildFinalText","charCode","charactersArray","shouldCombine","newLineFlag","letters","anchorGrouping","currentSize","currentPos","currentLine","lineWidth","maxLineWidth","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","an","anIndexes","animatorJustifyOffset","extra","animatorData","letterData","based","animators","indexes","fh","fs","fb","rn","totalChars","newInd","currentInd","newData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","TextSelectorProp","TextSelectorPropFactory","_currentTextLength","finalS","finalE","xe","ne","sm","getMult","easer","tot","smoothness","threshold","newCharsFlag","divisor","getTextSelectorProp","TextAnimatorDataProperty","animatorProps","defaultData","textAnimatorAnimatables","TextAnimatorProperty","renderType","_hasMaskedPath","_textData","_renderType","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","ITextElement","searchProperties","getMeasures","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","prevPoint","tanAngle","matrixHelper","renderedLettersCount","tLength","pi","letterValue","yOff","firstLine","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","initPathPos","initSegmentInd","initPointInd","letterM","letterP","defaultPropsArray","animatorFirstCharOffset","justifyOffsetMult","isNewLine","animatorOffset","rot","atan","textAnimator","buildNewText","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","emptyShapeData","SVGTextLottieElement","textSpans","ISolidElement","NullElement","SVGRendererBase","ICompElement","SVGCompElement","supports3d","SVGRenderer","svgElement","ariaLabel","title","titleElement","titleId","descElement","descId","preserveAspectRatio","contentVisibility","viewBoxOnly","viewBoxSize","focusable","filterSize","destroyed","CVContextData","saved","cArrPos","cTr","cO","savedOp","ShapeTransformManager","sequences","sequenceList","transform_key_count","CVEffects","CVMaskElement","hasMasks","CVBaseElement","CVShapeData","transformsManager","styledShapes","styledShape","addTransformSequence","trNodes","CVShapeElement","CVTextElement","stroke","currentRender","sWidth","fValue","CVImageElement","CVSolidElement","CanvasRendererBase","clearCanvas","dpr","devicePixelRatio","currentGlobalAlpha","contextData","transformMat","CVCompElement","CanvasRenderer","HBaseElement","HSolidElement","HShapeElement","shapesContainer","currentBBox","HTextElement","textPaths","isMasked","HCameraElement","pe","_prevMat","HImageElement","HybridRendererBase","threeDElements","camera","HCompElement","HybridRenderer","singleShape","textContainer","buildTextContents","textArray","textContents","currentTextContent","fromCharCode","buildShapeData","shapeItem","tSpan","usesGlyphs","cachedSpansLength","span","childSpan","glyph","glyphElement","_debug","tElement","justify","textBox","bbox","renderedLetter","textSpan","appendElementInPos","nextElement","insertBefore","setElements","getElements","destroyElements","duplicate","newLength","currentSavedOp","set","sequence","processSequence","processSequences","getNewKey","canvasContext","beginPath","moveTo","lineTo","bezierCurveTo","save","clip","createElements","blendMode","globalCompositeOperation","hideElement","showElement","forceRealStack","ctxTransform","ctxOpacity","restore","transformHelper","dashResetter","preTransforms","co","wi","da","addTransformToStyleList","removeTransformFromStyleList","closeStyles","shouldRender","ownTransforms","_shouldRender","renderShapeTransform","parentTransform","groupTransform","drawLayer","currentStyle","coOp","strokeStyle","grd","lineCap","lineJoin","miterLimit","setLineDash","lineDashOffset","closePath","isMain","renderGradientFill","renderStyledShape","shapeNodes","groupTransformMat","createLinearGradient","createRadialGradient","addColorStop","hasFill","hasStroke","commands","pathArr","commandsCounter","lastFill","lastStroke","lastStrokeW","widthCrop","heightCrop","imgW","imgH","imgRel","canvasRel","par","drawImage","cProps","trProps","globalAlpha","actionFlag","popped","containerStyle","mozTransformOrigin","transformCanvas","isDashed","elementWidth","elementHeight","elementRel","animationRel","offsetHeight","fillType","clearRect","checkBlendMode","tg","transformedElementStyle","matrixValue","webkitTransform","addEffects","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","boundingBox","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","bounds","shapeBoundingBox","xMax","yMax","tempBoundingBox","p3","b2ac","t2","calculateF","calculateBoundingBox","expandStrokeBoundingBox","widthProperty","kfw","currentBoxContains","box","changed","shapeStyle","shapeTransform","compW","compH","innerElemStyle","textColor","lineHeight","tParent","tCont","tContStyle","tContTranslation","tStyle","tSpanTranslation","translation","textPath","margin","svgTransform","setup","perspectiveStyle","perspectiveElem","perspective","webkitPerspective","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","mRotationX","mRotationY","hasMatrixChanged","matValue","imageElem","newDOMElement","ddd","addTo3dContainer","nextDOMElement","nextLayer","getThreeDContainerByPos","startPos","endPos","createThreeDContainer","center","threeDContainerData","build3dContainers","lastThreeDContainerData","currentContainer","resizerElem","overflow","svg","cWidth","cHeight","floatingContainer","_createBaseContainerElements","Expressions","stackCount","registers","pushExpression","popExpression","releaseInstances","registerExpressionProperty","expression","_typeof$1","seedRandom","startdenom","significance","ARC4","keylen","me","S","flatten","depth","typ","mixkey","seed","smear","stringseed","tostring","shortseed","entropy","crypto","msCrypto","getRandomValues","browser","plugins","screen","autoseed","arc4","prng","int32","quick","pass","is_math_call","initialize$2","SHAPE","ExpressionManager","$bm_isInstanceOfArray","isNumerable","tOfV","$bm_neg","tOfA","lenA","retArr","easeInBez","easeOutBez","easeInOutBez","tOfB","lenB","sub","mul","$bm_sum","$bm_sub","$bm_mul","$bm_div","$bm_mod","mm","radiansToDegrees","radians_to_degrees","degreesToRadians","degrees_to_radians","helperLengthArray","arr1","arr2","normalize","vec","linear","tMin","tMax","value1","value2","_tMin","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","needsVelocity","_needsRandom","elemType","$bm_transform","thisProperty","loopIn","loop_in","loopOut","loop_out","smooth","fromCompToSurface","thisLayer","thisComp","scoped_bm_rt","expression_function","eval","wiggle","freq","amp","iWiggle","lenWiggle","addedAmps","periods","loopInDuration","loopOutDuration","velocity","textIndex","textTotal","selectorValue","lookAt","elem1","elem2","fVec","pitch","easeOut","val1","val2","applyEase","easeIn","ease","iKey","lenKey","nearestKey","obKey","framesToTime","fps","timeToFrames","seedrandom","randSeed","posterizeTime","framesPerSecond","executeExpression","_value","frameExpressionId","__preventDeadCodeRemoval","expressionHelpers","searchExpressions","_cachingAtTime","getStaticValueAtTime","addPropertyDecorator","durationFlag","cycleDuration","firstKeyFrame","lastKeyFrame","initV","endV","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","samples","sampleValue","sampleFrequency","getTransformValueAtTime","_transformCachingAtTime","anchor","rotationZ","rotationY","rotationX","orientation","positionX","positionY","positionZ","getTransformStaticValueAtTime","propertyGetProp","ShapePropertyConstructorFunction","getConstructorFunction","KeyframedShapePropertyConstructorFunction","getKeyframedConstructorFunction","ShapeExpressions","isClosed","pointOnPath","_segmentsLength","accumulatedLength","initIndex","endIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","tangentOnPath","normalOnPath","shapeValue","lastTime","propertyGetShapeProp","trims","initialize$1","addDecorator","getExpressionValue","calculateExpression","isKeyframed","hasExpressions","initialize","SVGComposableEffect","SVGTintFilter","matrixFilter","feMerge","createMergeNode","SVGFillFilter","SVGStrokeEffect","initialized","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","globalFilterSize","feGaussianBlur","feOffset","feFlood","feComposite","resultId","ins","feMergeNode","colorBlack","colorWhite","groupPath","elemChildren","childNodes","removeAttribute","pathMasker","dasharrayValue","getTotalLength","lineLength","units","color1","color2","color3","tableR","tableG","tableB","getTableValue","inputBlack","inputWhite","gamma","outputBlack","outputWhite","colorValue","table","outputDelta","inputDelta","col","_svgMatteSymbols","SVGMatte3Effect","filterElem","SVGGaussianBlurEffect","findSymbol","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","symbol","sigma","dimensions","sigmaX","sigmaY","edgeMode","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propFullName","secret","getShim","isRequired","ReactPropTypes","bigint","bool","func","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","checkPropTypes","PropTypes","canPromise","QRCode","SvgRenderer","renderCanvas","renderFunc","argsNum","isLastArgCb","reject","create","toCanvas","toDataURL","renderToDataURL","getSymbolSize","getRowColCoords","posCount","intervals","positions","getPositions","coords","posLength","Mode","ALPHA_NUM_CHARS","AlphanumericData","ALPHANUMERIC","getBitsLength","getLength","write","bitBuffer","put","BitBuffer","bufIndex","putBit","getLengthInBits","bit","BitMatrix","reservedBit","row","reserved","xor","isReserved","encodeUtf8","ByteData","BYTE","ECLevel","EC_BLOCKS_TABLE","EC_CODEWORDS_TABLE","getBlocksCount","errorCorrectionLevel","L","M","Q","H","getTotalCodewordsCount","defaultValue","fromString","Utils","G15_BCH","getBCHDigit","getEncodedBits","EXP_TABLE","LOG_TABLE","log","exp","KanjiData","KANJI","toSJIS","Patterns","PATTERN000","PATTERN001","PATTERN010","PATTERN011","PATTERN100","PATTERN101","PATTERN110","PATTERN111","PenaltyScores","getMaskAt","maskPattern","getPenaltyN1","sameCountCol","sameCountRow","lastCol","lastRow","getPenaltyN2","getPenaltyN3","bitsCol","bitsRow","getPenaltyN4","darkCount","modulesCount","applyMask","getBestMask","setupFormatFunc","numPatterns","bestPattern","lowerPenalty","Infinity","penalty","VersionCheck","Regex","NUMERIC","ccBits","MIXED","getCharCountIndicator","getBestModeForData","dataStr","testNumeric","testAlphanumeric","testKanji","NumericData","remainingNum","GF","coeff","divident","generateECPolynomial","degree","poly","AlignmentPattern","FinderPattern","MaskPattern","ECCode","ReedSolomonEncoder","Version","FormatInfo","Segments","setupFormatInfo","bits","createData","dataTotalCodewordsBits","getSymbolTotalCodewords","remainingByte","totalCodewords","ecTotalCodewords","dataTotalCodewords","ecTotalBlocks","blocksInGroup1","totalCodewordsInGroup1","dataCodewordsInGroup1","dataCodewordsInGroup2","ecCount","rs","dcData","ecData","maxDataSize","dataSize","encode","createCodewords","createSymbol","fromArray","estimatedVersion","rawSegments","rawSplit","getBestVersionForData","bestVersion","dataBits","moduleCount","modules","setupFinderPattern","setupTimingPattern","setupAlignmentPattern","setupVersionInfo","inc","bitIndex","byteIndex","dark","setupData","toSJISFunc","setToSJISFunction","Polynomial","genPoly","paddedData","remainder","buff","numeric","kanji","byte","BYTE_KANJI","TEST_KANJI","TEST_NUMERIC","TEST_ALPHANUMERIC","getStringByteLength","unescape","encodeURIComponent","getSegments","regex","getSegmentsFromString","byteSegs","kanjiSegs","numSegs","alphaNumSegs","isKanjiModeEnabled","getSegmentBitsLength","buildSingleSegment","modesHint","bestMode","seg","segs","buildNodes","prevNodeIds","nodeGroup","currentNodeIds","lastCount","prevNodeId","buildGraph","optimizedSegs","curr","prevSeg","mergeSegments","toSJISFunction","CODEWORDS_COUNT","digit","G18_BCH","getReservedBitsCount","getTotalBitsFromDataArray","totalBits","reservedBits","getCapacity","usableBits","ecl","currentVersion","getBestVersionForMixedData","getBestVersionForDataLength","qrData","canvasEl","getCanvasElement","getOptions","getImageWidth","image","qrToImageData","putImageData","rendererOpts","quality","getColorAttrib","attrib","svgCmd","cmd","qrcodesize","moveBy","newRow","qrToPath","viewBox","svgTag","hex2rgba","hexCode","hexValue","getScale","qrSize","imgData","qr","symbolSize","scaledMargin","palette","posDst","pxColor","HOOK_MARK","warningFunc","getFieldValue","getFieldsValue","getFieldError","getFieldWarning","getFieldsError","isFieldsTouched","isFieldTouched","isFieldValidating","isFieldsValidating","resetFields","setFields","setFieldValue","setFieldsValue","validateFields","submit","getInternalHooks","dispatch","initEntityValue","registerField","useSubscribe","setInitialValues","destroyForm","setCallbacks","registerWatch","getFields","setValidateMessages","setPreserve","getInitialValue","toArray","formatRegExp","convertFieldsError","errors","fields","field","template","isEmptyValue","isNativeStringType","asyncSerialArray","arrLength","next","original","AsyncValidationError","_this","_inheritsLoose","asyncMap","objArr","option","pending","flattenArr","flattenObjArr","firstFields","objArrKeys","objArrLength","total","asyncParallelArray","complementError","rule","oe","fieldValue","fullFields","fullField","deepMerge","urlReg","messages","getTime","getMonth","getYear","word","includeBoundaries","v4","v6seg","v6","v46Exact","v4exact","v6exact","ipv4","ipv6","getUrlRegex","ruleType","enum","rules","boolean","float","dateObject","newMessages","Schema","_messages","defaultMessages","validate","source_","oc","series","_this2","validator","getValidationMethod","errorFields","doIt","deep","defaultField","addFullField","schema","errorList","suppressWarning","filledErrors","fieldsSchema","paredFieldsSchema","fieldSchema","fieldSchemaList","errs","finalErrors","asyncValidator","suppressValidatorError","complete","validators","messageIndex","register","entity","internalSet","removeIfUndefined","_paths","_toArray","restPath","_toConsumableArray","cloneDeep","cloneArrayDeep","cloneObjectDeep","getNamePath","store","namePath","setValue","newStore","cloneByNamePathList","namePathList","containsNamePath","matchNamePath","isObject","internalSetValues","prevValue","recursive","setValues","restValues","changedNamePath","every","nameUnit","defaultGetValueFromEvent","valuePropName","move","moveIndex","diff","AsyncValidator","RawAsyncValidator","replaceMessage","kv","CODE_LOGIC_ERROR","validateRule","_x2","_x3","_x4","_x5","_validateRule","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","messageVariables","cloneRule","originValidator","subRuleField","subResults","fillVariableResult","wrap","_context2","prev","ruleIndex","_ref4","mergedMessage","all","subValue","sent","abrupt","validateRules","validateFirst","summaryPromise","filledRules","currentRule","originValidatorFunc","hasPromise","catch","w1","warningOnly","w2","_callee","_context","_x6","_x7","rulePromises","_x9","_finishOnFirstFailed","finishOnFirstFailed","_x8","_finishOnAllFailed","finishOnAllFailed","_callee3","_context3","errorsList","_ref5","_callee4","_context4","ruleError","EMPTY_ERRORS","requireUpdate","shouldUpdate","Field","_React$Component","_inherits","_super","_createSuper","_classCallCheck","resetCount","cancelRegisterFunc","mounted","touched","dirty","validatePromise","prevValidating","warnings","cancelRegister","_this$props","preserve","isListField","_this$props2","_fieldContext$prefixN","fieldContext","prefixName","getRules","_this$props3","_this$props3$rules","refresh","triggerMetaEvent","onMetaChange","getMeta","onStoreChange","prevStore","_this$props4","_this$props4$dependen","dependencies","onReset","curValue","namePathMatch","reRender","validating","dependency","relatedFields","rootPromise","_this$props5","_this$props5$validate","triggerName","filteredRules","validateTrigger","ruleErrors","_ruleErrors$forEach","nextErrors","nextWarnings","_ref3$errors","isFieldDirty","initialValue","getErrors","getWarnings","isList","isPreserve","getOnlyChild","meta","getControlled","isFunction","childList","toChildrenArray","childProps","_this$props6","getValueFromEvent","getValueProps","mergedValidateTrigger","_getInternalHooks","mergedGetValueProps","originTriggerFunc","control","validateTriggerList","originTrigger","_assertThisInitialized","_createClass","_this$props7","forceUpdate","returnChildNode","_this$getOnlyChild","FieldContext","keyManager","parentPrefixName","listContext","getKey","pathName","ListContext","_ref3$value","onChange","getNewValue","operations","indexSet","Set","has","valueIndex","_move","listValue","SPLIT","cell","NameMap","kvs","Map","delete","cells","_cell$match","_cell$match2","unit","FormStore","forceRootUpdate","formHooked","subscribable","fieldEntities","initialValues","lastValidatePromise","getForm","_init","prevWithoutPreserves","_this$prevWithoutPres","nextStore","updateStore","getFieldEntities","isMergedPreserve","initValue","watchList","notifyWatch","timeoutId","warningUnhooked","pure","getFieldsMap","getFieldEntitiesForNamePathList","nameList","INVALIDATE_NAME_PATH","filterFunc","filteredNameList","_entity$isListField","arg0","arg1","isAllFieldsTouched","shortNamePath","fieldNamePath","isNamePathListTouched","entities","namePathListEntities","testField","resetWithFieldInitialValue","records","requiredFieldEntities","resetWithFields","originValue","skipExist","_requiredFieldEntitie","notifyObservers","fieldData","fieldPreserve","mergedPreserve","subNamePath","_prevStore","triggerDependenciesUpdate","updateValue","_namePath","mergedInfo","childrenFields","getDependencyChildrenFields","onValuesChange","triggerOnFieldsChange","rootNamePath","dependencies2fields","dependencyNamePath","fillChildren","filedErrors","onFieldsChange","fieldName","provideNameList","promiseList","mergedErrors","mergedWarnings","_ref6","hasError","allPromiseFinish","resultNamePathList","_ref7","returnPromise","outOfDate","onFinish","onFinishFailed","formRef","_React$useState","formStore","FormContext","triggerFormChange","triggerFormFinish","registerForm","unregisterForm","FormProvider","onFormChange","onFormFinish","formContext","formsRef","changedFields","forms","newForms","_ref$component","Component","_ref$validateTrigger","_onFieldsChange","_onFinish","_useForm","useForm","formInstance","_formInstance$getInte","childrenNode","mountRef","childrenRenderProps","prevFieldsRef","sourceKeys","targetKeys","sourceValue","targetValue","isSimilar","formContextValue","wrapperNode","onSubmit","preventDefault","stopPropagation","_restProps$onReset","_args$","_useState","valueStr","valueStrRef","isValidForm","namePathRef","nextValueStr","RefForm","FieldForm","List","useWatch","makePrefixMap","styleProp","prefixes","vendorPrefixes","domSupport","win","animationend","transitionend","transition","getVendorPrefixes","_document$createEleme","prefixedEventNames","getVendorPrefixedEventName","prefixMap","stylePropList","internalAnimationEndName","internalTransitionEndName","supportTransition","animationEndName","transitionEndName","getTransitionName","transitionType","toUpperCase","STATUS_NONE","STATUS_APPEAR","STATUS_ENTER","STATUS_LEAVE","STEP_NONE","STEP_PREPARE","STEP_START","STEP_ACTIVE","STEP_ACTIVATED","useLayoutEffect","STEP_QUEUE","step","setStep","_useNextFrame","nextFrameRef","cancelNextFrame","raf","nextFrame","delay","nextFrameId","isCanceled","useNextFrame","_useNextFrame2","useIsomorphicLayoutEffect","nextStep","doNext","useStatus","supportMotion","visible","getElement","_ref$motionEnter","motionEnter","_ref$motionAppear","motionAppear","_ref$motionLeave","motionLeave","motionDeadline","motionLeaveImmediately","onAppearPrepare","onEnterPrepare","onLeavePrepare","onAppearStart","onEnterStart","onLeaveStart","onAppearActive","onEnterActive","onLeaveActive","onAppearEnd","onEnterEnd","onLeaveEnd","onVisibleChanged","asyncVisible","setAsyncVisible","_useState3","_useState4","setStatus","_useState5","_useState6","setStyle","mountedRef","deadlineRef","getDomElement","activeRef","onInternalMotionEnd","deadline","canEnd","currentActive","_useDomMotionEvents","cacheElementRef","callbackRef","removeMotionEvents","useDomMotionEvents","patchMotionEvents","eventHandlers","_useStepQueue","useStepQueue","newStep","onPrepare","_eventHandlers$step","_useStepQueue2","startStep","nextStatus","isMounted","firstMountChangeRef","mergedStyle","DomWrapper","transitionSupport","isSupportTransition","motionName","CSSMotion","_props$visible","_props$removeOnLeave","removeOnLeave","leavedClassName","eventProps","nodeRef","wrapperNodeRef","_useStatus","HTMLElement","findDOMNode","_useStatus2","statusStep","statusStyle","mergedVisible","renderedRef","motionChildren","setNodeRef","fillRef","mergedProps","statusSuffix","supportRef","STATUS_ADD","STATUS_KEEP","STATUS_REMOVE","STATUS_REMOVED","wrapKeyToObject","keyObj","parseKeys","diffKeys","currentLen","prevKeyObjects","currentKeyObjects","hit","currentKeyObj","duplicatedKeys","matchKey","_excluded2","MOTION_PROP_NAMES","OriginCSSMotion","CSSMotionList","keyEntities","removeKey","nextKeyEntities","_onVisibleChanged","onAllRemoved","motionProps","changedVisible","parsedKeyObjects","prevEntity","Notice","_Component","closeTimer","clearCloseTimer","noticeKey","startCloseTimer","prevProps","updateMark","restartCloseTimer","componentClass","dataOrAriaAttributeProps","onMouseEnter","onMouseLeave","ReactDOM","createRoot","fullClone","reactRender","unmountComponentAtNode","toggleWarning","skip","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","usingClientEntryPoint","MARK","root","modernRender","legacyRender","modernUnmount","_modernUnmount","_container$MARK","unmount","legacyUnmount","_unmount","getUuid","notices","hookRefs","originNotice","_originNotice$key","previousState","noticeIndex","updatedNotices","userPassKey","_ref2$notice","noticePropsMap","noticeKeys","_notice$onClose","motionClassName","motionStyle","_this2$noticePropsMap","newInstance","called","_useNotification","createdRef","_React$useState2","firstMount","noticeEle","originElements","findIndex","ele","cloneList","items_per_page","jump_to","jump_to_confirm","page","prev_page","next_page","prev_5","next_5","prev_3","next_3","page_size","keepEmpty","isFragment","contains","APPEND_ORDER","MARK_KEY","containerCache","getMark","attachTo","getOrder","findStyles","tagName","injectCSS","css","styleNode","nonce","innerHTML","firstChild","existStyle","nextSibling","findExistNode","syncRealContainer","cachedRealContainer","placeholderStyle","existNode","_option$csp","_option$csp2","_option$csp3","newNode","condition","cacheRef","useSafeState","destroyRef","ignoreDestroy","caf","handle","cancelAnimationFrame","rafUUID","rafIds","cleanup","wrapperRaf","times","callRef","leftTimes","realId","cancel","composeRef","refs","refList","useComposeRef","_len2","_key2","nodeOrComponent","_type$prototype","_nodeOrComponent$prot","warned","aa","ca","ea","fa","ha","ia","ja","ka","la","ma","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","ra","ta","pa","qa","oa","xlinkHref","va","for","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","stack","Na","Oa","prepareStackTrace","Reflect","construct","Pa","Qa","$$typeof","_payload","Ra","Sa","Ta","nodeName","Va","_valueTracker","stopTracking","Ua","Wa","checked","Xa","activeElement","Ya","defaultChecked","_wrapperState","initialChecked","Za","controlled","ab","bb","db","ownerDocument","eb","selected","defaultSelected","gb","hb","ib","jb","kb","lb","mb","nb","namespaceURI","MSApp","execUnsafeLocalFunction","lastChild","nodeType","nodeValue","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","qb","rb","sb","setProperty","tb","menuitem","area","base","br","embed","hr","keygen","link","param","track","wbr","ub","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","flags","Wb","memoizedState","dehydrated","Xb","Zb","sibling","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","unstable_now","ec","unstable_getCurrentPriorityLevel","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","clz32","pc","qc","LN2","rc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","fd","gd","Uc","jd","kd","ld","md","nd","od","keyCode","pd","qd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","ud","detail","vd","Ad","screenX","screenY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","code","repeat","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","datetime","password","tel","week","qe","re","se","te","ue","ve","we","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","compareDocumentPosition","Me","HTMLIFrameElement","contentWindow","Ne","contentEditable","Oe","focusedElem","selectionRange","documentElement","selectionStart","selectionEnd","defaultView","getSelection","extend","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","scrollLeft","scrollTop","focus","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationiteration","animationstart","Xe","Ye","Ze","$e","af","bf","cf","df","ff","hf","lf","mf","nf","Ub","D","pf","qf","rf","sf","capture","passive","J","F","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","char","ke","xf","yf","zf","Af","Bf","Cf","Df","Ef","Ff","Gf","Hf","Jf","queueMicrotask","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","E","G","Vf","Wf","Xf","Yf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","$f","ag","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","ug","vg","wg","xg","yg","I","zg","Ag","Bg","deletions","Cg","pendingProps","treeContext","retryLane","Dg","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","Pg","Qg","Rg","_currentValue","Sg","childLanes","Tg","firstContext","lanes","Ug","Vg","memoizedValue","Wg","Xg","Yg","interleaved","Zg","$g","ah","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","bh","eventTime","lane","dh","K","eh","gh","hh","ih","jh","kh","nh","_reactInternals","enqueueSetState","mh","enqueueReplaceState","enqueueForceUpdate","oh","shouldComponentUpdate","isPureReactComponent","ph","qh","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","rh","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","_owner","_stringRef","th","uh","vh","wh","xh","yh","implementation","zh","Ah","done","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","revealOrder","Nh","Oh","_workInProgressVersionPrimary","Ph","ReactCurrentDispatcher","Qh","Rh","N","O","P","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","baseQueue","di","ei","fi","lastRenderedReducer","hasEagerState","eagerState","lastRenderedState","gi","hi","ii","ji","ki","getSnapshot","li","mi","R","ni","lastEffect","stores","oi","qi","ri","deps","si","ui","vi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","readContext","useInsertionEffect","useReducer","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ki","digest","Li","Mi","Ni","WeakMap","Oi","Pi","Qi","Ri","componentDidCatch","Si","componentStack","Ti","pingCache","Ui","Vi","Wi","Xi","ReactCurrentOwner","Yi","Zi","$i","aj","bj","cj","dj","ej","baseLanes","cachePool","transitions","fj","gj","hj","ij","jj","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","kj","pendingContext","mj","Aj","Cj","Dj","nj","oj","pj","fallback","qj","rj","tj","dataset","dgst","uj","vj","_reactRetry","sj","subtreeFlags","wj","xj","isBackwards","rendering","renderingStartTime","tail","tailMode","yj","Ej","Fj","Gj","wasMultiple","multiple","suppressHydrationWarning","autoFocus","createTextNode","Hj","Ij","Jj","Kj","U","Lj","WeakSet","V","Mj","W","Nj","Oj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","_reactRootContainer","Xj","X","Yj","Zj","ak","onCommitFiberUnmount","componentWillUnmount","bk","ck","dk","ek","fk","isHidden","gk","hk","ik","jk","kk","lk","__reactInternalSnapshotBeforeUpdate","Wk","mk","nk","pk","Y","Z","qk","rk","tk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","finishedWork","finishedLanes","Qk","timeoutHandle","Rk","Sk","Tk","Uk","Vk","mutableReadLanes","Bc","Pj","onCommitFiberRoot","mc","onRecoverableError","Xk","onPostCommitFiberRoot","Yk","Zk","al","isReactComponent","pendingChildren","bl","mutableSourceEagerHydrationData","pendingSuspenseBoundaries","dl","el","fl","gl","hl","il","jl","zj","$k","ll","reportError","_internalRoot","nl","ol","pl","ql","sl","rl","unstable_scheduleHydration","tl","Events","ul","findFiberByHostInstance","bundleType","rendererPackageName","vl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","wl","isDisabled","supportsFiber","inject","createPortal","unstable_strictMode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","matchHtmlEntity","htmlEntities","unescapeHtmlEntity","ownKeys","enumerableOnly","symbols","sym","getOwnPropertyDescriptors","i18nInstance","defaultOptions","bindI18n","bindI18nStore","transEmptyNodeValue","transSupportBasicHtmlNodes","transWrapTextNodes","transKeepBasicHtmlNodesFor","useSuspense","I18nContext","getDefaults","ReportNamespaces","usedNamespaces","namespaces","ns","getI18n","initReactI18next","setDefaults","react","setI18n","_console","alreadyWarned","warnOnce","loadNamespaces","isInitialized","on","off","oldI18nextHasLoadedNamespace","lng","languages","fallbackLng","lastLng","loadNotPending","loadState","services","backendConnector","backend","isLanguageChangingTo","hasResourceBundle","resources","partialBundledLanguages","hasLoadedNamespace","isNewerI18next","ignoreJSONStructure","precheck","usePrevious","ignore","i18nFromProps","i18nFromContext","defaultNSFromContext","defaultNS","reportNamespaces","notReadyT","retNotReady","ready","wait","i18nOptions","keyPrefix","addUsedNamespaces","initializedStoreOnce","getT","getFixedT","nsMode","setT","joinedNS","previousJoinedNS","boundReset","isInitial","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Fragment","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","BrowserRouter","createHistory","Router","resolveToLocation","normalizeToLocation","forwardRefShim","forwardRef","LinkAnchor","forwardedRef","innerRef","navigate","ex","isModifiedEvent","Link","RouterContext","isDuplicateNavigation","NavLink","ariaCurrent","activeStyle","classNameProp","isActiveProp","locationProp","sensitive","strict","escapedPath","matchPath","classnames","joinClassnames","MAX_SIGNED_31_BIT_INT","commonjsGlobal","globalThis","createEventEmitter","handlers","changedBits","calculateChangedBits","contextProp","getUniqueId","emitter","nextProps","oldValue","observedBits","onUpdate","createNamedContext","historyContext","_isMounted","_pendingLocation","staticContext","computeRootMatch","isExact","HistoryContext","cacheCount","matched","pathCache","pathToRegexp","compilePath","memo","Route","computedMatch","isEmptyChildren","createURL","staticHandler","methodName","noop","Switch","useHistory","useLocation","useParams","isarray","compile","tokensToFunction","tokensToRegExp","PATH_REGEXP","tokens","defaultDelimiter","delimiter","escaped","asterisk","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","pretty","token","TypeError","attachKeys","route","endsWithDelimiter","groups","regexpToRegexp","parts","arrayToRegexp","stringToRegexp","__self","__source","jsx","jsxs","escape","_status","_result","Children","only","PureComponent","cloneElement","_currentValue2","_threadCount","_defaultValue","_globalName","createFactory","createRef","isValidElement","lazy","startTransition","unstable_act","sortIndex","performance","setImmediate","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","unstable_wrapCallback","_arrayLikeToArray","_arrayWithHoles","self","ReferenceError","asyncGeneratorStep","gen","_next","_throw","Constructor","_defineProperties","protoProps","staticProps","_createForOfIteratorHelper","allowArrayLike","_e","normalCompletion","didErr","_e2","Derived","hasNativeReflectConstruct","sham","Proxy","Super","NewTarget","possibleConstructorReturn","_getPrototypeOf","setPrototypeOf","__proto__","subClass","superClass","_iterableToArray","iter","_nonIterableRest","_objectSpread2","excluded","sourceSymbolKeys","propertyIsEnumerable","_objectWithoutPropertiesLoose","_possibleConstructorReturn","Op","desc","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","makeInvokeMethod","tryCatch","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","_invoke","AsyncIterator","PromiseImpl","invoke","record","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","doneResult","delegate","delegateResult","maybeInvokeDelegate","_sent","dispatchException","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","isGeneratorFunction","genFun","ctor","awrap","async","skipTempReset","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","_setPrototypeOf","arrayWithHoles","_arr","_n","_d","unsupportedIterableToArray","nonIterableRest","arrayLikeToArray","iterableToArray","_unsupportedIterableToArray","minLen","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","amdO","getter","__esModule","leafPrototypes","definition","chunkId","promises","miniCssF","inProgress","dataWebpackPrefix","script","needAttach","charset","nc","onScriptComplete","onerror","onload","doneFns","head","nmd","loadStylesheet","fullhref","existingLinkTags","dataHref","existingStyleTags","findStylesheet","linkTag","errorType","realHref","request","createStylesheet","installedCssChunks","miniCss","installedChunks","installedChunkData","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","chunkLoadingGlobal","consoleLogger","output","Logger","concreteLogger","logger","debug","forward","_len3","_key3","_len4","_key4","debugOnly","moduleName","baseLogger","EventEmitter","observers","events","observer","_cloned","defer","rej","makeString","getLastOfPath","cleanKey","canNotTraverseDeeper","_getLastOfPath","_getLastOfPath3","getPathWithDefaults","deepExtend","overwrite","regexEscape","_entityMap","isIE10","userAgentData","ownKeys$1","_objectSpread$1","_isNativeReflectConstruct","deepFind","keySeparator","endsWith","joinedPath","ResourceStore","_EventEmitter","silent","addNamespaces","emit","addResource","pack","removeNamespaces","getResource","compatibilityAPI","getDataByLanguage","postProcessor","processors","addPostProcessor","translator","processor","ownKeys$2","_objectSpread$2","_createSuper$1","_isNativeReflectConstruct$1","checkedLoadedFor","Translator","interpolation","resolved","nsSeparator","wouldCheckForNsInKey","seemsNaturalLanguage","userDefinedKeySeparator","userDefinedNsSeparator","possibleChars","looksLikeObjectPath","interpolator","nestingRegexp","lastKey","overloadTranslationOptionHandler","returnDetails","_this$extractFromKey","extractFromKey","namespace","appendNamespaceToCIMode","resUsedKey","usedKey","resExactUsedKey","exactUsedKey","resType","noObject","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","newKeyToUse","deepKey","extendTranslation","usedDefault","needsPluralHandling","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","isValidLookup","missingKeyNoValueFallbackToKey","resForMissing","updateMissing","lngs","fallbackLngs","languageUtils","getFallbackCodes","saveMissingTo","toResolveHierarchy","specificDefaultValue","defaultForMissing","missingKeyHandler","saveMissing","saveMissingPlurals","getSuffixes","suffix","appendNamespaceToMissingKey","parseMissingKeyHandler","_this3","defaultVariables","usedLng","usedNS","skipInterpolation","nestBef","skipOnVariables","interpolate","nest","postProcess","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","_this4","extracted","fallbackNS","needsZeroSuffixLookup","ordinal","shouldUseIntlApi","needsContextHandling","codes","utils","possibleKey","finalKeys","addLookupKeys","pluralSuffix","zeroSuffix","pluralSeparator","contextKey","contextSeparator","returnNull","returnEmptyString","resourceStore","capitalize","LanguageUtil","supportedLngs","formatLanguageCode","specialCases","lowerCaseLng","cleanCode","nonExplicitSupportedLngs","getLanguagePartFromCode","cleanedLng","isSupportedCode","lngOnly","supportedLng","fallbacks","getScriptPartFromCode","fallbackCode","fallbackCodes","addCode","sets","nr","_rulesPluralsTypes","deprecatedJsonVersions","suffixesOrder","zero","one","two","few","many","other","createRules","numbers","plurals","PluralResolver","compatibilityJSON","Intl","PluralRules","_unused","getRule","resolvedOptions","pluralCategories","pluralCategory1","pluralCategory2","pluralCategory","select","getSuffixRetroCompatible","idx","noAbs","simplifyPluralSuffix","returnSuffix","ownKeys$3","_objectSpread$3","Interpolator","escapeValue","iOpts","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapePrefix","unescapeSuffix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","regexpStr","regexpUnescapeStr","regexpUnescape","nestingRegexpStr","replaces","regexSafe","handleFormat","interpolationkey","missingInterpolationHandler","safeValue","todo","matchedVar","temp","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","matchedSingleQuotes","matchedDoubleQuotes","formatters","doReduce","ownKeys$4","_objectSpread$4","createCachedFormatter","formatter","Formatter","formats","NumberFormat","currency","DateTimeFormat","relativetime","RelativeTimeFormat","ListFormat","_format","mem","_parseFormatStr","formatStr","formatName","formatOptions","optStr","opt","_opt$split","_opt$split2","parseFormatStr","formatted","valOptions","formatParams","ownKeys$5","_objectSpread$5","_createSuper$2","_isNativeReflectConstruct$2","Connector","waitingReads","maxParallelReads","readingCalls","maxRetries","retryTimeout","toLoad","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","pendingCount","addResourceBundle","_getLastOfPath2","pushPath","removePending","loadedKeys","fcName","tried","read","queueLoad","loadOne","prepareLoading","_this5","fallbackValue","isUpdate","initImmediate","preload","tDescription","transformOptions","ownKeys$6","_objectSpread$6","_createSuper$3","_isNativeReflectConstruct$3","bindMemberFunctions","inst","I18n","external","isClone","defOpts","createClassOnDemand","ClassOrObject","lu","languageDetector","detection","storeApi","_this2$store","storeApiChained","_this2$store2","deferred","usedCallback","resolvedLanguage","setResolvedLanguage","lngInLngs","hasLanguageSomeTranslations","setLngProps","setLng","getBestMatchFromCodes","cacheUserLanguage","loadResources","detect","fixedT","resultKey","_this$translator","_this$translator2","exists","_this6","preResult","_this7","preloaded","newLngs","_this8","mergedOptions","membersToCopy","createInstance","reloadResources","use","setDefaultNamespace","loadLanguages","my","lan","imgArr","oSLanguage","showModal","setShowModal","setFrom","setCurrencyCode","setLoading","setVipType","centerDiv","homeDiv","processArr","processUnderArr","processWrapper","contentArr","showIndex","setShowIndex","setBackgroundColor","cardData","cardContent","cardUser","initData","searchParams","authToken","canRedeemed","event_name","show_from","res1","res2","simplePrivileges","resVipType","initDataAnimation","startAnimation","timeout1","timeout2","homeDom","centerDom","showCenterContent","classList","targetIndex","dom","setAnimation","linkToVip","linkCurrentVip","Layout","Img","Download","Footer","getPrize","showTwoCode","setShowTwoCode","codeImg","setCodeImg","setCount","gotAccessToken","setGotAccessToken","isChangingImg","setIsChangingImg","startDiv","imgArrRef","webLogin","showTwoCodeRef","interval","curIndex","previousTimeStamp","timestamp","elapsed","startData","authType","imgStr","Features","Toolkit","Subscription","WhyOmi","Press","Article","Support","Apply","Company","Guideline","Help","Terms","Service","Privacy","SafetyTips","Share","AntiFraud","Vip","PaySuccess","PayError","PayPending","normal","setNormal","Home","flexDirection","justifyContent","alignItems","marginBottom","getElementById"],"sourceRoot":""}