From 5a10c390c7036e56b363f8f5e7e0d6ebe8cbb268 Mon Sep 17 00:00:00 2001 From: Yilun Date: Tue, 25 Aug 2020 19:54:18 -0700 Subject: [PATCH] Update web compiled verison Signed-off-by: Yilun --- web/200.html | 4 ++-- web/_nuxt/{app.482e178.js => app.f0bfe5d.js} | 2 +- web/_nuxt/pages/{index.7f0f5ad.js => index.21b7728.js} | 2 +- web/_nuxt/pages/{loading.f77e709.js => loading.a4ed2f1.js} | 2 +- .../pages/wallet/{create.801afee.js => create.d7cd0f7.js} | 2 +- web/_nuxt/pages/wallet/{open.d27569d.js => open.ede1d6f.js} | 2 +- web/_nuxt/{runtime.3fcf4ac.js => runtime.6b62e04.js} | 2 +- web/_nuxt/{vendors~app.7652f57.js => vendors~app.d184be8.js} | 2 +- web/index.html | 4 ++-- web/loading/index.html | 4 ++-- web/nodeStatus/index.html | 4 ++-- web/overview/index.html | 4 ++-- web/settings/index.html | 4 ++-- web/wallet/create/index.html | 4 ++-- web/wallet/open/index.html | 4 ++-- web/zh/index.html | 4 ++-- web/zh/loading/index.html | 4 ++-- web/zh/nodeStatus/index.html | 4 ++-- web/zh/overview/index.html | 4 ++-- web/zh/settings/index.html | 4 ++-- web/zh/wallet/create/index.html | 4 ++-- web/zh/wallet/open/index.html | 4 ++-- 22 files changed, 37 insertions(+), 37 deletions(-) rename web/_nuxt/{app.482e178.js => app.f0bfe5d.js} (99%) rename web/_nuxt/pages/{index.7f0f5ad.js => index.21b7728.js} (98%) rename web/_nuxt/pages/{loading.f77e709.js => loading.a4ed2f1.js} (98%) rename web/_nuxt/pages/wallet/{create.801afee.js => create.d7cd0f7.js} (99%) rename web/_nuxt/pages/wallet/{open.d27569d.js => open.ede1d6f.js} (99%) rename web/_nuxt/{runtime.3fcf4ac.js => runtime.6b62e04.js} (93%) rename web/_nuxt/{vendors~app.7652f57.js => vendors~app.d184be8.js} (52%) diff --git a/web/200.html b/web/200.html index c6a389a6f..21892c015 100644 --- a/web/200.html +++ b/web/200.html @@ -1,9 +1,9 @@ - nkn-web - nkn-web + nkn-web - nkn-web
Loading...
- + diff --git a/web/_nuxt/app.482e178.js b/web/_nuxt/app.f0bfe5d.js similarity index 99% rename from web/_nuxt/app.482e178.js rename to web/_nuxt/app.f0bfe5d.js index dde8460ef..f8df4e913 100644 --- a/web/_nuxt/app.482e178.js +++ b/web/_nuxt/app.f0bfe5d.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{114:function(module,__webpack_exports__,__webpack_require__){"use strict";eval("var middleware = {};\nmiddleware['clipboard'] = __webpack_require__(281);\nmiddleware['clipboard'] = middleware['clipboard'].default || middleware['clipboard'];\n/* harmony default export */ __webpack_exports__[\"a\"] = (middleware);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi8ubnV4dC9taWRkbGV3YXJlLmpzP2YzNWIiXSwibmFtZXMiOlsibWlkZGxld2FyZSIsInJlcXVpcmUiLCJkZWZhdWx0Il0sIm1hcHBpbmdzIjoiQUFBQSxJQUFNQSxVQUFVLEdBQUcsRUFBbkI7QUFFQUEsVUFBVSxDQUFDLFdBQUQsQ0FBVixHQUEwQkMsbUJBQU8sQ0FBQyxHQUFELENBQWpDO0FBQ0FELFVBQVUsQ0FBQyxXQUFELENBQVYsR0FBMEJBLFVBQVUsQ0FBQyxXQUFELENBQVYsQ0FBd0JFLE9BQXhCLElBQW1DRixVQUFVLENBQUMsV0FBRCxDQUF2RTtBQUVlQSxtRUFBZiIsImZpbGUiOiIxMTQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtaWRkbGV3YXJlID0ge31cblxubWlkZGxld2FyZVsnY2xpcGJvYXJkJ10gPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2NsaXBib2FyZC5qcycpXG5taWRkbGV3YXJlWydjbGlwYm9hcmQnXSA9IG1pZGRsZXdhcmVbJ2NsaXBib2FyZCddLmRlZmF1bHQgfHwgbWlkZGxld2FyZVsnY2xpcGJvYXJkJ11cblxuZXhwb3J0IGRlZmF1bHQgbWlkZGxld2FyZVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///114\n")},136:function(module,__webpack_exports__,__webpack_require__){"use strict";eval("\n// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vuetify-loader/lib/loader.js??ref--16-0!./node_modules/vue-loader/lib??vue-loader-options!./components/status/NodeRunStatus.vue?vue&type=template&id=40a05d52&scoped=true&\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-badge',{staticClass:\"breathe mr-4\",attrs:{\"color\":\"transparent\"},scopedSlots:_vm._u([{key:\"badge\",fn:function(){return [_c('v-icon',{attrs:{\"dark\":\"\",\"small\":\"\",\"color\":_vm.getStatusColor(_vm.nodeStatus.syncState)}},[_vm._v(\"fa-circle\")])]},proxy:true}])},[_vm._v(\" \"),_c('span',[_vm._v(\" \"+_vm._s(_vm.getStatus( _vm.nodeStatus.syncState)))])])}\nvar staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./components/status/NodeRunStatus.vue?vue&type=template&id=40a05d52&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es7.object.get-own-property-descriptors.js\nvar es7_object_get_own_property_descriptors = __webpack_require__(11);\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.symbol.js\nvar es6_symbol = __webpack_require__(8);\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom.iterable.js\nvar web_dom_iterable = __webpack_require__(6);\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.to-string.js\nvar es6_object_to_string = __webpack_require__(4);\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.keys.js\nvar es6_object_keys = __webpack_require__(9);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__(1);\n\n// EXTERNAL MODULE: ./node_modules/vuex/dist/vuex.esm.js\nvar vuex_esm = __webpack_require__(48);\n\n// EXTERNAL MODULE: ./helpers/consts.js\nvar consts = __webpack_require__(45);\n\n// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vuetify-loader/lib/loader.js??ref--16-0!./node_modules/vue-loader/lib??vue-loader-options!./components/status/NodeRunStatus.vue?vue&type=script&lang=js&\n\n\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n/* harmony default export */ var NodeRunStatusvue_type_script_lang_js_ = ({\n name: \"NodeStatus\",\n props: {\n nodeStatus: {\n type: Object,\n required: true\n }\n },\n data: function data() {\n return {\n color: {\n 'DEFAULT': 'grey',\n 'WAIT_FOR_SYNCING': 'yellow accent-2',\n 'SYNC_STARTED': 'green accent-4',\n 'SYNC_FINISHED': 'green accent-4',\n 'PERSIST_FINISHED': 'green accent-4'\n }\n };\n },\n computed: _objectSpread({}, Object(vuex_esm[\"d\" /* mapState */])({\n serviceStatus: function serviceStatus(state) {\n return state.serviceStatus;\n }\n })),\n mounted: function mounted() {},\n methods: {\n // get node status\n getStatus: function getStatus(stateStr) {\n var statusEnum = {\n 'WAIT_FOR_SYNCING': this.$t('node.state.WAIT_FOR_SYNCING'),\n 'SYNC_STARTED': this.$t('node.state.SYNC_STARTED'),\n 'SYNC_FINISHED': this.$t('node.state.SYNC_FINISHED'),\n 'PERSIST_FINISHED': this.$t('node.state.PERSIST_FINISHED')\n };\n return statusEnum[stateStr] || this.getServiceStatus(this.serviceStatus) || this.$t('node.state.DEFAULT');\n },\n getServiceStatus: function getServiceStatus(state) {\n if ((state & consts[\"a\" /* ServiceStatusEnum */].SERVICE_STATUS_CREATE_ID) > 0) {\n return this.$t('node.serviceStatus.SERVICE_STATUS_CREATE_ID');\n }\n\n return undefined;\n },\n getStatusColor: function getStatusColor(stateStr) {\n stateStr = stateStr || 'DEFAULT';\n return this.color[stateStr];\n }\n }\n});\n// CONCATENATED MODULE: ./components/status/NodeRunStatus.vue?vue&type=script&lang=js&\n /* harmony default export */ var status_NodeRunStatusvue_type_script_lang_js_ = (NodeRunStatusvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js\nvar componentNormalizer = __webpack_require__(41);\n\n// EXTERNAL MODULE: ./node_modules/vuetify-loader/lib/runtime/installComponents.js\nvar installComponents = __webpack_require__(42);\nvar installComponents_default = /*#__PURE__*/__webpack_require__.n(installComponents);\n\n// EXTERNAL MODULE: ./node_modules/vuetify/lib/components/VBadge/VBadge.js\nvar VBadge = __webpack_require__(460);\n\n// EXTERNAL MODULE: ./node_modules/vuetify/lib/components/VIcon/VIcon.js\nvar VIcon = __webpack_require__(112);\n\n// CONCATENATED MODULE: ./components/status/NodeRunStatus.vue\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(componentNormalizer[\"a\" /* default */])(\n status_NodeRunStatusvue_type_script_lang_js_,\n render,\n staticRenderFns,\n false,\n null,\n \"40a05d52\",\n null\n \n)\n\n/* harmony default export */ var NodeRunStatus = __webpack_exports__[\"a\"] = (component.exports);\n\n/* vuetify-loader */\n\n\n\ninstallComponents_default()(component, {VBadge: VBadge[\"a\" /* default */],VIcon: VIcon[\"a\" /* default */]})\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9jb21wb25lbnRzL3N0YXR1cy9Ob2RlUnVuU3RhdHVzLnZ1ZT8zNGYxIiwid2VicGFjazovLy9jb21wb25lbnRzL3N0YXR1cy9Ob2RlUnVuU3RhdHVzLnZ1ZT81YmM1Iiwid2VicGFjazovLy8uL2NvbXBvbmVudHMvc3RhdHVzL05vZGVSdW5TdGF0dXMudnVlPzlhYjMiLCJ3ZWJwYWNrOi8vLy4vY29tcG9uZW50cy9zdGF0dXMvTm9kZVJ1blN0YXR1cy52dWU/OWY3YSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDBCQUEwQixhQUFhLDBCQUEwQix3QkFBd0IscUJBQXFCLGtDQUFrQyxzQkFBc0Isc0JBQXNCLDBCQUEwQixxQkFBcUIsT0FBTywyRUFBMkUseUJBQXlCLFlBQVksR0FBRztBQUNyVzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNTQTtBQUNBO0FBRUE7QUFDQSxvQkFEQTtBQUVBO0FBQ0E7QUFDQSxrQkFEQTtBQUVBO0FBRkE7QUFEQSxHQUZBO0FBUUE7QUFBQTtBQUNBO0FBQ0EseUJBREE7QUFFQSw2Q0FGQTtBQUdBLHdDQUhBO0FBSUEseUNBSkE7QUFLQTtBQUxBO0FBREE7QUFBQSxHQVJBO0FBaUJBLDhCQUNBO0FBQ0E7QUFBQTtBQUFBO0FBREEsSUFEQSxDQWpCQTtBQXNCQSxTQXRCQSxxQkFzQkEsQ0FFQSxDQXhCQTtBQXlCQTtBQUNBO0FBQ0EsYUFGQSxxQkFFQSxRQUZBLEVBRUE7QUFDQTtBQUNBLGtFQURBO0FBRUEsMERBRkE7QUFHQSw0REFIQTtBQUlBO0FBSkE7QUFPQTtBQUNBLEtBWEE7QUFZQSxvQkFaQSw0QkFZQSxLQVpBLEVBWUE7QUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQSxLQWpCQTtBQWtCQSxrQkFsQkEsMEJBa0JBLFFBbEJBLEVBa0JBO0FBQ0E7QUFDQTtBQUNBO0FBckJBO0FBekJBLEc7O0FDYmtQLENBQWdCLHNIQUFHLEVBQUMsQzs7Ozs7Ozs7Ozs7Ozs7O0FDQTlKO0FBQ3ZDO0FBQ0w7OztBQUc1RDtBQUMwRjtBQUMxRixnQkFBZ0IsOENBQVU7QUFDMUIsRUFBRSw0Q0FBTTtBQUNSLEVBQUUsTUFBTTtBQUNSLEVBQUUsZUFBZTtBQUNqQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFZSw4RkFBaUI7O0FBRWhDO0FBQ21HO0FBQzVDO0FBQ0Y7QUFDckQsMkJBQWlCLGFBQWEsaUNBQU0sQ0FBQywrQkFBSyxDQUFDIiwiZmlsZSI6IjEzNi5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7dmFyIF92bT10aGlzO3ZhciBfaD1fdm0uJGNyZWF0ZUVsZW1lbnQ7dmFyIF9jPV92bS5fc2VsZi5fY3x8X2g7cmV0dXJuIF9jKCd2LWJhZGdlJyx7c3RhdGljQ2xhc3M6XCJicmVhdGhlIG1yLTRcIixhdHRyczp7XCJjb2xvclwiOlwidHJhbnNwYXJlbnRcIn0sc2NvcGVkU2xvdHM6X3ZtLl91KFt7a2V5OlwiYmFkZ2VcIixmbjpmdW5jdGlvbigpe3JldHVybiBbX2MoJ3YtaWNvbicse2F0dHJzOntcImRhcmtcIjpcIlwiLFwic21hbGxcIjpcIlwiLFwiY29sb3JcIjpfdm0uZ2V0U3RhdHVzQ29sb3IoX3ZtLm5vZGVTdGF0dXMuc3luY1N0YXRlKX19LFtfdm0uX3YoXCJmYS1jaXJjbGVcIildKV19LHByb3h5OnRydWV9XSl9LFtfdm0uX3YoXCIgXCIpLF9jKCdzcGFuJyxbX3ZtLl92KFwiIFwiK192bS5fcyhfdm0uZ2V0U3RhdHVzKCBfdm0ubm9kZVN0YXR1cy5zeW5jU3RhdGUpKSldKV0pfVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5cbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0iLCI8dGVtcGxhdGU+XG4gICAgPHYtYmFkZ2UgY29sb3I9XCJ0cmFuc3BhcmVudFwiIGNsYXNzPVwiYnJlYXRoZSBtci00XCI+XG4gICAgICAgIDx0ZW1wbGF0ZSB2LXNsb3Q6YmFkZ2U+XG4gICAgICAgICAgICA8di1pY29uIGRhcmsgc21hbGwgOmNvbG9yPVwiZ2V0U3RhdHVzQ29sb3Iobm9kZVN0YXR1cy5zeW5jU3RhdGUpXCI+ZmEtY2lyY2xlPC92LWljb24+XG4gICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICAgIDxzcGFuPiB7e2dldFN0YXR1cyggbm9kZVN0YXR1cy5zeW5jU3RhdGUpfX08L3NwYW4+XG4gICAgPC92LWJhZGdlPlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cbiAgaW1wb3J0IHttYXBTdGF0ZX0gZnJvbSAndnVleCdcbiAgaW1wb3J0IHtTZXJ2aWNlU3RhdHVzRW51bX0gZnJvbSAnfi9oZWxwZXJzL2NvbnN0cydcblxuICBleHBvcnQgZGVmYXVsdCB7XG4gICAgbmFtZTogXCJOb2RlU3RhdHVzXCIsXG4gICAgcHJvcHM6IHtcbiAgICAgIG5vZGVTdGF0dXM6IHtcbiAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxuICAgICAgfVxuICAgIH0sXG4gICAgZGF0YTogKCkgPT4gKHtcbiAgICAgIGNvbG9yOiB7XG4gICAgICAgICdERUZBVUxUJzogJ2dyZXknLFxuICAgICAgICAnV0FJVF9GT1JfU1lOQ0lORyc6ICd5ZWxsb3cgYWNjZW50LTInLFxuICAgICAgICAnU1lOQ19TVEFSVEVEJzogJ2dyZWVuIGFjY2VudC00JyxcbiAgICAgICAgJ1NZTkNfRklOSVNIRUQnOiAnZ3JlZW4gYWNjZW50LTQnLFxuICAgICAgICAnUEVSU0lTVF9GSU5JU0hFRCc6ICdncmVlbiBhY2NlbnQtNCdcbiAgICAgIH1cbiAgICB9KSxcbiAgICBjb21wdXRlZDoge1xuICAgICAgLi4ubWFwU3RhdGUoe1xuICAgICAgICBzZXJ2aWNlU3RhdHVzOiBzdGF0ZSA9PiBzdGF0ZS5zZXJ2aWNlU3RhdHVzXG4gICAgICB9KVxuICAgIH0sXG4gICAgbW91bnRlZCgpIHtcblxuICAgIH0sXG4gICAgbWV0aG9kczoge1xuICAgICAgLy8gZ2V0IG5vZGUgc3RhdHVzXG4gICAgICBnZXRTdGF0dXMoc3RhdGVTdHIpIHtcbiAgICAgICAgY29uc3Qgc3RhdHVzRW51bSA9IHtcbiAgICAgICAgICAnV0FJVF9GT1JfU1lOQ0lORyc6IHRoaXMuJHQoJ25vZGUuc3RhdGUuV0FJVF9GT1JfU1lOQ0lORycpLFxuICAgICAgICAgICdTWU5DX1NUQVJURUQnOiB0aGlzLiR0KCdub2RlLnN0YXRlLlNZTkNfU1RBUlRFRCcpLFxuICAgICAgICAgICdTWU5DX0ZJTklTSEVEJzogdGhpcy4kdCgnbm9kZS5zdGF0ZS5TWU5DX0ZJTklTSEVEJyksXG4gICAgICAgICAgJ1BFUlNJU1RfRklOSVNIRUQnOiB0aGlzLiR0KCdub2RlLnN0YXRlLlBFUlNJU1RfRklOSVNIRUQnKVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHN0YXR1c0VudW1bc3RhdGVTdHJdIHx8IHRoaXMuZ2V0U2VydmljZVN0YXR1cyh0aGlzLnNlcnZpY2VTdGF0dXMpIHx8IHRoaXMuJHQoJ25vZGUuc3RhdGUuREVGQVVMVCcpXG4gICAgICB9LFxuICAgICAgZ2V0U2VydmljZVN0YXR1cyhzdGF0ZSkge1xuICAgICAgICBpZiAoKHN0YXRlICYgU2VydmljZVN0YXR1c0VudW0uU0VSVklDRV9TVEFUVVNfQ1JFQVRFX0lEKSA+IDApIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy4kdCgnbm9kZS5zZXJ2aWNlU3RhdHVzLlNFUlZJQ0VfU1RBVFVTX0NSRUFURV9JRCcpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgfSxcbiAgICAgIGdldFN0YXR1c0NvbG9yKHN0YXRlU3RyKSB7XG4gICAgICAgIHN0YXRlU3RyID0gc3RhdGVTdHIgfHwgJ0RFRkFVTFQnXG4gICAgICAgIHJldHVybiB0aGlzLmNvbG9yW3N0YXRlU3RyXVxuICAgICAgfVxuICAgIH1cbiAgfVxuPC9zY3JpcHQ+XG5cbjxzdHlsZSBzY29wZWQ+XG5cbjwvc3R5bGU+XG4iLCJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9yZWYtLTItMCEuLi8uLi9ub2RlX21vZHVsZXMvdnVldGlmeS1sb2FkZXIvbGliL2xvYWRlci5qcz8/cmVmLS0xNi0wIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vTm9kZVJ1blN0YXR1cy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P3JlZi0tMi0wIS4uLy4uL25vZGVfbW9kdWxlcy92dWV0aWZ5LWxvYWRlci9saWIvbG9hZGVyLmpzPz9yZWYtLTE2LTAhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9Ob2RlUnVuU3RhdHVzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vTm9kZVJ1blN0YXR1cy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NDBhMDVkNTImc2NvcGVkPXRydWUmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vTm9kZVJ1blN0YXR1cy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL05vZGVSdW5TdGF0dXMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCI0MGEwNWQ1MlwiLFxuICBudWxsXG4gIFxuKVxuXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0c1xuXG4vKiB2dWV0aWZ5LWxvYWRlciAqL1xuaW1wb3J0IGluc3RhbGxDb21wb25lbnRzIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZXRpZnktbG9hZGVyL2xpYi9ydW50aW1lL2luc3RhbGxDb21wb25lbnRzLmpzXCJcbmltcG9ydCB7IFZCYWRnZSB9IGZyb20gJ3Z1ZXRpZnkvbGliL2NvbXBvbmVudHMvVkJhZGdlJztcbmltcG9ydCB7IFZJY29uIH0gZnJvbSAndnVldGlmeS9saWIvY29tcG9uZW50cy9WSWNvbic7XG5pbnN0YWxsQ29tcG9uZW50cyhjb21wb25lbnQsIHtWQmFkZ2UsVkljb259KVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///136\n")},137:function(module,exports,__webpack_require__){eval("// style-loader: Adds some css to the DOM by adding a \");\n }\n }, {\n key: \"initTheme\",\n value: function initTheme() {\n var _this3 = this;\n\n // Only watch for reactivity on client side\n if (typeof document === 'undefined') return; // If we get here somehow, ensure\n // existing instance is removed\n\n if (this.vueInstance) this.vueInstance.$destroy(); // Use Vue instance to track reactivity\n // TODO: Update to use RFC if merged\n // https://github.com/vuejs/rfcs/blob/advanced-reactivity-api/active-rfcs/0000-advanced-reactivity-api.md\n\n this.vueInstance = new vue_runtime_esm[\"a\" /* default */]({\n data: {\n themes: this.themes\n },\n watch: {\n themes: {\n immediate: true,\n deep: true,\n handler: function handler() {\n return _this3.applyTheme();\n }\n }\n }\n });\n }\n }, {\n key: \"css\",\n set: function set(val) {\n if (this.vueMeta) {\n if (this.isVueMeta23) {\n this.applyVueMeta23();\n }\n\n return;\n }\n\n this.checkOrCreateStyleElement() && (this.styleEl.innerHTML = val);\n }\n }, {\n key: \"dark\",\n set: function set(val) {\n var oldDark = this.isDark;\n this.isDark = val; // Only apply theme after dark\n // has already been set before\n\n oldDark != null && this.applyTheme();\n },\n get: function get() {\n return Boolean(this.isDark);\n }\n }, {\n key: \"currentTheme\",\n get: function get() {\n var target = this.dark ? 'dark' : 'light';\n return this.themes[target];\n }\n }, {\n key: \"generatedStyles\",\n get: function get() {\n var theme = this.parsedTheme;\n /* istanbul ignore next */\n\n var options = this.options || {};\n var css;\n\n if (options.themeCache != null) {\n css = options.themeCache.get(theme);\n /* istanbul ignore if */\n\n if (css != null) return css;\n }\n\n css = genStyles(theme, options.customProperties);\n\n if (options.minifyTheme != null) {\n css = options.minifyTheme(css);\n }\n\n if (options.themeCache != null) {\n options.themeCache.set(theme, css);\n }\n\n return css;\n }\n }, {\n key: \"parsedTheme\",\n get: function get() {\n return parse(this.currentTheme || {}, undefined, Object(helpers[\"o\" /* getNestedValue */])(this.options, ['variations'], true));\n } // Is using v2.3 of vue-meta\n // https://github.com/nuxt/vue-meta/releases/tag/v2.3.0\n\n }, {\n key: \"isVueMeta23\",\n get: function get() {\n return typeof this.vueMeta.addApp === 'function';\n }\n }]);\n\n return Theme;\n}(service_Service);\ntheme_Theme.property = 'theme';\n// CONCATENATED MODULE: ./node_modules/vuetify/lib/framework.js\n\n\n\n\n // Services\n\n\n\nvar framework_Vuetify = /*#__PURE__*/function () {\n function Vuetify() {\n var userPreset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n Object(classCallCheck[\"a\" /* default */])(this, Vuetify);\n\n this.framework = {};\n this.installed = [];\n this.preset = {};\n this.userPreset = {};\n this.userPreset = userPreset;\n this.use(presets_Presets);\n this.use(application_Application);\n this.use(breakpoint_Breakpoint);\n this.use(goto_Goto);\n this.use(icons_Icons);\n this.use(lang_Lang);\n this.use(theme_Theme);\n } // Called on the new vuetify instance\n // bootstrap in install beforeCreate\n // Exposes ssrContext if available\n\n\n Object(createClass[\"a\" /* default */])(Vuetify, [{\n key: \"init\",\n value: function init(root, ssrContext) {\n var _this = this;\n\n this.installed.forEach(function (property) {\n var service = _this.framework[property];\n service.framework = _this.framework;\n service.init(root, ssrContext);\n }); // rtl is not installed and\n // will never be called by\n // the init process\n\n this.framework.rtl = Boolean(this.preset.rtl);\n } // Instantiate a VuetifyService\n\n }, {\n key: \"use\",\n value: function use(Service) {\n var property = Service.property;\n if (this.installed.includes(property)) return; // TODO maybe a specific type for arg 2?\n\n this.framework[property] = new Service(this.preset, this);\n this.installed.push(property);\n }\n }]);\n\n return Vuetify;\n}();\n\n\nframework_Vuetify.install = install;\nframework_Vuetify.installed = false;\nframework_Vuetify.version = \"2.3.3\";\nframework_Vuetify.config = {\n silent: false\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vc3JjL2luc3RhbGwudHM/Nzc0NCIsIndlYnBhY2s6Ly8vLi4vLi4vc3JjL2xvY2FsZS9lbi50cz80OTYyIiwid2VicGFjazovLy8uLi8uLi8uLi9zcmMvcHJlc2V0cy9kZWZhdWx0L2luZGV4LnRzP2ZiZjUiLCJ3ZWJwYWNrOi8vLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9zZXJ2aWNlL2luZGV4LnRzP2UyYjEiLCJ3ZWJwYWNrOi8vLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9wcmVzZXRzL2luZGV4LnRzP2Y5OGYiLCJ3ZWJwYWNrOi8vLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9hcHBsaWNhdGlvbi9pbmRleC50cz9hMmJkIiwid2VicGFjazovLy8uLi8uLi8uLi9zcmMvc2VydmljZXMvYnJlYWtwb2ludC9pbmRleC50cz80YTRkIiwid2VicGFjazovLy8uLi8uLi8uLi9zcmMvc2VydmljZXMvZ290by9lYXNpbmctcGF0dGVybnMudHM/MDQ4MiIsIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2dvdG8vdXRpbC50cz85NDNiIiwid2VicGFjazovLy8uLi8uLi8uLi9zcmMvc2VydmljZXMvZ290by9pbmRleC50cz8xZDBkIiwid2VicGFjazovLy8uLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvaWNvbnMvcHJlc2V0cy9tZGktc3ZnLnRzP2UwNjMiLCJ3ZWJwYWNrOi8vLy4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9pY29ucy9wcmVzZXRzL21kLnRzPzJkYjgiLCJ3ZWJwYWNrOi8vLy4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9pY29ucy9wcmVzZXRzL21kaS50cz81MDVmIiwid2VicGFjazovLy8uLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvaWNvbnMvcHJlc2V0cy9mYS50cz82MDJkIiwid2VicGFjazovLy8uLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvaWNvbnMvcHJlc2V0cy9mYTQudHM/MTIzYSIsIndlYnBhY2s6Ly8vLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2ljb25zL3ByZXNldHMvZmEtc3ZnLnRzP2U2OGUiLCJ3ZWJwYWNrOi8vLy4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9pY29ucy9wcmVzZXRzL2luZGV4LnRzPzFjYTgiLCJ3ZWJwYWNrOi8vLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9pY29ucy9pbmRleC50cz84YTA0Iiwid2VicGFjazovLy8uLi8uLi8uLi9zcmMvc2VydmljZXMvbGFuZy9pbmRleC50cz9hNWM5Iiwid2VicGFjazovLy8uLi8uLi8uLi9zcmMvdXRpbC9jb2xvci90cmFuc2Zvcm1DSUVMQUIudHM/Y2Y3OSIsIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3RoZW1lL3V0aWxzLnRzPzIyNWUiLCJ3ZWJwYWNrOi8vLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy90aGVtZS9pbmRleC50cz9jZWI2Iiwid2VicGFjazovLy8uLi9zcmMvZnJhbWV3b3JrLnRzP2JiYmQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBRUE7QUFFTSxzQkFBb0U7QUFBQSxNQUE1QixJQUE0Qix1RUFBcEUsRUFBb0U7QUFDeEUsTUFBSyxPQUFlLENBQXBCLFdBQWdDO0FBQy9CLFNBQWUsQ0FBZjs7QUFFRCxNQUFJLGtDQUFNLEtBQVYsS0FBb0I7QUFDbEIsMkNBQVksQ0FBWiwwSkFBWSxDQUFaO0FBQ0Q7O0FBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFKLGNBQW5CO0FBQ0EsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFKLGNBQW5COztBQUVBLE9BQUssSUFBTCxvQkFBK0I7QUFDN0IsUUFBTSxTQUFTLEdBQUcsVUFBVSxDQUE1QixJQUE0QixDQUE1QjtBQUVBLE9BQUcsQ0FBSDtBQUNEOztBQUVELEdBQUMsd0NBQTRDO0FBQzNDLG9CQUFnQjtBQUNkLFdBQUssSUFBTCxtQkFBOEI7QUFDNUIsWUFBTSxTQUFTLEdBQUcsVUFBVSxDQUE1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QSxhQUFTLFNBQVQ7QUFDQSxhQUFTLFdBQVQ7QUE1QndCLEcsQ0ErQjFCO0FBQ0E7QUFDQTs7Ozs7eUJBQ0ksSSxFQUFBLFUsRUFBZ0M7QUFBQTs7QUFDbEMsNkJBQXVCLGtCQUFRLEVBQUc7QUFDaEMsWUFBTSxPQUFPLEdBQUcsZ0JBQWhCLFFBQWdCLENBQWhCO0FBRUEsZUFBTyxDQUFQLFlBQW9CLE1BQXBCO0FBRUEsZUFBTyxDQUFQO0FBTmdDLE9BQ2xDLEVBRGtDLENBU2xDO0FBQ0E7QUFDQTs7QUFDQSwyQkFBcUIsT0FBTyxDQUFDLFlBQTdCLEdBQTRCLENBQTVCO0FBOUN3QixLLENBaUQxQjs7Ozt3QkFDRyxPLEVBQXlCO0FBQzFCLFVBQU0sUUFBUSxHQUFHLE9BQU8sQ0FBeEI7QUFFQSxVQUFJLHdCQUFKLFFBQUksQ0FBSixFQUgwQixRQUsxQjs7QUFDQSxpQ0FBMkIsWUFBWSxLQUFaLFFBQTNCLElBQTJCLENBQTNCO0FBQ0E7QUFDRDs7Ozs7OztBQXpETTtBQUVBO0FBRUE7QUFFQSwyQkFBUztBQUNkLFFBQU0sRUFBRTtBQURNLENBQVQiLCJmaWxlIjoiMTE4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE91clZ1ZSwgeyBWdWVDb25zdHJ1Y3RvciB9IGZyb20gJ3Z1ZSdcbmltcG9ydCB7IFZ1ZXRpZnlVc2VPcHRpb25zIH0gZnJvbSAndnVldGlmeS90eXBlcydcbmltcG9ydCB7IGNvbnNvbGVFcnJvciB9IGZyb20gJy4vdXRpbC9jb25zb2xlJ1xuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFsbCAoVnVlOiBWdWVDb25zdHJ1Y3RvciwgYXJnczogVnVldGlmeVVzZU9wdGlvbnMgPSB7fSkge1xuICBpZiAoKGluc3RhbGwgYXMgYW55KS5pbnN0YWxsZWQpIHJldHVyblxuICAoaW5zdGFsbCBhcyBhbnkpLmluc3RhbGxlZCA9IHRydWVcblxuICBpZiAoT3VyVnVlICE9PSBWdWUpIHtcbiAgICBjb25zb2xlRXJyb3IoJ011bHRpcGxlIGluc3RhbmNlcyBvZiBWdWUgZGV0ZWN0ZWRcXG5TZWUgaHR0cHM6Ly9naXRodWIuY29tL3Z1ZXRpZnlqcy92dWV0aWZ5L2lzc3Vlcy80MDY4XFxuXFxuSWYgeW91XFwncmUgc2VlaW5nIFwiJGF0dHJzIGlzIHJlYWRvbmx5XCIsIGl0XFwncyBjYXVzZWQgYnkgdGhpcycpXG4gIH1cblxuICBjb25zdCBjb21wb25lbnRzID0gYXJncy5jb21wb25lbnRzIHx8IHt9XG4gIGNvbnN0IGRpcmVjdGl2ZXMgPSBhcmdzLmRpcmVjdGl2ZXMgfHwge31cblxuICBmb3IgKGNvbnN0IG5hbWUgaW4gZGlyZWN0aXZlcykge1xuICAgIGNvbnN0IGRpcmVjdGl2ZSA9IGRpcmVjdGl2ZXNbbmFtZV1cblxuICAgIFZ1ZS5kaXJlY3RpdmUobmFtZSwgZGlyZWN0aXZlKVxuICB9XG5cbiAgKGZ1bmN0aW9uIHJlZ2lzdGVyQ29tcG9uZW50cyAoY29tcG9uZW50czogYW55KSB7XG4gICAgaWYgKGNvbXBvbmVudHMpIHtcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIGNvbXBvbmVudHMpIHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50ID0gY29tcG9uZW50c1trZXldXG4gICAgICAgIGlmIChjb21wb25lbnQgJiYgIXJlZ2lzdGVyQ29tcG9uZW50cyhjb21wb25lbnQuJF92dWV0aWZ5X3N1YmNvbXBvbmVudHMpKSB7XG4gICAgICAgICAgVnVlLmNvbXBvbmVudChrZXksIGNvbXBvbmVudCBhcyB0eXBlb2YgVnVlKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2VcbiAgfSkoY29tcG9uZW50cylcblxuICAvLyBVc2VkIHRvIGF2b2lkIG11bHRpcGxlIG1peGlucyBiZWluZyBzZXR1cFxuICAvLyB3aGVuIGluIGRldiBtb2RlIGFuZCBob3QgbW9kdWxlIHJlbG9hZFxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vdnVlanMvdnVlL2lzc3Vlcy81MDg5I2lzc3VlY29tbWVudC0yODQyNjAxMTFcbiAgaWYgKFZ1ZS4kX3Z1ZXRpZnlfaW5zdGFsbGVkKSByZXR1cm5cbiAgVnVlLiRfdnVldGlmeV9pbnN0YWxsZWQgPSB0cnVlXG5cbiAgVnVlLm1peGluKHtcbiAgICBiZWZvcmVDcmVhdGUgKCkge1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuJG9wdGlvbnMgYXMgYW55XG5cbiAgICAgIGlmIChvcHRpb25zLnZ1ZXRpZnkpIHtcbiAgICAgICAgb3B0aW9ucy52dWV0aWZ5LmluaXQodGhpcywgb3B0aW9ucy5zc3JDb250ZXh0KVxuICAgICAgICB0aGlzLiR2dWV0aWZ5ID0gVnVlLm9ic2VydmFibGUob3B0aW9ucy52dWV0aWZ5LmZyYW1ld29yaylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuJHZ1ZXRpZnkgPSAob3B0aW9ucy5wYXJlbnQgJiYgb3B0aW9ucy5wYXJlbnQuJHZ1ZXRpZnkpIHx8IHRoaXNcbiAgICAgIH1cbiAgICB9LFxuICB9KVxufVxuIiwiZXhwb3J0IGRlZmF1bHQge1xuICBiYWRnZTogJ0JhZGdlJyxcbiAgY2xvc2U6ICdDbG9zZScsXG4gIGRhdGFJdGVyYXRvcjoge1xuICAgIG5vUmVzdWx0c1RleHQ6ICdObyBtYXRjaGluZyByZWNvcmRzIGZvdW5kJyxcbiAgICBsb2FkaW5nVGV4dDogJ0xvYWRpbmcgaXRlbXMuLi4nLFxuICB9LFxuICBkYXRhVGFibGU6IHtcbiAgICBpdGVtc1BlclBhZ2VUZXh0OiAnUm93cyBwZXIgcGFnZTonLFxuICAgIGFyaWFMYWJlbDoge1xuICAgICAgc29ydERlc2NlbmRpbmc6ICdTb3J0ZWQgZGVzY2VuZGluZy4nLFxuICAgICAgc29ydEFzY2VuZGluZzogJ1NvcnRlZCBhc2NlbmRpbmcuJyxcbiAgICAgIHNvcnROb25lOiAnTm90IHNvcnRlZC4nLFxuICAgICAgYWN0aXZhdGVOb25lOiAnQWN0aXZhdGUgdG8gcmVtb3ZlIHNvcnRpbmcuJyxcbiAgICAgIGFjdGl2YXRlRGVzY2VuZGluZzogJ0FjdGl2YXRlIHRvIHNvcnQgZGVzY2VuZGluZy4nLFxuICAgICAgYWN0aXZhdGVBc2NlbmRpbmc6ICdBY3RpdmF0ZSB0byBzb3J0IGFzY2VuZGluZy4nLFxuICAgIH0sXG4gICAgc29ydEJ5OiAnU29ydCBieScsXG4gIH0sXG4gIGRhdGFGb290ZXI6IHtcbiAgICBpdGVtc1BlclBhZ2VUZXh0OiAnSXRlbXMgcGVyIHBhZ2U6JyxcbiAgICBpdGVtc1BlclBhZ2VBbGw6ICdBbGwnLFxuICAgIG5leHRQYWdlOiAnTmV4dCBwYWdlJyxcbiAgICBwcmV2UGFnZTogJ1ByZXZpb3VzIHBhZ2UnLFxuICAgIGZpcnN0UGFnZTogJ0ZpcnN0IHBhZ2UnLFxuICAgIGxhc3RQYWdlOiAnTGFzdCBwYWdlJyxcbiAgICBwYWdlVGV4dDogJ3swfS17MX0gb2YgezJ9JyxcbiAgfSxcbiAgZGF0ZVBpY2tlcjoge1xuICAgIGl0ZW1zU2VsZWN0ZWQ6ICd7MH0gc2VsZWN0ZWQnLFxuICAgIG5leHRNb250aEFyaWFMYWJlbDogJ05leHQgbW9udGgnLFxuICAgIG5leHRZZWFyQXJpYUxhYmVsOiAnTmV4dCB5ZWFyJyxcbiAgICBwcmV2TW9udGhBcmlhTGFiZWw6ICdQcmV2aW91cyBtb250aCcsXG4gICAgcHJldlllYXJBcmlhTGFiZWw6ICdQcmV2aW91cyB5ZWFyJyxcbiAgfSxcbiAgbm9EYXRhVGV4dDogJ05vIGRhdGEgYXZhaWxhYmxlJyxcbiAgY2Fyb3VzZWw6IHtcbiAgICBwcmV2OiAnUHJldmlvdXMgdmlzdWFsJyxcbiAgICBuZXh0OiAnTmV4dCB2aXN1YWwnLFxuICAgIGFyaWFMYWJlbDoge1xuICAgICAgZGVsaW1pdGVyOiAnQ2Fyb3VzZWwgc2xpZGUgezB9IG9mIHsxfScsXG4gICAgfSxcbiAgfSxcbiAgY2FsZW5kYXI6IHtcbiAgICBtb3JlRXZlbnRzOiAnezB9IG1vcmUnLFxuICB9LFxuICBmaWxlSW5wdXQ6IHtcbiAgICBjb3VudGVyOiAnezB9IGZpbGVzJyxcbiAgICBjb3VudGVyU2l6ZTogJ3swfSBmaWxlcyAoezF9IGluIHRvdGFsKScsXG4gIH0sXG4gIHRpbWVQaWNrZXI6IHtcbiAgICBhbTogJ0FNJyxcbiAgICBwbTogJ1BNJyxcbiAgfSxcbiAgcGFnaW5hdGlvbjoge1xuICAgIGFyaWFMYWJlbDoge1xuICAgICAgd3JhcHBlcjogJ1BhZ2luYXRpb24gTmF2aWdhdGlvbicsXG4gICAgICBuZXh0OiAnTmV4dCBwYWdlJyxcbiAgICAgIHByZXZpb3VzOiAnUHJldmlvdXMgcGFnZScsXG4gICAgICBwYWdlOiAnR290byBQYWdlIHswfScsXG4gICAgICBjdXJyZW50UGFnZTogJ0N1cnJlbnQgUGFnZSwgUGFnZSB7MH0nLFxuICAgIH0sXG4gIH0sXG59XG4iLCIvLyBTdHlsZXNcbmltcG9ydCAnLi4vLi4vc3R5bGVzL21haW4uc2FzcydcblxuLy8gTG9jYWxlXG5pbXBvcnQgeyBlbiB9IGZyb20gJy4uLy4uL2xvY2FsZSdcblxuLy8gSWNvbnNcbi8vIFRPRE86IEVuYWJsZSBmb3IgdjNcbi8vIGltcG9ydCBtZGkgZnJvbSAnLi4vLi4vc2VydmljZXMvaWNvbnMvcHJlc2V0cy9tZGknXG5cbi8vIFR5cGVzXG5pbXBvcnQgeyBWdWV0aWZ5UHJlc2V0IH0gZnJvbSAndnVldGlmeS90eXBlcy9zZXJ2aWNlcy9wcmVzZXRzJ1xuXG5leHBvcnQgY29uc3QgcHJlc2V0OiBWdWV0aWZ5UHJlc2V0ID0ge1xuICBicmVha3BvaW50OiB7XG4gICAgLy8gVE9ETzogdXBkYXRlIHRvIE1EMiBzcGVjIGluIHYzIC0gMTI4MFxuICAgIG1vYmlsZUJyZWFrcG9pbnQ6IDEyNjQsXG4gICAgc2Nyb2xsQmFyV2lkdGg6IDE2LFxuICAgIHRocmVzaG9sZHM6IHtcbiAgICAgIHhzOiA2MDAsXG4gICAgICBzbTogOTYwLFxuICAgICAgbWQ6IDEyODAsXG4gICAgICBsZzogMTkyMCxcbiAgICB9LFxuICB9LFxuICBpY29uczoge1xuICAgIC8vIFRPRE86IHJlbW92ZSB2M1xuICAgIGljb25mb250OiAnbWRpJyxcbiAgICB2YWx1ZXM6IHt9LFxuICB9LFxuICBsYW5nOiB7XG4gICAgY3VycmVudDogJ2VuJyxcbiAgICBsb2NhbGVzOiB7IGVuIH0sXG4gICAgLy8gRGVmYXVsdCB0cmFuc2xhdG9yIGV4aXN0cyBpbiBsYW5nIHNlcnZpY2VcbiAgICB0OiB1bmRlZmluZWQgYXMgYW55LFxuICB9LFxuICBydGw6IGZhbHNlLFxuICB0aGVtZToge1xuICAgIGRhcms6IGZhbHNlLFxuICAgIGRlZmF1bHQ6ICdsaWdodCcsXG4gICAgZGlzYWJsZTogZmFsc2UsXG4gICAgb3B0aW9uczoge1xuICAgICAgY3NwTm9uY2U6IHVuZGVmaW5lZCxcbiAgICAgIGN1c3RvbVByb3BlcnRpZXM6IHVuZGVmaW5lZCxcbiAgICAgIG1pbmlmeVRoZW1lOiB1bmRlZmluZWQsXG4gICAgICB0aGVtZUNhY2hlOiB1bmRlZmluZWQsXG4gICAgICB2YXJpYXRpb25zOiB0cnVlLFxuICAgIH0sXG4gICAgdGhlbWVzOiB7XG4gICAgICBsaWdodDoge1xuICAgICAgICBwcmltYXJ5OiAnIzE5NzZEMicsXG4gICAgICAgIHNlY29uZGFyeTogJyM0MjQyNDInLFxuICAgICAgICBhY2NlbnQ6ICcjODJCMUZGJyxcbiAgICAgICAgZXJyb3I6ICcjRkY1MjUyJyxcbiAgICAgICAgaW5mbzogJyMyMTk2RjMnLFxuICAgICAgICBzdWNjZXNzOiAnIzRDQUY1MCcsXG4gICAgICAgIHdhcm5pbmc6ICcjRkI4QzAwJyxcbiAgICAgIH0sXG4gICAgICBkYXJrOiB7XG4gICAgICAgIHByaW1hcnk6ICcjMjE5NkYzJyxcbiAgICAgICAgc2Vjb25kYXJ5OiAnIzQyNDI0MicsXG4gICAgICAgIGFjY2VudDogJyNGRjQwODEnLFxuICAgICAgICBlcnJvcjogJyNGRjUyNTInLFxuICAgICAgICBpbmZvOiAnIzIxOTZGMycsXG4gICAgICAgIHN1Y2Nlc3M6ICcjNENBRjUwJyxcbiAgICAgICAgd2FybmluZzogJyNGQjhDMDAnLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxufVxuIiwiLy8gQ29udHJhY3RzXG5pbXBvcnQgeyBWdWV0aWZ5U2VydmljZUNvbnRyYWN0IH0gZnJvbSAndnVldGlmeS90eXBlcy9zZXJ2aWNlcy9pbmRleCdcblxuLy8gVHlwZXNcbmltcG9ydCBWdWUgZnJvbSAndnVlJ1xuXG5leHBvcnQgY2xhc3MgU2VydmljZSBpbXBsZW1lbnRzIFZ1ZXRpZnlTZXJ2aWNlQ29udHJhY3Qge1xuICBmcmFtZXdvcmsgPSB7fVxuXG4gIGluaXQgKHJvb3Q6IFZ1ZSwgc3NyQ29udGV4dD86IG9iamVjdCkge31cbn1cbiIsIi8vIFByZXNldFxuaW1wb3J0IHsgcHJlc2V0IGFzIFByZXNldCB9IGZyb20gJy4uLy4uL3ByZXNldHMvZGVmYXVsdCdcblxuLy8gVXRpbGl0aWVzXG5pbXBvcnQgeyBjb25zb2xlV2FybiB9IGZyb20gJy4uLy4uL3V0aWwvY29uc29sZSdcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL3V0aWwvaGVscGVycydcblxuLy8gVHlwZXNcbmltcG9ydCBGcmFtZXdvcmsgZnJvbSAndnVldGlmeS90eXBlcydcbmltcG9ydCB7IFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlJ1xuaW1wb3J0IHtcbiAgVXNlclZ1ZXRpZnlQcmVzZXQsXG4gIFZ1ZXRpZnlQcmVzZXQsXG59IGZyb20gJ3Z1ZXRpZnkvdHlwZXMvc2VydmljZXMvcHJlc2V0cydcblxuZXhwb3J0IGNsYXNzIFByZXNldHMgZXh0ZW5kcyBTZXJ2aWNlIHtcbiAgc3RhdGljIHByb3BlcnR5OiAncHJlc2V0cycgPSAncHJlc2V0cydcblxuICBjb25zdHJ1Y3RvciAoXG4gICAgcGFyZW50UHJlc2V0OiBQYXJ0aWFsPFVzZXJWdWV0aWZ5UHJlc2V0PixcbiAgICBwYXJlbnQ6IEluc3RhbmNlVHlwZTx0eXBlb2YgRnJhbWV3b3JrPixcbiAgKSB7XG4gICAgc3VwZXIoKVxuXG4gICAgLy8gVGhlIGRlZmF1bHQgcHJlc2V0XG4gICAgY29uc3QgZGVmYXVsdFByZXNldCA9IG1lcmdlRGVlcCh7fSwgUHJlc2V0KVxuICAgIC8vIFRoZSB1c2VyIHByb3ZpZGVkIHByZXNldFxuICAgIGNvbnN0IHsgdXNlclByZXNldCB9ID0gcGFyZW50XG4gICAgLy8gVGhlIHVzZXIgcHJvdmlkZWQgZ2xvYmFsIHByZXNldFxuICAgIGNvbnN0IHtcbiAgICAgIHByZXNldDogZ2xvYmFsUHJlc2V0ID0ge30sXG4gICAgICAuLi5wcmVzZXRcbiAgICB9ID0gdXNlclByZXNldFxuXG4gICAgaWYgKGdsb2JhbFByZXNldC5wcmVzZXQgIT0gbnVsbCkge1xuICAgICAgY29uc29sZVdhcm4oJ0dsb2JhbCBwcmVzZXRzIGRvIG5vdCBzdXBwb3J0IHRoZSAqKnByZXNldCoqIG9wdGlvbiwgaXQgY2FuIGJlIHNhZmVseSBvbWl0dGVkJylcbiAgICB9XG5cbiAgICBwYXJlbnQucHJlc2V0ID0gbWVyZ2VEZWVwKFxuICAgICAgbWVyZ2VEZWVwKGRlZmF1bHRQcmVzZXQsIGdsb2JhbFByZXNldCksXG4gICAgICBwcmVzZXRcbiAgICApIGFzIFZ1ZXRpZnlQcmVzZXRcbiAgfVxufVxuIiwiLy8gRXh0ZW5zaW9uc1xuaW1wb3J0IHsgU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UnXG5cbi8vIFR5cGVzXG5pbXBvcnQgeyBUYXJnZXRQcm9wVmFsdWVzLCBUYXJnZXRQcm9wLCBBcHBsaWNhdGlvbiBhcyBJQXBwbGljYXRpb24gfSBmcm9tICd2dWV0aWZ5L3R5cGVzL3NlcnZpY2VzL2FwcGxpY2F0aW9uJ1xuXG5leHBvcnQgY2xhc3MgQXBwbGljYXRpb24gZXh0ZW5kcyBTZXJ2aWNlIGltcGxlbWVudHMgSUFwcGxpY2F0aW9uIHtcbiAgc3RhdGljIHByb3BlcnR5OiAnYXBwbGljYXRpb24nID0gJ2FwcGxpY2F0aW9uJ1xuXG4gIGJhciA9IDBcblxuICB0b3AgPSAwXG5cbiAgbGVmdCA9IDBcblxuICBpbnNldEZvb3RlciA9IDBcblxuICByaWdodCA9IDBcblxuICBib3R0b20gPSAwXG5cbiAgZm9vdGVyID0gMFxuXG4gIGFwcGxpY2F0aW9uOiBEaWN0aW9uYXJ5PFRhcmdldFByb3BWYWx1ZXM+ID0ge1xuICAgIGJhcjoge30sXG4gICAgdG9wOiB7fSxcbiAgICBsZWZ0OiB7fSxcbiAgICBpbnNldEZvb3Rlcjoge30sXG4gICAgcmlnaHQ6IHt9LFxuICAgIGJvdHRvbToge30sXG4gICAgZm9vdGVyOiB7fSxcbiAgfVxuXG4gIHJlZ2lzdGVyIChcbiAgICB1aWQ6IG51bWJlcixcbiAgICBsb2NhdGlvbjogVGFyZ2V0UHJvcCxcbiAgICBzaXplOiBudW1iZXJcbiAgKSB7XG4gICAgdGhpcy5hcHBsaWNhdGlvbltsb2NhdGlvbl0gPSB7IFt1aWRdOiBzaXplIH1cblxuICAgIHRoaXMudXBkYXRlKGxvY2F0aW9uKVxuICB9XG5cbiAgdW5yZWdpc3RlciAodWlkOiBudW1iZXIsIGxvY2F0aW9uOiBUYXJnZXRQcm9wKSB7XG4gICAgaWYgKHRoaXMuYXBwbGljYXRpb25bbG9jYXRpb25dW3VpZF0gPT0gbnVsbCkgcmV0dXJuXG5cbiAgICBkZWxldGUgdGhpcy5hcHBsaWNhdGlvbltsb2NhdGlvbl1bdWlkXVxuICAgIHRoaXMudXBkYXRlKGxvY2F0aW9uKVxuICB9XG5cbiAgdXBkYXRlIChsb2NhdGlvbjogVGFyZ2V0UHJvcCkge1xuICAgIHRoaXNbbG9jYXRpb25dID0gT2JqZWN0LnZhbHVlcyh0aGlzLmFwcGxpY2F0aW9uW2xvY2F0aW9uXSlcbiAgICAgIC5yZWR1Y2UoKGFjYzogbnVtYmVyLCBjdXI6IG51bWJlcik6IG51bWJlciA9PiAoYWNjICsgY3VyKSwgMClcbiAgfVxufVxuIiwiLy8gRXh0ZW5zaW9uc1xuaW1wb3J0IHsgU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UnXG5cbi8vIFR5cGVzXG5pbXBvcnQgeyBWdWV0aWZ5UHJlc2V0IH0gZnJvbSAndnVldGlmeS90eXBlcy9zZXJ2aWNlcy9wcmVzZXRzJ1xuaW1wb3J0IHsgQnJlYWtwb2ludCBhcyBJQnJlYWtwb2ludCB9IGZyb20gJ3Z1ZXRpZnkvdHlwZXMvc2VydmljZXMvYnJlYWtwb2ludCdcblxuZXhwb3J0IGNsYXNzIEJyZWFrcG9pbnQgZXh0ZW5kcyBTZXJ2aWNlIGltcGxlbWVudHMgSUJyZWFrcG9pbnQge1xuICBwdWJsaWMgc3RhdGljIHByb3BlcnR5OiAnYnJlYWtwb2ludCcgPSAnYnJlYWtwb2ludCdcblxuICAvLyBQdWJsaWNcbiAgcHVibGljIHhzID0gZmFsc2VcblxuICBwdWJsaWMgc20gPSBmYWxzZVxuXG4gIHB1YmxpYyBtZCA9IGZhbHNlXG5cbiAgcHVibGljIGxnID0gZmFsc2VcblxuICBwdWJsaWMgeGwgPSBmYWxzZVxuXG4gIHB1YmxpYyB4c09ubHkgPSBmYWxzZVxuXG4gIHB1YmxpYyBzbU9ubHkgPSBmYWxzZVxuXG4gIHB1YmxpYyBzbUFuZERvd24gPSBmYWxzZVxuXG4gIHB1YmxpYyBzbUFuZFVwID0gZmFsc2VcblxuICBwdWJsaWMgbWRPbmx5ID0gZmFsc2VcblxuICBwdWJsaWMgbWRBbmREb3duID0gZmFsc2VcblxuICBwdWJsaWMgbWRBbmRVcCA9IGZhbHNlXG5cbiAgcHVibGljIGxnT25seSA9IGZhbHNlXG5cbiAgcHVibGljIGxnQW5kRG93biA9IGZhbHNlXG5cbiAgcHVibGljIGxnQW5kVXAgPSBmYWxzZVxuXG4gIHB1YmxpYyB4bE9ubHkgPSBmYWxzZVxuXG4gIC8vIFZhbHVlIGlzIHhzIHRvIG1hdGNoIHYyLnggZnVuY3Rpb25hbGl0eVxuICBwdWJsaWMgbmFtZTogSUJyZWFrcG9pbnRbJ25hbWUnXSA9ICd4cydcblxuICBwdWJsaWMgaGVpZ2h0ID0gMFxuXG4gIHB1YmxpYyB3aWR0aCA9IDBcblxuICAvLyBUT0RPOiBBZGQgZnVuY3Rpb25hbGl0eSB0byBkZXRlY3QgdGhpcyBkeW5hbWljYWxseSBpbiB2M1xuICAvLyBWYWx1ZSBpcyB0cnVlIHRvIG1hdGNoIHYyLnggZnVuY3Rpb25hbGl0eVxuICBwdWJsaWMgbW9iaWxlID0gdHJ1ZVxuXG4gIHB1YmxpYyBtb2JpbGVCcmVha3BvaW50OiBJQnJlYWtwb2ludFsnbW9iaWxlQnJlYWtwb2ludCddXG5cbiAgcHVibGljIHRocmVzaG9sZHM6IElCcmVha3BvaW50Wyd0aHJlc2hvbGRzJ11cblxuICBwdWJsaWMgc2Nyb2xsQmFyV2lkdGg6IElCcmVha3BvaW50WydzY3JvbGxCYXJXaWR0aCddXG5cbiAgcHJpdmF0ZSByZXNpemVUaW1lb3V0ID0gMFxuXG4gIGNvbnN0cnVjdG9yIChwcmVzZXQ6IFZ1ZXRpZnlQcmVzZXQpIHtcbiAgICBzdXBlcigpXG5cbiAgICBjb25zdCB7XG4gICAgICBtb2JpbGVCcmVha3BvaW50LFxuICAgICAgc2Nyb2xsQmFyV2lkdGgsXG4gICAgICB0aHJlc2hvbGRzLFxuICAgIH0gPSBwcmVzZXRbQnJlYWtwb2ludC5wcm9wZXJ0eV1cblxuICAgIHRoaXMubW9iaWxlQnJlYWtwb2ludCA9IG1vYmlsZUJyZWFrcG9pbnRcbiAgICB0aGlzLnNjcm9sbEJhcldpZHRoID0gc2Nyb2xsQmFyV2lkdGhcbiAgICB0aGlzLnRocmVzaG9sZHMgPSB0aHJlc2hvbGRzXG5cbiAgICB0aGlzLmluaXQoKVxuICB9XG5cbiAgcHVibGljIGluaXQgKCkge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykgcmV0dXJuXG5cbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdyZXNpemUnLFxuICAgICAgdGhpcy5vblJlc2l6ZS5iaW5kKHRoaXMpLFxuICAgICAgeyBwYXNzaXZlOiB0cnVlIH1cbiAgICApXG5cbiAgICB0aGlzLnVwZGF0ZSgpXG4gIH1cblxuICBwcml2YXRlIG9uUmVzaXplICgpIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5yZXNpemVUaW1lb3V0KVxuXG4gICAgLy8gQWRkZWQgZGVib3VuY2UgdG8gbWF0Y2ggd2hhdFxuICAgIC8vIHYtcmVzaXplIHVzZWQgdG8gZG8gYnV0IHdhc1xuICAgIC8vIHJlbW92ZWQgZHVlIHRvIGEgbWVtb3J5IGxlYWtcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vdnVldGlmeWpzL3Z1ZXRpZnkvcHVsbC8yOTk3XG4gICAgdGhpcy5yZXNpemVUaW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQodGhpcy51cGRhdGUuYmluZCh0aGlzKSwgMjAwKVxuICB9XG5cbiAgLyogZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1zdGF0ZW1lbnRzICovXG4gIHByaXZhdGUgdXBkYXRlICgpIHtcbiAgICBjb25zdCBoZWlnaHQgPSB0aGlzLmdldENsaWVudEhlaWdodCgpXG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLmdldENsaWVudFdpZHRoKClcblxuICAgIGNvbnN0IHhzID0gd2lkdGggPCB0aGlzLnRocmVzaG9sZHMueHNcbiAgICBjb25zdCBzbSA9IHdpZHRoIDwgdGhpcy50aHJlc2hvbGRzLnNtICYmICF4c1xuICAgIGNvbnN0IG1kID0gd2lkdGggPCAodGhpcy50aHJlc2hvbGRzLm1kIC0gdGhpcy5zY3JvbGxCYXJXaWR0aCkgJiYgIShzbSB8fCB4cylcbiAgICBjb25zdCBsZyA9IHdpZHRoIDwgKHRoaXMudGhyZXNob2xkcy5sZyAtIHRoaXMuc2Nyb2xsQmFyV2lkdGgpICYmICEobWQgfHwgc20gfHwgeHMpXG4gICAgY29uc3QgeGwgPSB3aWR0aCA+PSAodGhpcy50aHJlc2hvbGRzLmxnIC0gdGhpcy5zY3JvbGxCYXJXaWR0aClcblxuICAgIHRoaXMuaGVpZ2h0ID0gaGVpZ2h0XG4gICAgdGhpcy53aWR0aCA9IHdpZHRoXG5cbiAgICB0aGlzLnhzID0geHNcbiAgICB0aGlzLnNtID0gc21cbiAgICB0aGlzLm1kID0gbWRcbiAgICB0aGlzLmxnID0gbGdcbiAgICB0aGlzLnhsID0geGxcblxuICAgIHRoaXMueHNPbmx5ID0geHNcbiAgICB0aGlzLnNtT25seSA9IHNtXG4gICAgdGhpcy5zbUFuZERvd24gPSAoeHMgfHwgc20pICYmICEobWQgfHwgbGcgfHwgeGwpXG4gICAgdGhpcy5zbUFuZFVwID0gIXhzICYmIChzbSB8fCBtZCB8fCBsZyB8fCB4bClcbiAgICB0aGlzLm1kT25seSA9IG1kXG4gICAgdGhpcy5tZEFuZERvd24gPSAoeHMgfHwgc20gfHwgbWQpICYmICEobGcgfHwgeGwpXG4gICAgdGhpcy5tZEFuZFVwID0gISh4cyB8fCBzbSkgJiYgKG1kIHx8IGxnIHx8IHhsKVxuICAgIHRoaXMubGdPbmx5ID0gbGdcbiAgICB0aGlzLmxnQW5kRG93biA9ICh4cyB8fCBzbSB8fCBtZCB8fCBsZykgJiYgIXhsXG4gICAgdGhpcy5sZ0FuZFVwID0gISh4cyB8fCBzbSB8fCBtZCkgJiYgKGxnIHx8IHhsKVxuICAgIHRoaXMueGxPbmx5ID0geGxcblxuICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgY2FzZSAoeHMpOlxuICAgICAgICB0aGlzLm5hbWUgPSAneHMnXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIChzbSk6XG4gICAgICAgIHRoaXMubmFtZSA9ICdzbSdcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgKG1kKTpcbiAgICAgICAgdGhpcy5uYW1lID0gJ21kJ1xuICAgICAgICBicmVha1xuICAgICAgY2FzZSAobGcpOlxuICAgICAgICB0aGlzLm5hbWUgPSAnbGcnXG4gICAgICAgIGJyZWFrXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLm5hbWUgPSAneGwnXG4gICAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB0aGlzLm1vYmlsZUJyZWFrcG9pbnQgPT09ICdudW1iZXInKSB7XG4gICAgICB0aGlzLm1vYmlsZSA9IHdpZHRoIDwgcGFyc2VJbnQodGhpcy5tb2JpbGVCcmVha3BvaW50LCAxMClcblxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgYnJlYWtwb2ludHMgPSB7XG4gICAgICB4czogMCxcbiAgICAgIHNtOiAxLFxuICAgICAgbWQ6IDIsXG4gICAgICBsZzogMyxcbiAgICAgIHhsOiA0LFxuICAgIH0gYXMgY29uc3RcblxuICAgIGNvbnN0IGN1cnJlbnQgPSBicmVha3BvaW50c1t0aGlzLm5hbWVdXG4gICAgY29uc3QgbWF4ID0gYnJlYWtwb2ludHNbdGhpcy5tb2JpbGVCcmVha3BvaW50XVxuXG4gICAgdGhpcy5tb2JpbGUgPSBjdXJyZW50IDw9IG1heFxuICB9XG5cbiAgLy8gQ3Jvc3MtYnJvd3NlciBzdXBwb3J0IGFzIGRlc2NyaWJlZCBpbjpcbiAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTI0ODA4MVxuICBwcml2YXRlIGdldENsaWVudFdpZHRoICgpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJykgcmV0dXJuIDAgLy8gU1NSXG4gICAgcmV0dXJuIE1hdGgubWF4KFxuICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50IS5jbGllbnRXaWR0aCxcbiAgICAgIHdpbmRvdy5pbm5lcldpZHRoIHx8IDBcbiAgICApXG4gIH1cblxuICBwcml2YXRlIGdldENsaWVudEhlaWdodCAoKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybiAwIC8vIFNTUlxuICAgIHJldHVybiBNYXRoLm1heChcbiAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCEuY2xpZW50SGVpZ2h0LFxuICAgICAgd2luZG93LmlubmVySGVpZ2h0IHx8IDBcbiAgICApXG4gIH1cbn1cbiIsImV4cG9ydCB0eXBlIEVhc2luZ0Z1bmN0aW9uID0gKHQ6IG51bWJlcikgPT4gbnVtYmVyXG5cbi8vIGxpbmVhclxuZXhwb3J0IGNvbnN0IGxpbmVhciA9ICh0OiBudW1iZXIpID0+IHRcbi8vIGFjY2VsZXJhdGluZyBmcm9tIHplcm8gdmVsb2NpdHlcbmV4cG9ydCBjb25zdCBlYXNlSW5RdWFkID0gKHQ6IG51bWJlcikgPT4gdCAqKiAyXG4vLyBkZWNlbGVyYXRpbmcgdG8gemVybyB2ZWxvY2l0eVxuZXhwb3J0IGNvbnN0IGVhc2VPdXRRdWFkID0gKHQ6IG51bWJlcikgPT4gdCAqICgyIC0gdClcbi8vIGFjY2VsZXJhdGlvbiB1bnRpbCBoYWxmd2F5LCB0aGVuIGRlY2VsZXJhdGlvblxuZXhwb3J0IGNvbnN0IGVhc2VJbk91dFF1YWQgPSAodDogbnVtYmVyKSA9PiAodCA8IDAuNSA/IDIgKiB0ICoqIDIgOiAtMSArICg0IC0gMiAqIHQpICogdClcbi8vIGFjY2VsZXJhdGluZyBmcm9tIHplcm8gdmVsb2NpdHlcbmV4cG9ydCBjb25zdCBlYXNlSW5DdWJpYyA9ICh0OiBudW1iZXIpID0+IHQgKiogM1xuLy8gZGVjZWxlcmF0aW5nIHRvIHplcm8gdmVsb2NpdHlcbmV4cG9ydCBjb25zdCBlYXNlT3V0Q3ViaWMgPSAodDogbnVtYmVyKSA9PiAtLXQgKiogMyArIDFcbi8vIGFjY2VsZXJhdGlvbiB1bnRpbCBoYWxmd2F5LCB0aGVuIGRlY2VsZXJhdGlvblxuZXhwb3J0IGNvbnN0IGVhc2VJbk91dEN1YmljID0gKHQ6IG51bWJlcikgPT4gdCA8IDAuNSA/IDQgKiB0ICoqIDMgOiAodCAtIDEpICogKDIgKiB0IC0gMikgKiAoMiAqIHQgLSAyKSArIDFcbi8vIGFjY2VsZXJhdGluZyBmcm9tIHplcm8gdmVsb2NpdHlcbmV4cG9ydCBjb25zdCBlYXNlSW5RdWFydCA9ICh0OiBudW1iZXIpID0+IHQgKiogNFxuLy8gZGVjZWxlcmF0aW5nIHRvIHplcm8gdmVsb2NpdHlcbmV4cG9ydCBjb25zdCBlYXNlT3V0UXVhcnQgPSAodDogbnVtYmVyKSA9PiAxIC0gLS10ICoqIDRcbi8vIGFjY2VsZXJhdGlvbiB1bnRpbCBoYWxmd2F5LCB0aGVuIGRlY2VsZXJhdGlvblxuZXhwb3J0IGNvbnN0IGVhc2VJbk91dFF1YXJ0ID0gKHQ6IG51bWJlcikgPT4gKHQgPCAwLjUgPyA4ICogdCAqIHQgKiB0ICogdCA6IDEgLSA4ICogLS10ICogdCAqIHQgKiB0KVxuLy8gYWNjZWxlcmF0aW5nIGZyb20gemVybyB2ZWxvY2l0eVxuZXhwb3J0IGNvbnN0IGVhc2VJblF1aW50ID0gKHQ6IG51bWJlcikgPT4gdCAqKiA1XG4vLyBkZWNlbGVyYXRpbmcgdG8gemVybyB2ZWxvY2l0eVxuZXhwb3J0IGNvbnN0IGVhc2VPdXRRdWludCA9ICh0OiBudW1iZXIpID0+IDEgKyAtLXQgKiogNVxuLy8gYWNjZWxlcmF0aW9uIHVudGlsIGhhbGZ3YXksIHRoZW4gZGVjZWxlcmF0aW9uXG5leHBvcnQgY29uc3QgZWFzZUluT3V0UXVpbnQgPSAodDogbnVtYmVyKSA9PiB0IDwgMC41ID8gMTYgKiB0ICoqIDUgOiAxICsgMTYgKiAtLXQgKiogNVxuIiwiaW1wb3J0IFZ1ZSBmcm9tICd2dWUnXG5cbi8vIFJldHVybiB0YXJnZXQncyBjdW11bGF0aXZlIG9mZnNldCBmcm9tIHRoZSB0b3BcbmV4cG9ydCBmdW5jdGlvbiBnZXRPZmZzZXQgKHRhcmdldDogYW55KTogbnVtYmVyIHtcbiAgaWYgKHR5cGVvZiB0YXJnZXQgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIHRhcmdldFxuICB9XG5cbiAgbGV0IGVsID0gJCh0YXJnZXQpXG4gIGlmICghZWwpIHtcbiAgICB0aHJvdyB0eXBlb2YgdGFyZ2V0ID09PSAnc3RyaW5nJ1xuICAgICAgPyBuZXcgRXJyb3IoYFRhcmdldCBlbGVtZW50IFwiJHt0YXJnZXR9XCIgbm90IGZvdW5kLmApXG4gICAgICA6IG5ldyBUeXBlRXJyb3IoYFRhcmdldCBtdXN0IGJlIGEgTnVtYmVyL1NlbGVjdG9yL0hUTUxFbGVtZW50L1Z1ZUNvbXBvbmVudCwgcmVjZWl2ZWQgJHt0eXBlKHRhcmdldCl9IGluc3RlYWQuYClcbiAgfVxuXG4gIGxldCB0b3RhbE9mZnNldCA9IDBcbiAgd2hpbGUgKGVsKSB7XG4gICAgdG90YWxPZmZzZXQgKz0gZWwub2Zmc2V0VG9wXG4gICAgZWwgPSBlbC5vZmZzZXRQYXJlbnQgYXMgSFRNTEVsZW1lbnRcbiAgfVxuXG4gIHJldHVybiB0b3RhbE9mZnNldFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29udGFpbmVyIChjb250YWluZXI6IGFueSk6IEhUTUxFbGVtZW50IHtcbiAgY29uc3QgZWwgPSAkKGNvbnRhaW5lcilcblxuICBpZiAoZWwpIHJldHVybiBlbFxuXG4gIHRocm93IHR5cGVvZiBjb250YWluZXIgPT09ICdzdHJpbmcnXG4gICAgPyBuZXcgRXJyb3IoYENvbnRhaW5lciBlbGVtZW50IFwiJHtjb250YWluZXJ9XCIgbm90IGZvdW5kLmApXG4gICAgOiBuZXcgVHlwZUVycm9yKGBDb250YWluZXIgbXVzdCBiZSBhIFNlbGVjdG9yL0hUTUxFbGVtZW50L1Z1ZUNvbXBvbmVudCwgcmVjZWl2ZWQgJHt0eXBlKGNvbnRhaW5lcil9IGluc3RlYWQuYClcbn1cblxuZnVuY3Rpb24gdHlwZSAoZWw6IGFueSkge1xuICByZXR1cm4gZWwgPT0gbnVsbCA/IGVsIDogZWwuY29uc3RydWN0b3IubmFtZVxufVxuXG5mdW5jdGlvbiAkIChlbDogYW55KTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgaWYgKHR5cGVvZiBlbCA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oZWwpXG4gIH0gZWxzZSBpZiAoZWwgJiYgZWwuX2lzVnVlKSB7XG4gICAgcmV0dXJuIChlbCBhcyBWdWUpLiRlbCBhcyBIVE1MRWxlbWVudFxuICB9IGVsc2UgaWYgKGVsIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICByZXR1cm4gZWxcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG59XG4iLCIvLyBFeHRlbnNpb25zXG5pbXBvcnQgeyBTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZSdcblxuLy8gVXRpbGl0aWVzXG5pbXBvcnQgKiBhcyBlYXNpbmdQYXR0ZXJucyBmcm9tICcuL2Vhc2luZy1wYXR0ZXJucydcbmltcG9ydCB7XG4gIGdldENvbnRhaW5lcixcbiAgZ2V0T2Zmc2V0LFxufSBmcm9tICcuL3V0aWwnXG5cbi8vIFR5cGVzXG5pbXBvcnQgeyBHb1RvT3B0aW9ucywgVnVldGlmeUdvVG9UYXJnZXQgfSBmcm9tICd2dWV0aWZ5L3R5cGVzL3NlcnZpY2VzL2dvdG8nXG5cbmltcG9ydCB7IFZ1ZXRpZnlTZXJ2aWNlQ29udHJhY3QgfSBmcm9tICd2dWV0aWZ5L3R5cGVzL3NlcnZpY2VzJ1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnb1RvIChcbiAgX3RhcmdldDogVnVldGlmeUdvVG9UYXJnZXQsXG4gIF9zZXR0aW5nczogUGFydGlhbDxHb1RvT3B0aW9ucz4gPSB7fVxuKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgY29uc3Qgc2V0dGluZ3M6IEdvVG9PcHRpb25zID0ge1xuICAgIGNvbnRhaW5lcjogKGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQgYXMgSFRNTEVsZW1lbnQgfCBudWxsKSB8fCBkb2N1bWVudC5ib2R5IHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxcbiAgICBkdXJhdGlvbjogNTAwLFxuICAgIG9mZnNldDogMCxcbiAgICBlYXNpbmc6ICdlYXNlSW5PdXRDdWJpYycsXG4gICAgYXBwT2Zmc2V0OiB0cnVlLFxuICAgIC4uLl9zZXR0aW5ncyxcbiAgfVxuICBjb25zdCBjb250YWluZXIgPSBnZXRDb250YWluZXIoc2V0dGluZ3MuY29udGFpbmVyKVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gIGlmIChzZXR0aW5ncy5hcHBPZmZzZXQgJiYgZ29Uby5mcmFtZXdvcmsuYXBwbGljYXRpb24pIHtcbiAgICBjb25zdCBpc0RyYXdlciA9IGNvbnRhaW5lci5jbGFzc0xpc3QuY29udGFpbnMoJ3YtbmF2aWdhdGlvbi1kcmF3ZXInKVxuICAgIGNvbnN0IGlzQ2xpcHBlZCA9IGNvbnRhaW5lci5jbGFzc0xpc3QuY29udGFpbnMoJ3YtbmF2aWdhdGlvbi1kcmF3ZXItLWNsaXBwZWQnKVxuICAgIGNvbnN0IHsgYmFyLCB0b3AgfSA9IGdvVG8uZnJhbWV3b3JrLmFwcGxpY2F0aW9uIGFzIGFueVxuXG4gICAgc2V0dGluZ3Mub2Zmc2V0ICs9IGJhclxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKCFpc0RyYXdlciB8fCBpc0NsaXBwZWQpIHNldHRpbmdzLm9mZnNldCArPSB0b3BcbiAgfVxuXG4gIGNvbnN0IHN0YXJ0VGltZSA9IHBlcmZvcm1hbmNlLm5vdygpXG5cbiAgbGV0IHRhcmdldExvY2F0aW9uOiBudW1iZXJcbiAgaWYgKHR5cGVvZiBfdGFyZ2V0ID09PSAnbnVtYmVyJykge1xuICAgIHRhcmdldExvY2F0aW9uID0gZ2V0T2Zmc2V0KF90YXJnZXQpIC0gc2V0dGluZ3Mub2Zmc2V0IVxuICB9IGVsc2Uge1xuICAgIHRhcmdldExvY2F0aW9uID0gZ2V0T2Zmc2V0KF90YXJnZXQpIC0gZ2V0T2Zmc2V0KGNvbnRhaW5lcikgLSBzZXR0aW5ncy5vZmZzZXQhXG4gIH1cblxuICBjb25zdCBzdGFydExvY2F0aW9uID0gY29udGFpbmVyLnNjcm9sbFRvcFxuICBpZiAodGFyZ2V0TG9jYXRpb24gPT09IHN0YXJ0TG9jYXRpb24pIHJldHVybiBQcm9taXNlLnJlc29sdmUodGFyZ2V0TG9jYXRpb24pXG5cbiAgY29uc3QgZWFzZSA9IHR5cGVvZiBzZXR0aW5ncy5lYXNpbmcgPT09ICdmdW5jdGlvbidcbiAgICA/IHNldHRpbmdzLmVhc2luZ1xuICAgIDogZWFzaW5nUGF0dGVybnNbc2V0dGluZ3MuZWFzaW5nIV1cbiAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgaWYgKCFlYXNlKSB0aHJvdyBuZXcgVHlwZUVycm9yKGBFYXNpbmcgZnVuY3Rpb24gXCIke3NldHRpbmdzLmVhc2luZ31cIiBub3QgZm91bmQuYClcblxuICAvLyBDYW5ub3QgYmUgdGVzdGVkIHByb3Blcmx5IGluIGpzZG9tXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpwcm9taXNlLW11c3QtY29tcGxldGVcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uIHN0ZXAgKGN1cnJlbnRUaW1lOiBudW1iZXIpIHtcbiAgICBjb25zdCB0aW1lRWxhcHNlZCA9IGN1cnJlbnRUaW1lIC0gc3RhcnRUaW1lXG4gICAgY29uc3QgcHJvZ3Jlc3MgPSBNYXRoLmFicyhzZXR0aW5ncy5kdXJhdGlvbiA/IE1hdGgubWluKHRpbWVFbGFwc2VkIC8gc2V0dGluZ3MuZHVyYXRpb24sIDEpIDogMSlcblxuICAgIGNvbnRhaW5lci5zY3JvbGxUb3AgPSBNYXRoLmZsb29yKHN0YXJ0TG9jYXRpb24gKyAodGFyZ2V0TG9jYXRpb24gLSBzdGFydExvY2F0aW9uKSAqIGVhc2UocHJvZ3Jlc3MpKVxuXG4gICAgY29uc3QgY2xpZW50SGVpZ2h0ID0gY29udGFpbmVyID09PSBkb2N1bWVudC5ib2R5ID8gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCA6IGNvbnRhaW5lci5jbGllbnRIZWlnaHRcbiAgICBpZiAocHJvZ3Jlc3MgPT09IDEgfHwgY2xpZW50SGVpZ2h0ICsgY29udGFpbmVyLnNjcm9sbFRvcCA9PT0gY29udGFpbmVyLnNjcm9sbEhlaWdodCkge1xuICAgICAgcmV0dXJuIHJlc29sdmUodGFyZ2V0TG9jYXRpb24pXG4gICAgfVxuXG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHN0ZXApXG4gIH0pKVxufVxuXG5nb1RvLmZyYW1ld29yayA9IHt9IGFzIFJlY29yZDxzdHJpbmcsIFZ1ZXRpZnlTZXJ2aWNlQ29udHJhY3Q+XG5nb1RvLmluaXQgPSAoKSA9PiB7fVxuXG5leHBvcnQgY2xhc3MgR290byBleHRlbmRzIFNlcnZpY2Uge1xuICBwdWJsaWMgc3RhdGljIHByb3BlcnR5OiAnZ29UbycgPSAnZ29UbydcblxuICBjb25zdHJ1Y3RvciAoKSB7XG4gICAgc3VwZXIoKVxuXG4gICAgcmV0dXJuIGdvVG9cbiAgfVxufVxuIiwiaW1wb3J0IHsgVnVldGlmeUljb25zIH0gZnJvbSAndnVldGlmeS90eXBlcy9zZXJ2aWNlcy9pY29ucydcblxuY29uc3QgaWNvbnM6IFZ1ZXRpZnlJY29ucyA9IHtcbiAgY29tcGxldGU6ICdNMjEsN0w5LDE5TDMuNSwxMy41TDQuOTEsMTIuMDlMOSwxNi4xN0wxOS41OSw1LjU5TDIxLDdaJyxcbiAgY2FuY2VsOiAnTTEyLDJDMTcuNTMsMiAyMiw2LjQ3IDIyLDEyQzIyLDE3LjUzIDE3LjUzLDIyIDEyLDIyQzYuNDcsMjIgMiwxNy41MyAyLDEyQzIsNi40NyA2LjQ3LDIgMTIsMk0xNS41OSw3TDEyLDEwLjU5TDguNDEsN0w3LDguNDFMMTAuNTksMTJMNywxNS41OUw4LjQxLDE3TDEyLDEzLjQxTDE1LjU5LDE3TDE3LDE1LjU5TDEzLjQxLDEyTDE3LDguNDFMMTUuNTksN1onLFxuICBjbG9zZTogJ00xOSw2LjQxTDE3LjU5LDVMMTIsMTAuNTlMNi40MSw1TDUsNi40MUwxMC41OSwxMkw1LDE3LjU5TDYuNDEsMTlMMTIsMTMuNDFMMTcuNTksMTlMMTksMTcuNTlMMTMuNDEsMTJMMTksNi40MVonLFxuICBkZWxldGU6ICdNMTIsMkMxNy41MywyIDIyLDYuNDcgMjIsMTJDMjIsMTcuNTMgMTcuNTMsMjIgMTIsMjJDNi40NywyMiAyLDE3LjUzIDIsMTJDMiw2LjQ3IDYuNDcsMiAxMiwyTTE1LjU5LDdMMTIsMTAuNTlMOC40MSw3TDcsOC40MUwxMC41OSwxMkw3LDE1LjU5TDguNDEsMTdMMTIsMTMuNDFMMTUuNTksMTdMMTcsMTUuNTlMMTMuNDEsMTJMMTcsOC40MUwxNS41OSw3WicsIC8vIGRlbGV0ZSAoZS5nLiB2LWNoaXAgY2xvc2UpXG4gIGNsZWFyOiAnTTE5LDYuNDFMMTcuNTksNUwxMiwxMC41OUw2LjQxLDVMNSw2LjQxTDEwLjU5LDEyTDUsMTcuNTlMNi40MSwxOUwxMiwxMy40MUwxNy41OSwxOUwxOSwxNy41OUwxMy40MSwxMkwxOSw2LjQxWicsXG4gIHN1Y2Nlc3M6ICdNMTIsMkMxNy41MiwyIDIyLDYuNDggMjIsMTJDMjIsMTcuNTIgMTcuNTIsMjIgMTIsMjJDNi40OCwyMiAyLDE3LjUyIDIsMTJDMiw2LjQ4IDYuNDgsMiAxMiwyTTExLDE2LjVMMTgsOS41TDE2LjU5LDguMDlMMTEsMTMuNjdMNy45MSwxMC41OUw2LjUsMTJMMTEsMTYuNVonLFxuICBpbmZvOiAnTTEzLDlIMTFWN0gxM00xMywxN0gxMVYxMUgxM00xMiwyQzYuNDgsMiAyLDYuNDggMiwxMkMyLDE3LjUyIDYuNDgsMjIgMTIsMjJDMTcuNTIsMjIgMjIsMTcuNTIgMjIsMTJDMjIsNi40OCAxNy41MiwyIDEyLDJaJyxcbiAgd2FybmluZzogJ00xMSw0LjVIMTNWMTUuNUgxMVY0LjVNMTMsMTcuNVYxOS41SDExVjE3LjVIMTNaJyxcbiAgZXJyb3I6ICdNMTMsMTRIMTFWMTBIMTNNMTMsMThIMTFWMTZIMTNNMSwyMUgyM0wxMiwyTDEsMjFaJyxcbiAgcHJldjogJ00xNS40MSwxNi41OEwxMC44MywxMkwxNS40MSw3LjQxTDE0LDZMOCwxMkwxNCwxOEwxNS40MSwxNi41OFonLFxuICBuZXh0OiAnTTguNTksMTYuNThMMTMuMTcsMTJMOC41OSw3LjQxTDEwLDZMMTYsMTJMMTAsMThMOC41OSwxNi41OFonLFxuICBjaGVja2JveE9uOiAnTTEwLDE3TDUsMTJMNi40MSwxMC41OEwxMCwxNC4xN0wxNy41OSw2LjU4TDE5LDhNMTksM0g1QzMuODksMyAzLDMuODkgMyw1VjE5QzMsMjAuMSAzLjksMjEgNSwyMUgxOUMyMC4xLDIxIDIxLDIwLjEgMjEsMTlWNUMyMSwzLjg5IDIwLjEsMyAxOSwzWicsXG4gIGNoZWNrYm94T2ZmOiAnTTE5LDNINUMzLjg5LDMgMywzLjg5IDMsNVYxOUMzLDIwLjEgMy45LDIxIDUsMjFIMTlDMjAuMSwyMSAyMSwyMC4xIDIxLDE5VjVDMjEsMy44OSAyMC4xLDMgMTksM00xOSw1VjE5SDVWNUgxOVonLFxuICBjaGVja2JveEluZGV0ZXJtaW5hdGU6ICdNMTcsMTNIN1YxMUgxN00xOSwzSDVDMy44OSwzIDMsMy44OSAzLDVWMTlDMywyMC4xIDMuOSwyMSA1LDIxSDE5QzIwLjEsMjEgMjEsMjAuMSAyMSwxOVY1QzIxLDMuODkgMjAuMSwzIDE5LDNaJyxcbiAgZGVsaW1pdGVyOiAnTTEyLDJDNi40OCwyIDIsNi40OCAyLDEyQzIsMTcuNTIgNi40OCwyMiAxMiwyMkMxNy41MiwyMiAyMiwxNy41MiAyMiwxMkMyMiw2LjQ4IDE3LjUyLDIgMTIsMlonLCAvLyBmb3IgY2Fyb3VzZWxcbiAgc29ydDogJ00xMywyMEgxMVY4TDUuNSwxMy41TDQuMDgsMTIuMDhMMTIsNC4xNkwxOS45MiwxMi4wOEwxOC41LDEzLjVMMTMsOFYyMFonLFxuICBleHBhbmQ6ICdNNy40MSw4LjU4TDEyLDEzLjE3TDE2LjU5LDguNThMMTgsMTBMMTIsMTZMNiwxMEw3LjQxLDguNThaJyxcbiAgbWVudTogJ00zLDZIMjFWOEgzVjZNMywxMUgyMVYxM0gzVjExTTMsMTZIMjFWMThIM1YxNlonLFxuICBzdWJncm91cDogJ003LDEwTDEyLDE1TDE3LDEwSDdaJyxcbiAgZHJvcGRvd246ICdNNywxMEwxMiwxNUwxNywxMEg3WicsXG4gIHJhZGlvT246ICdNMTIsMjBDNy41OCwyMCA0LDE2LjQyIDQsMTJDNCw3LjU4IDcuNTgsNCAxMiw0QzE2LjQyLDQgMjAsNy41OCAyMCwxMkMyMCwxNi40MiAxNi40MiwyMCAxMiwyME0xMiwyQzYuNDgsMiAyLDYuNDggMiwxMkMyLDE3LjUyIDYuNDgsMjIgMTIsMjJDMTcuNTIsMjIgMjIsMTcuNTIgMjIsMTJDMjIsNi40OCAxNy41MiwyIDEyLDJNMTIsN0M5LjI0LDcgNyw5LjI0IDcsMTJDNywxNC43NiA5LjI0LDE3IDEyLDE3QzE0Ljc2LDE3IDE3LDE0Ljc2IDE3LDEyQzE3LDkuMjQgMTQuNzYsNyAxMiw3WicsXG4gIHJhZGlvT2ZmOiAnTTEyLDIwQzcuNTgsMjAgNCwxNi40MiA0LDEyQzQsNy41OCA3LjU4LDQgMTIsNEMxNi40Miw0IDIwLDcuNTggMjAsMTJDMjAsMTYuNDIgMTYuNDIsMjAgMTIsMjBNMTIsMkM2LjQ4LDIgMiw2LjQ4IDIsMTJDMiwxNy41MiA2LjQ4LDIyIDEyLDIyQzE3LjUyLDIyIDIyLDE3LjUyIDIyLDEyQzIyLDYuNDggMTcuNTIsMiAxMiwyWicsXG4gIGVkaXQ6ICdNMjAuNzEsNy4wNEMyMS4xLDYuNjUgMjEuMSw2IDIwLjcxLDUuNjNMMTguMzcsMy4yOUMxOCwyLjkgMTcuMzUsMi45IDE2Ljk2LDMuMjlMMTUuMTIsNS4xMkwxOC44Nyw4Ljg3TTMsMTcuMjVWMjFINi43NUwxNy44MSw5LjkzTDE0LjA2LDYuMThMMywxNy4yNVonLFxuICByYXRpbmdFbXB0eTogJ00xMiwxNS4zOUw4LjI0LDE3LjY2TDkuMjMsMTMuMzhMNS45MSwxMC41TDEwLjI5LDEwLjEzTDEyLDYuMDlMMTMuNzEsMTAuMTNMMTguMDksMTAuNUwxNC43NywxMy4zOEwxNS43NiwxNy42Nk0yMiw5LjI0TDE0LjgxLDguNjNMMTIsMkw5LjE5LDguNjNMMiw5LjI0TDcuNDUsMTMuOTdMNS44MiwyMUwxMiwxNy4yN0wxOC4xOCwyMUwxNi41NCwxMy45N0wyMiw5LjI0WicsXG4gIHJhdGluZ0Z1bGw6ICdNMTIsMTcuMjdMMTguMTgsMjFMMTYuNTQsMTMuOTdMMjIsOS4yNEwxNC44MSw4LjYyTDEyLDJMOS4xOSw4LjYyTDIsOS4yNEw3LjQ1LDEzLjk3TDUuODIsMjFMMTIsMTcuMjdaJyxcbiAgcmF0aW5nSGFsZjogJ00xMiwxNS40VjYuMUwxMy43MSwxMC4xM0wxOC4wOSwxMC41TDE0Ljc3LDEzLjM5TDE1Ljc2LDE3LjY3TTIyLDkuMjRMMTQuODEsOC42M0wxMiwyTDkuMTksOC42M0wyLDkuMjRMNy40NSwxMy45N0w1LjgyLDIxTDEyLDE3LjI3TDE4LjE4LDIxTDE2LjU0LDEzLjk3TDIyLDkuMjRaJyxcbiAgbG9hZGluZzogJ00xOSw4TDE1LDEySDE4QzE4LDE1LjMxIDE1LjMxLDE4IDEyLDE4QzExLDE4IDEwLjAzLDE3Ljc1IDkuMiwxNy4zTDcuNzQsMTguNzZDOC45NywxOS41NCAxMC40MywyMCAxMiwyMEMxNi40MiwyMCAyMCwxNi40MiAyMCwxMkgyM002LDEyQzYsOC42OSA4LjY5LDYgMTIsNkMxMyw2IDEzLjk3LDYuMjUgMTQuOCw2LjdMMTYuMjYsNS4yNEMxNS4wMyw0LjQ2IDEzLjU3LDQgMTIsNEM3LjU4LDQgNCw3LjU4IDQsMTJIMUw1LDE2TDksMTInLFxuICBmaXJzdDogJ00xOC40MSwxNi41OUwxMy44MiwxMkwxOC40MSw3LjQxTDE3LDZMMTEsMTJMMTcsMThMMTguNDEsMTYuNTlNNiw2SDhWMThINlY2WicsXG4gIGxhc3Q6ICdNNS41OSw3LjQxTDEwLjE4LDEyTDUuNTksMTYuNTlMNywxOEwxMywxMkw3LDZMNS41OSw3LjQxTTE2LDZIMThWMThIMTZWNlonLFxuICB1bmZvbGQ6ICdNMTIsMTguMTdMOC44MywxNUw3LjQyLDE2LjQxTDEyLDIxTDE2LjU5LDE2LjQxTDE1LjE3LDE1TTEyLDUuODNMMTUuMTcsOUwxNi41OCw3LjU5TDEyLDNMNy40MSw3LjU5TDguODMsOUwxMiw1LjgzWicsXG4gIGZpbGU6ICdNMTYuNSw2VjE3LjVDMTYuNSwxOS43MSAxNC43MSwyMS41IDEyLjUsMjEuNUMxMC4yOSwyMS41IDguNSwxOS43MSA4LjUsMTcuNVY1QzguNSwzLjYyIDkuNjIsMi41IDExLDIuNUMxMi4zOCwyLjUgMTMuNSwzLjYyIDEzLjUsNVYxNS41QzEzLjUsMTYuMDUgMTMuMDUsMTYuNSAxMi41LDE2LjVDMTEuOTUsMTYuNSAxMS41LDE2LjA1IDExLjUsMTUuNVY2SDEwVjE1LjVDMTAsMTYuODggMTEuMTIsMTggMTIuNSwxOEMxMy44OCwxOCAxNSwxNi44OCAxNSwxNS41VjVDMTUsMi43OSAxMy4yMSwxIDExLDFDOC43OSwxIDcsMi43OSA3LDVWMTcuNUM3LDIwLjU0IDkuNDYsMjMgMTIuNSwyM0MxNS41NCwyMyAxOCwyMC41NCAxOCwxNy41VjZIMTYuNVonLFxuICBwbHVzOiAnTTE5LDEzSDEzVjE5SDExVjEzSDVWMTFIMTFWNUgxM1YxMUgxOVYxM1onLFxuICBtaW51czogJ00xOSwxM0g1VjExSDE5VjEzWicsXG59XG5cbmV4cG9ydCBkZWZhdWx0IGljb25zXG4iLCJpbXBvcnQgeyBWdWV0aWZ5SWNvbnMgfSBmcm9tICd2dWV0aWZ5L3R5cGVzL3NlcnZpY2VzL2ljb25zJ1xuXG5jb25zdCBpY29uczogVnVldGlmeUljb25zID0ge1xuICBjb21wbGV0ZTogJ2NoZWNrJyxcbiAgY2FuY2VsOiAnY2FuY2VsJyxcbiAgY2xvc2U6ICdjbG9zZScsXG4gIGRlbGV0ZTogJ2NhbmNlbCcsIC8vIGRlbGV0ZSAoZS5nLiB2LWNoaXAgY2xvc2UpXG4gIGNsZWFyOiAnY2xlYXInLFxuICBzdWNjZXNzOiAnY2hlY2tfY2lyY2xlJyxcbiAgaW5mbzogJ2luZm8nLFxuICB3YXJuaW5nOiAncHJpb3JpdHlfaGlnaCcsXG4gIGVycm9yOiAnd2FybmluZycsXG4gIHByZXY6ICdjaGV2cm9uX2xlZnQnLFxuICBuZXh0OiAnY2hldnJvbl9yaWdodCcsXG4gIGNoZWNrYm94T246ICdjaGVja19ib3gnLFxuICBjaGVja2JveE9mZjogJ2NoZWNrX2JveF9vdXRsaW5lX2JsYW5rJyxcbiAgY2hlY2tib3hJbmRldGVybWluYXRlOiAnaW5kZXRlcm1pbmF0ZV9jaGVja19ib3gnLFxuICBkZWxpbWl0ZXI6ICdmaWJlcl9tYW51YWxfcmVjb3JkJywgLy8gZm9yIGNhcm91c2VsXG4gIHNvcnQ6ICdhcnJvd191cHdhcmQnLFxuICBleHBhbmQ6ICdrZXlib2FyZF9hcnJvd19kb3duJyxcbiAgbWVudTogJ21lbnUnLFxuICBzdWJncm91cDogJ2Fycm93X2Ryb3BfZG93bicsXG4gIGRyb3Bkb3duOiAnYXJyb3dfZHJvcF9kb3duJyxcbiAgcmFkaW9PbjogJ3JhZGlvX2J1dHRvbl9jaGVja2VkJyxcbiAgcmFkaW9PZmY6ICdyYWRpb19idXR0b25fdW5jaGVja2VkJyxcbiAgZWRpdDogJ2VkaXQnLFxuICByYXRpbmdFbXB0eTogJ3N0YXJfYm9yZGVyJyxcbiAgcmF0aW5nRnVsbDogJ3N0YXInLFxuICByYXRpbmdIYWxmOiAnc3Rhcl9oYWxmJyxcbiAgbG9hZGluZzogJ2NhY2hlZCcsXG4gIGZpcnN0OiAnZmlyc3RfcGFnZScsXG4gIGxhc3Q6ICdsYXN0X3BhZ2UnLFxuICB1bmZvbGQ6ICd1bmZvbGRfbW9yZScsXG4gIGZpbGU6ICdhdHRhY2hfZmlsZScsXG4gIHBsdXM6ICdhZGQnLFxuICBtaW51czogJ3JlbW92ZScsXG59XG5cbmV4cG9ydCBkZWZhdWx0IGljb25zXG4iLCJpbXBvcnQgeyBWdWV0aWZ5SWNvbnMgfSBmcm9tICd2dWV0aWZ5L3R5cGVzL3NlcnZpY2VzL2ljb25zJ1xuXG5jb25zdCBpY29uczogVnVldGlmeUljb25zID0ge1xuICBjb21wbGV0ZTogJ21kaS1jaGVjaycsXG4gIGNhbmNlbDogJ21kaS1jbG9zZS1jaXJjbGUnLFxuICBjbG9zZTogJ21kaS1jbG9zZScsXG4gIGRlbGV0ZTogJ21kaS1jbG9zZS1jaXJjbGUnLCAvLyBkZWxldGUgKGUuZy4gdi1jaGlwIGNsb3NlKVxuICBjbGVhcjogJ21kaS1jbG9zZScsXG4gIHN1Y2Nlc3M6ICdtZGktY2hlY2stY2lyY2xlJyxcbiAgaW5mbzogJ21kaS1pbmZvcm1hdGlvbicsXG4gIHdhcm5pbmc6ICdtZGktZXhjbGFtYXRpb24nLFxuICBlcnJvcjogJ21kaS1hbGVydCcsXG4gIHByZXY6ICdtZGktY2hldnJvbi1sZWZ0JyxcbiAgbmV4dDogJ21kaS1jaGV2cm9uLXJpZ2h0JyxcbiAgY2hlY2tib3hPbjogJ21kaS1jaGVja2JveC1tYXJrZWQnLFxuICBjaGVja2JveE9mZjogJ21kaS1jaGVja2JveC1ibGFuay1vdXRsaW5lJyxcbiAgY2hlY2tib3hJbmRldGVybWluYXRlOiAnbWRpLW1pbnVzLWJveCcsXG4gIGRlbGltaXRlcjogJ21kaS1jaXJjbGUnLCAvLyBmb3IgY2Fyb3VzZWxcbiAgc29ydDogJ21kaS1hcnJvdy11cCcsXG4gIGV4cGFuZDogJ21kaS1jaGV2cm9uLWRvd24nLFxuICBtZW51OiAnbWRpLW1lbnUnLFxuICBzdWJncm91cDogJ21kaS1tZW51LWRvd24nLFxuICBkcm9wZG93bjogJ21kaS1tZW51LWRvd24nLFxuICByYWRpb09uOiAnbWRpLXJhZGlvYm94LW1hcmtlZCcsXG4gIHJhZGlvT2ZmOiAnbWRpLXJhZGlvYm94LWJsYW5rJyxcbiAgZWRpdDogJ21kaS1wZW5jaWwnLFxuICByYXRpbmdFbXB0eTogJ21kaS1zdGFyLW91dGxpbmUnLFxuICByYXRpbmdGdWxsOiAnbWRpLXN0YXInLFxuICByYXRpbmdIYWxmOiAnbWRpLXN0YXItaGFsZicsXG4gIGxvYWRpbmc6ICdtZGktY2FjaGVkJyxcbiAgZmlyc3Q6ICdtZGktcGFnZS1maXJzdCcsXG4gIGxhc3Q6ICdtZGktcGFnZS1sYXN0JyxcbiAgdW5mb2xkOiAnbWRpLXVuZm9sZC1tb3JlLWhvcml6b250YWwnLFxuICBmaWxlOiAnbWRpLXBhcGVyY2xpcCcsXG4gIHBsdXM6ICdtZGktcGx1cycsXG4gIG1pbnVzOiAnbWRpLW1pbnVzJyxcbn1cblxuZXhwb3J0IGRlZmF1bHQgaWNvbnNcbiIsImltcG9ydCB7IFZ1ZXRpZnlJY29ucyB9IGZyb20gJ3Z1ZXRpZnkvdHlwZXMvc2VydmljZXMvaWNvbnMnXG5cbmNvbnN0IGljb25zOiBWdWV0aWZ5SWNvbnMgPSB7XG4gIGNvbXBsZXRlOiAnZmFzIGZhLWNoZWNrJyxcbiAgY2FuY2VsOiAnZmFzIGZhLXRpbWVzLWNpcmNsZScsXG4gIGNsb3NlOiAnZmFzIGZhLXRpbWVzJyxcbiAgZGVsZXRlOiAnZmFzIGZhLXRpbWVzLWNpcmNsZScsIC8vIGRlbGV0ZSAoZS5nLiB2LWNoaXAgY2xvc2UpXG4gIGNsZWFyOiAnZmFzIGZhLXRpbWVzLWNpcmNsZScsIC8vIGRlbGV0ZSAoZS5nLiB2LWNoaXAgY2xvc2UpXG4gIHN1Y2Nlc3M6ICdmYXMgZmEtY2hlY2stY2lyY2xlJyxcbiAgaW5mbzogJ2ZhcyBmYS1pbmZvLWNpcmNsZScsXG4gIHdhcm5pbmc6ICdmYXMgZmEtZXhjbGFtYXRpb24nLFxuICBlcnJvcjogJ2ZhcyBmYS1leGNsYW1hdGlvbi10cmlhbmdsZScsXG4gIHByZXY6ICdmYXMgZmEtY2hldnJvbi1sZWZ0JyxcbiAgbmV4dDogJ2ZhcyBmYS1jaGV2cm9uLXJpZ2h0JyxcbiAgY2hlY2tib3hPbjogJ2ZhcyBmYS1jaGVjay1zcXVhcmUnLFxuICBjaGVja2JveE9mZjogJ2ZhciBmYS1zcXVhcmUnLCAvLyBub3RlICdmYXInXG4gIGNoZWNrYm94SW5kZXRlcm1pbmF0ZTogJ2ZhcyBmYS1taW51cy1zcXVhcmUnLFxuICBkZWxpbWl0ZXI6ICdmYXMgZmEtY2lyY2xlJywgLy8gZm9yIGNhcm91c2VsXG4gIHNvcnQ6ICdmYXMgZmEtc29ydC11cCcsXG4gIGV4cGFuZDogJ2ZhcyBmYS1jaGV2cm9uLWRvd24nLFxuICBtZW51OiAnZmFzIGZhLWJhcnMnLFxuICBzdWJncm91cDogJ2ZhcyBmYS1jYXJldC1kb3duJyxcbiAgZHJvcGRvd246ICdmYXMgZmEtY2FyZXQtZG93bicsXG4gIHJhZGlvT246ICdmYXIgZmEtZG90LWNpcmNsZScsXG4gIHJhZGlvT2ZmOiAnZmFyIGZhLWNpcmNsZScsXG4gIGVkaXQ6ICdmYXMgZmEtZWRpdCcsXG4gIHJhdGluZ0VtcHR5OiAnZmFyIGZhLXN0YXInLFxuICByYXRpbmdGdWxsOiAnZmFzIGZhLXN0YXInLFxuICByYXRpbmdIYWxmOiAnZmFzIGZhLXN0YXItaGFsZicsXG4gIGxvYWRpbmc6ICdmYXMgZmEtc3luYycsXG4gIGZpcnN0OiAnZmFzIGZhLXN0ZXAtYmFja3dhcmQnLFxuICBsYXN0OiAnZmFzIGZhLXN0ZXAtZm9yd2FyZCcsXG4gIHVuZm9sZDogJ2ZhcyBmYS1hcnJvd3MtYWx0LXYnLFxuICBmaWxlOiAnZmFzIGZhLXBhcGVyY2xpcCcsXG4gIHBsdXM6ICdmYXMgZmEtcGx1cycsXG4gIG1pbnVzOiAnZmFzIGZhLW1pbnVzJyxcbn1cblxuZXhwb3J0IGRlZmF1bHQgaWNvbnNcbiIsImltcG9ydCB7IFZ1ZXRpZnlJY29ucyB9IGZyb20gJ3Z1ZXRpZnkvdHlwZXMvc2VydmljZXMvaWNvbnMnXG5cbmNvbnN0IGljb25zOiBWdWV0aWZ5SWNvbnMgPSB7XG4gIGNvbXBsZXRlOiAnZmEgZmEtY2hlY2snLFxuICBjYW5jZWw6ICdmYSBmYS10aW1lcy1jaXJjbGUnLFxuICBjbG9zZTogJ2ZhIGZhLXRpbWVzJyxcbiAgZGVsZXRlOiAnZmEgZmEtdGltZXMtY2lyY2xlJywgLy8gZGVsZXRlIChlLmcuIHYtY2hpcCBjbG9zZSlcbiAgY2xlYXI6ICdmYSBmYS10aW1lcy1jaXJjbGUnLCAvLyBkZWxldGUgKGUuZy4gdi1jaGlwIGNsb3NlKVxuICBzdWNjZXNzOiAnZmEgZmEtY2hlY2stY2lyY2xlJyxcbiAgaW5mbzogJ2ZhIGZhLWluZm8tY2lyY2xlJyxcbiAgd2FybmluZzogJ2ZhIGZhLWV4Y2xhbWF0aW9uJyxcbiAgZXJyb3I6ICdmYSBmYS1leGNsYW1hdGlvbi10cmlhbmdsZScsXG4gIHByZXY6ICdmYSBmYS1jaGV2cm9uLWxlZnQnLFxuICBuZXh0OiAnZmEgZmEtY2hldnJvbi1yaWdodCcsXG4gIGNoZWNrYm94T246ICdmYSBmYS1jaGVjay1zcXVhcmUnLFxuICBjaGVja2JveE9mZjogJ2ZhIGZhLXNxdWFyZS1vJyxcbiAgY2hlY2tib3hJbmRldGVybWluYXRlOiAnZmEgZmEtbWludXMtc3F1YXJlJyxcbiAgZGVsaW1pdGVyOiAnZmEgZmEtY2lyY2xlJywgLy8gZm9yIGNhcm91c2VsXG4gIHNvcnQ6ICdmYSBmYS1zb3J0LXVwJyxcbiAgZXhwYW5kOiAnZmEgZmEtY2hldnJvbi1kb3duJyxcbiAgbWVudTogJ2ZhIGZhLWJhcnMnLFxuICBzdWJncm91cDogJ2ZhIGZhLWNhcmV0LWRvd24nLFxuICBkcm9wZG93bjogJ2ZhIGZhLWNhcmV0LWRvd24nLFxuICByYWRpb09uOiAnZmEgZmEtZG90LWNpcmNsZS1vJyxcbiAgcmFkaW9PZmY6ICdmYSBmYS1jaXJjbGUtbycsXG4gIGVkaXQ6ICdmYSBmYS1wZW5jaWwnLFxuICByYXRpbmdFbXB0eTogJ2ZhIGZhLXN0YXItbycsXG4gIHJhdGluZ0Z1bGw6ICdmYSBmYS1zdGFyJyxcbiAgcmF0aW5nSGFsZjogJ2ZhIGZhLXN0YXItaGFsZi1vJyxcbiAgbG9hZGluZzogJ2ZhIGZhLXJlZnJlc2gnLFxuICBmaXJzdDogJ2ZhIGZhLXN0ZXAtYmFja3dhcmQnLFxuICBsYXN0OiAnZmEgZmEtc3RlcC1mb3J3YXJkJyxcbiAgdW5mb2xkOiAnZmEgZmEtYW5nbGUtZG91YmxlLWRvd24nLFxuICBmaWxlOiAnZmEgZmEtcGFwZXJjbGlwJyxcbiAgcGx1czogJ2ZhIGZhLXBsdXMnLFxuICBtaW51czogJ2ZhIGZhLW1pbnVzJyxcbn1cblxuZXhwb3J0IGRlZmF1bHQgaWNvbnNcbiIsImltcG9ydCB7IFZ1ZXRpZnlJY29ucyB9IGZyb20gJ3Z1ZXRpZnkvdHlwZXMvc2VydmljZXMvaWNvbnMnXG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICd2dWUnXG5pbXBvcnQgaWNvbnMgZnJvbSAnLi9mYSdcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRUb0NvbXBvbmVudERlY2xhcmF0aW9ucyAoXG4gIGNvbXBvbmVudDogQ29tcG9uZW50IHwgc3RyaW5nLFxuICBpY29uU2V0OiBWdWV0aWZ5SWNvbnMsXG4pIHtcbiAgY29uc3QgcmVzdWx0OiBQYXJ0aWFsPFZ1ZXRpZnlJY29ucz4gPSB7fVxuXG4gIGZvciAoY29uc3Qga2V5IGluIGljb25TZXQpIHtcbiAgICByZXN1bHRba2V5XSA9IHtcbiAgICAgIGNvbXBvbmVudCxcbiAgICAgIHByb3BzOiB7XG4gICAgICAgIGljb246IChpY29uU2V0W2tleV0gYXMgc3RyaW5nKS5zcGxpdCgnIGZhLScpLFxuICAgICAgfSxcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0IGFzIFZ1ZXRpZnlJY29uc1xufVxuXG5leHBvcnQgZGVmYXVsdCBjb252ZXJ0VG9Db21wb25lbnREZWNsYXJhdGlvbnMoJ2ZvbnQtYXdlc29tZS1pY29uJywgaWNvbnMpXG4iLCJpbXBvcnQgbWRpU3ZnIGZyb20gJy4vbWRpLXN2ZydcbmltcG9ydCBtZCBmcm9tICcuL21kJ1xuaW1wb3J0IG1kaSBmcm9tICcuL21kaSdcbmltcG9ydCBmYSBmcm9tICcuL2ZhJ1xuaW1wb3J0IGZhNCBmcm9tICcuL2ZhNCdcbmltcG9ydCBmYVN2ZyBmcm9tICcuL2ZhLXN2ZydcblxuZXhwb3J0IGRlZmF1bHQgT2JqZWN0LmZyZWV6ZSh7XG4gIG1kaVN2ZyxcbiAgbWQsXG4gIG1kaSxcbiAgZmEsXG4gIGZhNCxcbiAgZmFTdmcsXG59KVxuIiwiLy8gRXh0ZW5zaW9uc1xuaW1wb3J0IHsgU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UnXG5cbi8vIFV0aWxpdGllc1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vdXRpbC9oZWxwZXJzJ1xuXG4vLyBUeXBlc1xuaW1wb3J0IHsgVnVldGlmeVByZXNldCB9IGZyb20gJ3Z1ZXRpZnkvdHlwZXMvc2VydmljZXMvcHJlc2V0cydcbmltcG9ydCB7IEljb25zIGFzIElJY29ucyB9IGZyb20gJ3Z1ZXRpZnkvdHlwZXMvc2VydmljZXMvaWNvbnMnXG5cbi8vIFByZXNldHNcbmltcG9ydCBwcmVzZXRzIGZyb20gJy4vcHJlc2V0cydcblxuZXhwb3J0IGNsYXNzIEljb25zIGV4dGVuZHMgU2VydmljZSBpbXBsZW1lbnRzIElJY29ucyB7XG4gIHN0YXRpYyBwcm9wZXJ0eTogJ2ljb25zJyA9ICdpY29ucydcblxuICBwdWJsaWMgaWNvbmZvbnQ6IElJY29uc1snaWNvbmZvbnQnXVxuXG4gIHB1YmxpYyB2YWx1ZXM6IElJY29uc1sndmFsdWVzJ11cblxuICBjb25zdHJ1Y3RvciAocHJlc2V0OiBWdWV0aWZ5UHJlc2V0KSB7XG4gICAgc3VwZXIoKVxuXG4gICAgY29uc3Qge1xuICAgICAgaWNvbmZvbnQsXG4gICAgICB2YWx1ZXMsXG4gICAgfSA9IHByZXNldFtJY29ucy5wcm9wZXJ0eV1cblxuICAgIHRoaXMuaWNvbmZvbnQgPSBpY29uZm9udFxuICAgIHRoaXMudmFsdWVzID0gbWVyZ2VEZWVwKFxuICAgICAgcHJlc2V0c1tpY29uZm9udF0sXG4gICAgICB2YWx1ZXNcbiAgICApIGFzIElJY29uc1sndmFsdWVzJ11cbiAgfVxufVxuIiwiLy8gRXh0ZW5zaW9uc1xuaW1wb3J0IHsgU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UnXG5cbi8vIFV0aWxpdGllc1xuaW1wb3J0IHsgZ2V0T2JqZWN0VmFsdWVCeVBhdGggfSBmcm9tICcuLi8uLi91dGlsL2hlbHBlcnMnXG5pbXBvcnQgeyBjb25zb2xlRXJyb3IsIGNvbnNvbGVXYXJuIH0gZnJvbSAnLi4vLi4vdXRpbC9jb25zb2xlJ1xuXG4vLyBUeXBlc1xuaW1wb3J0IHsgVnVldGlmeVByZXNldCB9IGZyb20gJ3Z1ZXRpZnkvdHlwZXMvc2VydmljZXMvcHJlc2V0cydcbmltcG9ydCB7XG4gIFZ1ZXRpZnlMb2NhbGUsXG4gIExhbmcgYXMgSUxhbmcsXG59IGZyb20gJ3Z1ZXRpZnkvdHlwZXMvc2VydmljZXMvbGFuZydcblxuY29uc3QgTEFOR19QUkVGSVggPSAnJHZ1ZXRpZnkuJ1xuY29uc3QgZmFsbGJhY2sgPSBTeW1ib2woJ0xhbmcgZmFsbGJhY2snKVxuXG5mdW5jdGlvbiBnZXRUcmFuc2xhdGlvbiAoXG4gIGxvY2FsZTogVnVldGlmeUxvY2FsZSxcbiAga2V5OiBzdHJpbmcsXG4gIHVzaW5nRGVmYXVsdCA9IGZhbHNlLFxuICBkZWZhdWx0TG9jYWxlOiBWdWV0aWZ5TG9jYWxlXG4pOiBzdHJpbmcge1xuICBjb25zdCBzaG9ydEtleSA9IGtleS5yZXBsYWNlKExBTkdfUFJFRklYLCAnJylcbiAgbGV0IHRyYW5zbGF0aW9uID0gZ2V0T2JqZWN0VmFsdWVCeVBhdGgobG9jYWxlLCBzaG9ydEtleSwgZmFsbGJhY2spIGFzIHN0cmluZyB8IHR5cGVvZiBmYWxsYmFja1xuXG4gIGlmICh0cmFuc2xhdGlvbiA9PT0gZmFsbGJhY2spIHtcbiAgICBpZiAodXNpbmdEZWZhdWx0KSB7XG4gICAgICBjb25zb2xlRXJyb3IoYFRyYW5zbGF0aW9uIGtleSBcIiR7c2hvcnRLZXl9XCIgbm90IGZvdW5kIGluIGZhbGxiYWNrYClcbiAgICAgIHRyYW5zbGF0aW9uID0ga2V5XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGVXYXJuKGBUcmFuc2xhdGlvbiBrZXkgXCIke3Nob3J0S2V5fVwiIG5vdCBmb3VuZCwgZmFsbGluZyBiYWNrIHRvIGRlZmF1bHRgKVxuICAgICAgdHJhbnNsYXRpb24gPSBnZXRUcmFuc2xhdGlvbihkZWZhdWx0TG9jYWxlLCBrZXksIHRydWUsIGRlZmF1bHRMb2NhbGUpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRyYW5zbGF0aW9uXG59XG5cbmV4cG9ydCBjbGFzcyBMYW5nIGV4dGVuZHMgU2VydmljZSBpbXBsZW1lbnRzIElMYW5nIHtcbiAgc3RhdGljIHByb3BlcnR5OiAnbGFuZycgPSAnbGFuZydcblxuICBwdWJsaWMgY3VycmVudDogSUxhbmdbJ2N1cnJlbnQnXVxuXG4gIHB1YmxpYyBkZWZhdWx0TG9jYWxlID0gJ2VuJ1xuXG4gIHB1YmxpYyBsb2NhbGVzOiBJTGFuZ1snbG9jYWxlcyddXG5cbiAgcHJpdmF0ZSB0cmFuc2xhdG9yOiBJTGFuZ1sndCddXG5cbiAgY29uc3RydWN0b3IgKHByZXNldDogVnVldGlmeVByZXNldCkge1xuICAgIHN1cGVyKClcblxuICAgIGNvbnN0IHtcbiAgICAgIGN1cnJlbnQsXG4gICAgICBsb2NhbGVzLFxuICAgICAgdCxcbiAgICB9ID0gcHJlc2V0W0xhbmcucHJvcGVydHldXG5cbiAgICB0aGlzLmN1cnJlbnQgPSBjdXJyZW50XG4gICAgdGhpcy5sb2NhbGVzID0gbG9jYWxlc1xuICAgIHRoaXMudHJhbnNsYXRvciA9IHQgfHwgdGhpcy5kZWZhdWx0VHJhbnNsYXRvclxuICB9XG5cbiAgcHVibGljIGN1cnJlbnRMb2NhbGUgKGtleTogc3RyaW5nKSB7XG4gICAgY29uc3QgdHJhbnNsYXRpb24gPSB0aGlzLmxvY2FsZXNbdGhpcy5jdXJyZW50XVxuICAgIGNvbnN0IGRlZmF1bHRMb2NhbGUgPSB0aGlzLmxvY2FsZXNbdGhpcy5kZWZhdWx0TG9jYWxlXVxuXG4gICAgcmV0dXJuIGdldFRyYW5zbGF0aW9uKHRyYW5zbGF0aW9uLCBrZXksIGZhbHNlLCBkZWZhdWx0TG9jYWxlKVxuICB9XG5cbiAgcHVibGljIHQgKGtleTogc3RyaW5nLCAuLi5wYXJhbXM6IGFueVtdKSB7XG4gICAgaWYgKCFrZXkuc3RhcnRzV2l0aChMQU5HX1BSRUZJWCkpIHJldHVybiB0aGlzLnJlcGxhY2Uoa2V5LCBwYXJhbXMpXG5cbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdG9yKGtleSwgLi4ucGFyYW1zKVxuICB9XG5cbiAgcHJpdmF0ZSBkZWZhdWx0VHJhbnNsYXRvciAoa2V5OiBzdHJpbmcsIC4uLnBhcmFtczogYW55W10pIHtcbiAgICByZXR1cm4gdGhpcy5yZXBsYWNlKHRoaXMuY3VycmVudExvY2FsZShrZXkpLCBwYXJhbXMpXG4gIH1cblxuICBwcml2YXRlIHJlcGxhY2UgKHN0cjogc3RyaW5nLCBwYXJhbXM6IGFueVtdKSB7XG4gICAgcmV0dXJuIHN0ci5yZXBsYWNlKC9cXHsoXFxkKylcXH0vZywgKG1hdGNoOiBzdHJpbmcsIGluZGV4OiBzdHJpbmcpID0+IHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICByZXR1cm4gU3RyaW5nKHBhcmFtc1sraW5kZXhdKVxuICAgIH0pXG4gIH1cbn1cbiIsImltcG9ydCB7IFhZWiwgTEFCIH0gZnJvbSAnLi4vY29sb3JVdGlscydcblxuY29uc3QgZGVsdGEgPSAwLjIwNjg5NjU1MTcyNDEzNzkzIC8vIDbDtzI5XG5cbmNvbnN0IGNpZWxhYkZvcndhcmRUcmFuc2Zvcm0gPSAodDogbnVtYmVyKTogbnVtYmVyID0+IChcbiAgdCA+IGRlbHRhICoqIDNcbiAgICA/IE1hdGguY2JydCh0KVxuICAgIDogKHQgLyAoMyAqIGRlbHRhICoqIDIpKSArIDQgLyAyOVxuKVxuXG5jb25zdCBjaWVsYWJSZXZlcnNlVHJhbnNmb3JtID0gKHQ6IG51bWJlcik6IG51bWJlciA9PiAoXG4gIHQgPiBkZWx0YVxuICAgID8gdCAqKiAzXG4gICAgOiAoMyAqIGRlbHRhICoqIDIpICogKHQgLSA0IC8gMjkpXG4pXG5cbmV4cG9ydCBmdW5jdGlvbiBmcm9tWFlaICh4eXo6IFhZWik6IExBQiB7XG4gIGNvbnN0IHRyYW5zZm9ybSA9IGNpZWxhYkZvcndhcmRUcmFuc2Zvcm1cbiAgY29uc3QgdHJhbnNmb3JtZWRZID0gdHJhbnNmb3JtKHh5elsxXSlcblxuICByZXR1cm4gW1xuICAgIDExNiAqIHRyYW5zZm9ybWVkWSAtIDE2LFxuICAgIDUwMCAqICh0cmFuc2Zvcm0oeHl6WzBdIC8gMC45NTA0NykgLSB0cmFuc2Zvcm1lZFkpLFxuICAgIDIwMCAqICh0cmFuc2Zvcm1lZFkgLSB0cmFuc2Zvcm0oeHl6WzJdIC8gMS4wODg4MykpLFxuICBdXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1hZWiAobGFiOiBMQUIpOiBYWVoge1xuICBjb25zdCB0cmFuc2Zvcm0gPSBjaWVsYWJSZXZlcnNlVHJhbnNmb3JtXG4gIGNvbnN0IExuID0gKGxhYlswXSArIDE2KSAvIDExNlxuICByZXR1cm4gW1xuICAgIHRyYW5zZm9ybShMbiArIGxhYlsxXSAvIDUwMCkgKiAwLjk1MDQ3LFxuICAgIHRyYW5zZm9ybShMbiksXG4gICAgdHJhbnNmb3JtKExuIC0gbGFiWzJdIC8gMjAwKSAqIDEuMDg4ODMsXG4gIF1cbn1cbiIsImltcG9ydCB7IGNvbG9yVG9JbnQsIGludFRvSGV4LCBjb2xvclRvSGV4LCBDb2xvckludCB9IGZyb20gJy4uLy4uL3V0aWwvY29sb3JVdGlscydcbmltcG9ydCAqIGFzIHNSR0IgZnJvbSAnLi4vLi4vdXRpbC9jb2xvci90cmFuc2Zvcm1TUkdCJ1xuaW1wb3J0ICogYXMgTEFCIGZyb20gJy4uLy4uL3V0aWwvY29sb3IvdHJhbnNmb3JtQ0lFTEFCJ1xuaW1wb3J0IHtcbiAgVnVldGlmeVBhcnNlZFRoZW1lLFxuICBWdWV0aWZ5VGhlbWVJdGVtLFxufSBmcm9tICd2dWV0aWZ5L3R5cGVzL3NlcnZpY2VzL3RoZW1lJ1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2UgKFxuICB0aGVtZTogUmVjb3JkPHN0cmluZywgVnVldGlmeVRoZW1lSXRlbT4sXG4gIGlzSXRlbSA9IGZhbHNlLFxuICB2YXJpYXRpb25zID0gdHJ1ZSxcbik6IFZ1ZXRpZnlQYXJzZWRUaGVtZSB7XG4gIGNvbnN0IHsgYW5jaG9yLCAuLi52YXJpYW50IH0gPSB0aGVtZVxuICBjb25zdCBjb2xvcnMgPSBPYmplY3Qua2V5cyh2YXJpYW50KVxuICBjb25zdCBwYXJzZWRUaGVtZTogYW55ID0ge31cblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbG9ycy5sZW5ndGg7ICsraSkge1xuICAgIGNvbnN0IG5hbWUgPSBjb2xvcnNbaV1cbiAgICBjb25zdCB2YWx1ZSA9IHRoZW1lW25hbWVdXG5cbiAgICBpZiAodmFsdWUgPT0gbnVsbCkgY29udGludWVcblxuICAgIGlmICghdmFyaWF0aW9ucykge1xuICAgICAgcGFyc2VkVGhlbWVbbmFtZV0gPSB7IGJhc2U6IGludFRvSGV4KGNvbG9yVG9JbnQodmFsdWUpKSB9XG4gICAgfSBlbHNlIGlmIChpc0l0ZW0pIHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICBpZiAobmFtZSA9PT0gJ2Jhc2UnIHx8IG5hbWUuc3RhcnRzV2l0aCgnbGlnaHRlbicpIHx8IG5hbWUuc3RhcnRzV2l0aCgnZGFya2VuJykpIHtcbiAgICAgICAgcGFyc2VkVGhlbWVbbmFtZV0gPSBjb2xvclRvSGV4KHZhbHVlKVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgcGFyc2VkVGhlbWVbbmFtZV0gPSBwYXJzZSh2YWx1ZSwgdHJ1ZSwgdmFyaWF0aW9ucylcbiAgICB9IGVsc2Uge1xuICAgICAgcGFyc2VkVGhlbWVbbmFtZV0gPSBnZW5WYXJpYXRpb25zKG5hbWUsIGNvbG9yVG9JbnQodmFsdWUpKVxuICAgIH1cbiAgfVxuXG4gIGlmICghaXNJdGVtKSB7XG4gICAgcGFyc2VkVGhlbWUuYW5jaG9yID0gYW5jaG9yIHx8IHBhcnNlZFRoZW1lLmJhc2UgfHwgcGFyc2VkVGhlbWUucHJpbWFyeS5iYXNlXG4gIH1cblxuICByZXR1cm4gcGFyc2VkVGhlbWVcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZSB0aGUgQ1NTIGZvciBhIGJhc2UgY29sb3IgKC5wcmltYXJ5KVxuICovXG5jb25zdCBnZW5CYXNlQ29sb3IgPSAobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIGBcbi52LWFwcGxpY2F0aW9uIC4ke25hbWV9IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHt2YWx1ZX0gIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAke3ZhbHVlfSAhaW1wb3J0YW50O1xufVxuLnYtYXBwbGljYXRpb24gLiR7bmFtZX0tLXRleHQge1xuICBjb2xvcjogJHt2YWx1ZX0gIWltcG9ydGFudDtcbiAgY2FyZXQtY29sb3I6ICR7dmFsdWV9ICFpbXBvcnRhbnQ7XG59YFxufVxuXG4vKipcbiAqIEdlbmVyYXRlIHRoZSBDU1MgZm9yIGEgdmFyaWFudCBjb2xvciAoLnByaW1hcnkuZGFya2VuLTIpXG4gKi9cbmNvbnN0IGdlblZhcmlhbnRDb2xvciA9IChuYW1lOiBzdHJpbmcsIHZhcmlhbnQ6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IFt0eXBlLCBuXSA9IHZhcmlhbnQuc3BsaXQoLyhcXGQpLywgMilcbiAgcmV0dXJuIGBcbi52LWFwcGxpY2F0aW9uIC4ke25hbWV9LiR7dHlwZX0tJHtufSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7dmFsdWV9ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogJHt2YWx1ZX0gIWltcG9ydGFudDtcbn1cbi52LWFwcGxpY2F0aW9uIC4ke25hbWV9LS10ZXh0LnRleHQtLSR7dHlwZX0tJHtufSB7XG4gIGNvbG9yOiAke3ZhbHVlfSAhaW1wb3J0YW50O1xuICBjYXJldC1jb2xvcjogJHt2YWx1ZX0gIWltcG9ydGFudDtcbn1gXG59XG5cbmNvbnN0IGdlbkNvbG9yVmFyaWFibGVOYW1lID0gKG5hbWU6IHN0cmluZywgdmFyaWFudCA9ICdiYXNlJyk6IHN0cmluZyA9PiBgLS12LSR7bmFtZX0tJHt2YXJpYW50fWBcblxuY29uc3QgZ2VuQ29sb3JWYXJpYWJsZSA9IChuYW1lOiBzdHJpbmcsIHZhcmlhbnQgPSAnYmFzZScpOiBzdHJpbmcgPT4gYHZhcigke2dlbkNvbG9yVmFyaWFibGVOYW1lKG5hbWUsIHZhcmlhbnQpfSlgXG5cbmV4cG9ydCBmdW5jdGlvbiBnZW5TdHlsZXMgKHRoZW1lOiBWdWV0aWZ5UGFyc2VkVGhlbWUsIGNzc1ZhciA9IGZhbHNlKTogc3RyaW5nIHtcbiAgY29uc3QgeyBhbmNob3IsIC4uLnZhcmlhbnQgfSA9IHRoZW1lXG4gIGNvbnN0IGNvbG9ycyA9IE9iamVjdC5rZXlzKHZhcmlhbnQpXG5cbiAgaWYgKCFjb2xvcnMubGVuZ3RoKSByZXR1cm4gJydcblxuICBsZXQgdmFyaWFibGVzQ3NzID0gJydcbiAgbGV0IGNzcyA9ICcnXG5cbiAgY29uc3QgYUNvbG9yID0gY3NzVmFyID8gZ2VuQ29sb3JWYXJpYWJsZSgnYW5jaG9yJykgOiBhbmNob3JcbiAgY3NzICs9IGAudi1hcHBsaWNhdGlvbiBhIHsgY29sb3I6ICR7YUNvbG9yfTsgfWBcbiAgY3NzVmFyICYmICh2YXJpYWJsZXNDc3MgKz0gYCAgJHtnZW5Db2xvclZhcmlhYmxlTmFtZSgnYW5jaG9yJyl9OiAke2FuY2hvcn07XFxuYClcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbG9ycy5sZW5ndGg7ICsraSkge1xuICAgIGNvbnN0IG5hbWUgPSBjb2xvcnNbaV1cbiAgICBjb25zdCB2YWx1ZSA9IHRoZW1lW25hbWVdXG5cbiAgICBjc3MgKz0gZ2VuQmFzZUNvbG9yKG5hbWUsIGNzc1ZhciA/IGdlbkNvbG9yVmFyaWFibGUobmFtZSkgOiB2YWx1ZS5iYXNlKVxuICAgIGNzc1ZhciAmJiAodmFyaWFibGVzQ3NzICs9IGAgICR7Z2VuQ29sb3JWYXJpYWJsZU5hbWUobmFtZSl9OiAke3ZhbHVlLmJhc2V9O1xcbmApXG5cbiAgICBjb25zdCB2YXJpYW50cyA9IE9iamVjdC5rZXlzKHZhbHVlKVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFyaWFudHMubGVuZ3RoOyArK2kpIHtcbiAgICAgIGNvbnN0IHZhcmlhbnQgPSB2YXJpYW50c1tpXVxuICAgICAgY29uc3QgdmFyaWFudFZhbHVlID0gdmFsdWVbdmFyaWFudF1cbiAgICAgIGlmICh2YXJpYW50ID09PSAnYmFzZScpIGNvbnRpbnVlXG5cbiAgICAgIGNzcyArPSBnZW5WYXJpYW50Q29sb3IobmFtZSwgdmFyaWFudCwgY3NzVmFyID8gZ2VuQ29sb3JWYXJpYWJsZShuYW1lLCB2YXJpYW50KSA6IHZhcmlhbnRWYWx1ZSlcbiAgICAgIGNzc1ZhciAmJiAodmFyaWFibGVzQ3NzICs9IGAgICR7Z2VuQ29sb3JWYXJpYWJsZU5hbWUobmFtZSwgdmFyaWFudCl9OiAke3ZhcmlhbnRWYWx1ZX07XFxuYClcbiAgICB9XG4gIH1cblxuICBpZiAoY3NzVmFyKSB7XG4gICAgdmFyaWFibGVzQ3NzID0gYDpyb290IHtcXG4ke3ZhcmlhYmxlc0Nzc319XFxuXFxuYFxuICB9XG5cbiAgcmV0dXJuIHZhcmlhYmxlc0NzcyArIGNzc1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuVmFyaWF0aW9ucyAobmFtZTogc3RyaW5nLCB2YWx1ZTogQ29sb3JJbnQpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgY29uc3QgdmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgIGJhc2U6IGludFRvSGV4KHZhbHVlKSxcbiAgfVxuXG4gIGZvciAobGV0IGkgPSA1OyBpID4gMDsgLS1pKSB7XG4gICAgdmFsdWVzW2BsaWdodGVuJHtpfWBdID0gaW50VG9IZXgobGlnaHRlbih2YWx1ZSwgaSkpXG4gIH1cblxuICBmb3IgKGxldCBpID0gMTsgaSA8PSA0OyArK2kpIHtcbiAgICB2YWx1ZXNbYGRhcmtlbiR7aX1gXSA9IGludFRvSGV4KGRhcmtlbih2YWx1ZSwgaSkpXG4gIH1cblxuICByZXR1cm4gdmFsdWVzXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsaWdodGVuICh2YWx1ZTogQ29sb3JJbnQsIGFtb3VudDogbnVtYmVyKTogQ29sb3JJbnQge1xuICBjb25zdCBsYWIgPSBMQUIuZnJvbVhZWihzUkdCLnRvWFlaKHZhbHVlKSlcbiAgbGFiWzBdID0gbGFiWzBdICsgYW1vdW50ICogMTBcbiAgcmV0dXJuIHNSR0IuZnJvbVhZWihMQUIudG9YWVoobGFiKSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRhcmtlbiAodmFsdWU6IENvbG9ySW50LCBhbW91bnQ6IG51bWJlcik6IENvbG9ySW50IHtcbiAgY29uc3QgbGFiID0gTEFCLmZyb21YWVooc1JHQi50b1hZWih2YWx1ZSkpXG4gIGxhYlswXSA9IGxhYlswXSAtIGFtb3VudCAqIDEwXG4gIHJldHVybiBzUkdCLmZyb21YWVooTEFCLnRvWFlaKGxhYikpXG59XG4iLCIvKiBlc2xpbnQtZGlzYWJsZSBuby1tdWx0aS1zcGFjZXMgKi9cbi8vIEV4dGVuc2lvbnNcbmltcG9ydCB7IFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlJ1xuXG4vLyBVdGlsaXRpZXNcbmltcG9ydCAqIGFzIFRoZW1lVXRpbHMgZnJvbSAnLi91dGlscydcbmltcG9ydCB7IGdldE5lc3RlZFZhbHVlIH0gZnJvbSAnLi4vLi4vdXRpbC9oZWxwZXJzJ1xuXG4vLyBUeXBlc1xuaW1wb3J0IFZ1ZSBmcm9tICd2dWUnXG5pbXBvcnQgeyBWdWV0aWZ5UHJlc2V0IH0gZnJvbSAndnVldGlmeS90eXBlcy9zZXJ2aWNlcy9wcmVzZXRzJ1xuaW1wb3J0IHtcbiAgVnVldGlmeVBhcnNlZFRoZW1lLFxuICBWdWV0aWZ5VGhlbWVzLFxuICBWdWV0aWZ5VGhlbWVWYXJpYW50LFxuICBUaGVtZSBhcyBJVGhlbWUsXG59IGZyb20gJ3Z1ZXRpZnkvdHlwZXMvc2VydmljZXMvdGhlbWUnXG5cbmV4cG9ydCBjbGFzcyBUaGVtZSBleHRlbmRzIFNlcnZpY2Uge1xuICBzdGF0aWMgcHJvcGVydHk6ICd0aGVtZScgPSAndGhlbWUnXG5cbiAgcHVibGljIGRpc2FibGVkID0gZmFsc2VcblxuICBwdWJsaWMgb3B0aW9uczogSVRoZW1lWydvcHRpb25zJ11cblxuICBwdWJsaWMgc3R5bGVFbD86IEhUTUxTdHlsZUVsZW1lbnRcblxuICBwdWJsaWMgdGhlbWVzOiBWdWV0aWZ5VGhlbWVzXG5cbiAgcHVibGljIGRlZmF1bHRzOiBWdWV0aWZ5VGhlbWVzXG5cbiAgcHJpdmF0ZSBpc0RhcmsgPSBudWxsIGFzIGJvb2xlYW4gfCBudWxsXG5cbiAgcHJpdmF0ZSB2dWVJbnN0YW5jZSA9IG51bGwgYXMgVnVlIHwgbnVsbFxuXG4gIHByaXZhdGUgdnVlTWV0YSA9IG51bGwgYXMgYW55IHwgbnVsbFxuXG4gIGNvbnN0cnVjdG9yIChwcmVzZXQ6IFZ1ZXRpZnlQcmVzZXQpIHtcbiAgICBzdXBlcigpXG5cbiAgICBjb25zdCB7XG4gICAgICBkYXJrLFxuICAgICAgZGlzYWJsZSxcbiAgICAgIG9wdGlvbnMsXG4gICAgICB0aGVtZXMsXG4gICAgfSA9IHByZXNldFtUaGVtZS5wcm9wZXJ0eV1cblxuICAgIHRoaXMuZGFyayA9IEJvb2xlYW4oZGFyaylcbiAgICB0aGlzLmRlZmF1bHRzID0gdGhpcy50aGVtZXMgPSB0aGVtZXNcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zXG5cbiAgICBpZiAoZGlzYWJsZSkge1xuICAgICAgdGhpcy5kaXNhYmxlZCA9IHRydWVcblxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy50aGVtZXMgPSB7XG4gICAgICBkYXJrOiB0aGlzLmZpbGxWYXJpYW50KHRoZW1lcy5kYXJrLCB0cnVlKSxcbiAgICAgIGxpZ2h0OiB0aGlzLmZpbGxWYXJpYW50KHRoZW1lcy5saWdodCwgZmFsc2UpLFxuICAgIH1cbiAgfVxuXG4gIC8vIFdoZW4gc2V0dGluZyBjc3MsIGNoZWNrIGZvciBlbGVtZW50XG4gIC8vIGFuZCBhcHBseSBuZXcgdmFsdWVzXG4gIHNldCBjc3MgKHZhbDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMudnVlTWV0YSkge1xuICAgICAgaWYgKHRoaXMuaXNWdWVNZXRhMjMpIHtcbiAgICAgICAgdGhpcy5hcHBseVZ1ZU1ldGEyMygpXG4gICAgICB9XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgdGhpcy5jaGVja09yQ3JlYXRlU3R5bGVFbGVtZW50KCkgJiYgKHRoaXMuc3R5bGVFbCEuaW5uZXJIVE1MID0gdmFsKVxuICB9XG5cbiAgc2V0IGRhcmsgKHZhbDogYm9vbGVhbikge1xuICAgIGNvbnN0IG9sZERhcmsgPSB0aGlzLmlzRGFya1xuXG4gICAgdGhpcy5pc0RhcmsgPSB2YWxcbiAgICAvLyBPbmx5IGFwcGx5IHRoZW1lIGFmdGVyIGRhcmtcbiAgICAvLyBoYXMgYWxyZWFkeSBiZWVuIHNldCBiZWZvcmVcbiAgICBvbGREYXJrICE9IG51bGwgJiYgdGhpcy5hcHBseVRoZW1lKClcbiAgfVxuXG4gIGdldCBkYXJrICgpIHtcbiAgICByZXR1cm4gQm9vbGVhbih0aGlzLmlzRGFyaylcbiAgfVxuXG4gIC8vIEFwcGx5IGN1cnJlbnQgdGhlbWUgZGVmYXVsdFxuICAvLyBvbmx5IGNhbGxlZCBvbiBjbGllbnQgc2lkZVxuICBwdWJsaWMgYXBwbHlUaGVtZSAoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybiB0aGlzLmNsZWFyQ3NzKClcblxuICAgIHRoaXMuY3NzID0gdGhpcy5nZW5lcmF0ZWRTdHlsZXNcbiAgfVxuXG4gIHB1YmxpYyBjbGVhckNzcyAoKTogdm9pZCB7XG4gICAgdGhpcy5jc3MgPSAnJ1xuICB9XG5cbiAgLy8gSW5pdGlhbGl6ZSB0aGVtZSBmb3IgU1NSIGFuZCBTUEFcbiAgLy8gQXR0YWNoIHRvIHNzckNvbnRleHQgaGVhZCBvclxuICAvLyBhcHBseSBuZXcgdGhlbWUgdG8gZG9jdW1lbnRcbiAgcHVibGljIGluaXQgKHJvb3Q6IFZ1ZSwgc3NyQ29udGV4dD86IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm5cblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKChyb290IGFzIGFueSkuJG1ldGEpIHtcbiAgICAgIHRoaXMuaW5pdFZ1ZU1ldGEocm9vdClcbiAgICB9IGVsc2UgaWYgKHNzckNvbnRleHQpIHtcbiAgICAgIHRoaXMuaW5pdFNTUihzc3JDb250ZXh0KVxuICAgIH1cblxuICAgIHRoaXMuaW5pdFRoZW1lKClcbiAgfVxuXG4gIC8vIEFsbG93cyBmb3IgeW91IHRvIHNldCB0YXJnZXQgdGhlbWVcbiAgcHVibGljIHNldFRoZW1lICh0aGVtZTogJ2xpZ2h0JyB8ICdkYXJrJywgdmFsdWU6IG9iamVjdCkge1xuICAgIHRoaXMudGhlbWVzW3RoZW1lXSA9IE9iamVjdC5hc3NpZ24odGhpcy50aGVtZXNbdGhlbWVdLCB2YWx1ZSlcbiAgICB0aGlzLmFwcGx5VGhlbWUoKVxuICB9XG5cbiAgLy8gUmVzZXQgdGhlbWUgZGVmYXVsdHNcbiAgcHVibGljIHJlc2V0VGhlbWVzICgpIHtcbiAgICB0aGlzLnRoZW1lcy5saWdodCA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZGVmYXVsdHMubGlnaHQpXG4gICAgdGhpcy50aGVtZXMuZGFyayA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZGVmYXVsdHMuZGFyaylcbiAgICB0aGlzLmFwcGx5VGhlbWUoKVxuICB9XG5cbiAgLy8gQ2hlY2sgZm9yIGV4aXN0ZW5jZSBvZiBzdHlsZSBlbGVtZW50XG4gIHByaXZhdGUgY2hlY2tPckNyZWF0ZVN0eWxlRWxlbWVudCAoKTogYm9vbGVhbiB7XG4gICAgdGhpcy5zdHlsZUVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Z1ZXRpZnktdGhlbWUtc3R5bGVzaGVldCcpIGFzIEhUTUxTdHlsZUVsZW1lbnRcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgaWYgKHRoaXMuc3R5bGVFbCkgcmV0dXJuIHRydWVcblxuICAgIHRoaXMuZ2VuU3R5bGVFbGVtZW50KCkgLy8gSWYgZG9lc24ndCBoYXZlIGl0LCBjcmVhdGUgaXRcblxuICAgIHJldHVybiBCb29sZWFuKHRoaXMuc3R5bGVFbClcbiAgfVxuXG4gIHByaXZhdGUgZmlsbFZhcmlhbnQgKFxuICAgIHRoZW1lOiBQYXJ0aWFsPFZ1ZXRpZnlUaGVtZVZhcmlhbnQ+ID0ge30sXG4gICAgZGFyazogYm9vbGVhblxuICApOiBWdWV0aWZ5VGhlbWVWYXJpYW50IHtcbiAgICBjb25zdCBkZWZhdWx0VGhlbWUgPSB0aGlzLnRoZW1lc1tkYXJrID8gJ2RhcmsnIDogJ2xpZ2h0J11cblxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LFxuICAgICAgZGVmYXVsdFRoZW1lLFxuICAgICAgdGhlbWVcbiAgICApXG4gIH1cblxuICAvLyBHZW5lcmF0ZSB0aGUgc3R5bGUgZWxlbWVudFxuICAvLyBpZiBhcHBsaWNhYmxlXG4gIHByaXZhdGUgZ2VuU3R5bGVFbGVtZW50ICgpOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJykgcmV0dXJuXG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHRoaXMuc3R5bGVFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJylcbiAgICB0aGlzLnN0eWxlRWwudHlwZSA9ICd0ZXh0L2NzcydcbiAgICB0aGlzLnN0eWxlRWwuaWQgPSAndnVldGlmeS10aGVtZS1zdHlsZXNoZWV0J1xuXG4gICAgaWYgKHRoaXMub3B0aW9ucy5jc3BOb25jZSkge1xuICAgICAgdGhpcy5zdHlsZUVsLnNldEF0dHJpYnV0ZSgnbm9uY2UnLCB0aGlzLm9wdGlvbnMuY3NwTm9uY2UpXG4gICAgfVxuXG4gICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZCh0aGlzLnN0eWxlRWwpXG4gIH1cblxuICBwcml2YXRlIGluaXRWdWVNZXRhIChyb290OiBhbnkpIHtcbiAgICB0aGlzLnZ1ZU1ldGEgPSByb290LiRtZXRhKClcbiAgICBpZiAodGhpcy5pc1Z1ZU1ldGEyMykge1xuICAgICAgLy8gdnVlLW1ldGEgbmVlZHMgdG8gYXBwbHkgYWZ0ZXIgbW91bnRlZCgpXG4gICAgICByb290LiRuZXh0VGljaygoKSA9PiB7XG4gICAgICAgIHRoaXMuYXBwbHlWdWVNZXRhMjMoKVxuICAgICAgfSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IG1ldGFLZXlOYW1lID0gdHlwZW9mIHRoaXMudnVlTWV0YS5nZXRPcHRpb25zID09PSAnZnVuY3Rpb24nID8gdGhpcy52dWVNZXRhLmdldE9wdGlvbnMoKS5rZXlOYW1lIDogJ21ldGFJbmZvJ1xuICAgIGNvbnN0IG1ldGFJbmZvID0gcm9vdC4kb3B0aW9uc1ttZXRhS2V5TmFtZV0gfHwge31cblxuICAgIHJvb3QuJG9wdGlvbnNbbWV0YUtleU5hbWVdID0gKCkgPT4ge1xuICAgICAgbWV0YUluZm8uc3R5bGUgPSBtZXRhSW5mby5zdHlsZSB8fCBbXVxuXG4gICAgICBjb25zdCB2dWV0aWZ5U3R5bGVzaGVldCA9IG1ldGFJbmZvLnN0eWxlLmZpbmQoKHM6IGFueSkgPT4gcy5pZCA9PT0gJ3Z1ZXRpZnktdGhlbWUtc3R5bGVzaGVldCcpXG5cbiAgICAgIGlmICghdnVldGlmeVN0eWxlc2hlZXQpIHtcbiAgICAgICAgbWV0YUluZm8uc3R5bGUucHVzaCh7XG4gICAgICAgICAgY3NzVGV4dDogdGhpcy5nZW5lcmF0ZWRTdHlsZXMsXG4gICAgICAgICAgdHlwZTogJ3RleHQvY3NzJyxcbiAgICAgICAgICBpZDogJ3Z1ZXRpZnktdGhlbWUtc3R5bGVzaGVldCcsXG4gICAgICAgICAgbm9uY2U6ICh0aGlzLm9wdGlvbnMgfHwge30pLmNzcE5vbmNlLFxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdnVldGlmeVN0eWxlc2hlZXQuY3NzVGV4dCA9IHRoaXMuZ2VuZXJhdGVkU3R5bGVzXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBtZXRhSW5mb1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlWdWVNZXRhMjMgKCkge1xuICAgIGNvbnN0IHsgc2V0IH0gPSB0aGlzLnZ1ZU1ldGEuYWRkQXBwKCd2dWV0aWZ5JylcblxuICAgIHNldCh7XG4gICAgICBzdHlsZTogW3tcbiAgICAgICAgY3NzVGV4dDogdGhpcy5nZW5lcmF0ZWRTdHlsZXMsXG4gICAgICAgIHR5cGU6ICd0ZXh0L2NzcycsXG4gICAgICAgIGlkOiAndnVldGlmeS10aGVtZS1zdHlsZXNoZWV0JyxcbiAgICAgICAgbm9uY2U6IHRoaXMub3B0aW9ucy5jc3BOb25jZSxcbiAgICAgIH1dLFxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGluaXRTU1IgKHNzckNvbnRleHQ/OiBhbnkpIHtcbiAgICAvLyBTU1JcbiAgICBjb25zdCBub25jZSA9IHRoaXMub3B0aW9ucy5jc3BOb25jZSA/IGAgbm9uY2U9XCIke3RoaXMub3B0aW9ucy5jc3BOb25jZX1cImAgOiAnJ1xuICAgIHNzckNvbnRleHQuaGVhZCA9IHNzckNvbnRleHQuaGVhZCB8fCAnJ1xuICAgIHNzckNvbnRleHQuaGVhZCArPSBgPHN0eWxlIHR5cGU9XCJ0ZXh0L2Nzc1wiIGlkPVwidnVldGlmeS10aGVtZS1zdHlsZXNoZWV0XCIke25vbmNlfT4ke3RoaXMuZ2VuZXJhdGVkU3R5bGVzfTwvc3R5bGU+YFxuICB9XG5cbiAgcHJpdmF0ZSBpbml0VGhlbWUgKCkge1xuICAgIC8vIE9ubHkgd2F0Y2ggZm9yIHJlYWN0aXZpdHkgb24gY2xpZW50IHNpZGVcbiAgICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJykgcmV0dXJuXG5cbiAgICAvLyBJZiB3ZSBnZXQgaGVyZSBzb21laG93LCBlbnN1cmVcbiAgICAvLyBleGlzdGluZyBpbnN0YW5jZSBpcyByZW1vdmVkXG4gICAgaWYgKHRoaXMudnVlSW5zdGFuY2UpIHRoaXMudnVlSW5zdGFuY2UuJGRlc3Ryb3koKVxuXG4gICAgLy8gVXNlIFZ1ZSBpbnN0YW5jZSB0byB0cmFjayByZWFjdGl2aXR5XG4gICAgLy8gVE9ETzogVXBkYXRlIHRvIHVzZSBSRkMgaWYgbWVyZ2VkXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3Z1ZWpzL3JmY3MvYmxvYi9hZHZhbmNlZC1yZWFjdGl2aXR5LWFwaS9hY3RpdmUtcmZjcy8wMDAwLWFkdmFuY2VkLXJlYWN0aXZpdHktYXBpLm1kXG4gICAgdGhpcy52dWVJbnN0YW5jZSA9IG5ldyBWdWUoe1xuICAgICAgZGF0YTogeyB0aGVtZXM6IHRoaXMudGhlbWVzIH0sXG5cbiAgICAgIHdhdGNoOiB7XG4gICAgICAgIHRoZW1lczoge1xuICAgICAgICAgIGltbWVkaWF0ZTogdHJ1ZSxcbiAgICAgICAgICBkZWVwOiB0cnVlLFxuICAgICAgICAgIGhhbmRsZXI6ICgpID0+IHRoaXMuYXBwbHlUaGVtZSgpLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KVxuICB9XG5cbiAgZ2V0IGN1cnJlbnRUaGVtZSAoKSB7XG4gICAgY29uc3QgdGFyZ2V0ID0gdGhpcy5kYXJrID8gJ2RhcmsnIDogJ2xpZ2h0J1xuXG4gICAgcmV0dXJuIHRoaXMudGhlbWVzW3RhcmdldF1cbiAgfVxuXG4gIGdldCBnZW5lcmF0ZWRTdHlsZXMgKCk6IHN0cmluZyB7XG4gICAgY29uc3QgdGhlbWUgPSB0aGlzLnBhcnNlZFRoZW1lXG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5vcHRpb25zIHx8IHt9XG4gICAgbGV0IGNzc1xuXG4gICAgaWYgKG9wdGlvbnMudGhlbWVDYWNoZSAhPSBudWxsKSB7XG4gICAgICBjc3MgPSBvcHRpb25zLnRoZW1lQ2FjaGUuZ2V0KHRoZW1lKVxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICBpZiAoY3NzICE9IG51bGwpIHJldHVybiBjc3NcbiAgICB9XG5cbiAgICBjc3MgPSBUaGVtZVV0aWxzLmdlblN0eWxlcyh0aGVtZSwgb3B0aW9ucy5jdXN0b21Qcm9wZXJ0aWVzKVxuXG4gICAgaWYgKG9wdGlvbnMubWluaWZ5VGhlbWUgIT0gbnVsbCkge1xuICAgICAgY3NzID0gb3B0aW9ucy5taW5pZnlUaGVtZShjc3MpXG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMudGhlbWVDYWNoZSAhPSBudWxsKSB7XG4gICAgICBvcHRpb25zLnRoZW1lQ2FjaGUuc2V0KHRoZW1lLCBjc3MpXG4gICAgfVxuXG4gICAgcmV0dXJuIGNzc1xuICB9XG5cbiAgZ2V0IHBhcnNlZFRoZW1lICgpOiBWdWV0aWZ5UGFyc2VkVGhlbWUge1xuICAgIHJldHVybiBUaGVtZVV0aWxzLnBhcnNlKFxuICAgICAgdGhpcy5jdXJyZW50VGhlbWUgfHwge30sXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBnZXROZXN0ZWRWYWx1ZSh0aGlzLm9wdGlvbnMsIFsndmFyaWF0aW9ucyddLCB0cnVlKVxuICAgIClcbiAgfVxuXG4gIC8vIElzIHVzaW5nIHYyLjMgb2YgdnVlLW1ldGFcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL251eHQvdnVlLW1ldGEvcmVsZWFzZXMvdGFnL3YyLjMuMFxuICBwcml2YXRlIGdldCBpc1Z1ZU1ldGEyMyAoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLnZ1ZU1ldGEuYWRkQXBwID09PSAnZnVuY3Rpb24nXG4gIH1cbn1cbiIsImltcG9ydCB7IGluc3RhbGwgfSBmcm9tICcuL2luc3RhbGwnXG5cbi8vIFR5cGVzXG5pbXBvcnQgVnVlIGZyb20gJ3Z1ZSdcbmltcG9ydCB7XG4gIFVzZXJWdWV0aWZ5UHJlc2V0LFxuICBWdWV0aWZ5UHJlc2V0LFxufSBmcm9tICd2dWV0aWZ5L3R5cGVzL3NlcnZpY2VzL3ByZXNldHMnXG5pbXBvcnQge1xuICBWdWV0aWZ5U2VydmljZSxcbiAgVnVldGlmeVNlcnZpY2VDb250cmFjdCxcbn0gZnJvbSAndnVldGlmeS90eXBlcy9zZXJ2aWNlcydcblxuLy8gU2VydmljZXNcbmltcG9ydCAqIGFzIHNlcnZpY2VzIGZyb20gJy4vc2VydmljZXMnXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZ1ZXRpZnkge1xuICBzdGF0aWMgaW5zdGFsbCA9IGluc3RhbGxcblxuICBzdGF0aWMgaW5zdGFsbGVkID0gZmFsc2VcblxuICBzdGF0aWMgdmVyc2lvbiA9IF9fVlVFVElGWV9WRVJTSU9OX19cblxuICBzdGF0aWMgY29uZmlnID0ge1xuICAgIHNpbGVudDogZmFsc2UsXG4gIH1cblxuICBwdWJsaWMgZnJhbWV3b3JrOiBEaWN0aW9uYXJ5PFZ1ZXRpZnlTZXJ2aWNlQ29udHJhY3Q+ID0ge31cblxuICBwdWJsaWMgaW5zdGFsbGVkOiBzdHJpbmdbXSA9IFtdXG5cbiAgcHVibGljIHByZXNldCA9IHt9IGFzIFZ1ZXRpZnlQcmVzZXRcblxuICBwdWJsaWMgdXNlclByZXNldDogVXNlclZ1ZXRpZnlQcmVzZXQgPSB7fVxuXG4gIGNvbnN0cnVjdG9yICh1c2VyUHJlc2V0OiBVc2VyVnVldGlmeVByZXNldCA9IHt9KSB7XG4gICAgdGhpcy51c2VyUHJlc2V0ID0gdXNlclByZXNldFxuXG4gICAgdGhpcy51c2Uoc2VydmljZXMuUHJlc2V0cylcbiAgICB0aGlzLnVzZShzZXJ2aWNlcy5BcHBsaWNhdGlvbilcbiAgICB0aGlzLnVzZShzZXJ2aWNlcy5CcmVha3BvaW50KVxuICAgIHRoaXMudXNlKHNlcnZpY2VzLkdvdG8pXG4gICAgdGhpcy51c2Uoc2VydmljZXMuSWNvbnMpXG4gICAgdGhpcy51c2Uoc2VydmljZXMuTGFuZylcbiAgICB0aGlzLnVzZShzZXJ2aWNlcy5UaGVtZSlcbiAgfVxuXG4gIC8vIENhbGxlZCBvbiB0aGUgbmV3IHZ1ZXRpZnkgaW5zdGFuY2VcbiAgLy8gYm9vdHN0cmFwIGluIGluc3RhbGwgYmVmb3JlQ3JlYXRlXG4gIC8vIEV4cG9zZXMgc3NyQ29udGV4dCBpZiBhdmFpbGFibGVcbiAgaW5pdCAocm9vdDogVnVlLCBzc3JDb250ZXh0Pzogb2JqZWN0KSB7XG4gICAgdGhpcy5pbnN0YWxsZWQuZm9yRWFjaChwcm9wZXJ0eSA9PiB7XG4gICAgICBjb25zdCBzZXJ2aWNlID0gdGhpcy5mcmFtZXdvcmtbcHJvcGVydHldXG5cbiAgICAgIHNlcnZpY2UuZnJhbWV3b3JrID0gdGhpcy5mcmFtZXdvcmtcblxuICAgICAgc2VydmljZS5pbml0KHJvb3QsIHNzckNvbnRleHQpXG4gICAgfSlcblxuICAgIC8vIHJ0bCBpcyBub3QgaW5zdGFsbGVkIGFuZFxuICAgIC8vIHdpbGwgbmV2ZXIgYmUgY2FsbGVkIGJ5XG4gICAgLy8gdGhlIGluaXQgcHJvY2Vzc1xuICAgIHRoaXMuZnJhbWV3b3JrLnJ0bCA9IEJvb2xlYW4odGhpcy5wcmVzZXQucnRsKSBhcyBhbnlcbiAgfVxuXG4gIC8vIEluc3RhbnRpYXRlIGEgVnVldGlmeVNlcnZpY2VcbiAgdXNlIChTZXJ2aWNlOiBWdWV0aWZ5U2VydmljZSkge1xuICAgIGNvbnN0IHByb3BlcnR5ID0gU2VydmljZS5wcm9wZXJ0eVxuXG4gICAgaWYgKHRoaXMuaW5zdGFsbGVkLmluY2x1ZGVzKHByb3BlcnR5KSkgcmV0dXJuXG5cbiAgICAvLyBUT0RPIG1heWJlIGEgc3BlY2lmaWMgdHlwZSBmb3IgYXJnIDI/XG4gICAgdGhpcy5mcmFtZXdvcmtbcHJvcGVydHldID0gbmV3IFNlcnZpY2UodGhpcy5wcmVzZXQsIHRoaXMgYXMgYW55KVxuICAgIHRoaXMuaW5zdGFsbGVkLnB1c2gocHJvcGVydHkpXG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///118\n")},,,function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return inject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return provide; });\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);\n/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(10);\n\n\n\n\nfunction generateWarning(child, parent) {\n return function () {\n return Object(_util_console__WEBPACK_IMPORTED_MODULE_2__[/* consoleWarn */ "c"])("The ".concat(child, " component must be used inside a ").concat(parent));\n };\n}\n\nfunction inject(namespace, child, parent) {\n var defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent)\n } : null;\n return vue__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].extend({\n name: \'registrable-inject\',\n inject: Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({}, namespace, {\n default: defaultImpl\n })\n });\n}\nfunction provide(namespace) {\n var self = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return vue__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].extend({\n name: \'registrable-provide\',\n methods: self ? {} : {\n register: null,\n unregister: null\n },\n provide: function provide() {\n return Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({}, namespace, self ? this : {\n register: this.register,\n unregister: this.unregister\n });\n }\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL21peGlucy9yZWdpc3RyYWJsZS9pbmRleC50cz9iZWRhIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBRUE7O0FBRUEsd0NBQXVEO0FBQ3JELFNBQU87QUFBQSxXQUFNLHlFQUFXLGVBQVEsS0FBUiw4Q0FBeEIsTUFBd0IsRUFBakI7QUFBQSxHQUFQO0FBQ0Q7O0FBU0ssMENBRTBDO0FBQzlDLE1BQU0sV0FBVyxHQUFHLEtBQUssSUFBTCxTQUFrQjtBQUNwQyxZQUFRLEVBQUUsZUFBZSxRQURXLE1BQ1gsQ0FEVztBQUVwQyxjQUFVLEVBQUUsZUFBZTtBQUZTLEdBQWxCLEdBQXBCO0FBS0EsU0FBTyxtREFBRyxDQUFILE9BQVc7QUFDaEIsUUFBSSxFQURZO0FBR2hCLFVBQU0sRUFBRSxzR0FDTixTQURJLEVBQ1M7QUFDWCxhQUFPLEVBQUU7QUFERSxLQURUO0FBSFUsR0FBWCxDQUFQO0FBU0Q7QUFFSyw0QkFBa0Q7QUFBQSxNQUFaLElBQVksdUVBQWxELEtBQWtEO0FBQ3RELFNBQU8sbURBQUcsQ0FBSCxPQUFXO0FBQ2hCLFFBQUksRUFEWTtBQUdoQixXQUFPLEVBQUUsSUFBSSxRQUFRO0FBQ25CLGNBQVEsRUFEVztBQUVuQixnQkFBVSxFQUFFO0FBRk8sS0FITDtBQU9oQixXQVBnQixxQkFPVDtBQUNMLG1IQUNFLFNBREYsRUFDZSxJQUFJLFVBQVU7QUFDekIsZ0JBQVEsRUFBRSxLQURlO0FBRXpCLGtCQUFVLEVBQUUsS0FBSztBQUZRLE9BRDdCO0FBTUQ7QUFkZSxHQUFYLENBQVA7QUFnQkQiLCJmaWxlIjoiMTIxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFZ1ZSBmcm9tICd2dWUnXG5pbXBvcnQgeyBWdWVDb25zdHJ1Y3RvciB9IGZyb20gJ3Z1ZS90eXBlcy92dWUnXG5pbXBvcnQgeyBjb25zb2xlV2FybiB9IGZyb20gJy4uLy4uL3V0aWwvY29uc29sZSdcblxuZnVuY3Rpb24gZ2VuZXJhdGVXYXJuaW5nIChjaGlsZDogc3RyaW5nLCBwYXJlbnQ6IHN0cmluZykge1xuICByZXR1cm4gKCkgPT4gY29uc29sZVdhcm4oYFRoZSAke2NoaWxkfSBjb21wb25lbnQgbXVzdCBiZSB1c2VkIGluc2lkZSBhICR7cGFyZW50fWApXG59XG5cbmV4cG9ydCB0eXBlIFJlZ2lzdHJhYmxlPFQgZXh0ZW5kcyBzdHJpbmcsIEMgZXh0ZW5kcyBWdWVDb25zdHJ1Y3RvciB8IG51bGwgPSBudWxsPiA9IFZ1ZUNvbnN0cnVjdG9yPFZ1ZSAmIHtcbiAgW0sgaW4gVF06IEMgZXh0ZW5kcyBWdWVDb25zdHJ1Y3RvciA/IEluc3RhbmNlVHlwZTxDPiA6IHtcbiAgICByZWdpc3RlciAoLi4ucHJvcHM6IGFueVtdKTogdm9pZFxuICAgIHVucmVnaXN0ZXIgKHNlbGY6IGFueSk6IHZvaWRcbiAgfVxufT5cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdDxcbiAgVCBleHRlbmRzIHN0cmluZywgQyBleHRlbmRzIFZ1ZUNvbnN0cnVjdG9yIHwgbnVsbCA9IG51bGxcbj4gKG5hbWVzcGFjZTogVCwgY2hpbGQ/OiBzdHJpbmcsIHBhcmVudD86IHN0cmluZyk6IFJlZ2lzdHJhYmxlPFQsIEM+IHtcbiAgY29uc3QgZGVmYXVsdEltcGwgPSBjaGlsZCAmJiBwYXJlbnQgPyB7XG4gICAgcmVnaXN0ZXI6IGdlbmVyYXRlV2FybmluZyhjaGlsZCwgcGFyZW50KSxcbiAgICB1bnJlZ2lzdGVyOiBnZW5lcmF0ZVdhcm5pbmcoY2hpbGQsIHBhcmVudCksXG4gIH0gOiBudWxsXG5cbiAgcmV0dXJuIFZ1ZS5leHRlbmQoe1xuICAgIG5hbWU6ICdyZWdpc3RyYWJsZS1pbmplY3QnLFxuXG4gICAgaW5qZWN0OiB7XG4gICAgICBbbmFtZXNwYWNlXToge1xuICAgICAgICBkZWZhdWx0OiBkZWZhdWx0SW1wbCxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGUgKG5hbWVzcGFjZTogc3RyaW5nLCBzZWxmID0gZmFsc2UpIHtcbiAgcmV0dXJuIFZ1ZS5leHRlbmQoe1xuICAgIG5hbWU6ICdyZWdpc3RyYWJsZS1wcm92aWRlJyxcblxuICAgIG1ldGhvZHM6IHNlbGYgPyB7fSA6IHtcbiAgICAgIHJlZ2lzdGVyOiBudWxsLFxuICAgICAgdW5yZWdpc3RlcjogbnVsbCxcbiAgICB9LFxuICAgIHByb3ZpZGUgKCk6IG9iamVjdCB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBbbmFtZXNwYWNlXTogc2VsZiA/IHRoaXMgOiB7XG4gICAgICAgICAgcmVnaXN0ZXI6IHRoaXMucmVnaXN0ZXIsXG4gICAgICAgICAgdW5yZWdpc3RlcjogdGhpcy51bnJlZ2lzdGVyLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH0sXG4gIH0pXG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///121\n')},function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return VGrid; });\n/* harmony import */ var core_js_modules_es6_string_starts_with__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(77);\n/* harmony import */ var core_js_modules_es6_string_starts_with__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_string_starts_with__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4);\n/* harmony import */ var core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9);\n/* harmony import */ var core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(2);\n\n\n\n\n// Types\n\nfunction VGrid(name) {\n /* @vue/component */\n return vue__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].extend({\n name: "v-".concat(name),\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: \'div\'\n }\n },\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n data.staticClass = "".concat(name, " ").concat(data.staticClass || \'\').trim();\n var attrs = data.attrs;\n\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {};\n var classes = Object.keys(attrs).filter(function (key) {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === \'slot\') return false;\n var value = attrs[key]; // add back data attributes like data-test="foo" but do not\n // add them as classes\n\n if (key.startsWith(\'data-\')) {\n data.attrs[key] = value;\n return false;\n }\n\n return value || typeof value === \'string\';\n });\n if (classes.length) data.staticClass += " ".concat(classes.join(\' \'));\n }\n\n if (props.id) {\n data.domProps = data.domProps || {};\n data.domProps.id = props.id;\n }\n\n return h(props.tag, data, children);\n }\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvVkdyaWQvZ3JpZC50cz9mMzZhIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUVjLHFCQUE2QjtBQUN6QztBQUNBLFNBQU8sbURBQUcsQ0FBSCxPQUFXO0FBQ2hCLFFBQUksY0FEWSxJQUNaLENBRFk7QUFHaEIsY0FBVSxFQUhNO0FBS2hCLFNBQUssRUFBRTtBQUNMLFFBQUUsRUFERztBQUVMLFNBQUcsRUFBRTtBQUNILFlBQUksRUFERDtBQUVILGVBQU8sRUFBRTtBQUZOO0FBRkEsS0FMUztBQWFoQixVQWJnQixrQkFhVixDQWJVLFFBYW9CO0FBQUEsVUFBekIsS0FBeUIsUUFBekIsS0FBeUI7QUFBQSxVQUF6QixJQUF5QixRQUF6QixJQUF5QjtBQUFBLFVBQVYsUUFBVSxRQUFWLFFBQVU7QUFDbEMsVUFBSSxDQUFKLGNBQW9CLFVBQUcsSUFBSCxjQUFXLElBQUksQ0FBSixlQUFaLEVBQUMsRUFBcEIsSUFBb0IsRUFBcEI7QUFEa0MsVUFHMUIsS0FIMEIsR0FHbEMsSUFIa0MsQ0FHMUIsS0FIMEI7O0FBSWxDLGlCQUFXO0FBQ1Q7QUFDQSxZQUFJLENBQUo7QUFDQSxZQUFNLE9BQU8sR0FBRyxNQUFNLENBQU4sbUJBQTBCLGFBQUcsRUFBRztBQUM5QztBQUNBO0FBQ0EsY0FBSSxHQUFHLEtBQVAsUUFBb0I7QUFFcEIsY0FBTSxLQUFLLEdBQUcsS0FBSyxDQUwyQixHQUszQixDQUFuQixDQUw4QyxDQU85QztBQUNBOztBQUNBLGNBQUksR0FBRyxDQUFILFdBQUosT0FBSSxDQUFKLEVBQTZCO0FBQzNCLGdCQUFJLENBQUo7QUFDQTtBQUNEOztBQUVELGlCQUFPLEtBQUssSUFBSSxpQkFBaEI7QUFkRixTQUFnQixDQUFoQjtBQWlCQSxZQUFJLE9BQU8sQ0FBWCxRQUFvQixJQUFJLENBQUosMEJBQXdCLE9BQU8sQ0FBUCxLQUF4QixHQUF3QixDQUF4QjtBQUNyQjs7QUFFRCxVQUFJLEtBQUssQ0FBVCxJQUFjO0FBQ1osWUFBSSxDQUFKLFdBQWdCLElBQUksQ0FBSixZQUFoQjtBQUNBLFlBQUksQ0FBSixjQUFtQixLQUFLLENBQXhCO0FBQ0Q7O0FBRUQsYUFBTyxDQUFDLENBQUMsS0FBSyxDQUFOLFdBQVIsUUFBUSxDQUFSO0FBQ0Q7QUE5Q2UsR0FBWCxDQUFQO0FBZ0REIiwiZmlsZSI6IjEyMi5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFR5cGVzXG5pbXBvcnQgVnVlLCB7IFZOb2RlIH0gZnJvbSAndnVlJ1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBWR3JpZCAobmFtZTogc3RyaW5nKSB7XG4gIC8qIEB2dWUvY29tcG9uZW50ICovXG4gIHJldHVybiBWdWUuZXh0ZW5kKHtcbiAgICBuYW1lOiBgdi0ke25hbWV9YCxcblxuICAgIGZ1bmN0aW9uYWw6IHRydWUsXG5cbiAgICBwcm9wczoge1xuICAgICAgaWQ6IFN0cmluZyxcbiAgICAgIHRhZzoge1xuICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgIGRlZmF1bHQ6ICdkaXYnLFxuICAgICAgfSxcbiAgICB9LFxuXG4gICAgcmVuZGVyIChoLCB7IHByb3BzLCBkYXRhLCBjaGlsZHJlbiB9KTogVk5vZGUge1xuICAgICAgZGF0YS5zdGF0aWNDbGFzcyA9IChgJHtuYW1lfSAke2RhdGEuc3RhdGljQ2xhc3MgfHwgJyd9YCkudHJpbSgpXG5cbiAgICAgIGNvbnN0IHsgYXR0cnMgfSA9IGRhdGFcbiAgICAgIGlmIChhdHRycykge1xuICAgICAgICAvLyByZXNldCBhdHRycyB0byBleHRyYWN0IHV0aWxpdHkgY2xhc2VzIGxpa2UgcGEtM1xuICAgICAgICBkYXRhLmF0dHJzID0ge31cbiAgICAgICAgY29uc3QgY2xhc3NlcyA9IE9iamVjdC5rZXlzKGF0dHJzKS5maWx0ZXIoa2V5ID0+IHtcbiAgICAgICAgICAvLyBUT0RPOiBSZW1vdmUgb25jZSByZXNvbHZlZFxuICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS92dWVqcy92dWUvaXNzdWVzLzc4NDFcbiAgICAgICAgICBpZiAoa2V5ID09PSAnc2xvdCcpIHJldHVybiBmYWxzZVxuXG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBhdHRyc1trZXldXG5cbiAgICAgICAgICAvLyBhZGQgYmFjayBkYXRhIGF0dHJpYnV0ZXMgbGlrZSBkYXRhLXRlc3Q9XCJmb29cIiBidXQgZG8gbm90XG4gICAgICAgICAgLy8gYWRkIHRoZW0gYXMgY2xhc3Nlc1xuICAgICAgICAgIGlmIChrZXkuc3RhcnRzV2l0aCgnZGF0YS0nKSkge1xuICAgICAgICAgICAgZGF0YS5hdHRycyFba2V5XSA9IHZhbHVlXG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdmFsdWUgfHwgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJ1xuICAgICAgICB9KVxuXG4gICAgICAgIGlmIChjbGFzc2VzLmxlbmd0aCkgZGF0YS5zdGF0aWNDbGFzcyArPSBgICR7Y2xhc3Nlcy5qb2luKCcgJyl9YFxuICAgICAgfVxuXG4gICAgICBpZiAocHJvcHMuaWQpIHtcbiAgICAgICAgZGF0YS5kb21Qcm9wcyA9IGRhdGEuZG9tUHJvcHMgfHwge31cbiAgICAgICAgZGF0YS5kb21Qcm9wcy5pZCA9IHByb3BzLmlkXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBoKHByb3BzLnRhZywgZGF0YSwgY2hpbGRyZW4pXG4gICAgfSxcbiAgfSlcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///122\n')},,,,,,,,,,,,,function(module,exports,__webpack_require__){eval(';(function (root, factory) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(15));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t(function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var X32WordArray = C_lib.WordArray;\n\n\t /**\n\t * x64 namespace.\n\t */\n\t var C_x64 = C.x64 = {};\n\n\t /**\n\t * A 64-bit word.\n\t */\n\t var X64Word = C_x64.Word = Base.extend({\n\t /**\n\t * Initializes a newly created 64-bit word.\n\t *\n\t * @param {number} high The high 32 bits.\n\t * @param {number} low The low 32 bits.\n\t *\n\t * @example\n\t *\n\t * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607);\n\t */\n\t init: function (high, low) {\n\t this.high = high;\n\t this.low = low;\n\t }\n\n\t /**\n\t * Bitwise NOTs this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after negating.\n\t *\n\t * @example\n\t *\n\t * var negated = x64Word.not();\n\t */\n\t // not: function () {\n\t // var high = ~this.high;\n\t // var low = ~this.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise ANDs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to AND with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after ANDing.\n\t *\n\t * @example\n\t *\n\t * var anded = x64Word.and(anotherX64Word);\n\t */\n\t // and: function (word) {\n\t // var high = this.high & word.high;\n\t // var low = this.low & word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise ORs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to OR with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after ORing.\n\t *\n\t * @example\n\t *\n\t * var ored = x64Word.or(anotherX64Word);\n\t */\n\t // or: function (word) {\n\t // var high = this.high | word.high;\n\t // var low = this.low | word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise XORs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to XOR with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after XORing.\n\t *\n\t * @example\n\t *\n\t * var xored = x64Word.xor(anotherX64Word);\n\t */\n\t // xor: function (word) {\n\t // var high = this.high ^ word.high;\n\t // var low = this.low ^ word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Shifts this word n bits to the left.\n\t *\n\t * @param {number} n The number of bits to shift.\n\t *\n\t * @return {X64Word} A new x64-Word object after shifting.\n\t *\n\t * @example\n\t *\n\t * var shifted = x64Word.shiftL(25);\n\t */\n\t // shiftL: function (n) {\n\t // if (n < 32) {\n\t // var high = (this.high << n) | (this.low >>> (32 - n));\n\t // var low = this.low << n;\n\t // } else {\n\t // var high = this.low << (n - 32);\n\t // var low = 0;\n\t // }\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Shifts this word n bits to the right.\n\t *\n\t * @param {number} n The number of bits to shift.\n\t *\n\t * @return {X64Word} A new x64-Word object after shifting.\n\t *\n\t * @example\n\t *\n\t * var shifted = x64Word.shiftR(7);\n\t */\n\t // shiftR: function (n) {\n\t // if (n < 32) {\n\t // var low = (this.low >>> n) | (this.high << (32 - n));\n\t // var high = this.high >>> n;\n\t // } else {\n\t // var low = this.high >>> (n - 32);\n\t // var high = 0;\n\t // }\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Rotates this word n bits to the left.\n\t *\n\t * @param {number} n The number of bits to rotate.\n\t *\n\t * @return {X64Word} A new x64-Word object after rotating.\n\t *\n\t * @example\n\t *\n\t * var rotated = x64Word.rotL(25);\n\t */\n\t // rotL: function (n) {\n\t // return this.shiftL(n).or(this.shiftR(64 - n));\n\t // },\n\n\t /**\n\t * Rotates this word n bits to the right.\n\t *\n\t * @param {number} n The number of bits to rotate.\n\t *\n\t * @return {X64Word} A new x64-Word object after rotating.\n\t *\n\t * @example\n\t *\n\t * var rotated = x64Word.rotR(7);\n\t */\n\t // rotR: function (n) {\n\t // return this.shiftR(n).or(this.shiftL(64 - n));\n\t // },\n\n\t /**\n\t * Adds this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to add with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after adding.\n\t *\n\t * @example\n\t *\n\t * var added = x64Word.add(anotherX64Word);\n\t */\n\t // add: function (word) {\n\t // var low = (this.low + word.low) | 0;\n\t // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0;\n\t // var high = (this.high + word.high + carry) | 0;\n\n\t // return X64Word.create(high, low);\n\t // }\n\t });\n\n\t /**\n\t * An array of 64-bit words.\n\t *\n\t * @property {Array} words The array of CryptoJS.x64.Word objects.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var X64WordArray = C_x64.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create();\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create([\n\t * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n\t * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n\t * ]);\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create([\n\t * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n\t * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n\t * ], 10);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 8;\n\t }\n\t },\n\n\t /**\n\t * Converts this 64-bit word array to a 32-bit word array.\n\t *\n\t * @return {CryptoJS.lib.WordArray} This word array\'s data as a 32-bit word array.\n\t *\n\t * @example\n\t *\n\t * var x32WordArray = x64WordArray.toX32();\n\t */\n\t toX32: function () {\n\t // Shortcuts\n\t var x64Words = this.words;\n\t var x64WordsLength = x64Words.length;\n\n\t // Convert\n\t var x32Words = [];\n\t for (var i = 0; i < x64WordsLength; i++) {\n\t var x64Word = x64Words[i];\n\t x32Words.push(x64Word.high);\n\t x32Words.push(x64Word.low);\n\t }\n\n\t return X32WordArray.create(x32Words, this.sigBytes);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {X64WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = x64WordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\n\t // Clone "words" array\n\t var words = clone.words = this.words.slice(0);\n\n\t // Clone each X64Word object\n\t var wordsLength = words.length;\n\t for (var i = 0; i < wordsLength; i++) {\n\t words[i] = words[i].clone();\n\t }\n\n\t return clone;\n\t }\n\t });\n\t}());\n\n\n\treturn CryptoJS;\n\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY3J5cHRvLWpzL3g2NC1jb3JlLmpzPzMyNTIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBQztBQUNELEtBQUssSUFBMkI7QUFDaEM7QUFDQSxxQ0FBcUMsbUJBQU8sQ0FBQyxFQUFRO0FBQ3JEO0FBQ0EsTUFBTSxFQU9KO0FBQ0YsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsT0FBTztBQUMzQixvQkFBb0IsT0FBTztBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLFFBQVE7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGFBQWE7O0FBRWI7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLFFBQVE7QUFDNUI7QUFDQSxxQkFBcUIsUUFBUTtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsYUFBYTs7QUFFYjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsUUFBUTtBQUM1QjtBQUNBLHFCQUFxQixRQUFRO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxhQUFhOztBQUViO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixRQUFRO0FBQzVCO0FBQ0EscUJBQXFCLFFBQVE7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGFBQWE7O0FBRWI7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLE9BQU87QUFDM0I7QUFDQSxxQkFBcUIsUUFBUTtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBOztBQUVBO0FBQ0EsYUFBYTs7QUFFYjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsT0FBTztBQUMzQjtBQUNBLHFCQUFxQixRQUFRO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxhQUFhOztBQUViO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixPQUFPO0FBQzNCO0FBQ0EscUJBQXFCLFFBQVE7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhOztBQUViO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixPQUFPO0FBQzNCO0FBQ0EscUJBQXFCLFFBQVE7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhOztBQUViO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixRQUFRO0FBQzVCO0FBQ0EscUJBQXFCLFFBQVE7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixNQUFNO0FBQ3pCLG1CQUFtQixPQUFPO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsTUFBTTtBQUMxQixvQkFBb0IsT0FBTztBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBLFVBQVU7O0FBRVY7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLHVCQUF1QjtBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDRCQUE0QixvQkFBb0I7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxVQUFVOztBQUVWO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQixhQUFhO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDRCQUE0QixpQkFBaUI7QUFDN0M7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOLEVBQUU7OztBQUdGOztBQUVBLENBQUMiLCJmaWxlIjoiMTM1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiOyhmdW5jdGlvbiAocm9vdCwgZmFjdG9yeSkge1xuXHRpZiAodHlwZW9mIGV4cG9ydHMgPT09IFwib2JqZWN0XCIpIHtcblx0XHQvLyBDb21tb25KU1xuXHRcdG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cyA9IGZhY3RvcnkocmVxdWlyZShcIi4vY29yZVwiKSk7XG5cdH1cblx0ZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PT0gXCJmdW5jdGlvblwiICYmIGRlZmluZS5hbWQpIHtcblx0XHQvLyBBTURcblx0XHRkZWZpbmUoW1wiLi9jb3JlXCJdLCBmYWN0b3J5KTtcblx0fVxuXHRlbHNlIHtcblx0XHQvLyBHbG9iYWwgKGJyb3dzZXIpXG5cdFx0ZmFjdG9yeShyb290LkNyeXB0b0pTKTtcblx0fVxufSh0aGlzLCBmdW5jdGlvbiAoQ3J5cHRvSlMpIHtcblxuXHQoZnVuY3Rpb24gKHVuZGVmaW5lZCkge1xuXHQgICAgLy8gU2hvcnRjdXRzXG5cdCAgICB2YXIgQyA9IENyeXB0b0pTO1xuXHQgICAgdmFyIENfbGliID0gQy5saWI7XG5cdCAgICB2YXIgQmFzZSA9IENfbGliLkJhc2U7XG5cdCAgICB2YXIgWDMyV29yZEFycmF5ID0gQ19saWIuV29yZEFycmF5O1xuXG5cdCAgICAvKipcblx0ICAgICAqIHg2NCBuYW1lc3BhY2UuXG5cdCAgICAgKi9cblx0ICAgIHZhciBDX3g2NCA9IEMueDY0ID0ge307XG5cblx0ICAgIC8qKlxuXHQgICAgICogQSA2NC1iaXQgd29yZC5cblx0ICAgICAqL1xuXHQgICAgdmFyIFg2NFdvcmQgPSBDX3g2NC5Xb3JkID0gQmFzZS5leHRlbmQoe1xuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIEluaXRpYWxpemVzIGEgbmV3bHkgY3JlYXRlZCA2NC1iaXQgd29yZC5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBwYXJhbSB7bnVtYmVyfSBoaWdoIFRoZSBoaWdoIDMyIGJpdHMuXG5cdCAgICAgICAgICogQHBhcmFtIHtudW1iZXJ9IGxvdyBUaGUgbG93IDMyIGJpdHMuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciB4NjRXb3JkID0gQ3J5cHRvSlMueDY0LldvcmQuY3JlYXRlKDB4MDAwMTAyMDMsIDB4MDQwNTA2MDcpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIGluaXQ6IGZ1bmN0aW9uIChoaWdoLCBsb3cpIHtcblx0ICAgICAgICAgICAgdGhpcy5oaWdoID0gaGlnaDtcblx0ICAgICAgICAgICAgdGhpcy5sb3cgPSBsb3c7XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogQml0d2lzZSBOT1RzIHRoaXMgd29yZC5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEByZXR1cm4ge1g2NFdvcmR9IEEgbmV3IHg2NC1Xb3JkIG9iamVjdCBhZnRlciBuZWdhdGluZy5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIG5lZ2F0ZWQgPSB4NjRXb3JkLm5vdCgpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIC8vIG5vdDogZnVuY3Rpb24gKCkge1xuXHQgICAgICAgICAgICAvLyB2YXIgaGlnaCA9IH50aGlzLmhpZ2g7XG5cdCAgICAgICAgICAgIC8vIHZhciBsb3cgPSB+dGhpcy5sb3c7XG5cblx0ICAgICAgICAgICAgLy8gcmV0dXJuIFg2NFdvcmQuY3JlYXRlKGhpZ2gsIGxvdyk7XG5cdCAgICAgICAgLy8gfSxcblxuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIEJpdHdpc2UgQU5EcyB0aGlzIHdvcmQgd2l0aCB0aGUgcGFzc2VkIHdvcmQuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcGFyYW0ge1g2NFdvcmR9IHdvcmQgVGhlIHg2NC1Xb3JkIHRvIEFORCB3aXRoIHRoaXMgd29yZC5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEByZXR1cm4ge1g2NFdvcmR9IEEgbmV3IHg2NC1Xb3JkIG9iamVjdCBhZnRlciBBTkRpbmcuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciBhbmRlZCA9IHg2NFdvcmQuYW5kKGFub3RoZXJYNjRXb3JkKTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICAvLyBhbmQ6IGZ1bmN0aW9uICh3b3JkKSB7XG5cdCAgICAgICAgICAgIC8vIHZhciBoaWdoID0gdGhpcy5oaWdoICYgd29yZC5oaWdoO1xuXHQgICAgICAgICAgICAvLyB2YXIgbG93ID0gdGhpcy5sb3cgJiB3b3JkLmxvdztcblxuXHQgICAgICAgICAgICAvLyByZXR1cm4gWDY0V29yZC5jcmVhdGUoaGlnaCwgbG93KTtcblx0ICAgICAgICAvLyB9LFxuXG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogQml0d2lzZSBPUnMgdGhpcyB3b3JkIHdpdGggdGhlIHBhc3NlZCB3b3JkLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtYNjRXb3JkfSB3b3JkIFRoZSB4NjQtV29yZCB0byBPUiB3aXRoIHRoaXMgd29yZC5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEByZXR1cm4ge1g2NFdvcmR9IEEgbmV3IHg2NC1Xb3JkIG9iamVjdCBhZnRlciBPUmluZy5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIG9yZWQgPSB4NjRXb3JkLm9yKGFub3RoZXJYNjRXb3JkKTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICAvLyBvcjogZnVuY3Rpb24gKHdvcmQpIHtcblx0ICAgICAgICAgICAgLy8gdmFyIGhpZ2ggPSB0aGlzLmhpZ2ggfCB3b3JkLmhpZ2g7XG5cdCAgICAgICAgICAgIC8vIHZhciBsb3cgPSB0aGlzLmxvdyB8IHdvcmQubG93O1xuXG5cdCAgICAgICAgICAgIC8vIHJldHVybiBYNjRXb3JkLmNyZWF0ZShoaWdoLCBsb3cpO1xuXHQgICAgICAgIC8vIH0sXG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBCaXR3aXNlIFhPUnMgdGhpcyB3b3JkIHdpdGggdGhlIHBhc3NlZCB3b3JkLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtYNjRXb3JkfSB3b3JkIFRoZSB4NjQtV29yZCB0byBYT1Igd2l0aCB0aGlzIHdvcmQuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcmV0dXJuIHtYNjRXb3JkfSBBIG5ldyB4NjQtV29yZCBvYmplY3QgYWZ0ZXIgWE9SaW5nLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICB2YXIgeG9yZWQgPSB4NjRXb3JkLnhvcihhbm90aGVyWDY0V29yZCk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgLy8geG9yOiBmdW5jdGlvbiAod29yZCkge1xuXHQgICAgICAgICAgICAvLyB2YXIgaGlnaCA9IHRoaXMuaGlnaCBeIHdvcmQuaGlnaDtcblx0ICAgICAgICAgICAgLy8gdmFyIGxvdyA9IHRoaXMubG93IF4gd29yZC5sb3c7XG5cblx0ICAgICAgICAgICAgLy8gcmV0dXJuIFg2NFdvcmQuY3JlYXRlKGhpZ2gsIGxvdyk7XG5cdCAgICAgICAgLy8gfSxcblxuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIFNoaWZ0cyB0aGlzIHdvcmQgbiBiaXRzIHRvIHRoZSBsZWZ0LlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtudW1iZXJ9IG4gVGhlIG51bWJlciBvZiBiaXRzIHRvIHNoaWZ0LlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHJldHVybiB7WDY0V29yZH0gQSBuZXcgeDY0LVdvcmQgb2JqZWN0IGFmdGVyIHNoaWZ0aW5nLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICB2YXIgc2hpZnRlZCA9IHg2NFdvcmQuc2hpZnRMKDI1KTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICAvLyBzaGlmdEw6IGZ1bmN0aW9uIChuKSB7XG5cdCAgICAgICAgICAgIC8vIGlmIChuIDwgMzIpIHtcblx0ICAgICAgICAgICAgICAgIC8vIHZhciBoaWdoID0gKHRoaXMuaGlnaCA8PCBuKSB8ICh0aGlzLmxvdyA+Pj4gKDMyIC0gbikpO1xuXHQgICAgICAgICAgICAgICAgLy8gdmFyIGxvdyA9IHRoaXMubG93IDw8IG47XG5cdCAgICAgICAgICAgIC8vIH0gZWxzZSB7XG5cdCAgICAgICAgICAgICAgICAvLyB2YXIgaGlnaCA9IHRoaXMubG93IDw8IChuIC0gMzIpO1xuXHQgICAgICAgICAgICAgICAgLy8gdmFyIGxvdyA9IDA7XG5cdCAgICAgICAgICAgIC8vIH1cblxuXHQgICAgICAgICAgICAvLyByZXR1cm4gWDY0V29yZC5jcmVhdGUoaGlnaCwgbG93KTtcblx0ICAgICAgICAvLyB9LFxuXG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogU2hpZnRzIHRoaXMgd29yZCBuIGJpdHMgdG8gdGhlIHJpZ2h0LlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtudW1iZXJ9IG4gVGhlIG51bWJlciBvZiBiaXRzIHRvIHNoaWZ0LlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHJldHVybiB7WDY0V29yZH0gQSBuZXcgeDY0LVdvcmQgb2JqZWN0IGFmdGVyIHNoaWZ0aW5nLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICB2YXIgc2hpZnRlZCA9IHg2NFdvcmQuc2hpZnRSKDcpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIC8vIHNoaWZ0UjogZnVuY3Rpb24gKG4pIHtcblx0ICAgICAgICAgICAgLy8gaWYgKG4gPCAzMikge1xuXHQgICAgICAgICAgICAgICAgLy8gdmFyIGxvdyA9ICh0aGlzLmxvdyA+Pj4gbikgfCAodGhpcy5oaWdoIDw8ICgzMiAtIG4pKTtcblx0ICAgICAgICAgICAgICAgIC8vIHZhciBoaWdoID0gdGhpcy5oaWdoID4+PiBuO1xuXHQgICAgICAgICAgICAvLyB9IGVsc2Uge1xuXHQgICAgICAgICAgICAgICAgLy8gdmFyIGxvdyA9IHRoaXMuaGlnaCA+Pj4gKG4gLSAzMik7XG5cdCAgICAgICAgICAgICAgICAvLyB2YXIgaGlnaCA9IDA7XG5cdCAgICAgICAgICAgIC8vIH1cblxuXHQgICAgICAgICAgICAvLyByZXR1cm4gWDY0V29yZC5jcmVhdGUoaGlnaCwgbG93KTtcblx0ICAgICAgICAvLyB9LFxuXG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogUm90YXRlcyB0aGlzIHdvcmQgbiBiaXRzIHRvIHRoZSBsZWZ0LlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtudW1iZXJ9IG4gVGhlIG51bWJlciBvZiBiaXRzIHRvIHJvdGF0ZS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEByZXR1cm4ge1g2NFdvcmR9IEEgbmV3IHg2NC1Xb3JkIG9iamVjdCBhZnRlciByb3RhdGluZy5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIHJvdGF0ZWQgPSB4NjRXb3JkLnJvdEwoMjUpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIC8vIHJvdEw6IGZ1bmN0aW9uIChuKSB7XG5cdCAgICAgICAgICAgIC8vIHJldHVybiB0aGlzLnNoaWZ0TChuKS5vcih0aGlzLnNoaWZ0Uig2NCAtIG4pKTtcblx0ICAgICAgICAvLyB9LFxuXG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogUm90YXRlcyB0aGlzIHdvcmQgbiBiaXRzIHRvIHRoZSByaWdodC5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBwYXJhbSB7bnVtYmVyfSBuIFRoZSBudW1iZXIgb2YgYml0cyB0byByb3RhdGUuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcmV0dXJuIHtYNjRXb3JkfSBBIG5ldyB4NjQtV29yZCBvYmplY3QgYWZ0ZXIgcm90YXRpbmcuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciByb3RhdGVkID0geDY0V29yZC5yb3RSKDcpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIC8vIHJvdFI6IGZ1bmN0aW9uIChuKSB7XG5cdCAgICAgICAgICAgIC8vIHJldHVybiB0aGlzLnNoaWZ0UihuKS5vcih0aGlzLnNoaWZ0TCg2NCAtIG4pKTtcblx0ICAgICAgICAvLyB9LFxuXG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogQWRkcyB0aGlzIHdvcmQgd2l0aCB0aGUgcGFzc2VkIHdvcmQuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcGFyYW0ge1g2NFdvcmR9IHdvcmQgVGhlIHg2NC1Xb3JkIHRvIGFkZCB3aXRoIHRoaXMgd29yZC5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEByZXR1cm4ge1g2NFdvcmR9IEEgbmV3IHg2NC1Xb3JkIG9iamVjdCBhZnRlciBhZGRpbmcuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciBhZGRlZCA9IHg2NFdvcmQuYWRkKGFub3RoZXJYNjRXb3JkKTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICAvLyBhZGQ6IGZ1bmN0aW9uICh3b3JkKSB7XG5cdCAgICAgICAgICAgIC8vIHZhciBsb3cgPSAodGhpcy5sb3cgKyB3b3JkLmxvdykgfCAwO1xuXHQgICAgICAgICAgICAvLyB2YXIgY2FycnkgPSAobG93ID4+PiAwKSA8ICh0aGlzLmxvdyA+Pj4gMCkgPyAxIDogMDtcblx0ICAgICAgICAgICAgLy8gdmFyIGhpZ2ggPSAodGhpcy5oaWdoICsgd29yZC5oaWdoICsgY2FycnkpIHwgMDtcblxuXHQgICAgICAgICAgICAvLyByZXR1cm4gWDY0V29yZC5jcmVhdGUoaGlnaCwgbG93KTtcblx0ICAgICAgICAvLyB9XG5cdCAgICB9KTtcblxuXHQgICAgLyoqXG5cdCAgICAgKiBBbiBhcnJheSBvZiA2NC1iaXQgd29yZHMuXG5cdCAgICAgKlxuXHQgICAgICogQHByb3BlcnR5IHtBcnJheX0gd29yZHMgVGhlIGFycmF5IG9mIENyeXB0b0pTLng2NC5Xb3JkIG9iamVjdHMuXG5cdCAgICAgKiBAcHJvcGVydHkge251bWJlcn0gc2lnQnl0ZXMgVGhlIG51bWJlciBvZiBzaWduaWZpY2FudCBieXRlcyBpbiB0aGlzIHdvcmQgYXJyYXkuXG5cdCAgICAgKi9cblx0ICAgIHZhciBYNjRXb3JkQXJyYXkgPSBDX3g2NC5Xb3JkQXJyYXkgPSBCYXNlLmV4dGVuZCh7XG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogSW5pdGlhbGl6ZXMgYSBuZXdseSBjcmVhdGVkIHdvcmQgYXJyYXkuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcGFyYW0ge0FycmF5fSB3b3JkcyAoT3B0aW9uYWwpIEFuIGFycmF5IG9mIENyeXB0b0pTLng2NC5Xb3JkIG9iamVjdHMuXG5cdCAgICAgICAgICogQHBhcmFtIHtudW1iZXJ9IHNpZ0J5dGVzIChPcHRpb25hbCkgVGhlIG51bWJlciBvZiBzaWduaWZpY2FudCBieXRlcyBpbiB0aGUgd29yZHMuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciB3b3JkQXJyYXkgPSBDcnlwdG9KUy54NjQuV29yZEFycmF5LmNyZWF0ZSgpO1xuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciB3b3JkQXJyYXkgPSBDcnlwdG9KUy54NjQuV29yZEFycmF5LmNyZWF0ZShbXG5cdCAgICAgICAgICogICAgICAgICBDcnlwdG9KUy54NjQuV29yZC5jcmVhdGUoMHgwMDAxMDIwMywgMHgwNDA1MDYwNyksXG5cdCAgICAgICAgICogICAgICAgICBDcnlwdG9KUy54NjQuV29yZC5jcmVhdGUoMHgxODE5MWExYiwgMHgxYzFkMWUxZilcblx0ICAgICAgICAgKiAgICAgXSk7XG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIHdvcmRBcnJheSA9IENyeXB0b0pTLng2NC5Xb3JkQXJyYXkuY3JlYXRlKFtcblx0ICAgICAgICAgKiAgICAgICAgIENyeXB0b0pTLng2NC5Xb3JkLmNyZWF0ZSgweDAwMDEwMjAzLCAweDA0MDUwNjA3KSxcblx0ICAgICAgICAgKiAgICAgICAgIENyeXB0b0pTLng2NC5Xb3JkLmNyZWF0ZSgweDE4MTkxYTFiLCAweDFjMWQxZTFmKVxuXHQgICAgICAgICAqICAgICBdLCAxMCk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgaW5pdDogZnVuY3Rpb24gKHdvcmRzLCBzaWdCeXRlcykge1xuXHQgICAgICAgICAgICB3b3JkcyA9IHRoaXMud29yZHMgPSB3b3JkcyB8fCBbXTtcblxuXHQgICAgICAgICAgICBpZiAoc2lnQnl0ZXMgIT0gdW5kZWZpbmVkKSB7XG5cdCAgICAgICAgICAgICAgICB0aGlzLnNpZ0J5dGVzID0gc2lnQnl0ZXM7XG5cdCAgICAgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICAgICAgICB0aGlzLnNpZ0J5dGVzID0gd29yZHMubGVuZ3RoICogODtcblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBDb252ZXJ0cyB0aGlzIDY0LWJpdCB3b3JkIGFycmF5IHRvIGEgMzItYml0IHdvcmQgYXJyYXkuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcmV0dXJuIHtDcnlwdG9KUy5saWIuV29yZEFycmF5fSBUaGlzIHdvcmQgYXJyYXkncyBkYXRhIGFzIGEgMzItYml0IHdvcmQgYXJyYXkuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciB4MzJXb3JkQXJyYXkgPSB4NjRXb3JkQXJyYXkudG9YMzIoKTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICB0b1gzMjogZnVuY3Rpb24gKCkge1xuXHQgICAgICAgICAgICAvLyBTaG9ydGN1dHNcblx0ICAgICAgICAgICAgdmFyIHg2NFdvcmRzID0gdGhpcy53b3Jkcztcblx0ICAgICAgICAgICAgdmFyIHg2NFdvcmRzTGVuZ3RoID0geDY0V29yZHMubGVuZ3RoO1xuXG5cdCAgICAgICAgICAgIC8vIENvbnZlcnRcblx0ICAgICAgICAgICAgdmFyIHgzMldvcmRzID0gW107XG5cdCAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgeDY0V29yZHNMZW5ndGg7IGkrKykge1xuXHQgICAgICAgICAgICAgICAgdmFyIHg2NFdvcmQgPSB4NjRXb3Jkc1tpXTtcblx0ICAgICAgICAgICAgICAgIHgzMldvcmRzLnB1c2goeDY0V29yZC5oaWdoKTtcblx0ICAgICAgICAgICAgICAgIHgzMldvcmRzLnB1c2goeDY0V29yZC5sb3cpO1xuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgcmV0dXJuIFgzMldvcmRBcnJheS5jcmVhdGUoeDMyV29yZHMsIHRoaXMuc2lnQnl0ZXMpO1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBDcmVhdGVzIGEgY29weSBvZiB0aGlzIHdvcmQgYXJyYXkuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcmV0dXJuIHtYNjRXb3JkQXJyYXl9IFRoZSBjbG9uZS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIGNsb25lID0geDY0V29yZEFycmF5LmNsb25lKCk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgY2xvbmU6IGZ1bmN0aW9uICgpIHtcblx0ICAgICAgICAgICAgdmFyIGNsb25lID0gQmFzZS5jbG9uZS5jYWxsKHRoaXMpO1xuXG5cdCAgICAgICAgICAgIC8vIENsb25lIFwid29yZHNcIiBhcnJheVxuXHQgICAgICAgICAgICB2YXIgd29yZHMgPSBjbG9uZS53b3JkcyA9IHRoaXMud29yZHMuc2xpY2UoMCk7XG5cblx0ICAgICAgICAgICAgLy8gQ2xvbmUgZWFjaCBYNjRXb3JkIG9iamVjdFxuXHQgICAgICAgICAgICB2YXIgd29yZHNMZW5ndGggPSB3b3Jkcy5sZW5ndGg7XG5cdCAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgd29yZHNMZW5ndGg7IGkrKykge1xuXHQgICAgICAgICAgICAgICAgd29yZHNbaV0gPSB3b3Jkc1tpXS5jbG9uZSgpO1xuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgcmV0dXJuIGNsb25lO1xuXHQgICAgICAgIH1cblx0ICAgIH0pO1xuXHR9KCkpO1xuXG5cblx0cmV0dXJuIENyeXB0b0pTO1xuXG59KSk7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///135\n')},,,function(module,__webpack_exports__,__webpack_require__){"use strict";eval("/* harmony import */ var core_js_modules_es6_string_small__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(220);\n/* harmony import */ var core_js_modules_es6_string_small__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_string_small__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (vue__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"].extend({\n name: 'sizeable',\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean\n },\n computed: {\n medium: function medium() {\n return Boolean(!this.xSmall && !this.small && !this.large && !this.xLarge);\n },\n sizeableClasses: function sizeableClasses() {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge\n };\n }\n }\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL21peGlucy9zaXplYWJsZS9pbmRleC50cz8xYTFhIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUVlLDRHQUFHLENBQUgsT0FBVztBQUN4QixNQUFJLEVBRG9CO0FBR3hCLE9BQUssRUFBRTtBQUNMLFNBQUssRUFEQTtBQUVMLFNBQUssRUFGQTtBQUdMLFVBQU0sRUFIRDtBQUlMLFVBQU0sRUFBRTtBQUpILEdBSGlCO0FBVXhCLFVBQVEsRUFBRTtBQUNSLFVBRFEsb0JBQ0Y7QUFDSixhQUFPLE9BQU8sQ0FDWixDQUFDLEtBQUQsVUFDQSxDQUFDLEtBREQsU0FFQSxDQUFDLEtBRkQsU0FHQSxDQUFDLEtBSkgsTUFBYyxDQUFkO0FBRk07QUFTUixtQkFUUSw2QkFTTztBQUNiLGFBQU87QUFDTCwyQkFBbUIsS0FEZDtBQUVMLHlCQUFpQixLQUZaO0FBR0wsMkJBQW1CLEtBSGQ7QUFJTCx5QkFBaUIsS0FKWjtBQUtMLDJCQUFtQixLQUFLO0FBTG5CLE9BQVA7QUFPRDtBQWpCTztBQVZjLENBQVgsQ0FBZiIsImZpbGUiOiIxMzguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVnVlIGZyb20gJ3Z1ZSdcblxuZXhwb3J0IGRlZmF1bHQgVnVlLmV4dGVuZCh7XG4gIG5hbWU6ICdzaXplYWJsZScsXG5cbiAgcHJvcHM6IHtcbiAgICBsYXJnZTogQm9vbGVhbixcbiAgICBzbWFsbDogQm9vbGVhbixcbiAgICB4TGFyZ2U6IEJvb2xlYW4sXG4gICAgeFNtYWxsOiBCb29sZWFuLFxuICB9LFxuXG4gIGNvbXB1dGVkOiB7XG4gICAgbWVkaXVtICgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBCb29sZWFuKFxuICAgICAgICAhdGhpcy54U21hbGwgJiZcbiAgICAgICAgIXRoaXMuc21hbGwgJiZcbiAgICAgICAgIXRoaXMubGFyZ2UgJiZcbiAgICAgICAgIXRoaXMueExhcmdlXG4gICAgICApXG4gICAgfSxcbiAgICBzaXplYWJsZUNsYXNzZXMgKCk6IG9iamVjdCB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAndi1zaXplLS14LXNtYWxsJzogdGhpcy54U21hbGwsXG4gICAgICAgICd2LXNpemUtLXNtYWxsJzogdGhpcy5zbWFsbCxcbiAgICAgICAgJ3Ytc2l6ZS0tZGVmYXVsdCc6IHRoaXMubWVkaXVtLFxuICAgICAgICAndi1zaXplLS1sYXJnZSc6IHRoaXMubGFyZ2UsXG4gICAgICAgICd2LXNpemUtLXgtbGFyZ2UnOiB0aGlzLnhMYXJnZSxcbiAgICAgIH1cbiAgICB9LFxuICB9LFxufSlcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///138\n")},function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(52);\n/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5);\n\n\n\nfunction searchChildren(children) {\n var results = [];\n\n for (var index = 0; index < children.length; index++) {\n var child = children[index];\n\n if (child.isActive && child.isDependent) {\n results.push(child);\n } else {\n results.push.apply(results, Object(_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(searchChildren(child.$children)));\n }\n }\n\n return results;\n}\n/* @vue/component */\n\n\n/* harmony default export */ __webpack_exports__["a"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])().extend({\n name: \'dependent\',\n data: function data() {\n return {\n closeDependents: true,\n isActive: false,\n isDependent: true\n };\n },\n watch: {\n isActive: function isActive(val) {\n if (val) return;\n var openDependents = this.getOpenDependents();\n\n for (var index = 0; index < openDependents.length; index++) {\n openDependents[index].isActive = false;\n }\n }\n },\n methods: {\n getOpenDependents: function getOpenDependents() {\n if (this.closeDependents) return searchChildren(this.$children);\n return [];\n },\n getOpenDependentElements: function getOpenDependentElements() {\n var result = [];\n var openDependents = this.getOpenDependents();\n\n for (var index = 0; index < openDependents.length; index++) {\n result.push.apply(result, Object(_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(openDependents[index].getClickableDependentElements()));\n }\n\n return result;\n },\n getClickableDependentElements: function getClickableDependentElements() {\n var result = [this.$el];\n if (this.$refs.content) result.push(this.$refs.content);\n if (this.overlay) result.push(this.overlay.$el);\n result.push.apply(result, Object(_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(this.getOpenDependentElements()));\n return result;\n }\n }\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL21peGlucy9kZXBlbmRlbnQvaW5kZXgudHM/NDhhOCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQTs7QUFnQkEsa0NBQXdDO0FBQ3RDLE1BQU0sT0FBTyxHQUFiOztBQUNBLE9BQUssSUFBSSxLQUFLLEdBQWQsR0FBb0IsS0FBSyxHQUFHLFFBQVEsQ0FBcEMsUUFBNkMsS0FBN0MsSUFBc0Q7QUFDcEQsUUFBTSxLQUFLLEdBQUcsUUFBUSxDQUF0QixLQUFzQixDQUF0Qjs7QUFDQSxRQUFJLEtBQUssQ0FBTCxZQUFrQixLQUFLLENBQTNCLGFBQXlDO0FBQ3ZDLGFBQU8sQ0FBUDtBQURGLFdBRU87QUFDTCxhQUFPLENBQVAsa0JBQU8sdUdBQVMsY0FBYyxDQUFDLEtBQUssQ0FBcEMsU0FBOEIsQ0FBdkIsRUFBUDtBQUNEO0FBQ0Y7O0FBRUQ7QUFDRDtBQUVEOzs7QUFDZSw2SEFBTSxHQUFOLE9BQXlCO0FBQ3RDLE1BQUksRUFEa0M7QUFHdEMsTUFIc0Msa0JBR2xDO0FBQ0YsV0FBTztBQUNMLHFCQUFlLEVBRFY7QUFFTCxjQUFRLEVBRkg7QUFHTCxpQkFBVyxFQUFFO0FBSFIsS0FBUDtBQUpvQztBQVd0QyxPQUFLLEVBQUU7QUFDTCxZQURLLG9CQUNHLEdBREgsRUFDUTtBQUNYLGVBQVM7QUFFVCxVQUFNLGNBQWMsR0FBRyxLQUF2QixpQkFBdUIsRUFBdkI7O0FBQ0EsV0FBSyxJQUFJLEtBQUssR0FBZCxHQUFvQixLQUFLLEdBQUcsY0FBYyxDQUExQyxRQUFtRCxLQUFuRCxJQUE0RDtBQUMxRCxzQkFBYyxDQUFkLEtBQWMsQ0FBZDtBQUNEO0FBQ0Y7QUFSSSxHQVgrQjtBQXNCdEMsU0FBTyxFQUFFO0FBQ1AscUJBRE8sK0JBQ1U7QUFDZixVQUFJLEtBQUosaUJBQTBCLE9BQU8sY0FBYyxDQUFDLEtBQXRCLFNBQXFCLENBQXJCO0FBRTFCO0FBSks7QUFNUCw0QkFOTyxzQ0FNaUI7QUFDdEIsVUFBTSxNQUFNLEdBQVo7QUFDQSxVQUFNLGNBQWMsR0FBRyxLQUF2QixpQkFBdUIsRUFBdkI7O0FBRUEsV0FBSyxJQUFJLEtBQUssR0FBZCxHQUFvQixLQUFLLEdBQUcsY0FBYyxDQUExQyxRQUFtRCxLQUFuRCxJQUE0RDtBQUMxRCxjQUFNLENBQU4saUJBQU0sdUdBQVMsY0FBYyxDQUFkLEtBQWMsQ0FBZCxDQUFmLDZCQUFlLEVBQVQsRUFBTjtBQUNEOztBQUVEO0FBZEs7QUFnQlAsaUNBaEJPLDJDQWdCc0I7QUFDM0IsVUFBTSxNQUFNLEdBQUcsQ0FBQyxLQUFoQixHQUFlLENBQWY7QUFDQSxVQUFJLFdBQUosU0FBd0IsTUFBTSxDQUFOLEtBQVksV0FBWjtBQUN4QixVQUFJLEtBQUosU0FBa0IsTUFBTSxDQUFOLEtBQVksYUFBWjtBQUNsQixZQUFNLENBQU4saUJBQU0sdUdBQVMsS0FBZix3QkFBZSxFQUFULEVBQU47QUFFQTtBQUNEO0FBdkJNO0FBdEI2QixDQUF6QixDQUFmIiwiZmlsZSI6IjEzOS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBWdWUgZnJvbSAndnVlJ1xuXG5pbXBvcnQgbWl4aW5zIGZyb20gJy4uLy4uL3V0aWwvbWl4aW5zJ1xuaW1wb3J0IHsgVk92ZXJsYXkgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL1ZPdmVybGF5J1xuXG5pbnRlcmZhY2Ugb3B0aW9ucyBleHRlbmRzIFZ1ZSB7XG4gICRlbDogSFRNTEVsZW1lbnRcbiAgJHJlZnM6IHtcbiAgICBjb250ZW50OiBIVE1MRWxlbWVudFxuICB9XG4gIG92ZXJsYXk/OiBJbnN0YW5jZVR5cGU8dHlwZW9mIFZPdmVybGF5PlxufVxuXG5pbnRlcmZhY2UgRGVwZW5kZW50SW5zdGFuY2UgZXh0ZW5kcyBWdWUge1xuICBpc0FjdGl2ZT86IGJvb2xlYW5cbiAgaXNEZXBlbmRlbnQ/OiBib29sZWFuXG59XG5cbmZ1bmN0aW9uIHNlYXJjaENoaWxkcmVuIChjaGlsZHJlbjogVnVlW10pOiBEZXBlbmRlbnRJbnN0YW5jZVtdIHtcbiAgY29uc3QgcmVzdWx0cyA9IFtdXG4gIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBjaGlsZHJlbi5sZW5ndGg7IGluZGV4KyspIHtcbiAgICBjb25zdCBjaGlsZCA9IGNoaWxkcmVuW2luZGV4XSBhcyBEZXBlbmRlbnRJbnN0YW5jZVxuICAgIGlmIChjaGlsZC5pc0FjdGl2ZSAmJiBjaGlsZC5pc0RlcGVuZGVudCkge1xuICAgICAgcmVzdWx0cy5wdXNoKGNoaWxkKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHRzLnB1c2goLi4uc2VhcmNoQ2hpbGRyZW4oY2hpbGQuJGNoaWxkcmVuKSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0c1xufVxuXG4vKiBAdnVlL2NvbXBvbmVudCAqL1xuZXhwb3J0IGRlZmF1bHQgbWl4aW5zPG9wdGlvbnM+KCkuZXh0ZW5kKHtcbiAgbmFtZTogJ2RlcGVuZGVudCcsXG5cbiAgZGF0YSAoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNsb3NlRGVwZW5kZW50czogdHJ1ZSxcbiAgICAgIGlzQWN0aXZlOiBmYWxzZSxcbiAgICAgIGlzRGVwZW5kZW50OiB0cnVlLFxuICAgIH1cbiAgfSxcblxuICB3YXRjaDoge1xuICAgIGlzQWN0aXZlICh2YWwpIHtcbiAgICAgIGlmICh2YWwpIHJldHVyblxuXG4gICAgICBjb25zdCBvcGVuRGVwZW5kZW50cyA9IHRoaXMuZ2V0T3BlbkRlcGVuZGVudHMoKVxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IG9wZW5EZXBlbmRlbnRzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICBvcGVuRGVwZW5kZW50c1tpbmRleF0uaXNBY3RpdmUgPSBmYWxzZVxuICAgICAgfVxuICAgIH0sXG4gIH0sXG5cbiAgbWV0aG9kczoge1xuICAgIGdldE9wZW5EZXBlbmRlbnRzICgpOiBhbnlbXSB7XG4gICAgICBpZiAodGhpcy5jbG9zZURlcGVuZGVudHMpIHJldHVybiBzZWFyY2hDaGlsZHJlbih0aGlzLiRjaGlsZHJlbilcblxuICAgICAgcmV0dXJuIFtdXG4gICAgfSxcbiAgICBnZXRPcGVuRGVwZW5kZW50RWxlbWVudHMgKCk6IEhUTUxFbGVtZW50W10ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gW11cbiAgICAgIGNvbnN0IG9wZW5EZXBlbmRlbnRzID0gdGhpcy5nZXRPcGVuRGVwZW5kZW50cygpXG5cbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBvcGVuRGVwZW5kZW50cy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgcmVzdWx0LnB1c2goLi4ub3BlbkRlcGVuZGVudHNbaW5kZXhdLmdldENsaWNrYWJsZURlcGVuZGVudEVsZW1lbnRzKCkpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9LFxuICAgIGdldENsaWNrYWJsZURlcGVuZGVudEVsZW1lbnRzICgpOiBIVE1MRWxlbWVudFtdIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IFt0aGlzLiRlbF1cbiAgICAgIGlmICh0aGlzLiRyZWZzLmNvbnRlbnQpIHJlc3VsdC5wdXNoKHRoaXMuJHJlZnMuY29udGVudClcbiAgICAgIGlmICh0aGlzLm92ZXJsYXkpIHJlc3VsdC5wdXNoKHRoaXMub3ZlcmxheS4kZWwgYXMgSFRNTEVsZW1lbnQpXG4gICAgICByZXN1bHQucHVzaCguLi50aGlzLmdldE9wZW5EZXBlbmRlbnRFbGVtZW50cygpKVxuXG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfSxcbiAgfSxcbn0pXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///139\n')},function(module,__webpack_exports__,__webpack_require__){"use strict";eval("/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);\n/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(19);\n/* harmony import */ var _bootable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(141);\n/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);\n/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(5);\n/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(10);\n\n\n// Mixins\n // Utilities\n\n\n\n\n\nfunction validateAttachTarget(val) {\n var type = Object(_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(val);\n\n if (type === 'boolean' || type === 'string') return true;\n return val.nodeType === Node.ELEMENT_NODE;\n}\n/* @vue/component */\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"])(_bootable__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"]).extend({\n name: 'detachable',\n props: {\n attach: {\n default: false,\n validator: validateAttachTarget\n },\n contentClass: {\n type: String,\n default: ''\n }\n },\n data: function data() {\n return {\n activatorNode: null,\n hasDetached: false\n };\n },\n watch: {\n attach: function attach() {\n this.hasDetached = false;\n this.initDetach();\n },\n hasContent: function hasContent() {\n this.$nextTick(this.initDetach);\n }\n },\n beforeMount: function beforeMount() {\n var _this = this;\n\n this.$nextTick(function () {\n if (_this.activatorNode) {\n var activator = Array.isArray(_this.activatorNode) ? _this.activatorNode : [_this.activatorNode];\n activator.forEach(function (node) {\n if (!node.elm) return;\n if (!_this.$el.parentNode) return;\n var target = _this.$el === _this.$el.parentNode.firstChild ? _this.$el : _this.$el.nextSibling;\n\n _this.$el.parentNode.insertBefore(node.elm, target);\n });\n }\n });\n },\n mounted: function mounted() {\n this.hasContent && this.initDetach();\n },\n deactivated: function deactivated() {\n this.isActive = false;\n },\n beforeDestroy: function beforeDestroy() {\n // IE11 Fix\n try {\n if (this.$refs.content && this.$refs.content.parentNode) {\n this.$refs.content.parentNode.removeChild(this.$refs.content);\n }\n\n if (this.activatorNode) {\n var activator = Array.isArray(this.activatorNode) ? this.activatorNode : [this.activatorNode];\n activator.forEach(function (node) {\n node.elm && node.elm.parentNode && node.elm.parentNode.removeChild(node.elm);\n });\n }\n } catch (e) {\n console.log(e);\n }\n },\n methods: {\n getScopeIdAttrs: function getScopeIdAttrs() {\n var scopeId = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__[/* getObjectValueByPath */ \"p\"])(this.$vnode, 'context.$options._scopeId');\n return scopeId && Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])({}, scopeId, '');\n },\n initDetach: function initDetach() {\n if (this._isDestroyed || !this.$refs.content || this.hasDetached || // Leave menu in place if attached\n // and dev has not changed target\n this.attach === '' || // If used as a boolean prop ()\n this.attach === true || // If bound to a boolean ()\n this.attach === 'attach' // If bound as boolean prop in pug (v-menu(attach))\n ) return;\n var target;\n\n if (this.attach === false) {\n // Default, detach to app\n target = document.querySelector('[data-app]');\n } else if (typeof this.attach === 'string') {\n // CSS selector\n target = document.querySelector(this.attach);\n } else {\n // DOM Element\n target = this.attach;\n }\n\n if (!target) {\n Object(_util_console__WEBPACK_IMPORTED_MODULE_5__[/* consoleWarn */ \"c\"])(\"Unable to locate target \".concat(this.attach || '[data-app]'), this);\n return;\n }\n\n target.appendChild(this.$refs.content);\n this.hasDetached = true;\n }\n }\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL21peGlucy9kZXRhY2hhYmxlL2luZGV4LnRzPzM4NzUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTtDQUdBOztBQUNBO0FBQ0E7QUFDQTs7QUFhQSxtQ0FBdUM7QUFDckMsTUFBTSxJQUFJLEdBQUcsMEZBQWIsR0FBVSxDQUFWOztBQUVBLE1BQUksSUFBSSxLQUFKLGFBQXNCLElBQUksS0FBOUIsVUFBNkM7QUFFN0MsU0FBTyxHQUFHLENBQUgsYUFBaUIsSUFBSSxDQUE1QjtBQUNEO0FBRUQ7OztBQUNlLDZIQUFNLENBQU4seURBQU0sQ0FBTixRQUlJO0FBQ2pCLE1BQUksRUFEYTtBQUdqQixPQUFLLEVBQUU7QUFDTCxVQUFNLEVBQUU7QUFDTixhQUFPLEVBREQ7QUFFTixlQUFTLEVBQUU7QUFGTCxLQURIO0FBS0wsZ0JBQVksRUFBRTtBQUNaLFVBQUksRUFEUTtBQUVaLGFBQU8sRUFBRTtBQUZHO0FBTFQsR0FIVTtBQWNqQixNQUFJLEVBQUU7QUFBQSxXQUFPO0FBQ1gsbUJBQWEsRUFERjtBQUVYLGlCQUFXLEVBQUU7QUFGRixLQUFQO0FBQUEsR0FkVztBQW1CakIsT0FBSyxFQUFFO0FBQ0wsVUFESyxvQkFDQztBQUNKO0FBQ0E7QUFIRztBQUtMLGNBTEssd0JBS0s7QUFDUixxQkFBZSxLQUFmO0FBQ0Q7QUFQSSxHQW5CVTtBQTZCakIsYUE3QmlCLHlCQTZCTjtBQUFBOztBQUNULG1CQUFlLFlBQUs7QUFDbEIsVUFBSSxNQUFKLGVBQXdCO0FBQ3RCLFlBQU0sU0FBUyxHQUFHLEtBQUssQ0FBTCxRQUFjLE1BQWQsaUJBQW9DLE1BQXBDLGdCQUF5RCxDQUFDLE1BQTVFLGFBQTJFLENBQTNFO0FBRUEsaUJBQVMsQ0FBVCxRQUFrQixjQUFJLEVBQUc7QUFDdkIsY0FBSSxDQUFDLElBQUksQ0FBVCxLQUFlO0FBQ2YsY0FBSSxDQUFDLFVBQUwsWUFBMEI7QUFFMUIsY0FBTSxNQUFNLEdBQUcsY0FBYSxxQkFBYixhQUNYLE1BRFcsTUFFWCxVQUZKOztBQUlBLDRDQUFpQyxJQUFJLENBQXJDO0FBUkY7QUFVRDtBQWRIO0FBOUJlO0FBZ0RqQixTQWhEaUIscUJBZ0RWO0FBQ0wsdUJBQW1CLEtBQW5CLFVBQW1CLEVBQW5CO0FBakRlO0FBb0RqQixhQXBEaUIseUJBb0ROO0FBQ1Q7QUFyRGU7QUF3RGpCLGVBeERpQiwyQkF3REo7QUFDWDtBQUNBLFFBQUk7QUFDRixVQUNFLHNCQUNBLG1CQUZGLFlBR0U7QUFDQSxrREFBMEMsV0FBMUM7QUFDRDs7QUFFRCxVQUFJLEtBQUosZUFBd0I7QUFDdEIsWUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFMLFFBQWMsS0FBZCxpQkFBb0MsS0FBcEMsZ0JBQXlELENBQUMsS0FBNUUsYUFBMkUsQ0FBM0U7QUFDQSxpQkFBUyxDQUFULFFBQWtCLGNBQUksRUFBRztBQUN2QixjQUFJLENBQUosT0FDRSxJQUFJLENBQUosSUFERixjQUVFLElBQUksQ0FBSiwyQkFBZ0MsSUFBSSxDQUZ0QyxHQUVFLENBRkY7QUFERjtBQUtEO0FBZkgsTUFnQkUsVUFBVTtBQUFFLGFBQU8sQ0FBUDtBQUFnQjtBQTFFZjtBQTZFakIsU0FBTyxFQUFFO0FBQ1AsbUJBRE8sNkJBQ1E7QUFDYixVQUFNLE9BQU8sR0FBRyxrRkFBb0IsQ0FBQyxLQUFELFFBQXBDLDJCQUFvQyxDQUFwQztBQUVBLGFBQU8sT0FBTyxJQUFJLHNHQUNoQixPQURZLEVBQ0QsRUFEQyxDQUFkO0FBSks7QUFRUCxjQVJPLHdCQVFHO0FBQ1IsVUFBSSxxQkFDRixDQUFDLFdBREMsV0FFRixLQUZFLGVBR0Y7QUFDQTtBQUNBLHNCQUxFLE1BS29CO0FBQ3RCLHNCQU5FLFFBTXNCO0FBQ3hCLHNCQVBGLFNBTzJCO0FBUDNCLFFBUUU7QUFFRjs7QUFDQSxVQUFJLGdCQUFKLE9BQTJCO0FBQ3pCO0FBQ0EsY0FBTSxHQUFHLFFBQVEsQ0FBUixjQUFULFlBQVMsQ0FBVDtBQUZGLGFBR08sSUFBSSxPQUFPLEtBQVAsV0FBSixVQUFxQztBQUMxQztBQUNBLGNBQU0sR0FBRyxRQUFRLENBQVIsY0FBdUIsS0FBaEMsTUFBUyxDQUFUO0FBRkssYUFHQTtBQUNMO0FBQ0EsY0FBTSxHQUFHLEtBQVQ7QUFDRDs7QUFFRCxVQUFJLENBQUosUUFBYTtBQUNYLGlGQUFXLG1DQUE0QixlQUE1QixlQUFYLElBQVcsQ0FBWDtBQUNBO0FBQ0Q7O0FBRUQsWUFBTSxDQUFOLFlBQW1CLFdBQW5CO0FBRUE7QUFDRDtBQXZDTTtBQTdFUSxDQUpKLENBQWYiLCJmaWxlIjoiMTQwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTWl4aW5zXG5pbXBvcnQgQm9vdGFibGUgZnJvbSAnLi4vYm9vdGFibGUnXG5cbi8vIFV0aWxpdGllc1xuaW1wb3J0IHsgZ2V0T2JqZWN0VmFsdWVCeVBhdGggfSBmcm9tICcuLi8uLi91dGlsL2hlbHBlcnMnXG5pbXBvcnQgbWl4aW5zLCB7IEV4dHJhY3RWdWUgfSBmcm9tICcuLi8uLi91dGlsL21peGlucydcbmltcG9ydCB7IGNvbnNvbGVXYXJuIH0gZnJvbSAnLi4vLi4vdXRpbC9jb25zb2xlJ1xuXG4vLyBUeXBlc1xuaW1wb3J0IFZ1ZSwgeyBQcm9wT3B0aW9ucyB9IGZyb20gJ3Z1ZSdcbmltcG9ydCB7IFZOb2RlIH0gZnJvbSAndnVlL3R5cGVzJ1xuXG5pbnRlcmZhY2Ugb3B0aW9ucyBleHRlbmRzIFZ1ZSB7XG4gICRlbDogSFRNTEVsZW1lbnRcbiAgJHJlZnM6IHtcbiAgICBjb250ZW50OiBIVE1MRWxlbWVudFxuICB9XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlQXR0YWNoVGFyZ2V0ICh2YWw6IGFueSkge1xuICBjb25zdCB0eXBlID0gdHlwZW9mIHZhbFxuXG4gIGlmICh0eXBlID09PSAnYm9vbGVhbicgfHwgdHlwZSA9PT0gJ3N0cmluZycpIHJldHVybiB0cnVlXG5cbiAgcmV0dXJuIHZhbC5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREVcbn1cblxuLyogQHZ1ZS9jb21wb25lbnQgKi9cbmV4cG9ydCBkZWZhdWx0IG1peGluczxvcHRpb25zICZcbiAgLyogZXNsaW50LWRpc2FibGUgaW5kZW50ICovXG4gIEV4dHJhY3RWdWU8dHlwZW9mIEJvb3RhYmxlPlxuICAvKiBlc2xpbnQtZW5hYmxlIGluZGVudCAqL1xuPihCb290YWJsZSkuZXh0ZW5kKHtcbiAgbmFtZTogJ2RldGFjaGFibGUnLFxuXG4gIHByb3BzOiB7XG4gICAgYXR0YWNoOiB7XG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgIHZhbGlkYXRvcjogdmFsaWRhdGVBdHRhY2hUYXJnZXQsXG4gICAgfSBhcyBQcm9wT3B0aW9uczxib29sZWFuIHwgc3RyaW5nIHwgRWxlbWVudD4sXG4gICAgY29udGVudENsYXNzOiB7XG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICBkZWZhdWx0OiAnJyxcbiAgICB9LFxuICB9LFxuXG4gIGRhdGE6ICgpID0+ICh7XG4gICAgYWN0aXZhdG9yTm9kZTogbnVsbCBhcyBudWxsIHwgVk5vZGUgfCBWTm9kZVtdLFxuICAgIGhhc0RldGFjaGVkOiBmYWxzZSxcbiAgfSksXG5cbiAgd2F0Y2g6IHtcbiAgICBhdHRhY2ggKCkge1xuICAgICAgdGhpcy5oYXNEZXRhY2hlZCA9IGZhbHNlXG4gICAgICB0aGlzLmluaXREZXRhY2goKVxuICAgIH0sXG4gICAgaGFzQ29udGVudCAoKSB7XG4gICAgICB0aGlzLiRuZXh0VGljayh0aGlzLmluaXREZXRhY2gpXG4gICAgfSxcbiAgfSxcblxuICBiZWZvcmVNb3VudCAoKSB7XG4gICAgdGhpcy4kbmV4dFRpY2soKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuYWN0aXZhdG9yTm9kZSkge1xuICAgICAgICBjb25zdCBhY3RpdmF0b3IgPSBBcnJheS5pc0FycmF5KHRoaXMuYWN0aXZhdG9yTm9kZSkgPyB0aGlzLmFjdGl2YXRvck5vZGUgOiBbdGhpcy5hY3RpdmF0b3JOb2RlXVxuXG4gICAgICAgIGFjdGl2YXRvci5mb3JFYWNoKG5vZGUgPT4ge1xuICAgICAgICAgIGlmICghbm9kZS5lbG0pIHJldHVyblxuICAgICAgICAgIGlmICghdGhpcy4kZWwucGFyZW50Tm9kZSkgcmV0dXJuXG5cbiAgICAgICAgICBjb25zdCB0YXJnZXQgPSB0aGlzLiRlbCA9PT0gdGhpcy4kZWwucGFyZW50Tm9kZS5maXJzdENoaWxkXG4gICAgICAgICAgICA/IHRoaXMuJGVsXG4gICAgICAgICAgICA6IHRoaXMuJGVsLm5leHRTaWJsaW5nXG5cbiAgICAgICAgICB0aGlzLiRlbC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShub2RlLmVsbSwgdGFyZ2V0KVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pXG4gIH0sXG5cbiAgbW91bnRlZCAoKSB7XG4gICAgdGhpcy5oYXNDb250ZW50ICYmIHRoaXMuaW5pdERldGFjaCgpXG4gIH0sXG5cbiAgZGVhY3RpdmF0ZWQgKCkge1xuICAgIHRoaXMuaXNBY3RpdmUgPSBmYWxzZVxuICB9LFxuXG4gIGJlZm9yZURlc3Ryb3kgKCkge1xuICAgIC8vIElFMTEgRml4XG4gICAgdHJ5IHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy4kcmVmcy5jb250ZW50ICYmXG4gICAgICAgIHRoaXMuJHJlZnMuY29udGVudC5wYXJlbnROb2RlXG4gICAgICApIHtcbiAgICAgICAgdGhpcy4kcmVmcy5jb250ZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy4kcmVmcy5jb250ZW50KVxuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5hY3RpdmF0b3JOb2RlKSB7XG4gICAgICAgIGNvbnN0IGFjdGl2YXRvciA9IEFycmF5LmlzQXJyYXkodGhpcy5hY3RpdmF0b3JOb2RlKSA/IHRoaXMuYWN0aXZhdG9yTm9kZSA6IFt0aGlzLmFjdGl2YXRvck5vZGVdXG4gICAgICAgIGFjdGl2YXRvci5mb3JFYWNoKG5vZGUgPT4ge1xuICAgICAgICAgIG5vZGUuZWxtICYmXG4gICAgICAgICAgICBub2RlLmVsbS5wYXJlbnROb2RlICYmXG4gICAgICAgICAgICBub2RlLmVsbS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG5vZGUuZWxtKVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHsgY29uc29sZS5sb2coZSkgfVxuICB9LFxuXG4gIG1ldGhvZHM6IHtcbiAgICBnZXRTY29wZUlkQXR0cnMgKCkge1xuICAgICAgY29uc3Qgc2NvcGVJZCA9IGdldE9iamVjdFZhbHVlQnlQYXRoKHRoaXMuJHZub2RlLCAnY29udGV4dC4kb3B0aW9ucy5fc2NvcGVJZCcpXG5cbiAgICAgIHJldHVybiBzY29wZUlkICYmIHtcbiAgICAgICAgW3Njb3BlSWRdOiAnJyxcbiAgICAgIH1cbiAgICB9LFxuICAgIGluaXREZXRhY2ggKCkge1xuICAgICAgaWYgKHRoaXMuX2lzRGVzdHJveWVkIHx8XG4gICAgICAgICF0aGlzLiRyZWZzLmNvbnRlbnQgfHxcbiAgICAgICAgdGhpcy5oYXNEZXRhY2hlZCB8fFxuICAgICAgICAvLyBMZWF2ZSBtZW51IGluIHBsYWNlIGlmIGF0dGFjaGVkXG4gICAgICAgIC8vIGFuZCBkZXYgaGFzIG5vdCBjaGFuZ2VkIHRhcmdldFxuICAgICAgICB0aGlzLmF0dGFjaCA9PT0gJycgfHwgLy8gSWYgdXNlZCBhcyBhIGJvb2xlYW4gcHJvcCAoPHYtbWVudSBhdHRhY2g+KVxuICAgICAgICB0aGlzLmF0dGFjaCA9PT0gdHJ1ZSB8fCAvLyBJZiBib3VuZCB0byBhIGJvb2xlYW4gKDx2LW1lbnUgOmF0dGFjaD1cInRydWVcIj4pXG4gICAgICAgIHRoaXMuYXR0YWNoID09PSAnYXR0YWNoJyAvLyBJZiBib3VuZCBhcyBib29sZWFuIHByb3AgaW4gcHVnICh2LW1lbnUoYXR0YWNoKSlcbiAgICAgICkgcmV0dXJuXG5cbiAgICAgIGxldCB0YXJnZXRcbiAgICAgIGlmICh0aGlzLmF0dGFjaCA9PT0gZmFsc2UpIHtcbiAgICAgICAgLy8gRGVmYXVsdCwgZGV0YWNoIHRvIGFwcFxuICAgICAgICB0YXJnZXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbZGF0YS1hcHBdJylcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHRoaXMuYXR0YWNoID09PSAnc3RyaW5nJykge1xuICAgICAgICAvLyBDU1Mgc2VsZWN0b3JcbiAgICAgICAgdGFyZ2V0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLmF0dGFjaClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIERPTSBFbGVtZW50XG4gICAgICAgIHRhcmdldCA9IHRoaXMuYXR0YWNoXG4gICAgICB9XG5cbiAgICAgIGlmICghdGFyZ2V0KSB7XG4gICAgICAgIGNvbnNvbGVXYXJuKGBVbmFibGUgdG8gbG9jYXRlIHRhcmdldCAke3RoaXMuYXR0YWNoIHx8ICdbZGF0YS1hcHBdJ31gLCB0aGlzKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgdGFyZ2V0LmFwcGVuZENoaWxkKHRoaXMuJHJlZnMuY29udGVudClcblxuICAgICAgdGhpcy5oYXNEZXRhY2hlZCA9IHRydWVcbiAgICB9LFxuICB9LFxufSlcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///140\n")},function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);\n// Utilities\n // Types\n\n\n/**\n * Bootable\n * @mixin\n *\n * Used to add lazy content functionality to components\n * Looks for change in "isActive" to automatically boot\n * Otherwise can be set manually\n */\n\n/* @vue/component */\n\n/* harmony default export */ __webpack_exports__["a"] = (vue__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].extend().extend({\n name: \'bootable\',\n props: {\n eager: Boolean\n },\n data: function data() {\n return {\n isBooted: false\n };\n },\n computed: {\n hasContent: function hasContent() {\n return this.isBooted || this.eager || this.isActive;\n }\n },\n watch: {\n isActive: function isActive() {\n this.isBooted = true;\n }\n },\n created: function created() {\n /* istanbul ignore next */\n if (\'lazy\' in this.$attrs) {\n Object(_util_console__WEBPACK_IMPORTED_MODULE_0__[/* removed */ "e"])(\'lazy\', this);\n }\n },\n methods: {\n showLazyContent: function showLazyContent(content) {\n return this.hasContent && content ? content() : [this.$createElement()];\n }\n }\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL21peGlucy9ib290YWJsZS9pbmRleC50cz8yMDM3Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtDQUdBOztBQUNBO0FBS0E7Ozs7Ozs7OztBQVFBOztBQUNlLDRHQUFHLENBQUgsZ0JBQXNDO0FBQ25ELE1BQUksRUFEK0M7QUFHbkQsT0FBSyxFQUFFO0FBQ0wsU0FBSyxFQUFFO0FBREYsR0FINEM7QUFPbkQsTUFBSSxFQUFFO0FBQUEsV0FBTztBQUNYLGNBQVEsRUFBRTtBQURDLEtBQVA7QUFBQSxHQVA2QztBQVduRCxVQUFRLEVBQUU7QUFDUixjQURRLHdCQUNFO0FBQ1IsYUFBTyxpQkFBaUIsS0FBakIsU0FBK0IsS0FBdEM7QUFDRDtBQUhPLEdBWHlDO0FBaUJuRCxPQUFLLEVBQUU7QUFDTCxZQURLLHNCQUNHO0FBQ047QUFDRDtBQUhJLEdBakI0QztBQXVCbkQsU0F2Qm1ELHFCQXVCNUM7QUFDTDtBQUNBLFFBQUksVUFBVSxLQUFkLFFBQTJCO0FBQ3pCLDJFQUFPLFNBQVAsSUFBTyxDQUFQO0FBQ0Q7QUEzQmdEO0FBOEJuRCxTQUFPLEVBQUU7QUFDUCxtQkFETywyQkFDUSxPQURSLEVBQ2lDO0FBQ3RDLGFBQVEsbUJBQUQsT0FBQyxHQUE4QixPQUEvQixFQUFDLEdBQTBDLENBQUMsS0FBbkQsY0FBbUQsRUFBRCxDQUFsRDtBQUNEO0FBSE07QUE5QjBDLENBQXRDLENBQWYiLCJmaWxlIjoiMTQxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVXRpbGl0aWVzXG5pbXBvcnQgeyByZW1vdmVkIH0gZnJvbSAnLi4vLi4vdXRpbC9jb25zb2xlJ1xuXG4vLyBUeXBlc1xuaW1wb3J0IFZ1ZSwgeyBWTm9kZSB9IGZyb20gJ3Z1ZSdcbmludGVyZmFjZSBUb2dnbGVhYmxlIGV4dGVuZHMgVnVlIHtcbiAgaXNBY3RpdmU/OiBib29sZWFuXG59XG5cbi8qKlxuICogQm9vdGFibGVcbiAqIEBtaXhpblxuICpcbiAqIFVzZWQgdG8gYWRkIGxhenkgY29udGVudCBmdW5jdGlvbmFsaXR5IHRvIGNvbXBvbmVudHNcbiAqIExvb2tzIGZvciBjaGFuZ2UgaW4gXCJpc0FjdGl2ZVwiIHRvIGF1dG9tYXRpY2FsbHkgYm9vdFxuICogT3RoZXJ3aXNlIGNhbiBiZSBzZXQgbWFudWFsbHlcbiAqL1xuLyogQHZ1ZS9jb21wb25lbnQgKi9cbmV4cG9ydCBkZWZhdWx0IFZ1ZS5leHRlbmQ8VnVlICYgVG9nZ2xlYWJsZT4oKS5leHRlbmQoe1xuICBuYW1lOiAnYm9vdGFibGUnLFxuXG4gIHByb3BzOiB7XG4gICAgZWFnZXI6IEJvb2xlYW4sXG4gIH0sXG5cbiAgZGF0YTogKCkgPT4gKHtcbiAgICBpc0Jvb3RlZDogZmFsc2UsXG4gIH0pLFxuXG4gIGNvbXB1dGVkOiB7XG4gICAgaGFzQ29udGVudCAoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgICByZXR1cm4gdGhpcy5pc0Jvb3RlZCB8fCB0aGlzLmVhZ2VyIHx8IHRoaXMuaXNBY3RpdmVcbiAgICB9LFxuICB9LFxuXG4gIHdhdGNoOiB7XG4gICAgaXNBY3RpdmUgKCkge1xuICAgICAgdGhpcy5pc0Jvb3RlZCA9IHRydWVcbiAgICB9LFxuICB9LFxuXG4gIGNyZWF0ZWQgKCkge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgaWYgKCdsYXp5JyBpbiB0aGlzLiRhdHRycykge1xuICAgICAgcmVtb3ZlZCgnbGF6eScsIHRoaXMpXG4gICAgfVxuICB9LFxuXG4gIG1ldGhvZHM6IHtcbiAgICBzaG93TGF6eUNvbnRlbnQgKGNvbnRlbnQ/OiAoKSA9PiBWTm9kZVtdKTogVk5vZGVbXSB7XG4gICAgICByZXR1cm4gKHRoaXMuaGFzQ29udGVudCAmJiBjb250ZW50KSA/IGNvbnRlbnQoKSA6IFt0aGlzLiRjcmVhdGVFbGVtZW50KCldXG4gICAgfSxcbiAgfSxcbn0pXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///141\n')},function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* unused harmony export Touch */\n/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n\n\nvar handleGesture = function handleGesture(wrapper) {\n var touchstartX = wrapper.touchstartX,\n touchendX = wrapper.touchendX,\n touchstartY = wrapper.touchstartY,\n touchendY = wrapper.touchendY;\n var dirRatio = 0.5;\n var minDistance = 16;\n wrapper.offsetX = touchendX - touchstartX;\n wrapper.offsetY = touchendY - touchstartY;\n\n if (Math.abs(wrapper.offsetY) < dirRatio * Math.abs(wrapper.offsetX)) {\n wrapper.left && touchendX < touchstartX - minDistance && wrapper.left(wrapper);\n wrapper.right && touchendX > touchstartX + minDistance && wrapper.right(wrapper);\n }\n\n if (Math.abs(wrapper.offsetX) < dirRatio * Math.abs(wrapper.offsetY)) {\n wrapper.up && touchendY < touchstartY - minDistance && wrapper.up(wrapper);\n wrapper.down && touchendY > touchstartY + minDistance && wrapper.down(wrapper);\n }\n};\n\nfunction _touchstart(event, wrapper) {\n var touch = event.changedTouches[0];\n wrapper.touchstartX = touch.clientX;\n wrapper.touchstartY = touch.clientY;\n wrapper.start && wrapper.start(Object.assign(event, wrapper));\n}\n\nfunction _touchend(event, wrapper) {\n var touch = event.changedTouches[0];\n wrapper.touchendX = touch.clientX;\n wrapper.touchendY = touch.clientY;\n wrapper.end && wrapper.end(Object.assign(event, wrapper));\n handleGesture(wrapper);\n}\n\nfunction _touchmove(event, wrapper) {\n var touch = event.changedTouches[0];\n wrapper.touchmoveX = touch.clientX;\n wrapper.touchmoveY = touch.clientY;\n wrapper.move && wrapper.move(Object.assign(event, wrapper));\n}\n\nfunction createHandlers(value) {\n var wrapper = {\n touchstartX: 0,\n touchstartY: 0,\n touchendX: 0,\n touchendY: 0,\n touchmoveX: 0,\n touchmoveY: 0,\n offsetX: 0,\n offsetY: 0,\n left: value.left,\n right: value.right,\n up: value.up,\n down: value.down,\n start: value.start,\n move: value.move,\n end: value.end\n };\n return {\n touchstart: function touchstart(e) {\n return _touchstart(e, wrapper);\n },\n touchend: function touchend(e) {\n return _touchend(e, wrapper);\n },\n touchmove: function touchmove(e) {\n return _touchmove(e, wrapper);\n }\n };\n}\n\nfunction inserted(el, binding, vnode) {\n var value = binding.value;\n var target = value.parent ? el.parentElement : el;\n var options = value.options || {\n passive: true\n }; // Needed to pass unit tests\n\n if (!target) return;\n var handlers = createHandlers(binding.value);\n target._touchHandlers = Object(target._touchHandlers);\n target._touchHandlers[vnode.context._uid] = handlers;\n Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__[/* keys */ "y"])(handlers).forEach(function (eventName) {\n target.addEventListener(eventName, handlers[eventName], options);\n });\n}\n\nfunction unbind(el, binding, vnode) {\n var target = binding.value.parent ? el.parentElement : el;\n if (!target || !target._touchHandlers) return;\n var handlers = target._touchHandlers[vnode.context._uid];\n Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__[/* keys */ "y"])(handlers).forEach(function (eventName) {\n target.removeEventListener(eventName, handlers[eventName]);\n });\n delete target._touchHandlers[vnode.context._uid];\n}\n\nvar Touch = {\n inserted: inserted,\n unbind: unbind\n};\n/* harmony default export */ __webpack_exports__["a"] = (Touch);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL2RpcmVjdGl2ZXMvdG91Y2gvaW5kZXgudHM/NGFmOSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTtBQUFBO0FBQUE7O0FBYUEsSUFBTSxhQUFhLEdBQUksU0FBakIsYUFBaUIsUUFBRCxFQUEwQjtBQUFBLE1BQ3hDLFdBRHdDLEdBQzlDLE9BRDhDLENBQ3hDLFdBRHdDO0FBQUEsTUFDeEMsU0FEd0MsR0FDOUMsT0FEOEMsQ0FDeEMsU0FEd0M7QUFBQSxNQUN4QyxXQUR3QyxHQUM5QyxPQUQ4QyxDQUN4QyxXQUR3QztBQUFBLE1BQ0QsU0FEQyxHQUM5QyxPQUQ4QyxDQUNELFNBREM7QUFFOUMsTUFBTSxRQUFRLEdBQWQ7QUFDQSxNQUFNLFdBQVcsR0FBakI7QUFDQSxTQUFPLENBQVAsVUFBa0IsU0FBUyxHQUEzQjtBQUNBLFNBQU8sQ0FBUCxVQUFrQixTQUFTLEdBQTNCOztBQUVBLE1BQUksSUFBSSxDQUFKLElBQVMsT0FBTyxDQUFoQixXQUE0QixRQUFRLEdBQUcsSUFBSSxDQUFKLElBQVMsT0FBTyxDQUEzRCxPQUEyQyxDQUEzQyxFQUFzRTtBQUNwRSxXQUFPLENBQVAsUUFBaUIsU0FBUyxHQUFHLFdBQVcsR0FBeEMsZUFBMkQsT0FBTyxDQUFQLEtBQTNELE9BQTJELENBQTNEO0FBQ0EsV0FBTyxDQUFQLFNBQWtCLFNBQVMsR0FBRyxXQUFXLEdBQXpDLGVBQTRELE9BQU8sQ0FBUCxNQUE1RCxPQUE0RCxDQUE1RDtBQUNEOztBQUVELE1BQUksSUFBSSxDQUFKLElBQVMsT0FBTyxDQUFoQixXQUE0QixRQUFRLEdBQUcsSUFBSSxDQUFKLElBQVMsT0FBTyxDQUEzRCxPQUEyQyxDQUEzQyxFQUFzRTtBQUNwRSxXQUFPLENBQVAsTUFBZSxTQUFTLEdBQUcsV0FBVyxHQUF0QyxlQUF5RCxPQUFPLENBQVAsR0FBekQsT0FBeUQsQ0FBekQ7QUFDQSxXQUFPLENBQVAsUUFBaUIsU0FBUyxHQUFHLFdBQVcsR0FBeEMs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QUFqQjtBQUNBLG9FQUFJLENBQUosUUFBSSxDQUFKLFNBQXVCLG1CQUFTLEVBQUc7QUFDakMsVUFBTSxDQUFOLCtCQUFzQyxRQUFRLENBQTlDLFNBQThDLENBQTlDO0FBREY7QUFHQSxTQUFPLE1BQU0sQ0FBTixlQUFzQixLQUFLLENBQUwsUUFBN0IsSUFBTyxDQUFQO0FBQ0Q7O0FBRU0sSUFBTSxLQUFLLEdBQUc7QUFDbkIsVUFEbUIsRUFDbkIsUUFEbUI7QUFFbkI7QUFGbUIsQ0FBZDtBQUtQIiwiZmlsZSI6IjE0Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZOb2RlRGlyZWN0aXZlLCBWTm9kZSB9IGZyb20gJ3Z1ZS90eXBlcy92bm9kZSdcbmltcG9ydCB7IGtleXMgfSBmcm9tICcuLi8uLi91dGlsL2hlbHBlcnMnXG5pbXBvcnQgeyBUb3VjaEhhbmRsZXJzLCBUb3VjaFZhbHVlLCBUb3VjaFdyYXBwZXIgfSBmcm9tICd2dWV0aWZ5L3R5cGVzJ1xuXG5leHBvcnQgaW50ZXJmYWNlIFRvdWNoU3RvcmVkSGFuZGxlcnMge1xuICB0b3VjaHN0YXJ0OiAoZTogVG91Y2hFdmVudCkgPT4gdm9pZFxuICB0b3VjaGVuZDogKGU6IFRvdWNoRXZlbnQpID0+IHZvaWRcbiAgdG91Y2htb3ZlOiAoZTogVG91Y2hFdmVudCkgPT4gdm9pZFxufVxuXG5pbnRlcmZhY2UgVG91Y2hWTm9kZURpcmVjdGl2ZSBleHRlbmRzIFZOb2RlRGlyZWN0aXZlIHtcbiAgdmFsdWU/OiBUb3VjaFZhbHVlXG59XG5cbmNvbnN0IGhhbmRsZUdlc3R1cmUgPSAod3JhcHBlcjogVG91Y2hXcmFwcGVyKSA9PiB7XG4gIGNvbnN0IHsgdG91Y2hzdGFydFgsIHRvdWNoZW5kWCwgdG91Y2hzdGFydFksIHRvdWNoZW5kWSB9ID0gd3JhcHBlclxuICBjb25zdCBkaXJSYXRpbyA9IDAuNVxuICBjb25zdCBtaW5EaXN0YW5jZSA9IDE2XG4gIHdyYXBwZXIub2Zmc2V0WCA9IHRvdWNoZW5kWCAtIHRvdWNoc3RhcnRYXG4gIHdyYXBwZXIub2Zmc2V0WSA9IHRvdWNoZW5kWSAtIHRvdWNoc3RhcnRZXG5cbiAgaWYgKE1hdGguYWJzKHdyYXBwZXIub2Zmc2V0WSkgPCBkaXJSYXRpbyAqIE1hdGguYWJzKHdyYXBwZXIub2Zmc2V0WCkpIHtcbiAgICB3cmFwcGVyLmxlZnQgJiYgKHRvdWNoZW5kWCA8IHRvdWNoc3RhcnRYIC0gbWluRGlzdGFuY2UpICYmIHdyYXBwZXIubGVmdCh3cmFwcGVyKVxuICAgIHdyYXBwZXIucmlnaHQgJiYgKHRvdWNoZW5kWCA+IHRvdWNoc3RhcnRYICsgbWluRGlzdGFuY2UpICYmIHdyYXBwZXIucmlnaHQod3JhcHBlcilcbiAgfVxuXG4gIGlmIChNYXRoLmFicyh3cmFwcGVyLm9mZnNldFgpIDwgZGlyUmF0aW8gKiBNYXRoLmFicyh3cmFwcGVyLm9mZnNldFkpKSB7XG4gICAgd3JhcHBlci51cCAmJiAodG91Y2hlbmRZIDwgdG91Y2hzdGFydFkgLSBtaW5EaXN0YW5jZSkgJiYgd3JhcHBlci51cCh3cmFwcGVyKVxuICAgIHdyYXBwZXIuZG93biAmJiAodG91Y2hlbmRZID4gdG91Y2hzdGFydFkgKyBtaW5EaXN0YW5jZSkgJiYgd3JhcHBlci5kb3duKHdyYXBwZXIpXG4gIH1cbn1cblxuZnVuY3Rpb24gdG91Y2hzdGFydCAoZXZlbnQ6IFRvdWNoRXZlbnQsIHdyYXBwZXI6IFRvdWNoV3JhcHBlcikge1xuICBjb25zdCB0b3VjaCA9IGV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdXG4gIHdyYXBwZXIudG91Y2hzdGFydFggPSB0b3VjaC5jbGllbnRYXG4gIHdyYXBwZXIudG91Y2hzdGFydFkgPSB0b3VjaC5jbGllbnRZXG5cbiAgd3JhcHBlci5zdGFydCAmJlxuICAgIHdyYXBwZXIuc3RhcnQoT2JqZWN0LmFzc2lnbihldmVudCwgd3JhcHBlcikpXG59XG5cbmZ1bmN0aW9uIHRvdWNoZW5kIChldmVudDogVG91Y2hFdmVudCwgd3JhcHBlcjogVG91Y2hXcmFwcGVyKSB7XG4gIGNvbnN0IHRvdWNoID0gZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF1cbiAgd3JhcHBlci50b3VjaGVuZFggPSB0b3VjaC5jbGllbnRYXG4gIHdyYXBwZXIudG91Y2hlbmRZID0gdG91Y2guY2xpZW50WVxuXG4gIHdyYXBwZXIuZW5kICYmXG4gICAgd3JhcHBlci5lbmQoT2JqZWN0LmFzc2lnbihldmVudCwgd3JhcHBlcikpXG5cbiAgaGFuZGxlR2VzdHVyZSh3cmFwcGVyKVxufVxuXG5mdW5jdGlvbiB0b3VjaG1vdmUgKGV2ZW50OiBUb3VjaEV2ZW50LCB3cmFwcGVyOiBUb3VjaFdyYXBwZXIpIHtcbiAgY29uc3QgdG91Y2ggPSBldmVudC5jaGFuZ2VkVG91Y2hlc1swXVxuICB3cmFwcGVyLnRvdWNobW92ZVggPSB0b3VjaC5jbGllbnRYXG4gIHdyYXBwZXIudG91Y2htb3ZlWSA9IHRvdWNoLmNsaWVudFlcblxuICB3cmFwcGVyLm1vdmUgJiYgd3JhcHBlci5tb3ZlKE9iamVjdC5hc3NpZ24oZXZlbnQsIHdyYXBwZXIpKVxufVxuXG5mdW5jdGlvbiBjcmVhdGVIYW5kbGVycyAodmFsdWU6IFRvdWNoSGFuZGxlcnMpOiBUb3VjaFN0b3JlZEhhbmRsZXJzIHtcbiAgY29uc3Qgd3JhcHBlciA9IHtcbiAgICB0b3VjaHN0YXJ0WDogMCxcbiAgICB0b3VjaHN0YXJ0WTogMCxcbiAgICB0b3VjaGVuZFg6IDAsXG4gICAgdG91Y2hlbmRZOiAwLFxuICAgIHRvdWNobW92ZVg6IDAsXG4gICAgdG91Y2htb3ZlWTogMCxcbiAgICBvZmZzZXRYOiAwLFxuICAgIG9mZnNldFk6IDAsXG4gICAgbGVmdDogdmFsdWUubGVmdCxcbiAgICByaWdodDogdmFsdWUucmlnaHQsXG4gICAgdXA6IHZhbHVlLnVwLFxuICAgIGRvd246IHZhbHVlLmRvd24sXG4gICAgc3RhcnQ6IHZhbHVlLnN0YXJ0LFxuICAgIG1vdmU6IHZhbHVlLm1vdmUsXG4gICAgZW5kOiB2YWx1ZS5lbmQsXG4gIH1cblxuICByZXR1cm4ge1xuICAgIHRvdWNoc3RhcnQ6IChlOiBUb3VjaEV2ZW50KSA9PiB0b3VjaHN0YXJ0KGUsIHdyYXBwZXIpLFxuICAgIHRvdWNoZW5kOiAoZTogVG91Y2hFdmVudCkgPT4gdG91Y2hlbmQoZSwgd3JhcHBlciksXG4gICAgdG91Y2htb3ZlOiAoZTogVG91Y2hFdmVudCkgPT4gdG91Y2htb3ZlKGUsIHdyYXBwZXIpLFxuICB9XG59XG5cbmZ1bmN0aW9uIGluc2VydGVkIChlbDogSFRNTEVsZW1lbnQsIGJpbmRpbmc6IFRvdWNoVk5vZGVEaXJlY3RpdmUsIHZub2RlOiBWTm9kZSkge1xuICBjb25zdCB2YWx1ZSA9IGJpbmRpbmcudmFsdWUhXG4gIGNvbnN0IHRhcmdldCA9IHZhbHVlLnBhcmVudCA/IGVsLnBhcmVudEVsZW1lbnQgOiBlbFxuICBjb25zdCBvcHRpb25zID0gdmFsdWUub3B0aW9ucyB8fCB7IHBhc3NpdmU6IHRydWUgfVxuXG4gIC8vIE5lZWRlZCB0byBwYXNzIHVuaXQgdGVzdHNcbiAgaWYgKCF0YXJnZXQpIHJldHVyblxuXG4gIGNvbnN0IGhhbmRsZXJzID0gY3JlYXRlSGFuZGxlcnMoYmluZGluZy52YWx1ZSEpXG4gIHRhcmdldC5fdG91Y2hIYW5kbGVycyA9IE9iamVjdCh0YXJnZXQuX3RvdWNoSGFuZGxlcnMpXG4gIHRhcmdldC5fdG91Y2hIYW5kbGVycyFbdm5vZGUuY29udGV4dCEuX3VpZF0gPSBoYW5kbGVyc1xuXG4gIGtleXMoaGFuZGxlcnMpLmZvckVhY2goZXZlbnROYW1lID0+IHtcbiAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGhhbmRsZXJzW2V2ZW50TmFtZV0gYXMgRXZlbnRMaXN0ZW5lciwgb3B0aW9ucylcbiAgfSlcbn1cblxuZnVuY3Rpb24gdW5iaW5kIChlbDogSFRNTEVsZW1lbnQsIGJpbmRpbmc6IFRvdWNoVk5vZGVEaXJlY3RpdmUsIHZub2RlOiBWTm9kZSkge1xuICBjb25zdCB0YXJnZXQgPSBiaW5kaW5nLnZhbHVlIS5wYXJlbnQgPyBlbC5wYXJlbnRFbGVtZW50IDogZWxcbiAgaWYgKCF0YXJnZXQgfHwgIXRhcmdldC5fdG91Y2hIYW5kbGVycykgcmV0dXJuXG5cbiAgY29uc3QgaGFuZGxlcnMgPSB0YXJnZXQuX3RvdWNoSGFuZGxlcnNbdm5vZGUuY29udGV4dCEuX3VpZF1cbiAga2V5cyhoYW5kbGVycykuZm9yRWFjaChldmVudE5hbWUgPT4ge1xuICAgIHRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgaGFuZGxlcnNbZXZlbnROYW1lXSlcbiAgfSlcbiAgZGVsZXRlIHRhcmdldC5fdG91Y2hIYW5kbGVyc1t2bm9kZS5jb250ZXh0IS5fdWlkXVxufVxuXG5leHBvcnQgY29uc3QgVG91Y2ggPSB7XG4gIGluc2VydGVkLFxuICB1bmJpbmQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IFRvdWNoXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///142\n')},,function(module,__webpack_exports__,__webpack_require__){"use strict";eval("/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return applicationable; });\n/* harmony import */ var _positionable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(60);\n/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5);\n // Util\n\n\nfunction applicationable(value) {\n var events = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n /* @vue/component */\n return Object(_util_mixins__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(Object(_positionable__WEBPACK_IMPORTED_MODULE_0__[/* factory */ \"b\"])(['absolute', 'fixed'])).extend({\n name: 'applicationable',\n props: {\n app: Boolean\n },\n computed: {\n applicationProperty: function applicationProperty() {\n return value;\n }\n },\n watch: {\n // If previous value was app\n // reset the provided prop\n app: function app(x, prev) {\n prev ? this.removeApplication(true) : this.callUpdate();\n },\n applicationProperty: function applicationProperty(newVal, oldVal) {\n this.$vuetify.application.unregister(this._uid, oldVal);\n }\n },\n activated: function activated() {\n this.callUpdate();\n },\n created: function created() {\n for (var i = 0, length = events.length; i < length; i++) {\n this.$watch(events[i], this.callUpdate);\n }\n\n this.callUpdate();\n },\n mounted: function mounted() {\n this.callUpdate();\n },\n deactivated: function deactivated() {\n this.removeApplication();\n },\n destroyed: function destroyed() {\n this.removeApplication();\n },\n methods: {\n callUpdate: function callUpdate() {\n if (!this.app) return;\n this.$vuetify.application.register(this._uid, this.applicationProperty, this.updateApplication());\n },\n removeApplication: function removeApplication() {\n var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n if (!force && !this.app) return;\n this.$vuetify.application.unregister(this._uid, this.applicationProperty);\n },\n updateApplication: function updateApplication() {\n return 0;\n }\n }\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL21peGlucy9hcHBsaWNhdGlvbmFibGUvaW5kZXgudHM/NGZjYSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7Q0FHQTs7QUFDQTtBQUVjLGdDQUFtRTtBQUFBLE1BQXJCLE1BQXFCLHVFQUFuRSxFQUFtRTs7QUFDL0U7QUFDQSxTQUFPLG9FQUFNLENBQUMscUVBQW1CLENBQUMsYUFBM0IsT0FBMkIsQ0FBRCxDQUFwQixDQUFOLFFBQTBEO0FBQy9ELFFBQUksRUFEMkQ7QUFHL0QsU0FBSyxFQUFFO0FBQ0wsU0FBRyxFQUFFO0FBREEsS0FId0Q7QUFPL0QsWUFBUSxFQUFFO0FBQ1IseUJBRFEsaUNBQ1c7QUFDakI7QUFDRDtBQUhPLEtBUHFEO0FBYS9ELFNBQUssRUFBRTtBQUNMO0FBQ0E7QUFDQSxTQUhLLGVBR0YsQ0FIRSxFQUdGLElBSEUsRUFHeUI7QUFDNUIsWUFBSSxHQUNBLHVCQURBLElBQ0EsQ0FEQSxHQUVBLEtBRkosVUFFSSxFQUZKO0FBSkc7QUFRTCx5QkFSSywrQkFRYyxNQVJkLEVBUWMsTUFSZCxFQVE4QjtBQUNqQyw2Q0FBcUMsS0FBckM7QUFDRDtBQVZJLEtBYndEO0FBMEIvRCxhQTFCK0QsdUJBMEJ0RDtBQUNQO0FBM0I2RDtBQThCL0QsV0E5QitELHFCQThCeEQ7QUFDTCxXQUFLLElBQUksQ0FBQyxHQUFMLEdBQVcsTUFBTSxHQUFHLE1BQU0sQ0FBL0IsUUFBd0MsQ0FBQyxHQUF6QyxRQUFvRCxDQUFwRCxJQUF5RDtBQUN2RCxvQkFBWSxNQUFNLENBQWxCLENBQWtCLENBQWxCLEVBQXVCLEtBQXZCO0FBQ0Q7O0FBQ0Q7QUFsQzZEO0FBcUMvRCxXQXJDK0QscUJBcUN4RDtBQUNMO0FBdEM2RDtBQXlDL0QsZUF6QytELHlCQXlDcEQ7QUFDVDtBQTFDNkQ7QUE2Qy9ELGFBN0MrRCx1QkE2Q3REO0FBQ1A7QUE5QzZEO0FBaUQvRCxXQUFPLEVBQUU7QUFDUCxnQkFETyx3QkFDRztBQUNSLFlBQUksQ0FBQyxLQUFMLEtBQWU7QUFFZiwyQ0FDRSxLQURGLE1BRUUsS0FGRixxQkFHRSxLQUhGLGlCQUdFLEVBSEY7QUFKSztBQVVQLHVCQVZPLCtCQVV5QjtBQUFBLFlBQWIsS0FBYSx1RUFBZixLQUFlO0FBQzlCLFlBQUksVUFBVSxDQUFDLEtBQWYsS0FBeUI7QUFFekIsNkNBQ0UsS0FERixNQUVFLEtBRkY7QUFiSztBQWtCUCx1QkFBaUIsRUFBRTtBQUFBLGVBQU0sQ0FBTjtBQUFBO0FBbEJaO0FBakRzRCxHQUExRCxDQUFQO0FBc0VEIiwiZmlsZSI6IjE0NC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZhY3RvcnkgYXMgUG9zaXRpb25hYmxlRmFjdG9yeSB9IGZyb20gJy4uL3Bvc2l0aW9uYWJsZSdcbmltcG9ydCB7IFRhcmdldFByb3AgfSBmcm9tICd2dWV0aWZ5L3R5cGVzL3NlcnZpY2VzL2FwcGxpY2F0aW9uJ1xuXG4vLyBVdGlsXG5pbXBvcnQgbWl4aW5zIGZyb20gJy4uLy4uL3V0aWwvbWl4aW5zJ1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhcHBsaWNhdGlvbmFibGUgKHZhbHVlOiBUYXJnZXRQcm9wLCBldmVudHM6IHN0cmluZ1tdID0gW10pIHtcbiAgLyogQHZ1ZS9jb21wb25lbnQgKi9cbiAgcmV0dXJuIG1peGlucyhQb3NpdGlvbmFibGVGYWN0b3J5KFsnYWJzb2x1dGUnLCAnZml4ZWQnXSkpLmV4dGVuZCh7XG4gICAgbmFtZTogJ2FwcGxpY2F0aW9uYWJsZScsXG5cbiAgICBwcm9wczoge1xuICAgICAgYXBwOiBCb29sZWFuLFxuICAgIH0sXG5cbiAgICBjb21wdXRlZDoge1xuICAgICAgYXBwbGljYXRpb25Qcm9wZXJ0eSAoKTogVGFyZ2V0UHJvcCB7XG4gICAgICAgIHJldHVybiB2YWx1ZVxuICAgICAgfSxcbiAgICB9LFxuXG4gICAgd2F0Y2g6IHtcbiAgICAgIC8vIElmIHByZXZpb3VzIHZhbHVlIHdhcyBhcHBcbiAgICAgIC8vIHJlc2V0IHRoZSBwcm92aWRlZCBwcm9wXG4gICAgICBhcHAgKHg6IGJvb2xlYW4sIHByZXY6IGJvb2xlYW4pIHtcbiAgICAgICAgcHJldlxuICAgICAgICAgID8gdGhpcy5yZW1vdmVBcHBsaWNhdGlvbih0cnVlKVxuICAgICAgICAgIDogdGhpcy5jYWxsVXBkYXRlKClcbiAgICAgIH0sXG4gICAgICBhcHBsaWNhdGlvblByb3BlcnR5IChuZXdWYWwsIG9sZFZhbCkge1xuICAgICAgICB0aGlzLiR2dWV0aWZ5LmFwcGxpY2F0aW9uLnVucmVnaXN0ZXIodGhpcy5fdWlkLCBvbGRWYWwpXG4gICAgICB9LFxuICAgIH0sXG5cbiAgICBhY3RpdmF0ZWQgKCkge1xuICAgICAgdGhpcy5jYWxsVXBkYXRlKClcbiAgICB9LFxuXG4gICAgY3JlYXRlZCAoKSB7XG4gICAgICBmb3IgKGxldCBpID0gMCwgbGVuZ3RoID0gZXZlbnRzLmxlbmd0aDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHRoaXMuJHdhdGNoKGV2ZW50c1tpXSwgdGhpcy5jYWxsVXBkYXRlKVxuICAgICAgfVxuICAgICAgdGhpcy5jYWxsVXBkYXRlKClcbiAgICB9LFxuXG4gICAgbW91bnRlZCAoKSB7XG4gICAgICB0aGlzLmNhbGxVcGRhdGUoKVxuICAgIH0sXG5cbiAgICBkZWFjdGl2YXRlZCAoKSB7XG4gICAgICB0aGlzLnJlbW92ZUFwcGxpY2F0aW9uKClcbiAgICB9LFxuXG4gICAgZGVzdHJveWVkICgpIHtcbiAgICAgIHRoaXMucmVtb3ZlQXBwbGljYXRpb24oKVxuICAgIH0sXG5cbiAgICBtZXRob2RzOiB7XG4gICAgICBjYWxsVXBkYXRlICgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmFwcCkgcmV0dXJuXG5cbiAgICAgICAgdGhpcy4kdnVldGlmeS5hcHBsaWNhdGlvbi5yZWdpc3RlcihcbiAgICAgICAgICB0aGlzLl91aWQsXG4gICAgICAgICAgdGhpcy5hcHBsaWNhdGlvblByb3BlcnR5LFxuICAgICAgICAgIHRoaXMudXBkYXRlQXBwbGljYXRpb24oKVxuICAgICAgICApXG4gICAgICB9LFxuICAgICAgcmVtb3ZlQXBwbGljYXRpb24gKGZvcmNlID0gZmFsc2UpIHtcbiAgICAgICAgaWYgKCFmb3JjZSAmJiAhdGhpcy5hcHApIHJldHVyblxuXG4gICAgICAgIHRoaXMuJHZ1ZXRpZnkuYXBwbGljYXRpb24udW5yZWdpc3RlcihcbiAgICAgICAgICB0aGlzLl91aWQsXG4gICAgICAgICAgdGhpcy5hcHBsaWNhdGlvblByb3BlcnR5XG4gICAgICAgIClcbiAgICAgIH0sXG4gICAgICB1cGRhdGVBcHBsaWNhdGlvbjogKCkgPT4gMCxcbiAgICB9LFxuICB9KVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///144\n")},function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* unused harmony export VToolbarItems */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return VToolbarTitle; });\n/* harmony import */ var _VToolbar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(54);\n/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(0);\n// Components\n // Utilities\n\n\nvar VToolbarTitle = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__[/* createSimpleFunctional */ "i"])(\'v-toolbar__title\');\nvar VToolbarItems = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__[/* createSimpleFunctional */ "i"])(\'v-toolbar__items\');\n\n/* unused harmony default export */ var _unused_webpack_default_export = ({\n $_vuetify_subcomponents: {\n VToolbar: _VToolbar__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"],\n VToolbarItems: VToolbarItems,\n VToolbarTitle: VToolbarTitle\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvVlRvb2xiYXIvaW5kZXgudHM/YWEzZCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBR0E7O0FBQ0E7QUFFQSxJQUFNLGFBQWEsR0FBRyxvRkFBc0IsQ0FBNUMsa0JBQTRDLENBQTVDO0FBQ0EsSUFBTSxhQUFhLEdBQUcsb0ZBQXNCLENBQTVDLGtCQUE0QyxDQUE1QztBQUVBO0FBTWU7QUFDYix5QkFBdUIsRUFBRTtBQUN2QixZQUR1QixFQUN2Qix5REFEdUI7QUFFdkIsaUJBRnVCLEVBRXZCLGFBRnVCO0FBR3ZCO0FBSHVCO0FBRFosQ0FBZiIsImZpbGUiOiIxNDUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb21wb25lbnRzXG5pbXBvcnQgVlRvb2xiYXIgZnJvbSAnLi9WVG9vbGJhcidcblxuLy8gVXRpbGl0aWVzXG5pbXBvcnQgeyBjcmVhdGVTaW1wbGVGdW5jdGlvbmFsIH0gZnJvbSAnLi4vLi4vdXRpbC9oZWxwZXJzJ1xuXG5jb25zdCBWVG9vbGJhclRpdGxlID0gY3JlYXRlU2ltcGxlRnVuY3Rpb25hbCgndi10b29sYmFyX190aXRsZScpXG5jb25zdCBWVG9vbGJhckl0ZW1zID0gY3JlYXRlU2ltcGxlRnVuY3Rpb25hbCgndi10b29sYmFyX19pdGVtcycpXG5cbmV4cG9ydCB7XG4gIFZUb29sYmFyLFxuICBWVG9vbGJhckl0ZW1zLFxuICBWVG9vbGJhclRpdGxlLFxufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gICRfdnVldGlmeV9zdWJjb21wb25lbnRzOiB7XG4gICAgVlRvb2xiYXIsXG4gICAgVlRvb2xiYXJJdGVtcyxcbiAgICBWVG9vbGJhclRpdGxlLFxuICB9LFxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///145\n')},,function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return VCardActions; });\n/* unused harmony export VCardSubtitle */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return VCardText; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return VCardTitle; });\n/* harmony import */ var _VCard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(176);\n/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(0);\n\n\nvar VCardActions = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__[/* createSimpleFunctional */ "i"])(\'v-card__actions\');\nvar VCardSubtitle = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__[/* createSimpleFunctional */ "i"])(\'v-card__subtitle\');\nvar VCardText = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__[/* createSimpleFunctional */ "i"])(\'v-card__text\');\nvar VCardTitle = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__[/* createSimpleFunctional */ "i"])(\'v-card__title\');\n\n/* unused harmony default export */ var _unused_webpack_default_export = ({\n $_vuetify_subcomponents: {\n VCard: _VCard__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"],\n VCardActions: VCardActions,\n VCardSubtitle: VCardSubtitle,\n VCardText: VCardText,\n VCardTitle: VCardTitle\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvVkNhcmQvaW5kZXgudHM/MGY3YiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBRUEsSUFBTSxZQUFZLEdBQUcsb0ZBQXNCLENBQTNDLGlCQUEyQyxDQUEzQztBQUNBLElBQU0sYUFBYSxHQUFHLG9GQUFzQixDQUE1QyxrQkFBNEMsQ0FBNUM7QUFDQSxJQUFNLFNBQVMsR0FBRyxvRkFBc0IsQ0FBeEMsY0FBd0MsQ0FBeEM7QUFDQSxJQUFNLFVBQVUsR0FBRyxvRkFBc0IsQ0FBekMsZUFBeUMsQ0FBekM7QUFFQTtBQVFlO0FBQ2IseUJBQXVCLEVBQUU7QUFDdkIsU0FEdUIsRUFDdkIsc0RBRHVCO0FBRXZCLGdCQUZ1QixFQUV2QixZQUZ1QjtBQUd2QixpQkFIdUIsRUFHdkIsYUFIdUI7QUFJdkIsYUFKdUIsRUFJdkIsU0FKdUI7QUFLdkI7QUFMdUI7QUFEWixDQUFmIiwiZmlsZSI6IjE0Ny5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBWQ2FyZCBmcm9tICcuL1ZDYXJkJ1xuaW1wb3J0IHsgY3JlYXRlU2ltcGxlRnVuY3Rpb25hbCB9IGZyb20gJy4uLy4uL3V0aWwvaGVscGVycydcblxuY29uc3QgVkNhcmRBY3Rpb25zID0gY3JlYXRlU2ltcGxlRnVuY3Rpb25hbCgndi1jYXJkX19hY3Rpb25zJylcbmNvbnN0IFZDYXJkU3VidGl0bGUgPSBjcmVhdGVTaW1wbGVGdW5jdGlvbmFsKCd2LWNhcmRfX3N1YnRpdGxlJylcbmNvbnN0IFZDYXJkVGV4dCA9IGNyZWF0ZVNpbXBsZUZ1bmN0aW9uYWwoJ3YtY2FyZF9fdGV4dCcpXG5jb25zdCBWQ2FyZFRpdGxlID0gY3JlYXRlU2ltcGxlRnVuY3Rpb25hbCgndi1jYXJkX190aXRsZScpXG5cbmV4cG9ydCB7XG4gIFZDYXJkLFxuICBWQ2FyZEFjdGlvbnMsXG4gIFZDYXJkU3VidGl0bGUsXG4gIFZDYXJkVGV4dCxcbiAgVkNhcmRUaXRsZSxcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICAkX3Z1ZXRpZnlfc3ViY29tcG9uZW50czoge1xuICAgIFZDYXJkLFxuICAgIFZDYXJkQWN0aW9ucyxcbiAgICBWQ2FyZFN1YnRpdGxlLFxuICAgIFZDYXJkVGV4dCxcbiAgICBWQ2FyZFRpdGxlLFxuICB9LFxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///147\n')},,,,,function(module,__webpack_exports__,__webpack_require__){"use strict";eval("\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.number.constructor.js\nvar es6_number_constructor = __webpack_require__(20);\n\n// EXTERNAL MODULE: ./node_modules/vue/dist/vue.runtime.esm.js\nvar vue_runtime_esm = __webpack_require__(2);\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es7.object.get-own-property-descriptors.js\nvar es7_object_get_own_property_descriptors = __webpack_require__(11);\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.symbol.js\nvar es6_symbol = __webpack_require__(8);\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom.iterable.js\nvar web_dom_iterable = __webpack_require__(6);\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.to-string.js\nvar es6_object_to_string = __webpack_require__(4);\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.keys.js\nvar es6_object_keys = __webpack_require__(9);\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.fixed.js\nvar es6_string_fixed = __webpack_require__(134);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__(1);\n\n// EXTERNAL MODULE: ./node_modules/vuetify/src/components/VProgressLinear/VProgressLinear.sass\nvar VProgressLinear = __webpack_require__(318);\n\n// EXTERNAL MODULE: ./node_modules/vuetify/lib/components/transitions/index.js + 2 modules\nvar transitions = __webpack_require__(84);\n\n// EXTERNAL MODULE: ./node_modules/vuetify/lib/mixins/colorable/index.js\nvar colorable = __webpack_require__(21);\n\n// EXTERNAL MODULE: ./node_modules/vuetify/lib/mixins/positionable/index.js\nvar positionable = __webpack_require__(60);\n\n// EXTERNAL MODULE: ./node_modules/vuetify/lib/mixins/proxyable/index.js\nvar proxyable = __webpack_require__(96);\n\n// EXTERNAL MODULE: ./node_modules/vuetify/lib/mixins/themeable/index.js\nvar themeable = __webpack_require__(17);\n\n// EXTERNAL MODULE: ./node_modules/vuetify/lib/util/helpers.js\nvar helpers = __webpack_require__(0);\n\n// EXTERNAL MODULE: ./node_modules/vuetify/lib/util/mixins.js\nvar mixins = __webpack_require__(5);\n\n// CONCATENATED MODULE: ./node_modules/vuetify/lib/components/VProgressLinear/VProgressLinear.js\n\n\n\n\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n // Components\n\n // Mixins\n\n\n\n\n // Utilities\n\n\n\nvar baseMixins = Object(mixins[\"a\" /* default */])(colorable[\"a\" /* default */], Object(positionable[\"b\" /* factory */])(['absolute', 'fixed', 'top', 'bottom']), proxyable[\"a\" /* default */], themeable[\"a\" /* default */]);\n/* @vue/component */\n\n/* harmony default export */ var VProgressLinear_VProgressLinear = (baseMixins.extend({\n name: 'v-progress-linear',\n props: {\n active: {\n type: Boolean,\n default: true\n },\n backgroundColor: {\n type: String,\n default: null\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null\n },\n bufferValue: {\n type: [Number, String],\n default: 100\n },\n color: {\n type: String,\n default: 'primary'\n },\n height: {\n type: [Number, String],\n default: 4\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0\n }\n },\n data: function data() {\n return {\n internalLazyValue: this.value || 0\n };\n },\n computed: {\n __cachedBackground: function __cachedBackground() {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle\n }));\n },\n __cachedBar: function __cachedBar() {\n return this.$createElement(this.computedTransition, [this.__cachedBarType]);\n },\n __cachedBarType: function __cachedBarType() {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate;\n },\n __cachedBuffer: function __cachedBuffer() {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles\n });\n },\n __cachedDeterminate: function __cachedDeterminate() {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: \"v-progress-linear__determinate\",\n style: {\n width: Object(helpers[\"g\" /* convertToUnit */])(this.normalizedValue, '%')\n }\n }));\n },\n __cachedIndeterminate: function __cachedIndeterminate() {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active\n }\n }, [this.genProgressBar('long'), this.genProgressBar('short')]);\n },\n __cachedStream: function __cachedStream() {\n if (!this.stream) return null;\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: Object(helpers[\"g\" /* convertToUnit */])(100 - this.normalizedBuffer, '%')\n }\n }));\n },\n backgroundStyle: function backgroundStyle() {\n var _ref;\n\n var backgroundOpacity = this.backgroundOpacity == null ? this.backgroundColor ? 1 : 0.3 : parseFloat(this.backgroundOpacity);\n return _ref = {\n opacity: backgroundOpacity\n }, Object(defineProperty[\"a\" /* default */])(_ref, this.isReversed ? 'right' : 'left', Object(helpers[\"g\" /* convertToUnit */])(this.normalizedValue, '%')), Object(defineProperty[\"a\" /* default */])(_ref, \"width\", Object(helpers[\"g\" /* convertToUnit */])(this.normalizedBuffer - this.normalizedValue, '%')), _ref;\n },\n classes: function classes() {\n return _objectSpread({\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped\n }, this.themeClasses);\n },\n computedTransition: function computedTransition() {\n return this.indeterminate ? transitions[\"c\" /* VFadeTransition */] : transitions[\"e\" /* VSlideXTransition */];\n },\n isReversed: function isReversed() {\n return this.$vuetify.rtl !== this.reverse;\n },\n normalizedBuffer: function normalizedBuffer() {\n return this.normalize(this.bufferValue);\n },\n normalizedValue: function normalizedValue() {\n return this.normalize(this.internalLazyValue);\n },\n reactive: function reactive() {\n return Boolean(this.$listeners.change);\n },\n styles: function styles() {\n var styles = {};\n\n if (!this.active) {\n styles.height = 0;\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = Object(helpers[\"g\" /* convertToUnit */])(this.normalizedBuffer, '%');\n }\n\n return styles;\n }\n },\n methods: {\n genContent: function genContent() {\n var slot = Object(helpers[\"s\" /* getSlot */])(this, 'default', {\n value: this.internalLazyValue\n });\n if (!slot) return null;\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content'\n }, slot);\n },\n genListeners: function genListeners() {\n var listeners = this.$listeners;\n\n if (this.reactive) {\n listeners.click = this.onClick;\n }\n\n return listeners;\n },\n genProgressBar: function genProgressBar(name) {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: Object(defineProperty[\"a\" /* default */])({}, name, true)\n }));\n },\n onClick: function onClick(e) {\n if (!this.reactive) return;\n\n var _this$$el$getBounding = this.$el.getBoundingClientRect(),\n width = _this$$el$getBounding.width;\n\n this.internalValue = e.offsetX / width * 100;\n },\n normalize: function normalize(value) {\n if (value < 0) return 0;\n if (value > 100) return 100;\n return parseFloat(value);\n }\n },\n render: function render(h) {\n var data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue\n },\n class: this.classes,\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? Object(helpers[\"g\" /* convertToUnit */])(this.height) : 0,\n top: this.top ? 0 : undefined\n },\n on: this.genListeners()\n };\n return h('div', data, [this.__cachedStream, this.__cachedBackground, this.__cachedBuffer, this.__cachedBar, this.genContent()]);\n }\n}));\n// CONCATENATED MODULE: ./node_modules/vuetify/lib/components/VProgressLinear/index.js\n\n\n/* harmony default export */ var components_VProgressLinear = (VProgressLinear_VProgressLinear);\n// CONCATENATED MODULE: ./node_modules/vuetify/lib/mixins/loadable/index.js\n\n\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n\n/* @vue/component */\n\n/* harmony default export */ var loadable = __webpack_exports__[\"a\"] = (vue_runtime_esm[\"a\" /* default */].extend().extend({\n name: 'loadable',\n props: {\n loading: {\n type: [Boolean, String],\n default: false\n },\n loaderHeight: {\n type: [Number, String],\n default: 2\n }\n },\n methods: {\n genProgress: function genProgress() {\n if (this.loading === false) return null;\n return this.$slots.progress || this.$createElement(components_VProgressLinear, {\n props: {\n absolute: true,\n color: this.loading === true || this.loading === '' ? this.color || 'primary' : this.loading,\n height: this.loaderHeight,\n indeterminate: true\n }\n });\n }\n }\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvVlByb2dyZXNzTGluZWFyL1ZQcm9ncmVzc0xpbmVhci50cz8yOTNjIiwid2VicGFjazovLy8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9WUHJvZ3Jlc3NMaW5lYXIvaW5kZXgudHM/NWQ3ZCIsIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL21peGlucy9sb2FkYWJsZS9pbmRleC50cz8xMmQ5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQUVBOztDQU1BOztBQUNBO0FBQ0E7QUFDQTtDQUdBOztBQUNBO0FBQ0E7QUFNQSxJQUFNLFVBQVUsR0FBRyxpQ0FBTSwrQkFFdkIsdUNBQW1CLENBQUMsNkJBRkcsUUFFSCxDQUFELENBRkksZ0NBQXpCLDRCQUF5QixDQUF6QjtBQU9BOztBQUNlLDhFQUFVLENBQVYsT0FBa0I7QUFDL0IsTUFBSSxFQUQyQjtBQUcvQixPQUFLLEVBQUU7QUFDTCxVQUFNLEVBQUU7QUFDTixVQUFJLEVBREU7QUFFTixhQUFPLEVBQUU7QUFGSCxLQURIO0FBS0wsbUJBQWUsRUFBRTtBQUNmLFVBQUksRUFEVztBQUVmLGFBQU8sRUFBRTtBQUZNLEtBTFo7QUFTTCxxQkFBaUIsRUFBRTtBQUNqQixVQUFJLEVBQUUsU0FEVyxNQUNYLENBRFc7QUFFakIsYUFBTyxFQUFFO0FBRlEsS0FUZDtBQWFMLGVBQVcsRUFBRTtBQUNYLFVBQUksRUFBRSxTQURLLE1BQ0wsQ0FESztBQUVYLGFBQU8sRUFBRTtBQUZFLEtBYlI7QUFpQkwsU0FBSyxFQUFFO0FBQ0wsVUFBSSxFQURDO0FBRUwsYUFBTyxFQUFFO0FBRkosS0FqQkY7QUFxQkwsVUFBTSxFQUFFO0FBQ04sVUFBSSxFQUFFLFNBREEsTUFDQSxDQURBO0FBRU4sYUFBTyxFQUFFO0FBRkgsS0FyQkg7QUF5QkwsaUJBQWEs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SyxFQUFFO0FBQ0wsa0JBQVEsRUFESDtBQUVMLGVBQUssRUFBRyx5QkFBeUIsaUJBQTFCLEVBQUMsR0FDSCxjQURFLFNBQUMsR0FFSixLQUpDO0FBS0wsZ0JBQU0sRUFBRSxLQUxIO0FBTUwsdUJBQWEsRUFBRTtBQU5WO0FBRDJELE9BQXJDLENBQS9CO0FBVUQ7QUFkTTtBQWRtQyxDQUEvQixDQUFmIiwiZmlsZSI6IjE1Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnLi9WUHJvZ3Jlc3NMaW5lYXIuc2FzcydcblxuLy8gQ29tcG9uZW50c1xuaW1wb3J0IHtcbiAgVkZhZGVUcmFuc2l0aW9uLFxuICBWU2xpZGVYVHJhbnNpdGlvbixcbn0gZnJvbSAnLi4vdHJhbnNpdGlvbnMnXG5cbi8vIE1peGluc1xuaW1wb3J0IENvbG9yYWJsZSBmcm9tICcuLi8uLi9taXhpbnMvY29sb3JhYmxlJ1xuaW1wb3J0IHsgZmFjdG9yeSBhcyBQb3NpdGlvbmFibGVGYWN0b3J5IH0gZnJvbSAnLi4vLi4vbWl4aW5zL3Bvc2l0aW9uYWJsZSdcbmltcG9ydCBQcm94eWFibGUgZnJvbSAnLi4vLi4vbWl4aW5zL3Byb3h5YWJsZSdcbmltcG9ydCBUaGVtZWFibGUgZnJvbSAnLi4vLi4vbWl4aW5zL3RoZW1lYWJsZSdcblxuLy8gVXRpbGl0aWVzXG5pbXBvcnQgeyBjb252ZXJ0VG9Vbml0LCBnZXRTbG90IH0gZnJvbSAnLi4vLi4vdXRpbC9oZWxwZXJzJ1xuaW1wb3J0IG1peGlucyBmcm9tICcuLi8uLi91dGlsL21peGlucydcblxuLy8gVHlwZXNcbmltcG9ydCB7IEZ1bmN0aW9uYWxDb21wb25lbnRPcHRpb25zIH0gZnJvbSAndnVlL3R5cGVzJ1xuaW1wb3J0IHsgVk5vZGUgfSBmcm9tICd2dWUnXG5cbmNvbnN0IGJhc2VNaXhpbnMgPSBtaXhpbnMoXG4gIENvbG9yYWJsZSxcbiAgUG9zaXRpb25hYmxlRmFjdG9yeShbJ2Fic29sdXRlJywgJ2ZpeGVkJywgJ3RvcCcsICdib3R0b20nXSksXG4gIFByb3h5YWJsZSxcbiAgVGhlbWVhYmxlXG4pXG5cbi8qIEB2dWUvY29tcG9uZW50ICovXG5leHBvcnQgZGVmYXVsdCBiYXNlTWl4aW5zLmV4dGVuZCh7XG4gIG5hbWU6ICd2LXByb2dyZXNzLWxpbmVhcicsXG5cbiAgcHJvcHM6IHtcbiAgICBhY3RpdmU6IHtcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICBkZWZhdWx0OiB0cnVlLFxuICAgIH0sXG4gICAgYmFja2dyb3VuZENvbG9yOiB7XG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICBkZWZhdWx0OiBudWxsLFxuICAgIH0sXG4gICAgYmFja2dyb3VuZE9wYWNpdHk6IHtcbiAgICAgIHR5cGU6IFtOdW1iZXIsIFN0cmluZ10sXG4gICAgICBkZWZhdWx0OiBudWxsLFxuICAgIH0sXG4gICAgYnVmZmVyVmFsdWU6IHtcbiAgICAgIHR5cGU6IFtOdW1iZXIsIFN0cmluZ10sXG4gICAgICBkZWZhdWx0OiAxMDAsXG4gICAgfSxcbiAgICBjb2xvcjoge1xuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgZGVmYXVsdDogJ3ByaW1hcnknLFxuICAgIH0sXG4gICAgaGVpZ2h0OiB7XG4gICAgICB0eXBlOiBbTnVtYmVyLCBTdHJpbmddLFxuICAgICAgZGVmYXVsdDogNCxcbiAgICB9LFxuICAgIGluZGV0ZXJtaW5hdGU6IEJvb2xlYW4sXG4gICAgcXVlcnk6IEJvb2xlYW4sXG4gICAgcmV2ZXJzZTogQm9vbGVhbixcbiAgICByb3VuZGVkOiBCb29sZWFuLFxuICAgIHN0cmVhbTogQm9vbGVhbixcbiAgICBzdHJpcGVkOiBCb29sZWFuLFxuICAgIHZhbHVlOiB7XG4gICAgICB0eXBlOiBbTnVtYmVyLCBTdHJpbmddLFxuICAgICAgZGVmYXVsdDogMCxcbiAgICB9LFxuICB9LFxuXG4gIGRhdGEgKCkge1xuICAgIHJldHVybiB7XG4gICAgICBpbnRlcm5hbExhenlWYWx1ZTogdGhpcy52YWx1ZSB8fCAwLFxuICAgIH1cbiAgfSxcblxuICBjb21wdXRlZDoge1xuICAgIF9fY2FjaGVkQmFja2dyb3VuZCAoKTogVk5vZGUge1xuICAgICAgcmV0dXJuIHRoaXMuJGNyZWF0ZUVsZW1lbnQoJ2RpdicsIHRoaXMuc2V0QmFja2dyb3VuZENvbG9yKHRoaXMuYmFja2dyb3VuZENvbG9yIHx8IHRoaXMuY29sb3IsIHtcbiAgICAgICAgc3RhdGljQ2xhc3M6ICd2LXByb2dyZXNzLWxpbmVhcl9fYmFja2dyb3VuZCcsXG4gICAgICAgIHN0eWxlOiB0aGlzLmJhY2tncm91bmRTdHlsZSxcbiAgICAgIH0pKVxuICAgIH0sXG4gICAgX19jYWNoZWRCYXIgKCk6IFZOb2RlIHtcbiAgICAgIHJldHVybiB0aGlzLiRjcmVhdGVFbGVtZW50KHRoaXMuY29tcHV0ZWRUcmFuc2l0aW9uLCBbdGhpcy5fX2NhY2hlZEJhclR5cGVdKVxuICAgIH0sXG4gICAgX19jYWNoZWRCYXJUeXBlICgpOiBWTm9kZSB7XG4gICAgICByZXR1cm4gdGhpcy5pbmRldGVybWluYXRlID8gdGhpcy5fX2NhY2hlZEluZGV0ZXJtaW5hdGUgOiB0aGlzLl9fY2FjaGVkRGV0ZXJtaW5hdGVcbiAgICB9LFxuICAgIF9fY2FjaGVkQnVmZmVyICgpOiBWTm9kZSB7XG4gICAgICByZXR1cm4gdGhpcy4kY3JlYXRlRWxlbWVudCgnZGl2Jywge1xuICAgICAgICBzdGF0aWNDbGFzczogJ3YtcHJvZ3Jlc3MtbGluZWFyX19idWZmZXInLFxuICAgICAgICBzdHlsZTogdGhpcy5zdHlsZXMsXG4gICAgICB9KVxuICAgIH0sXG4gICAgX19jYWNoZWREZXRlcm1pbmF0ZSAoKTogVk5vZGUge1xuICAgICAgcmV0dXJuIHRoaXMuJGNyZWF0ZUVsZW1lbnQoJ2RpdicsIHRoaXMuc2V0QmFja2dyb3VuZENvbG9yKHRoaXMuY29sb3IsIHtcbiAgICAgICAgc3RhdGljQ2xhc3M6IGB2LXByb2dyZXNzLWxpbmVhcl9fZGV0ZXJtaW5hdGVgLFxuICAgICAgICBzdHlsZToge1xuICAgICAgICAgIHdpZHRoOiBjb252ZXJ0VG9Vbml0KHRoaXMubm9ybWFsaXplZFZhbHVlLCAnJScpLFxuICAgICAgICB9LFxuICAgICAgfSkpXG4gICAgfSxcbiAgICBfX2NhY2hlZEluZGV0ZXJtaW5hdGUgKCk6IFZOb2RlIHtcbiAgICAgIHJldHVybiB0aGlzLiRjcmVhdGVFbGVtZW50KCdkaXYnLCB7XG4gICAgICAgIHN0YXRpY0NsYXNzOiAndi1wcm9ncmVzcy1saW5lYXJfX2luZGV0ZXJtaW5hdGUnLFxuICAgICAgICBjbGFzczoge1xuICAgICAgICAgICd2LXByb2dyZXNzLWxpbmVhcl9faW5kZXRlcm1pbmF0ZS0tYWN0aXZlJzogdGhpcy5hY3RpdmUsXG4gICAgICAgIH0sXG4gICAgICB9LCBbXG4gICAgICAgIHRoaXMuZ2VuUHJvZ3Jlc3NCYXIoJ2xvbmcnKSxcbiAgICAgICAgdGhpcy5nZW5Qcm9ncmVzc0Jhcignc2hvcnQnKSxcbiAgICAgIF0pXG4gICAgfSxcbiAgICBfX2NhY2hlZFN0cmVhbSAoKTogVk5vZGUgfCBudWxsIHtcbiAgICAgIGlmICghdGhpcy5zdHJlYW0pIHJldHVybiBudWxsXG5cbiAgICAgIHJldHVybiB0aGlzLiRjcmVhdGVFbGVtZW50KCdkaXYnLCB0aGlzLnNldFRleHRDb2xvcih0aGlzLmNvbG9yLCB7XG4gICAgICAgIHN0YXRpY0NsYXNzOiAndi1wcm9ncmVzcy1saW5lYXJfX3N0cmVhbScsXG4gICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgd2lkdGg6IGNvbnZlcnRUb1VuaXQoMTAwIC0gdGhpcy5ub3JtYWxpemVkQnVmZmVyLCAnJScpLFxuICAgICAgICB9LFxuICAgICAgfSkpXG4gICAgfSxcbiAgICBiYWNrZ3JvdW5kU3R5bGUgKCk6IG9iamVjdCB7XG4gICAgICBjb25zdCBiYWNrZ3JvdW5kT3BhY2l0eSA9IHRoaXMuYmFja2dyb3VuZE9wYWNpdHkgPT0gbnVsbFxuICAgICAgICA/ICh0aGlzLmJhY2tncm91bmRDb2xvciA/IDEgOiAwLjMpXG4gICAgICAgIDogcGFyc2VGbG9hdCh0aGlzLmJhY2tncm91bmRPcGFjaXR5KVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBvcGFjaXR5OiBiYWNrZ3JvdW5kT3BhY2l0eSxcbiAgICAgICAgW3RoaXMuaXNSZXZlcnNlZCA/ICdyaWdodCcgOiAnbGVmdCddOiBjb252ZXJ0VG9Vbml0KHRoaXMubm9ybWFsaXplZFZhbHVlLCAnJScpLFxuICAgICAgICB3aWR0aDogY29udmVydFRvVW5pdCh0aGlzLm5vcm1hbGl6ZWRCdWZmZXIgLSB0aGlzLm5vcm1hbGl6ZWRWYWx1ZSwgJyUnKSxcbiAgICAgIH1cbiAgICB9LFxuICAgIGNsYXNzZXMgKCk6IG9iamVjdCB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAndi1wcm9ncmVzcy1saW5lYXItLWFic29sdXRlJzogdGhpcy5hYnNvbHV0ZSxcbiAgICAgICAgJ3YtcHJvZ3Jlc3MtbGluZWFyLS1maXhlZCc6IHRoaXMuZml4ZWQsXG4gICAgICAgICd2LXByb2dyZXNzLWxpbmVhci0tcXVlcnknOiB0aGlzLnF1ZXJ5LFxuICAgICAgICAndi1wcm9ncmVzcy1saW5lYXItLXJlYWN0aXZlJzogdGhpcy5yZWFjdGl2ZSxcbiAgICAgICAgJ3YtcHJvZ3Jlc3MtbGluZWFyLS1yZXZlcnNlJzogdGhpcy5pc1JldmVyc2VkLFxuICAgICAgICAndi1wcm9ncmVzcy1saW5lYXItLXJvdW5kZWQnOiB0aGlzLnJvdW5kZWQsXG4gICAgICAgICd2LXByb2dyZXNzLWxpbmVhci0tc3RyaXBlZCc6IHRoaXMuc3RyaXBlZCxcbiAgICAgICAgLi4udGhpcy50aGVtZUNsYXNzZXMsXG4gICAgICB9XG4gICAgfSxcbiAgICBjb21wdXRlZFRyYW5zaXRpb24gKCk6IEZ1bmN0aW9uYWxDb21wb25lbnRPcHRpb25zIHtcbiAgICAgIHJldHVybiB0aGlzLmluZGV0ZXJtaW5hdGUgPyBWRmFkZVRyYW5zaXRpb24gOiBWU2xpZGVYVHJhbnNpdGlvblxuICAgIH0sXG4gICAgaXNSZXZlcnNlZCAoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy4kdnVldGlmeS5ydGwgIT09IHRoaXMucmV2ZXJzZVxuICAgIH0sXG4gICAgbm9ybWFsaXplZEJ1ZmZlciAoKTogbnVtYmVyIHtcbiAgICAgIHJldHVybiB0aGlzLm5vcm1hbGl6ZSh0aGlzLmJ1ZmZlclZhbHVlKVxuICAgIH0sXG4gICAgbm9ybWFsaXplZFZhbHVlICgpOiBudW1iZXIge1xuICAgICAgcmV0dXJuIHRoaXMubm9ybWFsaXplKHRoaXMuaW50ZXJuYWxMYXp5VmFsdWUpXG4gICAgfSxcbiAgICByZWFjdGl2ZSAoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gQm9vbGVhbih0aGlzLiRsaXN0ZW5lcnMuY2hhbmdlKVxuICAgIH0sXG4gICAgc3R5bGVzICgpOiBvYmplY3Qge1xuICAgICAgY29uc3Qgc3R5bGVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge31cblxuICAgICAgaWYgKCF0aGlzLmFjdGl2ZSkge1xuICAgICAgICBzdHlsZXMuaGVpZ2h0ID0gMFxuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMuaW5kZXRlcm1pbmF0ZSAmJiBwYXJzZUZsb2F0KHRoaXMubm9ybWFsaXplZEJ1ZmZlcikgIT09IDEwMCkge1xuICAgICAgICBzdHlsZXMud2lkdGggPSBjb252ZXJ0VG9Vbml0KHRoaXMubm9ybWFsaXplZEJ1ZmZlciwgJyUnKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gc3R5bGVzXG4gICAgfSxcbiAgfSxcblxuICBtZXRob2RzOiB7XG4gICAgZ2VuQ29udGVudCAoKSB7XG4gICAgICBjb25zdCBzbG90ID0gZ2V0U2xvdCh0aGlzLCAnZGVmYXVsdCcsIHsgdmFsdWU6IHRoaXMuaW50ZXJuYWxMYXp5VmFsdWUgfSlcblxuICAgICAgaWYgKCFzbG90KSByZXR1cm4gbnVsbFxuXG4gICAgICByZXR1cm4gdGhpcy4kY3JlYXRlRWxlbWVudCgnZGl2Jywge1xuICAgICAgICBzdGF0aWNDbGFzczogJ3YtcHJvZ3Jlc3MtbGluZWFyX19jb250ZW50JyxcbiAgICAgIH0sIHNsb3QpXG4gICAgfSxcbiAgICBnZW5MaXN0ZW5lcnMgKCkge1xuICAgICAgY29uc3QgbGlzdGVuZXJzID0gdGhpcy4kbGlzdGVuZXJzXG5cbiAgICAgIGlmICh0aGlzLnJlYWN0aXZlKSB7XG4gICAgICAgIGxpc3RlbmVycy5jbGljayA9IHRoaXMub25DbGlja1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbGlzdGVuZXJzXG4gICAgfSxcbiAgICBnZW5Qcm9ncmVzc0JhciAobmFtZTogJ2xvbmcnIHwgJ3Nob3J0Jykge1xuICAgICAgcmV0dXJuIHRoaXMuJGNyZWF0ZUVsZW1lbnQoJ2RpdicsIHRoaXMuc2V0QmFja2dyb3VuZENvbG9yKHRoaXMuY29sb3IsIHtcbiAgICAgICAgc3RhdGljQ2xhc3M6ICd2LXByb2dyZXNzLWxpbmVhcl9faW5kZXRlcm1pbmF0ZScsXG4gICAgICAgIGNsYXNzOiB7XG4gICAgICAgICAgW25hbWVdOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgfSkpXG4gICAgfSxcbiAgICBvbkNsaWNrIChlOiBNb3VzZUV2ZW50KSB7XG4gICAgICBpZiAoIXRoaXMucmVhY3RpdmUpIHJldHVyblxuXG4gICAgICBjb25zdCB7IHdpZHRoIH0gPSB0aGlzLiRlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuXG4gICAgICB0aGlzLmludGVybmFsVmFsdWUgPSBlLm9mZnNldFggLyB3aWR0aCAqIDEwMFxuICAgIH0sXG4gICAgbm9ybWFsaXplICh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgICBpZiAodmFsdWUgPCAwKSByZXR1cm4gMFxuICAgICAgaWYgKHZhbHVlID4gMTAwKSByZXR1cm4gMTAwXG4gICAgICByZXR1cm4gcGFyc2VGbG9hdCh2YWx1ZSlcbiAgICB9LFxuICB9LFxuXG4gIHJlbmRlciAoaCk6IFZOb2RlIHtcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgc3RhdGljQ2xhc3M6ICd2LXByb2dyZXNzLWxpbmVhcicsXG4gICAgICBhdHRyczoge1xuICAgICAgICByb2xlOiAncHJvZ3Jlc3NiYXInLFxuICAgICAgICAnYXJpYS12YWx1ZW1pbic6IDAsXG4gICAgICAgICdhcmlhLXZhbHVlbWF4JzogdGhpcy5ub3JtYWxpemVkQnVmZmVyLFxuICAgICAgICAnYXJpYS12YWx1ZW5vdyc6IHRoaXMuaW5kZXRlcm1pbmF0ZSA/IHVuZGVmaW5lZCA6IHRoaXMubm9ybWFsaXplZFZhbHVlLFxuICAgICAgfSxcbiAgICAgIGNsYXNzOiB0aGlzLmNsYXNzZXMsXG4gICAgICBzdHlsZToge1xuICAgICAgICBib3R0b206IHRoaXMuYm90dG9tID8gMCA6IHVuZGVmaW5lZCxcbiAgICAgICAgaGVpZ2h0OiB0aGlzLmFjdGl2ZSA/IGNvbnZlcnRUb1VuaXQodGhpcy5oZWlnaHQpIDogMCxcbiAgICAgICAgdG9wOiB0aGlzLnRvcCA/IDAgOiB1bmRlZmluZWQsXG4gICAgICB9LFxuICAgICAgb246IHRoaXMuZ2VuTGlzdGVuZXJzKCksXG4gICAgfVxuXG4gICAgcmV0dXJuIGgoJ2RpdicsIGRhdGEsIFtcbiAgICAgIHRoaXMuX19jYWNoZWRTdHJlYW0sXG4gICAgICB0aGlzLl9fY2FjaGVkQmFja2dyb3VuZCxcbiAgICAgIHRoaXMuX19jYWNoZWRCdWZmZXIsXG4gICAgICB0aGlzLl9fY2FjaGVkQmFyLFxuICAgICAgdGhpcy5nZW5Db250ZW50KCksXG4gICAgXSlcbiAgfSxcbn0pXG4iLCJpbXBvcnQgVlByb2dyZXNzTGluZWFyIGZyb20gJy4vVlByb2dyZXNzTGluZWFyJ1xuXG5leHBvcnQgeyBWUHJvZ3Jlc3NMaW5lYXIgfVxuZXhwb3J0IGRlZmF1bHQgVlByb2dyZXNzTGluZWFyXG4iLCJpbXBvcnQgVnVlLCB7IFZOb2RlIH0gZnJvbSAndnVlJ1xuaW1wb3J0IFZQcm9ncmVzc0xpbmVhciBmcm9tICcuLi8uLi9jb21wb25lbnRzL1ZQcm9ncmVzc0xpbmVhcidcblxuaW50ZXJmYWNlIGNvbG9yYWJsZSBleHRlbmRzIFZ1ZSB7XG4gIGNvbG9yPzogc3RyaW5nXG59XG5cbi8qKlxuICogTG9hZGFibGVcbiAqXG4gKiBAbWl4aW5cbiAqXG4gKiBVc2VkIHRvIGFkZCBsaW5lYXIgcHJvZ3Jlc3MgYmFyIHRvIGNvbXBvbmVudHNcbiAqIENhbiB1c2UgYSBkZWZhdWx0IGJhciB3aXRoIGEgc3BlY2lmaWMgY29sb3JcbiAqIG9yIGRlc2lnbmF0ZSBhIGN1c3RvbSBwcm9ncmVzcyBsaW5lYXIgYmFyXG4gKi9cbi8qIEB2dWUvY29tcG9uZW50ICovXG5leHBvcnQgZGVmYXVsdCBWdWUuZXh0ZW5kPGNvbG9yYWJsZT4oKS5leHRlbmQoe1xuICBuYW1lOiAnbG9hZGFibGUnLFxuXG4gIHByb3BzOiB7XG4gICAgbG9hZGluZzoge1xuICAgICAgdHlwZTogW0Jvb2xlYW4sIFN0cmluZ10sXG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICB9LFxuICAgIGxvYWRlckhlaWdodDoge1xuICAgICAgdHlwZTogW051bWJlciwgU3RyaW5nXSxcbiAgICAgIGRlZmF1bHQ6IDIsXG4gICAgfSxcbiAgfSxcblxuICBtZXRob2RzOiB7XG4gICAgZ2VuUHJvZ3Jlc3MgKCk6IFZOb2RlIHwgVk5vZGVbXSB8IG51bGwge1xuICAgICAgaWYgKHRoaXMubG9hZGluZyA9PT0gZmFsc2UpIHJldHVybiBudWxsXG5cbiAgICAgIHJldHVybiB0aGlzLiRzbG90cy5wcm9ncmVzcyB8fCB0aGlzLiRjcmVhdGVFbGVtZW50KFZQcm9ncmVzc0xpbmVhciwge1xuICAgICAgICBwcm9wczoge1xuICAgICAgICAgIGFic29sdXRlOiB0cnVlLFxuICAgICAgICAgIGNvbG9yOiAodGhpcy5sb2FkaW5nID09PSB0cnVlIHx8IHRoaXMubG9hZGluZyA9PT0gJycpXG4gICAgICAgICAgICA/ICh0aGlzLmNvbG9yIHx8ICdwcmltYXJ5JylcbiAgICAgICAgICAgIDogdGhpcy5sb2FkaW5nLFxuICAgICAgICAgIGhlaWdodDogdGhpcy5sb2FkZXJIZWlnaHQsXG4gICAgICAgICAgaW5kZXRlcm1pbmF0ZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgfSxcbiAgfSxcbn0pXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///152\n")},,,,,,,,,,,,,,,,,,,function(module,exports,__webpack_require__){eval(";(function (root, factory) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(15));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-1 hash algorithm.\n\t */\n\t var SHA1 = C_algo.SHA1 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476,\n\t 0xc3d2e1f0\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\n\t // Computation\n\t for (var i = 0; i < 80; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n\t W[i] = (n << 1) | (n >>> 31);\n\t }\n\n\t var t = ((a << 5) | (a >>> 27)) + e + W[i];\n\t if (i < 20) {\n\t t += ((b & c) | (~b & d)) + 0x5a827999;\n\t } else if (i < 40) {\n\t t += (b ^ c ^ d) + 0x6ed9eba1;\n\t } else if (i < 60) {\n\t t += ((b & c) | (b & d) | (c & d)) - 0x70e44324;\n\t } else /* if (i < 80) */ {\n\t t += (b ^ c ^ d) - 0x359d3e2a;\n\t }\n\n\t e = d;\n\t d = c;\n\t c = (b << 30) | (b >>> 2);\n\t b = a;\n\t a = t;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA1('message');\n\t * var hash = CryptoJS.SHA1(wordArray);\n\t */\n\t C.SHA1 = Hasher._createHelper(SHA1);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA1(message, key);\n\t */\n\t C.HmacSHA1 = Hasher._createHmacHelper(SHA1);\n\t}());\n\n\n\treturn CryptoJS.SHA1;\n\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY3J5cHRvLWpzL3NoYTEuanM/ZGYyZiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxDQUFDO0FBQ0QsS0FBSyxJQUEyQjtBQUNoQztBQUNBLHFDQUFxQyxtQkFBTyxDQUFDLEVBQVE7QUFDckQ7QUFDQSxNQUFNLEVBT0o7QUFDRixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVOztBQUVWO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSw0QkFBNEIsUUFBUTtBQUNwQztBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07O0FBRU47QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGlCQUFpQjtBQUNqQztBQUNBLGlCQUFpQixVQUFVO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsaUJBQWlCO0FBQ2pDLGdCQUFnQixpQkFBaUI7QUFDakM7QUFDQSxpQkFBaUIsVUFBVTtBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7O0FBR0Y7O0FBRUEsQ0FBQyIsImZpbGUiOiIxNzEuanMiLCJzb3VyY2VzQ29udGVudCI6WyI7KGZ1bmN0aW9uIChyb290LCBmYWN0b3J5KSB7XG5cdGlmICh0eXBlb2YgZXhwb3J0cyA9PT0gXCJvYmplY3RcIikge1xuXHRcdC8vIENvbW1vbkpTXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzID0gZmFjdG9yeShyZXF1aXJlKFwiLi9jb3JlXCIpKTtcblx0fVxuXHRlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSBcImZ1bmN0aW9uXCIgJiYgZGVmaW5lLmFtZCkge1xuXHRcdC8vIEFNRFxuXHRcdGRlZmluZShbXCIuL2NvcmVcIl0sIGZhY3RvcnkpO1xuXHR9XG5cdGVsc2Uge1xuXHRcdC8vIEdsb2JhbCAoYnJvd3Nlcilcblx0XHRmYWN0b3J5KHJvb3QuQ3J5cHRvSlMpO1xuXHR9XG59KHRoaXMsIGZ1bmN0aW9uIChDcnlwdG9KUykge1xuXG5cdChmdW5jdGlvbiAoKSB7XG5cdCAgICAvLyBTaG9ydGN1dHNcblx0ICAgIHZhciBDID0gQ3J5cHRvSlM7XG5cdCAgICB2YXIgQ19saWIgPSBDLmxpYjtcblx0ICAgIHZhciBXb3JkQXJyYXkgPSBDX2xpYi5Xb3JkQXJyYXk7XG5cdCAgICB2YXIgSGFzaGVyID0gQ19saWIuSGFzaGVyO1xuXHQgICAgdmFyIENfYWxnbyA9IEMuYWxnbztcblxuXHQgICAgLy8gUmV1c2FibGUgb2JqZWN0XG5cdCAgICB2YXIgVyA9IFtdO1xuXG5cdCAgICAvKipcblx0ICAgICAqIFNIQS0xIGhhc2ggYWxnb3JpdGhtLlxuXHQgICAgICovXG5cdCAgICB2YXIgU0hBMSA9IENfYWxnby5TSEExID0gSGFzaGVyLmV4dGVuZCh7XG5cdCAgICAgICAgX2RvUmVzZXQ6IGZ1bmN0aW9uICgpIHtcblx0ICAgICAgICAgICAgdGhpcy5faGFzaCA9IG5ldyBXb3JkQXJyYXkuaW5pdChbXG5cdCAgICAgICAgICAgICAgICAweDY3NDUyMzAxLCAweGVmY2RhYjg5LFxuXHQgICAgICAgICAgICAgICAgMHg5OGJhZGNmZSwgMHgxMDMyNTQ3Nixcblx0ICAgICAgICAgICAgICAgIDB4YzNkMmUxZjBcblx0ICAgICAgICAgICAgXSk7XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIF9kb1Byb2Nlc3NCbG9jazogZnVuY3Rpb24gKE0sIG9mZnNldCkge1xuXHQgICAgICAgICAgICAvLyBTaG9ydGN1dFxuXHQgICAgICAgICAgICB2YXIgSCA9IHRoaXMuX2hhc2gud29yZHM7XG5cblx0ICAgICAgICAgICAgLy8gV29ya2luZyB2YXJpYWJsZXNcblx0ICAgICAgICAgICAgdmFyIGEgPSBIWzBdO1xuXHQgICAgICAgICAgICB2YXIgYiA9IEhbMV07XG5cdCAgICAgICAgICAgIHZhciBjID0gSFsyXTtcblx0ICAgICAgICAgICAgdmFyIGQgPSBIWzNdO1xuXHQgICAgICAgICAgICB2YXIgZSA9IEhbNF07XG5cblx0ICAgICAgICAgICAgLy8gQ29tcHV0YXRpb25cblx0ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA4MDsgaSsrKSB7XG5cdCAgICAgICAgICAgICAgICBpZiAoaSA8IDE2KSB7XG5cdCAgICAgICAgICAgICAgICAgICAgV1tpXSA9IE1bb2Zmc2V0ICsgaV0gfCAwO1xuXHQgICAgICAgICAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgICAgICAgICAgICB2YXIgbiA9IFdbaSAtIDNdIF4gV1tpIC0gOF0gXiBXW2kgLSAxNF0gXiBXW2kgLSAxNl07XG5cdCAgICAgICAgICAgICAgICAgICAgV1tpXSA9IChuIDw8IDEpIHwgKG4gPj4+IDMxKTtcblx0ICAgICAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICAgICAgdmFyIHQgPSAoKGEgPDwgNSkgfCAoYSA+Pj4gMjcpKSArIGUgKyBXW2ldO1xuXHQgICAgICAgICAgICAgICAgaWYgKGkgPCAyMCkge1xuXHQgICAgICAgICAgICAgICAgICAgIHQgKz0gKChiICYgYykgfCAofmIgJiBkKSkgKyAweDVhODI3OTk5O1xuXHQgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpIDwgNDApIHtcblx0ICAgICAgICAgICAgICAgICAgICB0ICs9IChiIF4gYyBeIGQpICsgMHg2ZWQ5ZWJhMTtcblx0ICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaSA8IDYwKSB7XG5cdCAgICAgICAgICAgICAgICAgICAgdCArPSAoKGIgJiBjKSB8IChiICYgZCkgfCAoYyAmIGQpKSAtIDB4NzBlNDQzMjQ7XG5cdCAgICAgICAgICAgICAgICB9IGVsc2UgLyogaWYgKGkgPCA4MCkgKi8ge1xuXHQgICAgICAgICAgICAgICAgICAgIHQgKz0gKGIgXiBjIF4gZCkgLSAweDM1OWQzZTJhO1xuXHQgICAgICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgICAgICBlID0gZDtcblx0ICAgICAgICAgICAgICAgIGQgPSBjO1xuXHQgICAgICAgICAgICAgICAgYyA9IChiIDw8IDMwKSB8IChiID4+PiAyKTtcblx0ICAgICAgICAgICAgICAgIGIgPSBhO1xuXHQgICAgICAgICAgICAgICAgYSA9IHQ7XG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICAvLyBJbnRlcm1lZGlhdGUgaGFzaCB2YWx1ZVxuXHQgICAgICAgICAgICBIWzBdID0gKEhbMF0gKyBhKSB8IDA7XG5cdCAgICAgICAgICAgIEhbMV0gPSAoSFsxXSArIGIpIHwgMDtcblx0ICAgICAgICAgICAgSFsyXSA9IChIWzJdICsgYykgfCAwO1xuXHQgICAgICAgICAgICBIWzNdID0gKEhbM10gKyBkKSB8IDA7XG5cdCAgICAgICAgICAgIEhbNF0gPSAoSFs0XSArIGUpIHwgMDtcblx0ICAgICAgICB9LFxuXG5cdCAgICAgICAgX2RvRmluYWxpemU6IGZ1bmN0aW9uICgpIHtcblx0ICAgICAgICAgICAgLy8gU2hvcnRjdXRzXG5cdCAgICAgICAgICAgIHZhciBkYXRhID0gdGhpcy5fZGF0YTtcblx0ICAgICAgICAgICAgdmFyIGRhdGFXb3JkcyA9IGRhdGEud29yZHM7XG5cblx0ICAgICAgICAgICAgdmFyIG5CaXRzVG90YWwgPSB0aGlzLl9uRGF0YUJ5dGVzICogODtcblx0ICAgICAgICAgICAgdmFyIG5CaXRzTGVmdCA9IGRhdGEuc2lnQnl0ZXMgKiA4O1xuXG5cdCAgICAgICAgICAgIC8vIEFkZCBwYWRkaW5nXG5cdCAgICAgICAgICAgIGRhdGFXb3Jkc1tuQml0c0xlZnQgPj4+IDVdIHw9IDB4ODAgPDwgKDI0IC0gbkJpdHNMZWZ0ICUgMzIpO1xuXHQgICAgICAgICAgICBkYXRhV29yZHNbKCgobkJpdHNMZWZ0ICsgNjQpID4+PiA5KSA8PCA0KSArIDE0XSA9IE1hdGguZmxvb3IobkJpdHNUb3RhbCAvIDB4MTAwMDAwMDAwKTtcblx0ICAgICAgICAgICAgZGF0YVdvcmRzWygoKG5CaXRzTGVmdCArIDY0KSA+Pj4gOSkgPDwgNCkgKyAxNV0gPSBuQml0c1RvdGFsO1xuXHQgICAgICAgICAgICBkYXRhLnNpZ0J5dGVzID0gZGF0YVdvcmRzLmxlbmd0aCAqIDQ7XG5cblx0ICAgICAgICAgICAgLy8gSGFzaCBmaW5hbCBibG9ja3Ncblx0ICAgICAgICAgICAgdGhpcy5fcHJvY2VzcygpO1xuXG5cdCAgICAgICAgICAgIC8vIFJldHVybiBmaW5hbCBjb21wdXRlZCBoYXNoXG5cdCAgICAgICAgICAgIHJldHVybiB0aGlzLl9oYXNoO1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICBjbG9uZTogZnVuY3Rpb24gKCkge1xuXHQgICAgICAgICAgICB2YXIgY2xvbmUgPSBIYXNoZXIuY2xvbmUuY2FsbCh0aGlzKTtcblx0ICAgICAgICAgICAgY2xvbmUuX2hhc2ggPSB0aGlzLl9oYXNoLmNsb25lKCk7XG5cblx0ICAgICAgICAgICAgcmV0dXJuIGNsb25lO1xuXHQgICAgICAgIH1cblx0ICAgIH0pO1xuXG5cdCAgICAvKipcblx0ICAgICAqIFNob3J0Y3V0IGZ1bmN0aW9uIHRvIHRoZSBoYXNoZXIncyBvYmplY3QgaW50ZXJmYWNlLlxuXHQgICAgICpcblx0ICAgICAqIEBwYXJhbSB7V29yZEFycmF5fHN0cmluZ30gbWVzc2FnZSBUaGUgbWVzc2FnZSB0byBoYXNoLlxuXHQgICAgICpcblx0ICAgICAqIEByZXR1cm4ge1dvcmRBcnJheX0gVGhlIGhhc2guXG5cdCAgICAgKlxuXHQgICAgICogQHN0YXRpY1xuXHQgICAgICpcblx0ICAgICAqIEBleGFtcGxlXG5cdCAgICAgKlxuXHQgICAgICogICAgIHZhciBoYXNoID0gQ3J5cHRvSlMuU0hBMSgnbWVzc2FnZScpO1xuXHQgICAgICogICAgIHZhciBoYXNoID0gQ3J5cHRvSlMuU0hBMSh3b3JkQXJyYXkpO1xuXHQgICAgICovXG5cdCAgICBDLlNIQTEgPSBIYXNoZXIuX2NyZWF0ZUhlbHBlcihTSEExKTtcblxuXHQgICAgLyoqXG5cdCAgICAgKiBTaG9ydGN1dCBmdW5jdGlvbiB0byB0aGUgSE1BQydzIG9iamVjdCBpbnRlcmZhY2UuXG5cdCAgICAgKlxuXHQgICAgICogQHBhcmFtIHtXb3JkQXJyYXl8c3RyaW5nfSBtZXNzYWdlIFRoZSBtZXNzYWdlIHRvIGhhc2guXG5cdCAgICAgKiBAcGFyYW0ge1dvcmRBcnJheXxzdHJpbmd9IGtleSBUaGUgc2VjcmV0IGtleS5cblx0ICAgICAqXG5cdCAgICAgKiBAcmV0dXJuIHtXb3JkQXJyYXl9IFRoZSBITUFDLlxuXHQgICAgICpcblx0ICAgICAqIEBzdGF0aWNcblx0ICAgICAqXG5cdCAgICAgKiBAZXhhbXBsZVxuXHQgICAgICpcblx0ICAgICAqICAgICB2YXIgaG1hYyA9IENyeXB0b0pTLkhtYWNTSEExKG1lc3NhZ2UsIGtleSk7XG5cdCAgICAgKi9cblx0ICAgIEMuSG1hY1NIQTEgPSBIYXNoZXIuX2NyZWF0ZUhtYWNIZWxwZXIoU0hBMSk7XG5cdH0oKSk7XG5cblxuXHRyZXR1cm4gQ3J5cHRvSlMuU0hBMTtcblxufSkpOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///171\n")},function(module,exports,__webpack_require__){eval(";(function (root, factory) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(15));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var C_algo = C.algo;\n\n\t /**\n\t * HMAC algorithm.\n\t */\n\t var HMAC = C_algo.HMAC = Base.extend({\n\t /**\n\t * Initializes a newly created HMAC.\n\t *\n\t * @param {Hasher} hasher The hash algorithm to use.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @example\n\t *\n\t * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\n\t */\n\t init: function (hasher, key) {\n\t // Init hasher\n\t hasher = this._hasher = new hasher.init();\n\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof key == 'string') {\n\t key = Utf8.parse(key);\n\t }\n\n\t // Shortcuts\n\t var hasherBlockSize = hasher.blockSize;\n\t var hasherBlockSizeBytes = hasherBlockSize * 4;\n\n\t // Allow arbitrary length keys\n\t if (key.sigBytes > hasherBlockSizeBytes) {\n\t key = hasher.finalize(key);\n\t }\n\n\t // Clamp excess bits\n\t key.clamp();\n\n\t // Clone key for inner and outer pads\n\t var oKey = this._oKey = key.clone();\n\t var iKey = this._iKey = key.clone();\n\n\t // Shortcuts\n\t var oKeyWords = oKey.words;\n\t var iKeyWords = iKey.words;\n\n\t // XOR keys with pad constants\n\t for (var i = 0; i < hasherBlockSize; i++) {\n\t oKeyWords[i] ^= 0x5c5c5c5c;\n\t iKeyWords[i] ^= 0x36363636;\n\t }\n\t oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this HMAC to its initial state.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.reset();\n\t */\n\t reset: function () {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Reset\n\t hasher.reset();\n\t hasher.update(this._iKey);\n\t },\n\n\t /**\n\t * Updates this HMAC with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {HMAC} This HMAC instance.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.update('message');\n\t * hmacHasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t this._hasher.update(messageUpdate);\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the HMAC computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @example\n\t *\n\t * var hmac = hmacHasher.finalize();\n\t * var hmac = hmacHasher.finalize('message');\n\t * var hmac = hmacHasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Compute HMAC\n\t var innerHash = hasher.finalize(messageUpdate);\n\t hasher.reset();\n\t var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));\n\n\t return hmac;\n\t }\n\t });\n\t}());\n\n\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY3J5cHRvLWpzL2htYWMuanM/NTk4MCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxDQUFDO0FBQ0QsS0FBSyxJQUEyQjtBQUNoQztBQUNBLHFDQUFxQyxtQkFBTyxDQUFDLEVBQVE7QUFDckQ7QUFDQSxNQUFNLEVBT0o7QUFDRixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsT0FBTztBQUMzQixvQkFBb0IsaUJBQWlCO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDRCQUE0QixxQkFBcUI7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFVBQVU7O0FBRVY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsaUJBQWlCO0FBQ3JDO0FBQ0EscUJBQXFCLEtBQUs7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixpQkFBaUI7QUFDckM7QUFDQSxxQkFBcUIsVUFBVTtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOLEVBQUU7OztBQUdGLENBQUMiLCJmaWxlIjoiMTcyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiOyhmdW5jdGlvbiAocm9vdCwgZmFjdG9yeSkge1xuXHRpZiAodHlwZW9mIGV4cG9ydHMgPT09IFwib2JqZWN0XCIpIHtcblx0XHQvLyBDb21tb25KU1xuXHRcdG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cyA9IGZhY3RvcnkocmVxdWlyZShcIi4vY29yZVwiKSk7XG5cdH1cblx0ZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PT0gXCJmdW5jdGlvblwiICYmIGRlZmluZS5hbWQpIHtcblx0XHQvLyBBTURcblx0XHRkZWZpbmUoW1wiLi9jb3JlXCJdLCBmYWN0b3J5KTtcblx0fVxuXHRlbHNlIHtcblx0XHQvLyBHbG9iYWwgKGJyb3dzZXIpXG5cdFx0ZmFjdG9yeShyb290LkNyeXB0b0pTKTtcblx0fVxufSh0aGlzLCBmdW5jdGlvbiAoQ3J5cHRvSlMpIHtcblxuXHQoZnVuY3Rpb24gKCkge1xuXHQgICAgLy8gU2hvcnRjdXRzXG5cdCAgICB2YXIgQyA9IENyeXB0b0pTO1xuXHQgICAgdmFyIENfbGliID0gQy5saWI7XG5cdCAgICB2YXIgQmFzZSA9IENfbGliLkJhc2U7XG5cdCAgICB2YXIgQ19lbmMgPSBDLmVuYztcblx0ICAgIHZhciBVdGY4ID0gQ19lbmMuVXRmODtcblx0ICAgIHZhciBDX2FsZ28gPSBDLmFsZ287XG5cblx0ICAgIC8qKlxuXHQgICAgICogSE1BQyBhbGdvcml0aG0uXG5cdCAgICAgKi9cblx0ICAgIHZhciBITUFDID0gQ19hbGdvLkhNQUMgPSBCYXNlLmV4dGVuZCh7XG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogSW5pdGlhbGl6ZXMgYSBuZXdseSBjcmVhdGVkIEhNQUMuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcGFyYW0ge0hhc2hlcn0gaGFzaGVyIFRoZSBoYXNoIGFsZ29yaXRobSB0byB1c2UuXG5cdCAgICAgICAgICogQHBhcmFtIHtXb3JkQXJyYXl8c3RyaW5nfSBrZXkgVGhlIHNlY3JldCBrZXkuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciBobWFjSGFzaGVyID0gQ3J5cHRvSlMuYWxnby5ITUFDLmNyZWF0ZShDcnlwdG9KUy5hbGdvLlNIQTI1Niwga2V5KTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICBpbml0OiBmdW5jdGlvbiAoaGFzaGVyLCBrZXkpIHtcblx0ICAgICAgICAgICAgLy8gSW5pdCBoYXNoZXJcblx0ICAgICAgICAgICAgaGFzaGVyID0gdGhpcy5faGFzaGVyID0gbmV3IGhhc2hlci5pbml0KCk7XG5cblx0ICAgICAgICAgICAgLy8gQ29udmVydCBzdHJpbmcgdG8gV29yZEFycmF5LCBlbHNlIGFzc3VtZSBXb3JkQXJyYXkgYWxyZWFkeVxuXHQgICAgICAgICAgICBpZiAodHlwZW9mIGtleSA9PSAnc3RyaW5nJykge1xuXHQgICAgICAgICAgICAgICAga2V5ID0gVXRmOC5wYXJzZShrZXkpO1xuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgLy8gU2hvcnRjdXRzXG5cdCAgICAgICAgICAgIHZhciBoYXNoZXJCbG9ja1NpemUgPSBoYXNoZXIuYmxvY2tTaXplO1xuXHQgICAgICAgICAgICB2YXIgaGFzaGVyQmxvY2tTaXplQnl0ZXMgPSBoYXNoZXJCbG9ja1NpemUgKiA0O1xuXG5cdCAgICAgICAgICAgIC8vIEFsbG93IGFyYml0cmFyeSBsZW5ndGgga2V5c1xuXHQgICAgICAgICAgICBpZiAoa2V5LnNpZ0J5dGVzID4gaGFzaGVyQmxvY2tTaXplQnl0ZXMpIHtcblx0ICAgICAgICAgICAgICAgIGtleSA9IGhhc2hlci5maW5hbGl6ZShrZXkpO1xuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgLy8gQ2xhbXAgZXhjZXNzIGJpdHNcblx0ICAgICAgICAgICAga2V5LmNsYW1wKCk7XG5cblx0ICAgICAgICAgICAgLy8gQ2xvbmUga2V5IGZvciBpbm5lciBhbmQgb3V0ZXIgcGFkc1xuXHQgICAgICAgICAgICB2YXIgb0tleSA9IHRoaXMuX29LZXkgPSBrZXkuY2xvbmUoKTtcblx0ICAgICAgICAgICAgdmFyIGlLZXkgPSB0aGlzLl9pS2V5ID0ga2V5LmNsb25lKCk7XG5cblx0ICAgICAgICAgICAgLy8gU2hvcnRjdXRzXG5cdCAgICAgICAgICAgIHZhciBvS2V5V29yZHMgPSBvS2V5LndvcmRzO1xuXHQgICAgICAgICAgICB2YXIgaUtleVdvcmRzID0gaUtleS53b3JkcztcblxuXHQgICAgICAgICAgICAvLyBYT1Iga2V5cyB3aXRoIHBhZCBjb25zdGFudHNcblx0ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBoYXNoZXJCbG9ja1NpemU7IGkrKykge1xuXHQgICAgICAgICAgICAgICAgb0tleVdvcmRzW2ldIF49IDB4NWM1YzVjNWM7XG5cdCAgICAgICAgICAgICAgICBpS2V5V29yZHNbaV0gXj0gMHgzNjM2MzYzNjtcblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgICAgICBvS2V5LnNpZ0J5dGVzID0gaUtleS5zaWdCeXRlcyA9IGhhc2hlckJsb2NrU2l6ZUJ5dGVzO1xuXG5cdCAgICAgICAgICAgIC8vIFNldCBpbml0aWFsIHZhbHVlc1xuXHQgICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIFJlc2V0cyB0aGlzIEhNQUMgdG8gaXRzIGluaXRpYWwgc3RhdGUuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIGhtYWNIYXNoZXIucmVzZXQoKTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICByZXNldDogZnVuY3Rpb24gKCkge1xuXHQgICAgICAgICAgICAvLyBTaG9ydGN1dFxuXHQgICAgICAgICAgICB2YXIgaGFzaGVyID0gdGhpcy5faGFzaGVyO1xuXG5cdCAgICAgICAgICAgIC8vIFJlc2V0XG5cdCAgICAgICAgICAgIGhhc2hlci5yZXNldCgpO1xuXHQgICAgICAgICAgICBoYXNoZXIudXBkYXRlKHRoaXMuX2lLZXkpO1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBVcGRhdGVzIHRoaXMgSE1BQyB3aXRoIGEgbWVzc2FnZS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBwYXJhbSB7V29yZEFycmF5fHN0cmluZ30gbWVzc2FnZVVwZGF0ZSBUaGUgbWVzc2FnZSB0byBhcHBlbmQuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcmV0dXJuIHtITUFDfSBUaGlzIEhNQUMgaW5zdGFuY2UuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIGhtYWNIYXNoZXIudXBkYXRlKCdtZXNzYWdlJyk7XG5cdCAgICAgICAgICogICAgIGhtYWNIYXNoZXIudXBkYXRlKHdvcmRBcnJheSk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgdXBkYXRlOiBmdW5jdGlvbiAobWVzc2FnZVVwZGF0ZSkge1xuXHQgICAgICAgICAgICB0aGlzLl9oYXNoZXIudXBkYXRlKG1lc3NhZ2VVcGRhdGUpO1xuXG5cdCAgICAgICAgICAgIC8vIENoYWluYWJsZVxuXHQgICAgICAgICAgICByZXR1cm4gdGhpcztcblx0ICAgICAgICB9LFxuXG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogRmluYWxpemVzIHRoZSBITUFDIGNvbXB1dGF0aW9uLlxuXHQgICAgICAgICAqIE5vdGUgdGhhdCB0aGUgZmluYWxpemUgb3BlcmF0aW9uIGlzIGVmZmVjdGl2ZWx5IGEgZGVzdHJ1Y3RpdmUsIHJlYWQtb25jZSBvcGVyYXRpb24uXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcGFyYW0ge1dvcmRBcnJheXxzdHJpbmd9IG1lc3NhZ2VVcGRhdGUgKE9wdGlvbmFsKSBBIGZpbmFsIG1lc3NhZ2UgdXBkYXRlLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHJldHVybiB7V29yZEFycmF5fSBUaGUgSE1BQy5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIGhtYWMgPSBobWFjSGFzaGVyLmZpbmFsaXplKCk7XG5cdCAgICAgICAgICogICAgIHZhciBobWFjID0gaG1hY0hhc2hlci5maW5hbGl6ZSgnbWVzc2FnZScpO1xuXHQgICAgICAgICAqICAgICB2YXIgaG1hYyA9IGhtYWNIYXNoZXIuZmluYWxpemUod29yZEFycmF5KTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICBmaW5hbGl6ZTogZnVuY3Rpb24gKG1lc3NhZ2VVcGRhdGUpIHtcblx0ICAgICAgICAgICAgLy8gU2hvcnRjdXRcblx0ICAgICAgICAgICAgdmFyIGhhc2hlciA9IHRoaXMuX2hhc2hlcjtcblxuXHQgICAgICAgICAgICAvLyBDb21wdXRlIEhNQUNcblx0ICAgICAgICAgICAgdmFyIGlubmVySGFzaCA9IGhhc2hlci5maW5hbGl6ZShtZXNzYWdlVXBkYXRlKTtcblx0ICAgICAgICAgICAgaGFzaGVyLnJlc2V0KCk7XG5cdCAgICAgICAgICAgIHZhciBobWFjID0gaGFzaGVyLmZpbmFsaXplKHRoaXMuX29LZXkuY2xvbmUoKS5jb25jYXQoaW5uZXJIYXNoKSk7XG5cblx0ICAgICAgICAgICAgcmV0dXJuIGhtYWM7XG5cdCAgICAgICAgfVxuXHQgICAgfSk7XG5cdH0oKSk7XG5cblxufSkpOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///172\n")},function(module,exports,__webpack_require__){"use strict";eval('\n\nmodule.exports = function (url, options) {\n if (!options) {\n // eslint-disable-next-line no-param-reassign\n options = {};\n } // eslint-disable-next-line no-underscore-dangle, no-param-reassign\n\n\n url = url && url.__esModule ? url.default : url;\n\n if (typeof url !== \'string\') {\n return url;\n } // If url is already wrapped in quotes, remove them\n\n\n if (/^[\'"].*[\'"]$/.test(url)) {\n // eslint-disable-next-line no-param-reassign\n url = url.slice(1, -1);\n }\n\n if (options.hash) {\n // eslint-disable-next-line no-param-reassign\n url += options.hash;\n } // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n\n\n if (/["\'() \\t\\n]/.test(url) || options.needQuotes) {\n return "\\"".concat(url.replace(/"/g, \'\\\\"\').replace(/\\n/g, \'\\\\n\'), "\\"");\n }\n\n return url;\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvZ2V0VXJsLmpzPzFkZTUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOzs7QUFHSDs7QUFFQTtBQUNBO0FBQ0EsR0FBRzs7O0FBR0g7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOzs7QUFHQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSIsImZpbGUiOiIxNzMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodXJsLCBvcHRpb25zKSB7XG4gIGlmICghb3B0aW9ucykge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgIG9wdGlvbnMgPSB7fTtcbiAgfSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZXJzY29yZS1kYW5nbGUsIG5vLXBhcmFtLXJlYXNzaWduXG5cblxuICB1cmwgPSB1cmwgJiYgdXJsLl9fZXNNb2R1bGUgPyB1cmwuZGVmYXVsdCA6IHVybDtcblxuICBpZiAodHlwZW9mIHVybCAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gdXJsO1xuICB9IC8vIElmIHVybCBpcyBhbHJlYWR5IHdyYXBwZWQgaW4gcXVvdGVzLCByZW1vdmUgdGhlbVxuXG5cbiAgaWYgKC9eWydcIl0uKlsnXCJdJC8udGVzdCh1cmwpKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgdXJsID0gdXJsLnNsaWNlKDEsIC0xKTtcbiAgfVxuXG4gIGlmIChvcHRpb25zLmhhc2gpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICB1cmwgKz0gb3B0aW9ucy5oYXNoO1xuICB9IC8vIFNob3VsZCB1cmwgYmUgd3JhcHBlZD9cbiAgLy8gU2VlIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdmFsdWVzLTMvI3VybHNcblxuXG4gIGlmICgvW1wiJygpIFxcdFxcbl0vLnRlc3QodXJsKSB8fCBvcHRpb25zLm5lZWRRdW90ZXMpIHtcbiAgICByZXR1cm4gXCJcXFwiXCIuY29uY2F0KHVybC5yZXBsYWNlKC9cIi9nLCAnXFxcXFwiJykucmVwbGFjZSgvXFxuL2csICdcXFxcbicpLCBcIlxcXCJcIik7XG4gIH1cblxuICByZXR1cm4gdXJsO1xufTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///173\n')},function(module,__webpack_exports__,__webpack_require__){"use strict";eval("/* harmony import */ var core_js_modules_es7_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);\n/* harmony import */ var core_js_modules_es7_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es7_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es6_symbol__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8);\n/* harmony import */ var core_js_modules_es6_symbol__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_symbol__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6);\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4);\n/* harmony import */ var core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9);\n/* harmony import */ var core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(19);\n/* harmony import */ var core_js_modules_es7_array_includes__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(30);\n/* harmony import */ var core_js_modules_es7_array_includes__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es7_array_includes__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var core_js_modules_es6_string_includes__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(33);\n/* harmony import */ var core_js_modules_es6_string_includes__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_string_includes__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(16);\n/* harmony import */ var core_js_modules_es6_string_fixed__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(134);\n/* harmony import */ var core_js_modules_es6_string_fixed__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_string_fixed__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(1);\n/* harmony import */ var _src_components_VBtn_VBtn_sass__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(295);\n/* harmony import */ var _src_components_VBtn_VBtn_sass__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_src_components_VBtn_VBtn_sass__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var _VSheet__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(93);\n/* harmony import */ var _VProgressCircular__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(192);\n/* harmony import */ var _mixins_groupable__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(92);\n/* harmony import */ var _mixins_toggleable__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(31);\n/* harmony import */ var _mixins_positionable__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(60);\n/* harmony import */ var _mixins_routable__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(53);\n/* harmony import */ var _mixins_sizeable__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(138);\n/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(5);\n/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(10);\n\n\n\n\n\n\n\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_10__[/* default */ \"a\"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n// Styles\n // Extensions\n\n // Components\n\n // Mixins\n\n\n\n\n\n // Utilities\n\n\n\nvar baseMixins = Object(_util_mixins__WEBPACK_IMPORTED_MODULE_19__[/* default */ \"a\"])(_VSheet__WEBPACK_IMPORTED_MODULE_12__[/* default */ \"a\"], _mixins_routable__WEBPACK_IMPORTED_MODULE_17__[/* default */ \"a\"], _mixins_positionable__WEBPACK_IMPORTED_MODULE_16__[/* default */ \"a\"], _mixins_sizeable__WEBPACK_IMPORTED_MODULE_18__[/* default */ \"a\"], Object(_mixins_groupable__WEBPACK_IMPORTED_MODULE_14__[/* factory */ \"a\"])('btnToggle'), Object(_mixins_toggleable__WEBPACK_IMPORTED_MODULE_15__[/* factory */ \"b\"])('inputValue')\n/* @vue/component */\n);\n/* harmony default export */ __webpack_exports__[\"a\"] = (baseMixins.extend().extend({\n name: 'v-btn',\n props: {\n activeClass: {\n type: String,\n default: function _default() {\n if (!this.btnToggle) return '';\n return this.btnToggle.activeClass;\n }\n },\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button'\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button'\n },\n value: null\n },\n data: function data() {\n return {\n proxyClass: 'v-btn--active'\n };\n },\n computed: {\n classes: function classes() {\n return _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({\n 'v-btn': true\n }, _mixins_routable__WEBPACK_IMPORTED_MODULE_17__[/* default */ \"a\"].options.computed.classes.call(this)), {}, {\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--contained': this.contained,\n 'v-btn--depressed': this.depressed || this.outlined,\n 'v-btn--disabled': this.disabled,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--flat': this.isFlat,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top\n }, this.themeClasses), this.groupClasses), this.elevationClasses), this.sizeableClasses);\n },\n contained: function contained() {\n return Boolean(!this.isFlat && !this.depressed && // Contained class only adds elevation\n // is not needed if user provides value\n !this.elevation);\n },\n computedRipple: function computedRipple() {\n var defaultRipple = this.icon || this.fab ? {\n circle: true\n } : true;\n if (this.disabled) return false;else return this.ripple != null ? this.ripple : defaultRipple;\n },\n isFlat: function isFlat() {\n return Boolean(this.icon || this.text || this.outlined);\n },\n isRound: function isRound() {\n return Boolean(this.icon || this.fab);\n },\n styles: function styles() {\n return _objectSpread({}, this.measurableStyles);\n }\n },\n created: function created() {\n var _this = this;\n\n var breakingProps = [['flat', 'text'], ['outline', 'outlined'], ['round', 'rounded']];\n /* istanbul ignore next */\n\n breakingProps.forEach(function (_ref) {\n var _ref2 = Object(_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_8__[/* default */ \"a\"])(_ref, 2),\n original = _ref2[0],\n replacement = _ref2[1];\n\n if (_this.$attrs.hasOwnProperty(original)) Object(_util_console__WEBPACK_IMPORTED_MODULE_20__[/* breaking */ \"a\"])(original, replacement, _this);\n });\n },\n methods: {\n click: function click(e) {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur();\n this.$emit('click', e);\n this.btnToggle && this.toggle();\n },\n genContent: function genContent() {\n return this.$createElement('span', {\n staticClass: 'v-btn__content'\n }, this.$slots.default);\n },\n genLoader: function genLoader() {\n return this.$createElement('span', {\n class: 'v-btn__loader'\n }, this.$slots.loader || [this.$createElement(_VProgressCircular__WEBPACK_IMPORTED_MODULE_13__[/* default */ \"a\"], {\n props: {\n indeterminate: true,\n size: 23,\n width: 2\n }\n })]);\n }\n },\n render: function render(h) {\n var children = [this.genContent(), this.loading && this.genLoader()];\n var setColor = !this.isFlat ? this.setBackgroundColor : this.setTextColor;\n\n var _this$generateRouteLi = this.generateRouteLink(),\n tag = _this$generateRouteLi.tag,\n data = _this$generateRouteLi.data;\n\n if (tag === 'button') {\n data.attrs.type = this.type;\n data.attrs.disabled = this.disabled;\n }\n\n data.attrs.value = ['string', 'number'].includes(Object(_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"])(this.value)) ? this.value : JSON.stringify(this.value);\n return h(tag, this.disabled ? data : setColor(this.color, data), children);\n }\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvVkJ0bi9WQnRuLnRzPzBlZmYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0NBR0E7O0NBR0E7O0NBR0E7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Q0FHQTs7QUFDQTtBQUNBO0FBT0EsSUFBTSxVQUFVLEdBQUcscUVBQU0sd1FBS3ZCLDBFQUFnQixDQUxPLFdBS1AsQ0FMTyxFQU12QiwyRUFBaUI7QUFDakI7QUFQdUIsQ0FBekI7QUFhZSxtRUFBVSxDQUFWLGdCQUFvQztBQUNqRCxNQUFJLEVBRDZDO0FBR2pELE9BQUssRUFBRTtBQUNMLGVBQVcsRUFBRTtBQUNYLFVBQUksRUFETztBQUVYLGFBRlcsc0JBRUo7QUFDTCxZQUFJLENBQUMsS0FBTCxXQUFxQjtBQUVyQixlQUFPLGVBQVA7QUFDRDtBQU5VLEtBRFI7QUFTTCxTQUFLLEVBVEE7QUFVTCxhQUFTLEVBVko7QUFXTCxPQUFHLEVBWEU7QUFZTCxRQUFJLEVBWkM7QUFhTCxXQUFPLEVBYkY7QUFjTCxZQUFRLEVBZEg7QUFlTCxzQkFBa0IsRUFmYjtBQWdCTCxXQUFPLEVBaEJGO0FBaUJMLE9BQUcsRUFBRTtBQUNILFVBQUksRUFERDtBQUVILGFBQU8sRUFBRTtBQUZOLEtBakJBO0FBcUJMLFFBQUksRUFyQkM7QUFzQkwsUUFBSSxFQXRCQztBQXVCTCxRQUFJLEVBQUU7QUFDSixVQUFJLEVBREE7QUFFSixhQUFPLEVBQUU7QUFGTCxLQXZCRDtBQTJCTCxTQUFLLEVBQUU7QUEzQkYsR0FIMEM7QUFpQ2pELE1BQUksRUFBRTtBQUFBLFdBQU87QUFDWCxnQkFBVSxFQUFFO0FBREQsS0FBUDtBQUFBLEdBakMyQztBQXFDakQsVUFBUSxFQUFFO0FBQ1IsV0FEUSxxQkFDRDtBQUNMO0FBQ0UsaUJBREs7QUFBUCxTQUVLLGlFQUFRLENBQVIsOEJBRkUsSUFFRixD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RWYsZ0JBQWdCLEtBRmxCLFNBRWtCLEVBRkQsQ0FBakI7QUFJQSxRQUFNLFFBQVEsR0FBRyxDQUFDLEtBQUQsU0FBZSxLQUFmLHFCQUF5QyxLQUExRDs7QUFMTyxnQ0FNZSxLQUF0QixpQkFBc0IsRUFOZjtBQUFBLFFBTUQsR0FOQyx5QkFNRCxHQU5DO0FBQUEsUUFNTSxJQU5OLHlCQU1NLElBTk47O0FBUVAsUUFBSSxHQUFHLEtBQVAsVUFBc0I7QUFDcEIsVUFBSSxDQUFKLGFBQW1CLEtBQW5CO0FBQ0EsVUFBSSxDQUFKLGlCQUF1QixLQUF2QjtBQUNEOztBQUNELFFBQUksQ0FBSixjQUFvQix3SEFBcUMsS0FBckMsVUFDaEIsS0FEZ0IsUUFFaEIsSUFBSSxDQUFKLFVBQWUsS0FGbkIsS0FFSSxDQUZKO0FBSUEsV0FBTyxDQUFDLE1BQU0sdUJBQXVCLFFBQVEsQ0FBQyxLQUFELE9BQXJDLElBQXFDLENBQXJDLEVBQVIsUUFBUSxDQUFSO0FBQ0Q7QUE5SmdELENBQXBDLENBQWYiLCJmaWxlIjoiMTc0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gU3R5bGVzXG5pbXBvcnQgJy4vVkJ0bi5zYXNzJ1xuXG4vLyBFeHRlbnNpb25zXG5pbXBvcnQgVlNoZWV0IGZyb20gJy4uL1ZTaGVldCdcblxuLy8gQ29tcG9uZW50c1xuaW1wb3J0IFZQcm9ncmVzc0NpcmN1bGFyIGZyb20gJy4uL1ZQcm9ncmVzc0NpcmN1bGFyJ1xuXG4vLyBNaXhpbnNcbmltcG9ydCB7IGZhY3RvcnkgYXMgR3JvdXBhYmxlRmFjdG9yeSB9IGZyb20gJy4uLy4uL21peGlucy9ncm91cGFibGUnXG5pbXBvcnQgeyBmYWN0b3J5IGFzIFRvZ2dsZWFibGVGYWN0b3J5IH0gZnJvbSAnLi4vLi4vbWl4aW5zL3RvZ2dsZWFibGUnXG5pbXBvcnQgUG9zaXRpb25hYmxlIGZyb20gJy4uLy4uL21peGlucy9wb3NpdGlvbmFibGUnXG5pbXBvcnQgUm91dGFibGUgZnJvbSAnLi4vLi4vbWl4aW5zL3JvdXRhYmxlJ1xuaW1wb3J0IFNpemVhYmxlIGZyb20gJy4uLy4uL21peGlucy9zaXplYWJsZSdcblxuLy8gVXRpbGl0aWVzXG5pbXBvcnQgbWl4aW5zLCB7IEV4dHJhY3RWdWUgfSBmcm9tICcuLi8uLi91dGlsL21peGlucydcbmltcG9ydCB7IGJyZWFraW5nIH0gZnJvbSAnLi4vLi4vdXRpbC9jb25zb2xlJ1xuXG4vLyBUeXBlc1xuaW1wb3J0IHsgVk5vZGUgfSBmcm9tICd2dWUnXG5pbXBvcnQgeyBQcm9wVmFsaWRhdG9yLCBQcm9wVHlwZSB9IGZyb20gJ3Z1ZS90eXBlcy9vcHRpb25zJ1xuaW1wb3J0IHsgUmlwcGxlT3B0aW9ucyB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvcmlwcGxlJ1xuXG5jb25zdCBiYXNlTWl4aW5zID0gbWl4aW5zKFxuICBWU2hlZXQsXG4gIFJvdXRhYmxlLFxuICBQb3NpdGlvbmFibGUsXG4gIFNpemVhYmxlLFxuICBHcm91cGFibGVGYWN0b3J5KCdidG5Ub2dnbGUnKSxcbiAgVG9nZ2xlYWJsZUZhY3RvcnkoJ2lucHV0VmFsdWUnKVxuICAvKiBAdnVlL2NvbXBvbmVudCAqL1xuKVxuaW50ZXJmYWNlIG9wdGlvbnMgZXh0ZW5kcyBFeHRyYWN0VnVlPHR5cGVvZiBiYXNlTWl4aW5zPiB7XG4gICRlbDogSFRNTEVsZW1lbnRcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZU1peGlucy5leHRlbmQ8b3B0aW9ucz4oKS5leHRlbmQoe1xuICBuYW1lOiAndi1idG4nLFxuXG4gIHByb3BzOiB7XG4gICAgYWN0aXZlQ2xhc3M6IHtcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgIGRlZmF1bHQgKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICghdGhpcy5idG5Ub2dnbGUpIHJldHVybiAnJ1xuXG4gICAgICAgIHJldHVybiB0aGlzLmJ0blRvZ2dsZS5hY3RpdmVDbGFzc1xuICAgICAgfSxcbiAgICB9IGFzIGFueSBhcyBQcm9wVmFsaWRhdG9yPHN0cmluZz4sXG4gICAgYmxvY2s6IEJvb2xlYW4sXG4gICAgZGVwcmVzc2VkOiBCb29sZWFuLFxuICAgIGZhYjogQm9vbGVhbixcbiAgICBpY29uOiBCb29sZWFuLFxuICAgIGxvYWRpbmc6IEJvb2xlYW4sXG4gICAgb3V0bGluZWQ6IEJvb2xlYW4sXG4gICAgcmV0YWluRm9jdXNPbkNsaWNrOiBCb29sZWFuLFxuICAgIHJvdW5kZWQ6IEJvb2xlYW4sXG4gICAgdGFnOiB7XG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICBkZWZhdWx0OiAnYnV0dG9uJyxcbiAgICB9LFxuICAgIHRleHQ6IEJvb2xlYW4sXG4gICAgdGlsZTogQm9vbGVhbixcbiAgICB0eXBlOiB7XG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICBkZWZhdWx0OiAnYnV0dG9uJyxcbiAgICB9LFxuICAgIHZhbHVlOiBudWxsIGFzIGFueSBhcyBQcm9wVHlwZTxhbnk+LFxuICB9LFxuXG4gIGRhdGE6ICgpID0+ICh7XG4gICAgcHJveHlDbGFzczogJ3YtYnRuLS1hY3RpdmUnLFxuICB9KSxcblxuICBjb21wdXRlZDoge1xuICAgIGNsYXNzZXMgKCk6IGFueSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAndi1idG4nOiB0cnVlLFxuICAgICAgICAuLi5Sb3V0YWJsZS5vcHRpb25zLmNvbXB1dGVkLmNsYXNzZXMuY2FsbCh0aGlzKSxcbiAgICAgICAgJ3YtYnRuLS1hYnNvbHV0ZSc6IHRoaXMuYWJzb2x1dGUsXG4gICAgICAgICd2LWJ0bi0tYmxvY2snOiB0aGlzLmJsb2NrLFxuICAgICAgICAndi1idG4tLWJvdHRvbSc6IHRoaXMuYm90dG9tLFxuICAgICAgICAndi1idG4tLWNvbnRhaW5lZCc6IHRoaXMuY29udGFpbmVkLFxuICAgICAgICAndi1idG4tLWRlcHJlc3NlZCc6ICh0aGlzLmRlcHJlc3NlZCkgfHwgdGhpcy5vdXRsaW5lZCxcbiAgICAgICAgJ3YtYnRuLS1kaXNhYmxlZCc6IHRoaXMuZGlzYWJsZWQsXG4gICAgICAgICd2LWJ0bi0tZmFiJzogdGhpcy5mYWIsXG4gICAgICAgICd2LWJ0bi0tZml4ZWQnOiB0aGlzLmZpeGVkLFxuICAgICAgICAndi1idG4tLWZsYXQnOiB0aGlzLmlzRmxhdCxcbiAgICAgICAgJ3YtYnRuLS1pY29uJzogdGhpcy5pY29uLFxuICAgICAgICAndi1idG4tLWxlZnQnOiB0aGlzLmxlZnQsXG4gICAgICAgICd2LWJ0bi0tbG9hZGluZyc6IHRoaXMubG9hZGluZyxcbiAgICAgICAgJ3YtYnRuLS1vdXRsaW5lZCc6IHRoaXMub3V0bGluZWQsXG4gICAgICAgICd2LWJ0bi0tcmlnaHQnOiB0aGlzLnJpZ2h0LFxuICAgICAgICAndi1idG4tLXJvdW5kJzogdGhpcy5pc1JvdW5kLFxuICAgICAgICAndi1idG4tLXJvdW5kZWQnOiB0aGlzLnJvdW5kZWQsXG4gICAgICAgICd2LWJ0bi0tcm91dGVyJzogdGhpcy50byxcbiAgICAgICAgJ3YtYnRuLS10ZXh0JzogdGhpcy50ZXh0LFxuICAgICAgICAndi1idG4tLXRpbGUnOiB0aGlzLnRpbGUsXG4gICAgICAgICd2LWJ0bi0tdG9wJzogdGhpcy50b3AsXG4gICAgICAgIC4uLnRoaXMudGhlbWVDbGFzc2VzLFxuICAgICAgICAuLi50aGlzLmdyb3VwQ2xhc3NlcyxcbiAgICAgICAgLi4udGhpcy5lbGV2YXRpb25DbGFzc2VzLFxuICAgICAgICAuLi50aGlzLnNpemVhYmxlQ2xhc3NlcyxcbiAgICAgIH1cbiAgICB9LFxuICAgIGNvbnRhaW5lZCAoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gQm9vbGVhbihcbiAgICAgICAgIXRoaXMuaXNGbGF0ICYmXG4gICAgICAgICF0aGlzLmRlcHJlc3NlZCAmJlxuICAgICAgICAvLyBDb250YWluZWQgY2xhc3Mgb25seSBhZGRzIGVsZXZhdGlvblxuICAgICAgICAvLyBpcyBub3QgbmVlZGVkIGlmIHVzZXIgcHJvdmlkZXMgdmFsdWVcbiAgICAgICAgIXRoaXMuZWxldmF0aW9uXG4gICAgICApXG4gICAgfSxcbiAgICBjb21wdXRlZFJpcHBsZSAoKTogUmlwcGxlT3B0aW9ucyB8IGJvb2xlYW4ge1xuICAgICAgY29uc3QgZGVmYXVsdFJpcHBsZSA9IHRoaXMuaWNvbiB8fCB0aGlzLmZhYiA/IHsgY2lyY2xlOiB0cnVlIH0gOiB0cnVlXG4gICAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG4gICAgICBlbHNlIHJldHVybiB0aGlzLnJpcHBsZSAhPSBudWxsID8gdGhpcy5yaXBwbGUgOiBkZWZhdWx0UmlwcGxlXG4gICAgfSxcbiAgICBpc0ZsYXQgKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIEJvb2xlYW4oXG4gICAgICAgIHRoaXMuaWNvbiB8fFxuICAgICAgICB0aGlzLnRleHQgfHxcbiAgICAgICAgdGhpcy5vdXRsaW5lZFxuICAgICAgKVxuICAgIH0sXG4gICAgaXNSb3VuZCAoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gQm9vbGVhbihcbiAgICAgICAgdGhpcy5pY29uIHx8XG4gICAgICAgIHRoaXMuZmFiXG4gICAgICApXG4gICAgfSxcbiAgICBzdHlsZXMgKCk6IG9iamVjdCB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi50aGlzLm1lYXN1cmFibGVTdHlsZXMsXG4gICAgICB9XG4gICAgfSxcbiAgfSxcblxuICBjcmVhdGVkICgpIHtcbiAgICBjb25zdCBicmVha2luZ1Byb3BzID0gW1xuICAgICAgWydmbGF0JywgJ3RleHQnXSxcbiAgICAgIFsnb3V0bGluZScsICdvdXRsaW5lZCddLFxuICAgICAgWydyb3VuZCcsICdyb3VuZGVkJ10sXG4gICAgXVxuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBicmVha2luZ1Byb3BzLmZvckVhY2goKFtvcmlnaW5hbCwgcmVwbGFjZW1lbnRdKSA9PiB7XG4gICAgICBpZiAodGhpcy4kYXR0cnMuaGFzT3duUHJvcGVydHkob3JpZ2luYWwpKSBicmVha2luZyhvcmlnaW5hbCwgcmVwbGFjZW1lbnQsIHRoaXMpXG4gICAgfSlcbiAgfSxcblxuICBtZXRob2RzOiB7XG4gICAgY2xpY2sgKGU6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgIC8vIFRPRE86IFJlbW92ZSB0aGlzIGluIHYzXG4gICAgICAhdGhpcy5yZXRhaW5Gb2N1c09uQ2xpY2sgJiYgIXRoaXMuZmFiICYmIGUuZGV0YWlsICYmIHRoaXMuJGVsLmJsdXIoKVxuICAgICAgdGhpcy4kZW1pdCgnY2xpY2snLCBlKVxuXG4gICAgICB0aGlzLmJ0blRvZ2dsZSAmJiB0aGlzLnRvZ2dsZSgpXG4gICAgfSxcbiAgICBnZW5Db250ZW50ICgpOiBWTm9kZSB7XG4gICAgICByZXR1cm4gdGhpcy4kY3JlYXRlRWxlbWVudCgnc3BhbicsIHtcbiAgICAgICAgc3RhdGljQ2xhc3M6ICd2LWJ0bl9fY29udGVudCcsXG4gICAgICB9LCB0aGlzLiRzbG90cy5kZWZhdWx0KVxuICAgIH0sXG4gICAgZ2VuTG9hZGVyICgpOiBWTm9kZSB7XG4gICAgICByZXR1cm4gdGhpcy4kY3JlYXRlRWxlbWVudCgnc3BhbicsIHtcbiAgICAgICAgY2xhc3M6ICd2LWJ0bl9fbG9hZGVyJyxcbiAgICAgIH0sIHRoaXMuJHNsb3RzLmxvYWRlciB8fCBbdGhpcy4kY3JlYXRlRWxlbWVudChWUHJvZ3Jlc3NDaXJjdWxhciwge1xuICAgICAgICBwcm9wczoge1xuICAgICAgICAgIGluZGV0ZXJtaW5hdGU6IHRydWUsXG4gICAgICAgICAgc2l6ZTogMjMsXG4gICAgICAgICAgd2lkdGg6IDIsXG4gICAgICAgIH0sXG4gICAgICB9KV0pXG4gICAgfSxcbiAgfSxcblxuICByZW5kZXIgKGgpOiBWTm9kZSB7XG4gICAgY29uc3QgY2hpbGRyZW4gPSBbXG4gICAgICB0aGlzLmdlbkNvbnRlbnQoKSxcbiAgICAgIHRoaXMubG9hZGluZyAmJiB0aGlzLmdlbkxvYWRlcigpLFxuICAgIF1cbiAgICBjb25zdCBzZXRDb2xvciA9ICF0aGlzLmlzRmxhdCA/IHRoaXMuc2V0QmFja2dyb3VuZENvbG9yIDogdGhpcy5zZXRUZXh0Q29sb3JcbiAgICBjb25zdCB7IHRhZywgZGF0YSB9ID0gdGhpcy5nZW5lcmF0ZVJvdXRlTGluaygpXG5cbiAgICBpZiAodGFnID09PSAnYnV0dG9uJykge1xuICAgICAgZGF0YS5hdHRycyEudHlwZSA9IHRoaXMudHlwZVxuICAgICAgZGF0YS5hdHRycyEuZGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkXG4gICAgfVxuICAgIGRhdGEuYXR0cnMhLnZhbHVlID0gWydzdHJpbmcnLCAnbnVtYmVyJ10uaW5jbHVkZXModHlwZW9mIHRoaXMudmFsdWUpXG4gICAgICA/IHRoaXMudmFsdWVcbiAgICAgIDogSlNPTi5zdHJpbmdpZnkodGhpcy52YWx1ZSlcblxuICAgIHJldHVybiBoKHRhZywgdGhpcy5kaXNhYmxlZCA/IGRhdGEgOiBzZXRDb2xvcih0aGlzLmNvbG9yLCBkYXRhKSwgY2hpbGRyZW4pXG4gIH0sXG59KVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///174\n")},function(module,__webpack_exports__,__webpack_require__){"use strict";eval("/* harmony import */ var core_js_modules_es6_number_constructor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);\n/* harmony import */ var core_js_modules_es6_number_constructor__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_number_constructor__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _src_components_VProgressCircular_VProgressCircular_sass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(314);\n/* harmony import */ var _src_components_VProgressCircular_VProgressCircular_sass__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_src_components_VProgressCircular_VProgressCircular_sass__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(21);\n/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);\n\n// Styles\n // Mixins\n\n // Utils\n\n\n/* @vue/component */\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (_mixins_colorable__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"].extend({\n name: 'v-progress-circular',\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0\n },\n size: {\n type: [Number, String],\n default: 32\n },\n width: {\n type: [Number, String],\n default: 4\n },\n value: {\n type: [Number, String],\n default: 0\n }\n },\n data: function data() {\n return {\n radius: 20\n };\n },\n computed: {\n calculatedSize: function calculatedSize() {\n return Number(this.size) + (this.button ? 8 : 0);\n },\n circumference: function circumference() {\n return 2 * Math.PI * this.radius;\n },\n classes: function classes() {\n return {\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button\n };\n },\n normalizedValue: function normalizedValue() {\n if (this.value < 0) {\n return 0;\n }\n\n if (this.value > 100) {\n return 100;\n }\n\n return parseFloat(this.value);\n },\n strokeDashArray: function strokeDashArray() {\n return Math.round(this.circumference * 1000) / 1000;\n },\n strokeDashOffset: function strokeDashOffset() {\n return (100 - this.normalizedValue) / 100 * this.circumference + 'px';\n },\n strokeWidth: function strokeWidth() {\n return Number(this.width) / +this.size * this.viewBoxSize * 2;\n },\n styles: function styles() {\n return {\n height: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__[/* convertToUnit */ \"g\"])(this.calculatedSize),\n width: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__[/* convertToUnit */ \"g\"])(this.calculatedSize)\n };\n },\n svgStyles: function svgStyles() {\n return {\n transform: \"rotate(\".concat(Number(this.rotate), \"deg)\")\n };\n },\n viewBoxSize: function viewBoxSize() {\n return this.radius / (1 - Number(this.width) / +this.size);\n }\n },\n methods: {\n genCircle: function genCircle(name, offset) {\n return this.$createElement('circle', {\n class: \"v-progress-circular__\".concat(name),\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset\n }\n });\n },\n genSvg: function genSvg() {\n var children = [this.indeterminate || this.genCircle('underlay', 0), this.genCircle('overlay', this.strokeDashOffset)];\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: \"\".concat(this.viewBoxSize, \" \").concat(this.viewBoxSize, \" \").concat(2 * this.viewBoxSize, \" \").concat(2 * this.viewBoxSize)\n }\n }, children);\n },\n genInfo: function genInfo() {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info'\n }, this.$slots.default);\n }\n },\n render: function render(h) {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue\n },\n class: this.classes,\n style: this.styles,\n on: this.$listeners\n }), [this.genSvg(), this.genInfo()]);\n }\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvVlByb2dyZXNzQ2lyY3VsYXIvVlByb2dyZXNzQ2lyY3VsYXIudHM/MDQzNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Q0FHQTs7Q0FHQTs7QUFDQTtBQUtBOztBQUNlLDBIQUFTLENBQVQsT0FBaUI7QUFDOUIsTUFBSSxFQUQwQjtBQUc5QixPQUFLLEVBQUU7QUFDTCxVQUFNLEVBREQ7QUFFTCxpQkFBYSxFQUZSO0FBR0wsVUFBTSxFQUFFO0FBQ04sVUFBSSxFQUFFLFNBREEsTUFDQSxDQURBO0FBRU4sYUFBTyxFQUFFO0FBRkgsS0FISDtBQU9MLFFBQUksRUFBRTtBQUNKLFVBQUksRUFBRSxTQURGLE1BQ0UsQ0FERjtBQUVKLGFBQU8sRUFBRTtBQUZMLEtBUEQ7QUFXTCxTQUFLLEVBQUU7QUFDTCxVQUFJLEVBQUUsU0FERCxNQUNDLENBREQ7QUFFTCxhQUFPLEVBQUU7QUFGSixLQVhGO0FBZUwsU0FBSyxFQUFFO0FBQ0wsVUFBSSxFQUFFLFNBREQsTUFDQyxDQUREO0FBRUwsYUFBTyxFQUFFO0FBRko7QUFmRixHQUh1QjtBQXdCOUIsTUFBSSxFQUFFO0FBQUEsV0FBTztBQUNYLFlBQU0sRUFBRTtBQURHLEtBQVA7QUFBQSxHQXhCd0I7QUE0QjlCLFVBQVEsRUFBRTtBQUNSLGtCQURRLDRCQUNNO0FBQ1osYUFBTyxNQUFNLENBQUMsS0FBUCxJQUFNLENBQU4sSUFBcUIsa0JBQTVCLENBQU8sQ0FBUDtBQUZNO0FBS1IsaUJBTFEsMkJBS0s7QUFDWCxhQUFPLElBQUksSUFBSSxDQUFSLEtBQWMsS0FBckI7QUFOTTtBQVNSLFdBVFEscUJBU0Q7QUFDTCxhQUFPO0FBQ0wsOENBQXNDLEtBRGpDO0FBRUwsdUNBQStCLEtBQUs7QUFGL0IsT0FBUDtBQVZNO0FBZ0JSLG1CQWhCUSw2QkFnQk87QUFDYixVQUFJLGFBQUosR0FBb0I7QUFDbEI7QUFDRDs7QUFFRCxVQUFJLGFBQUosS0FBc0I7QUFDcEI7QUFDRDs7QUFFRCxhQUFPLFVBQVUsQ0FBQyxLQUFsQixLQUFpQixDQUFqQjtBQXpCTTtBQTRCUixtQkE1QlEsNkJBNEJPO0FBQ2IsYUFBTyxJQUFJLENBQUosTUFBVyxxQkFBWCxRQUFQO0FBN0JNO0FBZ0NSLG9CQWhDUSw4QkFnQ1E7QUFDZCxhQUFRLENBQUMsTUFBTSxLQUFQLG1CQUFELEdBQUMsR0FBc0MsS0FBdkMsYUFBQyxHQUFSO0FBakNNO0FBb0NSLGVBcENRLHlCQW9DRztBQUNULGFBQU8sTUFBTSxDQUFDLEtBQVAsS0FBTSxDQUFOLEdBQXFCLENBQUMsS0FBdEIsT0FBa0MsS0FBbEMsY0FBUDtBQXJDTTtBQXdDUixVQXhDUSxvQkF3Q0Y7QUFDSixhQUFPO0FBQ0wsY0FBTSxFQUFFLDJFQUFhLENBQUMsS0FEakIsY0FDZ0IsQ0FEaEI7QUFFTCxhQUFLLEVBQUUsMkVBQWEsQ0FBQyxLQUFEO0FBRmYsT0FBUDtBQXpDTTtBQStDUixhQS9DUSx1QkErQ0M7QUFDUCxhQUFPO0FBQ0wsaUJBQVMsbUJBQVksTUFBTSxDQUFDLEtBQUQsT0FBbEI7QUFESixPQUFQO0FBaERNO0FBcURSLGVBckRRLHlCQXFERztBQUNULGFBQU8sZUFBZSxJQUFJLE1BQU0sQ0FBQyxLQUFQLEtBQU0sQ0FBTixHQUFxQixDQUFDLEtBQWhELElBQU8sQ0FBUDtBQUNEO0FBdkRPLEdBNUJvQjtBQXNGOUIsU0FBTyxFQUFFO0FBQ1AsYUFETyxxQkFDRSxJQURGLEVBQ0UsTUFERixFQUN5QztBQUM5QyxhQUFPLDhCQUE4QjtBQUNuQyxhQUFLLGlDQUQ4QixJQUM5QixDQUQ4QjtBQUVuQyxhQUFLLEVBQUU7QUFDTCxjQUFJLEVBREM7QUFFTCxZQUFFLEVBQUUsSUFBSSxLQUZIO0FBR0wsWUFBRSxFQUFFLElBQUksS0FISDtBQUlMLFdBQUMsRUFBRSxLQUpFO0FBS0wsMEJBQWdCLEtBTFg7QUFNTCw4QkFBb0IsS0FOZjtBQU9MLCtCQUFxQjtBQVBoQjtBQUY0QixPQUE5QixDQUFQO0FBRks7QUFlUCxVQWZPLG9CQWVEO0FBQ0osVUFBTSxRQUFRLEdBQUcsQ0FDZixzQkFBc0IsMkJBRFAsQ0FDTyxDQURQLEVBRWYsMEJBQTBCLEtBRjVCLGdCQUVFLENBRmUsQ0FBakI7QUFLQSxhQUFPLDJCQUEyQjtBQUNoQyxhQUFLLEVBQUUsS0FEeUI7QUFFaEMsYUFBSyxFQUFFO0FBQ0wsZUFBSyxFQURBO0FBRUwsaUJBQU8sWUFBSyxLQUFLLFdBQVYsY0FBeUIsS0FBSyxXQUE5QixjQUE2QyxJQUFJLEtBQUssV0FBdEQsY0FBcUUsSUFBSSxLQUFLLFdBQTlFO0FBRkY7QUFGeUIsT0FBM0IsRUFBUCxRQUFPLENBQVA7QUFyQks7QUE2QlAsV0E3Qk8scUJBNkJBO0FBQ0wsYUFBTywyQkFBMkI7QUFDaEMsbUJBQVcsRUFBRTtBQURtQixPQUEzQixFQUVKLFlBRkgsT0FBTyxDQUFQO0FBR0Q7QUFqQ00sR0F0RnFCO0FBMEg5QixRQTFIOEIsa0JBMEh4QixDQTFId0IsRUEwSHJCO0FBQ1AsV0FBTyxDQUFDLFFBQVEsa0JBQWtCLEtBQWxCLE9BQThCO0FBQzVDLGlCQUFXLEVBRGlDO0FBRTVDLFdBQUssRUFBRTtBQUNMLFlBQUksRUFEQztBQUVMLHlCQUZLO0FBR0wseUJBSEs7QUFJTCx5QkFBaUIsaUNBQWlDLEtBQUs7QUFKbEQsT0FGcUM7QUFRNUMsV0FBSyxFQUFFLEtBUnFDO0FBUzVDLFdBQUssRUFBRSxLQVRxQztBQVU1QyxRQUFFLEVBQUUsS0FBSztBQVZtQyxLQUE5QixDQUFSLEVBV0osQ0FDRixLQURFLE1BQ0YsRUFERSxFQUVGLEtBYkYsT0FhRSxFQUZFLENBWEksQ0FBUjtBQWVEO0FBMUk2QixDQUFqQixDQUFmIiwiZmlsZSI6IjE3NS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFN0eWxlc1xuaW1wb3J0ICcuL1ZQcm9ncmVzc0NpcmN1bGFyLnNhc3MnXG5cbi8vIE1peGluc1xuaW1wb3J0IENvbG9yYWJsZSBmcm9tICcuLi8uLi9taXhpbnMvY29sb3JhYmxlJ1xuXG4vLyBVdGlsc1xuaW1wb3J0IHsgY29udmVydFRvVW5pdCB9IGZyb20gJy4uLy4uL3V0aWwvaGVscGVycydcblxuLy8gVHlwZXNcbmltcG9ydCB7IFZOb2RlLCBWTm9kZUNoaWxkcmVuIH0gZnJvbSAndnVlJ1xuXG4vKiBAdnVlL2NvbXBvbmVudCAqL1xuZXhwb3J0IGRlZmF1bHQgQ29sb3JhYmxlLmV4dGVuZCh7XG4gIG5hbWU6ICd2LXByb2dyZXNzLWNpcmN1bGFyJyxcblxuICBwcm9wczoge1xuICAgIGJ1dHRvbjogQm9vbGVhbixcbiAgICBpbmRldGVybWluYXRlOiBCb29sZWFuLFxuICAgIHJvdGF0ZToge1xuICAgICAgdHlwZTogW051bWJlciwgU3RyaW5nXSxcbiAgICAgIGRlZmF1bHQ6IDAsXG4gICAgfSxcbiAgICBzaXplOiB7XG4gICAgICB0eXBlOiBbTnVtYmVyLCBTdHJpbmddLFxuICAgICAgZGVmYXVsdDogMzIsXG4gICAgfSxcbiAgICB3aWR0aDoge1xuICAgICAgdHlwZTogW051bWJlciwgU3RyaW5nXSxcbiAgICAgIGRlZmF1bHQ6IDQsXG4gICAgfSxcbiAgICB2YWx1ZToge1xuICAgICAgdHlwZTogW051bWJlciwgU3RyaW5nXSxcbiAgICAgIGRlZmF1bHQ6IDAsXG4gICAgfSxcbiAgfSxcblxuICBkYXRhOiAoKSA9PiAoe1xuICAgIHJhZGl1czogMjAsXG4gIH0pLFxuXG4gIGNvbXB1dGVkOiB7XG4gICAgY2FsY3VsYXRlZFNpemUgKCk6IG51bWJlciB7XG4gICAgICByZXR1cm4gTnVtYmVyKHRoaXMuc2l6ZSkgKyAodGhpcy5idXR0b24gPyA4IDogMClcbiAgICB9LFxuXG4gICAgY2lyY3VtZmVyZW5jZSAoKTogbnVtYmVyIHtcbiAgICAgIHJldHVybiAyICogTWF0aC5QSSAqIHRoaXMucmFkaXVzXG4gICAgfSxcblxuICAgIGNsYXNzZXMgKCk6IG9iamVjdCB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAndi1wcm9ncmVzcy1jaXJjdWxhci0taW5kZXRlcm1pbmF0ZSc6IHRoaXMuaW5kZXRlcm1pbmF0ZSxcbiAgICAgICAgJ3YtcHJvZ3Jlc3MtY2lyY3VsYXItLWJ1dHRvbic6IHRoaXMuYnV0dG9uLFxuICAgICAgfVxuICAgIH0sXG5cbiAgICBub3JtYWxpemVkVmFsdWUgKCk6IG51bWJlciB7XG4gICAgICBpZiAodGhpcy52YWx1ZSA8IDApIHtcbiAgICAgICAgcmV0dXJuIDBcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMudmFsdWUgPiAxMDApIHtcbiAgICAgICAgcmV0dXJuIDEwMFxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcGFyc2VGbG9hdCh0aGlzLnZhbHVlKVxuICAgIH0sXG5cbiAgICBzdHJva2VEYXNoQXJyYXkgKCk6IG51bWJlciB7XG4gICAgICByZXR1cm4gTWF0aC5yb3VuZCh0aGlzLmNpcmN1bWZlcmVuY2UgKiAxMDAwKSAvIDEwMDBcbiAgICB9LFxuXG4gICAgc3Ryb2tlRGFzaE9mZnNldCAoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiAoKDEwMCAtIHRoaXMubm9ybWFsaXplZFZhbHVlKSAvIDEwMCkgKiB0aGlzLmNpcmN1bWZlcmVuY2UgKyAncHgnXG4gICAgfSxcblxuICAgIHN0cm9rZVdpZHRoICgpOiBudW1iZXIge1xuICAgICAgcmV0dXJuIE51bWJlcih0aGlzLndpZHRoKSAvICt0aGlzLnNpemUgKiB0aGlzLnZpZXdCb3hTaXplICogMlxuICAgIH0sXG5cbiAgICBzdHlsZXMgKCk6IG9iamVjdCB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBoZWlnaHQ6IGNvbnZlcnRUb1VuaXQodGhpcy5jYWxjdWxhdGVkU2l6ZSksXG4gICAgICAgIHdpZHRoOiBjb252ZXJ0VG9Vbml0KHRoaXMuY2FsY3VsYXRlZFNpemUpLFxuICAgICAgfVxuICAgIH0sXG5cbiAgICBzdmdTdHlsZXMgKCk6IG9iamVjdCB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0cmFuc2Zvcm06IGByb3RhdGUoJHtOdW1iZXIodGhpcy5yb3RhdGUpfWRlZylgLFxuICAgICAgfVxuICAgIH0sXG5cbiAgICB2aWV3Qm94U2l6ZSAoKTogbnVtYmVyIHtcbiAgICAgIHJldHVybiB0aGlzLnJhZGl1cyAvICgxIC0gTnVtYmVyKHRoaXMud2lkdGgpIC8gK3RoaXMuc2l6ZSlcbiAgICB9LFxuICB9LFxuXG4gIG1ldGhvZHM6IHtcbiAgICBnZW5DaXJjbGUgKG5hbWU6IHN0cmluZywgb2Zmc2V0OiBzdHJpbmcgfCBudW1iZXIpOiBWTm9kZSB7XG4gICAgICByZXR1cm4gdGhpcy4kY3JlYXRlRWxlbWVudCgnY2lyY2xlJywge1xuICAgICAgICBjbGFzczogYHYtcHJvZ3Jlc3MtY2lyY3VsYXJfXyR7bmFtZX1gLFxuICAgICAgICBhdHRyczoge1xuICAgICAgICAgIGZpbGw6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAgY3g6IDIgKiB0aGlzLnZpZXdCb3hTaXplLFxuICAgICAgICAgIGN5OiAyICogdGhpcy52aWV3Qm94U2l6ZSxcbiAgICAgICAgICByOiB0aGlzLnJhZGl1cyxcbiAgICAgICAgICAnc3Ryb2tlLXdpZHRoJzogdGhpcy5zdHJva2VXaWR0aCxcbiAgICAgICAgICAnc3Ryb2tlLWRhc2hhcnJheSc6IHRoaXMuc3Ryb2tlRGFzaEFycmF5LFxuICAgICAgICAgICdzdHJva2UtZGFzaG9mZnNldCc6IG9mZnNldCxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgfSxcbiAgICBnZW5TdmcgKCk6IFZOb2RlIHtcbiAgICAgIGNvbnN0IGNoaWxkcmVuID0gW1xuICAgICAgICB0aGlzLmluZGV0ZXJtaW5hdGUgfHwgdGhpcy5nZW5DaXJjbGUoJ3VuZGVybGF5JywgMCksXG4gICAgICAgIHRoaXMuZ2VuQ2lyY2xlKCdvdmVybGF5JywgdGhpcy5zdHJva2VEYXNoT2Zmc2V0KSxcbiAgICAgIF0gYXMgVk5vZGVDaGlsZHJlblxuXG4gICAgICByZXR1cm4gdGhpcy4kY3JlYXRlRWxlbWVudCgnc3ZnJywge1xuICAgICAgICBzdHlsZTogdGhpcy5zdmdTdHlsZXMsXG4gICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgeG1sbnM6ICdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycsXG4gICAgICAgICAgdmlld0JveDogYCR7dGhpcy52aWV3Qm94U2l6ZX0gJHt0aGlzLnZpZXdCb3hTaXplfSAkezIgKiB0aGlzLnZpZXdCb3hTaXplfSAkezIgKiB0aGlzLnZpZXdCb3hTaXplfWAsXG4gICAgICAgIH0sXG4gICAgICB9LCBjaGlsZHJlbilcbiAgICB9LFxuICAgIGdlbkluZm8gKCk6IFZOb2RlIHtcbiAgICAgIHJldHVybiB0aGlzLiRjcmVhdGVFbGVtZW50KCdkaXYnLCB7XG4gICAgICAgIHN0YXRpY0NsYXNzOiAndi1wcm9ncmVzcy1jaXJjdWxhcl9faW5mbycsXG4gICAgICB9LCB0aGlzLiRzbG90cy5kZWZhdWx0KVxuICAgIH0sXG4gIH0sXG5cbiAgcmVuZGVyIChoKTogVk5vZGUge1xuICAgIHJldHVybiBoKCdkaXYnLCB0aGlzLnNldFRleHRDb2xvcih0aGlzLmNvbG9yLCB7XG4gICAgICBzdGF0aWNDbGFzczogJ3YtcHJvZ3Jlc3MtY2lyY3VsYXInLFxuICAgICAgYXR0cnM6IHtcbiAgICAgICAgcm9sZTogJ3Byb2dyZXNzYmFyJyxcbiAgICAgICAgJ2FyaWEtdmFsdWVtaW4nOiAwLFxuICAgICAgICAnYXJpYS12YWx1ZW1heCc6IDEwMCxcbiAgICAgICAgJ2FyaWEtdmFsdWVub3cnOiB0aGlzLmluZGV0ZXJtaW5hdGUgPyB1bmRlZmluZWQgOiB0aGlzLm5vcm1hbGl6ZWRWYWx1ZSxcbiAgICAgIH0sXG4gICAgICBjbGFzczogdGhpcy5jbGFzc2VzLFxuICAgICAgc3R5bGU6IHRoaXMuc3R5bGVzLFxuICAgICAgb246IHRoaXMuJGxpc3RlbmVycyxcbiAgICB9KSwgW1xuICAgICAgdGhpcy5nZW5TdmcoKSxcbiAgICAgIHRoaXMuZ2VuSW5mbygpLFxuICAgIF0pXG4gIH0sXG59KVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///175\n")},function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var core_js_modules_es7_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);\n/* harmony import */ var core_js_modules_es7_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es7_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es6_symbol__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8);\n/* harmony import */ var core_js_modules_es6_symbol__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_symbol__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6);\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4);\n/* harmony import */ var core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9);\n/* harmony import */ var core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1);\n/* harmony import */ var core_js_modules_es6_number_constructor__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(20);\n/* harmony import */ var core_js_modules_es6_number_constructor__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_number_constructor__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _src_components_VCard_VCard_sass__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(316);\n/* harmony import */ var _src_components_VCard_VCard_sass__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_src_components_VCard_VCard_sass__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _VSheet__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(93);\n/* harmony import */ var _mixins_loadable__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(152);\n/* harmony import */ var _mixins_routable__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(53);\n/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(5);\n\n\n\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n// Styles\n // Extensions\n\n // Mixins\n\n\n // Helpers\n\n\n/* @vue/component */\n\n/* harmony default export */ __webpack_exports__["a"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"])(_mixins_loadable__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"], _mixins_routable__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"], _VSheet__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"]).extend({\n name: \'v-card\',\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4\n },\n raised: Boolean\n },\n computed: {\n classes: function classes() {\n return _objectSpread(_objectSpread({\n \'v-card\': true\n }, _mixins_routable__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].options.computed.classes.call(this)), {}, {\n \'v-card--flat\': this.flat,\n \'v-card--hover\': this.hover,\n \'v-card--link\': this.isClickable,\n \'v-card--loading\': this.loading,\n \'v-card--disabled\': this.disabled,\n \'v-card--raised\': this.raised\n }, _VSheet__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"].options.computed.classes.call(this));\n },\n styles: function styles() {\n var style = _objectSpread({}, _VSheet__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"].options.computed.styles.call(this));\n\n if (this.img) {\n style.background = "url(\\"".concat(this.img, "\\") center center / cover no-repeat");\n }\n\n return style;\n }\n },\n methods: {\n genProgress: function genProgress() {\n var render = _mixins_loadable__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"].options.methods.genProgress.call(this);\n if (!render) return null;\n return this.$createElement(\'div\', {\n staticClass: \'v-card__progress\',\n key: \'progress\'\n }, [render]);\n }\n },\n render: function render(h) {\n var _this$generateRouteLi = this.generateRouteLink(),\n tag = _this$generateRouteLi.tag,\n data = _this$generateRouteLi.data;\n\n data.style = this.styles;\n\n if (this.isClickable) {\n data.attrs = data.attrs || {};\n data.attrs.tabindex = 0;\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [this.genProgress(), this.$slots.default]);\n }\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvVkNhcmQvVkNhcmQudHM/NDNlZCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Q0FHQTs7Q0FHQTs7QUFDQTtDQUdBOztBQUNBO0FBS0E7O0FBQ2UsOEhBQU0sc0lBQU4sdURBQU0sQ0FBTixRQUlOO0FBQ1AsTUFBSSxFQURHO0FBR1AsT0FBSyxFQUFFO0FBQ0wsUUFBSSxFQURDO0FBRUwsU0FBSyxFQUZBO0FBR0wsT0FBRyxFQUhFO0FBSUwsUUFBSSxFQUpDO0FBS0wsZ0JBQVksRUFBRTtBQUNaLFVBQUksRUFBRSxTQURNLE1BQ04sQ0FETTtBQUVaLGFBQU8sRUFBRTtBQUZHLEtBTFQ7QUFTTCxVQUFNLEVBQUU7QUFUSCxHQUhBO0FBZVAsVUFBUSxFQUFFO0FBQ1IsV0FEUSxxQkFDRDtBQUNMO0FBQ0Usa0JBREs7QUFBUCxTQUVLLGlFQUFRLENBQVIsOEJBRkUsSUFFRixDQUZMO0FBR0Usd0JBQWdCLEtBSFgsSUFBUDtBQUlFLHlCQUFpQixLQUpaLEtBQVA7QUFLRSx3QkFBZ0IsS0FMWCxXQUFQO0FBTUUsMkJBQW1CLEtBTmQsT0FBUDtBQU9FLDRCQUFvQixLQVBmLFFBQVA7QUFRRSwwQkFBa0IsS0FSYjtBQUFQLFNBU0ssdURBQU0sQ0FBTixtQ0FUTDtBQUZNO0FBY1IsVUFkUSxvQkFjRjtBQUNKLFVBQU0sS0FBSyxxQkFDTix1REFBTSxDQUFOLGtDQURNLENBQVg7O0FBSUEsVUFBSSxLQUFKLEtBQWM7QUFDWixhQUFLLENBQUwsNkJBQTJCLEtBQTNCO0FBQ0Q7O0FBRUQ7QUFDRDtBQXhCTyxHQWZIO0FBMENQLFNBQU8sRUFBRTtBQUNQLGVBRE8seUJBQ0k7QUFDVCxVQUFNLE1BQU0sR0FBRyxnRUFBUSxDQUFSLGlDQUFmLElBQWUsQ0FBZjtBQUVBLFVBQUksQ0FBSixRQUFhO0FBRWIsYUFBTywyQkFBMkI7QUFDaEMsbUJBQVcsRUFEcUI7QUFFaEMsV0FBRyxFQUFFO0FBRjJCLE9BQTNCLEVBR0osQ0FISCxNQUdHLENBSEksQ0FBUDtBQUlEO0FBVk0sR0ExQ0Y7QUF1RFAsUUF2RE8sa0JBdURELENBdkRDLEVBdURFO0FBQUEsZ0NBQ2UsS0FBdEIsaUJBQXNCLEVBRGY7QUFBQSxRQUNELEdBREMseUJBQ0QsR0FEQztBQUFBLFFBQ00sSUFETix5QkFDTSxJQUROOztBQUdQLFFBQUksQ0FBSixRQUFhLEtBQWI7O0FBRUEsUUFBSSxLQUFKLGFBQXNCO0FBQ3BCLFVBQUksQ0FBSixRQUFhLElBQUksQ0FBSixTQUFiO0FBQ0EsVUFBSSxDQUFKO0FBQ0Q7O0FBRUQsV0FBTyxDQUFDLE1BQU0sd0JBQXdCLEtBQXhCLE9BQU4sSUFBTSxDQUFOLEVBQWlELENBQ3ZELEtBRHVELFdBQ3ZELEVBRHVELEVBRXZELFlBRkYsT0FBeUQsQ0FBakQsQ0FBUjtBQUlEO0FBckVNLENBSk0sQ0FBZiIsImZpbGUiOiIxNzYuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTdHlsZXNcbmltcG9ydCAnLi9WQ2FyZC5zYXNzJ1xuXG4vLyBFeHRlbnNpb25zXG5pbXBvcnQgVlNoZWV0IGZyb20gJy4uL1ZTaGVldCdcblxuLy8gTWl4aW5zXG5pbXBvcnQgTG9hZGFibGUgZnJvbSAnLi4vLi4vbWl4aW5zL2xvYWRhYmxlJ1xuaW1wb3J0IFJvdXRhYmxlIGZyb20gJy4uLy4uL21peGlucy9yb3V0YWJsZSdcblxuLy8gSGVscGVyc1xuaW1wb3J0IG1peGlucyBmcm9tICcuLi8uLi91dGlsL21peGlucydcblxuLy8gVHlwZXNcbmltcG9ydCB7IFZOb2RlIH0gZnJvbSAndnVlJ1xuXG4vKiBAdnVlL2NvbXBvbmVudCAqL1xuZXhwb3J0IGRlZmF1bHQgbWl4aW5zKFxuICBMb2FkYWJsZSxcbiAgUm91dGFibGUsXG4gIFZTaGVldFxuKS5leHRlbmQoe1xuICBuYW1lOiAndi1jYXJkJyxcblxuICBwcm9wczoge1xuICAgIGZsYXQ6IEJvb2xlYW4sXG4gICAgaG92ZXI6IEJvb2xlYW4sXG4gICAgaW1nOiBTdHJpbmcsXG4gICAgbGluazogQm9vbGVhbixcbiAgICBsb2FkZXJIZWlnaHQ6IHtcbiAgICAgIHR5cGU6IFtOdW1iZXIsIFN0cmluZ10sXG4gICAgICBkZWZhdWx0OiA0LFxuICAgIH0sXG4gICAgcmFpc2VkOiBCb29sZWFuLFxuICB9LFxuXG4gIGNvbXB1dGVkOiB7XG4gICAgY2xhc3NlcyAoKTogb2JqZWN0IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgICd2LWNhcmQnOiB0cnVlLFxuICAgICAgICAuLi5Sb3V0YWJsZS5vcHRpb25zLmNvbXB1dGVkLmNsYXNzZXMuY2FsbCh0aGlzKSxcbiAgICAgICAgJ3YtY2FyZC0tZmxhdCc6IHRoaXMuZmxhdCxcbiAgICAgICAgJ3YtY2FyZC0taG92ZXInOiB0aGlzLmhvdmVyLFxuICAgICAgICAndi1jYXJkLS1saW5rJzogdGhpcy5pc0NsaWNrYWJsZSxcbiAgICAgICAgJ3YtY2FyZC0tbG9hZGluZyc6IHRoaXMubG9hZGluZyxcbiAgICAgICAgJ3YtY2FyZC0tZGlzYWJsZWQnOiB0aGlzLmRpc2FibGVkLFxuICAgICAgICAndi1jYXJkLS1yYWlzZWQnOiB0aGlzLnJhaXNlZCxcbiAgICAgICAgLi4uVlNoZWV0Lm9wdGlvbnMuY29tcHV0ZWQuY2xhc3Nlcy5jYWxsKHRoaXMpLFxuICAgICAgfVxuICAgIH0sXG4gICAgc3R5bGVzICgpOiBvYmplY3Qge1xuICAgICAgY29uc3Qgc3R5bGU6IERpY3Rpb25hcnk8c3RyaW5nPiA9IHtcbiAgICAgICAgLi4uVlNoZWV0Lm9wdGlvbnMuY29tcHV0ZWQuc3R5bGVzLmNhbGwodGhpcyksXG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmltZykge1xuICAgICAgICBzdHlsZS5iYWNrZ3JvdW5kID0gYHVybChcIiR7dGhpcy5pbWd9XCIpIGNlbnRlciBjZW50ZXIgLyBjb3ZlciBuby1yZXBlYXRgXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBzdHlsZVxuICAgIH0sXG4gIH0sXG5cbiAgbWV0aG9kczoge1xuICAgIGdlblByb2dyZXNzICgpIHtcbiAgICAgIGNvbnN0IHJlbmRlciA9IExvYWRhYmxlLm9wdGlvbnMubWV0aG9kcy5nZW5Qcm9ncmVzcy5jYWxsKHRoaXMpXG5cbiAgICAgIGlmICghcmVuZGVyKSByZXR1cm4gbnVsbFxuXG4gICAgICByZXR1cm4gdGhpcy4kY3JlYXRlRWxlbWVudCgnZGl2Jywge1xuICAgICAgICBzdGF0aWNDbGFzczogJ3YtY2FyZF9fcHJvZ3Jlc3MnLFxuICAgICAgICBrZXk6ICdwcm9ncmVzcycsXG4gICAgICB9LCBbcmVuZGVyXSlcbiAgICB9LFxuICB9LFxuXG4gIHJlbmRlciAoaCk6IFZOb2RlIHtcbiAgICBjb25zdCB7IHRhZywgZGF0YSB9ID0gdGhpcy5nZW5lcmF0ZVJvdXRlTGluaygpXG5cbiAgICBkYXRhLnN0eWxlID0gdGhpcy5zdHlsZXNcblxuICAgIGlmICh0aGlzLmlzQ2xpY2thYmxlKSB7XG4gICAgICBkYXRhLmF0dHJzID0gZGF0YS5hdHRycyB8fCB7fVxuICAgICAgZGF0YS5hdHRycy50YWJpbmRleCA9IDBcbiAgICB9XG5cbiAgICByZXR1cm4gaCh0YWcsIHRoaXMuc2V0QmFja2dyb3VuZENvbG9yKHRoaXMuY29sb3IsIGRhdGEpLCBbXG4gICAgICB0aGlzLmdlblByb2dyZXNzKCksXG4gICAgICB0aGlzLiRzbG90cy5kZWZhdWx0LFxuICAgIF0pXG4gIH0sXG59KVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///176\n')},function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var core_js_modules_es7_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);\n/* harmony import */ var core_js_modules_es7_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es7_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es6_symbol__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8);\n/* harmony import */ var core_js_modules_es6_symbol__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_symbol__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6);\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4);\n/* harmony import */ var core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9);\n/* harmony import */ var core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1);\n/* harmony import */ var core_js_modules_es6_number_constructor__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(20);\n/* harmony import */ var core_js_modules_es6_number_constructor__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_number_constructor__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _src_components_VAvatar_VAvatar_sass__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(341);\n/* harmony import */ var _src_components_VAvatar_VAvatar_sass__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_src_components_VAvatar_VAvatar_sass__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(21);\n/* harmony import */ var _mixins_measurable__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(94);\n/* harmony import */ var _mixins_roundable__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(95);\n/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(0);\n/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(5);\n\n\n\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n // Mixins\n\n\n\n // Utilities\n\n\n\n/* harmony default export */ __webpack_exports__["a"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_12__[/* default */ "a"])(_mixins_colorable__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"], _mixins_measurable__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"], _mixins_roundable__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"]).extend({\n name: \'v-avatar\',\n props: {\n left: Boolean,\n right: Boolean,\n size: {\n type: [Number, String],\n default: 48\n }\n },\n computed: {\n classes: function classes() {\n return _objectSpread({\n \'v-avatar--left\': this.left,\n \'v-avatar--right\': this.right\n }, this.roundedClasses);\n },\n styles: function styles() {\n return _objectSpread({\n height: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_11__[/* convertToUnit */ "g"])(this.size),\n minWidth: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_11__[/* convertToUnit */ "g"])(this.size),\n width: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_11__[/* convertToUnit */ "g"])(this.size)\n }, this.measurableStyles);\n }\n },\n render: function render(h) {\n var data = {\n staticClass: \'v-avatar\',\n class: this.classes,\n style: this.styles,\n on: this.$listeners\n };\n return h(\'div\', this.setBackgroundColor(this.color, data), this.$slots.default);\n }\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvVkF2YXRhci9WQXZhdGFyLnRzPzdmMzYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FFQTs7QUFDQTtBQUNBO0NBR0E7O0FBQ0E7QUFJQTtBQUVlLDhIQUFNLHdJQUFOLGtFQUFNLENBQU4sUUFLTjtBQUNQLE1BQUksRUFERztBQUdQLE9BQUssRUFBRTtBQUNMLFFBQUksRUFEQztBQUVMLFNBQUssRUFGQTtBQUdMLFFBQUksRUFBRTtBQUNKLFVBQUksRUFBRSxTQURGLE1BQ0UsQ0FERjtBQUVKLGFBQU8sRUFBRTtBQUZMO0FBSEQsR0FIQTtBQVlQLFVBQVEsRUFBRTtBQUNSLFdBRFEscUJBQ0Q7QUFDTDtBQUNFLDBCQUFrQixLQURiLElBQVA7QUFFRSwyQkFBbUIsS0FGZDtBQUFQLFNBR0ssS0FBSyxjQUhWO0FBRk07QUFRUixVQVJRLG9CQVFGO0FBQ0o7QUFDRSxjQUFNLEVBQUUsNEVBQWEsQ0FBQyxLQURqQixJQUNnQixDQUR2QjtBQUVFLGdCQUFRLEVBQUUsNEVBQWEsQ0FBQyxLQUZuQixJQUVrQixDQUZ6QjtBQUdFLGFBQUssRUFBRSw0RUFBYSxDQUFDLEtBSGhCLElBR2U7QUFIdEIsU0FJSyxLQUFLLGdCQUpWO0FBTUQ7QUFmTyxHQVpIO0FBOEJQLFFBOUJPLGtCQThCRCxDQTlCQyxFQThCRTtBQUNQLFFBQU0sSUFBSSxHQUFHO0FBQ1gsaUJBQVcsRUFEQTtBQUVYLFdBQUssRUFBRSxLQUZJO0FBR1gsV0FBSyxFQUFFLEtBSEk7QUFJWCxRQUFFLEVBQUUsS0FBSztBQUpFLEtBQWI7QUFPQSxXQUFPLENBQUMsUUFBUSx3QkFBd0IsS0FBeEIsT0FBUixJQUFRLENBQVIsRUFBbUQsWUFBM0QsT0FBUSxDQUFSO0FBQ0Q7QUF2Q00sQ0FMTSxDQUFmIiwiZmlsZSI6IjE3Ny5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnLi9WQXZhdGFyLnNhc3MnXG5cbi8vIE1peGluc1xuaW1wb3J0IENvbG9yYWJsZSBmcm9tICcuLi8uLi9taXhpbnMvY29sb3JhYmxlJ1xuaW1wb3J0IE1lYXN1cmFibGUgZnJvbSAnLi4vLi4vbWl4aW5zL21lYXN1cmFibGUnXG5pbXBvcnQgUm91bmRhYmxlIGZyb20gJy4uLy4uL21peGlucy9yb3VuZGFibGUnXG5cbi8vIFV0aWxpdGllc1xuaW1wb3J0IHsgY29udmVydFRvVW5pdCB9IGZyb20gJy4uLy4uL3V0aWwvaGVscGVycydcblxuLy8gVHlwZXNcbmltcG9ydCB7IFZOb2RlIH0gZnJvbSAndnVlJ1xuaW1wb3J0IG1peGlucyBmcm9tICcuLi8uLi91dGlsL21peGlucydcblxuZXhwb3J0IGRlZmF1bHQgbWl4aW5zKFxuICBDb2xvcmFibGUsXG4gIE1lYXN1cmFibGUsXG4gIFJvdW5kYWJsZSxcbiAgLyogQHZ1ZS9jb21wb25lbnQgKi9cbikuZXh0ZW5kKHtcbiAgbmFtZTogJ3YtYXZhdGFyJyxcblxuICBwcm9wczoge1xuICAgIGxlZnQ6IEJvb2xlYW4sXG4gICAgcmlnaHQ6IEJvb2xlYW4sXG4gICAgc2l6ZToge1xuICAgICAgdHlwZTogW051bWJlciwgU3RyaW5nXSxcbiAgICAgIGRlZmF1bHQ6IDQ4LFxuICAgIH0sXG4gIH0sXG5cbiAgY29tcHV0ZWQ6IHtcbiAgICBjbGFzc2VzICgpOiBvYmplY3Qge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgJ3YtYXZhdGFyLS1sZWZ0JzogdGhpcy5sZWZ0LFxuICAgICAgICAndi1hdmF0YXItLXJpZ2h0JzogdGhpcy5yaWdodCxcbiAgICAgICAgLi4udGhpcy5yb3VuZGVkQ2xhc3NlcyxcbiAgICAgIH1cbiAgICB9LFxuICAgIHN0eWxlcyAoKTogb2JqZWN0IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGhlaWdodDogY29udmVydFRvVW5pdCh0aGlzLnNpemUpLFxuICAgICAgICBtaW5XaWR0aDogY29udmVydFRvVW5pdCh0aGlzLnNpemUpLFxuICAgICAgICB3aWR0aDogY29udmVydFRvVW5pdCh0aGlzLnNpemUpLFxuICAgICAgICAuLi50aGlzLm1lYXN1cmFibGVTdHlsZXMsXG4gICAgICB9XG4gICAgfSxcbiAgfSxcblxuICByZW5kZXIgKGgpOiBWTm9kZSB7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIHN0YXRpY0NsYXNzOiAndi1hdmF0YXInLFxuICAgICAgY2xhc3M6IHRoaXMuY2xhc3NlcyxcbiAgICAgIHN0eWxlOiB0aGlzLnN0eWxlcyxcbiAgICAgIG9uOiB0aGlzLiRsaXN0ZW5lcnMsXG4gICAgfVxuXG4gICAgcmV0dXJuIGgoJ2RpdicsIHRoaXMuc2V0QmFja2dyb3VuZENvbG9yKHRoaXMuY29sb3IsIGRhdGEpLCB0aGlzLiRzbG90cy5kZWZhdWx0KVxuICB9LFxufSlcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///177\n')},function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var core_js_modules_es7_symbol_async_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(49);\n/* harmony import */ var core_js_modules_es7_symbol_async_iterator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es7_symbol_async_iterator__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es6_string_iterator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44);\n/* harmony import */ var core_js_modules_es6_string_iterator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_string_iterator__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es6_array_from__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(43);\n/* harmony import */ var core_js_modules_es6_array_from__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_array_from__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(26);\n/* harmony import */ var core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(22);\n/* harmony import */ var core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es6_date_to_string__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(23);\n/* harmony import */ var core_js_modules_es6_date_to_string__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_date_to_string__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var core_js_modules_es7_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(11);\n/* harmony import */ var core_js_modules_es7_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es7_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var core_js_modules_es6_symbol__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(8);\n/* harmony import */ var core_js_modules_es6_symbol__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_symbol__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(6);\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(4);\n/* harmony import */ var core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(9);\n/* harmony import */ var core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var core_js_modules_es6_array_find_index__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(149);\n/* harmony import */ var core_js_modules_es6_array_find_index__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_array_find_index__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(1);\n/* harmony import */ var _src_components_VList_VList_sass__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(348);\n/* harmony import */ var _src_components_VList_VList_sass__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_src_components_VList_VList_sass__WEBPACK_IMPORTED_MODULE_13__);\n/* harmony import */ var _VSheet_VSheet__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(38);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_12__[/* default */ "a"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n// Styles\n // Components\n\n\n/* @vue/component */\n\n/* harmony default export */ __webpack_exports__["a"] = (_VSheet_VSheet__WEBPACK_IMPORTED_MODULE_14__[/* default */ "a"].extend().extend({\n name: \'v-list\',\n provide: function provide() {\n return {\n isInList: true,\n list: this\n };\n },\n inject: {\n isInMenu: {\n default: false\n },\n isInNav: {\n default: false\n }\n },\n props: {\n dense: Boolean,\n disabled: Boolean,\n expand: Boolean,\n flat: Boolean,\n nav: Boolean,\n rounded: Boolean,\n subheader: Boolean,\n threeLine: Boolean,\n twoLine: Boolean\n },\n data: function data() {\n return {\n groups: []\n };\n },\n computed: {\n classes: function classes() {\n return _objectSpread(_objectSpread({}, _VSheet_VSheet__WEBPACK_IMPORTED_MODULE_14__[/* default */ "a"].options.computed.classes.call(this)), {}, {\n \'v-list--dense\': this.dense,\n \'v-list--disabled\': this.disabled,\n \'v-list--flat\': this.flat,\n \'v-list--nav\': this.nav,\n \'v-list--rounded\': this.rounded,\n \'v-list--subheader\': this.subheader,\n \'v-list--two-line\': this.twoLine,\n \'v-list--three-line\': this.threeLine\n });\n }\n },\n methods: {\n register: function register(content) {\n this.groups.push(content);\n },\n unregister: function unregister(content) {\n var index = this.groups.findIndex(function (g) {\n return g._uid === content._uid;\n });\n if (index > -1) this.groups.splice(index, 1);\n },\n listClick: function listClick(uid) {\n if (this.expand) return;\n\n var _iterator = _createForOfIteratorHelper(this.groups),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var group = _step.value;\n group.toggle(uid);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n },\n render: function render(h) {\n var data = {\n staticClass: \'v-list\',\n class: this.classes,\n style: this.styles,\n attrs: _objectSpread({\n role: this.isInNav || this.isInMenu ? undefined : \'list\'\n }, this.attrs$)\n };\n return h(this.tag, this.setBackgroundColor(this.color, data), [this.$slots.default]);\n }\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvVkxpc3QvVkxpc3QudHM/MzE1YSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Q0FJQTs7QUFDQTtBQVlBOztBQUNlLHdIQUFNLENBQU4sZ0JBQWdDO0FBQzdDLE1BQUksRUFEeUM7QUFHN0MsU0FINkMscUJBR3RDO0FBQ0wsV0FBTztBQUNMLGNBQVEsRUFESDtBQUVMLFVBQUksRUFBRTtBQUZELEtBQVA7QUFKMkM7QUFVN0MsUUFBTSxFQUFFO0FBQ04sWUFBUSxFQUFFO0FBQ1IsYUFBTyxFQUFFO0FBREQsS0FESjtBQUlOLFdBQU8sRUFBRTtBQUNQLGFBQU8sRUFBRTtBQURGO0FBSkgsR0FWcUM7QUFtQjdDLE9BQUssRUFBRTtBQUNMLFNBQUssRUFEQTtBQUVMLFlBQVEsRUFGSDtBQUdMLFVBQU0sRUFIRDtBQUlMLFFBQUksRUFKQztBQUtMLE9BQUcsRUFMRTtBQU1MLFdBQU8sRUFORjtBQU9MLGFBQVMsRUFQSjtBQVFMLGFBQVMsRUFSSjtBQVNMLFdBQU8sRUFBRTtBQVRKLEdBbkJzQztBQStCN0MsTUFBSSxFQUFFO0FBQUEsV0FBTztBQUNYLFlBQU0sRUFBRTtBQURHLEtBQVA7QUFBQSxHQS9CdUM7QUFtQzdDLFVBQVEsRUFBRTtBQUNSLFdBRFEscUJBQ0Q7QUFDTCw2Q0FDSywrREFBTSxDQUFOLDhCQURFLElBQ0YsQ0FETDtBQUVFLHlCQUFpQixLQUZaLEtBQVA7QUFHRSw0QkFBb0IsS0FIZixRQUFQO0FBSUUsd0JBQWdCLEtBSlgsSUFBUDtBQUtFLHVCQUFlLEtBTFYsR0FBUDtBQU1FLDJCQUFtQixLQU5kLE9BQVA7QUFPRSw2QkFBcUIsS0FQaEIsU0FBUDtBQVFFLDRCQUFvQixLQVJmLE9BQVA7QUFTRSw4QkFBc0IsS0FBSztBQVQ3QjtBQVdEO0FBYk8sR0FuQ21DO0FBbUQ3QyxTQUFPLEVBQUU7QUFDUCxZQURPLG9CQUNDLE9BREQsRUFDOEI7QUFDbkM7QUFGSztBQUlQLGNBSk8sc0JBSUcsT0FKSCxFQUlnQztBQUNyQyxVQUFNLEtBQUssR0FBRyxzQkFBc0IsV0FBQztBQUFBLGVBQUksQ0FBQyxDQUFELFNBQVcsT0FBTyxDQUEzRCxJQUFxQztBQUFBLE9BQXZCLENBQWQ7QUFFQSxVQUFJLEtBQUssR0FBRyxDQUFaLEdBQWdCO0FBUFg7QUFTUCxhQVRPLHFCQVNFLEdBVEYsRUFTZTtBQUNwQixVQUFJLEtBQUosUUFBaUI7O0FBREcsaURBR0EsS0FBcEIsTUFIb0I7QUFBQTs7QUFBQTtBQUdwQiw0REFBaUM7QUFBQSxjQUFqQyxLQUFpQztBQUMvQixlQUFLLENBQUw7QUFDRDtBQUxtQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTXJCO0FBZk0sR0FuRG9DO0FBcUU3QyxRQXJFNkMsa0JBcUV2QyxDQXJFdUMsRUFxRXBDO0FBQ1AsUUFBTSxJQUFJLEdBQUc7QUFDWCxpQkFBVyxFQURBO0FBRVgsV0FBSyxFQUFFLEtBRkk7QUFHWCxXQUFLLEVBQUUsS0FISTtBQUlYLFdBQUs7QUFDSCxZQUFJLEVBQUUsZ0JBQWdCLEtBQWhCLHVCQUREO0FBQUYsU0FFQSxLQUFLLE1BRkw7QUFKTSxLQUFiO0FBVUEsV0FBTyxDQUFDLENBQUMsS0FBRCxLQUFXLHdCQUF3QixLQUF4QixPQUFYLElBQVcsQ0FBWCxFQUFzRCxDQUFDLFlBQS9ELE9BQThELENBQXRELENBQVI7QUFDRDtBQWpGNEMsQ0FBaEMsQ0FBZiIsImZpbGUiOiIxNzguanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTdHlsZXNcbmltcG9ydCAnLi9WTGlzdC5zYXNzJ1xuaW1wb3J0IFZMaXN0R3JvdXAgZnJvbSAnLi9WTGlzdEdyb3VwJ1xuXG4vLyBDb21wb25lbnRzXG5pbXBvcnQgVlNoZWV0IGZyb20gJy4uL1ZTaGVldC9WU2hlZXQnXG5cbi8vIFR5cGVzXG5pbXBvcnQgeyBWTm9kZSB9IGZyb20gJ3Z1ZSdcblxudHlwZSBWTGlzdEdyb3VwSW5zdGFuY2UgPSBJbnN0YW5jZVR5cGU8dHlwZW9mIFZMaXN0R3JvdXA+XG5cbmludGVyZmFjZSBvcHRpb25zIGV4dGVuZHMgSW5zdGFuY2VUeXBlPHR5cGVvZiBWU2hlZXQ+IHtcbiAgaXNJbk1lbnU6IGJvb2xlYW5cbiAgaXNJbk5hdjogYm9vbGVhblxufVxuXG4vKiBAdnVlL2NvbXBvbmVudCAqL1xuZXhwb3J0IGRlZmF1bHQgVlNoZWV0LmV4dGVuZDxvcHRpb25zPigpLmV4dGVuZCh7XG4gIG5hbWU6ICd2LWxpc3QnLFxuXG4gIHByb3ZpZGUgKCk6IG9iamVjdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlzSW5MaXN0OiB0cnVlLFxuICAgICAgbGlzdDogdGhpcyxcbiAgICB9XG4gIH0sXG5cbiAgaW5qZWN0OiB7XG4gICAgaXNJbk1lbnU6IHtcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgIH0sXG4gICAgaXNJbk5hdjoge1xuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgfSxcbiAgfSxcblxuICBwcm9wczoge1xuICAgIGRlbnNlOiBCb29sZWFuLFxuICAgIGRpc2FibGVkOiBCb29sZWFuLFxuICAgIGV4cGFuZDogQm9vbGVhbixcbiAgICBmbGF0OiBCb29sZWFuLFxuICAgIG5hdjogQm9vbGVhbixcbiAgICByb3VuZGVkOiBCb29sZWFuLFxuICAgIHN1YmhlYWRlcjogQm9vbGVhbixcbiAgICB0aHJlZUxpbmU6IEJvb2xlYW4sXG4gICAgdHdvTGluZTogQm9vbGVhbixcbiAgfSxcblxuICBkYXRhOiAoKSA9PiAoe1xuICAgIGdyb3VwczogW10gYXMgVkxpc3RHcm91cEluc3RhbmNlW10sXG4gIH0pLFxuXG4gIGNvbXB1dGVkOiB7XG4gICAgY2xhc3NlcyAoKTogb2JqZWN0IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLlZTaGVldC5vcHRpb25zLmNvbXB1dGVkLmNsYXNzZXMuY2FsbCh0aGlzKSxcbiAgICAgICAgJ3YtbGlzdC0tZGVuc2UnOiB0aGlzLmRlbnNlLFxuICAgICAgICAndi1saXN0LS1kaXNhYmxlZCc6IHRoaXMuZGlzYWJsZWQsXG4gICAgICAgICd2LWxpc3QtLWZsYXQnOiB0aGlzLmZsYXQsXG4gICAgICAgICd2LWxpc3QtLW5hdic6IHRoaXMubmF2LFxuICAgICAgICAndi1saXN0LS1yb3VuZGVkJzogdGhpcy5yb3VuZGVkLFxuICAgICAgICAndi1saXN0LS1zdWJoZWFkZXInOiB0aGlzLnN1YmhlYWRlcixcbiAgICAgICAgJ3YtbGlzdC0tdHdvLWxpbmUnOiB0aGlzLnR3b0xpbmUsXG4gICAgICAgICd2LWxpc3QtLXRocmVlLWxpbmUnOiB0aGlzLnRocmVlTGluZSxcbiAgICAgIH1cbiAgICB9LFxuICB9LFxuXG4gIG1ldGhvZHM6IHtcbiAgICByZWdpc3RlciAoY29udGVudDogVkxpc3RHcm91cEluc3RhbmNlKSB7XG4gICAgICB0aGlzLmdyb3Vwcy5wdXNoKGNvbnRlbnQpXG4gICAgfSxcbiAgICB1bnJlZ2lzdGVyIChjb250ZW50OiBWTGlzdEdyb3VwSW5zdGFuY2UpIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5ncm91cHMuZmluZEluZGV4KGcgPT4gZy5fdWlkID09PSBjb250ZW50Ll91aWQpXG5cbiAgICAgIGlmIChpbmRleCA+IC0xKSB0aGlzLmdyb3Vwcy5zcGxpY2UoaW5kZXgsIDEpXG4gICAgfSxcbiAgICBsaXN0Q2xpY2sgKHVpZDogbnVtYmVyKSB7XG4gICAgICBpZiAodGhpcy5leHBhbmQpIHJldHVyblxuXG4gICAgICBmb3IgKGNvbnN0IGdyb3VwIG9mIHRoaXMuZ3JvdXBzKSB7XG4gICAgICAgIGdyb3VwLnRvZ2dsZSh1aWQpXG4gICAgICB9XG4gICAgfSxcbiAgfSxcblxuICByZW5kZXIgKGgpOiBWTm9kZSB7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIHN0YXRpY0NsYXNzOiAndi1saXN0JyxcbiAgICAgIGNsYXNzOiB0aGlzLmNsYXNzZXMsXG4gICAgICBzdHlsZTogdGhpcy5zdHlsZXMsXG4gICAgICBhdHRyczoge1xuICAgICAgICByb2xlOiB0aGlzLmlzSW5OYXYgfHwgdGhpcy5pc0luTWVudSA/IHVuZGVmaW5lZCA6ICdsaXN0JyxcbiAgICAgICAgLi4udGhpcy5hdHRycyQsXG4gICAgICB9LFxuICAgIH1cblxuICAgIHJldHVybiBoKHRoaXMudGFnLCB0aGlzLnNldEJhY2tncm91bmRDb2xvcih0aGlzLmNvbG9yLCBkYXRhKSwgW3RoaXMuJHNsb3RzLmRlZmF1bHRdKVxuICB9LFxufSlcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///178\n')},function(module,__webpack_exports__,__webpack_require__){"use strict";eval("/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n// Types\n\n/* @vue/component */\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (vue__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"].extend({\n name: 'v-list-item-action',\n functional: true,\n render: function render(h, _ref) {\n var data = _ref.data,\n _ref$children = _ref.children,\n children = _ref$children === void 0 ? [] : _ref$children;\n data.staticClass = data.staticClass ? \"v-list-item__action \".concat(data.staticClass) : 'v-list-item__action';\n var filteredChild = children.filter(function (VNode) {\n return VNode.isComment === false && VNode.text !== ' ';\n });\n if (filteredChild.length > 1) data.staticClass += ' v-list-item__action--stack';\n return h('div', data, children);\n }\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvVkxpc3QvVkxpc3RJdGVtQWN0aW9uLnRzPzhkMjQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUNBO0FBRUE7O0FBQ2UsNEdBQUcsQ0FBSCxPQUFXO0FBQ3hCLE1BQUksRUFEb0I7QUFHeEIsWUFBVSxFQUhjO0FBS3hCLFFBTHdCLGtCQUtsQixDQUxrQixRQUtVO0FBQUEsUUFBdkIsSUFBdUIsUUFBdkIsSUFBdUI7QUFBQSw2QkFBZixRQUFlO0FBQUEsUUFBZixRQUFlLDhCQUFKLEVBQUk7QUFDaEMsUUFBSSxDQUFKLGNBQW1CLElBQUksQ0FBSiw0Q0FBMEMsSUFBSSxDQUE5QyxlQUFuQjtBQUNBLFFBQU0sYUFBYSxHQUFHLFFBQVEsQ0FBUixPQUFnQixlQUFLLEVBQUc7QUFDNUMsYUFBTyxLQUFLLENBQUwsdUJBQTZCLEtBQUssQ0FBTCxTQUFwQztBQURGLEtBQXNCLENBQXRCO0FBR0EsUUFBSSxhQUFhLENBQWIsU0FBSixHQUE4QixJQUFJLENBQUo7QUFFOUIsV0FBTyxDQUFDLGNBQVIsUUFBUSxDQUFSO0FBQ0Q7QUFidUIsQ0FBWCxDQUFmIiwiZmlsZSI6IjE3OS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFR5cGVzXG5pbXBvcnQgVnVlLCB7IFZOb2RlIH0gZnJvbSAndnVlJ1xuXG4vKiBAdnVlL2NvbXBvbmVudCAqL1xuZXhwb3J0IGRlZmF1bHQgVnVlLmV4dGVuZCh7XG4gIG5hbWU6ICd2LWxpc3QtaXRlbS1hY3Rpb24nLFxuXG4gIGZ1bmN0aW9uYWw6IHRydWUsXG5cbiAgcmVuZGVyIChoLCB7IGRhdGEsIGNoaWxkcmVuID0gW10gfSk6IFZOb2RlIHtcbiAgICBkYXRhLnN0YXRpY0NsYXNzID0gZGF0YS5zdGF0aWNDbGFzcyA/IGB2LWxpc3QtaXRlbV9fYWN0aW9uICR7ZGF0YS5zdGF0aWNDbGFzc31gIDogJ3YtbGlzdC1pdGVtX19hY3Rpb24nXG4gICAgY29uc3QgZmlsdGVyZWRDaGlsZCA9IGNoaWxkcmVuLmZpbHRlcihWTm9kZSA9PiB7XG4gICAgICByZXR1cm4gVk5vZGUuaXNDb21tZW50ID09PSBmYWxzZSAmJiBWTm9kZS50ZXh0ICE9PSAnICdcbiAgICB9KVxuICAgIGlmIChmaWx0ZXJlZENoaWxkLmxlbmd0aCA+IDEpIGRhdGEuc3RhdGljQ2xhc3MgKz0gJyB2LWxpc3QtaXRlbV9fYWN0aW9uLS1zdGFjaydcblxuICAgIHJldHVybiBoKCdkaXYnLCBkYXRhLCBjaGlsZHJlbilcbiAgfSxcbn0pXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///179\n")},,,,function(module,exports,__webpack_require__){eval("var Clipboard = __webpack_require__(282) // FIXME: workaround for browserify\n\nvar VueClipboardConfig = {\n autoSetContainer: false,\n appendToBody: true // This fixes IE, see #50\n}\n\nvar VueClipboard = {\n install: function (Vue) {\n Vue.prototype.$clipboardConfig = VueClipboardConfig\n Vue.prototype.$copyText = function (text, container) {\n return new Promise(function (resolve, reject) {\n var fakeElement = document.createElement('button')\n var clipboard = new Clipboard(fakeElement, {\n text: function () { return text },\n action: function () { return 'copy' },\n container: typeof container === 'object' ? container : document.body\n })\n clipboard.on('success', function (e) {\n clipboard.destroy()\n resolve(e)\n })\n clipboard.on('error', function (e) {\n clipboard.destroy()\n reject(e)\n })\n if (VueClipboardConfig.appendToBody) document.body.appendChild(fakeElement)\n fakeElement.click()\n if (VueClipboardConfig.appendToBody) document.body.removeChild(fakeElement)\n })\n }\n\n Vue.directive('clipboard', {\n bind: function (el, binding, vnode) {\n if (binding.arg === 'success') {\n el._vClipboard_success = binding.value\n } else if (binding.arg === 'error') {\n el._vClipboard_error = binding.value\n } else {\n var clipboard = new Clipboard(el, {\n text: function () { return binding.value },\n action: function () { return binding.arg === 'cut' ? 'cut' : 'copy' },\n container: VueClipboardConfig.autoSetContainer ? el : undefined\n })\n clipboard.on('success', function (e) {\n var callback = el._vClipboard_success\n callback && callback(e)\n })\n clipboard.on('error', function (e) {\n var callback = el._vClipboard_error\n callback && callback(e)\n })\n el._vClipboard = clipboard\n }\n },\n update: function (el, binding) {\n if (binding.arg === 'success') {\n el._vClipboard_success = binding.value\n } else if (binding.arg === 'error') {\n el._vClipboard_error = binding.value\n } else {\n el._vClipboard.text = function () { return binding.value }\n el._vClipboard.action = function () { return binding.arg === 'cut' ? 'cut' : 'copy' }\n }\n },\n unbind: function (el, binding) {\n if (binding.arg === 'success') {\n delete el._vClipboard_success\n } else if (binding.arg === 'error') {\n delete el._vClipboard_error\n } else {\n el._vClipboard.destroy()\n delete el._vClipboard\n }\n }\n })\n },\n config: VueClipboardConfig\n}\n\nif (true) {\n module.exports = VueClipboard\n} else {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdnVlLWNsaXBib2FyZDIvdnVlLWNsaXBib2FyZC5qcz80ZWI1Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdCQUFnQixtQkFBTyxDQUFDLEdBQWlDOztBQUV6RDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QixjQUFjO0FBQzNDLCtCQUErQixnQkFBZ0I7QUFDL0M7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxTQUFTO0FBQ1Q7QUFDQSwrQkFBK0IsdUJBQXVCO0FBQ3RELGlDQUFpQyxnREFBZ0Q7QUFDakY7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBLFNBQVM7QUFDVCw2Q0FBNkM7QUFDN0MsK0NBQStDO0FBQy9DO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHO0FBQ0g7QUFDQTs7QUFFQSxJQUFJLElBQTJCO0FBQy9CO0FBQ0EsQ0FBQyxNQUFNLEVBSU4iLCJmaWxlIjoiMTgzLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIENsaXBib2FyZCA9IHJlcXVpcmUoJ2NsaXBib2FyZC9kaXN0L2NsaXBib2FyZC5taW4uanMnKSAvLyBGSVhNRTogd29ya2Fyb3VuZCBmb3IgYnJvd3NlcmlmeVxuXG52YXIgVnVlQ2xpcGJvYXJkQ29uZmlnID0ge1xuICBhdXRvU2V0Q29udGFpbmVyOiBmYWxzZSxcbiAgYXBwZW5kVG9Cb2R5OiB0cnVlIC8vIFRoaXMgZml4ZXMgSUUsIHNlZSAjNTBcbn1cblxudmFyIFZ1ZUNsaXBib2FyZCA9IHtcbiAgaW5zdGFsbDogZnVuY3Rpb24gKFZ1ZSkge1xuICAgIFZ1ZS5wcm90b3R5cGUuJGNsaXBib2FyZENvbmZpZyA9IFZ1ZUNsaXBib2FyZENvbmZpZ1xuICAgIFZ1ZS5wcm90b3R5cGUuJGNvcHlUZXh0ID0gZnVuY3Rpb24gKHRleHQsIGNvbnRhaW5lcikge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgdmFyIGZha2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJylcbiAgICAgICAgdmFyIGNsaXBib2FyZCA9IG5ldyBDbGlwYm9hcmQoZmFrZUVsZW1lbnQsIHtcbiAgICAgICAgICB0ZXh0OiBmdW5jdGlvbiAoKSB7IHJldHVybiB0ZXh0IH0sXG4gICAgICAgICAgYWN0aW9uOiBmdW5jdGlvbiAoKSB7IHJldHVybiAnY29weScgfSxcbiAgICAgICAgICBjb250YWluZXI6IHR5cGVvZiBjb250YWluZXIgPT09ICdvYmplY3QnID8gY29udGFpbmVyIDogZG9jdW1lbnQuYm9keVxuICAgICAgICB9KVxuICAgICAgICBjbGlwYm9hcmQub24oJ3N1Y2Nlc3MnLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgIGNsaXBib2FyZC5kZXN0cm95KClcbiAgICAgICAgICByZXNvbHZlKGUpXG4gICAgICAgIH0pXG4gICAgICAgIGNsaXBib2FyZC5vbignZXJyb3InLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgIGNsaXBib2FyZC5kZXN0cm95KClcbiAgICAgICAgICByZWplY3QoZSlcbiAgICAgICAgfSlcbiAgICAgICAgaWYgKFZ1ZUNsaXBib2FyZENvbmZpZy5hcHBlbmRUb0JvZHkpIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZmFrZUVsZW1lbnQpXG4gICAgICAgIGZha2VFbGVtZW50LmNsaWNrKClcbiAgICAgICAgaWYgKFZ1ZUNsaXBib2FyZENvbmZpZy5hcHBlbmRUb0JvZHkpIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZmFrZUVsZW1lbnQpXG4gICAgICB9KVxuICAgIH1cblxuICAgIFZ1ZS5kaXJlY3RpdmUoJ2NsaXBib2FyZCcsIHtcbiAgICAgIGJpbmQ6IGZ1bmN0aW9uIChlbCwgYmluZGluZywgdm5vZGUpIHtcbiAgICAgICAgaWYgKGJpbmRpbmcuYXJnID09PSAnc3VjY2VzcycpIHtcbiAgICAgICAgICBlbC5fdkNsaXBib2FyZF9zdWNjZXNzID0gYmluZGluZy52YWx1ZVxuICAgICAgICB9IGVsc2UgaWYgKGJpbmRpbmcuYXJnID09PSAnZXJyb3InKSB7XG4gICAgICAgICAgZWwuX3ZDbGlwYm9hcmRfZXJyb3IgPSBiaW5kaW5nLnZhbHVlXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFyIGNsaXBib2FyZCA9IG5ldyBDbGlwYm9hcmQoZWwsIHtcbiAgICAgICAgICAgIHRleHQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGJpbmRpbmcudmFsdWUgfSxcbiAgICAgICAgICAgIGFjdGlvbjogZnVuY3Rpb24gKCkgeyByZXR1cm4gYmluZGluZy5hcmcgPT09ICdjdXQnID8gJ2N1dCcgOiAnY29weScgfSxcbiAgICAgICAgICAgIGNvbnRhaW5lcjogVnVlQ2xpcGJvYXJkQ29uZmlnLmF1dG9TZXRDb250YWluZXIgPyBlbCA6IHVuZGVmaW5lZFxuICAgICAgICAgIH0pXG4gICAgICAgICAgY2xpcGJvYXJkLm9uKCdzdWNjZXNzJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIHZhciBjYWxsYmFjayA9IGVsLl92Q2xpcGJvYXJkX3N1Y2Nlc3NcbiAgICAgICAgICAgIGNhbGxiYWNrICYmIGNhbGxiYWNrKGUpXG4gICAgICAgICAgfSlcbiAgICAgICAgICBjbGlwYm9hcmQub24oJ2Vycm9yJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIHZhciBjYWxsYmFjayA9IGVsLl92Q2xpcGJvYXJkX2Vycm9yXG4gICAgICAgICAgICBjYWxsYmFjayAmJiBjYWxsYmFjayhlKVxuICAgICAgICAgIH0pXG4gICAgICAgICAgZWwuX3ZDbGlwYm9hcmQgPSBjbGlwYm9hcmRcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHVwZGF0ZTogZnVuY3Rpb24gKGVsLCBiaW5kaW5nKSB7XG4gICAgICAgIGlmIChiaW5kaW5nLmFyZyA9PT0gJ3N1Y2Nlc3MnKSB7XG4gICAgICAgICAgZWwuX3ZDbGlwYm9hcmRfc3VjY2VzcyA9IGJpbmRpbmcudmFsdWVcbiAgICAgICAgfSBlbHNlIGlmIChiaW5kaW5nLmFyZyA9PT0gJ2Vycm9yJykge1xuICAgICAgICAgIGVsLl92Q2xpcGJvYXJkX2Vycm9yID0gYmluZGluZy52YWx1ZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGVsLl92Q2xpcGJvYXJkLnRleHQgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBiaW5kaW5nLnZhbHVlIH1cbiAgICAgICAgICBlbC5fdkNsaXBib2FyZC5hY3Rpb24gPSBmdW5jdGlvbiAoKSB7IHJldHVybiBiaW5kaW5nLmFyZyA9PT0gJ2N1dCcgPyAnY3V0JyA6ICdjb3B5JyB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB1bmJpbmQ6IGZ1bmN0aW9uIChlbCwgYmluZGluZykge1xuICAgICAgICBpZiAoYmluZGluZy5hcmcgPT09ICdzdWNjZXNzJykge1xuICAgICAgICAgIGRlbGV0ZSBlbC5fdkNsaXBib2FyZF9zdWNjZXNzXG4gICAgICAgIH0gZWxzZSBpZiAoYmluZGluZy5hcmcgPT09ICdlcnJvcicpIHtcbiAgICAgICAgICBkZWxldGUgZWwuX3ZDbGlwYm9hcmRfZXJyb3JcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBlbC5fdkNsaXBib2FyZC5kZXN0cm95KClcbiAgICAgICAgICBkZWxldGUgZWwuX3ZDbGlwYm9hcmRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gIH0sXG4gIGNvbmZpZzogVnVlQ2xpcGJvYXJkQ29uZmlnXG59XG5cbmlmICh0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSBWdWVDbGlwYm9hcmRcbn0gZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7XG4gIGRlZmluZShbXSwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBWdWVDbGlwYm9hcmRcbiAgfSlcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///183\n")},function(module,exports,__webpack_require__){"use strict";eval("/*!\n * vue-client-only v2.0.0\n * (c) 2019-present egoist <0x142857@gmail.com>\n * Released under the MIT License.\n */\n\n\nvar index = {\n name: 'ClientOnly',\n functional: true,\n props: {\n placeholder: String,\n placeholderTag: {\n type: String,\n default: 'div'\n }\n },\n render: function render(h, ref) {\n var parent = ref.parent;\n var slots = ref.slots;\n var props = ref.props;\n\n var ref$1 = slots();\n var defaultSlot = ref$1.default; if ( defaultSlot === void 0 ) defaultSlot = [];\n var placeholderSlot = ref$1.placeholder;\n\n if (parent._isMounted) {\n return defaultSlot\n }\n\n parent.$once('hook:mounted', function () {\n parent.$forceUpdate();\n });\n\n if (props.placeholderTag && (props.placeholder || placeholderSlot)) {\n return h(\n props.placeholderTag,\n {\n class: ['client-only-placeholder']\n },\n props.placeholder || placeholderSlot\n )\n }\n\n // Return a placeholder element for each child in the default slot\n // Or if no children return a single placeholder\n return defaultSlot.length > 0 ? defaultSlot.map(function () { return h(false); }) : h(false)\n }\n};\n\nmodule.exports = index;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdnVlLWNsaWVudC1vbmx5L2Rpc3QvdnVlLWNsaWVudC1vbmx5LmNvbW1vbi5qcz84ZTI2Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDYTs7QUFFYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxvQ0FBb0M7QUFDcEM7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxpRUFBaUUsaUJBQWlCLEVBQUU7QUFDcEY7QUFDQTs7QUFFQSIsImZpbGUiOiIxODQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIHZ1ZS1jbGllbnQtb25seSB2Mi4wLjBcbiAqIChjKSAyMDE5LXByZXNlbnQgZWdvaXN0IDwweDE0Mjg1N0BnbWFpbC5jb20+XG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuXG4gKi9cbid1c2Ugc3RyaWN0JztcblxudmFyIGluZGV4ID0ge1xuICBuYW1lOiAnQ2xpZW50T25seScsXG4gIGZ1bmN0aW9uYWw6IHRydWUsXG4gIHByb3BzOiB7XG4gICAgcGxhY2Vob2xkZXI6IFN0cmluZyxcbiAgICBwbGFjZWhvbGRlclRhZzoge1xuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgZGVmYXVsdDogJ2RpdidcbiAgICB9XG4gIH0sXG4gIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyKGgsIHJlZikge1xuICAgIHZhciBwYXJlbnQgPSByZWYucGFyZW50O1xuICAgIHZhciBzbG90cyA9IHJlZi5zbG90cztcbiAgICB2YXIgcHJvcHMgPSByZWYucHJvcHM7XG5cbiAgICB2YXIgcmVmJDEgPSBzbG90cygpO1xuICAgIHZhciBkZWZhdWx0U2xvdCA9IHJlZiQxLmRlZmF1bHQ7IGlmICggZGVmYXVsdFNsb3QgPT09IHZvaWQgMCApIGRlZmF1bHRTbG90ID0gW107XG4gICAgdmFyIHBsYWNlaG9sZGVyU2xvdCA9IHJlZiQxLnBsYWNlaG9sZGVyO1xuXG4gICAgaWYgKHBhcmVudC5faXNNb3VudGVkKSB7XG4gICAgICByZXR1cm4gZGVmYXVsdFNsb3RcbiAgICB9XG5cbiAgICBwYXJlbnQuJG9uY2UoJ2hvb2s6bW91bnRlZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHBhcmVudC4kZm9yY2VVcGRhdGUoKTtcbiAgICB9KTtcblxuICAgIGlmIChwcm9wcy5wbGFjZWhvbGRlclRhZyAmJiAocHJvcHMucGxhY2Vob2xkZXIgfHwgcGxhY2Vob2xkZXJTbG90KSkge1xuICAgICAgcmV0dXJuIGgoXG4gICAgICAgIHByb3BzLnBsYWNlaG9sZGVyVGFnLFxuICAgICAgICB7XG4gICAgICAgICAgY2xhc3M6IFsnY2xpZW50LW9ubHktcGxhY2Vob2xkZXInXVxuICAgICAgICB9LFxuICAgICAgICBwcm9wcy5wbGFjZWhvbGRlciB8fCBwbGFjZWhvbGRlclNsb3RcbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBSZXR1cm4gYSBwbGFjZWhvbGRlciBlbGVtZW50IGZvciBlYWNoIGNoaWxkIGluIHRoZSBkZWZhdWx0IHNsb3RcbiAgICAvLyBPciBpZiBubyBjaGlsZHJlbiByZXR1cm4gYSBzaW5nbGUgcGxhY2Vob2xkZXJcbiAgICByZXR1cm4gZGVmYXVsdFNsb3QubGVuZ3RoID4gMCA/IGRlZmF1bHRTbG90Lm1hcChmdW5jdGlvbiAoKSB7IHJldHVybiBoKGZhbHNlKTsgfSkgOiBoKGZhbHNlKVxuICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGluZGV4O1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///184\n")},function(module,__webpack_exports__,__webpack_require__){"use strict";eval("/* harmony import */ var core_js_modules_es7_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);\n/* harmony import */ var core_js_modules_es7_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es7_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es6_symbol__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8);\n/* harmony import */ var core_js_modules_es6_symbol__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_symbol__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6);\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4);\n/* harmony import */ var core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9);\n/* harmony import */ var core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es6_array_find_index__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(149);\n/* harmony import */ var core_js_modules_es6_array_find_index__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_array_find_index__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var core_js_modules_es6_array_find__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(62);\n/* harmony import */ var core_js_modules_es6_array_find__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_array_find__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(1);\n/* harmony import */ var _src_components_VWindow_VWindow_sass__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(364);\n/* harmony import */ var _src_components_VWindow_VWindow_sass__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_src_components_VWindow_VWindow_sass__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _directives_touch__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(142);\n/* harmony import */ var _VBtn__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(86);\n/* harmony import */ var _VIcon__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(64);\n/* harmony import */ var _VItemGroup_VItemGroup__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(61);\n\n\n\n\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_7__[/* default */ \"a\"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n// Styles\n // Directives\n\n // Components\n\n\n\n\n/* @vue/component */\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (_VItemGroup_VItemGroup__WEBPACK_IMPORTED_MODULE_12__[/* BaseItemGroup */ \"a\"].extend({\n name: 'v-window',\n provide: function provide() {\n return {\n windowGroup: this\n };\n },\n directives: {\n Touch: _directives_touch__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"a\"]\n },\n props: {\n activeClass: {\n type: String,\n default: 'v-window-item--active'\n },\n continuous: Boolean,\n mandatory: {\n type: Boolean,\n default: true\n },\n nextIcon: {\n type: [Boolean, String],\n default: '$next'\n },\n prevIcon: {\n type: [Boolean, String],\n default: '$prev'\n },\n reverse: {\n type: Boolean,\n default: undefined\n },\n showArrows: Boolean,\n showArrowsOnHover: Boolean,\n touch: Object,\n touchless: Boolean,\n value: {\n required: false\n },\n vertical: Boolean\n },\n data: function data() {\n return {\n changedByDelimiters: false,\n internalHeight: undefined,\n transitionHeight: undefined,\n transitionCount: 0,\n isBooted: false,\n isReverse: false\n };\n },\n computed: {\n isActive: function isActive() {\n return this.transitionCount > 0;\n },\n classes: function classes() {\n return _objectSpread(_objectSpread({}, _VItemGroup_VItemGroup__WEBPACK_IMPORTED_MODULE_12__[/* BaseItemGroup */ \"a\"].options.computed.classes.call(this)), {}, {\n 'v-window--show-arrows-on-hover': this.showArrowsOnHover\n });\n },\n computedTransition: function computedTransition() {\n if (!this.isBooted) return '';\n var axis = this.vertical ? 'y' : 'x';\n var reverse = this.$vuetify.rtl && axis === 'x' ? !this.internalReverse : this.internalReverse;\n var direction = reverse ? '-reverse' : '';\n return \"v-window-\".concat(axis).concat(direction, \"-transition\");\n },\n hasActiveItems: function hasActiveItems() {\n return Boolean(this.items.find(function (item) {\n return !item.disabled;\n }));\n },\n hasNext: function hasNext() {\n return this.continuous || this.internalIndex < this.items.length - 1;\n },\n hasPrev: function hasPrev() {\n return this.continuous || this.internalIndex > 0;\n },\n internalIndex: function internalIndex() {\n var _this = this;\n\n return this.items.findIndex(function (item, i) {\n return _this.internalValue === _this.getValue(item, i);\n });\n },\n internalReverse: function internalReverse() {\n return this.reverse ? !this.isReverse : this.isReverse;\n }\n },\n watch: {\n internalIndex: 'updateReverse'\n },\n mounted: function mounted() {\n var _this2 = this;\n\n window.requestAnimationFrame(function () {\n return _this2.isBooted = true;\n });\n },\n methods: {\n genContainer: function genContainer() {\n var children = [this.$slots.default];\n\n if (this.showArrows) {\n children.push(this.genControlIcons());\n }\n\n return this.$createElement('div', {\n staticClass: 'v-window__container',\n class: {\n 'v-window__container--is-active': this.isActive\n },\n style: {\n height: this.internalHeight || this.transitionHeight\n }\n }, children);\n },\n genIcon: function genIcon(direction, icon, fn) {\n var _this3 = this;\n\n return this.$createElement('div', {\n staticClass: \"v-window__\".concat(direction)\n }, [this.$createElement(_VBtn__WEBPACK_IMPORTED_MODULE_10__[/* default */ \"a\"], {\n props: {\n icon: true\n },\n attrs: {\n 'aria-label': this.$vuetify.lang.t(\"$vuetify.carousel.\".concat(direction))\n },\n on: {\n click: function click() {\n _this3.changedByDelimiters = true;\n fn();\n }\n }\n }, [this.$createElement(_VIcon__WEBPACK_IMPORTED_MODULE_11__[/* default */ \"a\"], {\n props: {\n large: true\n }\n }, icon)])]);\n },\n genControlIcons: function genControlIcons() {\n var icons = [];\n var prevIcon = this.$vuetify.rtl ? this.nextIcon : this.prevIcon;\n /* istanbul ignore else */\n\n if (this.hasPrev && prevIcon && typeof prevIcon === 'string') {\n var icon = this.genIcon('prev', prevIcon, this.prev);\n icon && icons.push(icon);\n }\n\n var nextIcon = this.$vuetify.rtl ? this.prevIcon : this.nextIcon;\n /* istanbul ignore else */\n\n if (this.hasNext && nextIcon && typeof nextIcon === 'string') {\n var _icon = this.genIcon('next', nextIcon, this.next);\n\n _icon && icons.push(_icon);\n }\n\n return icons;\n },\n getNextIndex: function getNextIndex(index) {\n var nextIndex = (index + 1) % this.items.length;\n var item = this.items[nextIndex];\n if (item.disabled) return this.getNextIndex(nextIndex);\n return nextIndex;\n },\n getPrevIndex: function getPrevIndex(index) {\n var prevIndex = (index + this.items.length - 1) % this.items.length;\n var item = this.items[prevIndex];\n if (item.disabled) return this.getPrevIndex(prevIndex);\n return prevIndex;\n },\n next: function next() {\n this.isReverse = this.$vuetify.rtl;\n /* istanbul ignore if */\n\n if (!this.hasActiveItems || !this.hasNext) return;\n var nextIndex = this.getNextIndex(this.internalIndex);\n var item = this.items[nextIndex];\n this.internalValue = this.getValue(item, nextIndex);\n },\n prev: function prev() {\n this.isReverse = !this.$vuetify.rtl;\n /* istanbul ignore if */\n\n if (!this.hasActiveItems || !this.hasPrev) return;\n var lastIndex = this.getPrevIndex(this.internalIndex);\n var item = this.items[lastIndex];\n this.internalValue = this.getValue(item, lastIndex);\n },\n updateReverse: function updateReverse(val, oldVal) {\n if (this.changedByDelimiters) {\n this.changedByDelimiters = false;\n return;\n }\n\n this.isReverse = val < oldVal;\n }\n },\n render: function render(h) {\n var _this4 = this;\n\n var data = {\n staticClass: 'v-window',\n class: this.classes,\n directives: []\n };\n\n if (!this.touchless) {\n var value = this.touch || {\n left: function left() {\n _this4.$vuetify.rtl ? _this4.prev() : _this4.next();\n },\n right: function right() {\n _this4.$vuetify.rtl ? _this4.next() : _this4.prev();\n },\n end: function end(e) {\n e.stopPropagation();\n },\n start: function start(e) {\n e.stopPropagation();\n }\n };\n data.directives.push({\n name: 'touch',\n value: value\n });\n }\n\n return h('div', data, [this.genContainer()]);\n }\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvVldpbmRvdy9WV2luZG93LnRzP2Y4YzAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0NBUUE7O0NBR0E7O0FBQ0E7QUFDQTtBQUNBO0FBRUE7O0FBQ2Usc0lBQWEsQ0FBYixPQUFxQjtBQUNsQyxNQUFJLEVBRDhCO0FBR2xDLFNBSGtDLHFCQUczQjtBQUNMLFdBQU87QUFDTCxpQkFBVyxFQUFFO0FBRFIsS0FBUDtBQUpnQztBQVNsQyxZQUFVLEVBQUU7QUFBRSw0RUFBSztBQUFQLEdBVHNCO0FBV2xDLE9BQUssRUFBRTtBQUNMLGVBQVcsRUFBRTtBQUNYLFVBQUksRUFETztBQUVYLGFBQU8sRUFBRTtBQUZFLEtBRFI7QUFLTCxjQUFVLEVBTEw7QUFNTCxhQUFTLEVBQUU7QUFDVCxVQUFJLEVBREs7QUFFVCxhQUFPLEVBQUU7QUFGQSxLQU5OO0FBVUwsWUFBUSxFQUFFO0FBQ1IsVUFBSSxFQUFFLFVBREUsTUFDRixDQURFO0FBRVIsYUFBTyxFQUFFO0FBRkQsS0FWTDtBQWNMLFlBQVEsRUFBRTtBQUNSLFVBQUksRUFBRSxVQURFLE1BQ0YsQ0FERTtBQUVSLGFBQU8sRUFBRTtBQUZELEtBZEw7QUFrQkwsV0FBTyxFQUFFO0FBQ1AsVUFBSSxFQURHO0FBRVAsYUFBTyxFQUFFO0FBRkYsS0FsQko7QUFzQkwsY0FBVSxFQXRCTDtBQXVCTCxxQkFBaUIsRUF2Qlo7QUF3QkwsU0FBSyxFQXhCQTtBQXlCTCxhQUFTLEVBekJKO0FBMEJMLFNBQUssRUFBRTtBQUNMLGNBQVEsRUFBRTtBQURMLEtBMUJGO0FBNkJMLFlBQVEsRUFBRTtBQTdCTCxHQVgyQjtBQTJDbEMsTUEzQ2tDLGtCQTJDOUI7QUFDRixXQUFPO0FBQ0wseUJBQW1CLEVBRGQ7QUFFTCxvQkFBYyxFQUZUO0FBR0wsc0JBQWdCLEVBSFg7QUFJTCxxQkFBZSxFQUpWO0FBS0ws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RyxXQUFiLFNBQWEsQ0FBYjtBQUVBLDJCQUFxQixvQkFBckIsU0FBcUIsQ0FBckI7QUFqSEs7QUFtSFAsaUJBbkhPLHlCQW1ITSxHQW5ITixFQW1ITSxNQW5ITixFQW1IbUM7QUFDeEMsVUFBSSxLQUFKLHFCQUE4QjtBQUM1QjtBQUNBO0FBQ0Q7O0FBRUQsdUJBQWlCLEdBQUcsR0FBcEI7QUFDRDtBQTFITSxHQXRHeUI7QUFtT2xDLFFBbk9rQyxrQkFtTzVCLENBbk80QixFQW1PekI7QUFBQTs7QUFDUCxRQUFNLElBQUksR0FBRztBQUNYLGlCQUFXLEVBREE7QUFFWCxXQUFLLEVBQUUsS0FGSTtBQUdYLGdCQUFVLEVBQUU7QUFIRCxLQUFiOztBQU1BLFFBQUksQ0FBQyxLQUFMLFdBQXFCO0FBQ25CLFVBQU0sS0FBSyxHQUFHLGNBQWM7QUFDMUIsWUFBSSxFQUFFLGdCQUFLO0FBQ1QsZ0NBQW9CLE9BQXBCLElBQW9CLEVBQXBCLEdBQWtDLE9BQWxDLElBQWtDLEVBQWxDO0FBRndCO0FBSTFCLGFBQUssRUFBRSxpQkFBSztBQUNWLGdDQUFvQixPQUFwQixJQUFvQixFQUFwQixHQUFrQyxPQUFsQyxJQUFrQyxFQUFsQztBQUx3QjtBQU8xQixXQUFHLEVBQUcsY0FBRCxFQUFrQjtBQUNyQixXQUFDLENBQUQ7QUFSd0I7QUFVMUIsYUFBSyxFQUFHLGdCQUFELEVBQWtCO0FBQ3ZCLFdBQUMsQ0FBRDtBQUNEO0FBWnlCLE9BQTVCO0FBZUEsVUFBSSxDQUFKLGdCQUFxQjtBQUNuQixZQUFJLEVBRGU7QUFFbkI7QUFGbUIsT0FBckI7QUFJRDs7QUFFRCxXQUFPLENBQUMsY0FBYyxDQUFDLEtBQXZCLFlBQXVCLEVBQUQsQ0FBZCxDQUFSO0FBQ0Q7QUFqUWlDLENBQXJCLENBQWYiLCJmaWxlIjoiMTg1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gU3R5bGVzXG5pbXBvcnQgJy4vVldpbmRvdy5zYXNzJ1xuXG4vLyBUeXBlc1xuaW1wb3J0IHsgVk5vZGUsIFZOb2RlRGlyZWN0aXZlIH0gZnJvbSAndnVlL3R5cGVzL3Zub2RlJ1xuaW1wb3J0IHsgUHJvcFR5cGUgfSBmcm9tICd2dWUnXG5pbXBvcnQgeyBUb3VjaEhhbmRsZXJzIH0gZnJvbSAndnVldGlmeS90eXBlcydcblxuLy8gRGlyZWN0aXZlc1xuaW1wb3J0IFRvdWNoIGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvdG91Y2gnXG5cbi8vIENvbXBvbmVudHNcbmltcG9ydCBWQnRuIGZyb20gJy4uL1ZCdG4nXG5pbXBvcnQgVkljb24gZnJvbSAnLi4vVkljb24nXG5pbXBvcnQgeyBCYXNlSXRlbUdyb3VwIH0gZnJvbSAnLi4vVkl0ZW1Hcm91cC9WSXRlbUdyb3VwJ1xuXG4vKiBAdnVlL2NvbXBvbmVudCAqL1xuZXhwb3J0IGRlZmF1bHQgQmFzZUl0ZW1Hcm91cC5leHRlbmQoe1xuICBuYW1lOiAndi13aW5kb3cnLFxuXG4gIHByb3ZpZGUgKCk6IG9iamVjdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHdpbmRvd0dyb3VwOiB0aGlzLFxuICAgIH1cbiAgfSxcblxuICBkaXJlY3RpdmVzOiB7IFRvdWNoIH0sXG5cbiAgcHJvcHM6IHtcbiAgICBhY3RpdmVDbGFzczoge1xuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgZGVmYXVsdDogJ3Ytd2luZG93LWl0ZW0tLWFjdGl2ZScsXG4gICAgfSxcbiAgICBjb250aW51b3VzOiBCb29sZWFuLFxuICAgIG1hbmRhdG9yeToge1xuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgfSxcbiAgICBuZXh0SWNvbjoge1xuICAgICAgdHlwZTogW0Jvb2xlYW4sIFN0cmluZ10sXG4gICAgICBkZWZhdWx0OiAnJG5leHQnLFxuICAgIH0sXG4gICAgcHJldkljb246IHtcbiAgICAgIHR5cGU6IFtCb29sZWFuLCBTdHJpbmddLFxuICAgICAgZGVmYXVsdDogJyRwcmV2JyxcbiAgICB9LFxuICAgIHJldmVyc2U6IHtcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICBkZWZhdWx0OiB1bmRlZmluZWQsXG4gICAgfSxcbiAgICBzaG93QXJyb3dzOiBCb29sZWFuLFxuICAgIHNob3dBcnJvd3NPbkhvdmVyOiBCb29sZWFuLFxuICAgIHRvdWNoOiBPYmplY3QgYXMgUHJvcFR5cGU8VG91Y2hIYW5kbGVycz4sXG4gICAgdG91Y2hsZXNzOiBCb29sZWFuLFxuICAgIHZhbHVlOiB7XG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgfSxcbiAgICB2ZXJ0aWNhbDogQm9vbGVhbixcbiAgfSxcblxuICBkYXRhICgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgY2hhbmdlZEJ5RGVsaW1pdGVyczogZmFsc2UsXG4gICAgICBpbnRlcm5hbEhlaWdodDogdW5kZWZpbmVkIGFzIHVuZGVmaW5lZCB8IHN0cmluZywgLy8gVGhpcyBjYW4gYmUgZml4ZWQgYnkgY2hpbGQgY2xhc3MuXG4gICAgICB0cmFuc2l0aW9uSGVpZ2h0OiB1bmRlZmluZWQgYXMgdW5kZWZpbmVkIHwgc3RyaW5nLCAvLyBJbnRlcm1lZGlhdGUgaGVpZ2h0IGR1cmluZyB0cmFuc2l0aW9uLlxuICAgICAgdHJhbnNpdGlvbkNvdW50OiAwLCAvLyBOdW1iZXIgb2Ygd2luZG93cyBpbiB0cmFuc2l0aW9uIHN0YXRlLlxuICAgICAgaXNCb290ZWQ6IGZhbHNlLFxuICAgICAgaXNSZXZlcnNlOiBmYWxzZSxcbiAgICB9XG4gIH0sXG5cbiAgY29tcHV0ZWQ6IHtcbiAgICBpc0FjdGl2ZSAoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2l0aW9uQ291bnQgPiAwXG4gICAgfSxcbiAgICBjbGFzc2VzICgpOiBvYmplY3Qge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uQmFzZUl0ZW1Hcm91cC5vcHRpb25zLmNvbXB1dGVkLmNsYXNzZXMuY2FsbCh0aGlzKSxcbiAgICAgICAgJ3Ytd2luZG93LS1zaG93LWFycm93cy1vbi1ob3Zlcic6IHRoaXMuc2hvd0Fycm93c09uSG92ZXIsXG4gICAgICB9XG4gICAgfSxcbiAgICBjb21wdXRlZFRyYW5zaXRpb24gKCk6IHN0cmluZyB7XG4gICAgICBpZiAoIXRoaXMuaXNCb290ZWQpIHJldHVybiAnJ1xuXG4gICAgICBjb25zdCBheGlzID0gdGhpcy52ZXJ0aWNhbCA/ICd5JyA6ICd4J1xuICAgICAgY29uc3QgcmV2ZXJzZSA9IHRoaXMuJHZ1ZXRpZnkucnRsICYmIGF4aXMgPT09ICd4JyA/ICF0aGlzLmludGVybmFsUmV2ZXJzZSA6IHRoaXMuaW50ZXJuYWxSZXZlcnNlXG4gICAgICBjb25zdCBkaXJlY3Rpb24gPSByZXZlcnNlID8gJy1yZXZlcnNlJyA6ICcnXG5cbiAgICAgIHJldHVybiBgdi13aW5kb3ctJHtheGlzfSR7ZGlyZWN0aW9ufS10cmFuc2l0aW9uYFxuICAgIH0sXG4gICAgaGFzQWN0aXZlSXRlbXMgKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIEJvb2xlYW4oXG4gICAgICAgIHRoaXMuaXRlbXMuZmluZChpdGVtID0+ICFpdGVtLmRpc2FibGVkKVxuICAgICAgKVxuICAgIH0sXG4gICAgaGFzTmV4dCAoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy5jb250aW51b3VzIHx8IHRoaXMuaW50ZXJuYWxJbmRleCA8IHRoaXMuaXRlbXMubGVuZ3RoIC0gMVxuICAgIH0sXG4gICAgaGFzUHJldiAoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy5jb250aW51b3VzIHx8IHRoaXMuaW50ZXJuYWxJbmRleCA+IDBcbiAgICB9LFxuICAgIGludGVybmFsSW5kZXggKCk6IG51bWJlciB7XG4gICAgICByZXR1cm4gdGhpcy5pdGVtcy5maW5kSW5kZXgoKGl0ZW0sIGkpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxWYWx1ZSA9PT0gdGhpcy5nZXRWYWx1ZShpdGVtLCBpKVxuICAgICAgfSlcbiAgICB9LFxuICAgIGludGVybmFsUmV2ZXJzZSAoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy5yZXZlcnNlID8gIXRoaXMuaXNSZXZlcnNlIDogdGhpcy5pc1JldmVyc2VcbiAgICB9LFxuICB9LFxuXG4gIHdhdGNoOiB7XG4gICAgaW50ZXJuYWxJbmRleDogJ3VwZGF0ZVJldmVyc2UnLFxuICB9LFxuXG4gIG1vdW50ZWQgKCkge1xuICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gKHRoaXMuaXNCb290ZWQgPSB0cnVlKSlcbiAgfSxcblxuICBtZXRob2RzOiB7XG4gICAgZ2VuQ29udGFpbmVyICgpOiBWTm9kZSB7XG4gICAgICBjb25zdCBjaGlsZHJlbiA9IFt0aGlzLiRzbG90cy5kZWZhdWx0XVxuXG4gICAgICBpZiAodGhpcy5zaG93QXJyb3dzKSB7XG4gICAgICAgIGNoaWxkcmVuLnB1c2godGhpcy5nZW5Db250cm9sSWNvbnMoKSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMuJGNyZWF0ZUVsZW1lbnQoJ2RpdicsIHtcbiAgICAgICAgc3RhdGljQ2xhc3M6ICd2LXdpbmRvd19fY29udGFpbmVyJyxcbiAgICAgICAgY2xhc3M6IHtcbiAgICAgICAgICAndi13aW5kb3dfX2NvbnRhaW5lci0taXMtYWN0aXZlJzogdGhpcy5pc0FjdGl2ZSxcbiAgICAgICAgfSxcbiAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICBoZWlnaHQ6IHRoaXMuaW50ZXJuYWxIZWlnaHQgfHwgdGhpcy50cmFuc2l0aW9uSGVpZ2h0LFxuICAgICAgICB9LFxuICAgICAgfSwgY2hpbGRyZW4pXG4gICAgfSxcbiAgICBnZW5JY29uIChcbiAgICAgIGRpcmVjdGlvbjogJ3ByZXYnIHwgJ25leHQnLFxuICAgICAgaWNvbjogc3RyaW5nLFxuICAgICAgZm46ICgpID0+IHZvaWRcbiAgICApIHtcbiAgICAgIHJldHVybiB0aGlzLiRjcmVhdGVFbGVtZW50KCdkaXYnLCB7XG4gICAgICAgIHN0YXRpY0NsYXNzOiBgdi13aW5kb3dfXyR7ZGlyZWN0aW9ufWAsXG4gICAgICB9LCBbXG4gICAgICAgIHRoaXMuJGNyZWF0ZUVsZW1lbnQoVkJ0biwge1xuICAgICAgICAgIHByb3BzOiB7IGljb246IHRydWUgfSxcbiAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgJ2FyaWEtbGFiZWwnOiB0aGlzLiR2dWV0aWZ5LmxhbmcudChgJHZ1ZXRpZnkuY2Fyb3VzZWwuJHtkaXJlY3Rpb259YCksXG4gICAgICAgICAgfSxcbiAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgY2xpY2s6ICgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VkQnlEZWxpbWl0ZXJzID0gdHJ1ZVxuICAgICAgICAgICAgICBmbigpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sIFtcbiAgICAgICAgICB0aGlzLiRjcmVhdGVFbGVtZW50KFZJY29uLCB7XG4gICAgICAgICAgICBwcm9wczogeyBsYXJnZTogdHJ1ZSB9LFxuICAgICAgICAgIH0sIGljb24pLFxuICAgICAgICBdKSxcbiAgICAgIF0pXG4gICAgfSxcbiAgICBnZW5Db250cm9sSWNvbnMgKCkge1xuICAgICAgY29uc3QgaWNvbnMgPSBbXVxuXG4gICAgICBjb25zdCBwcmV2SWNvbiA9IHRoaXMuJHZ1ZXRpZnkucnRsXG4gICAgICAgID8gdGhpcy5uZXh0SWNvblxuICAgICAgICA6IHRoaXMucHJldkljb25cblxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5oYXNQcmV2ICYmXG4gICAgICAgIHByZXZJY29uICYmXG4gICAgICAgIHR5cGVvZiBwcmV2SWNvbiA9PT0gJ3N0cmluZydcbiAgICAgICkge1xuICAgICAgICBjb25zdCBpY29uID0gdGhpcy5nZW5JY29uKCdwcmV2JywgcHJldkljb24sIHRoaXMucHJldilcbiAgICAgICAgaWNvbiAmJiBpY29ucy5wdXNoKGljb24pXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG5leHRJY29uID0gdGhpcy4kdnVldGlmeS5ydGxcbiAgICAgICAgPyB0aGlzLnByZXZJY29uXG4gICAgICAgIDogdGhpcy5uZXh0SWNvblxuXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLmhhc05leHQgJiZcbiAgICAgICAgbmV4dEljb24gJiZcbiAgICAgICAgdHlwZW9mIG5leHRJY29uID09PSAnc3RyaW5nJ1xuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IGljb24gPSB0aGlzLmdlbkljb24oJ25leHQnLCBuZXh0SWNvbiwgdGhpcy5uZXh0KVxuICAgICAgICBpY29uICYmIGljb25zLnB1c2goaWNvbilcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGljb25zXG4gICAgfSxcbiAgICBnZXROZXh0SW5kZXggKGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgY29uc3QgbmV4dEluZGV4ID0gKGluZGV4ICsgMSkgJSB0aGlzLml0ZW1zLmxlbmd0aFxuICAgICAgY29uc3QgaXRlbSA9IHRoaXMuaXRlbXNbbmV4dEluZGV4XVxuXG4gICAgICBpZiAoaXRlbS5kaXNhYmxlZCkgcmV0dXJuIHRoaXMuZ2V0TmV4dEluZGV4KG5leHRJbmRleClcblxuICAgICAgcmV0dXJuIG5leHRJbmRleFxuICAgIH0sXG4gICAgZ2V0UHJldkluZGV4IChpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgIGNvbnN0IHByZXZJbmRleCA9IChpbmRleCArIHRoaXMuaXRlbXMubGVuZ3RoIC0gMSkgJSB0aGlzLml0ZW1zLmxlbmd0aFxuICAgICAgY29uc3QgaXRlbSA9IHRoaXMuaXRlbXNbcHJldkluZGV4XVxuXG4gICAgICBpZiAoaXRlbS5kaXNhYmxlZCkgcmV0dXJuIHRoaXMuZ2V0UHJldkluZGV4KHByZXZJbmRleClcblxuICAgICAgcmV0dXJuIHByZXZJbmRleFxuICAgIH0sXG4gICAgbmV4dCAoKSB7XG4gICAgICB0aGlzLmlzUmV2ZXJzZSA9IHRoaXMuJHZ1ZXRpZnkucnRsXG5cbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgaWYgKCF0aGlzLmhhc0FjdGl2ZUl0ZW1zIHx8ICF0aGlzLmhhc05leHQpIHJldHVyblxuXG4gICAgICBjb25zdCBuZXh0SW5kZXggPSB0aGlzLmdldE5leHRJbmRleCh0aGlzLmludGVybmFsSW5kZXgpXG4gICAgICBjb25zdCBpdGVtID0gdGhpcy5pdGVtc1tuZXh0SW5kZXhdXG5cbiAgICAgIHRoaXMuaW50ZXJuYWxWYWx1ZSA9IHRoaXMuZ2V0VmFsdWUoaXRlbSwgbmV4dEluZGV4KVxuICAgIH0sXG4gICAgcHJldiAoKSB7XG4gICAgICB0aGlzLmlzUmV2ZXJzZSA9ICF0aGlzLiR2dWV0aWZ5LnJ0bFxuXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgIGlmICghdGhpcy5oYXNBY3RpdmVJdGVtcyB8fCAhdGhpcy5oYXNQcmV2KSByZXR1cm5cblxuICAgICAgY29uc3QgbGFzdEluZGV4ID0gdGhpcy5nZXRQcmV2SW5kZXgodGhpcy5pbnRlcm5hbEluZGV4KVxuICAgICAgY29uc3QgaXRlbSA9IHRoaXMuaXRlbXNbbGFzdEluZGV4XVxuXG4gICAgICB0aGlzLmludGVybmFsVmFsdWUgPSB0aGlzLmdldFZhbHVlKGl0ZW0sIGxhc3RJbmRleClcbiAgICB9LFxuICAgIHVwZGF0ZVJldmVyc2UgKHZhbDogbnVtYmVyLCBvbGRWYWw6IG51bWJlcikge1xuICAgICAgaWYgKHRoaXMuY2hhbmdlZEJ5RGVsaW1pdGVycykge1xuICAgICAgICB0aGlzLmNoYW5nZWRCeURlbGltaXRlcnMgPSBmYWxzZVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgdGhpcy5pc1JldmVyc2UgPSB2YWwgPCBvbGRWYWxcbiAgICB9LFxuICB9LFxuXG4gIHJlbmRlciAoaCk6IFZOb2RlIHtcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgc3RhdGljQ2xhc3M6ICd2LXdpbmRvdycsXG4gICAgICBjbGFzczogdGhpcy5jbGFzc2VzLFxuICAgICAgZGlyZWN0aXZlczogW10gYXMgVk5vZGVEaXJlY3RpdmVbXSxcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMudG91Y2hsZXNzKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMudG91Y2ggfHwge1xuICAgICAgICBsZWZ0OiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy4kdnVldGlmeS5ydGwgPyB0aGlzLnByZXYoKSA6IHRoaXMubmV4dCgpXG4gICAgICAgIH0sXG4gICAgICAgIHJpZ2h0OiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy4kdnVldGlmeS5ydGwgPyB0aGlzLm5leHQoKSA6IHRoaXMucHJldigpXG4gICAgICAgIH0sXG4gICAgICAgIGVuZDogKGU6IFRvdWNoRXZlbnQpID0+IHtcbiAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgIH0sXG4gICAgICAgIHN0YXJ0OiAoZTogVG91Y2hFdmVudCkgPT4ge1xuICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgfSxcbiAgICAgIH1cblxuICAgICAgZGF0YS5kaXJlY3RpdmVzLnB1c2goe1xuICAgICAgICBuYW1lOiAndG91Y2gnLFxuICAgICAgICB2YWx1ZSxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIGgoJ2RpdicsIGRhdGEsIFt0aGlzLmdlbkNvbnRhaW5lcigpXSlcbiAgfSxcbn0pXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///185\n")},,,function(module,__webpack_exports__,__webpack_require__){"use strict";eval("/*!\n * vue-i18n v8.18.2 \n * (c) 2020 kazuya kawaguchi\n * Released under the MIT License.\n */\n/* */\n\n/**\n * constants\n */\n\nvar numberFormatKeys = [\n 'style',\n 'currency',\n 'currencyDisplay',\n 'useGrouping',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits',\n 'localeMatcher',\n 'formatMatcher',\n 'unit'\n];\n\n/**\n * utilities\n */\n\nfunction warn (msg, err) {\n if (typeof console !== 'undefined') {\n console.warn('[vue-i18n] ' + msg);\n /* istanbul ignore if */\n if (err) {\n console.warn(err.stack);\n }\n }\n}\n\nfunction error (msg, err) {\n if (typeof console !== 'undefined') {\n console.error('[vue-i18n] ' + msg);\n /* istanbul ignore if */\n if (err) {\n console.error(err.stack);\n }\n }\n}\n\nvar isArray = Array.isArray;\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isBoolean (val) {\n return typeof val === 'boolean'\n}\n\nfunction isString (val) {\n return typeof val === 'string'\n}\n\nvar toString = Object.prototype.toString;\nvar OBJECT_STRING = '[object Object]';\nfunction isPlainObject (obj) {\n return toString.call(obj) === OBJECT_STRING\n}\n\nfunction isNull (val) {\n return val === null || val === undefined\n}\n\nfunction parseArgs () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var locale = null;\n var params = null;\n if (args.length === 1) {\n if (isObject(args[0]) || Array.isArray(args[0])) {\n params = args[0];\n } else if (typeof args[0] === 'string') {\n locale = args[0];\n }\n } else if (args.length === 2) {\n if (typeof args[0] === 'string') {\n locale = args[0];\n }\n /* istanbul ignore if */\n if (isObject(args[1]) || Array.isArray(args[1])) {\n params = args[1];\n }\n }\n\n return { locale: locale, params: params }\n}\n\nfunction looseClone (obj) {\n return JSON.parse(JSON.stringify(obj))\n}\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\nfunction includes (arr, item) {\n return !!~arr.indexOf(item)\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\nfunction merge (target) {\n var arguments$1 = arguments;\n\n var output = Object(target);\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments$1[i];\n if (source !== undefined && source !== null) {\n var key = (void 0);\n for (key in source) {\n if (hasOwn(source, key)) {\n if (isObject(source[key])) {\n output[key] = merge(output[key], source[key]);\n } else {\n output[key] = source[key];\n }\n }\n }\n }\n }\n return output\n}\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\n/* */\n\nfunction extend (Vue) {\n if (!Vue.prototype.hasOwnProperty('$i18n')) {\n // $FlowFixMe\n Object.defineProperty(Vue.prototype, '$i18n', {\n get: function get () { return this._i18n }\n });\n }\n\n Vue.prototype.$t = function (key) {\n var values = [], len = arguments.length - 1;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 1 ];\n\n var i18n = this.$i18n;\n return i18n._t.apply(i18n, [ key, i18n.locale, i18n._getMessages(), this ].concat( values ))\n };\n\n Vue.prototype.$tc = function (key, choice) {\n var values = [], len = arguments.length - 2;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 2 ];\n\n var i18n = this.$i18n;\n return i18n._tc.apply(i18n, [ key, i18n.locale, i18n._getMessages(), this, choice ].concat( values ))\n };\n\n Vue.prototype.$te = function (key, locale) {\n var i18n = this.$i18n;\n return i18n._te(key, i18n.locale, i18n._getMessages(), locale)\n };\n\n Vue.prototype.$d = function (value) {\n var ref;\n\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n return (ref = this.$i18n).d.apply(ref, [ value ].concat( args ))\n };\n\n Vue.prototype.$n = function (value) {\n var ref;\n\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n return (ref = this.$i18n).n.apply(ref, [ value ].concat( args ))\n };\n}\n\n/* */\n\nvar mixin = {\n beforeCreate: function beforeCreate () {\n var options = this.$options;\n options.i18n = options.i18n || (options.__i18n ? {} : null);\n\n if (options.i18n) {\n if (options.i18n instanceof VueI18n) {\n // init locale messages via custom blocks\n if (options.__i18n) {\n try {\n var localeMessages = {};\n options.__i18n.forEach(function (resource) {\n localeMessages = merge(localeMessages, JSON.parse(resource));\n });\n Object.keys(localeMessages).forEach(function (locale) {\n options.i18n.mergeLocaleMessage(locale, localeMessages[locale]);\n });\n } catch (e) {\n if (false) {}\n }\n }\n this._i18n = options.i18n;\n this._i18nWatcher = this._i18n.watchI18nData();\n } else if (isPlainObject(options.i18n)) {\n var rootI18n = this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n\n ? this.$root.$i18n\n : null;\n // component local i18n\n if (rootI18n) {\n options.i18n.root = this.$root;\n options.i18n.formatter = rootI18n.formatter;\n options.i18n.fallbackLocale = rootI18n.fallbackLocale;\n options.i18n.formatFallbackMessages = rootI18n.formatFallbackMessages;\n options.i18n.silentTranslationWarn = rootI18n.silentTranslationWarn;\n options.i18n.silentFallbackWarn = rootI18n.silentFallbackWarn;\n options.i18n.pluralizationRules = rootI18n.pluralizationRules;\n options.i18n.preserveDirectiveContent = rootI18n.preserveDirectiveContent;\n }\n\n // init locale messages via custom blocks\n if (options.__i18n) {\n try {\n var localeMessages$1 = {};\n options.__i18n.forEach(function (resource) {\n localeMessages$1 = merge(localeMessages$1, JSON.parse(resource));\n });\n options.i18n.messages = localeMessages$1;\n } catch (e) {\n if (false) {}\n }\n }\n\n var ref = options.i18n;\n var sharedMessages = ref.sharedMessages;\n if (sharedMessages && isPlainObject(sharedMessages)) {\n options.i18n.messages = merge(options.i18n.messages, sharedMessages);\n }\n\n this._i18n = new VueI18n(options.i18n);\n this._i18nWatcher = this._i18n.watchI18nData();\n\n if (options.i18n.sync === undefined || !!options.i18n.sync) {\n this._localeWatcher = this.$i18n.watchLocale();\n }\n\n if (rootI18n) {\n rootI18n.onComponentInstanceCreated(this._i18n);\n }\n } else {\n if (false) {}\n }\n } else if (this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n) {\n // root i18n\n this._i18n = this.$root.$i18n;\n } else if (options.parent && options.parent.$i18n && options.parent.$i18n instanceof VueI18n) {\n // parent i18n\n this._i18n = options.parent.$i18n;\n }\n },\n\n beforeMount: function beforeMount () {\n var options = this.$options;\n options.i18n = options.i18n || (options.__i18n ? {} : null);\n\n if (options.i18n) {\n if (options.i18n instanceof VueI18n) {\n // init locale messages via custom blocks\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n } else if (isPlainObject(options.i18n)) {\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n } else {\n if (false) {}\n }\n } else if (this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n) {\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n } else if (options.parent && options.parent.$i18n && options.parent.$i18n instanceof VueI18n) {\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n }\n },\n\n beforeDestroy: function beforeDestroy () {\n if (!this._i18n) { return }\n\n var self = this;\n this.$nextTick(function () {\n if (self._subscribing) {\n self._i18n.unsubscribeDataChanging(self);\n delete self._subscribing;\n }\n\n if (self._i18nWatcher) {\n self._i18nWatcher();\n self._i18n.destroyVM();\n delete self._i18nWatcher;\n }\n\n if (self._localeWatcher) {\n self._localeWatcher();\n delete self._localeWatcher;\n }\n });\n }\n};\n\n/* */\n\nvar interpolationComponent = {\n name: 'i18n',\n functional: true,\n props: {\n tag: {\n type: [String, Boolean],\n default: 'span'\n },\n path: {\n type: String,\n required: true\n },\n locale: {\n type: String\n },\n places: {\n type: [Array, Object]\n }\n },\n render: function render (h, ref) {\n var data = ref.data;\n var parent = ref.parent;\n var props = ref.props;\n var slots = ref.slots;\n\n var $i18n = parent.$i18n;\n if (!$i18n) {\n if (false) {}\n return\n }\n\n var path = props.path;\n var locale = props.locale;\n var places = props.places;\n var params = slots();\n var children = $i18n.i(\n path,\n locale,\n onlyHasDefaultPlace(params) || places\n ? useLegacyPlaces(params.default, places)\n : params\n );\n\n var tag = (!!props.tag && props.tag !== true) || props.tag === false ? props.tag : 'span';\n return tag ? h(tag, data, children) : children\n }\n};\n\nfunction onlyHasDefaultPlace (params) {\n var prop;\n for (prop in params) {\n if (prop !== 'default') { return false }\n }\n return Boolean(prop)\n}\n\nfunction useLegacyPlaces (children, places) {\n var params = places ? createParamsFromPlaces(places) : {};\n\n if (!children) { return params }\n\n // Filter empty text nodes\n children = children.filter(function (child) {\n return child.tag || child.text.trim() !== ''\n });\n\n var everyPlace = children.every(vnodeHasPlaceAttribute);\n if (false) {}\n\n return children.reduce(\n everyPlace ? assignChildPlace : assignChildIndex,\n params\n )\n}\n\nfunction createParamsFromPlaces (places) {\n if (false) {}\n\n return Array.isArray(places)\n ? places.reduce(assignChildIndex, {})\n : Object.assign({}, places)\n}\n\nfunction assignChildPlace (params, child) {\n if (child.data && child.data.attrs && child.data.attrs.place) {\n params[child.data.attrs.place] = child;\n }\n return params\n}\n\nfunction assignChildIndex (params, child, index) {\n params[index] = child;\n return params\n}\n\nfunction vnodeHasPlaceAttribute (vnode) {\n return Boolean(vnode.data && vnode.data.attrs && vnode.data.attrs.place)\n}\n\n/* */\n\nvar numberComponent = {\n name: 'i18n-n',\n functional: true,\n props: {\n tag: {\n type: [String, Boolean],\n default: 'span'\n },\n value: {\n type: Number,\n required: true\n },\n format: {\n type: [String, Object]\n },\n locale: {\n type: String\n }\n },\n render: function render (h, ref) {\n var props = ref.props;\n var parent = ref.parent;\n var data = ref.data;\n\n var i18n = parent.$i18n;\n\n if (!i18n) {\n if (false) {}\n return null\n }\n\n var key = null;\n var options = null;\n\n if (isString(props.format)) {\n key = props.format;\n } else if (isObject(props.format)) {\n if (props.format.key) {\n key = props.format.key;\n }\n\n // Filter out number format options only\n options = Object.keys(props.format).reduce(function (acc, prop) {\n var obj;\n\n if (includes(numberFormatKeys, prop)) {\n return Object.assign({}, acc, ( obj = {}, obj[prop] = props.format[prop], obj ))\n }\n return acc\n }, null);\n }\n\n var locale = props.locale || i18n.locale;\n var parts = i18n._ntp(props.value, locale, key, options);\n\n var values = parts.map(function (part, index) {\n var obj;\n\n var slot = data.scopedSlots && data.scopedSlots[part.type];\n return slot ? slot(( obj = {}, obj[part.type] = part.value, obj.index = index, obj.parts = parts, obj )) : part.value\n });\n\n var tag = (!!props.tag && props.tag !== true) || props.tag === false ? props.tag : 'span';\n return tag\n ? h(tag, {\n attrs: data.attrs,\n 'class': data['class'],\n staticClass: data.staticClass\n }, values)\n : values\n }\n};\n\n/* */\n\nfunction bind (el, binding, vnode) {\n if (!assert(el, vnode)) { return }\n\n t(el, binding, vnode);\n}\n\nfunction update (el, binding, vnode, oldVNode) {\n if (!assert(el, vnode)) { return }\n\n var i18n = vnode.context.$i18n;\n if (localeEqual(el, vnode) &&\n (looseEqual(binding.value, binding.oldValue) &&\n looseEqual(el._localeMessage, i18n.getLocaleMessage(i18n.locale)))) { return }\n\n t(el, binding, vnode);\n}\n\nfunction unbind (el, binding, vnode, oldVNode) {\n var vm = vnode.context;\n if (!vm) {\n warn('Vue instance does not exists in VNode context');\n return\n }\n\n var i18n = vnode.context.$i18n || {};\n if (!binding.modifiers.preserve && !i18n.preserveDirectiveContent) {\n el.textContent = '';\n }\n el._vt = undefined;\n delete el['_vt'];\n el._locale = undefined;\n delete el['_locale'];\n el._localeMessage = undefined;\n delete el['_localeMessage'];\n}\n\nfunction assert (el, vnode) {\n var vm = vnode.context;\n if (!vm) {\n warn('Vue instance does not exists in VNode context');\n return false\n }\n\n if (!vm.$i18n) {\n warn('VueI18n instance does not exists in Vue instance');\n return false\n }\n\n return true\n}\n\nfunction localeEqual (el, vnode) {\n var vm = vnode.context;\n return el._locale === vm.$i18n.locale\n}\n\nfunction t (el, binding, vnode) {\n var ref$1, ref$2;\n\n var value = binding.value;\n\n var ref = parseValue(value);\n var path = ref.path;\n var locale = ref.locale;\n var args = ref.args;\n var choice = ref.choice;\n if (!path && !locale && !args) {\n warn('value type not supported');\n return\n }\n\n if (!path) {\n warn('`path` is required in v-t directive');\n return\n }\n\n var vm = vnode.context;\n if (choice != null) {\n el._vt = el.textContent = (ref$1 = vm.$i18n).tc.apply(ref$1, [ path, choice ].concat( makeParams(locale, args) ));\n } else {\n el._vt = el.textContent = (ref$2 = vm.$i18n).t.apply(ref$2, [ path ].concat( makeParams(locale, args) ));\n }\n el._locale = vm.$i18n.locale;\n el._localeMessage = vm.$i18n.getLocaleMessage(vm.$i18n.locale);\n}\n\nfunction parseValue (value) {\n var path;\n var locale;\n var args;\n var choice;\n\n if (isString(value)) {\n path = value;\n } else if (isPlainObject(value)) {\n path = value.path;\n locale = value.locale;\n args = value.args;\n choice = value.choice;\n }\n\n return { path: path, locale: locale, args: args, choice: choice }\n}\n\nfunction makeParams (locale, args) {\n var params = [];\n\n locale && params.push(locale);\n if (args && (Array.isArray(args) || isPlainObject(args))) {\n params.push(args);\n }\n\n return params\n}\n\nvar Vue;\n\nfunction install (_Vue) {\n /* istanbul ignore if */\n if (false) {}\n install.installed = true;\n\n Vue = _Vue;\n\n var version = (Vue.version && Number(Vue.version.split('.')[0])) || -1;\n /* istanbul ignore if */\n if (false) {}\n\n extend(Vue);\n Vue.mixin(mixin);\n Vue.directive('t', { bind: bind, update: update, unbind: unbind });\n Vue.component(interpolationComponent.name, interpolationComponent);\n Vue.component(numberComponent.name, numberComponent);\n\n // use simple mergeStrategies to prevent i18n instance lose '__proto__'\n var strats = Vue.config.optionMergeStrategies;\n strats.i18n = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n };\n}\n\n/* */\n\nvar BaseFormatter = function BaseFormatter () {\n this._caches = Object.create(null);\n};\n\nBaseFormatter.prototype.interpolate = function interpolate (message, values) {\n if (!values) {\n return [message]\n }\n var tokens = this._caches[message];\n if (!tokens) {\n tokens = parse(message);\n this._caches[message] = tokens;\n }\n return compile(tokens, values)\n};\n\n\n\nvar RE_TOKEN_LIST_VALUE = /^(?:\\d)+/;\nvar RE_TOKEN_NAMED_VALUE = /^(?:\\w)+/;\n\nfunction parse (format) {\n var tokens = [];\n var position = 0;\n\n var text = '';\n while (position < format.length) {\n var char = format[position++];\n if (char === '{') {\n if (text) {\n tokens.push({ type: 'text', value: text });\n }\n\n text = '';\n var sub = '';\n char = format[position++];\n while (char !== undefined && char !== '}') {\n sub += char;\n char = format[position++];\n }\n var isClosed = char === '}';\n\n var type = RE_TOKEN_LIST_VALUE.test(sub)\n ? 'list'\n : isClosed && RE_TOKEN_NAMED_VALUE.test(sub)\n ? 'named'\n : 'unknown';\n tokens.push({ value: sub, type: type });\n } else if (char === '%') {\n // when found rails i18n syntax, skip text capture\n if (format[(position)] !== '{') {\n text += char;\n }\n } else {\n text += char;\n }\n }\n\n text && tokens.push({ type: 'text', value: text });\n\n return tokens\n}\n\nfunction compile (tokens, values) {\n var compiled = [];\n var index = 0;\n\n var mode = Array.isArray(values)\n ? 'list'\n : isObject(values)\n ? 'named'\n : 'unknown';\n if (mode === 'unknown') { return compiled }\n\n while (index < tokens.length) {\n var token = tokens[index];\n switch (token.type) {\n case 'text':\n compiled.push(token.value);\n break\n case 'list':\n compiled.push(values[parseInt(token.value, 10)]);\n break\n case 'named':\n if (mode === 'named') {\n compiled.push((values)[token.value]);\n } else {\n if (false) {}\n }\n break\n case 'unknown':\n if (false) {}\n break\n }\n index++;\n }\n\n return compiled\n}\n\n/* */\n\n/**\n * Path parser\n * - Inspired:\n * Vue.js Path parser\n */\n\n// actions\nvar APPEND = 0;\nvar PUSH = 1;\nvar INC_SUB_PATH_DEPTH = 2;\nvar PUSH_SUB_PATH = 3;\n\n// states\nvar BEFORE_PATH = 0;\nvar IN_PATH = 1;\nvar BEFORE_IDENT = 2;\nvar IN_IDENT = 3;\nvar IN_SUB_PATH = 4;\nvar IN_SINGLE_QUOTE = 5;\nvar IN_DOUBLE_QUOTE = 6;\nvar AFTER_PATH = 7;\nvar ERROR = 8;\n\nvar pathStateMachine = [];\n\npathStateMachine[BEFORE_PATH] = {\n 'ws': [BEFORE_PATH],\n 'ident': [IN_IDENT, APPEND],\n '[': [IN_SUB_PATH],\n 'eof': [AFTER_PATH]\n};\n\npathStateMachine[IN_PATH] = {\n 'ws': [IN_PATH],\n '.': [BEFORE_IDENT],\n '[': [IN_SUB_PATH],\n 'eof': [AFTER_PATH]\n};\n\npathStateMachine[BEFORE_IDENT] = {\n 'ws': [BEFORE_IDENT],\n 'ident': [IN_IDENT, APPEND],\n '0': [IN_IDENT, APPEND],\n 'number': [IN_IDENT, APPEND]\n};\n\npathStateMachine[IN_IDENT] = {\n 'ident': [IN_IDENT, APPEND],\n '0': [IN_IDENT, APPEND],\n 'number': [IN_IDENT, APPEND],\n 'ws': [IN_PATH, PUSH],\n '.': [BEFORE_IDENT, PUSH],\n '[': [IN_SUB_PATH, PUSH],\n 'eof': [AFTER_PATH, PUSH]\n};\n\npathStateMachine[IN_SUB_PATH] = {\n \"'\": [IN_SINGLE_QUOTE, APPEND],\n '\"': [IN_DOUBLE_QUOTE, APPEND],\n '[': [IN_SUB_PATH, INC_SUB_PATH_DEPTH],\n ']': [IN_PATH, PUSH_SUB_PATH],\n 'eof': ERROR,\n 'else': [IN_SUB_PATH, APPEND]\n};\n\npathStateMachine[IN_SINGLE_QUOTE] = {\n \"'\": [IN_SUB_PATH, APPEND],\n 'eof': ERROR,\n 'else': [IN_SINGLE_QUOTE, APPEND]\n};\n\npathStateMachine[IN_DOUBLE_QUOTE] = {\n '\"': [IN_SUB_PATH, APPEND],\n 'eof': ERROR,\n 'else': [IN_DOUBLE_QUOTE, APPEND]\n};\n\n/**\n * Check if an expression is a literal value.\n */\n\nvar literalValueRE = /^\\s?(?:true|false|-?[\\d.]+|'[^']*'|\"[^\"]*\")\\s?$/;\nfunction isLiteral (exp) {\n return literalValueRE.test(exp)\n}\n\n/**\n * Strip quotes from a string\n */\n\nfunction stripQuotes (str) {\n var a = str.charCodeAt(0);\n var b = str.charCodeAt(str.length - 1);\n return a === b && (a === 0x22 || a === 0x27)\n ? str.slice(1, -1)\n : str\n}\n\n/**\n * Determine the type of a character in a keypath.\n */\n\nfunction getPathCharType (ch) {\n if (ch === undefined || ch === null) { return 'eof' }\n\n var code = ch.charCodeAt(0);\n\n switch (code) {\n case 0x5B: // [\n case 0x5D: // ]\n case 0x2E: // .\n case 0x22: // \"\n case 0x27: // '\n return ch\n\n case 0x5F: // _\n case 0x24: // $\n case 0x2D: // -\n return 'ident'\n\n case 0x09: // Tab\n case 0x0A: // Newline\n case 0x0D: // Return\n case 0xA0: // No-break space\n case 0xFEFF: // Byte Order Mark\n case 0x2028: // Line Separator\n case 0x2029: // Paragraph Separator\n return 'ws'\n }\n\n return 'ident'\n}\n\n/**\n * Format a subPath, return its plain form if it is\n * a literal string or number. Otherwise prepend the\n * dynamic indicator (*).\n */\n\nfunction formatSubPath (path) {\n var trimmed = path.trim();\n // invalid leading 0\n if (path.charAt(0) === '0' && isNaN(path)) { return false }\n\n return isLiteral(trimmed) ? stripQuotes(trimmed) : '*' + trimmed\n}\n\n/**\n * Parse a string path into an array of segments\n */\n\nfunction parse$1 (path) {\n var keys = [];\n var index = -1;\n var mode = BEFORE_PATH;\n var subPathDepth = 0;\n var c;\n var key;\n var newChar;\n var type;\n var transition;\n var action;\n var typeMap;\n var actions = [];\n\n actions[PUSH] = function () {\n if (key !== undefined) {\n keys.push(key);\n key = undefined;\n }\n };\n\n actions[APPEND] = function () {\n if (key === undefined) {\n key = newChar;\n } else {\n key += newChar;\n }\n };\n\n actions[INC_SUB_PATH_DEPTH] = function () {\n actions[APPEND]();\n subPathDepth++;\n };\n\n actions[PUSH_SUB_PATH] = function () {\n if (subPathDepth > 0) {\n subPathDepth--;\n mode = IN_SUB_PATH;\n actions[APPEND]();\n } else {\n subPathDepth = 0;\n if (key === undefined) { return false }\n key = formatSubPath(key);\n if (key === false) {\n return false\n } else {\n actions[PUSH]();\n }\n }\n };\n\n function maybeUnescapeQuote () {\n var nextChar = path[index + 1];\n if ((mode === IN_SINGLE_QUOTE && nextChar === \"'\") ||\n (mode === IN_DOUBLE_QUOTE && nextChar === '\"')) {\n index++;\n newChar = '\\\\' + nextChar;\n actions[APPEND]();\n return true\n }\n }\n\n while (mode !== null) {\n index++;\n c = path[index];\n\n if (c === '\\\\' && maybeUnescapeQuote()) {\n continue\n }\n\n type = getPathCharType(c);\n typeMap = pathStateMachine[mode];\n transition = typeMap[type] || typeMap['else'] || ERROR;\n\n if (transition === ERROR) {\n return // parse error\n }\n\n mode = transition[0];\n action = actions[transition[1]];\n if (action) {\n newChar = transition[2];\n newChar = newChar === undefined\n ? c\n : newChar;\n if (action() === false) {\n return\n }\n }\n\n if (mode === AFTER_PATH) {\n return keys\n }\n }\n}\n\n\n\n\n\nvar I18nPath = function I18nPath () {\n this._cache = Object.create(null);\n};\n\n/**\n * External parse that check for a cache hit first\n */\nI18nPath.prototype.parsePath = function parsePath (path) {\n var hit = this._cache[path];\n if (!hit) {\n hit = parse$1(path);\n if (hit) {\n this._cache[path] = hit;\n }\n }\n return hit || []\n};\n\n/**\n * Get path value from path string\n */\nI18nPath.prototype.getPathValue = function getPathValue (obj, path) {\n if (!isObject(obj)) { return null }\n\n var paths = this.parsePath(path);\n if (paths.length === 0) {\n return null\n } else {\n var length = paths.length;\n var last = obj;\n var i = 0;\n while (i < length) {\n var value = last[paths[i]];\n if (value === undefined) {\n return null\n }\n last = value;\n i++;\n }\n\n return last\n }\n};\n\n/* */\n\n\n\nvar htmlTagMatcher = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\nvar linkKeyMatcher = /(?:@(?:\\.[a-z]+)?:(?:[\\w\\-_|.]+|\\([\\w\\-_|.]+\\)))/g;\nvar linkKeyPrefixMatcher = /^@(?:\\.([a-z]+))?:/;\nvar bracketsMatcher = /[()]/g;\nvar defaultModifiers = {\n 'upper': function (str) { return str.toLocaleUpperCase(); },\n 'lower': function (str) { return str.toLocaleLowerCase(); },\n 'capitalize': function (str) { return (\"\" + (str.charAt(0).toLocaleUpperCase()) + (str.substr(1))); }\n};\n\nvar defaultFormatter = new BaseFormatter();\n\nvar VueI18n = function VueI18n (options) {\n var this$1 = this;\n if ( options === void 0 ) options = {};\n\n // Auto install if it is not done yet and `window` has `Vue`.\n // To allow users to avoid auto-installation in some cases,\n // this code should be placed here. See #290\n /* istanbul ignore if */\n if (!Vue && typeof window !== 'undefined' && window.Vue) {\n install(window.Vue);\n }\n\n var locale = options.locale || 'en-US';\n var fallbackLocale = options.fallbackLocale === false\n ? false\n : options.fallbackLocale || 'en-US';\n var messages = options.messages || {};\n var dateTimeFormats = options.dateTimeFormats || {};\n var numberFormats = options.numberFormats || {};\n\n this._vm = null;\n this._formatter = options.formatter || defaultFormatter;\n this._modifiers = options.modifiers || {};\n this._missing = options.missing || null;\n this._root = options.root || null;\n this._sync = options.sync === undefined ? true : !!options.sync;\n this._fallbackRoot = options.fallbackRoot === undefined\n ? true\n : !!options.fallbackRoot;\n this._formatFallbackMessages = options.formatFallbackMessages === undefined\n ? false\n : !!options.formatFallbackMessages;\n this._silentTranslationWarn = options.silentTranslationWarn === undefined\n ? false\n : options.silentTranslationWarn;\n this._silentFallbackWarn = options.silentFallbackWarn === undefined\n ? false\n : !!options.silentFallbackWarn;\n this._dateTimeFormatters = {};\n this._numberFormatters = {};\n this._path = new I18nPath();\n this._dataListeners = [];\n this._componentInstanceCreatedListener = options.componentInstanceCreatedListener || null;\n this._preserveDirectiveContent = options.preserveDirectiveContent === undefined\n ? false\n : !!options.preserveDirectiveContent;\n this.pluralizationRules = options.pluralizationRules || {};\n this._warnHtmlInMessage = options.warnHtmlInMessage || 'off';\n this._postTranslation = options.postTranslation || null;\n\n /**\n * @param choice {number} a choice index given by the input to $tc: `$tc('path.to.rule', choiceIndex)`\n * @param choicesLength {number} an overall amount of available choices\n * @returns a final choice index\n */\n this.getChoiceIndex = function (choice, choicesLength) {\n var thisPrototype = Object.getPrototypeOf(this$1);\n if (thisPrototype && thisPrototype.getChoiceIndex) {\n var prototypeGetChoiceIndex = (thisPrototype.getChoiceIndex);\n return (prototypeGetChoiceIndex).call(this$1, choice, choicesLength)\n }\n\n // Default (old) getChoiceIndex implementation - english-compatible\n var defaultImpl = function (_choice, _choicesLength) {\n _choice = Math.abs(_choice);\n\n if (_choicesLength === 2) {\n return _choice\n ? _choice > 1\n ? 1\n : 0\n : 1\n }\n\n return _choice ? Math.min(_choice, 2) : 0\n };\n\n if (this$1.locale in this$1.pluralizationRules) {\n return this$1.pluralizationRules[this$1.locale].apply(this$1, [choice, choicesLength])\n } else {\n return defaultImpl(choice, choicesLength)\n }\n };\n\n\n this._exist = function (message, key) {\n if (!message || !key) { return false }\n if (!isNull(this$1._path.getPathValue(message, key))) { return true }\n // fallback for flat key\n if (message[key]) { return true }\n return false\n };\n\n if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n Object.keys(messages).forEach(function (locale) {\n this$1._checkLocaleMessage(locale, this$1._warnHtmlInMessage, messages[locale]);\n });\n }\n\n this._initVM({\n locale: locale,\n fallbackLocale: fallbackLocale,\n messages: messages,\n dateTimeFormats: dateTimeFormats,\n numberFormats: numberFormats\n });\n};\n\nvar prototypeAccessors = { vm: { configurable: true },messages: { configurable: true },dateTimeFormats: { configurable: true },numberFormats: { configurable: true },availableLocales: { configurable: true },locale: { configurable: true },fallbackLocale: { configurable: true },formatFallbackMessages: { configurable: true },missing: { configurable: true },formatter: { configurable: true },silentTranslationWarn: { configurable: true },silentFallbackWarn: { configurable: true },preserveDirectiveContent: { configurable: true },warnHtmlInMessage: { configurable: true },postTranslation: { configurable: true } };\n\nVueI18n.prototype._checkLocaleMessage = function _checkLocaleMessage (locale, level, message) {\n var paths = [];\n\n var fn = function (level, locale, message, paths) {\n if (isPlainObject(message)) {\n Object.keys(message).forEach(function (key) {\n var val = message[key];\n if (isPlainObject(val)) {\n paths.push(key);\n paths.push('.');\n fn(level, locale, val, paths);\n paths.pop();\n paths.pop();\n } else {\n paths.push(key);\n fn(level, locale, val, paths);\n paths.pop();\n }\n });\n } else if (Array.isArray(message)) {\n message.forEach(function (item, index) {\n if (isPlainObject(item)) {\n paths.push((\"[\" + index + \"]\"));\n paths.push('.');\n fn(level, locale, item, paths);\n paths.pop();\n paths.pop();\n } else {\n paths.push((\"[\" + index + \"]\"));\n fn(level, locale, item, paths);\n paths.pop();\n }\n });\n } else if (isString(message)) {\n var ret = htmlTagMatcher.test(message);\n if (ret) {\n var msg = \"Detected HTML in message '\" + message + \"' of keypath '\" + (paths.join('')) + \"' at '\" + locale + \"'. Consider component interpolation with '' to avoid XSS. See https://bit.ly/2ZqJzkp\";\n if (level === 'warn') {\n warn(msg);\n } else if (level === 'error') {\n error(msg);\n }\n }\n }\n };\n\n fn(level, locale, message, paths);\n};\n\nVueI18n.prototype._initVM = function _initVM (data) {\n var silent = Vue.config.silent;\n Vue.config.silent = true;\n this._vm = new Vue({ data: data });\n Vue.config.silent = silent;\n};\n\nVueI18n.prototype.destroyVM = function destroyVM () {\n this._vm.$destroy();\n};\n\nVueI18n.prototype.subscribeDataChanging = function subscribeDataChanging (vm) {\n this._dataListeners.push(vm);\n};\n\nVueI18n.prototype.unsubscribeDataChanging = function unsubscribeDataChanging (vm) {\n remove(this._dataListeners, vm);\n};\n\nVueI18n.prototype.watchI18nData = function watchI18nData () {\n var self = this;\n return this._vm.$watch('$data', function () {\n var i = self._dataListeners.length;\n while (i--) {\n Vue.nextTick(function () {\n self._dataListeners[i] && self._dataListeners[i].$forceUpdate();\n });\n }\n }, { deep: true })\n};\n\nVueI18n.prototype.watchLocale = function watchLocale () {\n /* istanbul ignore if */\n if (!this._sync || !this._root) { return null }\n var target = this._vm;\n return this._root.$i18n.vm.$watch('locale', function (val) {\n target.$set(target, 'locale', val);\n target.$forceUpdate();\n }, { immediate: true })\n};\n\nVueI18n.prototype.onComponentInstanceCreated = function onComponentInstanceCreated (newI18n) {\n if (this._componentInstanceCreatedListener) {\n this._componentInstanceCreatedListener(newI18n, this);\n }\n};\n\nprototypeAccessors.vm.get = function () { return this._vm };\n\nprototypeAccessors.messages.get = function () { return looseClone(this._getMessages()) };\nprototypeAccessors.dateTimeFormats.get = function () { return looseClone(this._getDateTimeFormats()) };\nprototypeAccessors.numberFormats.get = function () { return looseClone(this._getNumberFormats()) };\nprototypeAccessors.availableLocales.get = function () { return Object.keys(this.messages).sort() };\n\nprototypeAccessors.locale.get = function () { return this._vm.locale };\nprototypeAccessors.locale.set = function (locale) {\n this._vm.$set(this._vm, 'locale', locale);\n};\n\nprototypeAccessors.fallbackLocale.get = function () { return this._vm.fallbackLocale };\nprototypeAccessors.fallbackLocale.set = function (locale) {\n this._localeChainCache = {};\n this._vm.$set(this._vm, 'fallbackLocale', locale);\n};\n\nprototypeAccessors.formatFallbackMessages.get = function () { return this._formatFallbackMessages };\nprototypeAccessors.formatFallbackMessages.set = function (fallback) { this._formatFallbackMessages = fallback; };\n\nprototypeAccessors.missing.get = function () { return this._missing };\nprototypeAccessors.missing.set = function (handler) { this._missing = handler; };\n\nprototypeAccessors.formatter.get = function () { return this._formatter };\nprototypeAccessors.formatter.set = function (formatter) { this._formatter = formatter; };\n\nprototypeAccessors.silentTranslationWarn.get = function () { return this._silentTranslationWarn };\nprototypeAccessors.silentTranslationWarn.set = function (silent) { this._silentTranslationWarn = silent; };\n\nprototypeAccessors.silentFallbackWarn.get = function () { return this._silentFallbackWarn };\nprototypeAccessors.silentFallbackWarn.set = function (silent) { this._silentFallbackWarn = silent; };\n\nprototypeAccessors.preserveDirectiveContent.get = function () { return this._preserveDirectiveContent };\nprototypeAccessors.preserveDirectiveContent.set = function (preserve) { this._preserveDirectiveContent = preserve; };\n\nprototypeAccessors.warnHtmlInMessage.get = function () { return this._warnHtmlInMessage };\nprototypeAccessors.warnHtmlInMessage.set = function (level) {\n var this$1 = this;\n\n var orgLevel = this._warnHtmlInMessage;\n this._warnHtmlInMessage = level;\n if (orgLevel !== level && (level === 'warn' || level === 'error')) {\n var messages = this._getMessages();\n Object.keys(messages).forEach(function (locale) {\n this$1._checkLocaleMessage(locale, this$1._warnHtmlInMessage, messages[locale]);\n });\n }\n};\n\nprototypeAccessors.postTranslation.get = function () { return this._postTranslation };\nprototypeAccessors.postTranslation.set = function (handler) { this._postTranslation = handler; };\n\nVueI18n.prototype._getMessages = function _getMessages () { return this._vm.messages };\nVueI18n.prototype._getDateTimeFormats = function _getDateTimeFormats () { return this._vm.dateTimeFormats };\nVueI18n.prototype._getNumberFormats = function _getNumberFormats () { return this._vm.numberFormats };\n\nVueI18n.prototype._warnDefault = function _warnDefault (locale, key, result, vm, values, interpolateMode) {\n if (!isNull(result)) { return result }\n if (this._missing) {\n var missingRet = this._missing.apply(null, [locale, key, vm, values]);\n if (isString(missingRet)) {\n return missingRet\n }\n } else {\n if (false) {}\n }\n\n if (this._formatFallbackMessages) {\n var parsedArgs = parseArgs.apply(void 0, values);\n return this._render(key, interpolateMode, parsedArgs.params, key)\n } else {\n return key\n }\n};\n\nVueI18n.prototype._isFallbackRoot = function _isFallbackRoot (val) {\n return !val && !isNull(this._root) && this._fallbackRoot\n};\n\nVueI18n.prototype._isSilentFallbackWarn = function _isSilentFallbackWarn (key) {\n return this._silentFallbackWarn instanceof RegExp\n ? this._silentFallbackWarn.test(key)\n : this._silentFallbackWarn\n};\n\nVueI18n.prototype._isSilentFallback = function _isSilentFallback (locale, key) {\n return this._isSilentFallbackWarn(key) && (this._isFallbackRoot() || locale !== this.fallbackLocale)\n};\n\nVueI18n.prototype._isSilentTranslationWarn = function _isSilentTranslationWarn (key) {\n return this._silentTranslationWarn instanceof RegExp\n ? this._silentTranslationWarn.test(key)\n : this._silentTranslationWarn\n};\n\nVueI18n.prototype._interpolate = function _interpolate (\n locale,\n message,\n key,\n host,\n interpolateMode,\n values,\n visitedLinkStack\n) {\n if (!message) { return null }\n\n var pathRet = this._path.getPathValue(message, key);\n if (Array.isArray(pathRet) || isPlainObject(pathRet)) { return pathRet }\n\n var ret;\n if (isNull(pathRet)) {\n /* istanbul ignore else */\n if (isPlainObject(message)) {\n ret = message[key];\n if (!isString(ret)) {\n if (false) {}\n return null\n }\n } else {\n return null\n }\n } else {\n /* istanbul ignore else */\n if (isString(pathRet)) {\n ret = pathRet;\n } else {\n if (false) {}\n return null\n }\n }\n\n // Check for the existence of links within the translated string\n if (ret.indexOf('@:') >= 0 || ret.indexOf('@.') >= 0) {\n ret = this._link(locale, message, ret, host, 'raw', values, visitedLinkStack);\n }\n\n return this._render(ret, interpolateMode, values, key)\n};\n\nVueI18n.prototype._link = function _link (\n locale,\n message,\n str,\n host,\n interpolateMode,\n values,\n visitedLinkStack\n) {\n var ret = str;\n\n // Match all the links within the local\n // We are going to replace each of\n // them with its translation\n var matches = ret.match(linkKeyMatcher);\n for (var idx in matches) {\n // ie compatible: filter custom array\n // prototype method\n if (!matches.hasOwnProperty(idx)) {\n continue\n }\n var link = matches[idx];\n var linkKeyPrefixMatches = link.match(linkKeyPrefixMatcher);\n var linkPrefix = linkKeyPrefixMatches[0];\n var formatterName = linkKeyPrefixMatches[1];\n\n // Remove the leading @:, @.case: and the brackets\n var linkPlaceholder = link.replace(linkPrefix, '').replace(bracketsMatcher, '');\n\n if (includes(visitedLinkStack, linkPlaceholder)) {\n if (false) {}\n return ret\n }\n visitedLinkStack.push(linkPlaceholder);\n\n // Translate the link\n var translated = this._interpolate(\n locale, message, linkPlaceholder, host,\n interpolateMode === 'raw' ? 'string' : interpolateMode,\n interpolateMode === 'raw' ? undefined : values,\n visitedLinkStack\n );\n\n if (this._isFallbackRoot(translated)) {\n if (false) {}\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n var root = this._root.$i18n;\n translated = root._translate(\n root._getMessages(), root.locale, root.fallbackLocale,\n linkPlaceholder, host, interpolateMode, values\n );\n }\n translated = this._warnDefault(\n locale, linkPlaceholder, translated, host,\n Array.isArray(values) ? values : [values],\n interpolateMode\n );\n\n if (this._modifiers.hasOwnProperty(formatterName)) {\n translated = this._modifiers[formatterName](translated);\n } else if (defaultModifiers.hasOwnProperty(formatterName)) {\n translated = defaultModifiers[formatterName](translated);\n }\n\n visitedLinkStack.pop();\n\n // Replace the link with the translated\n ret = !translated ? ret : ret.replace(link, translated);\n }\n\n return ret\n};\n\nVueI18n.prototype._render = function _render (message, interpolateMode, values, path) {\n var ret = this._formatter.interpolate(message, values, path);\n\n // If the custom formatter refuses to work - apply the default one\n if (!ret) {\n ret = defaultFormatter.interpolate(message, values, path);\n }\n\n // if interpolateMode is **not** 'string' ('row'),\n // return the compiled data (e.g. ['foo', VNode, 'bar']) with formatter\n return interpolateMode === 'string' && !isString(ret) ? ret.join('') : ret\n};\n\nVueI18n.prototype._appendItemToChain = function _appendItemToChain (chain, item, blocks) {\n var follow = false;\n if (!includes(chain, item)) {\n follow = true;\n if (item) {\n follow = item[item.length - 1] !== '!';\n item = item.replace(/!/g, '');\n chain.push(item);\n if (blocks && blocks[item]) {\n follow = blocks[item];\n }\n }\n }\n return follow\n};\n\nVueI18n.prototype._appendLocaleToChain = function _appendLocaleToChain (chain, locale, blocks) {\n var follow;\n var tokens = locale.split('-');\n do {\n var item = tokens.join('-');\n follow = this._appendItemToChain(chain, item, blocks);\n tokens.splice(-1, 1);\n } while (tokens.length && (follow === true))\n return follow\n};\n\nVueI18n.prototype._appendBlockToChain = function _appendBlockToChain (chain, block, blocks) {\n var follow = true;\n for (var i = 0; (i < block.length) && (isBoolean(follow)); i++) {\n var locale = block[i];\n if (isString(locale)) {\n follow = this._appendLocaleToChain(chain, locale, blocks);\n }\n }\n return follow\n};\n\nVueI18n.prototype._getLocaleChain = function _getLocaleChain (start, fallbackLocale) {\n if (start === '') { return [] }\n\n if (!this._localeChainCache) {\n this._localeChainCache = {};\n }\n\n var chain = this._localeChainCache[start];\n if (!chain) {\n if (!fallbackLocale) {\n fallbackLocale = this.fallbackLocale;\n }\n chain = [];\n\n // first block defined by start\n var block = [start];\n\n // while any intervening block found\n while (isArray(block)) {\n block = this._appendBlockToChain(\n chain,\n block,\n fallbackLocale\n );\n }\n\n // last block defined by default\n var defaults;\n if (isArray(fallbackLocale)) {\n defaults = fallbackLocale;\n } else if (isObject(fallbackLocale)) {\n /* $FlowFixMe */\n if (fallbackLocale['default']) {\n defaults = fallbackLocale['default'];\n } else {\n defaults = null;\n }\n } else {\n defaults = fallbackLocale;\n }\n\n // convert defaults to array\n if (isString(defaults)) {\n block = [defaults];\n } else {\n block = defaults;\n }\n if (block) {\n this._appendBlockToChain(\n chain,\n block,\n null\n );\n }\n this._localeChainCache[start] = chain;\n }\n return chain\n};\n\nVueI18n.prototype._translate = function _translate (\n messages,\n locale,\n fallback,\n key,\n host,\n interpolateMode,\n args\n) {\n var chain = this._getLocaleChain(locale, fallback);\n var res;\n for (var i = 0; i < chain.length; i++) {\n var step = chain[i];\n res =\n this._interpolate(step, messages[step], key, host, interpolateMode, args, [key]);\n if (!isNull(res)) {\n if (step !== locale && \"production\" !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to translate the keypath '\" + key + \"' with '\" + step + \"' locale.\"));\n }\n return res\n }\n }\n return null\n};\n\nVueI18n.prototype._t = function _t (key, _locale, messages, host) {\n var ref;\n\n var values = [], len = arguments.length - 4;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 4 ];\n if (!key) { return '' }\n\n var parsedArgs = parseArgs.apply(void 0, values);\n var locale = parsedArgs.locale || _locale;\n\n var ret = this._translate(\n messages, locale, this.fallbackLocale, key,\n host, 'string', parsedArgs.params\n );\n if (this._isFallbackRoot(ret)) {\n if (false) {}\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return (ref = this._root).$t.apply(ref, [ key ].concat( values ))\n } else {\n ret = this._warnDefault(locale, key, ret, host, values, 'string');\n if (this._postTranslation && ret !== null && ret !== undefined) {\n ret = this._postTranslation(ret, key);\n }\n return ret\n }\n};\n\nVueI18n.prototype.t = function t (key) {\n var ref;\n\n var values = [], len = arguments.length - 1;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 1 ];\n return (ref = this)._t.apply(ref, [ key, this.locale, this._getMessages(), null ].concat( values ))\n};\n\nVueI18n.prototype._i = function _i (key, locale, messages, host, values) {\n var ret =\n this._translate(messages, locale, this.fallbackLocale, key, host, 'raw', values);\n if (this._isFallbackRoot(ret)) {\n if (false) {}\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n.i(key, locale, values)\n } else {\n return this._warnDefault(locale, key, ret, host, [values], 'raw')\n }\n};\n\nVueI18n.prototype.i = function i (key, locale, values) {\n /* istanbul ignore if */\n if (!key) { return '' }\n\n if (!isString(locale)) {\n locale = this.locale;\n }\n\n return this._i(key, locale, this._getMessages(), null, values)\n};\n\nVueI18n.prototype._tc = function _tc (\n key,\n _locale,\n messages,\n host,\n choice\n) {\n var ref;\n\n var values = [], len = arguments.length - 5;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 5 ];\n if (!key) { return '' }\n if (choice === undefined) {\n choice = 1;\n }\n\n var predefined = { 'count': choice, 'n': choice };\n var parsedArgs = parseArgs.apply(void 0, values);\n parsedArgs.params = Object.assign(predefined, parsedArgs.params);\n values = parsedArgs.locale === null ? [parsedArgs.params] : [parsedArgs.locale, parsedArgs.params];\n return this.fetchChoice((ref = this)._t.apply(ref, [ key, _locale, messages, host ].concat( values )), choice)\n};\n\nVueI18n.prototype.fetchChoice = function fetchChoice (message, choice) {\n /* istanbul ignore if */\n if (!message && !isString(message)) { return null }\n var choices = message.split('|');\n\n choice = this.getChoiceIndex(choice, choices.length);\n if (!choices[choice]) { return message }\n return choices[choice].trim()\n};\n\nVueI18n.prototype.tc = function tc (key, choice) {\n var ref;\n\n var values = [], len = arguments.length - 2;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 2 ];\n return (ref = this)._tc.apply(ref, [ key, this.locale, this._getMessages(), null, choice ].concat( values ))\n};\n\nVueI18n.prototype._te = function _te (key, locale, messages) {\n var args = [], len = arguments.length - 3;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 3 ];\n\n var _locale = parseArgs.apply(void 0, args).locale || locale;\n return this._exist(messages[_locale], key)\n};\n\nVueI18n.prototype.te = function te (key, locale) {\n return this._te(key, this.locale, this._getMessages(), locale)\n};\n\nVueI18n.prototype.getLocaleMessage = function getLocaleMessage (locale) {\n return looseClone(this._vm.messages[locale] || {})\n};\n\nVueI18n.prototype.setLocaleMessage = function setLocaleMessage (locale, message) {\n if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n this._checkLocaleMessage(locale, this._warnHtmlInMessage, message);\n }\n this._vm.$set(this._vm.messages, locale, message);\n};\n\nVueI18n.prototype.mergeLocaleMessage = function mergeLocaleMessage (locale, message) {\n if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n this._checkLocaleMessage(locale, this._warnHtmlInMessage, message);\n }\n this._vm.$set(this._vm.messages, locale, merge({}, this._vm.messages[locale] || {}, message));\n};\n\nVueI18n.prototype.getDateTimeFormat = function getDateTimeFormat (locale) {\n return looseClone(this._vm.dateTimeFormats[locale] || {})\n};\n\nVueI18n.prototype.setDateTimeFormat = function setDateTimeFormat (locale, format) {\n this._vm.$set(this._vm.dateTimeFormats, locale, format);\n this._clearDateTimeFormat(locale, format);\n};\n\nVueI18n.prototype.mergeDateTimeFormat = function mergeDateTimeFormat (locale, format) {\n this._vm.$set(this._vm.dateTimeFormats, locale, merge(this._vm.dateTimeFormats[locale] || {}, format));\n this._clearDateTimeFormat(locale, format);\n};\n\nVueI18n.prototype._clearDateTimeFormat = function _clearDateTimeFormat (locale, format) {\n for (var key in format) {\n var id = locale + \"__\" + key;\n\n if (!this._dateTimeFormatters.hasOwnProperty(id)) {\n continue\n }\n\n delete this._dateTimeFormatters[id];\n }\n};\n\nVueI18n.prototype._localizeDateTime = function _localizeDateTime (\n value,\n locale,\n fallback,\n dateTimeFormats,\n key\n) {\n var _locale = locale;\n var formats = dateTimeFormats[_locale];\n\n var chain = this._getLocaleChain(locale, fallback);\n for (var i = 0; i < chain.length; i++) {\n var current = _locale;\n var step = chain[i];\n formats = dateTimeFormats[step];\n _locale = step;\n // fallback locale\n if (isNull(formats) || isNull(formats[key])) {\n if (step !== locale && \"production\" !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to '\" + step + \"' datetime formats from '\" + current + \"' datetime formats.\"));\n }\n } else {\n break\n }\n }\n\n if (isNull(formats) || isNull(formats[key])) {\n return null\n } else {\n var format = formats[key];\n var id = _locale + \"__\" + key;\n var formatter = this._dateTimeFormatters[id];\n if (!formatter) {\n formatter = this._dateTimeFormatters[id] = new Intl.DateTimeFormat(_locale, format);\n }\n return formatter.format(value)\n }\n};\n\nVueI18n.prototype._d = function _d (value, locale, key) {\n /* istanbul ignore if */\n if (false) {}\n\n if (!key) {\n return new Intl.DateTimeFormat(locale).format(value)\n }\n\n var ret =\n this._localizeDateTime(value, locale, this.fallbackLocale, this._getDateTimeFormats(), key);\n if (this._isFallbackRoot(ret)) {\n if (false) {}\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n.d(value, key, locale)\n } else {\n return ret || ''\n }\n};\n\nVueI18n.prototype.d = function d (value) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n var locale = this.locale;\n var key = null;\n\n if (args.length === 1) {\n if (isString(args[0])) {\n key = args[0];\n } else if (isObject(args[0])) {\n if (args[0].locale) {\n locale = args[0].locale;\n }\n if (args[0].key) {\n key = args[0].key;\n }\n }\n } else if (args.length === 2) {\n if (isString(args[0])) {\n key = args[0];\n }\n if (isString(args[1])) {\n locale = args[1];\n }\n }\n\n return this._d(value, locale, key)\n};\n\nVueI18n.prototype.getNumberFormat = function getNumberFormat (locale) {\n return looseClone(this._vm.numberFormats[locale] || {})\n};\n\nVueI18n.prototype.setNumberFormat = function setNumberFormat (locale, format) {\n this._vm.$set(this._vm.numberFormats, locale, format);\n this._clearNumberFormat(locale, format);\n};\n\nVueI18n.prototype.mergeNumberFormat = function mergeNumberFormat (locale, format) {\n this._vm.$set(this._vm.numberFormats, locale, merge(this._vm.numberFormats[locale] || {}, format));\n this._clearNumberFormat(locale, format);\n};\n\nVueI18n.prototype._clearNumberFormat = function _clearNumberFormat (locale, format) {\n for (var key in format) {\n var id = locale + \"__\" + key;\n\n if (!this._numberFormatters.hasOwnProperty(id)) {\n continue\n }\n\n delete this._numberFormatters[id];\n }\n};\n\nVueI18n.prototype._getNumberFormatter = function _getNumberFormatter (\n value,\n locale,\n fallback,\n numberFormats,\n key,\n options\n) {\n var _locale = locale;\n var formats = numberFormats[_locale];\n\n var chain = this._getLocaleChain(locale, fallback);\n for (var i = 0; i < chain.length; i++) {\n var current = _locale;\n var step = chain[i];\n formats = numberFormats[step];\n _locale = step;\n // fallback locale\n if (isNull(formats) || isNull(formats[key])) {\n if (step !== locale && \"production\" !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to '\" + step + \"' number formats from '\" + current + \"' number formats.\"));\n }\n } else {\n break\n }\n }\n\n if (isNull(formats) || isNull(formats[key])) {\n return null\n } else {\n var format = formats[key];\n\n var formatter;\n if (options) {\n // If options specified - create one time number formatter\n formatter = new Intl.NumberFormat(_locale, Object.assign({}, format, options));\n } else {\n var id = _locale + \"__\" + key;\n formatter = this._numberFormatters[id];\n if (!formatter) {\n formatter = this._numberFormatters[id] = new Intl.NumberFormat(_locale, format);\n }\n }\n return formatter\n }\n};\n\nVueI18n.prototype._n = function _n (value, locale, key, options) {\n /* istanbul ignore if */\n if (!VueI18n.availabilities.numberFormat) {\n if (false) {}\n return ''\n }\n\n if (!key) {\n var nf = !options ? new Intl.NumberFormat(locale) : new Intl.NumberFormat(locale, options);\n return nf.format(value)\n }\n\n var formatter = this._getNumberFormatter(value, locale, this.fallbackLocale, this._getNumberFormats(), key, options);\n var ret = formatter && formatter.format(value);\n if (this._isFallbackRoot(ret)) {\n if (false) {}\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n.n(value, Object.assign({}, { key: key, locale: locale }, options))\n } else {\n return ret || ''\n }\n};\n\nVueI18n.prototype.n = function n (value) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n var locale = this.locale;\n var key = null;\n var options = null;\n\n if (args.length === 1) {\n if (isString(args[0])) {\n key = args[0];\n } else if (isObject(args[0])) {\n if (args[0].locale) {\n locale = args[0].locale;\n }\n if (args[0].key) {\n key = args[0].key;\n }\n\n // Filter out number format options only\n options = Object.keys(args[0]).reduce(function (acc, key) {\n var obj;\n\n if (includes(numberFormatKeys, key)) {\n return Object.assign({}, acc, ( obj = {}, obj[key] = args[0][key], obj ))\n }\n return acc\n }, null);\n }\n } else if (args.length === 2) {\n if (isString(args[0])) {\n key = args[0];\n }\n if (isString(args[1])) {\n locale = args[1];\n }\n }\n\n return this._n(value, locale, key, options)\n};\n\nVueI18n.prototype._ntp = function _ntp (value, locale, key, options) {\n /* istanbul ignore if */\n if (!VueI18n.availabilities.numberFormat) {\n if (false) {}\n return []\n }\n\n if (!key) {\n var nf = !options ? new Intl.NumberFormat(locale) : new Intl.NumberFormat(locale, options);\n return nf.formatToParts(value)\n }\n\n var formatter = this._getNumberFormatter(value, locale, this.fallbackLocale, this._getNumberFormats(), key, options);\n var ret = formatter && formatter.formatToParts(value);\n if (this._isFallbackRoot(ret)) {\n if (false) {}\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n._ntp(value, locale, key, options)\n } else {\n return ret || []\n }\n};\n\nObject.defineProperties( VueI18n.prototype, prototypeAccessors );\n\nvar availabilities;\n// $FlowFixMe\nObject.defineProperty(VueI18n, 'availabilities', {\n get: function get () {\n if (!availabilities) {\n var intlDefined = typeof Intl !== 'undefined';\n availabilities = {\n dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== 'undefined',\n numberFormat: intlDefined && typeof Intl.NumberFormat !== 'undefined'\n };\n }\n\n return availabilities\n }\n});\n\nVueI18n.install = install;\nVueI18n.version = '8.18.2';\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (VueI18n);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdnVlLWkxOG4vZGlzdC92dWUtaTE4bi5lc20uanM/YTkyNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFVBQVU7QUFDVjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLGlCQUFpQixzQkFBc0I7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULE9BQU87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O0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx3Q0FBd0M7O0FBRXhDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsOENBQThDOztBQUU5QztBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUFNQTtBQUNBO0FBQ0E7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QTtBQUNBO0FBQ0EsUUFBUSxLQUFxQyxFQUFFLEVBRTFDO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLEtBQWdILEVBQUUsRUFFckg7QUFDTDtBQUNBLHNCQUFzQjtBQUN0QixxREFBcUQsR0FBRywyQkFBMkI7QUFDbkYsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsaUNBQWlDLGlCQUFpQjtBQUNsRDtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUSxLQUFxQyxFQUFFLEVBRTFDO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLEtBQTRFLEVBQUUsRUFFakY7QUFDTDtBQUNBLHNCQUFzQjtBQUN0QjtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBOztBQUVlLGdFQUFPLEVBQUMiLCJmaWxlIjoiMTg4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiB2dWUtaTE4biB2OC4xOC4yIFxuICogKGMpIDIwMjAga2F6dXlhIGthd2FndWNoaVxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxuICovXG4vKiAgKi9cblxuLyoqXG4gKiBjb25zdGFudHNcbiAqL1xuXG52YXIgbnVtYmVyRm9ybWF0S2V5cyA9IFtcbiAgJ3N0eWxlJyxcbiAgJ2N1cnJlbmN5JyxcbiAgJ2N1cnJlbmN5RGlzcGxheScsXG4gICd1c2VHcm91cGluZycsXG4gICdtaW5pbXVtSW50ZWdlckRpZ2l0cycsXG4gICdtaW5pbXVtRnJhY3Rpb25EaWdpdHMnLFxuICAnbWF4aW11bUZyYWN0aW9uRGlnaXRzJyxcbiAgJ21pbmltdW1TaWduaWZpY2FudERpZ2l0cycsXG4gICdtYXhpbXVtU2lnbmlmaWNhbnREaWdpdHMnLFxuICAnbG9jYWxlTWF0Y2hlcicsXG4gICdmb3JtYXRNYXRjaGVyJyxcbiAgJ3VuaXQnXG5dO1xuXG4vKipcbiAqIHV0aWxpdGllc1xuICovXG5cbmZ1bmN0aW9uIHdhcm4gKG1zZywgZXJyKSB7XG4gIGlmICh0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBjb25zb2xlLndhcm4oJ1t2dWUtaTE4bl0gJyArIG1zZyk7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKGVycikge1xuICAgICAgY29uc29sZS53YXJuKGVyci5zdGFjayk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGVycm9yIChtc2csIGVycikge1xuICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgY29uc29sZS5lcnJvcignW3Z1ZS1pMThuXSAnICsgbXNnKTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGVyci5zdGFjayk7XG4gICAgfVxuICB9XG59XG5cbnZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheTtcblxuZnVuY3Rpb24gaXNPYmplY3QgKG9iaikge1xuICByZXR1cm4gb2JqICE9PSBudWxsICYmIHR5cGVvZiBvYmogPT09ICdvYmplY3QnXG59XG5cbmZ1bmN0aW9uIGlzQm9vbGVhbiAodmFsKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsID09PSAnYm9vbGVhbidcbn1cblxuZnVuY3Rpb24gaXNTdHJpbmcgKHZhbCkge1xuICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gJ3N0cmluZydcbn1cblxudmFyIHRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcbnZhciBPQkpFQ1RfU1RSSU5HID0gJ1tvYmplY3QgT2JqZWN0XSc7XG5mdW5jdGlvbiBpc1BsYWluT2JqZWN0IChvYmopIHtcbiAgcmV0dXJuIHRvU3RyaW5nLmNhbGwob2JqKSA9PT0gT0JKRUNUX1NUUklOR1xufVxuXG5mdW5jdGlvbiBpc051bGwgKHZhbCkge1xuICByZXR1cm4gdmFsID09PSBudWxsIHx8IHZhbCA9PT0gdW5kZWZpbmVkXG59XG5cbmZ1bmN0aW9uIHBhcnNlQXJncyAoKSB7XG4gIHZhciBhcmdzID0gW10sIGxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gIHdoaWxlICggbGVuLS0gKSBhcmdzWyBsZW4gXSA9IGFyZ3VtZW50c1sgbGVuIF07XG5cbiAgdmFyIGxvY2FsZSA9IG51bGw7XG4gIHZhciBwYXJhbXMgPSBudWxsO1xuICBpZiAoYXJncy5sZW5ndGggPT09IDEpIHtcbiAgICBpZiAoaXNPYmplY3QoYXJnc1swXSkgfHwgQXJyYXkuaXNBcnJheShhcmdzWzBdKSkge1xuICAgICAgcGFyYW1zID0gYXJnc1swXTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBhcmdzWzBdID09PSAnc3RyaW5nJykge1xuICAgICAgbG9jYWxlID0gYXJnc1swXTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoYXJncy5sZW5ndGggPT09IDIpIHtcbiAgICBpZiAodHlwZW9mIGFyZ3NbMF0gPT09ICdzdHJpbmcnKSB7XG4gICAgICBsb2NhbGUgPSBhcmdzWzBdO1xuICAgIH1cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAoaXNPYmplY3QoYXJnc1sxXSkgfHwgQXJyYXkuaXNBcnJheShhcmdzWzFdKSkge1xuICAgICAgcGFyYW1zID0gYXJnc1sxXTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4geyBsb2NhbGU6IGxvY2FsZSwgcGFyYW1zOiBwYXJhbXMgfVxufVxuXG5mdW5jdGlvbiBsb29zZUNsb25lIChvYmopIHtcbiAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob2JqKSlcbn1cblxuZnVuY3Rpb24gcmVtb3ZlIChhcnIsIGl0ZW0pIHtcbiAgaWYgKGFyci5sZW5ndGgpIHtcbiAgICB2YXIgaW5kZXggPSBhcnIuaW5kZXhPZihpdGVtKTtcbiAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgcmV0dXJuIGFyci5zcGxpY2UoaW5kZXgsIDEpXG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGluY2x1ZGVzIChhcnIsIGl0ZW0pIHtcbiAgcmV0dXJuICEhfmFyci5pbmRleE9mKGl0ZW0pXG59XG5cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5mdW5jdGlvbiBoYXNPd24gKG9iaiwga2V5KSB7XG4gIHJldHVybiBoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KVxufVxuXG5mdW5jdGlvbiBtZXJnZSAodGFyZ2V0KSB7XG4gIHZhciBhcmd1bWVudHMkMSA9IGFyZ3VtZW50cztcblxuICB2YXIgb3V0cHV0ID0gT2JqZWN0KHRhcmdldCk7XG4gIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50cyQxW2ldO1xuICAgIGlmIChzb3VyY2UgIT09IHVuZGVmaW5lZCAmJiBzb3VyY2UgIT09IG51bGwpIHtcbiAgICAgIHZhciBrZXkgPSAodm9pZCAwKTtcbiAgICAgIGZvciAoa2V5IGluIHNvdXJjZSkge1xuICAgICAgICBpZiAoaGFzT3duKHNvdXJjZSwga2V5KSkge1xuICAgICAgICAgIGlmIChpc09iamVjdChzb3VyY2Vba2V5XSkpIHtcbiAgICAgICAgICAgIG91dHB1dFtrZXldID0gbWVyZ2Uob3V0cHV0W2tleV0sIHNvdXJjZVtrZXldKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb3V0cHV0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIG91dHB1dFxufVxuXG5mdW5jdGlvbiBsb29zZUVxdWFsIChhLCBiKSB7XG4gIGlmIChhID09PSBiKSB7IHJldHVybiB0cnVlIH1cbiAgdmFyIGlzT2JqZWN0QSA9IGlzT2JqZWN0KGEpO1xuICB2YXIgaXNPYmplY3RCID0gaXNPYmplY3QoYik7XG4gIGlmIChpc09iamVjdEEgJiYgaXNPYmplY3RCKSB7XG4gICAgdHJ5IHtcbiAgICAgIHZhciBpc0FycmF5QSA9IEFycmF5LmlzQXJyYXkoYSk7XG4gICAgICB2YXIgaXNBcnJheUIgPSBBcnJheS5pc0FycmF5KGIpO1xuICAgICAgaWYgKGlzQXJyYXlBICYmIGlzQXJyYXlCKSB7XG4gICAgICAgIHJldHVybiBhLmxlbmd0aCA9PT0gYi5sZW5ndGggJiYgYS5ldmVyeShmdW5jdGlvbiAoZSwgaSkge1xuICAgICAgICAgIHJldHVybiBsb29zZUVxdWFsKGUsIGJbaV0pXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2UgaWYgKCFpc0FycmF5QSAmJiAhaXNBcnJheUIpIHtcbiAgICAgICAgdmFyIGtleXNBID0gT2JqZWN0LmtleXMoYSk7XG4gICAgICAgIHZhciBrZXlzQiA9IE9iamVjdC5rZXlzKGIpO1xuICAgICAgICByZXR1cm4ga2V5c0EubGVuZ3RoID09PSBrZXlzQi5sZW5ndGggJiYga2V5c0EuZXZlcnkoZnVuY3Rpb24gKGtleSkge1xuICAgICAgICAgIHJldHVybiBsb29zZUVxdWFsKGFba2V5XSwgYltrZXldKVxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfSBlbHNlIGlmICghaXNPYmplY3RBICYmICFpc09iamVjdEIpIHtcbiAgICByZXR1cm4gU3RyaW5nKGEpID09PSBTdHJpbmcoYilcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gZXh0ZW5kIChWdWUpIHtcbiAgaWYgKCFWdWUucHJvdG90eXBlLmhhc093blByb3BlcnR5KCckaTE4bicpKSB7XG4gICAgLy8gJEZsb3dGaXhNZVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShWdWUucHJvdG90eXBlLCAnJGkxOG4nLCB7XG4gICAgICBnZXQ6IGZ1bmN0aW9uIGdldCAoKSB7IHJldHVybiB0aGlzLl9pMThuIH1cbiAgICB9KTtcbiAgfVxuXG4gIFZ1ZS5wcm90b3R5cGUuJHQgPSBmdW5jdGlvbiAoa2V5KSB7XG4gICAgdmFyIHZhbHVlcyA9IFtdLCBsZW4gPSBhcmd1bWVudHMubGVuZ3RoIC0gMTtcbiAgICB3aGlsZSAoIGxlbi0tID4gMCApIHZhbHVlc1sgbGVuIF0gPSBhcmd1bWVudHNbIGxlbiArIDEgXTtcblxuICAgIHZhciBpMThuID0gdGhpcy4kaTE4bjtcbiAgICByZXR1cm4gaTE4bi5fdC5hcHBseShpMThuLCBbIGtleSwgaTE4bi5sb2NhbGUsIGkxOG4uX2dldE1lc3NhZ2VzKCksIHRoaXMgXS5jb25jYXQoIHZhbHVlcyApKVxuICB9O1xuXG4gIFZ1ZS5wcm90b3R5cGUuJHRjID0gZnVuY3Rpb24gKGtleSwgY2hvaWNlKSB7XG4gICAgdmFyIHZhbHVlcyA9IFtdLCBsZW4gPSBhcmd1bWVudHMubGVuZ3RoIC0gMjtcbiAgICB3aGlsZSAoIGxlbi0tID4gMCApIHZhbHVlc1sgbGVuIF0gPSBhcmd1bWVudHNbIGxlbiArIDIgXTtcblxuICAgIHZhciBpMThuID0gdGhpcy4kaTE4bjtcbiAgICByZXR1cm4gaTE4bi5fdGMuYXBwbHkoaTE4biwgWyBrZXksIGkxOG4ubG9jYWxlLCBpMThuLl9nZXRNZXNzYWdlcygpLCB0aGlzLCBjaG9pY2UgXS5jb25jYXQoIHZhbHVlcyApKVxuICB9O1xuXG4gIFZ1ZS5wcm90b3R5cGUuJHRlID0gZnVuY3Rpb24gKGtleSwgbG9jYWxlKSB7XG4gICAgdmFyIGkxOG4gPSB0aGlzLiRpMThuO1xuICAgIHJldHVybiBpMThuLl90ZShrZXksIGkxOG4ubG9jYWxlLCBpMThuLl9nZXRNZXNzYWdlcygpLCBsb2NhbGUpXG4gIH07XG5cbiAgVnVlLnByb3RvdHlwZS4kZCA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIHZhciByZWY7XG5cbiAgICB2YXIgYXJncyA9IFtdLCBsZW4gPSBhcmd1bWVudHMubGVuZ3RoIC0gMTtcbiAgICB3aGlsZSAoIGxlbi0tID4gMCApIGFyZ3NbIGxlbiBdID0gYXJndW1lbnRzWyBsZW4gKyAxIF07XG4gICAgcmV0dXJuIChyZWYgPSB0aGlzLiRpMThuKS5kLmFwcGx5KHJlZiwgWyB2YWx1ZSBdLmNvbmNhdCggYXJncyApKVxuICB9O1xuXG4gIFZ1ZS5wcm90b3R5cGUuJG4gPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICB2YXIgcmVmO1xuXG4gICAgdmFyIGFyZ3MgPSBbXSwgbGVuID0gYXJndW1lbnRzLmxlbmd0aCAtIDE7XG4gICAgd2hpbGUgKCBsZW4tLSA+IDAgKSBhcmdzWyBsZW4gXSA9IGFyZ3VtZW50c1sgbGVuICsgMSBdO1xuICAgIHJldHVybiAocmVmID0gdGhpcy4kaTE4bikubi5hcHBseShyZWYsIFsgdmFsdWUgXS5jb25jYXQoIGFyZ3MgKSlcbiAgfTtcbn1cblxuLyogICovXG5cbnZhciBtaXhpbiA9IHtcbiAgYmVmb3JlQ3JlYXRlOiBmdW5jdGlvbiBiZWZvcmVDcmVhdGUgKCkge1xuICAgIHZhciBvcHRpb25zID0gdGhpcy4kb3B0aW9ucztcbiAgICBvcHRpb25zLmkxOG4gPSBvcHRpb25zLmkxOG4gfHwgKG9wdGlvbnMuX19pMThuID8ge30gOiBudWxsKTtcblxuICAgIGlmIChvcHRpb25zLmkxOG4pIHtcbiAgICAgIGlmIChvcHRpb25zLmkxOG4gaW5zdGFuY2VvZiBWdWVJMThuKSB7XG4gICAgICAgIC8vIGluaXQgbG9jYWxlIG1lc3NhZ2VzIHZpYSBjdXN0b20gYmxvY2tzXG4gICAgICAgIGlmIChvcHRpb25zLl9faTE4bikge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICB2YXIgbG9jYWxlTWVzc2FnZXMgPSB7fTtcbiAgICAgICAgICAgIG9wdGlvbnMuX19pMThuLmZvckVhY2goZnVuY3Rpb24gKHJlc291cmNlKSB7XG4gICAgICAgICAgICAgIGxvY2FsZU1lc3NhZ2VzID0gbWVyZ2UobG9jYWxlTWVzc2FnZXMsIEpTT04ucGFyc2UocmVzb3VyY2UpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgT2JqZWN0LmtleXMobG9jYWxlTWVzc2FnZXMpLmZvckVhY2goZnVuY3Rpb24gKGxvY2FsZSkge1xuICAgICAgICAgICAgICBvcHRpb25zLmkxOG4ubWVyZ2VMb2NhbGVNZXNzYWdlKGxvY2FsZSwgbG9jYWxlTWVzc2FnZXNbbG9jYWxlXSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgICBlcnJvcihcIkNhbm5vdCBwYXJzZSBsb2NhbGUgbWVzc2FnZXMgdmlhIGN1c3RvbSBibG9ja3MuXCIsIGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pMThuID0gb3B0aW9ucy5pMThuO1xuICAgICAgICB0aGlzLl9pMThuV2F0Y2hlciA9IHRoaXMuX2kxOG4ud2F0Y2hJMThuRGF0YSgpO1xuICAgICAgfSBlbHNlIGlmIChpc1BsYWluT2JqZWN0KG9wdGlvbnMuaTE4bikpIHtcbiAgICAgICAgdmFyIHJvb3RJMThuID0gdGhpcy4kcm9vdCAmJiB0aGlzLiRyb290LiRpMThuICYmIHRoaXMuJHJvb3QuJGkxOG4gaW5zdGFuY2VvZiBWdWVJMThuXG4gICAgICAgICAgPyB0aGlzLiRyb290LiRpMThuXG4gICAgICAgICAgOiBudWxsO1xuICAgICAgICAvLyBjb21wb25lbnQgbG9jYWwgaTE4blxuICAgICAgICBpZiAocm9vdEkxOG4pIHtcbiAgICAgICAgICBvcHRpb25zLmkxOG4ucm9vdCA9IHRoaXMuJHJvb3Q7XG4gICAgICAgICAgb3B0aW9ucy5pMThuLmZvcm1hdHRlciA9IHJvb3RJMThuLmZvcm1hdHRlcjtcbiAgICAgICAgICBvcHRpb25zLmkxOG4uZmFsbGJhY2tMb2NhbGUgPSByb290STE4bi5mYWxsYmFja0xvY2FsZTtcbiAgICAgICAgICBvcHRpb25zLmkxOG4uZm9ybWF0RmFsbGJhY2tNZXNzYWdlcyA9IHJvb3RJMThuLmZvcm1hdEZhbGxiYWNrTWVzc2FnZXM7XG4gICAgICAgICAgb3B0aW9ucy5pMThuLnNpbGVudFRyYW5zbGF0aW9uV2FybiA9IHJvb3RJMThuLnNpbGVudFRyYW5zbGF0aW9uV2FybjtcbiAgICAgICAgICBvcHRpb25zLmkxOG4uc2lsZW50RmFsbGJhY2tXYXJuID0gcm9vdEkxOG4uc2lsZW50RmFsbGJhY2tXYXJuO1xuICAgICAgICAgIG9wdGlvbnMuaTE4bi5wbHVyYWxpemF0aW9uUnVsZXMgPSByb290STE4bi5wbHVyYWxpemF0aW9uUnVsZXM7XG4gICAgICAgICAgb3B0aW9ucy5pMThuLnByZXNlcnZlRGlyZWN0aXZlQ29udGVudCA9IHJvb3RJMThuLnByZXNlcnZlRGlyZWN0aXZlQ29udGVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGluaXQgbG9jYWxlIG1lc3NhZ2VzIHZpYSBjdXN0b20gYmxvY2tzXG4gICAgICAgIGlmIChvcHRpb25zLl9faTE4bikge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICB2YXIgbG9jYWxlTWVzc2FnZXMkMSA9IHt9O1xuICAgICAgICAgICAgb3B0aW9ucy5fX2kxOG4uZm9yRWFjaChmdW5jdGlvbiAocmVzb3VyY2UpIHtcbiAgICAgICAgICAgICAgbG9jYWxlTWVzc2FnZXMkMSA9IG1lcmdlKGxvY2FsZU1lc3NhZ2VzJDEsIEpTT04ucGFyc2UocmVzb3VyY2UpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgb3B0aW9ucy5pMThuLm1lc3NhZ2VzID0gbG9jYWxlTWVzc2FnZXMkMTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgICB3YXJuKFwiQ2Fubm90IHBhcnNlIGxvY2FsZSBtZXNzYWdlcyB2aWEgY3VzdG9tIGJsb2Nrcy5cIiwgZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHJlZiA9IG9wdGlvbnMuaTE4bjtcbiAgICAgICAgdmFyIHNoYXJlZE1lc3NhZ2VzID0gcmVmLnNoYXJlZE1lc3NhZ2VzO1xuICAgICAgICBpZiAoc2hhcmVkTWVzc2FnZXMgJiYgaXNQbGFpbk9iamVjdChzaGFyZWRNZXNzYWdlcykpIHtcbiAgICAgICAgICBvcHRpb25zLmkxOG4ubWVzc2FnZXMgPSBtZXJnZShvcHRpb25zLmkxOG4ubWVzc2FnZXMsIHNoYXJlZE1lc3NhZ2VzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2kxOG4gPSBuZXcgVnVlSTE4bihvcHRpb25zLmkxOG4pO1xuICAgICAgICB0aGlzLl9pMThuV2F0Y2hlciA9IHRoaXMuX2kxOG4ud2F0Y2hJMThuRGF0YSgpO1xuXG4gICAgICAgIGlmIChvcHRpb25zLmkxOG4uc3luYyA9PT0gdW5kZWZpbmVkIHx8ICEhb3B0aW9ucy5pMThuLnN5bmMpIHtcbiAgICAgICAgICB0aGlzLl9sb2NhbGVXYXRjaGVyID0gdGhpcy4kaTE4bi53YXRjaExvY2FsZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJvb3RJMThuKSB7XG4gICAgICAgICAgcm9vdEkxOG4ub25Db21wb25lbnRJbnN0YW5jZUNyZWF0ZWQodGhpcy5faTE4bik7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgd2FybihcIkNhbm5vdCBiZSBpbnRlcnByZXRlZCAnaTE4bicgb3B0aW9uLlwiKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy4kcm9vdCAmJiB0aGlzLiRyb290LiRpMThuICYmIHRoaXMuJHJvb3QuJGkxOG4gaW5zdGFuY2VvZiBWdWVJMThuKSB7XG4gICAgICAvLyByb290IGkxOG5cbiAgICAgIHRoaXMuX2kxOG4gPSB0aGlzLiRyb290LiRpMThuO1xuICAgIH0gZWxzZSBpZiAob3B0aW9ucy5wYXJlbnQgJiYgb3B0aW9ucy5wYXJlbnQuJGkxOG4gJiYgb3B0aW9ucy5wYXJlbnQuJGkxOG4gaW5zdGFuY2VvZiBWdWVJMThuKSB7XG4gICAgICAvLyBwYXJlbnQgaTE4blxuICAgICAgdGhpcy5faTE4biA9IG9wdGlvbnMucGFyZW50LiRpMThuO1xuICAgIH1cbiAgfSxcblxuICBiZWZvcmVNb3VudDogZnVuY3Rpb24gYmVmb3JlTW91bnQgKCkge1xuICAgIHZhciBvcHRpb25zID0gdGhpcy4kb3B0aW9ucztcbiAgICBvcHRpb25zLmkxOG4gPSBvcHRpb25zLmkxOG4gfHwgKG9wdGlvbnMuX19pMThuID8ge30gOiBudWxsKTtcblxuICAgIGlmIChvcHRpb25zLmkxOG4pIHtcbiAgICAgIGlmIChvcHRpb25zLmkxOG4gaW5zdGFuY2VvZiBWdWVJMThuKSB7XG4gICAgICAgIC8vIGluaXQgbG9jYWxlIG1lc3NhZ2VzIHZpYSBjdXN0b20gYmxvY2tzXG4gICAgICAgIHRoaXMuX2kxOG4uc3Vic2NyaWJlRGF0YUNoYW5naW5nKHRoaXMpO1xuICAgICAgICB0aGlzLl9zdWJzY3JpYmluZyA9IHRydWU7XG4gICAgICB9IGVsc2UgaWYgKGlzUGxhaW5PYmplY3Qob3B0aW9ucy5pMThuKSkge1xuICAgICAgICB0aGlzLl9pMThuLnN1YnNjcmliZURhdGFDaGFuZ2luZyh0aGlzKTtcbiAgICAgICAgdGhpcy5fc3Vic2NyaWJpbmcgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICB3YXJuKFwiQ2Fubm90IGJlIGludGVycHJldGVkICdpMThuJyBvcHRpb24uXCIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLiRyb290ICYmIHRoaXMuJHJvb3QuJGkxOG4gJiYgdGhpcy4kcm9vdC4kaTE4biBpbnN0YW5jZW9mIFZ1ZUkxOG4pIHtcbiAgICAgIHRoaXMuX2kxOG4uc3Vic2NyaWJlRGF0YUNoYW5naW5nKHRoaXMpO1xuICAgICAgdGhpcy5fc3Vic2NyaWJpbmcgPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAob3B0aW9ucy5wYXJlbnQgJiYgb3B0aW9ucy5wYXJlbnQuJGkxOG4gJiYgb3B0aW9ucy5wYXJlbnQuJGkxOG4gaW5zdGFuY2VvZiBWdWVJMThuKSB7XG4gICAgICB0aGlzLl9pMThuLnN1YnNjcmliZURhdGFDaGFuZ2luZyh0aGlzKTtcbiAgICAgIHRoaXMuX3N1YnNjcmliaW5nID0gdHJ1ZTtcbiAgICB9XG4gIH0sXG5cbiAgYmVmb3JlRGVzdHJveTogZnVuY3Rpb24gYmVmb3JlRGVzdHJveSAoKSB7XG4gICAgaWYgKCF0aGlzLl9pMThuKSB7IHJldHVybiB9XG5cbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKHNlbGYuX3N1YnNjcmliaW5nKSB7XG4gICAgICAgIHNlbGYuX2kxOG4udW5zdWJzY3JpYmVEYXRhQ2hhbmdpbmcoc2VsZik7XG4gICAgICAgIGRlbGV0ZSBzZWxmLl9zdWJzY3JpYmluZztcbiAgICAgIH1cblxuICAgICAgaWYgKHNlbGYuX2kxOG5XYXRjaGVyKSB7XG4gICAgICAgIHNlbGYuX2kxOG5XYXRjaGVyKCk7XG4gICAgICAgIHNlbGYuX2kxOG4uZGVzdHJveVZNKCk7XG4gICAgICAgIGRlbGV0ZSBzZWxmLl9pMThuV2F0Y2hlcjtcbiAgICAgIH1cblxuICAgICAgaWYgKHNlbGYuX2xvY2FsZVdhdGNoZXIpIHtcbiAgICAgICAgc2VsZi5fbG9jYWxlV2F0Y2hlcigpO1xuICAgICAgICBkZWxldGUgc2VsZi5fbG9jYWxlV2F0Y2hlcjtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufTtcblxuLyogICovXG5cbnZhciBpbnRlcnBvbGF0aW9uQ29tcG9uZW50ID0ge1xuICBuYW1lOiAnaTE4bicsXG4gIGZ1bmN0aW9uYWw6IHRydWUsXG4gIHByb3BzOiB7XG4gICAgdGFnOiB7XG4gICAgICB0eXBlOiBbU3RyaW5nLCBCb29sZWFuXSxcbiAgICAgIGRlZmF1bHQ6ICdzcGFuJ1xuICAgIH0sXG4gICAgcGF0aDoge1xuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICB9LFxuICAgIGxvY2FsZToge1xuICAgICAgdHlwZTogU3RyaW5nXG4gICAgfSxcbiAgICBwbGFjZXM6IHtcbiAgICAgIHR5cGU6IFtBcnJheSwgT2JqZWN0XVxuICAgIH1cbiAgfSxcbiAgcmVuZGVyOiBmdW5jdGlvbiByZW5kZXIgKGgsIHJlZikge1xuICAgIHZhciBkYXRhID0gcmVmLmRhdGE7XG4gICAgdmFyIHBhcmVudCA9IHJlZi5wYXJlbnQ7XG4gICAgdmFyIHByb3BzID0gcmVmLnByb3BzO1xuICAgIHZhciBzbG90cyA9IHJlZi5zbG90cztcblxuICAgIHZhciAkaTE4biA9IHBhcmVudC4kaTE4bjtcbiAgICBpZiAoISRpMThuKSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICB3YXJuKCdDYW5ub3QgZmluZCBWdWVJMThuIGluc3RhbmNlIScpO1xuICAgICAgfVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdmFyIHBhdGggPSBwcm9wcy5wYXRoO1xuICAgIHZhciBsb2NhbGUgPSBwcm9wcy5sb2NhbGU7XG4gICAgdmFyIHBsYWNlcyA9IHByb3BzLnBsYWNlcztcbiAgICB2YXIgcGFyYW1zID0gc2xvdHMoKTtcbiAgICB2YXIgY2hpbGRyZW4gPSAkaTE4bi5pKFxuICAgICAgcGF0aCxcbiAgICAgIGxvY2FsZSxcbiAgICAgIG9ubHlIYXNEZWZhdWx0UGxhY2UocGFyYW1zKSB8fCBwbGFjZXNcbiAgICAgICAgPyB1c2VMZWdhY3lQbGFjZXMocGFyYW1zLmRlZmF1bHQsIHBsYWNlcylcbiAgICAgICAgOiBwYXJhbXNcbiAgICApO1xuXG4gICAgdmFyIHRhZyA9ICghIXByb3BzLnRhZyAmJiBwcm9wcy50YWcgIT09IHRydWUpIHx8IHByb3BzLnRhZyA9PT0gZmFsc2UgPyBwcm9wcy50YWcgOiAnc3Bhbic7XG4gICAgcmV0dXJuIHRhZyA/IGgodGFnLCBkYXRhLCBjaGlsZHJlbikgOiBjaGlsZHJlblxuICB9XG59O1xuXG5mdW5jdGlvbiBvbmx5SGFzRGVmYXVsdFBsYWNlIChwYXJhbXMpIHtcbiAgdmFyIHByb3A7XG4gIGZvciAocHJvcCBpbiBwYXJhbXMpIHtcbiAgICBpZiAocHJvcCAhPT0gJ2RlZmF1bHQnKSB7IHJldHVybiBmYWxzZSB9XG4gIH1cbiAgcmV0dXJuIEJvb2xlYW4ocHJvcClcbn1cblxuZnVuY3Rpb24gdXNlTGVnYWN5UGxhY2VzIChjaGlsZHJlbiwgcGxhY2VzKSB7XG4gIHZhciBwYXJhbXMgPSBwbGFjZXMgPyBjcmVhdGVQYXJhbXNGcm9tUGxhY2VzKHBsYWNlcykgOiB7fTtcblxuICBpZiAoIWNoaWxkcmVuKSB7IHJldHVybiBwYXJhbXMgfVxuXG4gIC8vIEZpbHRlciBlbXB0eSB0ZXh0IG5vZGVzXG4gIGNoaWxkcmVuID0gY2hpbGRyZW4uZmlsdGVyKGZ1bmN0aW9uIChjaGlsZCkge1xuICAgIHJldHVybiBjaGlsZC50YWcgfHwgY2hpbGQudGV4dC50cmltKCkgIT09ICcnXG4gIH0pO1xuXG4gIHZhciBldmVyeVBsYWNlID0gY2hpbGRyZW4uZXZlcnkodm5vZGVIYXNQbGFjZUF0dHJpYnV0ZSk7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGV2ZXJ5UGxhY2UpIHtcbiAgICB3YXJuKCdgcGxhY2VgIGF0dHJpYnV0ZSBpcyBkZXByZWNhdGVkIGluIG5leHQgbWFqb3IgdmVyc2lvbi4gUGxlYXNlIHN3aXRjaCB0byBWdWUgc2xvdHMuJyk7XG4gIH1cblxuICByZXR1cm4gY2hpbGRyZW4ucmVkdWNlKFxuICAgIGV2ZXJ5UGxhY2UgPyBhc3NpZ25DaGlsZFBsYWNlIDogYXNzaWduQ2hpbGRJbmRleCxcbiAgICBwYXJhbXNcbiAgKVxufVxuXG5mdW5jdGlvbiBjcmVhdGVQYXJhbXNGcm9tUGxhY2VzIChwbGFjZXMpIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICB3YXJuKCdgcGxhY2VzYCBwcm9wIGlzIGRlcHJlY2F0ZWQgaW4gbmV4dCBtYWpvciB2ZXJzaW9uLiBQbGVhc2Ugc3dpdGNoIHRvIFZ1ZSBzbG90cy4nKTtcbiAgfVxuXG4gIHJldHVybiBBcnJheS5pc0FycmF5KHBsYWNlcylcbiAgICA/IHBsYWNlcy5yZWR1Y2UoYXNzaWduQ2hpbGRJbmRleCwge30pXG4gICAgOiBPYmplY3QuYXNzaWduKHt9LCBwbGFjZXMpXG59XG5cbmZ1bmN0aW9uIGFzc2lnbkNoaWxkUGxhY2UgKHBhcmFtcywgY2hpbGQpIHtcbiAgaWYgKGNoaWxkLmRhdGEgJiYgY2hpbGQuZGF0YS5hdHRycyAmJiBjaGlsZC5kYXRhLmF0dHJzLnBsYWNlKSB7XG4gICAgcGFyYW1zW2NoaWxkLmRhdGEuYXR0cnMucGxhY2VdID0gY2hpbGQ7XG4gIH1cbiAgcmV0dXJuIHBhcmFtc1xufVxuXG5mdW5jdGlvbiBhc3NpZ25DaGlsZEluZGV4IChwYXJhbXMsIGNoaWxkLCBpbmRleCkge1xuICBwYXJhbXNbaW5kZXhdID0gY2hpbGQ7XG4gIHJldHVybiBwYXJhbXNcbn1cblxuZnVuY3Rpb24gdm5vZGVIYXNQbGFjZUF0dHJpYnV0ZSAodm5vZGUpIHtcbiAgcmV0dXJuIEJvb2xlYW4odm5vZGUuZGF0YSAmJiB2bm9kZS5kYXRhLmF0dHJzICYmIHZub2RlLmRhdGEuYXR0cnMucGxhY2UpXG59XG5cbi8qICAqL1xuXG52YXIgbnVtYmVyQ29tcG9uZW50ID0ge1xuICBuYW1lOiAnaTE4bi1uJyxcbiAgZnVuY3Rpb25hbDogdHJ1ZSxcbiAgcHJvcHM6IHtcbiAgICB0YWc6IHtcbiAgICAgIHR5cGU6IFtTdHJpbmcsIEJvb2xlYW5dLFxuICAgICAgZGVmYXVsdDogJ3NwYW4nXG4gICAgfSxcbiAgICB2YWx1ZToge1xuICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICB9LFxuICAgIGZvcm1hdDoge1xuICAgICAgdHlwZTogW1N0cmluZywgT2JqZWN0XVxuICAgIH0sXG4gICAgbG9jYWxlOiB7XG4gICAgICB0eXBlOiBTdHJpbmdcbiAgICB9XG4gIH0sXG4gIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyIChoLCByZWYpIHtcbiAgICB2YXIgcHJvcHMgPSByZWYucHJvcHM7XG4gICAgdmFyIHBhcmVudCA9IHJlZi5wYXJlbnQ7XG4gICAgdmFyIGRhdGEgPSByZWYuZGF0YTtcblxuICAgIHZhciBpMThuID0gcGFyZW50LiRpMThuO1xuXG4gICAgaWYgKCFpMThuKSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICB3YXJuKCdDYW5ub3QgZmluZCBWdWVJMThuIGluc3RhbmNlIScpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICB2YXIga2V5ID0gbnVsbDtcbiAgICB2YXIgb3B0aW9ucyA9IG51bGw7XG5cbiAgICBpZiAoaXNTdHJpbmcocHJvcHMuZm9ybWF0KSkge1xuICAgICAga2V5ID0gcHJvcHMuZm9ybWF0O1xuICAgIH0gZWxzZSBpZiAoaXNPYmplY3QocHJvcHMuZm9ybWF0KSkge1xuICAgICAgaWYgKHByb3BzLmZvcm1hdC5rZXkpIHtcbiAgICAgICAga2V5ID0gcHJvcHMuZm9ybWF0LmtleTtcbiAgICAgIH1cblxuICAgICAgLy8gRmlsdGVyIG91dCBudW1iZXIgZm9ybWF0IG9wdGlvbnMgb25seVxuICAgICAgb3B0aW9ucyA9IE9iamVjdC5rZXlzKHByb3BzLmZvcm1hdCkucmVkdWNlKGZ1bmN0aW9uIChhY2MsIHByb3ApIHtcbiAgICAgICAgdmFyIG9iajtcblxuICAgICAgICBpZiAoaW5jbHVkZXMobnVtYmVyRm9ybWF0S2V5cywgcHJvcCkpIHtcbiAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgYWNjLCAoIG9iaiA9IHt9LCBvYmpbcHJvcF0gPSBwcm9wcy5mb3JtYXRbcHJvcF0sIG9iaiApKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2NcbiAgICAgIH0sIG51bGwpO1xuICAgIH1cblxuICAgIHZhciBsb2NhbGUgPSBwcm9wcy5sb2NhbGUgfHwgaTE4bi5sb2NhbGU7XG4gICAgdmFyIHBhcnRzID0gaTE4bi5fbnRwKHByb3BzLnZhbHVlLCBsb2NhbGUsIGtleSwgb3B0aW9ucyk7XG5cbiAgICB2YXIgdmFsdWVzID0gcGFydHMubWFwKGZ1bmN0aW9uIChwYXJ0LCBpbmRleCkge1xuICAgICAgdmFyIG9iajtcblxuICAgICAgdmFyIHNsb3QgPSBkYXRhLnNjb3BlZFNsb3RzICYmIGRhdGEuc2NvcGVkU2xvdHNbcGFydC50eXBlXTtcbiAgICAgIHJldHVybiBzbG90ID8gc2xvdCgoIG9iaiA9IHt9LCBvYmpbcGFydC50eXBlXSA9IHBhcnQudmFsdWUsIG9iai5pbmRleCA9IGluZGV4LCBvYmoucGFydHMgPSBwYXJ0cywgb2JqICkpIDogcGFydC52YWx1ZVxuICAgIH0pO1xuXG4gICAgdmFyIHRhZyA9ICghIXByb3BzLnRhZyAmJiBwcm9wcy50YWcgIT09IHRydWUpIHx8IHByb3BzLnRhZyA9PT0gZmFsc2UgPyBwcm9wcy50YWcgOiAnc3Bhbic7XG4gICAgcmV0dXJuIHRhZ1xuICAgICAgPyBoKHRhZywge1xuICAgICAgICBhdHRyczogZGF0YS5hdHRycyxcbiAgICAgICAgJ2NsYXNzJzogZGF0YVsnY2xhc3MnXSxcbiAgICAgICAgc3RhdGljQ2xhc3M6IGRhdGEuc3RhdGljQ2xhc3NcbiAgICAgIH0sIHZhbHVlcylcbiAgICAgIDogdmFsdWVzXG4gIH1cbn07XG5cbi8qICAqL1xuXG5mdW5jdGlvbiBiaW5kIChlbCwgYmluZGluZywgdm5vZGUpIHtcbiAgaWYgKCFhc3NlcnQoZWwsIHZub2RlKSkgeyByZXR1cm4gfVxuXG4gIHQoZWwsIGJpbmRpbmcsIHZub2RlKTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlIChlbCwgYmluZGluZywgdm5vZGUsIG9sZFZOb2RlKSB7XG4gIGlmICghYXNzZXJ0KGVsLCB2bm9kZSkpIHsgcmV0dXJuIH1cblxuICB2YXIgaTE4biA9IHZub2RlLmNvbnRleHQuJGkxOG47XG4gIGlmIChsb2NhbGVFcXVhbChlbCwgdm5vZGUpICYmXG4gICAgKGxvb3NlRXF1YWwoYmluZGluZy52YWx1ZSwgYmluZGluZy5vbGRWYWx1ZSkgJiZcbiAgICAgbG9vc2VFcXVhbChlbC5fbG9jYWxlTWVzc2FnZSwgaTE4bi5nZXRMb2NhbGVNZXNzYWdlKGkxOG4ubG9jYWxlKSkpKSB7IHJldHVybiB9XG5cbiAgdChlbCwgYmluZGluZywgdm5vZGUpO1xufVxuXG5mdW5jdGlvbiB1bmJpbmQgKGVsLCBiaW5kaW5nLCB2bm9kZSwgb2xkVk5vZGUpIHtcbiAgdmFyIHZtID0gdm5vZGUuY29udGV4dDtcbiAgaWYgKCF2bSkge1xuICAgIHdhcm4oJ1Z1ZSBpbnN0YW5jZSBkb2VzIG5vdCBleGlzdHMgaW4gVk5vZGUgY29udGV4dCcpO1xuICAgIHJldHVyblxuICB9XG5cbiAgdmFyIGkxOG4gPSB2bm9kZS5jb250ZXh0LiRpMThuIHx8IHt9O1xuICBpZiAoIWJpbmRpbmcubW9kaWZpZXJzLnByZXNlcnZlICYmICFpMThuLnByZXNlcnZlRGlyZWN0aXZlQ29udGVudCkge1xuICAgIGVsLnRleHRDb250ZW50ID0gJyc7XG4gIH1cbiAgZWwuX3Z0ID0gdW5kZWZpbmVkO1xuICBkZWxldGUgZWxbJ192dCddO1xuICBlbC5fbG9jYWxlID0gdW5kZWZpbmVkO1xuICBkZWxldGUgZWxbJ19sb2NhbGUnXTtcbiAgZWwuX2xvY2FsZU1lc3NhZ2UgPSB1bmRlZmluZWQ7XG4gIGRlbGV0ZSBlbFsnX2xvY2FsZU1lc3NhZ2UnXTtcbn1cblxuZnVuY3Rpb24gYXNzZXJ0IChlbCwgdm5vZGUpIHtcbiAgdmFyIHZtID0gdm5vZGUuY29udGV4dDtcbiAgaWYgKCF2bSkge1xuICAgIHdhcm4oJ1Z1ZSBpbnN0YW5jZSBkb2VzIG5vdCBleGlzdHMgaW4gVk5vZGUgY29udGV4dCcpO1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgaWYgKCF2bS4kaTE4bikge1xuICAgIHdhcm4oJ1Z1ZUkxOG4gaW5zdGFuY2UgZG9lcyBub3QgZXhpc3RzIGluIFZ1ZSBpbnN0YW5jZScpO1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZnVuY3Rpb24gbG9jYWxlRXF1YWwgKGVsLCB2bm9kZSkge1xuICB2YXIgdm0gPSB2bm9kZS5jb250ZXh0O1xuICByZXR1cm4gZWwuX2xvY2FsZSA9PT0gdm0uJGkxOG4ubG9jYWxlXG59XG5cbmZ1bmN0aW9uIHQgKGVsLCBiaW5kaW5nLCB2bm9kZSkge1xuICB2YXIgcmVmJDEsIHJlZiQyO1xuXG4gIHZhciB2YWx1ZSA9IGJpbmRpbmcudmFsdWU7XG5cbiAgdmFyIHJlZiA9IHBhcnNlVmFsdWUodmFsdWUpO1xuICB2YXIgcGF0aCA9IHJlZi5wYXRoO1xuICB2YXIgbG9jYWxlID0gcmVmLmxvY2FsZTtcbiAgdmFyIGFyZ3MgPSByZWYuYXJncztcbiAgdmFyIGNob2ljZSA9IHJlZi5jaG9pY2U7XG4gIGlmICghcGF0aCAmJiAhbG9jYWxlICYmICFhcmdzKSB7XG4gICAgd2FybigndmFsdWUgdHlwZSBub3Qgc3VwcG9ydGVkJyk7XG4gICAgcmV0dXJuXG4gIH1cblxuICBpZiAoIXBhdGgpIHtcbiAgICB3YXJuKCdgcGF0aGAgaXMgcmVxdWlyZWQgaW4gdi10IGRpcmVjdGl2ZScpO1xuICAgIHJldHVyblxuICB9XG5cbiAgdmFyIHZtID0gdm5vZGUuY29udGV4dDtcbiAgaWYgKGNob2ljZSAhPSBudWxsKSB7XG4gICAgZWwuX3Z0ID0gZWwudGV4dENvbnRlbnQgPSAocmVmJDEgPSB2bS4kaTE4bikudGMuYXBwbHkocmVmJDEsIFsgcGF0aCwgY2hvaWNlIF0uY29uY2F0KCBtYWtlUGFyYW1zKGxvY2FsZSwgYXJncykgKSk7XG4gIH0gZWxzZSB7XG4gICAgZWwuX3Z0ID0gZWwudGV4dENvbnRlbnQgPSAocmVmJDIgPSB2bS4kaTE4bikudC5hcHBseShyZWYkMiwgWyBwYXRoIF0uY29uY2F0KCBtYWtlUGFyYW1zKGxvY2FsZSwgYXJncykgKSk7XG4gIH1cbiAgZWwuX2xvY2FsZSA9IHZtLiRpMThuLmxvY2FsZTtcbiAgZWwuX2xvY2FsZU1lc3NhZ2UgPSB2bS4kaTE4bi5nZXRMb2NhbGVNZXNzYWdlKHZtLiRpMThuLmxvY2FsZSk7XG59XG5cbmZ1bmN0aW9uIHBhcnNlVmFsdWUgKHZhbHVlKSB7XG4gIHZhciBwYXRoO1xuICB2YXIgbG9jYWxlO1xuICB2YXIgYXJncztcbiAgdmFyIGNob2ljZTtcblxuICBpZiAoaXNTdHJpbmcodmFsdWUpKSB7XG4gICAgcGF0aCA9IHZhbHVlO1xuICB9IGVsc2UgaWYgKGlzUGxhaW5PYmplY3QodmFsdWUpKSB7XG4gICAgcGF0aCA9IHZhbHVlLnBhdGg7XG4gICAgbG9jYWxlID0gdmFsdWUubG9jYWxlO1xuICAgIGFyZ3MgPSB2YWx1ZS5hcmdzO1xuICAgIGNob2ljZSA9IHZhbHVlLmNob2ljZTtcbiAgfVxuXG4gIHJldHVybiB7IHBhdGg6IHBhdGgsIGxvY2FsZTogbG9jYWxlLCBhcmdzOiBhcmdzLCBjaG9pY2U6IGNob2ljZSB9XG59XG5cbmZ1bmN0aW9uIG1ha2VQYXJhbXMgKGxvY2FsZSwgYXJncykge1xuICB2YXIgcGFyYW1zID0gW107XG5cbiAgbG9jYWxlICYmIHBhcmFtcy5wdXNoKGxvY2FsZSk7XG4gIGlmIChhcmdzICYmIChBcnJheS5pc0FycmF5KGFyZ3MpIHx8IGlzUGxhaW5PYmplY3QoYXJncykpKSB7XG4gICAgcGFyYW1zLnB1c2goYXJncyk7XG4gIH1cblxuICByZXR1cm4gcGFyYW1zXG59XG5cbnZhciBWdWU7XG5cbmZ1bmN0aW9uIGluc3RhbGwgKF9WdWUpIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGluc3RhbGwuaW5zdGFsbGVkICYmIF9WdWUgPT09IFZ1ZSkge1xuICAgIHdhcm4oJ2FscmVhZHkgaW5zdGFsbGVkLicpO1xuICAgIHJldHVyblxuICB9XG4gIGluc3RhbGwuaW5zdGFsbGVkID0gdHJ1ZTtcblxuICBWdWUgPSBfVnVlO1xuXG4gIHZhciB2ZXJzaW9uID0gKFZ1ZS52ZXJzaW9uICYmIE51bWJlcihWdWUudmVyc2lvbi5zcGxpdCgnLicpWzBdKSkgfHwgLTE7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB2ZXJzaW9uIDwgMikge1xuICAgIHdhcm4oKFwidnVlLWkxOG4gKFwiICsgKGluc3RhbGwudmVyc2lvbikgKyBcIikgbmVlZCB0byB1c2UgVnVlIDIuMCBvciBsYXRlciAoVnVlOiBcIiArIChWdWUudmVyc2lvbikgKyBcIikuXCIpKTtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGV4dGVuZChWdWUpO1xuICBWdWUubWl4aW4obWl4aW4pO1xuICBWdWUuZGlyZWN0aXZlKCd0JywgeyBiaW5kOiBiaW5kLCB1cGRhdGU6IHVwZGF0ZSwgdW5iaW5kOiB1bmJpbmQgfSk7XG4gIFZ1ZS5jb21wb25lbnQoaW50ZXJwb2xhdGlvbkNvbXBvbmVudC5uYW1lLCBpbnRlcnBvbGF0aW9uQ29tcG9uZW50KTtcbiAgVnVlLmNvbXBvbmVudChudW1iZXJDb21wb25lbnQubmFtZSwgbnVtYmVyQ29tcG9uZW50KTtcblxuICAvLyB1c2Ugc2ltcGxlIG1lcmdlU3RyYXRlZ2llcyB0byBwcmV2ZW50IGkxOG4gaW5zdGFuY2UgbG9zZSAnX19wcm90b19fJ1xuICB2YXIgc3RyYXRzID0gVnVlLmNvbmZpZy5vcHRpb25NZXJnZVN0cmF0ZWdpZXM7XG4gIHN0cmF0cy5pMThuID0gZnVuY3Rpb24gKHBhcmVudFZhbCwgY2hpbGRWYWwpIHtcbiAgICByZXR1cm4gY2hpbGRWYWwgPT09IHVuZGVmaW5lZFxuICAgICAgPyBwYXJlbnRWYWxcbiAgICAgIDogY2hpbGRWYWxcbiAgfTtcbn1cblxuLyogICovXG5cbnZhciBCYXNlRm9ybWF0dGVyID0gZnVuY3Rpb24gQmFzZUZvcm1hdHRlciAoKSB7XG4gIHRoaXMuX2NhY2hlcyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG59O1xuXG5CYXNlRm9ybWF0dGVyLnByb3RvdHlwZS5pbnRlcnBvbGF0ZSA9IGZ1bmN0aW9uIGludGVycG9sYXRlIChtZXNzYWdlLCB2YWx1ZXMpIHtcbiAgaWYgKCF2YWx1ZXMpIHtcbiAgICByZXR1cm4gW21lc3NhZ2VdXG4gIH1cbiAgdmFyIHRva2VucyA9IHRoaXMuX2NhY2hlc1ttZXNzYWdlXTtcbiAgaWYgKCF0b2tlbnMpIHtcbiAgICB0b2tlbnMgPSBwYXJzZShtZXNzYWdlKTtcbiAgICB0aGlzLl9jYWNoZXNbbWVzc2FnZV0gPSB0b2tlbnM7XG4gIH1cbiAgcmV0dXJuIGNvbXBpbGUodG9rZW5zLCB2YWx1ZXMpXG59O1xuXG5cblxudmFyIFJFX1RPS0VOX0xJU1RfVkFMVUUgPSAvXig/OlxcZCkrLztcbnZhciBSRV9UT0tFTl9OQU1FRF9WQUxVRSA9IC9eKD86XFx3KSsvO1xuXG5mdW5jdGlvbiBwYXJzZSAoZm9ybWF0KSB7XG4gIHZhciB0b2tlbnMgPSBbXTtcbiAgdmFyIHBvc2l0aW9uID0gMDtcblxuICB2YXIgdGV4dCA9ICcnO1xuICB3aGlsZSAocG9zaXRpb24gPCBmb3JtYXQubGVuZ3RoKSB7XG4gICAgdmFyIGNoYXIgPSBmb3JtYXRbcG9zaXRpb24rK107XG4gICAgaWYgKGNoYXIgPT09ICd7Jykge1xuICAgICAgaWYgKHRleHQpIHtcbiAgICAgICAgdG9rZW5zLnB1c2goeyB0eXBlOiAndGV4dCcsIHZhbHVlOiB0ZXh0IH0pO1xuICAgICAgfVxuXG4gICAgICB0ZXh0ID0gJyc7XG4gICAgICB2YXIgc3ViID0gJyc7XG4gICAgICBjaGFyID0gZm9ybWF0W3Bvc2l0aW9uKytdO1xuICAgICAgd2hpbGUgKGNoYXIgIT09IHVuZGVmaW5lZCAmJiBjaGFyICE9PSAnfScpIHtcbiAgICAgICAgc3ViICs9IGNoYXI7XG4gICAgICAgIGNoYXIgPSBmb3JtYXRbcG9zaXRpb24rK107XG4gICAgICB9XG4gICAgICB2YXIgaXNDbG9zZWQgPSBjaGFyID09PSAnfSc7XG5cbiAgICAgIHZhciB0eXBlID0gUkVfVE9LRU5fTElTVF9WQUxVRS50ZXN0KHN1YilcbiAgICAgICAgPyAnbGlzdCdcbiAgICAgICAgOiBpc0Nsb3NlZCAmJiBSRV9UT0tFTl9OQU1FRF9WQUxVRS50ZXN0KHN1YilcbiAgICAgICAgICA/ICduYW1lZCdcbiAgICAgICAgICA6ICd1bmtub3duJztcbiAgICAgIHRva2Vucy5wdXNoKHsgdmFsdWU6IHN1YiwgdHlwZTogdHlwZSB9KTtcbiAgICB9IGVsc2UgaWYgKGNoYXIgPT09ICclJykge1xuICAgICAgLy8gd2hlbiBmb3VuZCByYWlscyBpMThuIHN5bnRheCwgc2tpcCB0ZXh0IGNhcHR1cmVcbiAgICAgIGlmIChmb3JtYXRbKHBvc2l0aW9uKV0gIT09ICd7Jykge1xuICAgICAgICB0ZXh0ICs9IGNoYXI7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRleHQgKz0gY2hhcjtcbiAgICB9XG4gIH1cblxuICB0ZXh0ICYmIHRva2Vucy5wdXNoKHsgdHlwZTogJ3RleHQnLCB2YWx1ZTogdGV4dCB9KTtcblxuICByZXR1cm4gdG9rZW5zXG59XG5cbmZ1bmN0aW9uIGNvbXBpbGUgKHRva2VucywgdmFsdWVzKSB7XG4gIHZhciBjb21waWxlZCA9IFtdO1xuICB2YXIgaW5kZXggPSAwO1xuXG4gIHZhciBtb2RlID0gQXJyYXkuaXNBcnJheSh2YWx1ZXMpXG4gICAgPyAnbGlzdCdcbiAgICA6IGlzT2JqZWN0KHZhbHVlcylcbiAgICAgID8gJ25hbWVkJ1xuICAgICAgOiAndW5rbm93bic7XG4gIGlmIChtb2RlID09PSAndW5rbm93bicpIHsgcmV0dXJuIGNvbXBpbGVkIH1cblxuICB3aGlsZSAoaW5kZXggPCB0b2tlbnMubGVuZ3RoKSB7XG4gICAgdmFyIHRva2VuID0gdG9rZW5zW2luZGV4XTtcbiAgICBzd2l0Y2ggKHRva2VuLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3RleHQnOlxuICAgICAgICBjb21waWxlZC5wdXNoKHRva2VuLnZhbHVlKTtcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ2xpc3QnOlxuICAgICAgICBjb21waWxlZC5wdXNoKHZhbHVlc1twYXJzZUludCh0b2tlbi52YWx1ZSwgMTApXSk7XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICduYW1lZCc6XG4gICAgICAgIGlmIChtb2RlID09PSAnbmFtZWQnKSB7XG4gICAgICAgICAgY29tcGlsZWQucHVzaCgodmFsdWVzKVt0b2tlbi52YWx1ZV0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICB3YXJuKChcIlR5cGUgb2YgdG9rZW4gJ1wiICsgKHRva2VuLnR5cGUpICsgXCInIGFuZCBmb3JtYXQgb2YgdmFsdWUgJ1wiICsgbW9kZSArIFwiJyBkb24ndCBtYXRjaCFcIikpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSAndW5rbm93bic6XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgd2FybihcIkRldGVjdCAndW5rbm93bicgdHlwZSBvZiB0b2tlbiFcIik7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICB9XG4gICAgaW5kZXgrKztcbiAgfVxuXG4gIHJldHVybiBjb21waWxlZFxufVxuXG4vKiAgKi9cblxuLyoqXG4gKiAgUGF0aCBwYXJzZXJcbiAqICAtIEluc3BpcmVkOlxuICogICAgVnVlLmpzIFBhdGggcGFyc2VyXG4gKi9cblxuLy8gYWN0aW9uc1xudmFyIEFQUEVORCA9IDA7XG52YXIgUFVTSCA9IDE7XG52YXIgSU5DX1NVQl9QQVRIX0RFUFRIID0gMjtcbnZhciBQVVNIX1NVQl9QQVRIID0gMztcblxuLy8gc3RhdGVzXG52YXIgQkVGT1JFX1BBVEggPSAwO1xudmFyIElOX1BBVEggPSAxO1xudmFyIEJFRk9SRV9JREVOVCA9IDI7XG52YXIgSU5fSURFTlQgPSAzO1xudmFyIElOX1NVQl9QQVRIID0gNDtcbnZhciBJTl9TSU5HTEVfUVVPVEUgPSA1O1xudmFyIElOX0RPVUJMRV9RVU9URSA9IDY7XG52YXIgQUZURVJfUEFUSCA9IDc7XG52YXIgRVJST1IgPSA4O1xuXG52YXIgcGF0aFN0YXRlTWFjaGluZSA9IFtdO1xuXG5wYXRoU3RhdGVNYWNoaW5lW0JFRk9SRV9QQVRIXSA9IHtcbiAgJ3dzJzogW0JFRk9SRV9QQVRIXSxcbiAgJ2lkZW50JzogW0lOX0lERU5ULCBBUFBFTkRdLFxuICAnWyc6IFtJTl9TVUJfUEFUSF0sXG4gICdlb2YnOiBbQUZURVJfUEFUSF1cbn07XG5cbnBhdGhTdGF0ZU1hY2hpbmVbSU5fUEFUSF0gPSB7XG4gICd3cyc6IFtJTl9QQVRIXSxcbiAgJy4nOiBbQkVGT1JFX0lERU5UXSxcbiAgJ1snOiBbSU5fU1VCX1BBVEhdLFxuICAnZW9mJzogW0FGVEVSX1BBVEhdXG59O1xuXG5wYXRoU3RhdGVNYWNoaW5lW0JFRk9SRV9JREVOVF0gPSB7XG4gICd3cyc6IFtCRUZPUkVfSURFTlRdLFxuICAnaWRlbnQnOiBbSU5fSURFTlQsIEFQUEVORF0sXG4gICcwJzogW0lOX0lERU5ULCBBUFBFTkRdLFxuICAnbnVtYmVyJzogW0lOX0lERU5ULCBBUFBFTkRdXG59O1xuXG5wYXRoU3RhdGVNYWNoaW5lW0lOX0lERU5UXSA9IHtcbiAgJ2lkZW50JzogW0lOX0lERU5ULCBBUFBFTkRdLFxuICAnMCc6IFtJTl9JREVOVCwgQVBQRU5EXSxcbiAgJ251bWJlcic6IFtJTl9JREVOVCwgQVBQRU5EXSxcbiAgJ3dzJzogW0lOX1BBVEgsIFBVU0hdLFxuICAnLic6IFtCRUZPUkVfSURFTlQsIFBVU0hdLFxuICAnWyc6IFtJTl9TVUJfUEFUSCwgUFVTSF0sXG4gICdlb2YnOiBbQUZURVJfUEFUSCwgUFVTSF1cbn07XG5cbnBhdGhTdGF0ZU1hY2hpbmVbSU5fU1VCX1BBVEhdID0ge1xuICBcIidcIjogW0lOX1NJTkdMRV9RVU9URSwgQVBQRU5EXSxcbiAgJ1wiJzogW0lOX0RPVUJMRV9RVU9URSwgQVBQRU5EXSxcbiAgJ1snOiBbSU5fU1VCX1BBVEgsIElOQ19TVUJfUEFUSF9ERVBUSF0sXG4gICddJzogW0lOX1BBVEgsIFBVU0hfU1VCX1BBVEhdLFxuICAnZW9mJzogRVJST1IsXG4gICdlbHNlJzogW0lOX1NVQl9QQVRILCBBUFBFTkRdXG59O1xuXG5wYXRoU3RhdGVNYWNoaW5lW0lOX1NJTkdMRV9RVU9URV0gPSB7XG4gIFwiJ1wiOiBbSU5fU1VCX1BBVEgsIEFQUEVORF0sXG4gICdlb2YnOiBFUlJPUixcbiAgJ2Vsc2UnOiBbSU5fU0lOR0xFX1FVT1RFLCBBUFBFTkRdXG59O1xuXG5wYXRoU3RhdGVNYWNoaW5lW0lOX0RPVUJMRV9RVU9URV0gPSB7XG4gICdcIic6IFtJTl9TVUJfUEFUSCwgQVBQRU5EXSxcbiAgJ2VvZic6IEVSUk9SLFxuICAnZWxzZSc6IFtJTl9ET1VCTEVfUVVPVEUsIEFQUEVORF1cbn07XG5cbi8qKlxuICogQ2hlY2sgaWYgYW4gZXhwcmVzc2lvbiBpcyBhIGxpdGVyYWwgdmFsdWUuXG4gKi9cblxudmFyIGxpdGVyYWxWYWx1ZVJFID0gL15cXHM/KD86dHJ1ZXxmYWxzZXwtP1tcXGQuXSt8J1teJ10qJ3xcIlteXCJdKlwiKVxccz8kLztcbmZ1bmN0aW9uIGlzTGl0ZXJhbCAoZXhwKSB7XG4gIHJldHVybiBsaXRlcmFsVmFsdWVSRS50ZXN0KGV4cClcbn1cblxuLyoqXG4gKiBTdHJpcCBxdW90ZXMgZnJvbSBhIHN0cmluZ1xuICovXG5cbmZ1bmN0aW9uIHN0cmlwUXVvdGVzIChzdHIpIHtcbiAgdmFyIGEgPSBzdHIuY2hhckNvZGVBdCgwKTtcbiAgdmFyIGIgPSBzdHIuY2hhckNvZGVBdChzdHIubGVuZ3RoIC0gMSk7XG4gIHJldHVybiBhID09PSBiICYmIChhID09PSAweDIyIHx8IGEgPT09IDB4MjcpXG4gICAgPyBzdHIuc2xpY2UoMSwgLTEpXG4gICAgOiBzdHJcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgdGhlIHR5cGUgb2YgYSBjaGFyYWN0ZXIgaW4gYSBrZXlwYXRoLlxuICovXG5cbmZ1bmN0aW9uIGdldFBhdGhDaGFyVHlwZSAoY2gpIHtcbiAgaWYgKGNoID09PSB1bmRlZmluZWQgfHwgY2ggPT09IG51bGwpIHsgcmV0dXJuICdlb2YnIH1cblxuICB2YXIgY29kZSA9IGNoLmNoYXJDb2RlQXQoMCk7XG5cbiAgc3dpdGNoIChjb2RlKSB7XG4gICAgY2FzZSAweDVCOiAvLyBbXG4gICAgY2FzZSAweDVEOiAvLyBdXG4gICAgY2FzZSAweDJFOiAvLyAuXG4gICAgY2FzZSAweDIyOiAvLyBcIlxuICAgIGNhc2UgMHgyNzogLy8gJ1xuICAgICAgcmV0dXJuIGNoXG5cbiAgICBjYXNlIDB4NUY6IC8vIF9cbiAgICBjYXNlIDB4MjQ6IC8vICRcbiAgICBjYXNlIDB4MkQ6IC8vIC1cbiAgICAgIHJldHVybiAnaWRlbnQnXG5cbiAgICBjYXNlIDB4MDk6IC8vIFRhYlxuICAgIGNhc2UgMHgwQTogLy8gTmV3bGluZVxuICAgIGNhc2UgMHgwRDogLy8gUmV0dXJuXG4gICAgY2FzZSAweEEwOiAgLy8gTm8tYnJlYWsgc3BhY2VcbiAgICBjYXNlIDB4RkVGRjogIC8vIEJ5dGUgT3JkZXIgTWFya1xuICAgIGNhc2UgMHgyMDI4OiAgLy8gTGluZSBTZXBhcmF0b3JcbiAgICBjYXNlIDB4MjAyOTogIC8vIFBhcmFncmFwaCBTZXBhcmF0b3JcbiAgICAgIHJldHVybiAnd3MnXG4gIH1cblxuICByZXR1cm4gJ2lkZW50J1xufVxuXG4vKipcbiAqIEZvcm1hdCBhIHN1YlBhdGgsIHJldHVybiBpdHMgcGxhaW4gZm9ybSBpZiBpdCBpc1xuICogYSBsaXRlcmFsIHN0cmluZyBvciBudW1iZXIuIE90aGVyd2lzZSBwcmVwZW5kIHRoZVxuICogZHluYW1pYyBpbmRpY2F0b3IgKCopLlxuICovXG5cbmZ1bmN0aW9uIGZvcm1hdFN1YlBhdGggKHBhdGgpIHtcbiAgdmFyIHRyaW1tZWQgPSBwYXRoLnRyaW0oKTtcbiAgLy8gaW52YWxpZCBsZWFkaW5nIDBcbiAgaWYgKHBhdGguY2hhckF0KDApID09PSAnMCcgJiYgaXNOYU4ocGF0aCkpIHsgcmV0dXJuIGZhbHNlIH1cblxuICByZXR1cm4gaXNMaXRlcmFsKHRyaW1tZWQpID8gc3RyaXBRdW90ZXModHJpbW1lZCkgOiAnKicgKyB0cmltbWVkXG59XG5cbi8qKlxuICogUGFyc2UgYSBzdHJpbmcgcGF0aCBpbnRvIGFuIGFycmF5IG9mIHNlZ21lbnRzXG4gKi9cblxuZnVuY3Rpb24gcGFyc2UkMSAocGF0aCkge1xuICB2YXIga2V5cyA9IFtdO1xuICB2YXIgaW5kZXggPSAtMTtcbiAgdmFyIG1vZGUgPSBCRUZPUkVfUEFUSDtcbiAgdmFyIHN1YlBhdGhEZXB0aCA9IDA7XG4gIHZhciBjO1xuICB2YXIga2V5O1xuICB2YXIgbmV3Q2hhcjtcbiAgdmFyIHR5cGU7XG4gIHZhciB0cmFuc2l0aW9uO1xuICB2YXIgYWN0aW9uO1xuICB2YXIgdHlwZU1hcDtcbiAgdmFyIGFjdGlvbnMgPSBbXTtcblxuICBhY3Rpb25zW1BVU0hdID0gZnVuY3Rpb24gKCkge1xuICAgIGlmIChrZXkgIT09IHVuZGVmaW5lZCkge1xuICAgICAga2V5cy5wdXNoKGtleSk7XG4gICAgICBrZXkgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9O1xuXG4gIGFjdGlvbnNbQVBQRU5EXSA9IGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoa2V5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGtleSA9IG5ld0NoYXI7XG4gICAgfSBlbHNlIHtcbiAgICAgIGtleSArPSBuZXdDaGFyO1xuICAgIH1cbiAgfTtcblxuICBhY3Rpb25zW0lOQ19TVUJfUEFUSF9ERVBUSF0gPSBmdW5jdGlvbiAoKSB7XG4gICAgYWN0aW9uc1tBUFBFTkRdKCk7XG4gICAgc3ViUGF0aERlcHRoKys7XG4gIH07XG5cbiAgYWN0aW9uc1tQVVNIX1NVQl9QQVRIXSA9IGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoc3ViUGF0aERlcHRoID4gMCkge1xuICAgICAgc3ViUGF0aERlcHRoLS07XG4gICAgICBtb2RlID0gSU5fU1VCX1BBVEg7XG4gICAgICBhY3Rpb25zW0FQUEVORF0oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3ViUGF0aERlcHRoID0gMDtcbiAgICAgIGlmIChrZXkgPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gZmFsc2UgfVxuICAgICAga2V5ID0gZm9ybWF0U3ViUGF0aChrZXkpO1xuICAgICAgaWYgKGtleSA9PT0gZmFsc2UpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhY3Rpb25zW1BVU0hdKCk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIGZ1bmN0aW9uIG1heWJlVW5lc2NhcGVRdW90ZSAoKSB7XG4gICAgdmFyIG5leHRDaGFyID0gcGF0aFtpbmRleCArIDFdO1xuICAgIGlmICgobW9kZSA9PT0gSU5fU0lOR0xFX1FVT1RFICYmIG5leHRDaGFyID09PSBcIidcIikgfHxcbiAgICAgIChtb2RlID09PSBJTl9ET1VCTEVfUVVPVEUgJiYgbmV4dENoYXIgPT09ICdcIicpKSB7XG4gICAgICBpbmRleCsrO1xuICAgICAgbmV3Q2hhciA9ICdcXFxcJyArIG5leHRDaGFyO1xuICAgICAgYWN0aW9uc1tBUFBFTkRdKCk7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIHdoaWxlIChtb2RlICE9PSBudWxsKSB7XG4gICAgaW5kZXgrKztcbiAgICBjID0gcGF0aFtpbmRleF07XG5cbiAgICBpZiAoYyA9PT0gJ1xcXFwnICYmIG1heWJlVW5lc2NhcGVRdW90ZSgpKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIHR5cGUgPSBnZXRQYXRoQ2hhclR5cGUoYyk7XG4gICAgdHlwZU1hcCA9IHBhdGhTdGF0ZU1hY2hpbmVbbW9kZV07XG4gICAgdHJhbnNpdGlvbiA9IHR5cGVNYXBbdHlwZV0gfHwgdHlwZU1hcFsnZWxzZSddIHx8IEVSUk9SO1xuXG4gICAgaWYgKHRyYW5zaXRpb24gPT09IEVSUk9SKSB7XG4gICAgICByZXR1cm4gLy8gcGFyc2UgZXJyb3JcbiAgICB9XG5cbiAgICBtb2RlID0gdHJhbnNpdGlvblswXTtcbiAgICBhY3Rpb24gPSBhY3Rpb25zW3RyYW5zaXRpb25bMV1dO1xuICAgIGlmIChhY3Rpb24pIHtcbiAgICAgIG5ld0NoYXIgPSB0cmFuc2l0aW9uWzJdO1xuICAgICAgbmV3Q2hhciA9IG5ld0NoYXIgPT09IHVuZGVmaW5lZFxuICAgICAgICA/IGNcbiAgICAgICAgOiBuZXdDaGFyO1xuICAgICAgaWYgKGFjdGlvbigpID09PSBmYWxzZSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobW9kZSA9PT0gQUZURVJfUEFUSCkge1xuICAgICAgcmV0dXJuIGtleXNcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG52YXIgSTE4blBhdGggPSBmdW5jdGlvbiBJMThuUGF0aCAoKSB7XG4gIHRoaXMuX2NhY2hlID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbn07XG5cbi8qKlxuICogRXh0ZXJuYWwgcGFyc2UgdGhhdCBjaGVjayBmb3IgYSBjYWNoZSBoaXQgZmlyc3RcbiAqL1xuSTE4blBhdGgucHJvdG90eXBlLnBhcnNlUGF0aCA9IGZ1bmN0aW9uIHBhcnNlUGF0aCAocGF0aCkge1xuICB2YXIgaGl0ID0gdGhpcy5fY2FjaGVbcGF0aF07XG4gIGlmICghaGl0KSB7XG4gICAgaGl0ID0gcGFyc2UkMShwYXRoKTtcbiAgICBpZiAoaGl0KSB7XG4gICAgICB0aGlzLl9jYWNoZVtwYXRoXSA9IGhpdDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGhpdCB8fCBbXVxufTtcblxuLyoqXG4gKiBHZXQgcGF0aCB2YWx1ZSBmcm9tIHBhdGggc3RyaW5nXG4gKi9cbkkxOG5QYXRoLnByb3RvdHlwZS5nZXRQYXRoVmFsdWUgPSBmdW5jdGlvbiBnZXRQYXRoVmFsdWUgKG9iaiwgcGF0aCkge1xuICBpZiAoIWlzT2JqZWN0KG9iaikpIHsgcmV0dXJuIG51bGwgfVxuXG4gIHZhciBwYXRocyA9IHRoaXMucGFyc2VQYXRoKHBhdGgpO1xuICBpZiAocGF0aHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfSBlbHNlIHtcbiAgICB2YXIgbGVuZ3RoID0gcGF0aHMubGVuZ3RoO1xuICAgIHZhciBsYXN0ID0gb2JqO1xuICAgIHZhciBpID0gMDtcbiAgICB3aGlsZSAoaSA8IGxlbmd0aCkge1xuICAgICAgdmFyIHZhbHVlID0gbGFzdFtwYXRoc1tpXV07XG4gICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuICAgICAgbGFzdCA9IHZhbHVlO1xuICAgICAgaSsrO1xuICAgIH1cblxuICAgIHJldHVybiBsYXN0XG4gIH1cbn07XG5cbi8qICAqL1xuXG5cblxudmFyIGh0bWxUYWdNYXRjaGVyID0gLzxcXC8/W1xcd1xccz1cIi8uJzo7Iy1cXC9dKz4vO1xudmFyIGxpbmtLZXlNYXRjaGVyID0gLyg/OkAoPzpcXC5bYS16XSspPzooPzpbXFx3XFwtX3wuXSt8XFwoW1xcd1xcLV98Ll0rXFwpKSkvZztcbnZhciBsaW5rS2V5UHJlZml4TWF0Y2hlciA9IC9eQCg/OlxcLihbYS16XSspKT86LztcbnZhciBicmFja2V0c01hdGNoZXIgPSAvWygpXS9nO1xudmFyIGRlZmF1bHRNb2RpZmllcnMgPSB7XG4gICd1cHBlcic6IGZ1bmN0aW9uIChzdHIpIHsgcmV0dXJuIHN0ci50b0xvY2FsZVVwcGVyQ2FzZSgpOyB9LFxuICAnbG93ZXInOiBmdW5jdGlvbiAoc3RyKSB7IHJldHVybiBzdHIudG9Mb2NhbGVMb3dlckNhc2UoKTsgfSxcbiAgJ2NhcGl0YWxpemUnOiBmdW5jdGlvbiAoc3RyKSB7IHJldHVybiAoXCJcIiArIChzdHIuY2hhckF0KDApLnRvTG9jYWxlVXBwZXJDYXNlKCkpICsgKHN0ci5zdWJzdHIoMSkpKTsgfVxufTtcblxudmFyIGRlZmF1bHRGb3JtYXR0ZXIgPSBuZXcgQmFzZUZvcm1hdHRlcigpO1xuXG52YXIgVnVlSTE4biA9IGZ1bmN0aW9uIFZ1ZUkxOG4gKG9wdGlvbnMpIHtcbiAgdmFyIHRoaXMkMSA9IHRoaXM7XG4gIGlmICggb3B0aW9ucyA9PT0gdm9pZCAwICkgb3B0aW9ucyA9IHt9O1xuXG4gIC8vIEF1dG8gaW5zdGFsbCBpZiBpdCBpcyBub3QgZG9uZSB5ZXQgYW5kIGB3aW5kb3dgIGhhcyBgVnVlYC5cbiAgLy8gVG8gYWxsb3cgdXNlcnMgdG8gYXZvaWQgYXV0by1pbnN0YWxsYXRpb24gaW4gc29tZSBjYXNlcyxcbiAgLy8gdGhpcyBjb2RlIHNob3VsZCBiZSBwbGFjZWQgaGVyZS4gU2VlICMyOTBcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmICghVnVlICYmIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5WdWUpIHtcbiAgICBpbnN0YWxsKHdpbmRvdy5WdWUpO1xuICB9XG5cbiAgdmFyIGxvY2FsZSA9IG9wdGlvbnMubG9jYWxlIHx8ICdlbi1VUyc7XG4gIHZhciBmYWxsYmFja0xvY2FsZSA9IG9wdGlvbnMuZmFsbGJhY2tMb2NhbGUgPT09IGZhbHNlXG4gICAgPyBmYWxzZVxuICAgIDogb3B0aW9ucy5mYWxsYmFja0xvY2FsZSB8fCAnZW4tVVMnO1xuICB2YXIgbWVzc2FnZXMgPSBvcHRpb25zLm1lc3NhZ2VzIHx8IHt9O1xuICB2YXIgZGF0ZVRpbWVGb3JtYXRzID0gb3B0aW9ucy5kYXRlVGltZUZvcm1hdHMgfHwge307XG4gIHZhciBudW1iZXJGb3JtYXRzID0gb3B0aW9ucy5udW1iZXJGb3JtYXRzIHx8IHt9O1xuXG4gIHRoaXMuX3ZtID0gbnVsbDtcbiAgdGhpcy5fZm9ybWF0dGVyID0gb3B0aW9ucy5mb3JtYXR0ZXIgfHwgZGVmYXVsdEZvcm1hdHRlcjtcbiAgdGhpcy5fbW9kaWZpZXJzID0gb3B0aW9ucy5tb2RpZmllcnMgfHwge307XG4gIHRoaXMuX21pc3NpbmcgPSBvcHRpb25zLm1pc3NpbmcgfHwgbnVsbDtcbiAgdGhpcy5fcm9vdCA9IG9wdGlvbnMucm9vdCB8fCBudWxsO1xuICB0aGlzLl9zeW5jID0gb3B0aW9ucy5zeW5jID09PSB1bmRlZmluZWQgPyB0cnVlIDogISFvcHRpb25zLnN5bmM7XG4gIHRoaXMuX2ZhbGxiYWNrUm9vdCA9IG9wdGlvbnMuZmFsbGJhY2tSb290ID09PSB1bmRlZmluZWRcbiAgICA/IHRydWVcbiAgICA6ICEhb3B0aW9ucy5mYWxsYmFja1Jvb3Q7XG4gIHRoaXMuX2Zvcm1hdEZhbGxiYWNrTWVzc2FnZXMgPSBvcHRpb25zLmZvcm1hdEZhbGxiYWNrTWVzc2FnZXMgPT09IHVuZGVmaW5lZFxuICAgID8gZmFsc2VcbiAgICA6ICEhb3B0aW9ucy5mb3JtYXRGYWxsYmFja01lc3NhZ2VzO1xuICB0aGlzLl9zaWxlbnRUcmFuc2xhdGlvbldhcm4gPSBvcHRpb25zLnNpbGVudFRyYW5zbGF0aW9uV2FybiA9PT0gdW5kZWZpbmVkXG4gICAgPyBmYWxzZVxuICAgIDogb3B0aW9ucy5zaWxlbnRUcmFuc2xhdGlvbldhcm47XG4gIHRoaXMuX3NpbGVudEZhbGxiYWNrV2FybiA9IG9wdGlvbnMuc2lsZW50RmFsbGJhY2tXYXJuID09PSB1bmRlZmluZWRcbiAgICA/IGZhbHNlXG4gICAgOiAhIW9wdGlvbnMuc2lsZW50RmFsbGJhY2tXYXJuO1xuICB0aGlzLl9kYXRlVGltZUZvcm1hdHRlcnMgPSB7fTtcbiAgdGhpcy5fbnVtYmVyRm9ybWF0dGVycyA9IHt9O1xuICB0aGlzLl9wYXRoID0gbmV3IEkxOG5QYXRoKCk7XG4gIHRoaXMuX2RhdGFMaXN0ZW5lcnMgPSBbXTtcbiAgdGhpcy5fY29tcG9uZW50SW5zdGFuY2VDcmVhdGVkTGlzdGVuZXIgPSBvcHRpb25zLmNvbXBvbmVudEluc3RhbmNlQ3JlYXRlZExpc3RlbmVyIHx8IG51bGw7XG4gIHRoaXMuX3ByZXNlcnZlRGlyZWN0aXZlQ29udGVudCA9IG9wdGlvbnMucHJlc2VydmVEaXJlY3RpdmVDb250ZW50ID09PSB1bmRlZmluZWRcbiAgICA/IGZhbHNlXG4gICAgOiAhIW9wdGlvbnMucHJlc2VydmVEaXJlY3RpdmVDb250ZW50O1xuICB0aGlzLnBsdXJhbGl6YXRpb25SdWxlcyA9IG9wdGlvbnMucGx1cmFsaXphdGlvblJ1bGVzIHx8IHt9O1xuICB0aGlzLl93YXJuSHRtbEluTWVzc2FnZSA9IG9wdGlvbnMud2Fybkh0bWxJbk1lc3NhZ2UgfHwgJ29mZic7XG4gIHRoaXMuX3Bvc3RUcmFuc2xhdGlvbiA9IG9wdGlvbnMucG9zdFRyYW5zbGF0aW9uIHx8IG51bGw7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBjaG9pY2Uge251bWJlcn0gYSBjaG9pY2UgaW5kZXggZ2l2ZW4gYnkgdGhlIGlucHV0IHRvICR0YzogYCR0YygncGF0aC50by5ydWxlJywgY2hvaWNlSW5kZXgpYFxuICAgKiBAcGFyYW0gY2hvaWNlc0xlbmd0aCB7bnVtYmVyfSBhbiBvdmVyYWxsIGFtb3VudCBvZiBhdmFpbGFibGUgY2hvaWNlc1xuICAgKiBAcmV0dXJucyBhIGZpbmFsIGNob2ljZSBpbmRleFxuICAqL1xuICB0aGlzLmdldENob2ljZUluZGV4ID0gZnVuY3Rpb24gKGNob2ljZSwgY2hvaWNlc0xlbmd0aCkge1xuICAgIHZhciB0aGlzUHJvdG90eXBlID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMkMSk7XG4gICAgaWYgKHRoaXNQcm90b3R5cGUgJiYgdGhpc1Byb3RvdHlwZS5nZXRDaG9pY2VJbmRleCkge1xuICAgICAgdmFyIHByb3RvdHlwZUdldENob2ljZUluZGV4ID0gKHRoaXNQcm90b3R5cGUuZ2V0Q2hvaWNlSW5kZXgpO1xuICAgICAgcmV0dXJuIChwcm90b3R5cGVHZXRDaG9pY2VJbmRleCkuY2FsbCh0aGlzJDEsIGNob2ljZSwgY2hvaWNlc0xlbmd0aClcbiAgICB9XG5cbiAgICAvLyBEZWZhdWx0IChvbGQpIGdldENob2ljZUluZGV4IGltcGxlbWVudGF0aW9uIC0gZW5nbGlzaC1jb21wYXRpYmxlXG4gICAgdmFyIGRlZmF1bHRJbXBsID0gZnVuY3Rpb24gKF9jaG9pY2UsIF9jaG9pY2VzTGVuZ3RoKSB7XG4gICAgICBfY2hvaWNlID0gTWF0aC5hYnMoX2Nob2ljZSk7XG5cbiAgICAgIGlmIChfY2hvaWNlc0xlbmd0aCA9PT0gMikge1xuICAgICAgICByZXR1cm4gX2Nob2ljZVxuICAgICAgICAgID8gX2Nob2ljZSA+IDFcbiAgICAgICAgICAgID8gMVxuICAgICAgICAgICAgOiAwXG4gICAgICAgICAgOiAxXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBfY2hvaWNlID8gTWF0aC5taW4oX2Nob2ljZSwgMikgOiAwXG4gICAgfTtcblxuICAgIGlmICh0aGlzJDEubG9jYWxlIGluIHRoaXMkMS5wbHVyYWxpemF0aW9uUnVsZXMpIHtcbiAgICAgIHJldHVybiB0aGlzJDEucGx1cmFsaXphdGlvblJ1bGVzW3RoaXMkMS5sb2NhbGVdLmFwcGx5KHRoaXMkMSwgW2Nob2ljZSwgY2hvaWNlc0xlbmd0aF0pXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBkZWZhdWx0SW1wbChjaG9pY2UsIGNob2ljZXNMZW5ndGgpXG4gICAgfVxuICB9O1xuXG5cbiAgdGhpcy5fZXhpc3QgPSBmdW5jdGlvbiAobWVzc2FnZSwga2V5KSB7XG4gICAgaWYgKCFtZXNzYWdlIHx8ICFrZXkpIHsgcmV0dXJuIGZhbHNlIH1cbiAgICBpZiAoIWlzTnVsbCh0aGlzJDEuX3BhdGguZ2V0UGF0aFZhbHVlKG1lc3NhZ2UsIGtleSkpKSB7IHJldHVybiB0cnVlIH1cbiAgICAvLyBmYWxsYmFjayBmb3IgZmxhdCBrZXlcbiAgICBpZiAobWVzc2FnZVtrZXldKSB7IHJldHVybiB0cnVlIH1cbiAgICByZXR1cm4gZmFsc2VcbiAgfTtcblxuICBpZiAodGhpcy5fd2Fybkh0bWxJbk1lc3NhZ2UgPT09ICd3YXJuJyB8fCB0aGlzLl93YXJuSHRtbEluTWVzc2FnZSA9PT0gJ2Vycm9yJykge1xuICAgIE9iamVjdC5rZXlzKG1lc3NhZ2VzKS5mb3JFYWNoKGZ1bmN0aW9uIChsb2NhbGUpIHtcbiAgICAgIHRoaXMkMS5fY2hlY2tMb2NhbGVNZXNzYWdlKGxvY2FsZSwgdGhpcyQxLl93YXJuSHRtbEluTWVzc2FnZSwgbWVzc2FnZXNbbG9jYWxlXSk7XG4gICAgfSk7XG4gIH1cblxuICB0aGlzLl9pbml0Vk0oe1xuICAgIGxvY2FsZTogbG9jYWxlLFxuICAgIGZhbGxiYWNrTG9jYWxlOiBmYWxsYmFja0xvY2FsZSxcbiAgICBtZXNzYWdlczogbWVzc2FnZXMsXG4gICAgZGF0ZVRpbWVGb3JtYXRzOiBkYXRlVGltZUZvcm1hdHMsXG4gICAgbnVtYmVyRm9ybWF0czogbnVtYmVyRm9ybWF0c1xuICB9KTtcbn07XG5cbnZhciBwcm90b3R5cGVBY2Nlc3NvcnMgPSB7IHZtOiB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSB9LG1lc3NhZ2VzOiB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSB9LGRhdGVUaW1lRm9ybWF0czogeyBjb25maWd1cmFibGU6IHRydWUgfSxudW1iZXJGb3JtYXRzOiB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSB9LGF2YWlsYWJsZUxvY2FsZXM6IHsgY29uZmlndXJhYmxlOiB0cnVlIH0sbG9jYWxlOiB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSB9LGZhbGxiYWNrTG9jYWxlOiB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSB9LGZvcm1hdEZhbGxiYWNrTWVzc2FnZXM6IHsgY29uZmlndXJhYmxlOiB0cnVlIH0sbWlzc2luZzogeyBjb25maWd1cmFibGU6IHRydWUgfSxmb3JtYXR0ZXI6IHsgY29uZmlndXJhYmxlOiB0cnVlIH0sc2lsZW50VHJhbnNsYXRpb25XYXJuOiB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSB9LHNpbGVudEZhbGxiYWNrV2FybjogeyBjb25maWd1cmFibGU6IHRydWUgfSxwcmVzZXJ2ZURpcmVjdGl2ZUNvbnRlbnQ6IHsgY29uZmlndXJhYmxlOiB0cnVlIH0sd2Fybkh0bWxJbk1lc3NhZ2U6IHsgY29uZmlndXJhYmxlOiB0cnVlIH0scG9zdFRyYW5zbGF0aW9uOiB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLl9jaGVja0xvY2FsZU1lc3NhZ2UgPSBmdW5jdGlvbiBfY2hlY2tMb2NhbGVNZXNzYWdlIChsb2NhbGUsIGxldmVsLCBtZXNzYWdlKSB7XG4gIHZhciBwYXRocyA9IFtdO1xuXG4gIHZhciBmbiA9IGZ1bmN0aW9uIChsZXZlbCwgbG9jYWxlLCBtZXNzYWdlLCBwYXRocykge1xuICAgIGlmIChpc1BsYWluT2JqZWN0KG1lc3NhZ2UpKSB7XG4gICAgICBPYmplY3Qua2V5cyhtZXNzYWdlKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgdmFyIHZhbCA9IG1lc3NhZ2Vba2V5XTtcbiAgICAgICAgaWYgKGlzUGxhaW5PYmplY3QodmFsKSkge1xuICAgICAgICAgIHBhdGhzLnB1c2goa2V5KTtcbiAgICAgICAgICBwYXRocy5wdXNoKCcuJyk7XG4gICAgICAgICAgZm4obGV2ZWwsIGxvY2FsZSwgdmFsLCBwYXRocyk7XG4gICAgICAgICAgcGF0aHMucG9wKCk7XG4gICAgICAgICAgcGF0aHMucG9wKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGF0aHMucHVzaChrZXkpO1xuICAgICAgICAgIGZuKGxldmVsLCBsb2NhbGUsIHZhbCwgcGF0aHMpO1xuICAgICAgICAgIHBhdGhzLnBvcCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkobWVzc2FnZSkpIHtcbiAgICAgIG1lc3NhZ2UuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSwgaW5kZXgpIHtcbiAgICAgICAgaWYgKGlzUGxhaW5PYmplY3QoaXRlbSkpIHtcbiAgICAgICAgICBwYXRocy5wdXNoKChcIltcIiArIGluZGV4ICsgXCJdXCIpKTtcbiAgICAgICAgICBwYXRocy5wdXNoKCcuJyk7XG4gICAgICAgICAgZm4obGV2ZWwsIGxvY2FsZSwgaXRlbSwgcGF0aHMpO1xuICAgICAgICAgIHBhdGhzLnBvcCgpO1xuICAgICAgICAgIHBhdGhzLnBvcCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBhdGhzLnB1c2goKFwiW1wiICsgaW5kZXggKyBcIl1cIikpO1xuICAgICAgICAgIGZuKGxldmVsLCBsb2NhbGUsIGl0ZW0sIHBhdGhzKTtcbiAgICAgICAgICBwYXRocy5wb3AoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChpc1N0cmluZyhtZXNzYWdlKSkge1xuICAgICAgdmFyIHJldCA9IGh0bWxUYWdNYXRjaGVyLnRlc3QobWVzc2FnZSk7XG4gICAgICBpZiAocmV0KSB7XG4gICAgICAgIHZhciBtc2cgPSBcIkRldGVjdGVkIEhUTUwgaW4gbWVzc2FnZSAnXCIgKyBtZXNzYWdlICsgXCInIG9mIGtleXBhdGggJ1wiICsgKHBhdGhzLmpvaW4oJycpKSArIFwiJyBhdCAnXCIgKyBsb2NhbGUgKyBcIicuIENvbnNpZGVyIGNvbXBvbmVudCBpbnRlcnBvbGF0aW9uIHdpdGggJzxpMThuPicgdG8gYXZvaWQgWFNTLiBTZWUgaHR0cHM6Ly9iaXQubHkvMlpxSnprcFwiO1xuICAgICAgICBpZiAobGV2ZWwgPT09ICd3YXJuJykge1xuICAgICAgICAgIHdhcm4obXNnKTtcbiAgICAgICAgfSBlbHNlIGlmIChsZXZlbCA9PT0gJ2Vycm9yJykge1xuICAgICAgICAgIGVycm9yKG1zZyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgZm4obGV2ZWwsIGxvY2FsZSwgbWVzc2FnZSwgcGF0aHMpO1xufTtcblxuVnVlSTE4bi5wcm90b3R5cGUuX2luaXRWTSA9IGZ1bmN0aW9uIF9pbml0Vk0gKGRhdGEpIHtcbiAgdmFyIHNpbGVudCA9IFZ1ZS5jb25maWcuc2lsZW50O1xuICBWdWUuY29uZmlnLnNpbGVudCA9IHRydWU7XG4gIHRoaXMuX3ZtID0gbmV3IFZ1ZSh7IGRhdGE6IGRhdGEgfSk7XG4gIFZ1ZS5jb25maWcuc2lsZW50ID0gc2lsZW50O1xufTtcblxuVnVlSTE4bi5wcm90b3R5cGUuZGVzdHJveVZNID0gZnVuY3Rpb24gZGVzdHJveVZNICgpIHtcbiAgdGhpcy5fdm0uJGRlc3Ryb3koKTtcbn07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLnN1YnNjcmliZURhdGFDaGFuZ2luZyA9IGZ1bmN0aW9uIHN1YnNjcmliZURhdGFDaGFuZ2luZyAodm0pIHtcbiAgdGhpcy5fZGF0YUxpc3RlbmVycy5wdXNoKHZtKTtcbn07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLnVuc3Vic2NyaWJlRGF0YUNoYW5naW5nID0gZnVuY3Rpb24gdW5zdWJzY3JpYmVEYXRhQ2hhbmdpbmcgKHZtKSB7XG4gIHJlbW92ZSh0aGlzLl9kYXRhTGlzdGVuZXJzLCB2bSk7XG59O1xuXG5WdWVJMThuLnByb3RvdHlwZS53YXRjaEkxOG5EYXRhID0gZnVuY3Rpb24gd2F0Y2hJMThuRGF0YSAoKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgcmV0dXJuIHRoaXMuX3ZtLiR3YXRjaCgnJGRhdGEnLCBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGkgPSBzZWxmLl9kYXRhTGlzdGVuZXJzLmxlbmd0aDtcbiAgICB3aGlsZSAoaS0tKSB7XG4gICAgICBWdWUubmV4dFRpY2soZnVuY3Rpb24gKCkge1xuICAgICAgICBzZWxmLl9kYXRhTGlzdGVuZXJzW2ldICYmIHNlbGYuX2RhdGFMaXN0ZW5lcnNbaV0uJGZvcmNlVXBkYXRlKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIHsgZGVlcDogdHJ1ZSB9KVxufTtcblxuVnVlSTE4bi5wcm90b3R5cGUud2F0Y2hMb2NhbGUgPSBmdW5jdGlvbiB3YXRjaExvY2FsZSAoKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoIXRoaXMuX3N5bmMgfHwgIXRoaXMuX3Jvb3QpIHsgcmV0dXJuIG51bGwgfVxuICB2YXIgdGFyZ2V0ID0gdGhpcy5fdm07XG4gIHJldHVybiB0aGlzLl9yb290LiRpMThuLnZtLiR3YXRjaCgnbG9jYWxlJywgZnVuY3Rpb24gKHZhbCkge1xuICAgIHRhcmdldC4kc2V0KHRhcmdldCwgJ2xvY2FsZScsIHZhbCk7XG4gICAgdGFyZ2V0LiRmb3JjZVVwZGF0ZSgpO1xuICB9LCB7IGltbWVkaWF0ZTogdHJ1ZSB9KVxufTtcblxuVnVlSTE4bi5wcm90b3R5cGUub25Db21wb25lbnRJbnN0YW5jZUNyZWF0ZWQgPSBmdW5jdGlvbiBvbkNvbXBvbmVudEluc3RhbmNlQ3JlYXRlZCAobmV3STE4bikge1xuICBpZiAodGhpcy5fY29tcG9uZW50SW5zdGFuY2VDcmVhdGVkTGlzdGVuZXIpIHtcbiAgICB0aGlzLl9jb21wb25lbnRJbnN0YW5jZUNyZWF0ZWRMaXN0ZW5lcihuZXdJMThuLCB0aGlzKTtcbiAgfVxufTtcblxucHJvdG90eXBlQWNjZXNzb3JzLnZtLmdldCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMuX3ZtIH07XG5cbnByb3RvdHlwZUFjY2Vzc29ycy5tZXNzYWdlcy5nZXQgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBsb29zZUNsb25lKHRoaXMuX2dldE1lc3NhZ2VzKCkpIH07XG5wcm90b3R5cGVBY2Nlc3NvcnMuZGF0ZVRpbWVGb3JtYXRzLmdldCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGxvb3NlQ2xvbmUodGhpcy5fZ2V0RGF0ZVRpbWVGb3JtYXRzKCkpIH07XG5wcm90b3R5cGVBY2Nlc3NvcnMubnVtYmVyRm9ybWF0cy5nZXQgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBsb29zZUNsb25lKHRoaXMuX2dldE51bWJlckZvcm1hdHMoKSkgfTtcbnByb3RvdHlwZUFjY2Vzc29ycy5hdmFpbGFibGVMb2NhbGVzLmdldCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMubWVzc2FnZXMpLnNvcnQoKSB9O1xuXG5wcm90b3R5cGVBY2Nlc3NvcnMubG9jYWxlLmdldCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMuX3ZtLmxvY2FsZSB9O1xucHJvdG90eXBlQWNjZXNzb3JzLmxvY2FsZS5zZXQgPSBmdW5jdGlvbiAobG9jYWxlKSB7XG4gIHRoaXMuX3ZtLiRzZXQodGhpcy5fdm0sICdsb2NhbGUnLCBsb2NhbGUpO1xufTtcblxucHJvdG90eXBlQWNjZXNzb3JzLmZhbGxiYWNrTG9jYWxlLmdldCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMuX3ZtLmZhbGxiYWNrTG9jYWxlIH07XG5wcm90b3R5cGVBY2Nlc3NvcnMuZmFsbGJhY2tMb2NhbGUuc2V0ID0gZnVuY3Rpb24gKGxvY2FsZSkge1xuICB0aGlzLl9sb2NhbGVDaGFpbkNhY2hlID0ge307XG4gIHRoaXMuX3ZtLiRzZXQodGhpcy5fdm0sICdmYWxsYmFja0xvY2FsZScsIGxvY2FsZSk7XG59O1xuXG5wcm90b3R5cGVBY2Nlc3NvcnMuZm9ybWF0RmFsbGJhY2tNZXNzYWdlcy5nZXQgPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLl9mb3JtYXRGYWxsYmFja01lc3NhZ2VzIH07XG5wcm90b3R5cGVBY2Nlc3NvcnMuZm9ybWF0RmFsbGJhY2tNZXNzYWdlcy5zZXQgPSBmdW5jdGlvbiAoZmFsbGJhY2spIHsgdGhpcy5fZm9ybWF0RmFsbGJhY2tNZXNzYWdlcyA9IGZhbGxiYWNrOyB9O1xuXG5wcm90b3R5cGVBY2Nlc3NvcnMubWlzc2luZy5nZXQgPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLl9taXNzaW5nIH07XG5wcm90b3R5cGVBY2Nlc3NvcnMubWlzc2luZy5zZXQgPSBmdW5jdGlvbiAoaGFuZGxlcikgeyB0aGlzLl9taXNzaW5nID0gaGFuZGxlcjsgfTtcblxucHJvdG90eXBlQWNjZXNzb3JzLmZvcm1hdHRlci5nZXQgPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLl9mb3JtYXR0ZXIgfTtcbnByb3RvdHlwZUFjY2Vzc29ycy5mb3JtYXR0ZXIuc2V0ID0gZnVuY3Rpb24gKGZvcm1hdHRlcikgeyB0aGlzLl9mb3JtYXR0ZXIgPSBmb3JtYXR0ZXI7IH07XG5cbnByb3RvdHlwZUFjY2Vzc29ycy5zaWxlbnRUcmFuc2xhdGlvbldhcm4uZ2V0ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5fc2lsZW50VHJhbnNsYXRpb25XYXJuIH07XG5wcm90b3R5cGVBY2Nlc3NvcnMuc2lsZW50VHJhbnNsYXRpb25XYXJuLnNldCA9IGZ1bmN0aW9uIChzaWxlbnQpIHsgdGhpcy5fc2lsZW50VHJhbnNsYXRpb25XYXJuID0gc2lsZW50OyB9O1xuXG5wcm90b3R5cGVBY2Nlc3NvcnMuc2lsZW50RmFsbGJhY2tXYXJuLmdldCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMuX3NpbGVudEZhbGxiYWNrV2FybiB9O1xucHJvdG90eXBlQWNjZXNzb3JzLnNpbGVudEZhbGxiYWNrV2Fybi5zZXQgPSBmdW5jdGlvbiAoc2lsZW50KSB7IHRoaXMuX3NpbGVudEZhbGxiYWNrV2FybiA9IHNpbGVudDsgfTtcblxucHJvdG90eXBlQWNjZXNzb3JzLnByZXNlcnZlRGlyZWN0aXZlQ29udGVudC5nZXQgPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLl9wcmVzZXJ2ZURpcmVjdGl2ZUNvbnRlbnQgfTtcbnByb3RvdHlwZUFjY2Vzc29ycy5wcmVzZXJ2ZURpcmVjdGl2ZUNvbnRlbnQuc2V0ID0gZnVuY3Rpb24gKHByZXNlcnZlKSB7IHRoaXMuX3ByZXNlcnZlRGlyZWN0aXZlQ29udGVudCA9IHByZXNlcnZlOyB9O1xuXG5wcm90b3R5cGVBY2Nlc3NvcnMud2Fybkh0bWxJbk1lc3NhZ2UuZ2V0ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5fd2Fybkh0bWxJbk1lc3NhZ2UgfTtcbnByb3RvdHlwZUFjY2Vzc29ycy53YXJuSHRtbEluTWVzc2FnZS5zZXQgPSBmdW5jdGlvbiAobGV2ZWwpIHtcbiAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuICB2YXIgb3JnTGV2ZWwgPSB0aGlzLl93YXJuSHRtbEluTWVzc2FnZTtcbiAgdGhpcy5fd2Fybkh0bWxJbk1lc3NhZ2UgPSBsZXZlbDtcbiAgaWYgKG9yZ0xldmVsICE9PSBsZXZlbCAmJiAobGV2ZWwgPT09ICd3YXJuJyB8fCBsZXZlbCA9PT0gJ2Vycm9yJykpIHtcbiAgICB2YXIgbWVzc2FnZXMgPSB0aGlzLl9nZXRNZXNzYWdlcygpO1xuICAgIE9iamVjdC5rZXlzKG1lc3NhZ2VzKS5mb3JFYWNoKGZ1bmN0aW9uIChsb2NhbGUpIHtcbiAgICAgIHRoaXMkMS5fY2hlY2tMb2NhbGVNZXNzYWdlKGxvY2FsZSwgdGhpcyQxLl93YXJuSHRtbEluTWVzc2FnZSwgbWVzc2FnZXNbbG9jYWxlXSk7XG4gICAgfSk7XG4gIH1cbn07XG5cbnByb3RvdHlwZUFjY2Vzc29ycy5wb3N0VHJhbnNsYXRpb24uZ2V0ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5fcG9zdFRyYW5zbGF0aW9uIH07XG5wcm90b3R5cGVBY2Nlc3NvcnMucG9zdFRyYW5zbGF0aW9uLnNldCA9IGZ1bmN0aW9uIChoYW5kbGVyKSB7IHRoaXMuX3Bvc3RUcmFuc2xhdGlvbiA9IGhhbmRsZXI7IH07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLl9nZXRNZXNzYWdlcyA9IGZ1bmN0aW9uIF9nZXRNZXNzYWdlcyAoKSB7IHJldHVybiB0aGlzLl92bS5tZXNzYWdlcyB9O1xuVnVlSTE4bi5wcm90b3R5cGUuX2dldERhdGVUaW1lRm9ybWF0cyA9IGZ1bmN0aW9uIF9nZXREYXRlVGltZUZvcm1hdHMgKCkgeyByZXR1cm4gdGhpcy5fdm0uZGF0ZVRpbWVGb3JtYXRzIH07XG5WdWVJMThuLnByb3RvdHlwZS5fZ2V0TnVtYmVyRm9ybWF0cyA9IGZ1bmN0aW9uIF9nZXROdW1iZXJGb3JtYXRzICgpIHsgcmV0dXJuIHRoaXMuX3ZtLm51bWJlckZvcm1hdHMgfTtcblxuVnVlSTE4bi5wcm90b3R5cGUuX3dhcm5EZWZhdWx0ID0gZnVuY3Rpb24gX3dhcm5EZWZhdWx0IChsb2NhbGUsIGtleSwgcmVzdWx0LCB2bSwgdmFsdWVzLCBpbnRlcnBvbGF0ZU1vZGUpIHtcbiAgaWYgKCFpc051bGwocmVzdWx0KSkgeyByZXR1cm4gcmVzdWx0IH1cbiAgaWYgKHRoaXMuX21pc3NpbmcpIHtcbiAgICB2YXIgbWlzc2luZ1JldCA9IHRoaXMuX21pc3NpbmcuYXBwbHkobnVsbCwgW2xvY2FsZSwga2V5LCB2bSwgdmFsdWVzXSk7XG4gICAgaWYgKGlzU3RyaW5nKG1pc3NpbmdSZXQpKSB7XG4gICAgICByZXR1cm4gbWlzc2luZ1JldFxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiAhdGhpcy5faXNTaWxlbnRUcmFuc2xhdGlvbldhcm4oa2V5KSkge1xuICAgICAgd2FybihcbiAgICAgICAgXCJDYW5ub3QgdHJhbnNsYXRlIHRoZSB2YWx1ZSBvZiBrZXlwYXRoICdcIiArIGtleSArIFwiJy4gXCIgK1xuICAgICAgICAnVXNlIHRoZSB2YWx1ZSBvZiBrZXlwYXRoIGFzIGRlZmF1bHQuJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBpZiAodGhpcy5fZm9ybWF0RmFsbGJhY2tNZXNzYWdlcykge1xuICAgIHZhciBwYXJzZWRBcmdzID0gcGFyc2VBcmdzLmFwcGx5KHZvaWQgMCwgdmFsdWVzKTtcbiAgICByZXR1cm4gdGhpcy5fcmVuZGVyKGtleSwgaW50ZXJwb2xhdGVNb2RlLCBwYXJzZWRBcmdzLnBhcmFtcywga2V5KVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBrZXlcbiAgfVxufTtcblxuVnVlSTE4bi5wcm90b3R5cGUuX2lzRmFsbGJhY2tSb290ID0gZnVuY3Rpb24gX2lzRmFsbGJhY2tSb290ICh2YWwpIHtcbiAgcmV0dXJuICF2YWwgJiYgIWlzTnVsbCh0aGlzLl9yb290KSAmJiB0aGlzLl9mYWxsYmFja1Jvb3Rcbn07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLl9pc1NpbGVudEZhbGxiYWNrV2FybiA9IGZ1bmN0aW9uIF9pc1NpbGVudEZhbGxiYWNrV2FybiAoa2V5KSB7XG4gIHJldHVybiB0aGlzLl9zaWxlbnRGYWxsYmFja1dhcm4gaW5zdGFuY2VvZiBSZWdFeHBcbiAgICA/IHRoaXMuX3NpbGVudEZhbGxiYWNrV2Fybi50ZXN0KGtleSlcbiAgICA6IHRoaXMuX3NpbGVudEZhbGxiYWNrV2FyblxufTtcblxuVnVlSTE4bi5wcm90b3R5cGUuX2lzU2lsZW50RmFsbGJhY2sgPSBmdW5jdGlvbiBfaXNTaWxlbnRGYWxsYmFjayAobG9jYWxlLCBrZXkpIHtcbiAgcmV0dXJuIHRoaXMuX2lzU2lsZW50RmFsbGJhY2tXYXJuKGtleSkgJiYgKHRoaXMuX2lzRmFsbGJhY2tSb290KCkgfHwgbG9jYWxlICE9PSB0aGlzLmZhbGxiYWNrTG9jYWxlKVxufTtcblxuVnVlSTE4bi5wcm90b3R5cGUuX2lzU2lsZW50VHJhbnNsYXRpb25XYXJuID0gZnVuY3Rpb24gX2lzU2lsZW50VHJhbnNsYXRpb25XYXJuIChrZXkpIHtcbiAgcmV0dXJuIHRoaXMuX3NpbGVudFRyYW5zbGF0aW9uV2FybiBpbnN0YW5jZW9mIFJlZ0V4cFxuICAgID8gdGhpcy5fc2lsZW50VHJhbnNsYXRpb25XYXJuLnRlc3Qoa2V5KVxuICAgIDogdGhpcy5fc2lsZW50VHJhbnNsYXRpb25XYXJuXG59O1xuXG5WdWVJMThuLnByb3RvdHlwZS5faW50ZXJwb2xhdGUgPSBmdW5jdGlvbiBfaW50ZXJwb2xhdGUgKFxuICBsb2NhbGUsXG4gIG1lc3NhZ2UsXG4gIGtleSxcbiAgaG9zdCxcbiAgaW50ZXJwb2xhdGVNb2RlLFxuICB2YWx1ZXMsXG4gIHZpc2l0ZWRMaW5rU3RhY2tcbikge1xuICBpZiAoIW1lc3NhZ2UpIHsgcmV0dXJuIG51bGwgfVxuXG4gIHZhciBwYXRoUmV0ID0gdGhpcy5fcGF0aC5nZXRQYXRoVmFsdWUobWVzc2FnZSwga2V5KTtcbiAgaWYgKEFycmF5LmlzQXJyYXkocGF0aFJldCkgfHwgaXNQbGFpbk9iamVjdChwYXRoUmV0KSkgeyByZXR1cm4gcGF0aFJldCB9XG5cbiAgdmFyIHJldDtcbiAgaWYgKGlzTnVsbChwYXRoUmV0KSkge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKGlzUGxhaW5PYmplY3QobWVzc2FnZSkpIHtcbiAgICAgIHJldCA9IG1lc3NhZ2Vba2V5XTtcbiAgICAgIGlmICghaXNTdHJpbmcocmV0KSkge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiAhdGhpcy5faXNTaWxlbnRUcmFuc2xhdGlvbldhcm4oa2V5KSAmJiAhdGhpcy5faXNTaWxlbnRGYWxsYmFjayhsb2NhbGUsIGtleSkpIHtcbiAgICAgICAgICB3YXJuKChcIlZhbHVlIG9mIGtleSAnXCIgKyBrZXkgKyBcIicgaXMgbm90IGEgc3RyaW5nIVwiKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoaXNTdHJpbmcocGF0aFJldCkpIHtcbiAgICAgIHJldCA9IHBhdGhSZXQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmICF0aGlzLl9pc1NpbGVudFRyYW5zbGF0aW9uV2FybihrZXkpICYmICF0aGlzLl9pc1NpbGVudEZhbGxiYWNrKGxvY2FsZSwga2V5KSkge1xuICAgICAgICB3YXJuKChcIlZhbHVlIG9mIGtleSAnXCIgKyBrZXkgKyBcIicgaXMgbm90IGEgc3RyaW5nIVwiKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgfVxuXG4gIC8vIENoZWNrIGZvciB0aGUgZXhpc3RlbmNlIG9mIGxpbmtzIHdpdGhpbiB0aGUgdHJhbnNsYXRlZCBzdHJpbmdcbiAgaWYgKHJldC5pbmRleE9mKCdAOicpID49IDAgfHwgcmV0LmluZGV4T2YoJ0AuJykgPj0gMCkge1xuICAgIHJldCA9IHRoaXMuX2xpbmsobG9jYWxlLCBtZXNzYWdlLCByZXQsIGhvc3QsICdyYXcnLCB2YWx1ZXMsIHZpc2l0ZWRMaW5rU3RhY2spO1xuICB9XG5cbiAgcmV0dXJuIHRoaXMuX3JlbmRlcihyZXQsIGludGVycG9sYXRlTW9kZSwgdmFsdWVzLCBrZXkpXG59O1xuXG5WdWVJMThuLnByb3RvdHlwZS5fbGluayA9IGZ1bmN0aW9uIF9saW5rIChcbiAgbG9jYWxlLFxuICBtZXNzYWdlLFxuICBzdHIsXG4gIGhvc3QsXG4gIGludGVycG9sYXRlTW9kZSxcbiAgdmFsdWVzLFxuICB2aXNpdGVkTGlua1N0YWNrXG4pIHtcbiAgdmFyIHJldCA9IHN0cjtcblxuICAvLyBNYXRjaCBhbGwgdGhlIGxpbmtzIHdpdGhpbiB0aGUgbG9jYWxcbiAgLy8gV2UgYXJlIGdvaW5nIHRvIHJlcGxhY2UgZWFjaCBvZlxuICAvLyB0aGVtIHdpdGggaXRzIHRyYW5zbGF0aW9uXG4gIHZhciBtYXRjaGVzID0gcmV0Lm1hdGNoKGxpbmtLZXlNYXRjaGVyKTtcbiAgZm9yICh2YXIgaWR4IGluIG1hdGNoZXMpIHtcbiAgICAvLyBpZSBjb21wYXRpYmxlOiBmaWx0ZXIgY3VzdG9tIGFycmF5XG4gICAgLy8gcHJvdG90eXBlIG1ldGhvZFxuICAgIGlmICghbWF0Y2hlcy5oYXNPd25Qcm9wZXJ0eShpZHgpKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICB2YXIgbGluayA9IG1hdGNoZXNbaWR4XTtcbiAgICB2YXIgbGlua0tleVByZWZpeE1hdGNoZXMgPSBsaW5rLm1hdGNoKGxpbmtLZXlQcmVmaXhNYXRjaGVyKTtcbiAgICB2YXIgbGlua1ByZWZpeCA9IGxpbmtLZXlQcmVmaXhNYXRjaGVzWzBdO1xuICAgICAgdmFyIGZvcm1hdHRlck5hbWUgPSBsaW5rS2V5UHJlZml4TWF0Y2hlc1sxXTtcblxuICAgIC8vIFJlbW92ZSB0aGUgbGVhZGluZyBAOiwgQC5jYXNlOiBhbmQgdGhlIGJyYWNrZXRzXG4gICAgdmFyIGxpbmtQbGFjZWhvbGRlciA9IGxpbmsucmVwbGFjZShsaW5rUHJlZml4LCAnJykucmVwbGFjZShicmFja2V0c01hdGNoZXIsICcnKTtcblxuICAgIGlmIChpbmNsdWRlcyh2aXNpdGVkTGlua1N0YWNrLCBsaW5rUGxhY2Vob2xkZXIpKSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICB3YXJuKChcIkNpcmN1bGFyIHJlZmVyZW5jZSBmb3VuZC4gXFxcIlwiICsgbGluayArIFwiXFxcIiBpcyBhbHJlYWR5IHZpc2l0ZWQgaW4gdGhlIGNoYWluIG9mIFwiICsgKHZpc2l0ZWRMaW5rU3RhY2sucmV2ZXJzZSgpLmpvaW4oJyA8LSAnKSkpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXRcbiAgICB9XG4gICAgdmlzaXRlZExpbmtTdGFjay5wdXNoKGxpbmtQbGFjZWhvbGRlcik7XG5cbiAgICAvLyBUcmFuc2xhdGUgdGhlIGxpbmtcbiAgICB2YXIgdHJhbnNsYXRlZCA9IHRoaXMuX2ludGVycG9sYXRlKFxuICAgICAgbG9jYWxlLCBtZXNzYWdlLCBsaW5rUGxhY2Vob2xkZXIsIGhvc3QsXG4gICAgICBpbnRlcnBvbGF0ZU1vZGUgPT09ICdyYXcnID8gJ3N0cmluZycgOiBpbnRlcnBvbGF0ZU1vZGUsXG4gICAgICBpbnRlcnBvbGF0ZU1vZGUgPT09ICdyYXcnID8gdW5kZWZpbmVkIDogdmFsdWVzLFxuICAgICAgdmlzaXRlZExpbmtTdGFja1xuICAgICk7XG5cbiAgICBpZiAodGhpcy5faXNGYWxsYmFja1Jvb3QodHJhbnNsYXRlZCkpIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmICF0aGlzLl9pc1NpbGVudFRyYW5zbGF0aW9uV2FybihsaW5rUGxhY2Vob2xkZXIpKSB7XG4gICAgICAgIHdhcm4oKFwiRmFsbCBiYWNrIHRvIHRyYW5zbGF0ZSB0aGUgbGluayBwbGFjZWhvbGRlciAnXCIgKyBsaW5rUGxhY2Vob2xkZXIgKyBcIicgd2l0aCByb290IGxvY2FsZS5cIikpO1xuICAgICAgfVxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICBpZiAoIXRoaXMuX3Jvb3QpIHsgdGhyb3cgRXJyb3IoJ3VuZXhwZWN0ZWQgZXJyb3InKSB9XG4gICAgICB2YXIgcm9vdCA9IHRoaXMuX3Jvb3QuJGkxOG47XG4gICAgICB0cmFuc2xhdGVkID0gcm9vdC5fdHJhbnNsYXRlKFxuICAgICAgICByb290Ll9nZXRNZXNzYWdlcygpLCByb290LmxvY2FsZSwgcm9vdC5mYWxsYmFja0xvY2FsZSxcbiAgICAgICAgbGlua1BsYWNlaG9sZGVyLCBob3N0LCBpbnRlcnBvbGF0ZU1vZGUsIHZhbHVlc1xuICAgICAgKTtcbiAgICB9XG4gICAgdHJhbnNsYXRlZCA9IHRoaXMuX3dhcm5EZWZhdWx0KFxuICAgICAgbG9jYWxlLCBsaW5rUGxhY2Vob2xkZXIsIHRyYW5zbGF0ZWQsIGhvc3QsXG4gICAgICBBcnJheS5pc0FycmF5KHZhbHVlcykgPyB2YWx1ZXMgOiBbdmFsdWVzXSxcbiAgICAgIGludGVycG9sYXRlTW9kZVxuICAgICk7XG5cbiAgICBpZiAodGhpcy5fbW9kaWZpZXJzLmhhc093blByb3BlcnR5KGZvcm1hdHRlck5hbWUpKSB7XG4gICAgICB0cmFuc2xhdGVkID0gdGhpcy5fbW9kaWZpZXJzW2Zvcm1hdHRlck5hbWVdKHRyYW5zbGF0ZWQpO1xuICAgIH0gZWxzZSBpZiAoZGVmYXVsdE1vZGlmaWVycy5oYXNPd25Qcm9wZXJ0eShmb3JtYXR0ZXJOYW1lKSkge1xuICAgICAgdHJhbnNsYXRlZCA9IGRlZmF1bHRNb2RpZmllcnNbZm9ybWF0dGVyTmFtZV0odHJhbnNsYXRlZCk7XG4gICAgfVxuXG4gICAgdmlzaXRlZExpbmtTdGFjay5wb3AoKTtcblxuICAgIC8vIFJlcGxhY2UgdGhlIGxpbmsgd2l0aCB0aGUgdHJhbnNsYXRlZFxuICAgIHJldCA9ICF0cmFuc2xhdGVkID8gcmV0IDogcmV0LnJlcGxhY2UobGluaywgdHJhbnNsYXRlZCk7XG4gIH1cblxuICByZXR1cm4gcmV0XG59O1xuXG5WdWVJMThuLnByb3RvdHlwZS5fcmVuZGVyID0gZnVuY3Rpb24gX3JlbmRlciAobWVzc2FnZSwgaW50ZXJwb2xhdGVNb2RlLCB2YWx1ZXMsIHBhdGgpIHtcbiAgdmFyIHJldCA9IHRoaXMuX2Zvcm1hdHRlci5pbnRlcnBvbGF0ZShtZXNzYWdlLCB2YWx1ZXMsIHBhdGgpO1xuXG4gIC8vIElmIHRoZSBjdXN0b20gZm9ybWF0dGVyIHJlZnVzZXMgdG8gd29yayAtIGFwcGx5IHRoZSBkZWZhdWx0IG9uZVxuICBpZiAoIXJldCkge1xuICAgIHJldCA9IGRlZmF1bHRGb3JtYXR0ZXIuaW50ZXJwb2xhdGUobWVzc2FnZSwgdmFsdWVzLCBwYXRoKTtcbiAgfVxuXG4gIC8vIGlmIGludGVycG9sYXRlTW9kZSBpcyAqKm5vdCoqICdzdHJpbmcnICgncm93JyksXG4gIC8vIHJldHVybiB0aGUgY29tcGlsZWQgZGF0YSAoZS5nLiBbJ2ZvbycsIFZOb2RlLCAnYmFyJ10pIHdpdGggZm9ybWF0dGVyXG4gIHJldHVybiBpbnRlcnBvbGF0ZU1vZGUgPT09ICdzdHJpbmcnICYmICFpc1N0cmluZyhyZXQpID8gcmV0LmpvaW4oJycpIDogcmV0XG59O1xuXG5WdWVJMThuLnByb3RvdHlwZS5fYXBwZW5kSXRlbVRvQ2hhaW4gPSBmdW5jdGlvbiBfYXBwZW5kSXRlbVRvQ2hhaW4gKGNoYWluLCBpdGVtLCBibG9ja3MpIHtcbiAgdmFyIGZvbGxvdyA9IGZhbHNlO1xuICBpZiAoIWluY2x1ZGVzKGNoYWluLCBpdGVtKSkge1xuICAgIGZvbGxvdyA9IHRydWU7XG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgIGZvbGxvdyA9IGl0ZW1baXRlbS5sZW5ndGggLSAxXSAhPT0gJyEnO1xuICAgICAgaXRlbSA9IGl0ZW0ucmVwbGFjZSgvIS9nLCAnJyk7XG4gICAgICBjaGFpbi5wdXNoKGl0ZW0pO1xuICAgICAgaWYgKGJsb2NrcyAmJiBibG9ja3NbaXRlbV0pIHtcbiAgICAgICAgZm9sbG93ID0gYmxvY2tzW2l0ZW1dO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gZm9sbG93XG59O1xuXG5WdWVJMThuLnByb3RvdHlwZS5fYXBwZW5kTG9jYWxlVG9DaGFpbiA9IGZ1bmN0aW9uIF9hcHBlbmRMb2NhbGVUb0NoYWluIChjaGFpbiwgbG9jYWxlLCBibG9ja3MpIHtcbiAgdmFyIGZvbGxvdztcbiAgdmFyIHRva2VucyA9IGxvY2FsZS5zcGxpdCgnLScpO1xuICBkbyB7XG4gICAgdmFyIGl0ZW0gPSB0b2tlbnMuam9pbignLScpO1xuICAgIGZvbGxvdyA9IHRoaXMuX2FwcGVuZEl0ZW1Ub0NoYWluKGNoYWluLCBpdGVtLCBibG9ja3MpO1xuICAgIHRva2Vucy5zcGxpY2UoLTEsIDEpO1xuICB9IHdoaWxlICh0b2tlbnMubGVuZ3RoICYmIChmb2xsb3cgPT09IHRydWUpKVxuICByZXR1cm4gZm9sbG93XG59O1xuXG5WdWVJMThuLnByb3RvdHlwZS5fYXBwZW5kQmxvY2tUb0NoYWluID0gZnVuY3Rpb24gX2FwcGVuZEJsb2NrVG9DaGFpbiAoY2hhaW4sIGJsb2NrLCBibG9ja3MpIHtcbiAgdmFyIGZvbGxvdyA9IHRydWU7XG4gIGZvciAodmFyIGkgPSAwOyAoaSA8IGJsb2NrLmxlbmd0aCkgJiYgKGlzQm9vbGVhbihmb2xsb3cpKTsgaSsrKSB7XG4gICAgdmFyIGxvY2FsZSA9IGJsb2NrW2ldO1xuICAgIGlmIChpc1N0cmluZyhsb2NhbGUpKSB7XG4gICAgICBmb2xsb3cgPSB0aGlzLl9hcHBlbmRMb2NhbGVUb0NoYWluKGNoYWluLCBsb2NhbGUsIGJsb2Nrcyk7XG4gICAgfVxuICB9XG4gIHJldHVybiBmb2xsb3dcbn07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLl9nZXRMb2NhbGVDaGFpbiA9IGZ1bmN0aW9uIF9nZXRMb2NhbGVDaGFpbiAoc3RhcnQsIGZhbGxiYWNrTG9jYWxlKSB7XG4gIGlmIChzdGFydCA9PT0gJycpIHsgcmV0dXJuIFtdIH1cblxuICBpZiAoIXRoaXMuX2xvY2FsZUNoYWluQ2FjaGUpIHtcbiAgICB0aGlzLl9sb2NhbGVDaGFpbkNhY2hlID0ge307XG4gIH1cblxuICB2YXIgY2hhaW4gPSB0aGlzLl9sb2NhbGVDaGFpbkNhY2hlW3N0YXJ0XTtcbiAgaWYgKCFjaGFpbikge1xuICAgIGlmICghZmFsbGJhY2tMb2NhbGUpIHtcbiAgICAgIGZhbGxiYWNrTG9jYWxlID0gdGhpcy5mYWxsYmFja0xvY2FsZTtcbiAgICB9XG4gICAgY2hhaW4gPSBbXTtcblxuICAgIC8vIGZpcnN0IGJsb2NrIGRlZmluZWQgYnkgc3RhcnRcbiAgICB2YXIgYmxvY2sgPSBbc3RhcnRdO1xuXG4gICAgLy8gd2hpbGUgYW55IGludGVydmVuaW5nIGJsb2NrIGZvdW5kXG4gICAgd2hpbGUgKGlzQXJyYXkoYmxvY2spKSB7XG4gICAgICBibG9jayA9IHRoaXMuX2FwcGVuZEJsb2NrVG9DaGFpbihcbiAgICAgICAgY2hhaW4sXG4gICAgICAgIGJsb2NrLFxuICAgICAgICBmYWxsYmFja0xvY2FsZVxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBsYXN0IGJsb2NrIGRlZmluZWQgYnkgZGVmYXVsdFxuICAgIHZhciBkZWZhdWx0cztcbiAgICBpZiAoaXNBcnJheShmYWxsYmFja0xvY2FsZSkpIHtcbiAgICAgIGRlZmF1bHRzID0gZmFsbGJhY2tMb2NhbGU7XG4gICAgfSBlbHNlIGlmIChpc09iamVjdChmYWxsYmFja0xvY2FsZSkpIHtcbiAgICAgIC8qICRGbG93Rml4TWUgKi9cbiAgICAgIGlmIChmYWxsYmFja0xvY2FsZVsnZGVmYXVsdCddKSB7XG4gICAgICAgIGRlZmF1bHRzID0gZmFsbGJhY2tMb2NhbGVbJ2RlZmF1bHQnXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlZmF1bHRzID0gbnVsbDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZGVmYXVsdHMgPSBmYWxsYmFja0xvY2FsZTtcbiAgICB9XG5cbiAgICAvLyBjb252ZXJ0IGRlZmF1bHRzIHRvIGFycmF5XG4gICAgaWYgKGlzU3RyaW5nKGRlZmF1bHRzKSkge1xuICAgICAgYmxvY2sgPSBbZGVmYXVsdHNdO1xuICAgIH0gZWxzZSB7XG4gICAgICBibG9jayA9IGRlZmF1bHRzO1xuICAgIH1cbiAgICBpZiAoYmxvY2spIHtcbiAgICAgIHRoaXMuX2FwcGVuZEJsb2NrVG9DaGFpbihcbiAgICAgICAgY2hhaW4sXG4gICAgICAgIGJsb2NrLFxuICAgICAgICBudWxsXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLl9sb2NhbGVDaGFpbkNhY2hlW3N0YXJ0XSA9IGNoYWluO1xuICB9XG4gIHJldHVybiBjaGFpblxufTtcblxuVnVlSTE4bi5wcm90b3R5cGUuX3RyYW5zbGF0ZSA9IGZ1bmN0aW9uIF90cmFuc2xhdGUgKFxuICBtZXNzYWdlcyxcbiAgbG9jYWxlLFxuICBmYWxsYmFjayxcbiAga2V5LFxuICBob3N0LFxuICBpbnRlcnBvbGF0ZU1vZGUsXG4gIGFyZ3Ncbikge1xuICB2YXIgY2hhaW4gPSB0aGlzLl9nZXRMb2NhbGVDaGFpbihsb2NhbGUsIGZhbGxiYWNrKTtcbiAgdmFyIHJlcztcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGFpbi5sZW5ndGg7IGkrKykge1xuICAgIHZhciBzdGVwID0gY2hhaW5baV07XG4gICAgcmVzID1cbiAgICAgIHRoaXMuX2ludGVycG9sYXRlKHN0ZXAsIG1lc3NhZ2VzW3N0ZXBdLCBrZXksIGhvc3QsIGludGVycG9sYXRlTW9kZSwgYXJncywgW2tleV0pO1xuICAgIGlmICghaXNOdWxsKHJlcykpIHtcbiAgICAgIGlmIChzdGVwICE9PSBsb2NhbGUgJiYgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiAhdGhpcy5faXNTaWxlbnRUcmFuc2xhdGlvbldhcm4oa2V5KSAmJiAhdGhpcy5faXNTaWxlbnRGYWxsYmFja1dhcm4oa2V5KSkge1xuICAgICAgICB3YXJuKChcIkZhbGwgYmFjayB0byB0cmFuc2xhdGUgdGhlIGtleXBhdGggJ1wiICsga2V5ICsgXCInIHdpdGggJ1wiICsgc3RlcCArIFwiJyBsb2NhbGUuXCIpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXNcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGxcbn07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLl90ID0gZnVuY3Rpb24gX3QgKGtleSwgX2xvY2FsZSwgbWVzc2FnZXMsIGhvc3QpIHtcbiAgICB2YXIgcmVmO1xuXG4gICAgdmFyIHZhbHVlcyA9IFtdLCBsZW4gPSBhcmd1bWVudHMubGVuZ3RoIC0gNDtcbiAgICB3aGlsZSAoIGxlbi0tID4gMCApIHZhbHVlc1sgbGVuIF0gPSBhcmd1bWVudHNbIGxlbiArIDQgXTtcbiAgaWYgKCFrZXkpIHsgcmV0dXJuICcnIH1cblxuICB2YXIgcGFyc2VkQXJncyA9IHBhcnNlQXJncy5hcHBseSh2b2lkIDAsIHZhbHVlcyk7XG4gIHZhciBsb2NhbGUgPSBwYXJzZWRBcmdzLmxvY2FsZSB8fCBfbG9jYWxlO1xuXG4gIHZhciByZXQgPSB0aGlzLl90cmFuc2xhdGUoXG4gICAgbWVzc2FnZXMsIGxvY2FsZSwgdGhpcy5mYWxsYmFja0xvY2FsZSwga2V5LFxuICAgIGhvc3QsICdzdHJpbmcnLCBwYXJzZWRBcmdzLnBhcmFtc1xuICApO1xuICBpZiAodGhpcy5faXNGYWxsYmFja1Jvb3QocmV0KSkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmICF0aGlzLl9pc1NpbGVudFRyYW5zbGF0aW9uV2FybihrZXkpICYmICF0aGlzLl9pc1NpbGVudEZhbGxiYWNrV2FybihrZXkpKSB7XG4gICAgICB3YXJuKChcIkZhbGwgYmFjayB0byB0cmFuc2xhdGUgdGhlIGtleXBhdGggJ1wiICsga2V5ICsgXCInIHdpdGggcm9vdCBsb2NhbGUuXCIpKTtcbiAgICB9XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKCF0aGlzLl9yb290KSB7IHRocm93IEVycm9yKCd1bmV4cGVjdGVkIGVycm9yJykgfVxuICAgIHJldHVybiAocmVmID0gdGhpcy5fcm9vdCkuJHQuYXBwbHkocmVmLCBbIGtleSBdLmNvbmNhdCggdmFsdWVzICkpXG4gIH0gZWxzZSB7XG4gICAgcmV0ID0gdGhpcy5fd2FybkRlZmF1bHQobG9jYWxlLCBrZXksIHJldCwgaG9zdCwgdmFsdWVzLCAnc3RyaW5nJyk7XG4gICAgaWYgKHRoaXMuX3Bvc3RUcmFuc2xhdGlvbiAmJiByZXQgIT09IG51bGwgJiYgcmV0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldCA9IHRoaXMuX3Bvc3RUcmFuc2xhdGlvbihyZXQsIGtleSk7XG4gICAgfVxuICAgIHJldHVybiByZXRcbiAgfVxufTtcblxuVnVlSTE4bi5wcm90b3R5cGUudCA9IGZ1bmN0aW9uIHQgKGtleSkge1xuICAgIHZhciByZWY7XG5cbiAgICB2YXIgdmFsdWVzID0gW10sIGxlbiA9IGFyZ3VtZW50cy5sZW5ndGggLSAxO1xuICAgIHdoaWxlICggbGVuLS0gPiAwICkgdmFsdWVzWyBsZW4gXSA9IGFyZ3VtZW50c1sgbGVuICsgMSBdO1xuICByZXR1cm4gKHJlZiA9IHRoaXMpLl90LmFwcGx5KHJlZiwgWyBrZXksIHRoaXMubG9jYWxlLCB0aGlzLl9nZXRNZXNzYWdlcygpLCBudWxsIF0uY29uY2F0KCB2YWx1ZXMgKSlcbn07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLl9pID0gZnVuY3Rpb24gX2kgKGtleSwgbG9jYWxlLCBtZXNzYWdlcywgaG9zdCwgdmFsdWVzKSB7XG4gIHZhciByZXQgPVxuICAgIHRoaXMuX3RyYW5zbGF0ZShtZXNzYWdlcywgbG9jYWxlLCB0aGlzLmZhbGxiYWNrTG9jYWxlLCBrZXksIGhvc3QsICdyYXcnLCB2YWx1ZXMpO1xuICBpZiAodGhpcy5faXNGYWxsYmFja1Jvb3QocmV0KSkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmICF0aGlzLl9pc1NpbGVudFRyYW5zbGF0aW9uV2FybihrZXkpKSB7XG4gICAgICB3YXJuKChcIkZhbGwgYmFjayB0byBpbnRlcnBvbGF0ZSB0aGUga2V5cGF0aCAnXCIgKyBrZXkgKyBcIicgd2l0aCByb290IGxvY2FsZS5cIikpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuX3Jvb3QpIHsgdGhyb3cgRXJyb3IoJ3VuZXhwZWN0ZWQgZXJyb3InKSB9XG4gICAgcmV0dXJuIHRoaXMuX3Jvb3QuJGkxOG4uaShrZXksIGxvY2FsZSwgdmFsdWVzKVxuICB9IGVsc2Uge1xuICAgIHJldHVybiB0aGlzLl93YXJuRGVmYXVsdChsb2NhbGUsIGtleSwgcmV0LCBob3N0LCBbdmFsdWVzXSwgJ3JhdycpXG4gIH1cbn07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLmkgPSBmdW5jdGlvbiBpIChrZXksIGxvY2FsZSwgdmFsdWVzKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoIWtleSkgeyByZXR1cm4gJycgfVxuXG4gIGlmICghaXNTdHJpbmcobG9jYWxlKSkge1xuICAgIGxvY2FsZSA9IHRoaXMubG9jYWxlO1xuICB9XG5cbiAgcmV0dXJuIHRoaXMuX2koa2V5LCBsb2NhbGUsIHRoaXMuX2dldE1lc3NhZ2VzKCksIG51bGwsIHZhbHVlcylcbn07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLl90YyA9IGZ1bmN0aW9uIF90YyAoXG4gIGtleSxcbiAgX2xvY2FsZSxcbiAgbWVzc2FnZXMsXG4gIGhvc3QsXG4gIGNob2ljZVxuKSB7XG4gICAgdmFyIHJlZjtcblxuICAgIHZhciB2YWx1ZXMgPSBbXSwgbGVuID0gYXJndW1lbnRzLmxlbmd0aCAtIDU7XG4gICAgd2hpbGUgKCBsZW4tLSA+IDAgKSB2YWx1ZXNbIGxlbiBdID0gYXJndW1lbnRzWyBsZW4gKyA1IF07XG4gIGlmICgha2V5KSB7IHJldHVybiAnJyB9XG4gIGlmIChjaG9pY2UgPT09IHVuZGVmaW5lZCkge1xuICAgIGNob2ljZSA9IDE7XG4gIH1cblxuICB2YXIgcHJlZGVmaW5lZCA9IHsgJ2NvdW50JzogY2hvaWNlLCAnbic6IGNob2ljZSB9O1xuICB2YXIgcGFyc2VkQXJncyA9IHBhcnNlQXJncy5hcHBseSh2b2lkIDAsIHZhbHVlcyk7XG4gIHBhcnNlZEFyZ3MucGFyYW1zID0gT2JqZWN0LmFzc2lnbihwcmVkZWZpbmVkLCBwYXJzZWRBcmdzLnBhcmFtcyk7XG4gIHZhbHVlcyA9IHBhcnNlZEFyZ3MubG9jYWxlID09PSBudWxsID8gW3BhcnNlZEFyZ3MucGFyYW1zXSA6IFtwYXJzZWRBcmdzLmxvY2FsZSwgcGFyc2VkQXJncy5wYXJhbXNdO1xuICByZXR1cm4gdGhpcy5mZXRjaENob2ljZSgocmVmID0gdGhpcykuX3QuYXBwbHkocmVmLCBbIGtleSwgX2xvY2FsZSwgbWVzc2FnZXMsIGhvc3QgXS5jb25jYXQoIHZhbHVlcyApKSwgY2hvaWNlKVxufTtcblxuVnVlSTE4bi5wcm90b3R5cGUuZmV0Y2hDaG9pY2UgPSBmdW5jdGlvbiBmZXRjaENob2ljZSAobWVzc2FnZSwgY2hvaWNlKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoIW1lc3NhZ2UgJiYgIWlzU3RyaW5nKG1lc3NhZ2UpKSB7IHJldHVybiBudWxsIH1cbiAgdmFyIGNob2ljZXMgPSBtZXNzYWdlLnNwbGl0KCd8Jyk7XG5cbiAgY2hvaWNlID0gdGhpcy5nZXRDaG9pY2VJbmRleChjaG9pY2UsIGNob2ljZXMubGVuZ3RoKTtcbiAgaWYgKCFjaG9pY2VzW2Nob2ljZV0pIHsgcmV0dXJuIG1lc3NhZ2UgfVxuICByZXR1cm4gY2hvaWNlc1tjaG9pY2VdLnRyaW0oKVxufTtcblxuVnVlSTE4bi5wcm90b3R5cGUudGMgPSBmdW5jdGlvbiB0YyAoa2V5LCBjaG9pY2UpIHtcbiAgICB2YXIgcmVmO1xuXG4gICAgdmFyIHZhbHVlcyA9IFtdLCBsZW4gPSBhcmd1bWVudHMubGVuZ3RoIC0gMjtcbiAgICB3aGlsZSAoIGxlbi0tID4gMCApIHZhbHVlc1sgbGVuIF0gPSBhcmd1bWVudHNbIGxlbiArIDIgXTtcbiAgcmV0dXJuIChyZWYgPSB0aGlzKS5fdGMuYXBwbHkocmVmLCBbIGtleSwgdGhpcy5sb2NhbGUsIHRoaXMuX2dldE1lc3NhZ2VzKCksIG51bGwsIGNob2ljZSBdLmNvbmNhdCggdmFsdWVzICkpXG59O1xuXG5WdWVJMThuLnByb3RvdHlwZS5fdGUgPSBmdW5jdGlvbiBfdGUgKGtleSwgbG9jYWxlLCBtZXNzYWdlcykge1xuICAgIHZhciBhcmdzID0gW10sIGxlbiA9IGFyZ3VtZW50cy5sZW5ndGggLSAzO1xuICAgIHdoaWxlICggbGVuLS0gPiAwICkgYXJnc1sgbGVuIF0gPSBhcmd1bWVudHNbIGxlbiArIDMgXTtcblxuICB2YXIgX2xvY2FsZSA9IHBhcnNlQXJncy5hcHBseSh2b2lkIDAsIGFyZ3MpLmxvY2FsZSB8fCBsb2NhbGU7XG4gIHJldHVybiB0aGlzLl9leGlzdChtZXNzYWdlc1tfbG9jYWxlXSwga2V5KVxufTtcblxuVnVlSTE4bi5wcm90b3R5cGUudGUgPSBmdW5jdGlvbiB0ZSAoa2V5LCBsb2NhbGUpIHtcbiAgcmV0dXJuIHRoaXMuX3RlKGtleSwgdGhpcy5sb2NhbGUsIHRoaXMuX2dldE1lc3NhZ2VzKCksIGxvY2FsZSlcbn07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLmdldExvY2FsZU1lc3NhZ2UgPSBmdW5jdGlvbiBnZXRMb2NhbGVNZXNzYWdlIChsb2NhbGUpIHtcbiAgcmV0dXJuIGxvb3NlQ2xvbmUodGhpcy5fdm0ubWVzc2FnZXNbbG9jYWxlXSB8fCB7fSlcbn07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLnNldExvY2FsZU1lc3NhZ2UgPSBmdW5jdGlvbiBzZXRMb2NhbGVNZXNzYWdlIChsb2NhbGUsIG1lc3NhZ2UpIHtcbiAgaWYgKHRoaXMuX3dhcm5IdG1sSW5NZXNzYWdlID09PSAnd2FybicgfHwgdGhpcy5fd2Fybkh0bWxJbk1lc3NhZ2UgPT09ICdlcnJvcicpIHtcbiAgICB0aGlzLl9jaGVja0xvY2FsZU1lc3NhZ2UobG9jYWxlLCB0aGlzLl93YXJuSHRtbEluTWVzc2FnZSwgbWVzc2FnZSk7XG4gIH1cbiAgdGhpcy5fdm0uJHNldCh0aGlzLl92bS5tZXNzYWdlcywgbG9jYWxlLCBtZXNzYWdlKTtcbn07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLm1lcmdlTG9jYWxlTWVzc2FnZSA9IGZ1bmN0aW9uIG1lcmdlTG9jYWxlTWVzc2FnZSAobG9jYWxlLCBtZXNzYWdlKSB7XG4gIGlmICh0aGlzLl93YXJuSHRtbEluTWVzc2FnZSA9PT0gJ3dhcm4nIHx8IHRoaXMuX3dhcm5IdG1sSW5NZXNzYWdlID09PSAnZXJyb3InKSB7XG4gICAgdGhpcy5fY2hlY2tMb2NhbGVNZXNzYWdlKGxvY2FsZSwgdGhpcy5fd2Fybkh0bWxJbk1lc3NhZ2UsIG1lc3NhZ2UpO1xuICB9XG4gIHRoaXMuX3ZtLiRzZXQodGhpcy5fdm0ubWVzc2FnZXMsIGxvY2FsZSwgbWVyZ2Uoe30sIHRoaXMuX3ZtLm1lc3NhZ2VzW2xvY2FsZV0gfHwge30sIG1lc3NhZ2UpKTtcbn07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLmdldERhdGVUaW1lRm9ybWF0ID0gZnVuY3Rpb24gZ2V0RGF0ZVRpbWVGb3JtYXQgKGxvY2FsZSkge1xuICByZXR1cm4gbG9vc2VDbG9uZSh0aGlzLl92bS5kYXRlVGltZUZvcm1hdHNbbG9jYWxlXSB8fCB7fSlcbn07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLnNldERhdGVUaW1lRm9ybWF0ID0gZnVuY3Rpb24gc2V0RGF0ZVRpbWVGb3JtYXQgKGxvY2FsZSwgZm9ybWF0KSB7XG4gIHRoaXMuX3ZtLiRzZXQodGhpcy5fdm0uZGF0ZVRpbWVGb3JtYXRzLCBsb2NhbGUsIGZvcm1hdCk7XG4gIHRoaXMuX2NsZWFyRGF0ZVRpbWVGb3JtYXQobG9jYWxlLCBmb3JtYXQpO1xufTtcblxuVnVlSTE4bi5wcm90b3R5cGUubWVyZ2VEYXRlVGltZUZvcm1hdCA9IGZ1bmN0aW9uIG1lcmdlRGF0ZVRpbWVGb3JtYXQgKGxvY2FsZSwgZm9ybWF0KSB7XG4gIHRoaXMuX3ZtLiRzZXQodGhpcy5fdm0uZGF0ZVRpbWVGb3JtYXRzLCBsb2NhbGUsIG1lcmdlKHRoaXMuX3ZtLmRhdGVUaW1lRm9ybWF0c1tsb2NhbGVdIHx8IHt9LCBmb3JtYXQpKTtcbiAgdGhpcy5fY2xlYXJEYXRlVGltZUZvcm1hdChsb2NhbGUsIGZvcm1hdCk7XG59O1xuXG5WdWVJMThuLnByb3RvdHlwZS5fY2xlYXJEYXRlVGltZUZvcm1hdCA9IGZ1bmN0aW9uIF9jbGVhckRhdGVUaW1lRm9ybWF0IChsb2NhbGUsIGZvcm1hdCkge1xuICBmb3IgKHZhciBrZXkgaW4gZm9ybWF0KSB7XG4gICAgdmFyIGlkID0gbG9jYWxlICsgXCJfX1wiICsga2V5O1xuXG4gICAgaWYgKCF0aGlzLl9kYXRlVGltZUZvcm1hdHRlcnMuaGFzT3duUHJvcGVydHkoaWQpKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIGRlbGV0ZSB0aGlzLl9kYXRlVGltZUZvcm1hdHRlcnNbaWRdO1xuICB9XG59O1xuXG5WdWVJMThuLnByb3RvdHlwZS5fbG9jYWxpemVEYXRlVGltZSA9IGZ1bmN0aW9uIF9sb2NhbGl6ZURhdGVUaW1lIChcbiAgdmFsdWUsXG4gIGxvY2FsZSxcbiAgZmFsbGJhY2ssXG4gIGRhdGVUaW1lRm9ybWF0cyxcbiAga2V5XG4pIHtcbiAgdmFyIF9sb2NhbGUgPSBsb2NhbGU7XG4gIHZhciBmb3JtYXRzID0gZGF0ZVRpbWVGb3JtYXRzW19sb2NhbGVdO1xuXG4gIHZhciBjaGFpbiA9IHRoaXMuX2dldExvY2FsZUNoYWluKGxvY2FsZSwgZmFsbGJhY2spO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYWluLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGN1cnJlbnQgPSBfbG9jYWxlO1xuICAgIHZhciBzdGVwID0gY2hhaW5baV07XG4gICAgZm9ybWF0cyA9IGRhdGVUaW1lRm9ybWF0c1tzdGVwXTtcbiAgICBfbG9jYWxlID0gc3RlcDtcbiAgICAvLyBmYWxsYmFjayBsb2NhbGVcbiAgICBpZiAoaXNOdWxsKGZvcm1hdHMpIHx8IGlzTnVsbChmb3JtYXRzW2tleV0pKSB7XG4gICAgICBpZiAoc3RlcCAhPT0gbG9jYWxlICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgIXRoaXMuX2lzU2lsZW50VHJhbnNsYXRpb25XYXJuKGtleSkgJiYgIXRoaXMuX2lzU2lsZW50RmFsbGJhY2tXYXJuKGtleSkpIHtcbiAgICAgICAgd2FybigoXCJGYWxsIGJhY2sgdG8gJ1wiICsgc3RlcCArIFwiJyBkYXRldGltZSBmb3JtYXRzIGZyb20gJ1wiICsgY3VycmVudCArIFwiJyBkYXRldGltZSBmb3JtYXRzLlwiKSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGJyZWFrXG4gICAgfVxuICB9XG5cbiAgaWYgKGlzTnVsbChmb3JtYXRzKSB8fCBpc051bGwoZm9ybWF0c1trZXldKSkge1xuICAgIHJldHVybiBudWxsXG4gIH0gZWxzZSB7XG4gICAgdmFyIGZvcm1hdCA9IGZvcm1hdHNba2V5XTtcbiAgICB2YXIgaWQgPSBfbG9jYWxlICsgXCJfX1wiICsga2V5O1xuICAgIHZhciBmb3JtYXR0ZXIgPSB0aGlzLl9kYXRlVGltZUZvcm1hdHRlcnNbaWRdO1xuICAgIGlmICghZm9ybWF0dGVyKSB7XG4gICAgICBmb3JtYXR0ZXIgPSB0aGlzLl9kYXRlVGltZUZvcm1hdHRlcnNbaWRdID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoX2xvY2FsZSwgZm9ybWF0KTtcbiAgICB9XG4gICAgcmV0dXJuIGZvcm1hdHRlci5mb3JtYXQodmFsdWUpXG4gIH1cbn07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLl9kID0gZnVuY3Rpb24gX2QgKHZhbHVlLCBsb2NhbGUsIGtleSkge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgIVZ1ZUkxOG4uYXZhaWxhYmlsaXRpZXMuZGF0ZVRpbWVGb3JtYXQpIHtcbiAgICB3YXJuKCdDYW5ub3QgZm9ybWF0IGEgRGF0ZSB2YWx1ZSBkdWUgdG8gbm90IHN1cHBvcnRlZCBJbnRsLkRhdGVUaW1lRm9ybWF0LicpO1xuICAgIHJldHVybiAnJ1xuICB9XG5cbiAgaWYgKCFrZXkpIHtcbiAgICByZXR1cm4gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQobG9jYWxlKS5mb3JtYXQodmFsdWUpXG4gIH1cblxuICB2YXIgcmV0ID1cbiAgICB0aGlzLl9sb2NhbGl6ZURhdGVUaW1lKHZhbHVlLCBsb2NhbGUsIHRoaXMuZmFsbGJhY2tMb2NhbGUsIHRoaXMuX2dldERhdGVUaW1lRm9ybWF0cygpLCBrZXkpO1xuICBpZiAodGhpcy5faXNGYWxsYmFja1Jvb3QocmV0KSkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmICF0aGlzLl9pc1NpbGVudFRyYW5zbGF0aW9uV2FybihrZXkpICYmICF0aGlzLl9pc1NpbGVudEZhbGxiYWNrV2FybihrZXkpKSB7XG4gICAgICB3YXJuKChcIkZhbGwgYmFjayB0byBkYXRldGltZSBsb2NhbGl6YXRpb24gb2Ygcm9vdDoga2V5ICdcIiArIGtleSArIFwiJy5cIikpO1xuICAgIH1cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAoIXRoaXMuX3Jvb3QpIHsgdGhyb3cgRXJyb3IoJ3VuZXhwZWN0ZWQgZXJyb3InKSB9XG4gICAgcmV0dXJuIHRoaXMuX3Jvb3QuJGkxOG4uZCh2YWx1ZSwga2V5LCBsb2NhbGUpXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHJldCB8fCAnJ1xuICB9XG59O1xuXG5WdWVJMThuLnByb3RvdHlwZS5kID0gZnVuY3Rpb24gZCAodmFsdWUpIHtcbiAgICB2YXIgYXJncyA9IFtdLCBsZW4gPSBhcmd1bWVudHMubGVuZ3RoIC0gMTtcbiAgICB3aGlsZSAoIGxlbi0tID4gMCApIGFyZ3NbIGxlbiBdID0gYXJndW1lbnRzWyBsZW4gKyAxIF07XG5cbiAgdmFyIGxvY2FsZSA9IHRoaXMubG9jYWxlO1xuICB2YXIga2V5ID0gbnVsbDtcblxuICBpZiAoYXJncy5sZW5ndGggPT09IDEpIHtcbiAgICBpZiAoaXNTdHJpbmcoYXJnc1swXSkpIHtcbiAgICAgIGtleSA9IGFyZ3NbMF07XG4gICAgfSBlbHNlIGlmIChpc09iamVjdChhcmdzWzBdKSkge1xuICAgICAgaWYgKGFyZ3NbMF0ubG9jYWxlKSB7XG4gICAgICAgIGxvY2FsZSA9IGFyZ3NbMF0ubG9jYWxlO1xuICAgICAgfVxuICAgICAgaWYgKGFyZ3NbMF0ua2V5KSB7XG4gICAgICAgIGtleSA9IGFyZ3NbMF0ua2V5O1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIGlmIChhcmdzLmxlbmd0aCA9PT0gMikge1xuICAgIGlmIChpc1N0cmluZyhhcmdzWzBdKSkge1xuICAgICAga2V5ID0gYXJnc1swXTtcbiAgICB9XG4gICAgaWYgKGlzU3RyaW5nKGFyZ3NbMV0pKSB7XG4gICAgICBsb2NhbGUgPSBhcmdzWzFdO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0aGlzLl9kKHZhbHVlLCBsb2NhbGUsIGtleSlcbn07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLmdldE51bWJlckZvcm1hdCA9IGZ1bmN0aW9uIGdldE51bWJlckZvcm1hdCAobG9jYWxlKSB7XG4gIHJldHVybiBsb29zZUNsb25lKHRoaXMuX3ZtLm51bWJlckZvcm1hdHNbbG9jYWxlXSB8fCB7fSlcbn07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLnNldE51bWJlckZvcm1hdCA9IGZ1bmN0aW9uIHNldE51bWJlckZvcm1hdCAobG9jYWxlLCBmb3JtYXQpIHtcbiAgdGhpcy5fdm0uJHNldCh0aGlzLl92bS5udW1iZXJGb3JtYXRzLCBsb2NhbGUsIGZvcm1hdCk7XG4gIHRoaXMuX2NsZWFyTnVtYmVyRm9ybWF0KGxvY2FsZSwgZm9ybWF0KTtcbn07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLm1lcmdlTnVtYmVyRm9ybWF0ID0gZnVuY3Rpb24gbWVyZ2VOdW1iZXJGb3JtYXQgKGxvY2FsZSwgZm9ybWF0KSB7XG4gIHRoaXMuX3ZtLiRzZXQodGhpcy5fdm0ubnVtYmVyRm9ybWF0cywgbG9jYWxlLCBtZXJnZSh0aGlzLl92bS5udW1iZXJGb3JtYXRzW2xvY2FsZV0gfHwge30sIGZvcm1hdCkpO1xuICB0aGlzLl9jbGVhck51bWJlckZvcm1hdChsb2NhbGUsIGZvcm1hdCk7XG59O1xuXG5WdWVJMThuLnByb3RvdHlwZS5fY2xlYXJOdW1iZXJGb3JtYXQgPSBmdW5jdGlvbiBfY2xlYXJOdW1iZXJGb3JtYXQgKGxvY2FsZSwgZm9ybWF0KSB7XG4gIGZvciAodmFyIGtleSBpbiBmb3JtYXQpIHtcbiAgICB2YXIgaWQgPSBsb2NhbGUgKyBcIl9fXCIgKyBrZXk7XG5cbiAgICBpZiAoIXRoaXMuX251bWJlckZvcm1hdHRlcnMuaGFzT3duUHJvcGVydHkoaWQpKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIGRlbGV0ZSB0aGlzLl9udW1iZXJGb3JtYXR0ZXJzW2lkXTtcbiAgfVxufTtcblxuVnVlSTE4bi5wcm90b3R5cGUuX2dldE51bWJlckZvcm1hdHRlciA9IGZ1bmN0aW9uIF9nZXROdW1iZXJGb3JtYXR0ZXIgKFxuICB2YWx1ZSxcbiAgbG9jYWxlLFxuICBmYWxsYmFjayxcbiAgbnVtYmVyRm9ybWF0cyxcbiAga2V5LFxuICBvcHRpb25zXG4pIHtcbiAgdmFyIF9sb2NhbGUgPSBsb2NhbGU7XG4gIHZhciBmb3JtYXRzID0gbnVtYmVyRm9ybWF0c1tfbG9jYWxlXTtcblxuICB2YXIgY2hhaW4gPSB0aGlzLl9nZXRMb2NhbGVDaGFpbihsb2NhbGUsIGZhbGxiYWNrKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGFpbi5sZW5ndGg7IGkrKykge1xuICAgIHZhciBjdXJyZW50ID0gX2xvY2FsZTtcbiAgICB2YXIgc3RlcCA9IGNoYWluW2ldO1xuICAgIGZvcm1hdHMgPSBudW1iZXJGb3JtYXRzW3N0ZXBdO1xuICAgIF9sb2NhbGUgPSBzdGVwO1xuICAgIC8vIGZhbGxiYWNrIGxvY2FsZVxuICAgIGlmIChpc051bGwoZm9ybWF0cykgfHwgaXNOdWxsKGZvcm1hdHNba2V5XSkpIHtcbiAgICAgIGlmIChzdGVwICE9PSBsb2NhbGUgJiYgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiAhdGhpcy5faXNTaWxlbnRUcmFuc2xhdGlvbldhcm4oa2V5KSAmJiAhdGhpcy5faXNTaWxlbnRGYWxsYmFja1dhcm4oa2V5KSkge1xuICAgICAgICB3YXJuKChcIkZhbGwgYmFjayB0byAnXCIgKyBzdGVwICsgXCInIG51bWJlciBmb3JtYXRzIGZyb20gJ1wiICsgY3VycmVudCArIFwiJyBudW1iZXIgZm9ybWF0cy5cIikpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBicmVha1xuICAgIH1cbiAgfVxuXG4gIGlmIChpc051bGwoZm9ybWF0cykgfHwgaXNOdWxsKGZvcm1hdHNba2V5XSkpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9IGVsc2Uge1xuICAgIHZhciBmb3JtYXQgPSBmb3JtYXRzW2tleV07XG5cbiAgICB2YXIgZm9ybWF0dGVyO1xuICAgIGlmIChvcHRpb25zKSB7XG4gICAgICAvLyBJZiBvcHRpb25zIHNwZWNpZmllZCAtIGNyZWF0ZSBvbmUgdGltZSBudW1iZXIgZm9ybWF0dGVyXG4gICAgICBmb3JtYXR0ZXIgPSBuZXcgSW50bC5OdW1iZXJGb3JtYXQoX2xvY2FsZSwgT2JqZWN0LmFzc2lnbih7fSwgZm9ybWF0LCBvcHRpb25zKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBpZCA9IF9sb2NhbGUgKyBcIl9fXCIgKyBrZXk7XG4gICAgICBmb3JtYXR0ZXIgPSB0aGlzLl9udW1iZXJGb3JtYXR0ZXJzW2lkXTtcbiAgICAgIGlmICghZm9ybWF0dGVyKSB7XG4gICAgICAgIGZvcm1hdHRlciA9IHRoaXMuX251bWJlckZvcm1hdHRlcnNbaWRdID0gbmV3IEludGwuTnVtYmVyRm9ybWF0KF9sb2NhbGUsIGZvcm1hdCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmb3JtYXR0ZXJcbiAgfVxufTtcblxuVnVlSTE4bi5wcm90b3R5cGUuX24gPSBmdW5jdGlvbiBfbiAodmFsdWUsIGxvY2FsZSwga2V5LCBvcHRpb25zKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoIVZ1ZUkxOG4uYXZhaWxhYmlsaXRpZXMubnVtYmVyRm9ybWF0KSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHdhcm4oJ0Nhbm5vdCBmb3JtYXQgYSBOdW1iZXIgdmFsdWUgZHVlIHRvIG5vdCBzdXBwb3J0ZWQgSW50bC5OdW1iZXJGb3JtYXQuJyk7XG4gICAgfVxuICAgIHJldHVybiAnJ1xuICB9XG5cbiAgaWYgKCFrZXkpIHtcbiAgICB2YXIgbmYgPSAhb3B0aW9ucyA/IG5ldyBJbnRsLk51bWJlckZvcm1hdChsb2NhbGUpIDogbmV3IEludGwuTnVtYmVyRm9ybWF0KGxvY2FsZSwgb3B0aW9ucyk7XG4gICAgcmV0dXJuIG5mLmZvcm1hdCh2YWx1ZSlcbiAgfVxuXG4gIHZhciBmb3JtYXR0ZXIgPSB0aGlzLl9nZXROdW1iZXJGb3JtYXR0ZXIodmFsdWUsIGxvY2FsZSwgdGhpcy5mYWxsYmFja0xvY2FsZSwgdGhpcy5fZ2V0TnVtYmVyRm9ybWF0cygpLCBrZXksIG9wdGlvbnMpO1xuICB2YXIgcmV0ID0gZm9ybWF0dGVyICYmIGZvcm1hdHRlci5mb3JtYXQodmFsdWUpO1xuICBpZiAodGhpcy5faXNGYWxsYmFja1Jvb3QocmV0KSkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmICF0aGlzLl9pc1NpbGVudFRyYW5zbGF0aW9uV2FybihrZXkpICYmICF0aGlzLl9pc1NpbGVudEZhbGxiYWNrV2FybihrZXkpKSB7XG4gICAgICB3YXJuKChcIkZhbGwgYmFjayB0byBudW1iZXIgbG9jYWxpemF0aW9uIG9mIHJvb3Q6IGtleSAnXCIgKyBrZXkgKyBcIicuXCIpKTtcbiAgICB9XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKCF0aGlzLl9yb290KSB7IHRocm93IEVycm9yKCd1bmV4cGVjdGVkIGVycm9yJykgfVxuICAgIHJldHVybiB0aGlzLl9yb290LiRpMThuLm4odmFsdWUsIE9iamVjdC5hc3NpZ24oe30sIHsga2V5OiBrZXksIGxvY2FsZTogbG9jYWxlIH0sIG9wdGlvbnMpKVxuICB9IGVsc2Uge1xuICAgIHJldHVybiByZXQgfHwgJydcbiAgfVxufTtcblxuVnVlSTE4bi5wcm90b3R5cGUubiA9IGZ1bmN0aW9uIG4gKHZhbHVlKSB7XG4gICAgdmFyIGFyZ3MgPSBbXSwgbGVuID0gYXJndW1lbnRzLmxlbmd0aCAtIDE7XG4gICAgd2hpbGUgKCBsZW4tLSA+IDAgKSBhcmdzWyBsZW4gXSA9IGFyZ3VtZW50c1sgbGVuICsgMSBdO1xuXG4gIHZhciBsb2NhbGUgPSB0aGlzLmxvY2FsZTtcbiAgdmFyIGtleSA9IG51bGw7XG4gIHZhciBvcHRpb25zID0gbnVsbDtcblxuICBpZiAoYXJncy5sZW5ndGggPT09IDEpIHtcbiAgICBpZiAoaXNTdHJpbmcoYXJnc1swXSkpIHtcbiAgICAgIGtleSA9IGFyZ3NbMF07XG4gICAgfSBlbHNlIGlmIChpc09iamVjdChhcmdzWzBdKSkge1xuICAgICAgaWYgKGFyZ3NbMF0ubG9jYWxlKSB7XG4gICAgICAgIGxvY2FsZSA9IGFyZ3NbMF0ubG9jYWxlO1xuICAgICAgfVxuICAgICAgaWYgKGFyZ3NbMF0ua2V5KSB7XG4gICAgICAgIGtleSA9IGFyZ3NbMF0ua2V5O1xuICAgICAgfVxuXG4gICAgICAvLyBGaWx0ZXIgb3V0IG51bWJlciBmb3JtYXQgb3B0aW9ucyBvbmx5XG4gICAgICBvcHRpb25zID0gT2JqZWN0LmtleXMoYXJnc1swXSkucmVkdWNlKGZ1bmN0aW9uIChhY2MsIGtleSkge1xuICAgICAgICAgIHZhciBvYmo7XG5cbiAgICAgICAgaWYgKGluY2x1ZGVzKG51bWJlckZvcm1hdEtleXMsIGtleSkpIHtcbiAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgYWNjLCAoIG9iaiA9IHt9LCBvYmpba2V5XSA9IGFyZ3NbMF1ba2V5XSwgb2JqICkpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgfSwgbnVsbCk7XG4gICAgfVxuICB9IGVsc2UgaWYgKGFyZ3MubGVuZ3RoID09PSAyKSB7XG4gICAgaWYgKGlzU3RyaW5nKGFyZ3NbMF0pKSB7XG4gICAgICBrZXkgPSBhcmdzWzBdO1xuICAgIH1cbiAgICBpZiAoaXNTdHJpbmcoYXJnc1sxXSkpIHtcbiAgICAgIGxvY2FsZSA9IGFyZ3NbMV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRoaXMuX24odmFsdWUsIGxvY2FsZSwga2V5LCBvcHRpb25zKVxufTtcblxuVnVlSTE4bi5wcm90b3R5cGUuX250cCA9IGZ1bmN0aW9uIF9udHAgKHZhbHVlLCBsb2NhbGUsIGtleSwgb3B0aW9ucykge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKCFWdWVJMThuLmF2YWlsYWJpbGl0aWVzLm51bWJlckZvcm1hdCkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICB3YXJuKCdDYW5ub3QgZm9ybWF0IHRvIHBhcnRzIGEgTnVtYmVyIHZhbHVlIGR1ZSB0byBub3Qgc3VwcG9ydGVkIEludGwuTnVtYmVyRm9ybWF0LicpO1xuICAgIH1cbiAgICByZXR1cm4gW11cbiAgfVxuXG4gIGlmICgha2V5KSB7XG4gICAgdmFyIG5mID0gIW9wdGlvbnMgPyBuZXcgSW50bC5OdW1iZXJGb3JtYXQobG9jYWxlKSA6IG5ldyBJbnRsLk51bWJlckZvcm1hdChsb2NhbGUsIG9wdGlvbnMpO1xuICAgIHJldHVybiBuZi5mb3JtYXRUb1BhcnRzKHZhbHVlKVxuICB9XG5cbiAgdmFyIGZvcm1hdHRlciA9IHRoaXMuX2dldE51bWJlckZvcm1hdHRlcih2YWx1ZSwgbG9jYWxlLCB0aGlzLmZhbGxiYWNrTG9jYWxlLCB0aGlzLl9nZXROdW1iZXJGb3JtYXRzKCksIGtleSwgb3B0aW9ucyk7XG4gIHZhciByZXQgPSBmb3JtYXR0ZXIgJiYgZm9ybWF0dGVyLmZvcm1hdFRvUGFydHModmFsdWUpO1xuICBpZiAodGhpcy5faXNGYWxsYmFja1Jvb3QocmV0KSkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmICF0aGlzLl9pc1NpbGVudFRyYW5zbGF0aW9uV2FybihrZXkpKSB7XG4gICAgICB3YXJuKChcIkZhbGwgYmFjayB0byBmb3JtYXQgbnVtYmVyIHRvIHBhcnRzIG9mIHJvb3Q6IGtleSAnXCIgKyBrZXkgKyBcIicgLlwiKSk7XG4gICAgfVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmICghdGhpcy5fcm9vdCkgeyB0aHJvdyBFcnJvcigndW5leHBlY3RlZCBlcnJvcicpIH1cbiAgICByZXR1cm4gdGhpcy5fcm9vdC4kaTE4bi5fbnRwKHZhbHVlLCBsb2NhbGUsIGtleSwgb3B0aW9ucylcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gcmV0IHx8IFtdXG4gIH1cbn07XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKCBWdWVJMThuLnByb3RvdHlwZSwgcHJvdG90eXBlQWNjZXNzb3JzICk7XG5cbnZhciBhdmFpbGFiaWxpdGllcztcbi8vICRGbG93Rml4TWVcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShWdWVJMThuLCAnYXZhaWxhYmlsaXRpZXMnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0ICgpIHtcbiAgICBpZiAoIWF2YWlsYWJpbGl0aWVzKSB7XG4gICAgICB2YXIgaW50bERlZmluZWQgPSB0eXBlb2YgSW50bCAhPT0gJ3VuZGVmaW5lZCc7XG4gICAgICBhdmFpbGFiaWxpdGllcyA9IHtcbiAgICAgICAgZGF0ZVRpbWVGb3JtYXQ6IGludGxEZWZpbmVkICYmIHR5cGVvZiBJbnRsLkRhdGVUaW1lRm9ybWF0ICE9PSAndW5kZWZpbmVkJyxcbiAgICAgICAgbnVtYmVyRm9ybWF0OiBpbnRsRGVmaW5lZCAmJiB0eXBlb2YgSW50bC5OdW1iZXJGb3JtYXQgIT09ICd1bmRlZmluZWQnXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBhdmFpbGFiaWxpdGllc1xuICB9XG59KTtcblxuVnVlSTE4bi5pbnN0YWxsID0gaW5zdGFsbDtcblZ1ZUkxOG4udmVyc2lvbiA9ICc4LjE4LjInO1xuXG5leHBvcnQgZGVmYXVsdCBWdWVJMThuO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///188\n")},function(module,exports,__webpack_require__){eval("// style-loader: Adds some css to the DOM by adding a \");\n }\n }, {\n key: \"initTheme\",\n value: function initTheme() {\n var _this3 = this;\n\n // Only watch for reactivity on client side\n if (typeof document === 'undefined') return; // If we get here somehow, ensure\n // existing instance is removed\n\n if (this.vueInstance) this.vueInstance.$destroy(); // Use Vue instance to track reactivity\n // TODO: Update to use RFC if merged\n // https://github.com/vuejs/rfcs/blob/advanced-reactivity-api/active-rfcs/0000-advanced-reactivity-api.md\n\n this.vueInstance = new vue_runtime_esm[\"a\" /* default */]({\n data: {\n themes: this.themes\n },\n watch: {\n themes: {\n immediate: true,\n deep: true,\n handler: function handler() {\n return _this3.applyTheme();\n }\n }\n }\n });\n }\n }, {\n key: \"css\",\n set: function set(val) {\n if (this.vueMeta) {\n if (this.isVueMeta23) {\n this.applyVueMeta23();\n }\n\n return;\n }\n\n this.checkOrCreateStyleElement() && (this.styleEl.innerHTML = val);\n }\n }, {\n key: \"dark\",\n set: function set(val) {\n var oldDark = this.isDark;\n this.isDark = val; // Only apply theme after dark\n // has already been set before\n\n oldDark != null && this.applyTheme();\n },\n get: function get() {\n return Boolean(this.isDark);\n }\n }, {\n key: \"currentTheme\",\n get: function get() {\n var target = this.dark ? 'dark' : 'light';\n return this.themes[target];\n }\n }, {\n key: \"generatedStyles\",\n get: function get() {\n var theme = this.parsedTheme;\n /* istanbul ignore next */\n\n var options = this.options || {};\n var css;\n\n if (options.themeCache != null) {\n css = options.themeCache.get(theme);\n /* istanbul ignore if */\n\n if (css != null) return css;\n }\n\n css = genStyles(theme, options.customProperties);\n\n if (options.minifyTheme != null) {\n css = options.minifyTheme(css);\n }\n\n if (options.themeCache != null) {\n options.themeCache.set(theme, css);\n }\n\n return css;\n }\n }, {\n key: \"parsedTheme\",\n get: function get() {\n return parse(this.currentTheme || {}, undefined, Object(helpers[\"o\" /* getNestedValue */])(this.options, ['variations'], true));\n } // Is using v2.3 of vue-meta\n // https://github.com/nuxt/vue-meta/releases/tag/v2.3.0\n\n }, {\n key: \"isVueMeta23\",\n get: function get() {\n return typeof this.vueMeta.addApp === 'function';\n }\n }]);\n\n return Theme;\n}(service_Service);\ntheme_Theme.property = 'theme';\n// CONCATENATED MODULE: ./node_modules/vuetify/lib/framework.js\n\n\n\n\n // Services\n\n\n\nvar framework_Vuetify = /*#__PURE__*/function () {\n function Vuetify() {\n var userPreset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n Object(classCallCheck[\"a\" /* default */])(this, Vuetify);\n\n this.framework = {};\n this.installed = [];\n this.preset = {};\n this.userPreset = {};\n this.userPreset = userPreset;\n this.use(presets_Presets);\n this.use(application_Application);\n this.use(breakpoint_Breakpoint);\n this.use(goto_Goto);\n this.use(icons_Icons);\n this.use(lang_Lang);\n this.use(theme_Theme);\n } // Called on the new vuetify instance\n // bootstrap in install beforeCreate\n // Exposes ssrContext if available\n\n\n Object(createClass[\"a\" /* default */])(Vuetify, [{\n key: \"init\",\n value: function init(root, ssrContext) {\n var _this = this;\n\n this.installed.forEach(function (property) {\n var service = _this.framework[property];\n service.framework = _this.framework;\n service.init(root, ssrContext);\n }); // rtl is not installed and\n // will never be called by\n // the init process\n\n this.framework.rtl = Boolean(this.preset.rtl);\n } // Instantiate a VuetifyService\n\n }, {\n key: \"use\",\n value: function use(Service) {\n var property = Service.property;\n if (this.installed.includes(property)) return; // TODO maybe a specific type for arg 2?\n\n this.framework[property] = new Service(this.preset, this);\n this.installed.push(property);\n }\n }]);\n\n return Vuetify;\n}();\n\n\nframework_Vuetify.install = install;\nframework_Vuetify.installed = false;\nframework_Vuetify.version = \"2.3.3\";\nframework_Vuetify.config = {\n silent: false\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vc3JjL2luc3RhbGwudHM/Nzc0NCIsIndlYnBhY2s6Ly8vLi4vLi4vc3JjL2xvY2FsZS9lbi50cz80OTYyIiwid2VicGFjazovLy8uLi8uLi8uLi9zcmMvcHJlc2V0cy9kZWZhdWx0L2luZGV4LnRzP2ZiZjUiLCJ3ZWJwYWNrOi8vLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9zZXJ2aWNlL2luZGV4LnRzP2UyYjEiLCJ3ZWJwYWNrOi8vLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9wcmVzZXRzL2luZGV4LnRzP2Y5OGYiLCJ3ZWJwYWNrOi8vLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9hcHBsaWNhdGlvbi9pbmRleC50cz9hMmJkIiwid2VicGFjazovLy8uLi8uLi8uLi9zcmMvc2VydmljZXMvYnJlYWtwb2ludC9pbmRleC50cz80YTRkIiwid2VicGFjazovLy8uLi8uLi8uLi9zcmMvc2VydmljZXMvZ290by9lYXNpbmctcGF0dGVybnMudHM/MDQ4MiIsIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2dvdG8vdXRpbC50cz85NDNiIiwid2VicGFjazovLy8uLi8uLi8uLi9zcmMvc2VydmljZXMvZ290by9pbmRleC50cz8xZDBkIiwid2VicGFjazovLy8uLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvaWNvbnMvcHJlc2V0cy9tZGktc3ZnLnRzP2UwNjMiLCJ3ZWJwYWNrOi8vLy4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9pY29ucy9wcmVzZXRzL21kLnRzPzJkYjgiLCJ3ZWJwYWNrOi8vLy4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9pY29ucy9wcmVzZXRzL21kaS50cz81MDVmIiwid2VicGFjazovLy8uLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvaWNvbnMvcHJlc2V0cy9mYS50cz82MDJkIiwid2VicGFjazovLy8uLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvaWNvbnMvcHJlc2V0cy9mYTQudHM/MTIzYSIsIndlYnBhY2s6Ly8vLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2ljb25zL3ByZXNldHMvZmEtc3ZnLnRzP2U2OGUiLCJ3ZWJwYWNrOi8vLy4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9pY29ucy9wcmVzZXRzL2luZGV4LnRzPzFjYTgiLCJ3ZWJwYWNrOi8vLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9pY29ucy9pbmRleC50cz84YTA0Iiwid2VicGFjazovLy8uLi8uLi8uLi9zcmMvc2VydmljZXMvbGFuZy9pbmRleC50cz9hNWM5Iiwid2VicGFjazovLy8uLi8uLi8uLi9zcmMvdXRpbC9jb2xvci90cmFuc2Zvcm1DSUVMQUIudHM/Y2Y3OSIsIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3RoZW1lL3V0aWxzLnRzPzIyNWUiLCJ3ZWJwYWNrOi8vLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy90aGVtZS9pbmRleC50cz9jZWI2Iiwid2VicGFjazovLy8uLi9zcmMvZnJhbWV3b3JrLnRzP2JiYmQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBRUE7QUFFTSxzQkFBb0U7QUFBQSxNQUE1QixJQUE0Qix1RUFBcEUsRUFBb0U7QUFDeEUsTUFBSyxPQUFlLENBQXBCLFdBQWdDO0FBQy9CLFNBQWUsQ0FBZjs7QUFFRCxNQUFJLGtDQUFNLEtBQVYsS0FBb0I7QUFDbEIsMkNBQVksQ0FBWiwwSkFBWSxDQUFaO0FBQ0Q7O0FBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFKLGNBQW5CO0FBQ0EsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFKLGNBQW5COztBQUVBLE9BQUssSUFBTCxvQkFBK0I7QUFDN0IsUUFBTSxTQUFTLEdBQUcsVUFBVSxDQUE1QixJQUE0QixDQUE1QjtBQUVBLE9BQUcsQ0FBSDtBQUNEOztBQUVELEdBQUMsd0NBQTRDO0FBQzNDLG9CQUFnQjtBQUNkLFdBQUssSUFBTCxtQkFBOEI7QUFDNUIsWUFBTSxTQUFTLEdBQUcsVUFBVSxDQUE1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QSxhQUFTLFNBQVQ7QUFDQSxhQUFTLFdBQVQ7QUE1QndCLEcsQ0ErQjFCO0FBQ0E7QUFDQTs7Ozs7eUJBQ0ksSSxFQUFBLFUsRUFBZ0M7QUFBQTs7QUFDbEMsNkJBQXVCLGtCQUFRLEVBQUc7QUFDaEMsWUFBTSxPQUFPLEdBQUcsZ0JBQWhCLFFBQWdCLENBQWhCO0FBRUEsZUFBTyxDQUFQLFlBQW9CLE1BQXBCO0FBRUEsZUFBTyxDQUFQO0FBTmdDLE9BQ2xDLEVBRGtDLENBU2xDO0FBQ0E7QUFDQTs7QUFDQSwyQkFBcUIsT0FBTyxDQUFDLFlBQTdCLEdBQTRCLENBQTVCO0FBOUN3QixLLENBaUQxQjs7Ozt3QkFDRyxPLEVBQXlCO0FBQzFCLFVBQU0sUUFBUSxHQUFHLE9BQU8sQ0FBeEI7QUFFQSxVQUFJLHdCQUFKLFFBQUksQ0FBSixFQUgwQixRQUsxQjs7QUFDQSxpQ0FBMkIsWUFBWSxLQUFaLFFBQTNCLElBQTJCLENBQTNCO0FBQ0E7QUFDRDs7Ozs7OztBQXpETTtBQUVBO0FBRUE7QUFFQSwyQkFBUztBQUNkLFFBQU0sRUFBRTtBQURNLENBQVQiLCJmaWxlIjoiMTE4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE91clZ1ZSwgeyBWdWVDb25zdHJ1Y3RvciB9IGZyb20gJ3Z1ZSdcbmltcG9ydCB7IFZ1ZXRpZnlVc2VPcHRpb25zIH0gZnJvbSAndnVldGlmeS90eXBlcydcbmltcG9ydCB7IGNvbnNvbGVFcnJvciB9IGZyb20gJy4vdXRpbC9jb25zb2xlJ1xuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFsbCAoVnVlOiBWdWVDb25zdHJ1Y3RvciwgYXJnczogVnVldGlmeVVzZU9wdGlvbnMgPSB7fSkge1xuICBpZiAoKGluc3RhbGwgYXMgYW55KS5pbnN0YWxsZWQpIHJldHVyblxuICAoaW5zdGFsbCBhcyBhbnkpLmluc3RhbGxlZCA9IHRydWVcblxuICBpZiAoT3VyVnVlICE9PSBWdWUpIHtcbiAgICBjb25zb2xlRXJyb3IoJ011bHRpcGxlIGluc3RhbmNlcyBvZiBWdWUgZGV0ZWN0ZWRcXG5TZWUgaHR0cHM6Ly9naXRodWIuY29tL3Z1ZXRpZnlqcy92dWV0aWZ5L2lzc3Vlcy80MDY4XFxuXFxuSWYgeW91XFwncmUgc2VlaW5nIFwiJGF0dHJzIGlzIHJlYWRvbmx5XCIsIGl0XFwncyBjYXVzZWQgYnkgdGhpcycpXG4gIH1cblxuICBjb25zdCBjb21wb25lbnRzID0gYXJncy5jb21wb25lbnRzIHx8IHt9XG4gIGNvbnN0IGRpcmVjdGl2ZXMgPSBhcmdzLmRpcmVjdGl2ZXMgfHwge31cblxuICBmb3IgKGNvbnN0IG5hbWUgaW4gZGlyZWN0aXZlcykge1xuICAgIGNvbnN0IGRpcmVjdGl2ZSA9IGRpcmVjdGl2ZXNbbmFtZV1cblxuICAgIFZ1ZS5kaXJlY3RpdmUobmFtZSwgZGlyZWN0aXZlKVxuICB9XG5cbiAgKGZ1bmN0aW9uIHJlZ2lzdGVyQ29tcG9uZW50cyAoY29tcG9uZW50czogYW55KSB7XG4gICAgaWYgKGNvbXBvbmVudHMpIHtcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIGNvbXBvbmVudHMpIHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50ID0gY29tcG9uZW50c1trZXldXG4gICAgICAgIGlmIChjb21wb25lbnQgJiYgIXJlZ2lzdGVyQ29tcG9uZW50cyhjb21wb25lbnQuJF92dWV0aWZ5X3N1YmNvbXBvbmVudHMpKSB7XG4gICAgICAgICAgVnVlLmNvbXBvbmVudChrZXksIGNvbXBvbmVudCBhcyB0eXBlb2YgVnVlKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2VcbiAgfSkoY29tcG9uZW50cylcblxuICAvLyBVc2VkIHRvIGF2b2lkIG11bHRpcGxlIG1peGlucyBiZWluZyBzZXR1cFxuICAvLyB3aGVuIGluIGRldiBtb2RlIGFuZCBob3QgbW9kdWxlIHJlbG9hZFxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vdnVlanMvdnVlL2lzc3Vlcy81MDg5I2lzc3VlY29tbWVudC0yODQyNjAxMTFcbiAgaWYgKFZ1ZS4kX3Z1ZXRpZnlfaW5zdGFsbGVkKSByZXR1cm5cbiAgVnVlLiRfdnVldGlmeV9pbnN0YWxsZWQgPSB0cnVlXG5cbiAgVnVlLm1peGluKHtcbiAgICBiZWZvcmVDcmVhdGUgKCkge1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuJG9wdGlvbnMgYXMgYW55XG5cbiAgICAgIGlmIChvcHRpb25zLnZ1ZXRpZnkpIHtcbiAgICAgICAgb3B0aW9ucy52dWV0aWZ5LmluaXQodGhpcywgb3B0aW9ucy5zc3JDb250ZXh0KVxuICAgICAgICB0aGlzLiR2dWV0aWZ5ID0gVnVlLm9ic2VydmFibGUob3B0aW9ucy52dWV0aWZ5LmZyYW1ld29yaylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuJHZ1ZXRpZnkgPSAob3B0aW9ucy5wYXJlbnQgJiYgb3B0aW9ucy5wYXJlbnQuJHZ1ZXRpZnkpIHx8IHRoaXNcbiAgICAgIH1cbiAgICB9LFxuICB9KVxufVxuIiwiZXhwb3J0IGRlZmF1bHQge1xuICBiYWRnZTogJ0JhZGdlJyxcbiAgY2xvc2U6ICdDbG9zZScsXG4gIGRhdGFJdGVyYXRvcjoge1xuICAgIG5vUmVzdWx0c1RleHQ6ICdObyBtYXRjaGluZyByZWNvcmRzIGZvdW5kJyxcbiAgICBsb2FkaW5nVGV4dDogJ0xvYWRpbmcgaXRlbXMuLi4nLFxuICB9LFxuICBkYXRhVGFibGU6IHtcbiAgICBpdGVtc1BlclBhZ2VUZXh0OiAnUm93cyBwZXIgcGFnZTonLFxuICAgIGFyaWFMYWJlbDoge1xuICAgICAgc29ydERlc2NlbmRpbmc6ICdTb3J0ZWQgZGVzY2VuZGluZy4nLFxuICAgICAgc29ydEFzY2VuZGluZzogJ1NvcnRlZCBhc2NlbmRpbmcuJyxcbiAgICAgIHNvcnROb25lOiAnTm90IHNvcnRlZC4nLFxuICAgICAgYWN0aXZhdGVOb25lOiAnQWN0aXZhdGUgdG8gcmVtb3ZlIHNvcnRpbmcuJyxcbiAgICAgIGFjdGl2YXRlRGVzY2VuZGluZzogJ0FjdGl2YXRlIHRvIHNvcnQgZGVzY2VuZGluZy4nLFxuICAgICAgYWN0aXZhdGVBc2NlbmRpbmc6ICdBY3RpdmF0ZSB0byBzb3J0IGFzY2VuZGluZy4nLFxuICAgIH0sXG4gICAgc29ydEJ5OiAnU29ydCBieScsXG4gIH0sXG4gIGRhdGFGb290ZXI6IHtcbiAgICBpdGVtc1BlclBhZ2VUZXh0OiAnSXRlbXMgcGVyIHBhZ2U6JyxcbiAgICBpdGVtc1BlclBhZ2VBbGw6ICdBbGwnLFxuICAgIG5leHRQYWdlOiAnTmV4dCBwYWdlJyxcbiAgICBwcmV2UGFnZTogJ1ByZXZpb3VzIHBhZ2UnLFxuICAgIGZpcnN0UGFnZTogJ0ZpcnN0IHBhZ2UnLFxuICAgIGxhc3RQYWdlOiAnTGFzdCBwYWdlJyxcbiAgICBwYWdlVGV4dDogJ3swfS17MX0gb2YgezJ9JyxcbiAgfSxcbiAgZGF0ZVBpY2tlcjoge1xuICAgIGl0ZW1zU2VsZWN0ZWQ6ICd7MH0gc2VsZWN0ZWQnLFxuICAgIG5leHRNb250aEFyaWFMYWJlbDogJ05leHQgbW9udGgnLFxuICAgIG5leHRZZWFyQXJpYUxhYmVsOiAnTmV4dCB5ZWFyJyxcbiAgICBwcmV2TW9udGhBcmlhTGFiZWw6ICdQcmV2aW91cyBtb250aCcsXG4gICAgcHJldlllYXJBcmlhTGFiZWw6ICdQcmV2aW91cyB5ZWFyJyxcbiAgfSxcbiAgbm9EYXRhVGV4dDogJ05vIGRhdGEgYXZhaWxhYmxlJyxcbiAgY2Fyb3VzZWw6IHtcbiAgICBwcmV2OiAnUHJldmlvdXMgdmlzdWFsJyxcbiAgICBuZXh0OiAnTmV4dCB2aXN1YWwnLFxuICAgIGFyaWFMYWJlbDoge1xuICAgICAgZGVsaW1pdGVyOiAnQ2Fyb3VzZWwgc2xpZGUgezB9IG9mIHsxfScsXG4gICAgfSxcbiAgfSxcbiAgY2FsZW5kYXI6IHtcbiAgICBtb3JlRXZlbnRzOiAnezB9IG1vcmUnLFxuICB9LFxuICBmaWxlSW5wdXQ6IHtcbiAgICBjb3VudGVyOiAnezB9IGZpbGVzJyxcbiAgICBjb3VudGVyU2l6ZTogJ3swfSBmaWxlcyAoezF9IGluIHRvdGFsKScsXG4gIH0sXG4gIHRpbWVQaWNrZXI6IHtcbiAgICBhbTogJ0FNJyxcbiAgICBwbTogJ1BNJyxcbiAgfSxcbiAgcGFnaW5hdGlvbjoge1xuICAgIGFyaWFMYWJlbDoge1xuICAgICAgd3JhcHBlcjogJ1BhZ2luYXRpb24gTmF2aWdhdGlvbicsXG4gICAgICBuZXh0OiAnTmV4dCBwYWdlJyxcbiAgICAgIHByZXZpb3VzOiAnUHJldmlvdXMgcGFnZScsXG4gICAgICBwYWdlOiAnR290byBQYWdlIHswfScsXG4gICAgICBjdXJyZW50UGFnZTogJ0N1cnJlbnQgUGFnZSwgUGFnZSB7MH0nLFxuICAgIH0sXG4gIH0sXG59XG4iLCIvLyBTdHlsZXNcbmltcG9ydCAnLi4vLi4vc3R5bGVzL21haW4uc2FzcydcblxuLy8gTG9jYWxlXG5pbXBvcnQgeyBlbiB9IGZyb20gJy4uLy4uL2xvY2FsZSdcblxuLy8gSWNvbnNcbi8vIFRPRE86IEVuYWJsZSBmb3IgdjNcbi8vIGltcG9ydCBtZGkgZnJvbSAnLi4vLi4vc2VydmljZXMvaWNvbnMvcHJlc2V0cy9tZGknXG5cbi8vIFR5cGVzXG5pbXBvcnQgeyBWdWV0aWZ5UHJlc2V0IH0gZnJvbSAndnVldGlmeS90eXBlcy9zZXJ2aWNlcy9wcmVzZXRzJ1xuXG5leHBvcnQgY29uc3QgcHJlc2V0OiBWdWV0aWZ5UHJlc2V0ID0ge1xuICBicmVha3BvaW50OiB7XG4gICAgLy8gVE9ETzogdXBkYXRlIHRvIE1EMiBzcGVjIGluIHYzIC0gMTI4MFxuICAgIG1vYmlsZUJyZWFrcG9pbnQ6IDEyNjQsXG4gICAgc2Nyb2xsQmFyV2lkdGg6IDE2LFxuICAgIHRocmVzaG9sZHM6IHtcbiAgICAgIHhzOiA2MDAsXG4gICAgICBzbTogOTYwLFxuICAgICAgbWQ6IDEyODAsXG4gICAgICBsZzogMTkyMCxcbiAgICB9LFxuICB9LFxuICBpY29uczoge1xuICAgIC8vIFRPRE86IHJlbW92ZSB2M1xuICAgIGljb25mb250OiAnbWRpJyxcbiAgICB2YWx1ZXM6IHt9LFxuICB9LFxuICBsYW5nOiB7XG4gICAgY3VycmVudDogJ2VuJyxcbiAgICBsb2NhbGVzOiB7IGVuIH0sXG4gICAgLy8gRGVmYXVsdCB0cmFuc2xhdG9yIGV4aXN0cyBpbiBsYW5nIHNlcnZpY2VcbiAgICB0OiB1bmRlZmluZWQgYXMgYW55LFxuICB9LFxuICBydGw6IGZhbHNlLFxuICB0aGVtZToge1xuICAgIGRhcms6IGZhbHNlLFxuICAgIGRlZmF1bHQ6ICdsaWdodCcsXG4gICAgZGlzYWJsZTogZmFsc2UsXG4gICAgb3B0aW9uczoge1xuICAgICAgY3NwTm9uY2U6IHVuZGVmaW5lZCxcbiAgICAgIGN1c3RvbVByb3BlcnRpZXM6IHVuZGVmaW5lZCxcbiAgICAgIG1pbmlmeVRoZW1lOiB1bmRlZmluZWQsXG4gICAgICB0aGVtZUNhY2hlOiB1bmRlZmluZWQsXG4gICAgICB2YXJpYXRpb25zOiB0cnVlLFxuICAgIH0sXG4gICAgdGhlbWVzOiB7XG4gICAgICBsaWdodDoge1xuICAgICAgICBwcmltYXJ5OiAnIzE5NzZEMicsXG4gICAgICAgIHNlY29uZGFyeTogJyM0MjQyNDInLFxuICAgICAgICBhY2NlbnQ6ICcjODJCMUZGJyxcbiAgICAgICAgZXJyb3I6ICcjRkY1MjUyJyxcbiAgICAgICAgaW5mbzogJyMyMTk2RjMnLFxuICAgICAgICBzdWNjZXNzOiAnIzRDQUY1MCcsXG4gICAgICAgIHdhcm5pbmc6ICcjRkI4QzAwJyxcbiAgICAgIH0sXG4gICAgICBkYXJrOiB7XG4gICAgICAgIHByaW1hcnk6ICcjMjE5NkYzJyxcbiAgICAgICAgc2Vjb25kYXJ5OiAnIzQyNDI0MicsXG4gICAgICAgIGFjY2VudDogJyNGRjQwODEnLFxuICAgICAgICBlcnJvcjogJyNGRjUyNTInLFxuICAgICAgICBpbmZvOiAnIzIxOTZGMycsXG4gICAgICAgIHN1Y2Nlc3M6ICcjNENBRjUwJyxcbiAgICAgICAgd2FybmluZzogJyNGQjhDMDAnLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxufVxuIiwiLy8gQ29udHJhY3RzXG5pbXBvcnQgeyBWdWV0aWZ5U2VydmljZUNvbnRyYWN0IH0gZnJvbSAndnVldGlmeS90eXBlcy9zZXJ2aWNlcy9pbmRleCdcblxuLy8gVHlwZXNcbmltcG9ydCBWdWUgZnJvbSAndnVlJ1xuXG5leHBvcnQgY2xhc3MgU2VydmljZSBpbXBsZW1lbnRzIFZ1ZXRpZnlTZXJ2aWNlQ29udHJhY3Qge1xuICBmcmFtZXdvcmsgPSB7fVxuXG4gIGluaXQgKHJvb3Q6IFZ1ZSwgc3NyQ29udGV4dD86IG9iamVjdCkge31cbn1cbiIsIi8vIFByZXNldFxuaW1wb3J0IHsgcHJlc2V0IGFzIFByZXNldCB9IGZyb20gJy4uLy4uL3ByZXNldHMvZGVmYXVsdCdcblxuLy8gVXRpbGl0aWVzXG5pbXBvcnQgeyBjb25zb2xlV2FybiB9IGZyb20gJy4uLy4uL3V0aWwvY29uc29sZSdcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL3V0aWwvaGVscGVycydcblxuLy8gVHlwZXNcbmltcG9ydCBGcmFtZXdvcmsgZnJvbSAndnVldGlmeS90eXBlcydcbmltcG9ydCB7IFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlJ1xuaW1wb3J0IHtcbiAgVXNlclZ1ZXRpZnlQcmVzZXQsXG4gIFZ1ZXRpZnlQcmVzZXQsXG59IGZyb20gJ3Z1ZXRpZnkvdHlwZXMvc2VydmljZXMvcHJlc2V0cydcblxuZXhwb3J0IGNsYXNzIFByZXNldHMgZXh0ZW5kcyBTZXJ2aWNlIHtcbiAgc3RhdGljIHByb3BlcnR5OiAncHJlc2V0cycgPSAncHJlc2V0cydcblxuICBjb25zdHJ1Y3RvciAoXG4gICAgcGFyZW50UHJlc2V0OiBQYXJ0aWFsPFVzZXJWdWV0aWZ5UHJlc2V0PixcbiAgICBwYXJlbnQ6IEluc3RhbmNlVHlwZTx0eXBlb2YgRnJhbWV3b3JrPixcbiAgKSB7XG4gICAgc3VwZXIoKVxuXG4gICAgLy8gVGhlIGRlZmF1bHQgcHJlc2V0XG4gICAgY29uc3QgZGVmYXVsdFByZXNldCA9IG1lcmdlRGVlcCh7fSwgUHJlc2V0KVxuICAgIC8vIFRoZSB1c2VyIHByb3ZpZGVkIHByZXNldFxuICAgIGNvbnN0IHsgdXNlclByZXNldCB9ID0gcGFyZW50XG4gICAgLy8gVGhlIHVzZXIgcHJvdmlkZWQgZ2xvYmFsIHByZXNldFxuICAgIGNvbnN0IHtcbiAgICAgIHByZXNldDogZ2xvYmFsUHJlc2V0ID0ge30sXG4gICAgICAuLi5wcmVzZXRcbiAgICB9ID0gdXNlclByZXNldFxuXG4gICAgaWYgKGdsb2JhbFByZXNldC5wcmVzZXQgIT0gbnVsbCkge1xuICAgICAgY29uc29sZVdhcm4oJ0dsb2JhbCBwcmVzZXRzIGRvIG5vdCBzdXBwb3J0IHRoZSAqKnByZXNldCoqIG9wdGlvbiwgaXQgY2FuIGJlIHNhZmVseSBvbWl0dGVkJylcbiAgICB9XG5cbiAgICBwYXJlbnQucHJlc2V0ID0gbWVyZ2VEZWVwKFxuICAgICAgbWVyZ2VEZWVwKGRlZmF1bHRQcmVzZXQsIGdsb2JhbFByZXNldCksXG4gICAgICBwcmVzZXRcbiAgICApIGFzIFZ1ZXRpZnlQcmVzZXRcbiAgfVxufVxuIiwiLy8gRXh0ZW5zaW9uc1xuaW1wb3J0IHsgU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UnXG5cbi8vIFR5cGVzXG5pbXBvcnQgeyBUYXJnZXRQcm9wVmFsdWVzLCBUYXJnZXRQcm9wLCBBcHBsaWNhdGlvbiBhcyBJQXBwbGljYXRpb24gfSBmcm9tICd2dWV0aWZ5L3R5cGVzL3NlcnZpY2VzL2FwcGxpY2F0aW9uJ1xuXG5leHBvcnQgY2xhc3MgQXBwbGljYXRpb24gZXh0ZW5kcyBTZXJ2aWNlIGltcGxlbWVudHMgSUFwcGxpY2F0aW9uIHtcbiAgc3RhdGljIHByb3BlcnR5OiAnYXBwbGljYXRpb24nID0gJ2FwcGxpY2F0aW9uJ1xuXG4gIGJhciA9IDBcblxuICB0b3AgPSAwXG5cbiAgbGVmdCA9IDBcblxuICBpbnNldEZvb3RlciA9IDBcblxuICByaWdodCA9IDBcblxuICBib3R0b20gPSAwXG5cbiAgZm9vdGVyID0gMFxuXG4gIGFwcGxpY2F0aW9uOiBEaWN0aW9uYXJ5PFRhcmdldFByb3BWYWx1ZXM+ID0ge1xuICAgIGJhcjoge30sXG4gICAgdG9wOiB7fSxcbiAgICBsZWZ0OiB7fSxcbiAgICBpbnNldEZvb3Rlcjoge30sXG4gICAgcmlnaHQ6IHt9LFxuICAgIGJvdHRvbToge30sXG4gICAgZm9vdGVyOiB7fSxcbiAgfVxuXG4gIHJlZ2lzdGVyIChcbiAgICB1aWQ6IG51bWJlcixcbiAgICBsb2NhdGlvbjogVGFyZ2V0UHJvcCxcbiAgICBzaXplOiBudW1iZXJcbiAgKSB7XG4gICAgdGhpcy5hcHBsaWNhdGlvbltsb2NhdGlvbl0gPSB7IFt1aWRdOiBzaXplIH1cblxuICAgIHRoaXMudXBkYXRlKGxvY2F0aW9uKVxuICB9XG5cbiAgdW5yZWdpc3RlciAodWlkOiBudW1iZXIsIGxvY2F0aW9uOiBUYXJnZXRQcm9wKSB7XG4gICAgaWYgKHRoaXMuYXBwbGljYXRpb25bbG9jYXRpb25dW3VpZF0gPT0gbnVsbCkgcmV0dXJuXG5cbiAgICBkZWxldGUgdGhpcy5hcHBsaWNhdGlvbltsb2NhdGlvbl1bdWlkXVxuICAgIHRoaXMudXBkYXRlKGxvY2F0aW9uKVxuICB9XG5cbiAgdXBkYXRlIChsb2NhdGlvbjogVGFyZ2V0UHJvcCkge1xuICAgIHRoaXNbbG9jYXRpb25dID0gT2JqZWN0LnZhbHVlcyh0aGlzLmFwcGxpY2F0aW9uW2xvY2F0aW9uXSlcbiAgICAgIC5yZWR1Y2UoKGFjYzogbnVtYmVyLCBjdXI6IG51bWJlcik6IG51bWJlciA9PiAoYWNjICsgY3VyKSwgMClcbiAgfVxufVxuIiwiLy8gRXh0ZW5zaW9uc1xuaW1wb3J0IHsgU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UnXG5cbi8vIFR5cGVzXG5pbXBvcnQgeyBWdWV0aWZ5UHJlc2V0IH0gZnJvbSAndnVldGlmeS90eXBlcy9zZXJ2aWNlcy9wcmVzZXRzJ1xuaW1wb3J0IHsgQnJlYWtwb2ludCBhcyBJQnJlYWtwb2ludCB9IGZyb20gJ3Z1ZXRpZnkvdHlwZXMvc2VydmljZXMvYnJlYWtwb2ludCdcblxuZXhwb3J0IGNsYXNzIEJyZWFrcG9pbnQgZXh0ZW5kcyBTZXJ2aWNlIGltcGxlbWVudHMgSUJyZWFrcG9pbnQge1xuICBwdWJsaWMgc3RhdGljIHByb3BlcnR5OiAnYnJlYWtwb2ludCcgPSAnYnJlYWtwb2ludCdcblxuICAvLyBQdWJsaWNcbiAgcHVibGljIHhzID0gZmFsc2VcblxuICBwdWJsaWMgc20gPSBmYWxzZVxuXG4gIHB1YmxpYyBtZCA9IGZhbHNlXG5cbiAgcHVibGljIGxnID0gZmFsc2VcblxuICBwdWJsaWMgeGwgPSBmYWxzZVxuXG4gIHB1YmxpYyB4c09ubHkgPSBmYWxzZVxuXG4gIHB1YmxpYyBzbU9ubHkgPSBmYWxzZVxuXG4gIHB1YmxpYyBzbUFuZERvd24gPSBmYWxzZVxuXG4gIHB1YmxpYyBzbUFuZFVwID0gZmFsc2VcblxuICBwdWJsaWMgbWRPbmx5ID0gZmFsc2VcblxuICBwdWJsaWMgbWRBbmREb3duID0gZmFsc2VcblxuICBwdWJsaWMgbWRBbmRVcCA9IGZhbHNlXG5cbiAgcHVibGljIGxnT25seSA9IGZhbHNlXG5cbiAgcHVibGljIGxnQW5kRG93biA9IGZhbHNlXG5cbiAgcHVibGljIGxnQW5kVXAgPSBmYWxzZVxuXG4gIHB1YmxpYyB4bE9ubHkgPSBmYWxzZVxuXG4gIC8vIFZhbHVlIGlzIHhzIHRvIG1hdGNoIHYyLnggZnVuY3Rpb25hbGl0eVxuICBwdWJsaWMgbmFtZTogSUJyZWFrcG9pbnRbJ25hbWUnXSA9ICd4cydcblxuICBwdWJsaWMgaGVpZ2h0ID0gMFxuXG4gIHB1YmxpYyB3aWR0aCA9IDBcblxuICAvLyBUT0RPOiBBZGQgZnVuY3Rpb25hbGl0eSB0byBkZXRlY3QgdGhpcyBkeW5hbWljYWxseSBpbiB2M1xuICAvLyBWYWx1ZSBpcyB0cnVlIHRvIG1hdGNoIHYyLnggZnVuY3Rpb25hbGl0eVxuICBwdWJsaWMgbW9iaWxlID0gdHJ1ZVxuXG4gIHB1YmxpYyBtb2JpbGVCcmVha3BvaW50OiBJQnJlYWtwb2ludFsnbW9iaWxlQnJlYWtwb2ludCddXG5cbiAgcHVibGljIHRocmVzaG9sZHM6IElCcmVha3BvaW50Wyd0aHJlc2hvbGRzJ11cblxuICBwdWJsaWMgc2Nyb2xsQmFyV2lkdGg6IElCcmVha3BvaW50WydzY3JvbGxCYXJXaWR0aCddXG5cbiAgcHJpdmF0ZSByZXNpemVUaW1lb3V0ID0gMFxuXG4gIGNvbnN0cnVjdG9yIChwcmVzZXQ6IFZ1ZXRpZnlQcmVzZXQpIHtcbiAgICBzdXBlcigpXG5cbiAgICBjb25zdCB7XG4gICAgICBtb2JpbGVCcmVha3BvaW50LFxuICAgICAgc2Nyb2xsQmFyV2lkdGgsXG4gICAgICB0aHJlc2hvbGRzLFxuICAgIH0gPSBwcmVzZXRbQnJlYWtwb2ludC5wcm9wZXJ0eV1cblxuICAgIHRoaXMubW9iaWxlQnJlYWtwb2ludCA9IG1vYmlsZUJyZWFrcG9pbnRcbiAgICB0aGlzLnNjcm9sbEJhcldpZHRoID0gc2Nyb2xsQmFyV2lkdGhcbiAgICB0aGlzLnRocmVzaG9sZHMgPSB0aHJlc2hvbGRzXG5cbiAgICB0aGlzLmluaXQoKVxuICB9XG5cbiAgcHVibGljIGluaXQgKCkge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykgcmV0dXJuXG5cbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdyZXNpemUnLFxuICAgICAgdGhpcy5vblJlc2l6ZS5iaW5kKHRoaXMpLFxuICAgICAgeyBwYXNzaXZlOiB0cnVlIH1cbiAgICApXG5cbiAgICB0aGlzLnVwZGF0ZSgpXG4gIH1cblxuICBwcml2YXRlIG9uUmVzaXplICgpIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5yZXNpemVUaW1lb3V0KVxuXG4gICAgLy8gQWRkZWQgZGVib3VuY2UgdG8gbWF0Y2ggd2hhdFxuICAgIC8vIHYtcmVzaXplIHVzZWQgdG8gZG8gYnV0IHdhc1xuICAgIC8vIHJlbW92ZWQgZHVlIHRvIGEgbWVtb3J5IGxlYWtcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vdnVldGlmeWpzL3Z1ZXRpZnkvcHVsbC8yOTk3XG4gICAgdGhpcy5yZXNpemVUaW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQodGhpcy51cGRhdGUuYmluZCh0aGlzKSwgMjAwKVxuICB9XG5cbiAgLyogZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1zdGF0ZW1lbnRzICovXG4gIHByaXZhdGUgdXBkYXRlICgpIHtcbiAgICBjb25zdCBoZWlnaHQgPSB0aGlzLmdldENsaWVudEhlaWdodCgpXG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLmdldENsaWVudFdpZHRoKClcblxuICAgIGNvbnN0IHhzID0gd2lkdGggPCB0aGlzLnRocmVzaG9sZHMueHNcbiAgICBjb25zdCBzbSA9IHdpZHRoIDwgdGhpcy50aHJlc2hvbGRzLnNtICYmICF4c1xuICAgIGNvbnN0IG1kID0gd2lkdGggPCAodGhpcy50aHJlc2hvbGRzLm1kIC0gdGhpcy5zY3JvbGxCYXJXaWR0aCkgJiYgIShzbSB8fCB4cylcbiAgICBjb25zdCBsZyA9IHdpZHRoIDwgKHRoaXMudGhyZXNob2xkcy5sZyAtIHRoaXMuc2Nyb2xsQmFyV2lkdGgpICYmICEobWQgfHwgc20gfHwgeHMpXG4gICAgY29uc3QgeGwgPSB3aWR0aCA+PSAodGhpcy50aHJlc2hvbGRzLmxnIC0gdGhpcy5zY3JvbGxCYXJXaWR0aClcblxuICAgIHRoaXMuaGVpZ2h0ID0gaGVpZ2h0XG4gICAgdGhpcy53aWR0aCA9IHdpZHRoXG5cbiAgICB0aGlzLnhzID0geHNcbiAgICB0aGlzLnNtID0gc21cbiAgICB0aGlzLm1kID0gbWRcbiAgICB0aGlzLmxnID0gbGdcbiAgICB0aGlzLnhsID0geGxcblxuICAgIHRoaXMueHNPbmx5ID0geHNcbiAgICB0aGlzLnNtT25seSA9IHNtXG4gICAgdGhpcy5zbUFuZERvd24gPSAoeHMgfHwgc20pICYmICEobWQgfHwgbGcgfHwgeGwpXG4gICAgdGhpcy5zbUFuZFVwID0gIXhzICYmIChzbSB8fCBtZCB8fCBsZyB8fCB4bClcbiAgICB0aGlzLm1kT25seSA9IG1kXG4gICAgdGhpcy5tZEFuZERvd24gPSAoeHMgfHwgc20gfHwgbWQpICYmICEobGcgfHwgeGwpXG4gICAgdGhpcy5tZEFuZFVwID0gISh4cyB8fCBzbSkgJiYgKG1kIHx8IGxnIHx8IHhsKVxuICAgIHRoaXMubGdPbmx5ID0gbGdcbiAgICB0aGlzLmxnQW5kRG93biA9ICh4cyB8fCBzbSB8fCBtZCB8fCBsZykgJiYgIXhsXG4gICAgdGhpcy5sZ0FuZFVwID0gISh4cyB8fCBzbSB8fCBtZCkgJiYgKGxnIHx8IHhsKVxuICAgIHRoaXMueGxPbmx5ID0geGxcblxuICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgY2FzZSAoeHMpOlxuICAgICAgICB0aGlzLm5hbWUgPSAneHMnXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIChzbSk6XG4gICAgICAgIHRoaXMubmFtZSA9ICdzbSdcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgKG1kKTpcbiAgICAgICAgdGhpcy5uYW1lID0gJ21kJ1xuICAgICAgICBicmVha1xuICAgICAgY2FzZSAobGcpOlxuICAgICAgICB0aGlzLm5hbWUgPSAnbGcnXG4gICAgICAgIGJyZWFrXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLm5hbWUgPSAneGwnXG4gICAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB0aGlzLm1vYmlsZUJyZWFrcG9pbnQgPT09ICdudW1iZXInKSB7XG4gICAgICB0aGlzLm1vYmlsZSA9IHdpZHRoIDwgcGFyc2VJbnQodGhpcy5tb2JpbGVCcmVha3BvaW50LCAxMClcblxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgYnJlYWtwb2ludHMgPSB7XG4gICAgICB4czogMCxcbiAgICAgIHNtOiAxLFxuICAgICAgbWQ6IDIsXG4gICAgICBsZzogMyxcbiAgICAgIHhsOiA0LFxuICAgIH0gYXMgY29uc3RcblxuICAgIGNvbnN0IGN1cnJlbnQgPSBicmVha3BvaW50c1t0aGlzLm5hbWVdXG4gICAgY29uc3QgbWF4ID0gYnJlYWtwb2ludHNbdGhpcy5tb2JpbGVCcmVha3BvaW50XVxuXG4gICAgdGhpcy5tb2JpbGUgPSBjdXJyZW50IDw9IG1heFxuICB9XG5cbiAgLy8gQ3Jvc3MtYnJvd3NlciBzdXBwb3J0IGFzIGRlc2NyaWJlZCBpbjpcbiAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTI0ODA4MVxuICBwcml2YXRlIGdldENsaWVudFdpZHRoICgpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJykgcmV0dXJuIDAgLy8gU1NSXG4gICAgcmV0dXJuIE1hdGgubWF4KFxuICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50IS5jbGllbnRXaWR0aCxcbiAgICAgIHdpbmRvdy5pbm5lcldpZHRoIHx8IDBcbiAgICApXG4gIH1cblxuICBwcml2YXRlIGdldENsaWVudEhlaWdodCAoKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybiAwIC8vIFNTUlxuICAgIHJldHVybiBNYXRoLm1heChcbiAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCEuY2xpZW50SGVpZ2h0LFxuICAgICAgd2luZG93LmlubmVySGVpZ2h0IHx8IDBcbiAgICApXG4gIH1cbn1cbiIsImV4cG9ydCB0eXBlIEVhc2luZ0Z1bmN0aW9uID0gKHQ6IG51bWJlcikgPT4gbnVtYmVyXG5cbi8vIGxpbmVhclxuZXhwb3J0IGNvbnN0IGxpbmVhciA9ICh0OiBudW1iZXIpID0+IHRcbi8vIGFjY2VsZXJhdGluZyBmcm9tIHplcm8gdmVsb2NpdHlcbmV4cG9ydCBjb25zdCBlYXNlSW5RdWFkID0gKHQ6IG51bWJlcikgPT4gdCAqKiAyXG4vLyBkZWNlbGVyYXRpbmcgdG8gemVybyB2ZWxvY2l0eVxuZXhwb3J0IGNvbnN0IGVhc2VPdXRRdWFkID0gKHQ6IG51bWJlcikgPT4gdCAqICgyIC0gdClcbi8vIGFjY2VsZXJhdGlvbiB1bnRpbCBoYWxmd2F5LCB0aGVuIGRlY2VsZXJhdGlvblxuZXhwb3J0IGNvbnN0IGVhc2VJbk91dFF1YWQgPSAodDogbnVtYmVyKSA9PiAodCA8IDAuNSA/IDIgKiB0ICoqIDIgOiAtMSArICg0IC0gMiAqIHQpICogdClcbi8vIGFjY2VsZXJhdGluZyBmcm9tIHplcm8gdmVsb2NpdHlcbmV4cG9ydCBjb25zdCBlYXNlSW5DdWJpYyA9ICh0OiBudW1iZXIpID0+IHQgKiogM1xuLy8gZGVjZWxlcmF0aW5nIHRvIHplcm8gdmVsb2NpdHlcbmV4cG9ydCBjb25zdCBlYXNlT3V0Q3ViaWMgPSAodDogbnVtYmVyKSA9PiAtLXQgKiogMyArIDFcbi8vIGFjY2VsZXJhdGlvbiB1bnRpbCBoYWxmd2F5LCB0aGVuIGRlY2VsZXJhdGlvblxuZXhwb3J0IGNvbnN0IGVhc2VJbk91dEN1YmljID0gKHQ6IG51bWJlcikgPT4gdCA8IDAuNSA/IDQgKiB0ICoqIDMgOiAodCAtIDEpICogKDIgKiB0IC0gMikgKiAoMiAqIHQgLSAyKSArIDFcbi8vIGFjY2VsZXJhdGluZyBmcm9tIHplcm8gdmVsb2NpdHlcbmV4cG9ydCBjb25zdCBlYXNlSW5RdWFydCA9ICh0OiBudW1iZXIpID0+IHQgKiogNFxuLy8gZGVjZWxlcmF0aW5nIHRvIHplcm8gdmVsb2NpdHlcbmV4cG9ydCBjb25zdCBlYXNlT3V0UXVhcnQgPSAodDogbnVtYmVyKSA9PiAxIC0gLS10ICoqIDRcbi8vIGFjY2VsZXJhdGlvbiB1bnRpbCBoYWxmd2F5LCB0aGVuIGRlY2VsZXJhdGlvblxuZXhwb3J0IGNvbnN0IGVhc2VJbk91dFF1YXJ0ID0gKHQ6IG51bWJlcikgPT4gKHQgPCAwLjUgPyA4ICogdCAqIHQgKiB0ICogdCA6IDEgLSA4ICogLS10ICogdCAqIHQgKiB0KVxuLy8gYWNjZWxlcmF0aW5nIGZyb20gemVybyB2ZWxvY2l0eVxuZXhwb3J0IGNvbnN0IGVhc2VJblF1aW50ID0gKHQ6IG51bWJlcikgPT4gdCAqKiA1XG4vLyBkZWNlbGVyYXRpbmcgdG8gemVybyB2ZWxvY2l0eVxuZXhwb3J0IGNvbnN0IGVhc2VPdXRRdWludCA9ICh0OiBudW1iZXIpID0+IDEgKyAtLXQgKiogNVxuLy8gYWNjZWxlcmF0aW9uIHVudGlsIGhhbGZ3YXksIHRoZW4gZGVjZWxlcmF0aW9uXG5leHBvcnQgY29uc3QgZWFzZUluT3V0UXVpbnQgPSAodDogbnVtYmVyKSA9PiB0IDwgMC41ID8gMTYgKiB0ICoqIDUgOiAxICsgMTYgKiAtLXQgKiogNVxuIiwiaW1wb3J0IFZ1ZSBmcm9tICd2dWUnXG5cbi8vIFJldHVybiB0YXJnZXQncyBjdW11bGF0aXZlIG9mZnNldCBmcm9tIHRoZSB0b3BcbmV4cG9ydCBmdW5jdGlvbiBnZXRPZmZzZXQgKHRhcmdldDogYW55KTogbnVtYmVyIHtcbiAgaWYgKHR5cGVvZiB0YXJnZXQgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIHRhcmdldFxuICB9XG5cbiAgbGV0IGVsID0gJCh0YXJnZXQpXG4gIGlmICghZWwpIHtcbiAgICB0aHJvdyB0eXBlb2YgdGFyZ2V0ID09PSAnc3RyaW5nJ1xuICAgICAgPyBuZXcgRXJyb3IoYFRhcmdldCBlbGVtZW50IFwiJHt0YXJnZXR9XCIgbm90IGZvdW5kLmApXG4gICAgICA6IG5ldyBUeXBlRXJyb3IoYFRhcmdldCBtdXN0IGJlIGEgTnVtYmVyL1NlbGVjdG9yL0hUTUxFbGVtZW50L1Z1ZUNvbXBvbmVudCwgcmVjZWl2ZWQgJHt0eXBlKHRhcmdldCl9IGluc3RlYWQuYClcbiAgfVxuXG4gIGxldCB0b3RhbE9mZnNldCA9IDBcbiAgd2hpbGUgKGVsKSB7XG4gICAgdG90YWxPZmZzZXQgKz0gZWwub2Zmc2V0VG9wXG4gICAgZWwgPSBlbC5vZmZzZXRQYXJlbnQgYXMgSFRNTEVsZW1lbnRcbiAgfVxuXG4gIHJldHVybiB0b3RhbE9mZnNldFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29udGFpbmVyIChjb250YWluZXI6IGFueSk6IEhUTUxFbGVtZW50IHtcbiAgY29uc3QgZWwgPSAkKGNvbnRhaW5lcilcblxuICBpZiAoZWwpIHJldHVybiBlbFxuXG4gIHRocm93IHR5cGVvZiBjb250YWluZXIgPT09ICdzdHJpbmcnXG4gICAgPyBuZXcgRXJyb3IoYENvbnRhaW5lciBlbGVtZW50IFwiJHtjb250YWluZXJ9XCIgbm90IGZvdW5kLmApXG4gICAgOiBuZXcgVHlwZUVycm9yKGBDb250YWluZXIgbXVzdCBiZSBhIFNlbGVjdG9yL0hUTUxFbGVtZW50L1Z1ZUNvbXBvbmVudCwgcmVjZWl2ZWQgJHt0eXBlKGNvbnRhaW5lcil9IGluc3RlYWQuYClcbn1cblxuZnVuY3Rpb24gdHlwZSAoZWw6IGFueSkge1xuICByZXR1cm4gZWwgPT0gbnVsbCA/IGVsIDogZWwuY29uc3RydWN0b3IubmFtZVxufVxuXG5mdW5jdGlvbiAkIChlbDogYW55KTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgaWYgKHR5cGVvZiBlbCA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oZWwpXG4gIH0gZWxzZSBpZiAoZWwgJiYgZWwuX2lzVnVlKSB7XG4gICAgcmV0dXJuIChlbCBhcyBWdWUpLiRlbCBhcyBIVE1MRWxlbWVudFxuICB9IGVsc2UgaWYgKGVsIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICByZXR1cm4gZWxcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG59XG4iLCIvLyBFeHRlbnNpb25zXG5pbXBvcnQgeyBTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZSdcblxuLy8gVXRpbGl0aWVzXG5pbXBvcnQgKiBhcyBlYXNpbmdQYXR0ZXJucyBmcm9tICcuL2Vhc2luZy1wYXR0ZXJucydcbmltcG9ydCB7XG4gIGdldENvbnRhaW5lcixcbiAgZ2V0T2Zmc2V0LFxufSBmcm9tICcuL3V0aWwnXG5cbi8vIFR5cGVzXG5pbXBvcnQgeyBHb1RvT3B0aW9ucywgVnVldGlmeUdvVG9UYXJnZXQgfSBmcm9tICd2dWV0aWZ5L3R5cGVzL3NlcnZpY2VzL2dvdG8nXG5cbmltcG9ydCB7IFZ1ZXRpZnlTZXJ2aWNlQ29udHJhY3QgfSBmcm9tICd2dWV0aWZ5L3R5cGVzL3NlcnZpY2VzJ1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnb1RvIChcbiAgX3RhcmdldDogVnVldGlmeUdvVG9UYXJnZXQsXG4gIF9zZXR0aW5nczogUGFydGlhbDxHb1RvT3B0aW9ucz4gPSB7fVxuKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgY29uc3Qgc2V0dGluZ3M6IEdvVG9PcHRpb25zID0ge1xuICAgIGNvbnRhaW5lcjogKGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQgYXMgSFRNTEVsZW1lbnQgfCBudWxsKSB8fCBkb2N1bWVudC5ib2R5IHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxcbiAgICBkdXJhdGlvbjogNTAwLFxuICAgIG9mZnNldDogMCxcbiAgICBlYXNpbmc6ICdlYXNlSW5PdXRDdWJpYycsXG4gICAgYXBwT2Zmc2V0OiB0cnVlLFxuICAgIC4uLl9zZXR0aW5ncyxcbiAgfVxuICBjb25zdCBjb250YWluZXIgPSBnZXRDb250YWluZXIoc2V0dGluZ3MuY29udGFpbmVyKVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gIGlmIChzZXR0aW5ncy5hcHBPZmZzZXQgJiYgZ29Uby5mcmFtZXdvcmsuYXBwbGljYXRpb24pIHtcbiAgICBjb25zdCBpc0RyYXdlciA9IGNvbnRhaW5lci5jbGFzc0xpc3QuY29udGFpbnMoJ3YtbmF2aWdhdGlvbi1kcmF3ZXInKVxuICAgIGNvbnN0IGlzQ2xpcHBlZCA9IGNvbnRhaW5lci5jbGFzc0xpc3QuY29udGFpbnMoJ3YtbmF2aWdhdGlvbi1kcmF3ZXItLWNsaXBwZWQnKVxuICAgIGNvbnN0IHsgYmFyLCB0b3AgfSA9IGdvVG8uZnJhbWV3b3JrLmFwcGxpY2F0aW9uIGFzIGFueVxuXG4gICAgc2V0dGluZ3Mub2Zmc2V0ICs9IGJhclxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKCFpc0RyYXdlciB8fCBpc0NsaXBwZWQpIHNldHRpbmdzLm9mZnNldCArPSB0b3BcbiAgfVxuXG4gIGNvbnN0IHN0YXJ0VGltZSA9IHBlcmZvcm1hbmNlLm5vdygpXG5cbiAgbGV0IHRhcmdldExvY2F0aW9uOiBudW1iZXJcbiAgaWYgKHR5cGVvZiBfdGFyZ2V0ID09PSAnbnVtYmVyJykge1xuICAgIHRhcmdldExvY2F0aW9uID0gZ2V0T2Zmc2V0KF90YXJnZXQpIC0gc2V0dGluZ3Mub2Zmc2V0IVxuICB9IGVsc2Uge1xuICAgIHRhcmdldExvY2F0aW9uID0gZ2V0T2Zmc2V0KF90YXJnZXQpIC0gZ2V0T2Zmc2V0KGNvbnRhaW5lcikgLSBzZXR0aW5ncy5vZmZzZXQhXG4gIH1cblxuICBjb25zdCBzdGFydExvY2F0aW9uID0gY29udGFpbmVyLnNjcm9sbFRvcFxuICBpZiAodGFyZ2V0TG9jYXRpb24gPT09IHN0YXJ0TG9jYXRpb24pIHJldHVybiBQcm9taXNlLnJlc29sdmUodGFyZ2V0TG9jYXRpb24pXG5cbiAgY29uc3QgZWFzZSA9IHR5cGVvZiBzZXR0aW5ncy5lYXNpbmcgPT09ICdmdW5jdGlvbidcbiAgICA/IHNldHRpbmdzLmVhc2luZ1xuICAgIDogZWFzaW5nUGF0dGVybnNbc2V0dGluZ3MuZWFzaW5nIV1cbiAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgaWYgKCFlYXNlKSB0aHJvdyBuZXcgVHlwZUVycm9yKGBFYXNpbmcgZnVuY3Rpb24gXCIke3NldHRpbmdzLmVhc2luZ31cIiBub3QgZm91bmQuYClcblxuICAvLyBDYW5ub3QgYmUgdGVzdGVkIHByb3Blcmx5IGluIGpzZG9tXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpwcm9taXNlLW11c3QtY29tcGxldGVcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uIHN0ZXAgKGN1cnJlbnRUaW1lOiBudW1iZXIpIHtcbiAgICBjb25zdCB0aW1lRWxhcHNlZCA9IGN1cnJlbnRUaW1lIC0gc3RhcnRUaW1lXG4gICAgY29uc3QgcHJvZ3Jlc3MgPSBNYXRoLmFicyhzZXR0aW5ncy5kdXJhdGlvbiA/IE1hdGgubWluKHRpbWVFbGFwc2VkIC8gc2V0dGluZ3MuZHVyYXRpb24sIDEpIDogMSlcblxuICAgIGNvbnRhaW5lci5zY3JvbGxUb3AgPSBNYXRoLmZsb29yKHN0YXJ0TG9jYXRpb24gKyAodGFyZ2V0TG9jYXRpb24gLSBzdGFydExvY2F0aW9uKSAqIGVhc2UocHJvZ3Jlc3MpKVxuXG4gICAgY29uc3QgY2xpZW50SGVpZ2h0ID0gY29udGFpbmVyID09PSBkb2N1bWVudC5ib2R5ID8gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCA6IGNvbnRhaW5lci5jbGllbnRIZWlnaHRcbiAgICBpZiAocHJvZ3Jlc3MgPT09IDEgfHwgY2xpZW50SGVpZ2h0ICsgY29udGFpbmVyLnNjcm9sbFRvcCA9PT0gY29udGFpbmVyLnNjcm9sbEhlaWdodCkge1xuICAgICAgcmV0dXJuIHJlc29sdmUodGFyZ2V0TG9jYXRpb24pXG4gICAgfVxuXG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHN0ZXApXG4gIH0pKVxufVxuXG5nb1RvLmZyYW1ld29yayA9IHt9IGFzIFJlY29yZDxzdHJpbmcsIFZ1ZXRpZnlTZXJ2aWNlQ29udHJhY3Q+XG5nb1RvLmluaXQgPSAoKSA9PiB7fVxuXG5leHBvcnQgY2xhc3MgR290byBleHRlbmRzIFNlcnZpY2Uge1xuICBwdWJsaWMgc3RhdGljIHByb3BlcnR5OiAnZ29UbycgPSAnZ29UbydcblxuICBjb25zdHJ1Y3RvciAoKSB7XG4gICAgc3VwZXIoKVxuXG4gICAgcmV0dXJuIGdvVG9cbiAgfVxufVxuIiwiaW1wb3J0IHsgVnVldGlmeUljb25zIH0gZnJvbSAndnVldGlmeS90eXBlcy9zZXJ2aWNlcy9pY29ucydcblxuY29uc3QgaWNvbnM6IFZ1ZXRpZnlJY29ucyA9IHtcbiAgY29tcGxldGU6ICdNMjEsN0w5LDE5TDMuNSwxMy41TDQuOTEsMTIuMDlMOSwxNi4xN0wxOS41OSw1LjU5TDIxLDdaJyxcbiAgY2FuY2VsOiAnTTEyLDJDMTcuNTMsMiAyMiw2LjQ3IDIyLDEyQzIyLDE3LjUzIDE3LjUzLDIyIDEyLDIyQzYuNDcsMjIgMiwxNy41MyAyLDEyQzIsNi40NyA2LjQ3LDIgMTIsMk0xNS41OSw3TDEyLDEwLjU5TDguNDEsN0w3LDguNDFMMTAuNTksMTJMNywxNS41OUw4LjQxLDE3TDEyLDEzLjQxTDE1LjU5LDE3TDE3LDE1LjU5TDEzLjQxLDEyTDE3LDguNDFMMTUuNTksN1onLFxuICBjbG9zZTogJ00xOSw2LjQxTDE3LjU5LDVMMTIsMTAuNTlMNi40MSw1TDUsNi40MUwxMC41OSwxMkw1LDE3LjU5TDYuNDEsMTlMMTIsMTMuNDFMMTcuNTksMTlMMTksMTcuNTlMMTMuNDEsMTJMMTksNi40MVonLFxuICBkZWxldGU6ICdNMTIsMkMxNy41MywyIDIyLDYuNDcgMjIsMTJDMjIsMTcuNTMgMTcuNTMsMjIgMTIsMjJDNi40NywyMiAyLDE3LjUzIDIsMTJDMiw2LjQ3IDYuNDcsMiAxMiwyTTE1LjU5LDdMMTIsMTAuNTlMOC40MSw3TDcsOC40MUwxMC41OSwxMkw3LDE1LjU5TDguNDEsMTdMMTIsMTMuNDFMMTUuNTksMTdMMTcsMTUuNTlMMTMuNDEsMTJMMTcsOC40MUwxNS41OSw3WicsIC8vIGRlbGV0ZSAoZS5nLiB2LWNoaXAgY2xvc2UpXG4gIGNsZWFyOiAnTTE5LDYuNDFMMTcuNTksNUwxMiwxMC41OUw2LjQxLDVMNSw2LjQxTDEwLjU5LDEyTDUsMTcuNTlMNi40MSwxOUwxMiwxMy40MUwxNy41OSwxOUwxOSwxNy41OUwxMy40MSwxMkwxOSw2LjQxWicsXG4gIHN1Y2Nlc3M6ICdNMTIsMkMxNy41MiwyIDIyLDYuNDggMjIsMTJDMjIsMTcuNTIgMTcuNTIsMjIgMTIsMjJDNi40OCwyMiAyLDE3LjUyIDIsMTJDMiw2LjQ4IDYuNDgsMiAxMiwyTTExLDE2LjVMMTgsOS41TDE2LjU5LDguMDlMMTEsMTMuNjdMNy45MSwxMC41OUw2LjUsMTJMMTEsMTYuNVonLFxuICBpbmZvOiAnTTEzLDlIMTFWN0gxM00xMywxN0gxMVYxMUgxM00xMiwyQzYuNDgsMiAyLDYuNDggMiwxMkMyLDE3LjUyIDYuNDgsMjIgMTIsMjJDMTcuNTIsMjIgMjIsMTcuNTIgMjIsMTJDMjIsNi40OCAxNy41MiwyIDEyLDJaJyxcbiAgd2FybmluZzogJ00xMSw0LjVIMTNWMTUuNUgxMVY0LjVNMTMsMTcuNVYxOS41SDExVjE3LjVIMTNaJyxcbiAgZXJyb3I6ICdNMTMsMTRIMTFWMTBIMTNNMTMsMThIMTFWMTZIMTNNMSwyMUgyM0wxMiwyTDEsMjFaJyxcbiAgcHJldjogJ00xNS40MSwxNi41OEwxMC44MywxMkwxNS40MSw3LjQxTDE0LDZMOCwxMkwxNCwxOEwxNS40MSwxNi41OFonLFxuICBuZXh0OiAnTTguNTksMTYuNThMMTMuMTcsMTJMOC41OSw3LjQxTDEwLDZMMTYsMTJMMTAsMThMOC41OSwxNi41OFonLFxuICBjaGVja2JveE9uOiAnTTEwLDE3TDUsMTJMNi40MSwxMC41OEwxMCwxNC4xN0wxNy41OSw2LjU4TDE5LDhNMTksM0g1QzMuODksMyAzLDMuODkgMyw1VjE5QzMsMjAuMSAzLjksMjEgNSwyMUgxOUMyMC4xLDIxIDIxLDIwLjEgMjEsMTlWNUMyMSwzLjg5IDIwLjEsMyAxOSwzWicsXG4gIGNoZWNrYm94T2ZmOiAnTTE5LDNINUMzLjg5LDMgMywzLjg5IDMsNVYxOUMzLDIwLjEgMy45LDIxIDUsMjFIMTlDMjAuMSwyMSAyMSwyMC4xIDIxLDE5VjVDMjEsMy44OSAyMC4xLDMgMTksM00xOSw1VjE5SDVWNUgxOVonLFxuICBjaGVja2JveEluZGV0ZXJtaW5hdGU6ICdNMTcsMTNIN1YxMUgxN00xOSwzSDVDMy44OSwzIDMsMy44OSAzLDVWMTlDMywyMC4xIDMuOSwyMSA1LDIxSDE5QzIwLjEsMjEgMjEsMjAuMSAyMSwxOVY1QzIxLDMuODkgMjAuMSwzIDE5LDNaJyxcbiAgZGVsaW1pdGVyOiAnTTEyLDJDNi40OCwyIDIsNi40OCAyLDEyQzIsMTcuNTIgNi40OCwyMiAxMiwyMkMxNy41MiwyMiAyMiwxNy41MiAyMiwxMkMyMiw2LjQ4IDE3LjUyLDIgMTIsMlonLCAvLyBmb3IgY2Fyb3VzZWxcbiAgc29ydDogJ00xMywyMEgxMVY4TDUuNSwxMy41TDQuMDgsMTIuMDhMMTIsNC4xNkwxOS45MiwxMi4wOEwxOC41LDEzLjVMMTMsOFYyMFonLFxuICBleHBhbmQ6ICdNNy40MSw4LjU4TDEyLDEzLjE3TDE2LjU5LDguNThMMTgsMTBMMTIsMTZMNiwxMEw3LjQxLDguNThaJyxcbiAgbWVudTogJ00zLDZIMjFWOEgzVjZNMywxMUgyMVYxM0gzVjExTTMsMTZIMjFWMThIM1YxNlonLFxuICBzdWJncm91cDogJ003LDEwTDEyLDE1TDE3LDEwSDdaJyxcbiAgZHJvcGRvd246ICdNNywxMEwxMiwxNUwxNywxMEg3WicsXG4gIHJhZGlvT246ICdNMTIsMjBDNy41OCwyMCA0LDE2LjQyIDQsMTJDNCw3LjU4IDcuNTgsNCAxMiw0QzE2LjQyLDQgMjAsNy41OCAyMCwxMkMyMCwxNi40MiAxNi40MiwyMCAxMiwyME0xMiwyQzYuNDgsMiAyLDYuNDggMiwxMkMyLDE3LjUyIDYuNDgsMjIgMTIsMjJDMTcuNTIsMjIgMjIsMTcuNTIgMjIsMTJDMjIsNi40OCAxNy41MiwyIDEyLDJNMTIsN0M5LjI0LDcgNyw5LjI0IDcsMTJDNywxNC43NiA5LjI0LDE3IDEyLDE3QzE0Ljc2LDE3IDE3LDE0Ljc2IDE3LDEyQzE3LDkuMjQgMTQuNzYsNyAxMiw3WicsXG4gIHJhZGlvT2ZmOiAnTTEyLDIwQzcuNTgsMjAgNCwxNi40MiA0LDEyQzQsNy41OCA3LjU4LDQgMTIsNEMxNi40Miw0IDIwLDcuNTggMjAsMTJDMjAsMTYuNDIgMTYuNDIsMjAgMTIsMjBNMTIsMkM2LjQ4LDIgMiw2LjQ4IDIsMTJDMiwxNy41MiA2LjQ4LDIyIDEyLDIyQzE3LjUyLDIyIDIyLDE3LjUyIDIyLDEyQzIyLDYuNDggMTcuNTIsMiAxMiwyWicsXG4gIGVkaXQ6ICdNMjAuNzEsNy4wNEMyMS4xLDYuNjUgMjEuMSw2IDIwLjcxLDUuNjNMMTguMzcsMy4yOUMxOCwyLjkgMTcuMzUsMi45IDE2Ljk2LDMuMjlMMTUuMTIsNS4xMkwxOC44Nyw4Ljg3TTMsMTcuMjVWMjFINi43NUwxNy44MSw5LjkzTDE0LjA2LDYuMThMMywxNy4yNVonLFxuICByYXRpbmdFbXB0eTogJ00xMiwxNS4zOUw4LjI0LDE3LjY2TDkuMjMsMTMuMzhMNS45MSwxMC41TDEwLjI5LDEwLjEzTDEyLDYuMDlMMTMuNzEsMTAuMTNMMTguMDksMTAuNUwxNC43NywxMy4zOEwxNS43NiwxNy42Nk0yMiw5LjI0TDE0LjgxLDguNjNMMTIsMkw5LjE5LDguNjNMMiw5LjI0TDcuNDUsMTMuOTdMNS44MiwyMUwxMiwxNy4yN0wxOC4xOCwyMUwxNi41NCwxMy45N0wyMiw5LjI0WicsXG4gIHJhdGluZ0Z1bGw6ICdNMTIsMTcuMjdMMTguMTgsMjFMMTYuNTQsMTMuOTdMMjIsOS4yNEwxNC44MSw4LjYyTDEyLDJMOS4xOSw4LjYyTDIsOS4yNEw3LjQ1LDEzLjk3TDUuODIsMjFMMTIsMTcuMjdaJyxcbiAgcmF0aW5nSGFsZjogJ00xMiwxNS40VjYuMUwxMy43MSwxMC4xM0wxOC4wOSwxMC41TDE0Ljc3LDEzLjM5TDE1Ljc2LDE3LjY3TTIyLDkuMjRMMTQuODEsOC42M0wxMiwyTDkuMTksOC42M0wyLDkuMjRMNy40NSwxMy45N0w1LjgyLDIxTDEyLDE3LjI3TDE4LjE4LDIxTDE2LjU0LDEzLjk3TDIyLDkuMjRaJyxcbiAgbG9hZGluZzogJ00xOSw4TDE1LDEySDE4QzE4LDE1LjMxIDE1LjMxLDE4IDEyLDE4QzExLDE4IDEwLjAzLDE3Ljc1IDkuMiwxNy4zTDcuNzQsMTguNzZDOC45NywxOS41NCAxMC40MywyMCAxMiwyMEMxNi40MiwyMCAyMCwxNi40MiAyMCwxMkgyM002LDEyQzYsOC42OSA4LjY5LDYgMTIsNkMxMyw2IDEzLjk3LDYuMjUgMTQuOCw2LjdMMTYuMjYsNS4yNEMxNS4wMyw0LjQ2IDEzLjU3LDQgMTIsNEM3LjU4LDQgNCw3LjU4IDQsMTJIMUw1LDE2TDksMTInLFxuICBmaXJzdDogJ00xOC40MSwxNi41OUwxMy44MiwxMkwxOC40MSw3LjQxTDE3LDZMMTEsMTJMMTcsMThMMTguNDEsMTYuNTlNNiw2SDhWMThINlY2WicsXG4gIGxhc3Q6ICdNNS41OSw3LjQxTDEwLjE4LDEyTDUuNTksMTYuNTlMNywxOEwxMywxMkw3LDZMNS41OSw3LjQxTTE2LDZIMThWMThIMTZWNlonLFxuICB1bmZvbGQ6ICdNMTIsMTguMTdMOC44MywxNUw3LjQyLDE2LjQxTDEyLDIxTDE2LjU5LDE2LjQxTDE1LjE3LDE1TTEyLDUuODNMMTUuMTcsOUwxNi41OCw3LjU5TDEyLDNMNy40MSw3LjU5TDguODMsOUwxMiw1LjgzWicsXG4gIGZpbGU6ICdNMTYuNSw2VjE3LjVDMTYuNSwxOS43MSAxNC43MSwyMS41IDEyLjUsMjEuNUMxMC4yOSwyMS41IDguNSwxOS43MSA4LjUsMTcuNVY1QzguNSwzLjYyIDkuNjIsMi41IDExLDIuNUMxMi4zOCwyLjUgMTMuNSwzLjYyIDEzLjUsNVYxNS41QzEzLjUsMTYuMDUgMTMuMDUsMTYuNSAxMi41LDE2LjVDMTEuOTUsMTYuNSAxMS41LDE2LjA1IDExLjUsMTUuNVY2SDEwVjE1LjVDMTAsMTYuODggMTEuMTIsMTggMTIuNSwxOEMxMy44OCwxOCAxNSwxNi44OCAxNSwxNS41VjVDMTUsMi43OSAxMy4yMSwxIDExLDFDOC43OSwxIDcsMi43OSA3LDVWMTcuNUM3LDIwLjU0IDkuNDYsMjMgMTIuNSwyM0MxNS41NCwyMyAxOCwyMC41NCAxOCwxNy41VjZIMTYuNVonLFxuICBwbHVzOiAnTTE5LDEzSDEzVjE5SDExVjEzSDVWMTFIMTFWNUgxM1YxMUgxOVYxM1onLFxuICBtaW51czogJ00xOSwxM0g1VjExSDE5VjEzWicsXG59XG5cbmV4cG9ydCBkZWZhdWx0IGljb25zXG4iLCJpbXBvcnQgeyBWdWV0aWZ5SWNvbnMgfSBmcm9tICd2dWV0aWZ5L3R5cGVzL3NlcnZpY2VzL2ljb25zJ1xuXG5jb25zdCBpY29uczogVnVldGlmeUljb25zID0ge1xuICBjb21wbGV0ZTogJ2NoZWNrJyxcbiAgY2FuY2VsOiAnY2FuY2VsJyxcbiAgY2xvc2U6ICdjbG9zZScsXG4gIGRlbGV0ZTogJ2NhbmNlbCcsIC8vIGRlbGV0ZSAoZS5nLiB2LWNoaXAgY2xvc2UpXG4gIGNsZWFyOiAnY2xlYXInLFxuICBzdWNjZXNzOiAnY2hlY2tfY2lyY2xlJyxcbiAgaW5mbzogJ2luZm8nLFxuICB3YXJuaW5nOiAncHJpb3JpdHlfaGlnaCcsXG4gIGVycm9yOiAnd2FybmluZycsXG4gIHByZXY6ICdjaGV2cm9uX2xlZnQnLFxuICBuZXh0OiAnY2hldnJvbl9yaWdodCcsXG4gIGNoZWNrYm94T246ICdjaGVja19ib3gnLFxuICBjaGVja2JveE9mZjogJ2NoZWNrX2JveF9vdXRsaW5lX2JsYW5rJyxcbiAgY2hlY2tib3hJbmRldGVybWluYXRlOiAnaW5kZXRlcm1pbmF0ZV9jaGVja19ib3gnLFxuICBkZWxpbWl0ZXI6ICdmaWJlcl9tYW51YWxfcmVjb3JkJywgLy8gZm9yIGNhcm91c2VsXG4gIHNvcnQ6ICdhcnJvd191cHdhcmQnLFxuICBleHBhbmQ6ICdrZXlib2FyZF9hcnJvd19kb3duJyxcbiAgbWVudTogJ21lbnUnLFxuICBzdWJncm91cDogJ2Fycm93X2Ryb3BfZG93bicsXG4gIGRyb3Bkb3duOiAnYXJyb3dfZHJvcF9kb3duJyxcbiAgcmFkaW9PbjogJ3JhZGlvX2J1dHRvbl9jaGVja2VkJyxcbiAgcmFkaW9PZmY6ICdyYWRpb19idXR0b25fdW5jaGVja2VkJyxcbiAgZWRpdDogJ2VkaXQnLFxuICByYXRpbmdFbXB0eTogJ3N0YXJfYm9yZGVyJyxcbiAgcmF0aW5nRnVsbDogJ3N0YXInLFxuICByYXRpbmdIYWxmOiAnc3Rhcl9oYWxmJyxcbiAgbG9hZGluZzogJ2NhY2hlZCcsXG4gIGZpcnN0OiAnZmlyc3RfcGFnZScsXG4gIGxhc3Q6ICdsYXN0X3BhZ2UnLFxuICB1bmZvbGQ6ICd1bmZvbGRfbW9yZScsXG4gIGZpbGU6ICdhdHRhY2hfZmlsZScsXG4gIHBsdXM6ICdhZGQnLFxuICBtaW51czogJ3JlbW92ZScsXG59XG5cbmV4cG9ydCBkZWZhdWx0IGljb25zXG4iLCJpbXBvcnQgeyBWdWV0aWZ5SWNvbnMgfSBmcm9tICd2dWV0aWZ5L3R5cGVzL3NlcnZpY2VzL2ljb25zJ1xuXG5jb25zdCBpY29uczogVnVldGlmeUljb25zID0ge1xuICBjb21wbGV0ZTogJ21kaS1jaGVjaycsXG4gIGNhbmNlbDogJ21kaS1jbG9zZS1jaXJjbGUnLFxuICBjbG9zZTogJ21kaS1jbG9zZScsXG4gIGRlbGV0ZTogJ21kaS1jbG9zZS1jaXJjbGUnLCAvLyBkZWxldGUgKGUuZy4gdi1jaGlwIGNsb3NlKVxuICBjbGVhcjogJ21kaS1jbG9zZScsXG4gIHN1Y2Nlc3M6ICdtZGktY2hlY2stY2lyY2xlJyxcbiAgaW5mbzogJ21kaS1pbmZvcm1hdGlvbicsXG4gIHdhcm5pbmc6ICdtZGktZXhjbGFtYXRpb24nLFxuICBlcnJvcjogJ21kaS1hbGVydCcsXG4gIHByZXY6ICdtZGktY2hldnJvbi1sZWZ0JyxcbiAgbmV4dDogJ21kaS1jaGV2cm9uLXJpZ2h0JyxcbiAgY2hlY2tib3hPbjogJ21kaS1jaGVja2JveC1tYXJrZWQnLFxuICBjaGVja2JveE9mZjogJ21kaS1jaGVja2JveC1ibGFuay1vdXRsaW5lJyxcbiAgY2hlY2tib3hJbmRldGVybWluYXRlOiAnbWRpLW1pbnVzLWJveCcsXG4gIGRlbGltaXRlcjogJ21kaS1jaXJjbGUnLCAvLyBmb3IgY2Fyb3VzZWxcbiAgc29ydDogJ21kaS1hcnJvdy11cCcsXG4gIGV4cGFuZDogJ21kaS1jaGV2cm9uLWRvd24nLFxuICBtZW51OiAnbWRpLW1lbnUnLFxuICBzdWJncm91cDogJ21kaS1tZW51LWRvd24nLFxuICBkcm9wZG93bjogJ21kaS1tZW51LWRvd24nLFxuICByYWRpb09uOiAnbWRpLXJhZGlvYm94LW1hcmtlZCcsXG4gIHJhZGlvT2ZmOiAnbWRpLXJhZGlvYm94LWJsYW5rJyxcbiAgZWRpdDogJ21kaS1wZW5jaWwnLFxuICByYXRpbmdFbXB0eTogJ21kaS1zdGFyLW91dGxpbmUnLFxuICByYXRpbmdGdWxsOiAnbWRpLXN0YXInLFxuICByYXRpbmdIYWxmOiAnbWRpLXN0YXItaGFsZicsXG4gIGxvYWRpbmc6ICdtZGktY2FjaGVkJyxcbiAgZmlyc3Q6ICdtZGktcGFnZS1maXJzdCcsXG4gIGxhc3Q6ICdtZGktcGFnZS1sYXN0JyxcbiAgdW5mb2xkOiAnbWRpLXVuZm9sZC1tb3JlLWhvcml6b250YWwnLFxuICBmaWxlOiAnbWRpLXBhcGVyY2xpcCcsXG4gIHBsdXM6ICdtZGktcGx1cycsXG4gIG1pbnVzOiAnbWRpLW1pbnVzJyxcbn1cblxuZXhwb3J0IGRlZmF1bHQgaWNvbnNcbiIsImltcG9ydCB7IFZ1ZXRpZnlJY29ucyB9IGZyb20gJ3Z1ZXRpZnkvdHlwZXMvc2VydmljZXMvaWNvbnMnXG5cbmNvbnN0IGljb25zOiBWdWV0aWZ5SWNvbnMgPSB7XG4gIGNvbXBsZXRlOiAnZmFzIGZhLWNoZWNrJyxcbiAgY2FuY2VsOiAnZmFzIGZhLXRpbWVzLWNpcmNsZScsXG4gIGNsb3NlOiAnZmFzIGZhLXRpbWVzJyxcbiAgZGVsZXRlOiAnZmFzIGZhLXRpbWVzLWNpcmNsZScsIC8vIGRlbGV0ZSAoZS5nLiB2LWNoaXAgY2xvc2UpXG4gIGNsZWFyOiAnZmFzIGZhLXRpbWVzLWNpcmNsZScsIC8vIGRlbGV0ZSAoZS5nLiB2LWNoaXAgY2xvc2UpXG4gIHN1Y2Nlc3M6ICdmYXMgZmEtY2hlY2stY2lyY2xlJyxcbiAgaW5mbzogJ2ZhcyBmYS1pbmZvLWNpcmNsZScsXG4gIHdhcm5pbmc6ICdmYXMgZmEtZXhjbGFtYXRpb24nLFxuICBlcnJvcjogJ2ZhcyBmYS1leGNsYW1hdGlvbi10cmlhbmdsZScsXG4gIHByZXY6ICdmYXMgZmEtY2hldnJvbi1sZWZ0JyxcbiAgbmV4dDogJ2ZhcyBmYS1jaGV2cm9uLXJpZ2h0JyxcbiAgY2hlY2tib3hPbjogJ2ZhcyBmYS1jaGVjay1zcXVhcmUnLFxuICBjaGVja2JveE9mZjogJ2ZhciBmYS1zcXVhcmUnLCAvLyBub3RlICdmYXInXG4gIGNoZWNrYm94SW5kZXRlcm1pbmF0ZTogJ2ZhcyBmYS1taW51cy1zcXVhcmUnLFxuICBkZWxpbWl0ZXI6ICdmYXMgZmEtY2lyY2xlJywgLy8gZm9yIGNhcm91c2VsXG4gIHNvcnQ6ICdmYXMgZmEtc29ydC11cCcsXG4gIGV4cGFuZDogJ2ZhcyBmYS1jaGV2cm9uLWRvd24nLFxuICBtZW51OiAnZmFzIGZhLWJhcnMnLFxuICBzdWJncm91cDogJ2ZhcyBmYS1jYXJldC1kb3duJyxcbiAgZHJvcGRvd246ICdmYXMgZmEtY2FyZXQtZG93bicsXG4gIHJhZGlvT246ICdmYXIgZmEtZG90LWNpcmNsZScsXG4gIHJhZGlvT2ZmOiAnZmFyIGZhLWNpcmNsZScsXG4gIGVkaXQ6ICdmYXMgZmEtZWRpdCcsXG4gIHJhdGluZ0VtcHR5OiAnZmFyIGZhLXN0YXInLFxuICByYXRpbmdGdWxsOiAnZmFzIGZhLXN0YXInLFxuICByYXRpbmdIYWxmOiAnZmFzIGZhLXN0YXItaGFsZicsXG4gIGxvYWRpbmc6ICdmYXMgZmEtc3luYycsXG4gIGZpcnN0OiAnZmFzIGZhLXN0ZXAtYmFja3dhcmQnLFxuICBsYXN0OiAnZmFzIGZhLXN0ZXAtZm9yd2FyZCcsXG4gIHVuZm9sZDogJ2ZhcyBmYS1hcnJvd3MtYWx0LXYnLFxuICBmaWxlOiAnZmFzIGZhLXBhcGVyY2xpcCcsXG4gIHBsdXM6ICdmYXMgZmEtcGx1cycsXG4gIG1pbnVzOiAnZmFzIGZhLW1pbnVzJyxcbn1cblxuZXhwb3J0IGRlZmF1bHQgaWNvbnNcbiIsImltcG9ydCB7IFZ1ZXRpZnlJY29ucyB9IGZyb20gJ3Z1ZXRpZnkvdHlwZXMvc2VydmljZXMvaWNvbnMnXG5cbmNvbnN0IGljb25zOiBWdWV0aWZ5SWNvbnMgPSB7XG4gIGNvbXBsZXRlOiAnZmEgZmEtY2hlY2snLFxuICBjYW5jZWw6ICdmYSBmYS10aW1lcy1jaXJjbGUnLFxuICBjbG9zZTogJ2ZhIGZhLXRpbWVzJyxcbiAgZGVsZXRlOiAnZmEgZmEtdGltZXMtY2lyY2xlJywgLy8gZGVsZXRlIChlLmcuIHYtY2hpcCBjbG9zZSlcbiAgY2xlYXI6ICdmYSBmYS10aW1lcy1jaXJjbGUnLCAvLyBkZWxldGUgKGUuZy4gdi1jaGlwIGNsb3NlKVxuICBzdWNjZXNzOiAnZmEgZmEtY2hlY2stY2lyY2xlJyxcbiAgaW5mbzogJ2ZhIGZhLWluZm8tY2lyY2xlJyxcbiAgd2FybmluZzogJ2ZhIGZhLWV4Y2xhbWF0aW9uJyxcbiAgZXJyb3I6ICdmYSBmYS1leGNsYW1hdGlvbi10cmlhbmdsZScsXG4gIHByZXY6ICdmYSBmYS1jaGV2cm9uLWxlZnQnLFxuICBuZXh0OiAnZmEgZmEtY2hldnJvbi1yaWdodCcsXG4gIGNoZWNrYm94T246ICdmYSBmYS1jaGVjay1zcXVhcmUnLFxuICBjaGVja2JveE9mZjogJ2ZhIGZhLXNxdWFyZS1vJyxcbiAgY2hlY2tib3hJbmRldGVybWluYXRlOiAnZmEgZmEtbWludXMtc3F1YXJlJyxcbiAgZGVsaW1pdGVyOiAnZmEgZmEtY2lyY2xlJywgLy8gZm9yIGNhcm91c2VsXG4gIHNvcnQ6ICdmYSBmYS1zb3J0LXVwJyxcbiAgZXhwYW5kOiAnZmEgZmEtY2hldnJvbi1kb3duJyxcbiAgbWVudTogJ2ZhIGZhLWJhcnMnLFxuICBzdWJncm91cDogJ2ZhIGZhLWNhcmV0LWRvd24nLFxuICBkcm9wZG93bjogJ2ZhIGZhLWNhcmV0LWRvd24nLFxuICByYWRpb09uOiAnZmEgZmEtZG90LWNpcmNsZS1vJyxcbiAgcmFkaW9PZmY6ICdmYSBmYS1jaXJjbGUtbycsXG4gIGVkaXQ6ICdmYSBmYS1wZW5jaWwnLFxuICByYXRpbmdFbXB0eTogJ2ZhIGZhLXN0YXItbycsXG4gIHJhdGluZ0Z1bGw6ICdmYSBmYS1zdGFyJyxcbiAgcmF0aW5nSGFsZjogJ2ZhIGZhLXN0YXItaGFsZi1vJyxcbiAgbG9hZGluZzogJ2ZhIGZhLXJlZnJlc2gnLFxuICBmaXJzdDogJ2ZhIGZhLXN0ZXAtYmFja3dhcmQnLFxuICBsYXN0OiAnZmEgZmEtc3RlcC1mb3J3YXJkJyxcbiAgdW5mb2xkOiAnZmEgZmEtYW5nbGUtZG91YmxlLWRvd24nLFxuICBmaWxlOiAnZmEgZmEtcGFwZXJjbGlwJyxcbiAgcGx1czogJ2ZhIGZhLXBsdXMnLFxuICBtaW51czogJ2ZhIGZhLW1pbnVzJyxcbn1cblxuZXhwb3J0IGRlZmF1bHQgaWNvbnNcbiIsImltcG9ydCB7IFZ1ZXRpZnlJY29ucyB9IGZyb20gJ3Z1ZXRpZnkvdHlwZXMvc2VydmljZXMvaWNvbnMnXG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICd2dWUnXG5pbXBvcnQgaWNvbnMgZnJvbSAnLi9mYSdcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRUb0NvbXBvbmVudERlY2xhcmF0aW9ucyAoXG4gIGNvbXBvbmVudDogQ29tcG9uZW50IHwgc3RyaW5nLFxuICBpY29uU2V0OiBWdWV0aWZ5SWNvbnMsXG4pIHtcbiAgY29uc3QgcmVzdWx0OiBQYXJ0aWFsPFZ1ZXRpZnlJY29ucz4gPSB7fVxuXG4gIGZvciAoY29uc3Qga2V5IGluIGljb25TZXQpIHtcbiAgICByZXN1bHRba2V5XSA9IHtcbiAgICAgIGNvbXBvbmVudCxcbiAgICAgIHByb3BzOiB7XG4gICAgICAgIGljb246IChpY29uU2V0W2tleV0gYXMgc3RyaW5nKS5zcGxpdCgnIGZhLScpLFxuICAgICAgfSxcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0IGFzIFZ1ZXRpZnlJY29uc1xufVxuXG5leHBvcnQgZGVmYXVsdCBjb252ZXJ0VG9Db21wb25lbnREZWNsYXJhdGlvbnMoJ2ZvbnQtYXdlc29tZS1pY29uJywgaWNvbnMpXG4iLCJpbXBvcnQgbWRpU3ZnIGZyb20gJy4vbWRpLXN2ZydcbmltcG9ydCBtZCBmcm9tICcuL21kJ1xuaW1wb3J0IG1kaSBmcm9tICcuL21kaSdcbmltcG9ydCBmYSBmcm9tICcuL2ZhJ1xuaW1wb3J0IGZhNCBmcm9tICcuL2ZhNCdcbmltcG9ydCBmYVN2ZyBmcm9tICcuL2ZhLXN2ZydcblxuZXhwb3J0IGRlZmF1bHQgT2JqZWN0LmZyZWV6ZSh7XG4gIG1kaVN2ZyxcbiAgbWQsXG4gIG1kaSxcbiAgZmEsXG4gIGZhNCxcbiAgZmFTdmcsXG59KVxuIiwiLy8gRXh0ZW5zaW9uc1xuaW1wb3J0IHsgU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UnXG5cbi8vIFV0aWxpdGllc1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vdXRpbC9oZWxwZXJzJ1xuXG4vLyBUeXBlc1xuaW1wb3J0IHsgVnVldGlmeVByZXNldCB9IGZyb20gJ3Z1ZXRpZnkvdHlwZXMvc2VydmljZXMvcHJlc2V0cydcbmltcG9ydCB7IEljb25zIGFzIElJY29ucyB9IGZyb20gJ3Z1ZXRpZnkvdHlwZXMvc2VydmljZXMvaWNvbnMnXG5cbi8vIFByZXNldHNcbmltcG9ydCBwcmVzZXRzIGZyb20gJy4vcHJlc2V0cydcblxuZXhwb3J0IGNsYXNzIEljb25zIGV4dGVuZHMgU2VydmljZSBpbXBsZW1lbnRzIElJY29ucyB7XG4gIHN0YXRpYyBwcm9wZXJ0eTogJ2ljb25zJyA9ICdpY29ucydcblxuICBwdWJsaWMgaWNvbmZvbnQ6IElJY29uc1snaWNvbmZvbnQnXVxuXG4gIHB1YmxpYyB2YWx1ZXM6IElJY29uc1sndmFsdWVzJ11cblxuICBjb25zdHJ1Y3RvciAocHJlc2V0OiBWdWV0aWZ5UHJlc2V0KSB7XG4gICAgc3VwZXIoKVxuXG4gICAgY29uc3Qge1xuICAgICAgaWNvbmZvbnQsXG4gICAgICB2YWx1ZXMsXG4gICAgfSA9IHByZXNldFtJY29ucy5wcm9wZXJ0eV1cblxuICAgIHRoaXMuaWNvbmZvbnQgPSBpY29uZm9udFxuICAgIHRoaXMudmFsdWVzID0gbWVyZ2VEZWVwKFxuICAgICAgcHJlc2V0c1tpY29uZm9udF0sXG4gICAgICB2YWx1ZXNcbiAgICApIGFzIElJY29uc1sndmFsdWVzJ11cbiAgfVxufVxuIiwiLy8gRXh0ZW5zaW9uc1xuaW1wb3J0IHsgU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UnXG5cbi8vIFV0aWxpdGllc1xuaW1wb3J0IHsgZ2V0T2JqZWN0VmFsdWVCeVBhdGggfSBmcm9tICcuLi8uLi91dGlsL2hlbHBlcnMnXG5pbXBvcnQgeyBjb25zb2xlRXJyb3IsIGNvbnNvbGVXYXJuIH0gZnJvbSAnLi4vLi4vdXRpbC9jb25zb2xlJ1xuXG4vLyBUeXBlc1xuaW1wb3J0IHsgVnVldGlmeVByZXNldCB9IGZyb20gJ3Z1ZXRpZnkvdHlwZXMvc2VydmljZXMvcHJlc2V0cydcbmltcG9ydCB7XG4gIFZ1ZXRpZnlMb2NhbGUsXG4gIExhbmcgYXMgSUxhbmcsXG59IGZyb20gJ3Z1ZXRpZnkvdHlwZXMvc2VydmljZXMvbGFuZydcblxuY29uc3QgTEFOR19QUkVGSVggPSAnJHZ1ZXRpZnkuJ1xuY29uc3QgZmFsbGJhY2sgPSBTeW1ib2woJ0xhbmcgZmFsbGJhY2snKVxuXG5mdW5jdGlvbiBnZXRUcmFuc2xhdGlvbiAoXG4gIGxvY2FsZTogVnVldGlmeUxvY2FsZSxcbiAga2V5OiBzdHJpbmcsXG4gIHVzaW5nRGVmYXVsdCA9IGZhbHNlLFxuICBkZWZhdWx0TG9jYWxlOiBWdWV0aWZ5TG9jYWxlXG4pOiBzdHJpbmcge1xuICBjb25zdCBzaG9ydEtleSA9IGtleS5yZXBsYWNlKExBTkdfUFJFRklYLCAnJylcbiAgbGV0IHRyYW5zbGF0aW9uID0gZ2V0T2JqZWN0VmFsdWVCeVBhdGgobG9jYWxlLCBzaG9ydEtleSwgZmFsbGJhY2spIGFzIHN0cmluZyB8IHR5cGVvZiBmYWxsYmFja1xuXG4gIGlmICh0cmFuc2xhdGlvbiA9PT0gZmFsbGJhY2spIHtcbiAgICBpZiAodXNpbmdEZWZhdWx0KSB7XG4gICAgICBjb25zb2xlRXJyb3IoYFRyYW5zbGF0aW9uIGtleSBcIiR7c2hvcnRLZXl9XCIgbm90IGZvdW5kIGluIGZhbGxiYWNrYClcbiAgICAgIHRyYW5zbGF0aW9uID0ga2V5XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGVXYXJuKGBUcmFuc2xhdGlvbiBrZXkgXCIke3Nob3J0S2V5fVwiIG5vdCBmb3VuZCwgZmFsbGluZyBiYWNrIHRvIGRlZmF1bHRgKVxuICAgICAgdHJhbnNsYXRpb24gPSBnZXRUcmFuc2xhdGlvbihkZWZhdWx0TG9jYWxlLCBrZXksIHRydWUsIGRlZmF1bHRMb2NhbGUpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRyYW5zbGF0aW9uXG59XG5cbmV4cG9ydCBjbGFzcyBMYW5nIGV4dGVuZHMgU2VydmljZSBpbXBsZW1lbnRzIElMYW5nIHtcbiAgc3RhdGljIHByb3BlcnR5OiAnbGFuZycgPSAnbGFuZydcblxuICBwdWJsaWMgY3VycmVudDogSUxhbmdbJ2N1cnJlbnQnXVxuXG4gIHB1YmxpYyBkZWZhdWx0TG9jYWxlID0gJ2VuJ1xuXG4gIHB1YmxpYyBsb2NhbGVzOiBJTGFuZ1snbG9jYWxlcyddXG5cbiAgcHJpdmF0ZSB0cmFuc2xhdG9yOiBJTGFuZ1sndCddXG5cbiAgY29uc3RydWN0b3IgKHByZXNldDogVnVldGlmeVByZXNldCkge1xuICAgIHN1cGVyKClcblxuICAgIGNvbnN0IHtcbiAgICAgIGN1cnJlbnQsXG4gICAgICBsb2NhbGVzLFxuICAgICAgdCxcbiAgICB9ID0gcHJlc2V0W0xhbmcucHJvcGVydHldXG5cbiAgICB0aGlzLmN1cnJlbnQgPSBjdXJyZW50XG4gICAgdGhpcy5sb2NhbGVzID0gbG9jYWxlc1xuICAgIHRoaXMudHJhbnNsYXRvciA9IHQgfHwgdGhpcy5kZWZhdWx0VHJhbnNsYXRvclxuICB9XG5cbiAgcHVibGljIGN1cnJlbnRMb2NhbGUgKGtleTogc3RyaW5nKSB7XG4gICAgY29uc3QgdHJhbnNsYXRpb24gPSB0aGlzLmxvY2FsZXNbdGhpcy5jdXJyZW50XVxuICAgIGNvbnN0IGRlZmF1bHRMb2NhbGUgPSB0aGlzLmxvY2FsZXNbdGhpcy5kZWZhdWx0TG9jYWxlXVxuXG4gICAgcmV0dXJuIGdldFRyYW5zbGF0aW9uKHRyYW5zbGF0aW9uLCBrZXksIGZhbHNlLCBkZWZhdWx0TG9jYWxlKVxuICB9XG5cbiAgcHVibGljIHQgKGtleTogc3RyaW5nLCAuLi5wYXJhbXM6IGFueVtdKSB7XG4gICAgaWYgKCFrZXkuc3RhcnRzV2l0aChMQU5HX1BSRUZJWCkpIHJldHVybiB0aGlzLnJlcGxhY2Uoa2V5LCBwYXJhbXMpXG5cbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdG9yKGtleSwgLi4ucGFyYW1zKVxuICB9XG5cbiAgcHJpdmF0ZSBkZWZhdWx0VHJhbnNsYXRvciAoa2V5OiBzdHJpbmcsIC4uLnBhcmFtczogYW55W10pIHtcbiAgICByZXR1cm4gdGhpcy5yZXBsYWNlKHRoaXMuY3VycmVudExvY2FsZShrZXkpLCBwYXJhbXMpXG4gIH1cblxuICBwcml2YXRlIHJlcGxhY2UgKHN0cjogc3RyaW5nLCBwYXJhbXM6IGFueVtdKSB7XG4gICAgcmV0dXJuIHN0ci5yZXBsYWNlKC9cXHsoXFxkKylcXH0vZywgKG1hdGNoOiBzdHJpbmcsIGluZGV4OiBzdHJpbmcpID0+IHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICByZXR1cm4gU3RyaW5nKHBhcmFtc1sraW5kZXhdKVxuICAgIH0pXG4gIH1cbn1cbiIsImltcG9ydCB7IFhZWiwgTEFCIH0gZnJvbSAnLi4vY29sb3JVdGlscydcblxuY29uc3QgZGVsdGEgPSAwLjIwNjg5NjU1MTcyNDEzNzkzIC8vIDbDtzI5XG5cbmNvbnN0IGNpZWxhYkZvcndhcmRUcmFuc2Zvcm0gPSAodDogbnVtYmVyKTogbnVtYmVyID0+IChcbiAgdCA+IGRlbHRhICoqIDNcbiAgICA/IE1hdGguY2JydCh0KVxuICAgIDogKHQgLyAoMyAqIGRlbHRhICoqIDIpKSArIDQgLyAyOVxuKVxuXG5jb25zdCBjaWVsYWJSZXZlcnNlVHJhbnNmb3JtID0gKHQ6IG51bWJlcik6IG51bWJlciA9PiAoXG4gIHQgPiBkZWx0YVxuICAgID8gdCAqKiAzXG4gICAgOiAoMyAqIGRlbHRhICoqIDIpICogKHQgLSA0IC8gMjkpXG4pXG5cbmV4cG9ydCBmdW5jdGlvbiBmcm9tWFlaICh4eXo6IFhZWik6IExBQiB7XG4gIGNvbnN0IHRyYW5zZm9ybSA9IGNpZWxhYkZvcndhcmRUcmFuc2Zvcm1cbiAgY29uc3QgdHJhbnNmb3JtZWRZID0gdHJhbnNmb3JtKHh5elsxXSlcblxuICByZXR1cm4gW1xuICAgIDExNiAqIHRyYW5zZm9ybWVkWSAtIDE2LFxuICAgIDUwMCAqICh0cmFuc2Zvcm0oeHl6WzBdIC8gMC45NTA0NykgLSB0cmFuc2Zvcm1lZFkpLFxuICAgIDIwMCAqICh0cmFuc2Zvcm1lZFkgLSB0cmFuc2Zvcm0oeHl6WzJdIC8gMS4wODg4MykpLFxuICBdXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1hZWiAobGFiOiBMQUIpOiBYWVoge1xuICBjb25zdCB0cmFuc2Zvcm0gPSBjaWVsYWJSZXZlcnNlVHJhbnNmb3JtXG4gIGNvbnN0IExuID0gKGxhYlswXSArIDE2KSAvIDExNlxuICByZXR1cm4gW1xuICAgIHRyYW5zZm9ybShMbiArIGxhYlsxXSAvIDUwMCkgKiAwLjk1MDQ3LFxuICAgIHRyYW5zZm9ybShMbiksXG4gICAgdHJhbnNmb3JtKExuIC0gbGFiWzJdIC8gMjAwKSAqIDEuMDg4ODMsXG4gIF1cbn1cbiIsImltcG9ydCB7IGNvbG9yVG9JbnQsIGludFRvSGV4LCBjb2xvclRvSGV4LCBDb2xvckludCB9IGZyb20gJy4uLy4uL3V0aWwvY29sb3JVdGlscydcbmltcG9ydCAqIGFzIHNSR0IgZnJvbSAnLi4vLi4vdXRpbC9jb2xvci90cmFuc2Zvcm1TUkdCJ1xuaW1wb3J0ICogYXMgTEFCIGZyb20gJy4uLy4uL3V0aWwvY29sb3IvdHJhbnNmb3JtQ0lFTEFCJ1xuaW1wb3J0IHtcbiAgVnVldGlmeVBhcnNlZFRoZW1lLFxuICBWdWV0aWZ5VGhlbWVJdGVtLFxufSBmcm9tICd2dWV0aWZ5L3R5cGVzL3NlcnZpY2VzL3RoZW1lJ1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2UgKFxuICB0aGVtZTogUmVjb3JkPHN0cmluZywgVnVldGlmeVRoZW1lSXRlbT4sXG4gIGlzSXRlbSA9IGZhbHNlLFxuICB2YXJpYXRpb25zID0gdHJ1ZSxcbik6IFZ1ZXRpZnlQYXJzZWRUaGVtZSB7XG4gIGNvbnN0IHsgYW5jaG9yLCAuLi52YXJpYW50IH0gPSB0aGVtZVxuICBjb25zdCBjb2xvcnMgPSBPYmplY3Qua2V5cyh2YXJpYW50KVxuICBjb25zdCBwYXJzZWRUaGVtZTogYW55ID0ge31cblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbG9ycy5sZW5ndGg7ICsraSkge1xuICAgIGNvbnN0IG5hbWUgPSBjb2xvcnNbaV1cbiAgICBjb25zdCB2YWx1ZSA9IHRoZW1lW25hbWVdXG5cbiAgICBpZiAodmFsdWUgPT0gbnVsbCkgY29udGludWVcblxuICAgIGlmICghdmFyaWF0aW9ucykge1xuICAgICAgcGFyc2VkVGhlbWVbbmFtZV0gPSB7IGJhc2U6IGludFRvSGV4KGNvbG9yVG9JbnQodmFsdWUpKSB9XG4gICAgfSBlbHNlIGlmIChpc0l0ZW0pIHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICBpZiAobmFtZSA9PT0gJ2Jhc2UnIHx8IG5hbWUuc3RhcnRzV2l0aCgnbGlnaHRlbicpIHx8IG5hbWUuc3RhcnRzV2l0aCgnZGFya2VuJykpIHtcbiAgICAgICAgcGFyc2VkVGhlbWVbbmFtZV0gPSBjb2xvclRvSGV4KHZhbHVlKVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgcGFyc2VkVGhlbWVbbmFtZV0gPSBwYXJzZSh2YWx1ZSwgdHJ1ZSwgdmFyaWF0aW9ucylcbiAgICB9IGVsc2Uge1xuICAgICAgcGFyc2VkVGhlbWVbbmFtZV0gPSBnZW5WYXJpYXRpb25zKG5hbWUsIGNvbG9yVG9JbnQodmFsdWUpKVxuICAgIH1cbiAgfVxuXG4gIGlmICghaXNJdGVtKSB7XG4gICAgcGFyc2VkVGhlbWUuYW5jaG9yID0gYW5jaG9yIHx8IHBhcnNlZFRoZW1lLmJhc2UgfHwgcGFyc2VkVGhlbWUucHJpbWFyeS5iYXNlXG4gIH1cblxuICByZXR1cm4gcGFyc2VkVGhlbWVcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZSB0aGUgQ1NTIGZvciBhIGJhc2UgY29sb3IgKC5wcmltYXJ5KVxuICovXG5jb25zdCBnZW5CYXNlQ29sb3IgPSAobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIGBcbi52LWFwcGxpY2F0aW9uIC4ke25hbWV9IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHt2YWx1ZX0gIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAke3ZhbHVlfSAhaW1wb3J0YW50O1xufVxuLnYtYXBwbGljYXRpb24gLiR7bmFtZX0tLXRleHQge1xuICBjb2xvcjogJHt2YWx1ZX0gIWltcG9ydGFudDtcbiAgY2FyZXQtY29sb3I6ICR7dmFsdWV9ICFpbXBvcnRhbnQ7XG59YFxufVxuXG4vKipcbiAqIEdlbmVyYXRlIHRoZSBDU1MgZm9yIGEgdmFyaWFudCBjb2xvciAoLnByaW1hcnkuZGFya2VuLTIpXG4gKi9cbmNvbnN0IGdlblZhcmlhbnRDb2xvciA9IChuYW1lOiBzdHJpbmcsIHZhcmlhbnQ6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IFt0eXBlLCBuXSA9IHZhcmlhbnQuc3BsaXQoLyhcXGQpLywgMilcbiAgcmV0dXJuIGBcbi52LWFwcGxpY2F0aW9uIC4ke25hbWV9LiR7dHlwZX0tJHtufSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7dmFsdWV9ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogJHt2YWx1ZX0gIWltcG9ydGFudDtcbn1cbi52LWFwcGxpY2F0aW9uIC4ke25hbWV9LS10ZXh0LnRleHQtLSR7dHlwZX0tJHtufSB7XG4gIGNvbG9yOiAke3ZhbHVlfSAhaW1wb3J0YW50O1xuICBjYXJldC1jb2xvcjogJHt2YWx1ZX0gIWltcG9ydGFudDtcbn1gXG59XG5cbmNvbnN0IGdlbkNvbG9yVmFyaWFibGVOYW1lID0gKG5hbWU6IHN0cmluZywgdmFyaWFudCA9ICdiYXNlJyk6IHN0cmluZyA9PiBgLS12LSR7bmFtZX0tJHt2YXJpYW50fWBcblxuY29uc3QgZ2VuQ29sb3JWYXJpYWJsZSA9IChuYW1lOiBzdHJpbmcsIHZhcmlhbnQgPSAnYmFzZScpOiBzdHJpbmcgPT4gYHZhcigke2dlbkNvbG9yVmFyaWFibGVOYW1lKG5hbWUsIHZhcmlhbnQpfSlgXG5cbmV4cG9ydCBmdW5jdGlvbiBnZW5TdHlsZXMgKHRoZW1lOiBWdWV0aWZ5UGFyc2VkVGhlbWUsIGNzc1ZhciA9IGZhbHNlKTogc3RyaW5nIHtcbiAgY29uc3QgeyBhbmNob3IsIC4uLnZhcmlhbnQgfSA9IHRoZW1lXG4gIGNvbnN0IGNvbG9ycyA9IE9iamVjdC5rZXlzKHZhcmlhbnQpXG5cbiAgaWYgKCFjb2xvcnMubGVuZ3RoKSByZXR1cm4gJydcblxuICBsZXQgdmFyaWFibGVzQ3NzID0gJydcbiAgbGV0IGNzcyA9ICcnXG5cbiAgY29uc3QgYUNvbG9yID0gY3NzVmFyID8gZ2VuQ29sb3JWYXJpYWJsZSgnYW5jaG9yJykgOiBhbmNob3JcbiAgY3NzICs9IGAudi1hcHBsaWNhdGlvbiBhIHsgY29sb3I6ICR7YUNvbG9yfTsgfWBcbiAgY3NzVmFyICYmICh2YXJpYWJsZXNDc3MgKz0gYCAgJHtnZW5Db2xvclZhcmlhYmxlTmFtZSgnYW5jaG9yJyl9OiAke2FuY2hvcn07XFxuYClcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbG9ycy5sZW5ndGg7ICsraSkge1xuICAgIGNvbnN0IG5hbWUgPSBjb2xvcnNbaV1cbiAgICBjb25zdCB2YWx1ZSA9IHRoZW1lW25hbWVdXG5cbiAgICBjc3MgKz0gZ2VuQmFzZUNvbG9yKG5hbWUsIGNzc1ZhciA/IGdlbkNvbG9yVmFyaWFibGUobmFtZSkgOiB2YWx1ZS5iYXNlKVxuICAgIGNzc1ZhciAmJiAodmFyaWFibGVzQ3NzICs9IGAgICR7Z2VuQ29sb3JWYXJpYWJsZU5hbWUobmFtZSl9OiAke3ZhbHVlLmJhc2V9O1xcbmApXG5cbiAgICBjb25zdCB2YXJpYW50cyA9IE9iamVjdC5rZXlzKHZhbHVlKVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFyaWFudHMubGVuZ3RoOyArK2kpIHtcbiAgICAgIGNvbnN0IHZhcmlhbnQgPSB2YXJpYW50c1tpXVxuICAgICAgY29uc3QgdmFyaWFudFZhbHVlID0gdmFsdWVbdmFyaWFudF1cbiAgICAgIGlmICh2YXJpYW50ID09PSAnYmFzZScpIGNvbnRpbnVlXG5cbiAgICAgIGNzcyArPSBnZW5WYXJpYW50Q29sb3IobmFtZSwgdmFyaWFudCwgY3NzVmFyID8gZ2VuQ29sb3JWYXJpYWJsZShuYW1lLCB2YXJpYW50KSA6IHZhcmlhbnRWYWx1ZSlcbiAgICAgIGNzc1ZhciAmJiAodmFyaWFibGVzQ3NzICs9IGAgICR7Z2VuQ29sb3JWYXJpYWJsZU5hbWUobmFtZSwgdmFyaWFudCl9OiAke3ZhcmlhbnRWYWx1ZX07XFxuYClcbiAgICB9XG4gIH1cblxuICBpZiAoY3NzVmFyKSB7XG4gICAgdmFyaWFibGVzQ3NzID0gYDpyb290IHtcXG4ke3ZhcmlhYmxlc0Nzc319XFxuXFxuYFxuICB9XG5cbiAgcmV0dXJuIHZhcmlhYmxlc0NzcyArIGNzc1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuVmFyaWF0aW9ucyAobmFtZTogc3RyaW5nLCB2YWx1ZTogQ29sb3JJbnQpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgY29uc3QgdmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgIGJhc2U6IGludFRvSGV4KHZhbHVlKSxcbiAgfVxuXG4gIGZvciAobGV0IGkgPSA1OyBpID4gMDsgLS1pKSB7XG4gICAgdmFsdWVzW2BsaWdodGVuJHtpfWBdID0gaW50VG9IZXgobGlnaHRlbih2YWx1ZSwgaSkpXG4gIH1cblxuICBmb3IgKGxldCBpID0gMTsgaSA8PSA0OyArK2kpIHtcbiAgICB2YWx1ZXNbYGRhcmtlbiR7aX1gXSA9IGludFRvSGV4KGRhcmtlbih2YWx1ZSwgaSkpXG4gIH1cblxuICByZXR1cm4gdmFsdWVzXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsaWdodGVuICh2YWx1ZTogQ29sb3JJbnQsIGFtb3VudDogbnVtYmVyKTogQ29sb3JJbnQge1xuICBjb25zdCBsYWIgPSBMQUIuZnJvbVhZWihzUkdCLnRvWFlaKHZhbHVlKSlcbiAgbGFiWzBdID0gbGFiWzBdICsgYW1vdW50ICogMTBcbiAgcmV0dXJuIHNSR0IuZnJvbVhZWihMQUIudG9YWVoobGFiKSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRhcmtlbiAodmFsdWU6IENvbG9ySW50LCBhbW91bnQ6IG51bWJlcik6IENvbG9ySW50IHtcbiAgY29uc3QgbGFiID0gTEFCLmZyb21YWVooc1JHQi50b1hZWih2YWx1ZSkpXG4gIGxhYlswXSA9IGxhYlswXSAtIGFtb3VudCAqIDEwXG4gIHJldHVybiBzUkdCLmZyb21YWVooTEFCLnRvWFlaKGxhYikpXG59XG4iLCIvKiBlc2xpbnQtZGlzYWJsZSBuby1tdWx0aS1zcGFjZXMgKi9cbi8vIEV4dGVuc2lvbnNcbmltcG9ydCB7IFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlJ1xuXG4vLyBVdGlsaXRpZXNcbmltcG9ydCAqIGFzIFRoZW1lVXRpbHMgZnJvbSAnLi91dGlscydcbmltcG9ydCB7IGdldE5lc3RlZFZhbHVlIH0gZnJvbSAnLi4vLi4vdXRpbC9oZWxwZXJzJ1xuXG4vLyBUeXBlc1xuaW1wb3J0IFZ1ZSBmcm9tICd2dWUnXG5pbXBvcnQgeyBWdWV0aWZ5UHJlc2V0IH0gZnJvbSAndnVldGlmeS90eXBlcy9zZXJ2aWNlcy9wcmVzZXRzJ1xuaW1wb3J0IHtcbiAgVnVldGlmeVBhcnNlZFRoZW1lLFxuICBWdWV0aWZ5VGhlbWVzLFxuICBWdWV0aWZ5VGhlbWVWYXJpYW50LFxuICBUaGVtZSBhcyBJVGhlbWUsXG59IGZyb20gJ3Z1ZXRpZnkvdHlwZXMvc2VydmljZXMvdGhlbWUnXG5cbmV4cG9ydCBjbGFzcyBUaGVtZSBleHRlbmRzIFNlcnZpY2Uge1xuICBzdGF0aWMgcHJvcGVydHk6ICd0aGVtZScgPSAndGhlbWUnXG5cbiAgcHVibGljIGRpc2FibGVkID0gZmFsc2VcblxuICBwdWJsaWMgb3B0aW9uczogSVRoZW1lWydvcHRpb25zJ11cblxuICBwdWJsaWMgc3R5bGVFbD86IEhUTUxTdHlsZUVsZW1lbnRcblxuICBwdWJsaWMgdGhlbWVzOiBWdWV0aWZ5VGhlbWVzXG5cbiAgcHVibGljIGRlZmF1bHRzOiBWdWV0aWZ5VGhlbWVzXG5cbiAgcHJpdmF0ZSBpc0RhcmsgPSBudWxsIGFzIGJvb2xlYW4gfCBudWxsXG5cbiAgcHJpdmF0ZSB2dWVJbnN0YW5jZSA9IG51bGwgYXMgVnVlIHwgbnVsbFxuXG4gIHByaXZhdGUgdnVlTWV0YSA9IG51bGwgYXMgYW55IHwgbnVsbFxuXG4gIGNvbnN0cnVjdG9yIChwcmVzZXQ6IFZ1ZXRpZnlQcmVzZXQpIHtcbiAgICBzdXBlcigpXG5cbiAgICBjb25zdCB7XG4gICAgICBkYXJrLFxuICAgICAgZGlzYWJsZSxcbiAgICAgIG9wdGlvbnMsXG4gICAgICB0aGVtZXMsXG4gICAgfSA9IHByZXNldFtUaGVtZS5wcm9wZXJ0eV1cblxuICAgIHRoaXMuZGFyayA9IEJvb2xlYW4oZGFyaylcbiAgICB0aGlzLmRlZmF1bHRzID0gdGhpcy50aGVtZXMgPSB0aGVtZXNcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zXG5cbiAgICBpZiAoZGlzYWJsZSkge1xuICAgICAgdGhpcy5kaXNhYmxlZCA9IHRydWVcblxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy50aGVtZXMgPSB7XG4gICAgICBkYXJrOiB0aGlzLmZpbGxWYXJpYW50KHRoZW1lcy5kYXJrLCB0cnVlKSxcbiAgICAgIGxpZ2h0OiB0aGlzLmZpbGxWYXJpYW50KHRoZW1lcy5saWdodCwgZmFsc2UpLFxuICAgIH1cbiAgfVxuXG4gIC8vIFdoZW4gc2V0dGluZyBjc3MsIGNoZWNrIGZvciBlbGVtZW50XG4gIC8vIGFuZCBhcHBseSBuZXcgdmFsdWVzXG4gIHNldCBjc3MgKHZhbDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMudnVlTWV0YSkge1xuICAgICAgaWYgKHRoaXMuaXNWdWVNZXRhMjMpIHtcbiAgICAgICAgdGhpcy5hcHBseVZ1ZU1ldGEyMygpXG4gICAgICB9XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgdGhpcy5jaGVja09yQ3JlYXRlU3R5bGVFbGVtZW50KCkgJiYgKHRoaXMuc3R5bGVFbCEuaW5uZXJIVE1MID0gdmFsKVxuICB9XG5cbiAgc2V0IGRhcmsgKHZhbDogYm9vbGVhbikge1xuICAgIGNvbnN0IG9sZERhcmsgPSB0aGlzLmlzRGFya1xuXG4gICAgdGhpcy5pc0RhcmsgPSB2YWxcbiAgICAvLyBPbmx5IGFwcGx5IHRoZW1lIGFmdGVyIGRhcmtcbiAgICAvLyBoYXMgYWxyZWFkeSBiZWVuIHNldCBiZWZvcmVcbiAgICBvbGREYXJrICE9IG51bGwgJiYgdGhpcy5hcHBseVRoZW1lKClcbiAgfVxuXG4gIGdldCBkYXJrICgpIHtcbiAgICByZXR1cm4gQm9vbGVhbih0aGlzLmlzRGFyaylcbiAgfVxuXG4gIC8vIEFwcGx5IGN1cnJlbnQgdGhlbWUgZGVmYXVsdFxuICAvLyBvbmx5IGNhbGxlZCBvbiBjbGllbnQgc2lkZVxuICBwdWJsaWMgYXBwbHlUaGVtZSAoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybiB0aGlzLmNsZWFyQ3NzKClcblxuICAgIHRoaXMuY3NzID0gdGhpcy5nZW5lcmF0ZWRTdHlsZXNcbiAgfVxuXG4gIHB1YmxpYyBjbGVhckNzcyAoKTogdm9pZCB7XG4gICAgdGhpcy5jc3MgPSAnJ1xuICB9XG5cbiAgLy8gSW5pdGlhbGl6ZSB0aGVtZSBmb3IgU1NSIGFuZCBTUEFcbiAgLy8gQXR0YWNoIHRvIHNzckNvbnRleHQgaGVhZCBvclxuICAvLyBhcHBseSBuZXcgdGhlbWUgdG8gZG9jdW1lbnRcbiAgcHVibGljIGluaXQgKHJvb3Q6IFZ1ZSwgc3NyQ29udGV4dD86IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm5cblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKChyb290IGFzIGFueSkuJG1ldGEpIHtcbiAgICAgIHRoaXMuaW5pdFZ1ZU1ldGEocm9vdClcbiAgICB9IGVsc2UgaWYgKHNzckNvbnRleHQpIHtcbiAgICAgIHRoaXMuaW5pdFNTUihzc3JDb250ZXh0KVxuICAgIH1cblxuICAgIHRoaXMuaW5pdFRoZW1lKClcbiAgfVxuXG4gIC8vIEFsbG93cyBmb3IgeW91IHRvIHNldCB0YXJnZXQgdGhlbWVcbiAgcHVibGljIHNldFRoZW1lICh0aGVtZTogJ2xpZ2h0JyB8ICdkYXJrJywgdmFsdWU6IG9iamVjdCkge1xuICAgIHRoaXMudGhlbWVzW3RoZW1lXSA9IE9iamVjdC5hc3NpZ24odGhpcy50aGVtZXNbdGhlbWVdLCB2YWx1ZSlcbiAgICB0aGlzLmFwcGx5VGhlbWUoKVxuICB9XG5cbiAgLy8gUmVzZXQgdGhlbWUgZGVmYXVsdHNcbiAgcHVibGljIHJlc2V0VGhlbWVzICgpIHtcbiAgICB0aGlzLnRoZW1lcy5saWdodCA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZGVmYXVsdHMubGlnaHQpXG4gICAgdGhpcy50aGVtZXMuZGFyayA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZGVmYXVsdHMuZGFyaylcbiAgICB0aGlzLmFwcGx5VGhlbWUoKVxuICB9XG5cbiAgLy8gQ2hlY2sgZm9yIGV4aXN0ZW5jZSBvZiBzdHlsZSBlbGVtZW50XG4gIHByaXZhdGUgY2hlY2tPckNyZWF0ZVN0eWxlRWxlbWVudCAoKTogYm9vbGVhbiB7XG4gICAgdGhpcy5zdHlsZUVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Z1ZXRpZnktdGhlbWUtc3R5bGVzaGVldCcpIGFzIEhUTUxTdHlsZUVsZW1lbnRcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgaWYgKHRoaXMuc3R5bGVFbCkgcmV0dXJuIHRydWVcblxuICAgIHRoaXMuZ2VuU3R5bGVFbGVtZW50KCkgLy8gSWYgZG9lc24ndCBoYXZlIGl0LCBjcmVhdGUgaXRcblxuICAgIHJldHVybiBCb29sZWFuKHRoaXMuc3R5bGVFbClcbiAgfVxuXG4gIHByaXZhdGUgZmlsbFZhcmlhbnQgKFxuICAgIHRoZW1lOiBQYXJ0aWFsPFZ1ZXRpZnlUaGVtZVZhcmlhbnQ+ID0ge30sXG4gICAgZGFyazogYm9vbGVhblxuICApOiBWdWV0aWZ5VGhlbWVWYXJpYW50IHtcbiAgICBjb25zdCBkZWZhdWx0VGhlbWUgPSB0aGlzLnRoZW1lc1tkYXJrID8gJ2RhcmsnIDogJ2xpZ2h0J11cblxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LFxuICAgICAgZGVmYXVsdFRoZW1lLFxuICAgICAgdGhlbWVcbiAgICApXG4gIH1cblxuICAvLyBHZW5lcmF0ZSB0aGUgc3R5bGUgZWxlbWVudFxuICAvLyBpZiBhcHBsaWNhYmxlXG4gIHByaXZhdGUgZ2VuU3R5bGVFbGVtZW50ICgpOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJykgcmV0dXJuXG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHRoaXMuc3R5bGVFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJylcbiAgICB0aGlzLnN0eWxlRWwudHlwZSA9ICd0ZXh0L2NzcydcbiAgICB0aGlzLnN0eWxlRWwuaWQgPSAndnVldGlmeS10aGVtZS1zdHlsZXNoZWV0J1xuXG4gICAgaWYgKHRoaXMub3B0aW9ucy5jc3BOb25jZSkge1xuICAgICAgdGhpcy5zdHlsZUVsLnNldEF0dHJpYnV0ZSgnbm9uY2UnLCB0aGlzLm9wdGlvbnMuY3NwTm9uY2UpXG4gICAgfVxuXG4gICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZCh0aGlzLnN0eWxlRWwpXG4gIH1cblxuICBwcml2YXRlIGluaXRWdWVNZXRhIChyb290OiBhbnkpIHtcbiAgICB0aGlzLnZ1ZU1ldGEgPSByb290LiRtZXRhKClcbiAgICBpZiAodGhpcy5pc1Z1ZU1ldGEyMykge1xuICAgICAgLy8gdnVlLW1ldGEgbmVlZHMgdG8gYXBwbHkgYWZ0ZXIgbW91bnRlZCgpXG4gICAgICByb290LiRuZXh0VGljaygoKSA9PiB7XG4gICAgICAgIHRoaXMuYXBwbHlWdWVNZXRhMjMoKVxuICAgICAgfSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IG1ldGFLZXlOYW1lID0gdHlwZW9mIHRoaXMudnVlTWV0YS5nZXRPcHRpb25zID09PSAnZnVuY3Rpb24nID8gdGhpcy52dWVNZXRhLmdldE9wdGlvbnMoKS5rZXlOYW1lIDogJ21ldGFJbmZvJ1xuICAgIGNvbnN0IG1ldGFJbmZvID0gcm9vdC4kb3B0aW9uc1ttZXRhS2V5TmFtZV0gfHwge31cblxuICAgIHJvb3QuJG9wdGlvbnNbbWV0YUtleU5hbWVdID0gKCkgPT4ge1xuICAgICAgbWV0YUluZm8uc3R5bGUgPSBtZXRhSW5mby5zdHlsZSB8fCBbXVxuXG4gICAgICBjb25zdCB2dWV0aWZ5U3R5bGVzaGVldCA9IG1ldGFJbmZvLnN0eWxlLmZpbmQoKHM6IGFueSkgPT4gcy5pZCA9PT0gJ3Z1ZXRpZnktdGhlbWUtc3R5bGVzaGVldCcpXG5cbiAgICAgIGlmICghdnVldGlmeVN0eWxlc2hlZXQpIHtcbiAgICAgICAgbWV0YUluZm8uc3R5bGUucHVzaCh7XG4gICAgICAgICAgY3NzVGV4dDogdGhpcy5nZW5lcmF0ZWRTdHlsZXMsXG4gICAgICAgICAgdHlwZTogJ3RleHQvY3NzJyxcbiAgICAgICAgICBpZDogJ3Z1ZXRpZnktdGhlbWUtc3R5bGVzaGVldCcsXG4gICAgICAgICAgbm9uY2U6ICh0aGlzLm9wdGlvbnMgfHwge30pLmNzcE5vbmNlLFxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdnVldGlmeVN0eWxlc2hlZXQuY3NzVGV4dCA9IHRoaXMuZ2VuZXJhdGVkU3R5bGVzXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBtZXRhSW5mb1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlWdWVNZXRhMjMgKCkge1xuICAgIGNvbnN0IHsgc2V0IH0gPSB0aGlzLnZ1ZU1ldGEuYWRkQXBwKCd2dWV0aWZ5JylcblxuICAgIHNldCh7XG4gICAgICBzdHlsZTogW3tcbiAgICAgICAgY3NzVGV4dDogdGhpcy5nZW5lcmF0ZWRTdHlsZXMsXG4gICAgICAgIHR5cGU6ICd0ZXh0L2NzcycsXG4gICAgICAgIGlkOiAndnVldGlmeS10aGVtZS1zdHlsZXNoZWV0JyxcbiAgICAgICAgbm9uY2U6IHRoaXMub3B0aW9ucy5jc3BOb25jZSxcbiAgICAgIH1dLFxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGluaXRTU1IgKHNzckNvbnRleHQ/OiBhbnkpIHtcbiAgICAvLyBTU1JcbiAgICBjb25zdCBub25jZSA9IHRoaXMub3B0aW9ucy5jc3BOb25jZSA/IGAgbm9uY2U9XCIke3RoaXMub3B0aW9ucy5jc3BOb25jZX1cImAgOiAnJ1xuICAgIHNzckNvbnRleHQuaGVhZCA9IHNzckNvbnRleHQuaGVhZCB8fCAnJ1xuICAgIHNzckNvbnRleHQuaGVhZCArPSBgPHN0eWxlIHR5cGU9XCJ0ZXh0L2Nzc1wiIGlkPVwidnVldGlmeS10aGVtZS1zdHlsZXNoZWV0XCIke25vbmNlfT4ke3RoaXMuZ2VuZXJhdGVkU3R5bGVzfTwvc3R5bGU+YFxuICB9XG5cbiAgcHJpdmF0ZSBpbml0VGhlbWUgKCkge1xuICAgIC8vIE9ubHkgd2F0Y2ggZm9yIHJlYWN0aXZpdHkgb24gY2xpZW50IHNpZGVcbiAgICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJykgcmV0dXJuXG5cbiAgICAvLyBJZiB3ZSBnZXQgaGVyZSBzb21laG93LCBlbnN1cmVcbiAgICAvLyBleGlzdGluZyBpbnN0YW5jZSBpcyByZW1vdmVkXG4gICAgaWYgKHRoaXMudnVlSW5zdGFuY2UpIHRoaXMudnVlSW5zdGFuY2UuJGRlc3Ryb3koKVxuXG4gICAgLy8gVXNlIFZ1ZSBpbnN0YW5jZSB0byB0cmFjayByZWFjdGl2aXR5XG4gICAgLy8gVE9ETzogVXBkYXRlIHRvIHVzZSBSRkMgaWYgbWVyZ2VkXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3Z1ZWpzL3JmY3MvYmxvYi9hZHZhbmNlZC1yZWFjdGl2aXR5LWFwaS9hY3RpdmUtcmZjcy8wMDAwLWFkdmFuY2VkLXJlYWN0aXZpdHktYXBpLm1kXG4gICAgdGhpcy52dWVJbnN0YW5jZSA9IG5ldyBWdWUoe1xuICAgICAgZGF0YTogeyB0aGVtZXM6IHRoaXMudGhlbWVzIH0sXG5cbiAgICAgIHdhdGNoOiB7XG4gICAgICAgIHRoZW1lczoge1xuICAgICAgICAgIGltbWVkaWF0ZTogdHJ1ZSxcbiAgICAgICAgICBkZWVwOiB0cnVlLFxuICAgICAgICAgIGhhbmRsZXI6ICgpID0+IHRoaXMuYXBwbHlUaGVtZSgpLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KVxuICB9XG5cbiAgZ2V0IGN1cnJlbnRUaGVtZSAoKSB7XG4gICAgY29uc3QgdGFyZ2V0ID0gdGhpcy5kYXJrID8gJ2RhcmsnIDogJ2xpZ2h0J1xuXG4gICAgcmV0dXJuIHRoaXMudGhlbWVzW3RhcmdldF1cbiAgfVxuXG4gIGdldCBnZW5lcmF0ZWRTdHlsZXMgKCk6IHN0cmluZyB7XG4gICAgY29uc3QgdGhlbWUgPSB0aGlzLnBhcnNlZFRoZW1lXG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5vcHRpb25zIHx8IHt9XG4gICAgbGV0IGNzc1xuXG4gICAgaWYgKG9wdGlvbnMudGhlbWVDYWNoZSAhPSBudWxsKSB7XG4gICAgICBjc3MgPSBvcHRpb25zLnRoZW1lQ2FjaGUuZ2V0KHRoZW1lKVxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICBpZiAoY3NzICE9IG51bGwpIHJldHVybiBjc3NcbiAgICB9XG5cbiAgICBjc3MgPSBUaGVtZVV0aWxzLmdlblN0eWxlcyh0aGVtZSwgb3B0aW9ucy5jdXN0b21Qcm9wZXJ0aWVzKVxuXG4gICAgaWYgKG9wdGlvbnMubWluaWZ5VGhlbWUgIT0gbnVsbCkge1xuICAgICAgY3NzID0gb3B0aW9ucy5taW5pZnlUaGVtZShjc3MpXG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMudGhlbWVDYWNoZSAhPSBudWxsKSB7XG4gICAgICBvcHRpb25zLnRoZW1lQ2FjaGUuc2V0KHRoZW1lLCBjc3MpXG4gICAgfVxuXG4gICAgcmV0dXJuIGNzc1xuICB9XG5cbiAgZ2V0IHBhcnNlZFRoZW1lICgpOiBWdWV0aWZ5UGFyc2VkVGhlbWUge1xuICAgIHJldHVybiBUaGVtZVV0aWxzLnBhcnNlKFxuICAgICAgdGhpcy5jdXJyZW50VGhlbWUgfHwge30sXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBnZXROZXN0ZWRWYWx1ZSh0aGlzLm9wdGlvbnMsIFsndmFyaWF0aW9ucyddLCB0cnVlKVxuICAgIClcbiAgfVxuXG4gIC8vIElzIHVzaW5nIHYyLjMgb2YgdnVlLW1ldGFcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL251eHQvdnVlLW1ldGEvcmVsZWFzZXMvdGFnL3YyLjMuMFxuICBwcml2YXRlIGdldCBpc1Z1ZU1ldGEyMyAoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLnZ1ZU1ldGEuYWRkQXBwID09PSAnZnVuY3Rpb24nXG4gIH1cbn1cbiIsImltcG9ydCB7IGluc3RhbGwgfSBmcm9tICcuL2luc3RhbGwnXG5cbi8vIFR5cGVzXG5pbXBvcnQgVnVlIGZyb20gJ3Z1ZSdcbmltcG9ydCB7XG4gIFVzZXJWdWV0aWZ5UHJlc2V0LFxuICBWdWV0aWZ5UHJlc2V0LFxufSBmcm9tICd2dWV0aWZ5L3R5cGVzL3NlcnZpY2VzL3ByZXNldHMnXG5pbXBvcnQge1xuICBWdWV0aWZ5U2VydmljZSxcbiAgVnVldGlmeVNlcnZpY2VDb250cmFjdCxcbn0gZnJvbSAndnVldGlmeS90eXBlcy9zZXJ2aWNlcydcblxuLy8gU2VydmljZXNcbmltcG9ydCAqIGFzIHNlcnZpY2VzIGZyb20gJy4vc2VydmljZXMnXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZ1ZXRpZnkge1xuICBzdGF0aWMgaW5zdGFsbCA9IGluc3RhbGxcblxuICBzdGF0aWMgaW5zdGFsbGVkID0gZmFsc2VcblxuICBzdGF0aWMgdmVyc2lvbiA9IF9fVlVFVElGWV9WRVJTSU9OX19cblxuICBzdGF0aWMgY29uZmlnID0ge1xuICAgIHNpbGVudDogZmFsc2UsXG4gIH1cblxuICBwdWJsaWMgZnJhbWV3b3JrOiBEaWN0aW9uYXJ5PFZ1ZXRpZnlTZXJ2aWNlQ29udHJhY3Q+ID0ge31cblxuICBwdWJsaWMgaW5zdGFsbGVkOiBzdHJpbmdbXSA9IFtdXG5cbiAgcHVibGljIHByZXNldCA9IHt9IGFzIFZ1ZXRpZnlQcmVzZXRcblxuICBwdWJsaWMgdXNlclByZXNldDogVXNlclZ1ZXRpZnlQcmVzZXQgPSB7fVxuXG4gIGNvbnN0cnVjdG9yICh1c2VyUHJlc2V0OiBVc2VyVnVldGlmeVByZXNldCA9IHt9KSB7XG4gICAgdGhpcy51c2VyUHJlc2V0ID0gdXNlclByZXNldFxuXG4gICAgdGhpcy51c2Uoc2VydmljZXMuUHJlc2V0cylcbiAgICB0aGlzLnVzZShzZXJ2aWNlcy5BcHBsaWNhdGlvbilcbiAgICB0aGlzLnVzZShzZXJ2aWNlcy5CcmVha3BvaW50KVxuICAgIHRoaXMudXNlKHNlcnZpY2VzLkdvdG8pXG4gICAgdGhpcy51c2Uoc2VydmljZXMuSWNvbnMpXG4gICAgdGhpcy51c2Uoc2VydmljZXMuTGFuZylcbiAgICB0aGlzLnVzZShzZXJ2aWNlcy5UaGVtZSlcbiAgfVxuXG4gIC8vIENhbGxlZCBvbiB0aGUgbmV3IHZ1ZXRpZnkgaW5zdGFuY2VcbiAgLy8gYm9vdHN0cmFwIGluIGluc3RhbGwgYmVmb3JlQ3JlYXRlXG4gIC8vIEV4cG9zZXMgc3NyQ29udGV4dCBpZiBhdmFpbGFibGVcbiAgaW5pdCAocm9vdDogVnVlLCBzc3JDb250ZXh0Pzogb2JqZWN0KSB7XG4gICAgdGhpcy5pbnN0YWxsZWQuZm9yRWFjaChwcm9wZXJ0eSA9PiB7XG4gICAgICBjb25zdCBzZXJ2aWNlID0gdGhpcy5mcmFtZXdvcmtbcHJvcGVydHldXG5cbiAgICAgIHNlcnZpY2UuZnJhbWV3b3JrID0gdGhpcy5mcmFtZXdvcmtcblxuICAgICAgc2VydmljZS5pbml0KHJvb3QsIHNzckNvbnRleHQpXG4gICAgfSlcblxuICAgIC8vIHJ0bCBpcyBub3QgaW5zdGFsbGVkIGFuZFxuICAgIC8vIHdpbGwgbmV2ZXIgYmUgY2FsbGVkIGJ5XG4gICAgLy8gdGhlIGluaXQgcHJvY2Vzc1xuICAgIHRoaXMuZnJhbWV3b3JrLnJ0bCA9IEJvb2xlYW4odGhpcy5wcmVzZXQucnRsKSBhcyBhbnlcbiAgfVxuXG4gIC8vIEluc3RhbnRpYXRlIGEgVnVldGlmeVNlcnZpY2VcbiAgdXNlIChTZXJ2aWNlOiBWdWV0aWZ5U2VydmljZSkge1xuICAgIGNvbnN0IHByb3BlcnR5ID0gU2VydmljZS5wcm9wZXJ0eVxuXG4gICAgaWYgKHRoaXMuaW5zdGFsbGVkLmluY2x1ZGVzKHByb3BlcnR5KSkgcmV0dXJuXG5cbiAgICAvLyBUT0RPIG1heWJlIGEgc3BlY2lmaWMgdHlwZSBmb3IgYXJnIDI/XG4gICAgdGhpcy5mcmFtZXdvcmtbcHJvcGVydHldID0gbmV3IFNlcnZpY2UodGhpcy5wcmVzZXQsIHRoaXMgYXMgYW55KVxuICAgIHRoaXMuaW5zdGFsbGVkLnB1c2gocHJvcGVydHkpXG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///118\n")},,,function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return inject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return provide; });\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);\n/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(10);\n\n\n\n\nfunction generateWarning(child, parent) {\n return function () {\n return Object(_util_console__WEBPACK_IMPORTED_MODULE_2__[/* consoleWarn */ "c"])("The ".concat(child, " component must be used inside a ").concat(parent));\n };\n}\n\nfunction inject(namespace, child, parent) {\n var defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent)\n } : null;\n return vue__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].extend({\n name: \'registrable-inject\',\n inject: Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({}, namespace, {\n default: defaultImpl\n })\n });\n}\nfunction provide(namespace) {\n var self = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return vue__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].extend({\n name: \'registrable-provide\',\n methods: self ? {} : {\n register: null,\n unregister: null\n },\n provide: function provide() {\n return Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({}, namespace, self ? this : {\n register: this.register,\n unregister: this.unregister\n });\n }\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL21peGlucy9yZWdpc3RyYWJsZS9pbmRleC50cz9iZWRhIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBRUE7O0FBRUEsd0NBQXVEO0FBQ3JELFNBQU87QUFBQSxXQUFNLHlFQUFXLGVBQVEsS0FBUiw4Q0FBeEIsTUFBd0IsRUFBakI7QUFBQSxHQUFQO0FBQ0Q7O0FBU0ssMENBRTBDO0FBQzlDLE1BQU0sV0FBVyxHQUFHLEtBQUssSUFBTCxTQUFrQjtBQUNwQyxZQUFRLEVBQUUsZUFBZSxRQURXLE1BQ1gsQ0FEVztBQUVwQyxjQUFVLEVBQUUsZUFBZTtBQUZTLEdBQWxCLEdBQXBCO0FBS0EsU0FBTyxtREFBRyxDQUFILE9BQVc7QUFDaEIsUUFBSSxFQURZO0FBR2hCLFVBQU0sRUFBRSxzR0FDTixTQURJLEVBQ1M7QUFDWCxhQUFPLEVBQUU7QUFERSxLQURUO0FBSFUsR0FBWCxDQUFQO0FBU0Q7QUFFSyw0QkFBa0Q7QUFBQSxNQUFaLElBQVksdUVBQWxELEtBQWtEO0FBQ3RELFNBQU8sbURBQUcsQ0FBSCxPQUFXO0FBQ2hCLFFBQUksRUFEWTtBQUdoQixXQUFPLEVBQUUsSUFBSSxRQUFRO0FBQ25CLGNBQVEsRUFEVztBQUVuQixnQkFBVSxFQUFFO0FBRk8sS0FITDtBQU9oQixXQVBnQixxQkFPVDtBQUNMLG1IQUNFLFNBREYsRUFDZSxJQUFJLFVBQVU7QUFDekIsZ0JBQVEsRUFBRSxLQURlO0FBRXpCLGtCQUFVLEVBQUUsS0FBSztBQUZRLE9BRDdCO0FBTUQ7QUFkZSxHQUFYLENBQVA7QUFnQkQiLCJmaWxlIjoiMTIxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFZ1ZSBmcm9tICd2dWUnXG5pbXBvcnQgeyBWdWVDb25zdHJ1Y3RvciB9IGZyb20gJ3Z1ZS90eXBlcy92dWUnXG5pbXBvcnQgeyBjb25zb2xlV2FybiB9IGZyb20gJy4uLy4uL3V0aWwvY29uc29sZSdcblxuZnVuY3Rpb24gZ2VuZXJhdGVXYXJuaW5nIChjaGlsZDogc3RyaW5nLCBwYXJlbnQ6IHN0cmluZykge1xuICByZXR1cm4gKCkgPT4gY29uc29sZVdhcm4oYFRoZSAke2NoaWxkfSBjb21wb25lbnQgbXVzdCBiZSB1c2VkIGluc2lkZSBhICR7cGFyZW50fWApXG59XG5cbmV4cG9ydCB0eXBlIFJlZ2lzdHJhYmxlPFQgZXh0ZW5kcyBzdHJpbmcsIEMgZXh0ZW5kcyBWdWVDb25zdHJ1Y3RvciB8IG51bGwgPSBudWxsPiA9IFZ1ZUNvbnN0cnVjdG9yPFZ1ZSAmIHtcbiAgW0sgaW4gVF06IEMgZXh0ZW5kcyBWdWVDb25zdHJ1Y3RvciA/IEluc3RhbmNlVHlwZTxDPiA6IHtcbiAgICByZWdpc3RlciAoLi4ucHJvcHM6IGFueVtdKTogdm9pZFxuICAgIHVucmVnaXN0ZXIgKHNlbGY6IGFueSk6IHZvaWRcbiAgfVxufT5cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdDxcbiAgVCBleHRlbmRzIHN0cmluZywgQyBleHRlbmRzIFZ1ZUNvbnN0cnVjdG9yIHwgbnVsbCA9IG51bGxcbj4gKG5hbWVzcGFjZTogVCwgY2hpbGQ/OiBzdHJpbmcsIHBhcmVudD86IHN0cmluZyk6IFJlZ2lzdHJhYmxlPFQsIEM+IHtcbiAgY29uc3QgZGVmYXVsdEltcGwgPSBjaGlsZCAmJiBwYXJlbnQgPyB7XG4gICAgcmVnaXN0ZXI6IGdlbmVyYXRlV2FybmluZyhjaGlsZCwgcGFyZW50KSxcbiAgICB1bnJlZ2lzdGVyOiBnZW5lcmF0ZVdhcm5pbmcoY2hpbGQsIHBhcmVudCksXG4gIH0gOiBudWxsXG5cbiAgcmV0dXJuIFZ1ZS5leHRlbmQoe1xuICAgIG5hbWU6ICdyZWdpc3RyYWJsZS1pbmplY3QnLFxuXG4gICAgaW5qZWN0OiB7XG4gICAgICBbbmFtZXNwYWNlXToge1xuICAgICAgICBkZWZhdWx0OiBkZWZhdWx0SW1wbCxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGUgKG5hbWVzcGFjZTogc3RyaW5nLCBzZWxmID0gZmFsc2UpIHtcbiAgcmV0dXJuIFZ1ZS5leHRlbmQoe1xuICAgIG5hbWU6ICdyZWdpc3RyYWJsZS1wcm92aWRlJyxcblxuICAgIG1ldGhvZHM6IHNlbGYgPyB7fSA6IHtcbiAgICAgIHJlZ2lzdGVyOiBudWxsLFxuICAgICAgdW5yZWdpc3RlcjogbnVsbCxcbiAgICB9LFxuICAgIHByb3ZpZGUgKCk6IG9iamVjdCB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBbbmFtZXNwYWNlXTogc2VsZiA/IHRoaXMgOiB7XG4gICAgICAgICAgcmVnaXN0ZXI6IHRoaXMucmVnaXN0ZXIsXG4gICAgICAgICAgdW5yZWdpc3RlcjogdGhpcy51bnJlZ2lzdGVyLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH0sXG4gIH0pXG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///121\n')},function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return VGrid; });\n/* harmony import */ var core_js_modules_es6_string_starts_with__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(77);\n/* harmony import */ var core_js_modules_es6_string_starts_with__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_string_starts_with__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4);\n/* harmony import */ var core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9);\n/* harmony import */ var core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(2);\n\n\n\n\n// Types\n\nfunction VGrid(name) {\n /* @vue/component */\n return vue__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].extend({\n name: "v-".concat(name),\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: \'div\'\n }\n },\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n data.staticClass = "".concat(name, " ").concat(data.staticClass || \'\').trim();\n var attrs = data.attrs;\n\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {};\n var classes = Object.keys(attrs).filter(function (key) {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === \'slot\') return false;\n var value = attrs[key]; // add back data attributes like data-test="foo" but do not\n // add them as classes\n\n if (key.startsWith(\'data-\')) {\n data.attrs[key] = value;\n return false;\n }\n\n return value || typeof value === \'string\';\n });\n if (classes.length) data.staticClass += " ".concat(classes.join(\' \'));\n }\n\n if (props.id) {\n data.domProps = data.domProps || {};\n data.domProps.id = props.id;\n }\n\n return h(props.tag, data, children);\n }\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvVkdyaWQvZ3JpZC50cz9mMzZhIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUVjLHFCQUE2QjtBQUN6QztBQUNBLFNBQU8sbURBQUcsQ0FBSCxPQUFXO0FBQ2hCLFFBQUksY0FEWSxJQUNaLENBRFk7QUFHaEIsY0FBVSxFQUhNO0FBS2hCLFNBQUssRUFBRTtBQUNMLFFBQUUsRUFERztBQUVMLFNBQUcsRUFBRTtBQUNILFlBQUksRUFERDtBQUVILGVBQU8sRUFBRTtBQUZOO0FBRkEsS0FMUztBQWFoQixVQWJnQixrQkFhVixDQWJVLFFBYW9CO0FBQUEsVUFBekIsS0FBeUIsUUFBekIsS0FBeUI7QUFBQSxVQUF6QixJQUF5QixRQUF6QixJQUF5QjtBQUFBLFVBQVYsUUFBVSxRQUFWLFFBQVU7QUFDbEMsVUFBSSxDQUFKLGNBQW9CLFVBQUcsSUFBSCxjQUFXLElBQUksQ0FBSixlQUFaLEVBQUMsRUFBcEIsSUFBb0IsRUFBcEI7QUFEa0MsVUFHMUIsS0FIMEIsR0FHbEMsSUFIa0MsQ0FHMUIsS0FIMEI7O0FBSWxDLGlCQUFXO0FBQ1Q7QUFDQSxZQUFJLENBQUo7QUFDQSxZQUFNLE9BQU8sR0FBRyxNQUFNLENBQU4sbUJBQTBCLGFBQUcsRUFBRztBQUM5QztBQUNBO0FBQ0EsY0FBSSxHQUFHLEtBQVAsUUFBb0I7QUFFcEIsY0FBTSxLQUFLLEdBQUcsS0FBSyxDQUwyQixHQUszQixDQUFuQixDQUw4QyxDQU85QztBQUNBOztBQUNBLGNBQUksR0FBRyxDQUFILFdBQUosT0FBSSxDQUFKLEVBQTZCO0FBQzNCLGdCQUFJLENBQUo7QUFDQTtBQUNEOztBQUVELGlCQUFPLEtBQUssSUFBSSxpQkFBaEI7QUFkRixTQUFnQixDQUFoQjtBQWlCQSxZQUFJLE9BQU8sQ0FBWCxRQUFvQixJQUFJLENBQUosMEJBQXdCLE9BQU8sQ0FBUCxLQUF4QixHQUF3QixDQUF4QjtBQUNyQjs7QUFFRCxVQUFJLEtBQUssQ0FBVCxJQUFjO0FBQ1osWUFBSSxDQUFKLFdBQWdCLElBQUksQ0FBSixZQUFoQjtBQUNBLFlBQUksQ0FBSixjQUFtQixLQUFLLENBQXhCO0FBQ0Q7O0FBRUQsYUFBTyxDQUFDLENBQUMsS0FBSyxDQUFOLFdBQVIsUUFBUSxDQUFSO0FBQ0Q7QUE5Q2UsR0FBWCxDQUFQO0FBZ0REIiwiZmlsZSI6IjEyMi5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFR5cGVzXG5pbXBvcnQgVnVlLCB7IFZOb2RlIH0gZnJvbSAndnVlJ1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBWR3JpZCAobmFtZTogc3RyaW5nKSB7XG4gIC8qIEB2dWUvY29tcG9uZW50ICovXG4gIHJldHVybiBWdWUuZXh0ZW5kKHtcbiAgICBuYW1lOiBgdi0ke25hbWV9YCxcblxuICAgIGZ1bmN0aW9uYWw6IHRydWUsXG5cbiAgICBwcm9wczoge1xuICAgICAgaWQ6IFN0cmluZyxcbiAgICAgIHRhZzoge1xuICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgIGRlZmF1bHQ6ICdkaXYnLFxuICAgICAgfSxcbiAgICB9LFxuXG4gICAgcmVuZGVyIChoLCB7IHByb3BzLCBkYXRhLCBjaGlsZHJlbiB9KTogVk5vZGUge1xuICAgICAgZGF0YS5zdGF0aWNDbGFzcyA9IChgJHtuYW1lfSAke2RhdGEuc3RhdGljQ2xhc3MgfHwgJyd9YCkudHJpbSgpXG5cbiAgICAgIGNvbnN0IHsgYXR0cnMgfSA9IGRhdGFcbiAgICAgIGlmIChhdHRycykge1xuICAgICAgICAvLyByZXNldCBhdHRycyB0byBleHRyYWN0IHV0aWxpdHkgY2xhc2VzIGxpa2UgcGEtM1xuICAgICAgICBkYXRhLmF0dHJzID0ge31cbiAgICAgICAgY29uc3QgY2xhc3NlcyA9IE9iamVjdC5rZXlzKGF0dHJzKS5maWx0ZXIoa2V5ID0+IHtcbiAgICAgICAgICAvLyBUT0RPOiBSZW1vdmUgb25jZSByZXNvbHZlZFxuICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS92dWVqcy92dWUvaXNzdWVzLzc4NDFcbiAgICAgICAgICBpZiAoa2V5ID09PSAnc2xvdCcpIHJldHVybiBmYWxzZVxuXG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBhdHRyc1trZXldXG5cbiAgICAgICAgICAvLyBhZGQgYmFjayBkYXRhIGF0dHJpYnV0ZXMgbGlrZSBkYXRhLXRlc3Q9XCJmb29cIiBidXQgZG8gbm90XG4gICAgICAgICAgLy8gYWRkIHRoZW0gYXMgY2xhc3Nlc1xuICAgICAgICAgIGlmIChrZXkuc3RhcnRzV2l0aCgnZGF0YS0nKSkge1xuICAgICAgICAgICAgZGF0YS5hdHRycyFba2V5XSA9IHZhbHVlXG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdmFsdWUgfHwgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJ1xuICAgICAgICB9KVxuXG4gICAgICAgIGlmIChjbGFzc2VzLmxlbmd0aCkgZGF0YS5zdGF0aWNDbGFzcyArPSBgICR7Y2xhc3Nlcy5qb2luKCcgJyl9YFxuICAgICAgfVxuXG4gICAgICBpZiAocHJvcHMuaWQpIHtcbiAgICAgICAgZGF0YS5kb21Qcm9wcyA9IGRhdGEuZG9tUHJvcHMgfHwge31cbiAgICAgICAgZGF0YS5kb21Qcm9wcy5pZCA9IHByb3BzLmlkXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBoKHByb3BzLnRhZywgZGF0YSwgY2hpbGRyZW4pXG4gICAgfSxcbiAgfSlcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///122\n')},,,,,,,,,,,,,function(module,exports,__webpack_require__){eval(';(function (root, factory) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(15));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t(function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var X32WordArray = C_lib.WordArray;\n\n\t /**\n\t * x64 namespace.\n\t */\n\t var C_x64 = C.x64 = {};\n\n\t /**\n\t * A 64-bit word.\n\t */\n\t var X64Word = C_x64.Word = Base.extend({\n\t /**\n\t * Initializes a newly created 64-bit word.\n\t *\n\t * @param {number} high The high 32 bits.\n\t * @param {number} low The low 32 bits.\n\t *\n\t * @example\n\t *\n\t * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607);\n\t */\n\t init: function (high, low) {\n\t this.high = high;\n\t this.low = low;\n\t }\n\n\t /**\n\t * Bitwise NOTs this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after negating.\n\t *\n\t * @example\n\t *\n\t * var negated = x64Word.not();\n\t */\n\t // not: function () {\n\t // var high = ~this.high;\n\t // var low = ~this.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise ANDs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to AND with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after ANDing.\n\t *\n\t * @example\n\t *\n\t * var anded = x64Word.and(anotherX64Word);\n\t */\n\t // and: function (word) {\n\t // var high = this.high & word.high;\n\t // var low = this.low & word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise ORs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to OR with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after ORing.\n\t *\n\t * @example\n\t *\n\t * var ored = x64Word.or(anotherX64Word);\n\t */\n\t // or: function (word) {\n\t // var high = this.high | word.high;\n\t // var low = this.low | word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise XORs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to XOR with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after XORing.\n\t *\n\t * @example\n\t *\n\t * var xored = x64Word.xor(anotherX64Word);\n\t */\n\t // xor: function (word) {\n\t // var high = this.high ^ word.high;\n\t // var low = this.low ^ word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Shifts this word n bits to the left.\n\t *\n\t * @param {number} n The number of bits to shift.\n\t *\n\t * @return {X64Word} A new x64-Word object after shifting.\n\t *\n\t * @example\n\t *\n\t * var shifted = x64Word.shiftL(25);\n\t */\n\t // shiftL: function (n) {\n\t // if (n < 32) {\n\t // var high = (this.high << n) | (this.low >>> (32 - n));\n\t // var low = this.low << n;\n\t // } else {\n\t // var high = this.low << (n - 32);\n\t // var low = 0;\n\t // }\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Shifts this word n bits to the right.\n\t *\n\t * @param {number} n The number of bits to shift.\n\t *\n\t * @return {X64Word} A new x64-Word object after shifting.\n\t *\n\t * @example\n\t *\n\t * var shifted = x64Word.shiftR(7);\n\t */\n\t // shiftR: function (n) {\n\t // if (n < 32) {\n\t // var low = (this.low >>> n) | (this.high << (32 - n));\n\t // var high = this.high >>> n;\n\t // } else {\n\t // var low = this.high >>> (n - 32);\n\t // var high = 0;\n\t // }\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Rotates this word n bits to the left.\n\t *\n\t * @param {number} n The number of bits to rotate.\n\t *\n\t * @return {X64Word} A new x64-Word object after rotating.\n\t *\n\t * @example\n\t *\n\t * var rotated = x64Word.rotL(25);\n\t */\n\t // rotL: function (n) {\n\t // return this.shiftL(n).or(this.shiftR(64 - n));\n\t // },\n\n\t /**\n\t * Rotates this word n bits to the right.\n\t *\n\t * @param {number} n The number of bits to rotate.\n\t *\n\t * @return {X64Word} A new x64-Word object after rotating.\n\t *\n\t * @example\n\t *\n\t * var rotated = x64Word.rotR(7);\n\t */\n\t // rotR: function (n) {\n\t // return this.shiftR(n).or(this.shiftL(64 - n));\n\t // },\n\n\t /**\n\t * Adds this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to add with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after adding.\n\t *\n\t * @example\n\t *\n\t * var added = x64Word.add(anotherX64Word);\n\t */\n\t // add: function (word) {\n\t // var low = (this.low + word.low) | 0;\n\t // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0;\n\t // var high = (this.high + word.high + carry) | 0;\n\n\t // return X64Word.create(high, low);\n\t // }\n\t });\n\n\t /**\n\t * An array of 64-bit words.\n\t *\n\t * @property {Array} words The array of CryptoJS.x64.Word objects.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var X64WordArray = C_x64.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create();\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create([\n\t * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n\t * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n\t * ]);\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create([\n\t * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n\t * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n\t * ], 10);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 8;\n\t }\n\t },\n\n\t /**\n\t * Converts this 64-bit word array to a 32-bit word array.\n\t *\n\t * @return {CryptoJS.lib.WordArray} This word array\'s data as a 32-bit word array.\n\t *\n\t * @example\n\t *\n\t * var x32WordArray = x64WordArray.toX32();\n\t */\n\t toX32: function () {\n\t // Shortcuts\n\t var x64Words = this.words;\n\t var x64WordsLength = x64Words.length;\n\n\t // Convert\n\t var x32Words = [];\n\t for (var i = 0; i < x64WordsLength; i++) {\n\t var x64Word = x64Words[i];\n\t x32Words.push(x64Word.high);\n\t x32Words.push(x64Word.low);\n\t }\n\n\t return X32WordArray.create(x32Words, this.sigBytes);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {X64WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = x64WordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\n\t // Clone "words" array\n\t var words = clone.words = this.words.slice(0);\n\n\t // Clone each X64Word object\n\t var wordsLength = words.length;\n\t for (var i = 0; i < wordsLength; i++) {\n\t words[i] = words[i].clone();\n\t }\n\n\t return clone;\n\t }\n\t });\n\t}());\n\n\n\treturn CryptoJS;\n\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY3J5cHRvLWpzL3g2NC1jb3JlLmpzPzMyNTIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBQztBQUNELEtBQUssSUFBMkI7QUFDaEM7QUFDQSxxQ0FBcUMsbUJBQU8sQ0FBQyxFQUFRO0FBQ3JEO0FBQ0EsTUFBTSxFQU9KO0FBQ0YsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsT0FBTztBQUMzQixvQkFBb0IsT0FBTztBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLFFBQVE7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGFBQWE7O0FBRWI7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLFFBQVE7QUFDNUI7QUFDQSxxQkFBcUIsUUFBUTtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsYUFBYTs7QUFFYjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsUUFBUTtBQUM1QjtBQUNBLHFCQUFxQixRQUFRO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxhQUFhOztBQUViO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixRQUFRO0FBQzVCO0FBQ0EscUJBQXFCLFFBQVE7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGFBQWE7O0FBRWI7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLE9BQU87QUFDM0I7QUFDQSxxQkFBcUIsUUFBUTtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBOztBQUVBO0FBQ0EsYUFBYTs7QUFFYjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsT0FBTztBQUMzQjtBQUNBLHFCQUFxQixRQUFRO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxhQUFhOztBQUViO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixPQUFPO0FBQzNCO0FBQ0EscUJBQXFCLFFBQVE7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhOztBQUViO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixPQUFPO0FBQzNCO0FBQ0EscUJBQXFCLFFBQVE7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhOztBQUViO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixRQUFRO0FBQzVCO0FBQ0EscUJBQXFCLFFBQVE7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixNQUFNO0FBQ3pCLG1CQUFtQixPQUFPO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsTUFBTTtBQUMxQixvQkFBb0IsT0FBTztBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBLFVBQVU7O0FBRVY7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLHVCQUF1QjtBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDRCQUE0QixvQkFBb0I7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxVQUFVOztBQUVWO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQixhQUFhO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDRCQUE0QixpQkFBaUI7QUFDN0M7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOLEVBQUU7OztBQUdGOztBQUVBLENBQUMiLCJmaWxlIjoiMTM1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiOyhmdW5jdGlvbiAocm9vdCwgZmFjdG9yeSkge1xuXHRpZiAodHlwZW9mIGV4cG9ydHMgPT09IFwib2JqZWN0XCIpIHtcblx0XHQvLyBDb21tb25KU1xuXHRcdG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cyA9IGZhY3RvcnkocmVxdWlyZShcIi4vY29yZVwiKSk7XG5cdH1cblx0ZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PT0gXCJmdW5jdGlvblwiICYmIGRlZmluZS5hbWQpIHtcblx0XHQvLyBBTURcblx0XHRkZWZpbmUoW1wiLi9jb3JlXCJdLCBmYWN0b3J5KTtcblx0fVxuXHRlbHNlIHtcblx0XHQvLyBHbG9iYWwgKGJyb3dzZXIpXG5cdFx0ZmFjdG9yeShyb290LkNyeXB0b0pTKTtcblx0fVxufSh0aGlzLCBmdW5jdGlvbiAoQ3J5cHRvSlMpIHtcblxuXHQoZnVuY3Rpb24gKHVuZGVmaW5lZCkge1xuXHQgICAgLy8gU2hvcnRjdXRzXG5cdCAgICB2YXIgQyA9IENyeXB0b0pTO1xuXHQgICAgdmFyIENfbGliID0gQy5saWI7XG5cdCAgICB2YXIgQmFzZSA9IENfbGliLkJhc2U7XG5cdCAgICB2YXIgWDMyV29yZEFycmF5ID0gQ19saWIuV29yZEFycmF5O1xuXG5cdCAgICAvKipcblx0ICAgICAqIHg2NCBuYW1lc3BhY2UuXG5cdCAgICAgKi9cblx0ICAgIHZhciBDX3g2NCA9IEMueDY0ID0ge307XG5cblx0ICAgIC8qKlxuXHQgICAgICogQSA2NC1iaXQgd29yZC5cblx0ICAgICAqL1xuXHQgICAgdmFyIFg2NFdvcmQgPSBDX3g2NC5Xb3JkID0gQmFzZS5leHRlbmQoe1xuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIEluaXRpYWxpemVzIGEgbmV3bHkgY3JlYXRlZCA2NC1iaXQgd29yZC5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBwYXJhbSB7bnVtYmVyfSBoaWdoIFRoZSBoaWdoIDMyIGJpdHMuXG5cdCAgICAgICAgICogQHBhcmFtIHtudW1iZXJ9IGxvdyBUaGUgbG93IDMyIGJpdHMuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciB4NjRXb3JkID0gQ3J5cHRvSlMueDY0LldvcmQuY3JlYXRlKDB4MDAwMTAyMDMsIDB4MDQwNTA2MDcpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIGluaXQ6IGZ1bmN0aW9uIChoaWdoLCBsb3cpIHtcblx0ICAgICAgICAgICAgdGhpcy5oaWdoID0gaGlnaDtcblx0ICAgICAgICAgICAgdGhpcy5sb3cgPSBsb3c7XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogQml0d2lzZSBOT1RzIHRoaXMgd29yZC5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEByZXR1cm4ge1g2NFdvcmR9IEEgbmV3IHg2NC1Xb3JkIG9iamVjdCBhZnRlciBuZWdhdGluZy5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIG5lZ2F0ZWQgPSB4NjRXb3JkLm5vdCgpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIC8vIG5vdDogZnVuY3Rpb24gKCkge1xuXHQgICAgICAgICAgICAvLyB2YXIgaGlnaCA9IH50aGlzLmhpZ2g7XG5cdCAgICAgICAgICAgIC8vIHZhciBsb3cgPSB+dGhpcy5sb3c7XG5cblx0ICAgICAgICAgICAgLy8gcmV0dXJuIFg2NFdvcmQuY3JlYXRlKGhpZ2gsIGxvdyk7XG5cdCAgICAgICAgLy8gfSxcblxuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIEJpdHdpc2UgQU5EcyB0aGlzIHdvcmQgd2l0aCB0aGUgcGFzc2VkIHdvcmQuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcGFyYW0ge1g2NFdvcmR9IHdvcmQgVGhlIHg2NC1Xb3JkIHRvIEFORCB3aXRoIHRoaXMgd29yZC5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEByZXR1cm4ge1g2NFdvcmR9IEEgbmV3IHg2NC1Xb3JkIG9iamVjdCBhZnRlciBBTkRpbmcuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciBhbmRlZCA9IHg2NFdvcmQuYW5kKGFub3RoZXJYNjRXb3JkKTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICAvLyBhbmQ6IGZ1bmN0aW9uICh3b3JkKSB7XG5cdCAgICAgICAgICAgIC8vIHZhciBoaWdoID0gdGhpcy5oaWdoICYgd29yZC5oaWdoO1xuXHQgICAgICAgICAgICAvLyB2YXIgbG93ID0gdGhpcy5sb3cgJiB3b3JkLmxvdztcblxuXHQgICAgICAgICAgICAvLyByZXR1cm4gWDY0V29yZC5jcmVhdGUoaGlnaCwgbG93KTtcblx0ICAgICAgICAvLyB9LFxuXG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogQml0d2lzZSBPUnMgdGhpcyB3b3JkIHdpdGggdGhlIHBhc3NlZCB3b3JkLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtYNjRXb3JkfSB3b3JkIFRoZSB4NjQtV29yZCB0byBPUiB3aXRoIHRoaXMgd29yZC5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEByZXR1cm4ge1g2NFdvcmR9IEEgbmV3IHg2NC1Xb3JkIG9iamVjdCBhZnRlciBPUmluZy5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIG9yZWQgPSB4NjRXb3JkLm9yKGFub3RoZXJYNjRXb3JkKTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICAvLyBvcjogZnVuY3Rpb24gKHdvcmQpIHtcblx0ICAgICAgICAgICAgLy8gdmFyIGhpZ2ggPSB0aGlzLmhpZ2ggfCB3b3JkLmhpZ2g7XG5cdCAgICAgICAgICAgIC8vIHZhciBsb3cgPSB0aGlzLmxvdyB8IHdvcmQubG93O1xuXG5cdCAgICAgICAgICAgIC8vIHJldHVybiBYNjRXb3JkLmNyZWF0ZShoaWdoLCBsb3cpO1xuXHQgICAgICAgIC8vIH0sXG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBCaXR3aXNlIFhPUnMgdGhpcyB3b3JkIHdpdGggdGhlIHBhc3NlZCB3b3JkLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtYNjRXb3JkfSB3b3JkIFRoZSB4NjQtV29yZCB0byBYT1Igd2l0aCB0aGlzIHdvcmQuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcmV0dXJuIHtYNjRXb3JkfSBBIG5ldyB4NjQtV29yZCBvYmplY3QgYWZ0ZXIgWE9SaW5nLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICB2YXIgeG9yZWQgPSB4NjRXb3JkLnhvcihhbm90aGVyWDY0V29yZCk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgLy8geG9yOiBmdW5jdGlvbiAod29yZCkge1xuXHQgICAgICAgICAgICAvLyB2YXIgaGlnaCA9IHRoaXMuaGlnaCBeIHdvcmQuaGlnaDtcblx0ICAgICAgICAgICAgLy8gdmFyIGxvdyA9IHRoaXMubG93IF4gd29yZC5sb3c7XG5cblx0ICAgICAgICAgICAgLy8gcmV0dXJuIFg2NFdvcmQuY3JlYXRlKGhpZ2gsIGxvdyk7XG5cdCAgICAgICAgLy8gfSxcblxuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIFNoaWZ0cyB0aGlzIHdvcmQgbiBiaXRzIHRvIHRoZSBsZWZ0LlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtudW1iZXJ9IG4gVGhlIG51bWJlciBvZiBiaXRzIHRvIHNoaWZ0LlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHJldHVybiB7WDY0V29yZH0gQSBuZXcgeDY0LVdvcmQgb2JqZWN0IGFmdGVyIHNoaWZ0aW5nLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICB2YXIgc2hpZnRlZCA9IHg2NFdvcmQuc2hpZnRMKDI1KTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICAvLyBzaGlmdEw6IGZ1bmN0aW9uIChuKSB7XG5cdCAgICAgICAgICAgIC8vIGlmIChuIDwgMzIpIHtcblx0ICAgICAgICAgICAgICAgIC8vIHZhciBoaWdoID0gKHRoaXMuaGlnaCA8PCBuKSB8ICh0aGlzLmxvdyA+Pj4gKDMyIC0gbikpO1xuXHQgICAgICAgICAgICAgICAgLy8gdmFyIGxvdyA9IHRoaXMubG93IDw8IG47XG5cdCAgICAgICAgICAgIC8vIH0gZWxzZSB7XG5cdCAgICAgICAgICAgICAgICAvLyB2YXIgaGlnaCA9IHRoaXMubG93IDw8IChuIC0gMzIpO1xuXHQgICAgICAgICAgICAgICAgLy8gdmFyIGxvdyA9IDA7XG5cdCAgICAgICAgICAgIC8vIH1cblxuXHQgICAgICAgICAgICAvLyByZXR1cm4gWDY0V29yZC5jcmVhdGUoaGlnaCwgbG93KTtcblx0ICAgICAgICAvLyB9LFxuXG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogU2hpZnRzIHRoaXMgd29yZCBuIGJpdHMgdG8gdGhlIHJpZ2h0LlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtudW1iZXJ9IG4gVGhlIG51bWJlciBvZiBiaXRzIHRvIHNoaWZ0LlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHJldHVybiB7WDY0V29yZH0gQSBuZXcgeDY0LVdvcmQgb2JqZWN0IGFmdGVyIHNoaWZ0aW5nLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICB2YXIgc2hpZnRlZCA9IHg2NFdvcmQuc2hpZnRSKDcpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIC8vIHNoaWZ0UjogZnVuY3Rpb24gKG4pIHtcblx0ICAgICAgICAgICAgLy8gaWYgKG4gPCAzMikge1xuXHQgICAgICAgICAgICAgICAgLy8gdmFyIGxvdyA9ICh0aGlzLmxvdyA+Pj4gbikgfCAodGhpcy5oaWdoIDw8ICgzMiAtIG4pKTtcblx0ICAgICAgICAgICAgICAgIC8vIHZhciBoaWdoID0gdGhpcy5oaWdoID4+PiBuO1xuXHQgICAgICAgICAgICAvLyB9IGVsc2Uge1xuXHQgICAgICAgICAgICAgICAgLy8gdmFyIGxvdyA9IHRoaXMuaGlnaCA+Pj4gKG4gLSAzMik7XG5cdCAgICAgICAgICAgICAgICAvLyB2YXIgaGlnaCA9IDA7XG5cdCAgICAgICAgICAgIC8vIH1cblxuXHQgICAgICAgICAgICAvLyByZXR1cm4gWDY0V29yZC5jcmVhdGUoaGlnaCwgbG93KTtcblx0ICAgICAgICAvLyB9LFxuXG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogUm90YXRlcyB0aGlzIHdvcmQgbiBiaXRzIHRvIHRoZSBsZWZ0LlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtudW1iZXJ9IG4gVGhlIG51bWJlciBvZiBiaXRzIHRvIHJvdGF0ZS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEByZXR1cm4ge1g2NFdvcmR9IEEgbmV3IHg2NC1Xb3JkIG9iamVjdCBhZnRlciByb3RhdGluZy5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIHJvdGF0ZWQgPSB4NjRXb3JkLnJvdEwoMjUpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIC8vIHJvdEw6IGZ1bmN0aW9uIChuKSB7XG5cdCAgICAgICAgICAgIC8vIHJldHVybiB0aGlzLnNoaWZ0TChuKS5vcih0aGlzLnNoaWZ0Uig2NCAtIG4pKTtcblx0ICAgICAgICAvLyB9LFxuXG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogUm90YXRlcyB0aGlzIHdvcmQgbiBiaXRzIHRvIHRoZSByaWdodC5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBwYXJhbSB7bnVtYmVyfSBuIFRoZSBudW1iZXIgb2YgYml0cyB0byByb3RhdGUuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcmV0dXJuIHtYNjRXb3JkfSBBIG5ldyB4NjQtV29yZCBvYmplY3QgYWZ0ZXIgcm90YXRpbmcuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciByb3RhdGVkID0geDY0V29yZC5yb3RSKDcpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIC8vIHJvdFI6IGZ1bmN0aW9uIChuKSB7XG5cdCAgICAgICAgICAgIC8vIHJldHVybiB0aGlzLnNoaWZ0UihuKS5vcih0aGlzLnNoaWZ0TCg2NCAtIG4pKTtcblx0ICAgICAgICAvLyB9LFxuXG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogQWRkcyB0aGlzIHdvcmQgd2l0aCB0aGUgcGFzc2VkIHdvcmQuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcGFyYW0ge1g2NFdvcmR9IHdvcmQgVGhlIHg2NC1Xb3JkIHRvIGFkZCB3aXRoIHRoaXMgd29yZC5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEByZXR1cm4ge1g2NFdvcmR9IEEgbmV3IHg2NC1Xb3JkIG9iamVjdCBhZnRlciBhZGRpbmcuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciBhZGRlZCA9IHg2NFdvcmQuYWRkKGFub3RoZXJYNjRXb3JkKTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICAvLyBhZGQ6IGZ1bmN0aW9uICh3b3JkKSB7XG5cdCAgICAgICAgICAgIC8vIHZhciBsb3cgPSAodGhpcy5sb3cgKyB3b3JkLmxvdykgfCAwO1xuXHQgICAgICAgICAgICAvLyB2YXIgY2FycnkgPSAobG93ID4+PiAwKSA8ICh0aGlzLmxvdyA+Pj4gMCkgPyAxIDogMDtcblx0ICAgICAgICAgICAgLy8gdmFyIGhpZ2ggPSAodGhpcy5oaWdoICsgd29yZC5oaWdoICsgY2FycnkpIHwgMDtcblxuXHQgICAgICAgICAgICAvLyByZXR1cm4gWDY0V29yZC5jcmVhdGUoaGlnaCwgbG93KTtcblx0ICAgICAgICAvLyB9XG5cdCAgICB9KTtcblxuXHQgICAgLyoqXG5cdCAgICAgKiBBbiBhcnJheSBvZiA2NC1iaXQgd29yZHMuXG5cdCAgICAgKlxuXHQgICAgICogQHByb3BlcnR5IHtBcnJheX0gd29yZHMgVGhlIGFycmF5IG9mIENyeXB0b0pTLng2NC5Xb3JkIG9iamVjdHMuXG5cdCAgICAgKiBAcHJvcGVydHkge251bWJlcn0gc2lnQnl0ZXMgVGhlIG51bWJlciBvZiBzaWduaWZpY2FudCBieXRlcyBpbiB0aGlzIHdvcmQgYXJyYXkuXG5cdCAgICAgKi9cblx0ICAgIHZhciBYNjRXb3JkQXJyYXkgPSBDX3g2NC5Xb3JkQXJyYXkgPSBCYXNlLmV4dGVuZCh7XG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogSW5pdGlhbGl6ZXMgYSBuZXdseSBjcmVhdGVkIHdvcmQgYXJyYXkuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcGFyYW0ge0FycmF5fSB3b3JkcyAoT3B0aW9uYWwpIEFuIGFycmF5IG9mIENyeXB0b0pTLng2NC5Xb3JkIG9iamVjdHMuXG5cdCAgICAgICAgICogQHBhcmFtIHtudW1iZXJ9IHNpZ0J5dGVzIChPcHRpb25hbCkgVGhlIG51bWJlciBvZiBzaWduaWZpY2FudCBieXRlcyBpbiB0aGUgd29yZHMuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciB3b3JkQXJyYXkgPSBDcnlwdG9KUy54NjQuV29yZEFycmF5LmNyZWF0ZSgpO1xuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciB3b3JkQXJyYXkgPSBDcnlwdG9KUy54NjQuV29yZEFycmF5LmNyZWF0ZShbXG5cdCAgICAgICAgICogICAgICAgICBDcnlwdG9KUy54NjQuV29yZC5jcmVhdGUoMHgwMDAxMDIwMywgMHgwNDA1MDYwNyksXG5cdCAgICAgICAgICogICAgICAgICBDcnlwdG9KUy54NjQuV29yZC5jcmVhdGUoMHgxODE5MWExYiwgMHgxYzFkMWUxZilcblx0ICAgICAgICAgKiAgICAgXSk7XG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIHdvcmRBcnJheSA9IENyeXB0b0pTLng2NC5Xb3JkQXJyYXkuY3JlYXRlKFtcblx0ICAgICAgICAgKiAgICAgICAgIENyeXB0b0pTLng2NC5Xb3JkLmNyZWF0ZSgweDAwMDEwMjAzLCAweDA0MDUwNjA3KSxcblx0ICAgICAgICAgKiAgICAgICAgIENyeXB0b0pTLng2NC5Xb3JkLmNyZWF0ZSgweDE4MTkxYTFiLCAweDFjMWQxZTFmKVxuXHQgICAgICAgICAqICAgICBdLCAxMCk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgaW5pdDogZnVuY3Rpb24gKHdvcmRzLCBzaWdCeXRlcykge1xuXHQgICAgICAgICAgICB3b3JkcyA9IHRoaXMud29yZHMgPSB3b3JkcyB8fCBbXTtcblxuXHQgICAgICAgICAgICBpZiAoc2lnQnl0ZXMgIT0gdW5kZWZpbmVkKSB7XG5cdCAgICAgICAgICAgICAgICB0aGlzLnNpZ0J5dGVzID0gc2lnQnl0ZXM7XG5cdCAgICAgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICAgICAgICB0aGlzLnNpZ0J5dGVzID0gd29yZHMubGVuZ3RoICogODtcblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBDb252ZXJ0cyB0aGlzIDY0LWJpdCB3b3JkIGFycmF5IHRvIGEgMzItYml0IHdvcmQgYXJyYXkuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcmV0dXJuIHtDcnlwdG9KUy5saWIuV29yZEFycmF5fSBUaGlzIHdvcmQgYXJyYXkncyBkYXRhIGFzIGEgMzItYml0IHdvcmQgYXJyYXkuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciB4MzJXb3JkQXJyYXkgPSB4NjRXb3JkQXJyYXkudG9YMzIoKTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICB0b1gzMjogZnVuY3Rpb24gKCkge1xuXHQgICAgICAgICAgICAvLyBTaG9ydGN1dHNcblx0ICAgICAgICAgICAgdmFyIHg2NFdvcmRzID0gdGhpcy53b3Jkcztcblx0ICAgICAgICAgICAgdmFyIHg2NFdvcmRzTGVuZ3RoID0geDY0V29yZHMubGVuZ3RoO1xuXG5cdCAgICAgICAgICAgIC8vIENvbnZlcnRcblx0ICAgICAgICAgICAgdmFyIHgzMldvcmRzID0gW107XG5cdCAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgeDY0V29yZHNMZW5ndGg7IGkrKykge1xuXHQgICAgICAgICAgICAgICAgdmFyIHg2NFdvcmQgPSB4NjRXb3Jkc1tpXTtcblx0ICAgICAgICAgICAgICAgIHgzMldvcmRzLnB1c2goeDY0V29yZC5oaWdoKTtcblx0ICAgICAgICAgICAgICAgIHgzMldvcmRzLnB1c2goeDY0V29yZC5sb3cpO1xuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgcmV0dXJuIFgzMldvcmRBcnJheS5jcmVhdGUoeDMyV29yZHMsIHRoaXMuc2lnQnl0ZXMpO1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBDcmVhdGVzIGEgY29weSBvZiB0aGlzIHdvcmQgYXJyYXkuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcmV0dXJuIHtYNjRXb3JkQXJyYXl9IFRoZSBjbG9uZS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIGNsb25lID0geDY0V29yZEFycmF5LmNsb25lKCk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgY2xvbmU6IGZ1bmN0aW9uICgpIHtcblx0ICAgICAgICAgICAgdmFyIGNsb25lID0gQmFzZS5jbG9uZS5jYWxsKHRoaXMpO1xuXG5cdCAgICAgICAgICAgIC8vIENsb25lIFwid29yZHNcIiBhcnJheVxuXHQgICAgICAgICAgICB2YXIgd29yZHMgPSBjbG9uZS53b3JkcyA9IHRoaXMud29yZHMuc2xpY2UoMCk7XG5cblx0ICAgICAgICAgICAgLy8gQ2xvbmUgZWFjaCBYNjRXb3JkIG9iamVjdFxuXHQgICAgICAgICAgICB2YXIgd29yZHNMZW5ndGggPSB3b3Jkcy5sZW5ndGg7XG5cdCAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgd29yZHNMZW5ndGg7IGkrKykge1xuXHQgICAgICAgICAgICAgICAgd29yZHNbaV0gPSB3b3Jkc1tpXS5jbG9uZSgpO1xuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgcmV0dXJuIGNsb25lO1xuXHQgICAgICAgIH1cblx0ICAgIH0pO1xuXHR9KCkpO1xuXG5cblx0cmV0dXJuIENyeXB0b0pTO1xuXG59KSk7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///135\n')},,,function(module,__webpack_exports__,__webpack_require__){"use strict";eval("/* harmony import */ var core_js_modules_es6_string_small__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(220);\n/* harmony import */ var core_js_modules_es6_string_small__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_string_small__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (vue__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"].extend({\n name: 'sizeable',\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean\n },\n computed: {\n medium: function medium() {\n return Boolean(!this.xSmall && !this.small && !this.large && !this.xLarge);\n },\n sizeableClasses: function sizeableClasses() {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge\n };\n }\n }\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL21peGlucy9zaXplYWJsZS9pbmRleC50cz8xYTFhIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUVlLDRHQUFHLENBQUgsT0FBVztBQUN4QixNQUFJLEVBRG9CO0FBR3hCLE9BQUssRUFBRTtBQUNMLFNBQUssRUFEQTtBQUVMLFNBQUssRUFGQTtBQUdMLFVBQU0sRUFIRDtBQUlMLFVBQU0sRUFBRTtBQUpILEdBSGlCO0FBVXhCLFVBQVEsRUFBRTtBQUNSLFVBRFEsb0JBQ0Y7QUFDSixhQUFPLE9BQU8sQ0FDWixDQUFDLEtBQUQsVUFDQSxDQUFDLEtBREQsU0FFQSxDQUFDLEtBRkQsU0FHQSxDQUFDLEtBSkgsTUFBYyxDQUFkO0FBRk07QUFTUixtQkFUUSw2QkFTTztBQUNiLGFBQU87QUFDTCwyQkFBbUIsS0FEZDtBQUVMLHlCQUFpQixLQUZaO0FBR0wsMkJBQW1CLEtBSGQ7QUFJTCx5QkFBaUIsS0FKWjtBQUtMLDJCQUFtQixLQUFLO0FBTG5CLE9BQVA7QUFPRDtBQWpCTztBQVZjLENBQVgsQ0FBZiIsImZpbGUiOiIxMzguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVnVlIGZyb20gJ3Z1ZSdcblxuZXhwb3J0IGRlZmF1bHQgVnVlLmV4dGVuZCh7XG4gIG5hbWU6ICdzaXplYWJsZScsXG5cbiAgcHJvcHM6IHtcbiAgICBsYXJnZTogQm9vbGVhbixcbiAgICBzbWFsbDogQm9vbGVhbixcbiAgICB4TGFyZ2U6IEJvb2xlYW4sXG4gICAgeFNtYWxsOiBCb29sZWFuLFxuICB9LFxuXG4gIGNvbXB1dGVkOiB7XG4gICAgbWVkaXVtICgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBCb29sZWFuKFxuICAgICAgICAhdGhpcy54U21hbGwgJiZcbiAgICAgICAgIXRoaXMuc21hbGwgJiZcbiAgICAgICAgIXRoaXMubGFyZ2UgJiZcbiAgICAgICAgIXRoaXMueExhcmdlXG4gICAgICApXG4gICAgfSxcbiAgICBzaXplYWJsZUNsYXNzZXMgKCk6IG9iamVjdCB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAndi1zaXplLS14LXNtYWxsJzogdGhpcy54U21hbGwsXG4gICAgICAgICd2LXNpemUtLXNtYWxsJzogdGhpcy5zbWFsbCxcbiAgICAgICAgJ3Ytc2l6ZS0tZGVmYXVsdCc6IHRoaXMubWVkaXVtLFxuICAgICAgICAndi1zaXplLS1sYXJnZSc6IHRoaXMubGFyZ2UsXG4gICAgICAgICd2LXNpemUtLXgtbGFyZ2UnOiB0aGlzLnhMYXJnZSxcbiAgICAgIH1cbiAgICB9LFxuICB9LFxufSlcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///138\n")},function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(52);\n/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5);\n\n\n\nfunction searchChildren(children) {\n var results = [];\n\n for (var index = 0; index < children.length; index++) {\n var child = children[index];\n\n if (child.isActive && child.isDependent) {\n results.push(child);\n } else {\n results.push.apply(results, Object(_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(searchChildren(child.$children)));\n }\n }\n\n return results;\n}\n/* @vue/component */\n\n\n/* harmony default export */ __webpack_exports__["a"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])().extend({\n name: \'dependent\',\n data: function data() {\n return {\n closeDependents: true,\n isActive: false,\n isDependent: true\n };\n },\n watch: {\n isActive: function isActive(val) {\n if (val) return;\n var openDependents = this.getOpenDependents();\n\n for (var index = 0; index < openDependents.length; index++) {\n openDependents[index].isActive = false;\n }\n }\n },\n methods: {\n getOpenDependents: function getOpenDependents() {\n if (this.closeDependents) return searchChildren(this.$children);\n return [];\n },\n getOpenDependentElements: function getOpenDependentElements() {\n var result = [];\n var openDependents = this.getOpenDependents();\n\n for (var index = 0; index < openDependents.length; index++) {\n result.push.apply(result, Object(_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(openDependents[index].getClickableDependentElements()));\n }\n\n return result;\n },\n getClickableDependentElements: function getClickableDependentElements() {\n var result = [this.$el];\n if (this.$refs.content) result.push(this.$refs.content);\n if (this.overlay) result.push(this.overlay.$el);\n result.push.apply(result, Object(_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(this.getOpenDependentElements()));\n return result;\n }\n }\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL21peGlucy9kZXBlbmRlbnQvaW5kZXgudHM/NDhhOCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQTs7QUFnQkEsa0NBQXdDO0FBQ3RDLE1BQU0sT0FBTyxHQUFiOztBQUNBLE9BQUssSUFBSSxLQUFLLEdBQWQsR0FBb0IsS0FBSyxHQUFHLFFBQVEsQ0FBcEMsUUFBNkMsS0FBN0MsSUFBc0Q7QUFDcEQsUUFBTSxLQUFLLEdBQUcsUUFBUSxDQUF0QixLQUFzQixDQUF0Qjs7QUFDQSxRQUFJLEtBQUssQ0FBTCxZQUFrQixLQUFLLENBQTNCLGFBQXlDO0FBQ3ZDLGFBQU8sQ0FBUDtBQURGLFdBRU87QUFDTCxhQUFPLENBQVAsa0JBQU8sdUdBQVMsY0FBYyxDQUFDLEtBQUssQ0FBcEMsU0FBOEIsQ0FBdkIsRUFBUDtBQUNEO0FBQ0Y7O0FBRUQ7QUFDRDtBQUVEOzs7QUFDZSw2SEFBTSxHQUFOLE9BQXlCO0FBQ3RDLE1BQUksRUFEa0M7QUFHdEMsTUFIc0Msa0JBR2xDO0FBQ0YsV0FBTztBQUNMLHFCQUFlLEVBRFY7QUFFTCxjQUFRLEVBRkg7QUFHTCxpQkFBVyxFQUFFO0FBSFIsS0FBUDtBQUpvQztBQVd0QyxPQUFLLEVBQUU7QUFDTCxZQURLLG9CQUNHLEdBREgsRUFDUTtBQUNYLGVBQVM7QUFFVCxVQUFNLGNBQWMsR0FBRyxLQUF2QixpQkFBdUIsRUFBdkI7O0FBQ0EsV0FBSyxJQUFJLEtBQUssR0FBZCxHQUFvQixLQUFLLEdBQUcsY0FBYyxDQUExQyxRQUFtRCxLQUFuRCxJQUE0RDtBQUMxRCxzQkFBYyxDQUFkLEtBQWMsQ0FBZDtBQUNEO0FBQ0Y7QUFSSSxHQVgrQjtBQXNCdEMsU0FBTyxFQUFFO0FBQ1AscUJBRE8sK0JBQ1U7QUFDZixVQUFJLEtBQUosaUJBQTBCLE9BQU8sY0FBYyxDQUFDLEtBQXRCLFNBQXFCLENBQXJCO0FBRTFCO0FBSks7QUFNUCw0QkFOTyxzQ0FNaUI7QUFDdEIsVUFBTSxNQUFNLEdBQVo7QUFDQSxVQUFNLGNBQWMsR0FBRyxLQUF2QixpQkFBdUIsRUFBdkI7O0FBRUEsV0FBSyxJQUFJLEtBQUssR0FBZCxHQUFvQixLQUFLLEdBQUcsY0FBYyxDQUExQyxRQUFtRCxLQUFuRCxJQUE0RDtBQUMxRCxjQUFNLENBQU4saUJBQU0sdUdBQVMsY0FBYyxDQUFkLEtBQWMsQ0FBZCxDQUFmLDZCQUFlLEVBQVQsRUFBTjtBQUNEOztBQUVEO0FBZEs7QUFnQlAsaUNBaEJPLDJDQWdCc0I7QUFDM0IsVUFBTSxNQUFNLEdBQUcsQ0FBQyxLQUFoQixHQUFlLENBQWY7QUFDQSxVQUFJLFdBQUosU0FBd0IsTUFBTSxDQUFOLEtBQVksV0FBWjtBQUN4QixVQUFJLEtBQUosU0FBa0IsTUFBTSxDQUFOLEtBQVksYUFBWjtBQUNsQixZQUFNLENBQU4saUJBQU0sdUdBQVMsS0FBZix3QkFBZSxFQUFULEVBQU47QUFFQTtBQUNEO0FBdkJNO0FBdEI2QixDQUF6QixDQUFmIiwiZmlsZSI6IjEzOS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBWdWUgZnJvbSAndnVlJ1xuXG5pbXBvcnQgbWl4aW5zIGZyb20gJy4uLy4uL3V0aWwvbWl4aW5zJ1xuaW1wb3J0IHsgVk92ZXJsYXkgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL1ZPdmVybGF5J1xuXG5pbnRlcmZhY2Ugb3B0aW9ucyBleHRlbmRzIFZ1ZSB7XG4gICRlbDogSFRNTEVsZW1lbnRcbiAgJHJlZnM6IHtcbiAgICBjb250ZW50OiBIVE1MRWxlbWVudFxuICB9XG4gIG92ZXJsYXk/OiBJbnN0YW5jZVR5cGU8dHlwZW9mIFZPdmVybGF5PlxufVxuXG5pbnRlcmZhY2UgRGVwZW5kZW50SW5zdGFuY2UgZXh0ZW5kcyBWdWUge1xuICBpc0FjdGl2ZT86IGJvb2xlYW5cbiAgaXNEZXBlbmRlbnQ/OiBib29sZWFuXG59XG5cbmZ1bmN0aW9uIHNlYXJjaENoaWxkcmVuIChjaGlsZHJlbjogVnVlW10pOiBEZXBlbmRlbnRJbnN0YW5jZVtdIHtcbiAgY29uc3QgcmVzdWx0cyA9IFtdXG4gIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBjaGlsZHJlbi5sZW5ndGg7IGluZGV4KyspIHtcbiAgICBjb25zdCBjaGlsZCA9IGNoaWxkcmVuW2luZGV4XSBhcyBEZXBlbmRlbnRJbnN0YW5jZVxuICAgIGlmIChjaGlsZC5pc0FjdGl2ZSAmJiBjaGlsZC5pc0RlcGVuZGVudCkge1xuICAgICAgcmVzdWx0cy5wdXNoKGNoaWxkKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHRzLnB1c2goLi4uc2VhcmNoQ2hpbGRyZW4oY2hpbGQuJGNoaWxkcmVuKSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0c1xufVxuXG4vKiBAdnVlL2NvbXBvbmVudCAqL1xuZXhwb3J0IGRlZmF1bHQgbWl4aW5zPG9wdGlvbnM+KCkuZXh0ZW5kKHtcbiAgbmFtZTogJ2RlcGVuZGVudCcsXG5cbiAgZGF0YSAoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNsb3NlRGVwZW5kZW50czogdHJ1ZSxcbiAgICAgIGlzQWN0aXZlOiBmYWxzZSxcbiAgICAgIGlzRGVwZW5kZW50OiB0cnVlLFxuICAgIH1cbiAgfSxcblxuICB3YXRjaDoge1xuICAgIGlzQWN0aXZlICh2YWwpIHtcbiAgICAgIGlmICh2YWwpIHJldHVyblxuXG4gICAgICBjb25zdCBvcGVuRGVwZW5kZW50cyA9IHRoaXMuZ2V0T3BlbkRlcGVuZGVudHMoKVxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IG9wZW5EZXBlbmRlbnRzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICBvcGVuRGVwZW5kZW50c1tpbmRleF0uaXNBY3RpdmUgPSBmYWxzZVxuICAgICAgfVxuICAgIH0sXG4gIH0sXG5cbiAgbWV0aG9kczoge1xuICAgIGdldE9wZW5EZXBlbmRlbnRzICgpOiBhbnlbXSB7XG4gICAgICBpZiAodGhpcy5jbG9zZURlcGVuZGVudHMpIHJldHVybiBzZWFyY2hDaGlsZHJlbih0aGlzLiRjaGlsZHJlbilcblxuICAgICAgcmV0dXJuIFtdXG4gICAgfSxcbiAgICBnZXRPcGVuRGVwZW5kZW50RWxlbWVudHMgKCk6IEhUTUxFbGVtZW50W10ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gW11cbiAgICAgIGNvbnN0IG9wZW5EZXBlbmRlbnRzID0gdGhpcy5nZXRPcGVuRGVwZW5kZW50cygpXG5cbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBvcGVuRGVwZW5kZW50cy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgcmVzdWx0LnB1c2goLi4ub3BlbkRlcGVuZGVudHNbaW5kZXhdLmdldENsaWNrYWJsZURlcGVuZGVudEVsZW1lbnRzKCkpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9LFxuICAgIGdldENsaWNrYWJsZURlcGVuZGVudEVsZW1lbnRzICgpOiBIVE1MRWxlbWVudFtdIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IFt0aGlzLiRlbF1cbiAgICAgIGlmICh0aGlzLiRyZWZzLmNvbnRlbnQpIHJlc3VsdC5wdXNoKHRoaXMuJHJlZnMuY29udGVudClcbiAgICAgIGlmICh0aGlzLm92ZXJsYXkpIHJlc3VsdC5wdXNoKHRoaXMub3ZlcmxheS4kZWwgYXMgSFRNTEVsZW1lbnQpXG4gICAgICByZXN1bHQucHVzaCguLi50aGlzLmdldE9wZW5EZXBlbmRlbnRFbGVtZW50cygpKVxuXG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfSxcbiAgfSxcbn0pXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///139\n')},function(module,__webpack_exports__,__webpack_require__){"use strict";eval("/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);\n/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(19);\n/* harmony import */ var _bootable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(141);\n/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);\n/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(5);\n/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(10);\n\n\n// Mixins\n // Utilities\n\n\n\n\n\nfunction validateAttachTarget(val) {\n var type = Object(_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(val);\n\n if (type === 'boolean' || type === 'string') return true;\n return val.nodeType === Node.ELEMENT_NODE;\n}\n/* @vue/component */\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"])(_bootable__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"]).extend({\n name: 'detachable',\n props: {\n attach: {\n default: false,\n validator: validateAttachTarget\n },\n contentClass: {\n type: String,\n default: ''\n }\n },\n data: function data() {\n return {\n activatorNode: null,\n hasDetached: false\n };\n },\n watch: {\n attach: function attach() {\n this.hasDetached = false;\n this.initDetach();\n },\n hasContent: function hasContent() {\n this.$nextTick(this.initDetach);\n }\n },\n beforeMount: function beforeMount() {\n var _this = this;\n\n this.$nextTick(function () {\n if (_this.activatorNode) {\n var activator = Array.isArray(_this.activatorNode) ? _this.activatorNode : [_this.activatorNode];\n activator.forEach(function (node) {\n if (!node.elm) return;\n if (!_this.$el.parentNode) return;\n var target = _this.$el === _this.$el.parentNode.firstChild ? _this.$el : _this.$el.nextSibling;\n\n _this.$el.parentNode.insertBefore(node.elm, target);\n });\n }\n });\n },\n mounted: function mounted() {\n this.hasContent && this.initDetach();\n },\n deactivated: function deactivated() {\n this.isActive = false;\n },\n beforeDestroy: function beforeDestroy() {\n // IE11 Fix\n try {\n if (this.$refs.content && this.$refs.content.parentNode) {\n this.$refs.content.parentNode.removeChild(this.$refs.content);\n }\n\n if (this.activatorNode) {\n var activator = Array.isArray(this.activatorNode) ? this.activatorNode : [this.activatorNode];\n activator.forEach(function (node) {\n node.elm && node.elm.parentNode && node.elm.parentNode.removeChild(node.elm);\n });\n }\n } catch (e) {\n console.log(e);\n }\n },\n methods: {\n getScopeIdAttrs: function getScopeIdAttrs() {\n var scopeId = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__[/* getObjectValueByPath */ \"p\"])(this.$vnode, 'context.$options._scopeId');\n return scopeId && Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])({}, scopeId, '');\n },\n initDetach: function initDetach() {\n if (this._isDestroyed || !this.$refs.content || this.hasDetached || // Leave menu in place if attached\n // and dev has not changed target\n this.attach === '' || // If used as a boolean prop ()\n this.attach === true || // If bound to a boolean ()\n this.attach === 'attach' // If bound as boolean prop in pug (v-menu(attach))\n ) return;\n var target;\n\n if (this.attach === false) {\n // Default, detach to app\n target = document.querySelector('[data-app]');\n } else if (typeof this.attach === 'string') {\n // CSS selector\n target = document.querySelector(this.attach);\n } else {\n // DOM Element\n target = this.attach;\n }\n\n if (!target) {\n Object(_util_console__WEBPACK_IMPORTED_MODULE_5__[/* consoleWarn */ \"c\"])(\"Unable to locate target \".concat(this.attach || '[data-app]'), this);\n return;\n }\n\n target.appendChild(this.$refs.content);\n this.hasDetached = true;\n }\n }\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL21peGlucy9kZXRhY2hhYmxlL2luZGV4LnRzPzM4NzUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTtDQUdBOztBQUNBO0FBQ0E7QUFDQTs7QUFhQSxtQ0FBdUM7QUFDckMsTUFBTSxJQUFJLEdBQUcsMEZBQWIsR0FBVSxDQUFWOztBQUVBLE1BQUksSUFBSSxLQUFKLGFBQXNCLElBQUksS0FBOUIsVUFBNkM7QUFFN0MsU0FBTyxHQUFHLENBQUgsYUFBaUIsSUFBSSxDQUE1QjtBQUNEO0FBRUQ7OztBQUNlLDZIQUFNLENBQU4seURBQU0sQ0FBTixRQUlJO0FBQ2pCLE1BQUksRUFEYTtBQUdqQixPQUFLLEVBQUU7QUFDTCxVQUFNLEVBQUU7QUFDTixhQUFPLEVBREQ7QUFFTixlQUFTLEVBQUU7QUFGTCxLQURIO0FBS0wsZ0JBQVksRUFBRTtBQUNaLFVBQUksRUFEUTtBQUVaLGFBQU8sRUFBRTtBQUZHO0FBTFQsR0FIVTtBQWNqQixNQUFJLEVBQUU7QUFBQSxXQUFPO0FBQ1gsbUJBQWEsRUFERjtBQUVYLGlCQUFXLEVBQUU7QUFGRixLQUFQO0FBQUEsR0FkVztBQW1CakIsT0FBSyxFQUFFO0FBQ0wsVUFESyxvQkFDQztBQUNKO0FBQ0E7QUFIRztBQUtMLGNBTEssd0JBS0s7QUFDUixxQkFBZSxLQUFmO0FBQ0Q7QUFQSSxHQW5CVTtBQTZCakIsYUE3QmlCLHlCQTZCTjtBQUFBOztBQUNULG1CQUFlLFlBQUs7QUFDbEIsVUFBSSxNQUFKLGVBQXdCO0FBQ3RCLFlBQU0sU0FBUyxHQUFHLEtBQUssQ0FBTCxRQUFjLE1BQWQsaUJBQW9DLE1BQXBDLGdCQUF5RCxDQUFDLE1BQTVFLGFBQTJFLENBQTNFO0FBRUEsaUJBQVMsQ0FBVCxRQUFrQixjQUFJLEVBQUc7QUFDdkIsY0FBSSxDQUFDLElBQUksQ0FBVCxLQUFlO0FBQ2YsY0FBSSxDQUFDLFVBQUwsWUFBMEI7QUFFMUIsY0FBTSxNQUFNLEdBQUcsY0FBYSxxQkFBYixhQUNYLE1BRFcsTUFFWCxVQUZKOztBQUlBLDRDQUFpQyxJQUFJLENBQXJDO0FBUkY7QUFVRDtBQWRIO0FBOUJlO0FBZ0RqQixTQWhEaUIscUJBZ0RWO0FBQ0wsdUJBQW1CLEtBQW5CLFVBQW1CLEVBQW5CO0FBakRlO0FBb0RqQixhQXBEaUIseUJBb0ROO0FBQ1Q7QUFyRGU7QUF3RGpCLGVBeERpQiwyQkF3REo7QUFDWDtBQUNBLFFBQUk7QUFDRixVQUNFLHNCQUNBLG1CQUZGLFlBR0U7QUFDQSxrREFBMEMsV0FBMUM7QUFDRDs7QUFFRCxVQUFJLEtBQUosZUFBd0I7QUFDdEIsWUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFMLFFBQWMsS0FBZCxpQkFBb0MsS0FBcEMsZ0JBQXlELENBQUMsS0FBNUUsYUFBMkUsQ0FBM0U7QUFDQSxpQkFBUyxDQUFULFFBQWtCLGNBQUksRUFBRztBQUN2QixjQUFJLENBQUosT0FDRSxJQUFJLENBQUosSUFERixjQUVFLElBQUksQ0FBSiwyQkFBZ0MsSUFBSSxDQUZ0QyxHQUVFLENBRkY7QUFERjtBQUtEO0FBZkgsTUFnQkUsVUFBVTtBQUFFLGFBQU8sQ0FBUDtBQUFnQjtBQTFFZjtBQTZFakIsU0FBTyxFQUFFO0FBQ1AsbUJBRE8sNkJBQ1E7QUFDYixVQUFNLE9BQU8sR0FBRyxrRkFBb0IsQ0FBQyxLQUFELFFBQXBDLDJCQUFvQyxDQUFwQztBQUVBLGFBQU8sT0FBTyxJQUFJLHNHQUNoQixPQURZLEVBQ0QsRUFEQyxDQUFkO0FBSks7QUFRUCxjQVJPLHdCQVFHO0FBQ1IsVUFBSSxxQkFDRixDQUFDLFdBREMsV0FFRixLQUZFLGVBR0Y7QUFDQTtBQUNBLHNCQUxFLE1BS29CO0FBQ3RCLHNCQU5FLFFBTXNCO0FBQ3hCLHNCQVBGLFNBTzJCO0FBUDNCLFFBUUU7QUFFRjs7QUFDQSxVQUFJLGdCQUFKLE9BQTJCO0FBQ3pCO0FBQ0EsY0FBTSxHQUFHLFFBQVEsQ0FBUixjQUFULFlBQVMsQ0FBVDtBQUZGLGFBR08sSUFBSSxPQUFPLEtBQVAsV0FBSixVQUFxQztBQUMxQztBQUNBLGNBQU0sR0FBRyxRQUFRLENBQVIsY0FBdUIsS0FBaEMsTUFBUyxDQUFUO0FBRkssYUFHQTtBQUNMO0FBQ0EsY0FBTSxHQUFHLEtBQVQ7QUFDRDs7QUFFRCxVQUFJLENBQUosUUFBYTtBQUNYLGlGQUFXLG1DQUE0QixlQUE1QixlQUFYLElBQVcsQ0FBWDtBQUNBO0FBQ0Q7O0FBRUQsWUFBTSxDQUFOLFlBQW1CLFdBQW5CO0FBRUE7QUFDRDtBQXZDTTtBQTdFUSxDQUpKLENBQWYiLCJmaWxlIjoiMTQwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTWl4aW5zXG5pbXBvcnQgQm9vdGFibGUgZnJvbSAnLi4vYm9vdGFibGUnXG5cbi8vIFV0aWxpdGllc1xuaW1wb3J0IHsgZ2V0T2JqZWN0VmFsdWVCeVBhdGggfSBmcm9tICcuLi8uLi91dGlsL2hlbHBlcnMnXG5pbXBvcnQgbWl4aW5zLCB7IEV4dHJhY3RWdWUgfSBmcm9tICcuLi8uLi91dGlsL21peGlucydcbmltcG9ydCB7IGNvbnNvbGVXYXJuIH0gZnJvbSAnLi4vLi4vdXRpbC9jb25zb2xlJ1xuXG4vLyBUeXBlc1xuaW1wb3J0IFZ1ZSwgeyBQcm9wT3B0aW9ucyB9IGZyb20gJ3Z1ZSdcbmltcG9ydCB7IFZOb2RlIH0gZnJvbSAndnVlL3R5cGVzJ1xuXG5pbnRlcmZhY2Ugb3B0aW9ucyBleHRlbmRzIFZ1ZSB7XG4gICRlbDogSFRNTEVsZW1lbnRcbiAgJHJlZnM6IHtcbiAgICBjb250ZW50OiBIVE1MRWxlbWVudFxuICB9XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlQXR0YWNoVGFyZ2V0ICh2YWw6IGFueSkge1xuICBjb25zdCB0eXBlID0gdHlwZW9mIHZhbFxuXG4gIGlmICh0eXBlID09PSAnYm9vbGVhbicgfHwgdHlwZSA9PT0gJ3N0cmluZycpIHJldHVybiB0cnVlXG5cbiAgcmV0dXJuIHZhbC5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREVcbn1cblxuLyogQHZ1ZS9jb21wb25lbnQgKi9cbmV4cG9ydCBkZWZhdWx0IG1peGluczxvcHRpb25zICZcbiAgLyogZXNsaW50LWRpc2FibGUgaW5kZW50ICovXG4gIEV4dHJhY3RWdWU8dHlwZW9mIEJvb3RhYmxlPlxuICAvKiBlc2xpbnQtZW5hYmxlIGluZGVudCAqL1xuPihCb290YWJsZSkuZXh0ZW5kKHtcbiAgbmFtZTogJ2RldGFjaGFibGUnLFxuXG4gIHByb3BzOiB7XG4gICAgYXR0YWNoOiB7XG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgIHZhbGlkYXRvcjogdmFsaWRhdGVBdHRhY2hUYXJnZXQsXG4gICAgfSBhcyBQcm9wT3B0aW9uczxib29sZWFuIHwgc3RyaW5nIHwgRWxlbWVudD4sXG4gICAgY29udGVudENsYXNzOiB7XG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICBkZWZhdWx0OiAnJyxcbiAgICB9LFxuICB9LFxuXG4gIGRhdGE6ICgpID0+ICh7XG4gICAgYWN0aXZhdG9yTm9kZTogbnVsbCBhcyBudWxsIHwgVk5vZGUgfCBWTm9kZVtdLFxuICAgIGhhc0RldGFjaGVkOiBmYWxzZSxcbiAgfSksXG5cbiAgd2F0Y2g6IHtcbiAgICBhdHRhY2ggKCkge1xuICAgICAgdGhpcy5oYXNEZXRhY2hlZCA9IGZhbHNlXG4gICAgICB0aGlzLmluaXREZXRhY2goKVxuICAgIH0sXG4gICAgaGFzQ29udGVudCAoKSB7XG4gICAgICB0aGlzLiRuZXh0VGljayh0aGlzLmluaXREZXRhY2gpXG4gICAgfSxcbiAgfSxcblxuICBiZWZvcmVNb3VudCAoKSB7XG4gICAgdGhpcy4kbmV4dFRpY2soKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuYWN0aXZhdG9yTm9kZSkge1xuICAgICAgICBjb25zdCBhY3RpdmF0b3IgPSBBcnJheS5pc0FycmF5KHRoaXMuYWN0aXZhdG9yTm9kZSkgPyB0aGlzLmFjdGl2YXRvck5vZGUgOiBbdGhpcy5hY3RpdmF0b3JOb2RlXVxuXG4gICAgICAgIGFjdGl2YXRvci5mb3JFYWNoKG5vZGUgPT4ge1xuICAgICAgICAgIGlmICghbm9kZS5lbG0pIHJldHVyblxuICAgICAgICAgIGlmICghdGhpcy4kZWwucGFyZW50Tm9kZSkgcmV0dXJuXG5cbiAgICAgICAgICBjb25zdCB0YXJnZXQgPSB0aGlzLiRlbCA9PT0gdGhpcy4kZWwucGFyZW50Tm9kZS5maXJzdENoaWxkXG4gICAgICAgICAgICA/IHRoaXMuJGVsXG4gICAgICAgICAgICA6IHRoaXMuJGVsLm5leHRTaWJsaW5nXG5cbiAgICAgICAgICB0aGlzLiRlbC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShub2RlLmVsbSwgdGFyZ2V0KVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pXG4gIH0sXG5cbiAgbW91bnRlZCAoKSB7XG4gICAgdGhpcy5oYXNDb250ZW50ICYmIHRoaXMuaW5pdERldGFjaCgpXG4gIH0sXG5cbiAgZGVhY3RpdmF0ZWQgKCkge1xuICAgIHRoaXMuaXNBY3RpdmUgPSBmYWxzZVxuICB9LFxuXG4gIGJlZm9yZURlc3Ryb3kgKCkge1xuICAgIC8vIElFMTEgRml4XG4gICAgdHJ5IHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy4kcmVmcy5jb250ZW50ICYmXG4gICAgICAgIHRoaXMuJHJlZnMuY29udGVudC5wYXJlbnROb2RlXG4gICAgICApIHtcbiAgICAgICAgdGhpcy4kcmVmcy5jb250ZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy4kcmVmcy5jb250ZW50KVxuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5hY3RpdmF0b3JOb2RlKSB7XG4gICAgICAgIGNvbnN0IGFjdGl2YXRvciA9IEFycmF5LmlzQXJyYXkodGhpcy5hY3RpdmF0b3JOb2RlKSA/IHRoaXMuYWN0aXZhdG9yTm9kZSA6IFt0aGlzLmFjdGl2YXRvck5vZGVdXG4gICAgICAgIGFjdGl2YXRvci5mb3JFYWNoKG5vZGUgPT4ge1xuICAgICAgICAgIG5vZGUuZWxtICYmXG4gICAgICAgICAgICBub2RlLmVsbS5wYXJlbnROb2RlICYmXG4gICAgICAgICAgICBub2RlLmVsbS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG5vZGUuZWxtKVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHsgY29uc29sZS5sb2coZSkgfVxuICB9LFxuXG4gIG1ldGhvZHM6IHtcbiAgICBnZXRTY29wZUlkQXR0cnMgKCkge1xuICAgICAgY29uc3Qgc2NvcGVJZCA9IGdldE9iamVjdFZhbHVlQnlQYXRoKHRoaXMuJHZub2RlLCAnY29udGV4dC4kb3B0aW9ucy5fc2NvcGVJZCcpXG5cbiAgICAgIHJldHVybiBzY29wZUlkICYmIHtcbiAgICAgICAgW3Njb3BlSWRdOiAnJyxcbiAgICAgIH1cbiAgICB9LFxuICAgIGluaXREZXRhY2ggKCkge1xuICAgICAgaWYgKHRoaXMuX2lzRGVzdHJveWVkIHx8XG4gICAgICAgICF0aGlzLiRyZWZzLmNvbnRlbnQgfHxcbiAgICAgICAgdGhpcy5oYXNEZXRhY2hlZCB8fFxuICAgICAgICAvLyBMZWF2ZSBtZW51IGluIHBsYWNlIGlmIGF0dGFjaGVkXG4gICAgICAgIC8vIGFuZCBkZXYgaGFzIG5vdCBjaGFuZ2VkIHRhcmdldFxuICAgICAgICB0aGlzLmF0dGFjaCA9PT0gJycgfHwgLy8gSWYgdXNlZCBhcyBhIGJvb2xlYW4gcHJvcCAoPHYtbWVudSBhdHRhY2g+KVxuICAgICAgICB0aGlzLmF0dGFjaCA9PT0gdHJ1ZSB8fCAvLyBJZiBib3VuZCB0byBhIGJvb2xlYW4gKDx2LW1lbnUgOmF0dGFjaD1cInRydWVcIj4pXG4gICAgICAgIHRoaXMuYXR0YWNoID09PSAnYXR0YWNoJyAvLyBJZiBib3VuZCBhcyBib29sZWFuIHByb3AgaW4gcHVnICh2LW1lbnUoYXR0YWNoKSlcbiAgICAgICkgcmV0dXJuXG5cbiAgICAgIGxldCB0YXJnZXRcbiAgICAgIGlmICh0aGlzLmF0dGFjaCA9PT0gZmFsc2UpIHtcbiAgICAgICAgLy8gRGVmYXVsdCwgZGV0YWNoIHRvIGFwcFxuICAgICAgICB0YXJnZXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbZGF0YS1hcHBdJylcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHRoaXMuYXR0YWNoID09PSAnc3RyaW5nJykge1xuICAgICAgICAvLyBDU1Mgc2VsZWN0b3JcbiAgICAgICAgdGFyZ2V0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLmF0dGFjaClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIERPTSBFbGVtZW50XG4gICAgICAgIHRhcmdldCA9IHRoaXMuYXR0YWNoXG4gICAgICB9XG5cbiAgICAgIGlmICghdGFyZ2V0KSB7XG4gICAgICAgIGNvbnNvbGVXYXJuKGBVbmFibGUgdG8gbG9jYXRlIHRhcmdldCAke3RoaXMuYXR0YWNoIHx8ICdbZGF0YS1hcHBdJ31gLCB0aGlzKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgdGFyZ2V0LmFwcGVuZENoaWxkKHRoaXMuJHJlZnMuY29udGVudClcblxuICAgICAgdGhpcy5oYXNEZXRhY2hlZCA9IHRydWVcbiAgICB9LFxuICB9LFxufSlcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///140\n")},function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);\n// Utilities\n // Types\n\n\n/**\n * Bootable\n * @mixin\n *\n * Used to add lazy content functionality to components\n * Looks for change in "isActive" to automatically boot\n * Otherwise can be set manually\n */\n\n/* @vue/component */\n\n/* harmony default export */ __webpack_exports__["a"] = (vue__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].extend().extend({\n name: \'bootable\',\n props: {\n eager: Boolean\n },\n data: function data() {\n return {\n isBooted: false\n };\n },\n computed: {\n hasContent: function hasContent() {\n return this.isBooted || this.eager || this.isActive;\n }\n },\n watch: {\n isActive: function isActive() {\n this.isBooted = true;\n }\n },\n created: function created() {\n /* istanbul ignore next */\n if (\'lazy\' in this.$attrs) {\n Object(_util_console__WEBPACK_IMPORTED_MODULE_0__[/* removed */ "e"])(\'lazy\', this);\n }\n },\n methods: {\n showLazyContent: function showLazyContent(content) {\n return this.hasContent && content ? content() : [this.$createElement()];\n }\n }\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL21peGlucy9ib290YWJsZS9pbmRleC50cz8yMDM3Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtDQUdBOztBQUNBO0FBS0E7Ozs7Ozs7OztBQVFBOztBQUNlLDRHQUFHLENBQUgsZ0JBQXNDO0FBQ25ELE1BQUksRUFEK0M7QUFHbkQsT0FBSyxFQUFFO0FBQ0wsU0FBSyxFQUFFO0FBREYsR0FINEM7QUFPbkQsTUFBSSxFQUFFO0FBQUEsV0FBTztBQUNYLGNBQVEsRUFBRTtBQURDLEtBQVA7QUFBQSxHQVA2QztBQVduRCxVQUFRLEVBQUU7QUFDUixjQURRLHdCQUNFO0FBQ1IsYUFBTyxpQkFBaUIsS0FBakIsU0FBK0IsS0FBdEM7QUFDRDtBQUhPLEdBWHlDO0FBaUJuRCxPQUFLLEVBQUU7QUFDTCxZQURLLHNCQUNHO0FBQ047QUFDRDtBQUhJLEdBakI0QztBQXVCbkQsU0F2Qm1ELHFCQXVCNUM7QUFDTDtBQUNBLFFBQUksVUFBVSxLQUFkLFFBQTJCO0FBQ3pCLDJFQUFPLFNBQVAsSUFBTyxDQUFQO0FBQ0Q7QUEzQmdEO0FBOEJuRCxTQUFPLEVBQUU7QUFDUCxtQkFETywyQkFDUSxPQURSLEVBQ2lDO0FBQ3RDLGFBQVEsbUJBQUQsT0FBQyxHQUE4QixPQUEvQixFQUFDLEdBQTBDLENBQUMsS0FBbkQsY0FBbUQsRUFBRCxDQUFsRDtBQUNEO0FBSE07QUE5QjBDLENBQXRDLENBQWYiLCJmaWxlIjoiMTQxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVXRpbGl0aWVzXG5pbXBvcnQgeyByZW1vdmVkIH0gZnJvbSAnLi4vLi4vdXRpbC9jb25zb2xlJ1xuXG4vLyBUeXBlc1xuaW1wb3J0IFZ1ZSwgeyBWTm9kZSB9IGZyb20gJ3Z1ZSdcbmludGVyZmFjZSBUb2dnbGVhYmxlIGV4dGVuZHMgVnVlIHtcbiAgaXNBY3RpdmU/OiBib29sZWFuXG59XG5cbi8qKlxuICogQm9vdGFibGVcbiAqIEBtaXhpblxuICpcbiAqIFVzZWQgdG8gYWRkIGxhenkgY29udGVudCBmdW5jdGlvbmFsaXR5IHRvIGNvbXBvbmVudHNcbiAqIExvb2tzIGZvciBjaGFuZ2UgaW4gXCJpc0FjdGl2ZVwiIHRvIGF1dG9tYXRpY2FsbHkgYm9vdFxuICogT3RoZXJ3aXNlIGNhbiBiZSBzZXQgbWFudWFsbHlcbiAqL1xuLyogQHZ1ZS9jb21wb25lbnQgKi9cbmV4cG9ydCBkZWZhdWx0IFZ1ZS5leHRlbmQ8VnVlICYgVG9nZ2xlYWJsZT4oKS5leHRlbmQoe1xuICBuYW1lOiAnYm9vdGFibGUnLFxuXG4gIHByb3BzOiB7XG4gICAgZWFnZXI6IEJvb2xlYW4sXG4gIH0sXG5cbiAgZGF0YTogKCkgPT4gKHtcbiAgICBpc0Jvb3RlZDogZmFsc2UsXG4gIH0pLFxuXG4gIGNvbXB1dGVkOiB7XG4gICAgaGFzQ29udGVudCAoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgICByZXR1cm4gdGhpcy5pc0Jvb3RlZCB8fCB0aGlzLmVhZ2VyIHx8IHRoaXMuaXNBY3RpdmVcbiAgICB9LFxuICB9LFxuXG4gIHdhdGNoOiB7XG4gICAgaXNBY3RpdmUgKCkge1xuICAgICAgdGhpcy5pc0Jvb3RlZCA9IHRydWVcbiAgICB9LFxuICB9LFxuXG4gIGNyZWF0ZWQgKCkge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgaWYgKCdsYXp5JyBpbiB0aGlzLiRhdHRycykge1xuICAgICAgcmVtb3ZlZCgnbGF6eScsIHRoaXMpXG4gICAgfVxuICB9LFxuXG4gIG1ldGhvZHM6IHtcbiAgICBzaG93TGF6eUNvbnRlbnQgKGNvbnRlbnQ/OiAoKSA9PiBWTm9kZVtdKTogVk5vZGVbXSB7XG4gICAgICByZXR1cm4gKHRoaXMuaGFzQ29udGVudCAmJiBjb250ZW50KSA/IGNvbnRlbnQoKSA6IFt0aGlzLiRjcmVhdGVFbGVtZW50KCldXG4gICAgfSxcbiAgfSxcbn0pXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///141\n')},function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* unused harmony export Touch */\n/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n\n\nvar handleGesture = function handleGesture(wrapper) {\n var touchstartX = wrapper.touchstartX,\n touchendX = wrapper.touchendX,\n touchstartY = wrapper.touchstartY,\n touchendY = wrapper.touchendY;\n var dirRatio = 0.5;\n var minDistance = 16;\n wrapper.offsetX = touchendX - touchstartX;\n wrapper.offsetY = touchendY - touchstartY;\n\n if (Math.abs(wrapper.offsetY) < dirRatio * Math.abs(wrapper.offsetX)) {\n wrapper.left && touchendX < touchstartX - minDistance && wrapper.left(wrapper);\n wrapper.right && touchendX > touchstartX + minDistance && wrapper.right(wrapper);\n }\n\n if (Math.abs(wrapper.offsetX) < dirRatio * Math.abs(wrapper.offsetY)) {\n wrapper.up && touchendY < touchstartY - minDistance && wrapper.up(wrapper);\n wrapper.down && touchendY > touchstartY + minDistance && wrapper.down(wrapper);\n }\n};\n\nfunction _touchstart(event, wrapper) {\n var touch = event.changedTouches[0];\n wrapper.touchstartX = touch.clientX;\n wrapper.touchstartY = touch.clientY;\n wrapper.start && wrapper.start(Object.assign(event, wrapper));\n}\n\nfunction _touchend(event, wrapper) {\n var touch = event.changedTouches[0];\n wrapper.touchendX = touch.clientX;\n wrapper.touchendY = touch.clientY;\n wrapper.end && wrapper.end(Object.assign(event, wrapper));\n handleGesture(wrapper);\n}\n\nfunction _touchmove(event, wrapper) {\n var touch = event.changedTouches[0];\n wrapper.touchmoveX = touch.clientX;\n wrapper.touchmoveY = touch.clientY;\n wrapper.move && wrapper.move(Object.assign(event, wrapper));\n}\n\nfunction createHandlers(value) {\n var wrapper = {\n touchstartX: 0,\n touchstartY: 0,\n touchendX: 0,\n touchendY: 0,\n touchmoveX: 0,\n touchmoveY: 0,\n offsetX: 0,\n offsetY: 0,\n left: value.left,\n right: value.right,\n up: value.up,\n down: value.down,\n start: value.start,\n move: value.move,\n end: value.end\n };\n return {\n touchstart: function touchstart(e) {\n return _touchstart(e, wrapper);\n },\n touchend: function touchend(e) {\n return _touchend(e, wrapper);\n },\n touchmove: function touchmove(e) {\n return _touchmove(e, wrapper);\n }\n };\n}\n\nfunction inserted(el, binding, vnode) {\n var value = binding.value;\n var target = value.parent ? el.parentElement : el;\n var options = value.options || {\n passive: true\n }; // Needed to pass unit tests\n\n if (!target) return;\n var handlers = createHandlers(binding.value);\n target._touchHandlers = Object(target._touchHandlers);\n target._touchHandlers[vnode.context._uid] = handlers;\n Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__[/* keys */ "y"])(handlers).forEach(function (eventName) {\n target.addEventListener(eventName, handlers[eventName], options);\n });\n}\n\nfunction unbind(el, binding, vnode) {\n var target = binding.value.parent ? el.parentElement : el;\n if (!target || !target._touchHandlers) return;\n var handlers = target._touchHandlers[vnode.context._uid];\n Object(_util_helpers__WEBPACK_IMPORTED_MODULE_0__[/* keys */ "y"])(handlers).forEach(function (eventName) {\n target.removeEventListener(eventName, handlers[eventName]);\n });\n delete target._touchHandlers[vnode.context._uid];\n}\n\nvar Touch = {\n inserted: inserted,\n unbind: unbind\n};\n/* harmony default export */ __webpack_exports__["a"] = (Touch);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL2RpcmVjdGl2ZXMvdG91Y2gvaW5kZXgudHM/NGFmOSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTtBQUFBO0FBQUE7O0FBYUEsSUFBTSxhQUFhLEdBQUksU0FBakIsYUFBaUIsUUFBRCxFQUEwQjtBQUFBLE1BQ3hDLFdBRHdDLEdBQzlDLE9BRDhDLENBQ3hDLFdBRHdDO0FBQUEsTUFDeEMsU0FEd0MsR0FDOUMsT0FEOEMsQ0FDeEMsU0FEd0M7QUFBQSxNQUN4QyxXQUR3QyxHQUM5QyxPQUQ4QyxDQUN4QyxXQUR3QztBQUFBLE1BQ0QsU0FEQyxHQUM5QyxPQUQ4QyxDQUNELFNBREM7QUFFOUMsTUFBTSxRQUFRLEdBQWQ7QUFDQSxNQUFNLFdBQVcsR0FBakI7QUFDQSxTQUFPLENBQVAsVUFBa0IsU0FBUyxHQUEzQjtBQUNBLFNBQU8sQ0FBUCxVQUFrQixTQUFTLEdBQTNCOztBQUVBLE1BQUksSUFBSSxDQUFKLElBQVMsT0FBTyxDQUFoQixXQUE0QixRQUFRLEdBQUcsSUFBSSxDQUFKLElBQVMsT0FBTyxDQUEzRCxPQUEyQyxDQUEzQyxFQUFzRTtBQUNwRSxXQUFPLENBQVAsUUFBaUIsU0FBUyxHQUFHLFdBQVcsR0FBeEMsZUFBMkQsT0FBTyxDQUFQLEtBQTNELE9BQTJELENBQTNEO0FBQ0EsV0FBTyxDQUFQLFNBQWtCLFNBQVMsR0FBRyxXQUFXLEdBQXpDLGVBQTRELE9BQU8sQ0FBUCxNQUE1RCxPQUE0RCxDQUE1RDtBQUNEOztBQUVELE1BQUksSUFBSSxDQUFKLElBQVMsT0FBTyxDQUFoQixXQUE0QixRQUFRLEdBQUcsSUFBSSxDQUFKLElBQVMsT0FBTyxDQUEzRCxPQUEyQyxDQUEzQyxFQUFzRTtBQUNwRSxXQUFPLENBQVAsTUFBZSxTQUFTLEdBQUcsV0FBVyxHQUF0QyxlQUF5RCxPQUFPLENBQVAsR0FBekQsT0FBeUQsQ0FBekQ7QUFDQSxXQUFPLENBQVAsUUFBaUIsU0FBUyxHQUFHLFdBQVcsR0FBeEMs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QUFqQjtBQUNBLG9FQUFJLENBQUosUUFBSSxDQUFKLFNBQXVCLG1CQUFTLEVBQUc7QUFDakMsVUFBTSxDQUFOLCtCQUFzQyxRQUFRLENBQTlDLFNBQThDLENBQTlDO0FBREY7QUFHQSxTQUFPLE1BQU0sQ0FBTixlQUFzQixLQUFLLENBQUwsUUFBN0IsSUFBTyxDQUFQO0FBQ0Q7O0FBRU0sSUFBTSxLQUFLLEdBQUc7QUFDbkIsVUFEbUIsRUFDbkIsUUFEbUI7QUFFbkI7QUFGbUIsQ0FBZDtBQUtQIiwiZmlsZSI6IjE0Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZOb2RlRGlyZWN0aXZlLCBWTm9kZSB9IGZyb20gJ3Z1ZS90eXBlcy92bm9kZSdcbmltcG9ydCB7IGtleXMgfSBmcm9tICcuLi8uLi91dGlsL2hlbHBlcnMnXG5pbXBvcnQgeyBUb3VjaEhhbmRsZXJzLCBUb3VjaFZhbHVlLCBUb3VjaFdyYXBwZXIgfSBmcm9tICd2dWV0aWZ5L3R5cGVzJ1xuXG5leHBvcnQgaW50ZXJmYWNlIFRvdWNoU3RvcmVkSGFuZGxlcnMge1xuICB0b3VjaHN0YXJ0OiAoZTogVG91Y2hFdmVudCkgPT4gdm9pZFxuICB0b3VjaGVuZDogKGU6IFRvdWNoRXZlbnQpID0+IHZvaWRcbiAgdG91Y2htb3ZlOiAoZTogVG91Y2hFdmVudCkgPT4gdm9pZFxufVxuXG5pbnRlcmZhY2UgVG91Y2hWTm9kZURpcmVjdGl2ZSBleHRlbmRzIFZOb2RlRGlyZWN0aXZlIHtcbiAgdmFsdWU/OiBUb3VjaFZhbHVlXG59XG5cbmNvbnN0IGhhbmRsZUdlc3R1cmUgPSAod3JhcHBlcjogVG91Y2hXcmFwcGVyKSA9PiB7XG4gIGNvbnN0IHsgdG91Y2hzdGFydFgsIHRvdWNoZW5kWCwgdG91Y2hzdGFydFksIHRvdWNoZW5kWSB9ID0gd3JhcHBlclxuICBjb25zdCBkaXJSYXRpbyA9IDAuNVxuICBjb25zdCBtaW5EaXN0YW5jZSA9IDE2XG4gIHdyYXBwZXIub2Zmc2V0WCA9IHRvdWNoZW5kWCAtIHRvdWNoc3RhcnRYXG4gIHdyYXBwZXIub2Zmc2V0WSA9IHRvdWNoZW5kWSAtIHRvdWNoc3RhcnRZXG5cbiAgaWYgKE1hdGguYWJzKHdyYXBwZXIub2Zmc2V0WSkgPCBkaXJSYXRpbyAqIE1hdGguYWJzKHdyYXBwZXIub2Zmc2V0WCkpIHtcbiAgICB3cmFwcGVyLmxlZnQgJiYgKHRvdWNoZW5kWCA8IHRvdWNoc3RhcnRYIC0gbWluRGlzdGFuY2UpICYmIHdyYXBwZXIubGVmdCh3cmFwcGVyKVxuICAgIHdyYXBwZXIucmlnaHQgJiYgKHRvdWNoZW5kWCA+IHRvdWNoc3RhcnRYICsgbWluRGlzdGFuY2UpICYmIHdyYXBwZXIucmlnaHQod3JhcHBlcilcbiAgfVxuXG4gIGlmIChNYXRoLmFicyh3cmFwcGVyLm9mZnNldFgpIDwgZGlyUmF0aW8gKiBNYXRoLmFicyh3cmFwcGVyLm9mZnNldFkpKSB7XG4gICAgd3JhcHBlci51cCAmJiAodG91Y2hlbmRZIDwgdG91Y2hzdGFydFkgLSBtaW5EaXN0YW5jZSkgJiYgd3JhcHBlci51cCh3cmFwcGVyKVxuICAgIHdyYXBwZXIuZG93biAmJiAodG91Y2hlbmRZID4gdG91Y2hzdGFydFkgKyBtaW5EaXN0YW5jZSkgJiYgd3JhcHBlci5kb3duKHdyYXBwZXIpXG4gIH1cbn1cblxuZnVuY3Rpb24gdG91Y2hzdGFydCAoZXZlbnQ6IFRvdWNoRXZlbnQsIHdyYXBwZXI6IFRvdWNoV3JhcHBlcikge1xuICBjb25zdCB0b3VjaCA9IGV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdXG4gIHdyYXBwZXIudG91Y2hzdGFydFggPSB0b3VjaC5jbGllbnRYXG4gIHdyYXBwZXIudG91Y2hzdGFydFkgPSB0b3VjaC5jbGllbnRZXG5cbiAgd3JhcHBlci5zdGFydCAmJlxuICAgIHdyYXBwZXIuc3RhcnQoT2JqZWN0LmFzc2lnbihldmVudCwgd3JhcHBlcikpXG59XG5cbmZ1bmN0aW9uIHRvdWNoZW5kIChldmVudDogVG91Y2hFdmVudCwgd3JhcHBlcjogVG91Y2hXcmFwcGVyKSB7XG4gIGNvbnN0IHRvdWNoID0gZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF1cbiAgd3JhcHBlci50b3VjaGVuZFggPSB0b3VjaC5jbGllbnRYXG4gIHdyYXBwZXIudG91Y2hlbmRZID0gdG91Y2guY2xpZW50WVxuXG4gIHdyYXBwZXIuZW5kICYmXG4gICAgd3JhcHBlci5lbmQoT2JqZWN0LmFzc2lnbihldmVudCwgd3JhcHBlcikpXG5cbiAgaGFuZGxlR2VzdHVyZSh3cmFwcGVyKVxufVxuXG5mdW5jdGlvbiB0b3VjaG1vdmUgKGV2ZW50OiBUb3VjaEV2ZW50LCB3cmFwcGVyOiBUb3VjaFdyYXBwZXIpIHtcbiAgY29uc3QgdG91Y2ggPSBldmVudC5jaGFuZ2VkVG91Y2hlc1swXVxuICB3cmFwcGVyLnRvdWNobW92ZVggPSB0b3VjaC5jbGllbnRYXG4gIHdyYXBwZXIudG91Y2htb3ZlWSA9IHRvdWNoLmNsaWVudFlcblxuICB3cmFwcGVyLm1vdmUgJiYgd3JhcHBlci5tb3ZlKE9iamVjdC5hc3NpZ24oZXZlbnQsIHdyYXBwZXIpKVxufVxuXG5mdW5jdGlvbiBjcmVhdGVIYW5kbGVycyAodmFsdWU6IFRvdWNoSGFuZGxlcnMpOiBUb3VjaFN0b3JlZEhhbmRsZXJzIHtcbiAgY29uc3Qgd3JhcHBlciA9IHtcbiAgICB0b3VjaHN0YXJ0WDogMCxcbiAgICB0b3VjaHN0YXJ0WTogMCxcbiAgICB0b3VjaGVuZFg6IDAsXG4gICAgdG91Y2hlbmRZOiAwLFxuICAgIHRvdWNobW92ZVg6IDAsXG4gICAgdG91Y2htb3ZlWTogMCxcbiAgICBvZmZzZXRYOiAwLFxuICAgIG9mZnNldFk6IDAsXG4gICAgbGVmdDogdmFsdWUubGVmdCxcbiAgICByaWdodDogdmFsdWUucmlnaHQsXG4gICAgdXA6IHZhbHVlLnVwLFxuICAgIGRvd246IHZhbHVlLmRvd24sXG4gICAgc3RhcnQ6IHZhbHVlLnN0YXJ0LFxuICAgIG1vdmU6IHZhbHVlLm1vdmUsXG4gICAgZW5kOiB2YWx1ZS5lbmQsXG4gIH1cblxuICByZXR1cm4ge1xuICAgIHRvdWNoc3RhcnQ6IChlOiBUb3VjaEV2ZW50KSA9PiB0b3VjaHN0YXJ0KGUsIHdyYXBwZXIpLFxuICAgIHRvdWNoZW5kOiAoZTogVG91Y2hFdmVudCkgPT4gdG91Y2hlbmQoZSwgd3JhcHBlciksXG4gICAgdG91Y2htb3ZlOiAoZTogVG91Y2hFdmVudCkgPT4gdG91Y2htb3ZlKGUsIHdyYXBwZXIpLFxuICB9XG59XG5cbmZ1bmN0aW9uIGluc2VydGVkIChlbDogSFRNTEVsZW1lbnQsIGJpbmRpbmc6IFRvdWNoVk5vZGVEaXJlY3RpdmUsIHZub2RlOiBWTm9kZSkge1xuICBjb25zdCB2YWx1ZSA9IGJpbmRpbmcudmFsdWUhXG4gIGNvbnN0IHRhcmdldCA9IHZhbHVlLnBhcmVudCA/IGVsLnBhcmVudEVsZW1lbnQgOiBlbFxuICBjb25zdCBvcHRpb25zID0gdmFsdWUub3B0aW9ucyB8fCB7IHBhc3NpdmU6IHRydWUgfVxuXG4gIC8vIE5lZWRlZCB0byBwYXNzIHVuaXQgdGVzdHNcbiAgaWYgKCF0YXJnZXQpIHJldHVyblxuXG4gIGNvbnN0IGhhbmRsZXJzID0gY3JlYXRlSGFuZGxlcnMoYmluZGluZy52YWx1ZSEpXG4gIHRhcmdldC5fdG91Y2hIYW5kbGVycyA9IE9iamVjdCh0YXJnZXQuX3RvdWNoSGFuZGxlcnMpXG4gIHRhcmdldC5fdG91Y2hIYW5kbGVycyFbdm5vZGUuY29udGV4dCEuX3VpZF0gPSBoYW5kbGVyc1xuXG4gIGtleXMoaGFuZGxlcnMpLmZvckVhY2goZXZlbnROYW1lID0+IHtcbiAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGhhbmRsZXJzW2V2ZW50TmFtZV0gYXMgRXZlbnRMaXN0ZW5lciwgb3B0aW9ucylcbiAgfSlcbn1cblxuZnVuY3Rpb24gdW5iaW5kIChlbDogSFRNTEVsZW1lbnQsIGJpbmRpbmc6IFRvdWNoVk5vZGVEaXJlY3RpdmUsIHZub2RlOiBWTm9kZSkge1xuICBjb25zdCB0YXJnZXQgPSBiaW5kaW5nLnZhbHVlIS5wYXJlbnQgPyBlbC5wYXJlbnRFbGVtZW50IDogZWxcbiAgaWYgKCF0YXJnZXQgfHwgIXRhcmdldC5fdG91Y2hIYW5kbGVycykgcmV0dXJuXG5cbiAgY29uc3QgaGFuZGxlcnMgPSB0YXJnZXQuX3RvdWNoSGFuZGxlcnNbdm5vZGUuY29udGV4dCEuX3VpZF1cbiAga2V5cyhoYW5kbGVycykuZm9yRWFjaChldmVudE5hbWUgPT4ge1xuICAgIHRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgaGFuZGxlcnNbZXZlbnROYW1lXSlcbiAgfSlcbiAgZGVsZXRlIHRhcmdldC5fdG91Y2hIYW5kbGVyc1t2bm9kZS5jb250ZXh0IS5fdWlkXVxufVxuXG5leHBvcnQgY29uc3QgVG91Y2ggPSB7XG4gIGluc2VydGVkLFxuICB1bmJpbmQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IFRvdWNoXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///142\n')},,function(module,__webpack_exports__,__webpack_require__){"use strict";eval("/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return applicationable; });\n/* harmony import */ var _positionable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(60);\n/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5);\n // Util\n\n\nfunction applicationable(value) {\n var events = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n /* @vue/component */\n return Object(_util_mixins__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(Object(_positionable__WEBPACK_IMPORTED_MODULE_0__[/* factory */ \"b\"])(['absolute', 'fixed'])).extend({\n name: 'applicationable',\n props: {\n app: Boolean\n },\n computed: {\n applicationProperty: function applicationProperty() {\n return value;\n }\n },\n watch: {\n // If previous value was app\n // reset the provided prop\n app: function app(x, prev) {\n prev ? this.removeApplication(true) : this.callUpdate();\n },\n applicationProperty: function applicationProperty(newVal, oldVal) {\n this.$vuetify.application.unregister(this._uid, oldVal);\n }\n },\n activated: function activated() {\n this.callUpdate();\n },\n created: function created() {\n for (var i = 0, length = events.length; i < length; i++) {\n this.$watch(events[i], this.callUpdate);\n }\n\n this.callUpdate();\n },\n mounted: function mounted() {\n this.callUpdate();\n },\n deactivated: function deactivated() {\n this.removeApplication();\n },\n destroyed: function destroyed() {\n this.removeApplication();\n },\n methods: {\n callUpdate: function callUpdate() {\n if (!this.app) return;\n this.$vuetify.application.register(this._uid, this.applicationProperty, this.updateApplication());\n },\n removeApplication: function removeApplication() {\n var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n if (!force && !this.app) return;\n this.$vuetify.application.unregister(this._uid, this.applicationProperty);\n },\n updateApplication: function updateApplication() {\n return 0;\n }\n }\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL21peGlucy9hcHBsaWNhdGlvbmFibGUvaW5kZXgudHM/NGZjYSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7Q0FHQTs7QUFDQTtBQUVjLGdDQUFtRTtBQUFBLE1BQXJCLE1BQXFCLHVFQUFuRSxFQUFtRTs7QUFDL0U7QUFDQSxTQUFPLG9FQUFNLENBQUMscUVBQW1CLENBQUMsYUFBM0IsT0FBMkIsQ0FBRCxDQUFwQixDQUFOLFFBQTBEO0FBQy9ELFFBQUksRUFEMkQ7QUFHL0QsU0FBSyxFQUFFO0FBQ0wsU0FBRyxFQUFFO0FBREEsS0FId0Q7QUFPL0QsWUFBUSxFQUFFO0FBQ1IseUJBRFEsaUNBQ1c7QUFDakI7QUFDRDtBQUhPLEtBUHFEO0FBYS9ELFNBQUssRUFBRTtBQUNMO0FBQ0E7QUFDQSxTQUhLLGVBR0YsQ0FIRSxFQUdGLElBSEUsRUFHeUI7QUFDNUIsWUFBSSxHQUNBLHVCQURBLElBQ0EsQ0FEQSxHQUVBLEtBRkosVUFFSSxFQUZKO0FBSkc7QUFRTCx5QkFSSywrQkFRYyxNQVJkLEVBUWMsTUFSZCxFQVE4QjtBQUNqQyw2Q0FBcUMsS0FBckM7QUFDRDtBQVZJLEtBYndEO0FBMEIvRCxhQTFCK0QsdUJBMEJ0RDtBQUNQO0FBM0I2RDtBQThCL0QsV0E5QitELHFCQThCeEQ7QUFDTCxXQUFLLElBQUksQ0FBQyxHQUFMLEdBQVcsTUFBTSxHQUFHLE1BQU0sQ0FBL0IsUUFBd0MsQ0FBQyxHQUF6QyxRQUFvRCxDQUFwRCxJQUF5RDtBQUN2RCxvQkFBWSxNQUFNLENBQWxCLENBQWtCLENBQWxCLEVBQXVCLEtBQXZCO0FBQ0Q7O0FBQ0Q7QUFsQzZEO0FBcUMvRCxXQXJDK0QscUJBcUN4RDtBQUNMO0FBdEM2RDtBQXlDL0QsZUF6QytELHlCQXlDcEQ7QUFDVDtBQTFDNkQ7QUE2Qy9ELGFBN0MrRCx1QkE2Q3REO0FBQ1A7QUE5QzZEO0FBaUQvRCxXQUFPLEVBQUU7QUFDUCxnQkFETyx3QkFDRztBQUNSLFlBQUksQ0FBQyxLQUFMLEtBQWU7QUFFZiwyQ0FDRSxLQURGLE1BRUUsS0FGRixxQkFHRSxLQUhGLGlCQUdFLEVBSEY7QUFKSztBQVVQLHVCQVZPLCtCQVV5QjtBQUFBLFlBQWIsS0FBYSx1RUFBZixLQUFlO0FBQzlCLFlBQUksVUFBVSxDQUFDLEtBQWYsS0FBeUI7QUFFekIsNkNBQ0UsS0FERixNQUVFLEtBRkY7QUFiSztBQWtCUCx1QkFBaUIsRUFBRTtBQUFBLGVBQU0sQ0FBTjtBQUFBO0FBbEJaO0FBakRzRCxHQUExRCxDQUFQO0FBc0VEIiwiZmlsZSI6IjE0NC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZhY3RvcnkgYXMgUG9zaXRpb25hYmxlRmFjdG9yeSB9IGZyb20gJy4uL3Bvc2l0aW9uYWJsZSdcbmltcG9ydCB7IFRhcmdldFByb3AgfSBmcm9tICd2dWV0aWZ5L3R5cGVzL3NlcnZpY2VzL2FwcGxpY2F0aW9uJ1xuXG4vLyBVdGlsXG5pbXBvcnQgbWl4aW5zIGZyb20gJy4uLy4uL3V0aWwvbWl4aW5zJ1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhcHBsaWNhdGlvbmFibGUgKHZhbHVlOiBUYXJnZXRQcm9wLCBldmVudHM6IHN0cmluZ1tdID0gW10pIHtcbiAgLyogQHZ1ZS9jb21wb25lbnQgKi9cbiAgcmV0dXJuIG1peGlucyhQb3NpdGlvbmFibGVGYWN0b3J5KFsnYWJzb2x1dGUnLCAnZml4ZWQnXSkpLmV4dGVuZCh7XG4gICAgbmFtZTogJ2FwcGxpY2F0aW9uYWJsZScsXG5cbiAgICBwcm9wczoge1xuICAgICAgYXBwOiBCb29sZWFuLFxuICAgIH0sXG5cbiAgICBjb21wdXRlZDoge1xuICAgICAgYXBwbGljYXRpb25Qcm9wZXJ0eSAoKTogVGFyZ2V0UHJvcCB7XG4gICAgICAgIHJldHVybiB2YWx1ZVxuICAgICAgfSxcbiAgICB9LFxuXG4gICAgd2F0Y2g6IHtcbiAgICAgIC8vIElmIHByZXZpb3VzIHZhbHVlIHdhcyBhcHBcbiAgICAgIC8vIHJlc2V0IHRoZSBwcm92aWRlZCBwcm9wXG4gICAgICBhcHAgKHg6IGJvb2xlYW4sIHByZXY6IGJvb2xlYW4pIHtcbiAgICAgICAgcHJldlxuICAgICAgICAgID8gdGhpcy5yZW1vdmVBcHBsaWNhdGlvbih0cnVlKVxuICAgICAgICAgIDogdGhpcy5jYWxsVXBkYXRlKClcbiAgICAgIH0sXG4gICAgICBhcHBsaWNhdGlvblByb3BlcnR5IChuZXdWYWwsIG9sZFZhbCkge1xuICAgICAgICB0aGlzLiR2dWV0aWZ5LmFwcGxpY2F0aW9uLnVucmVnaXN0ZXIodGhpcy5fdWlkLCBvbGRWYWwpXG4gICAgICB9LFxuICAgIH0sXG5cbiAgICBhY3RpdmF0ZWQgKCkge1xuICAgICAgdGhpcy5jYWxsVXBkYXRlKClcbiAgICB9LFxuXG4gICAgY3JlYXRlZCAoKSB7XG4gICAgICBmb3IgKGxldCBpID0gMCwgbGVuZ3RoID0gZXZlbnRzLmxlbmd0aDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHRoaXMuJHdhdGNoKGV2ZW50c1tpXSwgdGhpcy5jYWxsVXBkYXRlKVxuICAgICAgfVxuICAgICAgdGhpcy5jYWxsVXBkYXRlKClcbiAgICB9LFxuXG4gICAgbW91bnRlZCAoKSB7XG4gICAgICB0aGlzLmNhbGxVcGRhdGUoKVxuICAgIH0sXG5cbiAgICBkZWFjdGl2YXRlZCAoKSB7XG4gICAgICB0aGlzLnJlbW92ZUFwcGxpY2F0aW9uKClcbiAgICB9LFxuXG4gICAgZGVzdHJveWVkICgpIHtcbiAgICAgIHRoaXMucmVtb3ZlQXBwbGljYXRpb24oKVxuICAgIH0sXG5cbiAgICBtZXRob2RzOiB7XG4gICAgICBjYWxsVXBkYXRlICgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmFwcCkgcmV0dXJuXG5cbiAgICAgICAgdGhpcy4kdnVldGlmeS5hcHBsaWNhdGlvbi5yZWdpc3RlcihcbiAgICAgICAgICB0aGlzLl91aWQsXG4gICAgICAgICAgdGhpcy5hcHBsaWNhdGlvblByb3BlcnR5LFxuICAgICAgICAgIHRoaXMudXBkYXRlQXBwbGljYXRpb24oKVxuICAgICAgICApXG4gICAgICB9LFxuICAgICAgcmVtb3ZlQXBwbGljYXRpb24gKGZvcmNlID0gZmFsc2UpIHtcbiAgICAgICAgaWYgKCFmb3JjZSAmJiAhdGhpcy5hcHApIHJldHVyblxuXG4gICAgICAgIHRoaXMuJHZ1ZXRpZnkuYXBwbGljYXRpb24udW5yZWdpc3RlcihcbiAgICAgICAgICB0aGlzLl91aWQsXG4gICAgICAgICAgdGhpcy5hcHBsaWNhdGlvblByb3BlcnR5XG4gICAgICAgIClcbiAgICAgIH0sXG4gICAgICB1cGRhdGVBcHBsaWNhdGlvbjogKCkgPT4gMCxcbiAgICB9LFxuICB9KVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///144\n")},function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* unused harmony export VToolbarItems */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return VToolbarTitle; });\n/* harmony import */ var _VToolbar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(54);\n/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(0);\n// Components\n // Utilities\n\n\nvar VToolbarTitle = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__[/* createSimpleFunctional */ "i"])(\'v-toolbar__title\');\nvar VToolbarItems = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__[/* createSimpleFunctional */ "i"])(\'v-toolbar__items\');\n\n/* unused harmony default export */ var _unused_webpack_default_export = ({\n $_vuetify_subcomponents: {\n VToolbar: _VToolbar__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"],\n VToolbarItems: VToolbarItems,\n VToolbarTitle: VToolbarTitle\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvVlRvb2xiYXIvaW5kZXgudHM/YWEzZCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBR0E7O0FBQ0E7QUFFQSxJQUFNLGFBQWEsR0FBRyxvRkFBc0IsQ0FBNUMsa0JBQTRDLENBQTVDO0FBQ0EsSUFBTSxhQUFhLEdBQUcsb0ZBQXNCLENBQTVDLGtCQUE0QyxDQUE1QztBQUVBO0FBTWU7QUFDYix5QkFBdUIsRUFBRTtBQUN2QixZQUR1QixFQUN2Qix5REFEdUI7QUFFdkIsaUJBRnVCLEVBRXZCLGFBRnVCO0FBR3ZCO0FBSHVCO0FBRFosQ0FBZiIsImZpbGUiOiIxNDUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb21wb25lbnRzXG5pbXBvcnQgVlRvb2xiYXIgZnJvbSAnLi9WVG9vbGJhcidcblxuLy8gVXRpbGl0aWVzXG5pbXBvcnQgeyBjcmVhdGVTaW1wbGVGdW5jdGlvbmFsIH0gZnJvbSAnLi4vLi4vdXRpbC9oZWxwZXJzJ1xuXG5jb25zdCBWVG9vbGJhclRpdGxlID0gY3JlYXRlU2ltcGxlRnVuY3Rpb25hbCgndi10b29sYmFyX190aXRsZScpXG5jb25zdCBWVG9vbGJhckl0ZW1zID0gY3JlYXRlU2ltcGxlRnVuY3Rpb25hbCgndi10b29sYmFyX19pdGVtcycpXG5cbmV4cG9ydCB7XG4gIFZUb29sYmFyLFxuICBWVG9vbGJhckl0ZW1zLFxuICBWVG9vbGJhclRpdGxlLFxufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gICRfdnVldGlmeV9zdWJjb21wb25lbnRzOiB7XG4gICAgVlRvb2xiYXIsXG4gICAgVlRvb2xiYXJJdGVtcyxcbiAgICBWVG9vbGJhclRpdGxlLFxuICB9LFxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///145\n')},,function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return VCardActions; });\n/* unused harmony export VCardSubtitle */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return VCardText; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return VCardTitle; });\n/* harmony import */ var _VCard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(176);\n/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(0);\n\n\nvar VCardActions = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__[/* createSimpleFunctional */ "i"])(\'v-card__actions\');\nvar VCardSubtitle = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__[/* createSimpleFunctional */ "i"])(\'v-card__subtitle\');\nvar VCardText = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__[/* createSimpleFunctional */ "i"])(\'v-card__text\');\nvar VCardTitle = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_1__[/* createSimpleFunctional */ "i"])(\'v-card__title\');\n\n/* unused harmony default export */ var _unused_webpack_default_export = ({\n $_vuetify_subcomponents: {\n VCard: _VCard__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"],\n VCardActions: VCardActions,\n VCardSubtitle: VCardSubtitle,\n VCardText: VCardText,\n VCardTitle: VCardTitle\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvVkNhcmQvaW5kZXgudHM/MGY3YiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBRUEsSUFBTSxZQUFZLEdBQUcsb0ZBQXNCLENBQTNDLGlCQUEyQyxDQUEzQztBQUNBLElBQU0sYUFBYSxHQUFHLG9GQUFzQixDQUE1QyxrQkFBNEMsQ0FBNUM7QUFDQSxJQUFNLFNBQVMsR0FBRyxvRkFBc0IsQ0FBeEMsY0FBd0MsQ0FBeEM7QUFDQSxJQUFNLFVBQVUsR0FBRyxvRkFBc0IsQ0FBekMsZUFBeUMsQ0FBekM7QUFFQTtBQVFlO0FBQ2IseUJBQXVCLEVBQUU7QUFDdkIsU0FEdUIsRUFDdkIsc0RBRHVCO0FBRXZCLGdCQUZ1QixFQUV2QixZQUZ1QjtBQUd2QixpQkFIdUIsRUFHdkIsYUFIdUI7QUFJdkIsYUFKdUIsRUFJdkIsU0FKdUI7QUFLdkI7QUFMdUI7QUFEWixDQUFmIiwiZmlsZSI6IjE0Ny5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBWQ2FyZCBmcm9tICcuL1ZDYXJkJ1xuaW1wb3J0IHsgY3JlYXRlU2ltcGxlRnVuY3Rpb25hbCB9IGZyb20gJy4uLy4uL3V0aWwvaGVscGVycydcblxuY29uc3QgVkNhcmRBY3Rpb25zID0gY3JlYXRlU2ltcGxlRnVuY3Rpb25hbCgndi1jYXJkX19hY3Rpb25zJylcbmNvbnN0IFZDYXJkU3VidGl0bGUgPSBjcmVhdGVTaW1wbGVGdW5jdGlvbmFsKCd2LWNhcmRfX3N1YnRpdGxlJylcbmNvbnN0IFZDYXJkVGV4dCA9IGNyZWF0ZVNpbXBsZUZ1bmN0aW9uYWwoJ3YtY2FyZF9fdGV4dCcpXG5jb25zdCBWQ2FyZFRpdGxlID0gY3JlYXRlU2ltcGxlRnVuY3Rpb25hbCgndi1jYXJkX190aXRsZScpXG5cbmV4cG9ydCB7XG4gIFZDYXJkLFxuICBWQ2FyZEFjdGlvbnMsXG4gIFZDYXJkU3VidGl0bGUsXG4gIFZDYXJkVGV4dCxcbiAgVkNhcmRUaXRsZSxcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICAkX3Z1ZXRpZnlfc3ViY29tcG9uZW50czoge1xuICAgIFZDYXJkLFxuICAgIFZDYXJkQWN0aW9ucyxcbiAgICBWQ2FyZFN1YnRpdGxlLFxuICAgIFZDYXJkVGV4dCxcbiAgICBWQ2FyZFRpdGxlLFxuICB9LFxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///147\n')},,,,,function(module,__webpack_exports__,__webpack_require__){"use strict";eval("\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.number.constructor.js\nvar es6_number_constructor = __webpack_require__(20);\n\n// EXTERNAL MODULE: ./node_modules/vue/dist/vue.runtime.esm.js\nvar vue_runtime_esm = __webpack_require__(2);\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es7.object.get-own-property-descriptors.js\nvar es7_object_get_own_property_descriptors = __webpack_require__(11);\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.symbol.js\nvar es6_symbol = __webpack_require__(8);\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom.iterable.js\nvar web_dom_iterable = __webpack_require__(6);\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.to-string.js\nvar es6_object_to_string = __webpack_require__(4);\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.keys.js\nvar es6_object_keys = __webpack_require__(9);\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.fixed.js\nvar es6_string_fixed = __webpack_require__(134);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__(1);\n\n// EXTERNAL MODULE: ./node_modules/vuetify/src/components/VProgressLinear/VProgressLinear.sass\nvar VProgressLinear = __webpack_require__(318);\n\n// EXTERNAL MODULE: ./node_modules/vuetify/lib/components/transitions/index.js + 2 modules\nvar transitions = __webpack_require__(84);\n\n// EXTERNAL MODULE: ./node_modules/vuetify/lib/mixins/colorable/index.js\nvar colorable = __webpack_require__(21);\n\n// EXTERNAL MODULE: ./node_modules/vuetify/lib/mixins/positionable/index.js\nvar positionable = __webpack_require__(60);\n\n// EXTERNAL MODULE: ./node_modules/vuetify/lib/mixins/proxyable/index.js\nvar proxyable = __webpack_require__(96);\n\n// EXTERNAL MODULE: ./node_modules/vuetify/lib/mixins/themeable/index.js\nvar themeable = __webpack_require__(17);\n\n// EXTERNAL MODULE: ./node_modules/vuetify/lib/util/helpers.js\nvar helpers = __webpack_require__(0);\n\n// EXTERNAL MODULE: ./node_modules/vuetify/lib/util/mixins.js\nvar mixins = __webpack_require__(5);\n\n// CONCATENATED MODULE: ./node_modules/vuetify/lib/components/VProgressLinear/VProgressLinear.js\n\n\n\n\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n // Components\n\n // Mixins\n\n\n\n\n // Utilities\n\n\n\nvar baseMixins = Object(mixins[\"a\" /* default */])(colorable[\"a\" /* default */], Object(positionable[\"b\" /* factory */])(['absolute', 'fixed', 'top', 'bottom']), proxyable[\"a\" /* default */], themeable[\"a\" /* default */]);\n/* @vue/component */\n\n/* harmony default export */ var VProgressLinear_VProgressLinear = (baseMixins.extend({\n name: 'v-progress-linear',\n props: {\n active: {\n type: Boolean,\n default: true\n },\n backgroundColor: {\n type: String,\n default: null\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null\n },\n bufferValue: {\n type: [Number, String],\n default: 100\n },\n color: {\n type: String,\n default: 'primary'\n },\n height: {\n type: [Number, String],\n default: 4\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0\n }\n },\n data: function data() {\n return {\n internalLazyValue: this.value || 0\n };\n },\n computed: {\n __cachedBackground: function __cachedBackground() {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle\n }));\n },\n __cachedBar: function __cachedBar() {\n return this.$createElement(this.computedTransition, [this.__cachedBarType]);\n },\n __cachedBarType: function __cachedBarType() {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate;\n },\n __cachedBuffer: function __cachedBuffer() {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles\n });\n },\n __cachedDeterminate: function __cachedDeterminate() {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: \"v-progress-linear__determinate\",\n style: {\n width: Object(helpers[\"g\" /* convertToUnit */])(this.normalizedValue, '%')\n }\n }));\n },\n __cachedIndeterminate: function __cachedIndeterminate() {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active\n }\n }, [this.genProgressBar('long'), this.genProgressBar('short')]);\n },\n __cachedStream: function __cachedStream() {\n if (!this.stream) return null;\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: Object(helpers[\"g\" /* convertToUnit */])(100 - this.normalizedBuffer, '%')\n }\n }));\n },\n backgroundStyle: function backgroundStyle() {\n var _ref;\n\n var backgroundOpacity = this.backgroundOpacity == null ? this.backgroundColor ? 1 : 0.3 : parseFloat(this.backgroundOpacity);\n return _ref = {\n opacity: backgroundOpacity\n }, Object(defineProperty[\"a\" /* default */])(_ref, this.isReversed ? 'right' : 'left', Object(helpers[\"g\" /* convertToUnit */])(this.normalizedValue, '%')), Object(defineProperty[\"a\" /* default */])(_ref, \"width\", Object(helpers[\"g\" /* convertToUnit */])(this.normalizedBuffer - this.normalizedValue, '%')), _ref;\n },\n classes: function classes() {\n return _objectSpread({\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped\n }, this.themeClasses);\n },\n computedTransition: function computedTransition() {\n return this.indeterminate ? transitions[\"c\" /* VFadeTransition */] : transitions[\"e\" /* VSlideXTransition */];\n },\n isReversed: function isReversed() {\n return this.$vuetify.rtl !== this.reverse;\n },\n normalizedBuffer: function normalizedBuffer() {\n return this.normalize(this.bufferValue);\n },\n normalizedValue: function normalizedValue() {\n return this.normalize(this.internalLazyValue);\n },\n reactive: function reactive() {\n return Boolean(this.$listeners.change);\n },\n styles: function styles() {\n var styles = {};\n\n if (!this.active) {\n styles.height = 0;\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = Object(helpers[\"g\" /* convertToUnit */])(this.normalizedBuffer, '%');\n }\n\n return styles;\n }\n },\n methods: {\n genContent: function genContent() {\n var slot = Object(helpers[\"s\" /* getSlot */])(this, 'default', {\n value: this.internalLazyValue\n });\n if (!slot) return null;\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content'\n }, slot);\n },\n genListeners: function genListeners() {\n var listeners = this.$listeners;\n\n if (this.reactive) {\n listeners.click = this.onClick;\n }\n\n return listeners;\n },\n genProgressBar: function genProgressBar(name) {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: Object(defineProperty[\"a\" /* default */])({}, name, true)\n }));\n },\n onClick: function onClick(e) {\n if (!this.reactive) return;\n\n var _this$$el$getBounding = this.$el.getBoundingClientRect(),\n width = _this$$el$getBounding.width;\n\n this.internalValue = e.offsetX / width * 100;\n },\n normalize: function normalize(value) {\n if (value < 0) return 0;\n if (value > 100) return 100;\n return parseFloat(value);\n }\n },\n render: function render(h) {\n var data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue\n },\n class: this.classes,\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? Object(helpers[\"g\" /* convertToUnit */])(this.height) : 0,\n top: this.top ? 0 : undefined\n },\n on: this.genListeners()\n };\n return h('div', data, [this.__cachedStream, this.__cachedBackground, this.__cachedBuffer, this.__cachedBar, this.genContent()]);\n }\n}));\n// CONCATENATED MODULE: ./node_modules/vuetify/lib/components/VProgressLinear/index.js\n\n\n/* harmony default export */ var components_VProgressLinear = (VProgressLinear_VProgressLinear);\n// CONCATENATED MODULE: ./node_modules/vuetify/lib/mixins/loadable/index.js\n\n\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n\n/* @vue/component */\n\n/* harmony default export */ var loadable = __webpack_exports__[\"a\"] = (vue_runtime_esm[\"a\" /* default */].extend().extend({\n name: 'loadable',\n props: {\n loading: {\n type: [Boolean, String],\n default: false\n },\n loaderHeight: {\n type: [Number, String],\n default: 2\n }\n },\n methods: {\n genProgress: function genProgress() {\n if (this.loading === false) return null;\n return this.$slots.progress || this.$createElement(components_VProgressLinear, {\n props: {\n absolute: true,\n color: this.loading === true || this.loading === '' ? this.color || 'primary' : this.loading,\n height: this.loaderHeight,\n indeterminate: true\n }\n });\n }\n }\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvVlByb2dyZXNzTGluZWFyL1ZQcm9ncmVzc0xpbmVhci50cz8yOTNjIiwid2VicGFjazovLy8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9WUHJvZ3Jlc3NMaW5lYXIvaW5kZXgudHM/NWQ3ZCIsIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL21peGlucy9sb2FkYWJsZS9pbmRleC50cz8xMmQ5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQUVBOztDQU1BOztBQUNBO0FBQ0E7QUFDQTtDQUdBOztBQUNBO0FBQ0E7QUFNQSxJQUFNLFVBQVUsR0FBRyxpQ0FBTSwrQkFFdkIsdUNBQW1CLENBQUMsNkJBRkcsUUFFSCxDQUFELENBRkksZ0NBQXpCLDRCQUF5QixDQUF6QjtBQU9BOztBQUNlLDhFQUFVLENBQVYsT0FBa0I7QUFDL0IsTUFBSSxFQUQyQjtBQUcvQixPQUFLLEVBQUU7QUFDTCxVQUFNLEVBQUU7QUFDTixVQUFJLEVBREU7QUFFTixhQUFPLEVBQUU7QUFGSCxLQURIO0FBS0wsbUJBQWUsRUFBRTtBQUNmLFVBQUksRUFEVztBQUVmLGFBQU8sRUFBRTtBQUZNLEtBTFo7QUFTTCxxQkFBaUIsRUFBRTtBQUNqQixVQUFJLEVBQUUsU0FEVyxNQUNYLENBRFc7QUFFakIsYUFBTyxFQUFFO0FBRlEsS0FUZDtBQWFMLGVBQVcsRUFBRTtBQUNYLFVBQUksRUFBRSxTQURLLE1BQ0wsQ0FESztBQUVYLGFBQU8sRUFBRTtBQUZFLEtBYlI7QUFpQkwsU0FBSyxFQUFFO0FBQ0wsVUFBSSxFQURDO0FBRUwsYUFBTyxFQUFFO0FBRkosS0FqQkY7QUFxQkwsVUFBTSxFQUFFO0FBQ04sVUFBSSxFQUFFLFNBREEsTUFDQSxDQURBO0FBRU4sYUFBTyxFQUFFO0FBRkgsS0FyQkg7QUF5QkwsaUJBQWEs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SyxFQUFFO0FBQ0wsa0JBQVEsRUFESDtBQUVMLGVBQUssRUFBRyx5QkFBeUIsaUJBQTFCLEVBQUMsR0FDSCxjQURFLFNBQUMsR0FFSixLQUpDO0FBS0wsZ0JBQU0sRUFBRSxLQUxIO0FBTUwsdUJBQWEsRUFBRTtBQU5WO0FBRDJELE9BQXJDLENBQS9CO0FBVUQ7QUFkTTtBQWRtQyxDQUEvQixDQUFmIiwiZmlsZSI6IjE1Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnLi9WUHJvZ3Jlc3NMaW5lYXIuc2FzcydcblxuLy8gQ29tcG9uZW50c1xuaW1wb3J0IHtcbiAgVkZhZGVUcmFuc2l0aW9uLFxuICBWU2xpZGVYVHJhbnNpdGlvbixcbn0gZnJvbSAnLi4vdHJhbnNpdGlvbnMnXG5cbi8vIE1peGluc1xuaW1wb3J0IENvbG9yYWJsZSBmcm9tICcuLi8uLi9taXhpbnMvY29sb3JhYmxlJ1xuaW1wb3J0IHsgZmFjdG9yeSBhcyBQb3NpdGlvbmFibGVGYWN0b3J5IH0gZnJvbSAnLi4vLi4vbWl4aW5zL3Bvc2l0aW9uYWJsZSdcbmltcG9ydCBQcm94eWFibGUgZnJvbSAnLi4vLi4vbWl4aW5zL3Byb3h5YWJsZSdcbmltcG9ydCBUaGVtZWFibGUgZnJvbSAnLi4vLi4vbWl4aW5zL3RoZW1lYWJsZSdcblxuLy8gVXRpbGl0aWVzXG5pbXBvcnQgeyBjb252ZXJ0VG9Vbml0LCBnZXRTbG90IH0gZnJvbSAnLi4vLi4vdXRpbC9oZWxwZXJzJ1xuaW1wb3J0IG1peGlucyBmcm9tICcuLi8uLi91dGlsL21peGlucydcblxuLy8gVHlwZXNcbmltcG9ydCB7IEZ1bmN0aW9uYWxDb21wb25lbnRPcHRpb25zIH0gZnJvbSAndnVlL3R5cGVzJ1xuaW1wb3J0IHsgVk5vZGUgfSBmcm9tICd2dWUnXG5cbmNvbnN0IGJhc2VNaXhpbnMgPSBtaXhpbnMoXG4gIENvbG9yYWJsZSxcbiAgUG9zaXRpb25hYmxlRmFjdG9yeShbJ2Fic29sdXRlJywgJ2ZpeGVkJywgJ3RvcCcsICdib3R0b20nXSksXG4gIFByb3h5YWJsZSxcbiAgVGhlbWVhYmxlXG4pXG5cbi8qIEB2dWUvY29tcG9uZW50ICovXG5leHBvcnQgZGVmYXVsdCBiYXNlTWl4aW5zLmV4dGVuZCh7XG4gIG5hbWU6ICd2LXByb2dyZXNzLWxpbmVhcicsXG5cbiAgcHJvcHM6IHtcbiAgICBhY3RpdmU6IHtcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICBkZWZhdWx0OiB0cnVlLFxuICAgIH0sXG4gICAgYmFja2dyb3VuZENvbG9yOiB7XG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICBkZWZhdWx0OiBudWxsLFxuICAgIH0sXG4gICAgYmFja2dyb3VuZE9wYWNpdHk6IHtcbiAgICAgIHR5cGU6IFtOdW1iZXIsIFN0cmluZ10sXG4gICAgICBkZWZhdWx0OiBudWxsLFxuICAgIH0sXG4gICAgYnVmZmVyVmFsdWU6IHtcbiAgICAgIHR5cGU6IFtOdW1iZXIsIFN0cmluZ10sXG4gICAgICBkZWZhdWx0OiAxMDAsXG4gICAgfSxcbiAgICBjb2xvcjoge1xuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgZGVmYXVsdDogJ3ByaW1hcnknLFxuICAgIH0sXG4gICAgaGVpZ2h0OiB7XG4gICAgICB0eXBlOiBbTnVtYmVyLCBTdHJpbmddLFxuICAgICAgZGVmYXVsdDogNCxcbiAgICB9LFxuICAgIGluZGV0ZXJtaW5hdGU6IEJvb2xlYW4sXG4gICAgcXVlcnk6IEJvb2xlYW4sXG4gICAgcmV2ZXJzZTogQm9vbGVhbixcbiAgICByb3VuZGVkOiBCb29sZWFuLFxuICAgIHN0cmVhbTogQm9vbGVhbixcbiAgICBzdHJpcGVkOiBCb29sZWFuLFxuICAgIHZhbHVlOiB7XG4gICAgICB0eXBlOiBbTnVtYmVyLCBTdHJpbmddLFxuICAgICAgZGVmYXVsdDogMCxcbiAgICB9LFxuICB9LFxuXG4gIGRhdGEgKCkge1xuICAgIHJldHVybiB7XG4gICAgICBpbnRlcm5hbExhenlWYWx1ZTogdGhpcy52YWx1ZSB8fCAwLFxuICAgIH1cbiAgfSxcblxuICBjb21wdXRlZDoge1xuICAgIF9fY2FjaGVkQmFja2dyb3VuZCAoKTogVk5vZGUge1xuICAgICAgcmV0dXJuIHRoaXMuJGNyZWF0ZUVsZW1lbnQoJ2RpdicsIHRoaXMuc2V0QmFja2dyb3VuZENvbG9yKHRoaXMuYmFja2dyb3VuZENvbG9yIHx8IHRoaXMuY29sb3IsIHtcbiAgICAgICAgc3RhdGljQ2xhc3M6ICd2LXByb2dyZXNzLWxpbmVhcl9fYmFja2dyb3VuZCcsXG4gICAgICAgIHN0eWxlOiB0aGlzLmJhY2tncm91bmRTdHlsZSxcbiAgICAgIH0pKVxuICAgIH0sXG4gICAgX19jYWNoZWRCYXIgKCk6IFZOb2RlIHtcbiAgICAgIHJldHVybiB0aGlzLiRjcmVhdGVFbGVtZW50KHRoaXMuY29tcHV0ZWRUcmFuc2l0aW9uLCBbdGhpcy5fX2NhY2hlZEJhclR5cGVdKVxuICAgIH0sXG4gICAgX19jYWNoZWRCYXJUeXBlICgpOiBWTm9kZSB7XG4gICAgICByZXR1cm4gdGhpcy5pbmRldGVybWluYXRlID8gdGhpcy5fX2NhY2hlZEluZGV0ZXJtaW5hdGUgOiB0aGlzLl9fY2FjaGVkRGV0ZXJtaW5hdGVcbiAgICB9LFxuICAgIF9fY2FjaGVkQnVmZmVyICgpOiBWTm9kZSB7XG4gICAgICByZXR1cm4gdGhpcy4kY3JlYXRlRWxlbWVudCgnZGl2Jywge1xuICAgICAgICBzdGF0aWNDbGFzczogJ3YtcHJvZ3Jlc3MtbGluZWFyX19idWZmZXInLFxuICAgICAgICBzdHlsZTogdGhpcy5zdHlsZXMsXG4gICAgICB9KVxuICAgIH0sXG4gICAgX19jYWNoZWREZXRlcm1pbmF0ZSAoKTogVk5vZGUge1xuICAgICAgcmV0dXJuIHRoaXMuJGNyZWF0ZUVsZW1lbnQoJ2RpdicsIHRoaXMuc2V0QmFja2dyb3VuZENvbG9yKHRoaXMuY29sb3IsIHtcbiAgICAgICAgc3RhdGljQ2xhc3M6IGB2LXByb2dyZXNzLWxpbmVhcl9fZGV0ZXJtaW5hdGVgLFxuICAgICAgICBzdHlsZToge1xuICAgICAgICAgIHdpZHRoOiBjb252ZXJ0VG9Vbml0KHRoaXMubm9ybWFsaXplZFZhbHVlLCAnJScpLFxuICAgICAgICB9LFxuICAgICAgfSkpXG4gICAgfSxcbiAgICBfX2NhY2hlZEluZGV0ZXJtaW5hdGUgKCk6IFZOb2RlIHtcbiAgICAgIHJldHVybiB0aGlzLiRjcmVhdGVFbGVtZW50KCdkaXYnLCB7XG4gICAgICAgIHN0YXRpY0NsYXNzOiAndi1wcm9ncmVzcy1saW5lYXJfX2luZGV0ZXJtaW5hdGUnLFxuICAgICAgICBjbGFzczoge1xuICAgICAgICAgICd2LXByb2dyZXNzLWxpbmVhcl9faW5kZXRlcm1pbmF0ZS0tYWN0aXZlJzogdGhpcy5hY3RpdmUsXG4gICAgICAgIH0sXG4gICAgICB9LCBbXG4gICAgICAgIHRoaXMuZ2VuUHJvZ3Jlc3NCYXIoJ2xvbmcnKSxcbiAgICAgICAgdGhpcy5nZW5Qcm9ncmVzc0Jhcignc2hvcnQnKSxcbiAgICAgIF0pXG4gICAgfSxcbiAgICBfX2NhY2hlZFN0cmVhbSAoKTogVk5vZGUgfCBudWxsIHtcbiAgICAgIGlmICghdGhpcy5zdHJlYW0pIHJldHVybiBudWxsXG5cbiAgICAgIHJldHVybiB0aGlzLiRjcmVhdGVFbGVtZW50KCdkaXYnLCB0aGlzLnNldFRleHRDb2xvcih0aGlzLmNvbG9yLCB7XG4gICAgICAgIHN0YXRpY0NsYXNzOiAndi1wcm9ncmVzcy1saW5lYXJfX3N0cmVhbScsXG4gICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgd2lkdGg6IGNvbnZlcnRUb1VuaXQoMTAwIC0gdGhpcy5ub3JtYWxpemVkQnVmZmVyLCAnJScpLFxuICAgICAgICB9LFxuICAgICAgfSkpXG4gICAgfSxcbiAgICBiYWNrZ3JvdW5kU3R5bGUgKCk6IG9iamVjdCB7XG4gICAgICBjb25zdCBiYWNrZ3JvdW5kT3BhY2l0eSA9IHRoaXMuYmFja2dyb3VuZE9wYWNpdHkgPT0gbnVsbFxuICAgICAgICA/ICh0aGlzLmJhY2tncm91bmRDb2xvciA/IDEgOiAwLjMpXG4gICAgICAgIDogcGFyc2VGbG9hdCh0aGlzLmJhY2tncm91bmRPcGFjaXR5KVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBvcGFjaXR5OiBiYWNrZ3JvdW5kT3BhY2l0eSxcbiAgICAgICAgW3RoaXMuaXNSZXZlcnNlZCA/ICdyaWdodCcgOiAnbGVmdCddOiBjb252ZXJ0VG9Vbml0KHRoaXMubm9ybWFsaXplZFZhbHVlLCAnJScpLFxuICAgICAgICB3aWR0aDogY29udmVydFRvVW5pdCh0aGlzLm5vcm1hbGl6ZWRCdWZmZXIgLSB0aGlzLm5vcm1hbGl6ZWRWYWx1ZSwgJyUnKSxcbiAgICAgIH1cbiAgICB9LFxuICAgIGNsYXNzZXMgKCk6IG9iamVjdCB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAndi1wcm9ncmVzcy1saW5lYXItLWFic29sdXRlJzogdGhpcy5hYnNvbHV0ZSxcbiAgICAgICAgJ3YtcHJvZ3Jlc3MtbGluZWFyLS1maXhlZCc6IHRoaXMuZml4ZWQsXG4gICAgICAgICd2LXByb2dyZXNzLWxpbmVhci0tcXVlcnknOiB0aGlzLnF1ZXJ5LFxuICAgICAgICAndi1wcm9ncmVzcy1saW5lYXItLXJlYWN0aXZlJzogdGhpcy5yZWFjdGl2ZSxcbiAgICAgICAgJ3YtcHJvZ3Jlc3MtbGluZWFyLS1yZXZlcnNlJzogdGhpcy5pc1JldmVyc2VkLFxuICAgICAgICAndi1wcm9ncmVzcy1saW5lYXItLXJvdW5kZWQnOiB0aGlzLnJvdW5kZWQsXG4gICAgICAgICd2LXByb2dyZXNzLWxpbmVhci0tc3RyaXBlZCc6IHRoaXMuc3RyaXBlZCxcbiAgICAgICAgLi4udGhpcy50aGVtZUNsYXNzZXMsXG4gICAgICB9XG4gICAgfSxcbiAgICBjb21wdXRlZFRyYW5zaXRpb24gKCk6IEZ1bmN0aW9uYWxDb21wb25lbnRPcHRpb25zIHtcbiAgICAgIHJldHVybiB0aGlzLmluZGV0ZXJtaW5hdGUgPyBWRmFkZVRyYW5zaXRpb24gOiBWU2xpZGVYVHJhbnNpdGlvblxuICAgIH0sXG4gICAgaXNSZXZlcnNlZCAoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy4kdnVldGlmeS5ydGwgIT09IHRoaXMucmV2ZXJzZVxuICAgIH0sXG4gICAgbm9ybWFsaXplZEJ1ZmZlciAoKTogbnVtYmVyIHtcbiAgICAgIHJldHVybiB0aGlzLm5vcm1hbGl6ZSh0aGlzLmJ1ZmZlclZhbHVlKVxuICAgIH0sXG4gICAgbm9ybWFsaXplZFZhbHVlICgpOiBudW1iZXIge1xuICAgICAgcmV0dXJuIHRoaXMubm9ybWFsaXplKHRoaXMuaW50ZXJuYWxMYXp5VmFsdWUpXG4gICAgfSxcbiAgICByZWFjdGl2ZSAoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gQm9vbGVhbih0aGlzLiRsaXN0ZW5lcnMuY2hhbmdlKVxuICAgIH0sXG4gICAgc3R5bGVzICgpOiBvYmplY3Qge1xuICAgICAgY29uc3Qgc3R5bGVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge31cblxuICAgICAgaWYgKCF0aGlzLmFjdGl2ZSkge1xuICAgICAgICBzdHlsZXMuaGVpZ2h0ID0gMFxuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMuaW5kZXRlcm1pbmF0ZSAmJiBwYXJzZUZsb2F0KHRoaXMubm9ybWFsaXplZEJ1ZmZlcikgIT09IDEwMCkge1xuICAgICAgICBzdHlsZXMud2lkdGggPSBjb252ZXJ0VG9Vbml0KHRoaXMubm9ybWFsaXplZEJ1ZmZlciwgJyUnKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gc3R5bGVzXG4gICAgfSxcbiAgfSxcblxuICBtZXRob2RzOiB7XG4gICAgZ2VuQ29udGVudCAoKSB7XG4gICAgICBjb25zdCBzbG90ID0gZ2V0U2xvdCh0aGlzLCAnZGVmYXVsdCcsIHsgdmFsdWU6IHRoaXMuaW50ZXJuYWxMYXp5VmFsdWUgfSlcblxuICAgICAgaWYgKCFzbG90KSByZXR1cm4gbnVsbFxuXG4gICAgICByZXR1cm4gdGhpcy4kY3JlYXRlRWxlbWVudCgnZGl2Jywge1xuICAgICAgICBzdGF0aWNDbGFzczogJ3YtcHJvZ3Jlc3MtbGluZWFyX19jb250ZW50JyxcbiAgICAgIH0sIHNsb3QpXG4gICAgfSxcbiAgICBnZW5MaXN0ZW5lcnMgKCkge1xuICAgICAgY29uc3QgbGlzdGVuZXJzID0gdGhpcy4kbGlzdGVuZXJzXG5cbiAgICAgIGlmICh0aGlzLnJlYWN0aXZlKSB7XG4gICAgICAgIGxpc3RlbmVycy5jbGljayA9IHRoaXMub25DbGlja1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbGlzdGVuZXJzXG4gICAgfSxcbiAgICBnZW5Qcm9ncmVzc0JhciAobmFtZTogJ2xvbmcnIHwgJ3Nob3J0Jykge1xuICAgICAgcmV0dXJuIHRoaXMuJGNyZWF0ZUVsZW1lbnQoJ2RpdicsIHRoaXMuc2V0QmFja2dyb3VuZENvbG9yKHRoaXMuY29sb3IsIHtcbiAgICAgICAgc3RhdGljQ2xhc3M6ICd2LXByb2dyZXNzLWxpbmVhcl9faW5kZXRlcm1pbmF0ZScsXG4gICAgICAgIGNsYXNzOiB7XG4gICAgICAgICAgW25hbWVdOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgfSkpXG4gICAgfSxcbiAgICBvbkNsaWNrIChlOiBNb3VzZUV2ZW50KSB7XG4gICAgICBpZiAoIXRoaXMucmVhY3RpdmUpIHJldHVyblxuXG4gICAgICBjb25zdCB7IHdpZHRoIH0gPSB0aGlzLiRlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuXG4gICAgICB0aGlzLmludGVybmFsVmFsdWUgPSBlLm9mZnNldFggLyB3aWR0aCAqIDEwMFxuICAgIH0sXG4gICAgbm9ybWFsaXplICh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgICBpZiAodmFsdWUgPCAwKSByZXR1cm4gMFxuICAgICAgaWYgKHZhbHVlID4gMTAwKSByZXR1cm4gMTAwXG4gICAgICByZXR1cm4gcGFyc2VGbG9hdCh2YWx1ZSlcbiAgICB9LFxuICB9LFxuXG4gIHJlbmRlciAoaCk6IFZOb2RlIHtcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgc3RhdGljQ2xhc3M6ICd2LXByb2dyZXNzLWxpbmVhcicsXG4gICAgICBhdHRyczoge1xuICAgICAgICByb2xlOiAncHJvZ3Jlc3NiYXInLFxuICAgICAgICAnYXJpYS12YWx1ZW1pbic6IDAsXG4gICAgICAgICdhcmlhLXZhbHVlbWF4JzogdGhpcy5ub3JtYWxpemVkQnVmZmVyLFxuICAgICAgICAnYXJpYS12YWx1ZW5vdyc6IHRoaXMuaW5kZXRlcm1pbmF0ZSA/IHVuZGVmaW5lZCA6IHRoaXMubm9ybWFsaXplZFZhbHVlLFxuICAgICAgfSxcbiAgICAgIGNsYXNzOiB0aGlzLmNsYXNzZXMsXG4gICAgICBzdHlsZToge1xuICAgICAgICBib3R0b206IHRoaXMuYm90dG9tID8gMCA6IHVuZGVmaW5lZCxcbiAgICAgICAgaGVpZ2h0OiB0aGlzLmFjdGl2ZSA/IGNvbnZlcnRUb1VuaXQodGhpcy5oZWlnaHQpIDogMCxcbiAgICAgICAgdG9wOiB0aGlzLnRvcCA/IDAgOiB1bmRlZmluZWQsXG4gICAgICB9LFxuICAgICAgb246IHRoaXMuZ2VuTGlzdGVuZXJzKCksXG4gICAgfVxuXG4gICAgcmV0dXJuIGgoJ2RpdicsIGRhdGEsIFtcbiAgICAgIHRoaXMuX19jYWNoZWRTdHJlYW0sXG4gICAgICB0aGlzLl9fY2FjaGVkQmFja2dyb3VuZCxcbiAgICAgIHRoaXMuX19jYWNoZWRCdWZmZXIsXG4gICAgICB0aGlzLl9fY2FjaGVkQmFyLFxuICAgICAgdGhpcy5nZW5Db250ZW50KCksXG4gICAgXSlcbiAgfSxcbn0pXG4iLCJpbXBvcnQgVlByb2dyZXNzTGluZWFyIGZyb20gJy4vVlByb2dyZXNzTGluZWFyJ1xuXG5leHBvcnQgeyBWUHJvZ3Jlc3NMaW5lYXIgfVxuZXhwb3J0IGRlZmF1bHQgVlByb2dyZXNzTGluZWFyXG4iLCJpbXBvcnQgVnVlLCB7IFZOb2RlIH0gZnJvbSAndnVlJ1xuaW1wb3J0IFZQcm9ncmVzc0xpbmVhciBmcm9tICcuLi8uLi9jb21wb25lbnRzL1ZQcm9ncmVzc0xpbmVhcidcblxuaW50ZXJmYWNlIGNvbG9yYWJsZSBleHRlbmRzIFZ1ZSB7XG4gIGNvbG9yPzogc3RyaW5nXG59XG5cbi8qKlxuICogTG9hZGFibGVcbiAqXG4gKiBAbWl4aW5cbiAqXG4gKiBVc2VkIHRvIGFkZCBsaW5lYXIgcHJvZ3Jlc3MgYmFyIHRvIGNvbXBvbmVudHNcbiAqIENhbiB1c2UgYSBkZWZhdWx0IGJhciB3aXRoIGEgc3BlY2lmaWMgY29sb3JcbiAqIG9yIGRlc2lnbmF0ZSBhIGN1c3RvbSBwcm9ncmVzcyBsaW5lYXIgYmFyXG4gKi9cbi8qIEB2dWUvY29tcG9uZW50ICovXG5leHBvcnQgZGVmYXVsdCBWdWUuZXh0ZW5kPGNvbG9yYWJsZT4oKS5leHRlbmQoe1xuICBuYW1lOiAnbG9hZGFibGUnLFxuXG4gIHByb3BzOiB7XG4gICAgbG9hZGluZzoge1xuICAgICAgdHlwZTogW0Jvb2xlYW4sIFN0cmluZ10sXG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICB9LFxuICAgIGxvYWRlckhlaWdodDoge1xuICAgICAgdHlwZTogW051bWJlciwgU3RyaW5nXSxcbiAgICAgIGRlZmF1bHQ6IDIsXG4gICAgfSxcbiAgfSxcblxuICBtZXRob2RzOiB7XG4gICAgZ2VuUHJvZ3Jlc3MgKCk6IFZOb2RlIHwgVk5vZGVbXSB8IG51bGwge1xuICAgICAgaWYgKHRoaXMubG9hZGluZyA9PT0gZmFsc2UpIHJldHVybiBudWxsXG5cbiAgICAgIHJldHVybiB0aGlzLiRzbG90cy5wcm9ncmVzcyB8fCB0aGlzLiRjcmVhdGVFbGVtZW50KFZQcm9ncmVzc0xpbmVhciwge1xuICAgICAgICBwcm9wczoge1xuICAgICAgICAgIGFic29sdXRlOiB0cnVlLFxuICAgICAgICAgIGNvbG9yOiAodGhpcy5sb2FkaW5nID09PSB0cnVlIHx8IHRoaXMubG9hZGluZyA9PT0gJycpXG4gICAgICAgICAgICA/ICh0aGlzLmNvbG9yIHx8ICdwcmltYXJ5JylcbiAgICAgICAgICAgIDogdGhpcy5sb2FkaW5nLFxuICAgICAgICAgIGhlaWdodDogdGhpcy5sb2FkZXJIZWlnaHQsXG4gICAgICAgICAgaW5kZXRlcm1pbmF0ZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgfSxcbiAgfSxcbn0pXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///152\n")},,,,,,,,,,,,,,,,,,,function(module,exports,__webpack_require__){eval(";(function (root, factory) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(15));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-1 hash algorithm.\n\t */\n\t var SHA1 = C_algo.SHA1 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476,\n\t 0xc3d2e1f0\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\n\t // Computation\n\t for (var i = 0; i < 80; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n\t W[i] = (n << 1) | (n >>> 31);\n\t }\n\n\t var t = ((a << 5) | (a >>> 27)) + e + W[i];\n\t if (i < 20) {\n\t t += ((b & c) | (~b & d)) + 0x5a827999;\n\t } else if (i < 40) {\n\t t += (b ^ c ^ d) + 0x6ed9eba1;\n\t } else if (i < 60) {\n\t t += ((b & c) | (b & d) | (c & d)) - 0x70e44324;\n\t } else /* if (i < 80) */ {\n\t t += (b ^ c ^ d) - 0x359d3e2a;\n\t }\n\n\t e = d;\n\t d = c;\n\t c = (b << 30) | (b >>> 2);\n\t b = a;\n\t a = t;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA1('message');\n\t * var hash = CryptoJS.SHA1(wordArray);\n\t */\n\t C.SHA1 = Hasher._createHelper(SHA1);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA1(message, key);\n\t */\n\t C.HmacSHA1 = Hasher._createHmacHelper(SHA1);\n\t}());\n\n\n\treturn CryptoJS.SHA1;\n\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY3J5cHRvLWpzL3NoYTEuanM/ZGYyZiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxDQUFDO0FBQ0QsS0FBSyxJQUEyQjtBQUNoQztBQUNBLHFDQUFxQyxtQkFBTyxDQUFDLEVBQVE7QUFDckQ7QUFDQSxNQUFNLEVBT0o7QUFDRixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVOztBQUVWO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSw0QkFBNEIsUUFBUTtBQUNwQztBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07O0FBRU47QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGlCQUFpQjtBQUNqQztBQUNBLGlCQUFpQixVQUFVO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsaUJBQWlCO0FBQ2pDLGdCQUFnQixpQkFBaUI7QUFDakM7QUFDQSxpQkFBaUIsVUFBVTtBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7O0FBR0Y7O0FBRUEsQ0FBQyIsImZpbGUiOiIxNzEuanMiLCJzb3VyY2VzQ29udGVudCI6WyI7KGZ1bmN0aW9uIChyb290LCBmYWN0b3J5KSB7XG5cdGlmICh0eXBlb2YgZXhwb3J0cyA9PT0gXCJvYmplY3RcIikge1xuXHRcdC8vIENvbW1vbkpTXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzID0gZmFjdG9yeShyZXF1aXJlKFwiLi9jb3JlXCIpKTtcblx0fVxuXHRlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSBcImZ1bmN0aW9uXCIgJiYgZGVmaW5lLmFtZCkge1xuXHRcdC8vIEFNRFxuXHRcdGRlZmluZShbXCIuL2NvcmVcIl0sIGZhY3RvcnkpO1xuXHR9XG5cdGVsc2Uge1xuXHRcdC8vIEdsb2JhbCAoYnJvd3Nlcilcblx0XHRmYWN0b3J5KHJvb3QuQ3J5cHRvSlMpO1xuXHR9XG59KHRoaXMsIGZ1bmN0aW9uIChDcnlwdG9KUykge1xuXG5cdChmdW5jdGlvbiAoKSB7XG5cdCAgICAvLyBTaG9ydGN1dHNcblx0ICAgIHZhciBDID0gQ3J5cHRvSlM7XG5cdCAgICB2YXIgQ19saWIgPSBDLmxpYjtcblx0ICAgIHZhciBXb3JkQXJyYXkgPSBDX2xpYi5Xb3JkQXJyYXk7XG5cdCAgICB2YXIgSGFzaGVyID0gQ19saWIuSGFzaGVyO1xuXHQgICAgdmFyIENfYWxnbyA9IEMuYWxnbztcblxuXHQgICAgLy8gUmV1c2FibGUgb2JqZWN0XG5cdCAgICB2YXIgVyA9IFtdO1xuXG5cdCAgICAvKipcblx0ICAgICAqIFNIQS0xIGhhc2ggYWxnb3JpdGhtLlxuXHQgICAgICovXG5cdCAgICB2YXIgU0hBMSA9IENfYWxnby5TSEExID0gSGFzaGVyLmV4dGVuZCh7XG5cdCAgICAgICAgX2RvUmVzZXQ6IGZ1bmN0aW9uICgpIHtcblx0ICAgICAgICAgICAgdGhpcy5faGFzaCA9IG5ldyBXb3JkQXJyYXkuaW5pdChbXG5cdCAgICAgICAgICAgICAgICAweDY3NDUyMzAxLCAweGVmY2RhYjg5LFxuXHQgICAgICAgICAgICAgICAgMHg5OGJhZGNmZSwgMHgxMDMyNTQ3Nixcblx0ICAgICAgICAgICAgICAgIDB4YzNkMmUxZjBcblx0ICAgICAgICAgICAgXSk7XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIF9kb1Byb2Nlc3NCbG9jazogZnVuY3Rpb24gKE0sIG9mZnNldCkge1xuXHQgICAgICAgICAgICAvLyBTaG9ydGN1dFxuXHQgICAgICAgICAgICB2YXIgSCA9IHRoaXMuX2hhc2gud29yZHM7XG5cblx0ICAgICAgICAgICAgLy8gV29ya2luZyB2YXJpYWJsZXNcblx0ICAgICAgICAgICAgdmFyIGEgPSBIWzBdO1xuXHQgICAgICAgICAgICB2YXIgYiA9IEhbMV07XG5cdCAgICAgICAgICAgIHZhciBjID0gSFsyXTtcblx0ICAgICAgICAgICAgdmFyIGQgPSBIWzNdO1xuXHQgICAgICAgICAgICB2YXIgZSA9IEhbNF07XG5cblx0ICAgICAgICAgICAgLy8gQ29tcHV0YXRpb25cblx0ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA4MDsgaSsrKSB7XG5cdCAgICAgICAgICAgICAgICBpZiAoaSA8IDE2KSB7XG5cdCAgICAgICAgICAgICAgICAgICAgV1tpXSA9IE1bb2Zmc2V0ICsgaV0gfCAwO1xuXHQgICAgICAgICAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgICAgICAgICAgICB2YXIgbiA9IFdbaSAtIDNdIF4gV1tpIC0gOF0gXiBXW2kgLSAxNF0gXiBXW2kgLSAxNl07XG5cdCAgICAgICAgICAgICAgICAgICAgV1tpXSA9IChuIDw8IDEpIHwgKG4gPj4+IDMxKTtcblx0ICAgICAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICAgICAgdmFyIHQgPSAoKGEgPDwgNSkgfCAoYSA+Pj4gMjcpKSArIGUgKyBXW2ldO1xuXHQgICAgICAgICAgICAgICAgaWYgKGkgPCAyMCkge1xuXHQgICAgICAgICAgICAgICAgICAgIHQgKz0gKChiICYgYykgfCAofmIgJiBkKSkgKyAweDVhODI3OTk5O1xuXHQgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpIDwgNDApIHtcblx0ICAgICAgICAgICAgICAgICAgICB0ICs9IChiIF4gYyBeIGQpICsgMHg2ZWQ5ZWJhMTtcblx0ICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaSA8IDYwKSB7XG5cdCAgICAgICAgICAgICAgICAgICAgdCArPSAoKGIgJiBjKSB8IChiICYgZCkgfCAoYyAmIGQpKSAtIDB4NzBlNDQzMjQ7XG5cdCAgICAgICAgICAgICAgICB9IGVsc2UgLyogaWYgKGkgPCA4MCkgKi8ge1xuXHQgICAgICAgICAgICAgICAgICAgIHQgKz0gKGIgXiBjIF4gZCkgLSAweDM1OWQzZTJhO1xuXHQgICAgICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgICAgICBlID0gZDtcblx0ICAgICAgICAgICAgICAgIGQgPSBjO1xuXHQgICAgICAgICAgICAgICAgYyA9IChiIDw8IDMwKSB8IChiID4+PiAyKTtcblx0ICAgICAgICAgICAgICAgIGIgPSBhO1xuXHQgICAgICAgICAgICAgICAgYSA9IHQ7XG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICAvLyBJbnRlcm1lZGlhdGUgaGFzaCB2YWx1ZVxuXHQgICAgICAgICAgICBIWzBdID0gKEhbMF0gKyBhKSB8IDA7XG5cdCAgICAgICAgICAgIEhbMV0gPSAoSFsxXSArIGIpIHwgMDtcblx0ICAgICAgICAgICAgSFsyXSA9IChIWzJdICsgYykgfCAwO1xuXHQgICAgICAgICAgICBIWzNdID0gKEhbM10gKyBkKSB8IDA7XG5cdCAgICAgICAgICAgIEhbNF0gPSAoSFs0XSArIGUpIHwgMDtcblx0ICAgICAgICB9LFxuXG5cdCAgICAgICAgX2RvRmluYWxpemU6IGZ1bmN0aW9uICgpIHtcblx0ICAgICAgICAgICAgLy8gU2hvcnRjdXRzXG5cdCAgICAgICAgICAgIHZhciBkYXRhID0gdGhpcy5fZGF0YTtcblx0ICAgICAgICAgICAgdmFyIGRhdGFXb3JkcyA9IGRhdGEud29yZHM7XG5cblx0ICAgICAgICAgICAgdmFyIG5CaXRzVG90YWwgPSB0aGlzLl9uRGF0YUJ5dGVzICogODtcblx0ICAgICAgICAgICAgdmFyIG5CaXRzTGVmdCA9IGRhdGEuc2lnQnl0ZXMgKiA4O1xuXG5cdCAgICAgICAgICAgIC8vIEFkZCBwYWRkaW5nXG5cdCAgICAgICAgICAgIGRhdGFXb3Jkc1tuQml0c0xlZnQgPj4+IDVdIHw9IDB4ODAgPDwgKDI0IC0gbkJpdHNMZWZ0ICUgMzIpO1xuXHQgICAgICAgICAgICBkYXRhV29yZHNbKCgobkJpdHNMZWZ0ICsgNjQpID4+PiA5KSA8PCA0KSArIDE0XSA9IE1hdGguZmxvb3IobkJpdHNUb3RhbCAvIDB4MTAwMDAwMDAwKTtcblx0ICAgICAgICAgICAgZGF0YVdvcmRzWygoKG5CaXRzTGVmdCArIDY0KSA+Pj4gOSkgPDwgNCkgKyAxNV0gPSBuQml0c1RvdGFsO1xuXHQgICAgICAgICAgICBkYXRhLnNpZ0J5dGVzID0gZGF0YVdvcmRzLmxlbmd0aCAqIDQ7XG5cblx0ICAgICAgICAgICAgLy8gSGFzaCBmaW5hbCBibG9ja3Ncblx0ICAgICAgICAgICAgdGhpcy5fcHJvY2VzcygpO1xuXG5cdCAgICAgICAgICAgIC8vIFJldHVybiBmaW5hbCBjb21wdXRlZCBoYXNoXG5cdCAgICAgICAgICAgIHJldHVybiB0aGlzLl9oYXNoO1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICBjbG9uZTogZnVuY3Rpb24gKCkge1xuXHQgICAgICAgICAgICB2YXIgY2xvbmUgPSBIYXNoZXIuY2xvbmUuY2FsbCh0aGlzKTtcblx0ICAgICAgICAgICAgY2xvbmUuX2hhc2ggPSB0aGlzLl9oYXNoLmNsb25lKCk7XG5cblx0ICAgICAgICAgICAgcmV0dXJuIGNsb25lO1xuXHQgICAgICAgIH1cblx0ICAgIH0pO1xuXG5cdCAgICAvKipcblx0ICAgICAqIFNob3J0Y3V0IGZ1bmN0aW9uIHRvIHRoZSBoYXNoZXIncyBvYmplY3QgaW50ZXJmYWNlLlxuXHQgICAgICpcblx0ICAgICAqIEBwYXJhbSB7V29yZEFycmF5fHN0cmluZ30gbWVzc2FnZSBUaGUgbWVzc2FnZSB0byBoYXNoLlxuXHQgICAgICpcblx0ICAgICAqIEByZXR1cm4ge1dvcmRBcnJheX0gVGhlIGhhc2guXG5cdCAgICAgKlxuXHQgICAgICogQHN0YXRpY1xuXHQgICAgICpcblx0ICAgICAqIEBleGFtcGxlXG5cdCAgICAgKlxuXHQgICAgICogICAgIHZhciBoYXNoID0gQ3J5cHRvSlMuU0hBMSgnbWVzc2FnZScpO1xuXHQgICAgICogICAgIHZhciBoYXNoID0gQ3J5cHRvSlMuU0hBMSh3b3JkQXJyYXkpO1xuXHQgICAgICovXG5cdCAgICBDLlNIQTEgPSBIYXNoZXIuX2NyZWF0ZUhlbHBlcihTSEExKTtcblxuXHQgICAgLyoqXG5cdCAgICAgKiBTaG9ydGN1dCBmdW5jdGlvbiB0byB0aGUgSE1BQydzIG9iamVjdCBpbnRlcmZhY2UuXG5cdCAgICAgKlxuXHQgICAgICogQHBhcmFtIHtXb3JkQXJyYXl8c3RyaW5nfSBtZXNzYWdlIFRoZSBtZXNzYWdlIHRvIGhhc2guXG5cdCAgICAgKiBAcGFyYW0ge1dvcmRBcnJheXxzdHJpbmd9IGtleSBUaGUgc2VjcmV0IGtleS5cblx0ICAgICAqXG5cdCAgICAgKiBAcmV0dXJuIHtXb3JkQXJyYXl9IFRoZSBITUFDLlxuXHQgICAgICpcblx0ICAgICAqIEBzdGF0aWNcblx0ICAgICAqXG5cdCAgICAgKiBAZXhhbXBsZVxuXHQgICAgICpcblx0ICAgICAqICAgICB2YXIgaG1hYyA9IENyeXB0b0pTLkhtYWNTSEExKG1lc3NhZ2UsIGtleSk7XG5cdCAgICAgKi9cblx0ICAgIEMuSG1hY1NIQTEgPSBIYXNoZXIuX2NyZWF0ZUhtYWNIZWxwZXIoU0hBMSk7XG5cdH0oKSk7XG5cblxuXHRyZXR1cm4gQ3J5cHRvSlMuU0hBMTtcblxufSkpOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///171\n")},function(module,exports,__webpack_require__){eval(";(function (root, factory) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(15));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var C_algo = C.algo;\n\n\t /**\n\t * HMAC algorithm.\n\t */\n\t var HMAC = C_algo.HMAC = Base.extend({\n\t /**\n\t * Initializes a newly created HMAC.\n\t *\n\t * @param {Hasher} hasher The hash algorithm to use.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @example\n\t *\n\t * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\n\t */\n\t init: function (hasher, key) {\n\t // Init hasher\n\t hasher = this._hasher = new hasher.init();\n\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof key == 'string') {\n\t key = Utf8.parse(key);\n\t }\n\n\t // Shortcuts\n\t var hasherBlockSize = hasher.blockSize;\n\t var hasherBlockSizeBytes = hasherBlockSize * 4;\n\n\t // Allow arbitrary length keys\n\t if (key.sigBytes > hasherBlockSizeBytes) {\n\t key = hasher.finalize(key);\n\t }\n\n\t // Clamp excess bits\n\t key.clamp();\n\n\t // Clone key for inner and outer pads\n\t var oKey = this._oKey = key.clone();\n\t var iKey = this._iKey = key.clone();\n\n\t // Shortcuts\n\t var oKeyWords = oKey.words;\n\t var iKeyWords = iKey.words;\n\n\t // XOR keys with pad constants\n\t for (var i = 0; i < hasherBlockSize; i++) {\n\t oKeyWords[i] ^= 0x5c5c5c5c;\n\t iKeyWords[i] ^= 0x36363636;\n\t }\n\t oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this HMAC to its initial state.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.reset();\n\t */\n\t reset: function () {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Reset\n\t hasher.reset();\n\t hasher.update(this._iKey);\n\t },\n\n\t /**\n\t * Updates this HMAC with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {HMAC} This HMAC instance.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.update('message');\n\t * hmacHasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t this._hasher.update(messageUpdate);\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the HMAC computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @example\n\t *\n\t * var hmac = hmacHasher.finalize();\n\t * var hmac = hmacHasher.finalize('message');\n\t * var hmac = hmacHasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Compute HMAC\n\t var innerHash = hasher.finalize(messageUpdate);\n\t hasher.reset();\n\t var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));\n\n\t return hmac;\n\t }\n\t });\n\t}());\n\n\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY3J5cHRvLWpzL2htYWMuanM/NTk4MCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxDQUFDO0FBQ0QsS0FBSyxJQUEyQjtBQUNoQztBQUNBLHFDQUFxQyxtQkFBTyxDQUFDLEVBQVE7QUFDckQ7QUFDQSxNQUFNLEVBT0o7QUFDRixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsT0FBTztBQUMzQixvQkFBb0IsaUJBQWlCO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDRCQUE0QixxQkFBcUI7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFVBQVU7O0FBRVY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsaUJBQWlCO0FBQ3JDO0FBQ0EscUJBQXFCLEtBQUs7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixpQkFBaUI7QUFDckM7QUFDQSxxQkFBcUIsVUFBVTtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOLEVBQUU7OztBQUdGLENBQUMiLCJmaWxlIjoiMTcyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiOyhmdW5jdGlvbiAocm9vdCwgZmFjdG9yeSkge1xuXHRpZiAodHlwZW9mIGV4cG9ydHMgPT09IFwib2JqZWN0XCIpIHtcblx0XHQvLyBDb21tb25KU1xuXHRcdG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cyA9IGZhY3RvcnkocmVxdWlyZShcIi4vY29yZVwiKSk7XG5cdH1cblx0ZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PT0gXCJmdW5jdGlvblwiICYmIGRlZmluZS5hbWQpIHtcblx0XHQvLyBBTURcblx0XHRkZWZpbmUoW1wiLi9jb3JlXCJdLCBmYWN0b3J5KTtcblx0fVxuXHRlbHNlIHtcblx0XHQvLyBHbG9iYWwgKGJyb3dzZXIpXG5cdFx0ZmFjdG9yeShyb290LkNyeXB0b0pTKTtcblx0fVxufSh0aGlzLCBmdW5jdGlvbiAoQ3J5cHRvSlMpIHtcblxuXHQoZnVuY3Rpb24gKCkge1xuXHQgICAgLy8gU2hvcnRjdXRzXG5cdCAgICB2YXIgQyA9IENyeXB0b0pTO1xuXHQgICAgdmFyIENfbGliID0gQy5saWI7XG5cdCAgICB2YXIgQmFzZSA9IENfbGliLkJhc2U7XG5cdCAgICB2YXIgQ19lbmMgPSBDLmVuYztcblx0ICAgIHZhciBVdGY4ID0gQ19lbmMuVXRmODtcblx0ICAgIHZhciBDX2FsZ28gPSBDLmFsZ287XG5cblx0ICAgIC8qKlxuXHQgICAgICogSE1BQyBhbGdvcml0aG0uXG5cdCAgICAgKi9cblx0ICAgIHZhciBITUFDID0gQ19hbGdvLkhNQUMgPSBCYXNlLmV4dGVuZCh7XG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogSW5pdGlhbGl6ZXMgYSBuZXdseSBjcmVhdGVkIEhNQUMuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcGFyYW0ge0hhc2hlcn0gaGFzaGVyIFRoZSBoYXNoIGFsZ29yaXRobSB0byB1c2UuXG5cdCAgICAgICAgICogQHBhcmFtIHtXb3JkQXJyYXl8c3RyaW5nfSBrZXkgVGhlIHNlY3JldCBrZXkuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciBobWFjSGFzaGVyID0gQ3J5cHRvSlMuYWxnby5ITUFDLmNyZWF0ZShDcnlwdG9KUy5hbGdvLlNIQTI1Niwga2V5KTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICBpbml0OiBmdW5jdGlvbiAoaGFzaGVyLCBrZXkpIHtcblx0ICAgICAgICAgICAgLy8gSW5pdCBoYXNoZXJcblx0ICAgICAgICAgICAgaGFzaGVyID0gdGhpcy5faGFzaGVyID0gbmV3IGhhc2hlci5pbml0KCk7XG5cblx0ICAgICAgICAgICAgLy8gQ29udmVydCBzdHJpbmcgdG8gV29yZEFycmF5LCBlbHNlIGFzc3VtZSBXb3JkQXJyYXkgYWxyZWFkeVxuXHQgICAgICAgICAgICBpZiAodHlwZW9mIGtleSA9PSAnc3RyaW5nJykge1xuXHQgICAgICAgICAgICAgICAga2V5ID0gVXRmOC5wYXJzZShrZXkpO1xuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgLy8gU2hvcnRjdXRzXG5cdCAgICAgICAgICAgIHZhciBoYXNoZXJCbG9ja1NpemUgPSBoYXNoZXIuYmxvY2tTaXplO1xuXHQgICAgICAgICAgICB2YXIgaGFzaGVyQmxvY2tTaXplQnl0ZXMgPSBoYXNoZXJCbG9ja1NpemUgKiA0O1xuXG5cdCAgICAgICAgICAgIC8vIEFsbG93IGFyYml0cmFyeSBsZW5ndGgga2V5c1xuXHQgICAgICAgICAgICBpZiAoa2V5LnNpZ0J5dGVzID4gaGFzaGVyQmxvY2tTaXplQnl0ZXMpIHtcblx0ICAgICAgICAgICAgICAgIGtleSA9IGhhc2hlci5maW5hbGl6ZShrZXkpO1xuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgLy8gQ2xhbXAgZXhjZXNzIGJpdHNcblx0ICAgICAgICAgICAga2V5LmNsYW1wKCk7XG5cblx0ICAgICAgICAgICAgLy8gQ2xvbmUga2V5IGZvciBpbm5lciBhbmQgb3V0ZXIgcGFkc1xuXHQgICAgICAgICAgICB2YXIgb0tleSA9IHRoaXMuX29LZXkgPSBrZXkuY2xvbmUoKTtcblx0ICAgICAgICAgICAgdmFyIGlLZXkgPSB0aGlzLl9pS2V5ID0ga2V5LmNsb25lKCk7XG5cblx0ICAgICAgICAgICAgLy8gU2hvcnRjdXRzXG5cdCAgICAgICAgICAgIHZhciBvS2V5V29yZHMgPSBvS2V5LndvcmRzO1xuXHQgICAgICAgICAgICB2YXIgaUtleVdvcmRzID0gaUtleS53b3JkcztcblxuXHQgICAgICAgICAgICAvLyBYT1Iga2V5cyB3aXRoIHBhZCBjb25zdGFudHNcblx0ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBoYXNoZXJCbG9ja1NpemU7IGkrKykge1xuXHQgICAgICAgICAgICAgICAgb0tleVdvcmRzW2ldIF49IDB4NWM1YzVjNWM7XG5cdCAgICAgICAgICAgICAgICBpS2V5V29yZHNbaV0gXj0gMHgzNjM2MzYzNjtcblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgICAgICBvS2V5LnNpZ0J5dGVzID0gaUtleS5zaWdCeXRlcyA9IGhhc2hlckJsb2NrU2l6ZUJ5dGVzO1xuXG5cdCAgICAgICAgICAgIC8vIFNldCBpbml0aWFsIHZhbHVlc1xuXHQgICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIFJlc2V0cyB0aGlzIEhNQUMgdG8gaXRzIGluaXRpYWwgc3RhdGUuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIGhtYWNIYXNoZXIucmVzZXQoKTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICByZXNldDogZnVuY3Rpb24gKCkge1xuXHQgICAgICAgICAgICAvLyBTaG9ydGN1dFxuXHQgICAgICAgICAgICB2YXIgaGFzaGVyID0gdGhpcy5faGFzaGVyO1xuXG5cdCAgICAgICAgICAgIC8vIFJlc2V0XG5cdCAgICAgICAgICAgIGhhc2hlci5yZXNldCgpO1xuXHQgICAgICAgICAgICBoYXNoZXIudXBkYXRlKHRoaXMuX2lLZXkpO1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBVcGRhdGVzIHRoaXMgSE1BQyB3aXRoIGEgbWVzc2FnZS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBwYXJhbSB7V29yZEFycmF5fHN0cmluZ30gbWVzc2FnZVVwZGF0ZSBUaGUgbWVzc2FnZSB0byBhcHBlbmQuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcmV0dXJuIHtITUFDfSBUaGlzIEhNQUMgaW5zdGFuY2UuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIGhtYWNIYXNoZXIudXBkYXRlKCdtZXNzYWdlJyk7XG5cdCAgICAgICAgICogICAgIGhtYWNIYXNoZXIudXBkYXRlKHdvcmRBcnJheSk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgdXBkYXRlOiBmdW5jdGlvbiAobWVzc2FnZVVwZGF0ZSkge1xuXHQgICAgICAgICAgICB0aGlzLl9oYXNoZXIudXBkYXRlKG1lc3NhZ2VVcGRhdGUpO1xuXG5cdCAgICAgICAgICAgIC8vIENoYWluYWJsZVxuXHQgICAgICAgICAgICByZXR1cm4gdGhpcztcblx0ICAgICAgICB9LFxuXG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogRmluYWxpemVzIHRoZSBITUFDIGNvbXB1dGF0aW9uLlxuXHQgICAgICAgICAqIE5vdGUgdGhhdCB0aGUgZmluYWxpemUgb3BlcmF0aW9uIGlzIGVmZmVjdGl2ZWx5IGEgZGVzdHJ1Y3RpdmUsIHJlYWQtb25jZSBvcGVyYXRpb24uXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcGFyYW0ge1dvcmRBcnJheXxzdHJpbmd9IG1lc3NhZ2VVcGRhdGUgKE9wdGlvbmFsKSBBIGZpbmFsIG1lc3NhZ2UgdXBkYXRlLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHJldHVybiB7V29yZEFycmF5fSBUaGUgSE1BQy5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIGhtYWMgPSBobWFjSGFzaGVyLmZpbmFsaXplKCk7XG5cdCAgICAgICAgICogICAgIHZhciBobWFjID0gaG1hY0hhc2hlci5maW5hbGl6ZSgnbWVzc2FnZScpO1xuXHQgICAgICAgICAqICAgICB2YXIgaG1hYyA9IGhtYWNIYXNoZXIuZmluYWxpemUod29yZEFycmF5KTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICBmaW5hbGl6ZTogZnVuY3Rpb24gKG1lc3NhZ2VVcGRhdGUpIHtcblx0ICAgICAgICAgICAgLy8gU2hvcnRjdXRcblx0ICAgICAgICAgICAgdmFyIGhhc2hlciA9IHRoaXMuX2hhc2hlcjtcblxuXHQgICAgICAgICAgICAvLyBDb21wdXRlIEhNQUNcblx0ICAgICAgICAgICAgdmFyIGlubmVySGFzaCA9IGhhc2hlci5maW5hbGl6ZShtZXNzYWdlVXBkYXRlKTtcblx0ICAgICAgICAgICAgaGFzaGVyLnJlc2V0KCk7XG5cdCAgICAgICAgICAgIHZhciBobWFjID0gaGFzaGVyLmZpbmFsaXplKHRoaXMuX29LZXkuY2xvbmUoKS5jb25jYXQoaW5uZXJIYXNoKSk7XG5cblx0ICAgICAgICAgICAgcmV0dXJuIGhtYWM7XG5cdCAgICAgICAgfVxuXHQgICAgfSk7XG5cdH0oKSk7XG5cblxufSkpOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///172\n")},function(module,exports,__webpack_require__){"use strict";eval('\n\nmodule.exports = function (url, options) {\n if (!options) {\n // eslint-disable-next-line no-param-reassign\n options = {};\n } // eslint-disable-next-line no-underscore-dangle, no-param-reassign\n\n\n url = url && url.__esModule ? url.default : url;\n\n if (typeof url !== \'string\') {\n return url;\n } // If url is already wrapped in quotes, remove them\n\n\n if (/^[\'"].*[\'"]$/.test(url)) {\n // eslint-disable-next-line no-param-reassign\n url = url.slice(1, -1);\n }\n\n if (options.hash) {\n // eslint-disable-next-line no-param-reassign\n url += options.hash;\n } // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n\n\n if (/["\'() \\t\\n]/.test(url) || options.needQuotes) {\n return "\\"".concat(url.replace(/"/g, \'\\\\"\').replace(/\\n/g, \'\\\\n\'), "\\"");\n }\n\n return url;\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvZ2V0VXJsLmpzPzFkZTUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOzs7QUFHSDs7QUFFQTtBQUNBO0FBQ0EsR0FBRzs7O0FBR0g7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOzs7QUFHQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSIsImZpbGUiOiIxNzMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodXJsLCBvcHRpb25zKSB7XG4gIGlmICghb3B0aW9ucykge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgIG9wdGlvbnMgPSB7fTtcbiAgfSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZXJzY29yZS1kYW5nbGUsIG5vLXBhcmFtLXJlYXNzaWduXG5cblxuICB1cmwgPSB1cmwgJiYgdXJsLl9fZXNNb2R1bGUgPyB1cmwuZGVmYXVsdCA6IHVybDtcblxuICBpZiAodHlwZW9mIHVybCAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gdXJsO1xuICB9IC8vIElmIHVybCBpcyBhbHJlYWR5IHdyYXBwZWQgaW4gcXVvdGVzLCByZW1vdmUgdGhlbVxuXG5cbiAgaWYgKC9eWydcIl0uKlsnXCJdJC8udGVzdCh1cmwpKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgdXJsID0gdXJsLnNsaWNlKDEsIC0xKTtcbiAgfVxuXG4gIGlmIChvcHRpb25zLmhhc2gpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICB1cmwgKz0gb3B0aW9ucy5oYXNoO1xuICB9IC8vIFNob3VsZCB1cmwgYmUgd3JhcHBlZD9cbiAgLy8gU2VlIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdmFsdWVzLTMvI3VybHNcblxuXG4gIGlmICgvW1wiJygpIFxcdFxcbl0vLnRlc3QodXJsKSB8fCBvcHRpb25zLm5lZWRRdW90ZXMpIHtcbiAgICByZXR1cm4gXCJcXFwiXCIuY29uY2F0KHVybC5yZXBsYWNlKC9cIi9nLCAnXFxcXFwiJykucmVwbGFjZSgvXFxuL2csICdcXFxcbicpLCBcIlxcXCJcIik7XG4gIH1cblxuICByZXR1cm4gdXJsO1xufTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///173\n')},function(module,__webpack_exports__,__webpack_require__){"use strict";eval("/* harmony import */ var core_js_modules_es7_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);\n/* harmony import */ var core_js_modules_es7_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es7_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es6_symbol__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8);\n/* harmony import */ var core_js_modules_es6_symbol__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_symbol__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6);\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4);\n/* harmony import */ var core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9);\n/* harmony import */ var core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(19);\n/* harmony import */ var core_js_modules_es7_array_includes__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(30);\n/* harmony import */ var core_js_modules_es7_array_includes__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es7_array_includes__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var core_js_modules_es6_string_includes__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(33);\n/* harmony import */ var core_js_modules_es6_string_includes__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_string_includes__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(16);\n/* harmony import */ var core_js_modules_es6_string_fixed__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(134);\n/* harmony import */ var core_js_modules_es6_string_fixed__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_string_fixed__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(1);\n/* harmony import */ var _src_components_VBtn_VBtn_sass__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(295);\n/* harmony import */ var _src_components_VBtn_VBtn_sass__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_src_components_VBtn_VBtn_sass__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var _VSheet__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(93);\n/* harmony import */ var _VProgressCircular__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(192);\n/* harmony import */ var _mixins_groupable__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(92);\n/* harmony import */ var _mixins_toggleable__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(31);\n/* harmony import */ var _mixins_positionable__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(60);\n/* harmony import */ var _mixins_routable__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(53);\n/* harmony import */ var _mixins_sizeable__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(138);\n/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(5);\n/* harmony import */ var _util_console__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(10);\n\n\n\n\n\n\n\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_10__[/* default */ \"a\"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n// Styles\n // Extensions\n\n // Components\n\n // Mixins\n\n\n\n\n\n // Utilities\n\n\n\nvar baseMixins = Object(_util_mixins__WEBPACK_IMPORTED_MODULE_19__[/* default */ \"a\"])(_VSheet__WEBPACK_IMPORTED_MODULE_12__[/* default */ \"a\"], _mixins_routable__WEBPACK_IMPORTED_MODULE_17__[/* default */ \"a\"], _mixins_positionable__WEBPACK_IMPORTED_MODULE_16__[/* default */ \"a\"], _mixins_sizeable__WEBPACK_IMPORTED_MODULE_18__[/* default */ \"a\"], Object(_mixins_groupable__WEBPACK_IMPORTED_MODULE_14__[/* factory */ \"a\"])('btnToggle'), Object(_mixins_toggleable__WEBPACK_IMPORTED_MODULE_15__[/* factory */ \"b\"])('inputValue')\n/* @vue/component */\n);\n/* harmony default export */ __webpack_exports__[\"a\"] = (baseMixins.extend().extend({\n name: 'v-btn',\n props: {\n activeClass: {\n type: String,\n default: function _default() {\n if (!this.btnToggle) return '';\n return this.btnToggle.activeClass;\n }\n },\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button'\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button'\n },\n value: null\n },\n data: function data() {\n return {\n proxyClass: 'v-btn--active'\n };\n },\n computed: {\n classes: function classes() {\n return _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({\n 'v-btn': true\n }, _mixins_routable__WEBPACK_IMPORTED_MODULE_17__[/* default */ \"a\"].options.computed.classes.call(this)), {}, {\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--contained': this.contained,\n 'v-btn--depressed': this.depressed || this.outlined,\n 'v-btn--disabled': this.disabled,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--flat': this.isFlat,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top\n }, this.themeClasses), this.groupClasses), this.elevationClasses), this.sizeableClasses);\n },\n contained: function contained() {\n return Boolean(!this.isFlat && !this.depressed && // Contained class only adds elevation\n // is not needed if user provides value\n !this.elevation);\n },\n computedRipple: function computedRipple() {\n var defaultRipple = this.icon || this.fab ? {\n circle: true\n } : true;\n if (this.disabled) return false;else return this.ripple != null ? this.ripple : defaultRipple;\n },\n isFlat: function isFlat() {\n return Boolean(this.icon || this.text || this.outlined);\n },\n isRound: function isRound() {\n return Boolean(this.icon || this.fab);\n },\n styles: function styles() {\n return _objectSpread({}, this.measurableStyles);\n }\n },\n created: function created() {\n var _this = this;\n\n var breakingProps = [['flat', 'text'], ['outline', 'outlined'], ['round', 'rounded']];\n /* istanbul ignore next */\n\n breakingProps.forEach(function (_ref) {\n var _ref2 = Object(_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_8__[/* default */ \"a\"])(_ref, 2),\n original = _ref2[0],\n replacement = _ref2[1];\n\n if (_this.$attrs.hasOwnProperty(original)) Object(_util_console__WEBPACK_IMPORTED_MODULE_20__[/* breaking */ \"a\"])(original, replacement, _this);\n });\n },\n methods: {\n click: function click(e) {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur();\n this.$emit('click', e);\n this.btnToggle && this.toggle();\n },\n genContent: function genContent() {\n return this.$createElement('span', {\n staticClass: 'v-btn__content'\n }, this.$slots.default);\n },\n genLoader: function genLoader() {\n return this.$createElement('span', {\n class: 'v-btn__loader'\n }, this.$slots.loader || [this.$createElement(_VProgressCircular__WEBPACK_IMPORTED_MODULE_13__[/* default */ \"a\"], {\n props: {\n indeterminate: true,\n size: 23,\n width: 2\n }\n })]);\n }\n },\n render: function render(h) {\n var children = [this.genContent(), this.loading && this.genLoader()];\n var setColor = !this.isFlat ? this.setBackgroundColor : this.setTextColor;\n\n var _this$generateRouteLi = this.generateRouteLink(),\n tag = _this$generateRouteLi.tag,\n data = _this$generateRouteLi.data;\n\n if (tag === 'button') {\n data.attrs.type = this.type;\n data.attrs.disabled = this.disabled;\n }\n\n data.attrs.value = ['string', 'number'].includes(Object(_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"])(this.value)) ? this.value : JSON.stringify(this.value);\n return h(tag, this.disabled ? data : setColor(this.color, data), children);\n }\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvVkJ0bi9WQnRuLnRzPzBlZmYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0NBR0E7O0NBR0E7O0NBR0E7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Q0FHQTs7QUFDQTtBQUNBO0FBT0EsSUFBTSxVQUFVLEdBQUcscUVBQU0sd1FBS3ZCLDBFQUFnQixDQUxPLFdBS1AsQ0FMTyxFQU12QiwyRUFBaUI7QUFDakI7QUFQdUIsQ0FBekI7QUFhZSxtRUFBVSxDQUFWLGdCQUFvQztBQUNqRCxNQUFJLEVBRDZDO0FBR2pELE9BQUssRUFBRTtBQUNMLGVBQVcsRUFBRTtBQUNYLFVBQUksRUFETztBQUVYLGFBRlcsc0JBRUo7QUFDTCxZQUFJLENBQUMsS0FBTCxXQUFxQjtBQUVyQixlQUFPLGVBQVA7QUFDRDtBQU5VLEtBRFI7QUFTTCxTQUFLLEVBVEE7QUFVTCxhQUFTLEVBVko7QUFXTCxPQUFHLEVBWEU7QUFZTCxRQUFJLEVBWkM7QUFhTCxXQUFPLEVBYkY7QUFjTCxZQUFRLEVBZEg7QUFlTCxzQkFBa0IsRUFmYjtBQWdCTCxXQUFPLEVBaEJGO0FBaUJMLE9BQUcsRUFBRTtBQUNILFVBQUksRUFERDtBQUVILGFBQU8sRUFBRTtBQUZOLEtBakJBO0FBcUJMLFFBQUksRUFyQkM7QUFzQkwsUUFBSSxFQXRCQztBQXVCTCxRQUFJLEVBQUU7QUFDSixVQUFJLEVBREE7QUFFSixhQUFPLEVBQUU7QUFGTCxLQXZCRDtBQTJCTCxTQUFLLEVBQUU7QUEzQkYsR0FIMEM7QUFpQ2pELE1BQUksRUFBRTtBQUFBLFdBQU87QUFDWCxnQkFBVSxFQUFFO0FBREQsS0FBUDtBQUFBLEdBakMyQztBQXFDakQsVUFBUSxFQUFFO0FBQ1IsV0FEUSxxQkFDRDtBQUNMO0FBQ0UsaUJBREs7QUFBUCxTQUVLLGlFQUFRLENBQVIsOEJBRkUsSUFFRixD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RWYsZ0JBQWdCLEtBRmxCLFNBRWtCLEVBRkQsQ0FBakI7QUFJQSxRQUFNLFFBQVEsR0FBRyxDQUFDLEtBQUQsU0FBZSxLQUFmLHFCQUF5QyxLQUExRDs7QUFMTyxnQ0FNZSxLQUF0QixpQkFBc0IsRUFOZjtBQUFBLFFBTUQsR0FOQyx5QkFNRCxHQU5DO0FBQUEsUUFNTSxJQU5OLHlCQU1NLElBTk47O0FBUVAsUUFBSSxHQUFHLEtBQVAsVUFBc0I7QUFDcEIsVUFBSSxDQUFKLGFBQW1CLEtBQW5CO0FBQ0EsVUFBSSxDQUFKLGlCQUF1QixLQUF2QjtBQUNEOztBQUNELFFBQUksQ0FBSixjQUFvQix3SEFBcUMsS0FBckMsVUFDaEIsS0FEZ0IsUUFFaEIsSUFBSSxDQUFKLFVBQWUsS0FGbkIsS0FFSSxDQUZKO0FBSUEsV0FBTyxDQUFDLE1BQU0sdUJBQXVCLFFBQVEsQ0FBQyxLQUFELE9BQXJDLElBQXFDLENBQXJDLEVBQVIsUUFBUSxDQUFSO0FBQ0Q7QUE5SmdELENBQXBDLENBQWYiLCJmaWxlIjoiMTc0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gU3R5bGVzXG5pbXBvcnQgJy4vVkJ0bi5zYXNzJ1xuXG4vLyBFeHRlbnNpb25zXG5pbXBvcnQgVlNoZWV0IGZyb20gJy4uL1ZTaGVldCdcblxuLy8gQ29tcG9uZW50c1xuaW1wb3J0IFZQcm9ncmVzc0NpcmN1bGFyIGZyb20gJy4uL1ZQcm9ncmVzc0NpcmN1bGFyJ1xuXG4vLyBNaXhpbnNcbmltcG9ydCB7IGZhY3RvcnkgYXMgR3JvdXBhYmxlRmFjdG9yeSB9IGZyb20gJy4uLy4uL21peGlucy9ncm91cGFibGUnXG5pbXBvcnQgeyBmYWN0b3J5IGFzIFRvZ2dsZWFibGVGYWN0b3J5IH0gZnJvbSAnLi4vLi4vbWl4aW5zL3RvZ2dsZWFibGUnXG5pbXBvcnQgUG9zaXRpb25hYmxlIGZyb20gJy4uLy4uL21peGlucy9wb3NpdGlvbmFibGUnXG5pbXBvcnQgUm91dGFibGUgZnJvbSAnLi4vLi4vbWl4aW5zL3JvdXRhYmxlJ1xuaW1wb3J0IFNpemVhYmxlIGZyb20gJy4uLy4uL21peGlucy9zaXplYWJsZSdcblxuLy8gVXRpbGl0aWVzXG5pbXBvcnQgbWl4aW5zLCB7IEV4dHJhY3RWdWUgfSBmcm9tICcuLi8uLi91dGlsL21peGlucydcbmltcG9ydCB7IGJyZWFraW5nIH0gZnJvbSAnLi4vLi4vdXRpbC9jb25zb2xlJ1xuXG4vLyBUeXBlc1xuaW1wb3J0IHsgVk5vZGUgfSBmcm9tICd2dWUnXG5pbXBvcnQgeyBQcm9wVmFsaWRhdG9yLCBQcm9wVHlwZSB9IGZyb20gJ3Z1ZS90eXBlcy9vcHRpb25zJ1xuaW1wb3J0IHsgUmlwcGxlT3B0aW9ucyB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvcmlwcGxlJ1xuXG5jb25zdCBiYXNlTWl4aW5zID0gbWl4aW5zKFxuICBWU2hlZXQsXG4gIFJvdXRhYmxlLFxuICBQb3NpdGlvbmFibGUsXG4gIFNpemVhYmxlLFxuICBHcm91cGFibGVGYWN0b3J5KCdidG5Ub2dnbGUnKSxcbiAgVG9nZ2xlYWJsZUZhY3RvcnkoJ2lucHV0VmFsdWUnKVxuICAvKiBAdnVlL2NvbXBvbmVudCAqL1xuKVxuaW50ZXJmYWNlIG9wdGlvbnMgZXh0ZW5kcyBFeHRyYWN0VnVlPHR5cGVvZiBiYXNlTWl4aW5zPiB7XG4gICRlbDogSFRNTEVsZW1lbnRcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZU1peGlucy5leHRlbmQ8b3B0aW9ucz4oKS5leHRlbmQoe1xuICBuYW1lOiAndi1idG4nLFxuXG4gIHByb3BzOiB7XG4gICAgYWN0aXZlQ2xhc3M6IHtcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgIGRlZmF1bHQgKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICghdGhpcy5idG5Ub2dnbGUpIHJldHVybiAnJ1xuXG4gICAgICAgIHJldHVybiB0aGlzLmJ0blRvZ2dsZS5hY3RpdmVDbGFzc1xuICAgICAgfSxcbiAgICB9IGFzIGFueSBhcyBQcm9wVmFsaWRhdG9yPHN0cmluZz4sXG4gICAgYmxvY2s6IEJvb2xlYW4sXG4gICAgZGVwcmVzc2VkOiBCb29sZWFuLFxuICAgIGZhYjogQm9vbGVhbixcbiAgICBpY29uOiBCb29sZWFuLFxuICAgIGxvYWRpbmc6IEJvb2xlYW4sXG4gICAgb3V0bGluZWQ6IEJvb2xlYW4sXG4gICAgcmV0YWluRm9jdXNPbkNsaWNrOiBCb29sZWFuLFxuICAgIHJvdW5kZWQ6IEJvb2xlYW4sXG4gICAgdGFnOiB7XG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICBkZWZhdWx0OiAnYnV0dG9uJyxcbiAgICB9LFxuICAgIHRleHQ6IEJvb2xlYW4sXG4gICAgdGlsZTogQm9vbGVhbixcbiAgICB0eXBlOiB7XG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICBkZWZhdWx0OiAnYnV0dG9uJyxcbiAgICB9LFxuICAgIHZhbHVlOiBudWxsIGFzIGFueSBhcyBQcm9wVHlwZTxhbnk+LFxuICB9LFxuXG4gIGRhdGE6ICgpID0+ICh7XG4gICAgcHJveHlDbGFzczogJ3YtYnRuLS1hY3RpdmUnLFxuICB9KSxcblxuICBjb21wdXRlZDoge1xuICAgIGNsYXNzZXMgKCk6IGFueSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAndi1idG4nOiB0cnVlLFxuICAgICAgICAuLi5Sb3V0YWJsZS5vcHRpb25zLmNvbXB1dGVkLmNsYXNzZXMuY2FsbCh0aGlzKSxcbiAgICAgICAgJ3YtYnRuLS1hYnNvbHV0ZSc6IHRoaXMuYWJzb2x1dGUsXG4gICAgICAgICd2LWJ0bi0tYmxvY2snOiB0aGlzLmJsb2NrLFxuICAgICAgICAndi1idG4tLWJvdHRvbSc6IHRoaXMuYm90dG9tLFxuICAgICAgICAndi1idG4tLWNvbnRhaW5lZCc6IHRoaXMuY29udGFpbmVkLFxuICAgICAgICAndi1idG4tLWRlcHJlc3NlZCc6ICh0aGlzLmRlcHJlc3NlZCkgfHwgdGhpcy5vdXRsaW5lZCxcbiAgICAgICAgJ3YtYnRuLS1kaXNhYmxlZCc6IHRoaXMuZGlzYWJsZWQsXG4gICAgICAgICd2LWJ0bi0tZmFiJzogdGhpcy5mYWIsXG4gICAgICAgICd2LWJ0bi0tZml4ZWQnOiB0aGlzLmZpeGVkLFxuICAgICAgICAndi1idG4tLWZsYXQnOiB0aGlzLmlzRmxhdCxcbiAgICAgICAgJ3YtYnRuLS1pY29uJzogdGhpcy5pY29uLFxuICAgICAgICAndi1idG4tLWxlZnQnOiB0aGlzLmxlZnQsXG4gICAgICAgICd2LWJ0bi0tbG9hZGluZyc6IHRoaXMubG9hZGluZyxcbiAgICAgICAgJ3YtYnRuLS1vdXRsaW5lZCc6IHRoaXMub3V0bGluZWQsXG4gICAgICAgICd2LWJ0bi0tcmlnaHQnOiB0aGlzLnJpZ2h0LFxuICAgICAgICAndi1idG4tLXJvdW5kJzogdGhpcy5pc1JvdW5kLFxuICAgICAgICAndi1idG4tLXJvdW5kZWQnOiB0aGlzLnJvdW5kZWQsXG4gICAgICAgICd2LWJ0bi0tcm91dGVyJzogdGhpcy50byxcbiAgICAgICAgJ3YtYnRuLS10ZXh0JzogdGhpcy50ZXh0LFxuICAgICAgICAndi1idG4tLXRpbGUnOiB0aGlzLnRpbGUsXG4gICAgICAgICd2LWJ0bi0tdG9wJzogdGhpcy50b3AsXG4gICAgICAgIC4uLnRoaXMudGhlbWVDbGFzc2VzLFxuICAgICAgICAuLi50aGlzLmdyb3VwQ2xhc3NlcyxcbiAgICAgICAgLi4udGhpcy5lbGV2YXRpb25DbGFzc2VzLFxuICAgICAgICAuLi50aGlzLnNpemVhYmxlQ2xhc3NlcyxcbiAgICAgIH1cbiAgICB9LFxuICAgIGNvbnRhaW5lZCAoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gQm9vbGVhbihcbiAgICAgICAgIXRoaXMuaXNGbGF0ICYmXG4gICAgICAgICF0aGlzLmRlcHJlc3NlZCAmJlxuICAgICAgICAvLyBDb250YWluZWQgY2xhc3Mgb25seSBhZGRzIGVsZXZhdGlvblxuICAgICAgICAvLyBpcyBub3QgbmVlZGVkIGlmIHVzZXIgcHJvdmlkZXMgdmFsdWVcbiAgICAgICAgIXRoaXMuZWxldmF0aW9uXG4gICAgICApXG4gICAgfSxcbiAgICBjb21wdXRlZFJpcHBsZSAoKTogUmlwcGxlT3B0aW9ucyB8IGJvb2xlYW4ge1xuICAgICAgY29uc3QgZGVmYXVsdFJpcHBsZSA9IHRoaXMuaWNvbiB8fCB0aGlzLmZhYiA/IHsgY2lyY2xlOiB0cnVlIH0gOiB0cnVlXG4gICAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG4gICAgICBlbHNlIHJldHVybiB0aGlzLnJpcHBsZSAhPSBudWxsID8gdGhpcy5yaXBwbGUgOiBkZWZhdWx0UmlwcGxlXG4gICAgfSxcbiAgICBpc0ZsYXQgKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIEJvb2xlYW4oXG4gICAgICAgIHRoaXMuaWNvbiB8fFxuICAgICAgICB0aGlzLnRleHQgfHxcbiAgICAgICAgdGhpcy5vdXRsaW5lZFxuICAgICAgKVxuICAgIH0sXG4gICAgaXNSb3VuZCAoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gQm9vbGVhbihcbiAgICAgICAgdGhpcy5pY29uIHx8XG4gICAgICAgIHRoaXMuZmFiXG4gICAgICApXG4gICAgfSxcbiAgICBzdHlsZXMgKCk6IG9iamVjdCB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi50aGlzLm1lYXN1cmFibGVTdHlsZXMsXG4gICAgICB9XG4gICAgfSxcbiAgfSxcblxuICBjcmVhdGVkICgpIHtcbiAgICBjb25zdCBicmVha2luZ1Byb3BzID0gW1xuICAgICAgWydmbGF0JywgJ3RleHQnXSxcbiAgICAgIFsnb3V0bGluZScsICdvdXRsaW5lZCddLFxuICAgICAgWydyb3VuZCcsICdyb3VuZGVkJ10sXG4gICAgXVxuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBicmVha2luZ1Byb3BzLmZvckVhY2goKFtvcmlnaW5hbCwgcmVwbGFjZW1lbnRdKSA9PiB7XG4gICAgICBpZiAodGhpcy4kYXR0cnMuaGFzT3duUHJvcGVydHkob3JpZ2luYWwpKSBicmVha2luZyhvcmlnaW5hbCwgcmVwbGFjZW1lbnQsIHRoaXMpXG4gICAgfSlcbiAgfSxcblxuICBtZXRob2RzOiB7XG4gICAgY2xpY2sgKGU6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgIC8vIFRPRE86IFJlbW92ZSB0aGlzIGluIHYzXG4gICAgICAhdGhpcy5yZXRhaW5Gb2N1c09uQ2xpY2sgJiYgIXRoaXMuZmFiICYmIGUuZGV0YWlsICYmIHRoaXMuJGVsLmJsdXIoKVxuICAgICAgdGhpcy4kZW1pdCgnY2xpY2snLCBlKVxuXG4gICAgICB0aGlzLmJ0blRvZ2dsZSAmJiB0aGlzLnRvZ2dsZSgpXG4gICAgfSxcbiAgICBnZW5Db250ZW50ICgpOiBWTm9kZSB7XG4gICAgICByZXR1cm4gdGhpcy4kY3JlYXRlRWxlbWVudCgnc3BhbicsIHtcbiAgICAgICAgc3RhdGljQ2xhc3M6ICd2LWJ0bl9fY29udGVudCcsXG4gICAgICB9LCB0aGlzLiRzbG90cy5kZWZhdWx0KVxuICAgIH0sXG4gICAgZ2VuTG9hZGVyICgpOiBWTm9kZSB7XG4gICAgICByZXR1cm4gdGhpcy4kY3JlYXRlRWxlbWVudCgnc3BhbicsIHtcbiAgICAgICAgY2xhc3M6ICd2LWJ0bl9fbG9hZGVyJyxcbiAgICAgIH0sIHRoaXMuJHNsb3RzLmxvYWRlciB8fCBbdGhpcy4kY3JlYXRlRWxlbWVudChWUHJvZ3Jlc3NDaXJjdWxhciwge1xuICAgICAgICBwcm9wczoge1xuICAgICAgICAgIGluZGV0ZXJtaW5hdGU6IHRydWUsXG4gICAgICAgICAgc2l6ZTogMjMsXG4gICAgICAgICAgd2lkdGg6IDIsXG4gICAgICAgIH0sXG4gICAgICB9KV0pXG4gICAgfSxcbiAgfSxcblxuICByZW5kZXIgKGgpOiBWTm9kZSB7XG4gICAgY29uc3QgY2hpbGRyZW4gPSBbXG4gICAgICB0aGlzLmdlbkNvbnRlbnQoKSxcbiAgICAgIHRoaXMubG9hZGluZyAmJiB0aGlzLmdlbkxvYWRlcigpLFxuICAgIF1cbiAgICBjb25zdCBzZXRDb2xvciA9ICF0aGlzLmlzRmxhdCA/IHRoaXMuc2V0QmFja2dyb3VuZENvbG9yIDogdGhpcy5zZXRUZXh0Q29sb3JcbiAgICBjb25zdCB7IHRhZywgZGF0YSB9ID0gdGhpcy5nZW5lcmF0ZVJvdXRlTGluaygpXG5cbiAgICBpZiAodGFnID09PSAnYnV0dG9uJykge1xuICAgICAgZGF0YS5hdHRycyEudHlwZSA9IHRoaXMudHlwZVxuICAgICAgZGF0YS5hdHRycyEuZGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkXG4gICAgfVxuICAgIGRhdGEuYXR0cnMhLnZhbHVlID0gWydzdHJpbmcnLCAnbnVtYmVyJ10uaW5jbHVkZXModHlwZW9mIHRoaXMudmFsdWUpXG4gICAgICA/IHRoaXMudmFsdWVcbiAgICAgIDogSlNPTi5zdHJpbmdpZnkodGhpcy52YWx1ZSlcblxuICAgIHJldHVybiBoKHRhZywgdGhpcy5kaXNhYmxlZCA/IGRhdGEgOiBzZXRDb2xvcih0aGlzLmNvbG9yLCBkYXRhKSwgY2hpbGRyZW4pXG4gIH0sXG59KVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///174\n")},function(module,__webpack_exports__,__webpack_require__){"use strict";eval("/* harmony import */ var core_js_modules_es6_number_constructor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);\n/* harmony import */ var core_js_modules_es6_number_constructor__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_number_constructor__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _src_components_VProgressCircular_VProgressCircular_sass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(314);\n/* harmony import */ var _src_components_VProgressCircular_VProgressCircular_sass__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_src_components_VProgressCircular_VProgressCircular_sass__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(21);\n/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);\n\n// Styles\n // Mixins\n\n // Utils\n\n\n/* @vue/component */\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (_mixins_colorable__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"].extend({\n name: 'v-progress-circular',\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0\n },\n size: {\n type: [Number, String],\n default: 32\n },\n width: {\n type: [Number, String],\n default: 4\n },\n value: {\n type: [Number, String],\n default: 0\n }\n },\n data: function data() {\n return {\n radius: 20\n };\n },\n computed: {\n calculatedSize: function calculatedSize() {\n return Number(this.size) + (this.button ? 8 : 0);\n },\n circumference: function circumference() {\n return 2 * Math.PI * this.radius;\n },\n classes: function classes() {\n return {\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button\n };\n },\n normalizedValue: function normalizedValue() {\n if (this.value < 0) {\n return 0;\n }\n\n if (this.value > 100) {\n return 100;\n }\n\n return parseFloat(this.value);\n },\n strokeDashArray: function strokeDashArray() {\n return Math.round(this.circumference * 1000) / 1000;\n },\n strokeDashOffset: function strokeDashOffset() {\n return (100 - this.normalizedValue) / 100 * this.circumference + 'px';\n },\n strokeWidth: function strokeWidth() {\n return Number(this.width) / +this.size * this.viewBoxSize * 2;\n },\n styles: function styles() {\n return {\n height: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__[/* convertToUnit */ \"g\"])(this.calculatedSize),\n width: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_3__[/* convertToUnit */ \"g\"])(this.calculatedSize)\n };\n },\n svgStyles: function svgStyles() {\n return {\n transform: \"rotate(\".concat(Number(this.rotate), \"deg)\")\n };\n },\n viewBoxSize: function viewBoxSize() {\n return this.radius / (1 - Number(this.width) / +this.size);\n }\n },\n methods: {\n genCircle: function genCircle(name, offset) {\n return this.$createElement('circle', {\n class: \"v-progress-circular__\".concat(name),\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset\n }\n });\n },\n genSvg: function genSvg() {\n var children = [this.indeterminate || this.genCircle('underlay', 0), this.genCircle('overlay', this.strokeDashOffset)];\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: \"\".concat(this.viewBoxSize, \" \").concat(this.viewBoxSize, \" \").concat(2 * this.viewBoxSize, \" \").concat(2 * this.viewBoxSize)\n }\n }, children);\n },\n genInfo: function genInfo() {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info'\n }, this.$slots.default);\n }\n },\n render: function render(h) {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue\n },\n class: this.classes,\n style: this.styles,\n on: this.$listeners\n }), [this.genSvg(), this.genInfo()]);\n }\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvVlByb2dyZXNzQ2lyY3VsYXIvVlByb2dyZXNzQ2lyY3VsYXIudHM/MDQzNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Q0FHQTs7Q0FHQTs7QUFDQTtBQUtBOztBQUNlLDBIQUFTLENBQVQsT0FBaUI7QUFDOUIsTUFBSSxFQUQwQjtBQUc5QixPQUFLLEVBQUU7QUFDTCxVQUFNLEVBREQ7QUFFTCxpQkFBYSxFQUZSO0FBR0wsVUFBTSxFQUFFO0FBQ04sVUFBSSxFQUFFLFNBREEsTUFDQSxDQURBO0FBRU4sYUFBTyxFQUFFO0FBRkgsS0FISDtBQU9MLFFBQUksRUFBRTtBQUNKLFVBQUksRUFBRSxTQURGLE1BQ0UsQ0FERjtBQUVKLGFBQU8sRUFBRTtBQUZMLEtBUEQ7QUFXTCxTQUFLLEVBQUU7QUFDTCxVQUFJLEVBQUUsU0FERCxNQUNDLENBREQ7QUFFTCxhQUFPLEVBQUU7QUFGSixLQVhGO0FBZUwsU0FBSyxFQUFFO0FBQ0wsVUFBSSxFQUFFLFNBREQsTUFDQyxDQUREO0FBRUwsYUFBTyxFQUFFO0FBRko7QUFmRixHQUh1QjtBQXdCOUIsTUFBSSxFQUFFO0FBQUEsV0FBTztBQUNYLFlBQU0sRUFBRTtBQURHLEtBQVA7QUFBQSxHQXhCd0I7QUE0QjlCLFVBQVEsRUFBRTtBQUNSLGtCQURRLDRCQUNNO0FBQ1osYUFBTyxNQUFNLENBQUMsS0FBUCxJQUFNLENBQU4sSUFBcUIsa0JBQTVCLENBQU8sQ0FBUDtBQUZNO0FBS1IsaUJBTFEsMkJBS0s7QUFDWCxhQUFPLElBQUksSUFBSSxDQUFSLEtBQWMsS0FBckI7QUFOTTtBQVNSLFdBVFEscUJBU0Q7QUFDTCxhQUFPO0FBQ0wsOENBQXNDLEtBRGpDO0FBRUwsdUNBQStCLEtBQUs7QUFGL0IsT0FBUDtBQVZNO0FBZ0JSLG1CQWhCUSw2QkFnQk87QUFDYixVQUFJLGFBQUosR0FBb0I7QUFDbEI7QUFDRDs7QUFFRCxVQUFJLGFBQUosS0FBc0I7QUFDcEI7QUFDRDs7QUFFRCxhQUFPLFVBQVUsQ0FBQyxLQUFsQixLQUFpQixDQUFqQjtBQXpCTTtBQTRCUixtQkE1QlEsNkJBNEJPO0FBQ2IsYUFBTyxJQUFJLENBQUosTUFBVyxxQkFBWCxRQUFQO0FBN0JNO0FBZ0NSLG9CQWhDUSw4QkFnQ1E7QUFDZCxhQUFRLENBQUMsTUFBTSxLQUFQLG1CQUFELEdBQUMsR0FBc0MsS0FBdkMsYUFBQyxHQUFSO0FBakNNO0FBb0NSLGVBcENRLHlCQW9DRztBQUNULGFBQU8sTUFBTSxDQUFDLEtBQVAsS0FBTSxDQUFOLEdBQXFCLENBQUMsS0FBdEIsT0FBa0MsS0FBbEMsY0FBUDtBQXJDTTtBQXdDUixVQXhDUSxvQkF3Q0Y7QUFDSixhQUFPO0FBQ0wsY0FBTSxFQUFFLDJFQUFhLENBQUMsS0FEakIsY0FDZ0IsQ0FEaEI7QUFFTCxhQUFLLEVBQUUsMkVBQWEsQ0FBQyxLQUFEO0FBRmYsT0FBUDtBQXpDTTtBQStDUixhQS9DUSx1QkErQ0M7QUFDUCxhQUFPO0FBQ0wsaUJBQVMsbUJBQVksTUFBTSxDQUFDLEtBQUQsT0FBbEI7QUFESixPQUFQO0FBaERNO0FBcURSLGVBckRRLHlCQXFERztBQUNULGFBQU8sZUFBZSxJQUFJLE1BQU0sQ0FBQyxLQUFQLEtBQU0sQ0FBTixHQUFxQixDQUFDLEtBQWhELElBQU8sQ0FBUDtBQUNEO0FBdkRPLEdBNUJvQjtBQXNGOUIsU0FBTyxFQUFFO0FBQ1AsYUFETyxxQkFDRSxJQURGLEVBQ0UsTUFERixFQUN5QztBQUM5QyxhQUFPLDhCQUE4QjtBQUNuQyxhQUFLLGlDQUQ4QixJQUM5QixDQUQ4QjtBQUVuQyxhQUFLLEVBQUU7QUFDTCxjQUFJLEVBREM7QUFFTCxZQUFFLEVBQUUsSUFBSSxLQUZIO0FBR0wsWUFBRSxFQUFFLElBQUksS0FISDtBQUlMLFdBQUMsRUFBRSxLQUpFO0FBS0wsMEJBQWdCLEtBTFg7QUFNTCw4QkFBb0IsS0FOZjtBQU9MLCtCQUFxQjtBQVBoQjtBQUY0QixPQUE5QixDQUFQO0FBRks7QUFlUCxVQWZPLG9CQWVEO0FBQ0osVUFBTSxRQUFRLEdBQUcsQ0FDZixzQkFBc0IsMkJBRFAsQ0FDTyxDQURQLEVBRWYsMEJBQTBCLEtBRjVCLGdCQUVFLENBRmUsQ0FBakI7QUFLQSxhQUFPLDJCQUEyQjtBQUNoQyxhQUFLLEVBQUUsS0FEeUI7QUFFaEMsYUFBSyxFQUFFO0FBQ0wsZUFBSyxFQURBO0FBRUwsaUJBQU8sWUFBSyxLQUFLLFdBQVYsY0FBeUIsS0FBSyxXQUE5QixjQUE2QyxJQUFJLEtBQUssV0FBdEQsY0FBcUUsSUFBSSxLQUFLLFdBQTlFO0FBRkY7QUFGeUIsT0FBM0IsRUFBUCxRQUFPLENBQVA7QUFyQks7QUE2QlAsV0E3Qk8scUJBNkJBO0FBQ0wsYUFBTywyQkFBMkI7QUFDaEMsbUJBQVcsRUFBRTtBQURtQixPQUEzQixFQUVKLFlBRkgsT0FBTyxDQUFQO0FBR0Q7QUFqQ00sR0F0RnFCO0FBMEg5QixRQTFIOEIsa0JBMEh4QixDQTFId0IsRUEwSHJCO0FBQ1AsV0FBTyxDQUFDLFFBQVEsa0JBQWtCLEtBQWxCLE9BQThCO0FBQzVDLGlCQUFXLEVBRGlDO0FBRTVDLFdBQUssRUFBRTtBQUNMLFlBQUksRUFEQztBQUVMLHlCQUZLO0FBR0wseUJBSEs7QUFJTCx5QkFBaUIsaUNBQWlDLEtBQUs7QUFKbEQsT0FGcUM7QUFRNUMsV0FBSyxFQUFFLEtBUnFDO0FBUzVDLFdBQUssRUFBRSxLQVRxQztBQVU1QyxRQUFFLEVBQUUsS0FBSztBQVZtQyxLQUE5QixDQUFSLEVBV0osQ0FDRixLQURFLE1BQ0YsRUFERSxFQUVGLEtBYkYsT0FhRSxFQUZFLENBWEksQ0FBUjtBQWVEO0FBMUk2QixDQUFqQixDQUFmIiwiZmlsZSI6IjE3NS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFN0eWxlc1xuaW1wb3J0ICcuL1ZQcm9ncmVzc0NpcmN1bGFyLnNhc3MnXG5cbi8vIE1peGluc1xuaW1wb3J0IENvbG9yYWJsZSBmcm9tICcuLi8uLi9taXhpbnMvY29sb3JhYmxlJ1xuXG4vLyBVdGlsc1xuaW1wb3J0IHsgY29udmVydFRvVW5pdCB9IGZyb20gJy4uLy4uL3V0aWwvaGVscGVycydcblxuLy8gVHlwZXNcbmltcG9ydCB7IFZOb2RlLCBWTm9kZUNoaWxkcmVuIH0gZnJvbSAndnVlJ1xuXG4vKiBAdnVlL2NvbXBvbmVudCAqL1xuZXhwb3J0IGRlZmF1bHQgQ29sb3JhYmxlLmV4dGVuZCh7XG4gIG5hbWU6ICd2LXByb2dyZXNzLWNpcmN1bGFyJyxcblxuICBwcm9wczoge1xuICAgIGJ1dHRvbjogQm9vbGVhbixcbiAgICBpbmRldGVybWluYXRlOiBCb29sZWFuLFxuICAgIHJvdGF0ZToge1xuICAgICAgdHlwZTogW051bWJlciwgU3RyaW5nXSxcbiAgICAgIGRlZmF1bHQ6IDAsXG4gICAgfSxcbiAgICBzaXplOiB7XG4gICAgICB0eXBlOiBbTnVtYmVyLCBTdHJpbmddLFxuICAgICAgZGVmYXVsdDogMzIsXG4gICAgfSxcbiAgICB3aWR0aDoge1xuICAgICAgdHlwZTogW051bWJlciwgU3RyaW5nXSxcbiAgICAgIGRlZmF1bHQ6IDQsXG4gICAgfSxcbiAgICB2YWx1ZToge1xuICAgICAgdHlwZTogW051bWJlciwgU3RyaW5nXSxcbiAgICAgIGRlZmF1bHQ6IDAsXG4gICAgfSxcbiAgfSxcblxuICBkYXRhOiAoKSA9PiAoe1xuICAgIHJhZGl1czogMjAsXG4gIH0pLFxuXG4gIGNvbXB1dGVkOiB7XG4gICAgY2FsY3VsYXRlZFNpemUgKCk6IG51bWJlciB7XG4gICAgICByZXR1cm4gTnVtYmVyKHRoaXMuc2l6ZSkgKyAodGhpcy5idXR0b24gPyA4IDogMClcbiAgICB9LFxuXG4gICAgY2lyY3VtZmVyZW5jZSAoKTogbnVtYmVyIHtcbiAgICAgIHJldHVybiAyICogTWF0aC5QSSAqIHRoaXMucmFkaXVzXG4gICAgfSxcblxuICAgIGNsYXNzZXMgKCk6IG9iamVjdCB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAndi1wcm9ncmVzcy1jaXJjdWxhci0taW5kZXRlcm1pbmF0ZSc6IHRoaXMuaW5kZXRlcm1pbmF0ZSxcbiAgICAgICAgJ3YtcHJvZ3Jlc3MtY2lyY3VsYXItLWJ1dHRvbic6IHRoaXMuYnV0dG9uLFxuICAgICAgfVxuICAgIH0sXG5cbiAgICBub3JtYWxpemVkVmFsdWUgKCk6IG51bWJlciB7XG4gICAgICBpZiAodGhpcy52YWx1ZSA8IDApIHtcbiAgICAgICAgcmV0dXJuIDBcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMudmFsdWUgPiAxMDApIHtcbiAgICAgICAgcmV0dXJuIDEwMFxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcGFyc2VGbG9hdCh0aGlzLnZhbHVlKVxuICAgIH0sXG5cbiAgICBzdHJva2VEYXNoQXJyYXkgKCk6IG51bWJlciB7XG4gICAgICByZXR1cm4gTWF0aC5yb3VuZCh0aGlzLmNpcmN1bWZlcmVuY2UgKiAxMDAwKSAvIDEwMDBcbiAgICB9LFxuXG4gICAgc3Ryb2tlRGFzaE9mZnNldCAoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiAoKDEwMCAtIHRoaXMubm9ybWFsaXplZFZhbHVlKSAvIDEwMCkgKiB0aGlzLmNpcmN1bWZlcmVuY2UgKyAncHgnXG4gICAgfSxcblxuICAgIHN0cm9rZVdpZHRoICgpOiBudW1iZXIge1xuICAgICAgcmV0dXJuIE51bWJlcih0aGlzLndpZHRoKSAvICt0aGlzLnNpemUgKiB0aGlzLnZpZXdCb3hTaXplICogMlxuICAgIH0sXG5cbiAgICBzdHlsZXMgKCk6IG9iamVjdCB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBoZWlnaHQ6IGNvbnZlcnRUb1VuaXQodGhpcy5jYWxjdWxhdGVkU2l6ZSksXG4gICAgICAgIHdpZHRoOiBjb252ZXJ0VG9Vbml0KHRoaXMuY2FsY3VsYXRlZFNpemUpLFxuICAgICAgfVxuICAgIH0sXG5cbiAgICBzdmdTdHlsZXMgKCk6IG9iamVjdCB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0cmFuc2Zvcm06IGByb3RhdGUoJHtOdW1iZXIodGhpcy5yb3RhdGUpfWRlZylgLFxuICAgICAgfVxuICAgIH0sXG5cbiAgICB2aWV3Qm94U2l6ZSAoKTogbnVtYmVyIHtcbiAgICAgIHJldHVybiB0aGlzLnJhZGl1cyAvICgxIC0gTnVtYmVyKHRoaXMud2lkdGgpIC8gK3RoaXMuc2l6ZSlcbiAgICB9LFxuICB9LFxuXG4gIG1ldGhvZHM6IHtcbiAgICBnZW5DaXJjbGUgKG5hbWU6IHN0cmluZywgb2Zmc2V0OiBzdHJpbmcgfCBudW1iZXIpOiBWTm9kZSB7XG4gICAgICByZXR1cm4gdGhpcy4kY3JlYXRlRWxlbWVudCgnY2lyY2xlJywge1xuICAgICAgICBjbGFzczogYHYtcHJvZ3Jlc3MtY2lyY3VsYXJfXyR7bmFtZX1gLFxuICAgICAgICBhdHRyczoge1xuICAgICAgICAgIGZpbGw6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAgY3g6IDIgKiB0aGlzLnZpZXdCb3hTaXplLFxuICAgICAgICAgIGN5OiAyICogdGhpcy52aWV3Qm94U2l6ZSxcbiAgICAgICAgICByOiB0aGlzLnJhZGl1cyxcbiAgICAgICAgICAnc3Ryb2tlLXdpZHRoJzogdGhpcy5zdHJva2VXaWR0aCxcbiAgICAgICAgICAnc3Ryb2tlLWRhc2hhcnJheSc6IHRoaXMuc3Ryb2tlRGFzaEFycmF5LFxuICAgICAgICAgICdzdHJva2UtZGFzaG9mZnNldCc6IG9mZnNldCxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgfSxcbiAgICBnZW5TdmcgKCk6IFZOb2RlIHtcbiAgICAgIGNvbnN0IGNoaWxkcmVuID0gW1xuICAgICAgICB0aGlzLmluZGV0ZXJtaW5hdGUgfHwgdGhpcy5nZW5DaXJjbGUoJ3VuZGVybGF5JywgMCksXG4gICAgICAgIHRoaXMuZ2VuQ2lyY2xlKCdvdmVybGF5JywgdGhpcy5zdHJva2VEYXNoT2Zmc2V0KSxcbiAgICAgIF0gYXMgVk5vZGVDaGlsZHJlblxuXG4gICAgICByZXR1cm4gdGhpcy4kY3JlYXRlRWxlbWVudCgnc3ZnJywge1xuICAgICAgICBzdHlsZTogdGhpcy5zdmdTdHlsZXMsXG4gICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgeG1sbnM6ICdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycsXG4gICAgICAgICAgdmlld0JveDogYCR7dGhpcy52aWV3Qm94U2l6ZX0gJHt0aGlzLnZpZXdCb3hTaXplfSAkezIgKiB0aGlzLnZpZXdCb3hTaXplfSAkezIgKiB0aGlzLnZpZXdCb3hTaXplfWAsXG4gICAgICAgIH0sXG4gICAgICB9LCBjaGlsZHJlbilcbiAgICB9LFxuICAgIGdlbkluZm8gKCk6IFZOb2RlIHtcbiAgICAgIHJldHVybiB0aGlzLiRjcmVhdGVFbGVtZW50KCdkaXYnLCB7XG4gICAgICAgIHN0YXRpY0NsYXNzOiAndi1wcm9ncmVzcy1jaXJjdWxhcl9faW5mbycsXG4gICAgICB9LCB0aGlzLiRzbG90cy5kZWZhdWx0KVxuICAgIH0sXG4gIH0sXG5cbiAgcmVuZGVyIChoKTogVk5vZGUge1xuICAgIHJldHVybiBoKCdkaXYnLCB0aGlzLnNldFRleHRDb2xvcih0aGlzLmNvbG9yLCB7XG4gICAgICBzdGF0aWNDbGFzczogJ3YtcHJvZ3Jlc3MtY2lyY3VsYXInLFxuICAgICAgYXR0cnM6IHtcbiAgICAgICAgcm9sZTogJ3Byb2dyZXNzYmFyJyxcbiAgICAgICAgJ2FyaWEtdmFsdWVtaW4nOiAwLFxuICAgICAgICAnYXJpYS12YWx1ZW1heCc6IDEwMCxcbiAgICAgICAgJ2FyaWEtdmFsdWVub3cnOiB0aGlzLmluZGV0ZXJtaW5hdGUgPyB1bmRlZmluZWQgOiB0aGlzLm5vcm1hbGl6ZWRWYWx1ZSxcbiAgICAgIH0sXG4gICAgICBjbGFzczogdGhpcy5jbGFzc2VzLFxuICAgICAgc3R5bGU6IHRoaXMuc3R5bGVzLFxuICAgICAgb246IHRoaXMuJGxpc3RlbmVycyxcbiAgICB9KSwgW1xuICAgICAgdGhpcy5nZW5TdmcoKSxcbiAgICAgIHRoaXMuZ2VuSW5mbygpLFxuICAgIF0pXG4gIH0sXG59KVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///175\n")},function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var core_js_modules_es7_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);\n/* harmony import */ var core_js_modules_es7_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es7_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es6_symbol__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8);\n/* harmony import */ var core_js_modules_es6_symbol__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_symbol__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6);\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4);\n/* harmony import */ var core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9);\n/* harmony import */ var core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1);\n/* harmony import */ var core_js_modules_es6_number_constructor__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(20);\n/* harmony import */ var core_js_modules_es6_number_constructor__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_number_constructor__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _src_components_VCard_VCard_sass__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(316);\n/* harmony import */ var _src_components_VCard_VCard_sass__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_src_components_VCard_VCard_sass__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _VSheet__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(93);\n/* harmony import */ var _mixins_loadable__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(152);\n/* harmony import */ var _mixins_routable__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(53);\n/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(5);\n\n\n\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n// Styles\n // Extensions\n\n // Mixins\n\n\n // Helpers\n\n\n/* @vue/component */\n\n/* harmony default export */ __webpack_exports__["a"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"])(_mixins_loadable__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"], _mixins_routable__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"], _VSheet__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"]).extend({\n name: \'v-card\',\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4\n },\n raised: Boolean\n },\n computed: {\n classes: function classes() {\n return _objectSpread(_objectSpread({\n \'v-card\': true\n }, _mixins_routable__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].options.computed.classes.call(this)), {}, {\n \'v-card--flat\': this.flat,\n \'v-card--hover\': this.hover,\n \'v-card--link\': this.isClickable,\n \'v-card--loading\': this.loading,\n \'v-card--disabled\': this.disabled,\n \'v-card--raised\': this.raised\n }, _VSheet__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"].options.computed.classes.call(this));\n },\n styles: function styles() {\n var style = _objectSpread({}, _VSheet__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"].options.computed.styles.call(this));\n\n if (this.img) {\n style.background = "url(\\"".concat(this.img, "\\") center center / cover no-repeat");\n }\n\n return style;\n }\n },\n methods: {\n genProgress: function genProgress() {\n var render = _mixins_loadable__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"].options.methods.genProgress.call(this);\n if (!render) return null;\n return this.$createElement(\'div\', {\n staticClass: \'v-card__progress\',\n key: \'progress\'\n }, [render]);\n }\n },\n render: function render(h) {\n var _this$generateRouteLi = this.generateRouteLink(),\n tag = _this$generateRouteLi.tag,\n data = _this$generateRouteLi.data;\n\n data.style = this.styles;\n\n if (this.isClickable) {\n data.attrs = data.attrs || {};\n data.attrs.tabindex = 0;\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [this.genProgress(), this.$slots.default]);\n }\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvVkNhcmQvVkNhcmQudHM/NDNlZCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Q0FHQTs7Q0FHQTs7QUFDQTtDQUdBOztBQUNBO0FBS0E7O0FBQ2UsOEhBQU0sc0lBQU4sdURBQU0sQ0FBTixRQUlOO0FBQ1AsTUFBSSxFQURHO0FBR1AsT0FBSyxFQUFFO0FBQ0wsUUFBSSxFQURDO0FBRUwsU0FBSyxFQUZBO0FBR0wsT0FBRyxFQUhFO0FBSUwsUUFBSSxFQUpDO0FBS0wsZ0JBQVksRUFBRTtBQUNaLFVBQUksRUFBRSxTQURNLE1BQ04sQ0FETTtBQUVaLGFBQU8sRUFBRTtBQUZHLEtBTFQ7QUFTTCxVQUFNLEVBQUU7QUFUSCxHQUhBO0FBZVAsVUFBUSxFQUFFO0FBQ1IsV0FEUSxxQkFDRDtBQUNMO0FBQ0Usa0JBREs7QUFBUCxTQUVLLGlFQUFRLENBQVIsOEJBRkUsSUFFRixDQUZMO0FBR0Usd0JBQWdCLEtBSFgsSUFBUDtBQUlFLHlCQUFpQixLQUpaLEtBQVA7QUFLRSx3QkFBZ0IsS0FMWCxXQUFQO0FBTUUsMkJBQW1CLEtBTmQsT0FBUDtBQU9FLDRCQUFvQixLQVBmLFFBQVA7QUFRRSwwQkFBa0IsS0FSYjtBQUFQLFNBU0ssdURBQU0sQ0FBTixtQ0FUTDtBQUZNO0FBY1IsVUFkUSxvQkFjRjtBQUNKLFVBQU0sS0FBSyxxQkFDTix1REFBTSxDQUFOLGtDQURNLENBQVg7O0FBSUEsVUFBSSxLQUFKLEtBQWM7QUFDWixhQUFLLENBQUwsNkJBQTJCLEtBQTNCO0FBQ0Q7O0FBRUQ7QUFDRDtBQXhCTyxHQWZIO0FBMENQLFNBQU8sRUFBRTtBQUNQLGVBRE8seUJBQ0k7QUFDVCxVQUFNLE1BQU0sR0FBRyxnRUFBUSxDQUFSLGlDQUFmLElBQWUsQ0FBZjtBQUVBLFVBQUksQ0FBSixRQUFhO0FBRWIsYUFBTywyQkFBMkI7QUFDaEMsbUJBQVcsRUFEcUI7QUFFaEMsV0FBRyxFQUFFO0FBRjJCLE9BQTNCLEVBR0osQ0FISCxNQUdHLENBSEksQ0FBUDtBQUlEO0FBVk0sR0ExQ0Y7QUF1RFAsUUF2RE8sa0JBdURELENBdkRDLEVBdURFO0FBQUEsZ0NBQ2UsS0FBdEIsaUJBQXNCLEVBRGY7QUFBQSxRQUNELEdBREMseUJBQ0QsR0FEQztBQUFBLFFBQ00sSUFETix5QkFDTSxJQUROOztBQUdQLFFBQUksQ0FBSixRQUFhLEtBQWI7O0FBRUEsUUFBSSxLQUFKLGFBQXNCO0FBQ3BCLFVBQUksQ0FBSixRQUFhLElBQUksQ0FBSixTQUFiO0FBQ0EsVUFBSSxDQUFKO0FBQ0Q7O0FBRUQsV0FBTyxDQUFDLE1BQU0sd0JBQXdCLEtBQXhCLE9BQU4sSUFBTSxDQUFOLEVBQWlELENBQ3ZELEtBRHVELFdBQ3ZELEVBRHVELEVBRXZELFlBRkYsT0FBeUQsQ0FBakQsQ0FBUjtBQUlEO0FBckVNLENBSk0sQ0FBZiIsImZpbGUiOiIxNzYuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTdHlsZXNcbmltcG9ydCAnLi9WQ2FyZC5zYXNzJ1xuXG4vLyBFeHRlbnNpb25zXG5pbXBvcnQgVlNoZWV0IGZyb20gJy4uL1ZTaGVldCdcblxuLy8gTWl4aW5zXG5pbXBvcnQgTG9hZGFibGUgZnJvbSAnLi4vLi4vbWl4aW5zL2xvYWRhYmxlJ1xuaW1wb3J0IFJvdXRhYmxlIGZyb20gJy4uLy4uL21peGlucy9yb3V0YWJsZSdcblxuLy8gSGVscGVyc1xuaW1wb3J0IG1peGlucyBmcm9tICcuLi8uLi91dGlsL21peGlucydcblxuLy8gVHlwZXNcbmltcG9ydCB7IFZOb2RlIH0gZnJvbSAndnVlJ1xuXG4vKiBAdnVlL2NvbXBvbmVudCAqL1xuZXhwb3J0IGRlZmF1bHQgbWl4aW5zKFxuICBMb2FkYWJsZSxcbiAgUm91dGFibGUsXG4gIFZTaGVldFxuKS5leHRlbmQoe1xuICBuYW1lOiAndi1jYXJkJyxcblxuICBwcm9wczoge1xuICAgIGZsYXQ6IEJvb2xlYW4sXG4gICAgaG92ZXI6IEJvb2xlYW4sXG4gICAgaW1nOiBTdHJpbmcsXG4gICAgbGluazogQm9vbGVhbixcbiAgICBsb2FkZXJIZWlnaHQ6IHtcbiAgICAgIHR5cGU6IFtOdW1iZXIsIFN0cmluZ10sXG4gICAgICBkZWZhdWx0OiA0LFxuICAgIH0sXG4gICAgcmFpc2VkOiBCb29sZWFuLFxuICB9LFxuXG4gIGNvbXB1dGVkOiB7XG4gICAgY2xhc3NlcyAoKTogb2JqZWN0IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgICd2LWNhcmQnOiB0cnVlLFxuICAgICAgICAuLi5Sb3V0YWJsZS5vcHRpb25zLmNvbXB1dGVkLmNsYXNzZXMuY2FsbCh0aGlzKSxcbiAgICAgICAgJ3YtY2FyZC0tZmxhdCc6IHRoaXMuZmxhdCxcbiAgICAgICAgJ3YtY2FyZC0taG92ZXInOiB0aGlzLmhvdmVyLFxuICAgICAgICAndi1jYXJkLS1saW5rJzogdGhpcy5pc0NsaWNrYWJsZSxcbiAgICAgICAgJ3YtY2FyZC0tbG9hZGluZyc6IHRoaXMubG9hZGluZyxcbiAgICAgICAgJ3YtY2FyZC0tZGlzYWJsZWQnOiB0aGlzLmRpc2FibGVkLFxuICAgICAgICAndi1jYXJkLS1yYWlzZWQnOiB0aGlzLnJhaXNlZCxcbiAgICAgICAgLi4uVlNoZWV0Lm9wdGlvbnMuY29tcHV0ZWQuY2xhc3Nlcy5jYWxsKHRoaXMpLFxuICAgICAgfVxuICAgIH0sXG4gICAgc3R5bGVzICgpOiBvYmplY3Qge1xuICAgICAgY29uc3Qgc3R5bGU6IERpY3Rpb25hcnk8c3RyaW5nPiA9IHtcbiAgICAgICAgLi4uVlNoZWV0Lm9wdGlvbnMuY29tcHV0ZWQuc3R5bGVzLmNhbGwodGhpcyksXG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmltZykge1xuICAgICAgICBzdHlsZS5iYWNrZ3JvdW5kID0gYHVybChcIiR7dGhpcy5pbWd9XCIpIGNlbnRlciBjZW50ZXIgLyBjb3ZlciBuby1yZXBlYXRgXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBzdHlsZVxuICAgIH0sXG4gIH0sXG5cbiAgbWV0aG9kczoge1xuICAgIGdlblByb2dyZXNzICgpIHtcbiAgICAgIGNvbnN0IHJlbmRlciA9IExvYWRhYmxlLm9wdGlvbnMubWV0aG9kcy5nZW5Qcm9ncmVzcy5jYWxsKHRoaXMpXG5cbiAgICAgIGlmICghcmVuZGVyKSByZXR1cm4gbnVsbFxuXG4gICAgICByZXR1cm4gdGhpcy4kY3JlYXRlRWxlbWVudCgnZGl2Jywge1xuICAgICAgICBzdGF0aWNDbGFzczogJ3YtY2FyZF9fcHJvZ3Jlc3MnLFxuICAgICAgICBrZXk6ICdwcm9ncmVzcycsXG4gICAgICB9LCBbcmVuZGVyXSlcbiAgICB9LFxuICB9LFxuXG4gIHJlbmRlciAoaCk6IFZOb2RlIHtcbiAgICBjb25zdCB7IHRhZywgZGF0YSB9ID0gdGhpcy5nZW5lcmF0ZVJvdXRlTGluaygpXG5cbiAgICBkYXRhLnN0eWxlID0gdGhpcy5zdHlsZXNcblxuICAgIGlmICh0aGlzLmlzQ2xpY2thYmxlKSB7XG4gICAgICBkYXRhLmF0dHJzID0gZGF0YS5hdHRycyB8fCB7fVxuICAgICAgZGF0YS5hdHRycy50YWJpbmRleCA9IDBcbiAgICB9XG5cbiAgICByZXR1cm4gaCh0YWcsIHRoaXMuc2V0QmFja2dyb3VuZENvbG9yKHRoaXMuY29sb3IsIGRhdGEpLCBbXG4gICAgICB0aGlzLmdlblByb2dyZXNzKCksXG4gICAgICB0aGlzLiRzbG90cy5kZWZhdWx0LFxuICAgIF0pXG4gIH0sXG59KVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///176\n')},function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var core_js_modules_es7_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);\n/* harmony import */ var core_js_modules_es7_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es7_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es6_symbol__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8);\n/* harmony import */ var core_js_modules_es6_symbol__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_symbol__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6);\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4);\n/* harmony import */ var core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9);\n/* harmony import */ var core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1);\n/* harmony import */ var core_js_modules_es6_number_constructor__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(20);\n/* harmony import */ var core_js_modules_es6_number_constructor__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_number_constructor__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _src_components_VAvatar_VAvatar_sass__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(341);\n/* harmony import */ var _src_components_VAvatar_VAvatar_sass__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_src_components_VAvatar_VAvatar_sass__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _mixins_colorable__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(21);\n/* harmony import */ var _mixins_measurable__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(94);\n/* harmony import */ var _mixins_roundable__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(95);\n/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(0);\n/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(5);\n\n\n\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n // Mixins\n\n\n\n // Utilities\n\n\n\n/* harmony default export */ __webpack_exports__["a"] = (Object(_util_mixins__WEBPACK_IMPORTED_MODULE_12__[/* default */ "a"])(_mixins_colorable__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"], _mixins_measurable__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"], _mixins_roundable__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"]).extend({\n name: \'v-avatar\',\n props: {\n left: Boolean,\n right: Boolean,\n size: {\n type: [Number, String],\n default: 48\n }\n },\n computed: {\n classes: function classes() {\n return _objectSpread({\n \'v-avatar--left\': this.left,\n \'v-avatar--right\': this.right\n }, this.roundedClasses);\n },\n styles: function styles() {\n return _objectSpread({\n height: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_11__[/* convertToUnit */ "g"])(this.size),\n minWidth: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_11__[/* convertToUnit */ "g"])(this.size),\n width: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_11__[/* convertToUnit */ "g"])(this.size)\n }, this.measurableStyles);\n }\n },\n render: function render(h) {\n var data = {\n staticClass: \'v-avatar\',\n class: this.classes,\n style: this.styles,\n on: this.$listeners\n };\n return h(\'div\', this.setBackgroundColor(this.color, data), this.$slots.default);\n }\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvVkF2YXRhci9WQXZhdGFyLnRzPzdmMzYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FFQTs7QUFDQTtBQUNBO0NBR0E7O0FBQ0E7QUFJQTtBQUVlLDhIQUFNLHdJQUFOLGtFQUFNLENBQU4sUUFLTjtBQUNQLE1BQUksRUFERztBQUdQLE9BQUssRUFBRTtBQUNMLFFBQUksRUFEQztBQUVMLFNBQUssRUFGQTtBQUdMLFFBQUksRUFBRTtBQUNKLFVBQUksRUFBRSxTQURGLE1BQ0UsQ0FERjtBQUVKLGFBQU8sRUFBRTtBQUZMO0FBSEQsR0FIQTtBQVlQLFVBQVEsRUFBRTtBQUNSLFdBRFEscUJBQ0Q7QUFDTDtBQUNFLDBCQUFrQixLQURiLElBQVA7QUFFRSwyQkFBbUIsS0FGZDtBQUFQLFNBR0ssS0FBSyxjQUhWO0FBRk07QUFRUixVQVJRLG9CQVFGO0FBQ0o7QUFDRSxjQUFNLEVBQUUsNEVBQWEsQ0FBQyxLQURqQixJQUNnQixDQUR2QjtBQUVFLGdCQUFRLEVBQUUsNEVBQWEsQ0FBQyxLQUZuQixJQUVrQixDQUZ6QjtBQUdFLGFBQUssRUFBRSw0RUFBYSxDQUFDLEtBSGhCLElBR2U7QUFIdEIsU0FJSyxLQUFLLGdCQUpWO0FBTUQ7QUFmTyxHQVpIO0FBOEJQLFFBOUJPLGtCQThCRCxDQTlCQyxFQThCRTtBQUNQLFFBQU0sSUFBSSxHQUFHO0FBQ1gsaUJBQVcsRUFEQTtBQUVYLFdBQUssRUFBRSxLQUZJO0FBR1gsV0FBSyxFQUFFLEtBSEk7QUFJWCxRQUFFLEVBQUUsS0FBSztBQUpFLEtBQWI7QUFPQSxXQUFPLENBQUMsUUFBUSx3QkFBd0IsS0FBeEIsT0FBUixJQUFRLENBQVIsRUFBbUQsWUFBM0QsT0FBUSxDQUFSO0FBQ0Q7QUF2Q00sQ0FMTSxDQUFmIiwiZmlsZSI6IjE3Ny5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnLi9WQXZhdGFyLnNhc3MnXG5cbi8vIE1peGluc1xuaW1wb3J0IENvbG9yYWJsZSBmcm9tICcuLi8uLi9taXhpbnMvY29sb3JhYmxlJ1xuaW1wb3J0IE1lYXN1cmFibGUgZnJvbSAnLi4vLi4vbWl4aW5zL21lYXN1cmFibGUnXG5pbXBvcnQgUm91bmRhYmxlIGZyb20gJy4uLy4uL21peGlucy9yb3VuZGFibGUnXG5cbi8vIFV0aWxpdGllc1xuaW1wb3J0IHsgY29udmVydFRvVW5pdCB9IGZyb20gJy4uLy4uL3V0aWwvaGVscGVycydcblxuLy8gVHlwZXNcbmltcG9ydCB7IFZOb2RlIH0gZnJvbSAndnVlJ1xuaW1wb3J0IG1peGlucyBmcm9tICcuLi8uLi91dGlsL21peGlucydcblxuZXhwb3J0IGRlZmF1bHQgbWl4aW5zKFxuICBDb2xvcmFibGUsXG4gIE1lYXN1cmFibGUsXG4gIFJvdW5kYWJsZSxcbiAgLyogQHZ1ZS9jb21wb25lbnQgKi9cbikuZXh0ZW5kKHtcbiAgbmFtZTogJ3YtYXZhdGFyJyxcblxuICBwcm9wczoge1xuICAgIGxlZnQ6IEJvb2xlYW4sXG4gICAgcmlnaHQ6IEJvb2xlYW4sXG4gICAgc2l6ZToge1xuICAgICAgdHlwZTogW051bWJlciwgU3RyaW5nXSxcbiAgICAgIGRlZmF1bHQ6IDQ4LFxuICAgIH0sXG4gIH0sXG5cbiAgY29tcHV0ZWQ6IHtcbiAgICBjbGFzc2VzICgpOiBvYmplY3Qge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgJ3YtYXZhdGFyLS1sZWZ0JzogdGhpcy5sZWZ0LFxuICAgICAgICAndi1hdmF0YXItLXJpZ2h0JzogdGhpcy5yaWdodCxcbiAgICAgICAgLi4udGhpcy5yb3VuZGVkQ2xhc3NlcyxcbiAgICAgIH1cbiAgICB9LFxuICAgIHN0eWxlcyAoKTogb2JqZWN0IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGhlaWdodDogY29udmVydFRvVW5pdCh0aGlzLnNpemUpLFxuICAgICAgICBtaW5XaWR0aDogY29udmVydFRvVW5pdCh0aGlzLnNpemUpLFxuICAgICAgICB3aWR0aDogY29udmVydFRvVW5pdCh0aGlzLnNpemUpLFxuICAgICAgICAuLi50aGlzLm1lYXN1cmFibGVTdHlsZXMsXG4gICAgICB9XG4gICAgfSxcbiAgfSxcblxuICByZW5kZXIgKGgpOiBWTm9kZSB7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIHN0YXRpY0NsYXNzOiAndi1hdmF0YXInLFxuICAgICAgY2xhc3M6IHRoaXMuY2xhc3NlcyxcbiAgICAgIHN0eWxlOiB0aGlzLnN0eWxlcyxcbiAgICAgIG9uOiB0aGlzLiRsaXN0ZW5lcnMsXG4gICAgfVxuXG4gICAgcmV0dXJuIGgoJ2RpdicsIHRoaXMuc2V0QmFja2dyb3VuZENvbG9yKHRoaXMuY29sb3IsIGRhdGEpLCB0aGlzLiRzbG90cy5kZWZhdWx0KVxuICB9LFxufSlcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///177\n')},function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var core_js_modules_es7_symbol_async_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(49);\n/* harmony import */ var core_js_modules_es7_symbol_async_iterator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es7_symbol_async_iterator__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es6_string_iterator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44);\n/* harmony import */ var core_js_modules_es6_string_iterator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_string_iterator__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es6_array_from__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(43);\n/* harmony import */ var core_js_modules_es6_array_from__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_array_from__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(26);\n/* harmony import */ var core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(22);\n/* harmony import */ var core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es6_date_to_string__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(23);\n/* harmony import */ var core_js_modules_es6_date_to_string__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_date_to_string__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var core_js_modules_es7_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(11);\n/* harmony import */ var core_js_modules_es7_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es7_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var core_js_modules_es6_symbol__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(8);\n/* harmony import */ var core_js_modules_es6_symbol__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_symbol__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(6);\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(4);\n/* harmony import */ var core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(9);\n/* harmony import */ var core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var core_js_modules_es6_array_find_index__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(149);\n/* harmony import */ var core_js_modules_es6_array_find_index__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_array_find_index__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(1);\n/* harmony import */ var _src_components_VList_VList_sass__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(348);\n/* harmony import */ var _src_components_VList_VList_sass__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_src_components_VList_VList_sass__WEBPACK_IMPORTED_MODULE_13__);\n/* harmony import */ var _VSheet_VSheet__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(38);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_12__[/* default */ "a"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n// Styles\n // Components\n\n\n/* @vue/component */\n\n/* harmony default export */ __webpack_exports__["a"] = (_VSheet_VSheet__WEBPACK_IMPORTED_MODULE_14__[/* default */ "a"].extend().extend({\n name: \'v-list\',\n provide: function provide() {\n return {\n isInList: true,\n list: this\n };\n },\n inject: {\n isInMenu: {\n default: false\n },\n isInNav: {\n default: false\n }\n },\n props: {\n dense: Boolean,\n disabled: Boolean,\n expand: Boolean,\n flat: Boolean,\n nav: Boolean,\n rounded: Boolean,\n subheader: Boolean,\n threeLine: Boolean,\n twoLine: Boolean\n },\n data: function data() {\n return {\n groups: []\n };\n },\n computed: {\n classes: function classes() {\n return _objectSpread(_objectSpread({}, _VSheet_VSheet__WEBPACK_IMPORTED_MODULE_14__[/* default */ "a"].options.computed.classes.call(this)), {}, {\n \'v-list--dense\': this.dense,\n \'v-list--disabled\': this.disabled,\n \'v-list--flat\': this.flat,\n \'v-list--nav\': this.nav,\n \'v-list--rounded\': this.rounded,\n \'v-list--subheader\': this.subheader,\n \'v-list--two-line\': this.twoLine,\n \'v-list--three-line\': this.threeLine\n });\n }\n },\n methods: {\n register: function register(content) {\n this.groups.push(content);\n },\n unregister: function unregister(content) {\n var index = this.groups.findIndex(function (g) {\n return g._uid === content._uid;\n });\n if (index > -1) this.groups.splice(index, 1);\n },\n listClick: function listClick(uid) {\n if (this.expand) return;\n\n var _iterator = _createForOfIteratorHelper(this.groups),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var group = _step.value;\n group.toggle(uid);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n },\n render: function render(h) {\n var data = {\n staticClass: \'v-list\',\n class: this.classes,\n style: this.styles,\n attrs: _objectSpread({\n role: this.isInNav || this.isInMenu ? undefined : \'list\'\n }, this.attrs$)\n };\n return h(this.tag, this.setBackgroundColor(this.color, data), [this.$slots.default]);\n }\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvVkxpc3QvVkxpc3QudHM/MzE1YSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Q0FJQTs7QUFDQTtBQVlBOztBQUNlLHdIQUFNLENBQU4sZ0JBQWdDO0FBQzdDLE1BQUksRUFEeUM7QUFHN0MsU0FINkMscUJBR3RDO0FBQ0wsV0FBTztBQUNMLGNBQVEsRUFESDtBQUVMLFVBQUksRUFBRTtBQUZELEtBQVA7QUFKMkM7QUFVN0MsUUFBTSxFQUFFO0FBQ04sWUFBUSxFQUFFO0FBQ1IsYUFBTyxFQUFFO0FBREQsS0FESjtBQUlOLFdBQU8sRUFBRTtBQUNQLGFBQU8sRUFBRTtBQURGO0FBSkgsR0FWcUM7QUFtQjdDLE9BQUssRUFBRTtBQUNMLFNBQUssRUFEQTtBQUVMLFlBQVEsRUFGSDtBQUdMLFVBQU0sRUFIRDtBQUlMLFFBQUksRUFKQztBQUtMLE9BQUcsRUFMRTtBQU1MLFdBQU8sRUFORjtBQU9MLGFBQVMsRUFQSjtBQVFMLGFBQVMsRUFSSjtBQVNMLFdBQU8sRUFBRTtBQVRKLEdBbkJzQztBQStCN0MsTUFBSSxFQUFFO0FBQUEsV0FBTztBQUNYLFlBQU0sRUFBRTtBQURHLEtBQVA7QUFBQSxHQS9CdUM7QUFtQzdDLFVBQVEsRUFBRTtBQUNSLFdBRFEscUJBQ0Q7QUFDTCw2Q0FDSywrREFBTSxDQUFOLDhCQURFLElBQ0YsQ0FETDtBQUVFLHlCQUFpQixLQUZaLEtBQVA7QUFHRSw0QkFBb0IsS0FIZixRQUFQO0FBSUUsd0JBQWdCLEtBSlgsSUFBUDtBQUtFLHVCQUFlLEtBTFYsR0FBUDtBQU1FLDJCQUFtQixLQU5kLE9BQVA7QUFPRSw2QkFBcUIsS0FQaEIsU0FBUDtBQVFFLDRCQUFvQixLQVJmLE9BQVA7QUFTRSw4QkFBc0IsS0FBSztBQVQ3QjtBQVdEO0FBYk8sR0FuQ21DO0FBbUQ3QyxTQUFPLEVBQUU7QUFDUCxZQURPLG9CQUNDLE9BREQsRUFDOEI7QUFDbkM7QUFGSztBQUlQLGNBSk8sc0JBSUcsT0FKSCxFQUlnQztBQUNyQyxVQUFNLEtBQUssR0FBRyxzQkFBc0IsV0FBQztBQUFBLGVBQUksQ0FBQyxDQUFELFNBQVcsT0FBTyxDQUEzRCxJQUFxQztBQUFBLE9BQXZCLENBQWQ7QUFFQSxVQUFJLEtBQUssR0FBRyxDQUFaLEdBQWdCO0FBUFg7QUFTUCxhQVRPLHFCQVNFLEdBVEYsRUFTZTtBQUNwQixVQUFJLEtBQUosUUFBaUI7O0FBREcsaURBR0EsS0FBcEIsTUFIb0I7QUFBQTs7QUFBQTtBQUdwQiw0REFBaUM7QUFBQSxjQUFqQyxLQUFpQztBQUMvQixlQUFLLENBQUw7QUFDRDtBQUxtQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTXJCO0FBZk0sR0FuRG9DO0FBcUU3QyxRQXJFNkMsa0JBcUV2QyxDQXJFdUMsRUFxRXBDO0FBQ1AsUUFBTSxJQUFJLEdBQUc7QUFDWCxpQkFBVyxFQURBO0FBRVgsV0FBSyxFQUFFLEtBRkk7QUFHWCxXQUFLLEVBQUUsS0FISTtBQUlYLFdBQUs7QUFDSCxZQUFJLEVBQUUsZ0JBQWdCLEtBQWhCLHVCQUREO0FBQUYsU0FFQSxLQUFLLE1BRkw7QUFKTSxLQUFiO0FBVUEsV0FBTyxDQUFDLENBQUMsS0FBRCxLQUFXLHdCQUF3QixLQUF4QixPQUFYLElBQVcsQ0FBWCxFQUFzRCxDQUFDLFlBQS9ELE9BQThELENBQXRELENBQVI7QUFDRDtBQWpGNEMsQ0FBaEMsQ0FBZiIsImZpbGUiOiIxNzguanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTdHlsZXNcbmltcG9ydCAnLi9WTGlzdC5zYXNzJ1xuaW1wb3J0IFZMaXN0R3JvdXAgZnJvbSAnLi9WTGlzdEdyb3VwJ1xuXG4vLyBDb21wb25lbnRzXG5pbXBvcnQgVlNoZWV0IGZyb20gJy4uL1ZTaGVldC9WU2hlZXQnXG5cbi8vIFR5cGVzXG5pbXBvcnQgeyBWTm9kZSB9IGZyb20gJ3Z1ZSdcblxudHlwZSBWTGlzdEdyb3VwSW5zdGFuY2UgPSBJbnN0YW5jZVR5cGU8dHlwZW9mIFZMaXN0R3JvdXA+XG5cbmludGVyZmFjZSBvcHRpb25zIGV4dGVuZHMgSW5zdGFuY2VUeXBlPHR5cGVvZiBWU2hlZXQ+IHtcbiAgaXNJbk1lbnU6IGJvb2xlYW5cbiAgaXNJbk5hdjogYm9vbGVhblxufVxuXG4vKiBAdnVlL2NvbXBvbmVudCAqL1xuZXhwb3J0IGRlZmF1bHQgVlNoZWV0LmV4dGVuZDxvcHRpb25zPigpLmV4dGVuZCh7XG4gIG5hbWU6ICd2LWxpc3QnLFxuXG4gIHByb3ZpZGUgKCk6IG9iamVjdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlzSW5MaXN0OiB0cnVlLFxuICAgICAgbGlzdDogdGhpcyxcbiAgICB9XG4gIH0sXG5cbiAgaW5qZWN0OiB7XG4gICAgaXNJbk1lbnU6IHtcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgIH0sXG4gICAgaXNJbk5hdjoge1xuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgfSxcbiAgfSxcblxuICBwcm9wczoge1xuICAgIGRlbnNlOiBCb29sZWFuLFxuICAgIGRpc2FibGVkOiBCb29sZWFuLFxuICAgIGV4cGFuZDogQm9vbGVhbixcbiAgICBmbGF0OiBCb29sZWFuLFxuICAgIG5hdjogQm9vbGVhbixcbiAgICByb3VuZGVkOiBCb29sZWFuLFxuICAgIHN1YmhlYWRlcjogQm9vbGVhbixcbiAgICB0aHJlZUxpbmU6IEJvb2xlYW4sXG4gICAgdHdvTGluZTogQm9vbGVhbixcbiAgfSxcblxuICBkYXRhOiAoKSA9PiAoe1xuICAgIGdyb3VwczogW10gYXMgVkxpc3RHcm91cEluc3RhbmNlW10sXG4gIH0pLFxuXG4gIGNvbXB1dGVkOiB7XG4gICAgY2xhc3NlcyAoKTogb2JqZWN0IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLlZTaGVldC5vcHRpb25zLmNvbXB1dGVkLmNsYXNzZXMuY2FsbCh0aGlzKSxcbiAgICAgICAgJ3YtbGlzdC0tZGVuc2UnOiB0aGlzLmRlbnNlLFxuICAgICAgICAndi1saXN0LS1kaXNhYmxlZCc6IHRoaXMuZGlzYWJsZWQsXG4gICAgICAgICd2LWxpc3QtLWZsYXQnOiB0aGlzLmZsYXQsXG4gICAgICAgICd2LWxpc3QtLW5hdic6IHRoaXMubmF2LFxuICAgICAgICAndi1saXN0LS1yb3VuZGVkJzogdGhpcy5yb3VuZGVkLFxuICAgICAgICAndi1saXN0LS1zdWJoZWFkZXInOiB0aGlzLnN1YmhlYWRlcixcbiAgICAgICAgJ3YtbGlzdC0tdHdvLWxpbmUnOiB0aGlzLnR3b0xpbmUsXG4gICAgICAgICd2LWxpc3QtLXRocmVlLWxpbmUnOiB0aGlzLnRocmVlTGluZSxcbiAgICAgIH1cbiAgICB9LFxuICB9LFxuXG4gIG1ldGhvZHM6IHtcbiAgICByZWdpc3RlciAoY29udGVudDogVkxpc3RHcm91cEluc3RhbmNlKSB7XG4gICAgICB0aGlzLmdyb3Vwcy5wdXNoKGNvbnRlbnQpXG4gICAgfSxcbiAgICB1bnJlZ2lzdGVyIChjb250ZW50OiBWTGlzdEdyb3VwSW5zdGFuY2UpIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5ncm91cHMuZmluZEluZGV4KGcgPT4gZy5fdWlkID09PSBjb250ZW50Ll91aWQpXG5cbiAgICAgIGlmIChpbmRleCA+IC0xKSB0aGlzLmdyb3Vwcy5zcGxpY2UoaW5kZXgsIDEpXG4gICAgfSxcbiAgICBsaXN0Q2xpY2sgKHVpZDogbnVtYmVyKSB7XG4gICAgICBpZiAodGhpcy5leHBhbmQpIHJldHVyblxuXG4gICAgICBmb3IgKGNvbnN0IGdyb3VwIG9mIHRoaXMuZ3JvdXBzKSB7XG4gICAgICAgIGdyb3VwLnRvZ2dsZSh1aWQpXG4gICAgICB9XG4gICAgfSxcbiAgfSxcblxuICByZW5kZXIgKGgpOiBWTm9kZSB7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIHN0YXRpY0NsYXNzOiAndi1saXN0JyxcbiAgICAgIGNsYXNzOiB0aGlzLmNsYXNzZXMsXG4gICAgICBzdHlsZTogdGhpcy5zdHlsZXMsXG4gICAgICBhdHRyczoge1xuICAgICAgICByb2xlOiB0aGlzLmlzSW5OYXYgfHwgdGhpcy5pc0luTWVudSA/IHVuZGVmaW5lZCA6ICdsaXN0JyxcbiAgICAgICAgLi4udGhpcy5hdHRycyQsXG4gICAgICB9LFxuICAgIH1cblxuICAgIHJldHVybiBoKHRoaXMudGFnLCB0aGlzLnNldEJhY2tncm91bmRDb2xvcih0aGlzLmNvbG9yLCBkYXRhKSwgW3RoaXMuJHNsb3RzLmRlZmF1bHRdKVxuICB9LFxufSlcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///178\n')},function(module,__webpack_exports__,__webpack_require__){"use strict";eval("/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n// Types\n\n/* @vue/component */\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (vue__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"].extend({\n name: 'v-list-item-action',\n functional: true,\n render: function render(h, _ref) {\n var data = _ref.data,\n _ref$children = _ref.children,\n children = _ref$children === void 0 ? [] : _ref$children;\n data.staticClass = data.staticClass ? \"v-list-item__action \".concat(data.staticClass) : 'v-list-item__action';\n var filteredChild = children.filter(function (VNode) {\n return VNode.isComment === false && VNode.text !== ' ';\n });\n if (filteredChild.length > 1) data.staticClass += ' v-list-item__action--stack';\n return h('div', data, children);\n }\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvVkxpc3QvVkxpc3RJdGVtQWN0aW9uLnRzPzhkMjQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUNBO0FBRUE7O0FBQ2UsNEdBQUcsQ0FBSCxPQUFXO0FBQ3hCLE1BQUksRUFEb0I7QUFHeEIsWUFBVSxFQUhjO0FBS3hCLFFBTHdCLGtCQUtsQixDQUxrQixRQUtVO0FBQUEsUUFBdkIsSUFBdUIsUUFBdkIsSUFBdUI7QUFBQSw2QkFBZixRQUFlO0FBQUEsUUFBZixRQUFlLDhCQUFKLEVBQUk7QUFDaEMsUUFBSSxDQUFKLGNBQW1CLElBQUksQ0FBSiw0Q0FBMEMsSUFBSSxDQUE5QyxlQUFuQjtBQUNBLFFBQU0sYUFBYSxHQUFHLFFBQVEsQ0FBUixPQUFnQixlQUFLLEVBQUc7QUFDNUMsYUFBTyxLQUFLLENBQUwsdUJBQTZCLEtBQUssQ0FBTCxTQUFwQztBQURGLEtBQXNCLENBQXRCO0FBR0EsUUFBSSxhQUFhLENBQWIsU0FBSixHQUE4QixJQUFJLENBQUo7QUFFOUIsV0FBTyxDQUFDLGNBQVIsUUFBUSxDQUFSO0FBQ0Q7QUFidUIsQ0FBWCxDQUFmIiwiZmlsZSI6IjE3OS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFR5cGVzXG5pbXBvcnQgVnVlLCB7IFZOb2RlIH0gZnJvbSAndnVlJ1xuXG4vKiBAdnVlL2NvbXBvbmVudCAqL1xuZXhwb3J0IGRlZmF1bHQgVnVlLmV4dGVuZCh7XG4gIG5hbWU6ICd2LWxpc3QtaXRlbS1hY3Rpb24nLFxuXG4gIGZ1bmN0aW9uYWw6IHRydWUsXG5cbiAgcmVuZGVyIChoLCB7IGRhdGEsIGNoaWxkcmVuID0gW10gfSk6IFZOb2RlIHtcbiAgICBkYXRhLnN0YXRpY0NsYXNzID0gZGF0YS5zdGF0aWNDbGFzcyA/IGB2LWxpc3QtaXRlbV9fYWN0aW9uICR7ZGF0YS5zdGF0aWNDbGFzc31gIDogJ3YtbGlzdC1pdGVtX19hY3Rpb24nXG4gICAgY29uc3QgZmlsdGVyZWRDaGlsZCA9IGNoaWxkcmVuLmZpbHRlcihWTm9kZSA9PiB7XG4gICAgICByZXR1cm4gVk5vZGUuaXNDb21tZW50ID09PSBmYWxzZSAmJiBWTm9kZS50ZXh0ICE9PSAnICdcbiAgICB9KVxuICAgIGlmIChmaWx0ZXJlZENoaWxkLmxlbmd0aCA+IDEpIGRhdGEuc3RhdGljQ2xhc3MgKz0gJyB2LWxpc3QtaXRlbV9fYWN0aW9uLS1zdGFjaydcblxuICAgIHJldHVybiBoKCdkaXYnLCBkYXRhLCBjaGlsZHJlbilcbiAgfSxcbn0pXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///179\n")},,,,function(module,exports,__webpack_require__){eval("var Clipboard = __webpack_require__(282) // FIXME: workaround for browserify\n\nvar VueClipboardConfig = {\n autoSetContainer: false,\n appendToBody: true // This fixes IE, see #50\n}\n\nvar VueClipboard = {\n install: function (Vue) {\n Vue.prototype.$clipboardConfig = VueClipboardConfig\n Vue.prototype.$copyText = function (text, container) {\n return new Promise(function (resolve, reject) {\n var fakeElement = document.createElement('button')\n var clipboard = new Clipboard(fakeElement, {\n text: function () { return text },\n action: function () { return 'copy' },\n container: typeof container === 'object' ? container : document.body\n })\n clipboard.on('success', function (e) {\n clipboard.destroy()\n resolve(e)\n })\n clipboard.on('error', function (e) {\n clipboard.destroy()\n reject(e)\n })\n if (VueClipboardConfig.appendToBody) document.body.appendChild(fakeElement)\n fakeElement.click()\n if (VueClipboardConfig.appendToBody) document.body.removeChild(fakeElement)\n })\n }\n\n Vue.directive('clipboard', {\n bind: function (el, binding, vnode) {\n if (binding.arg === 'success') {\n el._vClipboard_success = binding.value\n } else if (binding.arg === 'error') {\n el._vClipboard_error = binding.value\n } else {\n var clipboard = new Clipboard(el, {\n text: function () { return binding.value },\n action: function () { return binding.arg === 'cut' ? 'cut' : 'copy' },\n container: VueClipboardConfig.autoSetContainer ? el : undefined\n })\n clipboard.on('success', function (e) {\n var callback = el._vClipboard_success\n callback && callback(e)\n })\n clipboard.on('error', function (e) {\n var callback = el._vClipboard_error\n callback && callback(e)\n })\n el._vClipboard = clipboard\n }\n },\n update: function (el, binding) {\n if (binding.arg === 'success') {\n el._vClipboard_success = binding.value\n } else if (binding.arg === 'error') {\n el._vClipboard_error = binding.value\n } else {\n el._vClipboard.text = function () { return binding.value }\n el._vClipboard.action = function () { return binding.arg === 'cut' ? 'cut' : 'copy' }\n }\n },\n unbind: function (el, binding) {\n if (binding.arg === 'success') {\n delete el._vClipboard_success\n } else if (binding.arg === 'error') {\n delete el._vClipboard_error\n } else {\n el._vClipboard.destroy()\n delete el._vClipboard\n }\n }\n })\n },\n config: VueClipboardConfig\n}\n\nif (true) {\n module.exports = VueClipboard\n} else {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdnVlLWNsaXBib2FyZDIvdnVlLWNsaXBib2FyZC5qcz80ZWI1Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdCQUFnQixtQkFBTyxDQUFDLEdBQWlDOztBQUV6RDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QixjQUFjO0FBQzNDLCtCQUErQixnQkFBZ0I7QUFDL0M7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxTQUFTO0FBQ1Q7QUFDQSwrQkFBK0IsdUJBQXVCO0FBQ3RELGlDQUFpQyxnREFBZ0Q7QUFDakY7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBLFNBQVM7QUFDVCw2Q0FBNkM7QUFDN0MsK0NBQStDO0FBQy9DO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHO0FBQ0g7QUFDQTs7QUFFQSxJQUFJLElBQTJCO0FBQy9CO0FBQ0EsQ0FBQyxNQUFNLEVBSU4iLCJmaWxlIjoiMTgzLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIENsaXBib2FyZCA9IHJlcXVpcmUoJ2NsaXBib2FyZC9kaXN0L2NsaXBib2FyZC5taW4uanMnKSAvLyBGSVhNRTogd29ya2Fyb3VuZCBmb3IgYnJvd3NlcmlmeVxuXG52YXIgVnVlQ2xpcGJvYXJkQ29uZmlnID0ge1xuICBhdXRvU2V0Q29udGFpbmVyOiBmYWxzZSxcbiAgYXBwZW5kVG9Cb2R5OiB0cnVlIC8vIFRoaXMgZml4ZXMgSUUsIHNlZSAjNTBcbn1cblxudmFyIFZ1ZUNsaXBib2FyZCA9IHtcbiAgaW5zdGFsbDogZnVuY3Rpb24gKFZ1ZSkge1xuICAgIFZ1ZS5wcm90b3R5cGUuJGNsaXBib2FyZENvbmZpZyA9IFZ1ZUNsaXBib2FyZENvbmZpZ1xuICAgIFZ1ZS5wcm90b3R5cGUuJGNvcHlUZXh0ID0gZnVuY3Rpb24gKHRleHQsIGNvbnRhaW5lcikge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgdmFyIGZha2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJylcbiAgICAgICAgdmFyIGNsaXBib2FyZCA9IG5ldyBDbGlwYm9hcmQoZmFrZUVsZW1lbnQsIHtcbiAgICAgICAgICB0ZXh0OiBmdW5jdGlvbiAoKSB7IHJldHVybiB0ZXh0IH0sXG4gICAgICAgICAgYWN0aW9uOiBmdW5jdGlvbiAoKSB7IHJldHVybiAnY29weScgfSxcbiAgICAgICAgICBjb250YWluZXI6IHR5cGVvZiBjb250YWluZXIgPT09ICdvYmplY3QnID8gY29udGFpbmVyIDogZG9jdW1lbnQuYm9keVxuICAgICAgICB9KVxuICAgICAgICBjbGlwYm9hcmQub24oJ3N1Y2Nlc3MnLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgIGNsaXBib2FyZC5kZXN0cm95KClcbiAgICAgICAgICByZXNvbHZlKGUpXG4gICAgICAgIH0pXG4gICAgICAgIGNsaXBib2FyZC5vbignZXJyb3InLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgIGNsaXBib2FyZC5kZXN0cm95KClcbiAgICAgICAgICByZWplY3QoZSlcbiAgICAgICAgfSlcbiAgICAgICAgaWYgKFZ1ZUNsaXBib2FyZENvbmZpZy5hcHBlbmRUb0JvZHkpIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZmFrZUVsZW1lbnQpXG4gICAgICAgIGZha2VFbGVtZW50LmNsaWNrKClcbiAgICAgICAgaWYgKFZ1ZUNsaXBib2FyZENvbmZpZy5hcHBlbmRUb0JvZHkpIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZmFrZUVsZW1lbnQpXG4gICAgICB9KVxuICAgIH1cblxuICAgIFZ1ZS5kaXJlY3RpdmUoJ2NsaXBib2FyZCcsIHtcbiAgICAgIGJpbmQ6IGZ1bmN0aW9uIChlbCwgYmluZGluZywgdm5vZGUpIHtcbiAgICAgICAgaWYgKGJpbmRpbmcuYXJnID09PSAnc3VjY2VzcycpIHtcbiAgICAgICAgICBlbC5fdkNsaXBib2FyZF9zdWNjZXNzID0gYmluZGluZy52YWx1ZVxuICAgICAgICB9IGVsc2UgaWYgKGJpbmRpbmcuYXJnID09PSAnZXJyb3InKSB7XG4gICAgICAgICAgZWwuX3ZDbGlwYm9hcmRfZXJyb3IgPSBiaW5kaW5nLnZhbHVlXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFyIGNsaXBib2FyZCA9IG5ldyBDbGlwYm9hcmQoZWwsIHtcbiAgICAgICAgICAgIHRleHQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGJpbmRpbmcudmFsdWUgfSxcbiAgICAgICAgICAgIGFjdGlvbjogZnVuY3Rpb24gKCkgeyByZXR1cm4gYmluZGluZy5hcmcgPT09ICdjdXQnID8gJ2N1dCcgOiAnY29weScgfSxcbiAgICAgICAgICAgIGNvbnRhaW5lcjogVnVlQ2xpcGJvYXJkQ29uZmlnLmF1dG9TZXRDb250YWluZXIgPyBlbCA6IHVuZGVmaW5lZFxuICAgICAgICAgIH0pXG4gICAgICAgICAgY2xpcGJvYXJkLm9uKCdzdWNjZXNzJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIHZhciBjYWxsYmFjayA9IGVsLl92Q2xpcGJvYXJkX3N1Y2Nlc3NcbiAgICAgICAgICAgIGNhbGxiYWNrICYmIGNhbGxiYWNrKGUpXG4gICAgICAgICAgfSlcbiAgICAgICAgICBjbGlwYm9hcmQub24oJ2Vycm9yJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIHZhciBjYWxsYmFjayA9IGVsLl92Q2xpcGJvYXJkX2Vycm9yXG4gICAgICAgICAgICBjYWxsYmFjayAmJiBjYWxsYmFjayhlKVxuICAgICAgICAgIH0pXG4gICAgICAgICAgZWwuX3ZDbGlwYm9hcmQgPSBjbGlwYm9hcmRcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHVwZGF0ZTogZnVuY3Rpb24gKGVsLCBiaW5kaW5nKSB7XG4gICAgICAgIGlmIChiaW5kaW5nLmFyZyA9PT0gJ3N1Y2Nlc3MnKSB7XG4gICAgICAgICAgZWwuX3ZDbGlwYm9hcmRfc3VjY2VzcyA9IGJpbmRpbmcudmFsdWVcbiAgICAgICAgfSBlbHNlIGlmIChiaW5kaW5nLmFyZyA9PT0gJ2Vycm9yJykge1xuICAgICAgICAgIGVsLl92Q2xpcGJvYXJkX2Vycm9yID0gYmluZGluZy52YWx1ZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGVsLl92Q2xpcGJvYXJkLnRleHQgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBiaW5kaW5nLnZhbHVlIH1cbiAgICAgICAgICBlbC5fdkNsaXBib2FyZC5hY3Rpb24gPSBmdW5jdGlvbiAoKSB7IHJldHVybiBiaW5kaW5nLmFyZyA9PT0gJ2N1dCcgPyAnY3V0JyA6ICdjb3B5JyB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB1bmJpbmQ6IGZ1bmN0aW9uIChlbCwgYmluZGluZykge1xuICAgICAgICBpZiAoYmluZGluZy5hcmcgPT09ICdzdWNjZXNzJykge1xuICAgICAgICAgIGRlbGV0ZSBlbC5fdkNsaXBib2FyZF9zdWNjZXNzXG4gICAgICAgIH0gZWxzZSBpZiAoYmluZGluZy5hcmcgPT09ICdlcnJvcicpIHtcbiAgICAgICAgICBkZWxldGUgZWwuX3ZDbGlwYm9hcmRfZXJyb3JcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBlbC5fdkNsaXBib2FyZC5kZXN0cm95KClcbiAgICAgICAgICBkZWxldGUgZWwuX3ZDbGlwYm9hcmRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gIH0sXG4gIGNvbmZpZzogVnVlQ2xpcGJvYXJkQ29uZmlnXG59XG5cbmlmICh0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSBWdWVDbGlwYm9hcmRcbn0gZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7XG4gIGRlZmluZShbXSwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBWdWVDbGlwYm9hcmRcbiAgfSlcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///183\n")},function(module,exports,__webpack_require__){"use strict";eval("/*!\n * vue-client-only v2.0.0\n * (c) 2019-present egoist <0x142857@gmail.com>\n * Released under the MIT License.\n */\n\n\nvar index = {\n name: 'ClientOnly',\n functional: true,\n props: {\n placeholder: String,\n placeholderTag: {\n type: String,\n default: 'div'\n }\n },\n render: function render(h, ref) {\n var parent = ref.parent;\n var slots = ref.slots;\n var props = ref.props;\n\n var ref$1 = slots();\n var defaultSlot = ref$1.default; if ( defaultSlot === void 0 ) defaultSlot = [];\n var placeholderSlot = ref$1.placeholder;\n\n if (parent._isMounted) {\n return defaultSlot\n }\n\n parent.$once('hook:mounted', function () {\n parent.$forceUpdate();\n });\n\n if (props.placeholderTag && (props.placeholder || placeholderSlot)) {\n return h(\n props.placeholderTag,\n {\n class: ['client-only-placeholder']\n },\n props.placeholder || placeholderSlot\n )\n }\n\n // Return a placeholder element for each child in the default slot\n // Or if no children return a single placeholder\n return defaultSlot.length > 0 ? defaultSlot.map(function () { return h(false); }) : h(false)\n }\n};\n\nmodule.exports = index;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdnVlLWNsaWVudC1vbmx5L2Rpc3QvdnVlLWNsaWVudC1vbmx5LmNvbW1vbi5qcz84ZTI2Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDYTs7QUFFYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxvQ0FBb0M7QUFDcEM7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxpRUFBaUUsaUJBQWlCLEVBQUU7QUFDcEY7QUFDQTs7QUFFQSIsImZpbGUiOiIxODQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIHZ1ZS1jbGllbnQtb25seSB2Mi4wLjBcbiAqIChjKSAyMDE5LXByZXNlbnQgZWdvaXN0IDwweDE0Mjg1N0BnbWFpbC5jb20+XG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuXG4gKi9cbid1c2Ugc3RyaWN0JztcblxudmFyIGluZGV4ID0ge1xuICBuYW1lOiAnQ2xpZW50T25seScsXG4gIGZ1bmN0aW9uYWw6IHRydWUsXG4gIHByb3BzOiB7XG4gICAgcGxhY2Vob2xkZXI6IFN0cmluZyxcbiAgICBwbGFjZWhvbGRlclRhZzoge1xuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgZGVmYXVsdDogJ2RpdidcbiAgICB9XG4gIH0sXG4gIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyKGgsIHJlZikge1xuICAgIHZhciBwYXJlbnQgPSByZWYucGFyZW50O1xuICAgIHZhciBzbG90cyA9IHJlZi5zbG90cztcbiAgICB2YXIgcHJvcHMgPSByZWYucHJvcHM7XG5cbiAgICB2YXIgcmVmJDEgPSBzbG90cygpO1xuICAgIHZhciBkZWZhdWx0U2xvdCA9IHJlZiQxLmRlZmF1bHQ7IGlmICggZGVmYXVsdFNsb3QgPT09IHZvaWQgMCApIGRlZmF1bHRTbG90ID0gW107XG4gICAgdmFyIHBsYWNlaG9sZGVyU2xvdCA9IHJlZiQxLnBsYWNlaG9sZGVyO1xuXG4gICAgaWYgKHBhcmVudC5faXNNb3VudGVkKSB7XG4gICAgICByZXR1cm4gZGVmYXVsdFNsb3RcbiAgICB9XG5cbiAgICBwYXJlbnQuJG9uY2UoJ2hvb2s6bW91bnRlZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHBhcmVudC4kZm9yY2VVcGRhdGUoKTtcbiAgICB9KTtcblxuICAgIGlmIChwcm9wcy5wbGFjZWhvbGRlclRhZyAmJiAocHJvcHMucGxhY2Vob2xkZXIgfHwgcGxhY2Vob2xkZXJTbG90KSkge1xuICAgICAgcmV0dXJuIGgoXG4gICAgICAgIHByb3BzLnBsYWNlaG9sZGVyVGFnLFxuICAgICAgICB7XG4gICAgICAgICAgY2xhc3M6IFsnY2xpZW50LW9ubHktcGxhY2Vob2xkZXInXVxuICAgICAgICB9LFxuICAgICAgICBwcm9wcy5wbGFjZWhvbGRlciB8fCBwbGFjZWhvbGRlclNsb3RcbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBSZXR1cm4gYSBwbGFjZWhvbGRlciBlbGVtZW50IGZvciBlYWNoIGNoaWxkIGluIHRoZSBkZWZhdWx0IHNsb3RcbiAgICAvLyBPciBpZiBubyBjaGlsZHJlbiByZXR1cm4gYSBzaW5nbGUgcGxhY2Vob2xkZXJcbiAgICByZXR1cm4gZGVmYXVsdFNsb3QubGVuZ3RoID4gMCA/IGRlZmF1bHRTbG90Lm1hcChmdW5jdGlvbiAoKSB7IHJldHVybiBoKGZhbHNlKTsgfSkgOiBoKGZhbHNlKVxuICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGluZGV4O1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///184\n")},function(module,__webpack_exports__,__webpack_require__){"use strict";eval("/* harmony import */ var core_js_modules_es7_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);\n/* harmony import */ var core_js_modules_es7_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es7_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es6_symbol__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8);\n/* harmony import */ var core_js_modules_es6_symbol__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_symbol__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6);\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4);\n/* harmony import */ var core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_object_to_string__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9);\n/* harmony import */ var core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es6_array_find_index__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(149);\n/* harmony import */ var core_js_modules_es6_array_find_index__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_array_find_index__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var core_js_modules_es6_array_find__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(62);\n/* harmony import */ var core_js_modules_es6_array_find__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_array_find__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(1);\n/* harmony import */ var _src_components_VWindow_VWindow_sass__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(364);\n/* harmony import */ var _src_components_VWindow_VWindow_sass__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_src_components_VWindow_VWindow_sass__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _directives_touch__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(142);\n/* harmony import */ var _VBtn__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(86);\n/* harmony import */ var _VIcon__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(64);\n/* harmony import */ var _VItemGroup_VItemGroup__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(61);\n\n\n\n\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_7__[/* default */ \"a\"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n// Styles\n // Directives\n\n // Components\n\n\n\n\n/* @vue/component */\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (_VItemGroup_VItemGroup__WEBPACK_IMPORTED_MODULE_12__[/* BaseItemGroup */ \"a\"].extend({\n name: 'v-window',\n provide: function provide() {\n return {\n windowGroup: this\n };\n },\n directives: {\n Touch: _directives_touch__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"a\"]\n },\n props: {\n activeClass: {\n type: String,\n default: 'v-window-item--active'\n },\n continuous: Boolean,\n mandatory: {\n type: Boolean,\n default: true\n },\n nextIcon: {\n type: [Boolean, String],\n default: '$next'\n },\n prevIcon: {\n type: [Boolean, String],\n default: '$prev'\n },\n reverse: {\n type: Boolean,\n default: undefined\n },\n showArrows: Boolean,\n showArrowsOnHover: Boolean,\n touch: Object,\n touchless: Boolean,\n value: {\n required: false\n },\n vertical: Boolean\n },\n data: function data() {\n return {\n changedByDelimiters: false,\n internalHeight: undefined,\n transitionHeight: undefined,\n transitionCount: 0,\n isBooted: false,\n isReverse: false\n };\n },\n computed: {\n isActive: function isActive() {\n return this.transitionCount > 0;\n },\n classes: function classes() {\n return _objectSpread(_objectSpread({}, _VItemGroup_VItemGroup__WEBPACK_IMPORTED_MODULE_12__[/* BaseItemGroup */ \"a\"].options.computed.classes.call(this)), {}, {\n 'v-window--show-arrows-on-hover': this.showArrowsOnHover\n });\n },\n computedTransition: function computedTransition() {\n if (!this.isBooted) return '';\n var axis = this.vertical ? 'y' : 'x';\n var reverse = this.$vuetify.rtl && axis === 'x' ? !this.internalReverse : this.internalReverse;\n var direction = reverse ? '-reverse' : '';\n return \"v-window-\".concat(axis).concat(direction, \"-transition\");\n },\n hasActiveItems: function hasActiveItems() {\n return Boolean(this.items.find(function (item) {\n return !item.disabled;\n }));\n },\n hasNext: function hasNext() {\n return this.continuous || this.internalIndex < this.items.length - 1;\n },\n hasPrev: function hasPrev() {\n return this.continuous || this.internalIndex > 0;\n },\n internalIndex: function internalIndex() {\n var _this = this;\n\n return this.items.findIndex(function (item, i) {\n return _this.internalValue === _this.getValue(item, i);\n });\n },\n internalReverse: function internalReverse() {\n return this.reverse ? !this.isReverse : this.isReverse;\n }\n },\n watch: {\n internalIndex: 'updateReverse'\n },\n mounted: function mounted() {\n var _this2 = this;\n\n window.requestAnimationFrame(function () {\n return _this2.isBooted = true;\n });\n },\n methods: {\n genContainer: function genContainer() {\n var children = [this.$slots.default];\n\n if (this.showArrows) {\n children.push(this.genControlIcons());\n }\n\n return this.$createElement('div', {\n staticClass: 'v-window__container',\n class: {\n 'v-window__container--is-active': this.isActive\n },\n style: {\n height: this.internalHeight || this.transitionHeight\n }\n }, children);\n },\n genIcon: function genIcon(direction, icon, fn) {\n var _this3 = this;\n\n return this.$createElement('div', {\n staticClass: \"v-window__\".concat(direction)\n }, [this.$createElement(_VBtn__WEBPACK_IMPORTED_MODULE_10__[/* default */ \"a\"], {\n props: {\n icon: true\n },\n attrs: {\n 'aria-label': this.$vuetify.lang.t(\"$vuetify.carousel.\".concat(direction))\n },\n on: {\n click: function click() {\n _this3.changedByDelimiters = true;\n fn();\n }\n }\n }, [this.$createElement(_VIcon__WEBPACK_IMPORTED_MODULE_11__[/* default */ \"a\"], {\n props: {\n large: true\n }\n }, icon)])]);\n },\n genControlIcons: function genControlIcons() {\n var icons = [];\n var prevIcon = this.$vuetify.rtl ? this.nextIcon : this.prevIcon;\n /* istanbul ignore else */\n\n if (this.hasPrev && prevIcon && typeof prevIcon === 'string') {\n var icon = this.genIcon('prev', prevIcon, this.prev);\n icon && icons.push(icon);\n }\n\n var nextIcon = this.$vuetify.rtl ? this.prevIcon : this.nextIcon;\n /* istanbul ignore else */\n\n if (this.hasNext && nextIcon && typeof nextIcon === 'string') {\n var _icon = this.genIcon('next', nextIcon, this.next);\n\n _icon && icons.push(_icon);\n }\n\n return icons;\n },\n getNextIndex: function getNextIndex(index) {\n var nextIndex = (index + 1) % this.items.length;\n var item = this.items[nextIndex];\n if (item.disabled) return this.getNextIndex(nextIndex);\n return nextIndex;\n },\n getPrevIndex: function getPrevIndex(index) {\n var prevIndex = (index + this.items.length - 1) % this.items.length;\n var item = this.items[prevIndex];\n if (item.disabled) return this.getPrevIndex(prevIndex);\n return prevIndex;\n },\n next: function next() {\n this.isReverse = this.$vuetify.rtl;\n /* istanbul ignore if */\n\n if (!this.hasActiveItems || !this.hasNext) return;\n var nextIndex = this.getNextIndex(this.internalIndex);\n var item = this.items[nextIndex];\n this.internalValue = this.getValue(item, nextIndex);\n },\n prev: function prev() {\n this.isReverse = !this.$vuetify.rtl;\n /* istanbul ignore if */\n\n if (!this.hasActiveItems || !this.hasPrev) return;\n var lastIndex = this.getPrevIndex(this.internalIndex);\n var item = this.items[lastIndex];\n this.internalValue = this.getValue(item, lastIndex);\n },\n updateReverse: function updateReverse(val, oldVal) {\n if (this.changedByDelimiters) {\n this.changedByDelimiters = false;\n return;\n }\n\n this.isReverse = val < oldVal;\n }\n },\n render: function render(h) {\n var _this4 = this;\n\n var data = {\n staticClass: 'v-window',\n class: this.classes,\n directives: []\n };\n\n if (!this.touchless) {\n var value = this.touch || {\n left: function left() {\n _this4.$vuetify.rtl ? _this4.prev() : _this4.next();\n },\n right: function right() {\n _this4.$vuetify.rtl ? _this4.next() : _this4.prev();\n },\n end: function end(e) {\n e.stopPropagation();\n },\n start: function start(e) {\n e.stopPropagation();\n }\n };\n data.directives.push({\n name: 'touch',\n value: value\n });\n }\n\n return h('div', data, [this.genContainer()]);\n }\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvVldpbmRvdy9WV2luZG93LnRzP2Y4YzAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0NBUUE7O0NBR0E7O0FBQ0E7QUFDQTtBQUNBO0FBRUE7O0FBQ2Usc0lBQWEsQ0FBYixPQUFxQjtBQUNsQyxNQUFJLEVBRDhCO0FBR2xDLFNBSGtDLHFCQUczQjtBQUNMLFdBQU87QUFDTCxpQkFBVyxFQUFFO0FBRFIsS0FBUDtBQUpnQztBQVNsQyxZQUFVLEVBQUU7QUFBRSw0RUFBSztBQUFQLEdBVHNCO0FBV2xDLE9BQUssRUFBRTtBQUNMLGVBQVcsRUFBRTtBQUNYLFVBQUksRUFETztBQUVYLGFBQU8sRUFBRTtBQUZFLEtBRFI7QUFLTCxjQUFVLEVBTEw7QUFNTCxhQUFTLEVBQUU7QUFDVCxVQUFJLEVBREs7QUFFVCxhQUFPLEVBQUU7QUFGQSxLQU5OO0FBVUwsWUFBUSxFQUFFO0FBQ1IsVUFBSSxFQUFFLFVBREUsTUFDRixDQURFO0FBRVIsYUFBTyxFQUFFO0FBRkQsS0FWTDtBQWNMLFlBQVEsRUFBRTtBQUNSLFVBQUksRUFBRSxVQURFLE1BQ0YsQ0FERTtBQUVSLGFBQU8sRUFBRTtBQUZELEtBZEw7QUFrQkwsV0FBTyxFQUFFO0FBQ1AsVUFBSSxFQURHO0FBRVAsYUFBTyxFQUFFO0FBRkYsS0FsQko7QUFzQkwsY0FBVSxFQXRCTDtBQXVCTCxxQkFBaUIsRUF2Qlo7QUF3QkwsU0FBSyxFQXhCQTtBQXlCTCxhQUFTLEVBekJKO0FBMEJMLFNBQUssRUFBRTtBQUNMLGNBQVEsRUFBRTtBQURMLEtBMUJGO0FBNkJMLFlBQVEsRUFBRTtBQTdCTCxHQVgyQjtBQTJDbEMsTUEzQ2tDLGtCQTJDOUI7QUFDRixXQUFPO0FBQ0wseUJBQW1CLEVBRGQ7QUFFTCxvQkFBYyxFQUZUO0FBR0wsc0JBQWdCLEVBSFg7QUFJTCxxQkFBZSxFQUpWO0FBS0ws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RyxXQUFiLFNBQWEsQ0FBYjtBQUVBLDJCQUFxQixvQkFBckIsU0FBcUIsQ0FBckI7QUFqSEs7QUFtSFAsaUJBbkhPLHlCQW1ITSxHQW5ITixFQW1ITSxNQW5ITixFQW1IbUM7QUFDeEMsVUFBSSxLQUFKLHFCQUE4QjtBQUM1QjtBQUNBO0FBQ0Q7O0FBRUQsdUJBQWlCLEdBQUcsR0FBcEI7QUFDRDtBQTFITSxHQXRHeUI7QUFtT2xDLFFBbk9rQyxrQkFtTzVCLENBbk80QixFQW1PekI7QUFBQTs7QUFDUCxRQUFNLElBQUksR0FBRztBQUNYLGlCQUFXLEVBREE7QUFFWCxXQUFLLEVBQUUsS0FGSTtBQUdYLGdCQUFVLEVBQUU7QUFIRCxLQUFiOztBQU1BLFFBQUksQ0FBQyxLQUFMLFdBQXFCO0FBQ25CLFVBQU0sS0FBSyxHQUFHLGNBQWM7QUFDMUIsWUFBSSxFQUFFLGdCQUFLO0FBQ1QsZ0NBQW9CLE9BQXBCLElBQW9CLEVBQXBCLEdBQWtDLE9BQWxDLElBQWtDLEVBQWxDO0FBRndCO0FBSTFCLGFBQUssRUFBRSxpQkFBSztBQUNWLGdDQUFvQixPQUFwQixJQUFvQixFQUFwQixHQUFrQyxPQUFsQyxJQUFrQyxFQUFsQztBQUx3QjtBQU8xQixXQUFHLEVBQUcsY0FBRCxFQUFrQjtBQUNyQixXQUFDLENBQUQ7QUFSd0I7QUFVMUIsYUFBSyxFQUFHLGdCQUFELEVBQWtCO0FBQ3ZCLFdBQUMsQ0FBRDtBQUNEO0FBWnlCLE9BQTVCO0FBZUEsVUFBSSxDQUFKLGdCQUFxQjtBQUNuQixZQUFJLEVBRGU7QUFFbkI7QUFGbUIsT0FBckI7QUFJRDs7QUFFRCxXQUFPLENBQUMsY0FBYyxDQUFDLEtBQXZCLFlBQXVCLEVBQUQsQ0FBZCxDQUFSO0FBQ0Q7QUFqUWlDLENBQXJCLENBQWYiLCJmaWxlIjoiMTg1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gU3R5bGVzXG5pbXBvcnQgJy4vVldpbmRvdy5zYXNzJ1xuXG4vLyBUeXBlc1xuaW1wb3J0IHsgVk5vZGUsIFZOb2RlRGlyZWN0aXZlIH0gZnJvbSAndnVlL3R5cGVzL3Zub2RlJ1xuaW1wb3J0IHsgUHJvcFR5cGUgfSBmcm9tICd2dWUnXG5pbXBvcnQgeyBUb3VjaEhhbmRsZXJzIH0gZnJvbSAndnVldGlmeS90eXBlcydcblxuLy8gRGlyZWN0aXZlc1xuaW1wb3J0IFRvdWNoIGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvdG91Y2gnXG5cbi8vIENvbXBvbmVudHNcbmltcG9ydCBWQnRuIGZyb20gJy4uL1ZCdG4nXG5pbXBvcnQgVkljb24gZnJvbSAnLi4vVkljb24nXG5pbXBvcnQgeyBCYXNlSXRlbUdyb3VwIH0gZnJvbSAnLi4vVkl0ZW1Hcm91cC9WSXRlbUdyb3VwJ1xuXG4vKiBAdnVlL2NvbXBvbmVudCAqL1xuZXhwb3J0IGRlZmF1bHQgQmFzZUl0ZW1Hcm91cC5leHRlbmQoe1xuICBuYW1lOiAndi13aW5kb3cnLFxuXG4gIHByb3ZpZGUgKCk6IG9iamVjdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHdpbmRvd0dyb3VwOiB0aGlzLFxuICAgIH1cbiAgfSxcblxuICBkaXJlY3RpdmVzOiB7IFRvdWNoIH0sXG5cbiAgcHJvcHM6IHtcbiAgICBhY3RpdmVDbGFzczoge1xuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgZGVmYXVsdDogJ3Ytd2luZG93LWl0ZW0tLWFjdGl2ZScsXG4gICAgfSxcbiAgICBjb250aW51b3VzOiBCb29sZWFuLFxuICAgIG1hbmRhdG9yeToge1xuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgfSxcbiAgICBuZXh0SWNvbjoge1xuICAgICAgdHlwZTogW0Jvb2xlYW4sIFN0cmluZ10sXG4gICAgICBkZWZhdWx0OiAnJG5leHQnLFxuICAgIH0sXG4gICAgcHJldkljb246IHtcbiAgICAgIHR5cGU6IFtCb29sZWFuLCBTdHJpbmddLFxuICAgICAgZGVmYXVsdDogJyRwcmV2JyxcbiAgICB9LFxuICAgIHJldmVyc2U6IHtcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICBkZWZhdWx0OiB1bmRlZmluZWQsXG4gICAgfSxcbiAgICBzaG93QXJyb3dzOiBCb29sZWFuLFxuICAgIHNob3dBcnJvd3NPbkhvdmVyOiBCb29sZWFuLFxuICAgIHRvdWNoOiBPYmplY3QgYXMgUHJvcFR5cGU8VG91Y2hIYW5kbGVycz4sXG4gICAgdG91Y2hsZXNzOiBCb29sZWFuLFxuICAgIHZhbHVlOiB7XG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgfSxcbiAgICB2ZXJ0aWNhbDogQm9vbGVhbixcbiAgfSxcblxuICBkYXRhICgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgY2hhbmdlZEJ5RGVsaW1pdGVyczogZmFsc2UsXG4gICAgICBpbnRlcm5hbEhlaWdodDogdW5kZWZpbmVkIGFzIHVuZGVmaW5lZCB8IHN0cmluZywgLy8gVGhpcyBjYW4gYmUgZml4ZWQgYnkgY2hpbGQgY2xhc3MuXG4gICAgICB0cmFuc2l0aW9uSGVpZ2h0OiB1bmRlZmluZWQgYXMgdW5kZWZpbmVkIHwgc3RyaW5nLCAvLyBJbnRlcm1lZGlhdGUgaGVpZ2h0IGR1cmluZyB0cmFuc2l0aW9uLlxuICAgICAgdHJhbnNpdGlvbkNvdW50OiAwLCAvLyBOdW1iZXIgb2Ygd2luZG93cyBpbiB0cmFuc2l0aW9uIHN0YXRlLlxuICAgICAgaXNCb290ZWQ6IGZhbHNlLFxuICAgICAgaXNSZXZlcnNlOiBmYWxzZSxcbiAgICB9XG4gIH0sXG5cbiAgY29tcHV0ZWQ6IHtcbiAgICBpc0FjdGl2ZSAoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2l0aW9uQ291bnQgPiAwXG4gICAgfSxcbiAgICBjbGFzc2VzICgpOiBvYmplY3Qge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uQmFzZUl0ZW1Hcm91cC5vcHRpb25zLmNvbXB1dGVkLmNsYXNzZXMuY2FsbCh0aGlzKSxcbiAgICAgICAgJ3Ytd2luZG93LS1zaG93LWFycm93cy1vbi1ob3Zlcic6IHRoaXMuc2hvd0Fycm93c09uSG92ZXIsXG4gICAgICB9XG4gICAgfSxcbiAgICBjb21wdXRlZFRyYW5zaXRpb24gKCk6IHN0cmluZyB7XG4gICAgICBpZiAoIXRoaXMuaXNCb290ZWQpIHJldHVybiAnJ1xuXG4gICAgICBjb25zdCBheGlzID0gdGhpcy52ZXJ0aWNhbCA/ICd5JyA6ICd4J1xuICAgICAgY29uc3QgcmV2ZXJzZSA9IHRoaXMuJHZ1ZXRpZnkucnRsICYmIGF4aXMgPT09ICd4JyA/ICF0aGlzLmludGVybmFsUmV2ZXJzZSA6IHRoaXMuaW50ZXJuYWxSZXZlcnNlXG4gICAgICBjb25zdCBkaXJlY3Rpb24gPSByZXZlcnNlID8gJy1yZXZlcnNlJyA6ICcnXG5cbiAgICAgIHJldHVybiBgdi13aW5kb3ctJHtheGlzfSR7ZGlyZWN0aW9ufS10cmFuc2l0aW9uYFxuICAgIH0sXG4gICAgaGFzQWN0aXZlSXRlbXMgKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIEJvb2xlYW4oXG4gICAgICAgIHRoaXMuaXRlbXMuZmluZChpdGVtID0+ICFpdGVtLmRpc2FibGVkKVxuICAgICAgKVxuICAgIH0sXG4gICAgaGFzTmV4dCAoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy5jb250aW51b3VzIHx8IHRoaXMuaW50ZXJuYWxJbmRleCA8IHRoaXMuaXRlbXMubGVuZ3RoIC0gMVxuICAgIH0sXG4gICAgaGFzUHJldiAoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy5jb250aW51b3VzIHx8IHRoaXMuaW50ZXJuYWxJbmRleCA+IDBcbiAgICB9LFxuICAgIGludGVybmFsSW5kZXggKCk6IG51bWJlciB7XG4gICAgICByZXR1cm4gdGhpcy5pdGVtcy5maW5kSW5kZXgoKGl0ZW0sIGkpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxWYWx1ZSA9PT0gdGhpcy5nZXRWYWx1ZShpdGVtLCBpKVxuICAgICAgfSlcbiAgICB9LFxuICAgIGludGVybmFsUmV2ZXJzZSAoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy5yZXZlcnNlID8gIXRoaXMuaXNSZXZlcnNlIDogdGhpcy5pc1JldmVyc2VcbiAgICB9LFxuICB9LFxuXG4gIHdhdGNoOiB7XG4gICAgaW50ZXJuYWxJbmRleDogJ3VwZGF0ZVJldmVyc2UnLFxuICB9LFxuXG4gIG1vdW50ZWQgKCkge1xuICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gKHRoaXMuaXNCb290ZWQgPSB0cnVlKSlcbiAgfSxcblxuICBtZXRob2RzOiB7XG4gICAgZ2VuQ29udGFpbmVyICgpOiBWTm9kZSB7XG4gICAgICBjb25zdCBjaGlsZHJlbiA9IFt0aGlzLiRzbG90cy5kZWZhdWx0XVxuXG4gICAgICBpZiAodGhpcy5zaG93QXJyb3dzKSB7XG4gICAgICAgIGNoaWxkcmVuLnB1c2godGhpcy5nZW5Db250cm9sSWNvbnMoKSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMuJGNyZWF0ZUVsZW1lbnQoJ2RpdicsIHtcbiAgICAgICAgc3RhdGljQ2xhc3M6ICd2LXdpbmRvd19fY29udGFpbmVyJyxcbiAgICAgICAgY2xhc3M6IHtcbiAgICAgICAgICAndi13aW5kb3dfX2NvbnRhaW5lci0taXMtYWN0aXZlJzogdGhpcy5pc0FjdGl2ZSxcbiAgICAgICAgfSxcbiAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICBoZWlnaHQ6IHRoaXMuaW50ZXJuYWxIZWlnaHQgfHwgdGhpcy50cmFuc2l0aW9uSGVpZ2h0LFxuICAgICAgICB9LFxuICAgICAgfSwgY2hpbGRyZW4pXG4gICAgfSxcbiAgICBnZW5JY29uIChcbiAgICAgIGRpcmVjdGlvbjogJ3ByZXYnIHwgJ25leHQnLFxuICAgICAgaWNvbjogc3RyaW5nLFxuICAgICAgZm46ICgpID0+IHZvaWRcbiAgICApIHtcbiAgICAgIHJldHVybiB0aGlzLiRjcmVhdGVFbGVtZW50KCdkaXYnLCB7XG4gICAgICAgIHN0YXRpY0NsYXNzOiBgdi13aW5kb3dfXyR7ZGlyZWN0aW9ufWAsXG4gICAgICB9LCBbXG4gICAgICAgIHRoaXMuJGNyZWF0ZUVsZW1lbnQoVkJ0biwge1xuICAgICAgICAgIHByb3BzOiB7IGljb246IHRydWUgfSxcbiAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgJ2FyaWEtbGFiZWwnOiB0aGlzLiR2dWV0aWZ5LmxhbmcudChgJHZ1ZXRpZnkuY2Fyb3VzZWwuJHtkaXJlY3Rpb259YCksXG4gICAgICAgICAgfSxcbiAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgY2xpY2s6ICgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VkQnlEZWxpbWl0ZXJzID0gdHJ1ZVxuICAgICAgICAgICAgICBmbigpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sIFtcbiAgICAgICAgICB0aGlzLiRjcmVhdGVFbGVtZW50KFZJY29uLCB7XG4gICAgICAgICAgICBwcm9wczogeyBsYXJnZTogdHJ1ZSB9LFxuICAgICAgICAgIH0sIGljb24pLFxuICAgICAgICBdKSxcbiAgICAgIF0pXG4gICAgfSxcbiAgICBnZW5Db250cm9sSWNvbnMgKCkge1xuICAgICAgY29uc3QgaWNvbnMgPSBbXVxuXG4gICAgICBjb25zdCBwcmV2SWNvbiA9IHRoaXMuJHZ1ZXRpZnkucnRsXG4gICAgICAgID8gdGhpcy5uZXh0SWNvblxuICAgICAgICA6IHRoaXMucHJldkljb25cblxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5oYXNQcmV2ICYmXG4gICAgICAgIHByZXZJY29uICYmXG4gICAgICAgIHR5cGVvZiBwcmV2SWNvbiA9PT0gJ3N0cmluZydcbiAgICAgICkge1xuICAgICAgICBjb25zdCBpY29uID0gdGhpcy5nZW5JY29uKCdwcmV2JywgcHJldkljb24sIHRoaXMucHJldilcbiAgICAgICAgaWNvbiAmJiBpY29ucy5wdXNoKGljb24pXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG5leHRJY29uID0gdGhpcy4kdnVldGlmeS5ydGxcbiAgICAgICAgPyB0aGlzLnByZXZJY29uXG4gICAgICAgIDogdGhpcy5uZXh0SWNvblxuXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLmhhc05leHQgJiZcbiAgICAgICAgbmV4dEljb24gJiZcbiAgICAgICAgdHlwZW9mIG5leHRJY29uID09PSAnc3RyaW5nJ1xuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IGljb24gPSB0aGlzLmdlbkljb24oJ25leHQnLCBuZXh0SWNvbiwgdGhpcy5uZXh0KVxuICAgICAgICBpY29uICYmIGljb25zLnB1c2goaWNvbilcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGljb25zXG4gICAgfSxcbiAgICBnZXROZXh0SW5kZXggKGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgY29uc3QgbmV4dEluZGV4ID0gKGluZGV4ICsgMSkgJSB0aGlzLml0ZW1zLmxlbmd0aFxuICAgICAgY29uc3QgaXRlbSA9IHRoaXMuaXRlbXNbbmV4dEluZGV4XVxuXG4gICAgICBpZiAoaXRlbS5kaXNhYmxlZCkgcmV0dXJuIHRoaXMuZ2V0TmV4dEluZGV4KG5leHRJbmRleClcblxuICAgICAgcmV0dXJuIG5leHRJbmRleFxuICAgIH0sXG4gICAgZ2V0UHJldkluZGV4IChpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgIGNvbnN0IHByZXZJbmRleCA9IChpbmRleCArIHRoaXMuaXRlbXMubGVuZ3RoIC0gMSkgJSB0aGlzLml0ZW1zLmxlbmd0aFxuICAgICAgY29uc3QgaXRlbSA9IHRoaXMuaXRlbXNbcHJldkluZGV4XVxuXG4gICAgICBpZiAoaXRlbS5kaXNhYmxlZCkgcmV0dXJuIHRoaXMuZ2V0UHJldkluZGV4KHByZXZJbmRleClcblxuICAgICAgcmV0dXJuIHByZXZJbmRleFxuICAgIH0sXG4gICAgbmV4dCAoKSB7XG4gICAgICB0aGlzLmlzUmV2ZXJzZSA9IHRoaXMuJHZ1ZXRpZnkucnRsXG5cbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgaWYgKCF0aGlzLmhhc0FjdGl2ZUl0ZW1zIHx8ICF0aGlzLmhhc05leHQpIHJldHVyblxuXG4gICAgICBjb25zdCBuZXh0SW5kZXggPSB0aGlzLmdldE5leHRJbmRleCh0aGlzLmludGVybmFsSW5kZXgpXG4gICAgICBjb25zdCBpdGVtID0gdGhpcy5pdGVtc1tuZXh0SW5kZXhdXG5cbiAgICAgIHRoaXMuaW50ZXJuYWxWYWx1ZSA9IHRoaXMuZ2V0VmFsdWUoaXRlbSwgbmV4dEluZGV4KVxuICAgIH0sXG4gICAgcHJldiAoKSB7XG4gICAgICB0aGlzLmlzUmV2ZXJzZSA9ICF0aGlzLiR2dWV0aWZ5LnJ0bFxuXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgIGlmICghdGhpcy5oYXNBY3RpdmVJdGVtcyB8fCAhdGhpcy5oYXNQcmV2KSByZXR1cm5cblxuICAgICAgY29uc3QgbGFzdEluZGV4ID0gdGhpcy5nZXRQcmV2SW5kZXgodGhpcy5pbnRlcm5hbEluZGV4KVxuICAgICAgY29uc3QgaXRlbSA9IHRoaXMuaXRlbXNbbGFzdEluZGV4XVxuXG4gICAgICB0aGlzLmludGVybmFsVmFsdWUgPSB0aGlzLmdldFZhbHVlKGl0ZW0sIGxhc3RJbmRleClcbiAgICB9LFxuICAgIHVwZGF0ZVJldmVyc2UgKHZhbDogbnVtYmVyLCBvbGRWYWw6IG51bWJlcikge1xuICAgICAgaWYgKHRoaXMuY2hhbmdlZEJ5RGVsaW1pdGVycykge1xuICAgICAgICB0aGlzLmNoYW5nZWRCeURlbGltaXRlcnMgPSBmYWxzZVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgdGhpcy5pc1JldmVyc2UgPSB2YWwgPCBvbGRWYWxcbiAgICB9LFxuICB9LFxuXG4gIHJlbmRlciAoaCk6IFZOb2RlIHtcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgc3RhdGljQ2xhc3M6ICd2LXdpbmRvdycsXG4gICAgICBjbGFzczogdGhpcy5jbGFzc2VzLFxuICAgICAgZGlyZWN0aXZlczogW10gYXMgVk5vZGVEaXJlY3RpdmVbXSxcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMudG91Y2hsZXNzKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMudG91Y2ggfHwge1xuICAgICAgICBsZWZ0OiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy4kdnVldGlmeS5ydGwgPyB0aGlzLnByZXYoKSA6IHRoaXMubmV4dCgpXG4gICAgICAgIH0sXG4gICAgICAgIHJpZ2h0OiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy4kdnVldGlmeS5ydGwgPyB0aGlzLm5leHQoKSA6IHRoaXMucHJldigpXG4gICAgICAgIH0sXG4gICAgICAgIGVuZDogKGU6IFRvdWNoRXZlbnQpID0+IHtcbiAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgIH0sXG4gICAgICAgIHN0YXJ0OiAoZTogVG91Y2hFdmVudCkgPT4ge1xuICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgfSxcbiAgICAgIH1cblxuICAgICAgZGF0YS5kaXJlY3RpdmVzLnB1c2goe1xuICAgICAgICBuYW1lOiAndG91Y2gnLFxuICAgICAgICB2YWx1ZSxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIGgoJ2RpdicsIGRhdGEsIFt0aGlzLmdlbkNvbnRhaW5lcigpXSlcbiAgfSxcbn0pXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///185\n")},,,function(module,__webpack_exports__,__webpack_require__){"use strict";eval("/*!\n * vue-i18n v8.18.2 \n * (c) 2020 kazuya kawaguchi\n * Released under the MIT License.\n */\n/* */\n\n/**\n * constants\n */\n\nvar numberFormatKeys = [\n 'style',\n 'currency',\n 'currencyDisplay',\n 'useGrouping',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits',\n 'localeMatcher',\n 'formatMatcher',\n 'unit'\n];\n\n/**\n * utilities\n */\n\nfunction warn (msg, err) {\n if (typeof console !== 'undefined') {\n console.warn('[vue-i18n] ' + msg);\n /* istanbul ignore if */\n if (err) {\n console.warn(err.stack);\n }\n }\n}\n\nfunction error (msg, err) {\n if (typeof console !== 'undefined') {\n console.error('[vue-i18n] ' + msg);\n /* istanbul ignore if */\n if (err) {\n console.error(err.stack);\n }\n }\n}\n\nvar isArray = Array.isArray;\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isBoolean (val) {\n return typeof val === 'boolean'\n}\n\nfunction isString (val) {\n return typeof val === 'string'\n}\n\nvar toString = Object.prototype.toString;\nvar OBJECT_STRING = '[object Object]';\nfunction isPlainObject (obj) {\n return toString.call(obj) === OBJECT_STRING\n}\n\nfunction isNull (val) {\n return val === null || val === undefined\n}\n\nfunction parseArgs () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var locale = null;\n var params = null;\n if (args.length === 1) {\n if (isObject(args[0]) || Array.isArray(args[0])) {\n params = args[0];\n } else if (typeof args[0] === 'string') {\n locale = args[0];\n }\n } else if (args.length === 2) {\n if (typeof args[0] === 'string') {\n locale = args[0];\n }\n /* istanbul ignore if */\n if (isObject(args[1]) || Array.isArray(args[1])) {\n params = args[1];\n }\n }\n\n return { locale: locale, params: params }\n}\n\nfunction looseClone (obj) {\n return JSON.parse(JSON.stringify(obj))\n}\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\nfunction includes (arr, item) {\n return !!~arr.indexOf(item)\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\nfunction merge (target) {\n var arguments$1 = arguments;\n\n var output = Object(target);\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments$1[i];\n if (source !== undefined && source !== null) {\n var key = (void 0);\n for (key in source) {\n if (hasOwn(source, key)) {\n if (isObject(source[key])) {\n output[key] = merge(output[key], source[key]);\n } else {\n output[key] = source[key];\n }\n }\n }\n }\n }\n return output\n}\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\n/* */\n\nfunction extend (Vue) {\n if (!Vue.prototype.hasOwnProperty('$i18n')) {\n // $FlowFixMe\n Object.defineProperty(Vue.prototype, '$i18n', {\n get: function get () { return this._i18n }\n });\n }\n\n Vue.prototype.$t = function (key) {\n var values = [], len = arguments.length - 1;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 1 ];\n\n var i18n = this.$i18n;\n return i18n._t.apply(i18n, [ key, i18n.locale, i18n._getMessages(), this ].concat( values ))\n };\n\n Vue.prototype.$tc = function (key, choice) {\n var values = [], len = arguments.length - 2;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 2 ];\n\n var i18n = this.$i18n;\n return i18n._tc.apply(i18n, [ key, i18n.locale, i18n._getMessages(), this, choice ].concat( values ))\n };\n\n Vue.prototype.$te = function (key, locale) {\n var i18n = this.$i18n;\n return i18n._te(key, i18n.locale, i18n._getMessages(), locale)\n };\n\n Vue.prototype.$d = function (value) {\n var ref;\n\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n return (ref = this.$i18n).d.apply(ref, [ value ].concat( args ))\n };\n\n Vue.prototype.$n = function (value) {\n var ref;\n\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n return (ref = this.$i18n).n.apply(ref, [ value ].concat( args ))\n };\n}\n\n/* */\n\nvar mixin = {\n beforeCreate: function beforeCreate () {\n var options = this.$options;\n options.i18n = options.i18n || (options.__i18n ? {} : null);\n\n if (options.i18n) {\n if (options.i18n instanceof VueI18n) {\n // init locale messages via custom blocks\n if (options.__i18n) {\n try {\n var localeMessages = {};\n options.__i18n.forEach(function (resource) {\n localeMessages = merge(localeMessages, JSON.parse(resource));\n });\n Object.keys(localeMessages).forEach(function (locale) {\n options.i18n.mergeLocaleMessage(locale, localeMessages[locale]);\n });\n } catch (e) {\n if (false) {}\n }\n }\n this._i18n = options.i18n;\n this._i18nWatcher = this._i18n.watchI18nData();\n } else if (isPlainObject(options.i18n)) {\n var rootI18n = this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n\n ? this.$root.$i18n\n : null;\n // component local i18n\n if (rootI18n) {\n options.i18n.root = this.$root;\n options.i18n.formatter = rootI18n.formatter;\n options.i18n.fallbackLocale = rootI18n.fallbackLocale;\n options.i18n.formatFallbackMessages = rootI18n.formatFallbackMessages;\n options.i18n.silentTranslationWarn = rootI18n.silentTranslationWarn;\n options.i18n.silentFallbackWarn = rootI18n.silentFallbackWarn;\n options.i18n.pluralizationRules = rootI18n.pluralizationRules;\n options.i18n.preserveDirectiveContent = rootI18n.preserveDirectiveContent;\n }\n\n // init locale messages via custom blocks\n if (options.__i18n) {\n try {\n var localeMessages$1 = {};\n options.__i18n.forEach(function (resource) {\n localeMessages$1 = merge(localeMessages$1, JSON.parse(resource));\n });\n options.i18n.messages = localeMessages$1;\n } catch (e) {\n if (false) {}\n }\n }\n\n var ref = options.i18n;\n var sharedMessages = ref.sharedMessages;\n if (sharedMessages && isPlainObject(sharedMessages)) {\n options.i18n.messages = merge(options.i18n.messages, sharedMessages);\n }\n\n this._i18n = new VueI18n(options.i18n);\n this._i18nWatcher = this._i18n.watchI18nData();\n\n if (options.i18n.sync === undefined || !!options.i18n.sync) {\n this._localeWatcher = this.$i18n.watchLocale();\n }\n\n if (rootI18n) {\n rootI18n.onComponentInstanceCreated(this._i18n);\n }\n } else {\n if (false) {}\n }\n } else if (this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n) {\n // root i18n\n this._i18n = this.$root.$i18n;\n } else if (options.parent && options.parent.$i18n && options.parent.$i18n instanceof VueI18n) {\n // parent i18n\n this._i18n = options.parent.$i18n;\n }\n },\n\n beforeMount: function beforeMount () {\n var options = this.$options;\n options.i18n = options.i18n || (options.__i18n ? {} : null);\n\n if (options.i18n) {\n if (options.i18n instanceof VueI18n) {\n // init locale messages via custom blocks\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n } else if (isPlainObject(options.i18n)) {\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n } else {\n if (false) {}\n }\n } else if (this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n) {\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n } else if (options.parent && options.parent.$i18n && options.parent.$i18n instanceof VueI18n) {\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n }\n },\n\n beforeDestroy: function beforeDestroy () {\n if (!this._i18n) { return }\n\n var self = this;\n this.$nextTick(function () {\n if (self._subscribing) {\n self._i18n.unsubscribeDataChanging(self);\n delete self._subscribing;\n }\n\n if (self._i18nWatcher) {\n self._i18nWatcher();\n self._i18n.destroyVM();\n delete self._i18nWatcher;\n }\n\n if (self._localeWatcher) {\n self._localeWatcher();\n delete self._localeWatcher;\n }\n });\n }\n};\n\n/* */\n\nvar interpolationComponent = {\n name: 'i18n',\n functional: true,\n props: {\n tag: {\n type: [String, Boolean],\n default: 'span'\n },\n path: {\n type: String,\n required: true\n },\n locale: {\n type: String\n },\n places: {\n type: [Array, Object]\n }\n },\n render: function render (h, ref) {\n var data = ref.data;\n var parent = ref.parent;\n var props = ref.props;\n var slots = ref.slots;\n\n var $i18n = parent.$i18n;\n if (!$i18n) {\n if (false) {}\n return\n }\n\n var path = props.path;\n var locale = props.locale;\n var places = props.places;\n var params = slots();\n var children = $i18n.i(\n path,\n locale,\n onlyHasDefaultPlace(params) || places\n ? useLegacyPlaces(params.default, places)\n : params\n );\n\n var tag = (!!props.tag && props.tag !== true) || props.tag === false ? props.tag : 'span';\n return tag ? h(tag, data, children) : children\n }\n};\n\nfunction onlyHasDefaultPlace (params) {\n var prop;\n for (prop in params) {\n if (prop !== 'default') { return false }\n }\n return Boolean(prop)\n}\n\nfunction useLegacyPlaces (children, places) {\n var params = places ? createParamsFromPlaces(places) : {};\n\n if (!children) { return params }\n\n // Filter empty text nodes\n children = children.filter(function (child) {\n return child.tag || child.text.trim() !== ''\n });\n\n var everyPlace = children.every(vnodeHasPlaceAttribute);\n if (false) {}\n\n return children.reduce(\n everyPlace ? assignChildPlace : assignChildIndex,\n params\n )\n}\n\nfunction createParamsFromPlaces (places) {\n if (false) {}\n\n return Array.isArray(places)\n ? places.reduce(assignChildIndex, {})\n : Object.assign({}, places)\n}\n\nfunction assignChildPlace (params, child) {\n if (child.data && child.data.attrs && child.data.attrs.place) {\n params[child.data.attrs.place] = child;\n }\n return params\n}\n\nfunction assignChildIndex (params, child, index) {\n params[index] = child;\n return params\n}\n\nfunction vnodeHasPlaceAttribute (vnode) {\n return Boolean(vnode.data && vnode.data.attrs && vnode.data.attrs.place)\n}\n\n/* */\n\nvar numberComponent = {\n name: 'i18n-n',\n functional: true,\n props: {\n tag: {\n type: [String, Boolean],\n default: 'span'\n },\n value: {\n type: Number,\n required: true\n },\n format: {\n type: [String, Object]\n },\n locale: {\n type: String\n }\n },\n render: function render (h, ref) {\n var props = ref.props;\n var parent = ref.parent;\n var data = ref.data;\n\n var i18n = parent.$i18n;\n\n if (!i18n) {\n if (false) {}\n return null\n }\n\n var key = null;\n var options = null;\n\n if (isString(props.format)) {\n key = props.format;\n } else if (isObject(props.format)) {\n if (props.format.key) {\n key = props.format.key;\n }\n\n // Filter out number format options only\n options = Object.keys(props.format).reduce(function (acc, prop) {\n var obj;\n\n if (includes(numberFormatKeys, prop)) {\n return Object.assign({}, acc, ( obj = {}, obj[prop] = props.format[prop], obj ))\n }\n return acc\n }, null);\n }\n\n var locale = props.locale || i18n.locale;\n var parts = i18n._ntp(props.value, locale, key, options);\n\n var values = parts.map(function (part, index) {\n var obj;\n\n var slot = data.scopedSlots && data.scopedSlots[part.type];\n return slot ? slot(( obj = {}, obj[part.type] = part.value, obj.index = index, obj.parts = parts, obj )) : part.value\n });\n\n var tag = (!!props.tag && props.tag !== true) || props.tag === false ? props.tag : 'span';\n return tag\n ? h(tag, {\n attrs: data.attrs,\n 'class': data['class'],\n staticClass: data.staticClass\n }, values)\n : values\n }\n};\n\n/* */\n\nfunction bind (el, binding, vnode) {\n if (!assert(el, vnode)) { return }\n\n t(el, binding, vnode);\n}\n\nfunction update (el, binding, vnode, oldVNode) {\n if (!assert(el, vnode)) { return }\n\n var i18n = vnode.context.$i18n;\n if (localeEqual(el, vnode) &&\n (looseEqual(binding.value, binding.oldValue) &&\n looseEqual(el._localeMessage, i18n.getLocaleMessage(i18n.locale)))) { return }\n\n t(el, binding, vnode);\n}\n\nfunction unbind (el, binding, vnode, oldVNode) {\n var vm = vnode.context;\n if (!vm) {\n warn('Vue instance does not exists in VNode context');\n return\n }\n\n var i18n = vnode.context.$i18n || {};\n if (!binding.modifiers.preserve && !i18n.preserveDirectiveContent) {\n el.textContent = '';\n }\n el._vt = undefined;\n delete el['_vt'];\n el._locale = undefined;\n delete el['_locale'];\n el._localeMessage = undefined;\n delete el['_localeMessage'];\n}\n\nfunction assert (el, vnode) {\n var vm = vnode.context;\n if (!vm) {\n warn('Vue instance does not exists in VNode context');\n return false\n }\n\n if (!vm.$i18n) {\n warn('VueI18n instance does not exists in Vue instance');\n return false\n }\n\n return true\n}\n\nfunction localeEqual (el, vnode) {\n var vm = vnode.context;\n return el._locale === vm.$i18n.locale\n}\n\nfunction t (el, binding, vnode) {\n var ref$1, ref$2;\n\n var value = binding.value;\n\n var ref = parseValue(value);\n var path = ref.path;\n var locale = ref.locale;\n var args = ref.args;\n var choice = ref.choice;\n if (!path && !locale && !args) {\n warn('value type not supported');\n return\n }\n\n if (!path) {\n warn('`path` is required in v-t directive');\n return\n }\n\n var vm = vnode.context;\n if (choice != null) {\n el._vt = el.textContent = (ref$1 = vm.$i18n).tc.apply(ref$1, [ path, choice ].concat( makeParams(locale, args) ));\n } else {\n el._vt = el.textContent = (ref$2 = vm.$i18n).t.apply(ref$2, [ path ].concat( makeParams(locale, args) ));\n }\n el._locale = vm.$i18n.locale;\n el._localeMessage = vm.$i18n.getLocaleMessage(vm.$i18n.locale);\n}\n\nfunction parseValue (value) {\n var path;\n var locale;\n var args;\n var choice;\n\n if (isString(value)) {\n path = value;\n } else if (isPlainObject(value)) {\n path = value.path;\n locale = value.locale;\n args = value.args;\n choice = value.choice;\n }\n\n return { path: path, locale: locale, args: args, choice: choice }\n}\n\nfunction makeParams (locale, args) {\n var params = [];\n\n locale && params.push(locale);\n if (args && (Array.isArray(args) || isPlainObject(args))) {\n params.push(args);\n }\n\n return params\n}\n\nvar Vue;\n\nfunction install (_Vue) {\n /* istanbul ignore if */\n if (false) {}\n install.installed = true;\n\n Vue = _Vue;\n\n var version = (Vue.version && Number(Vue.version.split('.')[0])) || -1;\n /* istanbul ignore if */\n if (false) {}\n\n extend(Vue);\n Vue.mixin(mixin);\n Vue.directive('t', { bind: bind, update: update, unbind: unbind });\n Vue.component(interpolationComponent.name, interpolationComponent);\n Vue.component(numberComponent.name, numberComponent);\n\n // use simple mergeStrategies to prevent i18n instance lose '__proto__'\n var strats = Vue.config.optionMergeStrategies;\n strats.i18n = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n };\n}\n\n/* */\n\nvar BaseFormatter = function BaseFormatter () {\n this._caches = Object.create(null);\n};\n\nBaseFormatter.prototype.interpolate = function interpolate (message, values) {\n if (!values) {\n return [message]\n }\n var tokens = this._caches[message];\n if (!tokens) {\n tokens = parse(message);\n this._caches[message] = tokens;\n }\n return compile(tokens, values)\n};\n\n\n\nvar RE_TOKEN_LIST_VALUE = /^(?:\\d)+/;\nvar RE_TOKEN_NAMED_VALUE = /^(?:\\w)+/;\n\nfunction parse (format) {\n var tokens = [];\n var position = 0;\n\n var text = '';\n while (position < format.length) {\n var char = format[position++];\n if (char === '{') {\n if (text) {\n tokens.push({ type: 'text', value: text });\n }\n\n text = '';\n var sub = '';\n char = format[position++];\n while (char !== undefined && char !== '}') {\n sub += char;\n char = format[position++];\n }\n var isClosed = char === '}';\n\n var type = RE_TOKEN_LIST_VALUE.test(sub)\n ? 'list'\n : isClosed && RE_TOKEN_NAMED_VALUE.test(sub)\n ? 'named'\n : 'unknown';\n tokens.push({ value: sub, type: type });\n } else if (char === '%') {\n // when found rails i18n syntax, skip text capture\n if (format[(position)] !== '{') {\n text += char;\n }\n } else {\n text += char;\n }\n }\n\n text && tokens.push({ type: 'text', value: text });\n\n return tokens\n}\n\nfunction compile (tokens, values) {\n var compiled = [];\n var index = 0;\n\n var mode = Array.isArray(values)\n ? 'list'\n : isObject(values)\n ? 'named'\n : 'unknown';\n if (mode === 'unknown') { return compiled }\n\n while (index < tokens.length) {\n var token = tokens[index];\n switch (token.type) {\n case 'text':\n compiled.push(token.value);\n break\n case 'list':\n compiled.push(values[parseInt(token.value, 10)]);\n break\n case 'named':\n if (mode === 'named') {\n compiled.push((values)[token.value]);\n } else {\n if (false) {}\n }\n break\n case 'unknown':\n if (false) {}\n break\n }\n index++;\n }\n\n return compiled\n}\n\n/* */\n\n/**\n * Path parser\n * - Inspired:\n * Vue.js Path parser\n */\n\n// actions\nvar APPEND = 0;\nvar PUSH = 1;\nvar INC_SUB_PATH_DEPTH = 2;\nvar PUSH_SUB_PATH = 3;\n\n// states\nvar BEFORE_PATH = 0;\nvar IN_PATH = 1;\nvar BEFORE_IDENT = 2;\nvar IN_IDENT = 3;\nvar IN_SUB_PATH = 4;\nvar IN_SINGLE_QUOTE = 5;\nvar IN_DOUBLE_QUOTE = 6;\nvar AFTER_PATH = 7;\nvar ERROR = 8;\n\nvar pathStateMachine = [];\n\npathStateMachine[BEFORE_PATH] = {\n 'ws': [BEFORE_PATH],\n 'ident': [IN_IDENT, APPEND],\n '[': [IN_SUB_PATH],\n 'eof': [AFTER_PATH]\n};\n\npathStateMachine[IN_PATH] = {\n 'ws': [IN_PATH],\n '.': [BEFORE_IDENT],\n '[': [IN_SUB_PATH],\n 'eof': [AFTER_PATH]\n};\n\npathStateMachine[BEFORE_IDENT] = {\n 'ws': [BEFORE_IDENT],\n 'ident': [IN_IDENT, APPEND],\n '0': [IN_IDENT, APPEND],\n 'number': [IN_IDENT, APPEND]\n};\n\npathStateMachine[IN_IDENT] = {\n 'ident': [IN_IDENT, APPEND],\n '0': [IN_IDENT, APPEND],\n 'number': [IN_IDENT, APPEND],\n 'ws': [IN_PATH, PUSH],\n '.': [BEFORE_IDENT, PUSH],\n '[': [IN_SUB_PATH, PUSH],\n 'eof': [AFTER_PATH, PUSH]\n};\n\npathStateMachine[IN_SUB_PATH] = {\n \"'\": [IN_SINGLE_QUOTE, APPEND],\n '\"': [IN_DOUBLE_QUOTE, APPEND],\n '[': [IN_SUB_PATH, INC_SUB_PATH_DEPTH],\n ']': [IN_PATH, PUSH_SUB_PATH],\n 'eof': ERROR,\n 'else': [IN_SUB_PATH, APPEND]\n};\n\npathStateMachine[IN_SINGLE_QUOTE] = {\n \"'\": [IN_SUB_PATH, APPEND],\n 'eof': ERROR,\n 'else': [IN_SINGLE_QUOTE, APPEND]\n};\n\npathStateMachine[IN_DOUBLE_QUOTE] = {\n '\"': [IN_SUB_PATH, APPEND],\n 'eof': ERROR,\n 'else': [IN_DOUBLE_QUOTE, APPEND]\n};\n\n/**\n * Check if an expression is a literal value.\n */\n\nvar literalValueRE = /^\\s?(?:true|false|-?[\\d.]+|'[^']*'|\"[^\"]*\")\\s?$/;\nfunction isLiteral (exp) {\n return literalValueRE.test(exp)\n}\n\n/**\n * Strip quotes from a string\n */\n\nfunction stripQuotes (str) {\n var a = str.charCodeAt(0);\n var b = str.charCodeAt(str.length - 1);\n return a === b && (a === 0x22 || a === 0x27)\n ? str.slice(1, -1)\n : str\n}\n\n/**\n * Determine the type of a character in a keypath.\n */\n\nfunction getPathCharType (ch) {\n if (ch === undefined || ch === null) { return 'eof' }\n\n var code = ch.charCodeAt(0);\n\n switch (code) {\n case 0x5B: // [\n case 0x5D: // ]\n case 0x2E: // .\n case 0x22: // \"\n case 0x27: // '\n return ch\n\n case 0x5F: // _\n case 0x24: // $\n case 0x2D: // -\n return 'ident'\n\n case 0x09: // Tab\n case 0x0A: // Newline\n case 0x0D: // Return\n case 0xA0: // No-break space\n case 0xFEFF: // Byte Order Mark\n case 0x2028: // Line Separator\n case 0x2029: // Paragraph Separator\n return 'ws'\n }\n\n return 'ident'\n}\n\n/**\n * Format a subPath, return its plain form if it is\n * a literal string or number. Otherwise prepend the\n * dynamic indicator (*).\n */\n\nfunction formatSubPath (path) {\n var trimmed = path.trim();\n // invalid leading 0\n if (path.charAt(0) === '0' && isNaN(path)) { return false }\n\n return isLiteral(trimmed) ? stripQuotes(trimmed) : '*' + trimmed\n}\n\n/**\n * Parse a string path into an array of segments\n */\n\nfunction parse$1 (path) {\n var keys = [];\n var index = -1;\n var mode = BEFORE_PATH;\n var subPathDepth = 0;\n var c;\n var key;\n var newChar;\n var type;\n var transition;\n var action;\n var typeMap;\n var actions = [];\n\n actions[PUSH] = function () {\n if (key !== undefined) {\n keys.push(key);\n key = undefined;\n }\n };\n\n actions[APPEND] = function () {\n if (key === undefined) {\n key = newChar;\n } else {\n key += newChar;\n }\n };\n\n actions[INC_SUB_PATH_DEPTH] = function () {\n actions[APPEND]();\n subPathDepth++;\n };\n\n actions[PUSH_SUB_PATH] = function () {\n if (subPathDepth > 0) {\n subPathDepth--;\n mode = IN_SUB_PATH;\n actions[APPEND]();\n } else {\n subPathDepth = 0;\n if (key === undefined) { return false }\n key = formatSubPath(key);\n if (key === false) {\n return false\n } else {\n actions[PUSH]();\n }\n }\n };\n\n function maybeUnescapeQuote () {\n var nextChar = path[index + 1];\n if ((mode === IN_SINGLE_QUOTE && nextChar === \"'\") ||\n (mode === IN_DOUBLE_QUOTE && nextChar === '\"')) {\n index++;\n newChar = '\\\\' + nextChar;\n actions[APPEND]();\n return true\n }\n }\n\n while (mode !== null) {\n index++;\n c = path[index];\n\n if (c === '\\\\' && maybeUnescapeQuote()) {\n continue\n }\n\n type = getPathCharType(c);\n typeMap = pathStateMachine[mode];\n transition = typeMap[type] || typeMap['else'] || ERROR;\n\n if (transition === ERROR) {\n return // parse error\n }\n\n mode = transition[0];\n action = actions[transition[1]];\n if (action) {\n newChar = transition[2];\n newChar = newChar === undefined\n ? c\n : newChar;\n if (action() === false) {\n return\n }\n }\n\n if (mode === AFTER_PATH) {\n return keys\n }\n }\n}\n\n\n\n\n\nvar I18nPath = function I18nPath () {\n this._cache = Object.create(null);\n};\n\n/**\n * External parse that check for a cache hit first\n */\nI18nPath.prototype.parsePath = function parsePath (path) {\n var hit = this._cache[path];\n if (!hit) {\n hit = parse$1(path);\n if (hit) {\n this._cache[path] = hit;\n }\n }\n return hit || []\n};\n\n/**\n * Get path value from path string\n */\nI18nPath.prototype.getPathValue = function getPathValue (obj, path) {\n if (!isObject(obj)) { return null }\n\n var paths = this.parsePath(path);\n if (paths.length === 0) {\n return null\n } else {\n var length = paths.length;\n var last = obj;\n var i = 0;\n while (i < length) {\n var value = last[paths[i]];\n if (value === undefined) {\n return null\n }\n last = value;\n i++;\n }\n\n return last\n }\n};\n\n/* */\n\n\n\nvar htmlTagMatcher = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\nvar linkKeyMatcher = /(?:@(?:\\.[a-z]+)?:(?:[\\w\\-_|.]+|\\([\\w\\-_|.]+\\)))/g;\nvar linkKeyPrefixMatcher = /^@(?:\\.([a-z]+))?:/;\nvar bracketsMatcher = /[()]/g;\nvar defaultModifiers = {\n 'upper': function (str) { return str.toLocaleUpperCase(); },\n 'lower': function (str) { return str.toLocaleLowerCase(); },\n 'capitalize': function (str) { return (\"\" + (str.charAt(0).toLocaleUpperCase()) + (str.substr(1))); }\n};\n\nvar defaultFormatter = new BaseFormatter();\n\nvar VueI18n = function VueI18n (options) {\n var this$1 = this;\n if ( options === void 0 ) options = {};\n\n // Auto install if it is not done yet and `window` has `Vue`.\n // To allow users to avoid auto-installation in some cases,\n // this code should be placed here. See #290\n /* istanbul ignore if */\n if (!Vue && typeof window !== 'undefined' && window.Vue) {\n install(window.Vue);\n }\n\n var locale = options.locale || 'en-US';\n var fallbackLocale = options.fallbackLocale === false\n ? false\n : options.fallbackLocale || 'en-US';\n var messages = options.messages || {};\n var dateTimeFormats = options.dateTimeFormats || {};\n var numberFormats = options.numberFormats || {};\n\n this._vm = null;\n this._formatter = options.formatter || defaultFormatter;\n this._modifiers = options.modifiers || {};\n this._missing = options.missing || null;\n this._root = options.root || null;\n this._sync = options.sync === undefined ? true : !!options.sync;\n this._fallbackRoot = options.fallbackRoot === undefined\n ? true\n : !!options.fallbackRoot;\n this._formatFallbackMessages = options.formatFallbackMessages === undefined\n ? false\n : !!options.formatFallbackMessages;\n this._silentTranslationWarn = options.silentTranslationWarn === undefined\n ? false\n : options.silentTranslationWarn;\n this._silentFallbackWarn = options.silentFallbackWarn === undefined\n ? false\n : !!options.silentFallbackWarn;\n this._dateTimeFormatters = {};\n this._numberFormatters = {};\n this._path = new I18nPath();\n this._dataListeners = [];\n this._componentInstanceCreatedListener = options.componentInstanceCreatedListener || null;\n this._preserveDirectiveContent = options.preserveDirectiveContent === undefined\n ? false\n : !!options.preserveDirectiveContent;\n this.pluralizationRules = options.pluralizationRules || {};\n this._warnHtmlInMessage = options.warnHtmlInMessage || 'off';\n this._postTranslation = options.postTranslation || null;\n\n /**\n * @param choice {number} a choice index given by the input to $tc: `$tc('path.to.rule', choiceIndex)`\n * @param choicesLength {number} an overall amount of available choices\n * @returns a final choice index\n */\n this.getChoiceIndex = function (choice, choicesLength) {\n var thisPrototype = Object.getPrototypeOf(this$1);\n if (thisPrototype && thisPrototype.getChoiceIndex) {\n var prototypeGetChoiceIndex = (thisPrototype.getChoiceIndex);\n return (prototypeGetChoiceIndex).call(this$1, choice, choicesLength)\n }\n\n // Default (old) getChoiceIndex implementation - english-compatible\n var defaultImpl = function (_choice, _choicesLength) {\n _choice = Math.abs(_choice);\n\n if (_choicesLength === 2) {\n return _choice\n ? _choice > 1\n ? 1\n : 0\n : 1\n }\n\n return _choice ? Math.min(_choice, 2) : 0\n };\n\n if (this$1.locale in this$1.pluralizationRules) {\n return this$1.pluralizationRules[this$1.locale].apply(this$1, [choice, choicesLength])\n } else {\n return defaultImpl(choice, choicesLength)\n }\n };\n\n\n this._exist = function (message, key) {\n if (!message || !key) { return false }\n if (!isNull(this$1._path.getPathValue(message, key))) { return true }\n // fallback for flat key\n if (message[key]) { return true }\n return false\n };\n\n if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n Object.keys(messages).forEach(function (locale) {\n this$1._checkLocaleMessage(locale, this$1._warnHtmlInMessage, messages[locale]);\n });\n }\n\n this._initVM({\n locale: locale,\n fallbackLocale: fallbackLocale,\n messages: messages,\n dateTimeFormats: dateTimeFormats,\n numberFormats: numberFormats\n });\n};\n\nvar prototypeAccessors = { vm: { configurable: true },messages: { configurable: true },dateTimeFormats: { configurable: true },numberFormats: { configurable: true },availableLocales: { configurable: true },locale: { configurable: true },fallbackLocale: { configurable: true },formatFallbackMessages: { configurable: true },missing: { configurable: true },formatter: { configurable: true },silentTranslationWarn: { configurable: true },silentFallbackWarn: { configurable: true },preserveDirectiveContent: { configurable: true },warnHtmlInMessage: { configurable: true },postTranslation: { configurable: true } };\n\nVueI18n.prototype._checkLocaleMessage = function _checkLocaleMessage (locale, level, message) {\n var paths = [];\n\n var fn = function (level, locale, message, paths) {\n if (isPlainObject(message)) {\n Object.keys(message).forEach(function (key) {\n var val = message[key];\n if (isPlainObject(val)) {\n paths.push(key);\n paths.push('.');\n fn(level, locale, val, paths);\n paths.pop();\n paths.pop();\n } else {\n paths.push(key);\n fn(level, locale, val, paths);\n paths.pop();\n }\n });\n } else if (Array.isArray(message)) {\n message.forEach(function (item, index) {\n if (isPlainObject(item)) {\n paths.push((\"[\" + index + \"]\"));\n paths.push('.');\n fn(level, locale, item, paths);\n paths.pop();\n paths.pop();\n } else {\n paths.push((\"[\" + index + \"]\"));\n fn(level, locale, item, paths);\n paths.pop();\n }\n });\n } else if (isString(message)) {\n var ret = htmlTagMatcher.test(message);\n if (ret) {\n var msg = \"Detected HTML in message '\" + message + \"' of keypath '\" + (paths.join('')) + \"' at '\" + locale + \"'. Consider component interpolation with '' to avoid XSS. See https://bit.ly/2ZqJzkp\";\n if (level === 'warn') {\n warn(msg);\n } else if (level === 'error') {\n error(msg);\n }\n }\n }\n };\n\n fn(level, locale, message, paths);\n};\n\nVueI18n.prototype._initVM = function _initVM (data) {\n var silent = Vue.config.silent;\n Vue.config.silent = true;\n this._vm = new Vue({ data: data });\n Vue.config.silent = silent;\n};\n\nVueI18n.prototype.destroyVM = function destroyVM () {\n this._vm.$destroy();\n};\n\nVueI18n.prototype.subscribeDataChanging = function subscribeDataChanging (vm) {\n this._dataListeners.push(vm);\n};\n\nVueI18n.prototype.unsubscribeDataChanging = function unsubscribeDataChanging (vm) {\n remove(this._dataListeners, vm);\n};\n\nVueI18n.prototype.watchI18nData = function watchI18nData () {\n var self = this;\n return this._vm.$watch('$data', function () {\n var i = self._dataListeners.length;\n while (i--) {\n Vue.nextTick(function () {\n self._dataListeners[i] && self._dataListeners[i].$forceUpdate();\n });\n }\n }, { deep: true })\n};\n\nVueI18n.prototype.watchLocale = function watchLocale () {\n /* istanbul ignore if */\n if (!this._sync || !this._root) { return null }\n var target = this._vm;\n return this._root.$i18n.vm.$watch('locale', function (val) {\n target.$set(target, 'locale', val);\n target.$forceUpdate();\n }, { immediate: true })\n};\n\nVueI18n.prototype.onComponentInstanceCreated = function onComponentInstanceCreated (newI18n) {\n if (this._componentInstanceCreatedListener) {\n this._componentInstanceCreatedListener(newI18n, this);\n }\n};\n\nprototypeAccessors.vm.get = function () { return this._vm };\n\nprototypeAccessors.messages.get = function () { return looseClone(this._getMessages()) };\nprototypeAccessors.dateTimeFormats.get = function () { return looseClone(this._getDateTimeFormats()) };\nprototypeAccessors.numberFormats.get = function () { return looseClone(this._getNumberFormats()) };\nprototypeAccessors.availableLocales.get = function () { return Object.keys(this.messages).sort() };\n\nprototypeAccessors.locale.get = function () { return this._vm.locale };\nprototypeAccessors.locale.set = function (locale) {\n this._vm.$set(this._vm, 'locale', locale);\n};\n\nprototypeAccessors.fallbackLocale.get = function () { return this._vm.fallbackLocale };\nprototypeAccessors.fallbackLocale.set = function (locale) {\n this._localeChainCache = {};\n this._vm.$set(this._vm, 'fallbackLocale', locale);\n};\n\nprototypeAccessors.formatFallbackMessages.get = function () { return this._formatFallbackMessages };\nprototypeAccessors.formatFallbackMessages.set = function (fallback) { this._formatFallbackMessages = fallback; };\n\nprototypeAccessors.missing.get = function () { return this._missing };\nprototypeAccessors.missing.set = function (handler) { this._missing = handler; };\n\nprototypeAccessors.formatter.get = function () { return this._formatter };\nprototypeAccessors.formatter.set = function (formatter) { this._formatter = formatter; };\n\nprototypeAccessors.silentTranslationWarn.get = function () { return this._silentTranslationWarn };\nprototypeAccessors.silentTranslationWarn.set = function (silent) { this._silentTranslationWarn = silent; };\n\nprototypeAccessors.silentFallbackWarn.get = function () { return this._silentFallbackWarn };\nprototypeAccessors.silentFallbackWarn.set = function (silent) { this._silentFallbackWarn = silent; };\n\nprototypeAccessors.preserveDirectiveContent.get = function () { return this._preserveDirectiveContent };\nprototypeAccessors.preserveDirectiveContent.set = function (preserve) { this._preserveDirectiveContent = preserve; };\n\nprototypeAccessors.warnHtmlInMessage.get = function () { return this._warnHtmlInMessage };\nprototypeAccessors.warnHtmlInMessage.set = function (level) {\n var this$1 = this;\n\n var orgLevel = this._warnHtmlInMessage;\n this._warnHtmlInMessage = level;\n if (orgLevel !== level && (level === 'warn' || level === 'error')) {\n var messages = this._getMessages();\n Object.keys(messages).forEach(function (locale) {\n this$1._checkLocaleMessage(locale, this$1._warnHtmlInMessage, messages[locale]);\n });\n }\n};\n\nprototypeAccessors.postTranslation.get = function () { return this._postTranslation };\nprototypeAccessors.postTranslation.set = function (handler) { this._postTranslation = handler; };\n\nVueI18n.prototype._getMessages = function _getMessages () { return this._vm.messages };\nVueI18n.prototype._getDateTimeFormats = function _getDateTimeFormats () { return this._vm.dateTimeFormats };\nVueI18n.prototype._getNumberFormats = function _getNumberFormats () { return this._vm.numberFormats };\n\nVueI18n.prototype._warnDefault = function _warnDefault (locale, key, result, vm, values, interpolateMode) {\n if (!isNull(result)) { return result }\n if (this._missing) {\n var missingRet = this._missing.apply(null, [locale, key, vm, values]);\n if (isString(missingRet)) {\n return missingRet\n }\n } else {\n if (false) {}\n }\n\n if (this._formatFallbackMessages) {\n var parsedArgs = parseArgs.apply(void 0, values);\n return this._render(key, interpolateMode, parsedArgs.params, key)\n } else {\n return key\n }\n};\n\nVueI18n.prototype._isFallbackRoot = function _isFallbackRoot (val) {\n return !val && !isNull(this._root) && this._fallbackRoot\n};\n\nVueI18n.prototype._isSilentFallbackWarn = function _isSilentFallbackWarn (key) {\n return this._silentFallbackWarn instanceof RegExp\n ? this._silentFallbackWarn.test(key)\n : this._silentFallbackWarn\n};\n\nVueI18n.prototype._isSilentFallback = function _isSilentFallback (locale, key) {\n return this._isSilentFallbackWarn(key) && (this._isFallbackRoot() || locale !== this.fallbackLocale)\n};\n\nVueI18n.prototype._isSilentTranslationWarn = function _isSilentTranslationWarn (key) {\n return this._silentTranslationWarn instanceof RegExp\n ? this._silentTranslationWarn.test(key)\n : this._silentTranslationWarn\n};\n\nVueI18n.prototype._interpolate = function _interpolate (\n locale,\n message,\n key,\n host,\n interpolateMode,\n values,\n visitedLinkStack\n) {\n if (!message) { return null }\n\n var pathRet = this._path.getPathValue(message, key);\n if (Array.isArray(pathRet) || isPlainObject(pathRet)) { return pathRet }\n\n var ret;\n if (isNull(pathRet)) {\n /* istanbul ignore else */\n if (isPlainObject(message)) {\n ret = message[key];\n if (!isString(ret)) {\n if (false) {}\n return null\n }\n } else {\n return null\n }\n } else {\n /* istanbul ignore else */\n if (isString(pathRet)) {\n ret = pathRet;\n } else {\n if (false) {}\n return null\n }\n }\n\n // Check for the existence of links within the translated string\n if (ret.indexOf('@:') >= 0 || ret.indexOf('@.') >= 0) {\n ret = this._link(locale, message, ret, host, 'raw', values, visitedLinkStack);\n }\n\n return this._render(ret, interpolateMode, values, key)\n};\n\nVueI18n.prototype._link = function _link (\n locale,\n message,\n str,\n host,\n interpolateMode,\n values,\n visitedLinkStack\n) {\n var ret = str;\n\n // Match all the links within the local\n // We are going to replace each of\n // them with its translation\n var matches = ret.match(linkKeyMatcher);\n for (var idx in matches) {\n // ie compatible: filter custom array\n // prototype method\n if (!matches.hasOwnProperty(idx)) {\n continue\n }\n var link = matches[idx];\n var linkKeyPrefixMatches = link.match(linkKeyPrefixMatcher);\n var linkPrefix = linkKeyPrefixMatches[0];\n var formatterName = linkKeyPrefixMatches[1];\n\n // Remove the leading @:, @.case: and the brackets\n var linkPlaceholder = link.replace(linkPrefix, '').replace(bracketsMatcher, '');\n\n if (includes(visitedLinkStack, linkPlaceholder)) {\n if (false) {}\n return ret\n }\n visitedLinkStack.push(linkPlaceholder);\n\n // Translate the link\n var translated = this._interpolate(\n locale, message, linkPlaceholder, host,\n interpolateMode === 'raw' ? 'string' : interpolateMode,\n interpolateMode === 'raw' ? undefined : values,\n visitedLinkStack\n );\n\n if (this._isFallbackRoot(translated)) {\n if (false) {}\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n var root = this._root.$i18n;\n translated = root._translate(\n root._getMessages(), root.locale, root.fallbackLocale,\n linkPlaceholder, host, interpolateMode, values\n );\n }\n translated = this._warnDefault(\n locale, linkPlaceholder, translated, host,\n Array.isArray(values) ? values : [values],\n interpolateMode\n );\n\n if (this._modifiers.hasOwnProperty(formatterName)) {\n translated = this._modifiers[formatterName](translated);\n } else if (defaultModifiers.hasOwnProperty(formatterName)) {\n translated = defaultModifiers[formatterName](translated);\n }\n\n visitedLinkStack.pop();\n\n // Replace the link with the translated\n ret = !translated ? ret : ret.replace(link, translated);\n }\n\n return ret\n};\n\nVueI18n.prototype._render = function _render (message, interpolateMode, values, path) {\n var ret = this._formatter.interpolate(message, values, path);\n\n // If the custom formatter refuses to work - apply the default one\n if (!ret) {\n ret = defaultFormatter.interpolate(message, values, path);\n }\n\n // if interpolateMode is **not** 'string' ('row'),\n // return the compiled data (e.g. ['foo', VNode, 'bar']) with formatter\n return interpolateMode === 'string' && !isString(ret) ? ret.join('') : ret\n};\n\nVueI18n.prototype._appendItemToChain = function _appendItemToChain (chain, item, blocks) {\n var follow = false;\n if (!includes(chain, item)) {\n follow = true;\n if (item) {\n follow = item[item.length - 1] !== '!';\n item = item.replace(/!/g, '');\n chain.push(item);\n if (blocks && blocks[item]) {\n follow = blocks[item];\n }\n }\n }\n return follow\n};\n\nVueI18n.prototype._appendLocaleToChain = function _appendLocaleToChain (chain, locale, blocks) {\n var follow;\n var tokens = locale.split('-');\n do {\n var item = tokens.join('-');\n follow = this._appendItemToChain(chain, item, blocks);\n tokens.splice(-1, 1);\n } while (tokens.length && (follow === true))\n return follow\n};\n\nVueI18n.prototype._appendBlockToChain = function _appendBlockToChain (chain, block, blocks) {\n var follow = true;\n for (var i = 0; (i < block.length) && (isBoolean(follow)); i++) {\n var locale = block[i];\n if (isString(locale)) {\n follow = this._appendLocaleToChain(chain, locale, blocks);\n }\n }\n return follow\n};\n\nVueI18n.prototype._getLocaleChain = function _getLocaleChain (start, fallbackLocale) {\n if (start === '') { return [] }\n\n if (!this._localeChainCache) {\n this._localeChainCache = {};\n }\n\n var chain = this._localeChainCache[start];\n if (!chain) {\n if (!fallbackLocale) {\n fallbackLocale = this.fallbackLocale;\n }\n chain = [];\n\n // first block defined by start\n var block = [start];\n\n // while any intervening block found\n while (isArray(block)) {\n block = this._appendBlockToChain(\n chain,\n block,\n fallbackLocale\n );\n }\n\n // last block defined by default\n var defaults;\n if (isArray(fallbackLocale)) {\n defaults = fallbackLocale;\n } else if (isObject(fallbackLocale)) {\n /* $FlowFixMe */\n if (fallbackLocale['default']) {\n defaults = fallbackLocale['default'];\n } else {\n defaults = null;\n }\n } else {\n defaults = fallbackLocale;\n }\n\n // convert defaults to array\n if (isString(defaults)) {\n block = [defaults];\n } else {\n block = defaults;\n }\n if (block) {\n this._appendBlockToChain(\n chain,\n block,\n null\n );\n }\n this._localeChainCache[start] = chain;\n }\n return chain\n};\n\nVueI18n.prototype._translate = function _translate (\n messages,\n locale,\n fallback,\n key,\n host,\n interpolateMode,\n args\n) {\n var chain = this._getLocaleChain(locale, fallback);\n var res;\n for (var i = 0; i < chain.length; i++) {\n var step = chain[i];\n res =\n this._interpolate(step, messages[step], key, host, interpolateMode, args, [key]);\n if (!isNull(res)) {\n if (step !== locale && \"production\" !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to translate the keypath '\" + key + \"' with '\" + step + \"' locale.\"));\n }\n return res\n }\n }\n return null\n};\n\nVueI18n.prototype._t = function _t (key, _locale, messages, host) {\n var ref;\n\n var values = [], len = arguments.length - 4;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 4 ];\n if (!key) { return '' }\n\n var parsedArgs = parseArgs.apply(void 0, values);\n var locale = parsedArgs.locale || _locale;\n\n var ret = this._translate(\n messages, locale, this.fallbackLocale, key,\n host, 'string', parsedArgs.params\n );\n if (this._isFallbackRoot(ret)) {\n if (false) {}\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return (ref = this._root).$t.apply(ref, [ key ].concat( values ))\n } else {\n ret = this._warnDefault(locale, key, ret, host, values, 'string');\n if (this._postTranslation && ret !== null && ret !== undefined) {\n ret = this._postTranslation(ret, key);\n }\n return ret\n }\n};\n\nVueI18n.prototype.t = function t (key) {\n var ref;\n\n var values = [], len = arguments.length - 1;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 1 ];\n return (ref = this)._t.apply(ref, [ key, this.locale, this._getMessages(), null ].concat( values ))\n};\n\nVueI18n.prototype._i = function _i (key, locale, messages, host, values) {\n var ret =\n this._translate(messages, locale, this.fallbackLocale, key, host, 'raw', values);\n if (this._isFallbackRoot(ret)) {\n if (false) {}\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n.i(key, locale, values)\n } else {\n return this._warnDefault(locale, key, ret, host, [values], 'raw')\n }\n};\n\nVueI18n.prototype.i = function i (key, locale, values) {\n /* istanbul ignore if */\n if (!key) { return '' }\n\n if (!isString(locale)) {\n locale = this.locale;\n }\n\n return this._i(key, locale, this._getMessages(), null, values)\n};\n\nVueI18n.prototype._tc = function _tc (\n key,\n _locale,\n messages,\n host,\n choice\n) {\n var ref;\n\n var values = [], len = arguments.length - 5;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 5 ];\n if (!key) { return '' }\n if (choice === undefined) {\n choice = 1;\n }\n\n var predefined = { 'count': choice, 'n': choice };\n var parsedArgs = parseArgs.apply(void 0, values);\n parsedArgs.params = Object.assign(predefined, parsedArgs.params);\n values = parsedArgs.locale === null ? [parsedArgs.params] : [parsedArgs.locale, parsedArgs.params];\n return this.fetchChoice((ref = this)._t.apply(ref, [ key, _locale, messages, host ].concat( values )), choice)\n};\n\nVueI18n.prototype.fetchChoice = function fetchChoice (message, choice) {\n /* istanbul ignore if */\n if (!message && !isString(message)) { return null }\n var choices = message.split('|');\n\n choice = this.getChoiceIndex(choice, choices.length);\n if (!choices[choice]) { return message }\n return choices[choice].trim()\n};\n\nVueI18n.prototype.tc = function tc (key, choice) {\n var ref;\n\n var values = [], len = arguments.length - 2;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 2 ];\n return (ref = this)._tc.apply(ref, [ key, this.locale, this._getMessages(), null, choice ].concat( values ))\n};\n\nVueI18n.prototype._te = function _te (key, locale, messages) {\n var args = [], len = arguments.length - 3;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 3 ];\n\n var _locale = parseArgs.apply(void 0, args).locale || locale;\n return this._exist(messages[_locale], key)\n};\n\nVueI18n.prototype.te = function te (key, locale) {\n return this._te(key, this.locale, this._getMessages(), locale)\n};\n\nVueI18n.prototype.getLocaleMessage = function getLocaleMessage (locale) {\n return looseClone(this._vm.messages[locale] || {})\n};\n\nVueI18n.prototype.setLocaleMessage = function setLocaleMessage (locale, message) {\n if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n this._checkLocaleMessage(locale, this._warnHtmlInMessage, message);\n }\n this._vm.$set(this._vm.messages, locale, message);\n};\n\nVueI18n.prototype.mergeLocaleMessage = function mergeLocaleMessage (locale, message) {\n if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n this._checkLocaleMessage(locale, this._warnHtmlInMessage, message);\n }\n this._vm.$set(this._vm.messages, locale, merge({}, this._vm.messages[locale] || {}, message));\n};\n\nVueI18n.prototype.getDateTimeFormat = function getDateTimeFormat (locale) {\n return looseClone(this._vm.dateTimeFormats[locale] || {})\n};\n\nVueI18n.prototype.setDateTimeFormat = function setDateTimeFormat (locale, format) {\n this._vm.$set(this._vm.dateTimeFormats, locale, format);\n this._clearDateTimeFormat(locale, format);\n};\n\nVueI18n.prototype.mergeDateTimeFormat = function mergeDateTimeFormat (locale, format) {\n this._vm.$set(this._vm.dateTimeFormats, locale, merge(this._vm.dateTimeFormats[locale] || {}, format));\n this._clearDateTimeFormat(locale, format);\n};\n\nVueI18n.prototype._clearDateTimeFormat = function _clearDateTimeFormat (locale, format) {\n for (var key in format) {\n var id = locale + \"__\" + key;\n\n if (!this._dateTimeFormatters.hasOwnProperty(id)) {\n continue\n }\n\n delete this._dateTimeFormatters[id];\n }\n};\n\nVueI18n.prototype._localizeDateTime = function _localizeDateTime (\n value,\n locale,\n fallback,\n dateTimeFormats,\n key\n) {\n var _locale = locale;\n var formats = dateTimeFormats[_locale];\n\n var chain = this._getLocaleChain(locale, fallback);\n for (var i = 0; i < chain.length; i++) {\n var current = _locale;\n var step = chain[i];\n formats = dateTimeFormats[step];\n _locale = step;\n // fallback locale\n if (isNull(formats) || isNull(formats[key])) {\n if (step !== locale && \"production\" !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to '\" + step + \"' datetime formats from '\" + current + \"' datetime formats.\"));\n }\n } else {\n break\n }\n }\n\n if (isNull(formats) || isNull(formats[key])) {\n return null\n } else {\n var format = formats[key];\n var id = _locale + \"__\" + key;\n var formatter = this._dateTimeFormatters[id];\n if (!formatter) {\n formatter = this._dateTimeFormatters[id] = new Intl.DateTimeFormat(_locale, format);\n }\n return formatter.format(value)\n }\n};\n\nVueI18n.prototype._d = function _d (value, locale, key) {\n /* istanbul ignore if */\n if (false) {}\n\n if (!key) {\n return new Intl.DateTimeFormat(locale).format(value)\n }\n\n var ret =\n this._localizeDateTime(value, locale, this.fallbackLocale, this._getDateTimeFormats(), key);\n if (this._isFallbackRoot(ret)) {\n if (false) {}\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n.d(value, key, locale)\n } else {\n return ret || ''\n }\n};\n\nVueI18n.prototype.d = function d (value) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n var locale = this.locale;\n var key = null;\n\n if (args.length === 1) {\n if (isString(args[0])) {\n key = args[0];\n } else if (isObject(args[0])) {\n if (args[0].locale) {\n locale = args[0].locale;\n }\n if (args[0].key) {\n key = args[0].key;\n }\n }\n } else if (args.length === 2) {\n if (isString(args[0])) {\n key = args[0];\n }\n if (isString(args[1])) {\n locale = args[1];\n }\n }\n\n return this._d(value, locale, key)\n};\n\nVueI18n.prototype.getNumberFormat = function getNumberFormat (locale) {\n return looseClone(this._vm.numberFormats[locale] || {})\n};\n\nVueI18n.prototype.setNumberFormat = function setNumberFormat (locale, format) {\n this._vm.$set(this._vm.numberFormats, locale, format);\n this._clearNumberFormat(locale, format);\n};\n\nVueI18n.prototype.mergeNumberFormat = function mergeNumberFormat (locale, format) {\n this._vm.$set(this._vm.numberFormats, locale, merge(this._vm.numberFormats[locale] || {}, format));\n this._clearNumberFormat(locale, format);\n};\n\nVueI18n.prototype._clearNumberFormat = function _clearNumberFormat (locale, format) {\n for (var key in format) {\n var id = locale + \"__\" + key;\n\n if (!this._numberFormatters.hasOwnProperty(id)) {\n continue\n }\n\n delete this._numberFormatters[id];\n }\n};\n\nVueI18n.prototype._getNumberFormatter = function _getNumberFormatter (\n value,\n locale,\n fallback,\n numberFormats,\n key,\n options\n) {\n var _locale = locale;\n var formats = numberFormats[_locale];\n\n var chain = this._getLocaleChain(locale, fallback);\n for (var i = 0; i < chain.length; i++) {\n var current = _locale;\n var step = chain[i];\n formats = numberFormats[step];\n _locale = step;\n // fallback locale\n if (isNull(formats) || isNull(formats[key])) {\n if (step !== locale && \"production\" !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to '\" + step + \"' number formats from '\" + current + \"' number formats.\"));\n }\n } else {\n break\n }\n }\n\n if (isNull(formats) || isNull(formats[key])) {\n return null\n } else {\n var format = formats[key];\n\n var formatter;\n if (options) {\n // If options specified - create one time number formatter\n formatter = new Intl.NumberFormat(_locale, Object.assign({}, format, options));\n } else {\n var id = _locale + \"__\" + key;\n formatter = this._numberFormatters[id];\n if (!formatter) {\n formatter = this._numberFormatters[id] = new Intl.NumberFormat(_locale, format);\n }\n }\n return formatter\n }\n};\n\nVueI18n.prototype._n = function _n (value, locale, key, options) {\n /* istanbul ignore if */\n if (!VueI18n.availabilities.numberFormat) {\n if (false) {}\n return ''\n }\n\n if (!key) {\n var nf = !options ? new Intl.NumberFormat(locale) : new Intl.NumberFormat(locale, options);\n return nf.format(value)\n }\n\n var formatter = this._getNumberFormatter(value, locale, this.fallbackLocale, this._getNumberFormats(), key, options);\n var ret = formatter && formatter.format(value);\n if (this._isFallbackRoot(ret)) {\n if (false) {}\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n.n(value, Object.assign({}, { key: key, locale: locale }, options))\n } else {\n return ret || ''\n }\n};\n\nVueI18n.prototype.n = function n (value) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n var locale = this.locale;\n var key = null;\n var options = null;\n\n if (args.length === 1) {\n if (isString(args[0])) {\n key = args[0];\n } else if (isObject(args[0])) {\n if (args[0].locale) {\n locale = args[0].locale;\n }\n if (args[0].key) {\n key = args[0].key;\n }\n\n // Filter out number format options only\n options = Object.keys(args[0]).reduce(function (acc, key) {\n var obj;\n\n if (includes(numberFormatKeys, key)) {\n return Object.assign({}, acc, ( obj = {}, obj[key] = args[0][key], obj ))\n }\n return acc\n }, null);\n }\n } else if (args.length === 2) {\n if (isString(args[0])) {\n key = args[0];\n }\n if (isString(args[1])) {\n locale = args[1];\n }\n }\n\n return this._n(value, locale, key, options)\n};\n\nVueI18n.prototype._ntp = function _ntp (value, locale, key, options) {\n /* istanbul ignore if */\n if (!VueI18n.availabilities.numberFormat) {\n if (false) {}\n return []\n }\n\n if (!key) {\n var nf = !options ? new Intl.NumberFormat(locale) : new Intl.NumberFormat(locale, options);\n return nf.formatToParts(value)\n }\n\n var formatter = this._getNumberFormatter(value, locale, this.fallbackLocale, this._getNumberFormats(), key, options);\n var ret = formatter && formatter.formatToParts(value);\n if (this._isFallbackRoot(ret)) {\n if (false) {}\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n._ntp(value, locale, key, options)\n } else {\n return ret || []\n }\n};\n\nObject.defineProperties( VueI18n.prototype, prototypeAccessors );\n\nvar availabilities;\n// $FlowFixMe\nObject.defineProperty(VueI18n, 'availabilities', {\n get: function get () {\n if (!availabilities) {\n var intlDefined = typeof Intl !== 'undefined';\n availabilities = {\n dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== 'undefined',\n numberFormat: intlDefined && typeof Intl.NumberFormat !== 'undefined'\n };\n }\n\n return availabilities\n }\n});\n\nVueI18n.install = install;\nVueI18n.version = '8.18.2';\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (VueI18n);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdnVlLWkxOG4vZGlzdC92dWUtaTE4bi5lc20uanM/YTkyNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFVBQVU7QUFDVjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLGlCQUFpQixzQkFBc0I7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QjtBQUM1QixLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHVEQUF1RDs7QUFFdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsYUFBYTtBQUNiLFdBQVc7QUFDWCxnQkFBZ0IsS0FBcUMsRUFBRSxFQUUxQztBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0EsV0FBVztBQUNYLGdCQUFnQixLQUFxQyxFQUFFLEVBRTFDO0FBQ2I7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxZQUFZLEtBQXFDLEVBQUUsRUFFMUM7QUFDVDtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBLHVEQUF1RDs7QUFFdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0EsT0FBTztBQUNQLFlBQVksS0FBcUMsRUFBRSxFQUUxQztBQUNUO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBLHNCQUFzQjs7QUFFdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVSxLQUFxQyxFQUFFLEVBRTFDO0FBQ1A7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSxrQkFBa0I7O0FBRWxCO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQSxNQUFNLEtBQW1ELEVBQUUsRUFFeEQ7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLE1BQU0sS0FBcUMsRUFBRSxFQUUxQzs7QUFFSDtBQUNBLHdDQUF3QztBQUN4QyxzQkFBc0I7QUFDdEI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSxVQUFVLEtBQXFDLEVBQUUsRUFFMUM7QUFDUDtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsaUNBQWlDLGlCQUFpQjtBQUNsRDtBQUNBO0FBQ0EsT0FBTztBQUNQOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLG1DQUFtQztBQUNuQyxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSwyQkFBMkI7O0FBRTNCO0FBQ0E7O0FBRUE7QUFDQSwyQkFBMkI7O0FBRTNCO0FBQ0E7QUFDQTtBQUNBLDBFQUEwRTs7QUFFMUU7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxVQUFVO0FBQ1Y7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxNQUFNLEtBQTBFLEVBQUUsRUFHL0U7QUFDSDs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTSxLQUFvRCxFQUFFLEVBR3pEOztBQUVIO0FBQ0E7QUFDQSxzQkFBc0IsNkNBQTZDO0FBQ25FO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQUlBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQjtBQUNuQjtBQUNBLHFCQUFxQiw0QkFBNEI7QUFDakQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsOENBQThDO0FBQzlDO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQzs7QUFFaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQix5QkFBeUI7QUFDNUMsS0FBSztBQUNMO0FBQ0EsbUNBQW1DO0FBQ25DO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBOztBQUVBLHVCQUF1Qiw0QkFBNEI7O0FBRW5EO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQkFBMkI7O0FBRTNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxjQUFjLEtBQXFDLEVBQUUsRUFFMUM7QUFDWDtBQUNBO0FBQ0E7QUFDQSxZQUFZLEtBQXFDLEVBQUUsRUFFMUM7QUFDVDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx3Q0FBd0M7O0FBRXhDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsOENBQThDOztBQUU5QztBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUFNQTtBQUNBO0FBQ0E7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QTtBQUNBO0FBQ0EsUUFBUSxLQUFxQyxFQUFFLEVBRTFDO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLEtBQWdILEVBQUUsRUFFckg7QUFDTDtBQUNBLHNCQUFzQjtBQUN0QixxREFBcUQsR0FBRywyQkFBMkI7QUFDbkYsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsaUNBQWlDLGlCQUFpQjtBQUNsRDtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUSxLQUFxQyxFQUFFLEVBRTFDO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLEtBQTRFLEVBQUUsRUFFakY7QUFDTDtBQUNBLHNCQUFzQjtBQUN0QjtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBOztBQUVlLGdFQUFPLEVBQUMiLCJmaWxlIjoiMTg4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiB2dWUtaTE4biB2OC4xOC4yIFxuICogKGMpIDIwMjAga2F6dXlhIGthd2FndWNoaVxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxuICovXG4vKiAgKi9cblxuLyoqXG4gKiBjb25zdGFudHNcbiAqL1xuXG52YXIgbnVtYmVyRm9ybWF0S2V5cyA9IFtcbiAgJ3N0eWxlJyxcbiAgJ2N1cnJlbmN5JyxcbiAgJ2N1cnJlbmN5RGlzcGxheScsXG4gICd1c2VHcm91cGluZycsXG4gICdtaW5pbXVtSW50ZWdlckRpZ2l0cycsXG4gICdtaW5pbXVtRnJhY3Rpb25EaWdpdHMnLFxuICAnbWF4aW11bUZyYWN0aW9uRGlnaXRzJyxcbiAgJ21pbmltdW1TaWduaWZpY2FudERpZ2l0cycsXG4gICdtYXhpbXVtU2lnbmlmaWNhbnREaWdpdHMnLFxuICAnbG9jYWxlTWF0Y2hlcicsXG4gICdmb3JtYXRNYXRjaGVyJyxcbiAgJ3VuaXQnXG5dO1xuXG4vKipcbiAqIHV0aWxpdGllc1xuICovXG5cbmZ1bmN0aW9uIHdhcm4gKG1zZywgZXJyKSB7XG4gIGlmICh0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBjb25zb2xlLndhcm4oJ1t2dWUtaTE4bl0gJyArIG1zZyk7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKGVycikge1xuICAgICAgY29uc29sZS53YXJuKGVyci5zdGFjayk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGVycm9yIChtc2csIGVycikge1xuICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgY29uc29sZS5lcnJvcignW3Z1ZS1pMThuXSAnICsgbXNnKTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGVyci5zdGFjayk7XG4gICAgfVxuICB9XG59XG5cbnZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheTtcblxuZnVuY3Rpb24gaXNPYmplY3QgKG9iaikge1xuICByZXR1cm4gb2JqICE9PSBudWxsICYmIHR5cGVvZiBvYmogPT09ICdvYmplY3QnXG59XG5cbmZ1bmN0aW9uIGlzQm9vbGVhbiAodmFsKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsID09PSAnYm9vbGVhbidcbn1cblxuZnVuY3Rpb24gaXNTdHJpbmcgKHZhbCkge1xuICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gJ3N0cmluZydcbn1cblxudmFyIHRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcbnZhciBPQkpFQ1RfU1RSSU5HID0gJ1tvYmplY3QgT2JqZWN0XSc7XG5mdW5jdGlvbiBpc1BsYWluT2JqZWN0IChvYmopIHtcbiAgcmV0dXJuIHRvU3RyaW5nLmNhbGwob2JqKSA9PT0gT0JKRUNUX1NUUklOR1xufVxuXG5mdW5jdGlvbiBpc051bGwgKHZhbCkge1xuICByZXR1cm4gdmFsID09PSBudWxsIHx8IHZhbCA9PT0gdW5kZWZpbmVkXG59XG5cbmZ1bmN0aW9uIHBhcnNlQXJncyAoKSB7XG4gIHZhciBhcmdzID0gW10sIGxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gIHdoaWxlICggbGVuLS0gKSBhcmdzWyBsZW4gXSA9IGFyZ3VtZW50c1sgbGVuIF07XG5cbiAgdmFyIGxvY2FsZSA9IG51bGw7XG4gIHZhciBwYXJhbXMgPSBudWxsO1xuICBpZiAoYXJncy5sZW5ndGggPT09IDEpIHtcbiAgICBpZiAoaXNPYmplY3QoYXJnc1swXSkgfHwgQXJyYXkuaXNBcnJheShhcmdzWzBdKSkge1xuICAgICAgcGFyYW1zID0gYXJnc1swXTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBhcmdzWzBdID09PSAnc3RyaW5nJykge1xuICAgICAgbG9jYWxlID0gYXJnc1swXTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoYXJncy5sZW5ndGggPT09IDIpIHtcbiAgICBpZiAodHlwZW9mIGFyZ3NbMF0gPT09ICdzdHJpbmcnKSB7XG4gICAgICBsb2NhbGUgPSBhcmdzWzBdO1xuICAgIH1cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAoaXNPYmplY3QoYXJnc1sxXSkgfHwgQXJyYXkuaXNBcnJheShhcmdzWzFdKSkge1xuICAgICAgcGFyYW1zID0gYXJnc1sxXTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4geyBsb2NhbGU6IGxvY2FsZSwgcGFyYW1zOiBwYXJhbXMgfVxufVxuXG5mdW5jdGlvbiBsb29zZUNsb25lIChvYmopIHtcbiAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob2JqKSlcbn1cblxuZnVuY3Rpb24gcmVtb3ZlIChhcnIsIGl0ZW0pIHtcbiAgaWYgKGFyci5sZW5ndGgpIHtcbiAgICB2YXIgaW5kZXggPSBhcnIuaW5kZXhPZihpdGVtKTtcbiAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgcmV0dXJuIGFyci5zcGxpY2UoaW5kZXgsIDEpXG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGluY2x1ZGVzIChhcnIsIGl0ZW0pIHtcbiAgcmV0dXJuICEhfmFyci5pbmRleE9mKGl0ZW0pXG59XG5cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5mdW5jdGlvbiBoYXNPd24gKG9iaiwga2V5KSB7XG4gIHJldHVybiBoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KVxufVxuXG5mdW5jdGlvbiBtZXJnZSAodGFyZ2V0KSB7XG4gIHZhciBhcmd1bWVudHMkMSA9IGFyZ3VtZW50cztcblxuICB2YXIgb3V0cHV0ID0gT2JqZWN0KHRhcmdldCk7XG4gIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50cyQxW2ldO1xuICAgIGlmIChzb3VyY2UgIT09IHVuZGVmaW5lZCAmJiBzb3VyY2UgIT09IG51bGwpIHtcbiAgICAgIHZhciBrZXkgPSAodm9pZCAwKTtcbiAgICAgIGZvciAoa2V5IGluIHNvdXJjZSkge1xuICAgICAgICBpZiAoaGFzT3duKHNvdXJjZSwga2V5KSkge1xuICAgICAgICAgIGlmIChpc09iamVjdChzb3VyY2Vba2V5XSkpIHtcbiAgICAgICAgICAgIG91dHB1dFtrZXldID0gbWVyZ2Uob3V0cHV0W2tleV0sIHNvdXJjZVtrZXldKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb3V0cHV0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIG91dHB1dFxufVxuXG5mdW5jdGlvbiBsb29zZUVxdWFsIChhLCBiKSB7XG4gIGlmIChhID09PSBiKSB7IHJldHVybiB0cnVlIH1cbiAgdmFyIGlzT2JqZWN0QSA9IGlzT2JqZWN0KGEpO1xuICB2YXIgaXNPYmplY3RCID0gaXNPYmplY3QoYik7XG4gIGlmIChpc09iamVjdEEgJiYgaXNPYmplY3RCKSB7XG4gICAgdHJ5IHtcbiAgICAgIHZhciBpc0FycmF5QSA9IEFycmF5LmlzQXJyYXkoYSk7XG4gICAgICB2YXIgaXNBcnJheUIgPSBBcnJheS5pc0FycmF5KGIpO1xuICAgICAgaWYgKGlzQXJyYXlBICYmIGlzQXJyYXlCKSB7XG4gICAgICAgIHJldHVybiBhLmxlbmd0aCA9PT0gYi5sZW5ndGggJiYgYS5ldmVyeShmdW5jdGlvbiAoZSwgaSkge1xuICAgICAgICAgIHJldHVybiBsb29zZUVxdWFsKGUsIGJbaV0pXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2UgaWYgKCFpc0FycmF5QSAmJiAhaXNBcnJheUIpIHtcbiAgICAgICAgdmFyIGtleXNBID0gT2JqZWN0LmtleXMoYSk7XG4gICAgICAgIHZhciBrZXlzQiA9IE9iamVjdC5rZXlzKGIpO1xuICAgICAgICByZXR1cm4ga2V5c0EubGVuZ3RoID09PSBrZXlzQi5sZW5ndGggJiYga2V5c0EuZXZlcnkoZnVuY3Rpb24gKGtleSkge1xuICAgICAgICAgIHJldHVybiBsb29zZUVxdWFsKGFba2V5XSwgYltrZXldKVxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfSBlbHNlIGlmICghaXNPYmplY3RBICYmICFpc09iamVjdEIpIHtcbiAgICByZXR1cm4gU3RyaW5nKGEpID09PSBTdHJpbmcoYilcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gZXh0ZW5kIChWdWUpIHtcbiAgaWYgKCFWdWUucHJvdG90eXBlLmhhc093blByb3BlcnR5KCckaTE4bicpKSB7XG4gICAgLy8gJEZsb3dGaXhNZVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShWdWUucHJvdG90eXBlLCAnJGkxOG4nLCB7XG4gICAgICBnZXQ6IGZ1bmN0aW9uIGdldCAoKSB7IHJldHVybiB0aGlzLl9pMThuIH1cbiAgICB9KTtcbiAgfVxuXG4gIFZ1ZS5wcm90b3R5cGUuJHQgPSBmdW5jdGlvbiAoa2V5KSB7XG4gICAgdmFyIHZhbHVlcyA9IFtdLCBsZW4gPSBhcmd1bWVudHMubGVuZ3RoIC0gMTtcbiAgICB3aGlsZSAoIGxlbi0tID4gMCApIHZhbHVlc1sgbGVuIF0gPSBhcmd1bWVudHNbIGxlbiArIDEgXTtcblxuICAgIHZhciBpMThuID0gdGhpcy4kaTE4bjtcbiAgICByZXR1cm4gaTE4bi5fdC5hcHBseShpMThuLCBbIGtleSwgaTE4bi5sb2NhbGUsIGkxOG4uX2dldE1lc3NhZ2VzKCksIHRoaXMgXS5jb25jYXQoIHZhbHVlcyApKVxuICB9O1xuXG4gIFZ1ZS5wcm90b3R5cGUuJHRjID0gZnVuY3Rpb24gKGtleSwgY2hvaWNlKSB7XG4gICAgdmFyIHZhbHVlcyA9IFtdLCBsZW4gPSBhcmd1bWVudHMubGVuZ3RoIC0gMjtcbiAgICB3aGlsZSAoIGxlbi0tID4gMCApIHZhbHVlc1sgbGVuIF0gPSBhcmd1bWVudHNbIGxlbiArIDIgXTtcblxuICAgIHZhciBpMThuID0gdGhpcy4kaTE4bjtcbiAgICByZXR1cm4gaTE4bi5fdGMuYXBwbHkoaTE4biwgWyBrZXksIGkxOG4ubG9jYWxlLCBpMThuLl9nZXRNZXNzYWdlcygpLCB0aGlzLCBjaG9pY2UgXS5jb25jYXQoIHZhbHVlcyApKVxuICB9O1xuXG4gIFZ1ZS5wcm90b3R5cGUuJHRlID0gZnVuY3Rpb24gKGtleSwgbG9jYWxlKSB7XG4gICAgdmFyIGkxOG4gPSB0aGlzLiRpMThuO1xuICAgIHJldHVybiBpMThuLl90ZShrZXksIGkxOG4ubG9jYWxlLCBpMThuLl9nZXRNZXNzYWdlcygpLCBsb2NhbGUpXG4gIH07XG5cbiAgVnVlLnByb3RvdHlwZS4kZCA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIHZhciByZWY7XG5cbiAgICB2YXIgYXJncyA9IFtdLCBsZW4gPSBhcmd1bWVudHMubGVuZ3RoIC0gMTtcbiAgICB3aGlsZSAoIGxlbi0tID4gMCApIGFyZ3NbIGxlbiBdID0gYXJndW1lbnRzWyBsZW4gKyAxIF07XG4gICAgcmV0dXJuIChyZWYgPSB0aGlzLiRpMThuKS5kLmFwcGx5KHJlZiwgWyB2YWx1ZSBdLmNvbmNhdCggYXJncyApKVxuICB9O1xuXG4gIFZ1ZS5wcm90b3R5cGUuJG4gPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICB2YXIgcmVmO1xuXG4gICAgdmFyIGFyZ3MgPSBbXSwgbGVuID0gYXJndW1lbnRzLmxlbmd0aCAtIDE7XG4gICAgd2hpbGUgKCBsZW4tLSA+IDAgKSBhcmdzWyBsZW4gXSA9IGFyZ3VtZW50c1sgbGVuICsgMSBdO1xuICAgIHJldHVybiAocmVmID0gdGhpcy4kaTE4bikubi5hcHBseShyZWYsIFsgdmFsdWUgXS5jb25jYXQoIGFyZ3MgKSlcbiAgfTtcbn1cblxuLyogICovXG5cbnZhciBtaXhpbiA9IHtcbiAgYmVmb3JlQ3JlYXRlOiBmdW5jdGlvbiBiZWZvcmVDcmVhdGUgKCkge1xuICAgIHZhciBvcHRpb25zID0gdGhpcy4kb3B0aW9ucztcbiAgICBvcHRpb25zLmkxOG4gPSBvcHRpb25zLmkxOG4gfHwgKG9wdGlvbnMuX19pMThuID8ge30gOiBudWxsKTtcblxuICAgIGlmIChvcHRpb25zLmkxOG4pIHtcbiAgICAgIGlmIChvcHRpb25zLmkxOG4gaW5zdGFuY2VvZiBWdWVJMThuKSB7XG4gICAgICAgIC8vIGluaXQgbG9jYWxlIG1lc3NhZ2VzIHZpYSBjdXN0b20gYmxvY2tzXG4gICAgICAgIGlmIChvcHRpb25zLl9faTE4bikge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICB2YXIgbG9jYWxlTWVzc2FnZXMgPSB7fTtcbiAgICAgICAgICAgIG9wdGlvbnMuX19pMThuLmZvckVhY2goZnVuY3Rpb24gKHJlc291cmNlKSB7XG4gICAgICAgICAgICAgIGxvY2FsZU1lc3NhZ2VzID0gbWVyZ2UobG9jYWxlTWVzc2FnZXMsIEpTT04ucGFyc2UocmVzb3VyY2UpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgT2JqZWN0LmtleXMobG9jYWxlTWVzc2FnZXMpLmZvckVhY2goZnVuY3Rpb24gKGxvY2FsZSkge1xuICAgICAgICAgICAgICBvcHRpb25zLmkxOG4ubWVyZ2VMb2NhbGVNZXNzYWdlKGxvY2FsZSwgbG9jYWxlTWVzc2FnZXNbbG9jYWxlXSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgICBlcnJvcihcIkNhbm5vdCBwYXJzZSBsb2NhbGUgbWVzc2FnZXMgdmlhIGN1c3RvbSBibG9ja3MuXCIsIGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pMThuID0gb3B0aW9ucy5pMThuO1xuICAgICAgICB0aGlzLl9pMThuV2F0Y2hlciA9IHRoaXMuX2kxOG4ud2F0Y2hJMThuRGF0YSgpO1xuICAgICAgfSBlbHNlIGlmIChpc1BsYWluT2JqZWN0KG9wdGlvbnMuaTE4bikpIHtcbiAgICAgICAgdmFyIHJvb3RJMThuID0gdGhpcy4kcm9vdCAmJiB0aGlzLiRyb290LiRpMThuICYmIHRoaXMuJHJvb3QuJGkxOG4gaW5zdGFuY2VvZiBWdWVJMThuXG4gICAgICAgICAgPyB0aGlzLiRyb290LiRpMThuXG4gICAgICAgICAgOiBudWxsO1xuICAgICAgICAvLyBjb21wb25lbnQgbG9jYWwgaTE4blxuICAgICAgICBpZiAocm9vdEkxOG4pIHtcbiAgICAgICAgICBvcHRpb25zLmkxOG4ucm9vdCA9IHRoaXMuJHJvb3Q7XG4gICAgICAgICAgb3B0aW9ucy5pMThuLmZvcm1hdHRlciA9IHJvb3RJMThuLmZvcm1hdHRlcjtcbiAgICAgICAgICBvcHRpb25zLmkxOG4uZmFsbGJhY2tMb2NhbGUgPSByb290STE4bi5mYWxsYmFja0xvY2FsZTtcbiAgICAgICAgICBvcHRpb25zLmkxOG4uZm9ybWF0RmFsbGJhY2tNZXNzYWdlcyA9IHJvb3RJMThuLmZvcm1hdEZhbGxiYWNrTWVzc2FnZXM7XG4gICAgICAgICAgb3B0aW9ucy5pMThuLnNpbGVudFRyYW5zbGF0aW9uV2FybiA9IHJvb3RJMThuLnNpbGVudFRyYW5zbGF0aW9uV2FybjtcbiAgICAgICAgICBvcHRpb25zLmkxOG4uc2lsZW50RmFsbGJhY2tXYXJuID0gcm9vdEkxOG4uc2lsZW50RmFsbGJhY2tXYXJuO1xuICAgICAgICAgIG9wdGlvbnMuaTE4bi5wbHVyYWxpemF0aW9uUnVsZXMgPSByb290STE4bi5wbHVyYWxpemF0aW9uUnVsZXM7XG4gICAgICAgICAgb3B0aW9ucy5pMThuLnByZXNlcnZlRGlyZWN0aXZlQ29udGVudCA9IHJvb3RJMThuLnByZXNlcnZlRGlyZWN0aXZlQ29udGVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGluaXQgbG9jYWxlIG1lc3NhZ2VzIHZpYSBjdXN0b20gYmxvY2tzXG4gICAgICAgIGlmIChvcHRpb25zLl9faTE4bikge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICB2YXIgbG9jYWxlTWVzc2FnZXMkMSA9IHt9O1xuICAgICAgICAgICAgb3B0aW9ucy5fX2kxOG4uZm9yRWFjaChmdW5jdGlvbiAocmVzb3VyY2UpIHtcbiAgICAgICAgICAgICAgbG9jYWxlTWVzc2FnZXMkMSA9IG1lcmdlKGxvY2FsZU1lc3NhZ2VzJDEsIEpTT04ucGFyc2UocmVzb3VyY2UpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgb3B0aW9ucy5pMThuLm1lc3NhZ2VzID0gbG9jYWxlTWVzc2FnZXMkMTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgICB3YXJuKFwiQ2Fubm90IHBhcnNlIGxvY2FsZSBtZXNzYWdlcyB2aWEgY3VzdG9tIGJsb2Nrcy5cIiwgZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHJlZiA9IG9wdGlvbnMuaTE4bjtcbiAgICAgICAgdmFyIHNoYXJlZE1lc3NhZ2VzID0gcmVmLnNoYXJlZE1lc3NhZ2VzO1xuICAgICAgICBpZiAoc2hhcmVkTWVzc2FnZXMgJiYgaXNQbGFpbk9iamVjdChzaGFyZWRNZXNzYWdlcykpIHtcbiAgICAgICAgICBvcHRpb25zLmkxOG4ubWVzc2FnZXMgPSBtZXJnZShvcHRpb25zLmkxOG4ubWVzc2FnZXMsIHNoYXJlZE1lc3NhZ2VzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2kxOG4gPSBuZXcgVnVlSTE4bihvcHRpb25zLmkxOG4pO1xuICAgICAgICB0aGlzLl9pMThuV2F0Y2hlciA9IHRoaXMuX2kxOG4ud2F0Y2hJMThuRGF0YSgpO1xuXG4gICAgICAgIGlmIChvcHRpb25zLmkxOG4uc3luYyA9PT0gdW5kZWZpbmVkIHx8ICEhb3B0aW9ucy5pMThuLnN5bmMpIHtcbiAgICAgICAgICB0aGlzLl9sb2NhbGVXYXRjaGVyID0gdGhpcy4kaTE4bi53YXRjaExvY2FsZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJvb3RJMThuKSB7XG4gICAgICAgICAgcm9vdEkxOG4ub25Db21wb25lbnRJbnN0YW5jZUNyZWF0ZWQodGhpcy5faTE4bik7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgd2FybihcIkNhbm5vdCBiZSBpbnRlcnByZXRlZCAnaTE4bicgb3B0aW9uLlwiKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy4kcm9vdCAmJiB0aGlzLiRyb290LiRpMThuICYmIHRoaXMuJHJvb3QuJGkxOG4gaW5zdGFuY2VvZiBWdWVJMThuKSB7XG4gICAgICAvLyByb290IGkxOG5cbiAgICAgIHRoaXMuX2kxOG4gPSB0aGlzLiRyb290LiRpMThuO1xuICAgIH0gZWxzZSBpZiAob3B0aW9ucy5wYXJlbnQgJiYgb3B0aW9ucy5wYXJlbnQuJGkxOG4gJiYgb3B0aW9ucy5wYXJlbnQuJGkxOG4gaW5zdGFuY2VvZiBWdWVJMThuKSB7XG4gICAgICAvLyBwYXJlbnQgaTE4blxuICAgICAgdGhpcy5faTE4biA9IG9wdGlvbnMucGFyZW50LiRpMThuO1xuICAgIH1cbiAgfSxcblxuICBiZWZvcmVNb3VudDogZnVuY3Rpb24gYmVmb3JlTW91bnQgKCkge1xuICAgIHZhciBvcHRpb25zID0gdGhpcy4kb3B0aW9ucztcbiAgICBvcHRpb25zLmkxOG4gPSBvcHRpb25zLmkxOG4gfHwgKG9wdGlvbnMuX19pMThuID8ge30gOiBudWxsKTtcblxuICAgIGlmIChvcHRpb25zLmkxOG4pIHtcbiAgICAgIGlmIChvcHRpb25zLmkxOG4gaW5zdGFuY2VvZiBWdWVJMThuKSB7XG4gICAgICAgIC8vIGluaXQgbG9jYWxlIG1lc3NhZ2VzIHZpYSBjdXN0b20gYmxvY2tzXG4gICAgICAgIHRoaXMuX2kxOG4uc3Vic2NyaWJlRGF0YUNoYW5naW5nKHRoaXMpO1xuICAgICAgICB0aGlzLl9zdWJzY3JpYmluZyA9IHRydWU7XG4gICAgICB9IGVsc2UgaWYgKGlzUGxhaW5PYmplY3Qob3B0aW9ucy5pMThuKSkge1xuICAgICAgICB0aGlzLl9pMThuLnN1YnNjcmliZURhdGFDaGFuZ2luZyh0aGlzKTtcbiAgICAgICAgdGhpcy5fc3Vic2NyaWJpbmcgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICB3YXJuKFwiQ2Fubm90IGJlIGludGVycHJldGVkICdpMThuJyBvcHRpb24uXCIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLiRyb290ICYmIHRoaXMuJHJvb3QuJGkxOG4gJiYgdGhpcy4kcm9vdC4kaTE4biBpbnN0YW5jZW9mIFZ1ZUkxOG4pIHtcbiAgICAgIHRoaXMuX2kxOG4uc3Vic2NyaWJlRGF0YUNoYW5naW5nKHRoaXMpO1xuICAgICAgdGhpcy5fc3Vic2NyaWJpbmcgPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAob3B0aW9ucy5wYXJlbnQgJiYgb3B0aW9ucy5wYXJlbnQuJGkxOG4gJiYgb3B0aW9ucy5wYXJlbnQuJGkxOG4gaW5zdGFuY2VvZiBWdWVJMThuKSB7XG4gICAgICB0aGlzLl9pMThuLnN1YnNjcmliZURhdGFDaGFuZ2luZyh0aGlzKTtcbiAgICAgIHRoaXMuX3N1YnNjcmliaW5nID0gdHJ1ZTtcbiAgICB9XG4gIH0sXG5cbiAgYmVmb3JlRGVzdHJveTogZnVuY3Rpb24gYmVmb3JlRGVzdHJveSAoKSB7XG4gICAgaWYgKCF0aGlzLl9pMThuKSB7IHJldHVybiB9XG5cbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKHNlbGYuX3N1YnNjcmliaW5nKSB7XG4gICAgICAgIHNlbGYuX2kxOG4udW5zdWJzY3JpYmVEYXRhQ2hhbmdpbmcoc2VsZik7XG4gICAgICAgIGRlbGV0ZSBzZWxmLl9zdWJzY3JpYmluZztcbiAgICAgIH1cblxuICAgICAgaWYgKHNlbGYuX2kxOG5XYXRjaGVyKSB7XG4gICAgICAgIHNlbGYuX2kxOG5XYXRjaGVyKCk7XG4gICAgICAgIHNlbGYuX2kxOG4uZGVzdHJveVZNKCk7XG4gICAgICAgIGRlbGV0ZSBzZWxmLl9pMThuV2F0Y2hlcjtcbiAgICAgIH1cblxuICAgICAgaWYgKHNlbGYuX2xvY2FsZVdhdGNoZXIpIHtcbiAgICAgICAgc2VsZi5fbG9jYWxlV2F0Y2hlcigpO1xuICAgICAgICBkZWxldGUgc2VsZi5fbG9jYWxlV2F0Y2hlcjtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufTtcblxuLyogICovXG5cbnZhciBpbnRlcnBvbGF0aW9uQ29tcG9uZW50ID0ge1xuICBuYW1lOiAnaTE4bicsXG4gIGZ1bmN0aW9uYWw6IHRydWUsXG4gIHByb3BzOiB7XG4gICAgdGFnOiB7XG4gICAgICB0eXBlOiBbU3RyaW5nLCBCb29sZWFuXSxcbiAgICAgIGRlZmF1bHQ6ICdzcGFuJ1xuICAgIH0sXG4gICAgcGF0aDoge1xuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICB9LFxuICAgIGxvY2FsZToge1xuICAgICAgdHlwZTogU3RyaW5nXG4gICAgfSxcbiAgICBwbGFjZXM6IHtcbiAgICAgIHR5cGU6IFtBcnJheSwgT2JqZWN0XVxuICAgIH1cbiAgfSxcbiAgcmVuZGVyOiBmdW5jdGlvbiByZW5kZXIgKGgsIHJlZikge1xuICAgIHZhciBkYXRhID0gcmVmLmRhdGE7XG4gICAgdmFyIHBhcmVudCA9IHJlZi5wYXJlbnQ7XG4gICAgdmFyIHByb3BzID0gcmVmLnByb3BzO1xuICAgIHZhciBzbG90cyA9IHJlZi5zbG90cztcblxuICAgIHZhciAkaTE4biA9IHBhcmVudC4kaTE4bjtcbiAgICBpZiAoISRpMThuKSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICB3YXJuKCdDYW5ub3QgZmluZCBWdWVJMThuIGluc3RhbmNlIScpO1xuICAgICAgfVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdmFyIHBhdGggPSBwcm9wcy5wYXRoO1xuICAgIHZhciBsb2NhbGUgPSBwcm9wcy5sb2NhbGU7XG4gICAgdmFyIHBsYWNlcyA9IHByb3BzLnBsYWNlcztcbiAgICB2YXIgcGFyYW1zID0gc2xvdHMoKTtcbiAgICB2YXIgY2hpbGRyZW4gPSAkaTE4bi5pKFxuICAgICAgcGF0aCxcbiAgICAgIGxvY2FsZSxcbiAgICAgIG9ubHlIYXNEZWZhdWx0UGxhY2UocGFyYW1zKSB8fCBwbGFjZXNcbiAgICAgICAgPyB1c2VMZWdhY3lQbGFjZXMocGFyYW1zLmRlZmF1bHQsIHBsYWNlcylcbiAgICAgICAgOiBwYXJhbXNcbiAgICApO1xuXG4gICAgdmFyIHRhZyA9ICghIXByb3BzLnRhZyAmJiBwcm9wcy50YWcgIT09IHRydWUpIHx8IHByb3BzLnRhZyA9PT0gZmFsc2UgPyBwcm9wcy50YWcgOiAnc3Bhbic7XG4gICAgcmV0dXJuIHRhZyA/IGgodGFnLCBkYXRhLCBjaGlsZHJlbikgOiBjaGlsZHJlblxuICB9XG59O1xuXG5mdW5jdGlvbiBvbmx5SGFzRGVmYXVsdFBsYWNlIChwYXJhbXMpIHtcbiAgdmFyIHByb3A7XG4gIGZvciAocHJvcCBpbiBwYXJhbXMpIHtcbiAgICBpZiAocHJvcCAhPT0gJ2RlZmF1bHQnKSB7IHJldHVybiBmYWxzZSB9XG4gIH1cbiAgcmV0dXJuIEJvb2xlYW4ocHJvcClcbn1cblxuZnVuY3Rpb24gdXNlTGVnYWN5UGxhY2VzIChjaGlsZHJlbiwgcGxhY2VzKSB7XG4gIHZhciBwYXJhbXMgPSBwbGFjZXMgPyBjcmVhdGVQYXJhbXNGcm9tUGxhY2VzKHBsYWNlcykgOiB7fTtcblxuICBpZiAoIWNoaWxkcmVuKSB7IHJldHVybiBwYXJhbXMgfVxuXG4gIC8vIEZpbHRlciBlbXB0eSB0ZXh0IG5vZGVzXG4gIGNoaWxkcmVuID0gY2hpbGRyZW4uZmlsdGVyKGZ1bmN0aW9uIChjaGlsZCkge1xuICAgIHJldHVybiBjaGlsZC50YWcgfHwgY2hpbGQudGV4dC50cmltKCkgIT09ICcnXG4gIH0pO1xuXG4gIHZhciBldmVyeVBsYWNlID0gY2hpbGRyZW4uZXZlcnkodm5vZGVIYXNQbGFjZUF0dHJpYnV0ZSk7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGV2ZXJ5UGxhY2UpIHtcbiAgICB3YXJuKCdgcGxhY2VgIGF0dHJpYnV0ZSBpcyBkZXByZWNhdGVkIGluIG5leHQgbWFqb3IgdmVyc2lvbi4gUGxlYXNlIHN3aXRjaCB0byBWdWUgc2xvdHMuJyk7XG4gIH1cblxuICByZXR1cm4gY2hpbGRyZW4ucmVkdWNlKFxuICAgIGV2ZXJ5UGxhY2UgPyBhc3NpZ25DaGlsZFBsYWNlIDogYXNzaWduQ2hpbGRJbmRleCxcbiAgICBwYXJhbXNcbiAgKVxufVxuXG5mdW5jdGlvbiBjcmVhdGVQYXJhbXNGcm9tUGxhY2VzIChwbGFjZXMpIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICB3YXJuKCdgcGxhY2VzYCBwcm9wIGlzIGRlcHJlY2F0ZWQgaW4gbmV4dCBtYWpvciB2ZXJzaW9uLiBQbGVhc2Ugc3dpdGNoIHRvIFZ1ZSBzbG90cy4nKTtcbiAgfVxuXG4gIHJldHVybiBBcnJheS5pc0FycmF5KHBsYWNlcylcbiAgICA/IHBsYWNlcy5yZWR1Y2UoYXNzaWduQ2hpbGRJbmRleCwge30pXG4gICAgOiBPYmplY3QuYXNzaWduKHt9LCBwbGFjZXMpXG59XG5cbmZ1bmN0aW9uIGFzc2lnbkNoaWxkUGxhY2UgKHBhcmFtcywgY2hpbGQpIHtcbiAgaWYgKGNoaWxkLmRhdGEgJiYgY2hpbGQuZGF0YS5hdHRycyAmJiBjaGlsZC5kYXRhLmF0dHJzLnBsYWNlKSB7XG4gICAgcGFyYW1zW2NoaWxkLmRhdGEuYXR0cnMucGxhY2VdID0gY2hpbGQ7XG4gIH1cbiAgcmV0dXJuIHBhcmFtc1xufVxuXG5mdW5jdGlvbiBhc3NpZ25DaGlsZEluZGV4IChwYXJhbXMsIGNoaWxkLCBpbmRleCkge1xuICBwYXJhbXNbaW5kZXhdID0gY2hpbGQ7XG4gIHJldHVybiBwYXJhbXNcbn1cblxuZnVuY3Rpb24gdm5vZGVIYXNQbGFjZUF0dHJpYnV0ZSAodm5vZGUpIHtcbiAgcmV0dXJuIEJvb2xlYW4odm5vZGUuZGF0YSAmJiB2bm9kZS5kYXRhLmF0dHJzICYmIHZub2RlLmRhdGEuYXR0cnMucGxhY2UpXG59XG5cbi8qICAqL1xuXG52YXIgbnVtYmVyQ29tcG9uZW50ID0ge1xuICBuYW1lOiAnaTE4bi1uJyxcbiAgZnVuY3Rpb25hbDogdHJ1ZSxcbiAgcHJvcHM6IHtcbiAgICB0YWc6IHtcbiAgICAgIHR5cGU6IFtTdHJpbmcsIEJvb2xlYW5dLFxuICAgICAgZGVmYXVsdDogJ3NwYW4nXG4gICAgfSxcbiAgICB2YWx1ZToge1xuICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICB9LFxuICAgIGZvcm1hdDoge1xuICAgICAgdHlwZTogW1N0cmluZywgT2JqZWN0XVxuICAgIH0sXG4gICAgbG9jYWxlOiB7XG4gICAgICB0eXBlOiBTdHJpbmdcbiAgICB9XG4gIH0sXG4gIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyIChoLCByZWYpIHtcbiAgICB2YXIgcHJvcHMgPSByZWYucHJvcHM7XG4gICAgdmFyIHBhcmVudCA9IHJlZi5wYXJlbnQ7XG4gICAgdmFyIGRhdGEgPSByZWYuZGF0YTtcblxuICAgIHZhciBpMThuID0gcGFyZW50LiRpMThuO1xuXG4gICAgaWYgKCFpMThuKSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICB3YXJuKCdDYW5ub3QgZmluZCBWdWVJMThuIGluc3RhbmNlIScpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICB2YXIga2V5ID0gbnVsbDtcbiAgICB2YXIgb3B0aW9ucyA9IG51bGw7XG5cbiAgICBpZiAoaXNTdHJpbmcocHJvcHMuZm9ybWF0KSkge1xuICAgICAga2V5ID0gcHJvcHMuZm9ybWF0O1xuICAgIH0gZWxzZSBpZiAoaXNPYmplY3QocHJvcHMuZm9ybWF0KSkge1xuICAgICAgaWYgKHByb3BzLmZvcm1hdC5rZXkpIHtcbiAgICAgICAga2V5ID0gcHJvcHMuZm9ybWF0LmtleTtcbiAgICAgIH1cblxuICAgICAgLy8gRmlsdGVyIG91dCBudW1iZXIgZm9ybWF0IG9wdGlvbnMgb25seVxuICAgICAgb3B0aW9ucyA9IE9iamVjdC5rZXlzKHByb3BzLmZvcm1hdCkucmVkdWNlKGZ1bmN0aW9uIChhY2MsIHByb3ApIHtcbiAgICAgICAgdmFyIG9iajtcblxuICAgICAgICBpZiAoaW5jbHVkZXMobnVtYmVyRm9ybWF0S2V5cywgcHJvcCkpIHtcbiAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgYWNjLCAoIG9iaiA9IHt9LCBvYmpbcHJvcF0gPSBwcm9wcy5mb3JtYXRbcHJvcF0sIG9iaiApKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2NcbiAgICAgIH0sIG51bGwpO1xuICAgIH1cblxuICAgIHZhciBsb2NhbGUgPSBwcm9wcy5sb2NhbGUgfHwgaTE4bi5sb2NhbGU7XG4gICAgdmFyIHBhcnRzID0gaTE4bi5fbnRwKHByb3BzLnZhbHVlLCBsb2NhbGUsIGtleSwgb3B0aW9ucyk7XG5cbiAgICB2YXIgdmFsdWVzID0gcGFydHMubWFwKGZ1bmN0aW9uIChwYXJ0LCBpbmRleCkge1xuICAgICAgdmFyIG9iajtcblxuICAgICAgdmFyIHNsb3QgPSBkYXRhLnNjb3BlZFNsb3RzICYmIGRhdGEuc2NvcGVkU2xvdHNbcGFydC50eXBlXTtcbiAgICAgIHJldHVybiBzbG90ID8gc2xvdCgoIG9iaiA9IHt9LCBvYmpbcGFydC50eXBlXSA9IHBhcnQudmFsdWUsIG9iai5pbmRleCA9IGluZGV4LCBvYmoucGFydHMgPSBwYXJ0cywgb2JqICkpIDogcGFydC52YWx1ZVxuICAgIH0pO1xuXG4gICAgdmFyIHRhZyA9ICghIXByb3BzLnRhZyAmJiBwcm9wcy50YWcgIT09IHRydWUpIHx8IHByb3BzLnRhZyA9PT0gZmFsc2UgPyBwcm9wcy50YWcgOiAnc3Bhbic7XG4gICAgcmV0dXJuIHRhZ1xuICAgICAgPyBoKHRhZywge1xuICAgICAgICBhdHRyczogZGF0YS5hdHRycyxcbiAgICAgICAgJ2NsYXNzJzogZGF0YVsnY2xhc3MnXSxcbiAgICAgICAgc3RhdGljQ2xhc3M6IGRhdGEuc3RhdGljQ2xhc3NcbiAgICAgIH0sIHZhbHVlcylcbiAgICAgIDogdmFsdWVzXG4gIH1cbn07XG5cbi8qICAqL1xuXG5mdW5jdGlvbiBiaW5kIChlbCwgYmluZGluZywgdm5vZGUpIHtcbiAgaWYgKCFhc3NlcnQoZWwsIHZub2RlKSkgeyByZXR1cm4gfVxuXG4gIHQoZWwsIGJpbmRpbmcsIHZub2RlKTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlIChlbCwgYmluZGluZywgdm5vZGUsIG9sZFZOb2RlKSB7XG4gIGlmICghYXNzZXJ0KGVsLCB2bm9kZSkpIHsgcmV0dXJuIH1cblxuICB2YXIgaTE4biA9IHZub2RlLmNvbnRleHQuJGkxOG47XG4gIGlmIChsb2NhbGVFcXVhbChlbCwgdm5vZGUpICYmXG4gICAgKGxvb3NlRXF1YWwoYmluZGluZy52YWx1ZSwgYmluZGluZy5vbGRWYWx1ZSkgJiZcbiAgICAgbG9vc2VFcXVhbChlbC5fbG9jYWxlTWVzc2FnZSwgaTE4bi5nZXRMb2NhbGVNZXNzYWdlKGkxOG4ubG9jYWxlKSkpKSB7IHJldHVybiB9XG5cbiAgdChlbCwgYmluZGluZywgdm5vZGUpO1xufVxuXG5mdW5jdGlvbiB1bmJpbmQgKGVsLCBiaW5kaW5nLCB2bm9kZSwgb2xkVk5vZGUpIHtcbiAgdmFyIHZtID0gdm5vZGUuY29udGV4dDtcbiAgaWYgKCF2bSkge1xuICAgIHdhcm4oJ1Z1ZSBpbnN0YW5jZSBkb2VzIG5vdCBleGlzdHMgaW4gVk5vZGUgY29udGV4dCcpO1xuICAgIHJldHVyblxuICB9XG5cbiAgdmFyIGkxOG4gPSB2bm9kZS5jb250ZXh0LiRpMThuIHx8IHt9O1xuICBpZiAoIWJpbmRpbmcubW9kaWZpZXJzLnByZXNlcnZlICYmICFpMThuLnByZXNlcnZlRGlyZWN0aXZlQ29udGVudCkge1xuICAgIGVsLnRleHRDb250ZW50ID0gJyc7XG4gIH1cbiAgZWwuX3Z0ID0gdW5kZWZpbmVkO1xuICBkZWxldGUgZWxbJ192dCddO1xuICBlbC5fbG9jYWxlID0gdW5kZWZpbmVkO1xuICBkZWxldGUgZWxbJ19sb2NhbGUnXTtcbiAgZWwuX2xvY2FsZU1lc3NhZ2UgPSB1bmRlZmluZWQ7XG4gIGRlbGV0ZSBlbFsnX2xvY2FsZU1lc3NhZ2UnXTtcbn1cblxuZnVuY3Rpb24gYXNzZXJ0IChlbCwgdm5vZGUpIHtcbiAgdmFyIHZtID0gdm5vZGUuY29udGV4dDtcbiAgaWYgKCF2bSkge1xuICAgIHdhcm4oJ1Z1ZSBpbnN0YW5jZSBkb2VzIG5vdCBleGlzdHMgaW4gVk5vZGUgY29udGV4dCcpO1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgaWYgKCF2bS4kaTE4bikge1xuICAgIHdhcm4oJ1Z1ZUkxOG4gaW5zdGFuY2UgZG9lcyBub3QgZXhpc3RzIGluIFZ1ZSBpbnN0YW5jZScpO1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZnVuY3Rpb24gbG9jYWxlRXF1YWwgKGVsLCB2bm9kZSkge1xuICB2YXIgdm0gPSB2bm9kZS5jb250ZXh0O1xuICByZXR1cm4gZWwuX2xvY2FsZSA9PT0gdm0uJGkxOG4ubG9jYWxlXG59XG5cbmZ1bmN0aW9uIHQgKGVsLCBiaW5kaW5nLCB2bm9kZSkge1xuICB2YXIgcmVmJDEsIHJlZiQyO1xuXG4gIHZhciB2YWx1ZSA9IGJpbmRpbmcudmFsdWU7XG5cbiAgdmFyIHJlZiA9IHBhcnNlVmFsdWUodmFsdWUpO1xuICB2YXIgcGF0aCA9IHJlZi5wYXRoO1xuICB2YXIgbG9jYWxlID0gcmVmLmxvY2FsZTtcbiAgdmFyIGFyZ3MgPSByZWYuYXJncztcbiAgdmFyIGNob2ljZSA9IHJlZi5jaG9pY2U7XG4gIGlmICghcGF0aCAmJiAhbG9jYWxlICYmICFhcmdzKSB7XG4gICAgd2FybigndmFsdWUgdHlwZSBub3Qgc3VwcG9ydGVkJyk7XG4gICAgcmV0dXJuXG4gIH1cblxuICBpZiAoIXBhdGgpIHtcbiAgICB3YXJuKCdgcGF0aGAgaXMgcmVxdWlyZWQgaW4gdi10IGRpcmVjdGl2ZScpO1xuICAgIHJldHVyblxuICB9XG5cbiAgdmFyIHZtID0gdm5vZGUuY29udGV4dDtcbiAgaWYgKGNob2ljZSAhPSBudWxsKSB7XG4gICAgZWwuX3Z0ID0gZWwudGV4dENvbnRlbnQgPSAocmVmJDEgPSB2bS4kaTE4bikudGMuYXBwbHkocmVmJDEsIFsgcGF0aCwgY2hvaWNlIF0uY29uY2F0KCBtYWtlUGFyYW1zKGxvY2FsZSwgYXJncykgKSk7XG4gIH0gZWxzZSB7XG4gICAgZWwuX3Z0ID0gZWwudGV4dENvbnRlbnQgPSAocmVmJDIgPSB2bS4kaTE4bikudC5hcHBseShyZWYkMiwgWyBwYXRoIF0uY29uY2F0KCBtYWtlUGFyYW1zKGxvY2FsZSwgYXJncykgKSk7XG4gIH1cbiAgZWwuX2xvY2FsZSA9IHZtLiRpMThuLmxvY2FsZTtcbiAgZWwuX2xvY2FsZU1lc3NhZ2UgPSB2bS4kaTE4bi5nZXRMb2NhbGVNZXNzYWdlKHZtLiRpMThuLmxvY2FsZSk7XG59XG5cbmZ1bmN0aW9uIHBhcnNlVmFsdWUgKHZhbHVlKSB7XG4gIHZhciBwYXRoO1xuICB2YXIgbG9jYWxlO1xuICB2YXIgYXJncztcbiAgdmFyIGNob2ljZTtcblxuICBpZiAoaXNTdHJpbmcodmFsdWUpKSB7XG4gICAgcGF0aCA9IHZhbHVlO1xuICB9IGVsc2UgaWYgKGlzUGxhaW5PYmplY3QodmFsdWUpKSB7XG4gICAgcGF0aCA9IHZhbHVlLnBhdGg7XG4gICAgbG9jYWxlID0gdmFsdWUubG9jYWxlO1xuICAgIGFyZ3MgPSB2YWx1ZS5hcmdzO1xuICAgIGNob2ljZSA9IHZhbHVlLmNob2ljZTtcbiAgfVxuXG4gIHJldHVybiB7IHBhdGg6IHBhdGgsIGxvY2FsZTogbG9jYWxlLCBhcmdzOiBhcmdzLCBjaG9pY2U6IGNob2ljZSB9XG59XG5cbmZ1bmN0aW9uIG1ha2VQYXJhbXMgKGxvY2FsZSwgYXJncykge1xuICB2YXIgcGFyYW1zID0gW107XG5cbiAgbG9jYWxlICYmIHBhcmFtcy5wdXNoKGxvY2FsZSk7XG4gIGlmIChhcmdzICYmIChBcnJheS5pc0FycmF5KGFyZ3MpIHx8IGlzUGxhaW5PYmplY3QoYXJncykpKSB7XG4gICAgcGFyYW1zLnB1c2goYXJncyk7XG4gIH1cblxuICByZXR1cm4gcGFyYW1zXG59XG5cbnZhciBWdWU7XG5cbmZ1bmN0aW9uIGluc3RhbGwgKF9WdWUpIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGluc3RhbGwuaW5zdGFsbGVkICYmIF9WdWUgPT09IFZ1ZSkge1xuICAgIHdhcm4oJ2FscmVhZHkgaW5zdGFsbGVkLicpO1xuICAgIHJldHVyblxuICB9XG4gIGluc3RhbGwuaW5zdGFsbGVkID0gdHJ1ZTtcblxuICBWdWUgPSBfVnVlO1xuXG4gIHZhciB2ZXJzaW9uID0gKFZ1ZS52ZXJzaW9uICYmIE51bWJlcihWdWUudmVyc2lvbi5zcGxpdCgnLicpWzBdKSkgfHwgLTE7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB2ZXJzaW9uIDwgMikge1xuICAgIHdhcm4oKFwidnVlLWkxOG4gKFwiICsgKGluc3RhbGwudmVyc2lvbikgKyBcIikgbmVlZCB0byB1c2UgVnVlIDIuMCBvciBsYXRlciAoVnVlOiBcIiArIChWdWUudmVyc2lvbikgKyBcIikuXCIpKTtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGV4dGVuZChWdWUpO1xuICBWdWUubWl4aW4obWl4aW4pO1xuICBWdWUuZGlyZWN0aXZlKCd0JywgeyBiaW5kOiBiaW5kLCB1cGRhdGU6IHVwZGF0ZSwgdW5iaW5kOiB1bmJpbmQgfSk7XG4gIFZ1ZS5jb21wb25lbnQoaW50ZXJwb2xhdGlvbkNvbXBvbmVudC5uYW1lLCBpbnRlcnBvbGF0aW9uQ29tcG9uZW50KTtcbiAgVnVlLmNvbXBvbmVudChudW1iZXJDb21wb25lbnQubmFtZSwgbnVtYmVyQ29tcG9uZW50KTtcblxuICAvLyB1c2Ugc2ltcGxlIG1lcmdlU3RyYXRlZ2llcyB0byBwcmV2ZW50IGkxOG4gaW5zdGFuY2UgbG9zZSAnX19wcm90b19fJ1xuICB2YXIgc3RyYXRzID0gVnVlLmNvbmZpZy5vcHRpb25NZXJnZVN0cmF0ZWdpZXM7XG4gIHN0cmF0cy5pMThuID0gZnVuY3Rpb24gKHBhcmVudFZhbCwgY2hpbGRWYWwpIHtcbiAgICByZXR1cm4gY2hpbGRWYWwgPT09IHVuZGVmaW5lZFxuICAgICAgPyBwYXJlbnRWYWxcbiAgICAgIDogY2hpbGRWYWxcbiAgfTtcbn1cblxuLyogICovXG5cbnZhciBCYXNlRm9ybWF0dGVyID0gZnVuY3Rpb24gQmFzZUZvcm1hdHRlciAoKSB7XG4gIHRoaXMuX2NhY2hlcyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG59O1xuXG5CYXNlRm9ybWF0dGVyLnByb3RvdHlwZS5pbnRlcnBvbGF0ZSA9IGZ1bmN0aW9uIGludGVycG9sYXRlIChtZXNzYWdlLCB2YWx1ZXMpIHtcbiAgaWYgKCF2YWx1ZXMpIHtcbiAgICByZXR1cm4gW21lc3NhZ2VdXG4gIH1cbiAgdmFyIHRva2VucyA9IHRoaXMuX2NhY2hlc1ttZXNzYWdlXTtcbiAgaWYgKCF0b2tlbnMpIHtcbiAgICB0b2tlbnMgPSBwYXJzZShtZXNzYWdlKTtcbiAgICB0aGlzLl9jYWNoZXNbbWVzc2FnZV0gPSB0b2tlbnM7XG4gIH1cbiAgcmV0dXJuIGNvbXBpbGUodG9rZW5zLCB2YWx1ZXMpXG59O1xuXG5cblxudmFyIFJFX1RPS0VOX0xJU1RfVkFMVUUgPSAvXig/OlxcZCkrLztcbnZhciBSRV9UT0tFTl9OQU1FRF9WQUxVRSA9IC9eKD86XFx3KSsvO1xuXG5mdW5jdGlvbiBwYXJzZSAoZm9ybWF0KSB7XG4gIHZhciB0b2tlbnMgPSBbXTtcbiAgdmFyIHBvc2l0aW9uID0gMDtcblxuICB2YXIgdGV4dCA9ICcnO1xuICB3aGlsZSAocG9zaXRpb24gPCBmb3JtYXQubGVuZ3RoKSB7XG4gICAgdmFyIGNoYXIgPSBmb3JtYXRbcG9zaXRpb24rK107XG4gICAgaWYgKGNoYXIgPT09ICd7Jykge1xuICAgICAgaWYgKHRleHQpIHtcbiAgICAgICAgdG9rZW5zLnB1c2goeyB0eXBlOiAndGV4dCcsIHZhbHVlOiB0ZXh0IH0pO1xuICAgICAgfVxuXG4gICAgICB0ZXh0ID0gJyc7XG4gICAgICB2YXIgc3ViID0gJyc7XG4gICAgICBjaGFyID0gZm9ybWF0W3Bvc2l0aW9uKytdO1xuICAgICAgd2hpbGUgKGNoYXIgIT09IHVuZGVmaW5lZCAmJiBjaGFyICE9PSAnfScpIHtcbiAgICAgICAgc3ViICs9IGNoYXI7XG4gICAgICAgIGNoYXIgPSBmb3JtYXRbcG9zaXRpb24rK107XG4gICAgICB9XG4gICAgICB2YXIgaXNDbG9zZWQgPSBjaGFyID09PSAnfSc7XG5cbiAgICAgIHZhciB0eXBlID0gUkVfVE9LRU5fTElTVF9WQUxVRS50ZXN0KHN1YilcbiAgICAgICAgPyAnbGlzdCdcbiAgICAgICAgOiBpc0Nsb3NlZCAmJiBSRV9UT0tFTl9OQU1FRF9WQUxVRS50ZXN0KHN1YilcbiAgICAgICAgICA/ICduYW1lZCdcbiAgICAgICAgICA6ICd1bmtub3duJztcbiAgICAgIHRva2Vucy5wdXNoKHsgdmFsdWU6IHN1YiwgdHlwZTogdHlwZSB9KTtcbiAgICB9IGVsc2UgaWYgKGNoYXIgPT09ICclJykge1xuICAgICAgLy8gd2hlbiBmb3VuZCByYWlscyBpMThuIHN5bnRheCwgc2tpcCB0ZXh0IGNhcHR1cmVcbiAgICAgIGlmIChmb3JtYXRbKHBvc2l0aW9uKV0gIT09ICd7Jykge1xuICAgICAgICB0ZXh0ICs9IGNoYXI7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRleHQgKz0gY2hhcjtcbiAgICB9XG4gIH1cblxuICB0ZXh0ICYmIHRva2Vucy5wdXNoKHsgdHlwZTogJ3RleHQnLCB2YWx1ZTogdGV4dCB9KTtcblxuICByZXR1cm4gdG9rZW5zXG59XG5cbmZ1bmN0aW9uIGNvbXBpbGUgKHRva2VucywgdmFsdWVzKSB7XG4gIHZhciBjb21waWxlZCA9IFtdO1xuICB2YXIgaW5kZXggPSAwO1xuXG4gIHZhciBtb2RlID0gQXJyYXkuaXNBcnJheSh2YWx1ZXMpXG4gICAgPyAnbGlzdCdcbiAgICA6IGlzT2JqZWN0KHZhbHVlcylcbiAgICAgID8gJ25hbWVkJ1xuICAgICAgOiAndW5rbm93bic7XG4gIGlmIChtb2RlID09PSAndW5rbm93bicpIHsgcmV0dXJuIGNvbXBpbGVkIH1cblxuICB3aGlsZSAoaW5kZXggPCB0b2tlbnMubGVuZ3RoKSB7XG4gICAgdmFyIHRva2VuID0gdG9rZW5zW2luZGV4XTtcbiAgICBzd2l0Y2ggKHRva2VuLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3RleHQnOlxuICAgICAgICBjb21waWxlZC5wdXNoKHRva2VuLnZhbHVlKTtcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ2xpc3QnOlxuICAgICAgICBjb21waWxlZC5wdXNoKHZhbHVlc1twYXJzZUludCh0b2tlbi52YWx1ZSwgMTApXSk7XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICduYW1lZCc6XG4gICAgICAgIGlmIChtb2RlID09PSAnbmFtZWQnKSB7XG4gICAgICAgICAgY29tcGlsZWQucHVzaCgodmFsdWVzKVt0b2tlbi52YWx1ZV0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICB3YXJuKChcIlR5cGUgb2YgdG9rZW4gJ1wiICsgKHRva2VuLnR5cGUpICsgXCInIGFuZCBmb3JtYXQgb2YgdmFsdWUgJ1wiICsgbW9kZSArIFwiJyBkb24ndCBtYXRjaCFcIikpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSAndW5rbm93bic6XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgd2FybihcIkRldGVjdCAndW5rbm93bicgdHlwZSBvZiB0b2tlbiFcIik7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICB9XG4gICAgaW5kZXgrKztcbiAgfVxuXG4gIHJldHVybiBjb21waWxlZFxufVxuXG4vKiAgKi9cblxuLyoqXG4gKiAgUGF0aCBwYXJzZXJcbiAqICAtIEluc3BpcmVkOlxuICogICAgVnVlLmpzIFBhdGggcGFyc2VyXG4gKi9cblxuLy8gYWN0aW9uc1xudmFyIEFQUEVORCA9IDA7XG52YXIgUFVTSCA9IDE7XG52YXIgSU5DX1NVQl9QQVRIX0RFUFRIID0gMjtcbnZhciBQVVNIX1NVQl9QQVRIID0gMztcblxuLy8gc3RhdGVzXG52YXIgQkVGT1JFX1BBVEggPSAwO1xudmFyIElOX1BBVEggPSAxO1xudmFyIEJFRk9SRV9JREVOVCA9IDI7XG52YXIgSU5fSURFTlQgPSAzO1xudmFyIElOX1NVQl9QQVRIID0gNDtcbnZhciBJTl9TSU5HTEVfUVVPVEUgPSA1O1xudmFyIElOX0RPVUJMRV9RVU9URSA9IDY7XG52YXIgQUZURVJfUEFUSCA9IDc7XG52YXIgRVJST1IgPSA4O1xuXG52YXIgcGF0aFN0YXRlTWFjaGluZSA9IFtdO1xuXG5wYXRoU3RhdGVNYWNoaW5lW0JFRk9SRV9QQVRIXSA9IHtcbiAgJ3dzJzogW0JFRk9SRV9QQVRIXSxcbiAgJ2lkZW50JzogW0lOX0lERU5ULCBBUFBFTkRdLFxuICAnWyc6IFtJTl9TVUJfUEFUSF0sXG4gICdlb2YnOiBbQUZURVJfUEFUSF1cbn07XG5cbnBhdGhTdGF0ZU1hY2hpbmVbSU5fUEFUSF0gPSB7XG4gICd3cyc6IFtJTl9QQVRIXSxcbiAgJy4nOiBbQkVGT1JFX0lERU5UXSxcbiAgJ1snOiBbSU5fU1VCX1BBVEhdLFxuICAnZW9mJzogW0FGVEVSX1BBVEhdXG59O1xuXG5wYXRoU3RhdGVNYWNoaW5lW0JFRk9SRV9JREVOVF0gPSB7XG4gICd3cyc6IFtCRUZPUkVfSURFTlRdLFxuICAnaWRlbnQnOiBbSU5fSURFTlQsIEFQUEVORF0sXG4gICcwJzogW0lOX0lERU5ULCBBUFBFTkRdLFxuICAnbnVtYmVyJzogW0lOX0lERU5ULCBBUFBFTkRdXG59O1xuXG5wYXRoU3RhdGVNYWNoaW5lW0lOX0lERU5UXSA9IHtcbiAgJ2lkZW50JzogW0lOX0lERU5ULCBBUFBFTkRdLFxuICAnMCc6IFtJTl9JREVOVCwgQVBQRU5EXSxcbiAgJ251bWJlcic6IFtJTl9JREVOVCwgQVBQRU5EXSxcbiAgJ3dzJzogW0lOX1BBVEgsIFBVU0hdLFxuICAnLic6IFtCRUZPUkVfSURFTlQsIFBVU0hdLFxuICAnWyc6IFtJTl9TVUJfUEFUSCwgUFVTSF0sXG4gICdlb2YnOiBbQUZURVJfUEFUSCwgUFVTSF1cbn07XG5cbnBhdGhTdGF0ZU1hY2hpbmVbSU5fU1VCX1BBVEhdID0ge1xuICBcIidcIjogW0lOX1NJTkdMRV9RVU9URSwgQVBQRU5EXSxcbiAgJ1wiJzogW0lOX0RPVUJMRV9RVU9URSwgQVBQRU5EXSxcbiAgJ1snOiBbSU5fU1VCX1BBVEgsIElOQ19TVUJfUEFUSF9ERVBUSF0sXG4gICddJzogW0lOX1BBVEgsIFBVU0hfU1VCX1BBVEhdLFxuICAnZW9mJzogRVJST1IsXG4gICdlbHNlJzogW0lOX1NVQl9QQVRILCBBUFBFTkRdXG59O1xuXG5wYXRoU3RhdGVNYWNoaW5lW0lOX1NJTkdMRV9RVU9URV0gPSB7XG4gIFwiJ1wiOiBbSU5fU1VCX1BBVEgsIEFQUEVORF0sXG4gICdlb2YnOiBFUlJPUixcbiAgJ2Vsc2UnOiBbSU5fU0lOR0xFX1FVT1RFLCBBUFBFTkRdXG59O1xuXG5wYXRoU3RhdGVNYWNoaW5lW0lOX0RPVUJMRV9RVU9URV0gPSB7XG4gICdcIic6IFtJTl9TVUJfUEFUSCwgQVBQRU5EXSxcbiAgJ2VvZic6IEVSUk9SLFxuICAnZWxzZSc6IFtJTl9ET1VCTEVfUVVPVEUsIEFQUEVORF1cbn07XG5cbi8qKlxuICogQ2hlY2sgaWYgYW4gZXhwcmVzc2lvbiBpcyBhIGxpdGVyYWwgdmFsdWUuXG4gKi9cblxudmFyIGxpdGVyYWxWYWx1ZVJFID0gL15cXHM/KD86dHJ1ZXxmYWxzZXwtP1tcXGQuXSt8J1teJ10qJ3xcIlteXCJdKlwiKVxccz8kLztcbmZ1bmN0aW9uIGlzTGl0ZXJhbCAoZXhwKSB7XG4gIHJldHVybiBsaXRlcmFsVmFsdWVSRS50ZXN0KGV4cClcbn1cblxuLyoqXG4gKiBTdHJpcCBxdW90ZXMgZnJvbSBhIHN0cmluZ1xuICovXG5cbmZ1bmN0aW9uIHN0cmlwUXVvdGVzIChzdHIpIHtcbiAgdmFyIGEgPSBzdHIuY2hhckNvZGVBdCgwKTtcbiAgdmFyIGIgPSBzdHIuY2hhckNvZGVBdChzdHIubGVuZ3RoIC0gMSk7XG4gIHJldHVybiBhID09PSBiICYmIChhID09PSAweDIyIHx8IGEgPT09IDB4MjcpXG4gICAgPyBzdHIuc2xpY2UoMSwgLTEpXG4gICAgOiBzdHJcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgdGhlIHR5cGUgb2YgYSBjaGFyYWN0ZXIgaW4gYSBrZXlwYXRoLlxuICovXG5cbmZ1bmN0aW9uIGdldFBhdGhDaGFyVHlwZSAoY2gpIHtcbiAgaWYgKGNoID09PSB1bmRlZmluZWQgfHwgY2ggPT09IG51bGwpIHsgcmV0dXJuICdlb2YnIH1cblxuICB2YXIgY29kZSA9IGNoLmNoYXJDb2RlQXQoMCk7XG5cbiAgc3dpdGNoIChjb2RlKSB7XG4gICAgY2FzZSAweDVCOiAvLyBbXG4gICAgY2FzZSAweDVEOiAvLyBdXG4gICAgY2FzZSAweDJFOiAvLyAuXG4gICAgY2FzZSAweDIyOiAvLyBcIlxuICAgIGNhc2UgMHgyNzogLy8gJ1xuICAgICAgcmV0dXJuIGNoXG5cbiAgICBjYXNlIDB4NUY6IC8vIF9cbiAgICBjYXNlIDB4MjQ6IC8vICRcbiAgICBjYXNlIDB4MkQ6IC8vIC1cbiAgICAgIHJldHVybiAnaWRlbnQnXG5cbiAgICBjYXNlIDB4MDk6IC8vIFRhYlxuICAgIGNhc2UgMHgwQTogLy8gTmV3bGluZVxuICAgIGNhc2UgMHgwRDogLy8gUmV0dXJuXG4gICAgY2FzZSAweEEwOiAgLy8gTm8tYnJlYWsgc3BhY2VcbiAgICBjYXNlIDB4RkVGRjogIC8vIEJ5dGUgT3JkZXIgTWFya1xuICAgIGNhc2UgMHgyMDI4OiAgLy8gTGluZSBTZXBhcmF0b3JcbiAgICBjYXNlIDB4MjAyOTogIC8vIFBhcmFncmFwaCBTZXBhcmF0b3JcbiAgICAgIHJldHVybiAnd3MnXG4gIH1cblxuICByZXR1cm4gJ2lkZW50J1xufVxuXG4vKipcbiAqIEZvcm1hdCBhIHN1YlBhdGgsIHJldHVybiBpdHMgcGxhaW4gZm9ybSBpZiBpdCBpc1xuICogYSBsaXRlcmFsIHN0cmluZyBvciBudW1iZXIuIE90aGVyd2lzZSBwcmVwZW5kIHRoZVxuICogZHluYW1pYyBpbmRpY2F0b3IgKCopLlxuICovXG5cbmZ1bmN0aW9uIGZvcm1hdFN1YlBhdGggKHBhdGgpIHtcbiAgdmFyIHRyaW1tZWQgPSBwYXRoLnRyaW0oKTtcbiAgLy8gaW52YWxpZCBsZWFkaW5nIDBcbiAgaWYgKHBhdGguY2hhckF0KDApID09PSAnMCcgJiYgaXNOYU4ocGF0aCkpIHsgcmV0dXJuIGZhbHNlIH1cblxuICByZXR1cm4gaXNMaXRlcmFsKHRyaW1tZWQpID8gc3RyaXBRdW90ZXModHJpbW1lZCkgOiAnKicgKyB0cmltbWVkXG59XG5cbi8qKlxuICogUGFyc2UgYSBzdHJpbmcgcGF0aCBpbnRvIGFuIGFycmF5IG9mIHNlZ21lbnRzXG4gKi9cblxuZnVuY3Rpb24gcGFyc2UkMSAocGF0aCkge1xuICB2YXIga2V5cyA9IFtdO1xuICB2YXIgaW5kZXggPSAtMTtcbiAgdmFyIG1vZGUgPSBCRUZPUkVfUEFUSDtcbiAgdmFyIHN1YlBhdGhEZXB0aCA9IDA7XG4gIHZhciBjO1xuICB2YXIga2V5O1xuICB2YXIgbmV3Q2hhcjtcbiAgdmFyIHR5cGU7XG4gIHZhciB0cmFuc2l0aW9uO1xuICB2YXIgYWN0aW9uO1xuICB2YXIgdHlwZU1hcDtcbiAgdmFyIGFjdGlvbnMgPSBbXTtcblxuICBhY3Rpb25zW1BVU0hdID0gZnVuY3Rpb24gKCkge1xuICAgIGlmIChrZXkgIT09IHVuZGVmaW5lZCkge1xuICAgICAga2V5cy5wdXNoKGtleSk7XG4gICAgICBrZXkgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9O1xuXG4gIGFjdGlvbnNbQVBQRU5EXSA9IGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoa2V5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGtleSA9IG5ld0NoYXI7XG4gICAgfSBlbHNlIHtcbiAgICAgIGtleSArPSBuZXdDaGFyO1xuICAgIH1cbiAgfTtcblxuICBhY3Rpb25zW0lOQ19TVUJfUEFUSF9ERVBUSF0gPSBmdW5jdGlvbiAoKSB7XG4gICAgYWN0aW9uc1tBUFBFTkRdKCk7XG4gICAgc3ViUGF0aERlcHRoKys7XG4gIH07XG5cbiAgYWN0aW9uc1tQVVNIX1NVQl9QQVRIXSA9IGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoc3ViUGF0aERlcHRoID4gMCkge1xuICAgICAgc3ViUGF0aERlcHRoLS07XG4gICAgICBtb2RlID0gSU5fU1VCX1BBVEg7XG4gICAgICBhY3Rpb25zW0FQUEVORF0oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3ViUGF0aERlcHRoID0gMDtcbiAgICAgIGlmIChrZXkgPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gZmFsc2UgfVxuICAgICAga2V5ID0gZm9ybWF0U3ViUGF0aChrZXkpO1xuICAgICAgaWYgKGtleSA9PT0gZmFsc2UpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhY3Rpb25zW1BVU0hdKCk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIGZ1bmN0aW9uIG1heWJlVW5lc2NhcGVRdW90ZSAoKSB7XG4gICAgdmFyIG5leHRDaGFyID0gcGF0aFtpbmRleCArIDFdO1xuICAgIGlmICgobW9kZSA9PT0gSU5fU0lOR0xFX1FVT1RFICYmIG5leHRDaGFyID09PSBcIidcIikgfHxcbiAgICAgIChtb2RlID09PSBJTl9ET1VCTEVfUVVPVEUgJiYgbmV4dENoYXIgPT09ICdcIicpKSB7XG4gICAgICBpbmRleCsrO1xuICAgICAgbmV3Q2hhciA9ICdcXFxcJyArIG5leHRDaGFyO1xuICAgICAgYWN0aW9uc1tBUFBFTkRdKCk7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIHdoaWxlIChtb2RlICE9PSBudWxsKSB7XG4gICAgaW5kZXgrKztcbiAgICBjID0gcGF0aFtpbmRleF07XG5cbiAgICBpZiAoYyA9PT0gJ1xcXFwnICYmIG1heWJlVW5lc2NhcGVRdW90ZSgpKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIHR5cGUgPSBnZXRQYXRoQ2hhclR5cGUoYyk7XG4gICAgdHlwZU1hcCA9IHBhdGhTdGF0ZU1hY2hpbmVbbW9kZV07XG4gICAgdHJhbnNpdGlvbiA9IHR5cGVNYXBbdHlwZV0gfHwgdHlwZU1hcFsnZWxzZSddIHx8IEVSUk9SO1xuXG4gICAgaWYgKHRyYW5zaXRpb24gPT09IEVSUk9SKSB7XG4gICAgICByZXR1cm4gLy8gcGFyc2UgZXJyb3JcbiAgICB9XG5cbiAgICBtb2RlID0gdHJhbnNpdGlvblswXTtcbiAgICBhY3Rpb24gPSBhY3Rpb25zW3RyYW5zaXRpb25bMV1dO1xuICAgIGlmIChhY3Rpb24pIHtcbiAgICAgIG5ld0NoYXIgPSB0cmFuc2l0aW9uWzJdO1xuICAgICAgbmV3Q2hhciA9IG5ld0NoYXIgPT09IHVuZGVmaW5lZFxuICAgICAgICA/IGNcbiAgICAgICAgOiBuZXdDaGFyO1xuICAgICAgaWYgKGFjdGlvbigpID09PSBmYWxzZSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobW9kZSA9PT0gQUZURVJfUEFUSCkge1xuICAgICAgcmV0dXJuIGtleXNcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG52YXIgSTE4blBhdGggPSBmdW5jdGlvbiBJMThuUGF0aCAoKSB7XG4gIHRoaXMuX2NhY2hlID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbn07XG5cbi8qKlxuICogRXh0ZXJuYWwgcGFyc2UgdGhhdCBjaGVjayBmb3IgYSBjYWNoZSBoaXQgZmlyc3RcbiAqL1xuSTE4blBhdGgucHJvdG90eXBlLnBhcnNlUGF0aCA9IGZ1bmN0aW9uIHBhcnNlUGF0aCAocGF0aCkge1xuICB2YXIgaGl0ID0gdGhpcy5fY2FjaGVbcGF0aF07XG4gIGlmICghaGl0KSB7XG4gICAgaGl0ID0gcGFyc2UkMShwYXRoKTtcbiAgICBpZiAoaGl0KSB7XG4gICAgICB0aGlzLl9jYWNoZVtwYXRoXSA9IGhpdDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGhpdCB8fCBbXVxufTtcblxuLyoqXG4gKiBHZXQgcGF0aCB2YWx1ZSBmcm9tIHBhdGggc3RyaW5nXG4gKi9cbkkxOG5QYXRoLnByb3RvdHlwZS5nZXRQYXRoVmFsdWUgPSBmdW5jdGlvbiBnZXRQYXRoVmFsdWUgKG9iaiwgcGF0aCkge1xuICBpZiAoIWlzT2JqZWN0KG9iaikpIHsgcmV0dXJuIG51bGwgfVxuXG4gIHZhciBwYXRocyA9IHRoaXMucGFyc2VQYXRoKHBhdGgpO1xuICBpZiAocGF0aHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfSBlbHNlIHtcbiAgICB2YXIgbGVuZ3RoID0gcGF0aHMubGVuZ3RoO1xuICAgIHZhciBsYXN0ID0gb2JqO1xuICAgIHZhciBpID0gMDtcbiAgICB3aGlsZSAoaSA8IGxlbmd0aCkge1xuICAgICAgdmFyIHZhbHVlID0gbGFzdFtwYXRoc1tpXV07XG4gICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuICAgICAgbGFzdCA9IHZhbHVlO1xuICAgICAgaSsrO1xuICAgIH1cblxuICAgIHJldHVybiBsYXN0XG4gIH1cbn07XG5cbi8qICAqL1xuXG5cblxudmFyIGh0bWxUYWdNYXRjaGVyID0gLzxcXC8/W1xcd1xccz1cIi8uJzo7Iy1cXC9dKz4vO1xudmFyIGxpbmtLZXlNYXRjaGVyID0gLyg/OkAoPzpcXC5bYS16XSspPzooPzpbXFx3XFwtX3wuXSt8XFwoW1xcd1xcLV98Ll0rXFwpKSkvZztcbnZhciBsaW5rS2V5UHJlZml4TWF0Y2hlciA9IC9eQCg/OlxcLihbYS16XSspKT86LztcbnZhciBicmFja2V0c01hdGNoZXIgPSAvWygpXS9nO1xudmFyIGRlZmF1bHRNb2RpZmllcnMgPSB7XG4gICd1cHBlcic6IGZ1bmN0aW9uIChzdHIpIHsgcmV0dXJuIHN0ci50b0xvY2FsZVVwcGVyQ2FzZSgpOyB9LFxuICAnbG93ZXInOiBmdW5jdGlvbiAoc3RyKSB7IHJldHVybiBzdHIudG9Mb2NhbGVMb3dlckNhc2UoKTsgfSxcbiAgJ2NhcGl0YWxpemUnOiBmdW5jdGlvbiAoc3RyKSB7IHJldHVybiAoXCJcIiArIChzdHIuY2hhckF0KDApLnRvTG9jYWxlVXBwZXJDYXNlKCkpICsgKHN0ci5zdWJzdHIoMSkpKTsgfVxufTtcblxudmFyIGRlZmF1bHRGb3JtYXR0ZXIgPSBuZXcgQmFzZUZvcm1hdHRlcigpO1xuXG52YXIgVnVlSTE4biA9IGZ1bmN0aW9uIFZ1ZUkxOG4gKG9wdGlvbnMpIHtcbiAgdmFyIHRoaXMkMSA9IHRoaXM7XG4gIGlmICggb3B0aW9ucyA9PT0gdm9pZCAwICkgb3B0aW9ucyA9IHt9O1xuXG4gIC8vIEF1dG8gaW5zdGFsbCBpZiBpdCBpcyBub3QgZG9uZSB5ZXQgYW5kIGB3aW5kb3dgIGhhcyBgVnVlYC5cbiAgLy8gVG8gYWxsb3cgdXNlcnMgdG8gYXZvaWQgYXV0by1pbnN0YWxsYXRpb24gaW4gc29tZSBjYXNlcyxcbiAgLy8gdGhpcyBjb2RlIHNob3VsZCBiZSBwbGFjZWQgaGVyZS4gU2VlICMyOTBcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmICghVnVlICYmIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5WdWUpIHtcbiAgICBpbnN0YWxsKHdpbmRvdy5WdWUpO1xuICB9XG5cbiAgdmFyIGxvY2FsZSA9IG9wdGlvbnMubG9jYWxlIHx8ICdlbi1VUyc7XG4gIHZhciBmYWxsYmFja0xvY2FsZSA9IG9wdGlvbnMuZmFsbGJhY2tMb2NhbGUgPT09IGZhbHNlXG4gICAgPyBmYWxzZVxuICAgIDogb3B0aW9ucy5mYWxsYmFja0xvY2FsZSB8fCAnZW4tVVMnO1xuICB2YXIgbWVzc2FnZXMgPSBvcHRpb25zLm1lc3NhZ2VzIHx8IHt9O1xuICB2YXIgZGF0ZVRpbWVGb3JtYXRzID0gb3B0aW9ucy5kYXRlVGltZUZvcm1hdHMgfHwge307XG4gIHZhciBudW1iZXJGb3JtYXRzID0gb3B0aW9ucy5udW1iZXJGb3JtYXRzIHx8IHt9O1xuXG4gIHRoaXMuX3ZtID0gbnVsbDtcbiAgdGhpcy5fZm9ybWF0dGVyID0gb3B0aW9ucy5mb3JtYXR0ZXIgfHwgZGVmYXVsdEZvcm1hdHRlcjtcbiAgdGhpcy5fbW9kaWZpZXJzID0gb3B0aW9ucy5tb2RpZmllcnMgfHwge307XG4gIHRoaXMuX21pc3NpbmcgPSBvcHRpb25zLm1pc3NpbmcgfHwgbnVsbDtcbiAgdGhpcy5fcm9vdCA9IG9wdGlvbnMucm9vdCB8fCBudWxsO1xuICB0aGlzLl9zeW5jID0gb3B0aW9ucy5zeW5jID09PSB1bmRlZmluZWQgPyB0cnVlIDogISFvcHRpb25zLnN5bmM7XG4gIHRoaXMuX2ZhbGxiYWNrUm9vdCA9IG9wdGlvbnMuZmFsbGJhY2tSb290ID09PSB1bmRlZmluZWRcbiAgICA/IHRydWVcbiAgICA6ICEhb3B0aW9ucy5mYWxsYmFja1Jvb3Q7XG4gIHRoaXMuX2Zvcm1hdEZhbGxiYWNrTWVzc2FnZXMgPSBvcHRpb25zLmZvcm1hdEZhbGxiYWNrTWVzc2FnZXMgPT09IHVuZGVmaW5lZFxuICAgID8gZmFsc2VcbiAgICA6ICEhb3B0aW9ucy5mb3JtYXRGYWxsYmFja01lc3NhZ2VzO1xuICB0aGlzLl9zaWxlbnRUcmFuc2xhdGlvbldhcm4gPSBvcHRpb25zLnNpbGVudFRyYW5zbGF0aW9uV2FybiA9PT0gdW5kZWZpbmVkXG4gICAgPyBmYWxzZVxuICAgIDogb3B0aW9ucy5zaWxlbnRUcmFuc2xhdGlvbldhcm47XG4gIHRoaXMuX3NpbGVudEZhbGxiYWNrV2FybiA9IG9wdGlvbnMuc2lsZW50RmFsbGJhY2tXYXJuID09PSB1bmRlZmluZWRcbiAgICA/IGZhbHNlXG4gICAgOiAhIW9wdGlvbnMuc2lsZW50RmFsbGJhY2tXYXJuO1xuICB0aGlzLl9kYXRlVGltZUZvcm1hdHRlcnMgPSB7fTtcbiAgdGhpcy5fbnVtYmVyRm9ybWF0dGVycyA9IHt9O1xuICB0aGlzLl9wYXRoID0gbmV3IEkxOG5QYXRoKCk7XG4gIHRoaXMuX2RhdGFMaXN0ZW5lcnMgPSBbXTtcbiAgdGhpcy5fY29tcG9uZW50SW5zdGFuY2VDcmVhdGVkTGlzdGVuZXIgPSBvcHRpb25zLmNvbXBvbmVudEluc3RhbmNlQ3JlYXRlZExpc3RlbmVyIHx8IG51bGw7XG4gIHRoaXMuX3ByZXNlcnZlRGlyZWN0aXZlQ29udGVudCA9IG9wdGlvbnMucHJlc2VydmVEaXJlY3RpdmVDb250ZW50ID09PSB1bmRlZmluZWRcbiAgICA/IGZhbHNlXG4gICAgOiAhIW9wdGlvbnMucHJlc2VydmVEaXJlY3RpdmVDb250ZW50O1xuICB0aGlzLnBsdXJhbGl6YXRpb25SdWxlcyA9IG9wdGlvbnMucGx1cmFsaXphdGlvblJ1bGVzIHx8IHt9O1xuICB0aGlzLl93YXJuSHRtbEluTWVzc2FnZSA9IG9wdGlvbnMud2Fybkh0bWxJbk1lc3NhZ2UgfHwgJ29mZic7XG4gIHRoaXMuX3Bvc3RUcmFuc2xhdGlvbiA9IG9wdGlvbnMucG9zdFRyYW5zbGF0aW9uIHx8IG51bGw7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBjaG9pY2Uge251bWJlcn0gYSBjaG9pY2UgaW5kZXggZ2l2ZW4gYnkgdGhlIGlucHV0IHRvICR0YzogYCR0YygncGF0aC50by5ydWxlJywgY2hvaWNlSW5kZXgpYFxuICAgKiBAcGFyYW0gY2hvaWNlc0xlbmd0aCB7bnVtYmVyfSBhbiBvdmVyYWxsIGFtb3VudCBvZiBhdmFpbGFibGUgY2hvaWNlc1xuICAgKiBAcmV0dXJucyBhIGZpbmFsIGNob2ljZSBpbmRleFxuICAqL1xuICB0aGlzLmdldENob2ljZUluZGV4ID0gZnVuY3Rpb24gKGNob2ljZSwgY2hvaWNlc0xlbmd0aCkge1xuICAgIHZhciB0aGlzUHJvdG90eXBlID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMkMSk7XG4gICAgaWYgKHRoaXNQcm90b3R5cGUgJiYgdGhpc1Byb3RvdHlwZS5nZXRDaG9pY2VJbmRleCkge1xuICAgICAgdmFyIHByb3RvdHlwZUdldENob2ljZUluZGV4ID0gKHRoaXNQcm90b3R5cGUuZ2V0Q2hvaWNlSW5kZXgpO1xuICAgICAgcmV0dXJuIChwcm90b3R5cGVHZXRDaG9pY2VJbmRleCkuY2FsbCh0aGlzJDEsIGNob2ljZSwgY2hvaWNlc0xlbmd0aClcbiAgICB9XG5cbiAgICAvLyBEZWZhdWx0IChvbGQpIGdldENob2ljZUluZGV4IGltcGxlbWVudGF0aW9uIC0gZW5nbGlzaC1jb21wYXRpYmxlXG4gICAgdmFyIGRlZmF1bHRJbXBsID0gZnVuY3Rpb24gKF9jaG9pY2UsIF9jaG9pY2VzTGVuZ3RoKSB7XG4gICAgICBfY2hvaWNlID0gTWF0aC5hYnMoX2Nob2ljZSk7XG5cbiAgICAgIGlmIChfY2hvaWNlc0xlbmd0aCA9PT0gMikge1xuICAgICAgICByZXR1cm4gX2Nob2ljZVxuICAgICAgICAgID8gX2Nob2ljZSA+IDFcbiAgICAgICAgICAgID8gMVxuICAgICAgICAgICAgOiAwXG4gICAgICAgICAgOiAxXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBfY2hvaWNlID8gTWF0aC5taW4oX2Nob2ljZSwgMikgOiAwXG4gICAgfTtcblxuICAgIGlmICh0aGlzJDEubG9jYWxlIGluIHRoaXMkMS5wbHVyYWxpemF0aW9uUnVsZXMpIHtcbiAgICAgIHJldHVybiB0aGlzJDEucGx1cmFsaXphdGlvblJ1bGVzW3RoaXMkMS5sb2NhbGVdLmFwcGx5KHRoaXMkMSwgW2Nob2ljZSwgY2hvaWNlc0xlbmd0aF0pXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBkZWZhdWx0SW1wbChjaG9pY2UsIGNob2ljZXNMZW5ndGgpXG4gICAgfVxuICB9O1xuXG5cbiAgdGhpcy5fZXhpc3QgPSBmdW5jdGlvbiAobWVzc2FnZSwga2V5KSB7XG4gICAgaWYgKCFtZXNzYWdlIHx8ICFrZXkpIHsgcmV0dXJuIGZhbHNlIH1cbiAgICBpZiAoIWlzTnVsbCh0aGlzJDEuX3BhdGguZ2V0UGF0aFZhbHVlKG1lc3NhZ2UsIGtleSkpKSB7IHJldHVybiB0cnVlIH1cbiAgICAvLyBmYWxsYmFjayBmb3IgZmxhdCBrZXlcbiAgICBpZiAobWVzc2FnZVtrZXldKSB7IHJldHVybiB0cnVlIH1cbiAgICByZXR1cm4gZmFsc2VcbiAgfTtcblxuICBpZiAodGhpcy5fd2Fybkh0bWxJbk1lc3NhZ2UgPT09ICd3YXJuJyB8fCB0aGlzLl93YXJuSHRtbEluTWVzc2FnZSA9PT0gJ2Vycm9yJykge1xuICAgIE9iamVjdC5rZXlzKG1lc3NhZ2VzKS5mb3JFYWNoKGZ1bmN0aW9uIChsb2NhbGUpIHtcbiAgICAgIHRoaXMkMS5fY2hlY2tMb2NhbGVNZXNzYWdlKGxvY2FsZSwgdGhpcyQxLl93YXJuSHRtbEluTWVzc2FnZSwgbWVzc2FnZXNbbG9jYWxlXSk7XG4gICAgfSk7XG4gIH1cblxuICB0aGlzLl9pbml0Vk0oe1xuICAgIGxvY2FsZTogbG9jYWxlLFxuICAgIGZhbGxiYWNrTG9jYWxlOiBmYWxsYmFja0xvY2FsZSxcbiAgICBtZXNzYWdlczogbWVzc2FnZXMsXG4gICAgZGF0ZVRpbWVGb3JtYXRzOiBkYXRlVGltZUZvcm1hdHMsXG4gICAgbnVtYmVyRm9ybWF0czogbnVtYmVyRm9ybWF0c1xuICB9KTtcbn07XG5cbnZhciBwcm90b3R5cGVBY2Nlc3NvcnMgPSB7IHZtOiB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSB9LG1lc3NhZ2VzOiB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSB9LGRhdGVUaW1lRm9ybWF0czogeyBjb25maWd1cmFibGU6IHRydWUgfSxudW1iZXJGb3JtYXRzOiB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSB9LGF2YWlsYWJsZUxvY2FsZXM6IHsgY29uZmlndXJhYmxlOiB0cnVlIH0sbG9jYWxlOiB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSB9LGZhbGxiYWNrTG9jYWxlOiB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSB9LGZvcm1hdEZhbGxiYWNrTWVzc2FnZXM6IHsgY29uZmlndXJhYmxlOiB0cnVlIH0sbWlzc2luZzogeyBjb25maWd1cmFibGU6IHRydWUgfSxmb3JtYXR0ZXI6IHsgY29uZmlndXJhYmxlOiB0cnVlIH0sc2lsZW50VHJhbnNsYXRpb25XYXJuOiB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSB9LHNpbGVudEZhbGxiYWNrV2FybjogeyBjb25maWd1cmFibGU6IHRydWUgfSxwcmVzZXJ2ZURpcmVjdGl2ZUNvbnRlbnQ6IHsgY29uZmlndXJhYmxlOiB0cnVlIH0sd2Fybkh0bWxJbk1lc3NhZ2U6IHsgY29uZmlndXJhYmxlOiB0cnVlIH0scG9zdFRyYW5zbGF0aW9uOiB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLl9jaGVja0xvY2FsZU1lc3NhZ2UgPSBmdW5jdGlvbiBfY2hlY2tMb2NhbGVNZXNzYWdlIChsb2NhbGUsIGxldmVsLCBtZXNzYWdlKSB7XG4gIHZhciBwYXRocyA9IFtdO1xuXG4gIHZhciBmbiA9IGZ1bmN0aW9uIChsZXZlbCwgbG9jYWxlLCBtZXNzYWdlLCBwYXRocykge1xuICAgIGlmIChpc1BsYWluT2JqZWN0KG1lc3NhZ2UpKSB7XG4gICAgICBPYmplY3Qua2V5cyhtZXNzYWdlKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgdmFyIHZhbCA9IG1lc3NhZ2Vba2V5XTtcbiAgICAgICAgaWYgKGlzUGxhaW5PYmplY3QodmFsKSkge1xuICAgICAgICAgIHBhdGhzLnB1c2goa2V5KTtcbiAgICAgICAgICBwYXRocy5wdXNoKCcuJyk7XG4gICAgICAgICAgZm4obGV2ZWwsIGxvY2FsZSwgdmFsLCBwYXRocyk7XG4gICAgICAgICAgcGF0aHMucG9wKCk7XG4gICAgICAgICAgcGF0aHMucG9wKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGF0aHMucHVzaChrZXkpO1xuICAgICAgICAgIGZuKGxldmVsLCBsb2NhbGUsIHZhbCwgcGF0aHMpO1xuICAgICAgICAgIHBhdGhzLnBvcCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkobWVzc2FnZSkpIHtcbiAgICAgIG1lc3NhZ2UuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSwgaW5kZXgpIHtcbiAgICAgICAgaWYgKGlzUGxhaW5PYmplY3QoaXRlbSkpIHtcbiAgICAgICAgICBwYXRocy5wdXNoKChcIltcIiArIGluZGV4ICsgXCJdXCIpKTtcbiAgICAgICAgICBwYXRocy5wdXNoKCcuJyk7XG4gICAgICAgICAgZm4obGV2ZWwsIGxvY2FsZSwgaXRlbSwgcGF0aHMpO1xuICAgICAgICAgIHBhdGhzLnBvcCgpO1xuICAgICAgICAgIHBhdGhzLnBvcCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBhdGhzLnB1c2goKFwiW1wiICsgaW5kZXggKyBcIl1cIikpO1xuICAgICAgICAgIGZuKGxldmVsLCBsb2NhbGUsIGl0ZW0sIHBhdGhzKTtcbiAgICAgICAgICBwYXRocy5wb3AoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChpc1N0cmluZyhtZXNzYWdlKSkge1xuICAgICAgdmFyIHJldCA9IGh0bWxUYWdNYXRjaGVyLnRlc3QobWVzc2FnZSk7XG4gICAgICBpZiAocmV0KSB7XG4gICAgICAgIHZhciBtc2cgPSBcIkRldGVjdGVkIEhUTUwgaW4gbWVzc2FnZSAnXCIgKyBtZXNzYWdlICsgXCInIG9mIGtleXBhdGggJ1wiICsgKHBhdGhzLmpvaW4oJycpKSArIFwiJyBhdCAnXCIgKyBsb2NhbGUgKyBcIicuIENvbnNpZGVyIGNvbXBvbmVudCBpbnRlcnBvbGF0aW9uIHdpdGggJzxpMThuPicgdG8gYXZvaWQgWFNTLiBTZWUgaHR0cHM6Ly9iaXQubHkvMlpxSnprcFwiO1xuICAgICAgICBpZiAobGV2ZWwgPT09ICd3YXJuJykge1xuICAgICAgICAgIHdhcm4obXNnKTtcbiAgICAgICAgfSBlbHNlIGlmIChsZXZlbCA9PT0gJ2Vycm9yJykge1xuICAgICAgICAgIGVycm9yKG1zZyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgZm4obGV2ZWwsIGxvY2FsZSwgbWVzc2FnZSwgcGF0aHMpO1xufTtcblxuVnVlSTE4bi5wcm90b3R5cGUuX2luaXRWTSA9IGZ1bmN0aW9uIF9pbml0Vk0gKGRhdGEpIHtcbiAgdmFyIHNpbGVudCA9IFZ1ZS5jb25maWcuc2lsZW50O1xuICBWdWUuY29uZmlnLnNpbGVudCA9IHRydWU7XG4gIHRoaXMuX3ZtID0gbmV3IFZ1ZSh7IGRhdGE6IGRhdGEgfSk7XG4gIFZ1ZS5jb25maWcuc2lsZW50ID0gc2lsZW50O1xufTtcblxuVnVlSTE4bi5wcm90b3R5cGUuZGVzdHJveVZNID0gZnVuY3Rpb24gZGVzdHJveVZNICgpIHtcbiAgdGhpcy5fdm0uJGRlc3Ryb3koKTtcbn07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLnN1YnNjcmliZURhdGFDaGFuZ2luZyA9IGZ1bmN0aW9uIHN1YnNjcmliZURhdGFDaGFuZ2luZyAodm0pIHtcbiAgdGhpcy5fZGF0YUxpc3RlbmVycy5wdXNoKHZtKTtcbn07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLnVuc3Vic2NyaWJlRGF0YUNoYW5naW5nID0gZnVuY3Rpb24gdW5zdWJzY3JpYmVEYXRhQ2hhbmdpbmcgKHZtKSB7XG4gIHJlbW92ZSh0aGlzLl9kYXRhTGlzdGVuZXJzLCB2bSk7XG59O1xuXG5WdWVJMThuLnByb3RvdHlwZS53YXRjaEkxOG5EYXRhID0gZnVuY3Rpb24gd2F0Y2hJMThuRGF0YSAoKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgcmV0dXJuIHRoaXMuX3ZtLiR3YXRjaCgnJGRhdGEnLCBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGkgPSBzZWxmLl9kYXRhTGlzdGVuZXJzLmxlbmd0aDtcbiAgICB3aGlsZSAoaS0tKSB7XG4gICAgICBWdWUubmV4dFRpY2soZnVuY3Rpb24gKCkge1xuICAgICAgICBzZWxmLl9kYXRhTGlzdGVuZXJzW2ldICYmIHNlbGYuX2RhdGFMaXN0ZW5lcnNbaV0uJGZvcmNlVXBkYXRlKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIHsgZGVlcDogdHJ1ZSB9KVxufTtcblxuVnVlSTE4bi5wcm90b3R5cGUud2F0Y2hMb2NhbGUgPSBmdW5jdGlvbiB3YXRjaExvY2FsZSAoKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoIXRoaXMuX3N5bmMgfHwgIXRoaXMuX3Jvb3QpIHsgcmV0dXJuIG51bGwgfVxuICB2YXIgdGFyZ2V0ID0gdGhpcy5fdm07XG4gIHJldHVybiB0aGlzLl9yb290LiRpMThuLnZtLiR3YXRjaCgnbG9jYWxlJywgZnVuY3Rpb24gKHZhbCkge1xuICAgIHRhcmdldC4kc2V0KHRhcmdldCwgJ2xvY2FsZScsIHZhbCk7XG4gICAgdGFyZ2V0LiRmb3JjZVVwZGF0ZSgpO1xuICB9LCB7IGltbWVkaWF0ZTogdHJ1ZSB9KVxufTtcblxuVnVlSTE4bi5wcm90b3R5cGUub25Db21wb25lbnRJbnN0YW5jZUNyZWF0ZWQgPSBmdW5jdGlvbiBvbkNvbXBvbmVudEluc3RhbmNlQ3JlYXRlZCAobmV3STE4bikge1xuICBpZiAodGhpcy5fY29tcG9uZW50SW5zdGFuY2VDcmVhdGVkTGlzdGVuZXIpIHtcbiAgICB0aGlzLl9jb21wb25lbnRJbnN0YW5jZUNyZWF0ZWRMaXN0ZW5lcihuZXdJMThuLCB0aGlzKTtcbiAgfVxufTtcblxucHJvdG90eXBlQWNjZXNzb3JzLnZtLmdldCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMuX3ZtIH07XG5cbnByb3RvdHlwZUFjY2Vzc29ycy5tZXNzYWdlcy5nZXQgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBsb29zZUNsb25lKHRoaXMuX2dldE1lc3NhZ2VzKCkpIH07XG5wcm90b3R5cGVBY2Nlc3NvcnMuZGF0ZVRpbWVGb3JtYXRzLmdldCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGxvb3NlQ2xvbmUodGhpcy5fZ2V0RGF0ZVRpbWVGb3JtYXRzKCkpIH07XG5wcm90b3R5cGVBY2Nlc3NvcnMubnVtYmVyRm9ybWF0cy5nZXQgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBsb29zZUNsb25lKHRoaXMuX2dldE51bWJlckZvcm1hdHMoKSkgfTtcbnByb3RvdHlwZUFjY2Vzc29ycy5hdmFpbGFibGVMb2NhbGVzLmdldCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMubWVzc2FnZXMpLnNvcnQoKSB9O1xuXG5wcm90b3R5cGVBY2Nlc3NvcnMubG9jYWxlLmdldCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMuX3ZtLmxvY2FsZSB9O1xucHJvdG90eXBlQWNjZXNzb3JzLmxvY2FsZS5zZXQgPSBmdW5jdGlvbiAobG9jYWxlKSB7XG4gIHRoaXMuX3ZtLiRzZXQodGhpcy5fdm0sICdsb2NhbGUnLCBsb2NhbGUpO1xufTtcblxucHJvdG90eXBlQWNjZXNzb3JzLmZhbGxiYWNrTG9jYWxlLmdldCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMuX3ZtLmZhbGxiYWNrTG9jYWxlIH07XG5wcm90b3R5cGVBY2Nlc3NvcnMuZmFsbGJhY2tMb2NhbGUuc2V0ID0gZnVuY3Rpb24gKGxvY2FsZSkge1xuICB0aGlzLl9sb2NhbGVDaGFpbkNhY2hlID0ge307XG4gIHRoaXMuX3ZtLiRzZXQodGhpcy5fdm0sICdmYWxsYmFja0xvY2FsZScsIGxvY2FsZSk7XG59O1xuXG5wcm90b3R5cGVBY2Nlc3NvcnMuZm9ybWF0RmFsbGJhY2tNZXNzYWdlcy5nZXQgPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLl9mb3JtYXRGYWxsYmFja01lc3NhZ2VzIH07XG5wcm90b3R5cGVBY2Nlc3NvcnMuZm9ybWF0RmFsbGJhY2tNZXNzYWdlcy5zZXQgPSBmdW5jdGlvbiAoZmFsbGJhY2spIHsgdGhpcy5fZm9ybWF0RmFsbGJhY2tNZXNzYWdlcyA9IGZhbGxiYWNrOyB9O1xuXG5wcm90b3R5cGVBY2Nlc3NvcnMubWlzc2luZy5nZXQgPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLl9taXNzaW5nIH07XG5wcm90b3R5cGVBY2Nlc3NvcnMubWlzc2luZy5zZXQgPSBmdW5jdGlvbiAoaGFuZGxlcikgeyB0aGlzLl9taXNzaW5nID0gaGFuZGxlcjsgfTtcblxucHJvdG90eXBlQWNjZXNzb3JzLmZvcm1hdHRlci5nZXQgPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLl9mb3JtYXR0ZXIgfTtcbnByb3RvdHlwZUFjY2Vzc29ycy5mb3JtYXR0ZXIuc2V0ID0gZnVuY3Rpb24gKGZvcm1hdHRlcikgeyB0aGlzLl9mb3JtYXR0ZXIgPSBmb3JtYXR0ZXI7IH07XG5cbnByb3RvdHlwZUFjY2Vzc29ycy5zaWxlbnRUcmFuc2xhdGlvbldhcm4uZ2V0ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5fc2lsZW50VHJhbnNsYXRpb25XYXJuIH07XG5wcm90b3R5cGVBY2Nlc3NvcnMuc2lsZW50VHJhbnNsYXRpb25XYXJuLnNldCA9IGZ1bmN0aW9uIChzaWxlbnQpIHsgdGhpcy5fc2lsZW50VHJhbnNsYXRpb25XYXJuID0gc2lsZW50OyB9O1xuXG5wcm90b3R5cGVBY2Nlc3NvcnMuc2lsZW50RmFsbGJhY2tXYXJuLmdldCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMuX3NpbGVudEZhbGxiYWNrV2FybiB9O1xucHJvdG90eXBlQWNjZXNzb3JzLnNpbGVudEZhbGxiYWNrV2Fybi5zZXQgPSBmdW5jdGlvbiAoc2lsZW50KSB7IHRoaXMuX3NpbGVudEZhbGxiYWNrV2FybiA9IHNpbGVudDsgfTtcblxucHJvdG90eXBlQWNjZXNzb3JzLnByZXNlcnZlRGlyZWN0aXZlQ29udGVudC5nZXQgPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLl9wcmVzZXJ2ZURpcmVjdGl2ZUNvbnRlbnQgfTtcbnByb3RvdHlwZUFjY2Vzc29ycy5wcmVzZXJ2ZURpcmVjdGl2ZUNvbnRlbnQuc2V0ID0gZnVuY3Rpb24gKHByZXNlcnZlKSB7IHRoaXMuX3ByZXNlcnZlRGlyZWN0aXZlQ29udGVudCA9IHByZXNlcnZlOyB9O1xuXG5wcm90b3R5cGVBY2Nlc3NvcnMud2Fybkh0bWxJbk1lc3NhZ2UuZ2V0ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5fd2Fybkh0bWxJbk1lc3NhZ2UgfTtcbnByb3RvdHlwZUFjY2Vzc29ycy53YXJuSHRtbEluTWVzc2FnZS5zZXQgPSBmdW5jdGlvbiAobGV2ZWwpIHtcbiAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuICB2YXIgb3JnTGV2ZWwgPSB0aGlzLl93YXJuSHRtbEluTWVzc2FnZTtcbiAgdGhpcy5fd2Fybkh0bWxJbk1lc3NhZ2UgPSBsZXZlbDtcbiAgaWYgKG9yZ0xldmVsICE9PSBsZXZlbCAmJiAobGV2ZWwgPT09ICd3YXJuJyB8fCBsZXZlbCA9PT0gJ2Vycm9yJykpIHtcbiAgICB2YXIgbWVzc2FnZXMgPSB0aGlzLl9nZXRNZXNzYWdlcygpO1xuICAgIE9iamVjdC5rZXlzKG1lc3NhZ2VzKS5mb3JFYWNoKGZ1bmN0aW9uIChsb2NhbGUpIHtcbiAgICAgIHRoaXMkMS5fY2hlY2tMb2NhbGVNZXNzYWdlKGxvY2FsZSwgdGhpcyQxLl93YXJuSHRtbEluTWVzc2FnZSwgbWVzc2FnZXNbbG9jYWxlXSk7XG4gICAgfSk7XG4gIH1cbn07XG5cbnByb3RvdHlwZUFjY2Vzc29ycy5wb3N0VHJhbnNsYXRpb24uZ2V0ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5fcG9zdFRyYW5zbGF0aW9uIH07XG5wcm90b3R5cGVBY2Nlc3NvcnMucG9zdFRyYW5zbGF0aW9uLnNldCA9IGZ1bmN0aW9uIChoYW5kbGVyKSB7IHRoaXMuX3Bvc3RUcmFuc2xhdGlvbiA9IGhhbmRsZXI7IH07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLl9nZXRNZXNzYWdlcyA9IGZ1bmN0aW9uIF9nZXRNZXNzYWdlcyAoKSB7IHJldHVybiB0aGlzLl92bS5tZXNzYWdlcyB9O1xuVnVlSTE4bi5wcm90b3R5cGUuX2dldERhdGVUaW1lRm9ybWF0cyA9IGZ1bmN0aW9uIF9nZXREYXRlVGltZUZvcm1hdHMgKCkgeyByZXR1cm4gdGhpcy5fdm0uZGF0ZVRpbWVGb3JtYXRzIH07XG5WdWVJMThuLnByb3RvdHlwZS5fZ2V0TnVtYmVyRm9ybWF0cyA9IGZ1bmN0aW9uIF9nZXROdW1iZXJGb3JtYXRzICgpIHsgcmV0dXJuIHRoaXMuX3ZtLm51bWJlckZvcm1hdHMgfTtcblxuVnVlSTE4bi5wcm90b3R5cGUuX3dhcm5EZWZhdWx0ID0gZnVuY3Rpb24gX3dhcm5EZWZhdWx0IChsb2NhbGUsIGtleSwgcmVzdWx0LCB2bSwgdmFsdWVzLCBpbnRlcnBvbGF0ZU1vZGUpIHtcbiAgaWYgKCFpc051bGwocmVzdWx0KSkgeyByZXR1cm4gcmVzdWx0IH1cbiAgaWYgKHRoaXMuX21pc3NpbmcpIHtcbiAgICB2YXIgbWlzc2luZ1JldCA9IHRoaXMuX21pc3NpbmcuYXBwbHkobnVsbCwgW2xvY2FsZSwga2V5LCB2bSwgdmFsdWVzXSk7XG4gICAgaWYgKGlzU3RyaW5nKG1pc3NpbmdSZXQpKSB7XG4gICAgICByZXR1cm4gbWlzc2luZ1JldFxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiAhdGhpcy5faXNTaWxlbnRUcmFuc2xhdGlvbldhcm4oa2V5KSkge1xuICAgICAgd2FybihcbiAgICAgICAgXCJDYW5ub3QgdHJhbnNsYXRlIHRoZSB2YWx1ZSBvZiBrZXlwYXRoICdcIiArIGtleSArIFwiJy4gXCIgK1xuICAgICAgICAnVXNlIHRoZSB2YWx1ZSBvZiBrZXlwYXRoIGFzIGRlZmF1bHQuJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBpZiAodGhpcy5fZm9ybWF0RmFsbGJhY2tNZXNzYWdlcykge1xuICAgIHZhciBwYXJzZWRBcmdzID0gcGFyc2VBcmdzLmFwcGx5KHZvaWQgMCwgdmFsdWVzKTtcbiAgICByZXR1cm4gdGhpcy5fcmVuZGVyKGtleSwgaW50ZXJwb2xhdGVNb2RlLCBwYXJzZWRBcmdzLnBhcmFtcywga2V5KVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBrZXlcbiAgfVxufTtcblxuVnVlSTE4bi5wcm90b3R5cGUuX2lzRmFsbGJhY2tSb290ID0gZnVuY3Rpb24gX2lzRmFsbGJhY2tSb290ICh2YWwpIHtcbiAgcmV0dXJuICF2YWwgJiYgIWlzTnVsbCh0aGlzLl9yb290KSAmJiB0aGlzLl9mYWxsYmFja1Jvb3Rcbn07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLl9pc1NpbGVudEZhbGxiYWNrV2FybiA9IGZ1bmN0aW9uIF9pc1NpbGVudEZhbGxiYWNrV2FybiAoa2V5KSB7XG4gIHJldHVybiB0aGlzLl9zaWxlbnRGYWxsYmFja1dhcm4gaW5zdGFuY2VvZiBSZWdFeHBcbiAgICA/IHRoaXMuX3NpbGVudEZhbGxiYWNrV2Fybi50ZXN0KGtleSlcbiAgICA6IHRoaXMuX3NpbGVudEZhbGxiYWNrV2FyblxufTtcblxuVnVlSTE4bi5wcm90b3R5cGUuX2lzU2lsZW50RmFsbGJhY2sgPSBmdW5jdGlvbiBfaXNTaWxlbnRGYWxsYmFjayAobG9jYWxlLCBrZXkpIHtcbiAgcmV0dXJuIHRoaXMuX2lzU2lsZW50RmFsbGJhY2tXYXJuKGtleSkgJiYgKHRoaXMuX2lzRmFsbGJhY2tSb290KCkgfHwgbG9jYWxlICE9PSB0aGlzLmZhbGxiYWNrTG9jYWxlKVxufTtcblxuVnVlSTE4bi5wcm90b3R5cGUuX2lzU2lsZW50VHJhbnNsYXRpb25XYXJuID0gZnVuY3Rpb24gX2lzU2lsZW50VHJhbnNsYXRpb25XYXJuIChrZXkpIHtcbiAgcmV0dXJuIHRoaXMuX3NpbGVudFRyYW5zbGF0aW9uV2FybiBpbnN0YW5jZW9mIFJlZ0V4cFxuICAgID8gdGhpcy5fc2lsZW50VHJhbnNsYXRpb25XYXJuLnRlc3Qoa2V5KVxuICAgIDogdGhpcy5fc2lsZW50VHJhbnNsYXRpb25XYXJuXG59O1xuXG5WdWVJMThuLnByb3RvdHlwZS5faW50ZXJwb2xhdGUgPSBmdW5jdGlvbiBfaW50ZXJwb2xhdGUgKFxuICBsb2NhbGUsXG4gIG1lc3NhZ2UsXG4gIGtleSxcbiAgaG9zdCxcbiAgaW50ZXJwb2xhdGVNb2RlLFxuICB2YWx1ZXMsXG4gIHZpc2l0ZWRMaW5rU3RhY2tcbikge1xuICBpZiAoIW1lc3NhZ2UpIHsgcmV0dXJuIG51bGwgfVxuXG4gIHZhciBwYXRoUmV0ID0gdGhpcy5fcGF0aC5nZXRQYXRoVmFsdWUobWVzc2FnZSwga2V5KTtcbiAgaWYgKEFycmF5LmlzQXJyYXkocGF0aFJldCkgfHwgaXNQbGFpbk9iamVjdChwYXRoUmV0KSkgeyByZXR1cm4gcGF0aFJldCB9XG5cbiAgdmFyIHJldDtcbiAgaWYgKGlzTnVsbChwYXRoUmV0KSkge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKGlzUGxhaW5PYmplY3QobWVzc2FnZSkpIHtcbiAgICAgIHJldCA9IG1lc3NhZ2Vba2V5XTtcbiAgICAgIGlmICghaXNTdHJpbmcocmV0KSkge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiAhdGhpcy5faXNTaWxlbnRUcmFuc2xhdGlvbldhcm4oa2V5KSAmJiAhdGhpcy5faXNTaWxlbnRGYWxsYmFjayhsb2NhbGUsIGtleSkpIHtcbiAgICAgICAgICB3YXJuKChcIlZhbHVlIG9mIGtleSAnXCIgKyBrZXkgKyBcIicgaXMgbm90IGEgc3RyaW5nIVwiKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoaXNTdHJpbmcocGF0aFJldCkpIHtcbiAgICAgIHJldCA9IHBhdGhSZXQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmICF0aGlzLl9pc1NpbGVudFRyYW5zbGF0aW9uV2FybihrZXkpICYmICF0aGlzLl9pc1NpbGVudEZhbGxiYWNrKGxvY2FsZSwga2V5KSkge1xuICAgICAgICB3YXJuKChcIlZhbHVlIG9mIGtleSAnXCIgKyBrZXkgKyBcIicgaXMgbm90IGEgc3RyaW5nIVwiKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgfVxuXG4gIC8vIENoZWNrIGZvciB0aGUgZXhpc3RlbmNlIG9mIGxpbmtzIHdpdGhpbiB0aGUgdHJhbnNsYXRlZCBzdHJpbmdcbiAgaWYgKHJldC5pbmRleE9mKCdAOicpID49IDAgfHwgcmV0LmluZGV4T2YoJ0AuJykgPj0gMCkge1xuICAgIHJldCA9IHRoaXMuX2xpbmsobG9jYWxlLCBtZXNzYWdlLCByZXQsIGhvc3QsICdyYXcnLCB2YWx1ZXMsIHZpc2l0ZWRMaW5rU3RhY2spO1xuICB9XG5cbiAgcmV0dXJuIHRoaXMuX3JlbmRlcihyZXQsIGludGVycG9sYXRlTW9kZSwgdmFsdWVzLCBrZXkpXG59O1xuXG5WdWVJMThuLnByb3RvdHlwZS5fbGluayA9IGZ1bmN0aW9uIF9saW5rIChcbiAgbG9jYWxlLFxuICBtZXNzYWdlLFxuICBzdHIsXG4gIGhvc3QsXG4gIGludGVycG9sYXRlTW9kZSxcbiAgdmFsdWVzLFxuICB2aXNpdGVkTGlua1N0YWNrXG4pIHtcbiAgdmFyIHJldCA9IHN0cjtcblxuICAvLyBNYXRjaCBhbGwgdGhlIGxpbmtzIHdpdGhpbiB0aGUgbG9jYWxcbiAgLy8gV2UgYXJlIGdvaW5nIHRvIHJlcGxhY2UgZWFjaCBvZlxuICAvLyB0aGVtIHdpdGggaXRzIHRyYW5zbGF0aW9uXG4gIHZhciBtYXRjaGVzID0gcmV0Lm1hdGNoKGxpbmtLZXlNYXRjaGVyKTtcbiAgZm9yICh2YXIgaWR4IGluIG1hdGNoZXMpIHtcbiAgICAvLyBpZSBjb21wYXRpYmxlOiBmaWx0ZXIgY3VzdG9tIGFycmF5XG4gICAgLy8gcHJvdG90eXBlIG1ldGhvZFxuICAgIGlmICghbWF0Y2hlcy5oYXNPd25Qcm9wZXJ0eShpZHgpKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICB2YXIgbGluayA9IG1hdGNoZXNbaWR4XTtcbiAgICB2YXIgbGlua0tleVByZWZpeE1hdGNoZXMgPSBsaW5rLm1hdGNoKGxpbmtLZXlQcmVmaXhNYXRjaGVyKTtcbiAgICB2YXIgbGlua1ByZWZpeCA9IGxpbmtLZXlQcmVmaXhNYXRjaGVzWzBdO1xuICAgICAgdmFyIGZvcm1hdHRlck5hbWUgPSBsaW5rS2V5UHJlZml4TWF0Y2hlc1sxXTtcblxuICAgIC8vIFJlbW92ZSB0aGUgbGVhZGluZyBAOiwgQC5jYXNlOiBhbmQgdGhlIGJyYWNrZXRzXG4gICAgdmFyIGxpbmtQbGFjZWhvbGRlciA9IGxpbmsucmVwbGFjZShsaW5rUHJlZml4LCAnJykucmVwbGFjZShicmFja2V0c01hdGNoZXIsICcnKTtcblxuICAgIGlmIChpbmNsdWRlcyh2aXNpdGVkTGlua1N0YWNrLCBsaW5rUGxhY2Vob2xkZXIpKSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICB3YXJuKChcIkNpcmN1bGFyIHJlZmVyZW5jZSBmb3VuZC4gXFxcIlwiICsgbGluayArIFwiXFxcIiBpcyBhbHJlYWR5IHZpc2l0ZWQgaW4gdGhlIGNoYWluIG9mIFwiICsgKHZpc2l0ZWRMaW5rU3RhY2sucmV2ZXJzZSgpLmpvaW4oJyA8LSAnKSkpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXRcbiAgICB9XG4gICAgdmlzaXRlZExpbmtTdGFjay5wdXNoKGxpbmtQbGFjZWhvbGRlcik7XG5cbiAgICAvLyBUcmFuc2xhdGUgdGhlIGxpbmtcbiAgICB2YXIgdHJhbnNsYXRlZCA9IHRoaXMuX2ludGVycG9sYXRlKFxuICAgICAgbG9jYWxlLCBtZXNzYWdlLCBsaW5rUGxhY2Vob2xkZXIsIGhvc3QsXG4gICAgICBpbnRlcnBvbGF0ZU1vZGUgPT09ICdyYXcnID8gJ3N0cmluZycgOiBpbnRlcnBvbGF0ZU1vZGUsXG4gICAgICBpbnRlcnBvbGF0ZU1vZGUgPT09ICdyYXcnID8gdW5kZWZpbmVkIDogdmFsdWVzLFxuICAgICAgdmlzaXRlZExpbmtTdGFja1xuICAgICk7XG5cbiAgICBpZiAodGhpcy5faXNGYWxsYmFja1Jvb3QodHJhbnNsYXRlZCkpIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmICF0aGlzLl9pc1NpbGVudFRyYW5zbGF0aW9uV2FybihsaW5rUGxhY2Vob2xkZXIpKSB7XG4gICAgICAgIHdhcm4oKFwiRmFsbCBiYWNrIHRvIHRyYW5zbGF0ZSB0aGUgbGluayBwbGFjZWhvbGRlciAnXCIgKyBsaW5rUGxhY2Vob2xkZXIgKyBcIicgd2l0aCByb290IGxvY2FsZS5cIikpO1xuICAgICAgfVxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICBpZiAoIXRoaXMuX3Jvb3QpIHsgdGhyb3cgRXJyb3IoJ3VuZXhwZWN0ZWQgZXJyb3InKSB9XG4gICAgICB2YXIgcm9vdCA9IHRoaXMuX3Jvb3QuJGkxOG47XG4gICAgICB0cmFuc2xhdGVkID0gcm9vdC5fdHJhbnNsYXRlKFxuICAgICAgICByb290Ll9nZXRNZXNzYWdlcygpLCByb290LmxvY2FsZSwgcm9vdC5mYWxsYmFja0xvY2FsZSxcbiAgICAgICAgbGlua1BsYWNlaG9sZGVyLCBob3N0LCBpbnRlcnBvbGF0ZU1vZGUsIHZhbHVlc1xuICAgICAgKTtcbiAgICB9XG4gICAgdHJhbnNsYXRlZCA9IHRoaXMuX3dhcm5EZWZhdWx0KFxuICAgICAgbG9jYWxlLCBsaW5rUGxhY2Vob2xkZXIsIHRyYW5zbGF0ZWQsIGhvc3QsXG4gICAgICBBcnJheS5pc0FycmF5KHZhbHVlcykgPyB2YWx1ZXMgOiBbdmFsdWVzXSxcbiAgICAgIGludGVycG9sYXRlTW9kZVxuICAgICk7XG5cbiAgICBpZiAodGhpcy5fbW9kaWZpZXJzLmhhc093blByb3BlcnR5KGZvcm1hdHRlck5hbWUpKSB7XG4gICAgICB0cmFuc2xhdGVkID0gdGhpcy5fbW9kaWZpZXJzW2Zvcm1hdHRlck5hbWVdKHRyYW5zbGF0ZWQpO1xuICAgIH0gZWxzZSBpZiAoZGVmYXVsdE1vZGlmaWVycy5oYXNPd25Qcm9wZXJ0eShmb3JtYXR0ZXJOYW1lKSkge1xuICAgICAgdHJhbnNsYXRlZCA9IGRlZmF1bHRNb2RpZmllcnNbZm9ybWF0dGVyTmFtZV0odHJhbnNsYXRlZCk7XG4gICAgfVxuXG4gICAgdmlzaXRlZExpbmtTdGFjay5wb3AoKTtcblxuICAgIC8vIFJlcGxhY2UgdGhlIGxpbmsgd2l0aCB0aGUgdHJhbnNsYXRlZFxuICAgIHJldCA9ICF0cmFuc2xhdGVkID8gcmV0IDogcmV0LnJlcGxhY2UobGluaywgdHJhbnNsYXRlZCk7XG4gIH1cblxuICByZXR1cm4gcmV0XG59O1xuXG5WdWVJMThuLnByb3RvdHlwZS5fcmVuZGVyID0gZnVuY3Rpb24gX3JlbmRlciAobWVzc2FnZSwgaW50ZXJwb2xhdGVNb2RlLCB2YWx1ZXMsIHBhdGgpIHtcbiAgdmFyIHJldCA9IHRoaXMuX2Zvcm1hdHRlci5pbnRlcnBvbGF0ZShtZXNzYWdlLCB2YWx1ZXMsIHBhdGgpO1xuXG4gIC8vIElmIHRoZSBjdXN0b20gZm9ybWF0dGVyIHJlZnVzZXMgdG8gd29yayAtIGFwcGx5IHRoZSBkZWZhdWx0IG9uZVxuICBpZiAoIXJldCkge1xuICAgIHJldCA9IGRlZmF1bHRGb3JtYXR0ZXIuaW50ZXJwb2xhdGUobWVzc2FnZSwgdmFsdWVzLCBwYXRoKTtcbiAgfVxuXG4gIC8vIGlmIGludGVycG9sYXRlTW9kZSBpcyAqKm5vdCoqICdzdHJpbmcnICgncm93JyksXG4gIC8vIHJldHVybiB0aGUgY29tcGlsZWQgZGF0YSAoZS5nLiBbJ2ZvbycsIFZOb2RlLCAnYmFyJ10pIHdpdGggZm9ybWF0dGVyXG4gIHJldHVybiBpbnRlcnBvbGF0ZU1vZGUgPT09ICdzdHJpbmcnICYmICFpc1N0cmluZyhyZXQpID8gcmV0LmpvaW4oJycpIDogcmV0XG59O1xuXG5WdWVJMThuLnByb3RvdHlwZS5fYXBwZW5kSXRlbVRvQ2hhaW4gPSBmdW5jdGlvbiBfYXBwZW5kSXRlbVRvQ2hhaW4gKGNoYWluLCBpdGVtLCBibG9ja3MpIHtcbiAgdmFyIGZvbGxvdyA9IGZhbHNlO1xuICBpZiAoIWluY2x1ZGVzKGNoYWluLCBpdGVtKSkge1xuICAgIGZvbGxvdyA9IHRydWU7XG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgIGZvbGxvdyA9IGl0ZW1baXRlbS5sZW5ndGggLSAxXSAhPT0gJyEnO1xuICAgICAgaXRlbSA9IGl0ZW0ucmVwbGFjZSgvIS9nLCAnJyk7XG4gICAgICBjaGFpbi5wdXNoKGl0ZW0pO1xuICAgICAgaWYgKGJsb2NrcyAmJiBibG9ja3NbaXRlbV0pIHtcbiAgICAgICAgZm9sbG93ID0gYmxvY2tzW2l0ZW1dO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gZm9sbG93XG59O1xuXG5WdWVJMThuLnByb3RvdHlwZS5fYXBwZW5kTG9jYWxlVG9DaGFpbiA9IGZ1bmN0aW9uIF9hcHBlbmRMb2NhbGVUb0NoYWluIChjaGFpbiwgbG9jYWxlLCBibG9ja3MpIHtcbiAgdmFyIGZvbGxvdztcbiAgdmFyIHRva2VucyA9IGxvY2FsZS5zcGxpdCgnLScpO1xuICBkbyB7XG4gICAgdmFyIGl0ZW0gPSB0b2tlbnMuam9pbignLScpO1xuICAgIGZvbGxvdyA9IHRoaXMuX2FwcGVuZEl0ZW1Ub0NoYWluKGNoYWluLCBpdGVtLCBibG9ja3MpO1xuICAgIHRva2Vucy5zcGxpY2UoLTEsIDEpO1xuICB9IHdoaWxlICh0b2tlbnMubGVuZ3RoICYmIChmb2xsb3cgPT09IHRydWUpKVxuICByZXR1cm4gZm9sbG93XG59O1xuXG5WdWVJMThuLnByb3RvdHlwZS5fYXBwZW5kQmxvY2tUb0NoYWluID0gZnVuY3Rpb24gX2FwcGVuZEJsb2NrVG9DaGFpbiAoY2hhaW4sIGJsb2NrLCBibG9ja3MpIHtcbiAgdmFyIGZvbGxvdyA9IHRydWU7XG4gIGZvciAodmFyIGkgPSAwOyAoaSA8IGJsb2NrLmxlbmd0aCkgJiYgKGlzQm9vbGVhbihmb2xsb3cpKTsgaSsrKSB7XG4gICAgdmFyIGxvY2FsZSA9IGJsb2NrW2ldO1xuICAgIGlmIChpc1N0cmluZyhsb2NhbGUpKSB7XG4gICAgICBmb2xsb3cgPSB0aGlzLl9hcHBlbmRMb2NhbGVUb0NoYWluKGNoYWluLCBsb2NhbGUsIGJsb2Nrcyk7XG4gICAgfVxuICB9XG4gIHJldHVybiBmb2xsb3dcbn07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLl9nZXRMb2NhbGVDaGFpbiA9IGZ1bmN0aW9uIF9nZXRMb2NhbGVDaGFpbiAoc3RhcnQsIGZhbGxiYWNrTG9jYWxlKSB7XG4gIGlmIChzdGFydCA9PT0gJycpIHsgcmV0dXJuIFtdIH1cblxuICBpZiAoIXRoaXMuX2xvY2FsZUNoYWluQ2FjaGUpIHtcbiAgICB0aGlzLl9sb2NhbGVDaGFpbkNhY2hlID0ge307XG4gIH1cblxuICB2YXIgY2hhaW4gPSB0aGlzLl9sb2NhbGVDaGFpbkNhY2hlW3N0YXJ0XTtcbiAgaWYgKCFjaGFpbikge1xuICAgIGlmICghZmFsbGJhY2tMb2NhbGUpIHtcbiAgICAgIGZhbGxiYWNrTG9jYWxlID0gdGhpcy5mYWxsYmFja0xvY2FsZTtcbiAgICB9XG4gICAgY2hhaW4gPSBbXTtcblxuICAgIC8vIGZpcnN0IGJsb2NrIGRlZmluZWQgYnkgc3RhcnRcbiAgICB2YXIgYmxvY2sgPSBbc3RhcnRdO1xuXG4gICAgLy8gd2hpbGUgYW55IGludGVydmVuaW5nIGJsb2NrIGZvdW5kXG4gICAgd2hpbGUgKGlzQXJyYXkoYmxvY2spKSB7XG4gICAgICBibG9jayA9IHRoaXMuX2FwcGVuZEJsb2NrVG9DaGFpbihcbiAgICAgICAgY2hhaW4sXG4gICAgICAgIGJsb2NrLFxuICAgICAgICBmYWxsYmFja0xvY2FsZVxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBsYXN0IGJsb2NrIGRlZmluZWQgYnkgZGVmYXVsdFxuICAgIHZhciBkZWZhdWx0cztcbiAgICBpZiAoaXNBcnJheShmYWxsYmFja0xvY2FsZSkpIHtcbiAgICAgIGRlZmF1bHRzID0gZmFsbGJhY2tMb2NhbGU7XG4gICAgfSBlbHNlIGlmIChpc09iamVjdChmYWxsYmFja0xvY2FsZSkpIHtcbiAgICAgIC8qICRGbG93Rml4TWUgKi9cbiAgICAgIGlmIChmYWxsYmFja0xvY2FsZVsnZGVmYXVsdCddKSB7XG4gICAgICAgIGRlZmF1bHRzID0gZmFsbGJhY2tMb2NhbGVbJ2RlZmF1bHQnXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlZmF1bHRzID0gbnVsbDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZGVmYXVsdHMgPSBmYWxsYmFja0xvY2FsZTtcbiAgICB9XG5cbiAgICAvLyBjb252ZXJ0IGRlZmF1bHRzIHRvIGFycmF5XG4gICAgaWYgKGlzU3RyaW5nKGRlZmF1bHRzKSkge1xuICAgICAgYmxvY2sgPSBbZGVmYXVsdHNdO1xuICAgIH0gZWxzZSB7XG4gICAgICBibG9jayA9IGRlZmF1bHRzO1xuICAgIH1cbiAgICBpZiAoYmxvY2spIHtcbiAgICAgIHRoaXMuX2FwcGVuZEJsb2NrVG9DaGFpbihcbiAgICAgICAgY2hhaW4sXG4gICAgICAgIGJsb2NrLFxuICAgICAgICBudWxsXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLl9sb2NhbGVDaGFpbkNhY2hlW3N0YXJ0XSA9IGNoYWluO1xuICB9XG4gIHJldHVybiBjaGFpblxufTtcblxuVnVlSTE4bi5wcm90b3R5cGUuX3RyYW5zbGF0ZSA9IGZ1bmN0aW9uIF90cmFuc2xhdGUgKFxuICBtZXNzYWdlcyxcbiAgbG9jYWxlLFxuICBmYWxsYmFjayxcbiAga2V5LFxuICBob3N0LFxuICBpbnRlcnBvbGF0ZU1vZGUsXG4gIGFyZ3Ncbikge1xuICB2YXIgY2hhaW4gPSB0aGlzLl9nZXRMb2NhbGVDaGFpbihsb2NhbGUsIGZhbGxiYWNrKTtcbiAgdmFyIHJlcztcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGFpbi5sZW5ndGg7IGkrKykge1xuICAgIHZhciBzdGVwID0gY2hhaW5baV07XG4gICAgcmVzID1cbiAgICAgIHRoaXMuX2ludGVycG9sYXRlKHN0ZXAsIG1lc3NhZ2VzW3N0ZXBdLCBrZXksIGhvc3QsIGludGVycG9sYXRlTW9kZSwgYXJncywgW2tleV0pO1xuICAgIGlmICghaXNOdWxsKHJlcykpIHtcbiAgICAgIGlmIChzdGVwICE9PSBsb2NhbGUgJiYgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiAhdGhpcy5faXNTaWxlbnRUcmFuc2xhdGlvbldhcm4oa2V5KSAmJiAhdGhpcy5faXNTaWxlbnRGYWxsYmFja1dhcm4oa2V5KSkge1xuICAgICAgICB3YXJuKChcIkZhbGwgYmFjayB0byB0cmFuc2xhdGUgdGhlIGtleXBhdGggJ1wiICsga2V5ICsgXCInIHdpdGggJ1wiICsgc3RlcCArIFwiJyBsb2NhbGUuXCIpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXNcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGxcbn07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLl90ID0gZnVuY3Rpb24gX3QgKGtleSwgX2xvY2FsZSwgbWVzc2FnZXMsIGhvc3QpIHtcbiAgICB2YXIgcmVmO1xuXG4gICAgdmFyIHZhbHVlcyA9IFtdLCBsZW4gPSBhcmd1bWVudHMubGVuZ3RoIC0gNDtcbiAgICB3aGlsZSAoIGxlbi0tID4gMCApIHZhbHVlc1sgbGVuIF0gPSBhcmd1bWVudHNbIGxlbiArIDQgXTtcbiAgaWYgKCFrZXkpIHsgcmV0dXJuICcnIH1cblxuICB2YXIgcGFyc2VkQXJncyA9IHBhcnNlQXJncy5hcHBseSh2b2lkIDAsIHZhbHVlcyk7XG4gIHZhciBsb2NhbGUgPSBwYXJzZWRBcmdzLmxvY2FsZSB8fCBfbG9jYWxlO1xuXG4gIHZhciByZXQgPSB0aGlzLl90cmFuc2xhdGUoXG4gICAgbWVzc2FnZXMsIGxvY2FsZSwgdGhpcy5mYWxsYmFja0xvY2FsZSwga2V5LFxuICAgIGhvc3QsICdzdHJpbmcnLCBwYXJzZWRBcmdzLnBhcmFtc1xuICApO1xuICBpZiAodGhpcy5faXNGYWxsYmFja1Jvb3QocmV0KSkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmICF0aGlzLl9pc1NpbGVudFRyYW5zbGF0aW9uV2FybihrZXkpICYmICF0aGlzLl9pc1NpbGVudEZhbGxiYWNrV2FybihrZXkpKSB7XG4gICAgICB3YXJuKChcIkZhbGwgYmFjayB0byB0cmFuc2xhdGUgdGhlIGtleXBhdGggJ1wiICsga2V5ICsgXCInIHdpdGggcm9vdCBsb2NhbGUuXCIpKTtcbiAgICB9XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKCF0aGlzLl9yb290KSB7IHRocm93IEVycm9yKCd1bmV4cGVjdGVkIGVycm9yJykgfVxuICAgIHJldHVybiAocmVmID0gdGhpcy5fcm9vdCkuJHQuYXBwbHkocmVmLCBbIGtleSBdLmNvbmNhdCggdmFsdWVzICkpXG4gIH0gZWxzZSB7XG4gICAgcmV0ID0gdGhpcy5fd2FybkRlZmF1bHQobG9jYWxlLCBrZXksIHJldCwgaG9zdCwgdmFsdWVzLCAnc3RyaW5nJyk7XG4gICAgaWYgKHRoaXMuX3Bvc3RUcmFuc2xhdGlvbiAmJiByZXQgIT09IG51bGwgJiYgcmV0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldCA9IHRoaXMuX3Bvc3RUcmFuc2xhdGlvbihyZXQsIGtleSk7XG4gICAgfVxuICAgIHJldHVybiByZXRcbiAgfVxufTtcblxuVnVlSTE4bi5wcm90b3R5cGUudCA9IGZ1bmN0aW9uIHQgKGtleSkge1xuICAgIHZhciByZWY7XG5cbiAgICB2YXIgdmFsdWVzID0gW10sIGxlbiA9IGFyZ3VtZW50cy5sZW5ndGggLSAxO1xuICAgIHdoaWxlICggbGVuLS0gPiAwICkgdmFsdWVzWyBsZW4gXSA9IGFyZ3VtZW50c1sgbGVuICsgMSBdO1xuICByZXR1cm4gKHJlZiA9IHRoaXMpLl90LmFwcGx5KHJlZiwgWyBrZXksIHRoaXMubG9jYWxlLCB0aGlzLl9nZXRNZXNzYWdlcygpLCBudWxsIF0uY29uY2F0KCB2YWx1ZXMgKSlcbn07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLl9pID0gZnVuY3Rpb24gX2kgKGtleSwgbG9jYWxlLCBtZXNzYWdlcywgaG9zdCwgdmFsdWVzKSB7XG4gIHZhciByZXQgPVxuICAgIHRoaXMuX3RyYW5zbGF0ZShtZXNzYWdlcywgbG9jYWxlLCB0aGlzLmZhbGxiYWNrTG9jYWxlLCBrZXksIGhvc3QsICdyYXcnLCB2YWx1ZXMpO1xuICBpZiAodGhpcy5faXNGYWxsYmFja1Jvb3QocmV0KSkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmICF0aGlzLl9pc1NpbGVudFRyYW5zbGF0aW9uV2FybihrZXkpKSB7XG4gICAgICB3YXJuKChcIkZhbGwgYmFjayB0byBpbnRlcnBvbGF0ZSB0aGUga2V5cGF0aCAnXCIgKyBrZXkgKyBcIicgd2l0aCByb290IGxvY2FsZS5cIikpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuX3Jvb3QpIHsgdGhyb3cgRXJyb3IoJ3VuZXhwZWN0ZWQgZXJyb3InKSB9XG4gICAgcmV0dXJuIHRoaXMuX3Jvb3QuJGkxOG4uaShrZXksIGxvY2FsZSwgdmFsdWVzKVxuICB9IGVsc2Uge1xuICAgIHJldHVybiB0aGlzLl93YXJuRGVmYXVsdChsb2NhbGUsIGtleSwgcmV0LCBob3N0LCBbdmFsdWVzXSwgJ3JhdycpXG4gIH1cbn07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLmkgPSBmdW5jdGlvbiBpIChrZXksIGxvY2FsZSwgdmFsdWVzKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoIWtleSkgeyByZXR1cm4gJycgfVxuXG4gIGlmICghaXNTdHJpbmcobG9jYWxlKSkge1xuICAgIGxvY2FsZSA9IHRoaXMubG9jYWxlO1xuICB9XG5cbiAgcmV0dXJuIHRoaXMuX2koa2V5LCBsb2NhbGUsIHRoaXMuX2dldE1lc3NhZ2VzKCksIG51bGwsIHZhbHVlcylcbn07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLl90YyA9IGZ1bmN0aW9uIF90YyAoXG4gIGtleSxcbiAgX2xvY2FsZSxcbiAgbWVzc2FnZXMsXG4gIGhvc3QsXG4gIGNob2ljZVxuKSB7XG4gICAgdmFyIHJlZjtcblxuICAgIHZhciB2YWx1ZXMgPSBbXSwgbGVuID0gYXJndW1lbnRzLmxlbmd0aCAtIDU7XG4gICAgd2hpbGUgKCBsZW4tLSA+IDAgKSB2YWx1ZXNbIGxlbiBdID0gYXJndW1lbnRzWyBsZW4gKyA1IF07XG4gIGlmICgha2V5KSB7IHJldHVybiAnJyB9XG4gIGlmIChjaG9pY2UgPT09IHVuZGVmaW5lZCkge1xuICAgIGNob2ljZSA9IDE7XG4gIH1cblxuICB2YXIgcHJlZGVmaW5lZCA9IHsgJ2NvdW50JzogY2hvaWNlLCAnbic6IGNob2ljZSB9O1xuICB2YXIgcGFyc2VkQXJncyA9IHBhcnNlQXJncy5hcHBseSh2b2lkIDAsIHZhbHVlcyk7XG4gIHBhcnNlZEFyZ3MucGFyYW1zID0gT2JqZWN0LmFzc2lnbihwcmVkZWZpbmVkLCBwYXJzZWRBcmdzLnBhcmFtcyk7XG4gIHZhbHVlcyA9IHBhcnNlZEFyZ3MubG9jYWxlID09PSBudWxsID8gW3BhcnNlZEFyZ3MucGFyYW1zXSA6IFtwYXJzZWRBcmdzLmxvY2FsZSwgcGFyc2VkQXJncy5wYXJhbXNdO1xuICByZXR1cm4gdGhpcy5mZXRjaENob2ljZSgocmVmID0gdGhpcykuX3QuYXBwbHkocmVmLCBbIGtleSwgX2xvY2FsZSwgbWVzc2FnZXMsIGhvc3QgXS5jb25jYXQoIHZhbHVlcyApKSwgY2hvaWNlKVxufTtcblxuVnVlSTE4bi5wcm90b3R5cGUuZmV0Y2hDaG9pY2UgPSBmdW5jdGlvbiBmZXRjaENob2ljZSAobWVzc2FnZSwgY2hvaWNlKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoIW1lc3NhZ2UgJiYgIWlzU3RyaW5nKG1lc3NhZ2UpKSB7IHJldHVybiBudWxsIH1cbiAgdmFyIGNob2ljZXMgPSBtZXNzYWdlLnNwbGl0KCd8Jyk7XG5cbiAgY2hvaWNlID0gdGhpcy5nZXRDaG9pY2VJbmRleChjaG9pY2UsIGNob2ljZXMubGVuZ3RoKTtcbiAgaWYgKCFjaG9pY2VzW2Nob2ljZV0pIHsgcmV0dXJuIG1lc3NhZ2UgfVxuICByZXR1cm4gY2hvaWNlc1tjaG9pY2VdLnRyaW0oKVxufTtcblxuVnVlSTE4bi5wcm90b3R5cGUudGMgPSBmdW5jdGlvbiB0YyAoa2V5LCBjaG9pY2UpIHtcbiAgICB2YXIgcmVmO1xuXG4gICAgdmFyIHZhbHVlcyA9IFtdLCBsZW4gPSBhcmd1bWVudHMubGVuZ3RoIC0gMjtcbiAgICB3aGlsZSAoIGxlbi0tID4gMCApIHZhbHVlc1sgbGVuIF0gPSBhcmd1bWVudHNbIGxlbiArIDIgXTtcbiAgcmV0dXJuIChyZWYgPSB0aGlzKS5fdGMuYXBwbHkocmVmLCBbIGtleSwgdGhpcy5sb2NhbGUsIHRoaXMuX2dldE1lc3NhZ2VzKCksIG51bGwsIGNob2ljZSBdLmNvbmNhdCggdmFsdWVzICkpXG59O1xuXG5WdWVJMThuLnByb3RvdHlwZS5fdGUgPSBmdW5jdGlvbiBfdGUgKGtleSwgbG9jYWxlLCBtZXNzYWdlcykge1xuICAgIHZhciBhcmdzID0gW10sIGxlbiA9IGFyZ3VtZW50cy5sZW5ndGggLSAzO1xuICAgIHdoaWxlICggbGVuLS0gPiAwICkgYXJnc1sgbGVuIF0gPSBhcmd1bWVudHNbIGxlbiArIDMgXTtcblxuICB2YXIgX2xvY2FsZSA9IHBhcnNlQXJncy5hcHBseSh2b2lkIDAsIGFyZ3MpLmxvY2FsZSB8fCBsb2NhbGU7XG4gIHJldHVybiB0aGlzLl9leGlzdChtZXNzYWdlc1tfbG9jYWxlXSwga2V5KVxufTtcblxuVnVlSTE4bi5wcm90b3R5cGUudGUgPSBmdW5jdGlvbiB0ZSAoa2V5LCBsb2NhbGUpIHtcbiAgcmV0dXJuIHRoaXMuX3RlKGtleSwgdGhpcy5sb2NhbGUsIHRoaXMuX2dldE1lc3NhZ2VzKCksIGxvY2FsZSlcbn07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLmdldExvY2FsZU1lc3NhZ2UgPSBmdW5jdGlvbiBnZXRMb2NhbGVNZXNzYWdlIChsb2NhbGUpIHtcbiAgcmV0dXJuIGxvb3NlQ2xvbmUodGhpcy5fdm0ubWVzc2FnZXNbbG9jYWxlXSB8fCB7fSlcbn07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLnNldExvY2FsZU1lc3NhZ2UgPSBmdW5jdGlvbiBzZXRMb2NhbGVNZXNzYWdlIChsb2NhbGUsIG1lc3NhZ2UpIHtcbiAgaWYgKHRoaXMuX3dhcm5IdG1sSW5NZXNzYWdlID09PSAnd2FybicgfHwgdGhpcy5fd2Fybkh0bWxJbk1lc3NhZ2UgPT09ICdlcnJvcicpIHtcbiAgICB0aGlzLl9jaGVja0xvY2FsZU1lc3NhZ2UobG9jYWxlLCB0aGlzLl93YXJuSHRtbEluTWVzc2FnZSwgbWVzc2FnZSk7XG4gIH1cbiAgdGhpcy5fdm0uJHNldCh0aGlzLl92bS5tZXNzYWdlcywgbG9jYWxlLCBtZXNzYWdlKTtcbn07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLm1lcmdlTG9jYWxlTWVzc2FnZSA9IGZ1bmN0aW9uIG1lcmdlTG9jYWxlTWVzc2FnZSAobG9jYWxlLCBtZXNzYWdlKSB7XG4gIGlmICh0aGlzLl93YXJuSHRtbEluTWVzc2FnZSA9PT0gJ3dhcm4nIHx8IHRoaXMuX3dhcm5IdG1sSW5NZXNzYWdlID09PSAnZXJyb3InKSB7XG4gICAgdGhpcy5fY2hlY2tMb2NhbGVNZXNzYWdlKGxvY2FsZSwgdGhpcy5fd2Fybkh0bWxJbk1lc3NhZ2UsIG1lc3NhZ2UpO1xuICB9XG4gIHRoaXMuX3ZtLiRzZXQodGhpcy5fdm0ubWVzc2FnZXMsIGxvY2FsZSwgbWVyZ2Uoe30sIHRoaXMuX3ZtLm1lc3NhZ2VzW2xvY2FsZV0gfHwge30sIG1lc3NhZ2UpKTtcbn07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLmdldERhdGVUaW1lRm9ybWF0ID0gZnVuY3Rpb24gZ2V0RGF0ZVRpbWVGb3JtYXQgKGxvY2FsZSkge1xuICByZXR1cm4gbG9vc2VDbG9uZSh0aGlzLl92bS5kYXRlVGltZUZvcm1hdHNbbG9jYWxlXSB8fCB7fSlcbn07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLnNldERhdGVUaW1lRm9ybWF0ID0gZnVuY3Rpb24gc2V0RGF0ZVRpbWVGb3JtYXQgKGxvY2FsZSwgZm9ybWF0KSB7XG4gIHRoaXMuX3ZtLiRzZXQodGhpcy5fdm0uZGF0ZVRpbWVGb3JtYXRzLCBsb2NhbGUsIGZvcm1hdCk7XG4gIHRoaXMuX2NsZWFyRGF0ZVRpbWVGb3JtYXQobG9jYWxlLCBmb3JtYXQpO1xufTtcblxuVnVlSTE4bi5wcm90b3R5cGUubWVyZ2VEYXRlVGltZUZvcm1hdCA9IGZ1bmN0aW9uIG1lcmdlRGF0ZVRpbWVGb3JtYXQgKGxvY2FsZSwgZm9ybWF0KSB7XG4gIHRoaXMuX3ZtLiRzZXQodGhpcy5fdm0uZGF0ZVRpbWVGb3JtYXRzLCBsb2NhbGUsIG1lcmdlKHRoaXMuX3ZtLmRhdGVUaW1lRm9ybWF0c1tsb2NhbGVdIHx8IHt9LCBmb3JtYXQpKTtcbiAgdGhpcy5fY2xlYXJEYXRlVGltZUZvcm1hdChsb2NhbGUsIGZvcm1hdCk7XG59O1xuXG5WdWVJMThuLnByb3RvdHlwZS5fY2xlYXJEYXRlVGltZUZvcm1hdCA9IGZ1bmN0aW9uIF9jbGVhckRhdGVUaW1lRm9ybWF0IChsb2NhbGUsIGZvcm1hdCkge1xuICBmb3IgKHZhciBrZXkgaW4gZm9ybWF0KSB7XG4gICAgdmFyIGlkID0gbG9jYWxlICsgXCJfX1wiICsga2V5O1xuXG4gICAgaWYgKCF0aGlzLl9kYXRlVGltZUZvcm1hdHRlcnMuaGFzT3duUHJvcGVydHkoaWQpKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIGRlbGV0ZSB0aGlzLl9kYXRlVGltZUZvcm1hdHRlcnNbaWRdO1xuICB9XG59O1xuXG5WdWVJMThuLnByb3RvdHlwZS5fbG9jYWxpemVEYXRlVGltZSA9IGZ1bmN0aW9uIF9sb2NhbGl6ZURhdGVUaW1lIChcbiAgdmFsdWUsXG4gIGxvY2FsZSxcbiAgZmFsbGJhY2ssXG4gIGRhdGVUaW1lRm9ybWF0cyxcbiAga2V5XG4pIHtcbiAgdmFyIF9sb2NhbGUgPSBsb2NhbGU7XG4gIHZhciBmb3JtYXRzID0gZGF0ZVRpbWVGb3JtYXRzW19sb2NhbGVdO1xuXG4gIHZhciBjaGFpbiA9IHRoaXMuX2dldExvY2FsZUNoYWluKGxvY2FsZSwgZmFsbGJhY2spO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYWluLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGN1cnJlbnQgPSBfbG9jYWxlO1xuICAgIHZhciBzdGVwID0gY2hhaW5baV07XG4gICAgZm9ybWF0cyA9IGRhdGVUaW1lRm9ybWF0c1tzdGVwXTtcbiAgICBfbG9jYWxlID0gc3RlcDtcbiAgICAvLyBmYWxsYmFjayBsb2NhbGVcbiAgICBpZiAoaXNOdWxsKGZvcm1hdHMpIHx8IGlzTnVsbChmb3JtYXRzW2tleV0pKSB7XG4gICAgICBpZiAoc3RlcCAhPT0gbG9jYWxlICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgIXRoaXMuX2lzU2lsZW50VHJhbnNsYXRpb25XYXJuKGtleSkgJiYgIXRoaXMuX2lzU2lsZW50RmFsbGJhY2tXYXJuKGtleSkpIHtcbiAgICAgICAgd2FybigoXCJGYWxsIGJhY2sgdG8gJ1wiICsgc3RlcCArIFwiJyBkYXRldGltZSBmb3JtYXRzIGZyb20gJ1wiICsgY3VycmVudCArIFwiJyBkYXRldGltZSBmb3JtYXRzLlwiKSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGJyZWFrXG4gICAgfVxuICB9XG5cbiAgaWYgKGlzTnVsbChmb3JtYXRzKSB8fCBpc051bGwoZm9ybWF0c1trZXldKSkge1xuICAgIHJldHVybiBudWxsXG4gIH0gZWxzZSB7XG4gICAgdmFyIGZvcm1hdCA9IGZvcm1hdHNba2V5XTtcbiAgICB2YXIgaWQgPSBfbG9jYWxlICsgXCJfX1wiICsga2V5O1xuICAgIHZhciBmb3JtYXR0ZXIgPSB0aGlzLl9kYXRlVGltZUZvcm1hdHRlcnNbaWRdO1xuICAgIGlmICghZm9ybWF0dGVyKSB7XG4gICAgICBmb3JtYXR0ZXIgPSB0aGlzLl9kYXRlVGltZUZvcm1hdHRlcnNbaWRdID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoX2xvY2FsZSwgZm9ybWF0KTtcbiAgICB9XG4gICAgcmV0dXJuIGZvcm1hdHRlci5mb3JtYXQodmFsdWUpXG4gIH1cbn07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLl9kID0gZnVuY3Rpb24gX2QgKHZhbHVlLCBsb2NhbGUsIGtleSkge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgIVZ1ZUkxOG4uYXZhaWxhYmlsaXRpZXMuZGF0ZVRpbWVGb3JtYXQpIHtcbiAgICB3YXJuKCdDYW5ub3QgZm9ybWF0IGEgRGF0ZSB2YWx1ZSBkdWUgdG8gbm90IHN1cHBvcnRlZCBJbnRsLkRhdGVUaW1lRm9ybWF0LicpO1xuICAgIHJldHVybiAnJ1xuICB9XG5cbiAgaWYgKCFrZXkpIHtcbiAgICByZXR1cm4gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQobG9jYWxlKS5mb3JtYXQodmFsdWUpXG4gIH1cblxuICB2YXIgcmV0ID1cbiAgICB0aGlzLl9sb2NhbGl6ZURhdGVUaW1lKHZhbHVlLCBsb2NhbGUsIHRoaXMuZmFsbGJhY2tMb2NhbGUsIHRoaXMuX2dldERhdGVUaW1lRm9ybWF0cygpLCBrZXkpO1xuICBpZiAodGhpcy5faXNGYWxsYmFja1Jvb3QocmV0KSkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmICF0aGlzLl9pc1NpbGVudFRyYW5zbGF0aW9uV2FybihrZXkpICYmICF0aGlzLl9pc1NpbGVudEZhbGxiYWNrV2FybihrZXkpKSB7XG4gICAgICB3YXJuKChcIkZhbGwgYmFjayB0byBkYXRldGltZSBsb2NhbGl6YXRpb24gb2Ygcm9vdDoga2V5ICdcIiArIGtleSArIFwiJy5cIikpO1xuICAgIH1cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAoIXRoaXMuX3Jvb3QpIHsgdGhyb3cgRXJyb3IoJ3VuZXhwZWN0ZWQgZXJyb3InKSB9XG4gICAgcmV0dXJuIHRoaXMuX3Jvb3QuJGkxOG4uZCh2YWx1ZSwga2V5LCBsb2NhbGUpXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHJldCB8fCAnJ1xuICB9XG59O1xuXG5WdWVJMThuLnByb3RvdHlwZS5kID0gZnVuY3Rpb24gZCAodmFsdWUpIHtcbiAgICB2YXIgYXJncyA9IFtdLCBsZW4gPSBhcmd1bWVudHMubGVuZ3RoIC0gMTtcbiAgICB3aGlsZSAoIGxlbi0tID4gMCApIGFyZ3NbIGxlbiBdID0gYXJndW1lbnRzWyBsZW4gKyAxIF07XG5cbiAgdmFyIGxvY2FsZSA9IHRoaXMubG9jYWxlO1xuICB2YXIga2V5ID0gbnVsbDtcblxuICBpZiAoYXJncy5sZW5ndGggPT09IDEpIHtcbiAgICBpZiAoaXNTdHJpbmcoYXJnc1swXSkpIHtcbiAgICAgIGtleSA9IGFyZ3NbMF07XG4gICAgfSBlbHNlIGlmIChpc09iamVjdChhcmdzWzBdKSkge1xuICAgICAgaWYgKGFyZ3NbMF0ubG9jYWxlKSB7XG4gICAgICAgIGxvY2FsZSA9IGFyZ3NbMF0ubG9jYWxlO1xuICAgICAgfVxuICAgICAgaWYgKGFyZ3NbMF0ua2V5KSB7XG4gICAgICAgIGtleSA9IGFyZ3NbMF0ua2V5O1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIGlmIChhcmdzLmxlbmd0aCA9PT0gMikge1xuICAgIGlmIChpc1N0cmluZyhhcmdzWzBdKSkge1xuICAgICAga2V5ID0gYXJnc1swXTtcbiAgICB9XG4gICAgaWYgKGlzU3RyaW5nKGFyZ3NbMV0pKSB7XG4gICAgICBsb2NhbGUgPSBhcmdzWzFdO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0aGlzLl9kKHZhbHVlLCBsb2NhbGUsIGtleSlcbn07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLmdldE51bWJlckZvcm1hdCA9IGZ1bmN0aW9uIGdldE51bWJlckZvcm1hdCAobG9jYWxlKSB7XG4gIHJldHVybiBsb29zZUNsb25lKHRoaXMuX3ZtLm51bWJlckZvcm1hdHNbbG9jYWxlXSB8fCB7fSlcbn07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLnNldE51bWJlckZvcm1hdCA9IGZ1bmN0aW9uIHNldE51bWJlckZvcm1hdCAobG9jYWxlLCBmb3JtYXQpIHtcbiAgdGhpcy5fdm0uJHNldCh0aGlzLl92bS5udW1iZXJGb3JtYXRzLCBsb2NhbGUsIGZvcm1hdCk7XG4gIHRoaXMuX2NsZWFyTnVtYmVyRm9ybWF0KGxvY2FsZSwgZm9ybWF0KTtcbn07XG5cblZ1ZUkxOG4ucHJvdG90eXBlLm1lcmdlTnVtYmVyRm9ybWF0ID0gZnVuY3Rpb24gbWVyZ2VOdW1iZXJGb3JtYXQgKGxvY2FsZSwgZm9ybWF0KSB7XG4gIHRoaXMuX3ZtLiRzZXQodGhpcy5fdm0ubnVtYmVyRm9ybWF0cywgbG9jYWxlLCBtZXJnZSh0aGlzLl92bS5udW1iZXJGb3JtYXRzW2xvY2FsZV0gfHwge30sIGZvcm1hdCkpO1xuICB0aGlzLl9jbGVhck51bWJlckZvcm1hdChsb2NhbGUsIGZvcm1hdCk7XG59O1xuXG5WdWVJMThuLnByb3RvdHlwZS5fY2xlYXJOdW1iZXJGb3JtYXQgPSBmdW5jdGlvbiBfY2xlYXJOdW1iZXJGb3JtYXQgKGxvY2FsZSwgZm9ybWF0KSB7XG4gIGZvciAodmFyIGtleSBpbiBmb3JtYXQpIHtcbiAgICB2YXIgaWQgPSBsb2NhbGUgKyBcIl9fXCIgKyBrZXk7XG5cbiAgICBpZiAoIXRoaXMuX251bWJlckZvcm1hdHRlcnMuaGFzT3duUHJvcGVydHkoaWQpKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIGRlbGV0ZSB0aGlzLl9udW1iZXJGb3JtYXR0ZXJzW2lkXTtcbiAgfVxufTtcblxuVnVlSTE4bi5wcm90b3R5cGUuX2dldE51bWJlckZvcm1hdHRlciA9IGZ1bmN0aW9uIF9nZXROdW1iZXJGb3JtYXR0ZXIgKFxuICB2YWx1ZSxcbiAgbG9jYWxlLFxuICBmYWxsYmFjayxcbiAgbnVtYmVyRm9ybWF0cyxcbiAga2V5LFxuICBvcHRpb25zXG4pIHtcbiAgdmFyIF9sb2NhbGUgPSBsb2NhbGU7XG4gIHZhciBmb3JtYXRzID0gbnVtYmVyRm9ybWF0c1tfbG9jYWxlXTtcblxuICB2YXIgY2hhaW4gPSB0aGlzLl9nZXRMb2NhbGVDaGFpbihsb2NhbGUsIGZhbGxiYWNrKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGFpbi5sZW5ndGg7IGkrKykge1xuICAgIHZhciBjdXJyZW50ID0gX2xvY2FsZTtcbiAgICB2YXIgc3RlcCA9IGNoYWluW2ldO1xuICAgIGZvcm1hdHMgPSBudW1iZXJGb3JtYXRzW3N0ZXBdO1xuICAgIF9sb2NhbGUgPSBzdGVwO1xuICAgIC8vIGZhbGxiYWNrIGxvY2FsZVxuICAgIGlmIChpc051bGwoZm9ybWF0cykgfHwgaXNOdWxsKGZvcm1hdHNba2V5XSkpIHtcbiAgICAgIGlmIChzdGVwICE9PSBsb2NhbGUgJiYgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiAhdGhpcy5faXNTaWxlbnRUcmFuc2xhdGlvbldhcm4oa2V5KSAmJiAhdGhpcy5faXNTaWxlbnRGYWxsYmFja1dhcm4oa2V5KSkge1xuICAgICAgICB3YXJuKChcIkZhbGwgYmFjayB0byAnXCIgKyBzdGVwICsgXCInIG51bWJlciBmb3JtYXRzIGZyb20gJ1wiICsgY3VycmVudCArIFwiJyBudW1iZXIgZm9ybWF0cy5cIikpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBicmVha1xuICAgIH1cbiAgfVxuXG4gIGlmIChpc051bGwoZm9ybWF0cykgfHwgaXNOdWxsKGZvcm1hdHNba2V5XSkpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9IGVsc2Uge1xuICAgIHZhciBmb3JtYXQgPSBmb3JtYXRzW2tleV07XG5cbiAgICB2YXIgZm9ybWF0dGVyO1xuICAgIGlmIChvcHRpb25zKSB7XG4gICAgICAvLyBJZiBvcHRpb25zIHNwZWNpZmllZCAtIGNyZWF0ZSBvbmUgdGltZSBudW1iZXIgZm9ybWF0dGVyXG4gICAgICBmb3JtYXR0ZXIgPSBuZXcgSW50bC5OdW1iZXJGb3JtYXQoX2xvY2FsZSwgT2JqZWN0LmFzc2lnbih7fSwgZm9ybWF0LCBvcHRpb25zKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBpZCA9IF9sb2NhbGUgKyBcIl9fXCIgKyBrZXk7XG4gICAgICBmb3JtYXR0ZXIgPSB0aGlzLl9udW1iZXJGb3JtYXR0ZXJzW2lkXTtcbiAgICAgIGlmICghZm9ybWF0dGVyKSB7XG4gICAgICAgIGZvcm1hdHRlciA9IHRoaXMuX251bWJlckZvcm1hdHRlcnNbaWRdID0gbmV3IEludGwuTnVtYmVyRm9ybWF0KF9sb2NhbGUsIGZvcm1hdCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmb3JtYXR0ZXJcbiAgfVxufTtcblxuVnVlSTE4bi5wcm90b3R5cGUuX24gPSBmdW5jdGlvbiBfbiAodmFsdWUsIGxvY2FsZSwga2V5LCBvcHRpb25zKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoIVZ1ZUkxOG4uYXZhaWxhYmlsaXRpZXMubnVtYmVyRm9ybWF0KSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHdhcm4oJ0Nhbm5vdCBmb3JtYXQgYSBOdW1iZXIgdmFsdWUgZHVlIHRvIG5vdCBzdXBwb3J0ZWQgSW50bC5OdW1iZXJGb3JtYXQuJyk7XG4gICAgfVxuICAgIHJldHVybiAnJ1xuICB9XG5cbiAgaWYgKCFrZXkpIHtcbiAgICB2YXIgbmYgPSAhb3B0aW9ucyA/IG5ldyBJbnRsLk51bWJlckZvcm1hdChsb2NhbGUpIDogbmV3IEludGwuTnVtYmVyRm9ybWF0KGxvY2FsZSwgb3B0aW9ucyk7XG4gICAgcmV0dXJuIG5mLmZvcm1hdCh2YWx1ZSlcbiAgfVxuXG4gIHZhciBmb3JtYXR0ZXIgPSB0aGlzLl9nZXROdW1iZXJGb3JtYXR0ZXIodmFsdWUsIGxvY2FsZSwgdGhpcy5mYWxsYmFja0xvY2FsZSwgdGhpcy5fZ2V0TnVtYmVyRm9ybWF0cygpLCBrZXksIG9wdGlvbnMpO1xuICB2YXIgcmV0ID0gZm9ybWF0dGVyICYmIGZvcm1hdHRlci5mb3JtYXQodmFsdWUpO1xuICBpZiAodGhpcy5faXNGYWxsYmFja1Jvb3QocmV0KSkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmICF0aGlzLl9pc1NpbGVudFRyYW5zbGF0aW9uV2FybihrZXkpICYmICF0aGlzLl9pc1NpbGVudEZhbGxiYWNrV2FybihrZXkpKSB7XG4gICAgICB3YXJuKChcIkZhbGwgYmFjayB0byBudW1iZXIgbG9jYWxpemF0aW9uIG9mIHJvb3Q6IGtleSAnXCIgKyBrZXkgKyBcIicuXCIpKTtcbiAgICB9XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKCF0aGlzLl9yb290KSB7IHRocm93IEVycm9yKCd1bmV4cGVjdGVkIGVycm9yJykgfVxuICAgIHJldHVybiB0aGlzLl9yb290LiRpMThuLm4odmFsdWUsIE9iamVjdC5hc3NpZ24oe30sIHsga2V5OiBrZXksIGxvY2FsZTogbG9jYWxlIH0sIG9wdGlvbnMpKVxuICB9IGVsc2Uge1xuICAgIHJldHVybiByZXQgfHwgJydcbiAgfVxufTtcblxuVnVlSTE4bi5wcm90b3R5cGUubiA9IGZ1bmN0aW9uIG4gKHZhbHVlKSB7XG4gICAgdmFyIGFyZ3MgPSBbXSwgbGVuID0gYXJndW1lbnRzLmxlbmd0aCAtIDE7XG4gICAgd2hpbGUgKCBsZW4tLSA+IDAgKSBhcmdzWyBsZW4gXSA9IGFyZ3VtZW50c1sgbGVuICsgMSBdO1xuXG4gIHZhciBsb2NhbGUgPSB0aGlzLmxvY2FsZTtcbiAgdmFyIGtleSA9IG51bGw7XG4gIHZhciBvcHRpb25zID0gbnVsbDtcblxuICBpZiAoYXJncy5sZW5ndGggPT09IDEpIHtcbiAgICBpZiAoaXNTdHJpbmcoYXJnc1swXSkpIHtcbiAgICAgIGtleSA9IGFyZ3NbMF07XG4gICAgfSBlbHNlIGlmIChpc09iamVjdChhcmdzWzBdKSkge1xuICAgICAgaWYgKGFyZ3NbMF0ubG9jYWxlKSB7XG4gICAgICAgIGxvY2FsZSA9IGFyZ3NbMF0ubG9jYWxlO1xuICAgICAgfVxuICAgICAgaWYgKGFyZ3NbMF0ua2V5KSB7XG4gICAgICAgIGtleSA9IGFyZ3NbMF0ua2V5O1xuICAgICAgfVxuXG4gICAgICAvLyBGaWx0ZXIgb3V0IG51bWJlciBmb3JtYXQgb3B0aW9ucyBvbmx5XG4gICAgICBvcHRpb25zID0gT2JqZWN0LmtleXMoYXJnc1swXSkucmVkdWNlKGZ1bmN0aW9uIChhY2MsIGtleSkge1xuICAgICAgICAgIHZhciBvYmo7XG5cbiAgICAgICAgaWYgKGluY2x1ZGVzKG51bWJlckZvcm1hdEtleXMsIGtleSkpIHtcbiAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgYWNjLCAoIG9iaiA9IHt9LCBvYmpba2V5XSA9IGFyZ3NbMF1ba2V5XSwgb2JqICkpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgfSwgbnVsbCk7XG4gICAgfVxuICB9IGVsc2UgaWYgKGFyZ3MubGVuZ3RoID09PSAyKSB7XG4gICAgaWYgKGlzU3RyaW5nKGFyZ3NbMF0pKSB7XG4gICAgICBrZXkgPSBhcmdzWzBdO1xuICAgIH1cbiAgICBpZiAoaXNTdHJpbmcoYXJnc1sxXSkpIHtcbiAgICAgIGxvY2FsZSA9IGFyZ3NbMV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRoaXMuX24odmFsdWUsIGxvY2FsZSwga2V5LCBvcHRpb25zKVxufTtcblxuVnVlSTE4bi5wcm90b3R5cGUuX250cCA9IGZ1bmN0aW9uIF9udHAgKHZhbHVlLCBsb2NhbGUsIGtleSwgb3B0aW9ucykge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKCFWdWVJMThuLmF2YWlsYWJpbGl0aWVzLm51bWJlckZvcm1hdCkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICB3YXJuKCdDYW5ub3QgZm9ybWF0IHRvIHBhcnRzIGEgTnVtYmVyIHZhbHVlIGR1ZSB0byBub3Qgc3VwcG9ydGVkIEludGwuTnVtYmVyRm9ybWF0LicpO1xuICAgIH1cbiAgICByZXR1cm4gW11cbiAgfVxuXG4gIGlmICgha2V5KSB7XG4gICAgdmFyIG5mID0gIW9wdGlvbnMgPyBuZXcgSW50bC5OdW1iZXJGb3JtYXQobG9jYWxlKSA6IG5ldyBJbnRsLk51bWJlckZvcm1hdChsb2NhbGUsIG9wdGlvbnMpO1xuICAgIHJldHVybiBuZi5mb3JtYXRUb1BhcnRzKHZhbHVlKVxuICB9XG5cbiAgdmFyIGZvcm1hdHRlciA9IHRoaXMuX2dldE51bWJlckZvcm1hdHRlcih2YWx1ZSwgbG9jYWxlLCB0aGlzLmZhbGxiYWNrTG9jYWxlLCB0aGlzLl9nZXROdW1iZXJGb3JtYXRzKCksIGtleSwgb3B0aW9ucyk7XG4gIHZhciByZXQgPSBmb3JtYXR0ZXIgJiYgZm9ybWF0dGVyLmZvcm1hdFRvUGFydHModmFsdWUpO1xuICBpZiAodGhpcy5faXNGYWxsYmFja1Jvb3QocmV0KSkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmICF0aGlzLl9pc1NpbGVudFRyYW5zbGF0aW9uV2FybihrZXkpKSB7XG4gICAgICB3YXJuKChcIkZhbGwgYmFjayB0byBmb3JtYXQgbnVtYmVyIHRvIHBhcnRzIG9mIHJvb3Q6IGtleSAnXCIgKyBrZXkgKyBcIicgLlwiKSk7XG4gICAgfVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmICghdGhpcy5fcm9vdCkgeyB0aHJvdyBFcnJvcigndW5leHBlY3RlZCBlcnJvcicpIH1cbiAgICByZXR1cm4gdGhpcy5fcm9vdC4kaTE4bi5fbnRwKHZhbHVlLCBsb2NhbGUsIGtleSwgb3B0aW9ucylcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gcmV0IHx8IFtdXG4gIH1cbn07XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKCBWdWVJMThuLnByb3RvdHlwZSwgcHJvdG90eXBlQWNjZXNzb3JzICk7XG5cbnZhciBhdmFpbGFiaWxpdGllcztcbi8vICRGbG93Rml4TWVcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShWdWVJMThuLCAnYXZhaWxhYmlsaXRpZXMnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0ICgpIHtcbiAgICBpZiAoIWF2YWlsYWJpbGl0aWVzKSB7XG4gICAgICB2YXIgaW50bERlZmluZWQgPSB0eXBlb2YgSW50bCAhPT0gJ3VuZGVmaW5lZCc7XG4gICAgICBhdmFpbGFiaWxpdGllcyA9IHtcbiAgICAgICAgZGF0ZVRpbWVGb3JtYXQ6IGludGxEZWZpbmVkICYmIHR5cGVvZiBJbnRsLkRhdGVUaW1lRm9ybWF0ICE9PSAndW5kZWZpbmVkJyxcbiAgICAgICAgbnVtYmVyRm9ybWF0OiBpbnRsRGVmaW5lZCAmJiB0eXBlb2YgSW50bC5OdW1iZXJGb3JtYXQgIT09ICd1bmRlZmluZWQnXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBhdmFpbGFiaWxpdGllc1xuICB9XG59KTtcblxuVnVlSTE4bi5pbnN0YWxsID0gaW5zdGFsbDtcblZ1ZUkxOG4udmVyc2lvbiA9ICc4LjE4LjInO1xuXG5leHBvcnQgZGVmYXVsdCBWdWVJMThuO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///188\n")},function(module,exports,__webpack_require__){eval("// style-loader: Adds some css to the DOM by adding a
Loading...
- + diff --git a/web/loading/index.html b/web/loading/index.html index c6a389a6f..21892c015 100644 --- a/web/loading/index.html +++ b/web/loading/index.html @@ -1,9 +1,9 @@ - nkn-web - nkn-web + nkn-web - nkn-web
Loading...
- + diff --git a/web/nodeStatus/index.html b/web/nodeStatus/index.html index c6a389a6f..21892c015 100644 --- a/web/nodeStatus/index.html +++ b/web/nodeStatus/index.html @@ -1,9 +1,9 @@ - nkn-web - nkn-web + nkn-web - nkn-web
Loading...
- + diff --git a/web/overview/index.html b/web/overview/index.html index c6a389a6f..21892c015 100644 --- a/web/overview/index.html +++ b/web/overview/index.html @@ -1,9 +1,9 @@ - nkn-web - nkn-web + nkn-web - nkn-web
Loading...
- + diff --git a/web/settings/index.html b/web/settings/index.html index c6a389a6f..21892c015 100644 --- a/web/settings/index.html +++ b/web/settings/index.html @@ -1,9 +1,9 @@ - nkn-web - nkn-web + nkn-web - nkn-web
Loading...
- + diff --git a/web/wallet/create/index.html b/web/wallet/create/index.html index c6a389a6f..21892c015 100644 --- a/web/wallet/create/index.html +++ b/web/wallet/create/index.html @@ -1,9 +1,9 @@ - nkn-web - nkn-web + nkn-web - nkn-web
Loading...
- + diff --git a/web/wallet/open/index.html b/web/wallet/open/index.html index c6a389a6f..21892c015 100644 --- a/web/wallet/open/index.html +++ b/web/wallet/open/index.html @@ -1,9 +1,9 @@ - nkn-web - nkn-web + nkn-web - nkn-web
Loading...
- + diff --git a/web/zh/index.html b/web/zh/index.html index c6a389a6f..21892c015 100644 --- a/web/zh/index.html +++ b/web/zh/index.html @@ -1,9 +1,9 @@ - nkn-web - nkn-web + nkn-web - nkn-web
Loading...
- + diff --git a/web/zh/loading/index.html b/web/zh/loading/index.html index c6a389a6f..21892c015 100644 --- a/web/zh/loading/index.html +++ b/web/zh/loading/index.html @@ -1,9 +1,9 @@ - nkn-web - nkn-web + nkn-web - nkn-web
Loading...
- + diff --git a/web/zh/nodeStatus/index.html b/web/zh/nodeStatus/index.html index c6a389a6f..21892c015 100644 --- a/web/zh/nodeStatus/index.html +++ b/web/zh/nodeStatus/index.html @@ -1,9 +1,9 @@ - nkn-web - nkn-web + nkn-web - nkn-web
Loading...
- + diff --git a/web/zh/overview/index.html b/web/zh/overview/index.html index c6a389a6f..21892c015 100644 --- a/web/zh/overview/index.html +++ b/web/zh/overview/index.html @@ -1,9 +1,9 @@ - nkn-web - nkn-web + nkn-web - nkn-web
Loading...
- + diff --git a/web/zh/settings/index.html b/web/zh/settings/index.html index c6a389a6f..21892c015 100644 --- a/web/zh/settings/index.html +++ b/web/zh/settings/index.html @@ -1,9 +1,9 @@ - nkn-web - nkn-web + nkn-web - nkn-web
Loading...
- + diff --git a/web/zh/wallet/create/index.html b/web/zh/wallet/create/index.html index c6a389a6f..21892c015 100644 --- a/web/zh/wallet/create/index.html +++ b/web/zh/wallet/create/index.html @@ -1,9 +1,9 @@ - nkn-web - nkn-web + nkn-web - nkn-web
Loading...
- + diff --git a/web/zh/wallet/open/index.html b/web/zh/wallet/open/index.html index c6a389a6f..21892c015 100644 --- a/web/zh/wallet/open/index.html +++ b/web/zh/wallet/open/index.html @@ -1,9 +1,9 @@ - nkn-web - nkn-web + nkn-web - nkn-web
Loading...
- +