diff --git a/.npmignore b/.npmignore index cebf182..74630bf 100644 --- a/.npmignore +++ b/.npmignore @@ -3,4 +3,5 @@ .npmignore test/ resources/ -site/dist/static/js/*.map \ No newline at end of file +app/dist/static/js/*.map +site/ \ No newline at end of file diff --git a/site/build/build.js b/app/build/build.js similarity index 100% rename from site/build/build.js rename to app/build/build.js diff --git a/site/build/check-versions.js b/app/build/check-versions.js similarity index 100% rename from site/build/check-versions.js rename to app/build/check-versions.js diff --git a/site/build/dev-client.js b/app/build/dev-client.js similarity index 100% rename from site/build/dev-client.js rename to app/build/dev-client.js diff --git a/site/build/dev-server.js b/app/build/dev-server.js similarity index 100% rename from site/build/dev-server.js rename to app/build/dev-server.js diff --git a/site/build/utils.js b/app/build/utils.js similarity index 100% rename from site/build/utils.js rename to app/build/utils.js diff --git a/site/build/vue-loader.conf.js b/app/build/vue-loader.conf.js similarity index 100% rename from site/build/vue-loader.conf.js rename to app/build/vue-loader.conf.js diff --git a/site/build/webpack.base.conf.js b/app/build/webpack.base.conf.js similarity index 98% rename from site/build/webpack.base.conf.js rename to app/build/webpack.base.conf.js index 7ccf3e5..ea31b14 100644 --- a/site/build/webpack.base.conf.js +++ b/app/build/webpack.base.conf.js @@ -9,7 +9,7 @@ function resolve (dir) { module.exports = { entry: { - app: './site/src/main.js' + app: './app/src/main.js' }, output: { path: config.build.assetsRoot, diff --git a/site/build/webpack.dev.conf.js b/app/build/webpack.dev.conf.js similarity index 89% rename from site/build/webpack.dev.conf.js rename to app/build/webpack.dev.conf.js index 9b9f11c..07947c9 100644 --- a/site/build/webpack.dev.conf.js +++ b/app/build/webpack.dev.conf.js @@ -8,7 +8,7 @@ var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin') // add hot-reload related code to entry chunks Object.keys(baseWebpackConfig.entry).forEach(function (name) { - baseWebpackConfig.entry[name] = ['./site/build/dev-client'].concat(baseWebpackConfig.entry[name]) + baseWebpackConfig.entry[name] = ['./app/build/dev-client'].concat(baseWebpackConfig.entry[name]) }) module.exports = merge(baseWebpackConfig, { @@ -28,7 +28,7 @@ module.exports = merge(baseWebpackConfig, { // https://github.com/ampedandwired/html-webpack-plugin new HtmlWebpackPlugin({ filename: 'index.html', - template: 'site/index.html', + template: 'app/index.html', inject: true }), new FriendlyErrorsPlugin() diff --git a/site/build/webpack.prod.conf.js b/app/build/webpack.prod.conf.js similarity index 99% rename from site/build/webpack.prod.conf.js rename to app/build/webpack.prod.conf.js index 1e4f4b1..06f23d9 100644 --- a/site/build/webpack.prod.conf.js +++ b/app/build/webpack.prod.conf.js @@ -51,7 +51,7 @@ var webpackConfig = merge(baseWebpackConfig, { // see https://github.com/ampedandwired/html-webpack-plugin new HtmlWebpackPlugin({ filename: config.build.index, - template: 'site/index.html', + template: 'app/index.html', inject: true, minify: { removeComments: true, diff --git a/app/config/dev.env.js b/app/config/dev.env.js new file mode 100644 index 0000000..efead7c --- /dev/null +++ b/app/config/dev.env.js @@ -0,0 +1,6 @@ +var merge = require('webpack-merge') +var prodEnv = require('./prod.env') + +module.exports = merge(prodEnv, { + NODE_ENV: '"development"' +}) diff --git a/app/config/index.js b/app/config/index.js new file mode 100644 index 0000000..196da1f --- /dev/null +++ b/app/config/index.js @@ -0,0 +1,38 @@ +// see http://vuejs-templates.github.io/webpack for documentation. +var path = require('path') + +module.exports = { + build: { + env: require('./prod.env'), + index: path.resolve(__dirname, '../dist/index.html'), + assetsRoot: path.resolve(__dirname, '../dist'), + assetsSubDirectory: 'static', + assetsPublicPath: '/', + productionSourceMap: true, + // Gzip off by default as many popular static hosts such as + // Surge or Netlify already gzip all static assets for you. + // Before setting to `true`, make sure to: + // npm install --save-dev compression-webpack-plugin + productionGzip: false, + productionGzipExtensions: ['js', 'css'], + // Run the build command with an extra argument to + // View the bundle analyzer report after build finishes: + // `npm run build --report` + // Set to `true` or `false` to always turn it on or off + bundleAnalyzerReport: process.env.npm_config_report + }, + dev: { + env: require('./dev.env'), + port: 8080, + autoOpenBrowser: true, + assetsSubDirectory: 'static', + assetsPublicPath: '/', + proxyTable: {}, + // CSS Sourcemaps off by default because relative paths are "buggy" + // with this option, according to the CSS-Loader README + // (https://github.com/webpack/css-loader#sourcemaps) + // In our experience, they generally work as expected, + // just be aware of this issue when enabling this option. + cssSourceMap: false + } +} diff --git a/app/config/prod.env.js b/app/config/prod.env.js new file mode 100644 index 0000000..773d263 --- /dev/null +++ b/app/config/prod.env.js @@ -0,0 +1,3 @@ +module.exports = { + NODE_ENV: '"production"' +} diff --git a/app/dist/index.html b/app/dist/index.html new file mode 100644 index 0000000..ea476d6 --- /dev/null +++ b/app/dist/index.html @@ -0,0 +1 @@ +Keppler
\ No newline at end of file diff --git a/site/dist/static/css/app.c179adedbf6692cb2401d394d4c3f14c.css b/app/dist/static/css/app.23a72284bf70e5e4db45e6872e4b12d7.css similarity index 51% rename from site/dist/static/css/app.c179adedbf6692cb2401d394d4c3f14c.css rename to app/dist/static/css/app.23a72284bf70e5e4db45e6872e4b12d7.css index 5b1ae2c..a9004d1 100644 --- a/site/dist/static/css/app.c179adedbf6692cb2401d394d4c3f14c.css +++ b/app/dist/static/css/app.23a72284bf70e5e4db45e6872e4b12d7.css @@ -1 +1 @@ -@font-face{font-family:DINNextRoundedLTPro;font-weight:300;font-style:normal;src:url(/static/fonts/DINNextRoundedLTPro-Light.4722f6e.otf)}@font-face{font-family:DINNextRoundedLTPro;font-weight:400;font-style:normal;src:url(/static/fonts/DINNextRoundedLTPro-Regular.e4c6a9f.otf)}#application{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;font-family:Helvetica,Arial;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#2d2d49}a{text-decoration:none}.scroll-hack{position:absolute;top:0;left:0;overflow:scroll}.application-header{position:absolute;top:0;left:0;width:290px;height:80px;background:#393855;user-select:none}.application-header a{display:block;position:absolute;top:0;left:0;width:100%;height:100%}.application-header .element{position:absolute}.application-header .element.background{top:0;left:0}.application-header .element.robot-container{top:17px;left:46px;animation:header-robot-container 3s alternate infinite ease-in-out}@-webkit-keyframes header-robot-container{0%{transform:translateX(-5px)}to{transform:translateX(5px)}}@keyframes header-robot-container{0%{transform:translateX(-5px)}to{transform:translateX(5px)}}.application-header .element.robot{animation:header-robot 4.15s alternate infinite ease-in-out}@-webkit-keyframes header-robot{0%{transform:translateY(-3px)}to{transform:translateY(3px)}}@keyframes header-robot{0%{transform:translateY(-3px)}to{transform:translateY(3px)}}.application-header .element.title{top:21px;left:112px}a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1;-webkit-text-size-adjust:100%;text-size-adjust:100%}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}table{border-collapse:collapse;border-spacing:0}table th{text-align:left}*,:after,:before{box-sizing:border-box}button,input,select,textarea{color:inherit;font-size:inherit;font-style:inherit;font-family:inherit;border-radius:0;-webkit-padding-start:0;align-items:flex-start;text-index:0;border:none;outline:none;background:none;padding:0;margin:0;width:auto;height:auto;line-height:1em}button,input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=file],input[type=month],input[type=number],input[type=password],input[type=reset],input[type=search],input[type=submit],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{height:1em;-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=color]{width:1em}input::-ms-clear{display:none}details,summary{-webkit-appearance:none;-moz-appearance:none;appearance:none}mark{background:none}hr{height:1px;margin:0;padding:0}u{text-decoration:none}a{color:inherit;outline:none}.projects-hub[data-v-2fe75a29]{position:absolute;top:80px;left:0;width:290px;height:40px;font-size:14px;background:#2f2e4b;color:#fff;z-index:1;user-select:none}.projects-hub .single-project[data-v-2fe75a29]{padding-left:20px;line-height:40px;opacity:.6}.projects-hub .select-projects[data-v-2fe75a29]{line-height:22px;cursor:pointer}.projects-hub .select-projects .arrow-down[data-v-2fe75a29]{position:absolute;top:15px;right:60px}.projects-hub .select-projects .arrow-down.default[data-v-2fe75a29]{display:inline-block;opacity:.6}.projects-hub .select-projects .arrow-down.hover[data-v-2fe75a29]{display:none}.projects-hub .select-projects .others[data-v-2fe75a29]{display:none;top:100%;background:#393855}.projects-hub .select-projects .project[data-v-2fe75a29]{padding-top:9px;padding-bottom:9px;text-overflow:ellipsis}.projects-hub .select-projects .project.current[data-v-2fe75a29]{padding-left:20px;white-space:nowrap;overflow:hidden;padding-right:92px}.projects-hub .select-projects .project.other-project[data-v-2fe75a29]{display:block;padding-left:20px}.projects-hub .select-projects .project.other-project[data-v-2fe75a29]:hover{color:#4bd1c5}.projects-hub .select-projects:hover .others[data-v-2fe75a29]{display:block}.projects-hub .select-projects:hover .arrow-down.default[data-v-2fe75a29]{display:none}.projects-hub .select-projects:hover .arrow-down.hover[data-v-2fe75a29]{display:inline-block}.projects-hub a.download[data-v-2fe75a29]{position:absolute;top:0;right:0;width:56px;height:40px;padding-top:9px;padding-left:22px}.projects-hub a.download .icon.default[data-v-2fe75a29]{display:inline-block}.projects-hub a.download .icon.hover[data-v-2fe75a29],.projects-hub a.download:hover .icon.default[data-v-2fe75a29]{display:none}.projects-hub a.download:hover .icon.hover[data-v-2fe75a29]{display:inline-block}.tooltip[data-v-3af49b72]{position:absolute;top:0;right:0;bottom:0;left:0}.tooltip .content[data-v-3af49b72]{position:absolute;padding:6px 8px 7px;background:#1e202f;border:1px solid #586ca2;white-space:nowrap;font-size:12px;line-height:1em;pointer-events:none;opacity:0;transition:opacity .15s;will-change:opacity;color:#fff}.tooltip .arrow[data-v-3af49b72]{position:absolute;width:10px;height:10px;overflow:hidden}.tooltip .arrow .inner[data-v-3af49b72]{position:absolute;top:0;left:6px;width:10px;height:10px;background:#1e202f;border:1px solid #586ca2;transform:rotate(45deg)}.tooltip.top-left .content[data-v-3af49b72]{right:8px;bottom:calc(100% + 5px)}.tooltip.top-left .arrow[data-v-3af49b72]{right:8px;top:100%;transform:rotate(-90deg)}.tooltip.right .content[data-v-3af49b72]{transform:translateY(-50%);top:50%;left:calc(100% + 5px)}.tooltip.right .arrow[data-v-3af49b72]{margin-top:-5px;top:50%;right:100%}.tooltip.bottom-right .content[data-v-3af49b72]{left:8px;top:calc(100% + 5px)}.tooltip.bottom-right .arrow[data-v-3af49b72]{left:8px;bottom:100%;transform:rotate(90deg)}.tooltip.bottom .content[data-v-3af49b72]{transform:translateX(-50%);left:50%;top:calc(100% + 5px)}.tooltip.bottom .arrow[data-v-3af49b72]{margin-left:-5px;left:50%;bottom:100%;transform:rotate(90deg)}.tooltip.bottom-left .content[data-v-3af49b72]{right:8px;top:calc(100% + 5px)}.tooltip.bottom-left .arrow[data-v-3af49b72]{right:8px;bottom:100%;transform:rotate(90deg)}.tooltip:hover .content[data-v-3af49b72]{opacity:1}.file-tree[data-v-1aa78ebb]{position:absolute;top:120px;bottom:0;left:0;width:290px;background:#26283b;color:#fff;user-select:none;overflow:hidden}.no-file[data-v-1aa78ebb]{display:flex;align-items:center;justify-content:center;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;color:#fff;font-size:20px;opacity:.5;font-weight:300;font-family:DINNextRoundedLTPro}.search[data-v-1aa78ebb]{display:block;font-size:14px;padding-left:20px;width:100%;height:40px;margin-bottom:10px;line-height:40px;border-bottom:1px solid hsla(0,0%,100%,.2)}.inner[data-v-1aa78ebb]{position:absolute;top:40px;bottom:0;left:0;overflow-y:scroll}.content[data-v-1aa78ebb]{padding-bottom:60px;line-height:28px;font-size:14px}.all-read[data-v-1aa78ebb]{position:fixed;bottom:20px;left:20px;height:20px;padding-left:4px;padding-right:4px;line-height:20px;background:#393855;font-size:12px;text-transform:uppercase}.all-read[data-v-1aa78ebb]:hover{color:#4bd1c5}.name[data-v-07dbfb64]{display:block;white-space:nowrap}.name .text[data-v-07dbfb64]{padding-left:12px;padding-right:6px}.name .text .letter[data-v-07dbfb64]{opacity:.6}.name .text .letter.highlight[data-v-07dbfb64]{opacity:1;font-weight:700}.name .notif[data-v-07dbfb64]{display:inline-block;position:relative;top:-1px;padding-left:3px;padding-right:3px;margin-left:0;border-radius:6px;color:#fff;font-size:8px;height:11px;line-height:11px}.name .notif.new[data-v-07dbfb64]{background-image:linear-gradient(-90deg,#6e67fd,#9b52f5)}.name .notif.changed[data-v-07dbfb64]{background-image:linear-gradient(-90deg,#ff708f,#fe846f)}.name.active[data-v-07dbfb64]{background:#2d2d49}.name:hover .text[data-v-07dbfb64]{color:#4bd1c5}.name:hover .text .letter[data-v-07dbfb64]{opacity:1}.icon[data-v-6229704e]{display:inline-block;width:12px;height:12px}.icon img[data-v-6229704e]{display:inline-block;width:100%;height:100%}.name[data-v-32f75c96]{display:block;white-space:nowrap}.name .icon[data-v-32f75c96]{opacity:.6}.name .text[data-v-32f75c96]{padding-left:12px;padding-right:6px}.name .text .letter[data-v-32f75c96]{opacity:.6}.name .text .letter.highlight[data-v-32f75c96]{opacity:1;font-weight:700}.name:hover .icon[data-v-32f75c96]{opacity:1}.name:hover .text[data-v-32f75c96]{color:#4bd1c5}.name:hover .text .letter[data-v-32f75c96]{opacity:1}.file[data-v-72a8fe03]{position:absolute;top:0;left:290px;right:0;height:100%}header[data-v-72a8fe03]{position:absolute;top:0;left:0;right:0;height:50px;background:#1e202f}header a[data-v-72a8fe03]{user-select:none}header a.active[data-v-72a8fe03]{background:#26283b}header a .icon.default[data-v-72a8fe03]{display:inline-block}header a .icon.hover[data-v-72a8fe03],header a:hover .icon.default[data-v-72a8fe03]{display:none}header a:hover .icon.hover[data-v-72a8fe03]{display:inline-block}header .versions-toggle[data-v-72a8fe03]{display:block;position:absolute;top:0;left:0;width:50px;height:50px;padding-top:13px;padding-left:18px}header .versions-toggle .icon.default[data-v-72a8fe03]{opacity:.5}header .versions-toggle.active[data-v-72a8fe03]{background:#26283b}header .differences-toggle[data-v-72a8fe03]{display:block;position:absolute;top:0;left:51px;width:58px;height:50px;padding-top:13px;padding-left:19px}header .differences-toggle .icon.default[data-v-72a8fe03]{opacity:.7}header .differences-toggle.active[data-v-72a8fe03]{background:#26283b}header .copy[data-v-72a8fe03]{display:block;position:absolute;top:0;right:58px;width:58px;height:50px;padding-top:14px;padding-left:22px}header .copy .icon.default[data-v-72a8fe03]{opacity:.8}header .copy.active[data-v-72a8fe03]{background:#26283b}header .download[data-v-72a8fe03]{display:block;position:absolute;top:0;right:0;width:58px;height:50px;padding-top:14px;padding-left:22px}header .download .icon.default[data-v-72a8fe03]{opacity:.5}header .path[data-v-72a8fe03]{position:absolute;top:20px;left:0;right:0;text-align:center;font-size:14px;color:#fff;letter-spacing:.25px}header .path .directory[data-v-72a8fe03]{opacity:.3}.preview[data-v-72a8fe03]{position:absolute;top:50px;right:0;bottom:0;left:0;background:#2d2d49;text-align:center}.preview .inner[data-v-72a8fe03]{display:flex;align-items:center;justify-content:center;position:absolute;top:50px;right:50px;bottom:50px;left:50px}.preview img[data-v-72a8fe03]{max-width:100%;max-height:100%}.cant-read[data-v-72a8fe03]{display:flex;align-items:center;justify-content:center;flex-direction:column;position:absolute;top:0;right:0;left:0;height:100%}.cant-read .text[data-v-72a8fe03]{text-align:center;margin-bottom:35px;line-height:1.4em;color:#9696a4;font-size:20px;font-weight:300;font-family:DINNextRoundedLTPro}.cant-read .text .download[data-v-72a8fe03]{color:#fff}.cant-read .text .download[data-v-72a8fe03]:hover{color:#4bd1c5}.versions[data-v-7f2dd662]{position:absolute;top:50px;left:0;width:202px;bottom:0;overflow:hidden;background:#1e202f;user-select:none}.version[data-v-0bf7a207]{position:relative;display:block;width:202px;height:50px;color:#f6f6f6;-webkit-font-smoothing:initial;-moz-osx-font-smoothing:initial}.version .background[data-v-0bf7a207]{position:absolute;top:0;right:1px;bottom:1px;left:1px;background:#232733}.version .date[data-v-0bf7a207]{position:absolute;top:14px;left:8px;opacity:.6;font-size:10px}.version .from-now[data-v-0bf7a207]{position:absolute;top:28px;left:8px;opacity:.6;font-size:8px;text-transform:uppercase}.version .modified-lines[data-v-0bf7a207]{position:absolute;top:25px;right:8px;opacity:.6;font-size:10px}.version .repartition[data-v-0bf7a207]{position:absolute;top:17px;right:6px;font-size:0}.version .repartition .block[data-v-0bf7a207]{display:inline-block;width:4px;height:4px;margin-right:2px}.version .repartition .block.added[data-v-0bf7a207]{background:#41ff79}.version .repartition .block.removed[data-v-0bf7a207]{background:#fd4141}.version.active .background[data-v-0bf7a207]{background:#2d2d49;right:0;left:0}.version:hover .date[data-v-0bf7a207],.version:hover .from-now[data-v-0bf7a207]{opacity:1;color:#4bd1c5}@font-face{font-family:Inconsolata;font-weight:400;font-style:normal;src:url(/static/fonts/Inconsolata-Regular.29b00eb.ttf)}@font-face{font-family:Inconsolata;font-weight:700;font-style:normal;src:url(/static/fonts/Inconsolata-Bold.b031278.ttf)}.viewer{position:absolute;top:50px;right:0;width:100%;bottom:0;line-height:20px;letter-spacing:.5px;font-size:15px;background:#2d2d49;overflow:hidden}.version-active .viewer{width:calc(100% - 202px)}.lines{position:absolute;top:0;left:0;right:0;width:65px;user-select:none}.lines .line{position:relative;color:#abb2bf;opacity:.75;letter-spacing:-1px;padding-left:25px;font-size:12px}.lines .line .highlight{position:absolute;top:0;left:0;width:calc(100vw - 315px);pointer-events:none}.version-active .lines .line .highlight{width:calc(100vw - 315px - 202px)}.lines .line .added{height:20px;background:#41ff79;opacity:.2}.lines .line .removed{height:1px}.lines .line .removed:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:#fd4141;opacity:.4}.lines .line .removed .icon{position:absolute;left:8px;top:-8px}.lines .line .active{height:20px;background:#00d8ff;opacity:.2}.lines .line .question{display:none;position:absolute;top:0;left:0;width:65px;text-align:right;padding-right:8px;color:#00d8ff;cursor:pointer}.lines .line:hover{color:#00d8ff}.lines .line:hover .question{display:block}.code{position:absolute;top:0;left:70px;right:0;height:100%;outline:none;font-family:Inconsolata,Monaco,Consolas,Courier New,Courier;-webkit-font-smoothing:initial;-moz-osx-font-smoothing:initial}.code ::-moz-selection{background:#bdb9bf}.code ::selection{background:#bdb9bf}.hljs-title{color:red}.hljs{display:block;color:#abb2bf}.hljs-comment,.hljs-quote{color:#5c6370;font-style:italic}.hljs-doctag,.hljs-formula,.hljs-keyword{color:#c678dd}.hljs-deletion,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-subst{color:#e06c75}.hljs-literal{color:#56b6c2}.hljs-addition,.hljs-attribute,.hljs-meta-string,.hljs-regexp,.hljs-string{color:#98c379}.hljs-built_in,.hljs-class .hljs-title{color:#e6c07b}.hljs-attr,.hljs-number,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-template-variable,.hljs-type,.hljs-variable{color:#d19a66}.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-symbol,.hljs-title{color:#61aeee}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}.illustration[data-v-8748ee52]{position:relative;width:300px;height:275px;margin-bottom:30px;user-select:none}.illustration .element[data-v-8748ee52]{position:absolute}.illustration .element.star[data-v-8748ee52]{top:0;left:0;width:8px;height:8px;opacity:0;animation:illustration-star-data-v-8748ee52 4.5s ease-in-out infinite alternate;will-change:opacity}.illustration .element.star .bar[data-v-8748ee52]{position:absolute;background:#fff;border-radius:2px}.illustration .element.star .bar.bar-1[data-v-8748ee52]{top:0;left:3px;width:2px;height:100%}.illustration .element.star .bar.bar-2[data-v-8748ee52]{top:3px;left:0;width:100%;height:2px}@-webkit-keyframes illustration-star{0%{opacity:0}to{opacity:1}}@keyframes illustration-star-data-v-8748ee52{0%{opacity:0}to{opacity:1}}.illustration .element.cloud[data-v-8748ee52]{top:0;left:0}.illustration .element.astronaut[data-v-8748ee52]{top:60px;left:70px;animation:illustration-astronaut-data-v-8748ee52 6s ease-in-out infinite alternate;will-change:transform}@-webkit-keyframes illustration-astronaut{0%{transform:translateX(-10px) translateY(-5px) translateZ(0)}to{transform:translateX(10px) translateY(5px) translateZ(0)}}@keyframes illustration-astronaut-data-v-8748ee52{0%{transform:translateX(-10px) translateY(-5px) translateZ(0)}to{transform:translateX(10px) translateY(5px) translateZ(0)}}.illustration .element.book[data-v-8748ee52]{top:170px;left:150px;animation:illustration-book-data-v-8748ee52 4.5s ease-in-out infinite alternate;will-change:transform}@-webkit-keyframes illustration-book{0%{transform:translateX(4px) translateY(-8px) translateZ(0)}to{transform:translateX(-4px) translateY(8px) translateZ(0)}}@keyframes illustration-book-data-v-8748ee52{0%{transform:translateX(4px) translateY(-8px) translateZ(0)}to{transform:translateX(-4px) translateY(8px) translateZ(0)}}.illustration .element.sad-robot[data-v-8748ee52]{top:60px;left:80px;width:130px;animation:illustration-sad-robot-data-v-8748ee52 6s ease-in-out infinite alternate;will-change:transform}@-webkit-keyframes illustration-sad-robot{0%{transform:translateX(-10px) translateY(-5px) translateZ(0)}to{transform:translateX(10px) translateY(5px) translateZ(0)}}@keyframes illustration-sad-robot-data-v-8748ee52{0%{transform:translateX(-10px) translateY(-5px) translateZ(0)}to{transform:translateX(10px) translateY(5px) translateZ(0)}}.landing[data-v-bca306f4]{display:flex;align-items:center;justify-content:center;flex-direction:column;position:absolute;top:0;right:0;left:290px;height:100%;background:#2d2d49;font-family:DINNextRoundedLTPro}.title[data-v-bca306f4]{position:relative;margin-bottom:12px;color:#fff;font-size:35px}.sub-title[data-v-bca306f4]{position:relative;margin-bottom:35px;color:#fff;font-size:20px;opacity:.5;font-weight:300}.quote[data-v-bca306f4]{position:relative;margin-bottom:35px;color:#4bd1c5;font-size:18px}.url[data-v-bca306f4]{color:#fff;font-size:20px;margin-bottom:10px;padding:20px;cursor:pointer;z-index:2;text-align:center;transform:translateX(0) translateY(0) scale(1);transition:transform .3s;will-change:transform}.url .network[data-v-bca306f4]{padding-top:10px;font-size:14px;opacity:.5}.focus .url[data-v-bca306f4]{transform:translateX(-145px) translateY(250px) scale(3);transition-duration:5s}.mask[data-v-bca306f4]{position:absolute;top:0;left:-290px;width:calc(100% + 290px);height:100%;background:#000;z-index:1;pointer-events:none;opacity:0;transition:opacity .3s;will-change:opacity}.focus .mask[data-v-bca306f4]{pointer-events:default;opacity:.85;transition-duration:3s}.fireworks[data-v-8a37938a]{position:absolute;top:50%;left:50%;width:400px;height:400px;margin-top:-280px;margin-left:-345px;z-index:1;pointer-events:none}.blast[data-v-2463b7b2]{position:absolute;transform:translateY(0);will-change:transform,opacity;animation-name:blast-data-v-2463b7b2;animation-duration:3s;animation-timing-function:ease-in-out;animation-fill-mode:forwards}@-webkit-keyframes blast{0%{opacity:1;transform:translateY(0)}50%{opacity:1}to{opacity:0;transform:translateY(80px)}}@keyframes blast-data-v-2463b7b2{0%{opacity:1;transform:translateY(0)}50%{opacity:1}to{opacity:0;transform:translateY(80px)}}.inner-1[data-v-2463b7b2],.spark[data-v-2463b7b2]{position:absolute;will-change:transform}.inner-1[data-v-2463b7b2]{transform:translateY(0);animation-name:spark-inner-1-data-v-2463b7b2;animation-timing-function:cubic-bezier(0,0,0,1);animation-fill-mode:forwards}@-webkit-keyframes spark-inner-1{0%{transform:translateY(0)}to{transform:translateY(160px)}}@keyframes spark-inner-1-data-v-2463b7b2{0%{transform:translateY(0)}to{transform:translateY(160px)}}.inner-2[data-v-2463b7b2]{position:absolute;top:-3px;left:-3px;width:30px;height:30px;will-change:transform}.chat[data-v-4350f8df]{position:fixed;bottom:0;right:123px;color:#fff}.trigger[data-v-4350f8df]{position:absolute;bottom:0;right:0;height:40px;padding-left:14px;padding-right:18px;line-height:40px;background:#24263a;font-size:14px;white-space:nowrap;user-select:none}.trigger .stroke[data-v-4350f8df]{position:absolute;top:0;left:0;right:0;height:1px;background:#4bd1c5;display:none}.trigger .icon[data-v-4350f8df]{margin-left:4px}.trigger .unread[data-v-4350f8df]{display:inline-block;position:absolute;top:7px;left:calc(100% - 25px);width:20px;text-align:center;font-size:9px;line-height:9px;color:#4bd1c5}.trigger:hover .stroke[data-v-4350f8df]{display:block}.content[data-v-4350f8df]{position:relative;background:#24263a;height:450px;width:300px;overflow:hidden}.content .header[data-v-4350f8df]{position:absolute;top:0;left:0;width:100%;height:40px;padding-left:14px;line-height:40px;font-size:14px;user-select:none}.content .header .stroke[data-v-4350f8df]{position:absolute;top:0;left:0;right:0;height:1px;background:#4bd1c5;display:none}.content .header .dash[data-v-4350f8df]{position:absolute;top:calc(50% - 1px);right:14px;height:2px;width:12px;background:#fff}.content .header:hover .stroke[data-v-4350f8df]{display:block}.content .messages[data-v-4350f8df]{position:absolute;top:40px;left:0;right:0;height:330px;padding-top:4px;overflow-y:scroll;background:#393855;font-size:12px}.content .messages .message[data-v-4350f8df]{position:relative;padding-left:21px;margin-bottom:10px}.content .messages .message .stroke[data-v-4350f8df]{position:absolute;top:0;left:10px;width:2px;bottom:2px}.content .messages .message .message-user[data-v-4350f8df]{padding-bottom:3px}.content .messages .message .message-date[data-v-4350f8df]{display:inline-block;opacity:0;padding-left:4px;padding-bottom:3px}.content .messages .message .message-file[data-v-4350f8df]{display:block;padding-bottom:3px;opacity:.7}.content .messages .message .message-file[data-v-4350f8df]:hover{opacity:1;color:#4bd1c5}.content .messages .message:hover .message-date[data-v-4350f8df]{opacity:.4}.content .user[data-v-4350f8df]{position:absolute;top:374px;left:0;font-size:12px;padding-left:8px}.content .user .user-label[data-v-4350f8df]{opacity:.7;pointer-events:none;user-select:none}.content .user .user-name[data-v-4350f8df]{width:185px;padding-left:1px;outline:none;border:none}.content .user .user-name[data-v-4350f8df]:hover{background:hsla(0,0%,100%,.075)}.content .question[data-v-4350f8df]{position:absolute;bottom:0;right:0;padding:4px;font-size:12px}.content .question .question-file[data-v-4350f8df]{position:absolute;bottom:5px;right:22px;opacity:.7;white-space:nowrap;pointer-events:none}.content .question .remove[data-v-4350f8df]{position:absolute;bottom:0;right:0;width:20px;height:20px;padding-top:4px;padding-left:3px}.content .question .remove .icon.default[data-v-4350f8df]{display:block}.content .question .remove .icon.hover[data-v-4350f8df],.content .question .remove:hover .icon.default[data-v-4350f8df]{display:none}.content .question .remove:hover .icon.hover[data-v-4350f8df]{display:block}.content textarea[data-v-4350f8df]{position:absolute;bottom:0;left:0;font-size:12px;width:100%;height:58px;padding-left:8px;resize:none}.alert[data-v-464d2e8b]{display:block;position:fixed;bottom:0;right:60px;width:62px;height:40px;background:#24263a;user-select:none}.alert .stroke[data-v-464d2e8b]{position:absolute;top:0;left:0;right:0;height:1px;background:#fd4141;display:none}.alert .icon[data-v-464d2e8b]{position:absolute;top:10px;left:18px}.alert .icon.default[data-v-464d2e8b]{display:inline-block}.alert .icon.hover[data-v-464d2e8b],.alert:hover .icon.default[data-v-464d2e8b]{display:none}.alert:hover .icon.hover[data-v-464d2e8b]{display:inline-block}.alert:hover .stroke[data-v-464d2e8b]{display:block}.trigger[data-v-a66fe836]{position:absolute;top:17px;left:253px;width:18px;height:18px;font-size:14px;border:1px solid hsla(0,0%,100%,.5);font-family:DINNextRoundedLTPro;text-align:center;line-height:20px;color:#fff;border-radius:10px}.trigger[data-v-a66fe836]:hover{border-color:#4bd1c5}.content[data-v-a66fe836]{display:flex;align-items:center;justify-content:center;flex-direction:column;position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none;opacity:0;transition:opacity .3s;will-change:opacity}.content .mask[data-v-a66fe836]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.85;background:#000}.content .inner[data-v-a66fe836]{position:relative;width:400px;padding:0 30px 26px;font-size:14px;line-height:1.2em;background:#2d2d49;color:#fff}.content .inner .close[data-v-a66fe836]{position:absolute;top:10px;right:10px;width:40px;height:40px;padding-top:14px;padding-left:13px}.content .inner .close .icon.default[data-v-a66fe836]{display:block}.content .inner .close .icon.hover[data-v-a66fe836],.content .inner .close:hover .icon.default[data-v-a66fe836]{display:none}.content .inner .close:hover .icon.hover[data-v-a66fe836]{display:block}.content .inner p[data-v-a66fe836]{margin-bottom:1em}.content .inner p.title[data-v-a66fe836]{font-weight:700;margin-top:2em}.content .inner p.title .version[data-v-a66fe836]{font-weight:400;opacity:.6}.content .inner a[data-v-a66fe836]{text-decoration:underline}.content .inner a[data-v-a66fe836]:hover{color:#4bd1c5}.content .inner ul[data-v-a66fe836]{padding-left:22px}.content .inner ul li[data-v-a66fe836]{list-style-type:disc}.content.active[data-v-a66fe836]{pointer-events:auto;opacity:1} \ No newline at end of file +@font-face{font-family:DINNextRoundedLTPro;font-weight:300;font-style:normal;src:url(/static/fonts/DINNextRoundedLTPro-Light.4722f6e.otf)}@font-face{font-family:DINNextRoundedLTPro;font-weight:400;font-style:normal;src:url(/static/fonts/DINNextRoundedLTPro-Regular.e4c6a9f.otf)}#application{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;font-family:Helvetica,Arial;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#2d2d49}a{text-decoration:none}.scroll-hack{position:absolute;top:0;left:0;overflow:scroll}.application-header{position:absolute;top:0;left:0;width:290px;height:80px;background:#393855;user-select:none}.application-header a{display:block;position:absolute;top:0;left:0;width:100%;height:100%}.application-header .element{position:absolute}.application-header .element.background{top:0;left:0}.application-header .element.robot-container{top:17px;left:46px;animation:header-robot-container 3s alternate infinite ease-in-out}@-webkit-keyframes header-robot-container{0%{transform:translateX(-5px)}to{transform:translateX(5px)}}@keyframes header-robot-container{0%{transform:translateX(-5px)}to{transform:translateX(5px)}}.application-header .element.robot{animation:header-robot 4.15s alternate infinite ease-in-out}@-webkit-keyframes header-robot{0%{transform:translateY(-3px)}to{transform:translateY(3px)}}@keyframes header-robot{0%{transform:translateY(-3px)}to{transform:translateY(3px)}}.application-header .element.title{top:21px;left:112px}a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1;-webkit-text-size-adjust:100%;text-size-adjust:100%}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}table{border-collapse:collapse;border-spacing:0}table th{text-align:left}*,:after,:before{box-sizing:border-box}button,input,select,textarea{color:inherit;font-size:inherit;font-style:inherit;font-family:inherit;border-radius:0;-webkit-padding-start:0;align-items:flex-start;text-index:0;border:none;outline:none;background:none;padding:0;margin:0;width:auto;height:auto;line-height:1em}button,input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=file],input[type=month],input[type=number],input[type=password],input[type=reset],input[type=search],input[type=submit],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{height:1em;-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=color]{width:1em}input::-ms-clear{display:none}details,summary{-webkit-appearance:none;-moz-appearance:none;appearance:none}mark{background:none}hr{height:1px;margin:0;padding:0}u{text-decoration:none}a{color:inherit;outline:none}.projects-hub[data-v-5e298c92]{position:absolute;top:80px;left:0;width:290px;height:40px;font-size:14px;background:#2f2e4b;color:#fff;z-index:1;user-select:none}.projects-hub .single-project[data-v-5e298c92]{padding-left:20px;line-height:40px;opacity:.6}.projects-hub .select-projects[data-v-5e298c92]{line-height:22px;cursor:pointer}.projects-hub .select-projects .arrow-down[data-v-5e298c92]{position:absolute;top:15px;right:60px}.projects-hub .select-projects .arrow-down.default[data-v-5e298c92]{display:inline-block;opacity:.6}.projects-hub .select-projects .arrow-down.hover[data-v-5e298c92]{display:none}.projects-hub .select-projects .others[data-v-5e298c92]{display:none;top:100%;background:#393855}.projects-hub .select-projects .project[data-v-5e298c92]{padding-top:9px;padding-bottom:9px;text-overflow:ellipsis}.projects-hub .select-projects .project.current[data-v-5e298c92]{padding-left:20px;white-space:nowrap;overflow:hidden;padding-right:92px}.projects-hub .select-projects .project.other-project[data-v-5e298c92]{display:block;padding-left:20px}.projects-hub .select-projects .project.other-project[data-v-5e298c92]:hover{color:#4bd1c5}.projects-hub .select-projects:hover .others[data-v-5e298c92]{display:block}.projects-hub .select-projects:hover .arrow-down.default[data-v-5e298c92]{display:none}.projects-hub .select-projects:hover .arrow-down.hover[data-v-5e298c92]{display:inline-block}.projects-hub a.download[data-v-5e298c92]{position:absolute;top:0;right:0;width:56px;height:40px;padding-top:9px;padding-left:22px}.projects-hub a.download .icon.default[data-v-5e298c92]{display:inline-block}.projects-hub a.download .icon.hover[data-v-5e298c92],.projects-hub a.download:hover .icon.default[data-v-5e298c92]{display:none}.projects-hub a.download:hover .icon.hover[data-v-5e298c92]{display:inline-block}.tooltip[data-v-71aabb24]{position:absolute;top:0;right:0;bottom:0;left:0}.tooltip .content[data-v-71aabb24]{position:absolute;padding:6px 8px 7px;background:#1e202f;border:1px solid #586ca2;white-space:nowrap;font-size:12px;line-height:1em;pointer-events:none;opacity:0;transition:opacity .15s;will-change:opacity;color:#fff}.tooltip .arrow[data-v-71aabb24]{position:absolute;width:10px;height:10px;overflow:hidden}.tooltip .arrow .inner[data-v-71aabb24]{position:absolute;top:0;left:6px;width:10px;height:10px;background:#1e202f;border:1px solid #586ca2;transform:rotate(45deg)}.tooltip.top-left .content[data-v-71aabb24]{right:8px;bottom:calc(100% + 5px)}.tooltip.top-left .arrow[data-v-71aabb24]{right:8px;top:100%;transform:rotate(-90deg)}.tooltip.right .content[data-v-71aabb24]{transform:translateY(-50%);top:50%;left:calc(100% + 5px)}.tooltip.right .arrow[data-v-71aabb24]{margin-top:-5px;top:50%;right:100%}.tooltip.bottom-right .content[data-v-71aabb24]{left:8px;top:calc(100% + 5px)}.tooltip.bottom-right .arrow[data-v-71aabb24]{left:8px;bottom:100%;transform:rotate(90deg)}.tooltip.bottom .content[data-v-71aabb24]{transform:translateX(-50%);left:50%;top:calc(100% + 5px)}.tooltip.bottom .arrow[data-v-71aabb24]{margin-left:-5px;left:50%;bottom:100%;transform:rotate(90deg)}.tooltip.bottom-left .content[data-v-71aabb24]{right:8px;top:calc(100% + 5px)}.tooltip.bottom-left .arrow[data-v-71aabb24]{right:8px;bottom:100%;transform:rotate(90deg)}.tooltip:hover .content[data-v-71aabb24]{opacity:1}.file-tree[data-v-22cc0c6e]{position:absolute;top:120px;bottom:0;left:0;width:290px;background:#26283b;color:#fff;user-select:none;overflow:hidden}.no-file[data-v-22cc0c6e]{display:flex;align-items:center;justify-content:center;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;color:#fff;font-size:20px;opacity:.5;font-weight:300;font-family:DINNextRoundedLTPro}.search[data-v-22cc0c6e]{display:block;font-size:14px;padding-left:20px;width:100%;height:40px;margin-bottom:10px;line-height:40px;border-bottom:1px solid hsla(0,0%,100%,.2)}.inner[data-v-22cc0c6e]{position:absolute;top:40px;bottom:0;left:0;overflow-y:scroll}.content[data-v-22cc0c6e]{padding-bottom:60px;line-height:28px;font-size:14px}.all-read[data-v-22cc0c6e]{position:fixed;bottom:20px;left:20px;height:20px;padding-left:4px;padding-right:4px;line-height:20px;background:#393855;font-size:12px;text-transform:uppercase}.all-read[data-v-22cc0c6e]:hover{color:#4bd1c5}.name[data-v-eccf6dd4]{display:block;white-space:nowrap}.name .text[data-v-eccf6dd4]{padding-left:12px;padding-right:6px}.name .text .letter[data-v-eccf6dd4]{opacity:.6}.name .text .letter.highlight[data-v-eccf6dd4]{opacity:1;font-weight:700}.name .notif[data-v-eccf6dd4]{display:inline-block;position:relative;top:-1px;padding-left:3px;padding-right:3px;margin-left:0;border-radius:6px;color:#fff;font-size:8px;height:11px;line-height:11px}.name .notif.new[data-v-eccf6dd4]{background-image:linear-gradient(-90deg,#6e67fd,#9b52f5)}.name .notif.changed[data-v-eccf6dd4]{background-image:linear-gradient(-90deg,#ff708f,#fe846f)}.name.active[data-v-eccf6dd4]{background:#2d2d49}.name:hover .text[data-v-eccf6dd4]{color:#4bd1c5}.name:hover .text .letter[data-v-eccf6dd4]{opacity:1}.icon[data-v-3098430b]{display:inline-block;width:12px;height:12px}.icon img[data-v-3098430b]{display:inline-block;width:100%;height:100%}.name[data-v-36d705c8]{display:block;white-space:nowrap}.name .icon[data-v-36d705c8]{opacity:.6}.name .text[data-v-36d705c8]{padding-left:12px;padding-right:6px}.name .text .letter[data-v-36d705c8]{opacity:.6}.name .text .letter.highlight[data-v-36d705c8]{opacity:1;font-weight:700}.name:hover .icon[data-v-36d705c8]{opacity:1}.name:hover .text[data-v-36d705c8]{color:#4bd1c5}.name:hover .text .letter[data-v-36d705c8]{opacity:1}.file[data-v-1b544b91]{position:absolute;top:0;left:290px;right:0;height:100%}header[data-v-1b544b91]{position:absolute;top:0;left:0;right:0;height:50px;background:#1e202f}header a[data-v-1b544b91]{user-select:none}header a.active[data-v-1b544b91]{background:#26283b}header a .icon.default[data-v-1b544b91]{display:inline-block}header a .icon.hover[data-v-1b544b91],header a:hover .icon.default[data-v-1b544b91]{display:none}header a:hover .icon.hover[data-v-1b544b91]{display:inline-block}header .versions-toggle[data-v-1b544b91]{display:block;position:absolute;top:0;left:0;width:50px;height:50px;padding-top:13px;padding-left:18px}header .versions-toggle .icon.default[data-v-1b544b91]{opacity:.5}header .versions-toggle.active[data-v-1b544b91]{background:#26283b}header .differences-toggle[data-v-1b544b91]{display:block;position:absolute;top:0;left:51px;width:58px;height:50px;padding-top:13px;padding-left:19px}header .differences-toggle .icon.default[data-v-1b544b91]{opacity:.7}header .differences-toggle.active[data-v-1b544b91]{background:#26283b}header .copy[data-v-1b544b91]{display:block;position:absolute;top:0;right:58px;width:58px;height:50px;padding-top:14px;padding-left:22px}header .copy .icon.default[data-v-1b544b91]{opacity:.8}header .copy.active[data-v-1b544b91]{background:#26283b}header .download[data-v-1b544b91]{display:block;position:absolute;top:0;right:0;width:58px;height:50px;padding-top:14px;padding-left:22px}header .download .icon.default[data-v-1b544b91]{opacity:.5}header .path[data-v-1b544b91]{position:absolute;top:20px;left:0;right:0;text-align:center;font-size:14px;color:#fff;letter-spacing:.25px}header .path .directory[data-v-1b544b91]{opacity:.3}.preview[data-v-1b544b91]{position:absolute;top:50px;right:0;bottom:0;left:0;background:#2d2d49;text-align:center}.preview .inner[data-v-1b544b91]{display:flex;align-items:center;justify-content:center;position:absolute;top:50px;right:50px;bottom:50px;left:50px}.preview img[data-v-1b544b91]{max-width:100%;max-height:100%}.cant-read[data-v-1b544b91]{display:flex;align-items:center;justify-content:center;flex-direction:column;position:absolute;top:0;right:0;left:0;height:100%}.cant-read .text[data-v-1b544b91]{text-align:center;margin-bottom:35px;line-height:1.4em;color:#9696a4;font-size:20px;font-weight:300;font-family:DINNextRoundedLTPro}.cant-read .text .download[data-v-1b544b91]{color:#fff}.cant-read .text .download[data-v-1b544b91]:hover{color:#4bd1c5}.versions[data-v-1f3bacf0]{position:absolute;top:50px;left:0;width:202px;bottom:0;overflow:hidden;background:#1e202f;user-select:none}.version[data-v-42adc1b9]{position:relative;display:block;width:202px;height:50px;color:#f6f6f6;-webkit-font-smoothing:initial;-moz-osx-font-smoothing:initial}.version .background[data-v-42adc1b9]{position:absolute;top:0;right:1px;bottom:1px;left:1px;background:#232733}.version .date[data-v-42adc1b9]{position:absolute;top:14px;left:8px;opacity:.6;font-size:10px}.version .from-now[data-v-42adc1b9]{position:absolute;top:28px;left:8px;opacity:.6;font-size:8px;text-transform:uppercase}.version .modified-lines[data-v-42adc1b9]{position:absolute;top:25px;right:8px;opacity:.6;font-size:10px}.version .repartition[data-v-42adc1b9]{position:absolute;top:17px;right:6px;font-size:0}.version .repartition .block[data-v-42adc1b9]{display:inline-block;width:4px;height:4px;margin-right:2px}.version .repartition .block.added[data-v-42adc1b9]{background:#41ff79}.version .repartition .block.removed[data-v-42adc1b9]{background:#fd4141}.version.active .background[data-v-42adc1b9]{background:#2d2d49;right:0;left:0}.version:hover .date[data-v-42adc1b9],.version:hover .from-now[data-v-42adc1b9]{opacity:1;color:#4bd1c5}@font-face{font-family:Inconsolata;font-weight:400;font-style:normal;src:url(/static/fonts/Inconsolata-Regular.29b00eb.ttf)}@font-face{font-family:Inconsolata;font-weight:700;font-style:normal;src:url(/static/fonts/Inconsolata-Bold.b031278.ttf)}.viewer{position:absolute;top:50px;right:0;width:100%;bottom:0;line-height:20px;letter-spacing:.5px;font-size:15px;background:#2d2d49;overflow:hidden}.version-active .viewer{width:calc(100% - 202px)}.lines{position:absolute;top:0;left:0;right:0;width:65px;user-select:none}.lines .line{position:relative;color:#abb2bf;opacity:.75;letter-spacing:-1px;padding-left:25px;font-size:12px}.lines .line .highlight{position:absolute;top:0;left:0;width:calc(100vw - 315px);pointer-events:none}.version-active .lines .line .highlight{width:calc(100vw - 315px - 202px)}.lines .line .added{height:20px;background:#41ff79;opacity:.2}.lines .line .removed{height:1px}.lines .line .removed:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:#fd4141;opacity:.4}.lines .line .removed .icon{position:absolute;left:8px;top:-8px}.lines .line .active{height:20px;background:#00d8ff;opacity:.2}.lines .line .question{display:none;position:absolute;top:0;left:0;width:65px;text-align:right;padding-right:8px;color:#00d8ff;cursor:pointer}.lines .line:hover{color:#00d8ff}.lines .line:hover .question{display:block}.code{position:absolute;top:0;left:70px;right:0;height:100%;outline:none;font-family:Inconsolata,Monaco,Consolas,Courier New,Courier;-webkit-font-smoothing:initial;-moz-osx-font-smoothing:initial}.code ::-moz-selection{background:#bdb9bf}.code ::selection{background:#bdb9bf}.hljs-title{color:red}.hljs{display:block;color:#abb2bf}.hljs-comment,.hljs-quote{color:#5c6370;font-style:italic}.hljs-doctag,.hljs-formula,.hljs-keyword{color:#c678dd}.hljs-deletion,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-subst{color:#e06c75}.hljs-literal{color:#56b6c2}.hljs-addition,.hljs-attribute,.hljs-meta-string,.hljs-regexp,.hljs-string{color:#98c379}.hljs-built_in,.hljs-class .hljs-title{color:#e6c07b}.hljs-attr,.hljs-number,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-template-variable,.hljs-type,.hljs-variable{color:#d19a66}.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-symbol,.hljs-title{color:#61aeee}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}.illustration[data-v-5d5f6865]{position:relative;width:300px;height:275px;margin-bottom:30px;user-select:none}.illustration .element[data-v-5d5f6865]{position:absolute}.illustration .element.star[data-v-5d5f6865]{top:0;left:0;width:8px;height:8px;opacity:0;animation:illustration-star-data-v-5d5f6865 4.5s ease-in-out infinite alternate;will-change:opacity}.illustration .element.star .bar[data-v-5d5f6865]{position:absolute;background:#fff;border-radius:2px}.illustration .element.star .bar.bar-1[data-v-5d5f6865]{top:0;left:3px;width:2px;height:100%}.illustration .element.star .bar.bar-2[data-v-5d5f6865]{top:3px;left:0;width:100%;height:2px}@-webkit-keyframes illustration-star{0%{opacity:0}to{opacity:1}}@keyframes illustration-star-data-v-5d5f6865{0%{opacity:0}to{opacity:1}}.illustration .element.cloud[data-v-5d5f6865]{top:0;left:0}.illustration .element.astronaut[data-v-5d5f6865]{top:60px;left:70px;animation:illustration-astronaut-data-v-5d5f6865 6s ease-in-out infinite alternate;will-change:transform}@-webkit-keyframes illustration-astronaut{0%{transform:translateX(-10px) translateY(-5px) translateZ(0)}to{transform:translateX(10px) translateY(5px) translateZ(0)}}@keyframes illustration-astronaut-data-v-5d5f6865{0%{transform:translateX(-10px) translateY(-5px) translateZ(0)}to{transform:translateX(10px) translateY(5px) translateZ(0)}}.illustration .element.book[data-v-5d5f6865]{top:170px;left:150px;animation:illustration-book-data-v-5d5f6865 4.5s ease-in-out infinite alternate;will-change:transform}@-webkit-keyframes illustration-book{0%{transform:translateX(4px) translateY(-8px) translateZ(0)}to{transform:translateX(-4px) translateY(8px) translateZ(0)}}@keyframes illustration-book-data-v-5d5f6865{0%{transform:translateX(4px) translateY(-8px) translateZ(0)}to{transform:translateX(-4px) translateY(8px) translateZ(0)}}.illustration .element.sad-robot[data-v-5d5f6865]{top:60px;left:80px;width:130px;animation:illustration-sad-robot-data-v-5d5f6865 6s ease-in-out infinite alternate;will-change:transform}@-webkit-keyframes illustration-sad-robot{0%{transform:translateX(-10px) translateY(-5px) translateZ(0)}to{transform:translateX(10px) translateY(5px) translateZ(0)}}@keyframes illustration-sad-robot-data-v-5d5f6865{0%{transform:translateX(-10px) translateY(-5px) translateZ(0)}to{transform:translateX(10px) translateY(5px) translateZ(0)}}.landing[data-v-4f36c790]{display:flex;align-items:center;justify-content:center;flex-direction:column;position:absolute;top:0;right:0;left:290px;height:100%;background:#2d2d49;font-family:DINNextRoundedLTPro}.title[data-v-4f36c790]{position:relative;margin-bottom:12px;color:#fff;font-size:35px}.sub-title[data-v-4f36c790]{position:relative;margin-bottom:35px;color:#fff;font-size:20px;opacity:.5;font-weight:300}.quote[data-v-4f36c790]{position:relative;margin-bottom:35px;color:#4bd1c5;font-size:18px}.url[data-v-4f36c790]{color:#fff;font-size:20px;margin-bottom:10px;padding:20px;cursor:pointer;z-index:2;text-align:center;transform:translateX(0) translateY(0) scale(1);transition:transform .3s;will-change:transform}.url .network[data-v-4f36c790]{padding-top:10px;font-size:14px;opacity:.5}.focus .url[data-v-4f36c790]{transform:translateX(-145px) translateY(250px) scale(3);transition-duration:5s}.mask[data-v-4f36c790]{position:absolute;top:0;left:-290px;width:calc(100% + 290px);height:100%;background:#000;z-index:1;pointer-events:none;opacity:0;transition:opacity .3s;will-change:opacity}.focus .mask[data-v-4f36c790]{pointer-events:default;opacity:.85;transition-duration:3s}.fireworks[data-v-1c91316d]{position:absolute;top:50%;left:50%;width:400px;height:400px;margin-top:-280px;margin-left:-345px;z-index:1;pointer-events:none}.blast[data-v-5a8c8859]{position:absolute;transform:translateY(0);will-change:transform,opacity;animation-name:blast-data-v-5a8c8859;animation-duration:3s;animation-timing-function:ease-in-out;animation-fill-mode:forwards}@-webkit-keyframes blast{0%{opacity:1;transform:translateY(0)}50%{opacity:1}to{opacity:0;transform:translateY(80px)}}@keyframes blast-data-v-5a8c8859{0%{opacity:1;transform:translateY(0)}50%{opacity:1}to{opacity:0;transform:translateY(80px)}}.inner-1[data-v-5a8c8859],.spark[data-v-5a8c8859]{position:absolute;will-change:transform}.inner-1[data-v-5a8c8859]{transform:translateY(0);animation-name:spark-inner-1-data-v-5a8c8859;animation-timing-function:cubic-bezier(0,0,0,1);animation-fill-mode:forwards}@-webkit-keyframes spark-inner-1{0%{transform:translateY(0)}to{transform:translateY(160px)}}@keyframes spark-inner-1-data-v-5a8c8859{0%{transform:translateY(0)}to{transform:translateY(160px)}}.inner-2[data-v-5a8c8859]{position:absolute;top:-3px;left:-3px;width:30px;height:30px;will-change:transform}.chat[data-v-28077326]{position:fixed;bottom:0;right:123px;color:#fff}.trigger[data-v-28077326]{position:absolute;bottom:0;right:0;height:40px;padding-left:14px;padding-right:18px;line-height:40px;background:#24263a;font-size:14px;white-space:nowrap;user-select:none}.trigger .stroke[data-v-28077326]{position:absolute;top:0;left:0;right:0;height:1px;background:#4bd1c5;display:none}.trigger .icon[data-v-28077326]{margin-left:4px}.trigger .unread[data-v-28077326]{display:inline-block;position:absolute;top:7px;left:calc(100% - 25px);width:20px;text-align:center;font-size:9px;line-height:9px;color:#4bd1c5}.trigger:hover .stroke[data-v-28077326]{display:block}.content[data-v-28077326]{position:relative;background:#24263a;height:450px;width:300px;overflow:hidden}.content .header[data-v-28077326]{position:absolute;top:0;left:0;width:100%;height:40px;padding-left:14px;line-height:40px;font-size:14px;user-select:none}.content .header .stroke[data-v-28077326]{position:absolute;top:0;left:0;right:0;height:1px;background:#4bd1c5;display:none}.content .header .dash[data-v-28077326]{position:absolute;top:calc(50% - 1px);right:14px;height:2px;width:12px;background:#fff}.content .header:hover .stroke[data-v-28077326]{display:block}.content .messages[data-v-28077326]{position:absolute;top:40px;left:0;right:0;height:330px;padding-top:4px;overflow-y:scroll;background:#393855;font-size:12px}.content .messages .message[data-v-28077326]{position:relative;padding-left:21px;margin-bottom:10px}.content .messages .message .stroke[data-v-28077326]{position:absolute;top:0;left:10px;width:2px;bottom:2px}.content .messages .message .message-user[data-v-28077326]{padding-bottom:3px}.content .messages .message .message-date[data-v-28077326]{display:inline-block;opacity:0;padding-left:4px;padding-bottom:3px}.content .messages .message .message-file[data-v-28077326]{display:block;padding-bottom:3px;opacity:.7}.content .messages .message .message-file[data-v-28077326]:hover{opacity:1;color:#4bd1c5}.content .messages .message:hover .message-date[data-v-28077326]{opacity:.4}.content .user[data-v-28077326]{position:absolute;top:374px;left:0;font-size:12px;padding-left:8px}.content .user .user-label[data-v-28077326]{opacity:.7;pointer-events:none;user-select:none}.content .user .user-name[data-v-28077326]{width:185px;padding-left:1px;outline:none;border:none}.content .user .user-name[data-v-28077326]:hover{background:hsla(0,0%,100%,.075)}.content .question[data-v-28077326]{position:absolute;bottom:0;right:0;padding:4px;font-size:12px}.content .question .question-file[data-v-28077326]{position:absolute;bottom:5px;right:22px;opacity:.7;white-space:nowrap;pointer-events:none}.content .question .remove[data-v-28077326]{position:absolute;bottom:0;right:0;width:20px;height:20px;padding-top:4px;padding-left:3px}.content .question .remove .icon.default[data-v-28077326]{display:block}.content .question .remove .icon.hover[data-v-28077326],.content .question .remove:hover .icon.default[data-v-28077326]{display:none}.content .question .remove:hover .icon.hover[data-v-28077326]{display:block}.content textarea[data-v-28077326]{position:absolute;bottom:0;left:0;font-size:12px;width:100%;height:58px;padding-left:8px;resize:none}.alert[data-v-99e8da86]{display:block;position:fixed;bottom:0;right:60px;width:62px;height:40px;background:#24263a;user-select:none}.alert .stroke[data-v-99e8da86]{position:absolute;top:0;left:0;right:0;height:1px;background:#fd4141;display:none}.alert .icon[data-v-99e8da86]{position:absolute;top:10px;left:18px}.alert .icon.default[data-v-99e8da86]{display:inline-block}.alert .icon.hover[data-v-99e8da86],.alert:hover .icon.default[data-v-99e8da86]{display:none}.alert:hover .icon.hover[data-v-99e8da86]{display:inline-block}.alert:hover .stroke[data-v-99e8da86]{display:block}.trigger[data-v-19867017]{position:absolute;top:17px;left:253px;width:18px;height:18px;font-size:14px;border:1px solid hsla(0,0%,100%,.5);font-family:DINNextRoundedLTPro;text-align:center;line-height:20px;color:#fff;border-radius:10px}.trigger[data-v-19867017]:hover{border-color:#4bd1c5}.content[data-v-19867017]{display:flex;align-items:center;justify-content:center;flex-direction:column;position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none;opacity:0;transition:opacity .3s;will-change:opacity}.content .mask[data-v-19867017]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.85;background:#000}.content .inner[data-v-19867017]{position:relative;width:400px;padding:0 30px 26px;font-size:14px;line-height:1.2em;background:#2d2d49;color:#fff}.content .inner .close[data-v-19867017]{position:absolute;top:10px;right:10px;width:40px;height:40px;padding-top:14px;padding-left:13px}.content .inner .close .icon.default[data-v-19867017]{display:block}.content .inner .close .icon.hover[data-v-19867017],.content .inner .close:hover .icon.default[data-v-19867017]{display:none}.content .inner .close:hover .icon.hover[data-v-19867017]{display:block}.content .inner p[data-v-19867017]{margin-bottom:1em}.content .inner p.title[data-v-19867017]{font-weight:700;margin-top:2em}.content .inner p.title .version[data-v-19867017]{font-weight:400;opacity:.6}.content .inner a[data-v-19867017]{text-decoration:underline}.content .inner a[data-v-19867017]:hover{color:#4bd1c5}.content .inner ul[data-v-19867017]{padding-left:22px}.content .inner ul li[data-v-19867017]{list-style-type:disc}.content.active[data-v-19867017]{pointer-events:auto;opacity:1} \ No newline at end of file diff --git a/site/dist/static/fonts/DINNextRoundedLTPro-Light.4722f6e.otf b/app/dist/static/fonts/DINNextRoundedLTPro-Light.4722f6e.otf similarity index 100% rename from site/dist/static/fonts/DINNextRoundedLTPro-Light.4722f6e.otf rename to app/dist/static/fonts/DINNextRoundedLTPro-Light.4722f6e.otf diff --git a/app/dist/static/fonts/DINNextRoundedLTPro-Light.otf b/app/dist/static/fonts/DINNextRoundedLTPro-Light.otf new file mode 100644 index 0000000..46297f5 Binary files /dev/null and b/app/dist/static/fonts/DINNextRoundedLTPro-Light.otf differ diff --git a/site/dist/static/fonts/DINNextRoundedLTPro-Regular.e4c6a9f.otf b/app/dist/static/fonts/DINNextRoundedLTPro-Regular.e4c6a9f.otf similarity index 100% rename from site/dist/static/fonts/DINNextRoundedLTPro-Regular.e4c6a9f.otf rename to app/dist/static/fonts/DINNextRoundedLTPro-Regular.e4c6a9f.otf diff --git a/app/dist/static/fonts/DINNextRoundedLTPro-Regular.otf b/app/dist/static/fonts/DINNextRoundedLTPro-Regular.otf new file mode 100644 index 0000000..d0157ff Binary files /dev/null and b/app/dist/static/fonts/DINNextRoundedLTPro-Regular.otf differ diff --git a/site/dist/static/fonts/Inconsolata-Bold.b031278.ttf b/app/dist/static/fonts/Inconsolata-Bold.b031278.ttf similarity index 100% rename from site/dist/static/fonts/Inconsolata-Bold.b031278.ttf rename to app/dist/static/fonts/Inconsolata-Bold.b031278.ttf diff --git a/app/dist/static/fonts/Inconsolata-Bold.ttf b/app/dist/static/fonts/Inconsolata-Bold.ttf new file mode 100644 index 0000000..809c1f5 Binary files /dev/null and b/app/dist/static/fonts/Inconsolata-Bold.ttf differ diff --git a/site/dist/static/fonts/Inconsolata-Regular.29b00eb.ttf b/app/dist/static/fonts/Inconsolata-Regular.29b00eb.ttf similarity index 100% rename from site/dist/static/fonts/Inconsolata-Regular.29b00eb.ttf rename to app/dist/static/fonts/Inconsolata-Regular.29b00eb.ttf diff --git a/app/dist/static/fonts/Inconsolata-Regular.ttf b/app/dist/static/fonts/Inconsolata-Regular.ttf new file mode 100644 index 0000000..fc981ce Binary files /dev/null and b/app/dist/static/fonts/Inconsolata-Regular.ttf differ diff --git a/app/dist/static/images/favicon-32x32.png b/app/dist/static/images/favicon-32x32.png new file mode 100644 index 0000000..7adffd0 Binary files /dev/null and b/app/dist/static/images/favicon-32x32.png differ diff --git a/site/dist/static/img/header-background.19041ca.svg b/app/dist/static/img/header-background.19041ca.svg similarity index 100% rename from site/dist/static/img/header-background.19041ca.svg rename to app/dist/static/img/header-background.19041ca.svg diff --git a/site/dist/static/img/header-robot.8a9f999.svg b/app/dist/static/img/header-robot.8a9f999.svg similarity index 100% rename from site/dist/static/img/header-robot.8a9f999.svg rename to app/dist/static/img/header-robot.8a9f999.svg diff --git a/site/dist/static/img/illustration-astronaut.ec2e1c8.svg b/app/dist/static/img/illustration-astronaut.ec2e1c8.svg similarity index 100% rename from site/dist/static/img/illustration-astronaut.ec2e1c8.svg rename to app/dist/static/img/illustration-astronaut.ec2e1c8.svg diff --git a/app/dist/static/js/app.87553f6692d3d75f8144.js b/app/dist/static/js/app.87553f6692d3d75f8144.js new file mode 100644 index 0000000..bce55c7 --- /dev/null +++ b/app/dist/static/js/app.87553f6692d3d75f8144.js @@ -0,0 +1,12 @@ +webpackJsonp([0],[function(e,t,n){(function(e){!function(t,n){e.exports=n()}(0,function(){"use strict";function t(){return hi.apply(null,arguments)}function i(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function a(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function r(e){var t;for(t in e)return!1;return!0}function s(e){return void 0===e}function o(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,i=[];for(n=0;n0)for(n=0;n0?"future":"past"];return C(n)?n(t):n.replace(/%s/i,t)}function z(e,t){var n=e.toLowerCase();ji[n]=ji[n+"s"]=ji[t]=e}function Y(e){return"string"==typeof e?ji[e]||ji[e.toLowerCase()]:void 0}function P(e){var t,n,i={};for(n in e)u(e,n)&&(t=Y(n))&&(i[t]=e[n]);return i}function R(e,t){Oi[e]=t}function U(e){var t=[];for(var n in e)t.push({unit:n,priority:Oi[n]});return t.sort(function(e,t){return e.priority-t.priority}),t}function B(e,n){return function(i){return null!=i?(Q(this,e,i),t.updateOffset(this,n),this):G(this,e)}}function G(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function Q(e,t,n){e.isValid()&&e._d["set"+(e._isUTC?"UTC":"")+t](n)}function F(e){return e=Y(e),C(this[e])?this[e]():this}function H(e,t){if("object"==typeof e){e=P(e);for(var n=U(e),i=0;i=0?n?"+":"":"-")+Math.pow(10,Math.max(0,a)).toString().substr(1)+i}function Z(e,t,n,i){var a=i;"string"==typeof i&&(a=function(){return this[i]()}),e&&(Pi[e]=a),t&&(Pi[t[0]]=function(){return W(a.apply(this,arguments),t[1],t[2])}),n&&(Pi[n]=function(){return this.localeData().ordinal(a.apply(this,arguments),e)})}function V(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function q(e){var t,n,i=e.match(ki);for(t=0,n=i.length;t=0&&zi.test(e);)e=e.replace(zi,n),zi.lastIndex=0,i-=1;return e}function K(e,t,n){na[e]=C(t)?t:function(e,i){return e&&n?n:t}}function X(e,t){return u(na,e)?na[e](t._strict,t._locale):new RegExp(ee(e))}function ee(e){return te(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,n,i,a){return t||n||i||a}))}function te(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function ne(e,t){var n,i=t;for("string"==typeof e&&(e=[e]),o(t)&&(i=function(e,n){n[t]=D(e)}),n=0;n=0&&isFinite(o.getFullYear())&&o.setFullYear(e),o}function he(e){var t=new Date(Date.UTC.apply(null,arguments));return e<100&&e>=0&&isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e),t}function De(e,t,n){var i=7+t-n;return-(7+he(e,0,i).getUTCDay()-t)%7+i-1}function Ne(e,t,n,i,a){var r,s,o=(7+n-i)%7,l=De(e,i,a),c=1+7*(t-1)+o+l;return c<=0?(r=e-1,s=_e(r)+c):c>_e(e)?(r=e+1,s=c-_e(e)):(r=e,s=c),{year:r,dayOfYear:s}}function Te(e,t,n){var i,a,r=De(e.year(),t,n),s=Math.floor((e.dayOfYear()-r-1)/7)+1;return s<1?(a=e.year()-1,i=s+be(a,t,n)):s>be(e.year(),t,n)?(i=s-be(e.year(),t,n),a=e.year()+1):(a=e.year(),i=s),{week:i,year:a}}function be(e,t,n){var i=De(e,t,n),a=De(e+1,t,n);return(_e(e)-i+a)/7}function Ie(e){return Te(e,this._week.dow,this._week.doy).week}function Ce(){return this._week.dow}function we(){return this._week.doy}function ve(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")}function Ee(e){var t=Te(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")}function Se(e,t){return"string"!=typeof e?e:isNaN(e)?(e=t.weekdaysParse(e),"number"==typeof e?e:null):parseInt(e,10)}function Ae(e,t){return"string"==typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}function xe(e,t){return e?i(this._weekdays)?this._weekdays[e.day()]:this._weekdays[this._weekdays.isFormat.test(t)?"format":"standalone"][e.day()]:i(this._weekdays)?this._weekdays:this._weekdays.standalone}function je(e){return e?this._weekdaysShort[e.day()]:this._weekdaysShort}function Oe(e){return e?this._weekdaysMin[e.day()]:this._weekdaysMin}function ke(e,t,n){var i,a,r,s=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],i=0;i<7;++i)r=m([2e3,1]).day(i),this._minWeekdaysParse[i]=this.weekdaysMin(r,"").toLocaleLowerCase(),this._shortWeekdaysParse[i]=this.weekdaysShort(r,"").toLocaleLowerCase(),this._weekdaysParse[i]=this.weekdays(r,"").toLocaleLowerCase();return n?"dddd"===t?(a=Ma.call(this._weekdaysParse,s),-1!==a?a:null):"ddd"===t?(a=Ma.call(this._shortWeekdaysParse,s),-1!==a?a:null):(a=Ma.call(this._minWeekdaysParse,s),-1!==a?a:null):"dddd"===t?-1!==(a=Ma.call(this._weekdaysParse,s))?a:-1!==(a=Ma.call(this._shortWeekdaysParse,s))?a:(a=Ma.call(this._minWeekdaysParse,s),-1!==a?a:null):"ddd"===t?-1!==(a=Ma.call(this._shortWeekdaysParse,s))?a:-1!==(a=Ma.call(this._weekdaysParse,s))?a:(a=Ma.call(this._minWeekdaysParse,s),-1!==a?a:null):-1!==(a=Ma.call(this._minWeekdaysParse,s))?a:-1!==(a=Ma.call(this._weekdaysParse,s))?a:(a=Ma.call(this._shortWeekdaysParse,s),-1!==a?a:null)}function ze(e,t,n){var i,a,r;if(this._weekdaysParseExact)return ke.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),i=0;i<7;i++){if(a=m([2e3,1]).day(i),n&&!this._fullWeekdaysParse[i]&&(this._fullWeekdaysParse[i]=new RegExp("^"+this.weekdays(a,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[i]=new RegExp("^"+this.weekdaysShort(a,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[i]=new RegExp("^"+this.weekdaysMin(a,"").replace(".",".?")+"$","i")),this._weekdaysParse[i]||(r="^"+this.weekdays(a,"")+"|^"+this.weekdaysShort(a,"")+"|^"+this.weekdaysMin(a,""),this._weekdaysParse[i]=new RegExp(r.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[i].test(e))return i;if(n&&"ddd"===t&&this._shortWeekdaysParse[i].test(e))return i;if(n&&"dd"===t&&this._minWeekdaysParse[i].test(e))return i;if(!n&&this._weekdaysParse[i].test(e))return i}}function Ye(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=Se(e,this.localeData()),this.add(e-t,"d")):t}function Pe(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")}function Re(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=Ae(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7}function Ue(e){return this._weekdaysParseExact?(u(this,"_weekdaysRegex")||Qe.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(u(this,"_weekdaysRegex")||(this._weekdaysRegex=ba),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)}function Be(e){return this._weekdaysParseExact?(u(this,"_weekdaysRegex")||Qe.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(u(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Ia),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Ge(e){return this._weekdaysParseExact?(u(this,"_weekdaysRegex")||Qe.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(u(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Ca),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Qe(){function e(e,t){return t.length-e.length}var t,n,i,a,r,s=[],o=[],l=[],c=[];for(t=0;t<7;t++)n=m([2e3,1]).day(t),i=this.weekdaysMin(n,""),a=this.weekdaysShort(n,""),r=this.weekdays(n,""),s.push(i),o.push(a),l.push(r),c.push(i),c.push(a),c.push(r);for(s.sort(e),o.sort(e),l.sort(e),c.sort(e),t=0;t<7;t++)o[t]=te(o[t]),l[t]=te(l[t]),c[t]=te(c[t]);this._weekdaysRegex=new RegExp("^("+c.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+s.join("|")+")","i")}function Fe(){return this.hours()%12||12}function He(){return this.hours()||24}function We(e,t){Z(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function Ze(e,t){return t._meridiemParse}function Ve(e){return"p"===(e+"").toLowerCase().charAt(0)}function qe(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"}function $e(e){return e?e.toLowerCase().replace("_","-"):e}function Je(e){for(var t,n,i,a,r=0;r0;){if(i=Ke(a.slice(0,t).join("-")))return i;if(n&&n.length>=t&&N(a,n,!0)>=t-1)break;t--}r++}return null}function Ke(t){var i=null;if(!Aa[t]&&void 0!==e&&e&&e.exports)try{i=wa._abbr,n(486)("./"+t),Xe(i)}catch(e){}return Aa[t]}function Xe(e,t){var n;return e&&(n=s(t)?nt(e):et(e,t))&&(wa=n),wa._abbr}function et(e,t){if(null!==t){var n=Sa;if(t.abbr=e,null!=Aa[e])I("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."),n=Aa[e]._config;else if(null!=t.parentLocale){if(null==Aa[t.parentLocale])return xa[t.parentLocale]||(xa[t.parentLocale]=[]),xa[t.parentLocale].push({name:e,config:t}),null;n=Aa[t.parentLocale]._config}return Aa[e]=new E(v(n,t)),xa[e]&&xa[e].forEach(function(e){et(e.name,e.config)}),Xe(e),Aa[e]}return delete Aa[e],null}function tt(e,t){if(null!=t){var n,i=Sa;null!=Aa[e]&&(i=Aa[e]._config),t=v(i,t),n=new E(t),n.parentLocale=Aa[e],Aa[e]=n,Xe(e)}else null!=Aa[e]&&(null!=Aa[e].parentLocale?Aa[e]=Aa[e].parentLocale:null!=Aa[e]&&delete Aa[e]);return Aa[e]}function nt(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return wa;if(!i(e)){if(t=Ke(e))return t;e=[e]}return Je(e)}function it(){return vi(Aa)}function at(e){var t,n=e._a;return n&&-2===g(e).overflow&&(t=n[ra]<0||n[ra]>11?ra:n[sa]<1||n[sa]>re(n[aa],n[ra])?sa:n[oa]<0||n[oa]>24||24===n[oa]&&(0!==n[la]||0!==n[ca]||0!==n[ua])?oa:n[la]<0||n[la]>59?la:n[ca]<0||n[ca]>59?ca:n[ua]<0||n[ua]>999?ua:-1,g(e)._overflowDayOfYear&&(tsa)&&(t=sa),g(e)._overflowWeeks&&-1===t&&(t=da),g(e)._overflowWeekday&&-1===t&&(t=ma),g(e).overflow=t),e}function rt(e){var t,n,i,a,r,s,o=e._i,l=ja.exec(o)||Oa.exec(o);if(l){for(g(e).iso=!0,t=0,n=za.length;t10?"YYYY ":"YY "),r="HH:mm"+(n[4]?":ss":""),n[1]){var d=new Date(n[2]),m=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"][d.getDay()];if(n[1].substr(0,3)!==m)return g(e).weekdayMismatch=!0,void(e._isValid=!1)}switch(n[5].length){case 2:0===l?o=" +0000":(l=u.indexOf(n[5][1].toUpperCase())-12,o=(l<0?" -":" +")+(""+l).replace(/^-?/,"0").match(/..$/)[0]+"00");break;case 4:o=c[n[5]];break;default:o=c[" GMT"]}n[5]=o,e._i=n.splice(1).join(""),s=" ZZ",e._f=i+a+r+s,mt(e),g(e).rfc2822=!0}else e._isValid=!1}function ot(e){var n=Pa.exec(e._i);if(null!==n)return void(e._d=new Date(+n[1]));rt(e),!1===e._isValid&&(delete e._isValid,st(e),!1===e._isValid&&(delete e._isValid,t.createFromInputFallback(e)))}function lt(e,t,n){return null!=e?e:null!=t?t:n}function ct(e){var n=new Date(t.now());return e._useUTC?[n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate()]:[n.getFullYear(),n.getMonth(),n.getDate()]}function ut(e){var t,n,i,a,r=[];if(!e._d){for(i=ct(e),e._w&&null==e._a[sa]&&null==e._a[ra]&&dt(e),null!=e._dayOfYear&&(a=lt(e._a[aa],i[aa]),(e._dayOfYear>_e(a)||0===e._dayOfYear)&&(g(e)._overflowDayOfYear=!0),n=he(a,0,e._dayOfYear),e._a[ra]=n.getUTCMonth(),e._a[sa]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=r[t]=i[t];for(;t<7;t++)e._a[t]=r[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[oa]&&0===e._a[la]&&0===e._a[ca]&&0===e._a[ua]&&(e._nextDay=!0,e._a[oa]=0),e._d=(e._useUTC?he:Le).apply(null,r),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[oa]=24)}}function dt(e){var t,n,i,a,r,s,o,l;if(t=e._w,null!=t.GG||null!=t.W||null!=t.E)r=1,s=4,n=lt(t.GG,e._a[aa],Te(ht(),1,4).year),i=lt(t.W,1),((a=lt(t.E,1))<1||a>7)&&(l=!0);else{r=e._locale._week.dow,s=e._locale._week.doy;var c=Te(ht(),r,s);n=lt(t.gg,e._a[aa],c.year),i=lt(t.w,c.week),null!=t.d?((a=t.d)<0||a>6)&&(l=!0):null!=t.e?(a=t.e+r,(t.e<0||t.e>6)&&(l=!0)):a=r}i<1||i>be(n,r,s)?g(e)._overflowWeeks=!0:null!=l?g(e)._overflowWeekday=!0:(o=Ne(n,i,a,r,s),e._a[aa]=o.year,e._dayOfYear=o.dayOfYear)}function mt(e){if(e._f===t.ISO_8601)return void rt(e);if(e._f===t.RFC_2822)return void st(e);e._a=[],g(e).empty=!0;var n,i,a,r,s,o=""+e._i,l=o.length,c=0;for(a=J(e._f,e._locale).match(ki)||[],n=0;n0&&g(e).unusedInput.push(s),o=o.slice(o.indexOf(i)+i.length),c+=i.length),Pi[r]?(i?g(e).empty=!1:g(e).unusedTokens.push(r),ae(r,i,e)):e._strict&&!i&&g(e).unusedTokens.push(r);g(e).charsLeftOver=l-c,o.length>0&&g(e).unusedInput.push(o),e._a[oa]<=12&&!0===g(e).bigHour&&e._a[oa]>0&&(g(e).bigHour=void 0),g(e).parsedDateParts=e._a.slice(0),g(e).meridiem=e._meridiem,e._a[oa]=Mt(e._locale,e._a[oa],e._meridiem),ut(e),at(e)}function Mt(e,t,n){var i;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?(i=e.isPM(n),i&&t<12&&(t+=12),i||12!==t||(t=0),t):t}function gt(e){var t,n,i,a,r;if(0===e._f.length)return g(e).invalidFormat=!0,void(e._d=new Date(NaN));for(a=0;athis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Bt(){if(!s(this._isDSTShifted))return this._isDSTShifted;var e={};if(f(e,this),e=ft(e),e._a){var t=e._isUTC?m(e._a):ht(e._a);this._isDSTShifted=this.isValid()&&N(e._a,t.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Gt(){return!!this.isValid()&&!this._isUTC}function Qt(){return!!this.isValid()&&this._isUTC}function Ft(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function Ht(e,t){var n,i,a,r=e,s=null;return vt(e)?r={ms:e._milliseconds,d:e._days,M:e._months}:o(e)?(r={},t?r[t]=e:r.milliseconds=e):(s=Ha.exec(e))?(n="-"===s[1]?-1:1,r={y:0,d:D(s[sa])*n,h:D(s[oa])*n,m:D(s[la])*n,s:D(s[ca])*n,ms:D(Et(1e3*s[ua]))*n}):(s=Wa.exec(e))?(n="-"===s[1]?-1:1,r={y:Wt(s[2],n),M:Wt(s[3],n),w:Wt(s[4],n),d:Wt(s[5],n),h:Wt(s[6],n),m:Wt(s[7],n),s:Wt(s[8],n)}):null==r?r={}:"object"==typeof r&&("from"in r||"to"in r)&&(a=Vt(ht(r.from),ht(r.to)),r={},r.ms=a.milliseconds,r.M=a.months),i=new wt(r),vt(e)&&u(e,"_locale")&&(i._locale=e._locale),i}function Wt(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function Zt(e,t){var n={milliseconds:0,months:0};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function Vt(e,t){var n;return e.isValid()&&t.isValid()?(t=xt(t,e),e.isBefore(t)?n=Zt(e,t):(n=Zt(t,e),n.milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}function qt(e,t){return function(n,i){var a,r;return null===i||isNaN(+i)||(I(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),r=n,n=i,i=r),n="string"==typeof n?+n:n,a=Ht(n,i),$t(this,a,e),this}}function $t(e,n,i,a){var r=n._milliseconds,s=Et(n._days),o=Et(n._months);e.isValid()&&(a=null==a||a,r&&e._d.setTime(e._d.valueOf()+r*i),s&&Q(e,"Date",G(e,"Date")+s*i),o&&ue(e,G(e,"Month")+o*i),a&&t.updateOffset(e,s||o))}function Jt(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"}function Kt(e,n){var i=e||ht(),a=xt(i,this).startOf("day"),r=t.calendarFormat(this,a)||"sameElse",s=n&&(C(n[r])?n[r].call(this,i):n[r]);return this.format(s||this.localeData().calendar(r,this,ht(i)))}function Xt(){return new y(this)}function en(e,t){var n=L(e)?e:ht(e);return!(!this.isValid()||!n.isValid())&&(t=Y(s(t)?"millisecond":t),"millisecond"===t?this.valueOf()>n.valueOf():n.valueOf()9999?$(e,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):C(Date.prototype.toISOString)?this.toDate().toISOString():$(e,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]")}function dn(){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+'("]',i=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",a=t+'[")]';return this.format(n+i+"-MM-DD[T]HH:mm:ss.SSS"+a)}function mn(e){e||(e=this.isUtc()?t.defaultFormatUtc:t.defaultFormat);var n=$(this,e);return this.localeData().postformat(n)}function Mn(e,t){return this.isValid()&&(L(e)&&e.isValid()||ht(e).isValid())?Ht({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function gn(e){return this.from(ht(),e)}function pn(e,t){return this.isValid()&&(L(e)&&e.isValid()||ht(e).isValid())?Ht({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function _n(e){return this.to(ht(),e)}function fn(e){var t;return void 0===e?this._locale._abbr:(t=nt(e),null!=t&&(this._locale=t),this)}function yn(){return this._locale}function Ln(e){switch(e=Y(e)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===e&&this.weekday(0),"isoWeek"===e&&this.isoWeekday(1),"quarter"===e&&this.month(3*Math.floor(this.month()/3)),this}function hn(e){return void 0===(e=Y(e))||"millisecond"===e?this:("date"===e&&(e="day"),this.startOf(e).add(1,"isoWeek"===e?"week":e).subtract(1,"ms"))}function Dn(){return this._d.valueOf()-6e4*(this._offset||0)}function Nn(){return Math.floor(this.valueOf()/1e3)}function Tn(){return new Date(this.valueOf())}function bn(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]}function In(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}}function Cn(){return this.isValid()?this.toISOString():null}function wn(){return p(this)}function vn(){return d({},g(this))}function En(){return g(this).overflow}function Sn(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function An(e,t){Z(0,[e,e.length],0,t)}function xn(e){return zn.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function jn(e){return zn.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)}function On(){return be(this.year(),1,4)}function kn(){var e=this.localeData()._week;return be(this.year(),e.dow,e.doy)}function zn(e,t,n,i,a){var r;return null==e?Te(this,i,a).year:(r=be(e,i,a),t>r&&(t=r),Yn.call(this,e,t,n,i,a))}function Yn(e,t,n,i,a){var r=Ne(e,t,n,i,a),s=he(r.year,0,r.dayOfYear);return this.year(s.getUTCFullYear()),this.month(s.getUTCMonth()),this.date(s.getUTCDate()),this}function Pn(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)}function Rn(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")}function Un(e,t){t[ua]=D(1e3*("0."+e))}function Bn(){return this._isUTC?"UTC":""}function Gn(){return this._isUTC?"Coordinated Universal Time":""}function Qn(e){return ht(1e3*e)}function Fn(){return ht.apply(null,arguments).parseZone()}function Hn(e){return e}function Wn(e,t,n,i){var a=nt(),r=m().set(i,t);return a[n](r,e)}function Zn(e,t,n){if(o(e)&&(t=e,e=void 0),e=e||"",null!=t)return Wn(e,t,n,"month");var i,a=[];for(i=0;i<12;i++)a[i]=Wn(e,i,n,"month");return a}function Vn(e,t,n,i){"boolean"==typeof e?(o(t)&&(n=t,t=void 0),t=t||""):(t=e,n=t,e=!1,o(t)&&(n=t,t=void 0),t=t||"");var a=nt(),r=e?a._week.dow:0;if(null!=n)return Wn(t,(n+r)%7,i,"day");var s,l=[];for(s=0;s<7;s++)l[s]=Wn(t,(s+r)%7,i,"day");return l}function qn(e,t){return Zn(e,t,"months")}function $n(e,t){return Zn(e,t,"monthsShort")}function Jn(e,t,n){return Vn(e,t,n,"weekdays")}function Kn(e,t,n){return Vn(e,t,n,"weekdaysShort")}function Xn(e,t,n){return Vn(e,t,n,"weekdaysMin")}function ei(){var e=this._data;return this._milliseconds=ir(this._milliseconds),this._days=ir(this._days),this._months=ir(this._months),e.milliseconds=ir(e.milliseconds),e.seconds=ir(e.seconds),e.minutes=ir(e.minutes),e.hours=ir(e.hours),e.months=ir(e.months),e.years=ir(e.years),this}function ti(e,t,n,i){var a=Ht(t,n);return e._milliseconds+=i*a._milliseconds,e._days+=i*a._days,e._months+=i*a._months,e._bubble()}function ni(e,t){return ti(this,e,t,1)}function ii(e,t){return ti(this,e,t,-1)}function ai(e){return e<0?Math.floor(e):Math.ceil(e)}function ri(){var e,t,n,i,a,r=this._milliseconds,s=this._days,o=this._months,l=this._data;return r>=0&&s>=0&&o>=0||r<=0&&s<=0&&o<=0||(r+=864e5*ai(oi(o)+s),s=0,o=0),l.milliseconds=r%1e3,e=h(r/1e3),l.seconds=e%60,t=h(e/60),l.minutes=t%60,n=h(t/60),l.hours=n%24,s+=h(n/24),a=h(si(s)),o+=a,s-=ai(oi(a)),i=h(o/12),o%=12,l.days=s,l.months=o,l.years=i,this}function si(e){return 4800*e/146097}function oi(e){return 146097*e/4800}function li(e){if(!this.isValid())return NaN;var t,n,i=this._milliseconds;if("month"===(e=Y(e))||"year"===e)return t=this._days+i/864e5,n=this._months+si(t),"month"===e?n:n/12;switch(t=this._days+Math.round(oi(this._months)),e){case"week":return t/7+i/6048e5;case"day":return t+i/864e5;case"hour":return 24*t+i/36e5;case"minute":return 1440*t+i/6e4;case"second":return 86400*t+i/1e3;case"millisecond":return Math.floor(864e5*t)+i;default:throw new Error("Unknown unit "+e)}}function ci(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*D(this._months/12):NaN}function ui(e){return function(){return this.as(e)}}function di(e){return e=Y(e),this.isValid()?this[e+"s"]():NaN}function mi(e){return function(){return this.isValid()?this._data[e]:NaN}}function Mi(){return h(this.days()/7)}function gi(e,t,n,i,a){return a.relativeTime(t||1,!!n,e,i)}function pi(e,t,n){var i=Ht(e).abs(),a=Lr(i.as("s")),r=Lr(i.as("m")),s=Lr(i.as("h")),o=Lr(i.as("d")),l=Lr(i.as("M")),c=Lr(i.as("y")),u=a<=hr.ss&&["s",a]||a0,u[4]=n,gi.apply(null,u)}function _i(e){return void 0===e?Lr:"function"==typeof e&&(Lr=e,!0)}function fi(e,t){return void 0!==hr[e]&&(void 0===t?hr[e]:(hr[e]=t,"s"===e&&(hr.ss=t-1),!0))}function yi(e){if(!this.isValid())return this.localeData().invalidDate();var t=this.localeData(),n=pi(this,!e,t);return e&&(n=t.pastFuture(+this,n)),t.postformat(n)}function Li(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n,i=Dr(this._milliseconds)/1e3,a=Dr(this._days),r=Dr(this._months);e=h(i/60),t=h(e/60),i%=60,e%=60,n=h(r/12),r%=12;var s=n,o=r,l=a,c=t,u=e,d=i,m=this.asSeconds();return m?(m<0?"-":"")+"P"+(s?s+"Y":"")+(o?o+"M":"")+(l?l+"D":"")+(c||u||d?"T":"")+(c?c+"H":"")+(u?u+"M":"")+(d?d+"S":""):"P0D"}var hi,Di;Di=Array.prototype.some?Array.prototype.some:function(e){for(var t=Object(this),n=t.length>>>0,i=0;i68?1900:2e3)};var La=B("FullYear",!0);Z("w",["ww",2],"wo","week"),Z("W",["WW",2],"Wo","isoWeek"),z("week","w"),z("isoWeek","W"),R("week",5),R("isoWeek",5),K("w",Fi),K("ww",Fi,Ui),K("W",Fi),K("WW",Fi,Ui),ie(["w","ww","W","WW"],function(e,t,n,i){t[i.substr(0,1)]=D(e)});var ha={dow:0,doy:6};Z("d",0,"do","day"),Z("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),Z("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),Z("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),Z("e",0,0,"weekday"),Z("E",0,0,"isoWeekday"),z("day","d"),z("weekday","e"),z("isoWeekday","E"),R("day",11),R("weekday",11),R("isoWeekday",11),K("d",Fi),K("e",Fi),K("E",Fi),K("dd",function(e,t){return t.weekdaysMinRegex(e)}),K("ddd",function(e,t){return t.weekdaysShortRegex(e)}),K("dddd",function(e,t){return t.weekdaysRegex(e)}),ie(["dd","ddd","dddd"],function(e,t,n,i){var a=n._locale.weekdaysParse(e,i,n._strict);null!=a?t.d=a:g(n).invalidWeekday=e}),ie(["d","e","E"],function(e,t,n,i){t[i]=D(e)});var Da="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Na="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Ta="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),ba=ta,Ia=ta,Ca=ta;Z("H",["HH",2],0,"hour"),Z("h",["hh",2],0,Fe),Z("k",["kk",2],0,He),Z("hmm",0,0,function(){return""+Fe.apply(this)+W(this.minutes(),2)}),Z("hmmss",0,0,function(){return""+Fe.apply(this)+W(this.minutes(),2)+W(this.seconds(),2)}),Z("Hmm",0,0,function(){return""+this.hours()+W(this.minutes(),2)}),Z("Hmmss",0,0,function(){return""+this.hours()+W(this.minutes(),2)+W(this.seconds(),2)}),We("a",!0),We("A",!1),z("hour","h"),R("hour",13),K("a",Ze),K("A",Ze),K("H",Fi),K("h",Fi),K("k",Fi),K("HH",Fi,Ui),K("hh",Fi,Ui),K("kk",Fi,Ui),K("hmm",Hi),K("hmmss",Wi),K("Hmm",Hi),K("Hmmss",Wi),ne(["H","HH"],oa),ne(["k","kk"],function(e,t,n){var i=D(e);t[oa]=24===i?0:i}),ne(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),ne(["h","hh"],function(e,t,n){t[oa]=D(e),g(n).bigHour=!0}),ne("hmm",function(e,t,n){var i=e.length-2;t[oa]=D(e.substr(0,i)),t[la]=D(e.substr(i)),g(n).bigHour=!0}),ne("hmmss",function(e,t,n){var i=e.length-4,a=e.length-2;t[oa]=D(e.substr(0,i)),t[la]=D(e.substr(i,2)),t[ca]=D(e.substr(a)),g(n).bigHour=!0}),ne("Hmm",function(e,t,n){var i=e.length-2;t[oa]=D(e.substr(0,i)),t[la]=D(e.substr(i))}),ne("Hmmss",function(e,t,n){var i=e.length-4,a=e.length-2;t[oa]=D(e.substr(0,i)),t[la]=D(e.substr(i,2)),t[ca]=D(e.substr(a))});var wa,va=/[ap]\.?m?\.?/i,Ea=B("Hours",!0),Sa={calendar:Ei,longDateFormat:Si,invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:Ai,relativeTime:xi,months:pa,monthsShort:_a,week:ha,weekdays:Da,weekdaysMin:Ta,weekdaysShort:Na,meridiemParse:va},Aa={},xa={},ja=/^\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)?)?$/,Oa=/^\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)?)?$/,ka=/Z|[+-]\d\d(?::?\d\d)?/,za=[["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}/]],Ya=[["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/]],Pa=/^\/?Date\((\-?\d+)/i,Ra=/^((?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d?\d\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(?:\d\d)?\d\d\s)(\d\d:\d\d)(\:\d\d)?(\s(?:UT|GMT|[ECMP][SD]T|[A-IK-Za-ik-z]|[+-]\d{4}))$/;t.createFromInputFallback=b("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))}),t.ISO_8601=function(){},t.RFC_2822=function(){};var Ua=b("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=ht.apply(null,arguments);return this.isValid()&&e.isValid()?ethis?this:e:_()}),Ga=function(){return Date.now?Date.now():+new Date},Qa=["year","quarter","month","week","day","hour","minute","second","millisecond"];St("Z",":"),St("ZZ",""),K("Z",Xi),K("ZZ",Xi),ne(["Z","ZZ"],function(e,t,n){n._useUTC=!0,n._tzm=At(Xi,e)});var Fa=/([\+\-]|\d\d)/gi;t.updateOffset=function(){};var Ha=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Wa=/^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;Ht.fn=wt.prototype,Ht.invalid=Ct;var Za=qt(1,"add"),Va=qt(-1,"subtract");t.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",t.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var qa=b("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return void 0===e?this.localeData():this.locale(e)});Z(0,["gg",2],0,function(){return this.weekYear()%100}),Z(0,["GG",2],0,function(){return this.isoWeekYear()%100}),An("gggg","weekYear"),An("ggggg","weekYear"),An("GGGG","isoWeekYear"),An("GGGGG","isoWeekYear"),z("weekYear","gg"),z("isoWeekYear","GG"),R("weekYear",1),R("isoWeekYear",1),K("G",Ji),K("g",Ji),K("GG",Fi,Ui),K("gg",Fi,Ui),K("GGGG",Vi,Gi),K("gggg",Vi,Gi),K("GGGGG",qi,Qi),K("ggggg",qi,Qi),ie(["gggg","ggggg","GGGG","GGGGG"],function(e,t,n,i){t[i.substr(0,2)]=D(e)}),ie(["gg","GG"],function(e,n,i,a){n[a]=t.parseTwoDigitYear(e)}),Z("Q",0,"Qo","quarter"),z("quarter","Q"),R("quarter",7),K("Q",Ri),ne("Q",function(e,t){t[ra]=3*(D(e)-1)}),Z("D",["DD",2],"Do","date"),z("date","D"),R("date",9),K("D",Fi),K("DD",Fi,Ui),K("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient}),ne(["D","DD"],sa),ne("Do",function(e,t){t[sa]=D(e.match(Fi)[0],10)});var $a=B("Date",!0);Z("DDD",["DDDD",3],"DDDo","dayOfYear"),z("dayOfYear","DDD"),R("dayOfYear",4),K("DDD",Zi),K("DDDD",Bi),ne(["DDD","DDDD"],function(e,t,n){n._dayOfYear=D(e)}),Z("m",["mm",2],0,"minute"),z("minute","m"),R("minute",14),K("m",Fi),K("mm",Fi,Ui),ne(["m","mm"],la);var Ja=B("Minutes",!1);Z("s",["ss",2],0,"second"),z("second","s"),R("second",15),K("s",Fi),K("ss",Fi,Ui),ne(["s","ss"],ca);var Ka=B("Seconds",!1);Z("S",0,0,function(){return~~(this.millisecond()/100)}),Z(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),Z(0,["SSS",3],0,"millisecond"),Z(0,["SSSS",4],0,function(){return 10*this.millisecond()}),Z(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),Z(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),Z(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),Z(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),Z(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),z("millisecond","ms"),R("millisecond",16),K("S",Zi,Ri),K("SS",Zi,Ui),K("SSS",Zi,Bi);var Xa;for(Xa="SSSS";Xa.length<=9;Xa+="S")K(Xa,$i);for(Xa="S";Xa.length<=9;Xa+="S")ne(Xa,Un);var er=B("Milliseconds",!1);Z("z",0,0,"zoneAbbr"),Z("zz",0,0,"zoneName");var tr=y.prototype;tr.add=Za,tr.calendar=Kt,tr.clone=Xt,tr.diff=on,tr.endOf=hn,tr.format=mn,tr.from=Mn,tr.fromNow=gn,tr.to=pn,tr.toNow=_n,tr.get=F,tr.invalidAt=En,tr.isAfter=en,tr.isBefore=tn,tr.isBetween=nn,tr.isSame=an,tr.isSameOrAfter=rn,tr.isSameOrBefore=sn,tr.isValid=wn,tr.lang=qa,tr.locale=fn,tr.localeData=yn,tr.max=Ba,tr.min=Ua,tr.parsingFlags=vn,tr.set=H,tr.startOf=Ln,tr.subtract=Va,tr.toArray=bn,tr.toObject=In,tr.toDate=Tn,tr.toISOString=un,tr.inspect=dn,tr.toJSON=Cn,tr.toString=cn,tr.unix=Nn,tr.valueOf=Dn,tr.creationData=Sn,tr.year=La,tr.isLeapYear=ye,tr.weekYear=xn,tr.isoWeekYear=jn,tr.quarter=tr.quarters=Pn,tr.month=de,tr.daysInMonth=me,tr.week=tr.weeks=ve,tr.isoWeek=tr.isoWeeks=Ee,tr.weeksInYear=kn,tr.isoWeeksInYear=On,tr.date=$a,tr.day=tr.days=Ye,tr.weekday=Pe,tr.isoWeekday=Re,tr.dayOfYear=Rn,tr.hour=tr.hours=Ea,tr.minute=tr.minutes=Ja,tr.second=tr.seconds=Ka,tr.millisecond=tr.milliseconds=er,tr.utcOffset=Ot,tr.utc=zt,tr.local=Yt,tr.parseZone=Pt,tr.hasAlignedHourOffset=Rt,tr.isDST=Ut,tr.isLocal=Gt,tr.isUtcOffset=Qt,tr.isUtc=Ft,tr.isUTC=Ft,tr.zoneAbbr=Bn,tr.zoneName=Gn,tr.dates=b("dates accessor is deprecated. Use date instead.",$a),tr.months=b("months accessor is deprecated. Use month instead",de),tr.years=b("years accessor is deprecated. Use year instead",La),tr.zone=b("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",kt),tr.isDSTShifted=b("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Bt);var nr=E.prototype;nr.calendar=S,nr.longDateFormat=A,nr.invalidDate=x,nr.ordinal=j,nr.preparse=Hn,nr.postformat=Hn,nr.relativeTime=O,nr.pastFuture=k,nr.set=w,nr.months=se,nr.monthsShort=oe,nr.monthsParse=ce,nr.monthsRegex=ge,nr.monthsShortRegex=Me,nr.week=Ie,nr.firstDayOfYear=we,nr.firstDayOfWeek=Ce,nr.weekdays=xe,nr.weekdaysMin=Oe,nr.weekdaysShort=je,nr.weekdaysParse=ze,nr.weekdaysRegex=Ue,nr.weekdaysShortRegex=Be,nr.weekdaysMinRegex=Ge,nr.isPM=Ve,nr.meridiem=qe,Xe("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===D(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),t.lang=b("moment.lang is deprecated. Use moment.locale instead.",Xe),t.langData=b("moment.langData is deprecated. Use moment.localeData instead.",nt);var ir=Math.abs,ar=ui("ms"),rr=ui("s"),sr=ui("m"),or=ui("h"),lr=ui("d"),cr=ui("w"),ur=ui("M"),dr=ui("y"),mr=mi("milliseconds"),Mr=mi("seconds"),gr=mi("minutes"),pr=mi("hours"),_r=mi("days"),fr=mi("months"),yr=mi("years"),Lr=Math.round,hr={ss:44,s:45,m:45,h:22,d:26,M:11},Dr=Math.abs,Nr=wt.prototype;return Nr.isValid=It,Nr.abs=ei,Nr.add=ni,Nr.subtract=ii,Nr.as=li,Nr.asMilliseconds=ar,Nr.asSeconds=rr,Nr.asMinutes=sr,Nr.asHours=or,Nr.asDays=lr,Nr.asWeeks=cr,Nr.asMonths=ur,Nr.asYears=dr,Nr.valueOf=ci,Nr._bubble=ri,Nr.get=di,Nr.milliseconds=mr,Nr.seconds=Mr,Nr.minutes=gr,Nr.hours=pr,Nr.days=_r,Nr.weeks=Mi,Nr.months=fr,Nr.years=yr,Nr.humanize=yi,Nr.toISOString=Li,Nr.toString=Li,Nr.toJSON=Li,Nr.locale=fn,Nr.localeData=yn,Nr.toIsoString=b("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Li),Nr.lang=qa,Z("X",0,0,"unix"),Z("x",0,0,"valueOf"),K("x",Ji),K("X",ea),ne("X",function(e,t,n){n._d=new Date(1e3*parseFloat(e,10))}),ne("x",function(e,t,n){n._d=new Date(D(e))}),t.version="2.18.1",function(e){hi=e}(ht),t.fn=tr,t.min=Nt,t.max=Tt,t.now=Ga,t.utc=m,t.unix=Qn,t.months=qn,t.isDate=l,t.locale=Xe,t.invalid=_,t.duration=Ht,t.isMoment=L,t.weekdays=Jn,t.parseZone=Fn,t.localeData=nt,t.isDuration=vt,t.monthsShort=$n,t.weekdaysMin=Xn,t.defineLocale=et,t.updateLocale=tt,t.locales=it,t.weekdaysShort=Kn,t.normalizeUnits=Y,t.relativeTimeRounding=_i,t.relativeTimeThreshold=fi,t.calendarFormat=Jt,t.prototype=tr,t})}).call(t,n(191)(e))},function(e,t){e.exports=function(e,t,n,i,a){var r,s=e=e||{},o=typeof e.default;"object"!==o&&"function"!==o||(r=e,s=e.default);var l="function"==typeof s?s.options:s;t&&(l.render=t.render,l.staticRenderFns=t.staticRenderFns),i&&(l._scopeId=i);var c;if(a?(c=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),n&&n.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},l._ssrRegister=c):n&&(c=n),c){var u=l.functional,d=u?l.render:l.beforeCreate;u?l.render=function(e,t){return c.call(t),d(e,t)}:l.beforeCreate=d?[].concat(d,c):[c]}return{esModule:r,exports:s,options:l}}},function(e,t){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){var i=n(36)("wks"),a=n(22),r=n(5).Symbol,s="function"==typeof r;(e.exports=function(e){return i[e]||(i[e]=s&&r[e]||(s?r:a)("Symbol."+e))}).store=i},function(e,t){var n=e.exports={version:"2.4.0"};"number"==typeof __e&&(__e=n)},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t,n){var i=n(11),a=n(50),r=n(39),s=Object.defineProperty;t.f=n(7)?Object.defineProperty:function(e,t,n){if(i(e),t=r(t,!0),i(n),a)try{return s(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t,n){e.exports=!n(15)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t,n){var i=n(250),a=n(30);e.exports=function(e){return i(a(e))}},function(e,t,n){function i(e){if(e)return a(e)}function a(e){for(var t in i.prototype)e[t]=i.prototype[t];return e}e.exports=i,i.prototype.on=i.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this},i.prototype.once=function(e,t){function n(){this.off(e,n),t.apply(this,arguments)}return n.fn=t,this.on(e,n),this},i.prototype.off=i.prototype.removeListener=i.prototype.removeAllListeners=i.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var n=this._callbacks["$"+e];if(!n)return this;if(1==arguments.length)return delete this._callbacks["$"+e],this;for(var i,a=0;a1?{type:L[a],data:e.substring(1)}:{type:L[a]}:h}var r=new Uint8Array(e),a=r[0],s=m(e,1);return D&&"blob"===n&&(s=new D([s])),{type:L[a],data:s}},t.decodeBase64Packet=function(e,t){var n=L[e.charAt(0)];if(!c)return{type:n,data:{base64:!0,data:e.substr(1)}};var i=c.decode(e.substr(1));return"blob"===t&&D&&(i=new D([i])),{type:n,data:i}},t.encodePayload=function(e,n,i){function a(e){return e.length+":"+e}function r(e,i){t.encodePacket(e,!!s&&n,!1,function(e){i(null,a(e))})}"function"==typeof n&&(i=n,n=null);var s=d(e);return n&&s?D&&!f?t.encodePayloadAsBlob(e,i):t.encodePayloadAsArrayBuffer(e,i):e.length?void l(e,r,function(e,t){return i(t.join(""))}):i("0:")},t.decodePayload=function(e,n,i){if("string"!=typeof e)return t.decodePayloadAsBinary(e,n,i);"function"==typeof n&&(i=n,n=null);var a;if(""===e)return i(h,0,1);for(var r,s,o="",l=0,c=e.length;l0;){for(var s=new Uint8Array(a),o=0===s[0],l="",c=1;255!==s[c];c++){if(l.length>310)return i(h,0,1);l+=s[c]}a=m(a,2+l.length),l=parseInt(l);var u=m(a,0,l);if(o)try{u=String.fromCharCode.apply(null,new Uint8Array(u))}catch(e){var d=new Uint8Array(u);u="";for(var c=0;c=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))}function r(e){var n=this.useColors;if(e[0]=(n?"%c":"")+this.namespace+(n?" %c":" ")+e[0]+(n?"%c ":" ")+"+"+t.humanize(this.diff),n){var i="color: "+this.color;e.splice(1,0,i,"color: inherit");var a=0,r=0;e[0].replace(/%[a-zA-Z%]/g,function(e){"%%"!==e&&(a++,"%c"===e&&(r=a))}),e.splice(r,0,i)}}function s(){return"object"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function o(e){try{null==e?t.storage.removeItem("debug"):t.storage.debug=e}catch(e){}}function l(){var e;try{e=t.storage.debug}catch(e){}return!e&&void 0!==i&&"env"in i&&(e=n.i({NODE_ENV:"production"}).DEBUG),e}t=e.exports=n(281),t.log=s,t.formatArgs=r,t.save=o,t.load=l,t.useColors=a,t.storage="undefined"!=typeof chrome&&void 0!==chrome.storage?chrome.storage.local:function(){try{return window.localStorage}catch(e){}}(),t.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],t.formatters.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}},t.enable(l())}).call(t,n(45))},function(e,t){t.encode=function(e){var t="";for(var n in e)e.hasOwnProperty(n)&&(t.length&&(t+="&"),t+=encodeURIComponent(n)+"="+encodeURIComponent(e[n]));return t},t.decode=function(e){for(var t={},n=e.split("&"),i=0,a=n.length;i=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))}function r(e){var n=this.useColors;if(e[0]=(n?"%c":"")+this.namespace+(n?" %c":" ")+e[0]+(n?"%c ":" ")+"+"+t.humanize(this.diff),n){var i="color: "+this.color;e.splice(1,0,i,"color: inherit");var a=0,r=0;e[0].replace(/%[a-zA-Z%]/g,function(e){"%%"!==e&&(a++,"%c"===e&&(r=a))}),e.splice(r,0,i)}}function s(){return"object"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function o(e){try{null==e?t.storage.removeItem("debug"):t.storage.debug=e}catch(e){}}function l(){var e;try{e=t.storage.debug}catch(e){}return!e&&void 0!==i&&"env"in i&&(e=n.i({NODE_ENV:"production"}).DEBUG),e}t=e.exports=n(490),t.log=s,t.formatArgs=r,t.save=o,t.load=l,t.useColors=a,t.storage="undefined"!=typeof chrome&&void 0!==chrome.storage?chrome.storage.local:function(){try{return window.localStorage}catch(e){}}(),t.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],t.formatters.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}},t.enable(l())}).call(t,n(45))},function(e,t,n){function i(e){n(302)}var a=n(1)(n(216),n(583),i,"data-v-71aabb24",null);e.exports=a.exports},function(e,t,n){"use strict";(function(e){/*! + * Vue.js v2.4.2 + * (c) 2014-2017 Evan You + * Released under the MIT License. + */ +function n(e){return void 0===e||null===e}function i(e){return void 0!==e&&null!==e}function a(e){return!0===e}function r(e){return!1===e}function s(e){return"string"==typeof e||"number"==typeof e||"boolean"==typeof e}function o(e){return null!==e&&"object"==typeof e}function l(e){return"[object Object]"===Ya.call(e)}function c(e){return"[object RegExp]"===Ya.call(e)}function u(e){var t=parseFloat(e);return t>=0&&Math.floor(t)===t&&isFinite(e)}function d(e){return null==e?"":"object"==typeof e?JSON.stringify(e,null,2):String(e)}function m(e){var t=parseFloat(e);return isNaN(t)?e:t}function M(e,t){for(var n=Object.create(null),i=e.split(","),a=0;a-1)return e.splice(n,1)}}function p(e,t){return Ua.call(e,t)}function _(e){var t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}function f(e,t){function n(n){var i=arguments.length;return i?i>1?e.apply(t,arguments):e.call(t,n):e.call(t)}return n._length=e.length,n}function y(e,t){t=t||0;for(var n=e.length-t,i=new Array(n);n--;)i[n]=e[n+t];return i}function L(e,t){for(var n in t)e[n]=t[n];return e}function h(e){for(var t={},n=0;nUr&&kr[n].id>e.id;)n--;kr.splice(n+1,0,e)}else kr.push(e);Pr||(Pr=!0,yr(Ee))}}function Oe(e){Qr.clear(),ke(e,Qr)}function ke(e,t){var n,i,a=Array.isArray(e);if((a||o(e))&&Object.isExtensible(e)){if(e.__ob__){var r=e.__ob__.dep.id;if(t.has(r))return;t.add(r)}if(a)for(n=e.length;n--;)ke(e[n],t);else for(i=Object.keys(e),n=i.length;n--;)ke(e[i[n]],t)}}function ze(e,t,n){Fr.get=function(){return this[t][n]},Fr.set=function(e){this[t][n]=e},Object.defineProperty(e,n,Fr)}function Ye(e){e._watchers=[];var t=e.$options;t.props&&Pe(e,t.props),t.methods&&Fe(e,t.methods),t.data?Re(e):O(e._data={},!0),t.computed&&Be(e,t.computed),t.watch&&t.watch!==ur&&He(e,t.watch)}function Pe(e,t){var n=e.$options.propsData||{},i=e._props={},a=e.$options._propKeys=[],r=!e.$parent;Ir.shouldConvert=r;for(var s in t)!function(r){a.push(r);var s=V(r,t,n,e);k(i,r,s),r in e||ze(e,"_props",r)}(s);Ir.shouldConvert=!0}function Re(e){var t=e.$options.data;t=e._data="function"==typeof t?Ue(t,e):t||{},l(t)||(t={});for(var n=Object.keys(t),i=e.$options.props,a=(e.$options.methods,n.length);a--;){var r=n[a];i&&p(i,r)||I(r)||ze(e,"_data",r)}O(t,!0)}function Ue(e,t){try{return e.call(t)}catch(e){return v(e,t,"data()"),{}}}function Be(e,t){var n=e._computedWatchers=Object.create(null);for(var i in t){var a=t[i],r="function"==typeof a?a:a.get;n[i]=new Gr(e,r||D,D,Hr),i in e||Ge(e,i,a)}}function Ge(e,t,n){"function"==typeof n?(Fr.get=Qe(t),Fr.set=D):(Fr.get=n.get?!1!==n.cache?Qe(t):n.get:D,Fr.set=n.set?n.set:D),Object.defineProperty(e,t,Fr)}function Qe(e){return function(){var t=this._computedWatchers&&this._computedWatchers[e];if(t)return t.dirty&&t.evaluate(),hr.target&&t.depend(),t.value}}function Fe(e,t){e.$options.props;for(var n in t)e[n]=null==t[n]?D:f(t[n],e)}function He(e,t){for(var n in t){var i=t[n];if(Array.isArray(i))for(var a=0;a=0||n.indexOf(e[a])<0)&&i.push(e[a]);return i}return e}function Dt(e){this._init(e)}function Nt(e){e.use=function(e){var t=this._installedPlugins||(this._installedPlugins=[]);if(t.indexOf(e)>-1)return this;var n=y(arguments,1);return n.unshift(this),"function"==typeof e.install?e.install.apply(e,n):"function"==typeof e&&e.apply(null,n),t.push(e),this}}function Tt(e){e.mixin=function(e){return this.options=W(this.options,e),this}}function bt(e){e.cid=0;var t=1;e.extend=function(e){e=e||{};var n=this,i=n.cid,a=e._Ctor||(e._Ctor={});if(a[i])return a[i];var r=e.name||n.options.name,s=function(e){this._init(e)};return s.prototype=Object.create(n.prototype),s.prototype.constructor=s,s.cid=t++,s.options=W(n.options,e),s.super=n,s.options.props&&It(s),s.options.computed&&Ct(s),s.extend=n.extend,s.mixin=n.mixin,s.use=n.use,qa.forEach(function(e){s[e]=n[e]}),r&&(s.options.components[r]=s),s.superOptions=n.options,s.extendOptions=e,s.sealedOptions=L({},s.options),a[i]=s,s}}function It(e){var t=e.options.props;for(var n in t)ze(e.prototype,"_props",n)}function Ct(e){var t=e.options.computed;for(var n in t)Ge(e.prototype,n,t[n])}function wt(e){qa.forEach(function(t){e[t]=function(e,n){return n?("component"===t&&l(n)&&(n.name=n.name||e,n=this.options._base.extend(n)),"directive"===t&&"function"==typeof n&&(n={bind:n,update:n}),this.options[t+"s"][e]=n,n):this.options[t+"s"][e]}})}function vt(e){return e&&(e.Ctor.options.name||e.tag)}function Et(e,t){return Array.isArray(e)?e.indexOf(t)>-1:"string"==typeof e?e.split(",").indexOf(t)>-1:!!c(e)&&e.test(t)}function St(e,t,n){for(var i in e){var a=e[i];if(a){var r=vt(a.componentOptions);r&&!n(r)&&(a!==t&&At(a),e[i]=null)}}}function At(e){e&&e.componentInstance.$destroy()}function xt(e){for(var t=e.data,n=e,a=e;i(a.componentInstance);)a=a.componentInstance._vnode,a.data&&(t=jt(a.data,t));for(;i(n=n.parent);)n.data&&(t=jt(t,n.data));return Ot(t.staticClass,t.class)}function jt(e,t){return{staticClass:kt(e.staticClass,t.staticClass),class:i(e.class)?[e.class,t.class]:t.class}}function Ot(e,t){return i(e)||i(t)?kt(e,zt(t)):""}function kt(e,t){return e?t?e+" "+t:e:t||""}function zt(e){return Array.isArray(e)?Yt(e):o(e)?Pt(e):"string"==typeof e?e:""}function Yt(e){for(var t,n="",a=0,r=e.length;a-1?Ts[e]=t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:Ts[e]=/HTMLUnknownElement/.test(t.toString())}function Bt(e){if("string"==typeof e){var t=document.querySelector(e);return t||document.createElement("div")}return e}function Gt(e,t){var n=document.createElement(e);return"select"!==e?n:(t.data&&t.data.attrs&&void 0!==t.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n)}function Qt(e,t){return document.createElementNS(ys[e],t)}function Ft(e){return document.createTextNode(e)}function Ht(e){return document.createComment(e)}function Wt(e,t,n){e.insertBefore(t,n)}function Zt(e,t){e.removeChild(t)}function Vt(e,t){e.appendChild(t)}function qt(e){return e.parentNode}function $t(e){return e.nextSibling}function Jt(e){return e.tagName}function Kt(e,t){e.textContent=t}function Xt(e,t,n){e.setAttribute(t,n)}function en(e,t){var n=e.data.ref;if(n){var i=e.context,a=e.componentInstance||e.elm,r=i.$refs;t?Array.isArray(r[n])?g(r[n],a):r[n]===a&&(r[n]=void 0):e.data.refInFor?Array.isArray(r[n])?r[n].indexOf(a)<0&&r[n].push(a):r[n]=[a]:r[n]=a}}function tn(e,t){return e.key===t.key&&(e.tag===t.tag&&e.isComment===t.isComment&&i(e.data)===i(t.data)&&nn(e,t)||a(e.isAsyncPlaceholder)&&e.asyncFactory===t.asyncFactory&&n(t.asyncFactory.error))}function nn(e,t){if("input"!==e.tag)return!0;var n;return(i(n=e.data)&&i(n=n.attrs)&&n.type)===(i(n=t.data)&&i(n=n.attrs)&&n.type)}function an(e,t,n){var a,r,s={};for(a=t;a<=n;++a)r=e[a].key,i(r)&&(s[r]=a);return s}function rn(e,t){(e.data.directives||t.data.directives)&&sn(e,t)}function sn(e,t){var n,i,a,r=e===Cs,s=t===Cs,o=on(e.data.directives,e.context),l=on(t.data.directives,t.context),c=[],u=[];for(n in l)i=o[n],a=l[n],i?(a.oldValue=i.value,cn(a,"update",t,e),a.def&&a.def.componentUpdated&&u.push(a)):(cn(a,"bind",t,e),a.def&&a.def.inserted&&c.push(a));if(c.length){var d=function(){for(var n=0;n=0&&" "===(_=e.charAt(p));p--);_&&js.test(_)||(u=!0)}}else void 0===r?(g=a+1,r=e.slice(0,a).trim()):t();if(void 0===r?r=e.slice(0,a).trim():0!==g&&t(),s)for(a=0;a=es}function vn(e){return 34===e||39===e}function En(e){var t=1;for(as=is;!wn();)if(e=Cn(),vn(e))Sn(e);else if(91===e&&t++,93===e&&t--,0===t){rs=is;break}}function Sn(e){for(var t=e;!wn()&&(e=Cn())!==t;);}function An(e,t,n){ss=n;var i=t.value,a=t.modifiers,r=e.tag,s=e.attrsMap.type;if(e.component)return Tn(e,i,a),!1;if("select"===r)On(e,i,a);else if("input"===r&&"checkbox"===s)xn(e,i,a);else if("input"===r&&"radio"===s)jn(e,i,a);else if("input"===r||"textarea"===r)kn(e,i,a);else if(!Ja.isReservedTag(r))return Tn(e,i,a),!1;return!0}function xn(e,t,n){var i=n&&n.number,a=Dn(e,"value")||"null",r=Dn(e,"true-value")||"true",s=Dn(e,"false-value")||"false";fn(e,"checked","Array.isArray("+t+")?_i("+t+","+a+")>-1"+("true"===r?":("+t+")":":_q("+t+","+r+")")),hn(e,ks,"var $$a="+t+",$$el=$event.target,$$c=$$el.checked?("+r+"):("+s+");if(Array.isArray($$a)){var $$v="+(i?"_n("+a+")":a)+",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&("+t+"=$$a.concat($$v))}else{$$i>-1&&("+t+"=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{"+bn(t,"$$c")+"}",null,!0)}function jn(e,t,n){var i=n&&n.number,a=Dn(e,"value")||"null";a=i?"_n("+a+")":a,fn(e,"checked","_q("+t+","+a+")"),hn(e,ks,bn(t,a),null,!0)}function On(e,t,n){var i=n&&n.number,a='Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = "_value" in o ? o._value : o.value;return '+(i?"_n(val)":"val")+"})",r="var $$selectedVal = "+a+";";r=r+" "+bn(t,"$event.target.multiple ? $$selectedVal : $$selectedVal[0]"),hn(e,"change",r,null,!0)}function kn(e,t,n){var i=e.attrsMap.type,a=n||{},r=a.lazy,s=a.number,o=a.trim,l=!r&&"range"!==i,c=r?"change":"range"===i?Os:"input",u="$event.target.value";o&&(u="$event.target.value.trim()"),s&&(u="_n("+u+")");var d=bn(t,u);l&&(d="if($event.target.composing)return;"+d),fn(e,"value","("+t+")"),hn(e,c,d,null,!0),(o||s)&&hn(e,"blur","$forceUpdate()")}function zn(e){var t;i(e[Os])&&(t=ar?"change":"input",e[t]=[].concat(e[Os],e[t]||[]),delete e[Os]),i(e[ks])&&(t=cr?"click":"change",e[t]=[].concat(e[ks],e[t]||[]),delete e[ks])}function Yn(e,t,n,i,a){if(n){var r=t,s=os;t=function(n){null!==(1===arguments.length?r(n):r.apply(null,arguments))&&Pn(e,t,i,s)}}os.addEventListener(e,t,dr?{capture:i,passive:a}:i)}function Pn(e,t,n,i){(i||os).removeEventListener(e,t,n)}function Rn(e,t){if(!n(e.data.on)||!n(t.data.on)){var i=t.data.on||{},a=e.data.on||{};os=t.elm,zn(i),ne(i,a,Yn,Pn,t.context)}}function Un(e,t){if(!n(e.data.domProps)||!n(t.data.domProps)){var a,r,s=t.elm,o=e.data.domProps||{},l=t.data.domProps||{};i(l.__ob__)&&(l=t.data.domProps=L({},l));for(a in o)n(l[a])&&(s[a]="");for(a in l)if(r=l[a],"textContent"!==a&&"innerHTML"!==a||(t.children&&(t.children.length=0),r!==o[a]))if("value"===a){s._value=r;var c=n(r)?"":String(r);Bn(s,t,c)&&(s.value=c)}else s[a]=r}}function Bn(e,t,n){return!e.composing&&("option"===t.tag||Gn(e,n)||Qn(e,n))}function Gn(e,t){var n=!0;try{n=document.activeElement!==e}catch(e){}return n&&e.value!==t}function Qn(e,t){var n=e.value,a=e._vModifiers;return i(a)&&a.number?m(n)!==m(t):i(a)&&a.trim?n.trim()!==t.trim():n!==t}function Fn(e){var t=Hn(e.style);return e.staticStyle?L(e.staticStyle,t):t}function Hn(e){return Array.isArray(e)?h(e):"string"==typeof e?Ps(e):e}function Wn(e,t){var n,i={};if(t)for(var a=e;a.componentInstance;)a=a.componentInstance._vnode,a.data&&(n=Fn(a.data))&&L(i,n);(n=Fn(e.data))&&L(i,n);for(var r=e;r=r.parent;)r.data&&(n=Fn(r.data))&&L(i,n);return i}function Zn(e,t){var a=t.data,r=e.data;if(!(n(a.staticStyle)&&n(a.style)&&n(r.staticStyle)&&n(r.style))){var s,o,l=t.elm,c=r.staticStyle,u=r.normalizedStyle||r.style||{},d=c||u,m=Hn(t.data.style)||{};t.data.normalizedStyle=i(m.__ob__)?L({},m):m;var M=Wn(t,!0);for(o in d)n(M[o])&&Bs(l,o,"");for(o in M)(s=M[o])!==d[o]&&Bs(l,o,null==s?"":s)}}function Vn(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(/\s+/).forEach(function(t){return e.classList.add(t)}):e.classList.add(t);else{var n=" "+(e.getAttribute("class")||"")+" ";n.indexOf(" "+t+" ")<0&&e.setAttribute("class",(n+t).trim())}}function qn(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(/\s+/).forEach(function(t){return e.classList.remove(t)}):e.classList.remove(t),e.classList.length||e.removeAttribute("class");else{for(var n=" "+(e.getAttribute("class")||"")+" ",i=" "+t+" ";n.indexOf(i)>=0;)n=n.replace(i," ");n=n.trim(),n?e.setAttribute("class",n):e.removeAttribute("class")}}function $n(e){if(e){if("object"==typeof e){var t={};return!1!==e.css&&L(t,Hs(e.name||"v")),L(t,e),t}return"string"==typeof e?Hs(e):void 0}}function Jn(e){Xs(function(){Xs(e)})}function Kn(e,t){var n=e._transitionClasses||(e._transitionClasses=[]);n.indexOf(t)<0&&(n.push(t),Vn(e,t))}function Xn(e,t){e._transitionClasses&&g(e._transitionClasses,t),qn(e,t)}function ei(e,t,n){var i=ti(e,t),a=i.type,r=i.timeout,s=i.propCount;if(!a)return n();var o=a===Zs?$s:Ks,l=0,c=function(){e.removeEventListener(o,u),n()},u=function(t){t.target===e&&++l>=s&&c()};setTimeout(function(){l0&&(n=Zs,u=s,d=r.length):t===Vs?c>0&&(n=Vs,u=c,d=l.length):(u=Math.max(s,c),n=u>0?s>c?Zs:Vs:null,d=n?n===Zs?r.length:l.length:0),{type:n,timeout:u,propCount:d,hasTransform:n===Zs&&eo.test(i[qs+"Property"])}}function ni(e,t){for(;e.length1}function li(e,t){!0!==t.data.show&&ai(t)}function ci(e,t,n){var i=t.value,a=e.multiple;if(!a||Array.isArray(i)){for(var r,s,o=0,l=e.options.length;o-1,s.selected!==r&&(s.selected=r);else if(N(ui(s),i))return void(e.selectedIndex!==o&&(e.selectedIndex=o));a||(e.selectedIndex=-1)}}function ui(e){return"_value"in e?e._value:e.value}function di(e){e.target.composing=!0}function mi(e){e.target.composing&&(e.target.composing=!1,Mi(e.target,"input"))}function Mi(e,t){var n=document.createEvent("HTMLEvents");n.initEvent(t,!0,!0),e.dispatchEvent(n)}function gi(e){return!e.componentInstance||e.data&&e.data.transition?e:gi(e.componentInstance._vnode)}function pi(e){var t=e&&e.componentOptions;return t&&t.Ctor.options.abstract?pi(Me(t.children)):e}function _i(e){var t={},n=e.$options;for(var i in n.propsData)t[i]=e[i];var a=n._parentListeners;for(var r in a)t[Ga(r)]=a[r];return t}function fi(e,t){if(/\d-keep-alive$/.test(t.tag))return e("keep-alive",{props:t.componentOptions.propsData})}function yi(e){for(;e=e.parent;)if(e.data.transition)return!0}function Li(e,t){return t.key===e.key&&t.tag===e.tag}function hi(e){return e.isComment&&e.asyncFactory}function Di(e){e.elm._moveCb&&e.elm._moveCb(),e.elm._enterCb&&e.elm._enterCb()}function Ni(e){e.data.newPos=e.elm.getBoundingClientRect()}function Ti(e){var t=e.data.pos,n=e.data.newPos,i=t.left-n.left,a=t.top-n.top;if(i||a){e.data.moved=!0;var r=e.elm.style;r.transform=r.WebkitTransform="translate("+i+"px,"+a+"px)",r.transitionDuration="0s"}}function bi(e,t){var n=t?Lo(t):fo;if(n.test(e)){for(var i,a,r=[],s=n.lastIndex=0;i=n.exec(e);){a=i.index,a>s&&r.push(JSON.stringify(e.slice(s,a)));var o=Mn(i[1].trim());r.push("_s("+o+")"),s=a+i[0].length}return s=0&&s[a].lowerCasedTag!==o;a--);else a=0;if(a>=0){for(var l=s.length-1;l>=a;l--)t.end&&t.end(s[l].tag,n,i);s.length=a,r=a&&s[a-1].tag}else"br"===o?t.start&&t.start(e,[],!0,n,i):"p"===o&&(t.start&&t.start(e,[],!1,n,i),t.end&&t.end(e,n,i))}for(var a,r,s=[],o=t.expectHTML,l=t.isUnaryTag||Wa,c=t.canBeLeftOpenTag||Wa,u=0;e;){if(a=e,r&&Ko(r)){var d=0,m=r.toLowerCase(),M=Xo[m]||(Xo[m]=new RegExp("([\\s\\S]*?)(]*>)","i")),g=e.replace(M,function(e,n,i){return d=i.length,Ko(m)||"noscript"===m||(n=n.replace(//g,"$1").replace(//g,"$1")),al(m,n)&&(n=n.slice(1)),t.chars&&t.chars(n),""});u+=e.length-g.length,e=g,i(m,u-d,u)}else{var p=e.indexOf("<");if(0===p){if(Ro.test(e)){var _=e.indexOf("--\x3e");if(_>=0){t.shouldKeepComment&&t.comment(e.substring(4,_)),n(_+3);continue}}if(Uo.test(e)){var f=e.indexOf("]>");if(f>=0){n(f+2);continue}}var y=e.match(Po);if(y){n(y[0].length);continue}var L=e.match(Yo);if(L){var h=u;n(L[0].length),i(L[1],h,u);continue}var D=function(){var t=e.match(ko);if(t){var i={tagName:t[1],attrs:[],start:u};n(t[0].length);for(var a,r;!(a=e.match(zo))&&(r=e.match(xo));)n(r[0].length),i.attrs.push(r);if(a)return i.unarySlash=a[1],n(a[0].length),i.end=u,i}}();if(D){!function(e){var n=e.tagName,a=e.unarySlash;o&&("p"===r&&Co(n)&&i(r),c(n)&&r===n&&i(n));for(var u=l(n)||!!a,d=e.attrs.length,m=new Array(d),M=0;M=0){for(T=e.slice(p);!(Yo.test(T)||ko.test(T)||Ro.test(T)||Uo.test(T)||(b=T.indexOf("<",1))<0);)p+=b,T=e.slice(p);N=e.substring(0,p),n(p)}p<0&&(N=e,e=""),t.chars&&N&&t.chars(N)}if(e===a){t.chars&&t.chars(e);break}}i()}function ji(e,t){function n(e){e.pre&&(o=!1),Zo(e.tag)&&(l=!1)}Go=t.warn||pn,Zo=t.isPreTag||Wa,Vo=t.mustUseProp||Wa,qo=t.getTagNamespace||Wa,Fo=_n(t.modules,"transformNode"),Ho=_n(t.modules,"preTransformNode"),Wo=_n(t.modules,"postTransformNode"),Qo=t.delimiters;var i,a,r=[],s=!1!==t.preserveWhitespace,o=!1,l=!1;return xi(e,{warn:Go,expectHTML:t.expectHTML,isUnaryTag:t.isUnaryTag,canBeLeftOpenTag:t.canBeLeftOpenTag,shouldDecodeNewlines:t.shouldDecodeNewlines,shouldKeepComment:t.comments,start:function(e,s,c){var u=a&&a.ns||qo(e);ar&&"svg"===u&&(s=Ki(s));var d={type:1,tag:e,attrsList:s,attrsMap:qi(s),parent:a,children:[]};u&&(d.ns=u),Ji(d)&&!pr()&&(d.forbidden=!0);for(var m=0;m0,sr=ir&&ir.indexOf("edge/")>0,or=ir&&ir.indexOf("android")>0,lr=ir&&/iphone|ipad|ipod|ios/.test(ir),cr=ir&&/chrome\/\d+/.test(ir)&&!sr,ur={}.watch,dr=!1;if(nr)try{var mr={};Object.defineProperty(mr,"passive",{get:function(){dr=!0}}),window.addEventListener("test-passive",null,mr)}catch(e){}var Mr,gr,pr=function(){return void 0===Mr&&(Mr=!nr&&void 0!==e&&"server"===e.process.env.VUE_ENV),Mr},_r=nr&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__,fr="undefined"!=typeof Symbol&&E(Symbol)&&"undefined"!=typeof Reflect&&E(Reflect.ownKeys),yr=function(){function e(){i=!1;var e=n.slice(0);n.length=0;for(var t=0;t1?y(n):n;for(var i=y(arguments,1),a=0,r=n.length;a1&&(t[n[0].trim()]=n[1].trim())}}),t}),Rs=/^--/,Us=/\s*!important$/,Bs=function(e,t,n){if(Rs.test(t))e.style.setProperty(t,n);else if(Us.test(n))e.style.setProperty(t,n.replace(Us,""),"important");else{var i=Qs(t);if(Array.isArray(n))for(var a=0,r=n.length;ag?(d=n(a[f+1])?null:a[f+1].elm,y(e,d,a,M,f,r)):M>f&&h(e,t,m,g)}function T(e,t,r,s){if(e!==t){var o=t.elm=e.elm;if(a(e.isAsyncPlaceholder))return void(i(t.asyncFactory.resolved)?I(e.elm,t,r):t.isAsyncPlaceholder=!0);if(a(t.isStatic)&&a(e.isStatic)&&t.key===e.key&&(a(t.isCloned)||a(t.isOnce)))return void(t.componentInstance=e.componentInstance);var l,c=t.data;i(c)&&i(l=c.hook)&&i(l=l.prepatch)&&l(e,t);var u=e.children,d=t.children;if(i(c)&&p(t)){for(l=0;l',n.innerHTML.indexOf(t)>0}("\n"," "),fo=/\{\{((?:.|\n)+?)\}\}/g,yo=/[-.*+?^${}()|[\]\/\\]/g,Lo=_(function(e){var t=e[0].replace(yo,"\\$&"),n=e[1].replace(yo,"\\$&");return new RegExp(t+"((?:.|\\n)+?)"+n,"g")}),ho={staticKeys:["staticClass"],transformNode:Ii,genData:Ci},Do={staticKeys:["staticStyle"],transformNode:wi,genData:vi},No=[ho,Do],To={model:An,text:Ei,html:Si},bo=M("area,base,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr"),Io=M("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source"),Co=M("address,article,aside,base,blockquote,body,caption,col,colgroup,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,title,tr,track"),wo={expectHTML:!0,modules:No,directives:To,isPreTag:Ds,isUnaryTag:bo,mustUseProp:ds,canBeLeftOpenTag:Io,isReservedTag:Ns,getTagNamespace:Rt,staticKeys:function(e){return e.reduce(function(e,t){return e.concat(t.staticKeys||[])},[]).join(",")}(No)},vo={decode:function(e){return po=po||document.createElement("div"),po.innerHTML=e,po.textContent}},Eo=/([^\s"'<>\/=]+)/,So=/(?:=)/,Ao=[/"([^"]*)"+/.source,/'([^']*)'+/.source,/([^\s"'=<>`]+)/.source],xo=new RegExp("^\\s*"+Eo.source+"(?:\\s*("+So.source+")\\s*(?:"+Ao.join("|")+"))?"),jo="[a-zA-Z_][\\w\\-\\.]*",Oo="((?:"+jo+"\\:)?"+jo+")",ko=new RegExp("^<"+Oo),zo=/^\s*(\/?)>/,Yo=new RegExp("^<\\/"+Oo+"[^>]*>"),Po=/^]+>/i,Ro=/^\n// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n// +0200, so we adjust the time as needed, to be valid.\n//\n// Keeping the time actually adds/subtracts (one hour)\n// from the actual represented time. That is why we call updateOffset\n// a second time. In case it wants us to change the offset again\n// _changeInProgress == true case, then we have to adjust, because\n// there is no such time in the given timezone.\nfunction getSetOffset (input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(this, createDuration(input - offset, 'm'), 1, false);\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n}\n\nfunction getSetZone (input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n}\n\nfunction setOffsetToUTC (keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n}\n\nfunction setOffsetToLocal (keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n}\n\nfunction setOffsetToParsedOffset () {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n }\n else {\n this.utcOffset(0, true);\n }\n }\n return this;\n}\n\nfunction hasAlignedHourOffset (input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n}\n\nfunction isDaylightSavingTime () {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n}\n\nfunction isDaylightSavingTimeShifted () {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {};\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n var other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = this.isValid() &&\n compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n}\n\nfunction isLocal () {\n return this.isValid() ? !this._isUTC : false;\n}\n\nfunction isUtcOffset () {\n return this.isValid() ? this._isUTC : false;\n}\n\nfunction isUtc () {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n}\n\n// ASP.NET json date format regex\nvar aspNetRegex = /^(\\-)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/;\n\n// from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n// somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n// and further modified to allow for strings containing both week and day\nvar isoRegex = /^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;\n\nfunction createDuration (input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms : input._milliseconds,\n d : input._days,\n M : input._months\n };\n } else if (isNumber(input)) {\n duration = {};\n if (key) {\n duration[key] = input;\n } else {\n duration.milliseconds = input;\n }\n } else if (!!(match = aspNetRegex.exec(input))) {\n sign = (match[1] === '-') ? -1 : 1;\n duration = {\n y : 0,\n d : toInt(match[DATE]) * sign,\n h : toInt(match[HOUR]) * sign,\n m : toInt(match[MINUTE]) * sign,\n s : toInt(match[SECOND]) * sign,\n ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match\n };\n } else if (!!(match = isoRegex.exec(input))) {\n sign = (match[1] === '-') ? -1 : 1;\n duration = {\n y : parseIso(match[2], sign),\n M : parseIso(match[3], sign),\n w : parseIso(match[4], sign),\n d : parseIso(match[5], sign),\n h : parseIso(match[6], sign),\n m : parseIso(match[7], sign),\n s : parseIso(match[8], sign)\n };\n } else if (duration == null) {// checks for null or undefined\n duration = {};\n } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {\n diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n return ret;\n}\n\ncreateDuration.fn = Duration.prototype;\ncreateDuration.invalid = createInvalid$1;\n\nfunction parseIso (inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n}\n\nfunction positiveMomentsDifference(base, other) {\n var res = {milliseconds: 0, months: 0};\n\n res.months = other.month() - base.month() +\n (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +(base.clone().add(res.months, 'M'));\n\n return res;\n}\n\nfunction momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return {milliseconds: 0, months: 0};\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n}\n\n// TODO: remove 'name' arg after deprecation is removed\nfunction createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n tmp = val; val = period; period = tmp;\n }\n\n val = typeof val === 'string' ? +val : val;\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n}\n\nfunction addSubtract (mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n}\n\nvar add = createAdder(1, 'add');\nvar subtract = createAdder(-1, 'subtract');\n\nfunction getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6 ? 'sameElse' :\n diff < -1 ? 'lastWeek' :\n diff < 0 ? 'lastDay' :\n diff < 1 ? 'sameDay' :\n diff < 2 ? 'nextDay' :\n diff < 7 ? 'nextWeek' : 'sameElse';\n}\n\nfunction calendar$1 (time, formats) {\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse';\n\n var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n\n return this.format(output || this.localeData().calendar(format, this, createLocal(now)));\n}\n\nfunction clone () {\n return new Moment(this);\n}\n\nfunction isAfter (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n}\n\nfunction isBefore (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n}\n\nfunction isBetween (from, to, units, inclusivity) {\n inclusivity = inclusivity || '()';\n return (inclusivity[0] === '(' ? this.isAfter(from, units) : !this.isBefore(from, units)) &&\n (inclusivity[1] === ')' ? this.isBefore(to, units) : !this.isAfter(to, units));\n}\n\nfunction isSame (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units || 'millisecond');\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();\n }\n}\n\nfunction isSameOrAfter (input, units) {\n return this.isSame(input, units) || this.isAfter(input,units);\n}\n\nfunction isSameOrBefore (input, units) {\n return this.isSame(input, units) || this.isBefore(input,units);\n}\n\nfunction diff (input, units, asFloat) {\n var that,\n zoneDelta,\n delta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n if (units === 'year' || units === 'month' || units === 'quarter') {\n output = monthDiff(this, that);\n if (units === 'quarter') {\n output = output / 3;\n } else if (units === 'year') {\n output = output / 12;\n }\n } else {\n delta = this - that;\n output = units === 'second' ? delta / 1e3 : // 1000\n units === 'minute' ? delta / 6e4 : // 1000 * 60\n units === 'hour' ? delta / 36e5 : // 1000 * 60 * 60\n units === 'day' ? (delta - zoneDelta) / 864e5 : // 1000 * 60 * 60 * 24, negate dst\n units === 'week' ? (delta - zoneDelta) / 6048e5 : // 1000 * 60 * 60 * 24 * 7, negate dst\n delta;\n }\n return asFloat ? output : absFloor(output);\n}\n\nfunction monthDiff (a, b) {\n // difference in months\n var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2, adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n}\n\nhooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\nhooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\nfunction toString () {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n}\n\nfunction toISOString() {\n if (!this.isValid()) {\n return null;\n }\n var m = this.clone().utc();\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]');\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n return this.toDate().toISOString();\n }\n return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]');\n}\n\n/**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\nfunction inspect () {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment';\n var zone = '';\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n var prefix = '[' + func + '(\"]';\n var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY';\n var datetime = '-MM-DD[T]HH:mm:ss.SSS';\n var suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n}\n\nfunction format (inputString) {\n if (!inputString) {\n inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n}\n\nfunction from (time, withoutSuffix) {\n if (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n createLocal(time).isValid())) {\n return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n}\n\nfunction fromNow (withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n}\n\nfunction to (time, withoutSuffix) {\n if (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n createLocal(time).isValid())) {\n return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n}\n\nfunction toNow (withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n}\n\n// If passed a locale key, it will set the locale for this\n// instance. Otherwise, it will return the locale configuration\n// variables for this instance.\nfunction locale (key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n}\n\nvar lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n);\n\nfunction localeData () {\n return this._locale;\n}\n\nfunction startOf (units) {\n units = normalizeUnits(units);\n // the following switch intentionally omits break keywords\n // to utilize falling through the cases.\n switch (units) {\n case 'year':\n this.month(0);\n /* falls through */\n case 'quarter':\n case 'month':\n this.date(1);\n /* falls through */\n case 'week':\n case 'isoWeek':\n case 'day':\n case 'date':\n this.hours(0);\n /* falls through */\n case 'hour':\n this.minutes(0);\n /* falls through */\n case 'minute':\n this.seconds(0);\n /* falls through */\n case 'second':\n this.milliseconds(0);\n }\n\n // weeks are a special case\n if (units === 'week') {\n this.weekday(0);\n }\n if (units === 'isoWeek') {\n this.isoWeekday(1);\n }\n\n // quarters are also special\n if (units === 'quarter') {\n this.month(Math.floor(this.month() / 3) * 3);\n }\n\n return this;\n}\n\nfunction endOf (units) {\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond') {\n return this;\n }\n\n // 'date' is an alias for 'day', so it should be considered as such.\n if (units === 'date') {\n units = 'day';\n }\n\n return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms');\n}\n\nfunction valueOf () {\n return this._d.valueOf() - ((this._offset || 0) * 60000);\n}\n\nfunction unix () {\n return Math.floor(this.valueOf() / 1000);\n}\n\nfunction toDate () {\n return new Date(this.valueOf());\n}\n\nfunction toArray () {\n var m = this;\n return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\n}\n\nfunction toObject () {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds()\n };\n}\n\nfunction toJSON () {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n}\n\nfunction isValid$2 () {\n return isValid(this);\n}\n\nfunction parsingFlags () {\n return extend({}, getParsingFlags(this));\n}\n\nfunction invalidAt () {\n return getParsingFlags(this).overflow;\n}\n\nfunction creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict\n };\n}\n\n// FORMATTING\n\naddFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n});\n\naddFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n});\n\nfunction addWeekYearFormatToken (token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n}\n\naddWeekYearFormatToken('gggg', 'weekYear');\naddWeekYearFormatToken('ggggg', 'weekYear');\naddWeekYearFormatToken('GGGG', 'isoWeekYear');\naddWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n// ALIASES\n\naddUnitAlias('weekYear', 'gg');\naddUnitAlias('isoWeekYear', 'GG');\n\n// PRIORITY\n\naddUnitPriority('weekYear', 1);\naddUnitPriority('isoWeekYear', 1);\n\n\n// PARSING\n\naddRegexToken('G', matchSigned);\naddRegexToken('g', matchSigned);\naddRegexToken('GG', match1to2, match2);\naddRegexToken('gg', match1to2, match2);\naddRegexToken('GGGG', match1to4, match4);\naddRegexToken('gggg', match1to4, match4);\naddRegexToken('GGGGG', match1to6, match6);\naddRegexToken('ggggg', match1to6, match6);\n\naddWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n});\n\naddWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n});\n\n// MOMENTS\n\nfunction getSetWeekYear (input) {\n return getSetWeekYearHelper.call(this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy);\n}\n\nfunction getSetISOWeekYear (input) {\n return getSetWeekYearHelper.call(this,\n input, this.isoWeek(), this.isoWeekday(), 1, 4);\n}\n\nfunction getISOWeeksInYear () {\n return weeksInYear(this.year(), 1, 4);\n}\n\nfunction getWeeksInYear () {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n}\n\nfunction getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n}\n\nfunction setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n}\n\n// FORMATTING\n\naddFormatToken('Q', 0, 'Qo', 'quarter');\n\n// ALIASES\n\naddUnitAlias('quarter', 'Q');\n\n// PRIORITY\n\naddUnitPriority('quarter', 7);\n\n// PARSING\n\naddRegexToken('Q', match1);\naddParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n});\n\n// MOMENTS\n\nfunction getSetQuarter (input) {\n return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n}\n\n// FORMATTING\n\naddFormatToken('D', ['DD', 2], 'Do', 'date');\n\n// ALIASES\n\naddUnitAlias('date', 'D');\n\n// PRIOROITY\naddUnitPriority('date', 9);\n\n// PARSING\n\naddRegexToken('D', match1to2);\naddRegexToken('DD', match1to2, match2);\naddRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict ?\n (locale._dayOfMonthOrdinalParse || locale._ordinalParse) :\n locale._dayOfMonthOrdinalParseLenient;\n});\n\naddParseToken(['D', 'DD'], DATE);\naddParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0], 10);\n});\n\n// MOMENTS\n\nvar getSetDayOfMonth = makeGetSet('Date', true);\n\n// FORMATTING\n\naddFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n// ALIASES\n\naddUnitAlias('dayOfYear', 'DDD');\n\n// PRIORITY\naddUnitPriority('dayOfYear', 4);\n\n// PARSING\n\naddRegexToken('DDD', match1to3);\naddRegexToken('DDDD', match3);\naddParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n});\n\n// HELPERS\n\n// MOMENTS\n\nfunction getSetDayOfYear (input) {\n var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;\n return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');\n}\n\n// FORMATTING\n\naddFormatToken('m', ['mm', 2], 0, 'minute');\n\n// ALIASES\n\naddUnitAlias('minute', 'm');\n\n// PRIORITY\n\naddUnitPriority('minute', 14);\n\n// PARSING\n\naddRegexToken('m', match1to2);\naddRegexToken('mm', match1to2, match2);\naddParseToken(['m', 'mm'], MINUTE);\n\n// MOMENTS\n\nvar getSetMinute = makeGetSet('Minutes', false);\n\n// FORMATTING\n\naddFormatToken('s', ['ss', 2], 0, 'second');\n\n// ALIASES\n\naddUnitAlias('second', 's');\n\n// PRIORITY\n\naddUnitPriority('second', 15);\n\n// PARSING\n\naddRegexToken('s', match1to2);\naddRegexToken('ss', match1to2, match2);\naddParseToken(['s', 'ss'], SECOND);\n\n// MOMENTS\n\nvar getSetSecond = makeGetSet('Seconds', false);\n\n// FORMATTING\n\naddFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n});\n\naddFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n});\n\naddFormatToken(0, ['SSS', 3], 0, 'millisecond');\naddFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n});\naddFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n});\naddFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n});\naddFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n});\naddFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n});\naddFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n});\n\n\n// ALIASES\n\naddUnitAlias('millisecond', 'ms');\n\n// PRIORITY\n\naddUnitPriority('millisecond', 16);\n\n// PARSING\n\naddRegexToken('S', match1to3, match1);\naddRegexToken('SS', match1to3, match2);\naddRegexToken('SSS', match1to3, match3);\n\nvar token;\nfor (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n}\n\nfunction parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n}\n\nfor (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n}\n// MOMENTS\n\nvar getSetMillisecond = makeGetSet('Milliseconds', false);\n\n// FORMATTING\n\naddFormatToken('z', 0, 0, 'zoneAbbr');\naddFormatToken('zz', 0, 0, 'zoneName');\n\n// MOMENTS\n\nfunction getZoneAbbr () {\n return this._isUTC ? 'UTC' : '';\n}\n\nfunction getZoneName () {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n}\n\nvar proto = Moment.prototype;\n\nproto.add = add;\nproto.calendar = calendar$1;\nproto.clone = clone;\nproto.diff = diff;\nproto.endOf = endOf;\nproto.format = format;\nproto.from = from;\nproto.fromNow = fromNow;\nproto.to = to;\nproto.toNow = toNow;\nproto.get = stringGet;\nproto.invalidAt = invalidAt;\nproto.isAfter = isAfter;\nproto.isBefore = isBefore;\nproto.isBetween = isBetween;\nproto.isSame = isSame;\nproto.isSameOrAfter = isSameOrAfter;\nproto.isSameOrBefore = isSameOrBefore;\nproto.isValid = isValid$2;\nproto.lang = lang;\nproto.locale = locale;\nproto.localeData = localeData;\nproto.max = prototypeMax;\nproto.min = prototypeMin;\nproto.parsingFlags = parsingFlags;\nproto.set = stringSet;\nproto.startOf = startOf;\nproto.subtract = subtract;\nproto.toArray = toArray;\nproto.toObject = toObject;\nproto.toDate = toDate;\nproto.toISOString = toISOString;\nproto.inspect = inspect;\nproto.toJSON = toJSON;\nproto.toString = toString;\nproto.unix = unix;\nproto.valueOf = valueOf;\nproto.creationData = creationData;\n\n// Year\nproto.year = getSetYear;\nproto.isLeapYear = getIsLeapYear;\n\n// Week Year\nproto.weekYear = getSetWeekYear;\nproto.isoWeekYear = getSetISOWeekYear;\n\n// Quarter\nproto.quarter = proto.quarters = getSetQuarter;\n\n// Month\nproto.month = getSetMonth;\nproto.daysInMonth = getDaysInMonth;\n\n// Week\nproto.week = proto.weeks = getSetWeek;\nproto.isoWeek = proto.isoWeeks = getSetISOWeek;\nproto.weeksInYear = getWeeksInYear;\nproto.isoWeeksInYear = getISOWeeksInYear;\n\n// Day\nproto.date = getSetDayOfMonth;\nproto.day = proto.days = getSetDayOfWeek;\nproto.weekday = getSetLocaleDayOfWeek;\nproto.isoWeekday = getSetISODayOfWeek;\nproto.dayOfYear = getSetDayOfYear;\n\n// Hour\nproto.hour = proto.hours = getSetHour;\n\n// Minute\nproto.minute = proto.minutes = getSetMinute;\n\n// Second\nproto.second = proto.seconds = getSetSecond;\n\n// Millisecond\nproto.millisecond = proto.milliseconds = getSetMillisecond;\n\n// Offset\nproto.utcOffset = getSetOffset;\nproto.utc = setOffsetToUTC;\nproto.local = setOffsetToLocal;\nproto.parseZone = setOffsetToParsedOffset;\nproto.hasAlignedHourOffset = hasAlignedHourOffset;\nproto.isDST = isDaylightSavingTime;\nproto.isLocal = isLocal;\nproto.isUtcOffset = isUtcOffset;\nproto.isUtc = isUtc;\nproto.isUTC = isUtc;\n\n// Timezone\nproto.zoneAbbr = getZoneAbbr;\nproto.zoneName = getZoneName;\n\n// Deprecations\nproto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\nproto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\nproto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\nproto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);\nproto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);\n\nfunction createUnix (input) {\n return createLocal(input * 1000);\n}\n\nfunction createInZone () {\n return createLocal.apply(null, arguments).parseZone();\n}\n\nfunction preParsePostFormat (string) {\n return string;\n}\n\nvar proto$1 = Locale.prototype;\n\nproto$1.calendar = calendar;\nproto$1.longDateFormat = longDateFormat;\nproto$1.invalidDate = invalidDate;\nproto$1.ordinal = ordinal;\nproto$1.preparse = preParsePostFormat;\nproto$1.postformat = preParsePostFormat;\nproto$1.relativeTime = relativeTime;\nproto$1.pastFuture = pastFuture;\nproto$1.set = set;\n\n// Month\nproto$1.months = localeMonths;\nproto$1.monthsShort = localeMonthsShort;\nproto$1.monthsParse = localeMonthsParse;\nproto$1.monthsRegex = monthsRegex;\nproto$1.monthsShortRegex = monthsShortRegex;\n\n// Week\nproto$1.week = localeWeek;\nproto$1.firstDayOfYear = localeFirstDayOfYear;\nproto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n// Day of Week\nproto$1.weekdays = localeWeekdays;\nproto$1.weekdaysMin = localeWeekdaysMin;\nproto$1.weekdaysShort = localeWeekdaysShort;\nproto$1.weekdaysParse = localeWeekdaysParse;\n\nproto$1.weekdaysRegex = weekdaysRegex;\nproto$1.weekdaysShortRegex = weekdaysShortRegex;\nproto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n// Hours\nproto$1.isPM = localeIsPM;\nproto$1.meridiem = localeMeridiem;\n\nfunction get$1 (format, index, field, setter) {\n var locale = getLocale();\n var utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n}\n\nfunction listMonthsImpl (format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i;\n var out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n}\n\n// ()\n// (5)\n// (fmt, 5)\n// (fmt)\n// (true)\n// (true, 5)\n// (true, fmt, 5)\n// (true, fmt)\nfunction listWeekdaysImpl (localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0;\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n var i;\n var out = [];\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n}\n\nfunction listMonths (format, index) {\n return listMonthsImpl(format, index, 'months');\n}\n\nfunction listMonthsShort (format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n}\n\nfunction listWeekdays (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n}\n\nfunction listWeekdaysShort (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n}\n\nfunction listWeekdaysMin (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n}\n\ngetSetGlobalLocale('en', {\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (toInt(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n }\n});\n\n// Side effect imports\nhooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);\nhooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);\n\nvar mathAbs = Math.abs;\n\nfunction abs () {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n}\n\nfunction addSubtract$1 (duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n}\n\n// supports only 2.0-style add(1, 's') or add(duration)\nfunction add$1 (input, value) {\n return addSubtract$1(this, input, value, 1);\n}\n\n// supports only 2.0-style subtract(1, 's') or subtract(duration)\nfunction subtract$1 (input, value) {\n return addSubtract$1(this, input, value, -1);\n}\n\nfunction absCeil (number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n}\n\nfunction bubble () {\n var milliseconds = this._milliseconds;\n var days = this._days;\n var months = this._months;\n var data = this._data;\n var seconds, minutes, hours, years, monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (!((milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0))) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n}\n\nfunction daysToMonths (days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return days * 4800 / 146097;\n}\n\nfunction monthsToDays (months) {\n // the reverse of daysToMonths\n return months * 146097 / 4800;\n}\n\nfunction as (units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days;\n var months;\n var milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n return units === 'month' ? months : months / 12;\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week' : return days / 7 + milliseconds / 6048e5;\n case 'day' : return days + milliseconds / 864e5;\n case 'hour' : return days * 24 + milliseconds / 36e5;\n case 'minute' : return days * 1440 + milliseconds / 6e4;\n case 'second' : return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond': return Math.floor(days * 864e5) + milliseconds;\n default: throw new Error('Unknown unit ' + units);\n }\n }\n}\n\n// TODO: Use this.as('ms')?\nfunction valueOf$1 () {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n}\n\nfunction makeAs (alias) {\n return function () {\n return this.as(alias);\n };\n}\n\nvar asMilliseconds = makeAs('ms');\nvar asSeconds = makeAs('s');\nvar asMinutes = makeAs('m');\nvar asHours = makeAs('h');\nvar asDays = makeAs('d');\nvar asWeeks = makeAs('w');\nvar asMonths = makeAs('M');\nvar asYears = makeAs('y');\n\nfunction get$2 (units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n}\n\nfunction makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n}\n\nvar milliseconds = makeGetter('milliseconds');\nvar seconds = makeGetter('seconds');\nvar minutes = makeGetter('minutes');\nvar hours = makeGetter('hours');\nvar days = makeGetter('days');\nvar months = makeGetter('months');\nvar years = makeGetter('years');\n\nfunction weeks () {\n return absFloor(this.days() / 7);\n}\n\nvar round = Math.round;\nvar thresholds = {\n ss: 44, // a few seconds to seconds\n s : 45, // seconds to minute\n m : 45, // minutes to hour\n h : 22, // hours to day\n d : 26, // days to month\n M : 11 // months to year\n};\n\n// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\nfunction substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n}\n\nfunction relativeTime$1 (posNegDuration, withoutSuffix, locale) {\n var duration = createDuration(posNegDuration).abs();\n var seconds = round(duration.as('s'));\n var minutes = round(duration.as('m'));\n var hours = round(duration.as('h'));\n var days = round(duration.as('d'));\n var months = round(duration.as('M'));\n var years = round(duration.as('y'));\n\n var a = seconds <= thresholds.ss && ['s', seconds] ||\n seconds < thresholds.s && ['ss', seconds] ||\n minutes <= 1 && ['m'] ||\n minutes < thresholds.m && ['mm', minutes] ||\n hours <= 1 && ['h'] ||\n hours < thresholds.h && ['hh', hours] ||\n days <= 1 && ['d'] ||\n days < thresholds.d && ['dd', days] ||\n months <= 1 && ['M'] ||\n months < thresholds.M && ['MM', months] ||\n years <= 1 && ['y'] || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n}\n\n// This function allows you to set the rounding function for relative time strings\nfunction getSetRelativeTimeRounding (roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof(roundingFunction) === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n}\n\n// This function allows you to set a threshold for relative time strings\nfunction getSetRelativeTimeThreshold (threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n}\n\nfunction humanize (withSuffix) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var locale = this.localeData();\n var output = relativeTime$1(this, !withSuffix, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n}\n\nvar abs$1 = Math.abs;\n\nfunction toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000;\n var days = abs$1(this._days);\n var months = abs$1(this._months);\n var minutes, hours, years;\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n var Y = years;\n var M = months;\n var D = days;\n var h = hours;\n var m = minutes;\n var s = seconds;\n var total = this.asSeconds();\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n return (total < 0 ? '-' : '') +\n 'P' +\n (Y ? Y + 'Y' : '') +\n (M ? M + 'M' : '') +\n (D ? D + 'D' : '') +\n ((h || m || s) ? 'T' : '') +\n (h ? h + 'H' : '') +\n (m ? m + 'M' : '') +\n (s ? s + 'S' : '');\n}\n\nvar proto$2 = Duration.prototype;\n\nproto$2.isValid = isValid$1;\nproto$2.abs = abs;\nproto$2.add = add$1;\nproto$2.subtract = subtract$1;\nproto$2.as = as;\nproto$2.asMilliseconds = asMilliseconds;\nproto$2.asSeconds = asSeconds;\nproto$2.asMinutes = asMinutes;\nproto$2.asHours = asHours;\nproto$2.asDays = asDays;\nproto$2.asWeeks = asWeeks;\nproto$2.asMonths = asMonths;\nproto$2.asYears = asYears;\nproto$2.valueOf = valueOf$1;\nproto$2._bubble = bubble;\nproto$2.get = get$2;\nproto$2.milliseconds = milliseconds;\nproto$2.seconds = seconds;\nproto$2.minutes = minutes;\nproto$2.hours = hours;\nproto$2.days = days;\nproto$2.weeks = weeks;\nproto$2.months = months;\nproto$2.years = years;\nproto$2.humanize = humanize;\nproto$2.toISOString = toISOString$1;\nproto$2.toString = toISOString$1;\nproto$2.toJSON = toISOString$1;\nproto$2.locale = locale;\nproto$2.localeData = localeData;\n\n// Deprecations\nproto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);\nproto$2.lang = lang;\n\n// Side effect imports\n\n// FORMATTING\n\naddFormatToken('X', 0, 0, 'unix');\naddFormatToken('x', 0, 0, 'valueOf');\n\n// PARSING\n\naddRegexToken('x', matchSigned);\naddRegexToken('X', matchTimestamp);\naddParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input, 10) * 1000);\n});\naddParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n});\n\n// Side effect imports\n\n\nhooks.version = '2.18.1';\n\nsetHookCallback(createLocal);\n\nhooks.fn = proto;\nhooks.min = min;\nhooks.max = max;\nhooks.now = now;\nhooks.utc = createUTC;\nhooks.unix = createUnix;\nhooks.months = listMonths;\nhooks.isDate = isDate;\nhooks.locale = getSetGlobalLocale;\nhooks.invalid = createInvalid;\nhooks.duration = createDuration;\nhooks.isMoment = isMoment;\nhooks.weekdays = listWeekdays;\nhooks.parseZone = createInZone;\nhooks.localeData = getLocale;\nhooks.isDuration = isDuration;\nhooks.monthsShort = listMonthsShort;\nhooks.weekdaysMin = listWeekdaysMin;\nhooks.defineLocale = defineLocale;\nhooks.updateLocale = updateLocale;\nhooks.locales = listLocales;\nhooks.weekdaysShort = listWeekdaysShort;\nhooks.normalizeUnits = normalizeUnits;\nhooks.relativeTimeRounding = getSetRelativeTimeRounding;\nhooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\nhooks.calendarFormat = getCalendarFormat;\nhooks.prototype = proto;\n\nreturn hooks;\n\n})));\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(191)(module)))\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n/* globals __VUE_SSR_CONTEXT__ */\n\n// this module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle\n\nmodule.exports = function normalizeComponent (\n rawScriptExports,\n compiledTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */\n) {\n var esModule\n var scriptExports = rawScriptExports = rawScriptExports || {}\n\n // ES6 modules interop\n var type = typeof rawScriptExports.default\n if (type === 'object' || type === 'function') {\n esModule = rawScriptExports\n scriptExports = rawScriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (compiledTemplate) {\n options.render = compiledTemplate.render\n options.staticRenderFns = compiledTemplate.staticRenderFns\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = injectStyles\n }\n\n if (hook) {\n var functional = options.functional\n var existing = functional\n ? options.render\n : options.beforeCreate\n if (!functional) {\n // inject component registration as beforeCreate hook\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n } else {\n // register for functioal component in vue file\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return existing(h, context)\n }\n }\n }\n\n return {\n esModule: esModule,\n exports: scriptExports,\n options: options\n }\n}\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\nvar g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar store = __webpack_require__(36)('wks')\n , uid = __webpack_require__(22)\n , Symbol = __webpack_require__(5).Symbol\n , USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function(name){\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\nvar core = module.exports = {version: '2.4.0'};\nif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(11)\n , IE8_DOM_DEFINE = __webpack_require__(50)\n , toPrimitive = __webpack_require__(39)\n , dP = Object.defineProperty;\n\nexports.f = __webpack_require__(7) ? Object.defineProperty : function defineProperty(O, P, Attributes){\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if(IE8_DOM_DEFINE)try {\n return dP(O, P, Attributes);\n } catch(e){ /* empty */ }\n if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');\n if('value' in Attributes)O[P] = Attributes.value;\n return O;\n};\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(15)(function(){\n return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n});\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function(it, key){\n return hasOwnProperty.call(it, key);\n};\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = __webpack_require__(250)\n , defined = __webpack_require__(30);\nmodule.exports = function(it){\n return IObject(defined(it));\n};\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\r\n/**\r\n * Expose `Emitter`.\r\n */\r\n\r\nif (true) {\r\n module.exports = Emitter;\r\n}\r\n\r\n/**\r\n * Initialize a new `Emitter`.\r\n *\r\n * @api public\r\n */\r\n\r\nfunction Emitter(obj) {\r\n if (obj) return mixin(obj);\r\n};\r\n\r\n/**\r\n * Mixin the emitter properties.\r\n *\r\n * @param {Object} obj\r\n * @return {Object}\r\n * @api private\r\n */\r\n\r\nfunction mixin(obj) {\r\n for (var key in Emitter.prototype) {\r\n obj[key] = Emitter.prototype[key];\r\n }\r\n return obj;\r\n}\r\n\r\n/**\r\n * Listen on the given `event` with `fn`.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.on =\r\nEmitter.prototype.addEventListener = function(event, fn){\r\n this._callbacks = this._callbacks || {};\r\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\r\n .push(fn);\r\n return this;\r\n};\r\n\r\n/**\r\n * Adds an `event` listener that will be invoked a single\r\n * time then automatically removed.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.once = function(event, fn){\r\n function on() {\r\n this.off(event, on);\r\n fn.apply(this, arguments);\r\n }\r\n\r\n on.fn = fn;\r\n this.on(event, on);\r\n return this;\r\n};\r\n\r\n/**\r\n * Remove the given callback for `event` or all\r\n * registered callbacks.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.off =\r\nEmitter.prototype.removeListener =\r\nEmitter.prototype.removeAllListeners =\r\nEmitter.prototype.removeEventListener = function(event, fn){\r\n this._callbacks = this._callbacks || {};\r\n\r\n // all\r\n if (0 == arguments.length) {\r\n this._callbacks = {};\r\n return this;\r\n }\r\n\r\n // specific event\r\n var callbacks = this._callbacks['$' + event];\r\n if (!callbacks) return this;\r\n\r\n // remove all handlers\r\n if (1 == arguments.length) {\r\n delete this._callbacks['$' + event];\r\n return this;\r\n }\r\n\r\n // remove specific handler\r\n var cb;\r\n for (var i = 0; i < callbacks.length; i++) {\r\n cb = callbacks[i];\r\n if (cb === fn || cb.fn === fn) {\r\n callbacks.splice(i, 1);\r\n break;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emit `event` with the given args.\r\n *\r\n * @param {String} event\r\n * @param {Mixed} ...\r\n * @return {Emitter}\r\n */\r\n\r\nEmitter.prototype.emit = function(event){\r\n this._callbacks = this._callbacks || {};\r\n var args = [].slice.call(arguments, 1)\r\n , callbacks = this._callbacks['$' + event];\r\n\r\n if (callbacks) {\r\n callbacks = callbacks.slice(0);\r\n for (var i = 0, len = callbacks.length; i < len; ++i) {\r\n callbacks[i].apply(this, args);\r\n }\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Return array of callbacks for `event`.\r\n *\r\n * @param {String} event\r\n * @return {Array}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.listeners = function(event){\r\n this._callbacks = this._callbacks || {};\r\n return this._callbacks['$' + event] || [];\r\n};\r\n\r\n/**\r\n * Check if this emitter has `event` handlers.\r\n *\r\n * @param {String} event\r\n * @return {Boolean}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.hasListeners = function(event){\r\n return !! this.listeners(event).length;\r\n};\r\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(21);\nmodule.exports = function(it){\n if(!isObject(it))throw TypeError(it + ' is not an object!');\n return it;\n};\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(6)\n , createDesc = __webpack_require__(18);\nmodule.exports = __webpack_require__(7) ? function(object, key, value){\n return dP.f(object, key, createDesc(1, value));\n} : function(object, key, value){\n object[key] = value;\n return object;\n};\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {/**\n * Module dependencies.\n */\n\nvar keys = __webpack_require__(283);\nvar hasBinary = __webpack_require__(62);\nvar sliceBuffer = __webpack_require__(197);\nvar after = __webpack_require__(196);\nvar utf8 = __webpack_require__(284);\n\nvar base64encoder;\nif (global && global.ArrayBuffer) {\n base64encoder = __webpack_require__(234);\n}\n\n/**\n * Check if we are running an android browser. That requires us to use\n * ArrayBuffer with polling transports...\n *\n * http://ghinda.net/jpeg-blob-ajax-android/\n */\n\nvar isAndroid = typeof navigator !== 'undefined' && /Android/i.test(navigator.userAgent);\n\n/**\n * Check if we are running in PhantomJS.\n * Uploading a Blob with PhantomJS does not work correctly, as reported here:\n * https://github.com/ariya/phantomjs/issues/11395\n * @type boolean\n */\nvar isPhantomJS = typeof navigator !== 'undefined' && /PhantomJS/i.test(navigator.userAgent);\n\n/**\n * When true, avoids using Blobs to encode payloads.\n * @type boolean\n */\nvar dontSendBlobs = isAndroid || isPhantomJS;\n\n/**\n * Current protocol version.\n */\n\nexports.protocol = 3;\n\n/**\n * Packet types.\n */\n\nvar packets = exports.packets = {\n open: 0 // non-ws\n , close: 1 // non-ws\n , ping: 2\n , pong: 3\n , message: 4\n , upgrade: 5\n , noop: 6\n};\n\nvar packetslist = keys(packets);\n\n/**\n * Premade error packet.\n */\n\nvar err = { type: 'error', data: 'parser error' };\n\n/**\n * Create a blob api even for blob builder when vendor prefixes exist\n */\n\nvar Blob = __webpack_require__(235);\n\n/**\n * Encodes a packet.\n *\n * [ ]\n *\n * Example:\n *\n * 5hello world\n * 3\n * 4\n *\n * Binary is encoded in an identical principle\n *\n * @api private\n */\n\nexports.encodePacket = function (packet, supportsBinary, utf8encode, callback) {\n if (typeof supportsBinary === 'function') {\n callback = supportsBinary;\n supportsBinary = false;\n }\n\n if (typeof utf8encode === 'function') {\n callback = utf8encode;\n utf8encode = null;\n }\n\n var data = (packet.data === undefined)\n ? undefined\n : packet.data.buffer || packet.data;\n\n if (global.ArrayBuffer && data instanceof ArrayBuffer) {\n return encodeArrayBuffer(packet, supportsBinary, callback);\n } else if (Blob && data instanceof global.Blob) {\n return encodeBlob(packet, supportsBinary, callback);\n }\n\n // might be an object with { base64: true, data: dataAsBase64String }\n if (data && data.base64) {\n return encodeBase64Object(packet, callback);\n }\n\n // Sending data as a utf-8 string\n var encoded = packets[packet.type];\n\n // data fragment is optional\n if (undefined !== packet.data) {\n encoded += utf8encode ? utf8.encode(String(packet.data), { strict: false }) : String(packet.data);\n }\n\n return callback('' + encoded);\n\n};\n\nfunction encodeBase64Object(packet, callback) {\n // packet data is an object { base64: true, data: dataAsBase64String }\n var message = 'b' + exports.packets[packet.type] + packet.data.data;\n return callback(message);\n}\n\n/**\n * Encode packet helpers for binary types\n */\n\nfunction encodeArrayBuffer(packet, supportsBinary, callback) {\n if (!supportsBinary) {\n return exports.encodeBase64Packet(packet, callback);\n }\n\n var data = packet.data;\n var contentArray = new Uint8Array(data);\n var resultBuffer = new Uint8Array(1 + data.byteLength);\n\n resultBuffer[0] = packets[packet.type];\n for (var i = 0; i < contentArray.length; i++) {\n resultBuffer[i+1] = contentArray[i];\n }\n\n return callback(resultBuffer.buffer);\n}\n\nfunction encodeBlobAsArrayBuffer(packet, supportsBinary, callback) {\n if (!supportsBinary) {\n return exports.encodeBase64Packet(packet, callback);\n }\n\n var fr = new FileReader();\n fr.onload = function() {\n packet.data = fr.result;\n exports.encodePacket(packet, supportsBinary, true, callback);\n };\n return fr.readAsArrayBuffer(packet.data);\n}\n\nfunction encodeBlob(packet, supportsBinary, callback) {\n if (!supportsBinary) {\n return exports.encodeBase64Packet(packet, callback);\n }\n\n if (dontSendBlobs) {\n return encodeBlobAsArrayBuffer(packet, supportsBinary, callback);\n }\n\n var length = new Uint8Array(1);\n length[0] = packets[packet.type];\n var blob = new Blob([length.buffer, packet.data]);\n\n return callback(blob);\n}\n\n/**\n * Encodes a packet with binary data in a base64 string\n *\n * @param {Object} packet, has `type` and `data`\n * @return {String} base64 encoded message\n */\n\nexports.encodeBase64Packet = function(packet, callback) {\n var message = 'b' + exports.packets[packet.type];\n if (Blob && packet.data instanceof global.Blob) {\n var fr = new FileReader();\n fr.onload = function() {\n var b64 = fr.result.split(',')[1];\n callback(message + b64);\n };\n return fr.readAsDataURL(packet.data);\n }\n\n var b64data;\n try {\n b64data = String.fromCharCode.apply(null, new Uint8Array(packet.data));\n } catch (e) {\n // iPhone Safari doesn't let you apply with typed arrays\n var typed = new Uint8Array(packet.data);\n var basic = new Array(typed.length);\n for (var i = 0; i < typed.length; i++) {\n basic[i] = typed[i];\n }\n b64data = String.fromCharCode.apply(null, basic);\n }\n message += global.btoa(b64data);\n return callback(message);\n};\n\n/**\n * Decodes a packet. Changes format to Blob if requested.\n *\n * @return {Object} with `type` and `data` (if any)\n * @api private\n */\n\nexports.decodePacket = function (data, binaryType, utf8decode) {\n if (data === undefined) {\n return err;\n }\n // String data\n if (typeof data === 'string') {\n if (data.charAt(0) === 'b') {\n return exports.decodeBase64Packet(data.substr(1), binaryType);\n }\n\n if (utf8decode) {\n data = tryDecode(data);\n if (data === false) {\n return err;\n }\n }\n var type = data.charAt(0);\n\n if (Number(type) != type || !packetslist[type]) {\n return err;\n }\n\n if (data.length > 1) {\n return { type: packetslist[type], data: data.substring(1) };\n } else {\n return { type: packetslist[type] };\n }\n }\n\n var asArray = new Uint8Array(data);\n var type = asArray[0];\n var rest = sliceBuffer(data, 1);\n if (Blob && binaryType === 'blob') {\n rest = new Blob([rest]);\n }\n return { type: packetslist[type], data: rest };\n};\n\nfunction tryDecode(data) {\n try {\n data = utf8.decode(data, { strict: false });\n } catch (e) {\n return false;\n }\n return data;\n}\n\n/**\n * Decodes a packet encoded in a base64 string\n *\n * @param {String} base64 encoded message\n * @return {Object} with `type` and `data` (if any)\n */\n\nexports.decodeBase64Packet = function(msg, binaryType) {\n var type = packetslist[msg.charAt(0)];\n if (!base64encoder) {\n return { type: type, data: { base64: true, data: msg.substr(1) } };\n }\n\n var data = base64encoder.decode(msg.substr(1));\n\n if (binaryType === 'blob' && Blob) {\n data = new Blob([data]);\n }\n\n return { type: type, data: data };\n};\n\n/**\n * Encodes multiple messages (payload).\n *\n * :data\n *\n * Example:\n *\n * 11:hello world2:hi\n *\n * If any contents are binary, they will be encoded as base64 strings. Base64\n * encoded strings are marked with a b before the length specifier\n *\n * @param {Array} packets\n * @api private\n */\n\nexports.encodePayload = function (packets, supportsBinary, callback) {\n if (typeof supportsBinary === 'function') {\n callback = supportsBinary;\n supportsBinary = null;\n }\n\n var isBinary = hasBinary(packets);\n\n if (supportsBinary && isBinary) {\n if (Blob && !dontSendBlobs) {\n return exports.encodePayloadAsBlob(packets, callback);\n }\n\n return exports.encodePayloadAsArrayBuffer(packets, callback);\n }\n\n if (!packets.length) {\n return callback('0:');\n }\n\n function setLengthHeader(message) {\n return message.length + ':' + message;\n }\n\n function encodeOne(packet, doneCallback) {\n exports.encodePacket(packet, !isBinary ? false : supportsBinary, false, function(message) {\n doneCallback(null, setLengthHeader(message));\n });\n }\n\n map(packets, encodeOne, function(err, results) {\n return callback(results.join(''));\n });\n};\n\n/**\n * Async array map using after\n */\n\nfunction map(ary, each, done) {\n var result = new Array(ary.length);\n var next = after(ary.length, done);\n\n var eachWithIndex = function(i, el, cb) {\n each(el, function(error, msg) {\n result[i] = msg;\n cb(error, result);\n });\n };\n\n for (var i = 0; i < ary.length; i++) {\n eachWithIndex(i, ary[i], next);\n }\n}\n\n/*\n * Decodes data when a payload is maybe expected. Possible binary contents are\n * decoded from their base64 representation\n *\n * @param {String} data, callback method\n * @api public\n */\n\nexports.decodePayload = function (data, binaryType, callback) {\n if (typeof data !== 'string') {\n return exports.decodePayloadAsBinary(data, binaryType, callback);\n }\n\n if (typeof binaryType === 'function') {\n callback = binaryType;\n binaryType = null;\n }\n\n var packet;\n if (data === '') {\n // parser error - ignoring payload\n return callback(err, 0, 1);\n }\n\n var length = '', n, msg;\n\n for (var i = 0, l = data.length; i < l; i++) {\n var chr = data.charAt(i);\n\n if (chr !== ':') {\n length += chr;\n continue;\n }\n\n if (length === '' || (length != (n = Number(length)))) {\n // parser error - ignoring payload\n return callback(err, 0, 1);\n }\n\n msg = data.substr(i + 1, n);\n\n if (length != msg.length) {\n // parser error - ignoring payload\n return callback(err, 0, 1);\n }\n\n if (msg.length) {\n packet = exports.decodePacket(msg, binaryType, false);\n\n if (err.type === packet.type && err.data === packet.data) {\n // parser error in individual packet - ignoring payload\n return callback(err, 0, 1);\n }\n\n var ret = callback(packet, i + n, l);\n if (false === ret) return;\n }\n\n // advance cursor\n i += n;\n length = '';\n }\n\n if (length !== '') {\n // parser error - ignoring payload\n return callback(err, 0, 1);\n }\n\n};\n\n/**\n * Encodes multiple messages (payload) as binary.\n *\n * <1 = binary, 0 = string>[...]\n *\n * Example:\n * 1 3 255 1 2 3, if the binary contents are interpreted as 8 bit integers\n *\n * @param {Array} packets\n * @return {ArrayBuffer} encoded payload\n * @api private\n */\n\nexports.encodePayloadAsArrayBuffer = function(packets, callback) {\n if (!packets.length) {\n return callback(new ArrayBuffer(0));\n }\n\n function encodeOne(packet, doneCallback) {\n exports.encodePacket(packet, true, true, function(data) {\n return doneCallback(null, data);\n });\n }\n\n map(packets, encodeOne, function(err, encodedPackets) {\n var totalLength = encodedPackets.reduce(function(acc, p) {\n var len;\n if (typeof p === 'string'){\n len = p.length;\n } else {\n len = p.byteLength;\n }\n return acc + len.toString().length + len + 2; // string/binary identifier + separator = 2\n }, 0);\n\n var resultArray = new Uint8Array(totalLength);\n\n var bufferIndex = 0;\n encodedPackets.forEach(function(p) {\n var isString = typeof p === 'string';\n var ab = p;\n if (isString) {\n var view = new Uint8Array(p.length);\n for (var i = 0; i < p.length; i++) {\n view[i] = p.charCodeAt(i);\n }\n ab = view.buffer;\n }\n\n if (isString) { // not true binary\n resultArray[bufferIndex++] = 0;\n } else { // true binary\n resultArray[bufferIndex++] = 1;\n }\n\n var lenStr = ab.byteLength.toString();\n for (var i = 0; i < lenStr.length; i++) {\n resultArray[bufferIndex++] = parseInt(lenStr[i]);\n }\n resultArray[bufferIndex++] = 255;\n\n var view = new Uint8Array(ab);\n for (var i = 0; i < view.length; i++) {\n resultArray[bufferIndex++] = view[i];\n }\n });\n\n return callback(resultArray.buffer);\n });\n};\n\n/**\n * Encode as Blob\n */\n\nexports.encodePayloadAsBlob = function(packets, callback) {\n function encodeOne(packet, doneCallback) {\n exports.encodePacket(packet, true, true, function(encoded) {\n var binaryIdentifier = new Uint8Array(1);\n binaryIdentifier[0] = 1;\n if (typeof encoded === 'string') {\n var view = new Uint8Array(encoded.length);\n for (var i = 0; i < encoded.length; i++) {\n view[i] = encoded.charCodeAt(i);\n }\n encoded = view.buffer;\n binaryIdentifier[0] = 0;\n }\n\n var len = (encoded instanceof ArrayBuffer)\n ? encoded.byteLength\n : encoded.size;\n\n var lenStr = len.toString();\n var lengthAry = new Uint8Array(lenStr.length + 1);\n for (var i = 0; i < lenStr.length; i++) {\n lengthAry[i] = parseInt(lenStr[i]);\n }\n lengthAry[lenStr.length] = 255;\n\n if (Blob) {\n var blob = new Blob([binaryIdentifier.buffer, lengthAry.buffer, encoded]);\n doneCallback(null, blob);\n }\n });\n }\n\n map(packets, encodeOne, function(err, results) {\n return callback(new Blob(results));\n });\n};\n\n/*\n * Decodes data when a payload is maybe expected. Strings are decoded by\n * interpreting each byte as a key code for entries marked to start with 0. See\n * description of encodePayloadAsBinary\n *\n * @param {ArrayBuffer} data, callback method\n * @api public\n */\n\nexports.decodePayloadAsBinary = function (data, binaryType, callback) {\n if (typeof binaryType === 'function') {\n callback = binaryType;\n binaryType = null;\n }\n\n var bufferTail = data;\n var buffers = [];\n\n while (bufferTail.byteLength > 0) {\n var tailArray = new Uint8Array(bufferTail);\n var isString = tailArray[0] === 0;\n var msgLength = '';\n\n for (var i = 1; ; i++) {\n if (tailArray[i] === 255) break;\n\n // 310 = char length of Number.MAX_VALUE\n if (msgLength.length > 310) {\n return callback(err, 0, 1);\n }\n\n msgLength += tailArray[i];\n }\n\n bufferTail = sliceBuffer(bufferTail, 2 + msgLength.length);\n msgLength = parseInt(msgLength);\n\n var msg = sliceBuffer(bufferTail, 0, msgLength);\n if (isString) {\n try {\n msg = String.fromCharCode.apply(null, new Uint8Array(msg));\n } catch (e) {\n // iPhone Safari doesn't let you apply to typed arrays\n var typed = new Uint8Array(msg);\n msg = '';\n for (var i = 0; i < typed.length; i++) {\n msg += String.fromCharCode(typed[i]);\n }\n }\n }\n\n buffers.push(msg);\n bufferTail = sliceBuffer(bufferTail, msgLength);\n }\n\n var total = buffers.length;\n buffers.forEach(function(buffer, i) {\n callback(exports.decodePacket(buffer, binaryType, true), i, total);\n });\n};\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(5)\n , core = __webpack_require__(4)\n , ctx = __webpack_require__(48)\n , hide = __webpack_require__(12)\n , PROTOTYPE = 'prototype';\n\nvar $export = function(type, name, source){\n var IS_FORCED = type & $export.F\n , IS_GLOBAL = type & $export.G\n , IS_STATIC = type & $export.S\n , IS_PROTO = type & $export.P\n , IS_BIND = type & $export.B\n , IS_WRAP = type & $export.W\n , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n , expProto = exports[PROTOTYPE]\n , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\n , key, own, out;\n if(IS_GLOBAL)source = name;\n for(key in source){\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if(own && key in exports)continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function(C){\n var F = function(a, b, c){\n if(this instanceof C){\n switch(arguments.length){\n case 0: return new C;\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if(IS_PROTO){\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library` \nmodule.exports = $export;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports) {\n\nmodule.exports = function(exec){\n try {\n return !!exec();\n } catch(e){\n return true;\n }\n};\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = __webpack_require__(55)\n , enumBugKeys = __webpack_require__(31);\n\nmodule.exports = Object.keys || function keys(O){\n return $keys(O, enumBugKeys);\n};\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports) {\n\nmodule.exports = function(bitmap, value){\n return {\n enumerable : !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable : !(bitmap & 4),\n value : value\n };\n};\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(238), __esModule: true };\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports) {\n\n\nmodule.exports = function(a, b){\n var fn = function(){};\n fn.prototype = b.prototype;\n a.prototype = new fn;\n a.prototype.constructor = a;\n};\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports) {\n\nmodule.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports) {\n\nvar id = 0\n , px = Math.random();\nmodule.exports = function(key){\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = __webpack_require__(281);\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n 'lightseagreen',\n 'forestgreen',\n 'goldenrod',\n 'dodgerblue',\n 'darkorchid',\n 'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit')\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = __webpack_require__.i({\"NODE_ENV\":\"production\"}).DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(45)))\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports) {\n\n/**\r\n * Compiles a querystring\r\n * Returns string representation of the object\r\n *\r\n * @param {Object}\r\n * @api private\r\n */\r\n\r\nexports.encode = function (obj) {\r\n var str = '';\r\n\r\n for (var i in obj) {\r\n if (obj.hasOwnProperty(i)) {\r\n if (str.length) str += '&';\r\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\r\n }\r\n }\r\n\r\n return str;\r\n};\r\n\r\n/**\r\n * Parses a simple querystring into an object\r\n *\r\n * @param {String} qs\r\n * @api private\r\n */\r\n\r\nexports.decode = function(qs){\r\n var qry = {};\r\n var pairs = qs.split('&');\r\n for (var i = 0, l = pairs.length; i < l; i++) {\r\n var pair = pairs[i].split('=');\r\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\r\n }\r\n return qry;\r\n};\r\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = __webpack_require__(490);\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n 'lightseagreen',\n 'forestgreen',\n 'goldenrod',\n 'dodgerblue',\n 'darkorchid',\n 'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit')\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = __webpack_require__.i({\"NODE_ENV\":\"production\"}).DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(45)))\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(302)\n}\nvar Component = __webpack_require__(1)(\n /* script */\n __webpack_require__(216),\n /* template */\n __webpack_require__(583),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-71aabb24\",\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 27 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {/*!\n * Vue.js v2.4.2\n * (c) 2014-2017 Evan You\n * Released under the MIT License.\n */\n/* */\n\n// these helpers produces better vm code in JS engines due to their\n// explicitness and function inlining\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nvar _toString = Object.prototype.toString;\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(val);\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : typeof val === 'object'\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert a input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if a attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,is');\n\n/**\n * Remove an item from an array\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether the object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /([^-])([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str\n .replace(hyphenateRE, '$1-$2')\n .replace(hyphenateRE, '$1-$2')\n .toLowerCase()\n});\n\n/**\n * Simple bind, faster than native\n */\nfunction bind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n // record original fn length\n boundFn._length = fn.length;\n return boundFn\n}\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/)\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/**\n * Return same value\n */\nvar identity = function (_) { return _; };\n\n/**\n * Generate a static keys string from compiler modules.\n */\nfunction genStaticKeys (modules) {\n return modules.reduce(function (keys, m) {\n return keys.concat(m.staticKeys || [])\n }, []).join(',')\n}\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated'\n];\n\n/* */\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: \"production\" !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: \"production\" !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/* */\n\nvar emptyObject = Object.freeze({});\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = /[^\\w.$]/;\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar formatComponentName = (null); // work around flow check\n\nif (false) {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n return ''\n }\n var name = typeof vm === 'string'\n ? vm\n : typeof vm === 'function' && vm.options\n ? vm.options.name\n : vm._isVue\n ? vm.$options.name || vm.$options._componentTag\n : vm.name;\n\n var file = vm._isVue && vm.$options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n var generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm) {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n if (config.errorHandler) {\n config.errorHandler.call(null, err, vm, info);\n } else {\n if (false) {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if (inBrowser && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n }\n}\n\n/* */\n/* globals MutationObserver */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = UA && UA.indexOf('android') > 0;\nvar isIOS = UA && /iphone|ipad|ipod|ios/.test(UA);\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\n\n// Firefix has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\n\nvar supportsPassive = false;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\n/**\n * Defer a task to execute it asynchronously.\n */\nvar nextTick = (function () {\n var callbacks = [];\n var pending = false;\n var timerFunc;\n\n function nextTickHandler () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n }\n\n // the nextTick behavior leverages the microtask queue, which can be accessed\n // via either native Promise.then or MutationObserver.\n // MutationObserver has wider support, however it is seriously bugged in\n // UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n // completely stops working after triggering a few times... so, if native\n // Promise is available, we will use it:\n /* istanbul ignore if */\n if (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n var logError = function (err) { console.error(err); };\n timerFunc = function () {\n p.then(nextTickHandler).catch(logError);\n // in problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n } else if (typeof MutationObserver !== 'undefined' && (\n isNative(MutationObserver) ||\n // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]'\n )) {\n // use MutationObserver where native Promise is not available,\n // e.g. PhantomJS IE11, iOS7, Android 4.4\n var counter = 1;\n var observer = new MutationObserver(nextTickHandler);\n var textNode = document.createTextNode(String(counter));\n observer.observe(textNode, {\n characterData: true\n });\n timerFunc = function () {\n counter = (counter + 1) % 2;\n textNode.data = String(counter);\n };\n } else {\n // fallback to setTimeout\n /* istanbul ignore next */\n timerFunc = function () {\n setTimeout(nextTickHandler, 0);\n };\n }\n\n return function queueNextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n timerFunc();\n }\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n _resolve = resolve;\n })\n }\n }\n})();\n\nvar _Set;\n/* istanbul ignore if */\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = (function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.target) {\n Dep.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// the current target watcher being evaluated.\n// this is globally unique because there could be only one\n// watcher being evaluated at any time.\nDep.target = null;\nvar targetStack = [];\n\nfunction pushTarget (_target) {\n if (Dep.target) { targetStack.push(Dep.target); }\n Dep.target = _target;\n}\n\nfunction popTarget () {\n Dep.target = targetStack.pop();\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);[\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n]\n.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * By default, when a reactive property is set, the new value is\n * also converted to become reactive. However when passing down props,\n * we don't want to force conversion because the value may be a nested value\n * under a frozen data structure. Converting it would defeat the optimization.\n */\nvar observerState = {\n shouldConvert: true\n};\n\n/**\n * Observer class that are attached to each observed\n * object. Once attached, the observer converts target\n * object's property keys into getter/setters that\n * collect dependencies and dispatches updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n var augment = hasProto\n ? protoAugment\n : copyAugment;\n augment(value, arrayMethods, arrayKeys);\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through each property and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive$$1(obj, keys[i], obj[keys[i]]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment an target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src, keys) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment an target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value)) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n observerState.shouldConvert &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n }\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (false) {\n customSetter();\n }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (hasOwn(target, key)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n \"production\" !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive$$1(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n \"production\" !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (false) {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n var keys = Object.keys(from);\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (isPlainObject(toVal) && isPlainObject(fromVal)) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this) : parentVal\n )\n }\n } else if (parentVal || childVal) {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm)\n : undefined;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n \"production\" !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn.call(this, parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n return childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (parentVal, childVal) {\n var res = Object.create(parentVal || null);\n return childVal\n ? extend(res, childVal)\n : res\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (parentVal, childVal) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key in childVal) {\n var parent = ret[key];\n var child = childVal[key];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (parentVal, childVal) {\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n var lower = key.toLowerCase();\n if (isBuiltInTag(lower) || config.isReservedTag(lower)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + key\n );\n }\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (false) {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options) {\n var inject = options.inject;\n if (Array.isArray(inject)) {\n var normalized = options.inject = {};\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = inject[i];\n }\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def = dirs[key];\n if (typeof def === 'function') {\n dirs[key] = { bind: def, update: def };\n }\n }\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (false) {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child);\n normalizeInject(child);\n normalizeDirectives(child);\n var extendsFrom = child.extends;\n if (extendsFrom) {\n parent = mergeOptions(parent, extendsFrom, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (false) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // handle boolean props\n if (isType(Boolean, prop.type)) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (!isType(String, prop.type) && (value === '' || value === hyphenate(key))) {\n value = true;\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldConvert = observerState.shouldConvert;\n observerState.shouldConvert = true;\n observe(value);\n observerState.shouldConvert = prevShouldConvert;\n }\n if (false) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (false) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i]);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n if (!valid) {\n warn(\n 'Invalid prop: type check failed for prop \"' + name + '\".' +\n ' Expected ' + expectedTypes.map(capitalize).join(', ') +\n ', got ' + Object.prototype.toString.call(value).slice(8, -1) + '.',\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n valid = typeof value === expectedType.toLowerCase();\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ''\n}\n\nfunction isType (type, fn) {\n if (!Array.isArray(fn)) {\n return getType(fn) === getType(type)\n }\n for (var i = 0, len = fn.length; i < len; i++) {\n if (getType(fn[i]) === getType(type)) {\n return true\n }\n }\n /* istanbul ignore next */\n return false\n}\n\n/* */\n\nvar mark;\nvar measure;\n\nif (false) {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n perf.clearMeasures(name);\n };\n }\n}\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (false) {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n \"referenced during render. Make sure to declare reactive data \" +\n \"properties in the data option.\",\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' &&\n Proxy.toString().match(/native code/);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) || key.charAt(0) === '_';\n if (!has && !isAllowed) {\n warnNonPresent(target, key);\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n warnNonPresent(target, key);\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.functionalContext = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: {} };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n vnode.children,\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.isCloned = true;\n return cloned\n}\n\nfunction cloneVNodes (vnodes) {\n var len = vnodes.length;\n var res = new Array(len);\n for (var i = 0; i < len; i++) {\n res[i] = cloneVNode(vnodes[i]);\n }\n return res\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n cloned[i].apply(null, arguments$1);\n }\n } else {\n // return handler return value for single handlers\n return fns.apply(null, arguments)\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n vm\n) {\n var name, cur, old, event;\n for (name in on) {\n cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n \"production\" !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur);\n }\n add(event.name, cur, event.once, event.capture, event.passive);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\nfunction mergeVNodeHook (def, hookKey, hook) {\n var invoker;\n var oldHook = def[hookKey];\n\n function wrappedHook () {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove(invoker.fns, wrappedHook);\n }\n\n if (isUndef(oldHook)) {\n // no existing hook\n invoker = createFnInvoker([wrappedHook]);\n } else {\n /* istanbul ignore if */\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n // already a merged invoker\n invoker = oldHook;\n invoker.fns.push(wrappedHook);\n } else {\n // existing plain hook\n invoker = createFnInvoker([oldHook, wrappedHook]);\n }\n }\n\n invoker.merged = true;\n def[hookKey] = invoker;\n}\n\n/* */\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (false) {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g.