From 2d2ff125c39bc9f07a69139cda49a833dc4a2073 Mon Sep 17 00:00:00 2001 From: Chung Leong Date: Tue, 3 Mar 2020 04:43:50 +0100 Subject: [PATCH] Updated example to use relaks-transform-memo. --- README.md | 32 +- package-lock.json | 589 ++++++++++++++++-------------- package.json | 16 +- server/client/front-end.js | 24 +- server/client/front-end.js.map | 2 +- server/www/front-end.js | 22 +- server/www/front-end.js.map | 2 +- server/www/report.html | 4 +- src/front-end.jsx | 6 +- src/pages/archive-page.jsx | 10 +- src/pages/category-page.jsx | 10 +- src/pages/page-page.jsx | 10 +- src/pages/post-page.jsx | 10 +- src/pages/search-page.jsx | 10 +- src/pages/tag-page.jsx | 10 +- src/pages/welcome-page.jsx | 10 +- src/widgets/breadcrumb.jsx | 6 +- src/widgets/comment-list-view.jsx | 6 +- src/widgets/comment-list.jsx | 6 +- src/widgets/comment-section.jsx | 6 +- src/widgets/error-boundary.jsx | 6 +- src/widgets/html.jsx | 6 +- src/widgets/image-dialog.jsx | 6 +- src/widgets/media-view.jsx | 6 +- src/widgets/page-list-view.jsx | 6 +- src/widgets/page-list.jsx | 6 +- src/widgets/page-view.jsx | 6 +- src/widgets/post-list-view.jsx | 6 +- src/widgets/post-list.jsx | 6 +- src/widgets/post-view.jsx | 6 +- src/widgets/side-nav.jsx | 10 +- src/widgets/tag-list.jsx | 6 +- src/widgets/top-nav.jsx | 10 +- webpack.config.js | 1 + 34 files changed, 389 insertions(+), 489 deletions(-) diff --git a/README.md b/README.md index d2e8f6d..e8dbc10 100644 --- a/README.md +++ b/README.md @@ -535,11 +535,11 @@ The first ten posts are always fetched so the visitor will see something immedia ```javascript import React from 'react'; -import Relaks, { useProgress } from 'relaks'; +import { useProgress } from 'relaks'; import { PostList } from 'widgets/post-list'; -async function WelcomePage(props) { +export default async function WelcomePage(props) { const { wp, route } = props; const [ show ] = useProgress(); @@ -557,12 +557,6 @@ async function WelcomePage(props) { ); } } - -const component = Relaks.memo(WelcomePage); - -export { - component as default, -}; ``` The logic is fairly simple. We first render without data. Then we request a list of posts from the server. When it arrives, we render again. We ask for images associated with the first 10 posts and render once more once we have them. @@ -578,7 +572,7 @@ import React, { useEffect } from 'react'; import { PostListView } from 'widgets/post-list-view'; -function PostList(props) { +export function PostList(props) { const { route, posts, medias, minimum, maximum } = props; useEffect(() => { @@ -623,10 +617,6 @@ PostList.defaultProps = { minimum: 20, maximum: 500, }; - -export { - PostList, -}; ``` The component is responsible for loading more posts when the user scrolls down (past the half-way point). It'll also do so when the number of posts does not meet the minimum specified. @@ -643,7 +633,7 @@ import React from 'react'; import { HTML } from 'widgets/html'; import { MediaView } from 'widgets/media-view'; -function PostListView(props) { +export function PostListView(props) { const { route, post, media } = props; const title = _.get(post, 'title.rendered', ''); const excerptRendered = _.get(post, 'excerpt.rendered', ''); @@ -695,10 +685,6 @@ function PostListView(props) { return excerpt; } } - -export { - PostListView, -}; ``` ## PostPage @@ -709,14 +695,14 @@ export { import _ from 'lodash'; import Moment from 'moment'; import React from 'react'; -import Relaks, { useProgress } from 'relaks'; +import { useProgress } from 'relaks'; import { Breadcrumb } from 'widgets/breadcrumb'; import { PostView } from 'widgets/post-view'; import { TagList } from 'widgets/tag-list'; import { CommentSection } from 'widgets/comment-section'; -async function PostPage(props) { +export async function PostPage(props) { const { wp, route } = props; const { postSlug } = route.params; const [ show ] = useProgress(); @@ -814,12 +800,6 @@ async function PostPage(props) { return trail; } } - -const component = Relaks.memo(PostPage); - -export { - component as default, -}; ``` Basically, we fetch the post, categories, author, tags, and comments, rerendering each time we got something. Comments are omitted when we're rendering server-side to reduce the frequency of cache purges. There's no real need for them to appear immediately. diff --git a/package-lock.json b/package-lock.json index 0be9359..20c38be 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,54 +14,29 @@ } }, "@babel/compat-data": { - "version": "7.8.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.8.5.tgz", - "integrity": "sha512-jWYUqQX/ObOhG1UiEkbH5SANsE/8oKXiQWjj7p7xgj9Zmnt//aUvyz4dBkK0HNsS8/cbyC5NmmH87VekW+mXFg==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.8.6.tgz", + "integrity": "sha512-CurCIKPTkS25Mb8mz267vU95vy+TyUpnctEX2lV33xWNmHAfjruztgiPBbXZRh3xZZy1CYvGx6XfxyTVS+sk7Q==", "dev": true, "requires": { "browserslist": "^4.8.5", "invariant": "^2.2.4", "semver": "^5.5.0" - }, - "dependencies": { - "browserslist": { - "version": "4.8.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.7.tgz", - "integrity": "sha512-gFOnZNYBHrEyUML0xr5NJ6edFaaKbTFX9S9kQHlYfCP0Rit/boRIz4G+Avq6/4haEKJXdGGUnoolx+5MWW2BoA==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001027", - "electron-to-chromium": "^1.3.349", - "node-releases": "^1.1.49" - } - }, - "caniuse-lite": { - "version": "1.0.30001027", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001027.tgz", - "integrity": "sha512-7xvKeErvXZFtUItTHgNtLgS9RJpVnwBlWX8jSo/BO8VsF6deszemZSkJJJA1KOKrXuzZH4WALpAJdq5EyfgMLg==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.352", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.352.tgz", - "integrity": "sha512-dL/RyoueFG3UMhG0q3weAQvr+Tbqx/axAnOXYIIOsoYnV+2i+nRvX2S6msEo2+JARbBP8MFkkSYQ8AoY9Bh4Og==", - "dev": true - } } }, "@babel/core": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.4.tgz", - "integrity": "sha512-0LiLrB2PwrVI+a2/IEskBopDYSd8BCb3rOvH7D5tzoWd696TBEduBvuLVm4Nx6rltrLZqvI3MCalB2K2aVzQjA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.6.tgz", + "integrity": "sha512-Sheg7yEJD51YHAvLEV/7Uvw95AeWqYPL3Vk3zGujJKIhJ+8oLw2ALaf3hbucILhKsgSoADOvtKRJuNVdcJkOrg==", "dev": true, "requires": { "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", + "@babel/generator": "^7.8.6", "@babel/helpers": "^7.8.4", - "@babel/parser": "^7.8.4", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.4", - "@babel/types": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/template": "^7.8.6", + "@babel/traverse": "^7.8.6", + "@babel/types": "^7.8.6", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", @@ -72,13 +47,15 @@ "source-map": "^0.5.0" }, "dependencies": { - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "@babel/types": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { - "safe-buffer": "~5.1.1" + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" } }, "debug": { @@ -108,22 +85,27 @@ } }, "@babel/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.6.tgz", + "integrity": "sha512-4bpOR5ZBz+wWcMeVtcf7FbjcFzCp+817z2/gHNncIRcM9MmKzUhtWCYAq27RAfUrAFwb+OCG1s9WEaVxfi6cjg==", "dev": true, "requires": { - "@babel/types": "^7.8.3", + "@babel/types": "^7.8.6", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" }, "dependencies": { - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true + "@babel/types": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } } } }, @@ -168,88 +150,27 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.4.tgz", - "integrity": "sha512-3k3BsKMvPp5bjxgMdrFyq0UaEO48HciVrOVF0+lon8pp95cyJ2ujAh0TrBHNMnJGT2rr0iKOJPFFbSqjDyf/Pg==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.6.tgz", + "integrity": "sha512-UrJdk27hKVJSnibFcUWYLkCL0ZywTUoot8yii1lsHJcvwrypagmYKjHLMWivQPm4s6GdyygCL8fiH5EYLxhQwQ==", "dev": true, "requires": { - "@babel/compat-data": "^7.8.4", + "@babel/compat-data": "^7.8.6", "browserslist": "^4.8.5", "invariant": "^2.2.4", "levenary": "^1.1.1", "semver": "^5.5.0" - }, - "dependencies": { - "browserslist": { - "version": "4.8.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.7.tgz", - "integrity": "sha512-gFOnZNYBHrEyUML0xr5NJ6edFaaKbTFX9S9kQHlYfCP0Rit/boRIz4G+Avq6/4haEKJXdGGUnoolx+5MWW2BoA==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001027", - "electron-to-chromium": "^1.3.349", - "node-releases": "^1.1.49" - } - }, - "caniuse-lite": { - "version": "1.0.30001027", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001027.tgz", - "integrity": "sha512-7xvKeErvXZFtUItTHgNtLgS9RJpVnwBlWX8jSo/BO8VsF6deszemZSkJJJA1KOKrXuzZH4WALpAJdq5EyfgMLg==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.352", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.352.tgz", - "integrity": "sha512-dL/RyoueFG3UMhG0q3weAQvr+Tbqx/axAnOXYIIOsoYnV+2i+nRvX2S6msEo2+JARbBP8MFkkSYQ8AoY9Bh4Og==", - "dev": true - } } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.3.tgz", - "integrity": "sha512-Gcsm1OHCUr9o9TcJln57xhWHtdXbA2pgQ58S0Lxlks0WMGNXuki4+GLfX0p+L2ZkINUGZvfkz8rzoqJQSthI+Q==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.6.tgz", + "integrity": "sha512-bPyujWfsHhV/ztUkwGHz/RPV1T1TDEsSZDsN42JPehndA+p1KKTh3npvTadux0ZhCrytx9tvjpWNowKby3tM6A==", "dev": true, "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", "@babel/helper-regex": "^7.8.3", "regexpu-core": "^4.6.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - }, - "regexpu-core": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", - "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", - "dev": true, - "requires": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.1.0", - "regjsgen": "^0.5.0", - "regjsparser": "^0.6.0", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.1.0" - } - }, - "regjsgen": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", - "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==", - "dev": true - }, - "regjsparser": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.3.tgz", - "integrity": "sha512-8uZvYbnfAtEm9Ab8NTb3hdLwL4g/LQzEYP7Xs27T96abJCCE2d6r3cPZPQEsLKy0vRSGVNG+/zVGtLr86HQduA==", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - } - } } }, "@babel/helper-define-map": { @@ -321,17 +242,31 @@ } }, "@babel/helper-module-transforms": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.3.tgz", - "integrity": "sha512-C7NG6B7vfBa/pwCOshpMbOYUmrYQDfCpVL/JCRu0ek8B5p8kue1+BCXpg2vOYs7w5ACB9GTOBYQ5U6NwrMg+3Q==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.6.tgz", + "integrity": "sha512-RDnGJSR5EFBJjG3deY0NiL0K9TO8SXxS9n/MPsbPK/s9LbQymuLNtlzvDiNS7IpecuL45cMeLVkA+HfmlrnkRg==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", "@babel/helper-simple-access": "^7.8.3", "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3", + "@babel/template": "^7.8.6", + "@babel/types": "^7.8.6", "lodash": "^4.17.13" + }, + "dependencies": { + "@babel/types": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-optimise-call-expression": { @@ -372,15 +307,28 @@ } }, "@babel/helper-replace-supers": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz", - "integrity": "sha512-xOUssL6ho41U81etpLoT2RTdvdus4VfHamCuAm4AHxGr+0it5fnwoVdwUJ7GFEqCsQYzJUhcbsN9wB9apcYKFA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz", + "integrity": "sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA==", "dev": true, "requires": { "@babel/helper-member-expression-to-functions": "^7.8.3", "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/traverse": "^7.8.6", + "@babel/types": "^7.8.6" + }, + "dependencies": { + "@babel/types": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-simple-access": { @@ -445,9 +393,9 @@ } }, "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.6.tgz", + "integrity": "sha512-trGNYSfwq5s0SgM1BMEB8hX3NDmO7EP2wsDGDexiaKMB92BaRpS+qZfpkMqUBhcsOTBwNy9B/jieo4ad/t/z2g==", "dev": true }, "@babel/plugin-proposal-async-generator-functions": { @@ -652,9 +600,9 @@ } }, "@babel/plugin-transform-classes": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.3.tgz", - "integrity": "sha512-SjT0cwFJ+7Rbr1vQsvphAHwUHvSUPmMjMU/0P59G8U2HLFqSa082JO7zkbDNWs9kH/IUqpHI6xWNesGf8haF1w==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.6.tgz", + "integrity": "sha512-k9r8qRay/R6v5aWZkrEclEhKO6mc1CCQr2dLsVHBmOQiMpN6I2bpjX3vgnldUWeEI1GHVNByULVxZ4BdP4Hmdg==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.8.3", @@ -662,17 +610,9 @@ "@babel/helper-function-name": "^7.8.3", "@babel/helper-optimise-call-expression": "^7.8.3", "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", "@babel/helper-split-export-declaration": "^7.8.3", "globals": "^11.1.0" - }, - "dependencies": { - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - } } }, "@babel/plugin-transform-computed-properties": { @@ -723,9 +663,9 @@ } }, "@babel/plugin-transform-for-of": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.4.tgz", - "integrity": "sha512-iAXNlOWvcYUYoV8YIxwS7TxGRJcxyl8eQCfT+A5j8sKUzRFvJdcyjp97jL2IghWSRDaL2PU2O2tX8Cu9dTBq5A==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.6.tgz", + "integrity": "sha512-M0pw4/1/KI5WAxPsdcUL/w2LJ7o89YHN3yLkzNjg7Yl15GlVGgzHyCU+FMeAxevHGsLVmUqbirlUIKTafPmzdw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.3" @@ -899,17 +839,6 @@ "dev": true, "requires": { "regenerator-transform": "^0.14.0" - }, - "dependencies": { - "regenerator-transform": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz", - "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==", - "dev": true, - "requires": { - "private": "^0.1.6" - } - } } }, "@babel/plugin-transform-reserved-words": { @@ -991,13 +920,13 @@ } }, "@babel/preset-env": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.4.tgz", - "integrity": "sha512-HihCgpr45AnSOHRbS5cWNTINs0TwaR8BS8xIIH+QwiW8cKL0llV91njQMpeMReEPVs+1Ao0x3RLEBLtt1hOq4w==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.6.tgz", + "integrity": "sha512-M5u8llV9DIVXBFB/ArIpqJuvXpO+ymxcJ6e8ZAmzeK3sQeBNOD1y+rHvHCGG4TlEmsNpIrdecsHGHT8ZCoOSJg==", "dev": true, "requires": { - "@babel/compat-data": "^7.8.4", - "@babel/helper-compilation-targets": "^7.8.4", + "@babel/compat-data": "^7.8.6", + "@babel/helper-compilation-targets": "^7.8.6", "@babel/helper-module-imports": "^7.8.3", "@babel/helper-plugin-utils": "^7.8.3", "@babel/plugin-proposal-async-generator-functions": "^7.8.3", @@ -1020,13 +949,13 @@ "@babel/plugin-transform-async-to-generator": "^7.8.3", "@babel/plugin-transform-block-scoped-functions": "^7.8.3", "@babel/plugin-transform-block-scoping": "^7.8.3", - "@babel/plugin-transform-classes": "^7.8.3", + "@babel/plugin-transform-classes": "^7.8.6", "@babel/plugin-transform-computed-properties": "^7.8.3", "@babel/plugin-transform-destructuring": "^7.8.3", "@babel/plugin-transform-dotall-regex": "^7.8.3", "@babel/plugin-transform-duplicate-keys": "^7.8.3", "@babel/plugin-transform-exponentiation-operator": "^7.8.3", - "@babel/plugin-transform-for-of": "^7.8.4", + "@babel/plugin-transform-for-of": "^7.8.6", "@babel/plugin-transform-function-name": "^7.8.3", "@babel/plugin-transform-literals": "^7.8.3", "@babel/plugin-transform-member-expression-literals": "^7.8.3", @@ -1047,7 +976,7 @@ "@babel/plugin-transform-template-literals": "^7.8.3", "@babel/plugin-transform-typeof-symbol": "^7.8.4", "@babel/plugin-transform-unicode-regex": "^7.8.3", - "@babel/types": "^7.8.3", + "@babel/types": "^7.8.6", "browserslist": "^4.8.5", "core-js-compat": "^3.6.2", "invariant": "^2.2.2", @@ -1055,28 +984,16 @@ "semver": "^5.5.0" }, "dependencies": { - "browserslist": { - "version": "4.8.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.7.tgz", - "integrity": "sha512-gFOnZNYBHrEyUML0xr5NJ6edFaaKbTFX9S9kQHlYfCP0Rit/boRIz4G+Avq6/4haEKJXdGGUnoolx+5MWW2BoA==", + "@babel/types": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001027", - "electron-to-chromium": "^1.3.349", - "node-releases": "^1.1.49" + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" } - }, - "caniuse-lite": { - "version": "1.0.30001027", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001027.tgz", - "integrity": "sha512-7xvKeErvXZFtUItTHgNtLgS9RJpVnwBlWX8jSo/BO8VsF6deszemZSkJJJA1KOKrXuzZH4WALpAJdq5EyfgMLg==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.352", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.352.tgz", - "integrity": "sha512-dL/RyoueFG3UMhG0q3weAQvr+Tbqx/axAnOXYIIOsoYnV+2i+nRvX2S6msEo2+JARbBP8MFkkSYQ8AoY9Bh4Og==", - "dev": true } } }, @@ -1103,33 +1020,57 @@ } }, "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", "dev": true, "requires": { "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" + }, + "dependencies": { + "@babel/types": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz", + "integrity": "sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A==", "dev": true, "requires": { "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", + "@babel/generator": "^7.8.6", "@babel/helper-function-name": "^7.8.3", "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" }, "dependencies": { + "@babel/types": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -1139,12 +1080,6 @@ "ms": "^2.1.1" } }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -2006,6 +1941,17 @@ "pako": "~1.0.5" } }, + "browserslist": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.9.1.tgz", + "integrity": "sha512-Q0DnKq20End3raFulq6Vfp1ecB9fh8yUNV55s8sekaDDeqBaCtWlRHCUdaWyUeSSBJM7IbM6HcsyaeYqgeDhnw==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001030", + "electron-to-chromium": "^1.3.363", + "node-releases": "^1.1.50" + } + }, "buffer": { "version": "4.9.2", "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", @@ -2143,6 +2089,12 @@ } } }, + "caniuse-lite": { + "version": "1.0.30001031", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001031.tgz", + "integrity": "sha512-DpAP5a1NGRLgYfaNCaXIRyGARi+3tJA2quZXNNA1Du26VyVkqvy2tznNu5ANyN1Y5aX44QDotZSVSUSi2uMGjg==", + "dev": true + }, "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", @@ -2434,6 +2386,15 @@ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, "cookie": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", @@ -2474,29 +2435,6 @@ "semver": "7.0.0" }, "dependencies": { - "browserslist": { - "version": "4.8.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.7.tgz", - "integrity": "sha512-gFOnZNYBHrEyUML0xr5NJ6edFaaKbTFX9S9kQHlYfCP0Rit/boRIz4G+Avq6/4haEKJXdGGUnoolx+5MWW2BoA==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001027", - "electron-to-chromium": "^1.3.349", - "node-releases": "^1.1.49" - } - }, - "caniuse-lite": { - "version": "1.0.30001027", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001027.tgz", - "integrity": "sha512-7xvKeErvXZFtUItTHgNtLgS9RJpVnwBlWX8jSo/BO8VsF6deszemZSkJJJA1KOKrXuzZH4WALpAJdq5EyfgMLg==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.352", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.352.tgz", - "integrity": "sha512-dL/RyoueFG3UMhG0q3weAQvr+Tbqx/axAnOXYIIOsoYnV+2i+nRvX2S6msEo2+JARbBP8MFkkSYQ8AoY9Bh4Og==", - "dev": true - }, "semver": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", @@ -2985,6 +2923,12 @@ "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==", "dev": true }, + "electron-to-chromium": { + "version": "1.3.365", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.365.tgz", + "integrity": "sha512-LQGbIvLWEOQ1xblY2pXxVoaAYd5T5h5f8m3h3hTEYonWY3Zrec0gy8TVz2tXdaUz+4qXwVThIbLvl/Dll3CdLQ==", + "dev": true + }, "elliptic": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz", @@ -3474,12 +3418,12 @@ "dev": true }, "file-loader": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-5.0.2.tgz", - "integrity": "sha512-QMiQ+WBkGLejKe81HU8SZ9PovsU/5uaLo0JdTCEXOYv7i7jfAjHZi1tcwp9tSASJPOmmHZtbdCervFmXMH/Dcg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-5.1.0.tgz", + "integrity": "sha512-u/VkLGskw3Ue59nyOwUwXI/6nuBCo7KBkniB/l7ICwr/7cPNGsL1WCXUp3GB0qgOOKU1TiP49bv4DZF/LJqprg==", "dev": true, "requires": { - "loader-utils": "^1.2.3", + "loader-utils": "^1.4.0", "schema-utils": "^2.5.0" }, "dependencies": { @@ -3489,6 +3433,12 @@ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, "json5": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", @@ -3499,13 +3449,13 @@ } }, "loader-utils": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", "dev": true, "requires": { "big.js": "^5.2.2", - "emojis-list": "^2.0.0", + "emojis-list": "^3.0.0", "json5": "^1.0.1" } } @@ -4418,6 +4368,12 @@ "which": "^1.2.14" } }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, "globby": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", @@ -5251,6 +5207,12 @@ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "dev": true }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", @@ -5946,9 +5908,9 @@ } }, "node-releases": { - "version": "1.1.49", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.49.tgz", - "integrity": "sha512-xH8t0LS0disN0mtRCh+eByxFPie+msJUBL/lJDBuap53QGiYPa9joh83K4pCZgWJ+2L4b9h88vCVdXQ60NO2bg==", + "version": "1.1.50", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.50.tgz", + "integrity": "sha512-lgAmPv9eYZ0bGwUYAKlr8MG6K4CvWliWqnkcT2P8mMAgVrH3lqfBPorFlxiG1pHQnqmavJZ9vbMXUTNyMLbrgQ==", "dev": true, "requires": { "semver": "^6.3.0" @@ -6862,9 +6824,9 @@ } }, "react": { - "version": "16.12.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.12.0.tgz", - "integrity": "sha512-fglqy3k5E+81pA8s+7K0/T3DBCF0ZDOher1elBFzF7O6arXJgzyu/FW+COxFvAWXJoJN9KIZbT2LXlukwphYTA==", + "version": "16.13.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.13.0.tgz", + "integrity": "sha512-TSavZz2iSLkq5/oiE7gnFzmURKZMltmi193rm5HEoUDAXpzT9Kzw6oNZnGoai/4+fUnm7FqS5dwgUL34TujcWQ==", "dev": true, "requires": { "loose-envify": "^1.1.0", @@ -6873,15 +6835,15 @@ } }, "react-dom": { - "version": "16.12.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.12.0.tgz", - "integrity": "sha512-LMxFfAGrcS3kETtQaCkTKjMiifahaMySFDn71fZUNpPHZQEzmk/GiAeIT8JSOrHB23fnuCOMruL2a8NYlw+8Gw==", + "version": "16.13.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.0.tgz", + "integrity": "sha512-y09d2c4cG220DzdlFkPTnVvGTszVvNpC73v+AaLGLHbkpy3SSgvYq8x0rNwPJ/Rk/CicTNgk0hbHNw1gMEZAXg==", "dev": true, "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", "prop-types": "^15.6.2", - "scheduler": "^0.18.0" + "scheduler": "^0.19.0" } }, "react-html-parser": { @@ -7043,6 +7005,15 @@ "integrity": "sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA==", "dev": true }, + "regenerator-transform": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz", + "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==", + "dev": true, + "requires": { + "private": "^0.1.6" + } + }, "regex-not": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", @@ -7122,12 +7093,52 @@ } } }, - "relaks": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/relaks/-/relaks-2.1.3.tgz", - "integrity": "sha512-CCv8KHNUarD2jb6rNmLyyGYhgxM4o8JISQ6oZTs11isJsnq60DTGOGUwwty2IeJmoZtM08m4tsbQlT4IQNi1sw==", + "regexpu-core": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", + "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.1.0", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.1.0" + } + }, + "regjsgen": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", + "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==", "dev": true }, + "regjsparser": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.3.tgz", + "integrity": "sha512-8uZvYbnfAtEm9Ab8NTb3hdLwL4g/LQzEYP7Xs27T96abJCCE2d6r3cPZPQEsLKy0vRSGVNG+/zVGtLr86HQduA==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "relaks": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/relaks/-/relaks-2.1.8.tgz", + "integrity": "sha512-Dy49+KeF0dyRRj6HEBe5aSvrXLe35KIqBMSUeX1ynMhXlNGkDMpGl48CvG0o469BkByeYu+3DvNAkn3deeZADw==", + "dev": true, + "requires": { + "relaks-transform-memo": "^2.0.2" + } + }, "relaks-event-emitter": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/relaks-event-emitter/-/relaks-event-emitter-2.0.7.tgz", @@ -7149,6 +7160,12 @@ "relaks-event-emitter": "2.0.7" } }, + "relaks-transform-memo": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/relaks-transform-memo/-/relaks-transform-memo-2.0.2.tgz", + "integrity": "sha512-jX/zvPu101DBZjWmGJYj70fNpK/ZaHpI8zuV6jpLvzWioHne6zJl7fKBTAIIjfMpuLvmET9Ck9BeP85NSsMmAA==", + "dev": true + }, "relaks-wordpress-data-source": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/relaks-wordpress-data-source/-/relaks-wordpress-data-source-2.0.1.tgz", @@ -7438,9 +7455,9 @@ } }, "scheduler": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.18.0.tgz", - "integrity": "sha512-agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.0.tgz", + "integrity": "sha512-xowbVaTPe9r7y7RUejcK73/j8tt2jfiyTednOvHbA8JoClvMYCp+r8QegLwK/n8zWQAtZb1fFnER4XLBZXrCxA==", "dev": true, "requires": { "loose-envify": "^1.1.0", @@ -7875,6 +7892,24 @@ "urix": "^0.1.0" } }, + "source-map-support": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", + "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, "source-map-url": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", @@ -8205,9 +8240,9 @@ } }, "terser": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.3.tgz", - "integrity": "sha512-Lw+ieAXmY69d09IIc/yqeBqXpEQIpDGZqT34ui1QWXIUpR2RjbqEkT8X7Lgex19hslSqcWM5iMN2kM11eMsESQ==", + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.4.tgz", + "integrity": "sha512-5fqgBPLgVHZ/fVvqRhhUp9YUiGXhFJ9ZkrZWD9vQtFBR4QIGTnbsb+/kKqSqfgp3WnBwGWAFnedGTtmX1YTn0w==", "dev": true, "requires": { "commander": "^2.20.0", @@ -8226,16 +8261,6 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true - }, - "source-map-support": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", - "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } } } }, @@ -8257,9 +8282,9 @@ }, "dependencies": { "ajv": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", - "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", + "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -8346,6 +8371,12 @@ "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", "dev": true }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, "to-object-path": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", @@ -8862,9 +8893,9 @@ } }, "webpack": { - "version": "4.41.6", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.6.tgz", - "integrity": "sha512-yxXfV0Zv9WMGRD+QexkZzmGIh54bsvEs+9aRWxnN8erLWEOehAKUTeNBoUbA6HPEZPlRo7KDi2ZcNveoZgK9MA==", + "version": "4.42.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.42.0.tgz", + "integrity": "sha512-EzJRHvwQyBiYrYqhyjW9AqM90dE4+s1/XtCfn7uWg6cS72zH+2VPFAlsnW0+W0cDi0XRjNKUMoJtpSi50+Ph6w==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", @@ -8893,9 +8924,9 @@ }, "dependencies": { "ajv": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", - "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", + "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -8910,6 +8941,12 @@ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, "fast-deep-equal": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", @@ -8932,13 +8969,13 @@ } }, "loader-utils": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", "dev": true, "requires": { "big.js": "^5.2.2", - "emojis-list": "^2.0.0", + "emojis-list": "^3.0.0", "json5": "^1.0.1" } }, diff --git a/package.json b/package.json index f5ee035..bfd67e8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "relaks-wordpress-example", - "version": "2.0.0", + "version": "2.1.0", "description": "An example of using Relaks to build an isomorphic WordPress frontend", "scripts": { "watch": "webpack --watch", @@ -22,16 +22,16 @@ "license": "MIT", "homepage": "https://github.com/trambarhq/relaks-wordpress-example", "devDependencies": { - "@babel/core": "^7.8.4", + "@babel/core": "^7.8.6", "@babel/plugin-transform-runtime": "^7.8.3", - "@babel/preset-env": "^7.8.4", + "@babel/preset-env": "^7.8.6", "@babel/preset-react": "^7.8.3", "@babel/runtime": "^7.8.4", "@fortawesome/fontawesome-free": "^5.12.1", "css-loader": "^3.4.2", "babel-loader": "^8.0.6", "extract-text-webpack-plugin": "^3.0.2", - "file-loader": "^5.0.2", + "file-loader": "^5.1.0", "font-awesome": "^4.7.0", "hammerjs": "^2.0.8", "html-webpack-plugin": "^3.2.0", @@ -41,16 +41,16 @@ "mini-css-extract-plugin": "^0.9.0", "node-sass": "^4.13.1", "prop-types": "^15.7.2", - "react": "^16.12.0", - "react-dom": "^16.12.0", + "react": "^16.13.0", + "react-dom": "^16.13.0", "react-html-parser": "^2.0.2", - "relaks": "^2.1.3", + "relaks": "^2.1.8", "relaks-harvest": "^2.1.3", "relaks-route-manager": "^2.0.7", "relaks-wordpress-data-source": "^2.0.1", "sass-loader": "^8.0.2", "uglifyjs-webpack-plugin": "^2.2.0", - "webpack": "^4.41.6", + "webpack": "^4.42.0", "webpack-bundle-analyzer": "^3.6.0", "webpack-cli": "^3.3.11", "webpack-dev-server": "^3.10.3" diff --git a/server/client/front-end.js b/server/client/front-end.js index 15602ec..d4d5d42 100644 --- a/server/client/front-end.js +++ b/server/client/front-end.js @@ -1,4 +1,4 @@ -!function(e,t){for(var n in t)e[n]=t[n]}(exports,function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/",n(n.s=246)}([function(e,t,n){"use strict";e.exports=n(182)},function(e,t,n){(function(e){e.exports=function(){"use strict";var t,r;function a(){return t.apply(null,arguments)}function i(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function s(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function o(e){return void 0===e}function u(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function l(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function c(e,t){var n,r=[];for(n=0;n>>0,r=0;r0)for(n=0;n=0?n?"+":"":"-")+Math.pow(10,Math.max(0,a)).toString().substr(1)+r}var W=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,I=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,z={},U={};function q(e,t,n,r){var a=r;"string"==typeof r&&(a=function(){return this[r]()}),e&&(U[e]=a),t&&(U[t[0]]=function(){return F(a.apply(this,arguments),t[1],t[2])}),n&&(U[n]=function(){return this.localeData().ordinal(a.apply(this,arguments),e)})}function B(e,t){return e.isValid()?(t=V(t,e.localeData()),z[t]=z[t]||function(e){var t,n,r,a=e.match(W);for(t=0,n=a.length;t=0&&I.test(e);)e=e.replace(I,r),I.lastIndex=0,n-=1;return e}var J=/\d/,G=/\d\d/,$=/\d{3}/,K=/\d{4}/,Q=/[+-]?\d{6}/,Z=/\d\d?/,X=/\d\d\d\d?/,ee=/\d\d\d\d\d\d?/,te=/\d{1,3}/,ne=/\d{1,4}/,re=/[+-]?\d{1,6}/,ae=/\d+/,ie=/[+-]?\d+/,se=/Z|[+-]\d\d:?\d\d/gi,oe=/Z|[+-]\d\d(?::?\d\d)?/gi,ue=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,le={};function ce(e,t,n){le[e]=E(t)?t:function(e,r){return e&&n?n:t}}function de(e,t){return d(le,e)?le[e](t._strict,t._locale):new RegExp(fe(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(function(e,t,n,r,a){return t||n||r||a}))))}function fe(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var he={};function _e(e,t){var n,r=t;for("string"==typeof e&&(e=[e]),u(t)&&(r=function(e,n){n[t]=k(e)}),n=0;n68?1900:2e3)};var ge,be=Me("FullYear",!0);function Me(e,t){return function(n){return null!=n?(ke(this,e,n),a.updateOffset(this,t),this):Le(this,e)}}function Le(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function ke(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&ve(e.year())&&1===e.month()&&29===e.date()?e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),we(n,e.month())):e._d["set"+(e._isUTC?"UTC":"")+t](n))}function we(e,t){if(isNaN(e)||isNaN(t))return NaN;var n,r=(t%(n=12)+n)%n;return e+=(t-r)/12,1===r?ve(e)?29:28:31-r%7%2}ge=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t=0?(o=new Date(e+400,t,n,r,a,i,s),isFinite(o.getFullYear())&&o.setFullYear(e)):o=new Date(e,t,n,r,a,i,s),o}function Ce(e){var t;if(e<100&&e>=0){var n=Array.prototype.slice.call(arguments);n[0]=e+400,t=new Date(Date.UTC.apply(null,n)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)}else t=new Date(Date.UTC.apply(null,arguments));return t}function Ae(e,t,n){var r=7+t-n;return-(7+Ce(e,0,r).getUTCDay()-t)%7+r-1}function Re(e,t,n,r,a){var i,s,o=1+7*(t-1)+(7+n-r)%7+Ae(e,r,a);return o<=0?s=ye(i=e-1)+o:o>ye(e)?(i=e+1,s=o-ye(e)):(i=e,s=o),{year:i,dayOfYear:s}}function Ne(e,t,n){var r,a,i=Ae(e.year(),t,n),s=Math.floor((e.dayOfYear()-i-1)/7)+1;return s<1?r=s+Fe(a=e.year()-1,t,n):s>Fe(e.year(),t,n)?(r=s-Fe(e.year(),t,n),a=e.year()+1):(a=e.year(),r=s),{week:r,year:a}}function Fe(e,t,n){var r=Ae(e,t,n),a=Ae(e+1,t,n);return(ye(e)-r+a)/7}function We(e,t){return e.slice(t,7).concat(e.slice(0,t))}q("w",["ww",2],"wo","week"),q("W",["WW",2],"Wo","isoWeek"),O("week","w"),O("isoWeek","W"),N("week",5),N("isoWeek",5),ce("w",Z),ce("ww",Z,G),ce("W",Z),ce("WW",Z,G),me(["w","ww","W","WW"],(function(e,t,n,r){t[r.substr(0,1)]=k(e)})),q("d",0,"do","day"),q("dd",0,0,(function(e){return this.localeData().weekdaysMin(this,e)})),q("ddd",0,0,(function(e){return this.localeData().weekdaysShort(this,e)})),q("dddd",0,0,(function(e){return this.localeData().weekdays(this,e)})),q("e",0,0,"weekday"),q("E",0,0,"isoWeekday"),O("day","d"),O("weekday","e"),O("isoWeekday","E"),N("day",11),N("weekday",11),N("isoWeekday",11),ce("d",Z),ce("e",Z),ce("E",Z),ce("dd",(function(e,t){return t.weekdaysMinRegex(e)})),ce("ddd",(function(e,t){return t.weekdaysShortRegex(e)})),ce("dddd",(function(e,t){return t.weekdaysRegex(e)})),me(["dd","ddd","dddd"],(function(e,t,n,r){var a=n._locale.weekdaysParse(e,r,n._strict);null!=a?t.d=a:_(n).invalidWeekday=e})),me(["d","e","E"],(function(e,t,n,r){t[r]=k(e)}));var Ie="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),ze="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Ue="Su_Mo_Tu_We_Th_Fr_Sa".split("_");function qe(e,t,n){var r,a,i,s=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],r=0;r<7;++r)i=h([2e3,1]).day(r),this._minWeekdaysParse[r]=this.weekdaysMin(i,"").toLocaleLowerCase(),this._shortWeekdaysParse[r]=this.weekdaysShort(i,"").toLocaleLowerCase(),this._weekdaysParse[r]=this.weekdays(i,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(a=ge.call(this._weekdaysParse,s))?a:null:"ddd"===t?-1!==(a=ge.call(this._shortWeekdaysParse,s))?a:null:-1!==(a=ge.call(this._minWeekdaysParse,s))?a:null:"dddd"===t?-1!==(a=ge.call(this._weekdaysParse,s))?a:-1!==(a=ge.call(this._shortWeekdaysParse,s))?a:-1!==(a=ge.call(this._minWeekdaysParse,s))?a:null:"ddd"===t?-1!==(a=ge.call(this._shortWeekdaysParse,s))?a:-1!==(a=ge.call(this._weekdaysParse,s))?a:-1!==(a=ge.call(this._minWeekdaysParse,s))?a:null:-1!==(a=ge.call(this._minWeekdaysParse,s))?a:-1!==(a=ge.call(this._weekdaysParse,s))?a:-1!==(a=ge.call(this._shortWeekdaysParse,s))?a:null}var Be=ue,Ve=ue,Je=ue;function Ge(){function e(e,t){return t.length-e.length}var t,n,r,a,i,s=[],o=[],u=[],l=[];for(t=0;t<7;t++)n=h([2e3,1]).day(t),r=this.weekdaysMin(n,""),a=this.weekdaysShort(n,""),i=this.weekdays(n,""),s.push(r),o.push(a),u.push(i),l.push(r),l.push(a),l.push(i);for(s.sort(e),o.sort(e),u.sort(e),l.sort(e),t=0;t<7;t++)o[t]=fe(o[t]),u[t]=fe(u[t]),l[t]=fe(l[t]);this._weekdaysRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+s.join("|")+")","i")}function $e(){return this.hours()%12||12}function Ke(e,t){q(e,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)}))}function Qe(e,t){return t._meridiemParse}q("H",["HH",2],0,"hour"),q("h",["hh",2],0,$e),q("k",["kk",2],0,(function(){return this.hours()||24})),q("hmm",0,0,(function(){return""+$e.apply(this)+F(this.minutes(),2)})),q("hmmss",0,0,(function(){return""+$e.apply(this)+F(this.minutes(),2)+F(this.seconds(),2)})),q("Hmm",0,0,(function(){return""+this.hours()+F(this.minutes(),2)})),q("Hmmss",0,0,(function(){return""+this.hours()+F(this.minutes(),2)+F(this.seconds(),2)})),Ke("a",!0),Ke("A",!1),O("hour","h"),N("hour",13),ce("a",Qe),ce("A",Qe),ce("H",Z),ce("h",Z),ce("k",Z),ce("HH",Z,G),ce("hh",Z,G),ce("kk",Z,G),ce("hmm",X),ce("hmmss",ee),ce("Hmm",X),ce("Hmmss",ee),_e(["H","HH"],3),_e(["k","kk"],(function(e,t,n){var r=k(e);t[3]=24===r?0:r})),_e(["a","A"],(function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e})),_e(["h","hh"],(function(e,t,n){t[3]=k(e),_(n).bigHour=!0})),_e("hmm",(function(e,t,n){var r=e.length-2;t[3]=k(e.substr(0,r)),t[4]=k(e.substr(r)),_(n).bigHour=!0})),_e("hmmss",(function(e,t,n){var r=e.length-4,a=e.length-2;t[3]=k(e.substr(0,r)),t[4]=k(e.substr(r,2)),t[5]=k(e.substr(a)),_(n).bigHour=!0})),_e("Hmm",(function(e,t,n){var r=e.length-2;t[3]=k(e.substr(0,r)),t[4]=k(e.substr(r))})),_e("Hmmss",(function(e,t,n){var r=e.length-4,a=e.length-2;t[3]=k(e.substr(0,r)),t[4]=k(e.substr(r,2)),t[5]=k(e.substr(a))}));var Ze,Xe=Me("Hours",!0),et={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Te,monthsShort:De,week:{dow:0,doy:6},weekdays:Ie,weekdaysMin:Ue,weekdaysShort:ze,meridiemParse:/[ap]\.?m?\.?/i},tt={},nt={};function rt(e){return e?e.toLowerCase().replace("_","-"):e}function at(t){var r=null;if(!tt[t]&&void 0!==e&&e&&e.exports)try{r=Ze._abbr,n(188)("./"+t),it(r)}catch(e){}return tt[t]}function it(e,t){var n;return e&&((n=o(t)?ot(e):st(e,t))?Ze=n:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),Ze._abbr}function st(e,t){if(null!==t){var n,r=et;if(t.abbr=e,null!=tt[e])x("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),r=tt[e]._config;else if(null!=t.parentLocale)if(null!=tt[t.parentLocale])r=tt[t.parentLocale]._config;else{if(null==(n=at(t.parentLocale)))return nt[t.parentLocale]||(nt[t.parentLocale]=[]),nt[t.parentLocale].push({name:e,config:t}),null;r=n._config}return tt[e]=new P(j(r,t)),nt[e]&&nt[e].forEach((function(e){st(e.name,e.config)})),it(e),tt[e]}return delete tt[e],null}function ot(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return Ze;if(!i(e)){if(t=at(e))return t;e=[e]}return function(e){for(var t,n,r,a,i=0;i0;){if(r=at(a.slice(0,t).join("-")))return r;if(n&&n.length>=t&&w(a,n,!0)>=t-1)break;t--}i++}return Ze}(e)}function ut(e){var t,n=e._a;return n&&-2===_(e).overflow&&(t=n[1]<0||n[1]>11?1:n[2]<1||n[2]>we(n[0],n[1])?2:n[3]<0||n[3]>24||24===n[3]&&(0!==n[4]||0!==n[5]||0!==n[6])?3:n[4]<0||n[4]>59?4:n[5]<0||n[5]>59?5:n[6]<0||n[6]>999?6:-1,_(e)._overflowDayOfYear&&(t<0||t>2)&&(t=2),_(e)._overflowWeeks&&-1===t&&(t=7),_(e)._overflowWeekday&&-1===t&&(t=8),_(e).overflow=t),e}function lt(e,t,n){return null!=e?e:null!=t?t:n}function ct(e){var t,n,r,i,s,o=[];if(!e._d){for(r=function(e){var t=new Date(a.now());return e._useUTC?[t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()]:[t.getFullYear(),t.getMonth(),t.getDate()]}(e),e._w&&null==e._a[2]&&null==e._a[1]&&function(e){var t,n,r,a,i,s,o,u;if(null!=(t=e._w).GG||null!=t.W||null!=t.E)i=1,s=4,n=lt(t.GG,e._a[0],Ne(Yt(),1,4).year),r=lt(t.W,1),((a=lt(t.E,1))<1||a>7)&&(u=!0);else{i=e._locale._week.dow,s=e._locale._week.doy;var l=Ne(Yt(),i,s);n=lt(t.gg,e._a[0],l.year),r=lt(t.w,l.week),null!=t.d?((a=t.d)<0||a>6)&&(u=!0):null!=t.e?(a=t.e+i,(t.e<0||t.e>6)&&(u=!0)):a=i}r<1||r>Fe(n,i,s)?_(e)._overflowWeeks=!0:null!=u?_(e)._overflowWeekday=!0:(o=Re(n,r,a,i,s),e._a[0]=o.year,e._dayOfYear=o.dayOfYear)}(e),null!=e._dayOfYear&&(s=lt(e._a[0],r[0]),(e._dayOfYear>ye(s)||0===e._dayOfYear)&&(_(e)._overflowDayOfYear=!0),n=Ce(s,0,e._dayOfYear),e._a[1]=n.getUTCMonth(),e._a[2]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=o[t]=r[t];for(;t<7;t++)e._a[t]=o[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[3]&&0===e._a[4]&&0===e._a[5]&&0===e._a[6]&&(e._nextDay=!0,e._a[3]=0),e._d=(e._useUTC?Ce:Oe).apply(null,o),i=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[3]=24),e._w&&void 0!==e._w.d&&e._w.d!==i&&(_(e).weekdayMismatch=!0)}}var dt=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ft=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ht=/Z|[+-]\d\d(?::?\d\d)?/,_t=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],mt=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],pt=/^\/?Date\((\-?\d+)/i;function yt(e){var t,n,r,a,i,s,o=e._i,u=dt.exec(o)||ft.exec(o);if(u){for(_(e).iso=!0,t=0,n=_t.length;t0&&_(e).unusedInput.push(s),o=o.slice(o.indexOf(n)+n.length),l+=n.length),U[i]?(n?_(e).empty=!1:_(e).unusedTokens.push(i),pe(i,n,e)):e._strict&&!n&&_(e).unusedTokens.push(i);_(e).charsLeftOver=u-l,o.length>0&&_(e).unusedInput.push(o),e._a[3]<=12&&!0===_(e).bigHour&&e._a[3]>0&&(_(e).bigHour=void 0),_(e).parsedDateParts=e._a.slice(0),_(e).meridiem=e._meridiem,e._a[3]=function(e,t,n){var r;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?((r=e.isPM(n))&&t<12&&(t+=12),r||12!==t||(t=0),t):t}(e._locale,e._a[3],e._meridiem),ct(e),ut(e)}else Mt(e);else yt(e)}function kt(e){var t=e._i,n=e._f;return e._locale=e._locale||ot(e._l),null===t||void 0===n&&""===t?p({nullInput:!0}):("string"==typeof t&&(e._i=t=e._locale.preparse(t)),M(t)?new b(ut(t)):(l(t)?e._d=t:i(n)?function(e){var t,n,r,a,i;if(0===e._f.length)return _(e).invalidFormat=!0,void(e._d=new Date(NaN));for(a=0;athis?this:e:p()}));function St(e,t){var n,r;if(1===t.length&&i(t[0])&&(t=t[0]),!t.length)return Yt();for(n=t[0],r=1;r=0?new Date(e+400,t,n)-126227808e5:new Date(e,t,n).valueOf()}function en(e,t,n){return e<100&&e>=0?Date.UTC(e+400,t,n)-126227808e5:Date.UTC(e,t,n)}function tn(e,t){q(0,[e,e.length],0,t)}function nn(e,t,n,r,a){var i;return null==e?Ne(this,r,a).year:(t>(i=Fe(e,r,a))&&(t=i),rn.call(this,e,t,n,r,a))}function rn(e,t,n,r,a){var i=Re(e,t,n,r,a),s=Ce(i.year,0,i.dayOfYear);return this.year(s.getUTCFullYear()),this.month(s.getUTCMonth()),this.date(s.getUTCDate()),this}q(0,["gg",2],0,(function(){return this.weekYear()%100})),q(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),tn("gggg","weekYear"),tn("ggggg","weekYear"),tn("GGGG","isoWeekYear"),tn("GGGGG","isoWeekYear"),O("weekYear","gg"),O("isoWeekYear","GG"),N("weekYear",1),N("isoWeekYear",1),ce("G",ie),ce("g",ie),ce("GG",Z,G),ce("gg",Z,G),ce("GGGG",ne,K),ce("gggg",ne,K),ce("GGGGG",re,Q),ce("ggggg",re,Q),me(["gggg","ggggg","GGGG","GGGGG"],(function(e,t,n,r){t[r.substr(0,2)]=k(e)})),me(["gg","GG"],(function(e,t,n,r){t[r]=a.parseTwoDigitYear(e)})),q("Q",0,"Qo","quarter"),O("quarter","Q"),N("quarter",7),ce("Q",J),_e("Q",(function(e,t){t[1]=3*(k(e)-1)})),q("D",["DD",2],"Do","date"),O("date","D"),N("date",9),ce("D",Z),ce("DD",Z,G),ce("Do",(function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient})),_e(["D","DD"],2),_e("Do",(function(e,t){t[2]=k(e.match(Z)[0])}));var an=Me("Date",!0);q("DDD",["DDDD",3],"DDDo","dayOfYear"),O("dayOfYear","DDD"),N("dayOfYear",4),ce("DDD",te),ce("DDDD",$),_e(["DDD","DDDD"],(function(e,t,n){n._dayOfYear=k(e)})),q("m",["mm",2],0,"minute"),O("minute","m"),N("minute",14),ce("m",Z),ce("mm",Z,G),_e(["m","mm"],4);var sn=Me("Minutes",!1);q("s",["ss",2],0,"second"),O("second","s"),N("second",15),ce("s",Z),ce("ss",Z,G),_e(["s","ss"],5);var on,un=Me("Seconds",!1);for(q("S",0,0,(function(){return~~(this.millisecond()/100)})),q(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),q(0,["SSS",3],0,"millisecond"),q(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),q(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),q(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),q(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),q(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),q(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),O("millisecond","ms"),N("millisecond",16),ce("S",te,J),ce("SS",te,G),ce("SSS",te,$),on="SSSS";on.length<=9;on+="S")ce(on,ae);function ln(e,t){t[6]=k(1e3*("0."+e))}for(on="S";on.length<=9;on+="S")_e(on,ln);var cn=Me("Milliseconds",!1);q("z",0,0,"zoneAbbr"),q("zz",0,0,"zoneName");var dn=b.prototype;function fn(e){return e}dn.add=Vt,dn.calendar=function(e,t){var n=e||Yt(),r=At(n,this).startOf("day"),i=a.calendarFormat(this,r)||"sameElse",s=t&&(E(t[i])?t[i].call(this,n):t[i]);return this.format(s||this.localeData().calendar(i,this,Yt(n)))},dn.clone=function(){return new b(this)},dn.diff=function(e,t,n){var r,a,i;if(!this.isValid())return NaN;if(!(r=At(e,this)).isValid())return NaN;switch(a=6e4*(r.utcOffset()-this.utcOffset()),t=C(t)){case"year":i=Gt(this,r)/12;break;case"month":i=Gt(this,r);break;case"quarter":i=Gt(this,r)/3;break;case"second":i=(this-r)/1e3;break;case"minute":i=(this-r)/6e4;break;case"hour":i=(this-r)/36e5;break;case"day":i=(this-r-a)/864e5;break;case"week":i=(this-r-a)/6048e5;break;default:i=this-r}return n?i:L(i)},dn.endOf=function(e){var t;if(void 0===(e=C(e))||"millisecond"===e||!this.isValid())return this;var n=this._isUTC?en:Xt;switch(e){case"year":t=n(this.year()+1,0,1)-1;break;case"quarter":t=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=n(this.year(),this.month()+1,1)-1;break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=n(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=36e5-Zt(t+(this._isUTC?0:6e4*this.utcOffset()),36e5)-1;break;case"minute":t=this._d.valueOf(),t+=6e4-Zt(t,6e4)-1;break;case"second":t=this._d.valueOf(),t+=1e3-Zt(t,1e3)-1}return this._d.setTime(t),a.updateOffset(this,!0),this},dn.format=function(e){e||(e=this.isUtc()?a.defaultFormatUtc:a.defaultFormat);var t=B(this,e);return this.localeData().postformat(t)},dn.from=function(e,t){return this.isValid()&&(M(e)&&e.isValid()||Yt(e).isValid())?It({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},dn.fromNow=function(e){return this.from(Yt(),e)},dn.to=function(e,t){return this.isValid()&&(M(e)&&e.isValid()||Yt(e).isValid())?It({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},dn.toNow=function(e){return this.to(Yt(),e)},dn.get=function(e){return E(this[e=C(e)])?this[e]():this},dn.invalidAt=function(){return _(this).overflow},dn.isAfter=function(e,t){var n=M(e)?e:Yt(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=C(t)||"millisecond")?this.valueOf()>n.valueOf():n.valueOf()9999?B(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):E(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",B(n,"Z")):B(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},dn.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="";this.isLocal()||(e=0===this.utcOffset()?"moment.utc":"moment.parseZone",t="Z");var n="["+e+'("]',r=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",a=t+'[")]';return this.format(n+r+"-MM-DD[T]HH:mm:ss.SSS"+a)},dn.toJSON=function(){return this.isValid()?this.toISOString():null},dn.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},dn.unix=function(){return Math.floor(this.valueOf()/1e3)},dn.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},dn.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},dn.year=be,dn.isLeapYear=function(){return ve(this.year())},dn.weekYear=function(e){return nn.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},dn.isoWeekYear=function(e){return nn.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},dn.quarter=dn.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},dn.month=Ee,dn.daysInMonth=function(){return we(this.year(),this.month())},dn.week=dn.weeks=function(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")},dn.isoWeek=dn.isoWeeks=function(e){var t=Ne(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")},dn.weeksInYear=function(){var e=this.localeData()._week;return Fe(this.year(),e.dow,e.doy)},dn.isoWeeksInYear=function(){return Fe(this.year(),1,4)},dn.date=an,dn.day=dn.days=function(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=function(e,t){return"string"!=typeof e?e:isNaN(e)?"number"==typeof(e=t.weekdaysParse(e))?e:null:parseInt(e,10)}(e,this.localeData()),this.add(e-t,"d")):t},dn.weekday=function(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")},dn.isoWeekday=function(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=function(e,t){return"string"==typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7},dn.dayOfYear=function(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")},dn.hour=dn.hours=Xe,dn.minute=dn.minutes=sn,dn.second=dn.seconds=un,dn.millisecond=dn.milliseconds=cn,dn.utcOffset=function(e,t,n){var r,i=this._offset||0;if(!this.isValid())return null!=e?this:NaN;if(null!=e){if("string"==typeof e){if(null===(e=Ct(oe,e)))return this}else Math.abs(e)<16&&!n&&(e*=60);return!this._isUTC&&t&&(r=Rt(this)),this._offset=e,this._isUTC=!0,null!=r&&this.add(r,"m"),i!==e&&(!t||this._changeInProgress?Bt(this,It(e-i,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,a.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?i:Rt(this)},dn.utc=function(e){return this.utcOffset(0,e)},dn.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(Rt(this),"m")),this},dn.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var e=Ct(se,this._i);null!=e?this.utcOffset(e):this.utcOffset(0,!0)}return this},dn.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?Yt(e).utcOffset():0,(this.utcOffset()-e)%60==0)},dn.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},dn.isLocal=function(){return!!this.isValid()&&!this._isUTC},dn.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},dn.isUtc=Nt,dn.isUTC=Nt,dn.zoneAbbr=function(){return this._isUTC?"UTC":""},dn.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},dn.dates=T("dates accessor is deprecated. Use date instead.",an),dn.months=T("months accessor is deprecated. Use month instead",Ee),dn.years=T("years accessor is deprecated. Use year instead",be),dn.zone=T("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",(function(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()})),dn.isDSTShifted=T("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",(function(){if(!o(this._isDSTShifted))return this._isDSTShifted;var e={};if(v(e,this),(e=kt(e))._a){var t=e._isUTC?h(e._a):Yt(e._a);this._isDSTShifted=this.isValid()&&w(e._a,t.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}));var hn=P.prototype;function _n(e,t,n,r){var a=ot(),i=h().set(r,t);return a[n](i,e)}function mn(e,t,n){if(u(e)&&(t=e,e=void 0),e=e||"",null!=t)return _n(e,t,n,"month");var r,a=[];for(r=0;r<12;r++)a[r]=_n(e,r,n,"month");return a}function pn(e,t,n,r){"boolean"==typeof e?(u(t)&&(n=t,t=void 0),t=t||""):(n=t=e,e=!1,u(t)&&(n=t,t=void 0),t=t||"");var a,i=ot(),s=e?i._week.dow:0;if(null!=n)return _n(t,(n+s)%7,r,"day");var o=[];for(a=0;a<7;a++)o[a]=_n(t,(a+s)%7,r,"day");return o}hn.calendar=function(e,t,n){var r=this._calendar[e]||this._calendar.sameElse;return E(r)?r.call(t,n):r},hn.longDateFormat=function(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.replace(/MMMM|MM|DD|dddd/g,(function(e){return e.slice(1)})),this._longDateFormat[e])},hn.invalidDate=function(){return this._invalidDate},hn.ordinal=function(e){return this._ordinal.replace("%d",e)},hn.preparse=fn,hn.postformat=fn,hn.relativeTime=function(e,t,n,r){var a=this._relativeTime[n];return E(a)?a(e,t,n,r):a.replace(/%d/i,e)},hn.pastFuture=function(e,t){var n=this._relativeTime[e>0?"future":"past"];return E(n)?n(t):n.replace(/%s/i,t)},hn.set=function(e){var t,n;for(n in e)E(t=e[n])?this[n]=t:this["_"+n]=t;this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},hn.months=function(e,t){return e?i(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||Ye).test(t)?"format":"standalone"][e.month()]:i(this._months)?this._months:this._months.standalone},hn.monthsShort=function(e,t){return e?i(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[Ye.test(t)?"format":"standalone"][e.month()]:i(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},hn.monthsParse=function(e,t,n){var r,a,i;if(this._monthsParseExact)return Se.call(this,e,t,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),r=0;r<12;r++){if(a=h([2e3,r]),n&&!this._longMonthsParse[r]&&(this._longMonthsParse[r]=new RegExp("^"+this.months(a,"").replace(".","")+"$","i"),this._shortMonthsParse[r]=new RegExp("^"+this.monthsShort(a,"").replace(".","")+"$","i")),n||this._monthsParse[r]||(i="^"+this.months(a,"")+"|^"+this.monthsShort(a,""),this._monthsParse[r]=new RegExp(i.replace(".",""),"i")),n&&"MMMM"===t&&this._longMonthsParse[r].test(e))return r;if(n&&"MMM"===t&&this._shortMonthsParse[r].test(e))return r;if(!n&&this._monthsParse[r].test(e))return r}},hn.monthsRegex=function(e){return this._monthsParseExact?(d(this,"_monthsRegex")||He.call(this),e?this._monthsStrictRegex:this._monthsRegex):(d(this,"_monthsRegex")||(this._monthsRegex=Pe),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},hn.monthsShortRegex=function(e){return this._monthsParseExact?(d(this,"_monthsRegex")||He.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(d(this,"_monthsShortRegex")||(this._monthsShortRegex=je),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},hn.week=function(e){return Ne(e,this._week.dow,this._week.doy).week},hn.firstDayOfYear=function(){return this._week.doy},hn.firstDayOfWeek=function(){return this._week.dow},hn.weekdays=function(e,t){var n=i(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?We(n,this._week.dow):e?n[e.day()]:n},hn.weekdaysMin=function(e){return!0===e?We(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin},hn.weekdaysShort=function(e){return!0===e?We(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort},hn.weekdaysParse=function(e,t,n){var r,a,i;if(this._weekdaysParseExact)return qe.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),r=0;r<7;r++){if(a=h([2e3,1]).day(r),n&&!this._fullWeekdaysParse[r]&&(this._fullWeekdaysParse[r]=new RegExp("^"+this.weekdays(a,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[r]=new RegExp("^"+this.weekdaysShort(a,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[r]=new RegExp("^"+this.weekdaysMin(a,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[r]||(i="^"+this.weekdays(a,"")+"|^"+this.weekdaysShort(a,"")+"|^"+this.weekdaysMin(a,""),this._weekdaysParse[r]=new RegExp(i.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[r].test(e))return r;if(n&&"ddd"===t&&this._shortWeekdaysParse[r].test(e))return r;if(n&&"dd"===t&&this._minWeekdaysParse[r].test(e))return r;if(!n&&this._weekdaysParse[r].test(e))return r}},hn.weekdaysRegex=function(e){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Ge.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(d(this,"_weekdaysRegex")||(this._weekdaysRegex=Be),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},hn.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Ge.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(d(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Ve),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},hn.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Ge.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(d(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Je),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},hn.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)},hn.meridiem=function(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"},it("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===k(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),a.lang=T("moment.lang is deprecated. Use moment.locale instead.",it),a.langData=T("moment.langData is deprecated. Use moment.localeData instead.",ot);var yn=Math.abs;function vn(e,t,n,r){var a=It(t,n);return e._milliseconds+=r*a._milliseconds,e._days+=r*a._days,e._months+=r*a._months,e._bubble()}function gn(e){return e<0?Math.floor(e):Math.ceil(e)}function bn(e){return 4800*e/146097}function Mn(e){return 146097*e/4800}function Ln(e){return function(){return this.as(e)}}var kn=Ln("ms"),wn=Ln("s"),Yn=Ln("m"),Tn=Ln("h"),Dn=Ln("d"),Sn=Ln("w"),xn=Ln("M"),En=Ln("Q"),jn=Ln("y");function Pn(e){return function(){return this.isValid()?this._data[e]:NaN}}var Hn=Pn("milliseconds"),On=Pn("seconds"),Cn=Pn("minutes"),An=Pn("hours"),Rn=Pn("days"),Nn=Pn("months"),Fn=Pn("years"),Wn=Math.round,In={ss:44,s:45,m:45,h:22,d:26,M:11};function zn(e,t,n,r,a){return a.relativeTime(t||1,!!n,e,r)}var Un=Math.abs;function qn(e){return(e>0)-(e<0)||+e}function Bn(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n=Un(this._milliseconds)/1e3,r=Un(this._days),a=Un(this._months);e=L(n/60),t=L(e/60),n%=60,e%=60;var i=L(a/12),s=a%=12,o=r,u=t,l=e,c=n?n.toFixed(3).replace(/\.?0+$/,""):"",d=this.asSeconds();if(!d)return"P0D";var f=d<0?"-":"",h=qn(this._months)!==qn(d)?"-":"",_=qn(this._days)!==qn(d)?"-":"",m=qn(this._milliseconds)!==qn(d)?"-":"";return f+"P"+(i?h+i+"Y":"")+(s?h+s+"M":"")+(o?_+o+"D":"")+(u||l||c?"T":"")+(u?m+u+"H":"")+(l?m+l+"M":"")+(c?m+c+"S":"")}var Vn=Et.prototype;return Vn.isValid=function(){return this._isValid},Vn.abs=function(){var e=this._data;return this._milliseconds=yn(this._milliseconds),this._days=yn(this._days),this._months=yn(this._months),e.milliseconds=yn(e.milliseconds),e.seconds=yn(e.seconds),e.minutes=yn(e.minutes),e.hours=yn(e.hours),e.months=yn(e.months),e.years=yn(e.years),this},Vn.add=function(e,t){return vn(this,e,t,1)},Vn.subtract=function(e,t){return vn(this,e,t,-1)},Vn.as=function(e){if(!this.isValid())return NaN;var t,n,r=this._milliseconds;if("month"===(e=C(e))||"quarter"===e||"year"===e)switch(t=this._days+r/864e5,n=this._months+bn(t),e){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(t=this._days+Math.round(Mn(this._months)),e){case"week":return t/7+r/6048e5;case"day":return t+r/864e5;case"hour":return 24*t+r/36e5;case"minute":return 1440*t+r/6e4;case"second":return 86400*t+r/1e3;case"millisecond":return Math.floor(864e5*t)+r;default:throw new Error("Unknown unit "+e)}},Vn.asMilliseconds=kn,Vn.asSeconds=wn,Vn.asMinutes=Yn,Vn.asHours=Tn,Vn.asDays=Dn,Vn.asWeeks=Sn,Vn.asMonths=xn,Vn.asQuarters=En,Vn.asYears=jn,Vn.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*k(this._months/12):NaN},Vn._bubble=function(){var e,t,n,r,a,i=this._milliseconds,s=this._days,o=this._months,u=this._data;return i>=0&&s>=0&&o>=0||i<=0&&s<=0&&o<=0||(i+=864e5*gn(Mn(o)+s),s=0,o=0),u.milliseconds=i%1e3,e=L(i/1e3),u.seconds=e%60,t=L(e/60),u.minutes=t%60,n=L(t/60),u.hours=n%24,s+=L(n/24),a=L(bn(s)),o+=a,s-=gn(Mn(a)),r=L(o/12),o%=12,u.days=s,u.months=o,u.years=r,this},Vn.clone=function(){return It(this)},Vn.get=function(e){return e=C(e),this.isValid()?this[e+"s"]():NaN},Vn.milliseconds=Hn,Vn.seconds=On,Vn.minutes=Cn,Vn.hours=An,Vn.days=Rn,Vn.weeks=function(){return L(this.days()/7)},Vn.months=Nn,Vn.years=Fn,Vn.humanize=function(e){if(!this.isValid())return this.localeData().invalidDate();var t=this.localeData(),n=function(e,t,n){var r=It(e).abs(),a=Wn(r.as("s")),i=Wn(r.as("m")),s=Wn(r.as("h")),o=Wn(r.as("d")),u=Wn(r.as("M")),l=Wn(r.as("y")),c=a<=In.ss&&["s",a]||a0,c[4]=n,zn.apply(null,c)}(this,!e,t);return e&&(n=t.pastFuture(+this,n)),t.postformat(n)},Vn.toISOString=Bn,Vn.toString=Bn,Vn.toJSON=Bn,Vn.locale=$t,Vn.localeData=Qt,Vn.toIsoString=T("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Bn),Vn.lang=Kt,q("X",0,0,"unix"),q("x",0,0,"valueOf"),ce("x",ie),ce("X",/[+-]?\d+(\.\d{1,3})?/),_e("X",(function(e,t,n){n._d=new Date(1e3*parseFloat(e,10))})),_e("x",(function(e,t,n){n._d=new Date(k(e))})),a.version="2.24.0",t=Yt,a.fn=dn,a.min=function(){var e=[].slice.call(arguments,0);return St("isBefore",e)},a.max=function(){var e=[].slice.call(arguments,0);return St("isAfter",e)},a.now=function(){return Date.now?Date.now():+new Date},a.utc=h,a.unix=function(e){return Yt(1e3*e)},a.months=function(e,t){return mn(e,t,"months")},a.isDate=l,a.locale=it,a.invalid=p,a.duration=It,a.isMoment=M,a.weekdays=function(e,t,n){return pn(e,t,n,"weekdays")},a.parseZone=function(){return Yt.apply(null,arguments).parseZone()},a.localeData=ot,a.isDuration=jt,a.monthsShort=function(e,t){return mn(e,t,"monthsShort")},a.weekdaysMin=function(e,t,n){return pn(e,t,n,"weekdaysMin")},a.defineLocale=st,a.updateLocale=function(e,t){if(null!=t){var n,r,a=et;null!=(r=at(e))&&(a=r._config),t=j(a,t),(n=new P(t)).parentLocale=tt[e],tt[e]=n,it(e)}else null!=tt[e]&&(null!=tt[e].parentLocale?tt[e]=tt[e].parentLocale:null!=tt[e]&&delete tt[e]);return tt[e]},a.locales=function(){return D(tt)},a.weekdaysShort=function(e,t,n){return pn(e,t,n,"weekdaysShort")},a.normalizeUnits=C,a.relativeTimeRounding=function(e){return void 0===e?Wn:"function"==typeof e&&(Wn=e,!0)},a.relativeTimeThreshold=function(e,t){return void 0!==In[e]&&(void 0===t?In[e]:(In[e]=t,"s"===e&&(In.ss=t-1),!0))},a.calendarFormat=function(e,t){var n=e.diff(t,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},a.prototype=dn,a.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},a}()}).call(this,n(30)(e))},function(e,t,n){(function(e){var r; +!function(e,t){for(var n in t)e[n]=t[n]}(exports,function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/",n(n.s=246)}([function(e,t,n){"use strict";e.exports=n(182)},function(e,t,n){(function(e){e.exports=function(){"use strict";var t,r;function a(){return t.apply(null,arguments)}function i(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function o(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function s(e){return void 0===e}function u(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function l(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function c(e,t){var n,r=[];for(n=0;n>>0,r=0;r0)for(n=0;n=0?n?"+":"":"-")+Math.pow(10,Math.max(0,a)).toString().substr(1)+r}var W=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,I=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,z={},U={};function q(e,t,n,r){var a=r;"string"==typeof r&&(a=function(){return this[r]()}),e&&(U[e]=a),t&&(U[t[0]]=function(){return F(a.apply(this,arguments),t[1],t[2])}),n&&(U[n]=function(){return this.localeData().ordinal(a.apply(this,arguments),e)})}function B(e,t){return e.isValid()?(t=V(t,e.localeData()),z[t]=z[t]||function(e){var t,n,r,a=e.match(W);for(t=0,n=a.length;t=0&&I.test(e);)e=e.replace(I,r),I.lastIndex=0,n-=1;return e}var J=/\d/,G=/\d\d/,$=/\d{3}/,Q=/\d{4}/,K=/[+-]?\d{6}/,Z=/\d\d?/,X=/\d\d\d\d?/,ee=/\d\d\d\d\d\d?/,te=/\d{1,3}/,ne=/\d{1,4}/,re=/[+-]?\d{1,6}/,ae=/\d+/,ie=/[+-]?\d+/,oe=/Z|[+-]\d\d:?\d\d/gi,se=/Z|[+-]\d\d(?::?\d\d)?/gi,ue=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,le={};function ce(e,t,n){le[e]=E(t)?t:function(e,r){return e&&n?n:t}}function de(e,t){return d(le,e)?le[e](t._strict,t._locale):new RegExp(fe(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(function(e,t,n,r,a){return t||n||r||a}))))}function fe(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var he={};function _e(e,t){var n,r=t;for("string"==typeof e&&(e=[e]),u(t)&&(r=function(e,n){n[t]=k(e)}),n=0;n68?1900:2e3)};var ge,be=Me("FullYear",!0);function Me(e,t){return function(n){return null!=n?(ke(this,e,n),a.updateOffset(this,t),this):Le(this,e)}}function Le(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function ke(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&ve(e.year())&&1===e.month()&&29===e.date()?e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),we(n,e.month())):e._d["set"+(e._isUTC?"UTC":"")+t](n))}function we(e,t){if(isNaN(e)||isNaN(t))return NaN;var n,r=(t%(n=12)+n)%n;return e+=(t-r)/12,1===r?ve(e)?29:28:31-r%7%2}ge=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t=0?(s=new Date(e+400,t,n,r,a,i,o),isFinite(s.getFullYear())&&s.setFullYear(e)):s=new Date(e,t,n,r,a,i,o),s}function Ce(e){var t;if(e<100&&e>=0){var n=Array.prototype.slice.call(arguments);n[0]=e+400,t=new Date(Date.UTC.apply(null,n)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)}else t=new Date(Date.UTC.apply(null,arguments));return t}function Ae(e,t,n){var r=7+t-n;return-(7+Ce(e,0,r).getUTCDay()-t)%7+r-1}function Re(e,t,n,r,a){var i,o,s=1+7*(t-1)+(7+n-r)%7+Ae(e,r,a);return s<=0?o=ye(i=e-1)+s:s>ye(e)?(i=e+1,o=s-ye(e)):(i=e,o=s),{year:i,dayOfYear:o}}function Ne(e,t,n){var r,a,i=Ae(e.year(),t,n),o=Math.floor((e.dayOfYear()-i-1)/7)+1;return o<1?r=o+Fe(a=e.year()-1,t,n):o>Fe(e.year(),t,n)?(r=o-Fe(e.year(),t,n),a=e.year()+1):(a=e.year(),r=o),{week:r,year:a}}function Fe(e,t,n){var r=Ae(e,t,n),a=Ae(e+1,t,n);return(ye(e)-r+a)/7}function We(e,t){return e.slice(t,7).concat(e.slice(0,t))}q("w",["ww",2],"wo","week"),q("W",["WW",2],"Wo","isoWeek"),O("week","w"),O("isoWeek","W"),N("week",5),N("isoWeek",5),ce("w",Z),ce("ww",Z,G),ce("W",Z),ce("WW",Z,G),me(["w","ww","W","WW"],(function(e,t,n,r){t[r.substr(0,1)]=k(e)})),q("d",0,"do","day"),q("dd",0,0,(function(e){return this.localeData().weekdaysMin(this,e)})),q("ddd",0,0,(function(e){return this.localeData().weekdaysShort(this,e)})),q("dddd",0,0,(function(e){return this.localeData().weekdays(this,e)})),q("e",0,0,"weekday"),q("E",0,0,"isoWeekday"),O("day","d"),O("weekday","e"),O("isoWeekday","E"),N("day",11),N("weekday",11),N("isoWeekday",11),ce("d",Z),ce("e",Z),ce("E",Z),ce("dd",(function(e,t){return t.weekdaysMinRegex(e)})),ce("ddd",(function(e,t){return t.weekdaysShortRegex(e)})),ce("dddd",(function(e,t){return t.weekdaysRegex(e)})),me(["dd","ddd","dddd"],(function(e,t,n,r){var a=n._locale.weekdaysParse(e,r,n._strict);null!=a?t.d=a:_(n).invalidWeekday=e})),me(["d","e","E"],(function(e,t,n,r){t[r]=k(e)}));var Ie="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),ze="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Ue="Su_Mo_Tu_We_Th_Fr_Sa".split("_");function qe(e,t,n){var r,a,i,o=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],r=0;r<7;++r)i=h([2e3,1]).day(r),this._minWeekdaysParse[r]=this.weekdaysMin(i,"").toLocaleLowerCase(),this._shortWeekdaysParse[r]=this.weekdaysShort(i,"").toLocaleLowerCase(),this._weekdaysParse[r]=this.weekdays(i,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(a=ge.call(this._weekdaysParse,o))?a:null:"ddd"===t?-1!==(a=ge.call(this._shortWeekdaysParse,o))?a:null:-1!==(a=ge.call(this._minWeekdaysParse,o))?a:null:"dddd"===t?-1!==(a=ge.call(this._weekdaysParse,o))||-1!==(a=ge.call(this._shortWeekdaysParse,o))||-1!==(a=ge.call(this._minWeekdaysParse,o))?a:null:"ddd"===t?-1!==(a=ge.call(this._shortWeekdaysParse,o))||-1!==(a=ge.call(this._weekdaysParse,o))||-1!==(a=ge.call(this._minWeekdaysParse,o))?a:null:-1!==(a=ge.call(this._minWeekdaysParse,o))||-1!==(a=ge.call(this._weekdaysParse,o))||-1!==(a=ge.call(this._shortWeekdaysParse,o))?a:null}var Be=ue,Ve=ue,Je=ue;function Ge(){function e(e,t){return t.length-e.length}var t,n,r,a,i,o=[],s=[],u=[],l=[];for(t=0;t<7;t++)n=h([2e3,1]).day(t),r=this.weekdaysMin(n,""),a=this.weekdaysShort(n,""),i=this.weekdays(n,""),o.push(r),s.push(a),u.push(i),l.push(r),l.push(a),l.push(i);for(o.sort(e),s.sort(e),u.sort(e),l.sort(e),t=0;t<7;t++)s[t]=fe(s[t]),u[t]=fe(u[t]),l[t]=fe(l[t]);this._weekdaysRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+o.join("|")+")","i")}function $e(){return this.hours()%12||12}function Qe(e,t){q(e,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)}))}function Ke(e,t){return t._meridiemParse}q("H",["HH",2],0,"hour"),q("h",["hh",2],0,$e),q("k",["kk",2],0,(function(){return this.hours()||24})),q("hmm",0,0,(function(){return""+$e.apply(this)+F(this.minutes(),2)})),q("hmmss",0,0,(function(){return""+$e.apply(this)+F(this.minutes(),2)+F(this.seconds(),2)})),q("Hmm",0,0,(function(){return""+this.hours()+F(this.minutes(),2)})),q("Hmmss",0,0,(function(){return""+this.hours()+F(this.minutes(),2)+F(this.seconds(),2)})),Qe("a",!0),Qe("A",!1),O("hour","h"),N("hour",13),ce("a",Ke),ce("A",Ke),ce("H",Z),ce("h",Z),ce("k",Z),ce("HH",Z,G),ce("hh",Z,G),ce("kk",Z,G),ce("hmm",X),ce("hmmss",ee),ce("Hmm",X),ce("Hmmss",ee),_e(["H","HH"],3),_e(["k","kk"],(function(e,t,n){var r=k(e);t[3]=24===r?0:r})),_e(["a","A"],(function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e})),_e(["h","hh"],(function(e,t,n){t[3]=k(e),_(n).bigHour=!0})),_e("hmm",(function(e,t,n){var r=e.length-2;t[3]=k(e.substr(0,r)),t[4]=k(e.substr(r)),_(n).bigHour=!0})),_e("hmmss",(function(e,t,n){var r=e.length-4,a=e.length-2;t[3]=k(e.substr(0,r)),t[4]=k(e.substr(r,2)),t[5]=k(e.substr(a)),_(n).bigHour=!0})),_e("Hmm",(function(e,t,n){var r=e.length-2;t[3]=k(e.substr(0,r)),t[4]=k(e.substr(r))})),_e("Hmmss",(function(e,t,n){var r=e.length-4,a=e.length-2;t[3]=k(e.substr(0,r)),t[4]=k(e.substr(r,2)),t[5]=k(e.substr(a))}));var Ze,Xe=Me("Hours",!0),et={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Te,monthsShort:Se,week:{dow:0,doy:6},weekdays:Ie,weekdaysMin:Ue,weekdaysShort:ze,meridiemParse:/[ap]\.?m?\.?/i},tt={},nt={};function rt(e){return e?e.toLowerCase().replace("_","-"):e}function at(t){var r=null;if(!tt[t]&&void 0!==e&&e&&e.exports)try{r=Ze._abbr,n(188)("./"+t),it(r)}catch(e){}return tt[t]}function it(e,t){var n;return e&&((n=s(t)?st(e):ot(e,t))?Ze=n:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),Ze._abbr}function ot(e,t){if(null!==t){var n,r=et;if(t.abbr=e,null!=tt[e])x("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),r=tt[e]._config;else if(null!=t.parentLocale)if(null!=tt[t.parentLocale])r=tt[t.parentLocale]._config;else{if(null==(n=at(t.parentLocale)))return nt[t.parentLocale]||(nt[t.parentLocale]=[]),nt[t.parentLocale].push({name:e,config:t}),null;r=n._config}return tt[e]=new P(j(r,t)),nt[e]&&nt[e].forEach((function(e){ot(e.name,e.config)})),it(e),tt[e]}return delete tt[e],null}function st(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return Ze;if(!i(e)){if(t=at(e))return t;e=[e]}return function(e){for(var t,n,r,a,i=0;i0;){if(r=at(a.slice(0,t).join("-")))return r;if(n&&n.length>=t&&w(a,n,!0)>=t-1)break;t--}i++}return Ze}(e)}function ut(e){var t,n=e._a;return n&&-2===_(e).overflow&&(t=n[1]<0||n[1]>11?1:n[2]<1||n[2]>we(n[0],n[1])?2:n[3]<0||n[3]>24||24===n[3]&&(0!==n[4]||0!==n[5]||0!==n[6])?3:n[4]<0||n[4]>59?4:n[5]<0||n[5]>59?5:n[6]<0||n[6]>999?6:-1,_(e)._overflowDayOfYear&&(t<0||t>2)&&(t=2),_(e)._overflowWeeks&&-1===t&&(t=7),_(e)._overflowWeekday&&-1===t&&(t=8),_(e).overflow=t),e}function lt(e,t,n){return null!=e?e:null!=t?t:n}function ct(e){var t,n,r,i,o,s=[];if(!e._d){for(r=function(e){var t=new Date(a.now());return e._useUTC?[t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()]:[t.getFullYear(),t.getMonth(),t.getDate()]}(e),e._w&&null==e._a[2]&&null==e._a[1]&&function(e){var t,n,r,a,i,o,s,u;if(null!=(t=e._w).GG||null!=t.W||null!=t.E)i=1,o=4,n=lt(t.GG,e._a[0],Ne(Yt(),1,4).year),r=lt(t.W,1),((a=lt(t.E,1))<1||a>7)&&(u=!0);else{i=e._locale._week.dow,o=e._locale._week.doy;var l=Ne(Yt(),i,o);n=lt(t.gg,e._a[0],l.year),r=lt(t.w,l.week),null!=t.d?((a=t.d)<0||a>6)&&(u=!0):null!=t.e?(a=t.e+i,(t.e<0||t.e>6)&&(u=!0)):a=i}r<1||r>Fe(n,i,o)?_(e)._overflowWeeks=!0:null!=u?_(e)._overflowWeekday=!0:(s=Re(n,r,a,i,o),e._a[0]=s.year,e._dayOfYear=s.dayOfYear)}(e),null!=e._dayOfYear&&(o=lt(e._a[0],r[0]),(e._dayOfYear>ye(o)||0===e._dayOfYear)&&(_(e)._overflowDayOfYear=!0),n=Ce(o,0,e._dayOfYear),e._a[1]=n.getUTCMonth(),e._a[2]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=s[t]=r[t];for(;t<7;t++)e._a[t]=s[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[3]&&0===e._a[4]&&0===e._a[5]&&0===e._a[6]&&(e._nextDay=!0,e._a[3]=0),e._d=(e._useUTC?Ce:Oe).apply(null,s),i=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[3]=24),e._w&&void 0!==e._w.d&&e._w.d!==i&&(_(e).weekdayMismatch=!0)}}var dt=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ft=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ht=/Z|[+-]\d\d(?::?\d\d)?/,_t=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],mt=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],pt=/^\/?Date\((\-?\d+)/i;function yt(e){var t,n,r,a,i,o,s=e._i,u=dt.exec(s)||ft.exec(s);if(u){for(_(e).iso=!0,t=0,n=_t.length;t0&&_(e).unusedInput.push(o),s=s.slice(s.indexOf(n)+n.length),l+=n.length),U[i]?(n?_(e).empty=!1:_(e).unusedTokens.push(i),pe(i,n,e)):e._strict&&!n&&_(e).unusedTokens.push(i);_(e).charsLeftOver=u-l,s.length>0&&_(e).unusedInput.push(s),e._a[3]<=12&&!0===_(e).bigHour&&e._a[3]>0&&(_(e).bigHour=void 0),_(e).parsedDateParts=e._a.slice(0),_(e).meridiem=e._meridiem,e._a[3]=function(e,t,n){var r;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?((r=e.isPM(n))&&t<12&&(t+=12),r||12!==t||(t=0),t):t}(e._locale,e._a[3],e._meridiem),ct(e),ut(e)}else Mt(e);else yt(e)}function kt(e){var t=e._i,n=e._f;return e._locale=e._locale||st(e._l),null===t||void 0===n&&""===t?p({nullInput:!0}):("string"==typeof t&&(e._i=t=e._locale.preparse(t)),M(t)?new b(ut(t)):(l(t)?e._d=t:i(n)?function(e){var t,n,r,a,i;if(0===e._f.length)return _(e).invalidFormat=!0,void(e._d=new Date(NaN));for(a=0;athis?this:e:p()}));function Dt(e,t){var n,r;if(1===t.length&&i(t[0])&&(t=t[0]),!t.length)return Yt();for(n=t[0],r=1;r=0?new Date(e+400,t,n)-126227808e5:new Date(e,t,n).valueOf()}function en(e,t,n){return e<100&&e>=0?Date.UTC(e+400,t,n)-126227808e5:Date.UTC(e,t,n)}function tn(e,t){q(0,[e,e.length],0,t)}function nn(e,t,n,r,a){var i;return null==e?Ne(this,r,a).year:(t>(i=Fe(e,r,a))&&(t=i),rn.call(this,e,t,n,r,a))}function rn(e,t,n,r,a){var i=Re(e,t,n,r,a),o=Ce(i.year,0,i.dayOfYear);return this.year(o.getUTCFullYear()),this.month(o.getUTCMonth()),this.date(o.getUTCDate()),this}q(0,["gg",2],0,(function(){return this.weekYear()%100})),q(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),tn("gggg","weekYear"),tn("ggggg","weekYear"),tn("GGGG","isoWeekYear"),tn("GGGGG","isoWeekYear"),O("weekYear","gg"),O("isoWeekYear","GG"),N("weekYear",1),N("isoWeekYear",1),ce("G",ie),ce("g",ie),ce("GG",Z,G),ce("gg",Z,G),ce("GGGG",ne,Q),ce("gggg",ne,Q),ce("GGGGG",re,K),ce("ggggg",re,K),me(["gggg","ggggg","GGGG","GGGGG"],(function(e,t,n,r){t[r.substr(0,2)]=k(e)})),me(["gg","GG"],(function(e,t,n,r){t[r]=a.parseTwoDigitYear(e)})),q("Q",0,"Qo","quarter"),O("quarter","Q"),N("quarter",7),ce("Q",J),_e("Q",(function(e,t){t[1]=3*(k(e)-1)})),q("D",["DD",2],"Do","date"),O("date","D"),N("date",9),ce("D",Z),ce("DD",Z,G),ce("Do",(function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient})),_e(["D","DD"],2),_e("Do",(function(e,t){t[2]=k(e.match(Z)[0])}));var an=Me("Date",!0);q("DDD",["DDDD",3],"DDDo","dayOfYear"),O("dayOfYear","DDD"),N("dayOfYear",4),ce("DDD",te),ce("DDDD",$),_e(["DDD","DDDD"],(function(e,t,n){n._dayOfYear=k(e)})),q("m",["mm",2],0,"minute"),O("minute","m"),N("minute",14),ce("m",Z),ce("mm",Z,G),_e(["m","mm"],4);var on=Me("Minutes",!1);q("s",["ss",2],0,"second"),O("second","s"),N("second",15),ce("s",Z),ce("ss",Z,G),_e(["s","ss"],5);var sn,un=Me("Seconds",!1);for(q("S",0,0,(function(){return~~(this.millisecond()/100)})),q(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),q(0,["SSS",3],0,"millisecond"),q(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),q(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),q(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),q(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),q(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),q(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),O("millisecond","ms"),N("millisecond",16),ce("S",te,J),ce("SS",te,G),ce("SSS",te,$),sn="SSSS";sn.length<=9;sn+="S")ce(sn,ae);function ln(e,t){t[6]=k(1e3*("0."+e))}for(sn="S";sn.length<=9;sn+="S")_e(sn,ln);var cn=Me("Milliseconds",!1);q("z",0,0,"zoneAbbr"),q("zz",0,0,"zoneName");var dn=b.prototype;function fn(e){return e}dn.add=Vt,dn.calendar=function(e,t){var n=e||Yt(),r=At(n,this).startOf("day"),i=a.calendarFormat(this,r)||"sameElse",o=t&&(E(t[i])?t[i].call(this,n):t[i]);return this.format(o||this.localeData().calendar(i,this,Yt(n)))},dn.clone=function(){return new b(this)},dn.diff=function(e,t,n){var r,a,i;if(!this.isValid())return NaN;if(!(r=At(e,this)).isValid())return NaN;switch(a=6e4*(r.utcOffset()-this.utcOffset()),t=C(t)){case"year":i=Gt(this,r)/12;break;case"month":i=Gt(this,r);break;case"quarter":i=Gt(this,r)/3;break;case"second":i=(this-r)/1e3;break;case"minute":i=(this-r)/6e4;break;case"hour":i=(this-r)/36e5;break;case"day":i=(this-r-a)/864e5;break;case"week":i=(this-r-a)/6048e5;break;default:i=this-r}return n?i:L(i)},dn.endOf=function(e){var t;if(void 0===(e=C(e))||"millisecond"===e||!this.isValid())return this;var n=this._isUTC?en:Xt;switch(e){case"year":t=n(this.year()+1,0,1)-1;break;case"quarter":t=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=n(this.year(),this.month()+1,1)-1;break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=n(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=36e5-Zt(t+(this._isUTC?0:6e4*this.utcOffset()),36e5)-1;break;case"minute":t=this._d.valueOf(),t+=6e4-Zt(t,6e4)-1;break;case"second":t=this._d.valueOf(),t+=1e3-Zt(t,1e3)-1}return this._d.setTime(t),a.updateOffset(this,!0),this},dn.format=function(e){e||(e=this.isUtc()?a.defaultFormatUtc:a.defaultFormat);var t=B(this,e);return this.localeData().postformat(t)},dn.from=function(e,t){return this.isValid()&&(M(e)&&e.isValid()||Yt(e).isValid())?It({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},dn.fromNow=function(e){return this.from(Yt(),e)},dn.to=function(e,t){return this.isValid()&&(M(e)&&e.isValid()||Yt(e).isValid())?It({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},dn.toNow=function(e){return this.to(Yt(),e)},dn.get=function(e){return E(this[e=C(e)])?this[e]():this},dn.invalidAt=function(){return _(this).overflow},dn.isAfter=function(e,t){var n=M(e)?e:Yt(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=C(t)||"millisecond")?this.valueOf()>n.valueOf():n.valueOf()9999?B(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):E(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",B(n,"Z")):B(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},dn.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="";this.isLocal()||(e=0===this.utcOffset()?"moment.utc":"moment.parseZone",t="Z");var n="["+e+'("]',r=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",a=t+'[")]';return this.format(n+r+"-MM-DD[T]HH:mm:ss.SSS"+a)},dn.toJSON=function(){return this.isValid()?this.toISOString():null},dn.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},dn.unix=function(){return Math.floor(this.valueOf()/1e3)},dn.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},dn.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},dn.year=be,dn.isLeapYear=function(){return ve(this.year())},dn.weekYear=function(e){return nn.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},dn.isoWeekYear=function(e){return nn.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},dn.quarter=dn.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},dn.month=Ee,dn.daysInMonth=function(){return we(this.year(),this.month())},dn.week=dn.weeks=function(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")},dn.isoWeek=dn.isoWeeks=function(e){var t=Ne(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")},dn.weeksInYear=function(){var e=this.localeData()._week;return Fe(this.year(),e.dow,e.doy)},dn.isoWeeksInYear=function(){return Fe(this.year(),1,4)},dn.date=an,dn.day=dn.days=function(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=function(e,t){return"string"!=typeof e?e:isNaN(e)?"number"==typeof(e=t.weekdaysParse(e))?e:null:parseInt(e,10)}(e,this.localeData()),this.add(e-t,"d")):t},dn.weekday=function(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")},dn.isoWeekday=function(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=function(e,t){return"string"==typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7},dn.dayOfYear=function(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")},dn.hour=dn.hours=Xe,dn.minute=dn.minutes=on,dn.second=dn.seconds=un,dn.millisecond=dn.milliseconds=cn,dn.utcOffset=function(e,t,n){var r,i=this._offset||0;if(!this.isValid())return null!=e?this:NaN;if(null!=e){if("string"==typeof e){if(null===(e=Ct(se,e)))return this}else Math.abs(e)<16&&!n&&(e*=60);return!this._isUTC&&t&&(r=Rt(this)),this._offset=e,this._isUTC=!0,null!=r&&this.add(r,"m"),i!==e&&(!t||this._changeInProgress?Bt(this,It(e-i,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,a.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?i:Rt(this)},dn.utc=function(e){return this.utcOffset(0,e)},dn.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(Rt(this),"m")),this},dn.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var e=Ct(oe,this._i);null!=e?this.utcOffset(e):this.utcOffset(0,!0)}return this},dn.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?Yt(e).utcOffset():0,(this.utcOffset()-e)%60==0)},dn.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},dn.isLocal=function(){return!!this.isValid()&&!this._isUTC},dn.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},dn.isUtc=Nt,dn.isUTC=Nt,dn.zoneAbbr=function(){return this._isUTC?"UTC":""},dn.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},dn.dates=T("dates accessor is deprecated. Use date instead.",an),dn.months=T("months accessor is deprecated. Use month instead",Ee),dn.years=T("years accessor is deprecated. Use year instead",be),dn.zone=T("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",(function(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()})),dn.isDSTShifted=T("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",(function(){if(!s(this._isDSTShifted))return this._isDSTShifted;var e={};if(v(e,this),(e=kt(e))._a){var t=e._isUTC?h(e._a):Yt(e._a);this._isDSTShifted=this.isValid()&&w(e._a,t.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}));var hn=P.prototype;function _n(e,t,n,r){var a=st(),i=h().set(r,t);return a[n](i,e)}function mn(e,t,n){if(u(e)&&(t=e,e=void 0),e=e||"",null!=t)return _n(e,t,n,"month");var r,a=[];for(r=0;r<12;r++)a[r]=_n(e,r,n,"month");return a}function pn(e,t,n,r){"boolean"==typeof e?(u(t)&&(n=t,t=void 0),t=t||""):(n=t=e,e=!1,u(t)&&(n=t,t=void 0),t=t||"");var a,i=st(),o=e?i._week.dow:0;if(null!=n)return _n(t,(n+o)%7,r,"day");var s=[];for(a=0;a<7;a++)s[a]=_n(t,(a+o)%7,r,"day");return s}hn.calendar=function(e,t,n){var r=this._calendar[e]||this._calendar.sameElse;return E(r)?r.call(t,n):r},hn.longDateFormat=function(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.replace(/MMMM|MM|DD|dddd/g,(function(e){return e.slice(1)})),this._longDateFormat[e])},hn.invalidDate=function(){return this._invalidDate},hn.ordinal=function(e){return this._ordinal.replace("%d",e)},hn.preparse=fn,hn.postformat=fn,hn.relativeTime=function(e,t,n,r){var a=this._relativeTime[n];return E(a)?a(e,t,n,r):a.replace(/%d/i,e)},hn.pastFuture=function(e,t){var n=this._relativeTime[e>0?"future":"past"];return E(n)?n(t):n.replace(/%s/i,t)},hn.set=function(e){var t,n;for(n in e)E(t=e[n])?this[n]=t:this["_"+n]=t;this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},hn.months=function(e,t){return e?i(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||Ye).test(t)?"format":"standalone"][e.month()]:i(this._months)?this._months:this._months.standalone},hn.monthsShort=function(e,t){return e?i(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[Ye.test(t)?"format":"standalone"][e.month()]:i(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},hn.monthsParse=function(e,t,n){var r,a,i;if(this._monthsParseExact)return De.call(this,e,t,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),r=0;r<12;r++){if(a=h([2e3,r]),n&&!this._longMonthsParse[r]&&(this._longMonthsParse[r]=new RegExp("^"+this.months(a,"").replace(".","")+"$","i"),this._shortMonthsParse[r]=new RegExp("^"+this.monthsShort(a,"").replace(".","")+"$","i")),n||this._monthsParse[r]||(i="^"+this.months(a,"")+"|^"+this.monthsShort(a,""),this._monthsParse[r]=new RegExp(i.replace(".",""),"i")),n&&"MMMM"===t&&this._longMonthsParse[r].test(e))return r;if(n&&"MMM"===t&&this._shortMonthsParse[r].test(e))return r;if(!n&&this._monthsParse[r].test(e))return r}},hn.monthsRegex=function(e){return this._monthsParseExact?(d(this,"_monthsRegex")||He.call(this),e?this._monthsStrictRegex:this._monthsRegex):(d(this,"_monthsRegex")||(this._monthsRegex=Pe),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},hn.monthsShortRegex=function(e){return this._monthsParseExact?(d(this,"_monthsRegex")||He.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(d(this,"_monthsShortRegex")||(this._monthsShortRegex=je),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},hn.week=function(e){return Ne(e,this._week.dow,this._week.doy).week},hn.firstDayOfYear=function(){return this._week.doy},hn.firstDayOfWeek=function(){return this._week.dow},hn.weekdays=function(e,t){var n=i(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?We(n,this._week.dow):e?n[e.day()]:n},hn.weekdaysMin=function(e){return!0===e?We(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin},hn.weekdaysShort=function(e){return!0===e?We(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort},hn.weekdaysParse=function(e,t,n){var r,a,i;if(this._weekdaysParseExact)return qe.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),r=0;r<7;r++){if(a=h([2e3,1]).day(r),n&&!this._fullWeekdaysParse[r]&&(this._fullWeekdaysParse[r]=new RegExp("^"+this.weekdays(a,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[r]=new RegExp("^"+this.weekdaysShort(a,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[r]=new RegExp("^"+this.weekdaysMin(a,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[r]||(i="^"+this.weekdays(a,"")+"|^"+this.weekdaysShort(a,"")+"|^"+this.weekdaysMin(a,""),this._weekdaysParse[r]=new RegExp(i.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[r].test(e))return r;if(n&&"ddd"===t&&this._shortWeekdaysParse[r].test(e))return r;if(n&&"dd"===t&&this._minWeekdaysParse[r].test(e))return r;if(!n&&this._weekdaysParse[r].test(e))return r}},hn.weekdaysRegex=function(e){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Ge.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(d(this,"_weekdaysRegex")||(this._weekdaysRegex=Be),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},hn.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Ge.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(d(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Ve),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},hn.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Ge.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(d(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Je),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},hn.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)},hn.meridiem=function(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"},it("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===k(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),a.lang=T("moment.lang is deprecated. Use moment.locale instead.",it),a.langData=T("moment.langData is deprecated. Use moment.localeData instead.",st);var yn=Math.abs;function vn(e,t,n,r){var a=It(t,n);return e._milliseconds+=r*a._milliseconds,e._days+=r*a._days,e._months+=r*a._months,e._bubble()}function gn(e){return e<0?Math.floor(e):Math.ceil(e)}function bn(e){return 4800*e/146097}function Mn(e){return 146097*e/4800}function Ln(e){return function(){return this.as(e)}}var kn=Ln("ms"),wn=Ln("s"),Yn=Ln("m"),Tn=Ln("h"),Sn=Ln("d"),Dn=Ln("w"),xn=Ln("M"),En=Ln("Q"),jn=Ln("y");function Pn(e){return function(){return this.isValid()?this._data[e]:NaN}}var Hn=Pn("milliseconds"),On=Pn("seconds"),Cn=Pn("minutes"),An=Pn("hours"),Rn=Pn("days"),Nn=Pn("months"),Fn=Pn("years"),Wn=Math.round,In={ss:44,s:45,m:45,h:22,d:26,M:11};function zn(e,t,n,r,a){return a.relativeTime(t||1,!!n,e,r)}var Un=Math.abs;function qn(e){return(e>0)-(e<0)||+e}function Bn(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n=Un(this._milliseconds)/1e3,r=Un(this._days),a=Un(this._months);e=L(n/60),t=L(e/60),n%=60,e%=60;var i=L(a/12),o=a%=12,s=r,u=t,l=e,c=n?n.toFixed(3).replace(/\.?0+$/,""):"",d=this.asSeconds();if(!d)return"P0D";var f=d<0?"-":"",h=qn(this._months)!==qn(d)?"-":"",_=qn(this._days)!==qn(d)?"-":"",m=qn(this._milliseconds)!==qn(d)?"-":"";return f+"P"+(i?h+i+"Y":"")+(o?h+o+"M":"")+(s?_+s+"D":"")+(u||l||c?"T":"")+(u?m+u+"H":"")+(l?m+l+"M":"")+(c?m+c+"S":"")}var Vn=Et.prototype;return Vn.isValid=function(){return this._isValid},Vn.abs=function(){var e=this._data;return this._milliseconds=yn(this._milliseconds),this._days=yn(this._days),this._months=yn(this._months),e.milliseconds=yn(e.milliseconds),e.seconds=yn(e.seconds),e.minutes=yn(e.minutes),e.hours=yn(e.hours),e.months=yn(e.months),e.years=yn(e.years),this},Vn.add=function(e,t){return vn(this,e,t,1)},Vn.subtract=function(e,t){return vn(this,e,t,-1)},Vn.as=function(e){if(!this.isValid())return NaN;var t,n,r=this._milliseconds;if("month"===(e=C(e))||"quarter"===e||"year"===e)switch(t=this._days+r/864e5,n=this._months+bn(t),e){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(t=this._days+Math.round(Mn(this._months)),e){case"week":return t/7+r/6048e5;case"day":return t+r/864e5;case"hour":return 24*t+r/36e5;case"minute":return 1440*t+r/6e4;case"second":return 86400*t+r/1e3;case"millisecond":return Math.floor(864e5*t)+r;default:throw new Error("Unknown unit "+e)}},Vn.asMilliseconds=kn,Vn.asSeconds=wn,Vn.asMinutes=Yn,Vn.asHours=Tn,Vn.asDays=Sn,Vn.asWeeks=Dn,Vn.asMonths=xn,Vn.asQuarters=En,Vn.asYears=jn,Vn.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*k(this._months/12):NaN},Vn._bubble=function(){var e,t,n,r,a,i=this._milliseconds,o=this._days,s=this._months,u=this._data;return i>=0&&o>=0&&s>=0||i<=0&&o<=0&&s<=0||(i+=864e5*gn(Mn(s)+o),o=0,s=0),u.milliseconds=i%1e3,e=L(i/1e3),u.seconds=e%60,t=L(e/60),u.minutes=t%60,n=L(t/60),u.hours=n%24,o+=L(n/24),a=L(bn(o)),s+=a,o-=gn(Mn(a)),r=L(s/12),s%=12,u.days=o,u.months=s,u.years=r,this},Vn.clone=function(){return It(this)},Vn.get=function(e){return e=C(e),this.isValid()?this[e+"s"]():NaN},Vn.milliseconds=Hn,Vn.seconds=On,Vn.minutes=Cn,Vn.hours=An,Vn.days=Rn,Vn.weeks=function(){return L(this.days()/7)},Vn.months=Nn,Vn.years=Fn,Vn.humanize=function(e){if(!this.isValid())return this.localeData().invalidDate();var t=this.localeData(),n=function(e,t,n){var r=It(e).abs(),a=Wn(r.as("s")),i=Wn(r.as("m")),o=Wn(r.as("h")),s=Wn(r.as("d")),u=Wn(r.as("M")),l=Wn(r.as("y")),c=a<=In.ss&&["s",a]||a0,c[4]=n,zn.apply(null,c)}(this,!e,t);return e&&(n=t.pastFuture(+this,n)),t.postformat(n)},Vn.toISOString=Bn,Vn.toString=Bn,Vn.toJSON=Bn,Vn.locale=$t,Vn.localeData=Kt,Vn.toIsoString=T("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Bn),Vn.lang=Qt,q("X",0,0,"unix"),q("x",0,0,"valueOf"),ce("x",ie),ce("X",/[+-]?\d+(\.\d{1,3})?/),_e("X",(function(e,t,n){n._d=new Date(1e3*parseFloat(e,10))})),_e("x",(function(e,t,n){n._d=new Date(k(e))})),a.version="2.24.0",t=Yt,a.fn=dn,a.min=function(){var e=[].slice.call(arguments,0);return Dt("isBefore",e)},a.max=function(){var e=[].slice.call(arguments,0);return Dt("isAfter",e)},a.now=function(){return Date.now?Date.now():+new Date},a.utc=h,a.unix=function(e){return Yt(1e3*e)},a.months=function(e,t){return mn(e,t,"months")},a.isDate=l,a.locale=it,a.invalid=p,a.duration=It,a.isMoment=M,a.weekdays=function(e,t,n){return pn(e,t,n,"weekdays")},a.parseZone=function(){return Yt.apply(null,arguments).parseZone()},a.localeData=st,a.isDuration=jt,a.monthsShort=function(e,t){return mn(e,t,"monthsShort")},a.weekdaysMin=function(e,t,n){return pn(e,t,n,"weekdaysMin")},a.defineLocale=ot,a.updateLocale=function(e,t){if(null!=t){var n,r,a=et;null!=(r=at(e))&&(a=r._config),t=j(a,t),(n=new P(t)).parentLocale=tt[e],tt[e]=n,it(e)}else null!=tt[e]&&(null!=tt[e].parentLocale?tt[e]=tt[e].parentLocale:null!=tt[e]&&delete tt[e]);return tt[e]},a.locales=function(){return S(tt)},a.weekdaysShort=function(e,t,n){return pn(e,t,n,"weekdaysShort")},a.normalizeUnits=C,a.relativeTimeRounding=function(e){return void 0===e?Wn:"function"==typeof e&&(Wn=e,!0)},a.relativeTimeThreshold=function(e,t){return void 0!==In[e]&&(void 0===t?In[e]:(In[e]=t,"s"===e&&(In.ss=t-1),!0))},a.calendarFormat=function(e,t){var n=e.diff(t,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},a.prototype=dn,a.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},a}()}).call(this,n(30)(e))},function(e,t,n){(function(e){var r; /** * @license * Lodash @@ -6,47 +6,47 @@ * Released under MIT license * Based on Underscore.js 1.8.3 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */(function(){var a="Expected a function",i="__lodash_placeholder__",s=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],o="[object Arguments]",u="[object Array]",l="[object Boolean]",c="[object Date]",d="[object Error]",f="[object Function]",h="[object GeneratorFunction]",_="[object Map]",m="[object Number]",p="[object Object]",y="[object RegExp]",v="[object Set]",g="[object String]",b="[object Symbol]",M="[object WeakMap]",L="[object ArrayBuffer]",k="[object DataView]",w="[object Float32Array]",Y="[object Float64Array]",T="[object Int8Array]",D="[object Int16Array]",S="[object Int32Array]",x="[object Uint8Array]",E="[object Uint16Array]",j="[object Uint32Array]",P=/\b__p \+= '';/g,H=/\b(__p \+=) '' \+/g,O=/(__e\(.*?\)|\b__t\)) \+\n'';/g,C=/&(?:amp|lt|gt|quot|#39);/g,A=/[&<>"']/g,R=RegExp(C.source),N=RegExp(A.source),F=/<%-([\s\S]+?)%>/g,W=/<%([\s\S]+?)%>/g,I=/<%=([\s\S]+?)%>/g,z=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,U=/^\w*$/,q=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,B=/[\\^$.*+?()[\]{}|]/g,V=RegExp(B.source),J=/^\s+|\s+$/g,G=/^\s+/,$=/\s+$/,K=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Q=/\{\n\/\* \[wrapped with (.+)\] \*/,Z=/,? & /,X=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,ee=/\\(\\)?/g,te=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,ne=/\w*$/,re=/^[-+]0x[0-9a-f]+$/i,ae=/^0b[01]+$/i,ie=/^\[object .+?Constructor\]$/,se=/^0o[0-7]+$/i,oe=/^(?:0|[1-9]\d*)$/,ue=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,le=/($^)/,ce=/['\n\r\u2028\u2029\\]/g,de="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",fe="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",he="[\\ud800-\\udfff]",_e="["+fe+"]",me="["+de+"]",pe="\\d+",ye="[\\u2700-\\u27bf]",ve="[a-z\\xdf-\\xf6\\xf8-\\xff]",ge="[^\\ud800-\\udfff"+fe+pe+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",be="\\ud83c[\\udffb-\\udfff]",Me="[^\\ud800-\\udfff]",Le="(?:\\ud83c[\\udde6-\\uddff]){2}",ke="[\\ud800-\\udbff][\\udc00-\\udfff]",we="[A-Z\\xc0-\\xd6\\xd8-\\xde]",Ye="(?:"+ve+"|"+ge+")",Te="(?:"+we+"|"+ge+")",De="(?:"+me+"|"+be+")"+"?",Se="[\\ufe0e\\ufe0f]?"+De+("(?:\\u200d(?:"+[Me,Le,ke].join("|")+")[\\ufe0e\\ufe0f]?"+De+")*"),xe="(?:"+[ye,Le,ke].join("|")+")"+Se,Ee="(?:"+[Me+me+"?",me,Le,ke,he].join("|")+")",je=RegExp("['’]","g"),Pe=RegExp(me,"g"),He=RegExp(be+"(?="+be+")|"+Ee+Se,"g"),Oe=RegExp([we+"?"+ve+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[_e,we,"$"].join("|")+")",Te+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[_e,we+Ye,"$"].join("|")+")",we+"?"+Ye+"+(?:['’](?:d|ll|m|re|s|t|ve))?",we+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",pe,xe].join("|"),"g"),Ce=RegExp("[\\u200d\\ud800-\\udfff"+de+"\\ufe0e\\ufe0f]"),Ae=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Re=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Ne=-1,Fe={};Fe[w]=Fe[Y]=Fe[T]=Fe[D]=Fe[S]=Fe[x]=Fe["[object Uint8ClampedArray]"]=Fe[E]=Fe[j]=!0,Fe[o]=Fe[u]=Fe[L]=Fe[l]=Fe[k]=Fe[c]=Fe[d]=Fe[f]=Fe[_]=Fe[m]=Fe[p]=Fe[y]=Fe[v]=Fe[g]=Fe[M]=!1;var We={};We[o]=We[u]=We[L]=We[k]=We[l]=We[c]=We[w]=We[Y]=We[T]=We[D]=We[S]=We[_]=We[m]=We[p]=We[y]=We[v]=We[g]=We[b]=We[x]=We["[object Uint8ClampedArray]"]=We[E]=We[j]=!0,We[d]=We[f]=We[M]=!1;var Ie={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},ze=parseFloat,Ue=parseInt,qe="object"==typeof global&&global&&global.Object===Object&&global,Be="object"==typeof self&&self&&self.Object===Object&&self,Ve=qe||Be||Function("return this")(),Je=t&&!t.nodeType&&t,Ge=Je&&"object"==typeof e&&e&&!e.nodeType&&e,$e=Ge&&Ge.exports===Je,Ke=$e&&qe.process,Qe=function(){try{var e=Ge&&Ge.require&&Ge.require("util").types;return e||Ke&&Ke.binding&&Ke.binding("util")}catch(e){}}(),Ze=Qe&&Qe.isArrayBuffer,Xe=Qe&&Qe.isDate,et=Qe&&Qe.isMap,tt=Qe&&Qe.isRegExp,nt=Qe&&Qe.isSet,rt=Qe&&Qe.isTypedArray;function at(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function it(e,t,n,r){for(var a=-1,i=null==e?0:e.length;++a-1}function dt(e,t,n){for(var r=-1,a=null==e?0:e.length;++r-1;);return n}function Ht(e,t){for(var n=e.length;n--&&bt(t,e[n],0)>-1;);return n}function Ot(e,t){for(var n=e.length,r=0;n--;)e[n]===t&&++r;return r}var Ct=Yt({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),At=Yt({"&":"&","<":"<",">":">",'"':""","'":"'"});function Rt(e){return"\\"+Ie[e]}function Nt(e){return Ce.test(e)}function Ft(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function Wt(e,t){return function(n){return e(t(n))}}function It(e,t){for(var n=-1,r=e.length,a=0,s=[];++n",""":'"',"'":"'"});var Jt=function e(t){var n,r=(t=null==t?Ve:Jt.defaults(Ve.Object(),t,Jt.pick(Ve,Re))).Array,de=t.Date,fe=t.Error,he=t.Function,_e=t.Math,me=t.Object,pe=t.RegExp,ye=t.String,ve=t.TypeError,ge=r.prototype,be=he.prototype,Me=me.prototype,Le=t["__core-js_shared__"],ke=be.toString,we=Me.hasOwnProperty,Ye=0,Te=(n=/[^.]+$/.exec(Le&&Le.keys&&Le.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",De=Me.toString,Se=ke.call(me),xe=Ve._,Ee=pe("^"+ke.call(we).replace(B,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),He=$e?t.Buffer:void 0,Ce=t.Symbol,Ie=t.Uint8Array,qe=He?He.allocUnsafe:void 0,Be=Wt(me.getPrototypeOf,me),Je=me.create,Ge=Me.propertyIsEnumerable,Ke=ge.splice,Qe=Ce?Ce.isConcatSpreadable:void 0,yt=Ce?Ce.iterator:void 0,Yt=Ce?Ce.toStringTag:void 0,Gt=function(){try{var e=Xa(me,"defineProperty");return e({},"",{}),e}catch(e){}}(),$t=t.clearTimeout!==Ve.clearTimeout&&t.clearTimeout,Kt=de&&de.now!==Ve.Date.now&&de.now,Qt=t.setTimeout!==Ve.setTimeout&&t.setTimeout,Zt=_e.ceil,Xt=_e.floor,en=me.getOwnPropertySymbols,tn=He?He.isBuffer:void 0,nn=t.isFinite,rn=ge.join,an=Wt(me.keys,me),sn=_e.max,on=_e.min,un=de.now,ln=t.parseInt,cn=_e.random,dn=ge.reverse,fn=Xa(t,"DataView"),hn=Xa(t,"Map"),_n=Xa(t,"Promise"),mn=Xa(t,"Set"),pn=Xa(t,"WeakMap"),yn=Xa(me,"create"),vn=pn&&new pn,gn={},bn=Ti(fn),Mn=Ti(hn),Ln=Ti(_n),kn=Ti(mn),wn=Ti(pn),Yn=Ce?Ce.prototype:void 0,Tn=Yn?Yn.valueOf:void 0,Dn=Yn?Yn.toString:void 0;function Sn(e){if(Us(e)&&!Ps(e)&&!(e instanceof Pn)){if(e instanceof jn)return e;if(we.call(e,"__wrapped__"))return Di(e)}return new jn(e)}var xn=function(){function e(){}return function(t){if(!zs(t))return{};if(Je)return Je(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();function En(){}function jn(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=void 0}function Pn(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Hn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t=t?e:t)),e}function Kn(e,t,n,r,a,i){var s,u=1&t,d=2&t,M=4&t;if(n&&(s=a?n(e,r,a,i):n(e)),void 0!==s)return s;if(!zs(e))return e;var P=Ps(e);if(P){if(s=function(e){var t=e.length,n=new e.constructor(t);t&&"string"==typeof e[0]&&we.call(e,"index")&&(n.index=e.index,n.input=e.input);return n}(e),!u)return ya(e,s)}else{var H=ni(e),O=H==f||H==h;if(As(e))return da(e,u);if(H==p||H==o||O&&!a){if(s=d||O?{}:ai(e),!u)return d?function(e,t){return va(e,ti(e),t)}(e,function(e,t){return e&&va(t,Mo(t),e)}(s,e)):function(e,t){return va(e,ei(e),t)}(e,Vn(s,e))}else{if(!We[H])return a?e:{};s=function(e,t,n){var r=e.constructor;switch(t){case L:return fa(e);case l:case c:return new r(+e);case k:return function(e,t){var n=t?fa(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case w:case Y:case T:case D:case S:case x:case"[object Uint8ClampedArray]":case E:case j:return ha(e,n);case _:return new r;case m:case g:return new r(e);case y:return function(e){var t=new e.constructor(e.source,ne.exec(e));return t.lastIndex=e.lastIndex,t}(e);case v:return new r;case b:return a=e,Tn?me(Tn.call(a)):{}}var a}(e,H,u)}}i||(i=new Rn);var C=i.get(e);if(C)return C;i.set(e,s),Gs(e)?e.forEach((function(r){s.add(Kn(r,t,n,r,e,i))})):qs(e)&&e.forEach((function(r,a){s.set(a,Kn(r,t,n,a,e,i))}));var A=P?void 0:(M?d?Va:Ba:d?Mo:bo)(e);return st(A||e,(function(r,a){A&&(r=e[a=r]),Un(s,a,Kn(r,t,n,a,e,i))})),s}function Qn(e,t,n){var r=n.length;if(null==e)return!r;for(e=me(e);r--;){var a=n[r],i=t[a],s=e[a];if(void 0===s&&!(a in e)||!i(s))return!1}return!0}function Zn(e,t,n){if("function"!=typeof e)throw new ve(a);return gi((function(){e.apply(void 0,n)}),t)}function Xn(e,t,n,r){var a=-1,i=ct,s=!0,o=e.length,u=[],l=t.length;if(!o)return u;n&&(t=ft(t,xt(n))),r?(i=dt,s=!1):t.length>=200&&(i=jt,s=!1,t=new An(t));e:for(;++a-1},On.prototype.set=function(e,t){var n=this.__data__,r=qn(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},Cn.prototype.clear=function(){this.size=0,this.__data__={hash:new Hn,map:new(hn||On),string:new Hn}},Cn.prototype.delete=function(e){var t=Qa(this,e).delete(e);return this.size-=t?1:0,t},Cn.prototype.get=function(e){return Qa(this,e).get(e)},Cn.prototype.has=function(e){return Qa(this,e).has(e)},Cn.prototype.set=function(e,t){var n=Qa(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},An.prototype.add=An.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},An.prototype.has=function(e){return this.__data__.has(e)},Rn.prototype.clear=function(){this.__data__=new On,this.size=0},Rn.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Rn.prototype.get=function(e){return this.__data__.get(e)},Rn.prototype.has=function(e){return this.__data__.has(e)},Rn.prototype.set=function(e,t){var n=this.__data__;if(n instanceof On){var r=n.__data__;if(!hn||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Cn(r)}return n.set(e,t),this.size=n.size,this};var er=Ma(ur),tr=Ma(lr,!0);function nr(e,t){var n=!0;return er(e,(function(e,r,a){return n=!!t(e,r,a)})),n}function rr(e,t,n){for(var r=-1,a=e.length;++r0&&n(o)?t>1?ir(o,t-1,n,r,a):ht(a,o):r||(a[a.length]=o)}return a}var sr=La(),or=La(!0);function ur(e,t){return e&&sr(e,t,bo)}function lr(e,t){return e&&or(e,t,bo)}function cr(e,t){return lt(t,(function(t){return Fs(e[t])}))}function dr(e,t){for(var n=0,r=(t=oa(t,e)).length;null!=e&&nt}function mr(e,t){return null!=e&&we.call(e,t)}function pr(e,t){return null!=e&&t in me(e)}function yr(e,t,n){for(var a=n?dt:ct,i=e[0].length,s=e.length,o=s,u=r(s),l=1/0,c=[];o--;){var d=e[o];o&&t&&(d=ft(d,xt(t))),l=on(d.length,l),u[o]=!n&&(t||i>=120&&d.length>=120)?new An(o&&d):void 0}d=e[0];var f=-1,h=u[0];e:for(;++f=o)return u;var l=n[r];return u*("desc"==l?-1:1)}}return e.index-t.index}(e,t,n)}))}function Hr(e,t,n){for(var r=-1,a=t.length,i={};++r-1;)o!==e&&Ke.call(o,u,1),Ke.call(e,u,1);return e}function Cr(e,t){for(var n=e?t.length:0,r=n-1;n--;){var a=t[n];if(n==r||a!==i){var i=a;si(a)?Ke.call(e,a,1):Xr(e,a)}}return e}function Ar(e,t){return e+Xt(cn()*(t-e+1))}function Rr(e,t){var n="";if(!e||t<1||t>9007199254740991)return n;do{t%2&&(n+=e),(t=Xt(t/2))&&(e+=e)}while(t);return n}function Nr(e,t){return bi(_i(e,t,Vo),e+"")}function Fr(e){return Fn(xo(e))}function Wr(e,t){var n=xo(e);return ki(n,$n(t,0,n.length))}function Ir(e,t,n,r){if(!zs(e))return e;for(var a=-1,i=(t=oa(t,e)).length,s=i-1,o=e;null!=o&&++ai?0:i+t),(n=n>i?i:n)<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var s=r(i);++a>>1,s=e[i];null!==s&&!Ks(s)&&(n?s<=t:s=200){var l=t?null:Ra(e);if(l)return zt(l);s=!1,a=jt,u=new An}else u=t?[]:o;e:for(;++r=r?e:Br(e,t,n)}var ca=$t||function(e){return Ve.clearTimeout(e)};function da(e,t){if(t)return e.slice();var n=e.length,r=qe?qe(n):new e.constructor(n);return e.copy(r),r}function fa(e){var t=new e.constructor(e.byteLength);return new Ie(t).set(new Ie(e)),t}function ha(e,t){var n=t?fa(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function _a(e,t){if(e!==t){var n=void 0!==e,r=null===e,a=e==e,i=Ks(e),s=void 0!==t,o=null===t,u=t==t,l=Ks(t);if(!o&&!l&&!i&&e>t||i&&s&&u&&!o&&!l||r&&s&&u||!n&&u||!a)return 1;if(!r&&!i&&!l&&e1?n[a-1]:void 0,s=a>2?n[2]:void 0;for(i=e.length>3&&"function"==typeof i?(a--,i):void 0,s&&oi(n[0],n[1],s)&&(i=a<3?void 0:i,a=1),t=me(t);++r-1?a[i?t[s]:s]:void 0}}function Da(e){return qa((function(t){var n=t.length,r=n,i=jn.prototype.thru;for(e&&t.reverse();r--;){var s=t[r];if("function"!=typeof s)throw new ve(a);if(i&&!o&&"wrapper"==Ga(s))var o=new jn([],!0)}for(r=o?r:n;++r1&&g.reverse(),d&&lo))return!1;var l=i.get(e);if(l&&i.get(t))return l==t;var c=-1,d=!0,f=2&n?new An:void 0;for(i.set(e,t),i.set(t,e);++c-1&&e%1==0&&e1?"& ":"")+t[r],t=t.join(n>2?", ":" "),e.replace(K,"{\n/* [wrapped with "+t+"] */\n")}(r,function(e,t){return st(s,(function(n){var r="_."+n[0];t&n[1]&&!ct(e,r)&&e.push(r)})),e.sort()}(function(e){var t=e.match(Q);return t?t[1].split(Z):[]}(r),n)))}function Li(e){var t=0,n=0;return function(){var r=un(),a=16-(r-n);if(n=r,a>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function ki(e,t){var n=-1,r=e.length,a=r-1;for(t=void 0===t?r:t;++n1?e[t-1]:void 0;return n="function"==typeof n?(e.pop(),n):void 0,Ji(e,n)}));function es(e){var t=Sn(e);return t.__chain__=!0,t}function ts(e,t){return t(e)}var ns=qa((function(e){var t=e.length,n=t?e[0]:0,r=this.__wrapped__,a=function(t){return Gn(t,e)};return!(t>1||this.__actions__.length)&&r instanceof Pn&&si(n)?((r=r.slice(n,+n+(t?1:0))).__actions__.push({func:ts,args:[a],thisArg:void 0}),new jn(r,this.__chain__).thru((function(e){return t&&!e.length&&e.push(void 0),e}))):this.thru(a)}));var rs=ga((function(e,t,n){we.call(e,n)?++e[n]:Jn(e,n,1)}));var as=Ta(ji),is=Ta(Pi);function ss(e,t){return(Ps(e)?st:er)(e,Ka(t,3))}function os(e,t){return(Ps(e)?ot:tr)(e,Ka(t,3))}var us=ga((function(e,t,n){we.call(e,n)?e[n].push(t):Jn(e,n,[t])}));var ls=Nr((function(e,t,n){var a=-1,i="function"==typeof t,s=Os(e)?r(e.length):[];return er(e,(function(e){s[++a]=i?at(t,e,n):vr(e,t,n)})),s})),cs=ga((function(e,t,n){Jn(e,n,t)}));function ds(e,t){return(Ps(e)?ft:Dr)(e,Ka(t,3))}var fs=ga((function(e,t,n){e[n?0:1].push(t)}),(function(){return[[],[]]}));var hs=Nr((function(e,t){if(null==e)return[];var n=t.length;return n>1&&oi(e,t[0],t[1])?t=[]:n>2&&oi(t[0],t[1],t[2])&&(t=[t[0]]),Pr(e,ir(t,1),[])})),_s=Kt||function(){return Ve.Date.now()};function ms(e,t,n){return t=n?void 0:t,Fa(e,128,void 0,void 0,void 0,void 0,t=e&&null==t?e.length:t)}function ps(e,t){var n;if("function"!=typeof t)throw new ve(a);return e=no(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=void 0),n}}var ys=Nr((function(e,t,n){var r=1;if(n.length){var a=It(n,$a(ys));r|=32}return Fa(e,r,t,n,a)})),vs=Nr((function(e,t,n){var r=3;if(n.length){var a=It(n,$a(vs));r|=32}return Fa(t,r,e,n,a)}));function gs(e,t,n){var r,i,s,o,u,l,c=0,d=!1,f=!1,h=!0;if("function"!=typeof e)throw new ve(a);function _(t){var n=r,a=i;return r=i=void 0,c=t,o=e.apply(a,n)}function m(e){return c=e,u=gi(y,t),d?_(e):o}function p(e){var n=e-l;return void 0===l||n>=t||n<0||f&&e-c>=s}function y(){var e=_s();if(p(e))return v(e);u=gi(y,function(e){var n=t-(e-l);return f?on(n,s-(e-c)):n}(e))}function v(e){return u=void 0,h&&r?_(e):(r=i=void 0,o)}function g(){var e=_s(),n=p(e);if(r=arguments,i=this,l=e,n){if(void 0===u)return m(l);if(f)return ca(u),u=gi(y,t),_(l)}return void 0===u&&(u=gi(y,t)),o}return t=ao(t)||0,zs(n)&&(d=!!n.leading,s=(f="maxWait"in n)?sn(ao(n.maxWait)||0,t):s,h="trailing"in n?!!n.trailing:h),g.cancel=function(){void 0!==u&&ca(u),c=0,r=l=i=u=void 0},g.flush=function(){return void 0===u?o:v(_s())},g}var bs=Nr((function(e,t){return Zn(e,1,t)})),Ms=Nr((function(e,t,n){return Zn(e,ao(t)||0,n)}));function Ls(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new ve(a);var n=function(){var r=arguments,a=t?t.apply(this,r):r[0],i=n.cache;if(i.has(a))return i.get(a);var s=e.apply(this,r);return n.cache=i.set(a,s)||i,s};return n.cache=new(Ls.Cache||Cn),n}function ks(e){if("function"!=typeof e)throw new ve(a);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}Ls.Cache=Cn;var ws=ua((function(e,t){var n=(t=1==t.length&&Ps(t[0])?ft(t[0],xt(Ka())):ft(ir(t,1),xt(Ka()))).length;return Nr((function(r){for(var a=-1,i=on(r.length,n);++a=t})),js=gr(function(){return arguments}())?gr:function(e){return Us(e)&&we.call(e,"callee")&&!Ge.call(e,"callee")},Ps=r.isArray,Hs=Ze?xt(Ze):function(e){return Us(e)&&hr(e)==L};function Os(e){return null!=e&&Is(e.length)&&!Fs(e)}function Cs(e){return Us(e)&&Os(e)}var As=tn||iu,Rs=Xe?xt(Xe):function(e){return Us(e)&&hr(e)==c};function Ns(e){if(!Us(e))return!1;var t=hr(e);return t==d||"[object DOMException]"==t||"string"==typeof e.message&&"string"==typeof e.name&&!Vs(e)}function Fs(e){if(!zs(e))return!1;var t=hr(e);return t==f||t==h||"[object AsyncFunction]"==t||"[object Proxy]"==t}function Ws(e){return"number"==typeof e&&e==no(e)}function Is(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}function zs(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Us(e){return null!=e&&"object"==typeof e}var qs=et?xt(et):function(e){return Us(e)&&ni(e)==_};function Bs(e){return"number"==typeof e||Us(e)&&hr(e)==m}function Vs(e){if(!Us(e)||hr(e)!=p)return!1;var t=Be(e);if(null===t)return!0;var n=we.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&ke.call(n)==Se}var Js=tt?xt(tt):function(e){return Us(e)&&hr(e)==y};var Gs=nt?xt(nt):function(e){return Us(e)&&ni(e)==v};function $s(e){return"string"==typeof e||!Ps(e)&&Us(e)&&hr(e)==g}function Ks(e){return"symbol"==typeof e||Us(e)&&hr(e)==b}var Qs=rt?xt(rt):function(e){return Us(e)&&Is(e.length)&&!!Fe[hr(e)]};var Zs=Oa(Tr),Xs=Oa((function(e,t){return e<=t}));function eo(e){if(!e)return[];if(Os(e))return $s(e)?Bt(e):ya(e);if(yt&&e[yt])return function(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}(e[yt]());var t=ni(e);return(t==_?Ft:t==v?zt:xo)(e)}function to(e){return e?(e=ao(e))===1/0||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}function no(e){var t=to(e),n=t%1;return t==t?n?t-n:t:0}function ro(e){return e?$n(no(e),0,4294967295):0}function ao(e){if("number"==typeof e)return e;if(Ks(e))return NaN;if(zs(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=zs(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(J,"");var n=ae.test(e);return n||se.test(e)?Ue(e.slice(2),n?2:8):re.test(e)?NaN:+e}function io(e){return va(e,Mo(e))}function so(e){return null==e?"":Qr(e)}var oo=ba((function(e,t){if(di(t)||Os(t))va(t,bo(t),e);else for(var n in t)we.call(t,n)&&Un(e,n,t[n])})),uo=ba((function(e,t){va(t,Mo(t),e)})),lo=ba((function(e,t,n,r){va(t,Mo(t),e,r)})),co=ba((function(e,t,n,r){va(t,bo(t),e,r)})),fo=qa(Gn);var ho=Nr((function(e,t){e=me(e);var n=-1,r=t.length,a=r>2?t[2]:void 0;for(a&&oi(t[0],t[1],a)&&(r=1);++n1),t})),va(e,Va(e),n),r&&(n=Kn(n,7,za));for(var a=t.length;a--;)Xr(n,t[a]);return n}));var Yo=qa((function(e,t){return null==e?{}:function(e,t){return Hr(e,t,(function(t,n){return po(e,n)}))}(e,t)}));function To(e,t){if(null==e)return{};var n=ft(Va(e),(function(e){return[e]}));return t=Ka(t),Hr(e,n,(function(e,n){return t(e,n[0])}))}var Do=Na(bo),So=Na(Mo);function xo(e){return null==e?[]:Et(e,bo(e))}var Eo=wa((function(e,t,n){return t=t.toLowerCase(),e+(n?jo(t):t)}));function jo(e){return Fo(so(e).toLowerCase())}function Po(e){return(e=so(e))&&e.replace(ue,Ct).replace(Pe,"")}var Ho=wa((function(e,t,n){return e+(n?"-":"")+t.toLowerCase()})),Oo=wa((function(e,t,n){return e+(n?" ":"")+t.toLowerCase()})),Co=ka("toLowerCase");var Ao=wa((function(e,t,n){return e+(n?"_":"")+t.toLowerCase()}));var Ro=wa((function(e,t,n){return e+(n?" ":"")+Fo(t)}));var No=wa((function(e,t,n){return e+(n?" ":"")+t.toUpperCase()})),Fo=ka("toUpperCase");function Wo(e,t,n){return e=so(e),void 0===(t=n?void 0:t)?function(e){return Ae.test(e)}(e)?function(e){return e.match(Oe)||[]}(e):function(e){return e.match(X)||[]}(e):e.match(t)||[]}var Io=Nr((function(e,t){try{return at(e,void 0,t)}catch(e){return Ns(e)?e:new fe(e)}})),zo=qa((function(e,t){return st(t,(function(t){t=Yi(t),Jn(e,t,ys(e[t],e))})),e}));function Uo(e){return function(){return e}}var qo=Da(),Bo=Da(!0);function Vo(e){return e}function Jo(e){return kr("function"==typeof e?e:Kn(e,1))}var Go=Nr((function(e,t){return function(n){return vr(n,e,t)}})),$o=Nr((function(e,t){return function(n){return vr(e,n,t)}}));function Ko(e,t,n){var r=bo(t),a=cr(t,r);null!=n||zs(t)&&(a.length||!r.length)||(n=t,t=e,e=this,a=cr(t,bo(t)));var i=!(zs(n)&&"chain"in n&&!n.chain),s=Fs(e);return st(a,(function(n){var r=t[n];e[n]=r,s&&(e.prototype[n]=function(){var t=this.__chain__;if(i||t){var n=e(this.__wrapped__),a=n.__actions__=ya(this.__actions__);return a.push({func:r,args:arguments,thisArg:e}),n.__chain__=t,n}return r.apply(e,ht([this.value()],arguments))})})),e}function Qo(){}var Zo=ja(ft),Xo=ja(ut),eu=ja(pt);function tu(e){return ui(e)?wt(Yi(e)):function(e){return function(t){return dr(t,e)}}(e)}var nu=Ha(),ru=Ha(!0);function au(){return[]}function iu(){return!1}var su=Ea((function(e,t){return e+t}),0),ou=Aa("ceil"),uu=Ea((function(e,t){return e/t}),1),lu=Aa("floor");var cu,du=Ea((function(e,t){return e*t}),1),fu=Aa("round"),hu=Ea((function(e,t){return e-t}),0);return Sn.after=function(e,t){if("function"!=typeof t)throw new ve(a);return e=no(e),function(){if(--e<1)return t.apply(this,arguments)}},Sn.ary=ms,Sn.assign=oo,Sn.assignIn=uo,Sn.assignInWith=lo,Sn.assignWith=co,Sn.at=fo,Sn.before=ps,Sn.bind=ys,Sn.bindAll=zo,Sn.bindKey=vs,Sn.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return Ps(e)?e:[e]},Sn.chain=es,Sn.chunk=function(e,t,n){t=(n?oi(e,t,n):void 0===t)?1:sn(no(t),0);var a=null==e?0:e.length;if(!a||t<1)return[];for(var i=0,s=0,o=r(Zt(a/t));ia?0:a+n),(r=void 0===r||r>a?a:no(r))<0&&(r+=a),r=n>r?0:ro(r);n>>0)?(e=so(e))&&("string"==typeof t||null!=t&&!Js(t))&&!(t=Qr(t))&&Nt(e)?la(Bt(e),0,n):e.split(t,n):[]},Sn.spread=function(e,t){if("function"!=typeof e)throw new ve(a);return t=null==t?0:sn(no(t),0),Nr((function(n){var r=n[t],a=la(n,0,t);return r&&ht(a,r),at(e,this,a)}))},Sn.tail=function(e){var t=null==e?0:e.length;return t?Br(e,1,t):[]},Sn.take=function(e,t,n){return e&&e.length?Br(e,0,(t=n||void 0===t?1:no(t))<0?0:t):[]},Sn.takeRight=function(e,t,n){var r=null==e?0:e.length;return r?Br(e,(t=r-(t=n||void 0===t?1:no(t)))<0?0:t,r):[]},Sn.takeRightWhile=function(e,t){return e&&e.length?ta(e,Ka(t,3),!1,!0):[]},Sn.takeWhile=function(e,t){return e&&e.length?ta(e,Ka(t,3)):[]},Sn.tap=function(e,t){return t(e),e},Sn.throttle=function(e,t,n){var r=!0,i=!0;if("function"!=typeof e)throw new ve(a);return zs(n)&&(r="leading"in n?!!n.leading:r,i="trailing"in n?!!n.trailing:i),gs(e,t,{leading:r,maxWait:t,trailing:i})},Sn.thru=ts,Sn.toArray=eo,Sn.toPairs=Do,Sn.toPairsIn=So,Sn.toPath=function(e){return Ps(e)?ft(e,Yi):Ks(e)?[e]:ya(wi(so(e)))},Sn.toPlainObject=io,Sn.transform=function(e,t,n){var r=Ps(e),a=r||As(e)||Qs(e);if(t=Ka(t,4),null==n){var i=e&&e.constructor;n=a?r?new i:[]:zs(e)&&Fs(i)?xn(Be(e)):{}}return(a?st:ur)(e,(function(e,r,a){return t(n,e,r,a)})),n},Sn.unary=function(e){return ms(e,1)},Sn.union=Ui,Sn.unionBy=qi,Sn.unionWith=Bi,Sn.uniq=function(e){return e&&e.length?Zr(e):[]},Sn.uniqBy=function(e,t){return e&&e.length?Zr(e,Ka(t,2)):[]},Sn.uniqWith=function(e,t){return t="function"==typeof t?t:void 0,e&&e.length?Zr(e,void 0,t):[]},Sn.unset=function(e,t){return null==e||Xr(e,t)},Sn.unzip=Vi,Sn.unzipWith=Ji,Sn.update=function(e,t,n){return null==e?e:ea(e,t,sa(n))},Sn.updateWith=function(e,t,n,r){return r="function"==typeof r?r:void 0,null==e?e:ea(e,t,sa(n),r)},Sn.values=xo,Sn.valuesIn=function(e){return null==e?[]:Et(e,Mo(e))},Sn.without=Gi,Sn.words=Wo,Sn.wrap=function(e,t){return Ys(sa(t),e)},Sn.xor=$i,Sn.xorBy=Ki,Sn.xorWith=Qi,Sn.zip=Zi,Sn.zipObject=function(e,t){return aa(e||[],t||[],Un)},Sn.zipObjectDeep=function(e,t){return aa(e||[],t||[],Ir)},Sn.zipWith=Xi,Sn.entries=Do,Sn.entriesIn=So,Sn.extend=uo,Sn.extendWith=lo,Ko(Sn,Sn),Sn.add=su,Sn.attempt=Io,Sn.camelCase=Eo,Sn.capitalize=jo,Sn.ceil=ou,Sn.clamp=function(e,t,n){return void 0===n&&(n=t,t=void 0),void 0!==n&&(n=(n=ao(n))==n?n:0),void 0!==t&&(t=(t=ao(t))==t?t:0),$n(ao(e),t,n)},Sn.clone=function(e){return Kn(e,4)},Sn.cloneDeep=function(e){return Kn(e,5)},Sn.cloneDeepWith=function(e,t){return Kn(e,5,t="function"==typeof t?t:void 0)},Sn.cloneWith=function(e,t){return Kn(e,4,t="function"==typeof t?t:void 0)},Sn.conformsTo=function(e,t){return null==t||Qn(e,t,bo(t))},Sn.deburr=Po,Sn.defaultTo=function(e,t){return null==e||e!=e?t:e},Sn.divide=uu,Sn.endsWith=function(e,t,n){e=so(e),t=Qr(t);var r=e.length,a=n=void 0===n?r:$n(no(n),0,r);return(n-=t.length)>=0&&e.slice(n,a)==t},Sn.eq=Ss,Sn.escape=function(e){return(e=so(e))&&N.test(e)?e.replace(A,At):e},Sn.escapeRegExp=function(e){return(e=so(e))&&V.test(e)?e.replace(B,"\\$&"):e},Sn.every=function(e,t,n){var r=Ps(e)?ut:nr;return n&&oi(e,t,n)&&(t=void 0),r(e,Ka(t,3))},Sn.find=as,Sn.findIndex=ji,Sn.findKey=function(e,t){return vt(e,Ka(t,3),ur)},Sn.findLast=is,Sn.findLastIndex=Pi,Sn.findLastKey=function(e,t){return vt(e,Ka(t,3),lr)},Sn.floor=lu,Sn.forEach=ss,Sn.forEachRight=os,Sn.forIn=function(e,t){return null==e?e:sr(e,Ka(t,3),Mo)},Sn.forInRight=function(e,t){return null==e?e:or(e,Ka(t,3),Mo)},Sn.forOwn=function(e,t){return e&&ur(e,Ka(t,3))},Sn.forOwnRight=function(e,t){return e&&lr(e,Ka(t,3))},Sn.get=mo,Sn.gt=xs,Sn.gte=Es,Sn.has=function(e,t){return null!=e&&ri(e,t,mr)},Sn.hasIn=po,Sn.head=Oi,Sn.identity=Vo,Sn.includes=function(e,t,n,r){e=Os(e)?e:xo(e),n=n&&!r?no(n):0;var a=e.length;return n<0&&(n=sn(a+n,0)),$s(e)?n<=a&&e.indexOf(t,n)>-1:!!a&&bt(e,t,n)>-1},Sn.indexOf=function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var a=null==n?0:no(n);return a<0&&(a=sn(r+a,0)),bt(e,t,a)},Sn.inRange=function(e,t,n){return t=to(t),void 0===n?(n=t,t=0):n=to(n),function(e,t,n){return e>=on(t,n)&&e=-9007199254740991&&e<=9007199254740991},Sn.isSet=Gs,Sn.isString=$s,Sn.isSymbol=Ks,Sn.isTypedArray=Qs,Sn.isUndefined=function(e){return void 0===e},Sn.isWeakMap=function(e){return Us(e)&&ni(e)==M},Sn.isWeakSet=function(e){return Us(e)&&"[object WeakSet]"==hr(e)},Sn.join=function(e,t){return null==e?"":rn.call(e,t)},Sn.kebabCase=Ho,Sn.last=Ni,Sn.lastIndexOf=function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var a=r;return void 0!==n&&(a=(a=no(n))<0?sn(r+a,0):on(a,r-1)),t==t?function(e,t,n){for(var r=n+1;r--;)if(e[r]===t)return r;return r}(e,t,a):gt(e,Lt,a,!0)},Sn.lowerCase=Oo,Sn.lowerFirst=Co,Sn.lt=Zs,Sn.lte=Xs,Sn.max=function(e){return e&&e.length?rr(e,Vo,_r):void 0},Sn.maxBy=function(e,t){return e&&e.length?rr(e,Ka(t,2),_r):void 0},Sn.mean=function(e){return kt(e,Vo)},Sn.meanBy=function(e,t){return kt(e,Ka(t,2))},Sn.min=function(e){return e&&e.length?rr(e,Vo,Tr):void 0},Sn.minBy=function(e,t){return e&&e.length?rr(e,Ka(t,2),Tr):void 0},Sn.stubArray=au,Sn.stubFalse=iu,Sn.stubObject=function(){return{}},Sn.stubString=function(){return""},Sn.stubTrue=function(){return!0},Sn.multiply=du,Sn.nth=function(e,t){return e&&e.length?jr(e,no(t)):void 0},Sn.noConflict=function(){return Ve._===this&&(Ve._=xe),this},Sn.noop=Qo,Sn.now=_s,Sn.pad=function(e,t,n){e=so(e);var r=(t=no(t))?qt(e):0;if(!t||r>=t)return e;var a=(t-r)/2;return Pa(Xt(a),n)+e+Pa(Zt(a),n)},Sn.padEnd=function(e,t,n){e=so(e);var r=(t=no(t))?qt(e):0;return t&&rt){var r=e;e=t,t=r}if(n||e%1||t%1){var a=cn();return on(e+a*(t-e+ze("1e-"+((a+"").length-1))),t)}return Ar(e,t)},Sn.reduce=function(e,t,n){var r=Ps(e)?_t:Tt,a=arguments.length<3;return r(e,Ka(t,4),n,a,er)},Sn.reduceRight=function(e,t,n){var r=Ps(e)?mt:Tt,a=arguments.length<3;return r(e,Ka(t,4),n,a,tr)},Sn.repeat=function(e,t,n){return t=(n?oi(e,t,n):void 0===t)?1:no(t),Rr(so(e),t)},Sn.replace=function(){var e=arguments,t=so(e[0]);return e.length<3?t:t.replace(e[1],e[2])},Sn.result=function(e,t,n){var r=-1,a=(t=oa(t,e)).length;for(a||(a=1,e=void 0);++r9007199254740991)return[];var n=4294967295,r=on(e,4294967295);e-=4294967295;for(var a=St(r,t=Ka(t));++n=i)return e;var o=n-qt(r);if(o<1)return r;var u=s?la(s,0,o).join(""):e.slice(0,o);if(void 0===a)return u+r;if(s&&(o+=u.length-o),Js(a)){if(e.slice(o).search(a)){var l,c=u;for(a.global||(a=pe(a.source,so(ne.exec(a))+"g")),a.lastIndex=0;l=a.exec(c);)var d=l.index;u=u.slice(0,void 0===d?o:d)}}else if(e.indexOf(Qr(a),o)!=o){var f=u.lastIndexOf(a);f>-1&&(u=u.slice(0,f))}return u+r},Sn.unescape=function(e){return(e=so(e))&&R.test(e)?e.replace(C,Vt):e},Sn.uniqueId=function(e){var t=++Ye;return so(e)+t},Sn.upperCase=No,Sn.upperFirst=Fo,Sn.each=ss,Sn.eachRight=os,Sn.first=Oi,Ko(Sn,(cu={},ur(Sn,(function(e,t){we.call(Sn.prototype,t)||(cu[t]=e)})),cu),{chain:!1}),Sn.VERSION="4.17.15",st(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(e){Sn[e].placeholder=Sn})),st(["drop","take"],(function(e,t){Pn.prototype[e]=function(n){n=void 0===n?1:sn(no(n),0);var r=this.__filtered__&&!t?new Pn(this):this.clone();return r.__filtered__?r.__takeCount__=on(n,r.__takeCount__):r.__views__.push({size:on(n,4294967295),type:e+(r.__dir__<0?"Right":"")}),r},Pn.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}})),st(["filter","map","takeWhile"],(function(e,t){var n=t+1,r=1==n||3==n;Pn.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:Ka(e,3),type:n}),t.__filtered__=t.__filtered__||r,t}})),st(["head","last"],(function(e,t){var n="take"+(t?"Right":"");Pn.prototype[e]=function(){return this[n](1).value()[0]}})),st(["initial","tail"],(function(e,t){var n="drop"+(t?"":"Right");Pn.prototype[e]=function(){return this.__filtered__?new Pn(this):this[n](1)}})),Pn.prototype.compact=function(){return this.filter(Vo)},Pn.prototype.find=function(e){return this.filter(e).head()},Pn.prototype.findLast=function(e){return this.reverse().find(e)},Pn.prototype.invokeMap=Nr((function(e,t){return"function"==typeof e?new Pn(this):this.map((function(n){return vr(n,e,t)}))})),Pn.prototype.reject=function(e){return this.filter(ks(Ka(e)))},Pn.prototype.slice=function(e,t){e=no(e);var n=this;return n.__filtered__&&(e>0||t<0)?new Pn(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),void 0!==t&&(n=(t=no(t))<0?n.dropRight(-t):n.take(t-e)),n)},Pn.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},Pn.prototype.toArray=function(){return this.take(4294967295)},ur(Pn.prototype,(function(e,t){var n=/^(?:filter|find|map|reject)|While$/.test(t),r=/^(?:head|last)$/.test(t),a=Sn[r?"take"+("last"==t?"Right":""):t],i=r||/^find/.test(t);a&&(Sn.prototype[t]=function(){var t=this.__wrapped__,s=r?[1]:arguments,o=t instanceof Pn,u=s[0],l=o||Ps(t),c=function(e){var t=a.apply(Sn,ht([e],s));return r&&d?t[0]:t};l&&n&&"function"==typeof u&&1!=u.length&&(o=l=!1);var d=this.__chain__,f=!!this.__actions__.length,h=i&&!d,_=o&&!f;if(!i&&l){t=_?t:new Pn(this);var m=e.apply(t,s);return m.__actions__.push({func:ts,args:[c],thisArg:void 0}),new jn(m,d)}return h&&_?e.apply(this,s):(m=this.thru(c),h?r?m.value()[0]:m.value():m)})})),st(["pop","push","shift","sort","splice","unshift"],(function(e){var t=ge[e],n=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",r=/^(?:pop|shift)$/.test(e);Sn.prototype[e]=function(){var e=arguments;if(r&&!this.__chain__){var a=this.value();return t.apply(Ps(a)?a:[],e)}return this[n]((function(n){return t.apply(Ps(n)?n:[],e)}))}})),ur(Pn.prototype,(function(e,t){var n=Sn[t];if(n){var r=n.name+"";we.call(gn,r)||(gn[r]=[]),gn[r].push({name:t,func:n})}})),gn[Sa(void 0,2).name]=[{name:"wrapper",func:void 0}],Pn.prototype.clone=function(){var e=new Pn(this.__wrapped__);return e.__actions__=ya(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=ya(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=ya(this.__views__),e},Pn.prototype.reverse=function(){if(this.__filtered__){var e=new Pn(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},Pn.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,n=Ps(e),r=t<0,a=n?e.length:0,i=function(e,t,n){var r=-1,a=n.length;for(;++r=this.__values__.length;return{done:e,value:e?void 0:this.__values__[this.__index__++]}},Sn.prototype.plant=function(e){for(var t,n=this;n instanceof En;){var r=Di(n);r.__index__=0,r.__values__=void 0,t?a.__wrapped__=r:t=r;var a=r;n=n.__wrapped__}return a.__wrapped__=e,t},Sn.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof Pn){var t=e;return this.__actions__.length&&(t=new Pn(this)),(t=t.reverse()).__actions__.push({func:ts,args:[zi],thisArg:void 0}),new jn(t,this.__chain__)}return this.thru(zi)},Sn.prototype.toJSON=Sn.prototype.valueOf=Sn.prototype.value=function(){return na(this.__wrapped__,this.__actions__)},Sn.prototype.first=Sn.prototype.head,yt&&(Sn.prototype[yt]=function(){return this}),Sn}();Ve._=Jt,void 0===(r=function(){return Jt}.call(t,n,t,e))||(e.exports=r)}).call(this)}).call(this,n(30)(e))},function(e,t,n){e.exports=n(181)},function(e,t){function n(e,t,n,r,a,i,s){try{var o=e[i](s),u=o.value}catch(e){return void n(e)}o.done?t(u):Promise.resolve(u).then(r,a)}e.exports=function(e){return function(){var t=this,r=arguments;return new Promise((function(a,i){var s=e.apply(t,r);function o(e){n(s,a,i,o,u,"next",e)}function u(e){n(s,a,i,o,u,"throw",e)}o(void 0)}))}}},function(e,t,n){"use strict";n.d(t,"b",(function(){return z})),n.d(t,"c",(function(){return D})),n.d(t,"d",(function(){return N}));var r=n(0);function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var n=0;n0?(i!==1/0&&(this.updateTimeout||(this.updateTimeout=setTimeout((function(){0!==r.updateTimeout&&r.update()}),i))),!1):(this.update(s),!0)}},{key:"update",value:function(e){this.progressAvailable=!0,this.progressForced=e,(this.initial||this.mounted)&&this.rerender()}},{key:"finalize",value:function(e){this.progressPromise&&this.progressPromise.resolve(!1),this.progressElement=void 0,this.progressAvailable=!1,this.promisedElement=e,this.promisedAvailable=!0,(this.initial||this.mounted)&&this.rerender()}},{key:"check",value:function(){if(this.options.showProgress){if(this.synchronous&&(this.checked=!0,this.isUpdating()))throw new _;if(this.canceled)throw new _}}},{key:"delay",value:function(e,t){"number"==typeof e&&(this.delayEmpty=e),"number"==typeof t&&(this.delayRendered=t)}},{key:"hasRendered",value:function(){var e=this.lastPromise;if(!e)throw new Error("No pending operation");return e}},{key:"transition",value:function(e){var t=this,n=this.hasRendered().then((function(r){if(r){var a=(0,t.options.clone)(t.elementRendered,e);return t.show(a),t.progressPromise.then((function(e){return n.fulfilled=!0,e}))}return!1}));n.fulfilled=!1,this.transitionPromise=this.lastPromise=n}},{key:"cancel",value:function(){this.clear(),this.canceled||(this.canceled=!0,this.notify("cancel"))}},{key:"complete",value:function(){this.clear(),this.completed||(this.completed=!0,this.notify("complete"))}},{key:"progress",value:function(){this.showingProgress||this.progressForced||(this.showingProgress=!0),this.notify("progress")}},{key:"clear",value:function(){this.updateTimeout&&(clearTimeout(this.updateTimeout),this.updateTimeout=0)}},{key:"rerender",value:function(){this.synchronous||this.hasEnded()||this.context.cycle===this&&this.mounted&&this.setContext({cycle:this})}},{key:"notify",value:function(e){var t=this.handlers[e];t&&t({type:e,elapsed:new Date-this.startTime,target:this.target})}}],[{key:"acquire",value:function(t,n,r){var a=this.get(!1,t);if(a&&(a.hasEnded()?a=void 0:a.isUpdating()||(a.cancel(),a=void 0)),!a){var i=t[0];if((a=new e(n,i.cycle,r)).context=i,a.setContext=t[1],i.cycle=a,a.initial){var s=function(e){for(var t=e.func||e.constructor,n=e.props,r=-1,a=-1,i=0;ia&&(r=i,a=o)}}if(-1!=r){var l=v[r];return v.splice(r,1),l.result}}(n);s&&a.substitute(s)}}return y=t,a}},{key:"get",value:function(e,t){if(t||(t=y),t){var n=t[0],r=n.cycle;if(r)return r.context=n,r.setContext=t[1],r}if(e)throw new Error("Unable to obtain state variable");return null}},{key:"end",value:function(){y=null}},{key:"isUpdating",value:function(){var e=this.get(!1);return!!e&&e.isUpdating()}},{key:"setInitialDelay",value:function(e){m=e}},{key:"getInitialDelay",value:function(){return m}},{key:"setSubsequentDelay",value:function(e){p=e}},{key:"getSubsequentDelay",value:function(){return p}},{key:"getErrorHandler",value:function(){return g}},{key:"setErrorHandler",value:function(e){g=e}},{key:"callErrorHandler",value:function(e){g instanceof Function&&g(e)}},{key:"plantSeeds",value:function(e){if(!(e instanceof Array))throw new Error("Seeds must be an array of object. Are you calling harvest() with the options { seeds: true }?");v=e}}]),e}();var M=r.useState,L=r.useEffect;function k(e){var t=function t(n,r){var a=M({}),i={func:t,props:n},s={showProgress:!0,performCheck:!0,clone:w},o=b.acquire(a,i,s);L((function(){return o.mount(),function(){o.hasEnded()||o.cancel()}}),[o]),L((function(){o.fulfill()})),o.run((function(){return e(n,r)})),b.end();var u=o.getError();if(u)throw u;return o.getElement()};return t.renderAsyncEx=function(n){var r={func:t,props:n},a={performCheck:!0,clone:w},i=b.acquire([{},function(e){}],r,a),s=e(n);return b.end(),s&&"function"==typeof s.then?s.then((function(e){return void 0===e&&(e=i.progressElement),e})):s},e.propTypes&&(t.propTypes=e.propTypes),e.defaultProps&&(t.defaultProps=e.defaultProps),t.displayName=e.displayName||e.name,t}function w(e,t){return r.isValidElement(t)?t:r.isValidElement(e)?r.cloneElement(e,t):null}var Y=Object.freeze({__proto__:null,use:k,memo:function(e,t){var n=k(e);return r.memo(n,t)},forwardRef:function(e,t){var n=k(e);return r.memo(r.forwardRef(n),t)},get:function(e){switch(e){case"errorHandler":return b.getErrorHandler();case"delayWhenEmpty":return b.getInitialDelay();case"delayWhenRendered":return b.getSubsequentDelay()}},set:function(e,t){switch(e){case"errorHandler":return b.setErrorHandler(t);case"delayWhenEmpty":return b.setInitialDelay(t);case"delayWhenRendered":return b.setSubsequentDelay(t)}},plant:function(e){if(!(e instanceof Array))throw new Error("Seeds must be an array of object. Are you calling harvest() with the options { seeds: true }?");b.plantSeeds(e)}});r.PureComponent;function T(e,t){return r.isValidElement(t)?t:r.isValidElement(e)?r.cloneElement(e,t):null}function D(e,t){var n=b.get(!0);return n.delay(e,t,!0),[n.show,n.check,n.delay]}var S=function(){function e(){a(this,e),this.ready=!1,this.original=void 0,this.current=void 0,this.changed=!1,this.params=void 0,this.setContext=void 0}return s(e,[{key:"base",value:function(e){if(null!=e){if(this.ready){var t=this.original,n=this.current;if(!this.compare(t,e))if(this.changed){var r=this.merge(t,n,e);this.compare(r,e)?(this.current=e,this.changed=!1,this.preserve(t,null)):(this.current=r,this.preserve(e,n))}else this.current=e}else{var a=this.restore(e),i=void 0!==a?a:this.prefill(e);void 0===i||this.compare(i,e)?this.current=e:(this.current=i,this.changed=!0),this.ready=!0}this.original=e}}},{key:"update",value:function(e){var t=this.check();e=this.transform(e),this.changed&&this.compare(this.current,e)||(this.compare(t,e)?(this.current=e=t,this.changed=!1):(this.current=e,this.changed=!0),this.preserve(t,e),this.rerender())}},{key:"set",value:function(e){return this.update(e)}},{key:"assign",value:function(){for(var e=Object.assign({},this.current),t=arguments.length,n=new Array(t),r=0;r]*) ")}}catch(e){s=!0,o=e}finally{try{i||null==l.return||l.return()}finally{if(s)throw o}}return n.pop(),a.a.createElement("h4",{className:"breadcrumb"},n)}},function(e,t,n){"use strict";var r=n(2),a=n.n(r),i=n(1),s=n.n(i),o=n(0),u=n.n(o),l=n(7);function c(e){var t=e.media,n=e.size,r=a.a.get(t,["media_details","sizes",n]);return r||(r=t),u.a.createElement("img",{src:r.source_url,width:r.width,height:r.height})}function d(e){var t=e.route,n=e.post,r=e.media,i=a.a.get(n,"title.rendered",""),o=function(e){var t=e.indexOf('

' + func(text) + '

';\n * });\n *\n * p('fred, barney, & pebbles');\n * // => '

fred, barney, & pebbles

'\n */\n function wrap(value, wrapper) {\n return partial(castFunction(wrapper), value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Casts `value` as an array if it's not one.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Lang\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast array.\n * @example\n *\n * _.castArray(1);\n * // => [1]\n *\n * _.castArray({ 'a': 1 });\n * // => [{ 'a': 1 }]\n *\n * _.castArray('abc');\n * // => ['abc']\n *\n * _.castArray(null);\n * // => [null]\n *\n * _.castArray(undefined);\n * // => [undefined]\n *\n * _.castArray();\n * // => []\n *\n * var array = [1, 2, 3];\n * console.log(_.castArray(array) === array);\n * // => true\n */\n function castArray() {\n if (!arguments.length) {\n return [];\n }\n var value = arguments[0];\n return isArray(value) ? value : [value];\n }\n\n /**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\n function clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.clone` except that it accepts `customizer` which\n * is invoked to produce the cloned value. If `customizer` returns `undefined`,\n * cloning is handled by the method instead. The `customizer` is invoked with\n * up to four arguments; (value [, index|key, object, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeepWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(false);\n * }\n * }\n *\n * var el = _.cloneWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 0\n */\n function cloneWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\n function cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.cloneWith` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the deep cloned value.\n * @see _.cloneWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(true);\n * }\n * }\n *\n * var el = _.cloneDeepWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 20\n */\n function cloneDeepWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * Checks if `object` conforms to `source` by invoking the predicate\n * properties of `source` with the corresponding property values of `object`.\n *\n * **Note:** This method is equivalent to `_.conforms` when `source` is\n * partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 1; } });\n * // => true\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 2; } });\n * // => false\n */\n function conformsTo(object, source) {\n return source == null || baseConformsTo(object, source, keys(source));\n }\n\n /**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\n function eq(value, other) {\n return value === other || (value !== value && other !== other);\n }\n\n /**\n * Checks if `value` is greater than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n * @see _.lt\n * @example\n *\n * _.gt(3, 1);\n * // => true\n *\n * _.gt(3, 3);\n * // => false\n *\n * _.gt(1, 3);\n * // => false\n */\n var gt = createRelationalOperation(baseGt);\n\n /**\n * Checks if `value` is greater than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than or equal to\n * `other`, else `false`.\n * @see _.lte\n * @example\n *\n * _.gte(3, 1);\n * // => true\n *\n * _.gte(3, 3);\n * // => true\n *\n * _.gte(1, 3);\n * // => false\n */\n var gte = createRelationalOperation(function(value, other) {\n return value >= other;\n });\n\n /**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\n var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n };\n\n /**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\n var isArray = Array.isArray;\n\n /**\n * Checks if `value` is classified as an `ArrayBuffer` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n * @example\n *\n * _.isArrayBuffer(new ArrayBuffer(2));\n * // => true\n *\n * _.isArrayBuffer(new Array(2));\n * // => false\n */\n var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;\n\n /**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\n function isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n }\n\n /**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\n function isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n }\n\n /**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\n function isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n }\n\n /**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\n var isBuffer = nativeIsBuffer || stubFalse;\n\n /**\n * Checks if `value` is classified as a `Date` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\n var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\n /**\n * Checks if `value` is likely a DOM element.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('');\n * // => false\n */\n function isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n }\n\n /**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\n function isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\n function isEqual(value, other) {\n return baseIsEqual(value, other);\n }\n\n /**\n * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */\n function isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n var result = customizer ? customizer(value, other) : undefined;\n return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;\n }\n\n /**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an error object, else `false`.\n * @example\n *\n * _.isError(new Error);\n * // => true\n *\n * _.isError(Error);\n * // => false\n */\n function isError(value) {\n if (!isObjectLike(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == errorTag || tag == domExcTag ||\n (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));\n }\n\n /**\n * Checks if `value` is a finite primitive number.\n *\n * **Note:** This method is based on\n * [`Number.isFinite`](https://mdn.io/Number/isFinite).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.\n * @example\n *\n * _.isFinite(3);\n * // => true\n *\n * _.isFinite(Number.MIN_VALUE);\n * // => true\n *\n * _.isFinite(Infinity);\n * // => false\n *\n * _.isFinite('3');\n * // => false\n */\n function isFinite(value) {\n return typeof value == 'number' && nativeIsFinite(value);\n }\n\n /**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\n function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n }\n\n /**\n * Checks if `value` is an integer.\n *\n * **Note:** This method is based on\n * [`Number.isInteger`](https://mdn.io/Number/isInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an integer, else `false`.\n * @example\n *\n * _.isInteger(3);\n * // => true\n *\n * _.isInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isInteger(Infinity);\n * // => false\n *\n * _.isInteger('3');\n * // => false\n */\n function isInteger(value) {\n return typeof value == 'number' && value == toInteger(value);\n }\n\n /**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\n function isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n function isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n }\n\n /**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n function isObjectLike(value) {\n return value != null && typeof value == 'object';\n }\n\n /**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\n var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\n /**\n * Performs a partial deep comparison between `object` and `source` to\n * determine if `object` contains equivalent property values.\n *\n * **Note:** This method is equivalent to `_.matches` when `source` is\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.isMatch(object, { 'b': 2 });\n * // => true\n *\n * _.isMatch(object, { 'b': 1 });\n * // => false\n */\n function isMatch(object, source) {\n return object === source || baseIsMatch(object, source, getMatchData(source));\n }\n\n /**\n * This method is like `_.isMatch` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with five\n * arguments: (objValue, srcValue, index|key, object, source).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, srcValue) {\n * if (isGreeting(objValue) && isGreeting(srcValue)) {\n * return true;\n * }\n * }\n *\n * var object = { 'greeting': 'hello' };\n * var source = { 'greeting': 'hi' };\n *\n * _.isMatchWith(object, source, customizer);\n * // => true\n */\n function isMatchWith(object, source, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseIsMatch(object, source, getMatchData(source), customizer);\n }\n\n /**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\n function isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n }\n\n /**\n * Checks if `value` is a pristine native function.\n *\n * **Note:** This method can't reliably detect native functions in the presence\n * of the core-js package because core-js circumvents this kind of detection.\n * Despite multiple requests, the core-js maintainer has made it clear: any\n * attempt to fix the detection will be obstructed. As a result, we're left\n * with little choice but to throw an error. Unfortunately, this also affects\n * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),\n * which rely on core-js.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\n function isNative(value) {\n if (isMaskable(value)) {\n throw new Error(CORE_ERROR_TEXT);\n }\n return baseIsNative(value);\n }\n\n /**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\n function isNull(value) {\n return value === null;\n }\n\n /**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\n function isNil(value) {\n return value == null;\n }\n\n /**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\n function isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n }\n\n /**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\n function isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n }\n\n /**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\n var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\n /**\n * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754\n * double precision number which isn't the result of a rounded unsafe integer.\n *\n * **Note:** This method is based on\n * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`.\n * @example\n *\n * _.isSafeInteger(3);\n * // => true\n *\n * _.isSafeInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isSafeInteger(Infinity);\n * // => false\n *\n * _.isSafeInteger('3');\n * // => false\n */\n function isSafeInteger(value) {\n return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\n var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\n /**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\n function isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n }\n\n /**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n function isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n }\n\n /**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\n var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n /**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\n function isUndefined(value) {\n return value === undefined;\n }\n\n /**\n * Checks if `value` is classified as a `WeakMap` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak map, else `false`.\n * @example\n *\n * _.isWeakMap(new WeakMap);\n * // => true\n *\n * _.isWeakMap(new Map);\n * // => false\n */\n function isWeakMap(value) {\n return isObjectLike(value) && getTag(value) == weakMapTag;\n }\n\n /**\n * Checks if `value` is classified as a `WeakSet` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak set, else `false`.\n * @example\n *\n * _.isWeakSet(new WeakSet);\n * // => true\n *\n * _.isWeakSet(new Set);\n * // => false\n */\n function isWeakSet(value) {\n return isObjectLike(value) && baseGetTag(value) == weakSetTag;\n }\n\n /**\n * Checks if `value` is less than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n * @see _.gt\n * @example\n *\n * _.lt(1, 3);\n * // => true\n *\n * _.lt(3, 3);\n * // => false\n *\n * _.lt(3, 1);\n * // => false\n */\n var lt = createRelationalOperation(baseLt);\n\n /**\n * Checks if `value` is less than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than or equal to\n * `other`, else `false`.\n * @see _.gte\n * @example\n *\n * _.lte(1, 3);\n * // => true\n *\n * _.lte(3, 3);\n * // => true\n *\n * _.lte(3, 1);\n * // => false\n */\n var lte = createRelationalOperation(function(value, other) {\n return value <= other;\n });\n\n /**\n * Converts `value` to an array.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Array} Returns the converted array.\n * @example\n *\n * _.toArray({ 'a': 1, 'b': 2 });\n * // => [1, 2]\n *\n * _.toArray('abc');\n * // => ['a', 'b', 'c']\n *\n * _.toArray(1);\n * // => []\n *\n * _.toArray(null);\n * // => []\n */\n function toArray(value) {\n if (!value) {\n return [];\n }\n if (isArrayLike(value)) {\n return isString(value) ? stringToArray(value) : copyArray(value);\n }\n if (symIterator && value[symIterator]) {\n return iteratorToArray(value[symIterator]());\n }\n var tag = getTag(value),\n func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);\n\n return func(value);\n }\n\n /**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\n function toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n }\n\n /**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\n function toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n }\n\n /**\n * Converts `value` to an integer suitable for use as the length of an\n * array-like object.\n *\n * **Note:** This method is based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toLength(3.2);\n * // => 3\n *\n * _.toLength(Number.MIN_VALUE);\n * // => 0\n *\n * _.toLength(Infinity);\n * // => 4294967295\n *\n * _.toLength('3.2');\n * // => 3\n */\n function toLength(value) {\n return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;\n }\n\n /**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n function toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n }\n\n /**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\n function toPlainObject(value) {\n return copyObject(value, keysIn(value));\n }\n\n /**\n * Converts `value` to a safe integer. A safe integer can be compared and\n * represented correctly.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toSafeInteger(3.2);\n * // => 3\n *\n * _.toSafeInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toSafeInteger(Infinity);\n * // => 9007199254740991\n *\n * _.toSafeInteger('3.2');\n * // => 3\n */\n function toSafeInteger(value) {\n return value\n ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER)\n : (value === 0 ? value : 0);\n }\n\n /**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\n function toString(value) {\n return value == null ? '' : baseToString(value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\n var assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n });\n\n /**\n * This method is like `_.assign` except that it iterates over own and\n * inherited source properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assign\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n */\n var assignIn = createAssigner(function(object, source) {\n copyObject(source, keysIn(source), object);\n });\n\n /**\n * This method is like `_.assignIn` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extendWith\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignInWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignInWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keysIn(source), object, customizer);\n });\n\n /**\n * This method is like `_.assign` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignInWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keys(source), object, customizer);\n });\n\n /**\n * Creates an array of values corresponding to `paths` of `object`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Array} Returns the picked values.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _.at(object, ['a[0].b.c', 'a[1]']);\n * // => [3, 4]\n */\n var at = flatRest(baseAt);\n\n /**\n * Creates an object that inherits from the `prototype` object. If a\n * `properties` object is given, its own enumerable string keyed properties\n * are assigned to the created object.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Object\n * @param {Object} prototype The object to inherit from.\n * @param {Object} [properties] The properties to assign to the object.\n * @returns {Object} Returns the new object.\n * @example\n *\n * function Shape() {\n * this.x = 0;\n * this.y = 0;\n * }\n *\n * function Circle() {\n * Shape.call(this);\n * }\n *\n * Circle.prototype = _.create(Shape.prototype, {\n * 'constructor': Circle\n * });\n *\n * var circle = new Circle;\n * circle instanceof Circle;\n * // => true\n *\n * circle instanceof Shape;\n * // => true\n */\n function create(prototype, properties) {\n var result = baseCreate(prototype);\n return properties == null ? result : baseAssign(result, properties);\n }\n\n /**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n });\n\n /**\n * This method is like `_.defaults` except that it recursively assigns\n * default properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaults\n * @example\n *\n * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });\n * // => { 'a': { 'b': 2, 'c': 3 } }\n */\n var defaultsDeep = baseRest(function(args) {\n args.push(undefined, customDefaultsMerge);\n return apply(mergeWith, undefined, args);\n });\n\n /**\n * This method is like `_.find` except that it returns the key of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findKey(users, function(o) { return o.age < 40; });\n * // => 'barney' (iteration order is not guaranteed)\n *\n * // The `_.matches` iteratee shorthand.\n * _.findKey(users, { 'age': 1, 'active': true });\n * // => 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findKey(users, 'active');\n * // => 'barney'\n */\n function findKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwn);\n }\n\n /**\n * This method is like `_.findKey` except that it iterates over elements of\n * a collection in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findLastKey(users, function(o) { return o.age < 40; });\n * // => returns 'pebbles' assuming `_.findKey` returns 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastKey(users, { 'age': 36, 'active': true });\n * // => 'barney'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastKey(users, 'active');\n * // => 'pebbles'\n */\n function findLastKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight);\n }\n\n /**\n * Iterates over own and inherited enumerable string keyed properties of an\n * object and invokes `iteratee` for each property. The iteratee is invoked\n * with three arguments: (value, key, object). Iteratee functions may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forInRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forIn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n */\n function forIn(object, iteratee) {\n return object == null\n ? object\n : baseFor(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * This method is like `_.forIn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forInRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.\n */\n function forInRight(object, iteratee) {\n return object == null\n ? object\n : baseForRight(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forOwn(object, iteratee) {\n return object && baseForOwn(object, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forOwn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwnRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.\n */\n function forOwnRight(object, iteratee) {\n return object && baseForOwnRight(object, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an array of function property names from own enumerable properties\n * of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functionsIn\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functions(new Foo);\n * // => ['a', 'b']\n */\n function functions(object) {\n return object == null ? [] : baseFunctions(object, keys(object));\n }\n\n /**\n * Creates an array of function property names from own and inherited\n * enumerable properties of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functions\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functionsIn(new Foo);\n * // => ['a', 'b', 'c']\n */\n function functionsIn(object) {\n return object == null ? [] : baseFunctions(object, keysIn(object));\n }\n\n /**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\n function get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n }\n\n /**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\n function has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n }\n\n /**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\n function hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n }\n\n /**\n * Creates an object composed of the inverted keys and values of `object`.\n * If `object` contains duplicate values, subsequent values overwrite\n * property assignments of previous values.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Object\n * @param {Object} object The object to invert.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invert(object);\n * // => { '1': 'c', '2': 'b' }\n */\n var invert = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n result[value] = key;\n }, constant(identity));\n\n /**\n * This method is like `_.invert` except that the inverted object is generated\n * from the results of running each element of `object` thru `iteratee`. The\n * corresponding inverted value of each inverted key is an array of keys\n * responsible for generating the inverted value. The iteratee is invoked\n * with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Object\n * @param {Object} object The object to invert.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invertBy(object);\n * // => { '1': ['a', 'c'], '2': ['b'] }\n *\n * _.invertBy(object, function(value) {\n * return 'group' + value;\n * });\n * // => { 'group1': ['a', 'c'], 'group2': ['b'] }\n */\n var invertBy = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n if (hasOwnProperty.call(result, value)) {\n result[value].push(key);\n } else {\n result[value] = [key];\n }\n }, getIteratee);\n\n /**\n * Invokes the method at `path` of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };\n *\n * _.invoke(object, 'a[0].b.c.slice', 1, 3);\n * // => [2, 3]\n */\n var invoke = baseRest(baseInvoke);\n\n /**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\n function keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n }\n\n /**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\n function keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n }\n\n /**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\n function mapKeys(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n }\n\n /**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\n function mapValues(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n }\n\n /**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\n var merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n });\n\n /**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\n var mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n });\n\n /**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\n var omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n });\n\n /**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\n function omitBy(object, predicate) {\n return pickBy(object, negate(getIteratee(predicate)));\n }\n\n /**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\n var pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n });\n\n /**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\n function pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = getIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n }\n\n /**\n * This method is like `_.get` except that if the resolved value is a\n * function it's invoked with the `this` binding of its parent object and\n * its result is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to resolve.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };\n *\n * _.result(object, 'a[0].b.c1');\n * // => 3\n *\n * _.result(object, 'a[0].b.c2');\n * // => 4\n *\n * _.result(object, 'a[0].b.c3', 'default');\n * // => 'default'\n *\n * _.result(object, 'a[0].b.c3', _.constant('default'));\n * // => 'default'\n */\n function result(object, path, defaultValue) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length;\n\n // Ensure the loop is entered when path is empty.\n if (!length) {\n length = 1;\n object = undefined;\n }\n while (++index < length) {\n var value = object == null ? undefined : object[toKey(path[index])];\n if (value === undefined) {\n index = length;\n value = defaultValue;\n }\n object = isFunction(value) ? value.call(object) : value;\n }\n return object;\n }\n\n /**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\n function set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n }\n\n /**\n * This method is like `_.set` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.setWith(object, '[0][1]', 'a', Object);\n * // => { '0': { '1': 'a' } }\n */\n function setWith(object, path, value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseSet(object, path, value, customizer);\n }\n\n /**\n * Creates an array of own enumerable string keyed-value pairs for `object`\n * which can be consumed by `_.fromPairs`. If `object` is a map or set, its\n * entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entries\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairs(new Foo);\n * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)\n */\n var toPairs = createToPairs(keys);\n\n /**\n * Creates an array of own and inherited enumerable string keyed-value pairs\n * for `object` which can be consumed by `_.fromPairs`. If `object` is a map\n * or set, its entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entriesIn\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairsIn(new Foo);\n * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)\n */\n var toPairsIn = createToPairs(keysIn);\n\n /**\n * An alternative to `_.reduce`; this method transforms `object` to a new\n * `accumulator` object which is the result of running each of its own\n * enumerable string keyed properties thru `iteratee`, with each invocation\n * potentially mutating the `accumulator` object. If `accumulator` is not\n * provided, a new object with the same `[[Prototype]]` will be used. The\n * iteratee is invoked with four arguments: (accumulator, value, key, object).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The custom accumulator value.\n * @returns {*} Returns the accumulated value.\n * @example\n *\n * _.transform([2, 3, 4], function(result, n) {\n * result.push(n *= n);\n * return n % 2 == 0;\n * }, []);\n * // => [4, 9]\n *\n * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] }\n */\n function transform(object, iteratee, accumulator) {\n var isArr = isArray(object),\n isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n\n iteratee = getIteratee(iteratee, 4);\n if (accumulator == null) {\n var Ctor = object && object.constructor;\n if (isArrLike) {\n accumulator = isArr ? new Ctor : [];\n }\n else if (isObject(object)) {\n accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};\n }\n else {\n accumulator = {};\n }\n }\n (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) {\n return iteratee(accumulator, value, index, object);\n });\n return accumulator;\n }\n\n /**\n * Removes the property at `path` of `object`.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 7 } }] };\n * _.unset(object, 'a[0].b.c');\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n *\n * _.unset(object, ['a', '0', 'b', 'c']);\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n */\n function unset(object, path) {\n return object == null ? true : baseUnset(object, path);\n }\n\n /**\n * This method is like `_.set` except that accepts `updater` to produce the\n * value to set. Use `_.updateWith` to customize `path` creation. The `updater`\n * is invoked with one argument: (value).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.update(object, 'a[0].b.c', function(n) { return n * n; });\n * console.log(object.a[0].b.c);\n * // => 9\n *\n * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });\n * console.log(object.x[0].y.z);\n * // => 0\n */\n function update(object, path, updater) {\n return object == null ? object : baseUpdate(object, path, castFunction(updater));\n }\n\n /**\n * This method is like `_.update` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.updateWith(object, '[0][1]', _.constant('a'), Object);\n * // => { '0': { '1': 'a' } }\n */\n function updateWith(object, path, updater, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer);\n }\n\n /**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\n function values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n }\n\n /**\n * Creates an array of the own and inherited enumerable string keyed property\n * values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.valuesIn(new Foo);\n * // => [1, 2, 3] (iteration order is not guaranteed)\n */\n function valuesIn(object) {\n return object == null ? [] : baseValues(object, keysIn(object));\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\n function clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n }\n\n /**\n * Checks if `n` is between `start` and up to, but not including, `end`. If\n * `end` is not specified, it's set to `start` with `start` then set to `0`.\n * If `start` is greater than `end` the params are swapped to support\n * negative ranges.\n *\n * @static\n * @memberOf _\n * @since 3.3.0\n * @category Number\n * @param {number} number The number to check.\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n * @see _.range, _.rangeRight\n * @example\n *\n * _.inRange(3, 2, 4);\n * // => true\n *\n * _.inRange(4, 8);\n * // => true\n *\n * _.inRange(4, 2);\n * // => false\n *\n * _.inRange(2, 2);\n * // => false\n *\n * _.inRange(1.2, 2);\n * // => true\n *\n * _.inRange(5.2, 4);\n * // => false\n *\n * _.inRange(-3, -2, -6);\n * // => true\n */\n function inRange(number, start, end) {\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n number = toNumber(number);\n return baseInRange(number, start, end);\n }\n\n /**\n * Produces a random number between the inclusive `lower` and `upper` bounds.\n * If only one argument is provided a number between `0` and the given number\n * is returned. If `floating` is `true`, or either `lower` or `upper` are\n * floats, a floating-point number is returned instead of an integer.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Number\n * @param {number} [lower=0] The lower bound.\n * @param {number} [upper=1] The upper bound.\n * @param {boolean} [floating] Specify returning a floating-point number.\n * @returns {number} Returns the random number.\n * @example\n *\n * _.random(0, 5);\n * // => an integer between 0 and 5\n *\n * _.random(5);\n * // => also an integer between 0 and 5\n *\n * _.random(5, true);\n * // => a floating-point number between 0 and 5\n *\n * _.random(1.2, 5.2);\n * // => a floating-point number between 1.2 and 5.2\n */\n function random(lower, upper, floating) {\n if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {\n upper = floating = undefined;\n }\n if (floating === undefined) {\n if (typeof upper == 'boolean') {\n floating = upper;\n upper = undefined;\n }\n else if (typeof lower == 'boolean') {\n floating = lower;\n lower = undefined;\n }\n }\n if (lower === undefined && upper === undefined) {\n lower = 0;\n upper = 1;\n }\n else {\n lower = toFinite(lower);\n if (upper === undefined) {\n upper = lower;\n lower = 0;\n } else {\n upper = toFinite(upper);\n }\n }\n if (lower > upper) {\n var temp = lower;\n lower = upper;\n upper = temp;\n }\n if (floating || lower % 1 || upper % 1) {\n var rand = nativeRandom();\n return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper);\n }\n return baseRandom(lower, upper);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\n var camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n });\n\n /**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\n function capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n }\n\n /**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\n function deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n }\n\n /**\n * Checks if `string` ends with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=string.length] The position to search up to.\n * @returns {boolean} Returns `true` if `string` ends with `target`,\n * else `false`.\n * @example\n *\n * _.endsWith('abc', 'c');\n * // => true\n *\n * _.endsWith('abc', 'b');\n * // => false\n *\n * _.endsWith('abc', 'b', 2);\n * // => true\n */\n function endsWith(string, target, position) {\n string = toString(string);\n target = baseToString(target);\n\n var length = string.length;\n position = position === undefined\n ? length\n : baseClamp(toInteger(position), 0, length);\n\n var end = position;\n position -= target.length;\n return position >= 0 && string.slice(position, end) == target;\n }\n\n /**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n *\n * **Note:** No other characters are escaped. To escape additional\n * characters use a third-party library like [_he_](https://mths.be/he).\n *\n * Though the \">\" character is escaped for symmetry, characters like\n * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n * unless they're part of a tag or unquoted attribute value. See\n * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n * (under \"semi-related fun fact\") for more details.\n *\n * When working with HTML you should always\n * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n * XSS vectors.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\n function escape(string) {\n string = toString(string);\n return (string && reHasUnescapedHtml.test(string))\n ? string.replace(reUnescapedHtml, escapeHtmlChar)\n : string;\n }\n\n /**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\n function escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n }\n\n /**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\n var kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n });\n\n /**\n * Converts `string`, as space separated words, to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the lower cased string.\n * @example\n *\n * _.lowerCase('--Foo-Bar--');\n * // => 'foo bar'\n *\n * _.lowerCase('fooBar');\n * // => 'foo bar'\n *\n * _.lowerCase('__FOO_BAR__');\n * // => 'foo bar'\n */\n var lowerCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toLowerCase();\n });\n\n /**\n * Converts the first character of `string` to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.lowerFirst('Fred');\n * // => 'fred'\n *\n * _.lowerFirst('FRED');\n * // => 'fRED'\n */\n var lowerFirst = createCaseFirst('toLowerCase');\n\n /**\n * Pads `string` on the left and right sides if it's shorter than `length`.\n * Padding characters are truncated if they can't be evenly divided by `length`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.pad('abc', 8);\n * // => ' abc '\n *\n * _.pad('abc', 8, '_-');\n * // => '_-abc_-_'\n *\n * _.pad('abc', 3);\n * // => 'abc'\n */\n function pad(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n if (!length || strLength >= length) {\n return string;\n }\n var mid = (length - strLength) / 2;\n return (\n createPadding(nativeFloor(mid), chars) +\n string +\n createPadding(nativeCeil(mid), chars)\n );\n }\n\n /**\n * Pads `string` on the right side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padEnd('abc', 6);\n * // => 'abc '\n *\n * _.padEnd('abc', 6, '_-');\n * // => 'abc_-_'\n *\n * _.padEnd('abc', 3);\n * // => 'abc'\n */\n function padEnd(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (string + createPadding(length - strLength, chars))\n : string;\n }\n\n /**\n * Pads `string` on the left side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padStart('abc', 6);\n * // => ' abc'\n *\n * _.padStart('abc', 6, '_-');\n * // => '_-_abc'\n *\n * _.padStart('abc', 3);\n * // => 'abc'\n */\n function padStart(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (createPadding(length - strLength, chars) + string)\n : string;\n }\n\n /**\n * Converts `string` to an integer of the specified radix. If `radix` is\n * `undefined` or `0`, a `radix` of `10` is used unless `value` is a\n * hexadecimal, in which case a `radix` of `16` is used.\n *\n * **Note:** This method aligns with the\n * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category String\n * @param {string} string The string to convert.\n * @param {number} [radix=10] The radix to interpret `value` by.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.parseInt('08');\n * // => 8\n *\n * _.map(['6', '08', '10'], _.parseInt);\n * // => [6, 8, 10]\n */\n function parseInt(string, radix, guard) {\n if (guard || radix == null) {\n radix = 0;\n } else if (radix) {\n radix = +radix;\n }\n return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0);\n }\n\n /**\n * Repeats the given string `n` times.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to repeat.\n * @param {number} [n=1] The number of times to repeat the string.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the repeated string.\n * @example\n *\n * _.repeat('*', 3);\n * // => '***'\n *\n * _.repeat('abc', 2);\n * // => 'abcabc'\n *\n * _.repeat('abc', 0);\n * // => ''\n */\n function repeat(string, n, guard) {\n if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n return baseRepeat(toString(string), n);\n }\n\n /**\n * Replaces matches for `pattern` in `string` with `replacement`.\n *\n * **Note:** This method is based on\n * [`String#replace`](https://mdn.io/String/replace).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to modify.\n * @param {RegExp|string} pattern The pattern to replace.\n * @param {Function|string} replacement The match replacement.\n * @returns {string} Returns the modified string.\n * @example\n *\n * _.replace('Hi Fred', 'Fred', 'Barney');\n * // => 'Hi Barney'\n */\n function replace() {\n var args = arguments,\n string = toString(args[0]);\n\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n }\n\n /**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\n var snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n });\n\n /**\n * Splits `string` by `separator`.\n *\n * **Note:** This method is based on\n * [`String#split`](https://mdn.io/String/split).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to split.\n * @param {RegExp|string} separator The separator pattern to split by.\n * @param {number} [limit] The length to truncate results to.\n * @returns {Array} Returns the string segments.\n * @example\n *\n * _.split('a-b-c', '-', 2);\n * // => ['a', 'b']\n */\n function split(string, separator, limit) {\n if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {\n separator = limit = undefined;\n }\n limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0;\n if (!limit) {\n return [];\n }\n string = toString(string);\n if (string && (\n typeof separator == 'string' ||\n (separator != null && !isRegExp(separator))\n )) {\n separator = baseToString(separator);\n if (!separator && hasUnicode(string)) {\n return castSlice(stringToArray(string), 0, limit);\n }\n }\n return string.split(separator, limit);\n }\n\n /**\n * Converts `string` to\n * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).\n *\n * @static\n * @memberOf _\n * @since 3.1.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the start cased string.\n * @example\n *\n * _.startCase('--foo-bar--');\n * // => 'Foo Bar'\n *\n * _.startCase('fooBar');\n * // => 'Foo Bar'\n *\n * _.startCase('__FOO_BAR__');\n * // => 'FOO BAR'\n */\n var startCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + upperFirst(word);\n });\n\n /**\n * Checks if `string` starts with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=0] The position to search from.\n * @returns {boolean} Returns `true` if `string` starts with `target`,\n * else `false`.\n * @example\n *\n * _.startsWith('abc', 'a');\n * // => true\n *\n * _.startsWith('abc', 'b');\n * // => false\n *\n * _.startsWith('abc', 'b', 1);\n * // => true\n */\n function startsWith(string, target, position) {\n string = toString(string);\n position = position == null\n ? 0\n : baseClamp(toInteger(position), 0, string.length);\n\n target = baseToString(target);\n return string.slice(position, position + target.length) == target;\n }\n\n /**\n * Creates a compiled template function that can interpolate data properties\n * in \"interpolate\" delimiters, HTML-escape interpolated data properties in\n * \"escape\" delimiters, and execute JavaScript in \"evaluate\" delimiters. Data\n * properties may be accessed as free variables in the template. If a setting\n * object is given, it takes precedence over `_.templateSettings` values.\n *\n * **Note:** In the development build `_.template` utilizes\n * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)\n * for easier debugging.\n *\n * For more information on precompiling templates see\n * [lodash's custom builds documentation](https://lodash.com/custom-builds).\n *\n * For more information on Chrome extension sandboxes see\n * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The template string.\n * @param {Object} [options={}] The options object.\n * @param {RegExp} [options.escape=_.templateSettings.escape]\n * The HTML \"escape\" delimiter.\n * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]\n * The \"evaluate\" delimiter.\n * @param {Object} [options.imports=_.templateSettings.imports]\n * An object to import into the template as free variables.\n * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]\n * The \"interpolate\" delimiter.\n * @param {string} [options.sourceURL='lodash.templateSources[n]']\n * The sourceURL of the compiled template.\n * @param {string} [options.variable='obj']\n * The data object variable name.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the compiled template function.\n * @example\n *\n * // Use the \"interpolate\" delimiter to create a compiled template.\n * var compiled = _.template('hello <%= user %>!');\n * compiled({ 'user': 'fred' });\n * // => 'hello fred!'\n *\n * // Use the HTML \"escape\" delimiter to escape data property values.\n * var compiled = _.template('<%- value %>');\n * compiled({ 'value': ' diff --git a/src/front-end.jsx b/src/front-end.jsx index c2d48ab..1000fca 100644 --- a/src/front-end.jsx +++ b/src/front-end.jsx @@ -12,7 +12,7 @@ import '@fortawesome/fontawesome-free/scss/fontawesome.scss'; import '@fortawesome/fontawesome-free/scss/regular.scss'; import '@fortawesome/fontawesome-free/scss/solid.scss'; -function FrontEnd(props) { +export function FrontEnd(props) { const { routeManager, dataSource, ssr } = props; const [ routeChanged, setRouteChanged ] = useEventTime(); const [ dataChanged, setDataChanged ] = useEventTime(); @@ -143,10 +143,6 @@ function FrontEnd(props) { } } -export { - FrontEnd -}; - if (process.env.NODE_ENV !== 'production') { require('./props'); } diff --git a/src/pages/archive-page.jsx b/src/pages/archive-page.jsx index c3ca247..32826d2 100644 --- a/src/pages/archive-page.jsx +++ b/src/pages/archive-page.jsx @@ -1,11 +1,11 @@ import Moment from 'moment'; import React from 'react'; -import Relaks, { useProgress } from 'relaks'; +import { useProgress } from 'relaks'; import { Breadcrumb } from '../widgets/breadcrumb.jsx'; import { PostList } from '../widgets/post-list.jsx'; -async function ArchivePage(props) { +export default async function ArchivePage(props) { const { wp, route } = props; const { date } = route.params; const [ show ] = useProgress(); @@ -26,9 +26,3 @@ async function ArchivePage(props) { ); } } - -const component = Relaks.memo(ArchivePage); - -export { - component as default, -}; diff --git a/src/pages/category-page.jsx b/src/pages/category-page.jsx index e65c6f0..92f5d46 100644 --- a/src/pages/category-page.jsx +++ b/src/pages/category-page.jsx @@ -1,11 +1,11 @@ import _ from 'lodash'; import React from 'react'; -import Relaks, { useProgress } from 'relaks'; +import { useProgress } from 'relaks'; import { Breadcrumb } from '../widgets/breadcrumb.jsx'; import { PostList } from '../widgets/post-list.jsx'; -async function CategoryPage(props) { +export default async function CategoryPage(props) { const { wp, route } = props; const { categorySlug } = route.params; const [ show ] = useProgress(); @@ -36,9 +36,3 @@ async function CategoryPage(props) { ); } } - -const component = Relaks.memo(CategoryPage); - -export { - component as default, -}; diff --git a/src/pages/page-page.jsx b/src/pages/page-page.jsx index 15c2b1c..fb14159 100644 --- a/src/pages/page-page.jsx +++ b/src/pages/page-page.jsx @@ -1,13 +1,13 @@ import _ from 'lodash'; import React from 'react'; -import Relaks, { useProgress } from 'relaks'; +import { useProgress } from 'relaks'; import { HTML } from '../widgets/html.jsx'; import { Breadcrumb } from '../widgets/breadcrumb.jsx'; import { PageView } from '../widgets/page-view.jsx'; import { PageList } from '../widgets/page-list.jsx'; -async function PagePage(props) { +export default async function PagePage(props) { const { wp, route } = props; const { pageSlug } = route.params; const [ show ] = useProgress(); @@ -37,9 +37,3 @@ async function PagePage(props) { ); } } - -const component = Relaks.memo(PagePage); - -export { - component as default, -}; diff --git a/src/pages/post-page.jsx b/src/pages/post-page.jsx index 4a19c74..c3b9097 100644 --- a/src/pages/post-page.jsx +++ b/src/pages/post-page.jsx @@ -1,14 +1,14 @@ import _ from 'lodash'; import Moment from 'moment'; import React from 'react'; -import Relaks, { useProgress } from 'relaks'; +import { useProgress } from 'relaks'; import { Breadcrumb } from '../widgets/breadcrumb.jsx'; import { PostView } from '../widgets/post-view.jsx'; import { TagList } from '../widgets/tag-list.jsx'; import { CommentSection } from '../widgets/comment-section.jsx'; -async function PostPage(props) { +export default async function PostPage(props) { const { wp, route } = props; const { postSlug } = route.params; const [ show ] = useProgress(); @@ -106,9 +106,3 @@ async function PostPage(props) { return trail; } } - -const component = Relaks.memo(PostPage); - -export { - component as default, -}; diff --git a/src/pages/search-page.jsx b/src/pages/search-page.jsx index 2733d09..7606a6a 100644 --- a/src/pages/search-page.jsx +++ b/src/pages/search-page.jsx @@ -1,10 +1,10 @@ import React from 'react'; -import Relaks, { useProgress } from 'relaks'; +import { useProgress } from 'relaks'; import { Breadcrumb } from '../widgets/breadcrumb.jsx'; import { PostList } from '../widgets/post-list.jsx'; -async function SearchPage(props) { +export default async function SearchPage(props) { const { wp, route } = props; const { search } = route.params; const [ show ] = useProgress(); @@ -33,9 +33,3 @@ async function SearchPage(props) { ); } } - -const component = Relaks.memo(SearchPage); - -export { - component as default, -}; diff --git a/src/pages/tag-page.jsx b/src/pages/tag-page.jsx index 1552edd..1885486 100644 --- a/src/pages/tag-page.jsx +++ b/src/pages/tag-page.jsx @@ -1,11 +1,11 @@ import _ from 'lodash'; import React from 'react'; -import Relaks, { useProgress } from 'relaks'; +import { useProgress } from 'relaks'; import { Breadcrumb } from '../widgets/breadcrumb.jsx'; import { PostList } from '../widgets/post-list.jsx'; -async function TagPage(props) { +export default async function TagPage(props) { const { wp, route } = props; const { tagSlug } = route.params; const [ show ] = useProgress(); @@ -27,9 +27,3 @@ async function TagPage(props) { ); } } - -const component = Relaks.memo(TagPage); - -export { - component as default, -}; diff --git a/src/pages/welcome-page.jsx b/src/pages/welcome-page.jsx index f78a9c1..9822dea 100644 --- a/src/pages/welcome-page.jsx +++ b/src/pages/welcome-page.jsx @@ -1,9 +1,9 @@ import React from 'react'; -import Relaks, { useProgress } from 'relaks'; +import { useProgress } from 'relaks'; import { PostList } from '../widgets/post-list.jsx'; -async function WelcomePage(props) { +export default async function WelcomePage(props) { const { wp, route } = props; const [ show ] = useProgress(); @@ -21,9 +21,3 @@ async function WelcomePage(props) { ); } } - -const component = Relaks.memo(WelcomePage); - -export { - component as default, -}; diff --git a/src/widgets/breadcrumb.jsx b/src/widgets/breadcrumb.jsx index 33284d5..18109c9 100644 --- a/src/widgets/breadcrumb.jsx +++ b/src/widgets/breadcrumb.jsx @@ -1,6 +1,6 @@ import React from 'react'; -function Breadcrumb(props) { +export function Breadcrumb(props) { const { trail } = props; const children = [] let key = 0; @@ -11,7 +11,3 @@ function Breadcrumb(props) { children.pop(); return

{children}

; } - -export { - Breadcrumb, -}; diff --git a/src/widgets/comment-list-view.jsx b/src/widgets/comment-list-view.jsx index 44f3af1..f8bf4a9 100644 --- a/src/widgets/comment-list-view.jsx +++ b/src/widgets/comment-list-view.jsx @@ -4,7 +4,7 @@ import React from 'react'; import { HTML } from './html.jsx'; import { CommentList } from './comment-list.jsx'; -function CommentListView(props) { +export function CommentListView(props) { const { comment, allComments } = props; const content = _.get(comment, 'content.rendered', ''); const avatarURL = _.get(comment, 'author_avatar_urls.24'); @@ -32,7 +32,3 @@ function CommentListView(props) { ); } } - -export { - CommentListView, -}; diff --git a/src/widgets/comment-list.jsx b/src/widgets/comment-list.jsx index e776244..0003aa9 100644 --- a/src/widgets/comment-list.jsx +++ b/src/widgets/comment-list.jsx @@ -3,7 +3,7 @@ import React from 'react'; import { CommentListView } from './comment-list-view.jsx'; -function CommentList(props) { +export function CommentList(props) { const { allComments, parentCommentID } = props; const comments = _.filter(allComments, { parent: parentCommentID }); @@ -17,7 +17,3 @@ function CommentList(props) { return ; } } - -export { - CommentList, -}; diff --git a/src/widgets/comment-section.jsx b/src/widgets/comment-section.jsx index 8d7ec5f..b0224bd 100644 --- a/src/widgets/comment-section.jsx +++ b/src/widgets/comment-section.jsx @@ -3,7 +3,7 @@ import React from 'react'; import { CommentList } from './comment-list.jsx'; -function CommentSection(props) { +export function CommentSection(props) { const { comments } = props; if (_.isEmpty(comments)) { return null; @@ -15,7 +15,3 @@ function CommentSection(props) { ); } - -export { - CommentSection, -}; diff --git a/src/widgets/error-boundary.jsx b/src/widgets/error-boundary.jsx index 8fc6355..4d578ed 100644 --- a/src/widgets/error-boundary.jsx +++ b/src/widgets/error-boundary.jsx @@ -1,6 +1,6 @@ import React, { Component } from 'react'; -class ErrorBoundary extends Component { +export class ErrorBoundary extends Component { constructor(props) { super(props); this.state = { error: null }; @@ -20,7 +20,3 @@ class ErrorBoundary extends Component { this.setState({ error }); } } - -export { - ErrorBoundary, -}; diff --git a/src/widgets/html.jsx b/src/widgets/html.jsx index ee6cd79..df5b183 100644 --- a/src/widgets/html.jsx +++ b/src/widgets/html.jsx @@ -1,14 +1,10 @@ import React from 'react'; import ReactHtmlParser from 'react-html-parser'; -function HTML(props) { +export function HTML(props) { const { text, transform } = props; const options = { transform }; // fix unescaped < const fixed = text.replace(/<([^>]*) ); } - -export { - PageListView, -}; diff --git a/src/widgets/page-list.jsx b/src/widgets/page-list.jsx index a7ff260..99e39ae 100644 --- a/src/widgets/page-list.jsx +++ b/src/widgets/page-list.jsx @@ -4,7 +4,7 @@ import { Route } from '../routing.js'; import { PageListView } from './page-list-view.jsx'; -function PageList(props) { +export function PageList(props) { const { route, pages } = props; if (!pages) { return null; @@ -28,7 +28,3 @@ function PageList(props) { ); } } - -export { - PageList, -}; diff --git a/src/widgets/page-view.jsx b/src/widgets/page-view.jsx index 54d5185..5023a7c 100644 --- a/src/widgets/page-view.jsx +++ b/src/widgets/page-view.jsx @@ -4,7 +4,7 @@ import React from 'react'; import { HTML } from './html.jsx'; -function PageView(props) { +export function PageView(props) { const { page, transform } = props; const title = _.get(page, 'title.rendered', ''); const content = _.get(page, 'content.rendered', ''); @@ -23,7 +23,3 @@ function PageView(props) { ); } - -export { - PageView, -}; diff --git a/src/widgets/post-list-view.jsx b/src/widgets/post-list-view.jsx index fe6c5f3..d0ad3c3 100644 --- a/src/widgets/post-list-view.jsx +++ b/src/widgets/post-list-view.jsx @@ -5,7 +5,7 @@ import React from 'react'; import { HTML } from './html.jsx'; import { MediaView } from './media-view.jsx'; -function PostListView(props) { +export function PostListView(props) { const { route, post, media } = props; const title = _.get(post, 'title.rendered', ''); const excerptRendered = _.get(post, 'excerpt.rendered', ''); @@ -57,7 +57,3 @@ function PostListView(props) { return excerpt; } } - -export { - PostListView, -}; diff --git a/src/widgets/post-list.jsx b/src/widgets/post-list.jsx index 4559181..5e7ac7f 100644 --- a/src/widgets/post-list.jsx +++ b/src/widgets/post-list.jsx @@ -4,7 +4,7 @@ import React, { useEffect } from 'react'; import { PostListView } from './post-list-view.jsx'; -function PostList(props) { +export function PostList(props) { const { route, posts, medias, minimum, maximum } = props; useEffect(() => { @@ -49,7 +49,3 @@ PostList.defaultProps = { minimum: 20, maximum: 500, }; - -export { - PostList, -}; diff --git a/src/widgets/post-view.jsx b/src/widgets/post-view.jsx index 543fe7f..47ab48a 100644 --- a/src/widgets/post-view.jsx +++ b/src/widgets/post-view.jsx @@ -5,7 +5,7 @@ import React, { useState } from 'react'; import { HTML } from './html.jsx'; import { ImageDialog } from './image-dialog.jsx'; -function PostView(props) { +export function PostView(props) { const { post, author, transform } = props; const [ imageURL, setImageURL ] = useState(null); @@ -49,7 +49,3 @@ function PostView(props) { ); } - -export { - PostView, -}; diff --git a/src/widgets/side-nav.jsx b/src/widgets/side-nav.jsx index b32b03d..3b9fb96 100644 --- a/src/widgets/side-nav.jsx +++ b/src/widgets/side-nav.jsx @@ -1,9 +1,9 @@ import _ from 'lodash'; import Moment from 'moment'; import React, { useState } from 'react'; -import Relaks, { useProgress } from 'relaks'; +import { useProgress } from 'relaks'; -async function SideNav(props) { +export async function SideNav(props) { const { wp, route } = props; const { date } = route.params; const [ selectedYear, setSelectedYear ] = useState(() => { @@ -281,9 +281,3 @@ async function SideNav(props) { return limit < publicationDate; } } - -const component = Relaks.memo(SideNav); - -export { - component as SideNav, -}; diff --git a/src/widgets/tag-list.jsx b/src/widgets/tag-list.jsx index c065aef..da293ae 100644 --- a/src/widgets/tag-list.jsx +++ b/src/widgets/tag-list.jsx @@ -1,7 +1,7 @@ import _ from 'lodash'; import React from 'react'; -function TagList(props) { +export function TagList(props) { const { route, tags } = props; if (_.isEmpty(tags)) { return null; @@ -23,7 +23,3 @@ function TagList(props) { ); } } - -export { - TagList, -}; diff --git a/src/widgets/top-nav.jsx b/src/widgets/top-nav.jsx index e12edf1..3972fc1 100644 --- a/src/widgets/top-nav.jsx +++ b/src/widgets/top-nav.jsx @@ -1,8 +1,8 @@ import _ from 'lodash'; import React from 'react'; -import Relaks, { useProgress, useSaveBuffer } from 'relaks'; +import { useProgress, useSaveBuffer } from 'relaks'; -async function TopNav(props) { +export async function TopNav(props) { const { wp, route } = props; const [ show ] = useProgress(); const search = useSaveBuffer({ @@ -85,9 +85,3 @@ async function TopNav(props) { ); } } - -const component = Relaks.memo(TopNav); - -export { - component as TopNav, -}; diff --git a/webpack.config.js b/webpack.config.js index d390f3d..75e3687 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -36,6 +36,7 @@ const clientConfig = { ], plugins: [ '@babel/transform-runtime', + 'relaks/transform-memo', ] } },